summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-12-08 13:24:59 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-12-08 13:24:59 +0100
commitcd7832ee326b0c424d4ad1538efd074c86a68f9b (patch)
tree158872ea92d5df96b1290b578cbe574aaa2acfd5
parent93cdb9906305e23304d9ff55350b7557fc1850cb (diff)
parent69b8f9169ffd66fdeca1ac60a4bc06b91d106186 (diff)
downloadqtwebengine-chromium-cd7832ee326b0c424d4ad1538efd074c86a68f9b.tar.gz
Merge remote-tracking branch 'origin/upstream-master' into 63-based
Change-Id: I4d88054034fccbb7409fa65c37d4498b74ec0578
-rw-r--r--chromium/DEPS16
-rw-r--r--chromium/build/util/LASTCHANGE2
-rw-r--r--chromium/build/util/LASTCHANGE.blink2
-rw-r--r--chromium/chrome/VERSION2
-rw-r--r--chromium/chrome/android/java/strings/android_chrome_strings.grd16
-rw-r--r--chromium/chrome/android/webapk/libs/runtime_library_version.gni2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_ar.xtb12
-rw-r--r--chromium/chrome/app/resources/chromium_strings_bn.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_el.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_es-419.xtb4
-rw-r--r--chromium/chrome/app/resources/chromium_strings_es.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_et.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_fa.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_fil.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_fr.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_gu.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_hu.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_kn.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_ml.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_mr.xtb4
-rw-r--r--chromium/chrome/app/resources/chromium_strings_ms.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_nl.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_pl.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_pt-BR.xtb4
-rw-r--r--chromium/chrome/app/resources/chromium_strings_pt-PT.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_sk.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_sv.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_sw.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_ta.xtb2
-rw-r--r--chromium/chrome/app/resources/chromium_strings_th.xtb2
-rw-r--r--chromium/chrome/app/resources/generated_resources_am.xtb7
-rw-r--r--chromium/chrome/app/resources/generated_resources_ar.xtb59
-rw-r--r--chromium/chrome/app/resources/generated_resources_bg.xtb3
-rw-r--r--chromium/chrome/app/resources/generated_resources_bn.xtb107
-rw-r--r--chromium/chrome/app/resources/generated_resources_ca.xtb15
-rw-r--r--chromium/chrome/app/resources/generated_resources_cs.xtb5
-rw-r--r--chromium/chrome/app/resources/generated_resources_da.xtb11
-rw-r--r--chromium/chrome/app/resources/generated_resources_de.xtb31
-rw-r--r--chromium/chrome/app/resources/generated_resources_el.xtb15
-rw-r--r--chromium/chrome/app/resources/generated_resources_en-GB.xtb9
-rw-r--r--chromium/chrome/app/resources/generated_resources_es-419.xtb3
-rw-r--r--chromium/chrome/app/resources/generated_resources_es.xtb1
-rw-r--r--chromium/chrome/app/resources/generated_resources_et.xtb19
-rw-r--r--chromium/chrome/app/resources/generated_resources_fa.xtb23
-rw-r--r--chromium/chrome/app/resources/generated_resources_fi.xtb7
-rw-r--r--chromium/chrome/app/resources/generated_resources_fil.xtb5
-rw-r--r--chromium/chrome/app/resources/generated_resources_fr.xtb9
-rw-r--r--chromium/chrome/app/resources/generated_resources_gu.xtb11
-rw-r--r--chromium/chrome/app/resources/generated_resources_hi.xtb17
-rw-r--r--chromium/chrome/app/resources/generated_resources_hr.xtb3
-rw-r--r--chromium/chrome/app/resources/generated_resources_hu.xtb11
-rw-r--r--chromium/chrome/app/resources/generated_resources_id.xtb3
-rw-r--r--chromium/chrome/app/resources/generated_resources_it.xtb7
-rw-r--r--chromium/chrome/app/resources/generated_resources_iw.xtb9
-rw-r--r--chromium/chrome/app/resources/generated_resources_ja.xtb9
-rw-r--r--chromium/chrome/app/resources/generated_resources_kn.xtb11
-rw-r--r--chromium/chrome/app/resources/generated_resources_ko.xtb7
-rw-r--r--chromium/chrome/app/resources/generated_resources_lt.xtb7
-rw-r--r--chromium/chrome/app/resources/generated_resources_lv.xtb17
-rw-r--r--chromium/chrome/app/resources/generated_resources_ml.xtb11
-rw-r--r--chromium/chrome/app/resources/generated_resources_mr.xtb159
-rw-r--r--chromium/chrome/app/resources/generated_resources_ms.xtb7
-rw-r--r--chromium/chrome/app/resources/generated_resources_nl.xtb29
-rw-r--r--chromium/chrome/app/resources/generated_resources_no.xtb13
-rw-r--r--chromium/chrome/app/resources/generated_resources_pl.xtb67
-rw-r--r--chromium/chrome/app/resources/generated_resources_pt-BR.xtb11
-rw-r--r--chromium/chrome/app/resources/generated_resources_pt-PT.xtb19
-rw-r--r--chromium/chrome/app/resources/generated_resources_ro.xtb9
-rw-r--r--chromium/chrome/app/resources/generated_resources_ru.xtb15
-rw-r--r--chromium/chrome/app/resources/generated_resources_sk.xtb13
-rw-r--r--chromium/chrome/app/resources/generated_resources_sl.xtb7
-rw-r--r--chromium/chrome/app/resources/generated_resources_sr.xtb1
-rw-r--r--chromium/chrome/app/resources/generated_resources_sv.xtb53
-rw-r--r--chromium/chrome/app/resources/generated_resources_sw.xtb25
-rw-r--r--chromium/chrome/app/resources/generated_resources_ta.xtb7
-rw-r--r--chromium/chrome/app/resources/generated_resources_te.xtb13
-rw-r--r--chromium/chrome/app/resources/generated_resources_th.xtb9
-rw-r--r--chromium/chrome/app/resources/generated_resources_tr.xtb3
-rw-r--r--chromium/chrome/app/resources/generated_resources_uk.xtb19
-rw-r--r--chromium/chrome/app/resources/generated_resources_vi.xtb7
-rw-r--r--chromium/chrome/app/resources/generated_resources_zh-CN.xtb7
-rw-r--r--chromium/chrome/app/resources/generated_resources_zh-TW.xtb1
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_ar.xtb8
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_bn.xtb4
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_ca.xtb2
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_el.xtb4
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_es.xtb2
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_fa.xtb2
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_fr.xtb2
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_hu.xtb2
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_ml.xtb2
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_mr.xtb4
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_ms.xtb2
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_pl.xtb2
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_pt-BR.xtb2
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_sk.xtb2
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_sv.xtb2
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_sw.xtb2
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_ta.xtb2
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_th.xtb2
-rw-r--r--chromium/chrome/app/resources/google_chrome_strings_uk.xtb4
-rw-r--r--chromium/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc8
-rw-r--r--chromium/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc14
-rw-r--r--chromium/chrome/browser/extensions/api/platform_keys/platform_keys_api.cc15
-rw-r--r--chromium/chrome/browser/resources/gaia_auth_host/authenticator.js12
-rw-r--r--chromium/chrome/browser/resources/plugin_metadata/plugins_linux.json6
-rw-r--r--chromium/chrome/browser/resources/plugin_metadata/plugins_mac.json6
-rw-r--r--chromium/chrome/browser/resources/plugin_metadata/plugins_win.json6
-rw-r--r--chromium/chrome/browser/resources/settings/device_page/display.html2
-rw-r--r--chromium/chrome/browser/resources/settings/people_page/change_picture.js6
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc41
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h8
-rw-r--r--chromium/chrome/common/extensions/api/_permission_features.json3
-rw-r--r--chromium/chrome/test/BUILD.gn2
-rw-r--r--chromium/components/autofill/content/common/autofill_param_traits_macros.h1
-rw-r--r--chromium/components/autofill/content/common/autofill_types.mojom1
-rw-r--r--chromium/components/autofill/content/common/autofill_types_struct_traits.cc2
-rw-r--r--chromium/components/autofill/content/common/autofill_types_struct_traits.h4
-rw-r--r--chromium/components/autofill/content/renderer/form_autofill_util.cc11
-rw-r--r--chromium/components/autofill/core/browser/autofill_manager.cc8
-rw-r--r--chromium/components/autofill/core/browser/autofill_manager_unittest.cc151
-rw-r--r--chromium/components/autofill/core/browser/autofill_metrics_unittest.cc57
-rw-r--r--chromium/components/autofill/core/browser/autofill_test_utils.cc1
-rw-r--r--chromium/components/autofill/core/browser/credit_card_unittest.cc4
-rw-r--r--chromium/components/autofill/core/browser/form_structure.cc9
-rw-r--r--chromium/components/autofill/core/browser/form_structure.h5
-rw-r--r--chromium/components/autofill/core/browser/form_structure_unittest.cc7
-rw-r--r--chromium/components/autofill/core/common/BUILD.gn1
-rw-r--r--chromium/components/autofill/core/common/DEPS3
-rw-r--r--chromium/components/autofill/core/common/form_data.cc15
-rw-r--r--chromium/components/autofill/core/common/form_data.h2
-rw-r--r--chromium/components/autofill/core/common/form_data_unittest.cc35
-rw-r--r--chromium/components/autofill/core/common/signatures_util.cc33
-rw-r--r--chromium/components/favicon/ios/web_favicon_driver.h12
-rw-r--r--chromium/components/favicon/ios/web_favicon_driver.mm43
-rw-r--r--chromium/components/password_manager/core/browser/password_manager.cc6
-rw-r--r--chromium/components/password_manager/core/browser/password_manager_unittest.cc42
-rw-r--r--chromium/components/safe_browsing/password_protection/password_protection_navigation_throttle.cc16
-rw-r--r--chromium/components/safe_browsing/password_protection/password_protection_navigation_throttle.h5
-rw-r--r--chromium/components/safe_browsing/password_protection/password_protection_request.h5
-rw-r--r--chromium/components/safe_browsing/password_protection/password_protection_service.cc9
-rw-r--r--chromium/components/strings/components_chromium_strings_el.xtb6
-rw-r--r--chromium/components/strings/components_google_chrome_strings_el.xtb6
-rw-r--r--chromium/components/strings/components_strings_am.xtb5
-rw-r--r--chromium/components/strings/components_strings_ar.xtb15
-rw-r--r--chromium/components/strings/components_strings_bg.xtb1
-rw-r--r--chromium/components/strings/components_strings_bn.xtb21
-rw-r--r--chromium/components/strings/components_strings_ca.xtb9
-rw-r--r--chromium/components/strings/components_strings_cs.xtb1
-rw-r--r--chromium/components/strings/components_strings_da.xtb1
-rw-r--r--chromium/components/strings/components_strings_de.xtb11
-rw-r--r--chromium/components/strings/components_strings_el.xtb1
-rw-r--r--chromium/components/strings/components_strings_en-GB.xtb5
-rw-r--r--chromium/components/strings/components_strings_es-419.xtb3
-rw-r--r--chromium/components/strings/components_strings_es.xtb7
-rw-r--r--chromium/components/strings/components_strings_et.xtb3
-rw-r--r--chromium/components/strings/components_strings_fa.xtb7
-rw-r--r--chromium/components/strings/components_strings_fi.xtb9
-rw-r--r--chromium/components/strings/components_strings_fil.xtb3
-rw-r--r--chromium/components/strings/components_strings_fr.xtb1
-rw-r--r--chromium/components/strings/components_strings_gu.xtb7
-rw-r--r--chromium/components/strings/components_strings_hi.xtb5
-rw-r--r--chromium/components/strings/components_strings_hr.xtb1
-rw-r--r--chromium/components/strings/components_strings_hu.xtb1
-rw-r--r--chromium/components/strings/components_strings_id.xtb7
-rw-r--r--chromium/components/strings/components_strings_it.xtb5
-rw-r--r--chromium/components/strings/components_strings_iw.xtb1
-rw-r--r--chromium/components/strings/components_strings_ja.xtb1
-rw-r--r--chromium/components/strings/components_strings_kn.xtb15
-rw-r--r--chromium/components/strings/components_strings_ko.xtb5
-rw-r--r--chromium/components/strings/components_strings_lt.xtb1
-rw-r--r--chromium/components/strings/components_strings_lv.xtb7
-rw-r--r--chromium/components/strings/components_strings_ml.xtb19
-rw-r--r--chromium/components/strings/components_strings_mr.xtb53
-rw-r--r--chromium/components/strings/components_strings_ms.xtb3
-rw-r--r--chromium/components/strings/components_strings_nl.xtb5
-rw-r--r--chromium/components/strings/components_strings_no.xtb7
-rw-r--r--chromium/components/strings/components_strings_pl.xtb3
-rw-r--r--chromium/components/strings/components_strings_pt-BR.xtb7
-rw-r--r--chromium/components/strings/components_strings_pt-PT.xtb1
-rw-r--r--chromium/components/strings/components_strings_ro.xtb1
-rw-r--r--chromium/components/strings/components_strings_ru.xtb5
-rw-r--r--chromium/components/strings/components_strings_sk.xtb5
-rw-r--r--chromium/components/strings/components_strings_sl.xtb1
-rw-r--r--chromium/components/strings/components_strings_sr.xtb1
-rw-r--r--chromium/components/strings/components_strings_sv.xtb7
-rw-r--r--chromium/components/strings/components_strings_sw.xtb5
-rw-r--r--chromium/components/strings/components_strings_ta.xtb5
-rw-r--r--chromium/components/strings/components_strings_te.xtb1
-rw-r--r--chromium/components/strings/components_strings_th.xtb3
-rw-r--r--chromium/components/strings/components_strings_tr.xtb3
-rw-r--r--chromium/components/strings/components_strings_uk.xtb3
-rw-r--r--chromium/components/strings/components_strings_vi.xtb1
-rw-r--r--chromium/components/strings/components_strings_zh-CN.xtb3
-rw-r--r--chromium/components/strings/components_strings_zh-TW.xtb1
-rw-r--r--chromium/components/ukm/test_ukm_recorder.cc6
-rw-r--r--chromium/components/ukm/test_ukm_recorder.h2
-rw-r--r--chromium/components/ukm/ukm_recorder_impl.cc72
-rw-r--r--chromium/components/ukm/ukm_recorder_impl.h8
-rw-r--r--chromium/components/ukm/ukm_service_unittest.cc172
-rw-r--r--chromium/components/ukm/ukm_source.cc4
-rw-r--r--chromium/components/ukm/ukm_source.h7
-rw-r--r--chromium/content/app/strings/translations/content_strings_es.xtb2
-rw-r--r--chromium/content/browser/accessibility/dump_accessibility_tree_browsertest.cc35
-rw-r--r--chromium/content/browser/accessibility/one_shot_accessibility_tree_search_unittest.cc2
-rw-r--r--chromium/content/browser/accessibility/web_contents_accessibility_android.cc7
-rw-r--r--chromium/content/browser/browser_main_loop.cc15
-rw-r--r--chromium/content/browser/child_process_security_policy_impl.cc35
-rw-r--r--chromium/content/browser/child_process_security_policy_impl.h21
-rw-r--r--chromium/content/browser/child_process_security_policy_unittest.cc78
-rw-r--r--chromium/content/browser/frame_host/navigation_handle_impl.cc26
-rw-r--r--chromium/content/browser/frame_host/navigation_handle_impl.h11
-rw-r--r--chromium/content/browser/frame_host/navigation_request.cc72
-rw-r--r--chromium/content/browser/indexed_db/indexed_db_factory_impl.cc8
-rw-r--r--chromium/content/browser/isolated_origin_browsertest.cc32
-rw-r--r--chromium/content/browser/renderer_host/render_process_host_unittest.cc3
-rw-r--r--chromium/content/browser/site_instance_impl.cc17
-rw-r--r--chromium/content/browser/site_instance_impl_unittest.cc17
-rw-r--r--chromium/content/common/site_isolation_policy.cc46
-rw-r--r--chromium/content/common/site_isolation_policy.h21
-rw-r--r--chromium/content/common/site_isolation_policy_unittest.cc48
-rw-r--r--chromium/content/public/browser/content_browser_client.cc3
-rw-r--r--chromium/content/public/browser/content_browser_client.h6
-rw-r--r--chromium/content/public/common/content_features.cc7
-rw-r--r--chromium/content/public/common/content_features.h2
-rw-r--r--chromium/content/test/BUILD.gn1
-rw-r--r--chromium/extensions/browser/api/media_perception_private/conversion_utils.cc57
-rw-r--r--chromium/extensions/browser/api/media_perception_private/conversion_utils_unittest.cc105
-rw-r--r--chromium/extensions/browser/api/media_perception_private/media_perception_private_api.cc8
-rw-r--r--chromium/extensions/browser/content_hash_reader.cc13
-rw-r--r--chromium/extensions/browser/content_verify_job_unittest.cc20
-rw-r--r--chromium/extensions/common/api/media_perception_private.idl36
-rw-r--r--chromium/extensions/strings/extensions_strings_ar.xtb12
-rw-r--r--chromium/gpu/command_buffer/service/gles2_cmd_decoder.cc11
-rw-r--r--chromium/gpu/command_buffer/service/renderbuffer_manager.cc28
-rw-r--r--chromium/gpu/command_buffer/service/renderbuffer_manager.h5
-rw-r--r--chromium/gpu/config/gpu_driver_bug_list.json19
-rw-r--r--chromium/gpu/config/gpu_driver_bug_workaround_type.h2
-rw-r--r--chromium/gpu/config/software_rendering_list.json3
-rw-r--r--chromium/media/audio/audio_input_device.cc10
-rw-r--r--chromium/media/audio/audio_input_device.h3
-rw-r--r--chromium/media/audio/audio_output_device.cc22
-rw-r--r--chromium/media/audio/audio_output_device.h4
-rw-r--r--chromium/media/blink/video_frame_compositor.cc43
-rw-r--r--chromium/media/blink/video_frame_compositor.h32
-rw-r--r--chromium/media/blink/video_frame_compositor_unittest.cc37
-rw-r--r--chromium/media/blink/watch_time_reporter_unittest.cc7
-rw-r--r--chromium/media/blink/webmediaplayer_impl.cc52
-rw-r--r--chromium/media/blink/webmediaplayer_impl.h8
-rw-r--r--chromium/media/midi/midi_manager_mac.cc3
-rw-r--r--chromium/media/mojo/interfaces/watch_time_recorder.mojom7
-rw-r--r--chromium/media/mojo/services/watch_time_recorder.cc7
-rw-r--r--chromium/media/mojo/services/watch_time_recorder_unittest.cc14
-rw-r--r--chromium/net/cert/x509_certificate.cc10
-rw-r--r--chromium/net/cert/x509_certificate.h7
-rw-r--r--chromium/net/http/http_network_session.cc1
-rw-r--r--chromium/net/http/http_network_session.h3
-rw-r--r--chromium/net/http/http_stream_factory_impl_job_controller.cc4
-rw-r--r--chromium/net/quic/chromium/quic_network_transaction_unittest.cc8
-rw-r--r--chromium/skia/ext/skia_commit_hash.h2
-rw-r--r--chromium/third_party/WebKit/Source/bindings/core/v8/V8IntersectionObserverDelegate.cpp8
-rw-r--r--chromium/third_party/WebKit/Source/bindings/core/v8/V8IntersectionObserverDelegate.h14
-rw-r--r--chromium/third_party/WebKit/Source/core/dom/Document.cpp105
-rw-r--r--chromium/third_party/WebKit/Source/core/dom/Document.h2
-rw-r--r--chromium/third_party/WebKit/Source/core/editing/EditingUtilities.cpp3
-rw-r--r--chromium/third_party/WebKit/Source/core/editing/SelectionController.cpp3
-rw-r--r--chromium/third_party/WebKit/Source/core/intersection_observer/IntersectionObserver.cpp1
-rw-r--r--chromium/third_party/WebKit/Source/core/layout/LayoutBlock.cpp3
-rw-r--r--chromium/third_party/WebKit/Source/core/layout/LayoutBox.cpp12
-rw-r--r--chromium/third_party/WebKit/Source/core/layout/LayoutView.cpp27
-rw-r--r--chromium/third_party/WebKit/Source/core/layout/LayoutView.h3
-rw-r--r--chromium/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp28
-rw-r--r--chromium/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.h7
-rw-r--r--chromium/third_party/WebKit/Source/core/paint/compositing/CompositedLayerMappingTest.cpp64
-rw-r--r--chromium/third_party/WebKit/Source/core/paint/compositing/CompositingLayerAssigner.cpp3
-rw-r--r--chromium/third_party/WebKit/Source/modules/media_controls/MediaControlsImpl.h1
-rw-r--r--chromium/third_party/WebKit/Source/modules/media_controls/elements/MediaControlTimelineElement.cpp3
-rw-r--r--chromium/third_party/WebKit/Source/modules/media_controls/elements/MediaControlTimelineElement.h3
-rw-r--r--chromium/third_party/WebKit/Source/platform/graphics/SquashingDisallowedReasons.cpp4
-rw-r--r--chromium/third_party/WebKit/Source/platform/graphics/SquashingDisallowedReasons.h1
-rw-r--r--chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp3
-rw-r--r--chromium/third_party/boringssl/src/crypto/curve25519/internal.h20
-rw-r--r--chromium/third_party/boringssl/src/crypto/curve25519/spake25519.c118
-rw-r--r--chromium/third_party/boringssl/src/crypto/curve25519/spake25519_test.cc28
-rw-r--r--chromium/third_party/icu/README.chromium7
-rw-r--r--chromium/third_party/icu/common/icudtb.datbin10196592 -> 10197152 bytes
-rw-r--r--chromium/third_party/icu/common/icudtl.datbin10196592 -> 10197152 bytes
-rw-r--r--chromium/third_party/icu/patches/persian_cal.patch51
-rw-r--r--chromium/third_party/icu/source/data/misc/metaZones.txt19
-rw-r--r--chromium/third_party/icu/source/data/misc/windowsZones.txt23
-rw-r--r--chromium/third_party/icu/source/data/misc/zoneinfo64.txt113
-rw-r--r--chromium/third_party/icu/source/i18n/gregoimp.cpp5
-rw-r--r--chromium/third_party/icu/source/i18n/gregoimp.h11
-rw-r--r--chromium/third_party/icu/source/i18n/persncal.cpp2
-rw-r--r--chromium/third_party/libaddressinput/chromium/resources/address_input_strings_ca.xtb2
-rw-r--r--chromium/third_party/libaddressinput/chromium/resources/address_input_strings_fil.xtb2
-rw-r--r--chromium/third_party/pdfium/core/fpdftext/cpdf_textpage.cpp31
-rw-r--r--chromium/third_party/pdfium/core/fxge/win32/cfx_psrenderer.cpp12
-rw-r--r--chromium/third_party/pdfium/fpdfsdk/fpdfview.cpp10
-rw-r--r--chromium/third_party/skia/src/gpu/gl/GrGLCaps.cpp4
-rw-r--r--chromium/third_party/skia/src/gpu/gl/GrGLGpu.cpp23
-rw-r--r--chromium/third_party/webrtc/media/base/videocapturer.cc8
-rw-r--r--chromium/third_party/webrtc/media/engine/videodecodersoftwarefallbackwrapper.cc4
-rw-r--r--chromium/third_party/webrtc/media/engine/videodecodersoftwarefallbackwrapper_unittest.cc4
-rw-r--r--chromium/third_party/webrtc/modules/audio_processing/aec3/adaptive_fir_filter_unittest.cc5
-rw-r--r--chromium/third_party/webrtc/modules/audio_processing/aec3/aec3_common.h4
-rw-r--r--chromium/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc141
-rw-r--r--chromium/third_party/webrtc/modules/audio_processing/aec3/aec_state.h24
-rw-r--r--chromium/third_party/webrtc/modules/audio_processing/aec3/aec_state_unittest.cc63
-rw-r--r--chromium/third_party/webrtc/modules/audio_processing/aec3/echo_remover.cc7
-rw-r--r--chromium/third_party/webrtc/modules/audio_processing/aec3/main_filter_update_gain_unittest.cc2
-rw-r--r--chromium/third_party/webrtc/modules/audio_processing/aec3/render_delay_buffer.cc2
-rw-r--r--chromium/third_party/webrtc/modules/audio_processing/aec3/residual_echo_estimator.cc99
-rw-r--r--chromium/third_party/webrtc/modules/audio_processing/aec3/residual_echo_estimator.h6
-rw-r--r--chromium/third_party/webrtc/modules/audio_processing/aec3/residual_echo_estimator_unittest.cc4
-rw-r--r--chromium/third_party/webrtc/modules/audio_processing/aec3/subtractor.cc15
-rw-r--r--chromium/third_party/webrtc/modules/audio_processing/aec3/subtractor.h3
-rw-r--r--chromium/third_party/webrtc/modules/audio_processing/aec3/subtractor_unittest.cc1
-rw-r--r--chromium/third_party/webrtc/modules/audio_processing/include/audio_processing.h7
-rw-r--r--chromium/third_party/webrtc/modules/desktop_capture/mac/window_list_utils.cc11
-rw-r--r--chromium/third_party/webrtc/modules/pacing/BUILD.gn2
-rw-r--r--chromium/third_party/webrtc/modules/pacing/paced_sender.cc9
-rw-r--r--chromium/third_party/webrtc/modules/pacing/paced_sender.h3
-rw-r--r--chromium/third_party/webrtc/modules/pacing/paced_sender_unittest.cc67
-rw-r--r--chromium/third_party/webrtc/modules/pacing/packet_queue.cc2
-rw-r--r--chromium/third_party/webrtc/modules/pacing/packet_queue.h37
-rw-r--r--chromium/third_party/webrtc/modules/pacing/packet_queue2.cc209
-rw-r--r--chromium/third_party/webrtc/modules/pacing/packet_queue2.h111
-rw-r--r--chromium/third_party/webrtc/pc/mediasession.cc26
-rw-r--r--chromium/third_party/webrtc/pc/peerconnectioninterface_unittest.cc33
-rw-r--r--chromium/third_party/webrtc/pc/webrtcsession.cc48
-rw-r--r--chromium/third_party/webrtc/tools_webrtc/ios/client.webrtc.branches/iOS (beta).json24
-rw-r--r--chromium/third_party/webrtc/tools_webrtc/ios/client.webrtc.branches/iOS (stable).json24
-rw-r--r--chromium/third_party/webrtc/tools_webrtc/mb/mb_config.pyl21
-rw-r--r--chromium/third_party/webrtc/tools_webrtc/whitespace.txt1
-rw-r--r--chromium/third_party/webrtc/video/end_to_end_tests.cc176
-rw-r--r--chromium/third_party/webrtc/video/receive_statistics_proxy.cc4
-rw-r--r--chromium/third_party/webrtc/video/receive_statistics_proxy_unittest.cc6
-rw-r--r--chromium/third_party/webrtc/video/video_send_stream.cc38
-rw-r--r--chromium/third_party/webrtc/video/video_send_stream_tests.cc78
-rw-r--r--chromium/third_party/win_build_output/OWNERS2
-rw-r--r--chromium/third_party/win_build_output/README.chromium34
-rw-r--r--chromium/third_party/win_build_output/mc/base/trace_event/etw_manifest/MSG00001.binbin0 -> 180 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/base/trace_event/etw_manifest/chrome_events_win.h454
-rw-r--r--chromium/third_party/win_build_output/mc/base/trace_event/etw_manifest/chrome_events_win.rc3
-rw-r--r--chromium/third_party/win_build_output/mc/base/trace_event/etw_manifest/chrome_events_winTEMP.BINbin0 -> 1386 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/chrome/common/win/MSG00409.binbin0 -> 88 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/chrome/common/win/eventlog_messages.h66
-rw-r--r--chromium/third_party/win_build_output/mc/chrome/common/win/eventlog_messages.rc2
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0000d.binbin0 -> 568 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00401.binbin0 -> 480 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00402.binbin0 -> 664 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00403.binbin0 -> 540 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00404.binbin0 -> 348 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00405.binbin0 -> 548 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00406.binbin0 -> 480 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00407.binbin0 -> 512 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00408.binbin0 -> 720 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00409.binbin0 -> 480 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0040b.binbin0 -> 560 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0040c.binbin0 -> 572 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0040d.binbin0 -> 428 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0040e.binbin0 -> 592 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00410.binbin0 -> 480 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00411.binbin0 -> 436 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00412.binbin0 -> 404 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00413.binbin0 -> 528 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00414.binbin0 -> 512 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00415.binbin0 -> 524 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00416.binbin0 -> 496 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00418.binbin0 -> 528 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00419.binbin0 -> 508 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041a.binbin0 -> 516 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041b.binbin0 -> 580 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041d.binbin0 -> 504 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041e.binbin0 -> 540 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041f.binbin0 -> 572 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00421.binbin0 -> 484 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00422.binbin0 -> 496 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00424.binbin0 -> 540 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00425.binbin0 -> 548 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00426.binbin0 -> 576 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00427.binbin0 -> 496 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00429.binbin0 -> 476 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0042a.binbin0 -> 596 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00439.binbin0 -> 568 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0043e.binbin0 -> 508 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00441.binbin0 -> 564 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00445.binbin0 -> 576 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00447.binbin0 -> 504 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00449.binbin0 -> 564 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0044a.binbin0 -> 620 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0044b.binbin0 -> 564 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0044c.binbin0 -> 600 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0044e.binbin0 -> 536 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0045e.binbin0 -> 436 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00464.binbin0 -> 576 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00804.binbin0 -> 352 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00809.binbin0 -> 480 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0080a.binbin0 -> 500 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00816.binbin0 -> 520 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG0081a.binbin0 -> 540 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/MSG00c0a.binbin0 -> 496 bytes
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/remoting_host_messages.h96
-rw-r--r--chromium/third_party/win_build_output/mc/remoting/host/win/remoting_host_messages.rc108
-rw-r--r--chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl.dlldata.c38
-rw-r--r--chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl.h4892
-rw-r--r--chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl.tlbbin0 -> 19772 bytes
-rw-r--r--chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl_i.c211
-rw-r--r--chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl_p.c7602
-rw-r--r--chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl.dlldata.c38
-rw-r--r--chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl.h4892
-rw-r--r--chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl.tlbbin0 -> 19772 bytes
-rw-r--r--chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl_i.c211
-rw-r--r--chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl_p.c7546
-rw-r--r--chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.dlldata.c37
-rw-r--r--chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.h327
-rw-r--r--chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.tlbbin0 -> 3196 bytes
-rw-r--r--chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib_i.c88
-rw-r--r--chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib_p.c572
-rw-r--r--chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.dlldata.c37
-rw-r--r--chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.h327
-rw-r--r--chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.tlbbin0 -> 3196 bytes
-rw-r--r--chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib_i.c88
-rw-r--r--chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib_p.c578
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.dlldata.c38
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.h4746
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.tlbbin0 -> 27672 bytes
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all_i.c133
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all_p.c7867
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.dlldata.c38
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.h4746
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.tlbbin0 -> 27672 bytes
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all_i.c133
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all_p.c7822
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument.dlldata.c37
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument.h284
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument_i.c79
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument_p.c509
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument.dlldata.c37
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument.h284
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument_i.c79
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument_p.c514
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode.dlldata.c37
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode.h477
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode_i.c79
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode_p.c1018
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode.dlldata.c37
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode.h477
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode_i.c79
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode_p.c1015
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText.dlldata.c37
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText.h274
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText_i.c79
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText_p.c541
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText.dlldata.c37
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText.h274
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText_i.c79
-rw-r--r--chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText_p.c547
-rw-r--r--chromium/ui/accessibility/ax_tree.cc31
-rw-r--r--chromium/ui/accessibility/ax_tree_unittest.cc2
-rw-r--r--chromium/ui/strings/translations/ui_strings_da.xtb2
-rw-r--r--chromium/ui/strings/translations/ui_strings_sw.xtb4
-rw-r--r--chromium/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_camera.js6
-rw-r--r--chromium/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_picture_list.js16
-rw-r--r--chromium/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_picture_pane.js10
-rw-r--r--chromium/url/origin.cc4
-rw-r--r--chromium/url/origin.h3
-rw-r--r--chromium/v8/AUTHORS2
-rw-r--r--chromium/v8/BUILD.gn6
-rw-r--r--chromium/v8/DEPS2
-rw-r--r--chromium/v8/Makefile26
-rw-r--r--chromium/v8/gni/isolate.gni2
-rw-r--r--chromium/v8/gypfiles/features.gypi4
-rw-r--r--chromium/v8/gypfiles/isolate.gypi1
-rwxr-xr-xchromium/v8/gypfiles/run-tests-legacy.py50
-rw-r--r--chromium/v8/gypfiles/toolchain.gypi1
-rw-r--r--chromium/v8/include/v8-inspector.h2
-rw-r--r--chromium/v8/include/v8-version.h2
-rw-r--r--chromium/v8/include/v8.h23
-rw-r--r--chromium/v8/src/api-natives.cc6
-rw-r--r--chromium/v8/src/api.cc12
-rw-r--r--chromium/v8/src/arm/assembler-arm.cc21
-rw-r--r--chromium/v8/src/arm/simulator-arm.cc2
-rw-r--r--chromium/v8/src/asmjs/asm-js.cc1
-rw-r--r--chromium/v8/src/asmjs/asm-parser.cc7
-rw-r--r--chromium/v8/src/assembler.cc14
-rw-r--r--chromium/v8/src/assembler.h5
-rw-r--r--chromium/v8/src/ast/scopes.cc4
-rw-r--r--chromium/v8/src/ast/scopes.h9
-rw-r--r--chromium/v8/src/base/platform/platform-aix.cc3
-rw-r--r--chromium/v8/src/bootstrapper.cc12
-rw-r--r--chromium/v8/src/builtins/builtins-collections-gen.cc9
-rw-r--r--chromium/v8/src/builtins/builtins-definitions.h2
-rw-r--r--chromium/v8/src/builtins/builtins-proxy-gen.cc4
-rw-r--r--chromium/v8/src/builtins/builtins-string-gen.cc29
-rw-r--r--chromium/v8/src/builtins/builtins-string-gen.h2
-rw-r--r--chromium/v8/src/builtins/builtins-typedarray-gen.cc346
-rw-r--r--chromium/v8/src/builtins/builtins-typedarray.cc296
-rw-r--r--chromium/v8/src/code-stub-assembler.cc71
-rw-r--r--chromium/v8/src/code-stub-assembler.h13
-rw-r--r--chromium/v8/src/compiler/arm/code-generator-arm.cc99
-rw-r--r--chromium/v8/src/compiler/arm/instruction-selector-arm.cc24
-rw-r--r--chromium/v8/src/compiler/code-assembler.cc19
-rw-r--r--chromium/v8/src/compiler/code-assembler.h13
-rw-r--r--chromium/v8/src/compiler/common-operator.cc4
-rw-r--r--chromium/v8/src/compiler/common-operator.h12
-rw-r--r--chromium/v8/src/compiler/effect-control-linearizer.cc28
-rw-r--r--chromium/v8/src/compiler/effect-control-linearizer.h1
-rw-r--r--chromium/v8/src/compiler/escape-analysis.cc40
-rw-r--r--chromium/v8/src/compiler/escape-analysis.h5
-rw-r--r--chromium/v8/src/compiler/js-call-reducer.cc50
-rw-r--r--chromium/v8/src/compiler/js-create-lowering.cc5
-rw-r--r--chromium/v8/src/compiler/js-native-context-specialization.cc8
-rw-r--r--chromium/v8/src/compiler/js-typed-lowering.cc1
-rw-r--r--chromium/v8/src/compiler/opcodes.h1
-rw-r--r--chromium/v8/src/compiler/raw-machine-assembler.cc35
-rw-r--r--chromium/v8/src/compiler/raw-machine-assembler.h11
-rw-r--r--chromium/v8/src/compiler/simplified-lowering.cc20
-rw-r--r--chromium/v8/src/compiler/simplified-operator.cc1
-rw-r--r--chromium/v8/src/compiler/simplified-operator.h1
-rw-r--r--chromium/v8/src/compiler/typer.cc11
-rw-r--r--chromium/v8/src/compiler/verifier.cc1
-rw-r--r--chromium/v8/src/compiler/wasm-compiler.cc65
-rw-r--r--chromium/v8/src/debug/debug-scope-iterator.cc17
-rw-r--r--chromium/v8/src/deoptimizer.cc41
-rw-r--r--chromium/v8/src/deoptimizer.h9
-rw-r--r--chromium/v8/src/elements.cc145
-rw-r--r--chromium/v8/src/elements.h14
-rw-r--r--chromium/v8/src/external-reference-table.cc7
-rw-r--r--chromium/v8/src/factory.cc4
-rw-r--r--chromium/v8/src/flag-definitions.h3
-rw-r--r--chromium/v8/src/frames.cc8
-rw-r--r--chromium/v8/src/global-handles.cc52
-rw-r--r--chromium/v8/src/global-handles.h11
-rw-r--r--chromium/v8/src/heap/concurrent-marking.cc6
-rw-r--r--chromium/v8/src/heap/heap.cc9
-rw-r--r--chromium/v8/src/heap/mark-compact.cc11
-rw-r--r--chromium/v8/src/heap/setup-heap-internal.cc2
-rw-r--r--chromium/v8/src/ic/accessor-assembler.cc284
-rw-r--r--chromium/v8/src/ic/accessor-assembler.h5
-rw-r--r--chromium/v8/src/ic/handler-configuration-inl.h18
-rw-r--r--chromium/v8/src/ic/handler-configuration.cc100
-rw-r--r--chromium/v8/src/ic/handler-configuration.h35
-rw-r--r--chromium/v8/src/ic/ic.cc19
-rw-r--r--chromium/v8/src/ic/keyed-store-generic.cc4
-rw-r--r--chromium/v8/src/inspector/inspector.gypi4
-rw-r--r--chromium/v8/src/inspector/v8-debugger.cc6
-rw-r--r--chromium/v8/src/isolate.cc15
-rw-r--r--chromium/v8/src/isolate.h6
-rw-r--r--chromium/v8/src/log.cc5
-rw-r--r--chromium/v8/src/lookup.cc14
-rw-r--r--chromium/v8/src/map-updater.cc33
-rw-r--r--chromium/v8/src/map-updater.h4
-rw-r--r--chromium/v8/src/messages.cc3
-rw-r--r--chromium/v8/src/messages.h2
-rw-r--r--chromium/v8/src/objects-debug.cc9
-rw-r--r--chromium/v8/src/objects-inl.h22
-rw-r--r--chromium/v8/src/objects-printer.cc9
-rw-r--r--chromium/v8/src/objects.cc95
-rw-r--r--chromium/v8/src/objects.h30
-rw-r--r--chromium/v8/src/objects/dictionary.h10
-rw-r--r--chromium/v8/src/objects/map-inl.h33
-rw-r--r--chromium/v8/src/objects/map.h24
-rw-r--r--chromium/v8/src/parsing/parser.cc7
-rw-r--r--chromium/v8/src/parsing/preparsed-scope-data.cc20
-rw-r--r--chromium/v8/src/parsing/preparsed-scope-data.h10
-rw-r--r--chromium/v8/src/parsing/preparser.cc3
-rw-r--r--chromium/v8/src/parsing/preparser.h17
-rw-r--r--chromium/v8/src/ppc/simulator-ppc.cc1
-rw-r--r--chromium/v8/src/regexp/jsregexp.cc8
-rw-r--r--chromium/v8/src/runtime/runtime-intl.cc106
-rw-r--r--chromium/v8/src/runtime/runtime-object.cc29
-rw-r--r--chromium/v8/src/runtime/runtime-proxy.cc17
-rw-r--r--chromium/v8/src/runtime/runtime-test.cc12
-rw-r--r--chromium/v8/src/runtime/runtime-typedarray.cc143
-rw-r--r--chromium/v8/src/runtime/runtime.h6
-rw-r--r--chromium/v8/src/v8.gyp39
-rw-r--r--chromium/v8/src/wasm/module-compiler.cc1
-rw-r--r--chromium/v8/src/wasm/wasm-js.cc4
-rw-r--r--chromium/v8/src/wasm/wasm-memory.cc2
-rw-r--r--chromium/v8/src/wasm/wasm-objects.cc2
-rwxr-xr-xchromium/v8/tools/foozzie/v8_foozzie.py2
-rw-r--r--chromium/v8/tools/mb/docs/design_spec.md4
-rw-r--r--chromium/v8/tools/mb/docs/user_guide.md29
-rwxr-xr-xchromium/v8/tools/mb/mb.py592
-rwxr-xr-xchromium/v8/tools/mb/mb_unittest.py274
-rw-r--r--chromium/v8/tools/testrunner/testrunner.isolate8
-rw-r--r--chromium/v8/tools/testrunner/utils/dump_build_config.py4
-rw-r--r--chromium/v8/tools/testrunner/utils/dump_build_config_gyp.py54
-rw-r--r--chromium/v8/tools/whitespace.txt1
591 files changed, 66919 insertions, 3338 deletions
diff --git a/chromium/DEPS b/chromium/DEPS
index 0c4f1e9d699..0ae0dad7656 100644
--- a/chromium/DEPS
+++ b/chromium/DEPS
@@ -171,7 +171,7 @@ deps = {
(Var("chromium_git")) + '/android_tools.git@ca9dc7245b888c75307f0619e4a39fb46a82de66'
},
'src/third_party/angle':
- (Var("chromium_git")) + '/angle/angle.git@c3bc984156967837f0b17b866aca0b12a2edf0e6',
+ (Var("chromium_git")) + '/angle/angle.git@9095f2b44801efef46a440c391d89278432169d5',
'src/third_party/apache-portable-runtime/src': {
'condition':
'checkout_android',
@@ -187,11 +187,11 @@ deps = {
(Var("chromium_git")) + '/chromium/deps/bison.git@083c9a45e4affdd5464ee2b224c2df649c6e26c3'
},
'src/third_party/boringssl/src':
- (Var("boringssl_git")) + '/boringssl.git@664e99a6486c293728097c661332f92bf2d847c6',
+ (Var("boringssl_git")) + '/boringssl.git@9f69f139ed1088daabb6525f0c9c34d1e89688f7',
'src/third_party/breakpad/breakpad':
(Var("chromium_git")) + '/breakpad/breakpad.git@1c6d1613966eab5d77531e85f3b60c40124b43f0',
'src/third_party/catapult':
- (Var("chromium_git")) + '/catapult.git@2c4422f10a7858aa6107fd76d69e8329f80b5ee4',
+ (Var("chromium_git")) + '/catapult.git@67c01572b02248ec553a2064be7e5e065fb494b8',
'src/third_party/ced/src':
(Var("chromium_git")) + '/external/github.com/google/compact_enc_det.git@94c367a1fe3a13207f4b22604fcfd1d9f9ddf6d9',
'src/third_party/chromite': {
@@ -299,7 +299,7 @@ deps = {
'src/third_party/hunspell_dictionaries':
(Var("chromium_git")) + '/chromium/deps/hunspell_dictionaries.git@dc6e7c25bf47cbfb466e0701fd2728b4a12e79d5',
'src/third_party/icu':
- (Var("chromium_git")) + '/chromium/deps/icu.git@21d33b1a09a77f033478ea4ffffb61e6970f83bd',
+ (Var("chromium_git")) + '/chromium/deps/icu.git@7e19d270ee925d41f2953a3e33f9868b3960fbf1',
'src/third_party/jsoncpp/source':
(Var("chromium_git")) + '/external/github.com/open-source-parsers/jsoncpp.git@f572e8e42e22cfcf5ab0aea26574f408943edfa4',
'src/third_party/jsr-305/src': {
@@ -431,7 +431,7 @@ deps = {
'src/third_party/openmax_dl':
(Var("webrtc_git")) + '/deps/third_party/openmax.git@7acede9c039ea5d14cf326f44aad1245b9e674a7',
'src/third_party/pdfium':
- (Var("pdfium_git")) + '/pdfium.git@5d98f3044ed5fd3e41d1e764351a8829e1a47e4b',
+ (Var("pdfium_git")) + '/pdfium.git@ff2a52cab523bc9de526f97bc060300e55f4506b',
'src/third_party/pefile': {
'condition':
'checkout_win',
@@ -473,7 +473,7 @@ deps = {
'src/third_party/shaderc/src':
(Var("chromium_git")) + '/external/github.com/google/shaderc.git@cd8793c34907073025af2622c28bcee64e9879a4',
'src/third_party/skia':
- (Var("skia_git")) + '/skia.git@e60ca7eae432bbff7d2213920cbfb8f3aa9a9c28',
+ (Var("skia_git")) + '/skia.git@dbae7001c9805fb0a4b18fd0cbc889941cb39db4',
'src/third_party/smhasher/src':
(Var("chromium_git")) + '/external/smhasher.git@e87738e57558e0ec472b2fc3a643b838e5b6e88f',
'src/third_party/snappy/src':
@@ -513,7 +513,7 @@ deps = {
'src/third_party/webgl/src':
(Var("chromium_git")) + '/external/khronosgroup/webgl.git@34842fa3c36988840c89f5bc6a68503175acf7d9',
'src/third_party/webrtc':
- (Var("webrtc_git")) + '/src.git@bef8a5d2ca5413c680995584b8c0976852ba5f25',
+ (Var("webrtc_git")) + '/src.git@b3fd9700eb1d5e79e7eed37db0bca2fae059fefe',
'src/third_party/xdg-utils': {
'condition':
'checkout_linux',
@@ -529,7 +529,7 @@ deps = {
'src/tools/swarming_client':
(Var("chromium_git")) + '/infra/luci/client-py.git@5e8001d9a710121ce7a68efd0804430a34b4f9e4',
'src/v8':
- (Var("chromium_git")) + '/v8/v8.git@094a7c93dcdcd921de3883ba4674b7e1a0feffbe'
+ (Var("chromium_git")) + '/v8/v8.git@310263b31fd87280b80e4bdd4ecfba5128b4cda7'
}
hooks = [
diff --git a/chromium/build/util/LASTCHANGE b/chromium/build/util/LASTCHANGE
index d58bf44b4e3..fe21d9bad56 100644
--- a/chromium/build/util/LASTCHANGE
+++ b/chromium/build/util/LASTCHANGE
@@ -1 +1 @@
-LASTCHANGE=333c567a9bbdeb7f0d69477b5ae7792bc78a2553-
+LASTCHANGE=9f7c6464592fa694a05b7db5d521510df19243db-
diff --git a/chromium/build/util/LASTCHANGE.blink b/chromium/build/util/LASTCHANGE.blink
index d58bf44b4e3..fe21d9bad56 100644
--- a/chromium/build/util/LASTCHANGE.blink
+++ b/chromium/build/util/LASTCHANGE.blink
@@ -1 +1 @@
-LASTCHANGE=333c567a9bbdeb7f0d69477b5ae7792bc78a2553-
+LASTCHANGE=9f7c6464592fa694a05b7db5d521510df19243db-
diff --git a/chromium/chrome/VERSION b/chromium/chrome/VERSION
index 408a11b1626..2538ca30ef8 100644
--- a/chromium/chrome/VERSION
+++ b/chromium/chrome/VERSION
@@ -1,4 +1,4 @@
MAJOR=63
MINOR=0
BUILD=3239
-PATCH=58
+PATCH=87
diff --git a/chromium/chrome/android/java/strings/android_chrome_strings.grd b/chromium/chrome/android/java/strings/android_chrome_strings.grd
index aa817c729ed..2639ff33125 100644
--- a/chromium/chrome/android/java/strings/android_chrome_strings.grd
+++ b/chromium/chrome/android/java/strings/android_chrome_strings.grd
@@ -3229,17 +3229,23 @@ You must have Bluetooth and Location turned on in order to use the Physical Web.
<message name="IDS_BOTTOM_SHEET_APP_MENU_IPH" desc="Label for in-product help that appears in the Chrome three-dot menu (navigation menu). In previous versions of Chrome, the menu contained Downloads, Bookmarks, and History. In this version of Chrome, these three items have been moved out of the menu. Tapping this help text will show the user where they can find these three items. 'Downloads', 'Bookmarks', and 'History' should use the same translations as in Chrome settings and menu items. The tone of this string is that of the user asking Chrome, 'where are these 3 things?'">
Where are downloads, bookmarks, and history?
</message>
- <message name="IDS_CHROME_HOME_PROMO_DIALOG_TITLE" desc="Dialog title text. Dialog describes the new Chrome. Object is omitted; intended meaning is that we wish to introduce you, the user, to a new version of Chrome. Infinitive or other verb form may be used if the gerund is not appropriate in your language.">
- Introducing the new Chrome
- </message>
<message name="IDS_CHROME_HOME_PROMO_DIALOG_MESSAGE" desc="Dialog body text. Describes the new features available in the new Chrome. “Swipe up†(imperative) refers to the gesture on a mobile phone. “access†is a noun. “Popular†modifies both “sites and articles.†“Downloads†refers to items the user has downloaded in Chrome.">
Swipe up for easy access to popular sites and articles, downloads, and more
</message>
<message name="IDS_CHROME_HOME_PROMO_DIALOG_MESSAGE_ACCESSIBILITY" desc="Dialog body text when accessibility is enabled. Dialog describes a new feature called “Chrome Home†(which is a placeholder name, official naming is underway; for now, do not translate the feature name). “Swipe up†(imperative) refers to the gesture on a mobile phone. “access†is a noun. “Popular†modifies both “sites and articles.†“Downloads†refers to items the user has downloaded in Chrome.">
Swipe up from the bottom of the screen or tap the expand button for easy access to popular sites and articles, downloads, and more
</message>
- <message name="IDS_CHROME_HOME_PROMO_DIALOG_CHANGE_LATER" desc="Dialog toggle/switch label. Dialog describes the features available in the new Chrome. Toggle is ON by default.">
- Use the new Chrome
+ <message name="IDS_CHROME_HOME_PROMO_DIALOG_NOT_NOW" desc="Dialog button text that is visible if the new Chrome is disabled and will dismiss the dialog when pressed without changing the state of Chrome.">
+ Not now
+ </message>
+ <message name="IDS_CHROME_HOME_PROMO_DIALOG_TITLE" desc="Dialog title text. Dialog describes the new Chrome. Object is omitted; intended meaning is that we wish to introduce you, the user, to a new version of Chrome. Infinitive or other verb form may be used if the gerund is not appropriate in your language.">
+ Introducing the new Chrome
+ </message>
+ <message name="IDS_CHROME_HOME_PROMO_DIALOG_TRY_IT" desc="Dialog button text that is visible if the new Chrome is disabled and will dismiss the dialog and enable the new Chrome when pressed.">
+ Try it
+ </message>
+ <message name="IDS_CHROME_HOME_PROMO_DIALOG_TURN_OFF" desc="Dialog button text that is visible if the new Chrome is enabled and will dismiss the dialog and disable the new Chrome when pressed.">
+ Turn off
</message>
<message name="IDS_CHROME_HOME_OPT_OUT_MENU_ITEM" desc="Item that appears at the top of the Chrome options menu on mobile. Gerund is used to indicate the current state, e.g. you are now using the new Chrome. Tapping this item opens a dialog that allows the user to turn off the new Chrome and revert to an older version.">
You’re using the new Chrome
diff --git a/chromium/chrome/android/webapk/libs/runtime_library_version.gni b/chromium/chrome/android/webapk/libs/runtime_library_version.gni
index 14f040deff6..57f84cea842 100644
--- a/chromium/chrome/android/webapk/libs/runtime_library_version.gni
+++ b/chromium/chrome/android/webapk/libs/runtime_library_version.gni
@@ -5,4 +5,4 @@
# Must be incremented whenever the runtime library is updated. The WebAPK
# re-extracts the runtime library from the Chrome APK when
# |runtime_library_version| is incremented.
-runtime_library_version = 2
+runtime_library_version = 3
diff --git a/chromium/chrome/app/resources/chromium_strings_ar.xtb b/chromium/chrome/app/resources/chromium_strings_ar.xtb
index 839bc58bc90..4c17b467319 100644
--- a/chromium/chrome/app/resources/chromium_strings_ar.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_ar.xtb
@@ -60,7 +60,7 @@
<translation id="3032787606318309379">â€Ø¬Ø§Ø±Ù الإضاÙØ© إلى Chromium...</translation>
<translation id="3046695367536568084">â€ÙŠØ¬Ø¨ أن تسجّل الدخول إلى Chromium لاستخدام التطبيقات. ويتيح هذا مزامنة Chromium لتطبيقاتك وإشاراتك المرجعية وسجلك وكلمات المرور التابعة لك، Ùضلاً عن الإعدادات الأخرى عبر الأجهزة.</translation>
<translation id="3068515742935458733">â€ÙŠÙ…كنك المساعدة ÙÙŠ تحسين Chromium عن طريق إرسال تقارير الأعطال Ùˆ<ph name="UMA_LINK" /> إلى Google</translation>
-<translation id="3103660991484857065">â€Ø£Ø®Ùقت أداة التثبيت ÙÙŠ ÙÙƒ ضغط الأرشيÙ. ÙŠÙرجى إعادة تنزيل Chromium.</translation>
+<translation id="3103660991484857065">â€ØªØ¹Ø°Ù‘رت أداة التثبيت ÙÙŠ ÙÙƒ ضغط الأرشيÙ. ÙŠÙرجى إعادة تنزيل Chromium.</translation>
<translation id="3130323860337406239">â€ÙŠØ³ØªØ®Ø¯Ù… Chromium الميكروÙون.</translation>
<translation id="3155163173539279776">â€Ø¥Ø¹Ø§Ø¯Ø© تشغيل Chromium</translation>
<translation id="3179665906251668410">â€Ùتح الرابط ÙÙŠ ناÙذة تصÙØ­ متخÙÙ ÙÙŠ Chromium</translation>
@@ -99,7 +99,7 @@
<translation id="4230135487732243613">â€Ù‡Ù„ ترغب ÙÙŠ ربط بياناتك ÙÙŠ Chromium بهذا الحساب؟</translation>
<translation id="4246125976471362530">{SECONDS,plural, =1{â€Ø³ØªØªÙ… إعادة تشغيل Chromium خلال ثانية واحدة (1).}zero{â€Ø³ØªØªÙ… إعادة تشغيل Chromium خلال # ثانية.}two{â€Ø³ØªØªÙ… إعادة تشغيل Chromium خلال ثانيتين (#).}few{â€Ø³ØªØªÙ… إعادة تشغيل Chromium خلال # ثوانÙ.}many{â€Ø³ØªØªÙ… إعادة تشغيل Chromium خلال # ثانية.}other{â€Ø³ØªØªÙ… إعادة تشغيل Chromium خلال # ثانية.}}</translation>
<translation id="4271805377592243930">â€Ø§Ù„حصول على مساعدة ÙÙŠ Chromium</translation>
-<translation id="4285930937574705105">â€Ø£Ø®Ùقت عملية التثبيت بسبب خطأ غير محدد. إذا كان Chromium ÙÙŠ حالة التشغيل حاليًا، Ùالرجاء إغلاقه وإعادة المحاولة.</translation>
+<translation id="4285930937574705105">â€ØªØ¹Ø°Ù‘ر إتمام عملية التثبيت بسبب خطأ غير محدد. إذا كان Chromium ÙÙŠ حالة التشغيل حاليًا، Ùالرجاء إغلاقه وإعادة المحاولة.</translation>
<translation id="4330585738697551178">â€Ù‡Ø°Ù‡ الوحدة معرو٠أنها تتعارض مع Chromium.</translation>
<translation id="4421155425831608516">â€Ø¹Ø·Ù‘ÙŽÙ„ مشر٠هذا الجهاز تسجيل الدخول إلى Chromium.</translation>
<translation id="4423735387467980091">â€ØªØ®ØµÙŠØµ Chromium والتحكم Ùيه</translation>
@@ -146,7 +146,7 @@
<translation id="5862307444128926510">â€Ù…رحبًا بك ÙÙŠ Chromium</translation>
<translation id="5877064549588274448">تم تغيير القناة. يمكنك إعادة تشغيل الجهاز لتدخل التغييرات حيز التنÙيذ.</translation>
<translation id="5895138241574237353">إعادة التشغيل</translation>
-<translation id="5902536751647951209">â€Ù„قد أخÙقت شهادة المصادقة. ÙŠÙرجى تسجيل الدخول إلى Chromium مرة أخرى أو الاتصال بمشرÙÙƒ لمزيد من المعلومات. <ph name="ADDITIONAL_EXPLANATION" /></translation>
+<translation id="5902536751647951209">â€Ù„قد تعذّرت شهادة المصادقة. ÙŠÙرجى تسجيل الدخول إلى Chromium مرة أخرى أو الاتصال بمشرÙÙƒ لمزيد من المعلومات. <ph name="ADDITIONAL_EXPLANATION" /></translation>
<translation id="5906655207909574370">أوشك التحديث على الانتهاء! أعÙد تشغيل الجهاز لإنهاء التحديث.</translation>
<translation id="5942520288919337908">â€ØªÙ…ت إضاÙØ© <ph name="EXTENSION_NAME" /> إلى Chromium.</translation>
<translation id="59625444380784159">â€ÙŠÙ…كن أن تساعد التÙاصيل الواردة من جهات اتصالك ÙÙŠ ملء النماذج بسرعة ÙÙŠ Chromium.</translation>
@@ -214,8 +214,8 @@
<translation id="7745317241717453663">â€Ø³ÙŠØ¤Ø¯ÙŠ هذا إلى حذ٠بيانات التصÙØ­ من هذا الجهاز. لاسترداد بياناتك لاحقًا، سجّل الدخول إلى Chromium كـ <ph name="USER_EMAIL" />.</translation>
<translation id="7747138024166251722">تعذر على أداة المثبّÙت إنشاء دليل مؤقت. ÙŠÙرجى التحقق من وجود مساحة خالية على القرص وتوÙر الإذن اللازم لتثبيت البرنامج.</translation>
<translation id="7756122083761163394">â€Ø³ÙŠØªÙ… حذ٠بيانات تصÙØ­ هذا الشخص من هذا الجهاز. ولاسترداد البيانات، سجّل الدخول إلى Chrome باعتبارك $2.</translation>
-<translation id="7774736947049807614">â€Ù„قد أخÙقت شهادة المصادقة. ÙŠÙرجى تسجيل الدخول إلى Chromium مرة أخرى بصÙتك <ph name="USER_NAME" /> أو الاتصال بمشرÙÙƒ لمزيد من المعلومات. <ph name="ADDITIONAL_EXPLANATION" /></translation>
-<translation id="7867198900892795913">â€ØªØ¹Ø°Ø± تحديث Chromium إلى آخر إصدار، لذلك قد تÙوتك الميزات الجديدة وعمليات إصلاح الأمان.</translation>
+<translation id="7774736947049807614">â€Ù„قد تعذّرت شهادة المصادقة. ÙŠÙرجى تسجيل الدخول إلى Chromium مرة أخرى بصÙتك <ph name="USER_NAME" /> أو الاتصال بمشرÙÙƒ لمزيد من المعلومات. <ph name="ADDITIONAL_EXPLANATION" /></translation>
+<translation id="7867198900892795913">â€ØªØ¹Ø°Ù‘ر تحديث Chromium إلى آخر إصدار، لذلك قد تÙوتك الميزات الجديدة وعمليات إصلاح الأمان.</translation>
<translation id="7937630085815544518">â€ØªÙ… تسجيل دخولك إلى Chromium باعتبارك <ph name="USER_EMAIL_ADDRESS" />. ÙŠÙرجى استخدام الحساب Ù†Ùسه لتسجيل الدخول مرة أخرى.</translation>
<translation id="795025003224538582">عدم إعادة التشغيل</translation>
<translation id="7962572577636132072">â€ÙŠØ¬Ø±ÙŠ تحديث Chromium تلقائيًا بحيث يكون لديك أحدث إصدار.</translation>
@@ -248,7 +248,7 @@
<translation id="8862326446509486874">لا تملك الحقوق الكاÙية للتثبيت على مستوى النظام. جرّب تشغيل المثبّÙت بصÙØ© مشرÙ.</translation>
<translation id="8897323336392112261">â€ÙƒÙ…ا أنها تتحكم ÙÙŠ الصÙحة التي تظهر عند تشغيل Chromium أو النقر على زر الصÙحة الرئيسية.</translation>
<translation id="8907580949721785412">â€ÙŠØ­Ø§ÙˆÙ„ Chromium عرض كلمات المرور. اكتب كلمة مرور Windows للسماح بذلك.</translation>
-<translation id="8941642502866065432">â€ØªØ¹Ø°Ø± تحديث Chromium</translation>
+<translation id="8941642502866065432">â€ØªØ¹Ø°Ù‘ر تحديث Chromium</translation>
<translation id="894903460958736500">â€Ø§Ù„برامج التي تعمل على جهاز الكمبيوتر لا تتواÙÙ‚ مع Chromium.</translation>
<translation id="8968921422458636175">â€Ø³ÙŠØ­Ùظ Chromium كلمة المرور هذه بواسطة <ph name="SAVED_PASSWORD_LINK" />ØŒ ولن تحتاج إلى تذكّرها.</translation>
<translation id="8974095189086268230">â€Ø£ØµØ¨Ø­ نظام التشغيل Chromium متاحًا من خلال المزيد من <ph name="BEGIN_LINK_CROS_OSS" />البرامج Ù…Ùتوحة المصدر<ph name="END_LINK_CROS_OSS" />.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_bn.xtb b/chromium/chrome/app/resources/chromium_strings_bn.xtb
index 3d3f77bd17f..60d900cb198 100644
--- a/chromium/chrome/app/resources/chromium_strings_bn.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_bn.xtb
@@ -213,7 +213,7 @@ Chromium আপনার সেটিংস পà§à¦¨à¦°à§à¦¦à§à¦§à¦¾à¦° কà¦
<translation id="7747138024166251722">ইনসà§à¦Ÿà¦²à¦¾à¦°à¦Ÿà¦¿ অসà§à¦¥à¦¾à§Ÿà§€ ডাইরেকà§à¦Ÿà¦°à¦¿ তৈরি করতে পারে নি৷ দয়া করে মà§à¦•à§à¦¤ ডিসà§à¦• সà§à¦¥à¦¾à¦¨ à¦à¦¬à¦‚ সফà§à¦Ÿà¦“য়à§à¦¯à¦¾à¦°à¦Ÿà¦¿ ইনসà§à¦Ÿà¦² করার অনà§à¦®à¦¤à¦¿ যাচাই করে নিন৷</translation>
<translation id="7756122083761163394">à¦à¦‡ ডিভাইস থেকে à¦à¦‡ বà§à¦¯à¦•à§à¦¤à¦¿à¦° বà§à¦°à¦¾à¦‰à¦œà¦¿à¦‚ ডেটা মà§à¦›à§‡ ফেলা হবে। ডেটা পà§à¦¨à¦°à§à¦¦à§à¦§à¦¾à¦° করতে Chrome ঠ$2 হিসাবে সাইন-ইন করà§à¦¨à¥¤</translation>
<translation id="7774736947049807614">পà§à¦°à¦®à¦¾à¦£à§€à¦•à¦°à¦£à§‡à¦° শংসাপতà§à¦°à¦Ÿà¦¿ কাজ করেনি। অনà§à¦—à§à¦°à¦¹ করে <ph name="USER_NAME" /> হিসেবে আবার Chromium ঠসাইন-ইন করà§à¦¨ বা আরও তথà§à¦¯à§‡à¦° জনà§à¦¯ আপনার পà§à¦°à¦¶à¦¾à¦¸à¦•à§‡à¦° সাথে যোগাযোগ করà§à¦¨à¥¤ <ph name="ADDITIONAL_EXPLANATION" /></translation>
-<translation id="7867198900892795913">Chromium লেটেসà§à¦Ÿ ভারà§à¦¸à¦¾à¦¨à§‡ আপডেট করা যাচà§à¦›à§‡ না, তাই আপনি নতà§à¦¨ বৈশিষà§à¦Ÿà§à¦¯ à¦à¦¬à¦‚ সà§à¦°à¦•à§à¦·à¦¾ সমাধানগà§à¦²à¦¿ পাচà§à¦›à§‡à¦¨ না।</translation>
+<translation id="7867198900892795913">Chromium লেটেসà§à¦Ÿ ভারà§à¦¸à¦¨à§‡ আপডেট করা যাচà§à¦›à§‡ না, তাই আপনি নতà§à¦¨ বৈশিষà§à¦Ÿà§à¦¯ à¦à¦¬à¦‚ সà§à¦°à¦•à§à¦·à¦¾ সমাধানগà§à¦²à¦¿ পাচà§à¦›à§‡à¦¨ না।</translation>
<translation id="7937630085815544518">আপনি <ph name="USER_EMAIL_ADDRESS" /> হিসাবে Chromium ঠপà§à¦°à¦¬à§‡à¦¶ করেছেন৷ আবার সাইন করতে দয়া করে à¦à¦•à¦‡ অà§à¦¯à¦¾à¦•à¦¾à¦‰à¦¨à§à¦Ÿ বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨à§·</translation>
<translation id="795025003224538582">পà§à¦°à§à¦¨à¦¸à§‚চনা করবেন না</translation>
<translation id="7962572577636132072">Chromium সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦­à¦¾à¦¬à§‡ আপডেট হয় তাই আপনি সবসময় নবীনতম সংসà§à¦•à¦°à¦£à¦Ÿà¦¿ পান৷</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_el.xtb b/chromium/chrome/app/resources/chromium_strings_el.xtb
index 06044172440..225438644dc 100644
--- a/chromium/chrome/app/resources/chromium_strings_el.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_el.xtb
@@ -166,7 +166,7 @@
<translation id="6475912303565314141">Επίσης, ελέγχει τη σελίδα που εμφανίζεται κατά την εκκίνηση του Chromium.</translation>
<translation id="6485906693002546646">ΧÏησιμοποιείτε το Ï€Ïοφίλ <ph name="PROFILE_EMAIL" /> για το συγχÏονισμό του πεÏιεχομένου σας στο Chromium. Για να ενημεÏώσετε τις Ï€Ïοτιμήσεις συγχÏÎ¿Î½Î¹ÏƒÎ¼Î¿Ï Î® για να χÏησιμοποιήστε το Chromium χωÏίς ΛογαÏιασμό Google, μεταβείτε στην πεÏιοχή <ph name="SETTINGS_LINK" />.</translation>
<translation id="6505742536731484931">Το Chromium χÏειάζεται Ï€Ïόσβαση στην τοποθεσία σας, για να την κοινοποιήσει σε αυτόν τον ιστότοπο.</translation>
-<translation id="6510925080656968729">ΚατάÏγηση εγκατάστασης Chromium</translation>
+<translation id="6510925080656968729">Απεγκατάσταση Chromium</translation>
<translation id="6526111688217511984">Το Chromium χÏειάζεται Ï€Ïόσβαση στο χώÏο αποθήκευσης για τη λήψη αÏχείων.</translation>
<translation id="6676384891291319759">ΠÏόσβαση στο Διαδίκτυο</translation>
<translation id="6717134281241384636">Δεν είναι δυνατή η χÏήση του Ï€Ïοφίλ σας επειδή Ï€ÏοέÏχεται από νεότεÏη έκδοση του Chromium.
diff --git a/chromium/chrome/app/resources/chromium_strings_es-419.xtb b/chromium/chrome/app/resources/chromium_strings_es-419.xtb
index 72ab2a87a77..e15f1be975c 100644
--- a/chromium/chrome/app/resources/chromium_strings_es-419.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_es-419.xtb
@@ -209,7 +209,7 @@ Para obtener más instrucciones, revisa tu correo electrónico en <ph name="ACCO
<translation id="7747138024166251722">El instalador no pudo crear un directorio temporal. Verifique si hay espacio disponible en el disco y cuenta con permiso para instalar software.</translation>
<translation id="7756122083761163394">Los datos de navegación de esta persona se borrarán de este dispositivo. Para recuperarlos, accede a Chrome como $2.</translation>
<translation id="7774736947049807614">Se produjo un error en el certificado de autenticación. Vuelve a acceder a tu cuenta en Chromium como <ph name="USER_NAME" /> o comunícate con tu administrador para obtener más información. <ph name="ADDITIONAL_EXPLANATION" /></translation>
-<translation id="7867198900892795913">Chromium no se pudo actualizar a la última versión, por lo que te estás perdiendo las nuevas características y correcciones de seguridad.</translation>
+<translation id="7867198900892795913">Chromium no se pudo actualizar a la última versión, por lo que te estás perdiendo las nuevas funciones y correcciones de seguridad.</translation>
<translation id="7937630085815544518">Accediste a Chromium con <ph name="USER_EMAIL_ADDRESS" />. Usa la misma cuenta para volver a acceder.</translation>
<translation id="795025003224538582">No reiniciar</translation>
<translation id="7962572577636132072">Chromium se actualiza automáticamente para que siempre tengas la versión más reciente.</translation>
@@ -242,7 +242,7 @@ Para obtener más instrucciones, revisa tu correo electrónico en <ph name="ACCO
<translation id="8862326446509486874">No tienes los derechos que se requieren para realizar la instalación al nivel del sistema. Intenta ejecutar el instalador nuevamente como Administrador.</translation>
<translation id="8897323336392112261">También controla qué página se muestra al iniciar Chromium o al hacer clic en el botón de página principal.</translation>
<translation id="8907580949721785412">Chromium está intentando mostrar contraseñas. Para permitirlo, ingresa tu contraseña de Windows.</translation>
-<translation id="8941642502866065432">No se pudo actualizar Chromium</translation>
+<translation id="8941642502866065432">No se puede actualizar Chromium</translation>
<translation id="894903460958736500">El software que se ejecuta en la computadora no es compatible con Chromium.</translation>
<translation id="8968921422458636175">Chromium guardará esta contraseña con <ph name="SAVED_PASSWORD_LINK" />. No es necesario que la recuerdes.</translation>
<translation id="8974095189086268230">Chromium OS es posible gracias a los <ph name="BEGIN_LINK_CROS_OSS" />software adicionales de código abierto<ph name="END_LINK_CROS_OSS" />.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_es.xtb b/chromium/chrome/app/resources/chromium_strings_es.xtb
index c40cfde6842..56175f09600 100644
--- a/chromium/chrome/app/resources/chromium_strings_es.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_es.xtb
@@ -218,7 +218,7 @@ Consulta tu correo electrónico (<ph name="ACCOUNT_EMAIL" />) para obtener más
<translation id="7747138024166251722">El programa de instalación no ha podido crear un directorio temporal. Comprueba si hay espacio libre en el disco y si tienes autorización para instalar el software.</translation>
<translation id="7756122083761163394">Los datos de navegación de este usuario se eliminarán de este dispositivo. Para recuperarlos, inicia sesión en Chrome como $2.</translation>
<translation id="7774736947049807614">No se ha podido autenticar el certificado. Vuelve a iniciar sesión en Chromium como <ph name="USER_NAME" /> o ponte en contacto con tu administrador para obtener más información. <ph name="ADDITIONAL_EXPLANATION" /></translation>
-<translation id="7867198900892795913">No se ha podido actualizar Chromium a la última versión, por lo que no disfrutas de las últimas funciones y correcciones de seguridad.</translation>
+<translation id="7867198900892795913">No se ha podido actualizar Chromium a la versión más reciente, por lo que no disfrutas de las últimas funciones y correcciones de seguridad.</translation>
<translation id="7937630085815544518">Habías iniciado sesión en Chromium como <ph name="USER_EMAIL_ADDRESS" />. Utiliza la misma cuenta para volver a iniciar sesión.</translation>
<translation id="795025003224538582">No reiniciar</translation>
<translation id="7962572577636132072">Chromium se actualiza automáticamente para que siempre dispongas de la última versión.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_et.xtb b/chromium/chrome/app/resources/chromium_strings_et.xtb
index fa63d31d787..84468b35693 100644
--- a/chromium/chrome/app/resources/chromium_strings_et.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_et.xtb
@@ -215,7 +215,7 @@ Täiendavad juhised leiate aadressilt <ph name="ACCOUNT_EMAIL" />.</translation>
<translation id="7747138024166251722">Installija ei suutnud luua ajutist kataloogi. Palun kontrollige vaba kettaruumi ja tarkvara installimise loa olemasolu.</translation>
<translation id="7756122083761163394">Selle isiku sirvimisandmed kustutatakse seadmest. Andmete taastamiseks logige Chrome'i sisse kasutajana $2.</translation>
<translation id="7774736947049807614">Autentimissertifikaat ebaõnnestus. Logige Chromiumisse uuesti sisse kasutajana <ph name="USER_NAME" /> või võtke lisateabe saamiseks ühendust administraatoriga. <ph name="ADDITIONAL_EXPLANATION" /></translation>
-<translation id="7867198900892795913">Chromiumi ei õnnestunud uusimale versioonile värskendada. Seetõttu ei saa te uusi funktsioone ja turvaparandusi kasutada.</translation>
+<translation id="7867198900892795913">Chromiumi ei saanud uusimale versioonile värskendada, mistõttu jääte ilma uutest funktsioonidest ja turvaparandustest.</translation>
<translation id="7937630085815544518">Olite Chromiumisse sisse logitud kasutajana <ph name="USER_EMAIL_ADDRESS" />. Kasutage uuesti sisselogimiseks sama kontot.</translation>
<translation id="795025003224538582">Ära taaskäivita</translation>
<translation id="7962572577636132072">Chromium teeb värskendused automaatselt, nii et kasutate alati uusimat versiooni.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_fa.xtb b/chromium/chrome/app/resources/chromium_strings_fa.xtb
index 47fd3952f67..602a248d127 100644
--- a/chromium/chrome/app/resources/chromium_strings_fa.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_fa.xtb
@@ -213,7 +213,7 @@ Chromium قادر به بازیابی تنظیمات شما نیست.</translati
<translation id="7747138024166251722">نصب‌کننده نتوانست دایرکتوری موقت ایجاد کند. لطÙاً Ùضای خالی دیسک Ùˆ اجازه نصب نرم‌اÙزار را بررسی کنید.</translation>
<translation id="7756122083761163394">â€Ø§ÛŒÙ† داده‌های محصول مرور Ùرد از این دستگاه حذ٠می‌شود. برای بازیابی داده‌ها، با نام 2$ به سیستم Chrome وارد شوید.</translation>
<translation id="7774736947049807614">â€Ú¯ÙˆØ§Ù‡ÛŒÙ†Ø§Ù…Ù‡ احراز هویت تأیید نشد. لطÙاً به‌عنوان <ph name="USER_NAME" /> دوباره به سیستم Chromium وارد شوید یا برای دریاÙت اطلاعات بیشتر با سرپرستتان تماس بگیرید. <ph name="ADDITIONAL_EXPLANATION" /></translation>
-<translation id="7867198900892795913">â€Chromium به جدیدترین نسخه به‌روزرسانی نشد بنابراین قابلیت‌های جدید Ùˆ رÙع اشکال‌های امنیتی را از دست می‌دهید.</translation>
+<translation id="7867198900892795913">â€Chromium به جدیدترین نسخه به‌روزرسانی نشد، بنابراین قابلیت‌های جدید Ùˆ رÙع اشکال‌های امنیتی را ندارید.</translation>
<translation id="7937630085815544518">â€Ø´Ù…ا بعنوان <ph name="USER_EMAIL_ADDRESS" /> وارد سیستم Chromium شده‌اید. لطÙاً برای ورود به سیستم مجدد از همان حساب استÙاده کنید.</translation>
<translation id="795025003224538582">راه‌اندازی مجدد نشود</translation>
<translation id="7962572577636132072">â€Chromium به صورت خودکار به‌روزرسانی می‌شود بنابراین همیشه جدیدترین نسخه را دارید.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_fil.xtb b/chromium/chrome/app/resources/chromium_strings_fil.xtb
index 50418ec79c9..258458fe263 100644
--- a/chromium/chrome/app/resources/chromium_strings_fil.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_fil.xtb
@@ -217,7 +217,7 @@ Pakitingnan ang iyong email sa <ph name="ACCOUNT_EMAIL" /> para sa mga karagdaga
<translation id="7747138024166251722">Hindi makalikha ng pansamantalang direktoryo ang installer. Paki-suri para sa puwang sa disk na walang laman at pahintulot upang i-install ang software.</translation>
<translation id="7756122083761163394">Made-delete sa device na ito ang data mula sa pag-browse ng taong ito. Upang ma-recover ang data, mag-sign in sa Chrome bilang $2.</translation>
<translation id="7774736947049807614">Hindi nagtagumpay ang certificate ng pag-authenticate. Mag-sign muli sa Chromium bilang si <ph name="USER_NAME" /> o makipag-ugnayan sa iyong administrator para sa higit pang impormasyon. <ph name="ADDITIONAL_EXPLANATION" /></translation>
-<translation id="7867198900892795913">Hindi ma-update ang Chromium sa pinakabagong bersyon, kaya hindi mo magagamit ang mga bagong feature at pag-aayos sa seguridad.</translation>
+<translation id="7867198900892795913">Hindi ma-update ang Chromium sa pinakabagong bersyon, kaya may napapalampas kang mga bagong feature at pag-aayos sa seguridad.</translation>
<translation id="7937630085815544518">Naka-sign in ka sa Chromium bilang <ph name="USER_EMAIL_ADDRESS" />. Pakigamit ang parehong account upang mag-sign in muli.</translation>
<translation id="795025003224538582">Huwag i-restart</translation>
<translation id="7962572577636132072">Awtomatikong nag-a-update ang Chromium upang palagi kang may pinakabagong bersyon.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_fr.xtb b/chromium/chrome/app/resources/chromium_strings_fr.xtb
index e6f9a259d77..6b31d5782dd 100644
--- a/chromium/chrome/app/resources/chromium_strings_fr.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_fr.xtb
@@ -249,7 +249,7 @@ Pour obtenir plus d'informations, veuillez consulter votre compte de messagerie
<translation id="8862326446509486874">Vous ne disposez pas des droits requis pour installer la version système. Relancez l'installation en vous connectant comme administrateur.</translation>
<translation id="8897323336392112261">Elle contrôle également la page qui s'affiche au démarrage de Chromium ou lorsque vous cliquez sur le bouton Accueil.</translation>
<translation id="8907580949721785412">Chromium tente d'afficher les mots de passe. Pour autoriser cette action, saisissez votre mot de passe Windows.</translation>
-<translation id="8941642502866065432">Impossible de mettre à jour Chromium</translation>
+<translation id="8941642502866065432">Impossible de mettre Chromium à jour</translation>
<translation id="894903460958736500">Le logiciel exécuté sur votre ordinateur n'est pas compatible avec Chromium.</translation>
<translation id="8968921422458636175">Chromium va enregistrer ce mot de passe avec <ph name="SAVED_PASSWORD_LINK" />. Vous n'avez pas besoin de le retenir.</translation>
<translation id="8974095189086268230">Chromium OS fonctionne grâce à d'autres <ph name="BEGIN_LINK_CROS_OSS" />logiciels libres<ph name="END_LINK_CROS_OSS" />.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_gu.xtb b/chromium/chrome/app/resources/chromium_strings_gu.xtb
index 74172b33e66..0ccfe16bcc6 100644
--- a/chromium/chrome/app/resources/chromium_strings_gu.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_gu.xtb
@@ -217,7 +217,7 @@ Chromium તમારી સેટિંગà«àª¸àª¨à«‡ પà«àª¨àªƒàªªà«àª°àª¾
<translation id="7747138024166251722">ઇનà«àª¸à«àªŸà«‹àª²àª° અસà«àª¥àª¾àª¯à«€ ડાયરેકà«àªŸàª°à«€ બનાવી શકà«àª¯à«àª‚ નથી. કૃપા કરીને ખાલી ડિસà«àª• સà«àªªà«‡àª¸ માટે અને સૉફà«àªŸàªµà«‡àª° ઇનà«àª¸à«àªŸà«‹àª² કરવાની પરવાનગી માટે તપાસો.</translation>
<translation id="7756122083761163394">આ વà«àª¯àª•à«àª¤àª¿àª¨à«‹ બà«àª°àª¾àª‰àªàª¿àª‚ગ ડેટા આ ઉપકરણમાંથી કાઢી નાખવામાં આવશે. આ ડેટા પાછો મેળવવા માટે, Chromeમાં $2 તરીકે સાઇન ઇન કરો.</translation>
<translation id="7774736947049807614">પà«àª°àª®àª¾àª£à«€àª•àª°àª£ પà«àª°àª®àª¾àª£àªªàª¤à«àª° નિષà«àª«àª³ થયà«àª‚. કૃપા કરીને Chromiumમાં ફરીથી <ph name="USER_NAME" /> તરીકે સાઇન ઇન કરો અથવા વધૠમાહિતી માટે તમારા વà«àª¯àªµàª¸à«àª¥àª¾àªªàª•àª¨à«‹ સંપરà«àª• કરો. <ph name="ADDITIONAL_EXPLANATION" /></translation>
-<translation id="7867198900892795913">Chromium નવીનતમ વરà«àªàª¨ પર અપડેટ ન કરી શકà«àª¯à«àª‚, તેથી તમે નવી સà«àªµàª¿àª§àª¾àª“ અને સà«àª°àª•à«àª·àª¾àª¨àª¾ સà«àª§àª¾àª°àª¾ ચૂકી રહà«àª¯àª¾ છો.</translation>
+<translation id="7867198900892795913">Chromium નવીનતમ વરà«àªàª¨ પર અપડેટ ન થઈ શકà«àª¯à«àª‚, તેથી તમે નવી સà«àªµàª¿àª§àª¾àª“ અને સà«àª°àª•à«àª·àª¾àª¨àª¾ સà«àª§àª¾àª°àª¾ ચૂકી રહà«àª¯àª¾ છો.</translation>
<translation id="7937630085815544518">તમે Chromium માં <ph name="USER_EMAIL_ADDRESS" /> તરીકે સાઇન ઇન કરà«àª¯à«àª‚ હતà«àª‚. ફરીથી સાઇન ઇન કરવા માટે કૃપા કરીને ઠજ àªàª•àª¾àª‰àª¨à«àªŸàª¨à«‹ ઉપયોગ કરો.</translation>
<translation id="795025003224538582">પà«àª¨àªƒàªªà«àª°àª¾àª°àª‚ભ કરશો નહીં</translation>
<translation id="7962572577636132072">Chromium આપમેળે અપડેટ થાય છે જેથી કરીને તમારી પાસે હંમેશા સૌથી તાજà«àª‚ સંસà«àª•àª°àª£ રહે છે.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_hu.xtb b/chromium/chrome/app/resources/chromium_strings_hu.xtb
index f7ae27807db..aeb41f1be71 100644
--- a/chromium/chrome/app/resources/chromium_strings_hu.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_hu.xtb
@@ -246,7 +246,7 @@ További utasításokat a(z) <ph name="ACCOUNT_EMAIL" /> címére küldött e-ma
<translation id="8862326446509486874">Nincsenek meg a megfelelő jogai a rendszerszintű telepítéshez. Indítsa újra a telepítőt rendszergazdaként.</translation>
<translation id="8897323336392112261">Továbbá azt is szabályozza, hogy melyik oldal jelenik meg a Chromium indításakor vagy a Kezdőlap gombra történő kattintáskor.</translation>
<translation id="8907580949721785412">A Chromium megkísérli megjeleníteni a jelszavakat. Ennek engedélyezéséhez írja be Windows-jelszavát.</translation>
-<translation id="8941642502866065432">A Chromium nem frissíthető</translation>
+<translation id="8941642502866065432">Nem sikerült a Chromium frissítése</translation>
<translation id="894903460958736500">A számítógépén futó szoftver nem kompatibilis a Chromiummal.</translation>
<translation id="8968921422458636175">A Chromium a jelszót a(z) <ph name="SAVED_PASSWORD_LINK" /> szolgáltatás segítségével menti, így Önnek nem kell megjegyeznie.</translation>
<translation id="8974095189086268230">A Chromium OS létrejöttéhez további <ph name="BEGIN_LINK_CROS_OSS" />nyílt forráskódú szoftverek<ph name="END_LINK_CROS_OSS" /> is hozzájárultak.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_kn.xtb b/chromium/chrome/app/resources/chromium_strings_kn.xtb
index 3dafe18d8c5..e9dd1fcaf89 100644
--- a/chromium/chrome/app/resources/chromium_strings_kn.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_kn.xtb
@@ -209,7 +209,7 @@
<translation id="7747138024166251722">ಸà³à²¥à²¾à²ªà²•à²•à³à²•à³† ತಾತà³à²•à²¾à²²à²¿à²• ಡೈರೆಕà³à²Ÿà²°à²¿à²¯à²¨à³à²¨à³ ರಚಿಸಲಾಗಲಿಲà³à²². ಸಾಫà³à²Ÿà³à²µà³‡à²°à³ ಸà³à²¥à²¾à²ªà²¨à³† ಮಾಡಲೠಮà³à²•à³à²¤ ಡಿಸà³à²•à³ ಜಾಗ ಮತà³à²¤à³ ಅನà³à²®à²¤à²¿à²—ಾಗಿ ದಯವಿಟà³à²Ÿà³ ಪರಿಶೀಲಿಸಿ.</translation>
<translation id="7756122083761163394">ಈ ಸಾಧನದಿಂದ ಈ ವà³à²¯à²•à³à²¤à²¿à²¯ ಬà³à²°à³Œà²¸à²¿à²‚ಗೠಮಾಡಿದ ಡೇಟಾವನà³à²¨à³ ಅಳಿಸಲಾಗà³à²¤à³à²¤à²¦à³†. ಡೇಟಾವನà³à²¨à³ ಮರà³à²ªà²¡à³†à²¦à³à²•à³Šà²³à³à²³à²²à³, $2 ರಂತೆ Chrome ಗೆ ಸೈನೠಇನೠಮಾಡಿ.</translation>
<translation id="7774736947049807614">ದೃಢೀಕರಣ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²µà³ ವಿಫಲವಾಗಿದೆ. ಹೆಚà³à²šà²¿à²¨ ಮಾಹಿತಿಗಾಗಿ ಪà³à²¨à²ƒ Chromium <ph name="USER_NAME" /> ಗೆ ಸೈನà³â€Œ ಇನà³â€Œ ಮಾಡಿ ಅಥವಾ ನಿಮà³à²® ನಿರà³à²µà²¾à²¹à²•à²° ಅನà³à²¨à³ ಸಂಪರà³à²•à²¿à²¸à²¿. <ph name="ADDITIONAL_EXPLANATION" /></translation>
-<translation id="7867198900892795913">Chromium ಗೆ ಇತà³à²¤à³€à²šà²¿à²¨ ಆವೃತà³à²¤à²¿à²—ೆ ಅಪà³â€Œà²¡à³‡à²Ÿà³ ಆಗಲೠಸಾಧà³à²¯à²µà²¾à²—ಲಿಲà³à²², ಈ ಮೂಲಕ ನೀವೠಹೊಸ ವೈಶಿಷà³à²Ÿà³à²¯à²—ಳೠಮತà³à²¤à³ ಭದà³à²°à²¤à³† ಸರಿಪಡಿಸà³à²µà²¿à²•à³†à²—ಳನà³à²¨à³ ಕಳೆದà³à²•à³Šà²³à³à²³à³à²¤à³à²¤à²¿à²°à²¬à²¹à³à²¦à³.</translation>
+<translation id="7867198900892795913">Chromium ಗೆ ಇತà³à²¤à³€à²šà²¿à²¨ ಆವೃತà³à²¤à²¿à²—ೆ ಅಪà³â€Œà²¡à³‡à²Ÿà³ ಮಾಡಲೠಸಾಧà³à²¯à²µà²¾à²—ಲಿಲà³à²², ಈ ಮೂಲಕ ನೀವೠಹೊಸ ವೈಶಿಷà³à²Ÿà³à²¯à²—ಳೠಮತà³à²¤à³ ಭದà³à²°à²¤à³† ಸರಿಪಡಿಸà³à²µà²¿à²•à³†à²—ಳನà³à²¨à³ ಕಳೆದà³à²•à³Šà²³à³à²³à³à²¤à³à²¤à²¿à²°à²¬à²¹à³à²¦à³.</translation>
<translation id="7937630085815544518"><ph name="USER_EMAIL_ADDRESS" /> ನಂತೆ Chromium ಅನà³à²¨à³ ನೀವೠಸೈನೠಇನೠಮಾಡಿರà³à²µà²¿à²°à²¿. ದಯವಿಟà³à²Ÿà³ ಮತà³à²¤à³† ಸೈನೠಇನೠಮಾಡಲೠಅದೇ ಖಾತೆಯನà³à²¨à³ ಬಳಸಿ.</translation>
<translation id="795025003224538582">ಮರà³à²ªà³à²°à²¾à²°à²‚ಭಿಸಬೇಡಿ</translation>
<translation id="7962572577636132072">Chromium ಸà³à²µà²¯à²‚ಚಾಲಿತವಾಗಿ ನವೀಕರಣಗೊಳà³à²³à³à²¤à³à²¤à²¦à³† ಈ ಮೂಲಕ ನೀವೠಯಾವಾಗಲೂ ತಾಜಾ ಆವೃತà³à²¤à²¿à²¯à²¨à³à²¨à³ ಹೊಂದಿರà³à²¤à³à²¤à³€à²°à²¿.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_ml.xtb b/chromium/chrome/app/resources/chromium_strings_ml.xtb
index 143c7beb206..d17b7e5ddd4 100644
--- a/chromium/chrome/app/resources/chromium_strings_ml.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_ml.xtb
@@ -218,7 +218,7 @@
<translation id="7747138024166251722">ഇനàµâ€à´¸àµà´±àµà´±à´¾à´³à´±à´¿à´¨àµ ഒരൠതാലàµâ€à´•àµà´•à´¾à´²à´¿à´• ഡയറകàµâ€Œà´Ÿà´±à´¿ സൃഷàµâ€Œà´Ÿà´¿à´•àµà´•à´¾à´¨àµâ€ à´•à´´à´¿à´žàµà´žà´¿à´²àµà´². സോഫàµà´±àµà´±àµâ€Œà´µàµ†à´¯à´°àµâ€ ഇനàµâ€à´¸àµà´±àµà´±à´¾à´³àµâ€ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´¸àµà´µà´¤à´¨àµà´¤àµà´°à´®à´¾à´¯ à´¡à´¿à´¸àµà´•àµ à´¸àµà´¥à´²à´µàµà´‚ à´…à´¨àµà´®à´¤à´¿à´¯àµà´‚ പരിശോധികàµà´•àµà´•.</translation>
<translation id="7756122083761163394">à´ˆ ഉപകരണതàµà´¤à´¿àµ½ നിനàµà´¨àµ à´ˆ à´µàµà´¯à´•àµâ€Œà´¤à´¿à´¯àµà´Ÿàµ† ‌ബàµà´°àµ—സിംഗൠഡാറàµà´± ഇലàµà´²à´¾à´¤à´¾à´•àµà´•àµà´‚. ഡാറàµà´± ‌വീണàµà´Ÿàµ†à´Ÿàµà´•àµà´•à´¾àµ», $2 à´Žà´¨àµà´¨à´¤à´¾à´¯à´¿ Chrome-ൽ സൈൻ ഇൻ ‌ചെയàµà´¯àµà´•.</translation>
<translation id="7774736947049807614">സർടàµà´Ÿà´¿à´«à´¿à´•àµà´•à´±àµà´±àµ പരിശോധിചàµà´šàµà´±à´ªàµà´ªà´¿à´•àµà´•àµ½ പരാജയപàµà´ªàµ†à´Ÿàµà´Ÿàµ. Google Chromium-à´¤àµà´¤à´¿àµ½ <ph name="USER_NAME" /> ആയി വീണàµà´Ÿàµà´‚ സൈൻ ഇൻ ചെയàµà´¯àµà´• à´…à´²àµà´²àµ†à´™àµà´•à´¿àµ½ കൂടàµà´¤àµ½ വിവരങàµà´™àµ¾à´•àµà´•àµ നിങàµà´™à´³àµà´Ÿàµ† à´…à´¡àµâ€Œà´®à´¿à´¨à´¿à´¸àµâ€Œà´Ÿàµà´°àµ‡à´±àµà´±à´±àµ† ബനàµà´§à´ªàµà´ªàµ†à´Ÿàµà´•. <ph name="ADDITIONAL_EXPLANATION" /></translation>
-<translation id="7867198900892795913">à´à´±àµà´±à´µàµà´‚ à´ªàµà´¤à´¿à´¯ പതിപàµà´ªà´¿à´²àµ‡à´•àµà´•àµ Chromium à´…à´ªàµâ€Œà´¡àµ‡à´±àµà´±àµ ചെയàµà´¯à´¾à´¨à´¾à´¯à´¿à´²àµà´², അതിനാൽ à´ªàµà´¤à´¿à´¯ ഫീചàµà´šà´±àµà´•à´³àµà´‚ à´¸àµà´°à´•àµà´· പരിഹാരങàµà´™à´³àµà´‚ നിങàµà´™àµ¾à´•àµà´•àµ ലഭിചàµà´šà´¿à´Ÿàµà´Ÿà´¿à´²àµà´².</translation>
+<translation id="7867198900892795913">à´à´±àµà´±à´µàµà´‚ à´ªàµà´¤à´¿à´¯ പതിപàµà´ªà´¿à´²àµ‡à´•àµà´•àµ Chromium à´…à´ªàµâ€Œà´¡àµ‡à´±àµà´±àµ ചെയàµà´¯à´¾à´¨à´¾à´¯à´¿à´²àµà´², അതിനാൽ à´ªàµà´¤à´¿à´¯ ഫീചàµà´šà´±àµà´•à´³àµà´‚ à´¸àµà´°à´•àµà´·à´¾ പരിഹാരങàµà´™à´³àµà´‚ നിങàµà´™àµ¾à´•àµà´•àµ ലഭികàµà´•àµà´¨àµà´¨à´¿à´²àµà´².</translation>
<translation id="7937630085815544518">Chromium-à´¤àµà´¤à´¿àµ½Â à´¨à´¿à´™àµà´™àµ¾ <ph name="USER_EMAIL_ADDRESS" /> à´Žà´¨àµà´¨à´¾à´¯à´¿ സൈൻ ഇൻ ചെയàµâ€Œà´¤àµ. വീണàµà´Ÿàµà´‚ സൈൻ ഇൻ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµ സമാന à´…à´•àµà´•àµ—à´£àµà´Ÿàµ ഉപയോഗികàµà´•àµà´•.</translation>
<translation id="795025003224538582">à´ªàµà´¨à´ƒà´°à´¾à´°à´‚à´­à´¿à´•àµà´•à´°àµà´¤àµ</translation>
<translation id="7962572577636132072">Chromium à´¸àµà´µà´¯à´®àµ‡à´µ à´…à´ªàµâ€Œà´¡àµ‡à´±àµà´±àµà´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾àµ½, നിങàµà´™à´³àµà´Ÿàµ‡à´¤àµ à´Žà´²àµà´²à´¾à´¯àµà´ªàµà´ªàµ‹à´´àµà´‚ à´à´±àµà´±à´µàµà´‚ à´ªàµà´¤à´¿à´¯ പതിപàµà´ªà´¾à´¯à´¿à´°à´¿à´•àµà´•àµà´‚.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_mr.xtb b/chromium/chrome/app/resources/chromium_strings_mr.xtb
index d4ba8d400ed..d854f68f0a8 100644
--- a/chromium/chrome/app/resources/chromium_strings_mr.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_mr.xtb
@@ -47,7 +47,7 @@
<translation id="2572494885440352020">Chromium मदतनीस</translation>
<translation id="2587578672395088481">अपडेट लागू करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ Chromium OS रीसà¥à¤Ÿà¤¾à¤°à¥à¤Ÿ करणे आवशà¥à¤¯à¤• आहे.</translation>
<translation id="2647554856022461007">Chromium आपला बà¥à¤°à¤¾à¤‰à¤à¤¿à¤‚ग अनà¥à¤­à¤µ सà¥à¤§à¤¾à¤°à¤£à¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ वेब सेवा वापरू शकते. आपण या सेवा वैकलà¥à¤ªà¤¿à¤•à¤ªà¤£à¥‡ अकà¥à¤·à¤® करू शकता. <ph name="BEGIN_LINK" />अधिक जाणून घà¥à¤¯à¤¾<ph name="END_LINK" /></translation>
-<translation id="2648074677641340862">सà¥â€à¤¥à¤¾à¤ªà¤¨à¥‡à¤¦à¤°à¤®à¥â€à¤¯à¤¾à¤¨ ऑपरेटिंग पà¥à¤°à¤£à¤¾à¤²à¥€ तà¥à¤°à¥à¤Ÿà¥€ आली. कृपया Chromium पà¥à¤¨à¥â€à¤¹à¤¾ डाउनलोड करा.</translation>
+<translation id="2648074677641340862">सà¥â€à¤¥à¤¾à¤ªà¤¨à¥‡à¤¦à¤°à¤®à¥â€à¤¯à¤¾à¤¨ ऑपरेटिंग पà¥à¤°à¤£à¤¾à¤²à¥€ à¤à¤°à¤° आली. कृपया Chromium पà¥à¤¨à¥â€à¤¹à¤¾ डाउनलोड करा.</translation>
<translation id="2685838254101182273">Chromium ने अपडेट करणे थांबविले आहे आणि हे आपलà¥à¤¯à¤¾ ऑपरेटिंग पà¥à¤°à¤£à¤¾à¤²à¥€à¤šà¥à¤¯à¤¾ या आवृतà¥à¤¤à¥€à¤šà¥‡ यापà¥à¤¢à¥‡ समरà¥à¤¥à¤¨ करत नाही.</translation>
<translation id="2711502716910134313">Chromium टॅब</translation>
<translation id="2718390899429598676">अतिरिकà¥à¤¤ सà¥à¤°à¤•à¥à¤·à¤¿à¤¤à¤¤à¥‡à¤¸à¤¾à¤ à¥€, Chromium आपला डेटा कूटबदà¥à¤§ करेल.</translation>
@@ -153,7 +153,7 @@
<translation id="59625444380784159">आपलà¥à¤¯à¤¾ संपरà¥à¤•à¤¾à¤‚कडील तपशील आपलà¥à¤¯à¤¾à¤²à¤¾ Chromium मधà¥à¤¯à¥‡ अधिक दà¥à¤°à¥à¤¤à¤ªà¤£à¥‡ फॉरà¥à¤® भरणà¥à¤¯à¤¾à¤¸ मदत करू शकतात.</translation>
<translation id="5987687638152509985">संकालित करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ Chromium अपडेट करा</translation>
<translation id="6055895534982063517">Chromium ची नवीन आवृतà¥à¤¤à¥€ उपलबà¥à¤§ आहे आणि ही नेहमीपेकà¥à¤·à¤¾ जलद आहे.</translation>
-<translation id="608189560609172163">साइन इन करणà¥à¤¯à¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¥€ आलà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ Chromium आपला डेटा संकालित करू शकले नाही.</translation>
+<translation id="608189560609172163">साइन इन करणà¥à¤¯à¤¾à¤¤ à¤à¤°à¤° आलà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ Chromium आपला डेटा संकालित करू शकले नाही.</translation>
<translation id="6129621093834146363"><ph name="FILE_NAME" /> धोकादायक आहे, तà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ Chromium ने ते अवरोधित केले आहे.</translation>
<translation id="6212496753309875659">या संगणकावर आधीपासून Chromium ची अगदी अलीकडील आवृतà¥à¤¤à¥€ आहे. सॉफà¥â€à¤Ÿà¤µà¥‡à¤…र कारà¥à¤¯ करत नसलà¥â€à¤¯à¤¾à¤¸, कृपया Chromium विसà¥â€à¤¥à¤¾à¤ªà¤¿à¤¤ करा आणि पà¥à¤¨à¥â€à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥â€à¤¨ करा.</translation>
<translation id="6248213926982192922">Chromium ला डीफॉलà¥â€à¤Ÿ बà¥à¤°à¤¾à¤‰à¤à¤° बनवा</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_ms.xtb b/chromium/chrome/app/resources/chromium_strings_ms.xtb
index 2d2714be265..8b68b0d3560 100644
--- a/chromium/chrome/app/resources/chromium_strings_ms.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_ms.xtb
@@ -215,7 +215,7 @@ Sila semak e-mel anda di <ph name="ACCOUNT_EMAIL" /> untuk arahan lanjut.</trans
<translation id="7747138024166251722">Pemasang tidak dapat mencipta direktori sementara. Sila semak ruang cakera kosong dan kebenaran untuk memasang perisian.</translation>
<translation id="7756122083761163394">Data semakan imbas orang ini akan dipadamkan daripada peranti ini. Untuk memulihkan data itu, log masuk ke Chrome sebagai $2.</translation>
<translation id="7774736947049807614">Sijil pengesahan gagal. Sila log masuk ke Chromium sekali lagi sebagai <ph name="USER_NAME" /> atau hubungi pentadbir anda untuk mendapatkan maklumat lanjut. <ph name="ADDITIONAL_EXPLANATION" /></translation>
-<translation id="7867198900892795913">Chromium tidak dapat mengemas kini kepada versi terkini, maka anda terlepas ciri baharu dan tampalan keselamatan.</translation>
+<translation id="7867198900892795913">Chromium tidak dapat mengemas kini kepada versi terkini, maka anda terlepas ciri baharu dan penyelesaian keselamatan.</translation>
<translation id="7937630085815544518">Anda telah log masuk ke Chromium sebagai <ph name="USER_EMAIL_ADDRESS" />. Sila gunakan akaun yang sama untuk log masuk lagi.</translation>
<translation id="795025003224538582">Jangan mulakan semula</translation>
<translation id="7962572577636132072">Chromium dikemas kini secara automatik supaya anda sentiasa mempunyai versi yang terbaharu.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_nl.xtb b/chromium/chrome/app/resources/chromium_strings_nl.xtb
index 31383020471..9c6a9ea5d1c 100644
--- a/chromium/chrome/app/resources/chromium_strings_nl.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_nl.xtb
@@ -249,7 +249,7 @@ Controleer je e-mail op <ph name="ACCOUNT_EMAIL" /> voor verdere instructies.</t
<translation id="8851136666856101339">hoofd</translation>
<translation id="8862326446509486874">Je hebt geen rechten om op systeemniveau te installeren. Meld je aan als beheerder en voer het installatieprogramma opnieuw uit.</translation>
<translation id="8897323336392112261">Hiermee wordt ook gecontroleerd welke pagina wordt weergegeven wanneer je Chromium start of op de knop 'Homepage' klikt.</translation>
-<translation id="8907580949721785412">Chromium probeert wachtwoorden weer te geven. Geef uw Windows-wachtwoord op om dit toe te staan.</translation>
+<translation id="8907580949721785412">Chromium probeert wachtwoorden weer te geven. Geef je Windows-wachtwoord op om dit toe te staan.</translation>
<translation id="8941642502866065432">Kan Chromium niet updaten</translation>
<translation id="894903460958736500">De software op je computer is niet compatibel met Chromium.</translation>
<translation id="8968921422458636175">Chromium slaat dit wachtwoord op met <ph name="SAVED_PASSWORD_LINK" />. Je hoeft het niet te onthouden.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_pl.xtb b/chromium/chrome/app/resources/chromium_strings_pl.xtb
index 3ebaee2282c..7755ce26fdf 100644
--- a/chromium/chrome/app/resources/chromium_strings_pl.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_pl.xtb
@@ -213,7 +213,7 @@ Więcej instrukcji znajdziesz w e-mailu wysłanym na adres <ph name="ACCOUNT_EM
<translation id="7747138024166251722">Instalator nie mógł utworzyć katalogu tymczasowego. Sprawdź, czy na dysku jest dość wolnego miejsca oraz sprawdź, czy posiadasz uprawnienia do instalowania programów.</translation>
<translation id="7756122083761163394">Dane przeglądania tej osoby zostaną usunięte z tego urządzenia. Aby je odzyskać, zaloguj się w Chrome jako $2.</translation>
<translation id="7774736947049807614">Błąd certyfikatu uwierzytelniania. Jeszcze raz zaloguj się w Chromium jako <ph name="USER_NAME" /> lub skontaktuj się z administratorem, by uzyskać więcej informacji. <ph name="ADDITIONAL_EXPLANATION" /></translation>
-<translation id="7867198900892795913">Aktualizacja Chromium do najnowszej wersji nie udała się, więc nie masz dostępu do najnowszych funkcji i poprawek zabezpieczeń.</translation>
+<translation id="7867198900892795913">Aktualizacja Chromium do najnowszej wersji nie udała się, więc nie masz dostępu do najnowszych funkcji i poprawek zabezpieczeń.</translation>
<translation id="7937630085815544518">Byłeś zalogowany w Chromium jako <ph name="USER_EMAIL_ADDRESS" />. Zaloguj się ponownie, korzystając z tego samego konta.</translation>
<translation id="795025003224538582">Nie uruchamiaj ponownie</translation>
<translation id="7962572577636132072">Chromium aktualizuje się automatycznie, więc zawsze masz najnowszą wersję.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_pt-BR.xtb b/chromium/chrome/app/resources/chromium_strings_pt-BR.xtb
index 1e39184b000..bf3982e196d 100644
--- a/chromium/chrome/app/resources/chromium_strings_pt-BR.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_pt-BR.xtb
@@ -90,7 +90,7 @@
<translation id="4050175100176540509">Melhorias de segurança importantes e novos recursos estão disponíveis na versão mais recente.</translation>
<translation id="407254336480250557">Selecione o <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation>
<translation id="4077262827416206768">Feche todas as janelas do Chromium e reinicie o Chromium para que a alteração entre em vigor.</translation>
-<translation id="4207043877577553402"><ph name="BEGIN_BOLD" />Aviso:<ph name="END_BOLD" /> O Chromium não pode impedir que as extensões gravem seu histórico de navegação. Para desativar esta extensão no modo sem rastros, desmarque esta opção.</translation>
+<translation id="4207043877577553402"><ph name="BEGIN_BOLD" />Aviso:<ph name="END_BOLD" /> O Chromium não pode impedir que as extensões gravem seu histórico de navegação. Para desativar esta extensão no modo de navegação anônima, desmarque esta opção.</translation>
<translation id="421369550622382712">Descubra ótimos aplicativos, jogos, extensões e temas para o Chromium.</translation>
<translation id="4222580632002216401">Agora, você está conectado ao Chromium. A sincronização está desativada por seu administrador.</translation>
<translation id="4224199872375172890">O Chromium está atualizado.</translation>
@@ -243,7 +243,7 @@ Verifique seu e-mail em <ph name="ACCOUNT_EMAIL" /> para ver mais instruções.<
<translation id="8862326446509486874">Você não tem os direitos adequados para instalação no nível do sistema. Tente executar o instalador novamente como administrador.</translation>
<translation id="8897323336392112261">Controla também qual página deve ser exibida quando você inicia o Chromium ou clica no botão "Página inicial".</translation>
<translation id="8907580949721785412">O Chromium está tentando mostrar senhas. Digite sua senha do Windows para permitir isso.</translation>
-<translation id="8941642502866065432">Não foi possível atualizar o Chromium</translation>
+<translation id="8941642502866065432">Não é possível atualizar o Chromium</translation>
<translation id="894903460958736500">O software que está sendo executado em seu computador não é compatível com o Chromium.</translation>
<translation id="8968921422458636175">O Chromium salvará essa senha com <ph name="SAVED_PASSWORD_LINK" />. Você não precisa se lembrar dela.</translation>
<translation id="8974095189086268230">O Chromium OS tornou-se possível graças a um <ph name="BEGIN_LINK_CROS_OSS" />software de código aberto<ph name="END_LINK_CROS_OSS" /> adicional.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_pt-PT.xtb b/chromium/chrome/app/resources/chromium_strings_pt-PT.xtb
index e48e63e214b..b020a8a1aee 100644
--- a/chromium/chrome/app/resources/chromium_strings_pt-PT.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_pt-PT.xtb
@@ -248,7 +248,7 @@ Para obter mais instruções, verifique o seu email em <ph name="ACCOUNT_EMAIL"
<translation id="8862326446509486874">Não tem os direitos adequados para uma instalação ao nível do sistema. Tente executar o programa de instalação novamente como Administrador.</translation>
<translation id="8897323336392112261">Também controla a página apresentada quando inicia o Chromium ou clica no botão Página Inicial.</translation>
<translation id="8907580949721785412">O Chromium está a tentar mostrar palavras-passe. Escreva a sua palavra-passe do Windows para permitir esta ação.</translation>
-<translation id="8941642502866065432">Não é possível atualizar o Chromium</translation>
+<translation id="8941642502866065432">Não é possível atualizar o Chromium.</translation>
<translation id="894903460958736500">O software em execução no seu computador é incompatível com o Chromium.</translation>
<translation id="8968921422458636175">O Chromium vai guardar esta palavra-passe com o <ph name="SAVED_PASSWORD_LINK" />. Não tem de a memorizar.</translation>
<translation id="8974095189086268230">O lançamento do SO Chromium foi possível devido a <ph name="BEGIN_LINK_CROS_OSS" />software de código aberto<ph name="END_LINK_CROS_OSS" /> adicional.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_sk.xtb b/chromium/chrome/app/resources/chromium_strings_sk.xtb
index 90582dcbee3..fac442a0451 100644
--- a/chromium/chrome/app/resources/chromium_strings_sk.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_sk.xtb
@@ -217,7 +217,7 @@ Ak chcete profilu <ph name="NEW_PROFILE_NAME" /> zabrániÅ¥ pristupovaÅ¥ do váÅ
<translation id="7747138024166251722">InÅ¡talátor nemohol vytvoriÅ¥ doÄasný prieÄinok. Skontrolujte úroveň zaplnenia disku a povolenie na inÅ¡taláciu softvéru.</translation>
<translation id="7756122083761163394">Dáta prehliadania tejto osoby sa odstránia zo zariadenia. Ak chcete dáta obnoviť, prihláste sa do Chromu ako $2.</translation>
<translation id="7774736947049807614">Certifikát na overenie totožnosti zlyhal. Prihláste sa znova do prehliadaÄa Chromium ako <ph name="USER_NAME" /> alebo kontaktuje správcu a požiadajte ho o ÄalÅ¡ie informácie. <ph name="ADDITIONAL_EXPLANATION" /></translation>
-<translation id="7867198900892795913">Chromium sa napodarilo aktualizovaÅ¥ na najnovÅ¡iu verziu. K dispozícii tak nie sú niektoré nové funkcie a bezpeÄnostné opravy.</translation>
+<translation id="7867198900892795913">Chromium sa nepodarilo aktualizovaÅ¥ na najnovÅ¡iu verziu. K dispozícii tak nie sú niektoré nové funkcie ani bezpeÄnostné opravy.</translation>
<translation id="7937630085815544518">Do prehliadaÄa Chromium ste boli prihlásený/-á ako <ph name="USER_EMAIL_ADDRESS" />. Ak sa chcete prihlásiÅ¥ znova, použite rovnaký úÄet.</translation>
<translation id="795025003224538582">Nereštartovať</translation>
<translation id="7962572577636132072">Chromium sa aktualizuje automaticky, aby ste mali vždy k dispozícii najnovšiu verziu.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_sv.xtb b/chromium/chrome/app/resources/chromium_strings_sv.xtb
index 49cdc2baefc..ad7e666ac63 100644
--- a/chromium/chrome/app/resources/chromium_strings_sv.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_sv.xtb
@@ -217,7 +217,7 @@ Ytterligare anvisningar har skickats med e-post till dig på <ph name="ACCOUNT_E
<translation id="7747138024166251722">Det gick inte att skapa en tillfällig katalog för installationsfilen. Kontrollera diskutrymmet och att du har behörighet att installera program.</translation>
<translation id="7756122083761163394">Den här personens webbinformation raderas från enheten. Om du vill återställa informationen loggar du in i Chrome som $2.</translation>
<translation id="7774736947049807614">Autentiseringscertifikatet fungerade inte. Logga in i Chromium igen som <ph name="USER_NAME" /> eller kontakta administratören. <ph name="ADDITIONAL_EXPLANATION" /></translation>
-<translation id="7867198900892795913">Det gick inte att uppdatera Chromium till den senaste versionen, så du går miste om nya funktioner och säkerhetskorrigeringar.</translation>
+<translation id="7867198900892795913">Det gick inte att uppdatera Chromium till den senaste versionen. Därför går du miste om nya funktioner och säkerhetskorrigeringar.</translation>
<translation id="7937630085815544518">Du var inloggad i Chromium som <ph name="USER_EMAIL_ADDRESS" />. Använd samma konto när du loggar in igen.</translation>
<translation id="795025003224538582">Starta inte om</translation>
<translation id="7962572577636132072">Chromium uppdateras automatiskt så att du alltid har den senaste versionen.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_sw.xtb b/chromium/chrome/app/resources/chromium_strings_sw.xtb
index d7f6f917517..e1725067b3b 100644
--- a/chromium/chrome/app/resources/chromium_strings_sw.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_sw.xtb
@@ -216,7 +216,7 @@ Tafadhali angalia barua pepe yako katika <ph name="ACCOUNT_EMAIL" /> upate maagi
<translation id="7747138024166251722">Kisakinishi hakikuweza kuunda saraka la muda. Tafadhali chunguza nafasi iliyo wazi kwenye diski na ruhusa ya kusakinisha programu.</translation>
<translation id="7756122083761163394">Data ya kuvinjari ya mtu huyu itafutwa kwenye kifaa hiki. Ili kurejesha data, ingia katika Chrome ukitumia $2.</translation>
<translation id="7774736947049807614">Cheti hakijathibitishwa. Tafadhali ingia katika Chromium tena ukitumia <ph name="USER_NAME" /> au uwasiliane na msimamizi wako kwa maelezo zaidi. <ph name="ADDITIONAL_EXPLANATION" /></translation>
-<translation id="7867198900892795913">Chromium imeshindwa kusasisha toleo jipya, kwa hivyo hutapata vipengele vipya na masasisho ya usalama.</translation>
+<translation id="7867198900892795913">Chromium imeshindwa kusasisha toleo jipya, kwa hivyo hutapata masasisho ya usalama na vipengele vipya.</translation>
<translation id="7937630085815544518">Uliingia kwenye Chromium kama <ph name="USER_EMAIL_ADDRESS" />. Tafadhali tumia akaunti hiyo hiyo kuingia tena.</translation>
<translation id="795025003224538582">Usianzishe upya</translation>
<translation id="7962572577636132072">Chromium husasisha kiotomatiki, kwa hivyo, utakuwa na toleo jipya zaidi wakati wowote.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_ta.xtb b/chromium/chrome/app/resources/chromium_strings_ta.xtb
index 67584c59294..c8b1721e972 100644
--- a/chromium/chrome/app/resources/chromium_strings_ta.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_ta.xtb
@@ -215,7 +215,7 @@
<translation id="7747138024166251722">தறà¯à®•à®¾à®²à®¿à®• டைரகà¯à®Ÿà®°à®¿à®¯à¯ˆ நிறà¯à®µà®¿à®¯à®¾à®²à¯ உரà¯à®µà®¾à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ. வடà¯à®Ÿà¯ இடம௠காலியாக உளà¯à®³à®¤à®¾, மெனà¯à®ªà¯Šà®°à¯à®³à¯ˆ நிறà¯à®µà¯à®µà®¤à®±à¯à®•à¯ தகà¯à®¨à¯à®¤ அனà¯à®®à®¤à®¿ உளà¯à®³à®¤à®¾ எனà¯à®ªà®¤à¯ˆ சரிபாரà¯à®•à¯à®•à®µà¯à®®à¯.</translation>
<translation id="7756122083761163394">இவரின௠உலாவல௠தரவ௠சாதனதà¯à®¤à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ நீகà¯à®•à®ªà¯à®ªà®Ÿà¯à®®à¯. தரவை மீடà¯à®Ÿà¯†à®Ÿà¯à®•à¯à®•, Chrome இல௠$2 ஆக உளà¯à®¨à¯à®´à¯ˆà®¯à®µà¯à®®à¯.</translation>
<translation id="7774736947049807614">à®…à®™à¯à®•à¯€à®•à®¾à®°à®šà¯ சானà¯à®±à®¿à®¤à®´à¯ தோலà¯à®µà®¿. மீணà¯à®Ÿà¯à®®à¯ Chromium இல௠<ph name="USER_NAME" /> ஆக உளà¯à®¨à¯à®´à¯ˆà®¯à®µà¯à®®à¯ அலà¯à®²à®¤à¯ நிரà¯à®µà®¾à®•à®¿à®¯à¯ˆà®¤à¯ தொடரà¯à®ªà¯à®•à¯Šà®£à¯à®Ÿà¯, கூடà¯à®¤à®²à¯ தகவலைப௠பெறவà¯à®®à¯. <ph name="ADDITIONAL_EXPLANATION" /></translation>
-<translation id="7867198900892795913">Chromium சமீபதà¯à®¤à®¿à®¯ பதிபà¯à®ªà®¿à®±à¯à®•à¯à®ªà¯ பà¯à®¤à¯à®ªà¯à®ªà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ. இதனால௠பà¯à®¤à®¿à®¯ à®…à®®à¯à®šà®™à¯à®•à®³à¯ˆà®¯à¯à®®à¯ பாதà¯à®•à®¾à®ªà¯à®ªà¯à®¤à¯ திரà¯à®¤à¯à®¤à®™à¯à®•à®³à¯ˆà®¯à¯à®®à¯ தவறவிடà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à¯.</translation>
+<translation id="7867198900892795913">Chromium சமீபதà¯à®¤à®¿à®¯ பதிபà¯à®ªà®¿à®±à¯à®•à¯à®ªà¯ பà¯à®¤à¯à®ªà¯à®ªà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ எனà¯à®ªà®¤à®¾à®²à¯, பà¯à®¤à®¿à®¯ à®…à®®à¯à®šà®™à¯à®•à®³à¯ˆà®¯à¯à®®à¯ பாதà¯à®•à®¾à®ªà¯à®ªà¯à®¤à¯ திரà¯à®¤à¯à®¤à®™à¯à®•à®³à¯ˆà®¯à¯à®®à¯ தவறவிடà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à¯.</translation>
<translation id="7937630085815544518">Chromium இல௠<ph name="USER_EMAIL_ADDRESS" /> ஆக உளà¯à®¨à¯à®´à¯ˆà®¨à¯à®¤à®¿à®°à¯à®¨à¯à®¤à¯€à®°à¯à®•à®³à¯. மீணà¯à®Ÿà¯à®®à¯ உளà¯à®¨à¯à®´à¯ˆà®¯ அதே கணகà¯à®•à¯ˆà®ªà¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯.</translation>
<translation id="795025003224538582">மறà¯à®¤à¯Šà®Ÿà®•à¯à®•à®®à¯ வேணà¯à®Ÿà®¾à®®à¯</translation>
<translation id="7962572577636132072">Chromium தானாகவே பà¯à®¤à¯à®ªà¯à®ªà®¿à®¤à¯à®¤à¯à®•à¯à®•à¯Šà®³à¯à®µà®¤à®¾à®²à¯, எபà¯à®ªà¯‹à®¤à¯à®®à¯‡ பà¯à®¤à®¿à®¯ பதிபà¯à®ªà¯ˆà®ªà¯ பெறà¯à®µà¯€à®°à¯à®•à®³à¯.</translation>
diff --git a/chromium/chrome/app/resources/chromium_strings_th.xtb b/chromium/chrome/app/resources/chromium_strings_th.xtb
index c51d9a836d7..bec1b35c04f 100644
--- a/chromium/chrome/app/resources/chromium_strings_th.xtb
+++ b/chromium/chrome/app/resources/chromium_strings_th.xtb
@@ -215,7 +215,7 @@ Chromium ไม่สามารถà¸à¸¹à¹‰à¸„ืนà¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„à¹
<translation id="7747138024166251722">โปรà¹à¸à¸£à¸¡à¸•à¸´à¸”ตั้งสร้างไดเรà¸à¸—อรีชั่วคราวไม่ได้ โปรดตรวจสอบพื้นที่ดิสà¸à¹Œà¸§à¹ˆà¸²à¸‡à¹à¸¥à¸°à¸à¸²à¸£à¸­à¸™à¸¸à¸à¸²à¸•à¹ƒà¸«à¹‰à¸•à¸´à¸”ตั้งซอฟต์à¹à¸§à¸£à¹Œ</translation>
<translation id="7756122083761163394">ระบบจะลบข้อมูลà¸à¸²à¸£à¸—่องเว็บของบุคคลนี้ออà¸à¸ˆà¸²à¸à¸­à¸¸à¸›à¸à¸£à¸“์นี้ หาà¸à¸•à¹‰à¸­à¸‡à¸à¸²à¸£à¸à¸¹à¹‰à¸‚้อมูลคืน ให้ลงชื่อเข้าใช้ Chrome ในชื่อ $2</translation>
<translation id="7774736947049807614">à¸à¸²à¸£à¸£à¸±à¸šà¸£à¸­à¸‡à¸à¸²à¸£à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸šà¸ªà¸´à¸—ธิ์ล้มเหลว โปรดลงชื่อเข้าใช้ Chromium ด้วย <ph name="USER_NAME" /> อีà¸à¸„รั้ง หรือสอบถามข้อมูลเพิ่มเติมจาà¸à¸œà¸¹à¹‰à¸”ูà¹à¸¥à¸£à¸°à¸šà¸š <ph name="ADDITIONAL_EXPLANATION" /></translation>
-<translation id="7867198900892795913">Chromium ไม่สามารถอัปเดตเป็นเวอร์ชันล่าสุดได้ คุณจึงไม่ได้รับฟีเจอร์ใหม่à¹à¸¥à¸°à¸à¸²à¸£à¹à¸à¹‰à¹„ขด้านความปลอดภัย</translation>
+<translation id="7867198900892795913">Chromium อัปเดตเป็นเวอร์ชันล่าสุดไม่ได้ คุณจึงไม่ได้รับฟีเจอร์ใหม่à¹à¸¥à¸°à¸à¸²à¸£à¹à¸à¹‰à¹„ขด้านความปลอดภัย</translation>
<translation id="7937630085815544518">คุณเคยลงชื่อเข้าใช้ Chromium ในชื่อ <ph name="USER_EMAIL_ADDRESS" /> โปรดใช้บัà¸à¸Šà¸µà¹€à¸”ิมเพื่อลงชื่อเข้าใช้อีà¸à¸„รั้ง</translation>
<translation id="795025003224538582">ไม่ต้องรีสตาร์ท</translation>
<translation id="7962572577636132072">Chromium จะอัปเดตโดยอัตโนมัติเพื่อให้คุณได้ใช้เวอร์ชันใหม่ล่าสุดอยู่เสมอ</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_am.xtb b/chromium/chrome/app/resources/generated_resources_am.xtb
index 259b0db39be..df9986ffce9 100644
--- a/chromium/chrome/app/resources/generated_resources_am.xtb
+++ b/chromium/chrome/app/resources/generated_resources_am.xtb
@@ -14,7 +14,7 @@
<translation id="1016566241875885511">ተጨማሪ መረጃ (ከተáˆáˆˆáŒˆ)</translation>
<translation id="1017280919048282932">&amp;ወደ መá‹áŒˆá‰  ቃላት አክáˆ</translation>
<translation id="1018656279737460067">ተሰርዟáˆ</translation>
-<translation id="102272308210570439">ረዳት በእርስዎ ማያ ገጽ ላይ ያለá‹áŠ• áŠáŒˆáˆ­ እንዲጠቀሠይáቀዱ</translation>
+<translation id="102272308210570439">ረዳት በማያ ገጽዎ ላይ ያለá‹áŠ• áŠáŒˆáˆ­ እንዲጠቀሠይáቀዱ</translation>
<translation id="1026822031284433028">áˆáˆµáˆ አክáˆ</translation>
<translation id="1029317248976101138">ማጉሊያ</translation>
<translation id="1031362278801463162">ቅድመ-እይታን በመጫን ላይ</translation>
@@ -2421,7 +2421,7 @@
<translation id="4759238208242260848">የወረዱ</translation>
<translation id="4761104368405085019">ማይክáŽáˆ®áŠ•á‹ŽáŠ• ይጠቀማáˆ</translation>
<translation id="4762718786438001384">የመሣሪያ የዲስክ ቦታ እጅጠበጣሠá‹á‰…ተኛ áŠá‹</translation>
-<translation id="4763408175235639573">ይህን ገጽ ሲያዩት የሚከተሉት ኩኪዎች ተዋቅረዋáˆ</translation>
+<translation id="4763408175235639573">ይህን ገጽ ሲመለከቱት የሚከተሉት ኩኪዎች ተቀናብረዋáˆ</translation>
<translation id="4763830802490665879">ሲወጣ ከበርካታ ጣቢያዎች የመጡ ኩኪዎች ይጸዳሉá¢</translation>
<translation id="4768332406694066911">እርስዎን የሚለዩ ከእáŠá‹šáˆ… ድርጅቶች የመጡ የዕá‹á‰…ና ማረጋገጫዎች አለዎት</translation>
<translation id="4776917500594043016">የ<ph name="USER_EMAIL_ADDRESS" /> ይለá ቃáˆ</translation>
@@ -2800,7 +2800,7 @@
<translation id="5337771866151525739">በሶስተኛ ወገን የተጫáŠá¢</translation>
<translation id="5338503421962489998">አካባቢያዊ ማከማቻ</translation>
<translation id="5340217413897845242">የመደርደሪያ ንጥሠ6</translation>
-<translation id="5341793073192892252">የሚከተሉት ኩኪዎች ታáŒá‹°á‹‹áˆ (የሶስተኛ ወገን ኩኪዎች ሳይገለሉ እየታገዱ ናቸá‹)</translation>
+<translation id="5341793073192892252">የሚከተሉት ኩኪዎች ታáŒá‹°á‹‹áˆ (የሦስተኛ ወገን ኩኪዎች ሳይገለáŒáˆ‰ እየታገዱ ናቸá‹)</translation>
<translation id="5341980496415249280">እባክዎ ይጠብá‰á£ በመጠቅለሠላይ...</translation>
<translation id="5342091991439452114">á’ን ቢያንስ <ph name="MINIMUM" /> አኃዞች መሆን አለበት</translation>
<translation id="534916491091036097">áŒáˆ« ቅንá</translation>
@@ -3024,6 +3024,7 @@
<translation id="5678955352098267522">የእርስዎን á‹áˆ‚ብ በ<ph name="WEBSITE_1" /> ላይ ያንብቡ</translation>
<translation id="5684661240348539843">የእሴት ለይቶ ማወቂያ</translation>
<translation id="5687326903064479980">የጊዜ ሰቅ</translation>
+<translation id="5689516760719285838">አካባቢ</translation>
<translation id="56907980372820799">á‹áˆ‚ብ አገናáŠ</translation>
<translation id="5691511426247308406">ቤተሰብ</translation>
<translation id="5691596662111998220">á‹á‹­á£ <ph name="FILE_NAME" /> ከአáˆáŠ• በኋላ የለáˆá¢</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_ar.xtb b/chromium/chrome/app/resources/generated_resources_ar.xtb
index 78d9e83d3b5..84328a026c1 100644
--- a/chromium/chrome/app/resources/generated_resources_ar.xtb
+++ b/chromium/chrome/app/resources/generated_resources_ar.xtb
@@ -14,7 +14,7 @@
<translation id="1016566241875885511">معلومات إضاÙية (اختياري)</translation>
<translation id="1017280919048282932">Ø¥&amp;ضاÙØ© التعبير إلى القاموس</translation>
<translation id="1018656279737460067">تم الإلغاء</translation>
-<translation id="102272308210570439">السماح للمساعد باستخدام العناصر الموجودة على الشاشة</translation>
+<translation id="102272308210570439">السماح للمساعد باستخدام العناصر المتوÙرة على الشاشة</translation>
<translation id="1026822031284433028">تحميل صورة</translation>
<translation id="1029317248976101138">تكبير/تصغير</translation>
<translation id="1031362278801463162">تحميل المعاينة</translation>
@@ -38,7 +38,7 @@
<translation id="1049926623896334335">â€Ù…ستند Word</translation>
<translation id="1054153489933238809">Ùتح الصورة الأصلية ÙÙŠ علامة تبويب جديدة</translation>
<translation id="1055806300943943258">â€Ø¬Ø§Ø±Ù البحث عن أجهزة Bluetooth ÙˆUSB...</translation>
-<translation id="1056775291175587022">لم يتم العثور على شبكات</translation>
+<translation id="1056775291175587022">لم يتم العثور على أي شبكات.</translation>
<translation id="1056898198331236512">تحذير</translation>
<translation id="1058262162121953039">PUK</translation>
<translation id="1058418043520174283"><ph name="INDEX" /> من <ph name="COUNT" /></translation>
@@ -158,7 +158,7 @@
<translation id="1225177025209879837">جار٠معالجة الطلب...</translation>
<translation id="1225211345201532184">عنصر الر٠5</translation>
<translation id="1225404570112441414">أض٠هذا الموقع إلى الر٠لاستخدامه ÙÙŠ أي وقت.</translation>
-<translation id="1227507814927581609">أخÙقت المصادقة أثناء الاتصال بالجهاز "<ph name="DEVICE_NAME" />".</translation>
+<translation id="1227507814927581609">تعذّرت المصادقة أثناء الاتصال بالجهاز "<ph name="DEVICE_NAME" />".</translation>
<translation id="1230807973377071856">قائمة النظام</translation>
<translation id="1232569758102978740">بلا عنوان</translation>
<translation id="1233721473400465416">اللغة</translation>
@@ -326,7 +326,7 @@
<translation id="1497522201463361063">تعذرت إعادة تسمية "<ph name="FILE_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
<translation id="1500297251995790841">جهاز غير معرو٠[<ph name="VENDOR_ID" />:<ph name="PRODUCT_ID" />]</translation>
<translation id="1503394326855300303">يجب أن يكون حساب المالك هذا أول حساب يتم تسجيل الدخول إليه ÙÙŠ جلسة تسجيل دخول متعدد.</translation>
-<translation id="1503914375822320413">أخÙقت عملية النسخ، خطأ غير متوقع: $1</translation>
+<translation id="1503914375822320413">تعذّر إتمام عملية النسخ، خطأ غير متوقع: $1</translation>
<translation id="150411034776756821">إزالة <ph name="SITE" /></translation>
<translation id="1504682556807808151">هل تريد من <ph name="PASSWORD_MANAGER_BRAND" /> Ø­Ùظ كلمة المرور لهذا الموقع؟</translation>
<translation id="1506061864768559482">محرك البحث</translation>
@@ -798,7 +798,7 @@
<translation id="222949136907494149">يريد <ph name="URL" /> استخدام موقع جهاز الكمبيوتر.</translation>
<translation id="2230051135190148440">CHAP</translation>
<translation id="2230062665678605299">تعذر إنشاء المجلد "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
-<translation id="223106756035922488">انقر لعرض رسومات الشعار المبتكرة لهذا اليوم</translation>
+<translation id="223106756035922488">انقر لعرض رسومات الشعار المبتكرة لهذا اليوم.</translation>
<translation id="2231238007119540260">ÙÙŠ حالة حذ٠شهادة الخادم، تتم استعادة العمليات المعتادة للتحقق من الأمان لذلك الخادم وسيتطلب الأمر استخدامه لشهادة صالحة.</translation>
<translation id="2231990265377706070">علامة تعجب</translation>
<translation id="2232876851878324699">احتوى المل٠على شهادة واحدة، لم يتم استيرادها:</translation>
@@ -978,7 +978,7 @@
<translation id="2509495747794740764">يجب أن تمثل قيمة التدرج رقمًا يتراوح بين 10 و200.</translation>
<translation id="2515586267016047495">Alt</translation>
<translation id="251662399991179012">دعنا نختبر <ph name="DEVICE_TYPE" /></translation>
-<translation id="2517472476991765520">بحث</translation>
+<translation id="2517472476991765520">Ùحص</translation>
<translation id="2518024842978892609">استخدام شهادات العملاء لديك</translation>
<translation id="2520644704042891903">ÙÙŠ انتظار توÙر منÙØ°...</translation>
<translation id="252219247728877310">لم يتم تحديث المÙكوّن</translation>
@@ -1013,7 +1013,7 @@
<translation id="2570000010887652771">تم Ø­Ùظ البيانات.</translation>
<translation id="2570648609346224037">حدثت مشكلة أثناء تنزيل صورة الاستعادة.</translation>
<translation id="257088987046510401">المظاهر</translation>
-<translation id="2571964818629181240">â€Ø¥ØºÙ„اق Firefox قبل الاستيراد</translation>
+<translation id="2571964818629181240">â€Ø¥ØºÙ„اق متصÙّح Firefox قبل الاستيراد</translation>
<translation id="2572032849266859634">تم منح إذن دخول للقراءة Ùقط إلى <ph name="VOLUME_NAME" />.</translation>
<translation id="2573269395582837871">اختر صورة واسمًا</translation>
<translation id="2574102660421949343">تم السماح بملÙات تعري٠الارتباط الواردة من <ph name="DOMAIN" />.</translation>
@@ -1200,7 +1200,7 @@
<translation id="2815500128677761940">شريط الإشارات</translation>
<translation id="2815693974042551705">مجلد الإشارات المرجعية</translation>
<translation id="2818476747334107629">تÙاصيل الطابعة</translation>
-<translation id="2820957248982571256">جار٠البحث...</translation>
+<translation id="2820957248982571256">جار٠الÙحص...</translation>
<translation id="2822634587701817431">تقليص/توسيع</translation>
<translation id="2825758591930162672">المÙتاح العام للجهة لصاحب الشهادة</translation>
<translation id="2828650939514476812">â€Ø§Ù„اتصال بشبكة Wi-Fi</translation>
@@ -1563,7 +1563,7 @@
<translation id="3358935496594837302">â€ØªØ¹Ø°Ù‘ر العثور على هاتÙÙƒ. تأكد من أنك تستخدم هات٠Android متواÙقًا وأنه قيد التشغيل ÙˆÙÙŠ متناول يديك. &lt;a&gt;مزيد من المعلومات&lt;/a&gt;</translation>
<translation id="3359256513598016054">القيود على سياسة الشهادة</translation>
<translation id="335985608243443814">تصÙÙ‘ÙŽØ­...</translation>
-<translation id="3360297538363969800">أخÙقت الطباعة. ÙŠÙرجى التحقق من الطابعة وإعادة المحاولة.</translation>
+<translation id="3360297538363969800">تعذّرت الطباعة. ÙŠÙرجى التحقق من الطابعة وإعادة المحاولة.</translation>
<translation id="3364721542077212959">أدوات قلم الشاشة</translation>
<translation id="336497260564123876">â€ØªÙ… Ø­Ùظ كلمة المرور. للحصول على كلمات المرور على جميع أجهزتك، سجّÙÙ„ الدخول إلى Chrome.</translation>
<translation id="3367813778245106622">تسجيل الدخول مرة أخرى لبدء المزامنة</translation>
@@ -1641,7 +1641,7 @@
<translation id="3473479545200714844">مكبّر الشاشة</translation>
<translation id="3475447146579922140">â€Ø¬Ø¯ÙˆÙ„ بيانات Google</translation>
<translation id="3475843873335999118">عذرًا، لا يزال التعرّÙ٠على بصمة الإصبع متعذّرًا. ÙŠÙرجى إدخال كلمة المرور.</translation>
-<translation id="347670947055184738">عÙوًا! أخÙÙ‚ النظام ÙÙŠ جلب السياسة لجهازك.</translation>
+<translation id="347670947055184738">عÙوًا! تعذّر النظام ÙÙŠ جلب السياسة لجهازك.</translation>
<translation id="347785443197175480">مواصلة إتاحة دخول <ph name="HOST" /> إلى الكاميرا والميكروÙون التابعين لك</translation>
<translation id="3478685642445675458">ÙŠÙرجى إلغاء Ù‚ÙÙ„ ملÙÙƒ الشخصي قبل إزالة شخص.</translation>
<translation id="3479552764303398839">ليس الآن</translation>
@@ -1994,7 +1994,7 @@
<translation id="4008291085758151621">â€Ù…علومات الموقع غير متاحة ÙÙŠ VR</translation>
<translation id="4010917659463429001">للحصول على الإشارات المرجعية على جهازك الجوّال، <ph name="GET_IOS_APP_LINK" />.</translation>
<translation id="4014432863917027322">هل ترغب ÙÙŠ إصلاح "<ph name="EXTENSION_NAME" />"ØŸ</translation>
-<translation id="4020106588733303597">عÙوًا! أخÙÙ‚ النظام ÙÙŠ تحميل التراخيص المتاحة.</translation>
+<translation id="4020106588733303597">عÙوًا! تعذّر النظام ÙÙŠ تحميل التراخيص المتاحة.</translation>
<translation id="4021279097213088397">–</translation>
<translation id="4022426551683927403">Ø¥&amp;ضاÙØ© إلى القاموس</translation>
<translation id="4023146161712577481">جار٠تحديد تكوين الجهاز.</translation>
@@ -2168,7 +2168,7 @@
<translation id="4333854382783149454">â€PKCS #1 SHA-1 مع تشÙير RSA</translation>
<translation id="4335713051520279344">ستتم إعادة تعيين هذا الكمبيوتر ÙÙŠ خلال ثانية واحدة.
اضغط على أي Ù…Ùتاح لمتابعة الاستكشاÙ.</translation>
-<translation id="4336032328163998280">أخÙقت عملية النسخ. <ph name="ERROR_MESSAGE" /></translation>
+<translation id="4336032328163998280">تعذّر إتمام عملية النسخ. <ph name="ERROR_MESSAGE" /></translation>
<translation id="4336979451636460645">لسجلات الشبكة، راجع: <ph name="DEVICE_LOG_LINK" /></translation>
<translation id="4337028641069424358">â€Ù„تنزيل تطبيقات Android واستخدامها، تحتاج أولاً إلى تثبت التحديث. وأثناء تحديث الجهاز، لا يمكنك استخدامه. ستتم إعادة تشغيل جهاز <ph name="DEVICE_TYPE" /> بعد إكمال التحديث.</translation>
<translation id="4340515029017875942"><ph name="ORIGIN" /> يريد التواصل مع التطبيق "<ph name="EXTENSION_NAME" />"</translation>
@@ -2255,7 +2255,7 @@
<translation id="4501530680793980440">تأكيد الإزالة</translation>
<translation id="4504940961672722399">استخدم هذه الإضاÙØ© بالنقر على هذا الرمز أو بالضغط على <ph name="EXTENSION_SHORTCUT" />.</translation>
<translation id="4508051413094283164">Ùتح الكل ÙÙŠ ناÙذة التصÙØ­ المتخÙÙŠ</translation>
-<translation id="4508265954913339219">أخÙقت عملية التنشيط</translation>
+<translation id="4508265954913339219">تعذّر إتمام عملية التنشيط</translation>
<translation id="4508765956121923607">عرض الم&amp;صدر</translation>
<translation id="4509017836361568632">إلغاء الصورة</translation>
<translation id="4513946894732546136">تعليقات</translation>
@@ -2322,7 +2322,7 @@
<translation id="4610637590575890427">هل قصدت الذهاب إلى الموقع <ph name="SITE" />؟</translation>
<translation id="4611114513649582138">اتصال البيانات متاح</translation>
<translation id="4613271546271159013">لقد غيّرت الإضاÙØ© الصÙحة المعروضة عندما Ùتحت علامة تبويب جديدة.</translation>
-<translation id="4615586811063744755">لم يتم تحديد أي ملÙات تعري٠ارتباط</translation>
+<translation id="4615586811063744755">لم يتم تحديد أي ملÙات تعري٠ارتباط.</translation>
<translation id="4617270414136722281">خيارات الإضاÙات</translation>
<translation id="4618990963915449444">سيتم مسح كل الملÙات على <ph name="DEVICE_NAME" />.</translation>
<translation id="4619615317237390068">علامات التبويب من الأجهزة الأخرى</translation>
@@ -2417,7 +2417,7 @@
<translation id="4759238208242260848">التنزيلات</translation>
<translation id="4761104368405085019">استخدام الميكروÙون</translation>
<translation id="4762718786438001384">مساحة القرص على الجهاز منخÙضة للغاية</translation>
-<translation id="4763408175235639573">تم تعيين ملÙات تعري٠الارتباط التالية عندما تم عرض هذه الصÙحة</translation>
+<translation id="4763408175235639573">تم تعيين ملÙات تعري٠الارتباط التالية عند عرض هذه الصÙحة</translation>
<translation id="4763830802490665879">سيتم محو ملÙات تعري٠الارتباط من مواقع متعددة عند الخروج.</translation>
<translation id="4768332406694066911">لديك شهادات تحدد هويتك من هذه المؤسسات</translation>
<translation id="4776917500594043016">كلمة مرور <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -2673,7 +2673,7 @@
<ph name="LINE_BREAKS" />
قد تؤدي إزالة جهازك أثناء وجوده قيد الاستخدام إلى Ùقدان البيانات. ÙŠÙرجى الانتظار حتى انتهاء العملية، ثم إخراج الجهاز باستخدام تطبيق الملÙات.</translation>
<translation id="5160857336552977725">سجّل الدخول إلى <ph name="DEVICE_TYPE" /></translation>
-<translation id="5163869187418756376">أخÙقت المشاركة. تحقق من اتصالك وأعد المحاولة لاحقًا.</translation>
+<translation id="5163869187418756376">تعذّرت المشاركة. تحقق من اتصالك وأعد المحاولة لاحقًا.</translation>
<translation id="5170477580121653719">â€Ø§Ù„مساحة المتبقية ÙÙŠ Google Drive: <ph name="SPACE_AVAILABLE" />.</translation>
<translation id="5170568018924773124">العرض ÙÙŠ المجلد</translation>
<translation id="5171045022955879922">â€Ø§Ù„بحث أو إدخال عنوان URL</translation>
@@ -2742,7 +2742,7 @@
<translation id="5264252276333215551">ÙŠÙرجى الاتصال بالإنترنت لتشغيل التطبيق ÙÙŠ وضع الكشك.</translation>
<translation id="5265562206369321422">ÙÙŠ وضع عدم الاتصال لمدة تتجاوز أسبوعًا</translation>
<translation id="5266113311903163739">خطأ استيراد مرجع مصدق</translation>
-<translation id="5269977353971873915">أخÙقت الطباعة</translation>
+<translation id="5269977353971873915">تعذّرت الطباعة</translation>
<translation id="5271549068863921519">Ø­Ùظ كلمة المرور</translation>
<translation id="5275194674756975076">مواÙÙ‚ØŒ تحديث</translation>
<translation id="5275352920323889391">كلب</translation>
@@ -2795,7 +2795,7 @@
<translation id="5337771866151525739">تم التثبيت من جهة خارجية.</translation>
<translation id="5338503421962489998">تخزين محلي</translation>
<translation id="5340217413897845242">عنصر الر٠6</translation>
-<translation id="5341793073192892252">تم حظر ملÙات تعري٠الارتباط التالية (يتم حظر ملÙات تعري٠الارتباط التي تنتمي لجهات خارجية دون استثناء)</translation>
+<translation id="5341793073192892252">تم حظر ملÙات تعري٠الارتباط التالية (يتم حظر ملÙات تعري٠الارتباط التي تنتمي إلى جهات خارجية بدون استثناء)</translation>
<translation id="5341980496415249280">ÙŠÙرجى الانتظار، جار٠التعبئة...</translation>
<translation id="5342091991439452114">يجب أن يتكوَّن رقم التعري٠الشخصي من <ph name="MINIMUM" /> من الأرقام على الأقل</translation>
<translation id="534916491091036097">قوس أيسر</translation>
@@ -2864,7 +2864,7 @@
<translation id="5438224778284622050">هل تريد حذ٠الملÙات ÙÙŠ وضع عدم الاتصال؟</translation>
<translation id="5438430601586617544">(تم ÙÙƒ الحزمة)</translation>
<translation id="544083962418256601">إنشاء اختصارات...</translation>
-<translation id="5442550868130618860">تشغيل التحديث التلقائي</translation>
+<translation id="5442550868130618860">تÙعيل التحديث التلقائي</translation>
<translation id="5446983216438178612">عرض الشهادات للمؤسسة</translation>
<translation id="5448293924669608770">عÙوًا، حدث خطأ ما عند تسجيل الدخول</translation>
<translation id="5449551289610225147">كلمة المرور غير صالحة</translation>
@@ -2966,7 +2966,7 @@
<translation id="5583640892426849032">Backspace</translation>
<translation id="5585118885427931890">تعذر إنشاء مجلد إشارة.</translation>
<translation id="558563010977877295">Ùتح صÙحة محددة أو مجموعة صÙحات</translation>
-<translation id="5585912436068747822">أخÙقت عملية التنسيق</translation>
+<translation id="5585912436068747822">تعذّر إتمام عملية التنسيق</translation>
<translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation>
<translation id="558918721941304263">جار٠تحميل التطبيقات...</translation>
<translation id="5592595402373377407">لم تتوÙر بيانات كاÙية بعد.</translation>
@@ -3019,6 +3019,7 @@
<translation id="5678955352098267522">قراءة بياناتك على <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">معرّ٠الأصول</translation>
<translation id="5687326903064479980">المنطقة الزمنية</translation>
+<translation id="5689516760719285838">الموقع</translation>
<translation id="56907980372820799">ربط البيانات</translation>
<translation id="5691511426247308406">العائلة</translation>
<translation id="5691596662111998220">عذرًا، لم يعد <ph name="FILE_NAME" /> متوÙرًا.</translation>
@@ -3304,7 +3305,7 @@
<translation id="6143186082490678276">الحصول على مساعدة</translation>
<translation id="6144938890088808325">â€Ø³Ø§Ø¹Ø¯Ù†Ø§ ÙÙŠ تحسين أجهزة Chromebook</translation>
<translation id="6146563240635539929">مقاطع Ùيديو</translation>
-<translation id="6147020289383635445">أخÙقت معاينة الطباعة.</translation>
+<translation id="6147020289383635445">تعذّرت معاينة الطباعة.</translation>
<translation id="6150853954427645995">لحÙظ هذا المل٠للاستخدام ÙÙŠ وضع عدم الاتصال، عاود الاتصال بالإنترنت، وانقر بزر الماوس الأيمن على الملÙØŒ ثم حدد الخيار <ph name="OFFLINE_CHECKBOX_NAME" />.</translation>
<translation id="6151323131516309312">اضغط على <ph name="SEARCH_KEY" /> للبحث ÙÙŠ الموقع <ph name="SITE_NAME" /></translation>
<translation id="6151771661215463137">المل٠موجود Ùعلاً ÙÙŠ مجلد التنزيل.</translation>
@@ -3415,7 +3416,7 @@
<translation id="6315493146179903667">إحضار الكل للمقدمة</translation>
<translation id="6316806695097060329">تم تصميم جهاز <ph name="SHORT_PRODUCT_NAME" /> هذا ليمنحك Ø£Ùضل تجربة على الويب.</translation>
<translation id="6317369057005134371">جار٠انتظار ناÙذة التطبيق...</translation>
-<translation id="6322279351188361895">أخÙقت قراءة المÙتاح الخاص.</translation>
+<translation id="6322279351188361895">تعذّرت قراءة المÙتاح الخاص.</translation>
<translation id="6325191661371220117">تعطيل التشغيل التلقائي</translation>
<translation id="6326175484149238433">â€Ø¥Ø²Ø§Ù„Ø© من Chrome</translation>
<translation id="6326855256003666642">عدد مرات التحقق من الاتصال</translation>
@@ -3960,7 +3961,7 @@
<translation id="7154130902455071009">تغيير الصÙحة الرئيسية إلى: <ph name="START_PAGE" /></translation>
<translation id="7155171745945906037">صورة حالية من الكاميرا أو الملÙ</translation>
<translation id="7156235233373189579">â€ØªÙ… تصميم هذا المل٠لجهاز كمبيوتر يستخدم برنامج Windows. وهذا البرنامج غير متواÙÙ‚ مع جهازك الذي يعمل بنظام تشغيل Chrome. ÙŠÙرجى البحث ÙÙŠ <ph name="BEGIN_LINK" />سوق Chrome الإلكتروني<ph name="END_LINK" /> للحصول على تطبيق بديل مناسب.<ph name="BEGIN_LINK_HELP" />مزيد من المعلومات<ph name="END_LINK_HELP" /></translation>
-<translation id="7165320105431587207">أخÙقت تهيئة الشبكة</translation>
+<translation id="7165320105431587207">تعذّرت تهيئة الشبكة</translation>
<translation id="716640248772308851">"<ph name="EXTENSION" />" يمكنها قراءة ملÙات الصور والÙيديو والصوت ÙÙŠ المواقع المحددة.</translation>
<translation id="7167486101654761064">Ùت&amp;Ø­ هذا النوع من الملÙّات دائمًا</translation>
<translation id="716810439572026343">جار٠تنزيل <ph name="FILE_NAME" /></translation>
@@ -3998,7 +3999,7 @@
<translation id="7228479291753472782">معالجة الإعدادات التي تحدد ما إذا كان بإمكان مواقع الويب استخدام ميزات مثل المواقع الجغراÙية والميكروÙون والكاميرا، وغيرها</translation>
<translation id="7229570126336867161">â€ÙŠÙ„زم توÙر EVDO</translation>
<translation id="7230787553283372882">تخصيص حجم النَّص</translation>
-<translation id="7232750842195536390">أخÙقت إعادة التسمية</translation>
+<translation id="7232750842195536390">تعذّرت إعادة التسمية</translation>
<translation id="7238585580608191973">â€Ø¨ØµÙ…Ø© أصبع SHA-256</translation>
<translation id="7240120331469437312">الاسم البديل لصاحب الشهادة</translation>
<translation id="7240339475467890413">هل تريد الاتصال بنقطة اتصال جديدة؟</translation>
@@ -4037,7 +4038,7 @@
<translation id="7295019613773647480">تمكين المستخدمين الخاضعين للإشراÙ</translation>
<translation id="7295662345261934369">المشاركة مع الآخرين</translation>
<translation id="7296774163727375165">بنود <ph name="DOMAIN" /></translation>
-<translation id="7297443947353982503">â€Ø§Ø³Ù… المستخدم/كلمة المرور غير صحيحة أو أخÙقت مصادقة EAP</translation>
+<translation id="7297443947353982503">â€Ø§Ø³Ù… المستخدم/كلمة المرور غير صحيحة أو تعذّرت مصادقة EAP</translation>
<translation id="729761647156315797">اختيار اللغة ولوحة المÙاتيح</translation>
<translation id="7299337219131431707">تمكين تصÙØ­ الضيÙ</translation>
<translation id="730515362922783851">تبادل البيانات مع أي جهاز على الشبكة المحلية أو الإنترنت</translation>
@@ -4450,7 +4451,7 @@
<translation id="7968833647796919681">تمكين جمع بيانات عن مستوى الأداء</translation>
<translation id="7972714317346275248">â€PKCS #1 SHA-384 مع تشÙير RSA</translation>
<translation id="7973320858902175766">أداة تصحيح المÙكوّنات</translation>
-<translation id="7973962044839454485">â€Ø£Ø®Ùقت مصادقة PPP نظرًا لوجود خطأ ÙÙŠ اسم المستخدم أو كلمة المرور</translation>
+<translation id="7973962044839454485">â€ØªØ¹Ø°Ù‘رت مصادقة PPP نظرًا لوجود خطأ ÙÙŠ اسم المستخدم أو كلمة المرور</translation>
<translation id="7974566588408714340">إعادة المحاولة باستخدام <ph name="EXTENSIONNAME" /></translation>
<translation id="7974936243149753750">الخروج عن إطار الشاشة</translation>
<translation id="7977551819349545646">â€Ø¬Ø§Ø±Ù تحديث جهاز Chromebox...</translation>
@@ -4672,7 +4673,7 @@
<translation id="8294431847097064396">المصدر</translation>
<translation id="8297006494302853456">ضعيÙØ©</translation>
<translation id="8299319456683969623">أنت غير متصل حاليًا.</translation>
-<translation id="8300849813060516376">â€Ø£Ø®Ùقت OTASP</translation>
+<translation id="8300849813060516376">â€ØªØ¹Ø°Ù‘رت OTASP</translation>
<translation id="8307376264102990850">الشحن وحساب الوقت حتى ملء البطارية</translation>
<translation id="8308179586020895837">الرجوع إليك عند رغبة <ph name="HOST" /> ÙÙŠ الدخول إلى الكاميرا</translation>
<translation id="830868413617744215">تجريبي</translation>
@@ -4710,7 +4711,7 @@
<translation id="8378285435971754261">â€Ø§Ù„سماح لخدمة الموقع من Google بمساعدة التطبيقات ÙÙŠ العثور على موقعك بسرعة وبدقة، الأمر الذي يمكن أن يحد من استهلاك البطارية. وسيتم إرسال بيانات الموقع المجهولة الهوية إلى GoogleØŒ حتى ÙÙŠ حالة عدم تشغيل أي تطبيقات. <ph name="BEGIN_LINK1" />مزيد من المعلومات<ph name="END_LINK1" /></translation>
<translation id="8381179624334829711">إدارة إعدادات الكاميرا...</translation>
<translation id="8382913212082956454">نسخ عنوان البريد الإل&amp;كتروني</translation>
-<translation id="8386903983509584791">اكتمل البحث</translation>
+<translation id="8386903983509584791">اكتملت عملية الÙحص.</translation>
<translation id="8390029840652165810">ÙŠÙرجى التأكد من عمل اتصال الشبكة وإذا استمرت المشكلة، ÙÙŠÙرجى الخروج وإعادة تسجيل الدخول مرة أخرى لتحديث بيانات الاعتماد.</translation>
<translation id="8390449457866780408">الخادم غير متاح.</translation>
<translation id="8392234662362215700">â€Ø§Ù†Ù‚ر على Control-Shift-Space لتبديل تخطيط لوحة المÙاتيح.</translation>
@@ -4841,7 +4842,7 @@
<translation id="8620617069779373398">حالة التجوال</translation>
<translation id="8620765578342452535">تهيئة اتصالات الشبكة</translation>
<translation id="8623004009673949077">â€ÙŠØ¬Ø¨ أن يتم تثبيت التطبيق الذي يتضمن السمة الظاهرة "kiosk_only" ÙÙŠ وضع الكشك على نظام تشغيل Chrome.</translation>
-<translation id="8624205858755890468">يعمل على تمكين المساعد لعرض الإجراءات والتطبيقات والمعلومات ذات الصلة.</translation>
+<translation id="8624205858755890468">يعمل على تÙعيل "المساعد" لعرض الإجراءات والتطبيقات والمعلومات ذات الصلة.</translation>
<translation id="862542460444371744">&amp;الإضاÙات</translation>
<translation id="8627151598708688654">تحديد مصدر</translation>
<translation id="862727964348362408">معلقة</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_bg.xtb b/chromium/chrome/app/resources/generated_resources_bg.xtb
index 78de39f716e..82f3e2ab86e 100644
--- a/chromium/chrome/app/resources/generated_resources_bg.xtb
+++ b/chromium/chrome/app/resources/generated_resources_bg.xtb
@@ -2419,7 +2419,7 @@ http://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-featur
<translation id="4759238208242260848">ИзтеглÑниÑ</translation>
<translation id="4761104368405085019">Използване на микрофона ви</translation>
<translation id="4762718786438001384">ÐœÑÑтото на диÑка на уÑтройÑтвото е критично малко</translation>
-<translation id="4763408175235639573">При преглеждането на тази Ñтраница бÑха зададени Ñледните „биÑквитки“</translation>
+<translation id="4763408175235639573">Следните „биÑквитки“ бÑха зададени, когато разгледахте тази Ñтраница</translation>
<translation id="4763830802490665879">„БиÑквитките“ от нÑколко Ñайта ще бъдат изчиÑтени при изход.</translation>
<translation id="4768332406694066911">Имате идентифициращи ви Ñертификати от тези организации</translation>
<translation id="4776917500594043016">Парола за <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -3023,6 +3023,7 @@ http://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-featur
<translation id="5678955352098267522">Четене на данните ви от <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Идентификатор на актива</translation>
<translation id="5687326903064479980">ЧаÑова зона</translation>
+<translation id="5689516760719285838">МеÑтоположение</translation>
<translation id="56907980372820799">Свързване на данните</translation>
<translation id="5691511426247308406">СемейÑтво</translation>
<translation id="5691596662111998220">Ðми Ñега! Файлът „<ph name="FILE_NAME" />“ вече не ÑъщеÑтвува.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_bn.xtb b/chromium/chrome/app/resources/generated_resources_bn.xtb
index ecdfdf82cfe..671c567dad7 100644
--- a/chromium/chrome/app/resources/generated_resources_bn.xtb
+++ b/chromium/chrome/app/resources/generated_resources_bn.xtb
@@ -38,7 +38,7 @@
<translation id="1049926623896334335">Word document</translation>
<translation id="1054153489933238809">নতà§à¦¨ টà§à¦¯à¦¾à¦¬à§‡ আসল ছবিটি খà§à¦²à§à¦¨</translation>
<translation id="1055806300943943258">বà§à¦²à§à¦Ÿà§à¦¥ ও USB ডিভাইসগà§à¦²à¦¿à¦° জনà§à¦¯ অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ করা হচà§à¦›à§‡...</translation>
-<translation id="1056775291175587022">নেটওয়ারà§à¦• নেই</translation>
+<translation id="1056775291175587022">কোনও নেটওয়ারà§à¦• নেই</translation>
<translation id="1056898198331236512">সতরà§à¦•à¦¤à¦¾</translation>
<translation id="1058262162121953039">PUK</translation>
<translation id="1058418043520174283"><ph name="COUNT" />টির <ph name="INDEX" />টি</translation>
@@ -132,7 +132,7 @@
<translation id="1195447618553298278">অজানা তà§à¦°à§à¦Ÿà¦¿à§·</translation>
<translation id="1196338895211115272">বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত কী রপà§à¦¤à¦¾à¦¨à¦¿ করতে বà§à¦¯à¦°à§à¦¥à§·</translation>
<translation id="119738088725604856">সà§à¦•à§à¦°à§€à¦¨à¦¶à¦Ÿ উইনà§à¦¡à§‹</translation>
-<translation id="1197979282329025000"><ph name="PRINTER_NAME" /> মà§à¦¦à§à¦°à¦•à§‡à¦° মà§à¦¦à§à¦°à¦• দকà§à¦·à¦¤à¦¾ পà§à¦¨à¦°à§à¦¦à§à¦§à¦¾à¦°à§‡à¦° সময় à¦à¦•à¦Ÿà¦¿ তà§à¦°à§à¦Ÿà¦¿ ঘটেছে৷ à¦à¦‡ মà§à¦¦à§à¦°à¦• <ph name="CLOUD_PRINT_NAME" />-à¦à¦° সাথে নিবনà§à¦§à¦­à§à¦•à§à¦¤ করা যাবে না৷</translation>
+<translation id="1197979282329025000"><ph name="PRINTER_NAME" /> পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦°à§‡à¦° পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦° দকà§à¦·à¦¤à¦¾ পà§à¦¨à¦°à§à¦¦à§à¦§à¦¾à¦°à§‡à¦° সময় à¦à¦•à¦Ÿà¦¿ তà§à¦°à§à¦Ÿà¦¿ ঘটেছে৷ à¦à¦‡ পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦° <ph name="CLOUD_PRINT_NAME" />-à¦à¦° সাথে নিবনà§à¦§à¦­à§à¦•à§à¦¤ করা যাবে না৷</translation>
<translation id="1198271701881992799">আসà§à¦¨ শà§à¦°à§ করি</translation>
<translation id="1199232041627643649">পà§à¦°à¦¸à§à¦¥à¦¾à¦¨ করতে <ph name="KEY_EQUIVALENT" /> ধরে থাকà§à¦¨à§·</translation>
<translation id="119944043368869598">সব পরিষà§à¦•à¦¾à¦° করà§à¦¨</translation>
@@ -216,7 +216,7 @@
<translation id="132090119144658135">বিষয়বসà§à¦¤à§ মিল:</translation>
<translation id="1325040735987616223">সিসà§à¦Ÿà§‡à¦® আপডেট</translation>
<translation id="1326317727527857210">আপনার অনà§à¦¯ ডিভাইসগà§à¦²à¦¿ থেকে আপনার টà§à¦¯à¦¾à¦¬à¦—à§à¦²à¦¿ পেতে, Chrome ঠপà§à¦°à¦¬à§‡à¦¶ করà§à¦¨à¥¤</translation>
-<translation id="1327074568633507428">Google মেঘ মà§à¦¦à§à¦°à¦£à§‡ থাকা মà§à¦¦à§à¦°à¦•</translation>
+<translation id="1327074568633507428">Google কà§à¦²à¦¾à¦‰à¦¡ মà§à¦¦à§à¦°à¦£à§‡ থাকা পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦°</translation>
<translation id="1327977588028644528">গেটওয়ে</translation>
<translation id="1329584516321524826">à¦à¦–নই আপডেট করা হয়েছে</translation>
<translation id="1330145147221172764">অন-সà§à¦•à§à¦°à¦¿à¦¨ কীবোরà§à¦¡ সকà§à¦·à¦® করà§à¦¨</translation>
@@ -256,7 +256,7 @@
<translation id="1390548061267426325">নিয়মিত টà§à¦¯à¦¾à¦¬ রূপে খà§à¦²à§à¦¨</translation>
<translation id="1391097951247613150">যখন সà§à¦•à§à¦°à§€à¦¨ চালৠও আনলক অবসà§à¦¥à¦¾à§Ÿ থাকে তখন "Ok Google" বলà§à¦¨</translation>
<translation id="1391807639023934267">আরও দà§à¦°à§à¦¤ পৃষà§à¦ à¦¾ লোড হয়েছে।</translation>
-<translation id="1393283411312835250">সূরà§à¦¯ ও মেঘ</translation>
+<translation id="1393283411312835250">সূরà§à¦¯ ও কà§à¦²à¦¾à¦‰à¦¡</translation>
<translation id="1395262318152388157">সà§à¦²à¦¾à¦‡à¦¡à¦¾à¦° খà§à¦à¦œà§à¦¨</translation>
<translation id="1395730723686586365">আপডেটার শà§à¦°à§ হয়েছে</translation>
<translation id="1396139853388185343">পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦° সেট আপ করার সময় তà§à¦°à§à¦Ÿà¦¿ হয়েছে</translation>
@@ -440,7 +440,7 @@
<translation id="1650709179466243265">www. à¦à¦¬à¦‚ .com যà§à¦•à§à¦¤ করà§à¦¨ à¦à¦¬à¦‚ ঠিকানা খà§à¦²à§à¦¨</translation>
<translation id="1651008383952180276">আপনাকে à¦à¦•à¦‡ পাসফà§à¦°à§‡à¦œ অবশà§à¦¯à¦‡ দà§'বার লিখতে হবে</translation>
<translation id="1652972346408808053">পাসওয়ারà§à¦¡ সংরকà§à¦·à¦¿à¦¤ হয়েছে। যে কোনো ডিভাইস থেকে <ph name="SAVED_PASSWORDS_LINK" /> ঠগিয়ে আপনার পাসওয়ারà§à¦¡à¦—à§à¦²à¦¿ অà§à¦¯à¦¾à¦•à§à¦¸à§‡à¦¸ করà§à¦¨</translation>
-<translation id="1653526288038954982">{NUM_PRINTER,plural, =1{আপনি যাতে যেকোনো জায়গা থেকে পà§à¦°à¦¿à¦¨à§à¦Ÿ করতে পারেন সেই জনà§à¦¯ Google মেঘ পà§à¦°à¦¿à¦¨à§à¦Ÿà§‡ পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦°à¦Ÿà¦¿ যোগ করà§à¦¨à¥¤}one{আপনি যাতে যেকোনো জায়গা থেকে পà§à¦°à¦¿à¦¨à§à¦Ÿ করতে পারেন সেই জনà§à¦¯ Google মেঘ পà§à¦°à¦¿à¦¨à§à¦Ÿà§‡ #টি পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦° যোগ করà§à¦¨à¥¤}other{আপনি যাতে যেকোনো জায়গা থেকে পà§à¦°à¦¿à¦¨à§à¦Ÿ করতে পারেন সেই জনà§à¦¯ Google মেঘ পà§à¦°à¦¿à¦¨à§à¦Ÿà§‡ #টি পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦° যোগ করà§à¦¨à¥¤}}</translation>
+<translation id="1653526288038954982">{NUM_PRINTER,plural, =1{আপনি যাতে যেকোনো জায়গা থেকে পà§à¦°à¦¿à¦¨à§à¦Ÿ করতে পারেন সেই জনà§à¦¯ Google কà§à¦²à¦¾à¦‰à¦¡ পà§à¦°à¦¿à¦¨à§à¦Ÿà§‡ পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦°à¦Ÿà¦¿ যোগ করà§à¦¨à¥¤}one{আপনি যাতে যেকোনো জায়গা থেকে পà§à¦°à¦¿à¦¨à§à¦Ÿ করতে পারেন সেই জনà§à¦¯ Google কà§à¦²à¦¾à¦‰à¦¡ পà§à¦°à¦¿à¦¨à§à¦Ÿà§‡ #টি পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦° যোগ করà§à¦¨à¥¤}other{আপনি যাতে যেকোনো জায়গা থেকে পà§à¦°à¦¿à¦¨à§à¦Ÿ করতে পারেন সেই জনà§à¦¯ Google কà§à¦²à¦¾à¦‰à¦¡ পà§à¦°à¦¿à¦¨à§à¦Ÿà§‡ #টি পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦° যোগ করà§à¦¨à¥¤}}</translation>
<translation id="1657406563541664238">Google-ঠবà§à¦¯à¦¬à¦¹à¦¾à¦° পরিসংখà§à¦¯à¦¾à¦¨ à¦à¦¬à¦‚ কà§à¦°à§à¦¯à¦¾à¦¶ পà§à¦°à¦¤à¦¿à¦¬à§‡à¦¦à¦¨ সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦­à¦¾à¦¬à§‡ পাঠিয়ে <ph name="PRODUCT_NAME" />-কে সরà§à¦¬à§‹à¦¤à§à¦¤à¦® করে তà§à¦²à¦¤à§‡ সাহাযà§à¦¯ করà§à¦¨</translation>
<translation id="1658424621194652532">à¦à¦‡ পৃষà§à¦ à¦¾à¦Ÿà¦¿ আপনার মাইকà§à¦°à§‹à¦«à§‹à¦¨ অà§à¦¯à¦¾à¦•à§à¦¸à§‡à¦¸ করছে৷</translation>
<translation id="1661245713600520330">à¦à¦‡ পৃষà§à¦ à¦¾à¦Ÿà¦¿ মূল পà§à¦°à¦•à§à¦°à¦¿à¦¯à¦¼à¦¾ à¦à¦¬à¦‚ পরবরà§à¦¤à§€à¦•à¦¾à¦²à§‡ লোড করতে নিবনà§à¦§à§€à¦•à§ƒà¦¤ মডিউলগà§à¦²à¦¿à¦¤à§‡ লোড হওয়া সকল মডিউল তালিকাবদà§à¦§ করে৷</translation>
@@ -453,7 +453,7 @@
<translation id="1670399744444387456">পà§à¦°à¦¾à¦¥à¦®à¦¿à¦•</translation>
<translation id="1673103856845176271">নিরাপতà§à¦¤à¦¾à¦œà¦¡à¦¼à¦¿à¦¨ কারণে ফাইলটিতে অà§à¦¯à¦¾à¦•à§à¦¸à§‡à¦¸ করা যায়নি৷</translation>
<translation id="167832068858235403">আওয়াজ কমান</translation>
-<translation id="1679068421605151609">বিকাশকারী সরঞà§à¦œà¦¾à¦®à¦—à§à¦²à¦¿</translation>
+<translation id="1679068421605151609">ডেভেলপার সরঞà§à¦œà¦¾à¦®à¦—à§à¦²à¦¿</translation>
<translation id="1681120471812444678">মà§à¦¦à§à¦°à¦•à¦—à§à¦²à¦¿ যোগ করার জনà§à¦¯ সেট আপ করà§à¦¨...</translation>
<translation id="1682548588986054654">নতà§à¦¨ ছদà§à¦®à¦¬à§‡à¦¶à§€ উইনà§à¦¡à§‹</translation>
<translation id="1682889864035450286">ওয়েব বà§à¦°à¦¾à¦‰à¦œà¦¾à¦°</translation>
@@ -617,7 +617,7 @@
<translation id="1936157145127842922">ফোলà§à¦¡à¦¾à¦°à§‡ দেখান</translation>
<translation id="1937256809970138538">আপনার সà§à¦•à§à¦°à§€à¦¨ চালৠà¦à¦¬à¦‚ আনলক থাকাকালীন "Ok Google" বলà§à¦¨</translation>
<translation id="1940546824932169984">সংযà§à¦•à§à¦¤ ডিভাইস</translation>
-<translation id="1942765061641586207">চিতà§à¦°à§‡à¦° রেসà§à¦²à¦¿à¦‰à¦¶à¦¾à¦¨</translation>
+<translation id="1942765061641586207">চিতà§à¦°à§‡à¦° রেজোলিউশন</translation>
<translation id="1944921356641260203">আপডেট পাওয়া গেছে</translation>
<translation id="1951615167417147110">à¦à¦•à¦Ÿà¦¿ পৃষà§à¦ à¦¾ সà§à¦•à§à¦°à§‹à¦² করà§à¦¨</translation>
<translation id="1956050014111002555">ফাইলটিতে à¦à¦•à¦¾à¦§à¦¿à¦• শংসাপতà§à¦° রয়েছে, à¦à¦° মধà§à¦¯à§‡ কোনওটিই আমদানি করা হয়নি:</translation>
@@ -760,7 +760,7 @@
<translation id="2175607476662778685">দà§à¦°à§à¦¤ পà§à¦°à¦¬à¦°à§à¦¤à¦¨ দণà§à¦¡</translation>
<translation id="2177950615300672361">ছদà§à¦®à¦¬à§‡à¦¶à§€ টà§à¦¯à¦¾à¦¬: <ph name="TAB_NAME" /></translation>
<translation id="2178614541317717477">CA আপোস</translation>
-<translation id="218070003709087997">কতগà§à¦²à¦¿ কপি মà§à¦¦à§à¦°à¦£ হবে তা নিরà§à¦¦à¦¿à¦·à§à¦Ÿ করতে à¦à¦•à¦Ÿà¦¿ সংখà§à¦¯à¦¾ বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨ (১ থেকে ৯৯৯)।</translation>
+<translation id="218070003709087997">কতগà§à¦²à¦¿ কপি পà§à¦°à¦¿à¦¨à§à¦Ÿ হবে তা নিরà§à¦¦à¦¿à¦·à§à¦Ÿ করতে à¦à¦•à¦Ÿà¦¿ সংখà§à¦¯à¦¾ বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨ (১ থেকে ৯৯৯)।</translation>
<translation id="2187895286714876935">সারà§à¦­à¦¾à¦° শংসাপতà§à¦° আমদানি তà§à¦°à§à¦Ÿà¦¿</translation>
<translation id="2188881192257509750"><ph name="APPLICATION" /> খà§à¦²à§à¦¨</translation>
<translation id="2190069059097339078">ওয়াই ফাই শংসাপতà§à¦° সংগà§à¦°à¦¹à¦•à¦¾à¦°à§€</translation>
@@ -1012,7 +1012,7 @@
<translation id="2570000010887652771">ডেটা বাà¦à¦šà¦¾à¦¨à§‹ হয়েছে।</translation>
<translation id="2570648609346224037">পà§à¦¨à¦°à§à¦¦à§à¦§à¦¾à¦°à§‡à¦° ছবিটি ডাউনলোড করার সময় à¦à¦•à¦Ÿà¦¿ তà§à¦°à§à¦Ÿà¦¿ হয়েছিল</translation>
<translation id="257088987046510401">থিমসমূহ</translation>
-<translation id="2571964818629181240">আমদানি করার আগে Firefox বনà§à¦§ করà§à¦¨</translation>
+<translation id="2571964818629181240">ইমপোরà§à¦Ÿ করার আগে Firefox বনà§à¦§ করà§à¦¨</translation>
<translation id="2572032849266859634"><ph name="VOLUME_NAME" />-ঠশà§à¦§à§à¦®à¦¾à¦¤à§à¦° পাঠযোগà§à¦¯ অà§à¦¯à¦¾à¦•à§à¦¸à§‡à¦¸ মঞà§à¦œà§à¦° করা হয়েছে৷</translation>
<translation id="2573269395582837871">à¦à¦•à¦Ÿà¦¿ ছবি ও নাম বেছে নিন</translation>
<translation id="2574102660421949343"><ph name="DOMAIN" />-à¦à¦° থেকে কà§à¦•à¦¿à¦œ মঞà§à¦œà§à¦°à¦¿à¦ªà§à¦°à¦¾à¦ªà§à¦¤à§·</translation>
@@ -1103,7 +1103,7 @@
<translation id="2691385045260836588">মডেল</translation>
<translation id="2693176596243495071">à¦à¦•à¦Ÿà¦¿ অজানা সমসà§à¦¯à¦¾ হয়েছে। অনà§à¦—à§à¦°à¦¹ করে পরে আবার চেষà§à¦Ÿà¦¾ করà§à¦¨ বা সমসà§à¦¯à¦¾à¦Ÿà¦¿ হতে থাকলে আপনার পà§à¦°à¦¶à¦¾à¦¸à¦•à¦•à§‡ জানান।</translation>
<translation id="2694026874607847549">1টি কà§à¦•à¦¿</translation>
-<translation id="2695749433451188613">ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿ মà§à¦¦à§à¦°à¦£ পà§à¦°à§‹à¦Ÿà§‹à¦•à¦² (HTTPS)</translation>
+<translation id="2695749433451188613">ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿ পà§à¦°à¦¿à¦¨à§à¦Ÿ পà§à¦°à§‹à¦Ÿà§‹à¦•à¦² (HTTPS)</translation>
<translation id="270358213449696159">Google Chrome OS শরà§à¦¤à¦¾à¦¦à¦¿à¦° সামগà§à¦°à§€</translation>
<translation id="2704184184447774363">Microsoft Document Signing</translation>
<translation id="270516211545221798">টাচপà§à¦¯à¦¾à¦¡à§‡à¦° গতি</translation>
@@ -1118,7 +1118,7 @@
<translation id="2715751256863167692">à¦à¦‡ আপগà§à¦°à§‡à¦¡à¦Ÿà¦¿ আপনার Chromebook রিসেট করে à¦à¦¬à¦‚ বরà§à¦¤à¦®à¦¾à¦¨ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° ডেটা সরিয়ে দেয়।</translation>
<translation id="2718395828230677721">নাইট লাইট</translation>
<translation id="2718998670920917754">à¦à¦¨à§à¦Ÿà¦¿ ভাইরাস সফà§à¦Ÿà¦“য়à§à¦¯à¦¾à¦° à¦à¦•à¦Ÿà¦¿ ভাইরাস সনাকà§à¦¤ করেছে৷</translation>
-<translation id="2719936478972253983">নিমà§à¦¨à§‹à¦•à§à¦¤ কà§à¦•à¦¿à¦—à§à¦²à¦¿ অবরà§à¦¦à§à¦§ ছিল</translation>
+<translation id="2719936478972253983">নিমà§à¦¨à§‹à¦•à§à¦¤ কà§à¦•à¦¿à¦—à§à¦²à¦¿ বà§à¦²à¦• করা হয়েছে</translation>
<translation id="2721037002783622288">&amp;চিতà§à¦°à§‡à¦° জনà§à¦¯ <ph name="SEARCH_ENGINE" /> খà§à¦à¦œà§à¦¨</translation>
<translation id="2721334646575696520">Microsoft Edge</translation>
<translation id="2721695630904737430">ততà§à¦¤à§à¦¬à¦¾à¦¬à¦§à¦¾à¦¨à§‡ থাকা বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦¦à§‡à¦°à¦•à§‡ আপনার পà§à¦°à¦¶à¦¾à¦¸à¦• দà§à¦¬à¦¾à¦°à¦¾ অকà§à¦·à¦® করা হয়েছে।</translation>
@@ -1131,7 +1131,7 @@
<translation id="2731392572903530958">বনà§à¦§ হওয়া উইলà§à¦¡à§‹ পà§à¦¨à¦°à¦¾à§Ÿ&amp;খà§à¦²à§à¦¨</translation>
<translation id="2731700343119398978">অনà§à¦—à§à¦°à¦¹ করে অপেকà§à¦·à¦¾ করà§à¦¨...</translation>
<translation id="2731710757838467317">আপনার ততà§à¦¬à¦¾à¦¬à¦§à¦¾à¦¨à§‡ থাকা বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ তৈরি করা হচà§à¦›à§‡à§· à¦à¦Ÿà¦¿ কয়েক মিনিট সময় নিতে পারে৷</translation>
-<translation id="2733364097704495499">আপনি কি Google মেঘ মà§à¦¦à§à¦°à¦£à§‡ মà§à¦¦à§à¦°à¦•à¦Ÿà¦¿à¦•à§‡ <ph name="PRINTER_NAME" /> নিবনà§à¦§à¦¿à¦¤ করতে চান?</translation>
+<translation id="2733364097704495499">আপনি কি Google কà§à¦²à¦¾à¦‰à¦¡ মà§à¦¦à§à¦°à¦£à§‡ মà§à¦¦à§à¦°à¦•à¦Ÿà¦¿à¦•à§‡ <ph name="PRINTER_NAME" /> নিবনà§à¦§à¦¿à¦¤ করতে চান?</translation>
<translation id="2735438478659026460">মাউস কারà§à¦¸à¦¾à¦° বনà§à¦§ হয়ে গেলে নিজে থেকে কà§à¦²à¦¿à¦• করà§à¦¨</translation>
<translation id="2735712963799620190">সময়সূচি</translation>
<translation id="2737363922397526254">সঙà§à¦•à§à¦šà¦¿à¦¤ করà§à¦¨...</translation>
@@ -1352,7 +1352,7 @@
আরও তথà§à¦¯à§‡à¦° জনà§à¦¯, আমাদের <ph name="BEGIN_LINK" />সহায়তা কেনà§à¦¦à§à¦°<ph name="END_LINK" /> ঘà§à¦°à§‡ দেখà§à¦¨à¥¤</translation>
<translation id="3031417829280473749">à¦à¦œà§‡à¦¨à§à¦Ÿ X</translation>
<translation id="3031557471081358569">আমদানির জনà§à¦¯ আইটেম বেছে নিন:</translation>
-<translation id="3031601332414921114">মà§à¦¦à§à¦°à¦£ আবার শà§à¦°à§ করà§à¦¨</translation>
+<translation id="3031601332414921114">পà§à¦°à¦¿à¦¨à§à¦Ÿ আবার শà§à¦°à§ করà§à¦¨</translation>
<translation id="303198083543495566">ভূগোল</translation>
<translation id="3036546437875325427">Flash সকà§à¦·à¦® করà§à¦¨</translation>
<translation id="3038612606416062604">নিজ হাতে à¦à¦•à¦Ÿà¦¿ পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦° যোগ করà§à¦¨</translation>
@@ -1505,7 +1505,7 @@
<translation id="3280431534455935878">পà§à¦°à¦¸à§à¦¤à§à¦¤à¦¿</translation>
<translation id="3282568296779691940">Chrome-ঠপà§à¦°à¦¬à§‡à¦¶ করà§à¦¨</translation>
<translation id="3285322247471302225">নতà§à¦¨ &amp;টà§à¦¯à¦¾à¦¬</translation>
-<translation id="3288047731229977326">বিকাশকারী মোডে চলমান à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¾à¦¨à¦—à§à¦²à¦¿ আপনার কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à¦°à§‡à¦° কà§à¦·à¦¤à¦¿ করতে পারে৷ যদি আপনি à¦à¦•à¦œà¦¨ বিকাশকারী না হন, তবে সà§à¦°à¦•à§à¦·à¦¿à¦¤ থাকার জনà§à¦¯ আপনার à¦à¦‡ à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¾à¦¨à¦—à§à¦²à¦¿à¦•à§‡ বিকাশকারী মোডে চালানো অকà§à¦·à¦® করা উচিৎ৷</translation>
+<translation id="3288047731229977326">ডেভেলপার মোডে চলমান à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¾à¦¨à¦—à§à¦²à¦¿ আপনার কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à¦°à§‡à¦° কà§à¦·à¦¤à¦¿ করতে পারে৷ যদি আপনি à¦à¦•à¦œà¦¨ ডেভেলপার না হন, তবে সà§à¦°à¦•à§à¦·à¦¿à¦¤ থাকার জনà§à¦¯ আপনার à¦à¦‡ à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¾à¦¨à¦—à§à¦²à¦¿à¦•à§‡ ডেভেলপার মোডে চালানো অকà§à¦·à¦® করা উচিৎ৷</translation>
<translation id="3289856944988573801">আপডেটগà§à¦²à¦¿ পরীকà§à¦·à¦¾ করার জনà§à¦¯, দয়া করে Ethernet বা ওয়াই-ফাই বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨à§·</translation>
<translation id="3294437725009624529">অতিথি</translation>
<translation id="329650768420594634">Pack à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¾à¦¨ সতরà§à¦•à§€à¦•à¦°à¦£</translation>
@@ -1582,7 +1582,7 @@
<translation id="3391392691301057522">পà§à¦°à¦¾à¦¨à§‹ পিন:</translation>
<translation id="3391716558283801616">টà§à¦¯à¦¾à¦¬ ৭</translation>
<translation id="3394150261239285340"><ph name="HOST" /> আপনার কà§à¦¯à¦¾à¦®à§‡à¦°à¦¾ ও মাইকà§à¦°à§‹à¦«à§‹à¦¨ বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে চায়৷</translation>
-<translation id="3396331542604645348">নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ মà§à¦¦à§à¦°à¦•à¦Ÿà¦¿ উপলবà§à¦§ নেই বা সঠিকভাবে ইনসà§à¦Ÿà¦² হওয়া নেই৷ আপনার মà§à¦¦à§à¦°à¦•à¦Ÿà¦¿ পরীকà§à¦·à¦¾ করà§à¦¨ বা অনà§à¦¯ à¦à¦•à¦Ÿà¦¿ মà§à¦¦à§à¦°à¦• নিরà§à¦¬à¦¾à¦šà¦¨à§‡à¦° চেষà§à¦Ÿà¦¾ করà§à¦¨à§·</translation>
+<translation id="3396331542604645348">নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦°à¦Ÿà¦¿ উপলবà§à¦§ নেই বা সঠিকভাবে ইনসà§à¦Ÿà¦² হওয়া নেই৷ আপনার পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦°à¦Ÿà¦¿ পরীকà§à¦·à¦¾ করà§à¦¨ বা অনà§à¦¯ à¦à¦•à¦Ÿà¦¿ পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦° নিরà§à¦¬à¦¾à¦šà¦¨à§‡à¦° চেষà§à¦Ÿà¦¾ করà§à¦¨à§·</translation>
<translation id="3399432415385675819">বিজà§à¦žà¦ªà§à¦¤à¦¿ অকà§à¦·à¦® করা হবে</translation>
<translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
<translation id="340485819826776184">ঠিকানা দণà§à¦¡à§‡ অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨à¦—à§à¦²à¦¿ সমà§à¦ªà§‚রà§à¦£ করতে সহায়তার জনà§à¦¯ à¦à¦¬à¦‚ টাইপ করা URLগà§à¦²à¦¿à¦° জনà§à¦¯ à¦à¦•à¦Ÿà¦¿ পূরà§à¦¬à¦¾à¦¨à§à¦®à¦¾à¦¨ পরিষেবা বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨</translation>
@@ -1624,7 +1624,7 @@
<translation id="3453612417627951340">অনà§à¦®à§‹à¦¦à¦¨à§‡à¦° পà§à¦°à¦¯à¦¼à§‹à¦œà¦¨</translation>
<translation id="3454157711543303649">সকà§à¦°à¦¿à§Ÿà¦•à¦°à¦£ সমাপà§à¦¤</translation>
<translation id="345693547134384690">&amp;ছবি নতà§à¦¨ টà§à¦¯à¦¾à¦¬à§‡ খà§à¦²à§à¦¨</translation>
-<translation id="3459509316159669723">মà§à¦¦à§à¦°à¦£ হচà§à¦›à§‡</translation>
+<translation id="3459509316159669723">পà§à¦°à¦¿à¦¨à§à¦Ÿ হচà§à¦›à§‡</translation>
<translation id="3459697287128633276">আপনার অà§à¦¯à¦¾à¦•à¦¾à¦‰à¦¨à§à¦Ÿ থেকে Google Play সà§à¦Ÿà§‹à¦° অà§à¦¯à¦¾à¦•à§à¦¸à§‡à¦¸ করার জনà§à¦¯ অনà§à¦—à§à¦°à¦¹ করে পরিচয় পà§à¦°à¦¦à¦¾à¦¨à¦•à¦¾à¦°à§€à¦° মাধà§à¦¯à¦®à§‡ পà§à¦°à¦®à¦¾à¦£à§€à¦•à¦°à¦£ দিন।</translation>
<translation id="3459774175445953971">সরà§à¦¬à¦¶à§‡à¦· সংশোধিত:</translation>
<translation id="3462413494201477527">অà§à¦¯à¦¾à¦•à¦¾à¦‰à¦¨à§à¦Ÿ সেট আপ বাতিল করবেন?</translation>
@@ -1705,7 +1705,7 @@
<translation id="3576324189521867626">সফলভাবে ইনসà§à¦Ÿà¦² হয়েছে</translation>
<translation id="3578331450833904042">ডিফলà§à¦Ÿ (সবকিছৠটেনে নেয়)</translation>
<translation id="3578594933904494462">à¦à¦‡ টà§à¦¯à¦¾à¦¬à§‡à¦° সামগà§à¦°à§€ শেয়ার করা হচà§à¦›à§‡à§·</translation>
-<translation id="357886715122934472">আপনার মালিকানাধীন à¦à¦•à¦Ÿà¦¿ গোষà§à¦ à§€à¦° সাথে &lt;strong&gt;<ph name="SENDER" />&lt;/strong&gt; à¦à¦•à¦Ÿà¦¿ মà§à¦¦à§à¦°à¦• শেয়ার করতে চান &lt;strong&gt;<ph name="PRINTER_NAME" />&lt;/strong&gt;: &lt;strong&gt;<ph name="GROUP_NAME" />&lt;/strong&gt;. যদি আপানি সà§à¦¬à§€à¦•à¦¾à¦° করেন তবে, গোষà§à¦ à§€à¦° সকল সদসà§à¦¯ মà§à¦¦à§à¦°à¦•à¦Ÿà¦¿à¦•à§‡ পà§à¦°à¦¿à¦¨à§à¦Ÿ করতে পারবেন৷</translation>
+<translation id="357886715122934472">আপনার মালিকানাধীন à¦à¦•à¦Ÿà¦¿ গোষà§à¦ à§€à¦° সাথে &lt;strong&gt;<ph name="SENDER" />&lt;/strong&gt; à¦à¦•à¦Ÿà¦¿ পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦° শেয়ার করতে চান &lt;strong&gt;<ph name="PRINTER_NAME" />&lt;/strong&gt;: &lt;strong&gt;<ph name="GROUP_NAME" />&lt;/strong&gt;. যদি আপানি সà§à¦¬à§€à¦•à¦¾à¦° করেন তবে, গোষà§à¦ à§€à¦° সকল সদসà§à¦¯ পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦°à¦Ÿà¦¿à¦•à§‡ পà§à¦°à¦¿à¦¨à§à¦Ÿ করতে পারবেন৷</translation>
<translation id="3583413473134066075">যাচà§à¦›à¦¿.. যাচà§à¦›à¦¿...চলে গেছে৷</translation>
<translation id="3584169441612580296">আপনার কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à¦° থেকে ফটো, সঙà§à¦—ীত ও অনà§à¦¯ মিডিয়া পডà§à¦¨ à¦à¦¬à¦‚ পরিবরà§à¦¤à¦¨ করà§à¦¨</translation>
<translation id="3587482841069643663">সকল</translation>
@@ -1762,8 +1762,8 @@
<translation id="3653999333232393305"><ph name="HOST" /> কে আপনার মাইকà§à¦°à§‹à¦«à§‹à¦¨ অà§à¦¯à¦¾à¦•à§à¦¸à§‡à¦¸ করার মঞà§à¦œà§à¦°à¦¿ অবিরত রাখà§à¦¨</translation>
<translation id="3654045516529121250">আপনার অà§à¦¯à¦¾à¦•à§à¦¸à§‡à¦¸à¦¯à§‹à¦—à§à¦¯à¦¤à¦¾à¦° সেটিংস পড়à§à¦¨</translation>
<translation id="3655712721956801464">{NUM_FILES,plural, =1{à¦à¦•à¦Ÿà¦¿ ফাইলে à¦à¦Ÿà¦¾à¦° সà§à¦¥à¦¾à¦¯à¦¼à§€ অà§à¦¯à¦¾à¦•à§à¦¸à§‡à¦¸ আছে৷}one{#টি ফাইলে à¦à¦Ÿà¦¾à¦° সà§à¦¥à¦¾à¦¯à¦¼à§€ অà§à¦¯à¦¾à¦•à§à¦¸à§‡à¦¸ আছে৷}other{#টি ফাইলে à¦à¦Ÿà¦¾à¦° সà§à¦¥à¦¾à¦¯à¦¼à§€ অà§à¦¯à¦¾à¦•à§à¦¸à§‡à¦¸ আছে৷}}</translation>
-<translation id="365793796291733849"><ph name="BEGIN_PARAGRAPH1" />আপনি যখন সà§à¦¬à¦¯à¦¼à¦‚কà§à¦°à¦¿à¦¯à¦¼ বà§à¦¯à¦¾à¦• আপ চালৠকরেন, তখন Google ডà§à¦°à¦¾à¦‡à¦­à§‡à¦° মধà§à¦¯à§‡ à¦à¦•à¦Ÿà¦¿ বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত ফোলà§à¦¡à¦¾à¦°à§‡ ডিভাইস à¦à¦¬à¦‚ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¾à¦¨ ডেটা পরà§à¦¯à¦¾à¦¯à¦¼à¦•à§à¦°à¦®à§‡ সংরকà§à¦·à¦¿à¦¤ হয়। অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¾à¦¨ ডেটা যেকোনো ডেটা হতে পারে যা কোনো অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¾à¦¨ সংরকà§à¦·à¦£ করে (বিকাশকারীর সেটিংসের উপর ভিতà§à¦¤à¦¿ করে), à¦à¦° সঙà§à¦—ে পরিচিতি, বারà§à¦¤à¦¾ à¦à¦¬à¦‚ ফটোগà§à¦²à¦¿à¦° মত সমà§à¦­à¦¾à¦¬à§à¦¯ সংবেদনশীল ডেটাও হতে পারে।<ph name="END_PARAGRAPH1" />
- <ph name="BEGIN_PARAGRAPH2" />বà§à¦¯à¦¾à¦• আপ নেওয়া ডেটা আপনার Drive storage কোটা বà§à¦¯à¦¬à¦¹à¦¾à¦° করবে না। বড় ফাইলগà§à¦²à¦¿ বা বিকাশকারীরা যেগà§à¦²à¦¿ পরিষেবা থেকে বাদ দেওয়ার জনà§à¦¯ বেছেছেন সেসব ফাইলগà§à¦²à¦¿à¦° বà§à¦¯à¦¾à¦• আপ নেওয়া হবে না।<ph name="END_PARAGRAPH2" /></translation>
+<translation id="365793796291733849"><ph name="BEGIN_PARAGRAPH1" />আপনি যখন সà§à¦¬à¦¯à¦¼à¦‚কà§à¦°à¦¿à¦¯à¦¼ বà§à¦¯à¦¾à¦• আপ চালৠকরেন, তখন Google ডà§à¦°à¦¾à¦‡à¦­à§‡à¦° মধà§à¦¯à§‡ à¦à¦•à¦Ÿà¦¿ বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত ফোলà§à¦¡à¦¾à¦°à§‡ ডিভাইস à¦à¦¬à¦‚ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¾à¦¨ ডেটা পরà§à¦¯à¦¾à¦¯à¦¼à¦•à§à¦°à¦®à§‡ সংরকà§à¦·à¦¿à¦¤ হয়। অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¾à¦¨ ডেটা যেকোনো ডেটা হতে পারে যা কোনো অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¾à¦¨ সংরকà§à¦·à¦£ করে (ডেভেলপারের সেটিংসের উপর ভিতà§à¦¤à¦¿ করে), à¦à¦° সঙà§à¦—ে পরিচিতি, বারà§à¦¤à¦¾ à¦à¦¬à¦‚ ফটোগà§à¦²à¦¿à¦° মত সমà§à¦­à¦¾à¦¬à§à¦¯ সংবেদনশীল ডেটাও হতে পারে।<ph name="END_PARAGRAPH1" />
+ <ph name="BEGIN_PARAGRAPH2" />বà§à¦¯à¦¾à¦• আপ নেওয়া ডেটা আপনার Drive storage কোটা বà§à¦¯à¦¬à¦¹à¦¾à¦° করবে না। বড় ফাইলগà§à¦²à¦¿ বা ডেভেলপারেরা যেগà§à¦²à¦¿ পরিষেবা থেকে বাদ দেওয়ার জনà§à¦¯ বেছেছেন সেসব ফাইলগà§à¦²à¦¿à¦° বà§à¦¯à¦¾à¦• আপ নেওয়া হবে না।<ph name="END_PARAGRAPH2" /></translation>
<translation id="3660234220361471169">অবিশà§à¦¬à¦¸à§à¦¥</translation>
<translation id="3661054927247347545">সাইন-ইন সারà§à¦Ÿà¦¿à¦«à¦¿à¦•à§‡à¦¶à¦¨à¦Ÿà¦¿ ভà§à¦², <ph name="MINUTES" /> : <ph name="SECONDS" /> ঠউইনà§à¦¡à§‹ বনà§à¦§ হয়ে যাবে।</translation>
<translation id="3665589677786828986">Chrome সনাকà§à¦¤ করেছে যে অনà§à¦¯ কোনো পà§à¦°à§‹à¦—à§à¦°à¦¾à¦® আপনার কিছৠসেটিংস কà§à¦·à¦¤à¦¿à¦—à§à¦°à¦¸à§à¦¤ করেছে à¦à¦¬à¦‚ সেগà§à¦²à¦¿à¦•à§‡ তাদের মূল ডিফলà§à¦Ÿà§‡ আবার সেট করেছে।</translation>
@@ -1904,7 +1904,7 @@
<translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
<translation id="3860381078714302691">Hangouts Meet ঠসà§à¦¬à¦¾à¦—তম</translation>
<translation id="3862134173397075045">Chrome ঠকাসà§à¦Ÿ অভিজà§à¦žà¦¤à¦¾ নিতে সà§à¦¬à¦¾à¦—তম!</translation>
-<translation id="3865414814144988605">রেসà§à¦²à¦¿à¦‰à¦¶à¦¾à¦¨</translation>
+<translation id="3865414814144988605">রেজোলিউশন</translation>
<translation id="386548886866354912"><ph name="EXTENSION_NAME" /> দিয়ে পà§à¦¯à¦¾à¦• করà§à¦¨</translation>
<translation id="3866249974567520381">বরà§à¦£à¦¨à¦¾</translation>
<translation id="3866443872548686097">আপনার পà§à¦¨à¦°à§à¦¦à§à¦§à¦¾à¦° মিডিয়াটি পà§à¦°à¦¸à§à¦¤à§à¦¤à§· আপনি à¦à¦Ÿà¦¿ আপনার সিসà§à¦Ÿà§‡à¦® থেকে সরাতে পারেন৷</translation>
@@ -2045,8 +2045,8 @@
<translation id="4091434297613116013">কাগজের তাল</translation>
<translation id="4093955363990068916">সà§à¦¥à¦¾à¦¨à§€à§Ÿ ফাইল:</translation>
<translation id="4095507791297118304">পà§à¦°à¦¾à¦¥à¦®à¦¿à¦• পà§à¦°à¦¦à¦°à§à¦¶à¦¨</translation>
-<translation id="409579654357498729">মেঘ মà§à¦¦à§à¦°à¦£à§‡ যোগ করà§à¦¨</translation>
-<translation id="4096508467498758490">বিকাশকারী মোড à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¾à¦¨ অকà§à¦·à¦® করà§à¦¨</translation>
+<translation id="409579654357498729">কà§à¦²à¦¾à¦‰à¦¡ মà§à¦¦à§à¦°à¦£à§‡ যোগ করà§à¦¨</translation>
+<translation id="4096508467498758490">ডেভেলপার মোড à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¾à¦¨ অকà§à¦·à¦® করà§à¦¨</translation>
<translation id="4096824249111507322">নিরাপদ মডিউল তৈরি করা হচà§à¦›à§‡, অনà§à¦—à§à¦°à¦¹ করে অপেকà§à¦·à¦¾ করà§à¦¨ (কয়েক মিনিট সময় লাগতে পারে)...</translation>
<translation id="4099060993766194518">ডিফলà§à¦Ÿ সারà§à¦š ইঞà§à¦œà¦¿à¦¨ পà§à¦¨à¦°à§à¦¦à§à¦§à¦¾à¦° করবেন?</translation>
<translation id="4100733287846229632">ডিভাইসের সà§à¦¥à¦¾à¦¨ আশংকাজনকভাবে কম</translation>
@@ -2128,7 +2128,7 @@
<translation id="4258348331913189841">ফাইল সিসà§à¦Ÿà§‡à¦®</translation>
<translation id="4261901459838235729">Google উপসà§à¦¥à¦¾à¦ªà¦¨à¦¾</translation>
<translation id="4262366363486082931">সরঞà§à¦œà¦¾à¦®à¦¦à¦£à§à¦¡à§‡ ফোকাস করà§à¦¨</translation>
-<translation id="4263757076580287579">মà§à¦¦à§à¦°à¦£à§‡à¦° নিবনà§à¦§à¦¨ বাতিল করা হয়েছে৷</translation>
+<translation id="4263757076580287579">পà§à¦°à¦¿à¦¨à§à¦Ÿà§‡à¦° নিবনà§à¦§à¦¨ বাতিল করা হয়েছে৷</translation>
<translation id="426564820080660648">আপডেটগà§à¦²à¦¿ পরীকà§à¦·à¦¾ করার জনà§à¦¯, দয়া করে Ethernet, ওয়াই-ফাই বা মোবাইল ডেটা বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨à§·</translation>
<translation id="4268025649754414643">কী চিহà§à¦¨à¦•à¦°à¦£</translation>
<translation id="4270393598798225102">সংসà§à¦•à¦°à¦£ <ph name="NUMBER" /></translation>
@@ -2159,7 +2159,7 @@
<translation id="4315548163539304064">আপনার মিডিয়া ডিভাইস সà§à¦•à§à¦¯à¦¾à¦¨ করা হচà§à¦›à§‡...
....<ph name="LINE_BREAK1" />
....<ph name="FILE_COUNT" />টি নতà§à¦¨ ফটো খà§à¦à¦œà§‡ পাওয়া গেছে</translation>
-<translation id="4316850752623536204">বিকাশকারী ওয়েবসাইট</translation>
+<translation id="4316850752623536204">ডেভেলপার ওয়েবসাইট</translation>
<translation id="4321136812570927563">{NUM_DOWNLOAD,plural, =1{ডাউনলোড চালিয়ে যান}one{ডাউনলোড চালিয়ে যান}other{ডাউনলোড চালিয়ে যান}}</translation>
<translation id="4321179778687042513">ctrl</translation>
<translation id="4322394346347055525">অনà§à¦¯à¦¾à¦¨à§à¦¯ টà§à¦¯à¦¾à¦¬ বনà§à¦§ করà§à¦¨</translation>
@@ -2322,7 +2322,7 @@
<translation id="4610637590575890427">আপনি <ph name="SITE" />-ঠযাওয়ার কথা বলছেন কি?</translation>
<translation id="4611114513649582138">ডেটা সংযোগ পাওয়া যাচà§à¦›à§‡</translation>
<translation id="4613271546271159013">আপনি যখন à¦à¦•à¦Ÿà¦¿ নতà§à¦¨ টà§à¦¯à¦¾à¦¬ খà§à¦²à¦¬à§‡à¦¨ তখন কি পৃষà§à¦ à¦¾ দেখানো হবে, à¦à¦•à¦Ÿà¦¿ à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¾à¦¨ তার পরিবরà§à¦¤à¦¨ করেছে।</translation>
-<translation id="4615586811063744755">কোন কà§à¦•à¦¿ বেছে নেওয়া হয়নি</translation>
+<translation id="4615586811063744755">কোনও কà§à¦•à¦¿ বেছে নেওয়া হয়নি</translation>
<translation id="4617270414136722281">à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¾à¦¨ বিকলà§à¦ªà¦—à§à¦²à¦¿</translation>
<translation id="4618990963915449444"><ph name="DEVICE_NAME" />-ঠথাকা সব ফাইল মà§à¦›à§‡ ফেলা হবে৷</translation>
<translation id="4619615317237390068">অনà§à¦¯à¦¾à¦¨à§à¦¯ ডিভাইসগà§à¦²à¦¿ থেকে টà§à¦¯à¦¾à¦¬</translation>
@@ -2417,7 +2417,7 @@
<translation id="4759238208242260848">ডাউনলোডগà§à¦²à¦¿</translation>
<translation id="4761104368405085019">আপনার মাইকà§à¦°à§‹à¦«à§‹à¦¨ বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨</translation>
<translation id="4762718786438001384">ডিভাইসের ডিসà§à¦•à§‡à¦° সà§à¦¥à¦¾à¦¨ আশংকাজনকভাবে কম</translation>
-<translation id="4763408175235639573">আপনি যখন à¦à¦‡ পৃষà§à¦ à¦¾à¦Ÿà¦¿ দেখেছিলেন, তখন নিমà§à¦¨à§‹à¦•à§à¦¤ কà§à¦•à¦¿à¦—à§à¦²à¦¿ সেট করা ছিল:</translation>
+<translation id="4763408175235639573">আপনি যখন à¦à¦‡ পৃষà§à¦ à¦¾à¦Ÿà¦¿ দেখেছিলেন তখন নিমà§à¦¨à§‹à¦•à§à¦¤ কà§à¦•à¦¿à¦—à§à¦²à¦¿ সেট হয়েছিল</translation>
<translation id="4763830802490665879">à¦à¦•à¦¾à¦§à¦¿à¦• সাইট থেকে কà§à¦•à¦¿à¦—à§à¦²à¦¿ পà§à¦°à¦¸à§à¦¥à¦¾à¦¨à§‡ সাফ করা হবে৷</translation>
<translation id="4768332406694066911">আপনার পরিচয় শনাকà§à¦¤ করে à¦à¦®à¦¨ সংসà§à¦¥à¦¾à¦—à§à¦²à¦¿ থেকে শংসাপতà§à¦° আপনার কাছে আছে</translation>
<translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" />-à¦à¦° জনà§à¦¯ পাসওয়ারà§à¦¡</translation>
@@ -2469,7 +2469,7 @@
<translation id="484921817528146567">তাকের সরà§à¦¬à¦¶à§‡à¦· আইটেম</translation>
<translation id="4849286518551984791">সমনà§à¦¬à¦¿à¦¤ সরà§à¦¬à¦œà¦¨à§€à¦¨ সময় (UTC / GMT)</translation>
<translation id="4849517651082200438">ইনসà§à¦Ÿà¦² করবেন না</translation>
-<translation id="4850258771229959924">বিকাশকারী সরঞà§à¦œà¦¾à¦®à¦—à§à¦²à¦¿à¦¤à§‡ দেখà§à¦¨</translation>
+<translation id="4850258771229959924">ডেভেলপার সরঞà§à¦œà¦¾à¦®à¦—à§à¦²à¦¿à¦¤à§‡ দেখà§à¦¨</translation>
<translation id="4850669014075537160">সà§à¦•à§à¦°à§‹à¦²à¦¿à¦‚</translation>
<translation id="4850886885716139402">দেখà§à¦¨</translation>
<translation id="4853020600495124913">&amp;নতà§à¦¨ উইনà§à¦¡à§‹à¦¤à§‡ খà§à¦²à§à¦¨</translation>
@@ -2506,7 +2506,7 @@
<translation id="4887424188275796356">সিসà§à¦Ÿà§‡à¦® পà§à¦°à¦¦à¦°à§à¦¶à¦•à§‡à¦° মাধà§à¦¯à¦®à§‡ খà§à¦²à§à¦¨</translation>
<translation id="488785315393301722">বিশদ বিবরণ দেখান</translation>
<translation id="4888510611625056742">টà§à¦¯à¦¾à¦¬ ২</translation>
-<translation id="4890773143211625964">উনà§à¦¨à¦¤ মà§à¦¦à§à¦°à¦£ বিকলà§à¦ªà¦—à§à¦²à¦¿ দেখান</translation>
+<translation id="4890773143211625964">উনà§à¦¨à¦¤ পà§à¦°à¦¿à¦¨à§à¦Ÿ বিকলà§à¦ªà¦—à§à¦²à¦¿ দেখান</translation>
<translation id="4891089016822695758">বিটা ফোরাম</translation>
<translation id="4893336867552636863">à¦à¦Ÿà¦¿ সà§à¦¥à¦¾à¦¯à¦¼à§€à¦­à¦¾à¦¬à§‡ à¦à¦‡ ডিভাইস থেকে আপনার বà§à¦°à¦¾à¦‰à¦œà¦¿à¦‚ ডেটা মà§à¦›à§‡ ফেলবে।</translation>
<translation id="4898011734382862273">"<ph name="CERTIFICATE_NAME" />" শংসাপতà§à¦°à¦Ÿà¦¿ à¦à¦•à¦Ÿà¦¿ শংসাকরণ করà§à¦¤à§ƒà¦ªà¦•à§à¦·à§‡à¦° পà§à¦°à¦¤à¦¿à¦¨à¦¿à¦§à¦¿à¦¤à§à¦¬ করে</translation>
@@ -2793,7 +2793,7 @@
<translation id="5337771866151525739">কোনো তৃতীয় পকà§à¦· দà§à¦¬à¦¾à¦°à¦¾ ইনসà§à¦Ÿà¦² করা হয়েছে৷</translation>
<translation id="5338503421962489998">সà§à¦¥à¦¾à¦¨à§€à§Ÿ সঞà§à¦šà§Ÿà¦¸à§à¦¥à¦¾à¦¨</translation>
<translation id="5340217413897845242">তাকের আইটেম নমà§à¦¬à¦° ৬</translation>
-<translation id="5341793073192892252">নিমà§à¦¨à§‹à¦•à§à¦¤ কà§à¦•à¦¿à¦—à§à¦²à¦¿ অবরà§à¦¦à§à¦§ ছিল (পà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¾ ছাড়াই তৃতীয়-পকà§à¦·à§‡à¦° কà§à¦•à¦¿à¦—à§à¦²à¦¿ অবরà§à¦¦à§à¦§ হচà§à¦›à§‡):</translation>
+<translation id="5341793073192892252">নিমà§à¦¨à§‹à¦•à§à¦¤ কà§à¦•à¦¿à¦—à§à¦²à¦¿ বà§à¦²à¦• করা আছে (কোনও à¦à¦•à§à¦¸à§‡à¦ªà¦¶à¦¨ ছাড়াই তৃতীয়-পকà§à¦·à§‡à¦° কà§à¦•à¦¿à¦—à§à¦²à¦¿ বà§à¦²à¦• করা হচà§à¦›à§‡)</translation>
<translation id="5341980496415249280">অনà§à¦—à§à¦°à¦¹ করে অপেকà§à¦·à¦¾ করà§à¦¨, পà§à¦¯à¦¾à¦•à¦¿à¦‚ করা হচà§à¦›à§‡....</translation>
<translation id="5342091991439452114">পিন অবশà§à¦¯à¦‡ কমপকà§à¦·à§‡ <ph name="MINIMUM" /> সংখà§à¦¯à¦¾à¦° হতে হবে</translation>
<translation id="534916491091036097">বাঠবনà§à¦§</translation>
@@ -2862,7 +2862,7 @@
<translation id="5438224778284622050">অফলাইন ফাইলগà§à¦²à¦¿ মà§à¦›à¦¬à§‡à¦¨?</translation>
<translation id="5438430601586617544">(পà§à¦¯à¦¾à¦• করা নেই)</translation>
<translation id="544083962418256601">শরà§à¦Ÿà¦•à¦¾à¦Ÿà¦—à§à¦²à¦¿ তৈরি করà§à¦¨...</translation>
-<translation id="5442550868130618860">অটোআপডেট চালৠকরà§à¦¨</translation>
+<translation id="5442550868130618860">অটো-আপডেট চালৠকরà§à¦¨</translation>
<translation id="5446983216438178612">পà§à¦°à¦¤à¦¿à¦·à§à¦ à¦¾à¦¨à§‡à¦° জনà§à¦¯ শংসাপতà§à¦°à¦—à§à¦²à¦¿ দেখান</translation>
<translation id="5448293924669608770">ওহো, পà§à¦°à¦¬à§‡à¦¶ করার সময় কিছৠসমসà§à¦¯à¦¾ হয়েছে</translation>
<translation id="5449551289610225147">অবৈধ পাসওয়ারà§à¦¡</translation>
@@ -2913,7 +2913,7 @@
<translation id="5512653252560939721">বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€à¦° শংসাপতà§à¦° হারà§à¦¡à¦“য়à§à¦¯à¦¾à¦°-সাহাযà§à¦¯à¦ªà§à¦°à¦¾à¦ªà§à¦¤ হওয়া আবশà§à¦¯à¦•à§·</translation>
<translation id="5513242761114685513">পà§à¦°à¦¸à¦™à§à¦— মেনà§</translation>
<translation id="5516183516694518900">আপনার সমসà§à¦¤ ডিভাইসে আপনার বà§à¦•à¦®à¦¾à¦°à§à¦•, ইতিহাস, পাসওয়ারà§à¦¡ à¦à¦¬à¦‚ অনà§à¦¯à¦¾à¦¨à§à¦¯ সেটিংস পেতে আপনার Google অà§à¦¯à¦¾à¦•à¦¾à¦‰à¦¨à§à¦Ÿà§‡à¦° মাধà§à¦¯à¦®à§‡ Chrome ঠসাইন ইন করà§à¦¨à¥¤</translation>
-<translation id="551752069230578406">আপনার অà§à¦¯à¦¾à¦•à¦¾à¦‰à¦¨à§à¦Ÿà§‡ মà§à¦¦à§à¦°à¦• যোগ করার হচà§à¦›à§‡ - à¦à¦‡ কিছৠসময় নিতে পারে...</translation>
+<translation id="551752069230578406">আপনার অà§à¦¯à¦¾à¦•à¦¾à¦‰à¦¨à§à¦Ÿà§‡ পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦° যোগ করার হচà§à¦›à§‡ - à¦à¦‡ কিছৠসময় নিতে পারে...</translation>
<translation id="5518584115117143805">ইমেল à¦à¦¨à¦•à§à¦°à¦¿à¦ªà¦¶à¦¾à¦¨ শংসাপতà§à¦°</translation>
<translation id="5521078259930077036">আপনি কি à¦à¦‡ পৃষà§à¦ à¦¾à¦Ÿà¦¿à¦•à§‡ হোম পৃষà§à¦Ÿà¦¾ হিসেবে আশা করছিলেন?</translation>
<translation id="5521348028713515143">ডেসà§à¦•à¦Ÿà¦ª শরà§à¦Ÿà¦•à¦¾à¦Ÿ জà§à§œà§à¦¨</translation>
@@ -3018,6 +3018,7 @@
<translation id="5678955352098267522"><ph name="WEBSITE_1" />ঠআপনার ডেটা পড়ে</translation>
<translation id="5684661240348539843">সমà§à¦ªà¦¦ শনাকà§à¦¤à¦•à¦¾à¦°à§€</translation>
<translation id="5687326903064479980">সময় অঞà§à¦šà¦²</translation>
+<translation id="5689516760719285838">লোকেশন</translation>
<translation id="56907980372820799">ডেটা লিঙà§à¦• করà§à¦¨</translation>
<translation id="5691511426247308406">পরিবারিক</translation>
<translation id="5691596662111998220">ওহো, <ph name="FILE_NAME" /> আর বিদà§à¦¯à¦®à¦¾à¦¨ নেই৷</translation>
@@ -3050,7 +3051,7 @@
<translation id="5746169159649715125">PDF রূপে সেভ করà§à¦¨</translation>
<translation id="5747059785823487638">অডিওর তথà§à¦¯</translation>
<translation id="5747552184818312860">মেয়াদ শেষ হবে</translation>
-<translation id="5747785204778348146">বিকাশকারী - অসà§à¦¥à¦¾à§Ÿà§€</translation>
+<translation id="5747785204778348146">ডেভেলপার - অসà§à¦¥à¦¾à§Ÿà§€</translation>
<translation id="5749483996735055937">পà§à¦¨à¦°à§à¦¦à§à¦§à¦¾à¦°à§‡à¦° ছবিটি ডিভাইসে অনà§à¦²à¦¿à¦ªà¦¿ করার সময় à¦à¦•à¦Ÿà¦¿ তà§à¦°à§à¦Ÿà¦¿ ঘটেছিল৷</translation>
<translation id="5749861707650047230">{NUM_DOWNLOAD,plural, =1{ডাউনলোড বাতিল করà§à¦¨}one{ডাউনলোডগà§à¦²à¦¿ বাতিল করà§à¦¨}other{ডাউনলোডগà§à¦²à¦¿ বাতিল করà§à¦¨}}</translation>
<translation id="5750324801516359607">দূরে</translation>
@@ -3356,7 +3357,7 @@
<translation id="6231881193380278751">পৃষà§à¦ à¦¾à¦Ÿà¦¿ অটো-রিফà§à¦°à§‡à¦¶ করতে URL ঠকোনো কà§à¦¯à§‹à§Ÿà¦¾à¦°à§€ পারাম যোগ করà§à¦¨: chrome://device-log/?refresh=&lt;sec&gt;</translation>
<translation id="6232017090690406397">বà§à¦¯à¦¾à¦Ÿà¦¾à¦°à¦¿: %</translation>
<translation id="6232116551750539448"><ph name="NAME" /> à¦à¦° সাথে সংযোগ বিচà§à¦›à¦¿à¦¨à§à¦¨ হয়েছে</translation>
-<translation id="6237816943013845465">আপনাকে আপনার সà§à¦•à§à¦°à§€à¦¨ রেসà§à¦²à¦¿à¦‰à¦¶à¦¾à¦¨ পরিবরà§à¦¤à¦¨ করতে অনà§à¦®à¦¤à¦¿ দেয়</translation>
+<translation id="6237816943013845465">আপনাকে আপনার সà§à¦•à§à¦°à§€à¦¨ রেজোলিউশন পরিবরà§à¦¤à¦¨ করতে অনà§à¦®à¦¤à¦¿ দেয়</translation>
<translation id="6238923052227198598">লেটেসà§à¦Ÿ নোটটি লক সà§à¦•à§à¦°à¦¿à¦¨à§‡ রাখà§à¦¨</translation>
<translation id="6239558157302047471">আবার লোড করার &amp;ফà§à¦°à§‡à¦®</translation>
<translation id="624022915548992686">পৃষà§à¦ à¦¾ থেকে পà§à¦°à¦¸à§à¦¥à¦¾à¦¨ করà§à¦¨</translation>
@@ -3425,7 +3426,7 @@
<translation id="6333834492048057036">অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨à§‡à¦° জনà§à¦¯ ঠিকানা দণà§à¦¡à§‡à¦° উপর নজর রাখà§à¦¨</translation>
<translation id="6339668969738228384"><ph name="USER_EMAIL_ADDRESS" /> à¦à¦° জনà§à¦¯ à¦à¦•à¦Ÿà¦¿ নতà§à¦¨ পà§à¦°à§‹à¦«à¦¾à¦‡à¦² তৈরি করà§à¦¨</translation>
<translation id="6340017061976355871">সারà§à¦­à¦¾à¦°à§‡ সংযোগ করা যায়নি। অনà§à¦—à§à¦°à¦¹ করে আপনার নেটওয়ারà§à¦• সংযোগ যাচাই করে আবার চেষà§à¦Ÿà¦¾ করà§à¦¨à¥¤ যদি সমসà§à¦¯à¦¾à¦Ÿà¦¿ চলতে থাকে তাহলে আপনার Chromebook রিসà§à¦Ÿà¦¾à¦°à§à¦Ÿ করà§à¦¨à¥¤</translation>
-<translation id="6340071272923955280">ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿ মà§à¦¦à§à¦°à¦£ পà§à¦°à§‹à¦Ÿà§‹à¦•à¦² (IPPS)</translation>
+<translation id="6340071272923955280">ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿ পà§à¦°à¦¿à¦¨à§à¦Ÿ পà§à¦°à§‹à¦Ÿà§‹à¦•à¦² (IPPS)</translation>
<translation id="6341850831632289108">আপনার শারীরিক অবসà§à¦¥à¦¾à¦¨ সনাকà§à¦¤ করà§à¦¨</translation>
<translation id="634208815998129842">কারà§à¦¯ পরিচালক</translation>
<translation id="6344170822609224263">নেটওয়ারà§à¦• সংযোগের তালিকা অà§à¦¯à¦¾à¦•à§à¦¸à§‡à¦¸ করে</translation>
@@ -3503,7 +3504,7 @@
<translation id="6447842834002726250">কà§à¦•à¦¿à¦œ</translation>
<translation id="6449285849137521213">"<ph name="EXTENSION_NAME" />" অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¨ যà§à¦•à§à¦¤ করা হয়েছে৷</translation>
<translation id="6450876761651513209">আপনার গোপনীয়তা-সংকà§à¦°à¦¾à¦¨à§à¦¤ সেটিংস পরিবরà§à¦¤à¦¨ করà§à¦¨</translation>
-<translation id="6451180435462401570">মেঘ মà§à¦¦à§à¦°à¦£ ডিভাইস পরিচালনা করà§à¦¨</translation>
+<translation id="6451180435462401570">কà§à¦²à¦¾à¦‰à¦¡ পà§à¦°à¦¿à¦¨à§à¦Ÿ ডিভাইস পরিচালনা করà§à¦¨</translation>
<translation id="6451689256222386810">আপনি যদি আপনার পাসফà§à¦°à§‡à¦œ ভà§à¦²à§‡ যান বা à¦à¦‡ সেটিং পরিবরà§à¦¤à¦¨ করতে চান, তাহলে <ph name="BEGIN_LINK" />সিঙà§à¦• পà§à¦¨à¦°à¦¾à¦¯à¦¼ সেট করà§à¦¨<ph name="END_LINK" />।</translation>
<translation id="6452181791372256707">পà§à¦°à¦¤à§à¦¯à¦¾à¦–à§à¦¯à¦¾à¦¨</translation>
<translation id="6455894534188563617">&amp;নতà§à¦¨ ফোলà§à¦¡à¦¾à¦°</translation>
@@ -3642,7 +3643,7 @@
<translation id="6651237644330755633">ওয়েবসাইটগà§à¦²à¦¿à¦•à§‡ শনাকà§à¦¤ করার জনà§à¦¯ à¦à¦‡ শংসপতà§à¦°à¦Ÿà¦¿à¦•à§‡ বিশà§à¦¬à¦¾à¦¸ করà§à¦¨</translation>
<translation id="6652975592920847366">OS পà§à¦¨à¦°à§à¦¦à§à¦§à¦¾à¦° মিডিয়া তৈরি করà§à¦¨</translation>
<translation id="6653525630739667879">$1 ঠসংরকà§à¦·à¦£ করা যাচà§à¦›à§‡ না। সব সমà§à¦ªà¦¾à¦¦à¦¨à¦¾à¦—à§à¦²à¦¿ ডাউনলোডস ফোলà§à¦¡à¦¾à¦°à§‡ $2 ঠসংরকà§à¦·à¦£ করা হবে।</translation>
-<translation id="6655190889273724601">বিকাশকারী মোড</translation>
+<translation id="6655190889273724601">ডেভেলপার মোড</translation>
<translation id="6655458902729017087">অà§à¦¯à¦¾à¦•à¦¾à¦‰à¦¨à§à¦Ÿà¦—à§à¦²à¦¿ লà§à¦•à¦¾à¦¨</translation>
<translation id="6657585470893396449">পাসওয়ারà§à¦¡</translation>
<translation id="6659213950629089752">"<ph name="NAME" />" à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¾à¦¨ দà§à¦¬à¦¾à¦°à¦¾ à¦à¦‡ পৃষà§à¦ à¦¾à¦Ÿà¦¿ জà§à¦® করা হয়েছে</translation>
@@ -3687,7 +3688,7 @@
<translation id="6723354935081862304">Google দসà§à¦¤à¦¾à¦¬à§‡à¦œ à¦à¦¬à¦‚ অনà§à¦¯ কà§à¦²à¦¾à¦‰à¦¡ গনà§à¦¤à¦¬à§à¦¯à¦¸à§à¦¥à¦² পà§à¦°à¦¿à¦¨à§à¦Ÿ করà§à¦¨à§· Google কà§à¦²à¦¾à¦‰à¦¡ পà§à¦°à¦¿à¦¨à§à¦Ÿà§‡ পà§à¦°à¦¿à¦¨à§à¦Ÿ করতে <ph name="BEGIN_LINK" />পà§à¦°à¦¬à§‡à¦¶ করà§à¦¨<ph name="END_LINK" /> করà§à¦¨à§·</translation>
<translation id="6723661294526996303">বà§à¦•à¦®à¦¾à¦°à§à¦•à¦¸ à¦à¦¬à¦‚ সেটিংস আমদানি করà§à¦¨...</translation>
<translation id="6723839937902243910">পাওয়ার</translation>
-<translation id="6725206449694821596">ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿ মà§à¦¦à§à¦°à¦£ পà§à¦°à§‹à¦Ÿà§‹à¦•à¦² (IPP)</translation>
+<translation id="6725206449694821596">ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿ পà§à¦°à¦¿à¦¨à§à¦Ÿ পà§à¦°à§‹à¦Ÿà§‹à¦•à¦² (IPP)</translation>
<translation id="672609503628871915">নতà§à¦¨ কী আছে দেখà§à¦¨</translation>
<translation id="6727005317916125192">পূরà§à¦¬à¦¬à¦°à§à¦¤à§€ ফলক</translation>
<translation id="6731320427842222405">à¦à¦Ÿà¦¿ কয়েক মিনিট সময় নিতে পারে</translation>
@@ -3714,7 +3715,7 @@
<translation id="6766101255664245434">à¦à¦•à¦Ÿà¦¿ নতà§à¦¨ ফটো তà§à¦²à§à¦¨ বা à¦à¦•à¦Ÿà¦¿ আগে থেকে থাকা ফটো বা আইকন বেছে নিন।
<ph name="LINE_BREAK" />
à¦à¦‡ ফটোটি Chromebook সাইন-ইন সà§à¦•à§à¦°à¦¿à¦¨ à¦à¦¬à¦‚ লক সà§à¦•à§à¦°à¦¿à¦¨à§‡ পà§à¦°à¦¦à¦°à§à¦¶à¦¿à¦¤ হবে।</translation>
-<translation id="6769712124046837540">মà§à¦¦à§à¦°à¦• যোগ করা হচà§à¦›à§‡...</translation>
+<translation id="6769712124046837540">পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦° যোগ করা হচà§à¦›à§‡...</translation>
<translation id="6771503742377376720">à¦à¦•à¦Ÿà¦¿ শংসাপতà§à¦°à§‡à¦° করà§à¦¤à§ƒà¦ªà¦•à§à¦·</translation>
<translation id="6773575010135450071">আরও অà§à¦¯à¦¾à¦•à¦¶à¦¨...</translation>
<translation id="6778959797435875428">সাইটগà§à¦²à¦¿ আনমিউট করà§à¦¨</translation>
@@ -3808,7 +3809,7 @@
<translation id="6930242544192836755">সময়কাল</translation>
<translation id="693807610556624488">"<ph name="DEVICE_NAME" />" ঠলেখার কà§à¦°à¦¿à§Ÿà¦¾à¦•à¦²à¦¾à¦ª অà§à¦¯à¦¾à¦Ÿà§à¦°à¦¿à¦¬à¦¿à¦‰à¦Ÿà§‡à¦° সরà§à¦¬à¦¾à¦§à¦¿à¦• দৈরà§à¦˜à§à¦¯ অতিকà§à¦°à¦® করেছে।</translation>
<translation id="6941937518557314510">আপনার শংসাপতà§à¦° দিয়ে <ph name="HOST_NAME" />-ঠপà§à¦°à¦®à¦¾à¦£à§€à¦•à¦°à¦£ করতে দয়া করে <ph name="TOKEN_NAME" />-ঠপà§à¦°à¦¬à§‡à¦¶ করà§à¦¨à§·</translation>
-<translation id="6943176775188458830">মà§à¦¦à§à¦°à¦£ বাতিল করà§à¦¨</translation>
+<translation id="6943176775188458830">পà§à¦°à¦¿à¦¨à§à¦Ÿ বাতিল করà§à¦¨</translation>
<translation id="6943836128787782965">HTTP বà§à¦¯à¦°à§à¦¥ হয়েছে</translation>
<translation id="6945221475159498467">নিরà§à¦¬à¦¾à¦šà¦¨</translation>
<translation id="6948064128393024347">লঞà§à¦šà¦¾à¦°, অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ ফলাফল</translation>
@@ -3838,7 +3839,7 @@
<translation id="6980462514016882061">অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨, বিজà§à¦žà¦¾à¦ªà¦¨ à¦à¦¬à¦‚ অনà§à¦¯à¦¾à¦¨à§à¦¯ Google পরিষেবা বà§à¦¯à¦•à§à¦¤à¦¿à¦—তকৃত করতে Google আপনার বà§à¦°à¦¾à¦‰à¦œà¦¿à¦‚ ইতিহাস বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে পারে</translation>
<translation id="6980956047710795611">সমসà§à¦¤ Chrome OS ডেটা নতà§à¦¨ পাসওয়ারà§à¦¡à§‡ সà§à¦¥à¦¾à¦¨à¦¾à¦¨à§à¦¤à¦° করà§à¦¨ (আগের পাসওয়ারà§à¦¡ দরকার)</translation>
<translation id="6981982820502123353">অà§à¦¯à¦¾à¦•à§à¦¸à§‡à¦¯à§‹à¦—à§à¦¯à¦¤à¦¾</translation>
-<translation id="6982896539684144327"><ph name="VENDOR_NAME" />-à¦à¦° থেকে পà§à¦°à¦¾à¦ªà§à¦¤ মà§à¦¦à§à¦°à¦• শনাকà§à¦¤ করা হয়েছে</translation>
+<translation id="6982896539684144327"><ph name="VENDOR_NAME" />-à¦à¦° থেকে পà§à¦°à¦¾à¦ªà§à¦¤ পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦° শনাকà§à¦¤ করা হয়েছে</translation>
<translation id="6983201004195852174">অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ বোতামটি টিপে ধরে রাখà§à¦¨, তারপরে যে কনà§à¦Ÿà§‡à¦¨à§à¦Ÿà§‡à¦° বিষয়ে শà§à¦¨à¦¤à§‡ চান সেটিতে কà§à¦²à¦¿à¦• করà§à¦¨ বা টেনে আনà§à¦¨</translation>
<translation id="6983783921975806247">নিবনà§à¦§à§€à¦•à§ƒà¦¤ OID</translation>
<translation id="6983991971286645866">সকল সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ $1 ঠসংরকà§à¦·à¦£ করা হবে।</translation>
@@ -3900,7 +3901,7 @@
<translation id="7059893117020417984">গোপনে বà§à¦°à¦¾à¦‰à¦œ করার জনà§à¦¯ ছদà§à¦®à¦¬à§‡à¦¶à§€ উইনà§à¦¡à§‹ খà§à¦²à¦¤à§‡ ডট আইকন মেনà§à¦¤à§‡ কà§à¦²à¦¿à¦• করà§à¦¨</translation>
<translation id="7062222374113411376">সমà§à¦ªà§à¦°à¦¤à¦¿ বনà§à¦§ করা সাইটগà§à¦²à¦¿à¦•à§‡ ডেটা পাঠানো ও গà§à¦°à¦¹à¦£ শেষ করতে অনà§à¦®à¦¤à¦¿ দিন (পà§à¦°à¦¸à§à¦¤à¦¾à¦¬à¦¿à¦¤)</translation>
<translation id="7063129466199351735">শরà§à¦Ÿà¦•à¦¾à¦Ÿà¦—à§à¦²à¦¿ পà§à¦°à¦•à§à¦°à¦¿à§Ÿà¦¾ করা হচà§à¦›à§‡...</translation>
-<translation id="7063957500469387217">Google মেঘ মà§à¦¦à§à¦°à¦£à§‡ পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦°à¦—à§à¦²à¦¿ সেট আপ বা পরিচালনা করà§à¦¨à¥¤</translation>
+<translation id="7063957500469387217">Google কà§à¦²à¦¾à¦‰à¦¡ মà§à¦¦à§à¦°à¦£à§‡ পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦°à¦—à§à¦²à¦¿ সেট আপ বা পরিচালনা করà§à¦¨à¥¤</translation>
<translation id="7065223852455347715">à¦à¦‡ ডিভাইসটি à¦à¦®à¦¨ à¦à¦•à¦Ÿà¦¿ মোডে লক হয়েছে যা à¦à¦¨à§à¦Ÿà¦¾à¦°à¦ªà§à¦°à¦¾à¦‡à¦œ তালিকাভà§à¦•à§à¦¤à¦¿ পà§à¦°à¦¤à¦¿à¦°à§‹à¦§ করে৷ যদি আপনি ডিভাইসটিকে তালিকাভà§à¦•à§à¦¤ করতে চান তবে আপনাকে পà§à¦°à¦¥à¦®à§‡ ডিভাইস পà§à¦¨à¦°à§à¦¦à§à¦§à¦¾à¦°à§‡à¦° মধà§à¦¯ দিয়ে যেতে হবে৷</translation>
<translation id="7065534935986314333">সিসà§à¦Ÿà§‡à¦® সমà§à¦¬à¦¨à§à¦§à§‡</translation>
<translation id="7066944511817949584">"<ph name="DEVICE_NAME" />"-à¦à¦° সাথে সংযোগ করতে বà§à¦¯à¦°à§à¦¥à§·</translation>
@@ -4082,7 +4083,7 @@
<translation id="7378810950367401542">/</translation>
<translation id="7378812711085314936">ডেটা সংযোগ পান</translation>
<translation id="7384292194278095697">à¦à¦‡ ডিভাইসটি আর সমরà§à¦¥à¦¿à¦¤ নয়</translation>
-<translation id="7385854874724088939">মà§à¦¦à§à¦°à¦£à§‡à¦° চেষà§à¦Ÿà¦¾ করার সময় কোন তà§à¦°à§à¦Ÿà¦¿ ঘটেছে৷ দয়া করে আপনার মà§à¦¦à§à¦°à¦•à¦Ÿà¦¿ চেক করà§à¦¨ à¦à¦¬à¦‚ আবার চেষà§à¦Ÿà¦¾ করà§à¦¨à§·</translation>
+<translation id="7385854874724088939">পà§à¦°à¦¿à¦¨à§à¦Ÿà§‡à¦° চেষà§à¦Ÿà¦¾ করার সময় কোন তà§à¦°à§à¦Ÿà¦¿ ঘটেছে৷ দয়া করে আপনার মà§à¦¦à§à¦°à¦•à¦Ÿà¦¿ চেক করà§à¦¨ à¦à¦¬à¦‚ আবার চেষà§à¦Ÿà¦¾ করà§à¦¨à§·</translation>
<translation id="7386824183915085801">উপরে অনà§à¦¤à¦°à§à¦­à§à¦•à§à¦¤ করার জনà§à¦¯ আপনার চয়ন করা যেকোনো তথà§à¦¯à§‡à¦° পাশাপাশি আপনার Chrome à¦à¦¬à¦‚ অপারেটিং সিসà§à¦Ÿà§‡à¦® সংসà§à¦•à¦°à¦£à§‡à¦° তথà§à¦¯à¦“ জমা দেওয়া হবে৷যদি আপনি আপনার ইমেল ঠিকানা অনà§à¦¤à¦°à§à¦­à§à¦•à§à¦¤ করেন, তাহলে Google আপনার
পà§à¦°à¦¤à¦¿à¦•à§à¦°à¦¿à§Ÿà¦¾à¦° পà§à¦°à¦¤à¦¿à¦¬à§‡à¦¦à¦¨à§‡à¦° বিষয়ে আপনার সঙà§à¦—ে যোগাযোগ করতে পারে৷
সমসà§à¦¯à¦¾ নিরà§à¦£à¦¯à¦¼ করতে
@@ -4115,7 +4116,7 @@
<translation id="7427315641433634153">MSCHAP</translation>
<translation id="7427348830195639090">বà§à¦¯à¦¾à¦•à¦—à§à¦°à¦¾à¦‰à¦¨à§à¦¡ পৃষà§à¦ à¦¾:<ph name="BACKGROUND_PAGE_URL" /></translation>
<translation id="7433692219247014412">{COUNT,plural, =0{সবগà§à¦²à¦¿ &amp;নতà§à¦¨ উইনà§à¦¡à§‹à¦¤à§‡ খà§à¦²à§à¦¨}=1{&amp;নতà§à¦¨ উইনà§à¦¡à§‹à¦¤à§‡ খà§à¦²à§à¦¨}one{সবগà§à¦²à¦¿ (#টি) &amp;নতà§à¦¨ উইনà§à¦¡à§‹à¦¤à§‡ খà§à¦²à§à¦¨}other{সবগà§à¦²à¦¿ (#টি) &amp;নতà§à¦¨ উইনà§à¦¡à§‹à¦¤à§‡ খà§à¦²à§à¦¨}}</translation>
-<translation id="7434509671034404296">বিকাশকারী</translation>
+<translation id="7434509671034404296">ডেভেলপার</translation>
<translation id="7436921188514130341">নাম পরিবরà§à¦¤à¦¨à§‡à¦° সময় à¦à¦•à¦Ÿà¦¿ তà§à¦°à§à¦Ÿà¦¿ হয়েছিল।</translation>
<translation id="743823505716061814">অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ কà§à§Ÿà§‡à¦°à¦¿à¦—à§à¦²à¦¿à¦•à§‡ আপনার Google অà§à¦¯à¦¾à¦•à¦¾à¦‰à¦¨à§à¦Ÿà§‡à¦° সঙà§à¦—ে সংযà§à¦•à§à¦¤ করা হবে৷ আপনি সেগà§à¦²à¦¿à¦•à§‡ আপনার <ph name="BEGIN_LINK" />অà§à¦¯à¦¾à¦•à¦¾à¦‰à¦¨à§à¦Ÿ ইতিহাস<ph name="END_LINK" /> -ঠদেখতে à¦à¦¬à¦‚ মà§à¦›à¦¤à§‡ পারেন৷</translation>
<translation id="7438940380767210568">পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦° সেট আপ করà§à¦¨...</translation>
@@ -4429,7 +4430,7 @@
<translation id="7945031593909029181">"<ph name="CHROME_EXTENSION_NAME" />" à¦à¦¦à§‡à¦° সাথে সংযোগ সà§à¦¥à¦¾à¦ªà¦¨ করতে চায়</translation>
<translation id="794676567536738329">অনà§à¦®à¦¤à¦¿à¦—à§à¦²à¦¿ নিশà§à¦šà¦¿à¦¤ করà§à¦¨</translation>
<translation id="7947962633355574091">ভি&amp;ডিও ঠিকানা কপি করà§à¦¨</translation>
-<translation id="7950040156882184764">ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿ মà§à¦¦à§à¦°à¦£ পà§à¦°à¦Ÿà§‹à¦•à¦² (HTTP)</translation>
+<translation id="7950040156882184764">ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿ পà§à¦°à¦¿à¦¨à§à¦Ÿ পà§à¦°à¦Ÿà§‹à¦•à¦² (HTTP)</translation>
<translation id="7953739707111622108">à¦à¦‡ ডিভাইসটি ফাইল সিসà§à¦Ÿà§‡à¦®à¦Ÿà¦¿ সà§à¦¬à§€à¦•à§ƒà¦¤ না হওয়ার কারণে খà§à¦²à¦¤à§‡ পারা যায়না৷</translation>
<translation id="7953955868932471628">শরà§à¦Ÿà¦•à¦¾à¦Ÿà¦—à§à¦²à¦¿ পরিচালনা করà§à¦¨</translation>
<translation id="7955383984025963790">টà§à¦¯à¦¾à¦¬ ৫</translation>
@@ -4524,7 +4525,7 @@
<translation id="806812017500012252">শিরোনাম অনà§à¦¸à¦¾à¦°à§‡ পà§à¦¨à¦ƒà¦•à§à¦°à¦® করà§à¦¨</translation>
<translation id="8068253693380742035">পà§à¦°à¦¬à§‡à¦¶ করতে সà§à¦ªà¦°à§à¦¶ করà§à¦¨</translation>
<translation id="8069615408251337349">Google কà§à¦²à¦¾à¦‰à¦¡ পà§à¦°à¦¿à¦¨à§à¦Ÿ</translation>
-<translation id="8071432093239591881">ছবি হিসেবে মà§à¦¦à§à¦°à¦£ করà§à¦¨</translation>
+<translation id="8071432093239591881">ছবি হিসেবে পà§à¦°à¦¿à¦¨à§à¦Ÿ করà§à¦¨</translation>
<translation id="8071942001314758122">শà§à¦§à§à¦®à¦¾à¦¤à§à¦° তিন বার "Ok Google" বলà§à¦¨</translation>
<translation id="8072988827236813198">টà§à¦¯à¦¾à¦¬à¦—à§à¦²à¦¿ পিন করà§à¦¨</translation>
<translation id="8074127646604999664">সমà§à¦ªà§à¦°à¦¤à¦¿ বনà§à¦§ করা সাইটগà§à¦²à¦¿à¦•à§‡ ডেটা পাঠানো ও গà§à¦°à¦¹à¦£ শেষ করতে অনà§à¦®à¦¤à¦¿ দিন</translation>
@@ -4570,7 +4571,7 @@
<translation id="8143442547342702591">অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¾à¦¨à¦Ÿà¦¿ সঠিক নয়</translation>
<translation id="8146177459103116374">আপনি যদি à¦à¦‡ ডিভাইসে ইতিমধà§à¦¯à§‡à¦‡ নিবনà§à¦§à¦¨ করে থাকনে, তাহলে আপনি <ph name="LINK2_START" />à¦à¦•à¦œà¦¨ বিদà§à¦¯à¦®à¦¾à¦¨ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ হিসাবে পà§à¦°à¦¬à§‡à¦¶ করতে পারেন<ph name="LINK2_END" />৷</translation>
<translation id="8146793085009540321">পà§à¦°à¦¬à§‡à¦¶ করà§à¦¨ বà§à¦¯à¦°à§à¦¥ হয়েছে। দয়া করে আপনার পà§à¦°à¦¶à¦¾à¦¸à¦•à§‡à¦° সাথে যোগাযোগ করà§à¦¨ অথবা আবার চেষà§à¦Ÿà¦¾ করà§à¦¨à¥¤</translation>
-<translation id="8151185429379586178">বিকাশকারী সরঞà§à¦œà¦¾à¦®à¦—à§à¦²à¦¿</translation>
+<translation id="8151185429379586178">ডেভেলপার সরঞà§à¦œà¦¾à¦®à¦—à§à¦²à¦¿</translation>
<translation id="8151638057146502721">কনফিগার করà§à¦¨</translation>
<translation id="8152091997436726702">পà§à¦°à¦¿à¦¨à§à¦Ÿ নিবনà§à¦§à¦¨à§‡à¦° জনà§à¦¯ নিরà§à¦§à¦¾à¦°à¦¿à¦¤ সময়সীমা শেষ হয়ে গেছে৷ à¦à¦•à¦Ÿà¦¿ পà§à¦°à¦¿à¦¨à§à¦Ÿ নিবনà§à¦§à¦¨ করতে, আপনাকে অবশà§à¦¯à¦‡ পà§à¦°à¦¿à¦¨à§à¦Ÿà§‡ নিবনà§à¦§à¦¨ নিশà§à¦šà¦¿à¦¤ করতে হবে৷</translation>
<translation id="8153607920959057464">à¦à¦‡ ফাইলটি পà§à¦°à¦¦à¦°à§à¦¶à¦¿à¦¤ হতে পারে না৷ </translation>
@@ -4684,7 +4685,7 @@
<translation id="8335587457941836791">তাক থেকে আনপিন করà§à¦¨</translation>
<translation id="8336153091935557858">গতলাক <ph name="YESTERDAY_DAYTIME" /></translation>
<translation id="8337399713761067085">আপনি à¦à¦–ন বরà§à¦¤à¦®à¦¾à¦¨à§‡ অফলাইনে আছেন </translation>
-<translation id="8338952601723052325">বিকাশকারী ওয়েবসাইট</translation>
+<translation id="8338952601723052325">ডেভেলপার ওয়েবসাইট</translation>
<translation id="8339059274628563283"><ph name="SITE" /> সà§à¦¥à¦¾à¦¨à§€à¦¯à¦¼à¦­à¦¾à¦¬à§‡ ডেটা সংরকà§à¦·à¦£ করেছে</translation>
<translation id="8342318071240498787">à¦à¦•à¦‡ নাম সহ ফাইল অথবা à¦à¦•à¦Ÿà¦¿ নিরà§à¦¦à§‡à¦¶à¦¿à¦•à¦¾ ইতিমধà§à¦¯à§‡à¦‡ বিদà§à¦¯à¦®à¦¾à¦¨ আছে৷</translation>
<translation id="8343956361364550006">সেরা ভিডিও বা অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¾à¦¨à§‡à¦° জনà§à¦¯ উচà§à¦š বà§à¦¯à¦¾à¦¨à§à¦¡à¦‰à¦‡à¦¥ বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨à¥¤
@@ -4864,7 +4865,7 @@
<translation id="8655319619291175901">ওহো, কিছৠসমসà§à¦¯à¦¾ হয়েছে৷</translation>
<translation id="8655972064210167941">আপনার পাসওয়ারà§à¦¡ যাচাই করতে না পারায় পà§à¦°à¦¬à§‡à¦¶ করà§à¦¨ বà§à¦¯à¦°à§à¦¥ হয়েছে। দয়া করে আপনার পà§à¦°à¦¶à¦¾à¦¸à¦•à§‡à¦° সাথে যোগাযোগ করà§à¦¨ অথবা আবার চেষà§à¦Ÿà¦¾ করà§à¦¨à¥¤</translation>
<translation id="8656768832129462377">চেক করবেন না</translation>
-<translation id="8658595122208653918">মà§à¦¦à§à¦°à¦£à§‡à¦° বিকলà§à¦ªà¦—à§à¦²à¦¿ পরিবরà§à¦¤à¦¨ করà§à¦¨...</translation>
+<translation id="8658595122208653918">পà§à¦°à¦¿à¦¨à§à¦Ÿà§‡à¦° বিকলà§à¦ªà¦—à§à¦²à¦¿ পরিবরà§à¦¤à¦¨ করà§à¦¨...</translation>
<translation id="8658645149275195032"><ph name="APP_NAME" /> <ph name="TAB_NAME" /> à¦à¦° সঙà§à¦—ে আপনার সà§à¦•à§à¦°à§€à¦¨ à¦à¦¬à¦‚ অডিও শেয়ার করছে।</translation>
<translation id="8659875081143553823">à¦à¦•à¦Ÿà§ অপেকà§à¦·à¦¾ করà§à¦¨</translation>
<translation id="8661290697478713397">লিঙà§à¦•à¦Ÿà¦¿ ছ&amp;দà§à¦®à¦¬à§‡à¦¶à§€ উইনà§à¦¡à§‹à¦¤à§‡ খà§à¦²à§à¦¨</translation>
@@ -4917,7 +4918,7 @@
<translation id="8725066075913043281">আবার চেষà§à¦Ÿà¦¾ করà§à¦¨</translation>
<translation id="8725178340343806893">পছনà§à¦¦à¦¸à¦‡/বà§à¦•à¦®à¦¾à¦°à§à¦•à¦¸</translation>
<translation id="8726206820263995930">সারà§à¦­à¦¾à¦° থেকে নীতি সেটিংস নিয়ে আসার সময়ে তà§à¦°à§à¦Ÿà¦¿: <ph name="CLIENT_ERROR" />৷</translation>
-<translation id="8726718463424335668">আমদানি করা à¦à§œà¦¿à§Ÿà§‡ যান</translation>
+<translation id="8726718463424335668">ইমপোরà§à¦Ÿ করা à¦à§œà¦¿à§Ÿà§‡ যান</translation>
<translation id="8727142376512517020">à¦à¦Ÿà¦¿à¦•à§‡ আবার দেখাবেন না</translation>
<translation id="8730621377337864115">সমà§à¦ªà¦¨à§à¦¨ হয়েছে</translation>
<translation id="8732030010853991079">à¦à¦‡ আইকনের উপর কà§à¦²à¦¿à¦• করে à¦à¦‡ à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¨à¦Ÿà¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨à§·</translation>
@@ -4951,7 +4952,7 @@
<translation id="878069093594050299">à¦à¦‡ শংসাপতà§à¦°à¦Ÿà¦¿ নিমà§à¦¨à¦²à¦¿à¦–িত বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦—à§à¦²à¦¿à¦° জনà§à¦¯ যাচাইকৃত:</translation>
<translation id="8781980678064919987">যখন ঢাকনাটি বনà§à¦§ থাকবে তখন বনà§à¦§ করà§à¦¨</translation>
<translation id="8782565991310229362">Kiosk অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•à§‡à¦¶à¦¾à¦¨ লঞà§à¦š বাতিল হয়েছে৷</translation>
-<translation id="8783093612333542422">আপনার সাথে &lt;strong&gt;<ph name="SENDER" />&lt;/strong&gt; à¦à¦•à¦Ÿà¦¿ মà§à¦¦à§à¦°à¦• শেয়ার করতে চান &lt;strong&gt;<ph name="PRINTER_NAME" />&lt;/strong&gt;৷</translation>
+<translation id="8783093612333542422">আপনার সাথে &lt;strong&gt;<ph name="SENDER" />&lt;/strong&gt; à¦à¦•à¦Ÿà¦¿ পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦° শেয়ার করতে চান &lt;strong&gt;<ph name="PRINTER_NAME" />&lt;/strong&gt;৷</translation>
<translation id="8784626084144195648">হাজার পà§à¦°à¦¤à¦¿ গড়</translation>
<translation id="8785622406424941542">লেখনী</translation>
<translation id="8787254343425541995">শেয়ার করে নেওয়া নেটওয়ারà§à¦•à¦—à§à¦²à¦¿à¦° জনà§à¦¯ পà§à¦°à¦•à§à¦¸à¦¿à¦—à§à¦²à¦¿à¦° অনà§à¦®à¦¤à¦¿ দিন</translation>
@@ -5041,7 +5042,7 @@
<translation id="8922013791253848639">à¦à¦‡ সাইটে সবসময় বিজà§à¦žà¦¾à¦ªà¦¨ দেখানোর অনà§à¦®à¦¤à¦¿ দিন</translation>
<translation id="8925458182817574960">&amp;সেটিংস</translation>
<translation id="8926389886865778422">আর জিজà§à¦žà¦¾à¦¸à¦¾ করবেন না</translation>
-<translation id="8926518602592448999">বিকাশকারী মোডে চলা à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¾à¦¨à¦—à§à¦²à¦¿ অকà§à¦·à¦® করà§à¦¨</translation>
+<translation id="8926518602592448999">ডেভেলপার মোডে চলা à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¾à¦¨à¦—à§à¦²à¦¿ অকà§à¦·à¦® করà§à¦¨</translation>
<translation id="892706138619340876">কিছৠসেটিংস পà§à¦¨à¦°à¦¾à§Ÿ সেট করা হয়েছে</translation>
<translation id="8931394284949551895">নতà§à¦¨ ডিভাইসগà§à¦²à¦¿</translation>
<translation id="8933960630081805351">ফাইনà§à¦¡à¦¾à¦°à§‡ &amp;দেখান</translation>
@@ -5052,7 +5053,7 @@
<translation id="8941882480823041320">পূরà§à¦¬à¦¬à¦°à§à¦¤à§€ শবà§à¦¦</translation>
<translation id="894360074127026135">Netscape International Step-Up</translation>
<translation id="8944099748578356325">বà§à¦¯à¦¾à¦Ÿà¦¾à¦°à¦¿ আরও দà§à¦°à§à¦¤ শেষ হবে (বরà§à¦¤à¦®à¦¾à¦¨à§‡ <ph name="BATTERY_PERCENTAGE" />%)</translation>
-<translation id="8944779739948852228">মà§à¦¦à§à¦°à¦• শনাকà§à¦¤ করা হয়েছে</translation>
+<translation id="8944779739948852228">পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦° শনাকà§à¦¤ করা হয়েছে</translation>
<translation id="8944964446326379280"><ph name="APP_NAME" /> <ph name="TAB_NAME" /> à¦à¦° সঙà§à¦—ে à¦à¦•à¦Ÿà¦¿ উইনà§à¦¡à§‹ শেয়ার করছে।</translation>
<translation id="8946284507644756416">আপনার <ph name="DEVICE_TYPE" /> আপনার Android ফোন দিয়ে আনলক করা যাবে।</translation>
<translation id="8946359700442089734">à¦à¦‡ <ph name="IDS_SHORT_PRODUCT_NAME" /> ডিভাইসে ডিবাগিং বৈশিষà§à¦Ÿà§à¦¯à¦—à§à¦²à¦¿ সমà§à¦ªà§‚রà§à¦£à¦°à§‚পে সকà§à¦·à¦® করা নেই৷</translation>
@@ -5090,7 +5091,7 @@
<translation id="9003647077635673607">সমসà§à¦¤ ওয়েবসাইটে অনà§à¦®à¦¤à¦¿ দিন</translation>
<translation id="9003677638446136377">আবার পরীকà§à¦·à¦¾ করে দেখà§à¦¨</translation>
<translation id="9003704114456258138">ফà§à¦°à¦¿à¦•à§‹à§Ÿà§‡à¦¨à§à¦¸à¦¿</translation>
-<translation id="9004952710076978168">à¦à¦•à¦Ÿà¦¿ অজানা মà§à¦¦à§à¦°à¦•à§‡à¦° জনà§à¦¯ à¦à¦•à¦Ÿà¦¿ বিজà§à¦žà¦ªà§à¦¤à¦¿ পà§à¦°à¦¾à¦ªà§à¦¤ হয়েছে৷</translation>
+<translation id="9004952710076978168">à¦à¦•à¦Ÿà¦¿ অজানা পà§à¦°à¦¿à¦¨à§à¦Ÿà¦¾à¦°à§‡à¦° জনà§à¦¯ à¦à¦•à¦Ÿà¦¿ বিজà§à¦žà¦ªà§à¦¤à¦¿ পà§à¦°à¦¾à¦ªà§à¦¤ হয়েছে৷</translation>
<translation id="9008201768610948239">উপেকà§à¦·à¦¾ করà§à¦¨</translation>
<translation id="9009299913548444929">à¦à¦‡ বৈশিষà§à¦Ÿà§à¦¯à¦Ÿà¦¿ অসà§à¦¥à¦¾à¦¯à¦¼à§€à¦­à¦¾à¦¬à§‡ অনà§à¦ªà¦²à¦¬à§à¦§à¥¤ <ph name="BEGIN_LINK" />সহায়তা<ph name="END_LINK" /></translation>
<translation id="9009369504041480176">আপলোড হচà§à¦›à§‡ (<ph name="PROGRESS_PERCENT" />%)...</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_ca.xtb b/chromium/chrome/app/resources/generated_resources_ca.xtb
index e682c670aae..61928b0e76d 100644
--- a/chromium/chrome/app/resources/generated_resources_ca.xtb
+++ b/chromium/chrome/app/resources/generated_resources_ca.xtb
@@ -183,7 +183,7 @@
<translation id="1272079795634619415">Atura</translation>
<translation id="1272978324304772054">Aquest compte d'usuari no pertany al domini on s'ha registrat el dispositiu. Si el voleu registrar en un domini diferent, primer cal que apliqueu el procés de recuperació del dispositiu.</translation>
<translation id="1274977772557788323">Configuració d'emmagatzematge d'Adobe Flash Player</translation>
-<translation id="1274997165432133392">Galetes i altres dades dels llocs</translation>
+<translation id="1274997165432133392">Galetes i altres dades dels llocs web</translation>
<translation id="1275718070701477396">Seleccionat</translation>
<translation id="127668050356036882">Tanca totes les finestres</translation>
<translation id="1277908057200820621">Mostra la llista de dispositius</translation>
@@ -940,7 +940,7 @@ No crec que calgui bloquejar aquest lloc.</translation>
<translation id="2470702053775288986">Extensions no compatibles desactivades</translation>
<translation id="2473195200299095979">Tradueix aquesta pàgina</translation>
<translation id="2475982808118771221">S'ha produït un error</translation>
-<translation id="2476578072172137802">Configuració del lloc</translation>
+<translation id="2476578072172137802">Configuració del lloc web</translation>
<translation id="2478176599153288112">Permisos de fitxer multimèdia per a "<ph name="EXTENSION" />"</translation>
<translation id="247949520305900375">Comparteix l'àudio</translation>
<translation id="2480868415629598489">Modifica les dades que copies i enganxes</translation>
@@ -986,7 +986,7 @@ No crec que calgui bloquejar aquest lloc.</translation>
<translation id="2526590354069164005">Escriptori</translation>
<translation id="2526619973349913024">Cerca actualitzacions</translation>
<translation id="2527167509808613699">Qualsevol tipus de connexió</translation>
-<translation id="2527591341887670429">Ús de la bateria: <ph name="PRECENTAGE" />%</translation>
+<translation id="2527591341887670429">Consum de la bateria: <ph name="PRECENTAGE" />%</translation>
<translation id="2532026602297547439">El sensor està brut</translation>
<translation id="2532589005999780174">Mode d'alt contrast</translation>
<translation id="253434972992662860">P&amp;ausa</translation>
@@ -1199,7 +1199,7 @@ No crec que calgui bloquejar aquest lloc.</translation>
<translation id="2815500128677761940">Barra d'adreces d'interès</translation>
<translation id="2815693974042551705">Carpeta d'adreces d'interès</translation>
<translation id="2818476747334107629">Detalls de la impressora</translation>
-<translation id="2820957248982571256">S'està cercant…</translation>
+<translation id="2820957248982571256">S'està cercant...</translation>
<translation id="2822634587701817431">Redueix o amplia</translation>
<translation id="2825758591930162672">Clau pública del subjecte</translation>
<translation id="2828650939514476812">Connectar a una xarxa Wi-Fi</translation>
@@ -2381,7 +2381,7 @@ Premeu qualsevol tecla per continuar explorant.</translation>
<translation id="469230890969474295">Carpeta OEM</translation>
<translation id="4692623383562244444">Motors de cerca</translation>
<translation id="4697551882387947560">Quan finalitza la sessió de navegació</translation>
-<translation id="4699172675775169585">Imatges i fitxers emmagatzemats a la memòria cau</translation>
+<translation id="4699172675775169585">Imatges i fitxers desats a la memòria cau</translation>
<translation id="4699357559218762027">(inici automàtic)</translation>
<translation id="4707302005824653064">El gestor (<ph name="CUSTODIAN_EMAIL" />) pot revisar-ne l'ús i l'historial a chrome.com.</translation>
<translation id="4707579418881001319">L2TP/IPsec + certificat d'usuari</translation>
@@ -3025,6 +3025,7 @@ Assegureu-vos que no es pugui accedir a informació confidencial.</translation>
<translation id="5678955352098267522">Llegir les dades del lloc <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Identificador d'elements</translation>
<translation id="5687326903064479980">Zona horària</translation>
+<translation id="5689516760719285838">Ubicació</translation>
<translation id="56907980372820799">Enllaça les dades</translation>
<translation id="5691511426247308406">Família</translation>
<translation id="5691596662111998220"><ph name="FILE_NAME" /> ja no existeix.</translation>
@@ -4307,7 +4308,7 @@ Assegureu-vos que no es pugui accedir a informació confidencial.</translation>
<translation id="7760004034676677601">Aquesta pàgina d'inici és la que esperàveu?</translation>
<translation id="7764225426217299476">Afegeix una adreça</translation>
<translation id="7764256770584298012"><ph name="DOWNLOAD_RECEIVED" /> del domini <ph name="DOWNLOAD_DOMAIN" /></translation>
-<translation id="7765158879357617694">Desplaça</translation>
+<translation id="7765158879357617694">Mou</translation>
<translation id="7766807826975222231">Visita guiada</translation>
<translation id="7766838926148951335">Accepta els permisos</translation>
<translation id="7769672763586021400">Identificador del model</translation>
@@ -4705,7 +4706,7 @@ Deseu el fitxer de clau en una ubicació segura. El necessitareu per crear versi
<translation id="8378285435971754261">Permet que el servei d'ubicació de Google ajudi les aplicacions a trobar la teva ubicació de manera ràpida i precisa, la qual cosa pot reduir el consum de bateria. A més, s'enviaran dades d'ubicació anònimes a Google, fins i tot quan no s'estigui executant cap aplicació. <ph name="BEGIN_LINK1" />Més informació<ph name="END_LINK1" /></translation>
<translation id="8381179624334829711">Gestioneu la configuració de la càmera…</translation>
<translation id="8382913212082956454">Copia l'&amp;adreça electrònica</translation>
-<translation id="8386903983509584791">La cerca s'ha completat</translation>
+<translation id="8386903983509584791">S'ha completat la cerca</translation>
<translation id="8390029840652165810">Assegureu-vos que la vostra connexió a la xarxa funciona i, si el problema persisteix, tanqueu la sessió i torneu a iniciar-la per actualitzar les vostres credencials.</translation>
<translation id="8390449457866780408">El servidor no està disponible.</translation>
<translation id="8392234662362215700">Premeu Ctrl+Maj+espai per canviar la disposició del teclat.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_cs.xtb b/chromium/chrome/app/resources/generated_resources_cs.xtb
index 387daa84ed8..11ce639c898 100644
--- a/chromium/chrome/app/resources/generated_resources_cs.xtb
+++ b/chromium/chrome/app/resources/generated_resources_cs.xtb
@@ -1014,7 +1014,7 @@ Tento web by podle mě neměl být blokován.</translation>
<translation id="2570000010887652771">Využívání dat sníženo.</translation>
<translation id="2570648609346224037">Při stahování obrazu pro obnovení došlo k potížím.</translation>
<translation id="257088987046510401">Motivy</translation>
-<translation id="2571964818629181240">PÅ™ed importem zavÅ™ete prohlížeÄ Firefox</translation>
+<translation id="2571964818629181240">Před importem zavřete Firefox</translation>
<translation id="2572032849266859634">Byl udÄ›len přístup pouze ke Ätení ke svazku <ph name="VOLUME_NAME" />.</translation>
<translation id="2573269395582837871">Vybrat obrázek a jméno</translation>
<translation id="2574102660421949343">Soubory cookie z webu <ph name="DOMAIN" /> byly povoleny.</translation>
@@ -1766,7 +1766,7 @@ Pokud nezměníte výchozí nastavení, uživatel <ph name="USER_DISPLAY_NAME" /
<translation id="3654045516529121250">Čtení nastavení usnadnění přístupu</translation>
<translation id="3655712721956801464">{NUM_FILES,plural, =1{Má trvalý přístup k jednomu souboru.}few{Má trvalý přístup ke # souborům.}many{Má trvalý přístup k # souboru.}other{Má trvalý přístup k # souborům.}}</translation>
<translation id="365793796291733849"><ph name="BEGIN_PARAGRAPH1" />Když zapnete automatické zálohování, budou data zařízení a aplikací pravidelnÄ› ukládána do soukromé složky na Disku Google. Data aplikací mohou být jakákoli data, která aplikace uložila (v závislosti na nastavení vývojáře), vÄetnÄ› potenciálnÄ› citlivých dat, jako jsou kontakty, zprávy a fotky.<ph name="END_PARAGRAPH1" />
- <ph name="BEGIN_PARAGRAPH2" />Zálohovaná data se nezapoÄítávají do kvóty úložiÅ¡tÄ› Disku. Velké soubory nebo soubory, které vývojáři ze služby vylouÄili, zálohovány nebudou.<ph name="END_PARAGRAPH2" /></translation>
+ <ph name="BEGIN_PARAGRAPH2" />Zálohovaná data se nezapoÄítávají do kvóty úložiÅ¡tÄ› na Disku. Velké soubory nebo soubory, které vývojáři ze služby vylouÄili, zálohovány nebudou.<ph name="END_PARAGRAPH2" /></translation>
<translation id="3660234220361471169">Nedůvěryhodný</translation>
<translation id="3661054927247347545">Přihlašovací certifikace není platná. Okno se zavře za <ph name="MINUTES" />:<ph name="SECONDS" /></translation>
<translation id="3665589677786828986">ProhlížeÄ Chrome zjistil, že nÄ›která z vaÅ¡ich nastavení byla upravena jiným programem, a obnovil je na původní výchozí hodnoty.</translation>
@@ -3023,6 +3023,7 @@ Chcete-li pokraÄovat v práci, stisknÄ›te libovolnou klávesu.</translation>
<translation id="5678955352098267522">Čtení vašich dat na webu <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Identifikátor položky</translation>
<translation id="5687326903064479980">Časové pásmo</translation>
+<translation id="5689516760719285838">Poloha</translation>
<translation id="56907980372820799">Propojit data</translation>
<translation id="5691511426247308406">Rodina</translation>
<translation id="5691596662111998220">Jejda, soubor <ph name="FILE_NAME" /> již neexistuje.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_da.xtb b/chromium/chrome/app/resources/generated_resources_da.xtb
index 6115c189f20..d8053c7fd36 100644
--- a/chromium/chrome/app/resources/generated_resources_da.xtb
+++ b/chromium/chrome/app/resources/generated_resources_da.xtb
@@ -14,7 +14,7 @@
<translation id="1016566241875885511">Yderligere oplysninger (valgfrit)</translation>
<translation id="1017280919048282932">&amp;Tilføj til ordbog</translation>
<translation id="1018656279737460067">Annulleret</translation>
-<translation id="102272308210570439">Giv Google Assistent tilladelse til at anvende det, der vises på skærmen</translation>
+<translation id="102272308210570439">Giv Assistent tilladelse til at anvende det, der vises på skærmen</translation>
<translation id="1026822031284433028">Indlæs billede</translation>
<translation id="1029317248976101138">Zoom</translation>
<translation id="1031362278801463162">Indlæser eksempel</translation>
@@ -344,7 +344,7 @@
proxyserveren fungerer. Hvis du ikke mener, at der er grund til at anvende en
proxyserver, skal du justere dine <ph name="LINK_START" />proxyindstillinger<ph name="LINK_END" />.</translation>
<translation id="1510907582379248592">Gemte adgangskoder til <ph name="ORIGIN" />:</translation>
-<translation id="1511388193702657997">Tilbyd at gemme dine adgangskoder på nettet</translation>
+<translation id="1511388193702657997">Tilbyd at gemme dine adgangskoder fra nettet</translation>
<translation id="1512210426710821809">Den eneste måde at fortryde dette på er ved at geninstallere <ph name="IDS_SHORT_PRODUCT_OS_NAME" /></translation>
<translation id="1514215615641002767">Føj til skrivebordet</translation>
<translation id="151501797353681931">Importeret fra Safari</translation>
@@ -2422,7 +2422,7 @@ Tryk på en vilkårlig tast for at fortsætte udforskningen.</translation>
<translation id="4759238208242260848">Downloads</translation>
<translation id="4761104368405085019">Bruge din mikrofon</translation>
<translation id="4762718786438001384">Der er næsten ikke mere diskplads på din enhed</translation>
-<translation id="4763408175235639573">Følgende cookies blev konfigureret, da du fik vist denne side</translation>
+<translation id="4763408175235639573">Følgende cookies blev gemt, da du fik vist denne side</translation>
<translation id="4763830802490665879">Cookies fra flere websites bliver ryddet ved lukning.</translation>
<translation id="4768332406694066911">Du har certifikater fra disse organisationer, der identificerer dig</translation>
<translation id="4776917500594043016">Adgangskode for <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -2870,7 +2870,7 @@ Tryk på en vilkårlig tast for at fortsætte udforskningen.</translation>
<translation id="5438224778284622050">Vil du slette offlinefiler?</translation>
<translation id="5438430601586617544">(Upakket)</translation>
<translation id="544083962418256601">Opret genveje...</translation>
-<translation id="5442550868130618860">Slå automatisk opdatering til</translation>
+<translation id="5442550868130618860">Aktivér automatisk opdatering</translation>
<translation id="5446983216438178612">Vis certifikater for organisationen</translation>
<translation id="5448293924669608770">Ups! Der opstod en fejl under login</translation>
<translation id="5449551289610225147">Ugyldig adgangskode</translation>
@@ -3025,6 +3025,7 @@ Tryk på en vilkårlig tast for at fortsætte udforskningen.</translation>
<translation id="5678955352098267522">Læs dine data på <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Aktiv-id</translation>
<translation id="5687326903064479980">Tidszone</translation>
+<translation id="5689516760719285838">Placering</translation>
<translation id="56907980372820799">Link data</translation>
<translation id="5691511426247308406">Familie</translation>
<translation id="5691596662111998220"><ph name="FILE_NAME" /> eksisterer ikke længere.</translation>
@@ -3180,7 +3181,7 @@ Tryk på en vilkårlig tast for at fortsætte udforskningen.</translation>
<translation id="5924047253200400718">Få hjælp<ph name="SCANNING_STATUS" /></translation>
<translation id="5925147183566400388">Markør for erklæring om certificeringspraksis</translation>
<translation id="5927692884057333064">Omdøber...</translation>
-<translation id="592880897588170157">Download PDF-filer, i stedet for at de downloades automatisk i Chrome</translation>
+<translation id="592880897588170157">Download PDF-filer, i stedet for at de åbnes automatisk i Chrome</translation>
<translation id="5931146425219109062">Læse og redigere alle dine data på de websites, du besøger</translation>
<translation id="5932881020239635062">Serienummer</translation>
<translation id="5933376509899483611">Tidszone</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_de.xtb b/chromium/chrome/app/resources/generated_resources_de.xtb
index 33f6ed60817..ffa4c172d40 100644
--- a/chromium/chrome/app/resources/generated_resources_de.xtb
+++ b/chromium/chrome/app/resources/generated_resources_de.xtb
@@ -633,7 +633,7 @@
<translation id="1976150099241323601">In Sicherheitsgerät anmelden</translation>
<translation id="1976323404609382849">Es wurden Cookies von mehreren Websites blockiert.</translation>
<translation id="1977965994116744507">Verringern Sie den Abstand zwischen Smartphone und <ph name="DEVICE_TYPE" />, um das Gerät zu entsperren.</translation>
-<translation id="1979280758666859181">Sie möchten zu einem Kanal mit einer älteren Version von <ph name="PRODUCT_NAME" /> wechseln. Die Änderung erfolgt, sobald die Version der aktuell auf Ihrem Gerät installierten Version entspricht.</translation>
+<translation id="1979280758666859181">Sie möchten zu einem Kanal mit einer älteren Version von <ph name="PRODUCT_NAME" /> wechseln. Die Änderung erfolgt, sobald die Kanalversion der aktuell auf Ihrem Gerät installierten Version entspricht.</translation>
<translation id="1979718561647571293">Ist das Ihre erwartete "Beim Start"-Seite?</translation>
<translation id="1981115145845865539"><ph name="DEVICE_TYPE" /> automatisch entsperren</translation>
<translation id="1983959805486816857">Nach der Erstellung eines neuen betreuten Nutzers können Sie die Einstellungen jederzeit von jedem Gerät aus unter <ph name="MANAGEMENT_URL" /> verwalten.</translation>
@@ -794,7 +794,7 @@
<translation id="222949136907494149"><ph name="URL" /> möchte den Standort Ihres Computers nutzen.</translation>
<translation id="2230051135190148440">CHAP</translation>
<translation id="2230062665678605299">Ordner "<ph name="FOLDER_NAME" />" kann nicht erstellt werden. <ph name="ERROR_MESSAGE" /></translation>
-<translation id="223106756035922488">Zum Ansehen des aktuellen Doodles klicken</translation>
+<translation id="223106756035922488">Zum Ansehen des heutigen Doodles klicken</translation>
<translation id="2231238007119540260">Wenn Sie ein Serverzertifikat löschen, werden die üblichen Sicherheitsprüfungen für den jeweiligen Server wieder aktiviert und es muss ein gültiges Zertifikat verwendet werden.</translation>
<translation id="2231990265377706070">Ausrufezeichen</translation>
<translation id="2232876851878324699">Die Datei enthielt ein Zertifikat, das nicht importiert wurde:</translation>
@@ -974,7 +974,7 @@ Ich glaube nicht, dass diese Website blockiert werden sollte.</translation>
<translation id="2509495747794740764">Der Wert für die Skalierung muss zwischen 10 und 200 liegen.</translation>
<translation id="2515586267016047495">Alt</translation>
<translation id="251662399991179012">Ihr <ph name="DEVICE_TYPE" /> trainieren</translation>
-<translation id="2517472476991765520">Scannen</translation>
+<translation id="2517472476991765520">Suchen</translation>
<translation id="2518024842978892609">Clientzertifikate verwenden</translation>
<translation id="2520644704042891903">Warten auf verfügbaren Socket...</translation>
<translation id="252219247728877310">Komponente nicht aktualisiert</translation>
@@ -1348,7 +1348,7 @@ Mehr dazu erfahren Sie in <ph name="BEGIN_LINK" />unserer Hilfe<ph name="END_LIN
<translation id="3031417829280473749">Agentin X</translation>
<translation id="3031557471081358569">Zu importierende Daten wählen:</translation>
<translation id="3031601332414921114">Druckvorgang fortsetzen</translation>
-<translation id="303198083543495566">Geografie</translation>
+<translation id="303198083543495566">Längen- und Breitengrad</translation>
<translation id="3036546437875325427">Blitz aktivieren</translation>
<translation id="3038612606416062604">Drucker manuell hinzufügen</translation>
<translation id="3038675903128704560">Verwendung von Plug-ins für den Zugriff auf Ihren Computer für keine Website zulassen</translation>
@@ -1452,7 +1452,7 @@ Mehr dazu erfahren Sie in <ph name="BEGIN_LINK" />unserer Hilfe<ph name="END_LIN
<translation id="3199127022143353223">Server</translation>
<translation id="3202131003361292969">Pfad</translation>
<translation id="3202173864863109533">Der Ton dieses Tabs wird stummgeschaltet.</translation>
-<translation id="3204741654590142272">Die Versionsänderung erfolgt später.</translation>
+<translation id="3204741654590142272">Die Kanaländerung erfolgt später.</translation>
<translation id="3206175707080061730">Eine Datei mit dem Namen "$1" existiert bereits. Möchten Sie sie ersetzen?</translation>
<translation id="3208703785962634733">Nicht bestätigt</translation>
<translation id="3216508313927987948">Damit dies geschieht, müssen Sie Ihr <ph name="DEVICE_TYPE" /> im folgenden Schritt trainieren.</translation>
@@ -1780,7 +1780,7 @@ von <ph name="DOWNLOAD_DOMAIN" /></translation>
<translation id="3685122418104378273">Die Google Drive-Synchronisierung ist bei der mobilen Datennutzung standardmäßig deaktiviert.</translation>
<translation id="368789413795732264">Beim Versuch, in die Datei <ph name="ERROR_TEXT" /> zu schreiben, ist ein Fehler aufgetreten.</translation>
<translation id="3688507211863392146">In Dateien und Ordner schreiben, die Sie in der Anwendung öffnen</translation>
-<translation id="3688526734140524629">Version ändern</translation>
+<translation id="3688526734140524629">Kanal ändern</translation>
<translation id="3688578402379768763">Auf dem neusten Stand</translation>
<translation id="3693415264595406141">Passwort:</translation>
<translation id="3694027410380121301">Vorherigen Tab auswählen</translation>
@@ -2401,7 +2401,7 @@ Drücken Sie eine beliebige Taste, um fortzufahren.</translation>
<translation id="4728558894243024398">Plattform</translation>
<translation id="4731422630970790516">Ablageartikel 3</translation>
<translation id="4732760563705710320">Das Video wird von Ihrem Übertragungsgerät leider nicht unterstützt.</translation>
-<translation id="4733793249294335256">Speicherort</translation>
+<translation id="4733793249294335256">Ort</translation>
<translation id="4734518477988699048">Der Eingabewert ist ungültig.</translation>
<translation id="473546211690256853">Dieses Konto wird von <ph name="DOMAIN" /> verwaltet.</translation>
<translation id="4737715515457435632">Bitte stellen Sie eine Verbindung zu einem Netzwerk her.</translation>
@@ -2797,7 +2797,7 @@ Drücken Sie eine beliebige Taste, um fortzufahren.</translation>
<translation id="5337771866151525739">Von einem Drittanbieter installiert</translation>
<translation id="5338503421962489998">Lokaler Speicher</translation>
<translation id="5340217413897845242">Ablageartikel 6</translation>
-<translation id="5341793073192892252">Die folgenden Cookies wurden blockiert (Cookies von Drittanbietern werden ohne Ausnahme blockiert)</translation>
+<translation id="5341793073192892252">Die folgenden Cookies wurden blockiert (Cookies von Drittanbietern werden ausnahmslos blockiert)</translation>
<translation id="5341980496415249280">Bitte warten, Paket wird erstellt...</translation>
<translation id="5342091991439452114">PIN muss mindestens <ph name="MINIMUM" /> Ziffern umfassen</translation>
<translation id="534916491091036097">Linke Klammer</translation>
@@ -3021,6 +3021,7 @@ Drücken Sie eine beliebige Taste, um fortzufahren.</translation>
<translation id="5678955352098267522">Ihre Daten auf <ph name="WEBSITE_1" /> lesen</translation>
<translation id="5684661240348539843">Geräte-ID</translation>
<translation id="5687326903064479980">Zeitzone</translation>
+<translation id="5689516760719285838">Ort</translation>
<translation id="56907980372820799">Daten verknüpfen</translation>
<translation id="5691511426247308406">Familie</translation>
<translation id="5691596662111998220">Hoppla, <ph name="FILE_NAME" /> existiert nicht mehr.</translation>
@@ -3281,7 +3282,7 @@ Drücken Sie eine beliebige Taste, um fortzufahren.</translation>
<translation id="6097480669505687979">Wenn kein Speicherplatz freigegeben wird, können Nutzer und Daten automatisch entfernt werden.</translation>
<translation id="6100736666660498114">Startmenü</translation>
<translation id="6101226222197207147">Neue App hinzugefügt (<ph name="EXTENSION_NAME" />)</translation>
-<translation id="6103681770816982672">Achtung: Sie wechseln zur Entwicklerversion.</translation>
+<translation id="6103681770816982672">Achtung: Sie wechseln zum Entwicklerkanal.</translation>
<translation id="6105158702728922449">Ihre Kamera und Ihr Mikrofon verwenden</translation>
<translation id="6105877918873366097">Letzter Zugriff am:</translation>
<translation id="6107012941649240045">Ausgestellt für</translation>
@@ -3472,7 +3473,7 @@ Drücken Sie eine beliebige Taste, um fortzufahren.</translation>
<translation id="6409731863280057959">Pop-ups</translation>
<translation id="6410063390789552572">Kein Zugriff auf Netzwerkbibliothek möglich</translation>
<translation id="6410257289063177456">Bilddateien</translation>
-<translation id="6410328738210026208">Versionsänderung und Powerwash</translation>
+<translation id="6410328738210026208">Kanaländerung und Powerwash</translation>
<translation id="6410668567036790476">Suchmaschine hinzufügen</translation>
<translation id="641081527798843608">subject-match</translation>
<translation id="641105183165925463">$1 MB</translation>
@@ -4300,7 +4301,7 @@ Drücken Sie eine beliebige Taste, um fortzufahren.</translation>
<translation id="7721179060400456005">Fenster können sich über mehrere Bildschirme erstrecken</translation>
<translation id="7722040605881499779">Für Update benötigt: <ph name="NECESSARY_SPACE" /></translation>
<translation id="7724603315864178912">Ausschneiden</translation>
-<translation id="7728668285692163452">Die Versionsänderung erfolgt später</translation>
+<translation id="7728668285692163452">Die Kanaländerung erfolgt später</translation>
<translation id="7730449930968088409">Inhalt Ihres Bildschirms erfassen</translation>
<translation id="7730494089396812859">Details der Cloudsicherung anzeigen</translation>
<translation id="773426152488311044">Sie sind momentan der einzige <ph name="PRODUCT_NAME" />-Nutzer.</translation>
@@ -4537,7 +4538,7 @@ Speichern Sie Ihre Schlüsseldatei an einem sicheren Ort. Sie benötigen die Dat
<translation id="8072988827236813198">Tabs anheften</translation>
<translation id="8074127646604999664">Fertigstellen des Datenversands und -empfangs von kürzlich geschlossen Websites erlauben</translation>
<translation id="8075191520954018715">Speicherstatus</translation>
-<translation id="8077684120002777443">Nutzername, z. B. nutzer@ihrebeispielurl.de</translation>
+<translation id="8077684120002777443">Nutzername, z. B. nutzer@example.com</translation>
<translation id="8077816382010018681">Titel der Benachrichtigung für schnelles Entsperren hier einfügen</translation>
<translation id="8079530767338315840">Wiederholen</translation>
<translation id="8083739373364455075">Erhalten Sie kostenlos 100 GB bei Google Drive.</translation>
@@ -4633,7 +4634,7 @@ Speichern Sie Ihre Schlüsseldatei an einem sicheren Ort. Sie benötigen die Dat
<translation id="8241806945692107836">Gerätekonfiguration wird abgerufen...</translation>
<translation id="8241868517363889229">Ihre Lesezeichen lesen und ändern</translation>
<translation id="8242426110754782860">Fortfahren</translation>
-<translation id="8245799906159200274">Derzeit auf der Version "<ph name="CHANNEL_NAME" />"</translation>
+<translation id="8245799906159200274">Derzeit auf Kanal "<ph name="CHANNEL_NAME" />"</translation>
<translation id="8246209727385807362">Unbekannter Mobilfunkanbieter</translation>
<translation id="8248050856337841185">&amp;Einfügen</translation>
<translation id="8249048954461686687">OEM-Ordner</translation>
@@ -4713,7 +4714,7 @@ Andere Personen mit langsamen Verbindungen sehen Ihre Inhalte möglicherweise ni
<translation id="8378285435971754261">Durch den Standortdienst von Google können Apps Ihren Standort schnell und genau erfassen. Dadurch kann der Akkuverbrauch gesenkt werden. Anonyme Standortdaten werden an Google gesendet, auch wenn keine Apps ausgeführt werden. <ph name="BEGIN_LINK1" />Weitere Informationen<ph name="END_LINK1" /></translation>
<translation id="8381179624334829711">Kameraeinstellungen verwalten...</translation>
<translation id="8382913212082956454">E-Mail-Adr&amp;esse kopieren</translation>
-<translation id="8386903983509584791">Scan abgeschlossen</translation>
+<translation id="8386903983509584791">Suche abgeschlossen</translation>
<translation id="8390029840652165810">Überprüfen Sie, ob Ihre Netzwerkverbindung funktioniert. Falls das Problem weiterhin besteht, melden Sie sich ab und wieder an, um Ihre Anmeldedaten neu zu laden.</translation>
<translation id="8390449457866780408">Der Server ist nicht verfügbar.</translation>
<translation id="8392234662362215700">Drücken Sie Strg + Shift + Leertaste, um das Tastaturlayout zu ändern.</translation>
@@ -4866,7 +4867,7 @@ Andere Personen mit langsamen Verbindungen sehen Ihre Inhalte möglicherweise ni
<translation id="8652400352452647993">Erweiterung packen: Fehler</translation>
<translation id="8652487083013326477">Optionsfeld im Seitenbereich</translation>
<translation id="8654151524613148204">Ihr Computer kann diese Datei leider nicht verarbeiten, da sie zu groß ist.</translation>
-<translation id="8655295600908251630">Version</translation>
+<translation id="8655295600908251630">Kanal</translation>
<translation id="8655319619291175901">Hoppla... etwas ist schiefgelaufen.</translation>
<translation id="8655972064210167941">Sie konnten nicht angemeldet werden, weil Ihr Passwort nicht bestätigt werden konnte. Bitte wenden Sie sich an Ihren Administrator oder versuchen Sie es erneut.</translation>
<translation id="8656768832129462377">Nicht überprüfen</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_el.xtb b/chromium/chrome/app/resources/generated_resources_el.xtb
index 69368e83580..a945482231d 100644
--- a/chromium/chrome/app/resources/generated_resources_el.xtb
+++ b/chromium/chrome/app/resources/generated_resources_el.xtb
@@ -14,7 +14,7 @@
<translation id="1016566241875885511">ΠÏόσθετες πληÏοφοÏίες (Ï€ÏοαιÏετικό)</translation>
<translation id="1017280919048282932">&amp;ΠÏοσθήκη στο λεξικό</translation>
<translation id="1018656279737460067">ΑκυÏώθηκε</translation>
-<translation id="102272308210570439">Îα χÏησιμοποιεί ο Βοηθός το πεÏιεχόμενο της οθόνης σας</translation>
+<translation id="102272308210570439">ΕπιτÏέψτε στον Βοηθό να χÏησιμοποιεί το πεÏιεχόμενο της οθόνης σας</translation>
<translation id="1026822031284433028">ΦόÏτωση εικόνας</translation>
<translation id="1029317248976101138">Μεγέθυνση</translation>
<translation id="1031362278801463162">ΦόÏτωση Ï€Ïοεπισκόπησης</translation>
@@ -799,7 +799,7 @@
<translation id="222949136907494149">Το <ph name="URL" /> ζητά να χÏησιμοποιήσει την τοποθεσία του υπολογιστή σας.</translation>
<translation id="2230051135190148440">CHAP</translation>
<translation id="2230062665678605299">Δεν είναι δυνατή η δημιουÏγία του φακέλου "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
-<translation id="223106756035922488">Κάντε κλικ για Ï€Ïοβολή του σημεÏÎ¹Î½Î¿Ï doodle</translation>
+<translation id="223106756035922488">Κάντε κλικ για να δείτε το σημεÏινό doodle</translation>
<translation id="2231238007119540260">Εάν διαγÏάψετε ένα πιστοποιητικό διακομιστή, θα επαναφέÏετε τους συνήθεις ελέγχους ασφαλείας για αυτό το διακομιστή και θα απαιτείται η χÏήση ενός έγκυÏου πιστοποιητικοÏ.</translation>
<translation id="2231990265377706070">Θαυμαστικό</translation>
<translation id="2232876851878324699">Το αÏχείο πεÏιείχε ένα πιστοποιητικό, το οποίο δεν εισάχθηκε: </translation>
@@ -2329,7 +2329,7 @@
<translation id="4610637590575890427">Μήπως θέλετε να μεταβείτε στο <ph name="SITE" />;</translation>
<translation id="4611114513649582138">Διαθέσιμα δεδομένα σÏνδεσης</translation>
<translation id="4613271546271159013">Κάποια επέκταση άλλαξε το πεÏιεχόμενο της σελίδας όταν ανοίγετε μια νέα καÏτέλα.</translation>
-<translation id="4615586811063744755">δεν έχει επιλεγεί cookie</translation>
+<translation id="4615586811063744755">δεν έχουν επιλεγεί cookie</translation>
<translation id="4617270414136722281">Επιλογές επεκτάσεων</translation>
<translation id="4618990963915449444">Όλα τα αÏχεία στη συσκευή <ph name="DEVICE_NAME" /> θα διαγÏαφοÏν.</translation>
<translation id="4619615317237390068">ΚαÏτέλες από άλλες συσκευές</translation>
@@ -2424,7 +2424,7 @@
<translation id="4759238208242260848">Λήψεις</translation>
<translation id="4761104368405085019">ΧÏήση του μικÏοφώνου σας</translation>
<translation id="4762718786438001384">Ο ελεÏθεÏος χώÏος στον δίσκο της συσκευής είναι οÏιακός</translation>
-<translation id="4763408175235639573">Όταν Ï€Ïοβάλατε αυτήν τη σελίδα, οÏίστηκαν τα ακόλουθα cookie</translation>
+<translation id="4763408175235639573">Όταν είδατε αυτήν τη σελίδα, οÏίστηκαν τα ακόλουθα cookie</translation>
<translation id="4763830802490665879">Τα cookie που Ï€ÏοέÏχονται από πολλαπλοÏÏ‚ ιστότοπους θα διαγÏαφοÏν κατά την έξοδο.</translation>
<translation id="4768332406694066911">Διαθέτετε πιστοποιητικά από αυτοÏÏ‚ τους οÏγανισμοÏÏ‚ που σας Ï€ÏοσδιοÏίζουν</translation>
<translation id="4776917500594043016">Κωδικός Ï€Ïόσβασης για <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -2444,7 +2444,7 @@
<translation id="4801448226354548035">ΑπόκÏυψη λογαÏιασμών</translation>
<translation id="4801512016965057443">Îα επιτÏέπεται η πεÏιαγωγή δεδομένων κινητών συσκευών</translation>
<translation id="4801956050125744859">ΔιατήÏηση και των δÏο</translation>
-<translation id="4803909571878637176">ΚατάÏγηση εγκατάστασης</translation>
+<translation id="4803909571878637176">Απεγκατάσταση</translation>
<translation id="4804331037112292643">ΠαÏάθυÏο διαλόγου ανοίγματος/αποθήκευσης αÏχείου</translation>
<translation id="4804818685124855865">ΑποσÏνδεση</translation>
<translation id="4807098396393229769">Όνομα στην κάÏτα</translation>
@@ -2723,7 +2723,7 @@
<translation id="5233638681132016545">Îέα καÏτέλα</translation>
<translation id="5233736638227740678">&amp;Επικόλληση</translation>
<translation id="5234764350956374838">ΠαÏάβλεψη</translation>
-<translation id="5235050375939235066">ΚατάÏγηση εγκατάστασης εφαÏμογής;</translation>
+<translation id="5235050375939235066">Απεγκατάσταση εφαÏμογής;</translation>
<translation id="5235750401727657667">Αντικατάσταση της σελίδας που βλέπετε κατά το άνοιγμα νέας καÏτέλας</translation>
<translation id="5238278114306905396">Έχει γίνει αυτόματη κατάÏγηση της εφαÏμογής "<ph name="EXTENSION_NAME" />".</translation>
<translation id="5238369540257804368">ΕÏÏη</translation>
@@ -3028,6 +3028,7 @@
<translation id="5678955352098267522">Ανάγνωση των δεδομένων σας στο <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">ΑναγνωÏιστικό στοιχείου</translation>
<translation id="5687326903064479980">Ζώνη ÏŽÏας</translation>
+<translation id="5689516760719285838">Τοποθεσία</translation>
<translation id="56907980372820799">ΣÏνδεση δεδομένων</translation>
<translation id="5691511426247308406">Οικογένεια</translation>
<translation id="5691596662111998220">Ωχ! Το αÏχείο <ph name="FILE_NAME" /> δεν υπάÏχει πια.</translation>
@@ -4623,7 +4624,7 @@
<translation id="8214489666383623925">Άνοιγμα ΑÏχείου...</translation>
<translation id="8214962590150211830">ΚατάÏγηση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… ατόμου</translation>
<translation id="8217399928341212914">Συνέχιση Î±Ï€Î¿ÎºÎ»ÎµÎ¹ÏƒÎ¼Î¿Ï Î»Î®ÏˆÎµÏ‰Î½ πολλών αÏχείων</translation>
-<translation id="8222121761382682759">ΚατάÏγηση εγκατάστασης…</translation>
+<translation id="8222121761382682759">Απεγκατάσταση…</translation>
<translation id="8223479393428528563">Για να αποθηκεÏσετε αυτά τα αÏχεία για χÏήση εκτός σÏνδεσης, συνδεθείτε ξανά στο διαδίκτυο, κάντε δεξί κλικ στα αÏχεία και ενεÏγοποιήστε την επιλογή <ph name="OFFLINE_CHECKBOX_NAME" />.</translation>
<translation id="8225316208047679293">Η μετονομασία ολοκληÏώθηκε με επιτυχία!</translation>
<translation id="8226222018808695353">ΑπαγοÏευμένο</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_en-GB.xtb b/chromium/chrome/app/resources/generated_resources_en-GB.xtb
index 1ce74c9b69f..fe0c4b80e22 100644
--- a/chromium/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chromium/chrome/app/resources/generated_resources_en-GB.xtb
@@ -737,7 +737,7 @@
<translation id="214169863967063661">Open appearance settings</translation>
<translation id="2142328300403846845">Open Link as</translation>
<translation id="214353449635805613">Screenshot region</translation>
-<translation id="2143765403545170146">Always show toolbar in full screen</translation>
+<translation id="2143765403545170146">Always Show Toolbar in Full Screen</translation>
<translation id="2143778271340628265">Manual proxy configuration</translation>
<translation id="2144536955299248197">Certificate Viewer: <ph name="CERTIFICATE_NAME" /></translation>
<translation id="2148756636027685713">Formatting finished</translation>
@@ -1201,7 +1201,7 @@ I don't think this site should be blocked!</translation>
<translation id="2815500128677761940">Bookmark bar</translation>
<translation id="2815693974042551705">Bookmark folder</translation>
<translation id="2818476747334107629">Printer details</translation>
-<translation id="2820957248982571256">Scanning…</translation>
+<translation id="2820957248982571256">Scanning...</translation>
<translation id="2822634587701817431">Shrink/Expand</translation>
<translation id="2825758591930162672">Subject's Public Key</translation>
<translation id="2828650939514476812">Connect to Wi-Fi network</translation>
@@ -2871,7 +2871,7 @@ Press any key to continue exploring.</translation>
<translation id="5438224778284622050">Delete offline files?</translation>
<translation id="5438430601586617544">(Unpacked)</translation>
<translation id="544083962418256601">Create shortcuts...</translation>
-<translation id="5442550868130618860">Turn on auto-update</translation>
+<translation id="5442550868130618860">Turn on automatic update</translation>
<translation id="5446983216438178612">Show certificates for organisation</translation>
<translation id="5448293924669608770">Oops, something went wrong with signing in</translation>
<translation id="5449551289610225147">Invalid password</translation>
@@ -3026,6 +3026,7 @@ Press any key to continue exploring.</translation>
<translation id="5678955352098267522">Read your data on <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Asset Identifier</translation>
<translation id="5687326903064479980">Time Zone</translation>
+<translation id="5689516760719285838">Location</translation>
<translation id="56907980372820799">Link data</translation>
<translation id="5691511426247308406">Family</translation>
<translation id="5691596662111998220">Whoops, <ph name="FILE_NAME" /> no longer exists.</translation>
@@ -4927,7 +4928,7 @@ Calculating time until full</translation>
<translation id="8725066075913043281">Try again</translation>
<translation id="8725178340343806893">Favourites/bookmarks</translation>
<translation id="8726206820263995930">Error when fetching policy settings from the server: <ph name="CLIENT_ERROR" />.</translation>
-<translation id="8726718463424335668">Skip import</translation>
+<translation id="8726718463424335668">Skip Import</translation>
<translation id="8727142376512517020">Don’t show this again</translation>
<translation id="8730621377337864115">Done</translation>
<translation id="8732030010853991079">Use this extension by clicking on this icon.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_es-419.xtb b/chromium/chrome/app/resources/generated_resources_es-419.xtb
index 2e94e86f7b1..4b3b1a5c91b 100644
--- a/chromium/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chromium/chrome/app/resources/generated_resources_es-419.xtb
@@ -14,7 +14,7 @@
<translation id="1016566241875885511">Información adicional (opcional)</translation>
<translation id="1017280919048282932">&amp;Añadir al diccionario</translation>
<translation id="1018656279737460067">Cancelado</translation>
-<translation id="102272308210570439">Permitir que el Asistente use lo que se muestra en tu pantalla</translation>
+<translation id="102272308210570439">Permitir que el Asistente use lo que se muestra en la pantalla</translation>
<translation id="1026822031284433028">Cargar imagen</translation>
<translation id="1029317248976101138">Zoom</translation>
<translation id="1031362278801463162">Cargando vista previa</translation>
@@ -3022,6 +3022,7 @@ Presiona cualquier tecla para seguir con navegando.</translation>
<translation id="5678955352098267522">Leer los datos en <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Identificador de recursos</translation>
<translation id="5687326903064479980">Zona horaria</translation>
+<translation id="5689516760719285838">Ubicación</translation>
<translation id="56907980372820799">Vincular datos</translation>
<translation id="5691511426247308406">Familia</translation>
<translation id="5691596662111998220">El archivo <ph name="FILE_NAME" /> ya no existe.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_es.xtb b/chromium/chrome/app/resources/generated_resources_es.xtb
index 6b4d567cb09..7191cc744fe 100644
--- a/chromium/chrome/app/resources/generated_resources_es.xtb
+++ b/chromium/chrome/app/resources/generated_resources_es.xtb
@@ -3024,6 +3024,7 @@ Pulsa cualquier tecla para seguir con la exploración.</translation>
<translation id="5678955352098267522">Leer tus datos en <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Identificador de recurso</translation>
<translation id="5687326903064479980">Zona horaria</translation>
+<translation id="5689516760719285838">Ubicación</translation>
<translation id="56907980372820799">Vincular datos</translation>
<translation id="5691511426247308406">Familia</translation>
<translation id="5691596662111998220">¡Vaya! <ph name="FILE_NAME" /> ya no existe.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_et.xtb b/chromium/chrome/app/resources/generated_resources_et.xtb
index d147b98af21..eee2c869671 100644
--- a/chromium/chrome/app/resources/generated_resources_et.xtb
+++ b/chromium/chrome/app/resources/generated_resources_et.xtb
@@ -14,7 +14,7 @@
<translation id="1016566241875885511">Lisateave (valikuline)</translation>
<translation id="1017280919048282932">&amp;Lisa sõnaraamat</translation>
<translation id="1018656279737460067">Tühistatud</translation>
-<translation id="102272308210570439">Lubage assistendil kasutada ekraanil kuvatut</translation>
+<translation id="102272308210570439">Luba assistendil kasutada ekraanil kuvatut</translation>
<translation id="1026822031284433028">Kujutise laadimine</translation>
<translation id="1029317248976101138">Suumi</translation>
<translation id="1031362278801463162">Eelvaate laadimine</translation>
@@ -978,7 +978,7 @@ Ma arvan, et see sait ei tohiks olla blokeeritud.</translation>
<translation id="2509495747794740764">Skaleerimise määr peab olema arv vahemikus 10–200.</translation>
<translation id="2515586267016047495">Alt</translation>
<translation id="251662399991179012">Treenime teie seadet <ph name="DEVICE_TYPE" /></translation>
-<translation id="2517472476991765520">Skanni</translation>
+<translation id="2517472476991765520">Kontrolli</translation>
<translation id="2518024842978892609">Kasutage oma kliendisertifikaate</translation>
<translation id="2520644704042891903">Vaba pesa ootamine ...</translation>
<translation id="252219247728877310">Komponenti ei värskendatud</translation>
@@ -1013,7 +1013,7 @@ Ma arvan, et see sait ei tohiks olla blokeeritud.</translation>
<translation id="2570000010887652771">Andmemahtu säästeti.</translation>
<translation id="2570648609346224037">Taastetõmmise allalaadimisel ilmnes tõrge.</translation>
<translation id="257088987046510401">Teemad</translation>
-<translation id="2571964818629181240">Firefoxi sulgemine enne importimist</translation>
+<translation id="2571964818629181240">Sulgege Firefox enne importimist</translation>
<translation id="2572032849266859634">On antud kirjutuskaitstud juurdepääs seadmele <ph name="VOLUME_NAME" />.</translation>
<translation id="2573269395582837871">Valige pilt ja nimi</translation>
<translation id="2574102660421949343">Saidi <ph name="DOMAIN" /> küpsised on lubatud.</translation>
@@ -1117,7 +1117,7 @@ Ma arvan, et see sait ei tohiks olla blokeeritud.</translation>
<translation id="2715751256863167692">See üleviimine lähtestab teie Chromebooki ja eemaldab praegused kasutaja andmed.</translation>
<translation id="2718395828230677721">Öövalgus</translation>
<translation id="2718998670920917754">Viirusetõrjetarkvara tuvastas viiruse.</translation>
-<translation id="2719936478972253983">Järgmised küpsised blokeeriti</translation>
+<translation id="2719936478972253983">Järgmised küpsisefailid blokeeriti</translation>
<translation id="2721037002783622288">&amp;Otsi teenusest <ph name="SEARCH_ENGINE" /> kujutist</translation>
<translation id="2721334646575696520">Microsoft Edge</translation>
<translation id="2721695630904737430">Administraator on jälgitavad kasutajad keelanud.</translation>
@@ -2422,7 +2422,7 @@ kasutades juhtpaneeli funktsiooni <ph name="CONTROL_PANEL_APPLET_NAME" />.
<translation id="4759238208242260848">Allalaadimised</translation>
<translation id="4761104368405085019">Mikrofoni kasutamine</translation>
<translation id="4762718786438001384">Seadmes on kriitiliselt vähe kettaruumi</translation>
-<translation id="4763408175235639573">Lehe vaatamisel seati järgmised küpsisefailid</translation>
+<translation id="4763408175235639573">Lehe vaatamisel seati järgmised küpsised</translation>
<translation id="4763830802490665879">Mitme saidi küpsised tühjendatakse väljumisel.</translation>
<translation id="4768332406694066911">Teil on nende organisatsioonide sertifikaadid, mis teid tuvastavad</translation>
<translation id="4776917500594043016">Kasutaja <ph name="USER_EMAIL_ADDRESS" /> parool</translation>
@@ -2801,7 +2801,7 @@ Uurimise jätkamiseks vajutage mis tahes klahvi.</translation>
<translation id="5337771866151525739">Installis kolmas osapool.</translation>
<translation id="5338503421962489998">Kohalik talletusruum</translation>
<translation id="5340217413897845242">Riiuliüksus 6</translation>
-<translation id="5341793073192892252">Blokeeriti järgmised küpsisefailid (kolmanda osapoole küpsised blokeeriti ühegi erandita)</translation>
+<translation id="5341793073192892252">Blokeeriti järgmised küpsisefailid (kolmandate osapoolte küpsised blokeeriti ühegi erandita)</translation>
<translation id="5341980496415249280">Oodake, pakkimine on pooleli …</translation>
<translation id="5342091991439452114">PIN-kood peab olema vähemalt <ph name="MINIMUM" /> numbrit</translation>
<translation id="534916491091036097">Vasaksulg</translation>
@@ -2870,7 +2870,7 @@ Uurimise jätkamiseks vajutage mis tahes klahvi.</translation>
<translation id="5438224778284622050">Kas kustutada võrguühenduseta failid?</translation>
<translation id="5438430601586617544">(Pakkimata)</translation>
<translation id="544083962418256601">Loo otseteid ...</translation>
-<translation id="5442550868130618860">Lülitage automaatne värskendamine sisse</translation>
+<translation id="5442550868130618860">Lülita automaatne värskendamine sisse</translation>
<translation id="5446983216438178612">Kuva organisatsiooni sertifikaadid</translation>
<translation id="5448293924669608770">Vabandust! Sisselogimisel läks midagi valesti</translation>
<translation id="5449551289610225147">Vale parool</translation>
@@ -3025,6 +3025,7 @@ Uurimise jätkamiseks vajutage mis tahes klahvi.</translation>
<translation id="5678955352098267522">Lugege oma andmeid veebisaidil <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Vara kood</translation>
<translation id="5687326903064479980">Ajavöönd</translation>
+<translation id="5689516760719285838">Asukoht</translation>
<translation id="56907980372820799">Lingi andmed</translation>
<translation id="5691511426247308406">Perekond</translation>
<translation id="5691596662111998220">Faili <ph name="FILE_NAME" /> ei ole enam olemas.</translation>
@@ -4715,7 +4716,7 @@ Inimesed, kelle ühendus on aeglane, ei pruugi teie sisu näha.</translation>
<translation id="8378285435971754261">Lubage Google'i asukohateenusel aidata rakendustel kiirelt ja täpselt leida teie asukoht. See võib vähendada akukasutust. Anonüümseid asukohaandmeid saadetakse Google'ile ka siis, kui ükski rakendus ei tööta. <ph name="BEGIN_LINK1" />Lisateave<ph name="END_LINK1" /></translation>
<translation id="8381179624334829711">Kaameraseadete haldamine ...</translation>
<translation id="8382913212082956454">Kopeeri &amp;e-posti aadress</translation>
-<translation id="8386903983509584791">Skannimine on lõpetatud</translation>
+<translation id="8386903983509584791">Skannimine jõudis lõpule</translation>
<translation id="8390029840652165810">Kontrollige võrguühendust ja kui probleem ei kao, siis logige oma mandaatide värskendamiseks välja ja uuesti sisse.</translation>
<translation id="8390449457866780408">Server ei ole saadaval.</translation>
<translation id="8392234662362215700">Klaviatuuripaigutuse vahetamiseks vajutage korraga juhtklahvi, tõstuklahvi ja tühikut.</translation>
@@ -4846,7 +4847,7 @@ Inimesed, kelle ühendus on aeglane, ei pruugi teie sisu näha.</translation>
<translation id="8620617069779373398">Rändluse olek</translation>
<translation id="8620765578342452535">Võrguühenduste seadistamine</translation>
<translation id="8623004009673949077">Rakendus manifesti atribuudiga „kiosk_only†tuleb installida Chrome OS-i kioskirežiimis.</translation>
-<translation id="8624205858755890468">Võimaldab assistendil teile kuvada seotud teavet, rakendusi ja toiminguid.</translation>
+<translation id="8624205858755890468">Lubab assistendil esitada teile seotud teavet, rakendusi ja toiminguid.</translation>
<translation id="862542460444371744">&amp;Laiendused</translation>
<translation id="8627151598708688654">Allika valimine</translation>
<translation id="862727964348362408">Peatatud</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_fa.xtb b/chromium/chrome/app/resources/generated_resources_fa.xtb
index 2ed69b0bcd6..d900d3877b7 100644
--- a/chromium/chrome/app/resources/generated_resources_fa.xtb
+++ b/chromium/chrome/app/resources/generated_resources_fa.xtb
@@ -794,7 +794,7 @@
<translation id="222949136907494149"><ph name="URL" /> می‌خواهد از موقعیت مکانی رایانه شما استÙاده کند.</translation>
<translation id="2230051135190148440">CHAP</translation>
<translation id="2230062665678605299">پوشه «<ph name="FOLDER_NAME" />» را نمی‌توان ایجاد کرد.<ph name="ERROR_MESSAGE" /></translation>
-<translation id="223106756035922488">â€Ø¨Ø±Ø§ÛŒ مشاهده doodle امروز کلیک کنید</translation>
+<translation id="223106756035922488">â€Ø¨Ø±Ø§ÛŒ مشاهده doodle امروز، کلیک کنید</translation>
<translation id="2231238007119540260">درصورتی‌که یک مجوز سرور را حذ٠کنید، بررسی های امنیتی معمولی را برای آن سرور بازیابی می‌کنید Ùˆ سرور ملزم به استÙاده از یک مجوز معتبر می‌شود.</translation>
<translation id="2231990265377706070">علامت تعجب</translation>
<translation id="2232876851878324699">این Ùایل دارای یک مجوز است، Ú©Ù‡ وارد نشده است:</translation>
@@ -1009,7 +1009,7 @@
<translation id="2570000010887652771">داده‌های ذخیره‌‌شده.</translation>
<translation id="2570648609346224037">در طول بارگیری تصویر بازیابی، مشکلی روی داد.</translation>
<translation id="257088987046510401">طرح‌‌های قسمت</translation>
-<translation id="2571964818629181240">â€Ø¨Ø³ØªÙ† Firefox قبل از وارد کردن</translation>
+<translation id="2571964818629181240">â€Ù‚بل از وارد کردن، Firefox را ببندید</translation>
<translation id="2572032849266859634">مجوز دسترسی Ùقط خواندنی به <ph name="VOLUME_NAME" /> صادر شد.</translation>
<translation id="2573269395582837871">انتخاب عکس و نام</translation>
<translation id="2574102660421949343">کوکی‌های <ph name="DOMAIN" /> مجاز است.</translation>
@@ -1196,7 +1196,7 @@
<translation id="2815500128677761940">نوار نشانک‌ها</translation>
<translation id="2815693974042551705">پوشه نشانک</translation>
<translation id="2818476747334107629">جزئیات چاپگر</translation>
-<translation id="2820957248982571256">درحال اسکن کردن...</translation>
+<translation id="2820957248982571256">درحال اسکن کردن…</translation>
<translation id="2822634587701817431">کوچک کردن / بزرگ کردن</translation>
<translation id="2825758591930162672">کلید عمومی موضوع</translation>
<translation id="2828650939514476812">â€Ø§ØªØµØ§Ù„ به شبکه Wi-Fi</translation>
@@ -1249,7 +1249,7 @@
<translation id="2897878306272793870">آیا می‌خواهید برگه‌های <ph name="TAB_COUNT" /> باز شوند؟</translation>
<translation id="290105521672621980">Ùایل از قابلیت‌های پشتیبانی‌نشده استÙاده می‌کند</translation>
<translation id="2902127500170292085"><ph name="EXTENSION_NAME" /> نتوانست با این چاپگر ارتباط برقرار کند. مطمئن شوید چاپگر روشن است و دوباره امتحان کنید.</translation>
-<translation id="2902312830803030883">اقدامات دیگر</translation>
+<translation id="2902312830803030883">کنش‌های بیشتر</translation>
<translation id="2903457445916429186">باز کردن موارد انتخاب‌شده</translation>
<translation id="2903493209154104877">آدرس‌ها</translation>
<translation id="290444763029043472"><ph name="DOWNLOADED_AMOUNT_MB" /> مگابایت / <ph name="TOTAL_AMOUNT_MB" /> مگابایت بارگیری‌شده</translation>
@@ -1612,7 +1612,7 @@
<translation id="3438633801274389918">نینجا</translation>
<translation id="3439153939049640737">دسترسی <ph name="HOST" /> به میکروÙون شما همیشه مجاز باشد</translation>
<translation id="3439970425423980614">â€Ø¯Ø± حال باز کردن PDF در پیشنمایش</translation>
-<translation id="3440663250074896476">عملکردهای بیشتر برای <ph name="BOOKMARK_NAME" /></translation>
+<translation id="3440663250074896476">کنش‌های بیشتر برای <ph name="BOOKMARK_NAME" /></translation>
<translation id="3440761377721825626">وقتی سایتی می‌خواهد از اÙزایه‌ای برای دسترسی به رایانه‌تان استÙاده کند، سؤال شود</translation>
<translation id="3441653493275994384">صÙحه</translation>
<translation id="3445830502289589282">راستی‌آزمایی مرحله 2:</translation>
@@ -2077,7 +2077,7 @@
<translation id="4158739975813877944">باز کردن Ùهرست پخش</translation>
<translation id="4159681666905192102">این یک حساب مخصوص بچه‌ها است که توسط <ph name="CUSTODIAN_EMAIL" /> و <ph name="SECOND_CUSTODIAN_EMAIL" /> مدیریت می‌شود.</translation>
<translation id="4163560723127662357">صÙحه‌کلید ناشناس</translation>
-<translation id="4166210099837486476">â€Ù†Ø¸Ø§Ø±Øª هنگامی Ú©Ù‡ در Chrome اقداماتی انجام می‌دهید</translation>
+<translation id="4166210099837486476">â€Ù†Ø¸Ø§Ø±Øª هنگامی Ú©Ù‡ در Chrome کنش‌هایی انجام می‌دهید</translation>
<translation id="4168015872538332605">برخی از تنظیمات متعلق به <ph name="PRIMARY_EMAIL" /> با شما به اشتراک گذاشته می‌شود. این تنظیمات وقتی از ورود چندگانه به سیستم استÙاده شود، Ùقط در حساب شما اعمال می‌شود.</translation>
<translation id="4170314459383239649">پاک کردن هنگام خروج</translation>
<translation id="4172051516777682613">همیشه نشان داده شود</translation>
@@ -2323,7 +2323,7 @@
<translation id="4610637590575890427">آیا می‌خواستید به <ph name="SITE" /> بروید؟</translation>
<translation id="4611114513649582138">اتصال داده دردسترس است</translation>
<translation id="4613271546271159013">یک برنامه اÙزودنی صÙحه‌ای را Ú©Ù‡ موقع باز کردن برگه جدید نشان داده می‌شود، تغییر داده است.</translation>
-<translation id="4615586811063744755">هیچ کوکی انتخاب نشده است</translation>
+<translation id="4615586811063744755">کوکی‌ای انتخاب نشده است</translation>
<translation id="4617270414136722281">گزینه‌های اÙزونه</translation>
<translation id="4618990963915449444">همه Ùایل‌های موجود در <ph name="DEVICE_NAME" /> پاک می‌شوند.</translation>
<translation id="4619615317237390068">برگه‌ها از دستگاه‌های دیگر</translation>
@@ -2418,7 +2418,7 @@
<translation id="4759238208242260848">بارگیری‌ها</translation>
<translation id="4761104368405085019">استÙاده از میکروÙون خود</translation>
<translation id="4762718786438001384">Ùضای دیسک دستگاه بسیار Ú©Ù… است</translation>
-<translation id="4763408175235639573">وقتی از این صÙحه بازدید کردید، کوکی‌های زیر تنظیم شدند</translation>
+<translation id="4763408175235639573">وقتی این صÙحه را مشاهده کردید، کوکی‌های زیر تنظیم شدند</translation>
<translation id="4763830802490665879">کوکی‌های سایت‌های مختل٠در هنگام خروج پاک خواهند شد.</translation>
<translation id="4768332406694066911">گواهی‌هایی از این سازمان‌ها دارید که هویت شما را شناسایی می‌کنند</translation>
<translation id="4776917500594043016">گذرواژه <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -3020,6 +3020,7 @@
<translation id="5678955352098267522">خواندن داده‌های شما در <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">شناسه دارایی</translation>
<translation id="5687326903064479980">منطقه زمانی</translation>
+<translation id="5689516760719285838">مکان</translation>
<translation id="56907980372820799">داده‌های پیوند</translation>
<translation id="5691511426247308406">خانواده</translation>
<translation id="5691596662111998220">اوه، <ph name="FILE_NAME" /> دیگر وجود ندارد.</translation>
@@ -3718,7 +3719,7 @@
این تصویر در صÙحه ورود به سیستم Ùˆ صÙحه درحالت Ù‚ÙÙ„ Chromebook نشان داده می‌شود.</translation>
<translation id="6769712124046837540">در حال اÙزودن چاپگر...</translation>
<translation id="6771503742377376720">یک ارائه دهنده مجوز است</translation>
-<translation id="6773575010135450071">عملکردهای بیشتر...</translation>
+<translation id="6773575010135450071">کنش‌های بیشتر...</translation>
<translation id="6778959797435875428">باصدا کردن سایت‌ها</translation>
<translation id="677965093459947883">خیلی کوچک</translation>
<translation id="6780439250949340171">مدیریت سایر تنظیمات</translation>
@@ -4709,7 +4710,7 @@
<translation id="8378285435971754261">â€Ø¨Ù‡ سرویس مکان Google اجازه دهید به برنامه‌ها در یاÙتن سریع Ùˆ دقیق مکان شما Ú©Ù…Ú© کند Ùˆ بدین‌ترتیب به کاهش مصر٠باتری Ú©Ù…Ú© کنید. حتی زمانی Ú©Ù‡ هیچ برنامه‌ای درحال اجرا نیست، داده‌های مکان به‌صورت بی‌نام به Google ارسال می‌شوند. <ph name="BEGIN_LINK1" />بیشتر بدانید<ph name="END_LINK1" /></translation>
<translation id="8381179624334829711">مدیریت تنظیمات دوربین...</translation>
<translation id="8382913212082956454">کپی آدرس &amp;ایمیل</translation>
-<translation id="8386903983509584791">اسکن انجام شد</translation>
+<translation id="8386903983509584791">اسکن کامل شد</translation>
<translation id="8390029840652165810">لطÙاً مطمئن شوید Ú©Ù‡ اتصال به شبکه شما کار می‌کند Ùˆ اگر مشکل همچنان ادامه دارد، لطÙاً از سیستم خارج شوید Ùˆ دوباره وارد سیستم شوید تا مدارک صلاحیت خود را بازخوانی کنید.</translation>
<translation id="8390449457866780408">سرور در دسترس نیست.</translation>
<translation id="8392234662362215700">â€Ø¨Ø±Ø§ÛŒ تغییر طرح Ú©Ù„ÛŒ صÙحه‌کلید، Control-Shift Ùˆ Ùاصله را Ùشار دهید.</translation>
@@ -4840,7 +4841,7 @@
<translation id="8620617069779373398">وضعیت رومینگ</translation>
<translation id="8620765578342452535">پیکربندی اتصالات شبکه</translation>
<translation id="8623004009673949077">â€Ø¨Ø±Ù†Ø§Ù…Ù‡ با ویژگی مانیÙست «kiosk_only» باید در حالت کیوسک سیستم عامل Chrome نصب شود.</translation>
-<translation id="8624205858755890468">«دستیار» را برای نمایش اطلاعات، برنامه‌ها Ùˆ Ùعالیت‌های مرتبط Ùعال می‌کند.</translation>
+<translation id="8624205858755890468">«دستیار» را برای نمایش اطلاعات، برنامه‌ها Ùˆ کنش‌های مرتبط Ùعال می‌کند.</translation>
<translation id="862542460444371744">&amp;برنامه های اÙزودنی</translation>
<translation id="8627151598708688654">انتخاب منبع</translation>
<translation id="862727964348362408">معلق شد</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_fi.xtb b/chromium/chrome/app/resources/generated_resources_fi.xtb
index d9d6a142208..b51fb830f3c 100644
--- a/chromium/chrome/app/resources/generated_resources_fi.xtb
+++ b/chromium/chrome/app/resources/generated_resources_fi.xtb
@@ -797,7 +797,7 @@
<translation id="222949136907494149"><ph name="URL" /> haluaa käyttää tietokoneesi sijaintia.</translation>
<translation id="2230051135190148440">CHAP</translation>
<translation id="2230062665678605299">Kansiota <ph name="FOLDER_NAME" /> ei voi luoda. <ph name="ERROR_MESSAGE" /></translation>
-<translation id="223106756035922488">Katso päivän Doodle klikkaamalla</translation>
+<translation id="223106756035922488">Katso päivän Doodle klikkaamalla.</translation>
<translation id="2231238007119540260">Jos poistat palvelimen varmenteen, palautat käyttöön palvelimen tavalliset turvatarkastukset ja edellytät siltä kelvollista varmennetta.</translation>
<translation id="2231990265377706070">Huutomerkki</translation>
<translation id="2232876851878324699">Tiedosto sisälsi yhden varmenteen, jota ei tuotu:</translation>
@@ -2324,7 +2324,7 @@ verkkotunnuksesta <ph name="DOWNLOAD_DOMAIN" /></translation>
<translation id="4610637590575890427">Halusitko siirtyä osoitteeseen <ph name="SITE" />?</translation>
<translation id="4611114513649582138">Datayhteys käytettävissä</translation>
<translation id="4613271546271159013">Laajennus vaihtoi sivua, joka näytetään avatessasi uuden välilehden.</translation>
-<translation id="4615586811063744755">Ei evästeitä valittuna</translation>
+<translation id="4615586811063744755">ei evästeitä valittuna</translation>
<translation id="4617270414136722281">Laajennusasetukset</translation>
<translation id="4618990963915449444">Kaikki laitteen <ph name="DEVICE_NAME" /> tiedostot poistetaan.</translation>
<translation id="4619615317237390068">Välilehdet muista laitteista</translation>
@@ -3021,6 +3021,7 @@ verkkotunnuksesta <ph name="DOWNLOAD_DOMAIN" /></translation>
<translation id="5678955352098267522">Lukea tietojasi sivustossa <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Laitteen tunnus</translation>
<translation id="5687326903064479980">Aikavyöhyke</translation>
+<translation id="5689516760719285838">Sijainti</translation>
<translation id="56907980372820799">Yhdistä tiedot</translation>
<translation id="5691511426247308406">Perhe</translation>
<translation id="5691596662111998220">Hups, kohdetta <ph name="FILE_NAME" /> ei ole enää olemassa.</translation>
@@ -4840,7 +4841,7 @@ Tallenna avaintiedosto suojattuun sijaintiin. Tarvitset sitä, jos haluat luoda
<translation id="8620617069779373398">Roaming-tila</translation>
<translation id="8620765578342452535">Määrittää verkkoyhteydet</translation>
<translation id="8623004009673949077">Sovellukset, joilla on luettelomäärite kiosk_only, täytyy asentaa Chrome-käyttöjärjestelmän kioskitilassa.</translation>
-<translation id="8624205858755890468">Salli Assistantin näyttää kohteisiin liittyviä tietoja, sovelluksia ja toimintoja.</translation>
+<translation id="8624205858755890468">Sallii Assistantin näyttää kohteisiin liittyviä tietoja, sovelluksia ja toimintoja.</translation>
<translation id="862542460444371744">Laaj&amp;ennukset</translation>
<translation id="8627151598708688654">Valitse lähde</translation>
<translation id="862727964348362408">Pysäytetty</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_fil.xtb b/chromium/chrome/app/resources/generated_resources_fil.xtb
index 33cc6eea9e5..0a60432954c 100644
--- a/chromium/chrome/app/resources/generated_resources_fil.xtb
+++ b/chromium/chrome/app/resources/generated_resources_fil.xtb
@@ -3026,6 +3026,7 @@ Pumindot ng anumang key upang magpatuloy sa pagtuklas.</translation>
<translation id="5678955352098267522">Basahin ang iyong data sa <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Identifier ng Asset</translation>
<translation id="5687326903064479980">Timezone</translation>
+<translation id="5689516760719285838">Lokasyon</translation>
<translation id="56907980372820799">I-link ang data</translation>
<translation id="5691511426247308406">Pamilya</translation>
<translation id="5691596662111998220">Whoops, hindi na umiiral ang <ph name="FILE_NAME" />.</translation>
@@ -4718,7 +4719,7 @@ Kinakalkula ang oras hanggang sa mapuno</translation>
<translation id="8378285435971754261">Payagan ang serbisyo ng lokasyon ng Google na tumulong sa mga app na mabilis at tumpak na mahanap ang iyong lokasyon, na maaaring makabawas sa pagkonsumo ng baterya. Magpapadala ng anonymous na data ng lokasyon sa Google, kahit walang mga gumaganang app. <ph name="BEGIN_LINK1" />Matuto nang Higit Pa<ph name="END_LINK1" /></translation>
<translation id="8381179624334829711">Pamahalaan ang mga setting ng camera...</translation>
<translation id="8382913212082956454">Kopyahin ang &amp;email address</translation>
-<translation id="8386903983509584791">Nakumpleto na ang pag-scan</translation>
+<translation id="8386903983509584791">Nakumpleto ang pag-scan</translation>
<translation id="8390029840652165810">Pakitiyak na gumagana ang koneksyon ng iyong network at kung magpapatuloy ang problema, mangyaring mag-sign out at mag-sign in muli upang i-refresh ang iyong mga kredensyal.</translation>
<translation id="8390449457866780408">Hindi available ang server.</translation>
<translation id="8392234662362215700">Pindutin ang Control-Shift-Space upang magpalit ng layout ng keyboard.</translation>
@@ -4850,7 +4851,7 @@ Kinakalkula ang oras hanggang sa mapuno</translation>
<translation id="8620617069779373398">Status ng roaming</translation>
<translation id="8620765578342452535">I-configure ang mga koneksyon sa network</translation>
<translation id="8623004009673949077">Naka-install dapat sa kiosk mode ng Chrome OS ang app na may 'kiosk_only' na manifest attribute.</translation>
-<translation id="8624205858755890468">Binibigyang-daan ang Assistant na maipakita sa iyo ang mga kaugnay na impormasyon, app, at pagkilos.</translation>
+<translation id="8624205858755890468">Binibigyang-daan ang Assistant na magpakita sa iyo ng mga kaugnay na impormasyon, app, at pagkilos.</translation>
<translation id="862542460444371744">&amp;Mga Extension</translation>
<translation id="8627151598708688654">Pumili ng pinagmulan</translation>
<translation id="862727964348362408">Sinuspinde</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_fr.xtb b/chromium/chrome/app/resources/generated_resources_fr.xtb
index bdfcbc7a559..8fd00873fae 100644
--- a/chromium/chrome/app/resources/generated_resources_fr.xtb
+++ b/chromium/chrome/app/resources/generated_resources_fr.xtb
@@ -977,7 +977,7 @@ Je ne pense pas que ce site devrait être bloqué.</translation>
<translation id="2509495747794740764">La valeur d'échelle doit être un nombre compris entre 10 et 200.</translation>
<translation id="2515586267016047495">Alt</translation>
<translation id="251662399991179012">C'est le moment d'apprendre à votre appareil <ph name="DEVICE_TYPE" /> à reconnaître votre empreinte vocale</translation>
-<translation id="2517472476991765520">Analyser</translation>
+<translation id="2517472476991765520">Rechercher</translation>
<translation id="2518024842978892609">Utiliser vos certificats client</translation>
<translation id="2520644704042891903">En attente d'une interface de connexion disponible…</translation>
<translation id="252219247728877310">Composant non mis à jour</translation>
@@ -1200,7 +1200,7 @@ Je ne pense pas que ce site devrait être bloqué.</translation>
<translation id="2815500128677761940">Barre de favoris</translation>
<translation id="2815693974042551705">Dossier de favoris</translation>
<translation id="2818476747334107629">Détails de l'imprimante</translation>
-<translation id="2820957248982571256">Analyse…</translation>
+<translation id="2820957248982571256">Recherche…</translation>
<translation id="2822634587701817431">Réduire/Développer</translation>
<translation id="2825758591930162672">Clé publique de l'objet</translation>
<translation id="2828650939514476812">Se connecter au réseau Wi-Fi</translation>
@@ -3026,6 +3026,7 @@ Assurez-vous de ne pas dévoiler d'informations sensibles.</translation>
<translation id="5678955352098267522">Lire vos données sur <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Identifiant d'élément</translation>
<translation id="5687326903064479980">Fuseau horaire</translation>
+<translation id="5689516760719285838">Position</translation>
<translation id="56907980372820799">Associer les données</translation>
<translation id="5691511426247308406">Famille</translation>
<translation id="5691596662111998220">Désolé, le fichier <ph name="FILE_NAME" /> n'existe plus.</translation>
@@ -4715,7 +4716,7 @@ Calcul de la durée restante</translation>
<translation id="8378285435971754261">Activez les services de localisation de Google afin de permettre aux applications de déterminer rapidement et précisément votre position, et ainsi d'économiser la batterie. Des données de localisation anonymes sont envoyées à Google, même quand aucune application n'est exécutée. <ph name="BEGIN_LINK1" />En savoir plus<ph name="END_LINK1" /></translation>
<translation id="8381179624334829711">Gérer les paramètres de l'appareil photo…</translation>
<translation id="8382913212082956454">Copi&amp;er l'adresse e-mail</translation>
-<translation id="8386903983509584791">Analyse terminée</translation>
+<translation id="8386903983509584791">Recherche terminée</translation>
<translation id="8390029840652165810">Veuillez vérifier que votre connexion réseau fonctionne. Si le problème persiste, veuillez vous déconnecter, puis vous reconnecter afin d'actualiser vos certificats.</translation>
<translation id="8390449457866780408">Serveur indisponible.</translation>
<translation id="8392234662362215700">Appuyez sur Ctrl+Maj+Espace pour changer la disposition du clavier.</translation>
@@ -4826,7 +4827,7 @@ Calcul de la durée restante</translation>
<translation id="8569764466147087991">Sélectionnez le fichier à ouvrir</translation>
<translation id="8571213806525832805">Les 4 dernières semaines</translation>
<translation id="8579285237314169903">Synchronisation de <ph name="NUMBER_OF_FILES" /> éléments en cours…</translation>
-<translation id="857943718398505171">Autorisée (recommandé)</translation>
+<translation id="857943718398505171">Autorisé (recommandé)</translation>
<translation id="8581809080475256101">Appuyer pour avancer, menu contextuel pour afficher l'historique</translation>
<translation id="8584280235376696778">Ou&amp;vrir la vidéo dans un nouvel onglet</translation>
<translation id="8588866096426746242">Afficher les statistiques du profil</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_gu.xtb b/chromium/chrome/app/resources/generated_resources_gu.xtb
index 1ec947ced4a..39ac781b9bf 100644
--- a/chromium/chrome/app/resources/generated_resources_gu.xtb
+++ b/chromium/chrome/app/resources/generated_resources_gu.xtb
@@ -974,7 +974,7 @@
<translation id="2509495747794740764">સà«àª•à«‡àª² પà«àª°àª®àª¾àª£, 10 અને 200 ની વચà«àªšà«‡àª¨à«€ કોઈ સંખà«àª¯àª¾ હોવી આવશà«àª¯àª• છે.</translation>
<translation id="2515586267016047495">Alt</translation>
<translation id="251662399991179012">ચાલો આપણે તમારા <ph name="DEVICE_TYPE" /> ને તાલીમ આપીàª</translation>
-<translation id="2517472476991765520">તપાસો</translation>
+<translation id="2517472476991765520">સà«àª•à«…ન કરો</translation>
<translation id="2518024842978892609">તમારા કà«àª²àª¾àª‡àª¨à«àªŸ પà«àª°àª®àª¾àª£àªªàª¤à«àª°à«‹àª¨à«‹ ઉપયોગ કરો</translation>
<translation id="2520644704042891903">ઉપલબà«àª§ સોકેટ માટે રાહ જà«àª છે ...</translation>
<translation id="252219247728877310">ઘટકો અપડેટ થયેલાં નથી</translation>
@@ -1113,7 +1113,7 @@
<translation id="2715751256863167692">આ અપગà«àª°à«‡àª¡ તમારી Chromebookને રીસેટ કરે છે અને હાલનો વપરાશકરà«àª¤àª¾ ડેટા કાઢી નાખે છે.</translation>
<translation id="2718395828230677721">રાતà«àª°àª¿ પà«àª°àª•àª¾àª¶</translation>
<translation id="2718998670920917754">àªàª¨à«àªŸà«€-વાયરસ સૉફà«àªŸàªµà«‡àª°àª¨à«‡ àªàª• વાયરસ મળà«àª¯à«‹ છે.</translation>
-<translation id="2719936478972253983">નીચેની કà«àª•à«€ અવરોધિત હતી</translation>
+<translation id="2719936478972253983">નીચેની કà«àª•à«€ બà«àª²à«‰àª• કરેલી હતી</translation>
<translation id="2721037002783622288">છબી માટે <ph name="SEARCH_ENGINE" /> પર &amp;શોધો</translation>
<translation id="2721334646575696520">Microsoft Edge</translation>
<translation id="2721695630904737430">તમારા વà«àª¯àªµàª¸à«àª¥àª¾àªªàª• દà«àªµàª¾àª°àª¾ નિરીકà«àª·àª¿àª¤ વપરાશકરà«àª¤àª¾àª“ અકà«àª·àª® કરવામાં આવà«àª¯àª¾àª‚ છે.</translation>
@@ -1197,7 +1197,7 @@
<translation id="2815500128677761940">બà«àª•àª®àª¾àª°à«àª• બાર</translation>
<translation id="2815693974042551705">બà«àª•àª®àª¾àª°à«àª• ફોલà«àª¡àª°</translation>
<translation id="2818476747334107629">પà«àª°àª¿àª¨à«àªŸàª°àª¨à«€ વિગતો</translation>
-<translation id="2820957248982571256">તપાસી રહà«àª¯à«àª‚ છે...</translation>
+<translation id="2820957248982571256">સà«àª•à«…ન કરી રહà«àª¯àª¾àª‚ છીàªâ€¦</translation>
<translation id="2822634587701817431">સંકોચો / વિસà«àª¤à«ƒàª¤ કરો</translation>
<translation id="2825758591930162672">વિષયની સારà«àªµàªœàª¨àª¿àª• કી</translation>
<translation id="2828650939514476812">Wi-Fi નેટવરà«àª• પર કનેકà«àªŸ કરો</translation>
@@ -2798,7 +2798,7 @@
<translation id="5337771866151525739">તૃતીય-પકà«àª· દà«àªµàª¾àª°àª¾ ઇનà«àª¸à«àªŸà«‹àª² કરેલà«àª‚.</translation>
<translation id="5338503421962489998">સà«àª¥àª¾àª¨àª¿àª• સà«àªŸà«‹àª°à«‡àªœ</translation>
<translation id="5340217413897845242">શેલà«àª« આઇટમ 6</translation>
-<translation id="5341793073192892252">નીચેની કà«àª•à«€ અવરોધિત કરવામાં આવી હતી (તૃતીય-પકà«àª· કà«àª•à«€ કોઈ પણ અપવાદ સિવાય અવરોધિત કરવામાં આવી રહી છે)</translation>
+<translation id="5341793073192892252">નીચેની કà«àª•à«€ બà«àª²à«‰àª• કરવામાં આવી હતી (તૃતીય-પકà«àª· કà«àª•à«€, કોઈ પણ અપવાદ સિવાય, બà«àª²à«‰àª• કરવામાં આવી રહી છે)</translation>
<translation id="5341980496415249280">કૃપા કરીને રાહ જà«àª“, પૅકિંગ કરીઠછીઠ...</translation>
<translation id="5342091991439452114">PIN, ઓછામાં ઓછો <ph name="MINIMUM" /> અંકનો હોવો આવશà«àª¯àª• છે</translation>
<translation id="534916491091036097">ડાબો કૌંસ</translation>
@@ -3023,6 +3023,7 @@
<translation id="5678955352098267522"><ph name="WEBSITE_1" /> પર તમારો ડેટા વાંચી શકે છે</translation>
<translation id="5684661240348539843">સંપતà«àª¤àª¿ ઓળખકરà«àª¤àª¾</translation>
<translation id="5687326903064479980">સમયàªà«‹àª¨</translation>
+<translation id="5689516760719285838">સà«àª¥àª¾àª¨</translation>
<translation id="56907980372820799">ડેટાને લિંક કરો</translation>
<translation id="5691511426247308406">કà«àªŸà«àª‚બ</translation>
<translation id="5691596662111998220">ઊફà«àª«, <ph name="FILE_NAME" /> હવે અસà«àª¤àª¿àª¤à«àªµàª®àª¾àª‚ નથી.</translation>
@@ -4709,7 +4710,7 @@
<translation id="8378285435971754261">Google ની સà«àª¥àª¾àª¨ સેવાને તમારà«àª‚ સà«àª¥àª¾àª¨ àªàª¡àªªàª¥à«€ અને સચોટ રીતે શોધવામાં તમારી àªàªªà«àª²àª¿àª•à«‡àª¶àª¨à«‹àª¨à«€ સહાય કરવા દો, જે બૅટરીનો વપરાશ ઘટાડી શકે છે. કોઇ àªàªªà«àª²àª¿àª•à«‡àª¶àª¨à«‹ ચાલી ન રહી હોય તà«àª¯àª¾àª°à«‡ પણ, Google ને અનામિક સà«àª¥àª¾àª¨ ડેટા મોકલવામાં આવશે. <ph name="BEGIN_LINK1" />વધૠજાણો<ph name="END_LINK1" /></translation>
<translation id="8381179624334829711">કૅમેરા સેટિંગà«àª¸ સંચાલિત કરો...</translation>
<translation id="8382913212082956454">&amp;ઇમેઇલ સરનામà«àª‚ કૉપિ કરો</translation>
-<translation id="8386903983509584791">તપાસ પૂરà«àª£ થઈ</translation>
+<translation id="8386903983509584791">સà«àª•à«…ન પૂરà«àª£ થયà«àª‚</translation>
<translation id="8390029840652165810">કૃપા કરીને ખાતરી કરો કે તમારà«àª‚ નેટવરà«àª• કનેકà«àª¶àª¨ કામ કરી રહà«àª¯à«àª‚ છે અને જો સમસà«àª¯àª¾ ચાલૠરહે છે, તો કૃપા કરીને સાઇન આઉટ કરો અને ઓળખપતà«àª°àª¨à«‡ તાજા કરવા માટે ફરીથી સાઇન ઇન કરો.</translation>
<translation id="8390449457866780408">સરà«àªµàª° અનà«àªªàª²àª¬à«àª§.</translation>
<translation id="8392234662362215700">કીબોરà«àª¡ લેઆઉટ સà«àªµàª¿àªš કરવા માટે Control-Shift-Space દબાવો</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_hi.xtb b/chromium/chrome/app/resources/generated_resources_hi.xtb
index 2d238867271..a010db20343 100644
--- a/chromium/chrome/app/resources/generated_resources_hi.xtb
+++ b/chromium/chrome/app/resources/generated_resources_hi.xtb
@@ -411,7 +411,7 @@
<translation id="1611704746353331382">HTML फ़ाइल में बà¥à¤•à¤®à¤¾à¤°à¥à¤• निâ€à¤°à¥à¤¯à¤¾à¤¤ करें...</translation>
<translation id="1612129875274679969">इस डिवाइस को सà¥à¤¥à¤¾à¤¯à¥€ रूप से कियोसà¥à¤• मोड में रखें.</translation>
<translation id="1616206807336925449">इस à¤à¤•à¥â€à¤¸à¤Ÿà¥‡à¤‚शन को किसी विशेष अनà¥à¤®à¤¤à¤¿ की आवशà¥â€à¤¯à¤•à¤¤à¤¾ नहीं है.</translation>
-<translation id="161707228174452095">फिंगरपà¥à¤°à¤¿à¤‚ट जोड़ा गया!</translation>
+<translation id="161707228174452095">फ़िंगरपà¥à¤°à¤¿à¤‚ट जोड़ा गया!</translation>
<translation id="1618268899808219593">&amp;सहायता केंदà¥à¤°</translation>
<translation id="1620510694547887537">कैमरा</translation>
<translation id="1624026626836496796">à¤à¤¸à¤¾ केवल à¤à¤• बार होगा, और आपके कà¥à¤°à¥‡à¤¡à¥‡à¤‚शियल संगà¥à¤°à¤¹à¤¿à¤¤ नहीं किठजाà¤à¤‚गे.</translation>
@@ -1065,7 +1065,7 @@
<translation id="2642111877055905627">सॉकर बॉल</translation>
<translation id="2643698698624765890">विंडो मेनू में à¤à¤•à¥à¤¸à¤Ÿà¥‡à¤‚शन कà¥à¤²à¤¿à¤• करके अपने à¤à¤•à¥à¤¸à¤Ÿà¥‡à¤‚शन पà¥à¤°à¤¬à¤‚धित करें.</translation>
<translation id="2647142853114880570">पà¥à¤¨: लोड करें</translation>
-<translation id="2647269890314209800">उपयोग की जा रही कà¥à¤•à¥€</translation>
+<translation id="2647269890314209800">इसà¥à¤¤à¥‡à¤®à¤¾à¤² की जा रही कà¥à¤•à¥€</translation>
<translation id="2648831393319960979">आपके खाते में डिवाइस जोड़ा रहा है - इसमें कà¥à¤› समय लग सकता है...</translation>
<translation id="2649045351178520408">Base64-à¤à¤¨à¥à¤•à¥‹à¤¡ किया गया ASCII, पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° चेन</translation>
<translation id="2653266418988778031">यदि आप किसी पà¥à¤°à¤®à¤¾à¤£à¤¨ पà¥à¤°à¤¾à¤§à¤¿à¤•à¤°à¤£ (CA) पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° को हटाते हैं, तो आपका बà¥à¤°à¤¾à¤‰à¤œà¤¼à¤° उस CA दà¥à¤µà¤¾à¤°à¤¾ जारी किठगठकिसी भी पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° पर विशà¥â€à¤µà¤¾à¤¸ नहीं करेगा.</translation>
@@ -1116,7 +1116,7 @@
<translation id="2715751256863167692">इस तरह बेहतर बनाने से आपका Chromebook रीसेट हो जाता है और मौजूदा उपयोगकरà¥à¤¤à¤¾ डेटा निकल जाता है.</translation>
<translation id="2718395828230677721">नाइट लाइट</translation>
<translation id="2718998670920917754">à¤à¤‚टी-वायरस सॉफ़à¥à¤Ÿà¤µà¥‡à¤¯à¤° ने वायरस का पता लगाया है.</translation>
-<translation id="2719936478972253983">इन कà¥à¤•à¥€ को बà¥à¤²à¥‰à¤• कर दिया गया था:</translation>
+<translation id="2719936478972253983">इन कà¥à¤•à¥€ को बà¥à¤²à¥‰à¤• कर दिया गया था</translation>
<translation id="2721037002783622288">चितà¥à¤° को <ph name="SEARCH_ENGINE" /> पर &amp;खोजें</translation>
<translation id="2721334646575696520">Microsoft Edge</translation>
<translation id="2721695630904737430">निगरानी में रखे गठउपयोगकरà¥à¤¤à¤¾à¤“ं को आपके वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤• ने अकà¥à¤·à¤® कर दिया है.</translation>
@@ -2267,7 +2267,7 @@
<translation id="4514542542275172126">नया निगरानी में रखा गया उपयोगकरà¥à¤¤à¤¾ सेट करें</translation>
<translation id="451515744433878153">निकालें</translation>
<translation id="4518677423782794009">कà¥â€à¤¯à¤¾ Chrome कà¥à¤°à¥ˆà¤¶ हो रहा है, असामानà¥â€à¤¯ सà¥â€à¤Ÿà¤¾à¤°à¥à¤Ÿà¤…प पृषà¥â€à¤ , टूलबार या à¤à¤¸à¥‡ अनपेकà¥à¤·à¤¿à¤¤ विजà¥à¤žà¤¾à¤ªà¤¨ दिखा रहा है जिनसे आपको छà¥à¤Ÿà¤•à¤¾à¤°à¤¾ नहीं मिल रहा है या आपके बà¥à¤°à¤¾à¤‰à¤œà¤¼à¤¿à¤‚ग अनà¥à¤­à¤µ में अनà¥â€à¤¯à¤¥à¤¾ बदलाव आ रहा है? तो हो सकता है कि आप Chrome सॉफ़à¥à¤Ÿà¤µà¥‡à¤¯à¤° सफ़ाई टूल को चलाकर समसà¥â€à¤¯à¤¾ को ठीक कर पाà¤à¤‚.</translation>
-<translation id="4520385623207007473">उपयोग की जा रही कà¥à¤•à¥€</translation>
+<translation id="4520385623207007473">इसà¥à¤¤à¥‡à¤®à¤¾à¤² की जा रही कà¥à¤•à¥€</translation>
<translation id="452039078290142656"><ph name="VENDOR_NAME" /> के अजà¥à¤žà¤¾à¤¤ डिवाइस</translation>
<translation id="4522570452068850558">विवरण</translation>
<translation id="4530494379350999373">मूल</translation>
@@ -2499,7 +2499,7 @@
<translation id="4876895919560854374">सà¥à¤•à¥à¤°à¥€à¤¨ लॉक करना और अनलॉक करना</translation>
<translation id="4877017884043316611">Chromebox से यà¥à¤—à¥â€à¤®à¤¿à¤¤ करें</translation>
<translation id="4880214202172289027">वॉलà¥â€à¤¯à¥‚म सà¥â€à¤²à¤¾à¤‡à¤¡à¤°</translation>
-<translation id="4880328057631981605">à¤à¤•à¥à¤¸à¥‡à¤¸ पॉइंट नाम</translation>
+<translation id="4880328057631981605">à¤à¤•à¥à¤¸à¥‡à¤¸ पà¥à¤µà¤¾à¤‡à¤‚ट नाम</translation>
<translation id="4880520557730313061">सà¥â€à¤µà¤¤:à¤à¤¡à¤œà¤¸à¥à¤Ÿ करें</translation>
<translation id="4880827082731008257">खोज इतिहास</translation>
<translation id="4881695831933465202">खोलें</translation>
@@ -2832,7 +2832,7 @@
<translation id="5388885445722491159">यà¥à¤—à¥à¤®à¤¿à¤¤</translation>
<translation id="5389237414310520250">नया उपयोगकरà¥à¤¤à¤¾ नहीं बनाया जा सका. कृपया अपने हारà¥à¤¡ डिसà¥à¤• का सà¥à¤¥à¤¾à¤¨ देखें और पà¥à¤¨: पà¥à¤°à¤¯à¤¾à¤¸ करें.</translation>
<translation id="5390284375844109566">अनà¥à¤•à¥à¤°à¤®à¤¿à¤¤ डेटाबेस</translation>
-<translation id="5390743329570580756">इसके लिठभेजें:</translation>
+<translation id="5390743329570580756">इसके लिठभेजें</translation>
<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_DOMAIN" /> पर <ph name="PEPPER_PLUGIN_NAME" /> आपके कंपà¥à¤¯à¥‚टर की पहà¥à¤‚च चाहता है.</translation>
<translation id="5397794290049113714">आप</translation>
<translation id="5398572795982417028">सीमा से बाहर के पेज का संदरà¥à¤­, सीमा <ph name="MAXIMUM_PAGE" /> की है</translation>
@@ -2848,7 +2848,7 @@
<translation id="5417312524372586921">बà¥à¤°à¤¾à¤‰à¤œà¤¼à¤° थीम</translation>
<translation id="5417998409611691946">आपका <ph name="DEVICE_TYPE" /> अब निमà¥à¤¨ कारà¥à¤¯ कर सकता है:</translation>
<translation id="5419294236999569767">सिसà¥à¤Ÿà¤® का समय</translation>
-<translation id="5422221874247253874">à¤à¤•à¥à¤¸à¥‡à¤¸ पॉइंट</translation>
+<translation id="5422221874247253874">à¤à¤•à¥à¤¸à¥‡à¤¸ पà¥à¤µà¤¾à¤‡à¤‚ट</translation>
<translation id="5422781158178868512">कà¥à¤·à¤®à¤¾ करें, आपके बाहà¥à¤¯ मेमोरी डिवाइस की पहचान नहीं हो सकी.</translation>
<translation id="5423849171846380976">सकà¥à¤°à¤¿à¤¯ हà¥à¤†</translation>
<translation id="5425722269016440406">Smart Lock बंद करने के लिठआपको ऑनलाइन होना होगा कà¥â€à¤¯à¥‹à¤‚कि यह सेटिंग आपके फ़ोन और अनà¥â€à¤¯ डिवाइस से समनà¥â€à¤µà¤¯à¤¿à¤¤ की जाती है. कृपया पहले किसी नेटवरà¥à¤• से कनेकà¥â€à¤Ÿ करें.</translation>
@@ -3024,6 +3024,7 @@
<translation id="5678955352098267522"><ph name="WEBSITE_1" /> पर अपना डेटा पढ़ें</translation>
<translation id="5684661240348539843">à¤à¤¸à¥‡à¤Ÿ पहचानकरà¥à¤¤à¤¾</translation>
<translation id="5687326903064479980">समय कà¥à¤·à¥‡à¤¤à¥à¤°</translation>
+<translation id="5689516760719285838">सà¥à¤¥à¤¾à¤¨</translation>
<translation id="56907980372820799">डेटा लिंक करें</translation>
<translation id="5691511426247308406">परिवार</translation>
<translation id="5691596662111998220">ओह, <ph name="FILE_NAME" /> अब मौजूद नहीं है.</translation>
@@ -4740,7 +4741,7 @@
<translation id="8425755597197517046">चिप&amp;काà¤à¤‚ और खोजें</translation>
<translation id="8426713856918551002">सकà¥à¤·à¤® किया जा रहा है</translation>
<translation id="8427292751741042100">किसी भी होसà¥à¤Ÿ पर à¤à¤®à¥à¤¬à¥‡à¤¡ किया गया</translation>
-<translation id="8428213095426709021">सेटिंगà¥à¤¸</translation>
+<translation id="8428213095426709021">सेटिंग</translation>
<translation id="8431909052837336408">SIM पिन बदलें</translation>
<translation id="8434480141477525001">NaCl डीबग पोरà¥à¤Ÿ</translation>
<translation id="8437331208797669910">पेज à¤à¤•à¥à¤¸à¥‡à¤¸</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_hr.xtb b/chromium/chrome/app/resources/generated_resources_hr.xtb
index 40bd47e2082..7c304706380 100644
--- a/chromium/chrome/app/resources/generated_resources_hr.xtb
+++ b/chromium/chrome/app/resources/generated_resources_hr.xtb
@@ -3025,6 +3025,7 @@ Pritisnite bilo koju tipku da biste nastavili istraživati.</translation>
<translation id="5678955352098267522">Äitati vaÅ¡e podatke s web-lokacije <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Identifikator uređaja</translation>
<translation id="5687326903064479980">Vremenska zona</translation>
+<translation id="5689516760719285838">Lokacija</translation>
<translation id="56907980372820799">Povežite podatke</translation>
<translation id="5691511426247308406">Obitelj</translation>
<translation id="5691596662111998220">Ups, stavka <ph name="FILE_NAME" /> više ne postoji.</translation>
@@ -4273,7 +4274,7 @@ Pritisnite bilo koju tipku da biste nastavili istraživati.</translation>
<translation id="7685049629764448582">Memorija JavaScripta</translation>
<translation id="7690294790491645610">Potvrdite novu zaporku</translation>
<translation id="7690853182226561458">Dodavanje &amp;mape...</translation>
-<translation id="7693221960936265065">poÄetka</translation>
+<translation id="7693221960936265065">od poÄetka</translation>
<translation id="769569204874261517"><ph name="USER_DISPLAY_NAME" /> (već je na uređaju)</translation>
<translation id="7698408911093959127">{COUNT,plural, =1{1 stavka na popisu oznaka}one{# stavka na popisu oznaka}few{# stavke na popisu oznaka}other{# stavki na popisu oznaka}}</translation>
<translation id="7701040980221191251">Nema</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_hu.xtb b/chromium/chrome/app/resources/generated_resources_hu.xtb
index f9d3473935a..8d41793ac10 100644
--- a/chromium/chrome/app/resources/generated_resources_hu.xtb
+++ b/chromium/chrome/app/resources/generated_resources_hu.xtb
@@ -14,7 +14,7 @@
<translation id="1016566241875885511">További információk (nem kötelező)</translation>
<translation id="1017280919048282932">&amp;Hozzáadás a szótárhoz</translation>
<translation id="1018656279737460067">Megszakítva</translation>
-<translation id="102272308210570439">Engedély a Segédnek a képernyőn lévő tartalom használatára</translation>
+<translation id="102272308210570439">Engedélyezi a Segédnek a képernyőn lévő tartalmak használatát</translation>
<translation id="1026822031284433028">Kép betöltése</translation>
<translation id="1029317248976101138">Nagyítás</translation>
<translation id="1031362278801463162">Előnézet betöltése</translation>
@@ -1117,7 +1117,7 @@
<translation id="2715751256863167692">Ez a frissítés visszaállítja a Chromebookot, és eltávolítja a jelenlegi felhasználói adatokat.</translation>
<translation id="2718395828230677721">Éjszakai fény</translation>
<translation id="2718998670920917754">A vírusirtó program vírust észlelt.</translation>
-<translation id="2719936478972253983">Az alábbi cookie-k le lettek tiltva</translation>
+<translation id="2719936478972253983">A következő cookie-k le vannak tiltva</translation>
<translation id="2721037002783622288">Képkere&amp;sés ezzel: <ph name="SEARCH_ENGINE" /></translation>
<translation id="2721334646575696520">Microsoft Edge</translation>
<translation id="2721695630904737430">Rendszergazdája letiltotta a felügyelt felhasználókat.</translation>
@@ -2421,7 +2421,7 @@ Elindítja a következőt: <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation
<translation id="4759238208242260848">Letöltések</translation>
<translation id="4761104368405085019">Mikrofon használata</translation>
<translation id="4762718786438001384">Az eszköz lemezterülete nagyon kevés</translation>
-<translation id="4763408175235639573">Az alábbi cookie-k beállítása akkor történt, amikor Ön megtekintette ezt az oldalt</translation>
+<translation id="4763408175235639573">A következő cookie-k beállítása akkor történt, amikor Ön megtekintette ezt az oldalt</translation>
<translation id="4763830802490665879">Több webhely cookie-jai törlődnek kilépéskor.</translation>
<translation id="4768332406694066911">Ezektől a szervezetektől olyan tanúsítványai vannak, amelyek azonosítják</translation>
<translation id="4776917500594043016">A(z) <ph name="USER_EMAIL_ADDRESS" /> fiókhoz tartozó jelszó</translation>
@@ -2800,7 +2800,7 @@ Egyes webhelyek például válaszolhatnak rá úgy, hogy olyan hirdetéseket jel
<translation id="5337771866151525739">Harmadik fél telepítette.</translation>
<translation id="5338503421962489998">Helyi tárhely</translation>
<translation id="5340217413897845242">6. polcelem</translation>
-<translation id="5341793073192892252">Az alábbi cookie-k le lettek tiltva (a harmadik féltől származó cookie-k kivétel nélkül le vannak tiltva)</translation>
+<translation id="5341793073192892252">A következő cookie-kat letiltottuk (a harmadik féltől származó cookie-kat kivétel nélkül letiltjuk)</translation>
<translation id="5341980496415249280">Kérjük, várjon, a csomagolás folyamatban van…</translation>
<translation id="5342091991439452114">A PIN-kódnak legalább <ph name="MINIMUM" /> számjegyűnek kell lennie</translation>
<translation id="534916491091036097">Bal zárójel</translation>
@@ -3025,6 +3025,7 @@ Győződjön meg arról, hogy nem ad ki bizalmas adatokat.</translation>
<translation id="5678955352098267522">Adatok beolvasása a következő webhelyen: <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Tartalomazonosító</translation>
<translation id="5687326903064479980">Időzóna</translation>
+<translation id="5689516760719285838">Tartózkodási hely</translation>
<translation id="56907980372820799">Adatok összekapcsolása</translation>
<translation id="5691511426247308406">Család</translation>
<translation id="5691596662111998220">Hoppá! A(z) <ph name="FILE_NAME" /> már nem létezik.</translation>
@@ -4924,7 +4925,7 @@ letiltásához nyomja le a Ctrl+Alt+Z billentyűkombinációt.</translation>
<translation id="8725066075913043281">Újrapróbálás</translation>
<translation id="8725178340343806893">Kedvencek/könyvjelzők</translation>
<translation id="8726206820263995930">Hiba a kiszolgálóról származó irányelv-beállítások fogadásakor: <ph name="CLIENT_ERROR" />.</translation>
-<translation id="8726718463424335668">Importálás kihagyása</translation>
+<translation id="8726718463424335668">Importálás átugrása</translation>
<translation id="8727142376512517020">Ez ne jelenjen meg többé</translation>
<translation id="8730621377337864115">Kész</translation>
<translation id="8732030010853991079">A bővítményt az ikonra kattintva használhatja.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_id.xtb b/chromium/chrome/app/resources/generated_resources_id.xtb
index 90f75feb147..c79f60e294d 100644
--- a/chromium/chrome/app/resources/generated_resources_id.xtb
+++ b/chromium/chrome/app/resources/generated_resources_id.xtb
@@ -3025,6 +3025,7 @@ Tekan sembarang tombol untuk melanjutkan penjelajahan.</translation>
<translation id="5678955352098267522">Membaca data Anda di <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Pengenal Aset</translation>
<translation id="5687326903064479980">Zona waktu</translation>
+<translation id="5689516760719285838">Lokasi</translation>
<translation id="56907980372820799">Tautkan data</translation>
<translation id="5691511426247308406">Keluarga</translation>
<translation id="5691596662111998220">Ups, <ph name="FILE_NAME" /> sudah tidak ada.</translation>
@@ -4844,7 +4845,7 @@ Simpan file kunci Anda di tempat yang aman. Anda akan membutuhkannya untuk membu
<translation id="8620617069779373398">Status roaming</translation>
<translation id="8620765578342452535">Konfigurasi sambungan jaringan</translation>
<translation id="8623004009673949077">Aplikasi dengan atribut manifes 'kiosk_only' harus dipasang pada mode kios Chrome OS.</translation>
-<translation id="8624205858755890468">Aktifkan Asisten agar dapat menampilkan info terkait, aplikasi, dan tindakan.</translation>
+<translation id="8624205858755890468">Mengaktifkan Asisten agar dapat menampilkan aplikasi, tindakan, dan info terkait.</translation>
<translation id="862542460444371744">&amp;Ekstensi</translation>
<translation id="8627151598708688654">Pilih sumber</translation>
<translation id="862727964348362408">Ditangguhkan</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_it.xtb b/chromium/chrome/app/resources/generated_resources_it.xtb
index 907ca72c4f8..af54e5efbe3 100644
--- a/chromium/chrome/app/resources/generated_resources_it.xtb
+++ b/chromium/chrome/app/resources/generated_resources_it.xtb
@@ -977,7 +977,7 @@ Non credo che questo sito debba essere bloccato.</translation>
<translation id="2509495747794740764">Il valore Scala deve essere un numero compreso tra 10 e 200.</translation>
<translation id="2515586267016047495">Alt</translation>
<translation id="251662399991179012">Prepara il tuo dispositivo <ph name="DEVICE_TYPE" /></translation>
-<translation id="2517472476991765520">Cerca</translation>
+<translation id="2517472476991765520">Scansiona</translation>
<translation id="2518024842978892609">Utilizza certificati client</translation>
<translation id="2520644704042891903">In attesa di socket disponibile...</translation>
<translation id="252219247728877310">Componente non aggiornato</translation>
@@ -1199,7 +1199,7 @@ Non credo che questo sito debba essere bloccato.</translation>
<translation id="2815500128677761940">Barra dei Preferiti</translation>
<translation id="2815693974042551705">Aggiungi la cartella ai segnalibri</translation>
<translation id="2818476747334107629">Dettagli stampante</translation>
-<translation id="2820957248982571256">Ricerca in corso...</translation>
+<translation id="2820957248982571256">Scansione…</translation>
<translation id="2822634587701817431">Comprimi/Espandi</translation>
<translation id="2825758591930162672">Chiave pubblica del soggetto</translation>
<translation id="2828650939514476812">Collegati alla rete Wi-Fi</translation>
@@ -3021,6 +3021,7 @@ Premi un tasto qualsiasi per continuare a esplorare.</translation>
<translation id="5678955352098267522">Lettura dei dati su <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Identificatore asset</translation>
<translation id="5687326903064479980">Fuso orario</translation>
+<translation id="5689516760719285838">Posizione</translation>
<translation id="56907980372820799">Collega dati</translation>
<translation id="5691511426247308406">Famiglia</translation>
<translation id="5691596662111998220">Spiacenti. <ph name="FILE_NAME" /> non esiste più.</translation>
@@ -4700,7 +4701,7 @@ Conserva il file di chiave in un luogo sicuro. Ti servirà per creare nuove vers
<translation id="8378285435971754261">Consenti al servizio di geolocalizzazione di Google di aiutare le app a rilevare la tua posizione in modo veloce e preciso, riducendo allo stesso tempo il consumo di batteria. A Google verranno inviati dati anonimi sulla posizione, anche quando non ci sono app in esecuzione. <ph name="BEGIN_LINK1" />Ulteriori informazioni<ph name="END_LINK1" /></translation>
<translation id="8381179624334829711">Gestisci le impostazioni della videocamera...</translation>
<translation id="8382913212082956454">Copia indirizzo &amp;email</translation>
-<translation id="8386903983509584791">Ricerca completata</translation>
+<translation id="8386903983509584791">Scansione completata</translation>
<translation id="8390029840652165810">Assicurati che la connessione di rete sia attiva; se il problema persiste, esci e accedi nuovamente per aggiornare le credenziali.</translation>
<translation id="8390449457866780408">Server non disponibile.</translation>
<translation id="8392234662362215700">Premi CTRL + MAIUSC + barra spaziatrice per cambiare il layout della tastiera.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_iw.xtb b/chromium/chrome/app/resources/generated_resources_iw.xtb
index fcf10614cff..21b0c713959 100644
--- a/chromium/chrome/app/resources/generated_resources_iw.xtb
+++ b/chromium/chrome/app/resources/generated_resources_iw.xtb
@@ -14,7 +14,7 @@
<translation id="1016566241875885511">מידע נוסף (×ופציונלי)</translation>
<translation id="1017280919048282932">&amp;הוסף למילון</translation>
<translation id="1018656279737460067">בוטל</translation>
-<translation id="102272308210570439">â€×”רש××” ל-Assistant להשתמש במה שמופיע במסך</translation>
+<translation id="102272308210570439">â€×ž×ª×Ÿ הרש××” ל-Assistant להשתמש בתוכן שמופיע במסך</translation>
<translation id="1026822031284433028">טען תמונה</translation>
<translation id="1029317248976101138">התקרב</translation>
<translation id="1031362278801463162">טוען תצוגה מקדימה</translation>
@@ -794,7 +794,7 @@
<translation id="222949136907494149"><ph name="URL" /> רוצה להשתמש ×‘×ž×™×§×•× ×”×ž×—×©×‘ שלך.</translation>
<translation id="2230051135190148440">CHAP</translation>
<translation id="2230062665678605299">×œ× × ×™×ª×Ÿ ליצור ×ת התיקיה "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
-<translation id="223106756035922488">לחיצה תציג ×ת השרבוט היומי</translation>
+<translation id="223106756035922488">לחיצה תציג ×ת הדודל היומי</translation>
<translation id="2231238007119540260">×× ×תה מוחק ×ישור שרת, ×תה משחזר ×ת בדיקות ×”×בטחה הרגילות לשרת ×–×” ודורש ×©×”×•× ×™×©×ª×ž×© ב×ישור חוקי.</translation>
<translation id="2231990265377706070">סימן קרי××”</translation>
<translation id="2232876851878324699">הקובץ הכיל ×ישור ×חד, ×©×œ× ×™×•×‘×:</translation>
@@ -2798,7 +2798,7 @@ http://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-featur
<translation id="5337771866151525739">הותקן על ידי צד שלישי.</translation>
<translation id="5338503421962489998">×חסון מקומי</translation>
<translation id="5340217413897845242">פריט מדף 6</translation>
-<translation id="5341793073192892252">â€×§×•×‘צי ×”-Cookie הב××™× × ×—×¡×ž×• (קובצי Cookie מצד שלישי × ×—×¡×ž×™× ×œ×œ× ×™×•×¦× ×ž×Ÿ הכלל)</translation>
+<translation id="5341793073192892252">â€×§×•×‘צי ×”-Cookie הב××™× × ×—×¡×ž×• (קובצי Cookie של צד שלישי × ×—×¡×ž×™× ×œ×œ× ×™×•×¦× ×ž×Ÿ הכלל)</translation>
<translation id="5341980496415249280">×”×ריזה מתבצעת...</translation>
<translation id="5342091991439452114">â€×”-PIN חייב להיות ב×ורך <ph name="MINIMUM" /> ספרות לפחות</translation>
<translation id="534916491091036097">צד שמ×ל של הסוגריי×</translation>
@@ -3022,6 +3022,7 @@ http://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-featur
<translation id="5678955352098267522">קרי×ת ×”× ×ª×•× ×™× ×©×œ×š ב×תר <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">מזהה נכסי×</translation>
<translation id="5687326903064479980">×זור זמן</translation>
+<translation id="5689516760719285838">מיקו×</translation>
<translation id="56907980372820799">קשר נתוני×</translation>
<translation id="5691511426247308406">משפחה</translation>
<translation id="5691596662111998220">×ופס, <ph name="FILE_NAME" /> כבר ×œ× ×§×™×™×.</translation>
@@ -4911,7 +4912,7 @@ http://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-featur
<translation id="8725066075913043281">נסה שוב</translation>
<translation id="8725178340343806893">מועדפי×/סימניות</translation>
<translation id="8726206820263995930">×ירעה שגי××” בעת הב×ת הגדרות מדיניות מהשרת: <ph name="CLIENT_ERROR" />.</translation>
-<translation id="8726718463424335668">דילוג על ייבו×</translation>
+<translation id="8726718463424335668">ביטול ייבו×</translation>
<translation id="8727142376512517020">×ל תציג הודעה זו שוב</translation>
<translation id="8730621377337864115">בוצע</translation>
<translation id="8732030010853991079">השתמש בתוסף זה על ידי לחיצה על סמל זה.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_ja.xtb b/chromium/chrome/app/resources/generated_resources_ja.xtb
index 46c912a1487..a284d9f7651 100644
--- a/chromium/chrome/app/resources/generated_resources_ja.xtb
+++ b/chromium/chrome/app/resources/generated_resources_ja.xtb
@@ -612,7 +612,7 @@
<translation id="1928202201223835302">以å‰ã® PIN を入力</translation>
<translation id="1929546189971853037">ログインã—ã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ‡ãƒã‚¤ã‚¹ã§ã®é–²è¦§å±¥æ­´ã®èª­ã¿å–ã‚Š</translation>
<translation id="1931152874660185993">コンãƒãƒ¼ãƒãƒ³ãƒˆã¯ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã¦ã„ã¾ã›ã‚“。</translation>
-<translation id="1932026958134051332">スイッãƒã‚¢ã‚¯ã‚»ã‚¹ã®ã‚ªãƒ—ション</translation>
+<translation id="1932026958134051332">スイッムアクセスã®ã‚ªãƒ—ション</translation>
<translation id="1932098463447129402">開始時刻</translation>
<translation id="1933809209549026293">マウスã¾ãŸã¯ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã‚’接続ã—ã¦ãã ã•ã„。Bluetooth デãƒã‚¤ã‚¹ã‚’使用ã—ã¦ã„ã‚‹å ´åˆã¯ã€ãƒšã‚¢è¨­å®šã§ãる状態ã§ã‚ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。</translation>
<translation id="1936157145127842922">フォルダã§è¡¨ç¤º</translation>
@@ -1201,7 +1201,7 @@
<translation id="2815500128677761940">ブックマーク ãƒãƒ¼</translation>
<translation id="2815693974042551705">ブックマーク フォルダ</translation>
<translation id="2818476747334107629">プリンタã®è©³ç´°</translation>
-<translation id="2820957248982571256">スキャンã—ã¦ã„ã¾ã™...</translation>
+<translation id="2820957248982571256">スキャンã—ã¦ã„ã¾ã™â€¦</translation>
<translation id="2822634587701817431">拡大ã¾ãŸã¯ç¸®å°</translation>
<translation id="2825758591930162672">サブジェクトã®å…¬é–‹éµ</translation>
<translation id="2828650939514476812">Wi-Fi ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã¸ã®æŽ¥ç¶š</translation>
@@ -2406,7 +2406,7 @@
<translation id="4728558894243024398">プラットフォーム</translation>
<translation id="4731422630970790516">シェルフ アイテム 3</translation>
<translation id="4732760563705710320">ã“ã®å‹•ç”»ã¯ã‚­ãƒ£ã‚¹ãƒˆ デãƒã‚¤ã‚¹ã§ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“。</translation>
-<translation id="4733793249294335256">場所</translation>
+<translation id="4733793249294335256">ä¿å­˜å…ˆ</translation>
<translation id="4734518477988699048">入力値ãŒç„¡åŠ¹ã§ã™ã€‚</translation>
<translation id="473546211690256853">ã“ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã¯ <ph name="DOMAIN" /> ã«ã‚ˆã£ã¦ç®¡ç†ã•ã‚Œã¦ã„ã¾ã™ã€‚</translation>
<translation id="4737715515457435632">ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã«æŽ¥ç¶šã—ã¦ãã ã•ã„</translation>
@@ -3026,6 +3026,7 @@
<translation id="5678955352098267522"><ph name="WEBSITE_1" /> ã§ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ‡ãƒ¼ã‚¿ã®èª­ã¿å–ã‚Š</translation>
<translation id="5684661240348539843">アセット ID</translation>
<translation id="5687326903064479980">タイムゾーン</translation>
+<translation id="5689516760719285838">ç¾åœ¨åœ°</translation>
<translation id="56907980372820799">データをリンク</translation>
<translation id="5691511426247308406">ファミリー</translation>
<translation id="5691596662111998220"><ph name="FILE_NAME" /> ãŒå­˜åœ¨ã—ã¾ã›ã‚“。</translation>
@@ -4717,7 +4718,7 @@
<translation id="8378285435971754261">Google ã®ä½ç½®æƒ…報サービスを有効ã«ã™ã‚‹ã¨ã€ã‚¢ãƒ—リã§ç¾åœ¨åœ°ã‚’ã™ã°ã‚„ã正確ã«ç‰¹å®šã§ãるよã†ã«ãªã‚‹ãŸã‚ã€ãƒãƒƒãƒ†ãƒªãƒ¼ã®æ¶ˆè²»ã‚’抑ãˆã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚アプリãŒèµ·å‹•ã—ã¦ã„ãªã„å ´åˆã§ã‚‚ã€åŒ¿åã®ä½ç½®æƒ…報㌠Google ã«é€ä¿¡ã•ã‚Œã¾ã™ã€‚<ph name="BEGIN_LINK1" />詳細<ph name="END_LINK1" /></translation>
<translation id="8381179624334829711">カメラã®è¨­å®šã‚’管ç†...</translation>
<translation id="8382913212082956454">メール アドレスをコピー(&amp;E)</translation>
-<translation id="8386903983509584791">スキャン完了</translation>
+<translation id="8386903983509584791">スキャンãŒå®Œäº†ã—ã¾ã—ãŸ</translation>
<translation id="8390029840652165810">ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯æŽ¥ç¶šãŒæ­£å¸¸ã§ã‚ã‚‹ã‹ã©ã†ã‹ã‚’確èªã—ã¦ãã ã•ã„。å•é¡ŒãŒè§£æ±ºã—ãªã„å ´åˆã¯ã€ãƒ­ã‚°ã‚¢ã‚¦ãƒˆã—ã¦ã‹ã‚‰ã‚‚ã†ä¸€åº¦ãƒ­ã‚°ã‚¤ãƒ³ã—ã€èªè¨¼æƒ…報を更新ã—ã¦ãã ã•ã„。</translation>
<translation id="8390449457866780408">サーãƒãƒ¼ã‚’使用ã§ãã¾ã›ã‚“。</translation>
<translation id="8392234662362215700">キーボードã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’切り替ãˆã‚‹ã«ã¯ Ctrl+Shift+Space を押ã—ã¦ãã ã•ã„。</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_kn.xtb b/chromium/chrome/app/resources/generated_resources_kn.xtb
index 42dbe7a7c7c..3e982644cf1 100644
--- a/chromium/chrome/app/resources/generated_resources_kn.xtb
+++ b/chromium/chrome/app/resources/generated_resources_kn.xtb
@@ -2326,7 +2326,7 @@
<translation id="4610637590575890427"><ph name="SITE" /> ವೆಬà³â€Œà²¸à³ˆà²Ÿà³â€Œà²—ೆ ಹೋಗà³à²µà³à²¦à³‡?</translation>
<translation id="4611114513649582138">ಡೇಟಾ ಸಂಪರà³à²• ಲಭà³à²¯à²µà²¿à²¦à³†</translation>
<translation id="4613271546271159013">ನೀವೠಹೊಸ ಟà³à²¯à²¾à²¬à³ ತೆರೆದಿರà³à²µà²¾à²— ಯಾವ ಪà³à²Ÿà²µà²¨à³à²¨à³ ತೋರಿಸಲಾಗಿದೆ ಎಂಬà³à²¦à²° ವಿಸà³à²¤à²°à²£à³† ಬದಲಾಗಿದೆ.</translation>
-<translation id="4615586811063744755">ಯಾವà³à²¦à³‡ ಕà³à²•à³€à²¯à²¨à³à²¨à³ ಆಯà³à²•à³†à²®à²¾à²¡à²²à²¾à²—ಿಲà³à²²</translation>
+<translation id="4615586811063744755">ಯಾವà³à²¦à³‡ ಕà³à²•à³€ ಆಯà³à²•à³† ಮಾಡಲಾಗಿಲà³à²²</translation>
<translation id="4617270414136722281">ವಿಸà³à²¤à²°à²£à³† ಆಯà³à²•à³†à²—ಳà³</translation>
<translation id="4618990963915449444"><ph name="DEVICE_NAME" /> ರಲà³à²²à²¿à²¨ ಎಲà³à²² ಫೈಲà³â€Œà²—ಳನà³à²¨à³ ಅಳಿಸಿಹಾಕಲಾಗà³à²µà³à²¦à³.</translation>
<translation id="4619615317237390068">ಇತರ ಸಾಧನಗಳಿಂದ ಟà³à²¯à²¾à²¬à³â€Œà²—ಳà³</translation>
@@ -2421,7 +2421,7 @@
<translation id="4759238208242260848">ಡೌನà³â€Œà²²à³‹à²¡à³â€Œà²—ಳà³</translation>
<translation id="4761104368405085019">ನಿಮà³à²® ಮೈಕà³à²°à³Šà²«à³‹à²¨à³ ಅನà³à²¨à³ ಬಳಸಿ</translation>
<translation id="4762718786438001384">ಸಾಧನ ಡಿಸà³à²•à³ ಸà³à²¥à²³à²¾à²µà²•à²¾à²¶ ತೀರಾ ಕಡಿಮೆ ಇದೆ</translation>
-<translation id="4763408175235639573">ಈ ಪà³à²Ÿà²µà²¨à³à²¨à³ ನೀವೠವೀಕà³à²·à²¿à²¸à²¿à²¦à²¾à²— ಈ ಕೆಳಗಿನ ಕà³à²•à³€à²—ಳನà³à²¨à³ ಹೊಂದಿಸಲಾಗಿದೆ</translation>
+<translation id="4763408175235639573">ನೀವೠಈ ಪà³à²Ÿà²µà²¨à³à²¨à³ ವೀಕà³à²·à²¿à²¸à³à²µà²¾à²— ಕೆಳಗಿನ ಕà³à²•à³€à²—ಳನà³à²¨à³ ಹೊಂದಿಸಲಾಗಿದೆ</translation>
<translation id="4763830802490665879">ನಿರà³à²—ಮನದಲà³à²²à²¿ ಬಹೠಸೈಟà³â€Œà²—ಳಿಂದ ಕà³à²•à³€à²¸à³ ಅನà³à²¨à³ ತೆರವà³à²—ೊಳಿಸಲಾಗà³à²¤à³à²¤à²¦à³†.</translation>
<translation id="4768332406694066911">ನಿಮà³à²®à²¨à³à²¨à³ ಗà³à²°à³à²¤à²¿à²¸à³à²µ ಈ ಸಂಸà³à²¥à³†à²—ಳ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²—ಳನà³à²¨à³ ನೀವೠಹೊಂದಿರà³à²µà²¿à²°à²¿</translation>
<translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> ಗಾಗಿ ಪಾಸà³â€Œà²µà²°à³à²¡à³</translation>
@@ -2871,7 +2871,7 @@
<translation id="5438224778284622050">ಆಫà³â€Œà²²à³ˆà²¨à³ ಫೈಲà³â€Œà²—ಳನà³à²¨à³ ಅಳಿಸà³à²µà³à²¦à³‡?</translation>
<translation id="5438430601586617544">(ಬಿಚà³à²šà²¿à²°à³à²µà³à²¦à³)</translation>
<translation id="544083962418256601">ಶಾರà³à²Ÿà³â€Œà²•à²Ÿà³â€Œà²—ಳನà³à²¨à³ ರಚಿಸಿ...</translation>
-<translation id="5442550868130618860">ಸà³à²µà²¯à²‚ ಅಪà³â€Œà²¡à³‡à²Ÿà³ ಅನà³à²¨à³ ಆನೠಮಾಡಿ</translation>
+<translation id="5442550868130618860">ಸà³à²µà²¯à²‚ಚಾಲಿತ ಅಪà³â€Œà²¡à³‡à²Ÿà³ ಅನà³à²¨à³ ಆನೠಮಾಡಿ</translation>
<translation id="5446983216438178612">ಸಂಸà³à²¥à³†à²¯ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²—ಳನà³à²¨à³ ತೋರಿಸà³</translation>
<translation id="5448293924669608770">ಓಹà³, ಸೈನೠಇನೠಮಾಡà³à²µà²²à³à²²à²¿ à²à²¨à³‹ ತಪà³à²ªà³ ಸಂಭವಿಸಿದೆ</translation>
<translation id="5449551289610225147">ಅಮಾನà³à²¯ ಪಾಸà³â€Œà²µà²°à³à²¡à³</translation>
@@ -3027,6 +3027,7 @@
<translation id="5678955352098267522">ನಿಮà³à²® ಡೇಟಾವನà³à²¨à³ <ph name="WEBSITE_1" /> ನಲà³à²²à²¿ ಓದಿ</translation>
<translation id="5684661240348539843">ಸà³à²µà²¤à³à²¤à³ ಗà³à²°à³à²¤à²¿à²¸à³à²µà²¿à²•à³†</translation>
<translation id="5687326903064479980">ಸಮಯ ವಲಯ</translation>
+<translation id="5689516760719285838">ಸà³à²¥à²³</translation>
<translation id="56907980372820799">ಲಿಂಕೠಡೇಟಾ</translation>
<translation id="5691511426247308406">ಕà³à²Ÿà³à²‚ಬ</translation>
<translation id="5691596662111998220">ಓಹà³, <ph name="FILE_NAME" /> ಇನà³à²¨à³ ಮà³à²‚ದೆ ಅಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²°à³à²µà³à²¦à²¿à²²à³à²².</translation>
@@ -4848,7 +4849,7 @@
<translation id="8620617069779373398">ರೋಮಿಂಗೠಸà³à²¥à²¿à²¤à²¿</translation>
<translation id="8620765578342452535">ನೆಟà³â€Œà²µà²°à³à²•à³ ಸಂಪರà³à²•à²—ಳನà³à²¨à³ ಕಾನà³à²«à²¿à²—ರೠಮಾಡಿ</translation>
<translation id="8623004009673949077">Chrome OS ಕಿಯೋಸà³à²•à³ ಮೋಡà³â€Œà²¨à²²à³à²²à²¿ 'kiosk_only' ಮà³à²¯à²¾à²¨à²¿à²«à³†à²¸à³à²Ÿà³â€Œ ಲಕà³à²·à²£à²¦ ಜೊತೆಗಿನ ಅಪà³à²²à²¿à²•à³‡à²¶à²¨à³â€Œ ಸà³à²¥à²¾à²ªà²¿à²¸à²¿à²°à²¬à³‡à²•à³.</translation>
-<translation id="8624205858755890468">ಸಂಬಂಧಿತ ಮಾಹಿತಿ, ಅಪà³à²²à²¿à²•à³†à³•à²¶à²¨à³â€Œà²—ಳೠಮತà³à²¤à³ ಕà³à²°à²¿à²¯à³†à²—ಳನà³à²¨à³ ನಿಮಗೆ ತೋರಿಸಲೠಸಹಾಯಕವನà³à²¨à³ ಸಕà³à²°à²¿à²¯à²—ೊಳಿಸà³à²¤à³à²¤à²¦à³†.</translation>
+<translation id="8624205858755890468">ಸಂಬಂಧಿತ ಮಾಹಿತಿ, ಅಪà³à²²à²¿à²•à³†à³•à²¶à²¨à³â€Œà²—ಳೠಮತà³à²¤à³ ಕà³à²°à²¿à²¯à³†à²—ಳನà³à²¨à³ ನಿಮಗೆ ತೋರಿಸಲೠಸಹಾಯಕವನà³à²¨à³ ಸಕà³à²°à²¿à²¯à²—ೊಳಿಸಿ.</translation>
<translation id="862542460444371744">&amp;ವಿಸà³à²¤à²°à²£à³†à²—ಳà³</translation>
<translation id="8627151598708688654">ಮೂಲವನà³à²¨à³ ಆಯà³à²•à³†à²®à²¾à²¡à²¿</translation>
<translation id="862727964348362408">ತಡೆಹಿಡಿಯಲಾಗಿದೆ</translation>
@@ -4927,7 +4928,7 @@
<translation id="8725066075913043281">ಮತà³à²¤à³† ಪà³à²°à²¯à²¤à³à²¨à²¿à²¸à²¿</translation>
<translation id="8725178340343806893">ಮೆಚà³à²šà²¿à²¨à²µà³à²—ಳà³/ಬà³à²•à³â€Œà²®à²¾à²°à³à²•à³â€Œà²—ಳà³</translation>
<translation id="8726206820263995930">ಸರà³à²µà²°à³â€Œà²¨à²¿à²‚ದ ನೀತಿ ಸೆಟà³à²Ÿà²¿à²‚ಗà³â€Œà²—ಳನà³à²¨à³ ಪಡೆಯà³à²¤à³à²¤à²¿à²°à³à²µà²¾à²— ದೋಷ: <ph name="CLIENT_ERROR" />.</translation>
-<translation id="8726718463424335668">ಆಮದನà³à²¨à³ ಸà³à²•à²¿à²ªà³ ಮಾಡಿ</translation>
+<translation id="8726718463424335668">ಆಮದೠಸà³à²•à²¿à²ªà³ ಮಾಡಿ</translation>
<translation id="8727142376512517020">ಇದನà³à²¨à³ ಮತà³à²¤à³† ತೋರಿಸಬೇಡ</translation>
<translation id="8730621377337864115">ಮà³à²—ಿದಿದೆ</translation>
<translation id="8732030010853991079">ಈ à²à²•à²¾à²¨à³â€Œ ಕà³à²²à²¿à²•à³ ಮಾಡà³à²µà³à²¦à²° ಮೂಲಕ ಈ ವಿಸà³à²¤à²°à²£à³†à²¯à²¨à³à²¨à³ ಬಳಸಿ.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_ko.xtb b/chromium/chrome/app/resources/generated_resources_ko.xtb
index cf9c4250d3e..6536093c5a3 100644
--- a/chromium/chrome/app/resources/generated_resources_ko.xtb
+++ b/chromium/chrome/app/resources/generated_resources_ko.xtb
@@ -2423,7 +2423,7 @@
<translation id="4759238208242260848">다운로드</translation>
<translation id="4761104368405085019">마ì´í¬ 사용</translation>
<translation id="4762718786438001384">ê¸°ê¸°ì— ë””ìŠ¤í¬ ì €ìž¥ 공간 매우 부족</translation>
-<translation id="4763408175235639573">페ì´ì§€ë¥¼ í‘œì‹œí–ˆì„ ë•Œ ë‹¤ìŒ ì¿ í‚¤ê°€ 설정ë¨</translation>
+<translation id="4763408175235639573">페ì´ì§€ë¥¼ ì—´ì—ˆì„ ë•Œ ë‹¤ìŒ ì¿ í‚¤ê°€ 설정ë¨</translation>
<translation id="4763830802490665879">여러 사ì´íŠ¸ì˜ 쿠키가 종료 ì‹œ ì‚­ì œë©ë‹ˆë‹¤.</translation>
<translation id="4768332406694066911">ë‹¤ìŒ ê¸°ê´€ì— ì‚¬ìš©ìžì˜ ì‹ ì›ì„ 확ì¸í•˜ëŠ” ì¸ì¦ì„œê°€ 있습니다.</translation>
<translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" />ì˜ ë¹„ë°€ë²ˆí˜¸</translation>
@@ -2802,7 +2802,7 @@
<translation id="5337771866151525739">ì œ3ìžì— ì˜í•´ 설치ë˜ì—ˆìŠµë‹ˆë‹¤.</translation>
<translation id="5338503421962489998">로컬 저장소</translation>
<translation id="5340217413897845242">서가 항목 6</translation>
-<translation id="5341793073192892252">ë‹¤ìŒ ì¿ í‚¤ê°€ 차단ë¨(타사 ì¿ í‚¤ë„ ì˜ˆì™¸ ì—†ì´ ì°¨ë‹¨ë¨)</translation>
+<translation id="5341793073192892252">ë‹¤ìŒ ì¿ í‚¤ê°€ 차단ë¨(타사 쿠키는 예외 ì—†ì´ ì°¨ë‹¨ë¨)</translation>
<translation id="5341980496415249280">잠시 기다려 주세요. 압축 중입니다...</translation>
<translation id="5342091991439452114">PINì€ <ph name="MINIMUM" />ìžë¦¬ ì´ìƒì´ì–´ì•¼ 합니다.</translation>
<translation id="534916491091036097">왼쪽 괄호</translation>
@@ -3026,6 +3026,7 @@
<translation id="5678955352098267522"><ph name="WEBSITE_1" />ì—ì„œ ë°ì´í„° ì½ê¸°</translation>
<translation id="5684661240348539843">ì• ì…‹ ì‹ë³„ìž</translation>
<translation id="5687326903064479980">시간대</translation>
+<translation id="5689516760719285838">위치</translation>
<translation id="56907980372820799">ë°ì´í„° ì—°ê²°</translation>
<translation id="5691511426247308406">가족</translation>
<translation id="5691596662111998220"><ph name="FILE_NAME" />ì´(ê°€) ë” ì´ìƒ 존재하지 않습니다.</translation>
@@ -4811,7 +4812,7 @@
<translation id="8546306075665861288">ì´ë¯¸ì§€ ìºì‹œ</translation>
<translation id="8546541260734613940">[*.]example.com</translation>
<translation id="854655314928502177">웹 프ë¡ì‹œ ìžë™ íƒìƒ‰ URL</translation>
-<translation id="8546930481464505581">터치 바 맞춤설정</translation>
+<translation id="8546930481464505581">Touch Bar 맞춤설정</translation>
<translation id="85486688517848470">맨 위 í‚¤ì˜ ë™ìž‘ì„ ì „í™˜í•˜ë ¤ë©´ 검색 키를 길게 누름</translation>
<translation id="855081842937141170">탭 고정</translation>
<translation id="8551388862522347954">ë¼ì´ì„ ìŠ¤</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_lt.xtb b/chromium/chrome/app/resources/generated_resources_lt.xtb
index 710ea206717..5efe80224fa 100644
--- a/chromium/chrome/app/resources/generated_resources_lt.xtb
+++ b/chromium/chrome/app/resources/generated_resources_lt.xtb
@@ -2328,7 +2328,7 @@ Jei norite toliau naršyti, paspauskite bet kurį klavišą.</translation>
<translation id="4610637590575890427">Ar norėjote eiti į <ph name="SITE" />?</translation>
<translation id="4611114513649582138">Pasiekiamas duomenų ryšys</translation>
<translation id="4613271546271159013">Plėtinys pakeitė puslapį, kuris rodomas atidarius naują skirtuko puslapį.</translation>
-<translation id="4615586811063744755">nÄ—ra pasirinkta slapuko</translation>
+<translation id="4615586811063744755">nepasirinktas joks slapukas</translation>
<translation id="4617270414136722281">Plėtinių parinktys</translation>
<translation id="4618990963915449444">Visi „<ph name="DEVICE_NAME" />“ esantys failai bus sunaikinti.</translation>
<translation id="4619615317237390068">Skirtukai iš kitų įrenginių</translation>
@@ -2398,7 +2398,7 @@ Jei norite toliau naršyti, paspauskite bet kurį klavišą.</translation>
<translation id="4716483597559580346">Atlikite veiksmą „Powerwash“, kad užtikrintumėte geresnę saugą</translation>
<translation id="471800408830181311">PrivaÄiojo rakto iÅ¡vestis nepavyko.</translation>
<translation id="4720113199587244118">Pridėti įrenginių</translation>
-<translation id="4720185134442950733">Duomenų tinklas mobiliesiems</translation>
+<translation id="4720185134442950733">Mobiliojo ryšio duomenų tinklas</translation>
<translation id="4722920479021006856">„<ph name="APP_NAME" />“ bendrina jūsų ekraną.</translation>
<translation id="4724450788351008910">Ryšys pakeistas</translation>
<translation id="4724850507808590449">Sukurta atsarginių nuotraukų kopijų: <ph name="FILE_COUNT" /></translation>
@@ -2871,7 +2871,7 @@ Jei norite toliau naršyti, paspauskite bet kurį klavišą.</translation>
<translation id="5438224778284622050">IÅ¡trinti neprisijungus pasiekiamus failus?</translation>
<translation id="5438430601586617544">(išpakuota)</translation>
<translation id="544083962418256601">Kurti sparÄiuosius klaviÅ¡us...</translation>
-<translation id="5442550868130618860">Įjungti automatinį naujinį</translation>
+<translation id="5442550868130618860">Įjungti automatinį naujinimą</translation>
<translation id="5446983216438178612">Rodyti organizacijos sertifikatus</translation>
<translation id="5448293924669608770">Oi, prisijungiant įvyko klaida</translation>
<translation id="5449551289610225147">Netinkamas slaptažodis</translation>
@@ -3027,6 +3027,7 @@ Jei norite toliau naršyti, paspauskite bet kurį klavišą.</translation>
<translation id="5678955352098267522">Skaityti duomenis svetainÄ—je <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">IÅ¡tekliaus identifikatorius</translation>
<translation id="5687326903064479980">Laiko juosta</translation>
+<translation id="5689516760719285838">Vieta</translation>
<translation id="56907980372820799">Susieti duomenis</translation>
<translation id="5691511426247308406">Å eima</translation>
<translation id="5691596662111998220">Oi, „<ph name="FILE_NAME" />“ nebėra.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_lv.xtb b/chromium/chrome/app/resources/generated_resources_lv.xtb
index 310c26c96b7..f02ce75cba4 100644
--- a/chromium/chrome/app/resources/generated_resources_lv.xtb
+++ b/chromium/chrome/app/resources/generated_resources_lv.xtb
@@ -14,7 +14,7 @@
<translation id="1016566241875885511">Papildu informÄcija (neobligÄti)</translation>
<translation id="1017280919048282932">&amp;Pievienot vÄrdnÄ«cai</translation>
<translation id="1018656279737460067">Atcelts</translation>
-<translation id="102272308210570439">Ä»aut Asistentam izmantot vienumus jÅ«su ekrÄnÄ</translation>
+<translation id="102272308210570439">Ä»aujiet Asistentam piekļūt jÅ«su ekrÄnam</translation>
<translation id="1026822031284433028">IelÄdÄ“t attÄ“lu</translation>
<translation id="1029317248976101138">TÄlummaiņa</translation>
<translation id="1031362278801463162">Notiek priekÅ¡skatÄ«juma ielÄde</translation>
@@ -798,7 +798,7 @@ VÄ“l jÄlÄdÄ“: <ph name="HOUR" />:<ph name="MINUTE" /></translation>
<translation id="222949136907494149"><ph name="URL" /> vÄ“las izmantot jÅ«su datora atraÅ¡anÄs vietu.</translation>
<translation id="2230051135190148440">CHAP</translation>
<translation id="2230062665678605299">Mapi “<ph name="FOLDER_NAME" />†nevar izveidot. <ph name="ERROR_MESSAGE" /></translation>
-<translation id="223106756035922488">Noklikšķiniet, lai skatītu šodienas svētku logotipu</translation>
+<translation id="223106756035922488">Noklikšķiniet, lai skatītu šodienas svētku logotipu.</translation>
<translation id="2231238007119540260">Ja dzÄ“sÄ«siet servera sertifikÄtu, jÅ«s atjaunosiet Å¡Ä« servera parastÄs droÅ¡Ä«bas pÄrbaudes un pieprasÄ«siet tam izmantot derÄ«gu sertifikÄtu.</translation>
<translation id="2231990265377706070">Izsaukuma zīme</translation>
<translation id="2232876851878324699">FailÄ bija iekļauts viens sertifikÄts, kas netika importÄ“ts:</translation>
@@ -1066,7 +1066,7 @@ Es uzskatu, ka Å¡ai vietnei nav jÄbÅ«t bloÄ·Ä“tai.</translation>
<translation id="2642111877055905627">Futbolbumba</translation>
<translation id="2643698698624765890">PÄrvaldiet savus paplaÅ¡inÄjumus, izvÄ“lnÄ“ Logs noklikÅ¡Ä·inot uz PaplaÅ¡inÄjumi.</translation>
<translation id="2647142853114880570">atkÄrtoti ielÄdÄ“t</translation>
-<translation id="2647269890314209800">Izmantotie sīkfaili</translation>
+<translation id="2647269890314209800">Izmantojamie sīkfaili</translation>
<translation id="2648831393319960979">Notiek ierÄ«ces savienoÅ¡ana ar jÅ«su kontu — tas var ilgt kÄdu laiku...</translation>
<translation id="2649045351178520408">Base64 kodÄ“ts ASCII, sertifikÄtu virkne</translation>
<translation id="2653266418988778031">Ja dzÄ“sÄ«siet sertifikÄta izdevÄ“jiestÄdes (SI) sertifikÄtu, pÄrlÅ«kprogramma vairs nevarÄ“s uzticÄ“ties nevienam Å¡Ä«s SI izsniegtajam sertifikÄtam.</translation>
@@ -1117,7 +1117,7 @@ Es uzskatu, ka Å¡ai vietnei nav jÄbÅ«t bloÄ·Ä“tai.</translation>
<translation id="2715751256863167692">Å is jauninÄjums atiestata jÅ«su Chromebook datoru un noņem paÅ¡reizÄ“jos lietotÄju datus.</translation>
<translation id="2718395828230677721">Nakts režīms</translation>
<translation id="2718998670920917754">PretvÄ«rusu programmatÅ«rÄ tika konstatÄ“ts vÄ«russ.</translation>
-<translation id="2719936478972253983">Tika bloÄ·Ä“ti Å¡Ädi sÄ«kfaili:</translation>
+<translation id="2719936478972253983">Tika bloÄ·Ä“ti tÄlÄk norÄdÄ«tie sÄ«kfaili.</translation>
<translation id="2721037002783622288">MeklÄ“t attÄ“lu <ph name="SEARCH_ENGINE" /> tÄ«klÄ</translation>
<translation id="2721334646575696520">Microsoft Edge</translation>
<translation id="2721695630904737430">JÅ«su administrators ir atspÄ“jojis uzraudzÄ«tus lietotÄjus.</translation>
@@ -2269,7 +2269,7 @@ Lai turpinÄtu skatÄ«Å¡anu, nospiediet jebkuru taustiņu.</translation>
<translation id="4514542542275172126">Izveidot jaunu uzraudzÄ«tÄ lietotÄja profilu</translation>
<translation id="451515744433878153">Noņemt</translation>
<translation id="4518677423782794009">Vai pÄrlÅ«kprogrammÄ Chrome notiek avÄrijas, tiek rÄdÄ«tas neparastas sÄkumlapas, rÄ«kjoslas, neparedzÄ“tas reklÄmas, kuras nevarat noņemt, vai kÄ citÄdi tiek ietekmÄ“ta pÄrlÅ«koÅ¡ana? IespÄ“jams, varat novÄ“rst problÄ“mu, izmantojot Chrome tÄ«rÄ«Å¡anas rÄ«ku.</translation>
-<translation id="4520385623207007473">Izmantotie sīkfaili</translation>
+<translation id="4520385623207007473">Izmantojamie sīkfaili</translation>
<translation id="452039078290142656">nezinÄmas ierÄ«ces, ko piedÄvÄ <ph name="VENDOR_NAME" /></translation>
<translation id="4522570452068850558">InformÄcija</translation>
<translation id="4530494379350999373">Avots</translation>
@@ -2423,7 +2423,7 @@ Lai turpinÄtu skatÄ«Å¡anu, nospiediet jebkuru taustiņu.</translation>
<translation id="4759238208242260848">LejupielÄdes</translation>
<translation id="4761104368405085019">Izmantot jūsu mikrofonu</translation>
<translation id="4762718786438001384">IerÄ«ces diskÄ gandrÄ«z nav vietas</translation>
-<translation id="4763408175235639573">KamÄ“r aplÅ«kojÄt Å¡o lapu, tika iestatÄ«ti Å¡Ädi sÄ«kfaili:</translation>
+<translation id="4763408175235639573">KamÄ“r aplÅ«kojÄt Å¡o lapu, tika iestatÄ«ti tÄlÄk norÄdÄ«tie sÄ«kfaili.</translation>
<translation id="4763830802490665879">SÄ«kfaili no vairÄkÄm vietnÄ“m tiks dzÄ“sti, aizverot vietnes.</translation>
<translation id="4768332406694066911">Jums ir sertifikÄti no Å¡Ä«m organizÄcijÄm, kas jÅ«s identificÄ“</translation>
<translation id="4776917500594043016">Parole e-pasta adresei <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -2802,7 +2802,7 @@ Lai turpinÄtu skatÄ«Å¡anu, nospiediet jebkuru taustiņu.</translation>
<translation id="5337771866151525739">InstalÄ“ts, izmantojot treÅ¡Äs puses lietotni.</translation>
<translation id="5338503421962489998">VietÄ“jÄ krÄtuve</translation>
<translation id="5340217413897845242">6. plaukta vienums</translation>
-<translation id="5341793073192892252">TÄlÄk minÄ“tie sÄ«kfaili tika bloÄ·Ä“ti (treÅ¡o puÅ¡u sÄ«kfaili tiek bloÄ·Ä“ti bez izņēmumiem).</translation>
+<translation id="5341793073192892252">TÄlÄk norÄdÄ«tie sÄ«kfaili tika bloÄ·Ä“ti (treÅ¡o puÅ¡u sÄ«kfaili tiek bloÄ·Ä“ti bez izņēmumiem).</translation>
<translation id="5341980496415249280">LÅ«dzu, uzgaidiet, notiek pakotnes izveide...</translation>
<translation id="5342091991439452114">PIN kodÄ ir jÄbÅ«t vismaz <ph name="MINIMUM" /> cipariem.</translation>
<translation id="534916491091036097">KreisÄ iek.</translation>
@@ -3026,6 +3026,7 @@ Lai turpinÄtu skatÄ«Å¡anu, nospiediet jebkuru taustiņu.</translation>
<translation id="5678955352098267522">Lasīt jūsu datus vietnē <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Līdzekļu identifikators</translation>
<translation id="5687326903064479980">Laika josla</translation>
+<translation id="5689516760719285838">AtraÅ¡anÄs vieta</translation>
<translation id="56907980372820799">Saistīt datus</translation>
<translation id="5691511426247308406">Ä¢imene</translation>
<translation id="5691596662111998220">Diemžēl fails <ph name="FILE_NAME" /> vairs nepastÄv.</translation>
@@ -4716,7 +4717,7 @@ Citas personas ar lēnu savienojumu, iespējams, neredzēs jūsu saturu.</transl
<translation id="8378285435971754261">Atļaujiet Google atraÅ¡anÄs vietu pakalpojumam palÄ«dzÄ“t lietotnÄ“m Ätri un precÄ«zi noteikt jÅ«su atraÅ¡anÄs vietu. TÄdÄ“jÄdi varat samazinÄt akumulatora enerÄ£ijas patÄ“riņu. Google serveriem tiks sÅ«tÄ«ti anonÄ«mi atraÅ¡anÄs vietas dati, pat ja nedarbosies neviena lietotne. <ph name="BEGIN_LINK1" />Uzziniet vairÄk<ph name="END_LINK1" />.</translation>
<translation id="8381179624334829711">PÄrvaldÄ«t kameras iestatÄ«jumus...</translation>
<translation id="8382913212082956454">Kopēt un nosūtīt adresi pa e-pastu</translation>
-<translation id="8386903983509584791">Meklēšana pabeigta</translation>
+<translation id="8386903983509584791">Meklēšana ir pabeigta</translation>
<translation id="8390029840652165810">LÅ«dzu, pÄrliecinieties, vai jÅ«su tÄ«kla savienojums darbojas. Ja problÄ“ma joprojÄm pastÄv, izrakstieties un atkÄrtoti pierakstieties, lai atsvaidzinÄtu savus akreditÄcijas datus.</translation>
<translation id="8390449457866780408">Serveris nav pieejams.</translation>
<translation id="8392234662362215700">Lai pÄrslÄ“gtu tastatÅ«ras izkÄrtojumu, nospiediet taustiņus Control-Shift-Space.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_ml.xtb b/chromium/chrome/app/resources/generated_resources_ml.xtb
index 1cb3f2f405a..18357993e90 100644
--- a/chromium/chrome/app/resources/generated_resources_ml.xtb
+++ b/chromium/chrome/app/resources/generated_resources_ml.xtb
@@ -38,7 +38,7 @@
<translation id="1049926623896334335">Word à´ªàµà´°à´®à´¾à´£à´‚</translation>
<translation id="1054153489933238809">യഥാർതàµà´¥ à´šà´¿à´¤àµà´°à´‚ à´ªàµà´¤à´¿à´¯ ടാബിൽ à´¤àµà´±à´•àµà´•àµà´•</translation>
<translation id="1055806300943943258">Bluetooth, USB ഉപകരണങàµà´™àµ¾à´•àµà´•à´¾à´¯à´¿ തിരയàµà´¨àµà´¨àµ...</translation>
-<translation id="1056775291175587022">നെറàµà´±àµâ€Œà´µàµ¼à´•àµà´•àµà´•à´³àµŠà´¨àµà´¨àµà´‚ ലഭàµà´¯à´®à´²àµà´²</translation>
+<translation id="1056775291175587022">നെറàµà´±àµâ€Œà´µàµ¼à´•àµà´•àµà´•à´³àµŠà´¨àµà´¨àµà´‚ ഇലàµà´²</translation>
<translation id="1056898198331236512">à´®àµà´¨àµà´¨à´±à´¿à´¯à´¿à´ªàµà´ªàµ</translation>
<translation id="1058262162121953039">PUK</translation>
<translation id="1058418043520174283"><ph name="COUNT" /> à´¨àµâ€à´±àµ† <ph name="INDEX" /></translation>
@@ -2325,7 +2325,7 @@
<translation id="4610637590575890427"><ph name="SITE" /> -ലേകàµà´•àµ പോകണമെനàµà´¨à´¾à´£àµ‹ ഉദàµà´¦àµ‡à´¶à´¿à´šàµà´šà´¤àµ?</translation>
<translation id="4611114513649582138">ലഭàµà´¯à´®à´¾à´¯ ഡാറàµà´±à´¾ കണകàµà´·àµ»</translation>
<translation id="4613271546271159013">ഒരൠവിപàµà´²àµ€à´•à´°à´£à´‚, നിങàµà´™àµ¾ ഒരൠപàµà´¤à´¿à´¯ ടാബൠതàµà´±à´•àµà´•àµà´®àµà´ªàµ‹àµ¾ കാണികàµà´•àµ‡à´£àµà´Ÿ പേജൠമാറàµà´±à´¿.</translation>
-<translation id="4615586811063744755">à´•àµà´•àµà´•à´¿à´¯àµŠà´¨àµà´¨àµà´‚ തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²</translation>
+<translation id="4615586811063744755">à´•àµà´•àµà´•à´¿à´•à´³àµŠà´¨àµà´¨àµà´‚ തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²</translation>
<translation id="4617270414136722281">വിപàµà´²àµ€à´•à´°à´£ à´“à´ªàµâ€Œà´·à´¨àµà´•àµ¾</translation>
<translation id="4618990963915449444"><ph name="DEVICE_NAME" />-ലെ à´Žà´²àµà´²à´¾ ഫയലàµà´•à´³àµà´‚ മായàµà´•àµà´•à´ªàµà´ªàµ†à´Ÿàµà´‚.</translation>
<translation id="4619615317237390068">മറàµà´±àµ ഉപകരണങàµà´™à´³à´¿àµ½ നിനàµà´¨àµà´³àµà´³ ടാബàµà´•àµ¾</translation>
@@ -2799,7 +2799,7 @@
<translation id="5337771866151525739">ഒരൠമൂനàµà´¨à´¾à´‚ à´•à´•àµà´·à´¿ ഇൻസàµà´±àµà´±à´¾à´³àµà´šàµ†à´¯àµâ€Œà´¤à´¤àµ.</translation>
<translation id="5338503421962489998">à´ªàµà´°à´¾à´¦àµ‡à´¶à´¿à´• സംഭരണം</translation>
<translation id="5340217413897845242">ഷെൽഫൠഇനം 6</translation>
-<translation id="5341793073192892252">ഇനിപàµà´ªà´±à´¯àµà´¨àµà´¨ à´•àµà´•àµà´•à´¿à´•àµ¾ à´¬àµà´²àµ‹à´•àµà´•àµ ചെയàµà´¯à´ªàµà´ªàµ†à´Ÿàµà´Ÿàµ (മൂനàµà´¨à´¾à´‚-à´•à´•àµà´·à´¿ à´•àµà´•àµà´•à´¿à´•à´³àµ† വേരàµâ€à´¤à´¿à´°à´¿à´µàµ ഇലàµà´²à´¾à´¤àµ† à´¬àµà´²àµ‹à´•àµà´•àµ ചെയàµà´¯àµà´¨àµà´¨àµ)</translation>
+<translation id="5341793073192892252">ഇനിപàµà´ªà´±à´¯àµà´¨àµà´¨ à´•àµà´•àµà´•à´¿à´•à´³àµ† à´¬àµà´²àµ‹à´•àµà´•àµ ചെയàµâ€Œà´¤àµ (മൂനàµà´¨à´¾à´‚ à´•à´•àµà´·à´¿ à´•àµà´•àµà´•à´¿à´•à´³àµ† വേരàµâ€à´¤à´¿à´°à´¿à´µàµ ഇലàµà´²à´¾à´¤àµ† à´¬àµà´²àµ‹à´•àµà´•àµ ചെയàµà´¯àµà´¨àµà´¨àµ)</translation>
<translation id="5341980496415249280">കാതàµà´¤à´¿à´°à´¿à´•àµà´•àµà´•, പായàµâ€Œà´•àµà´•àµ ചെയàµà´¯àµà´¨àµà´¨àµ...</translation>
<translation id="5342091991439452114">പിൻ നമàµà´ªà´±à´¿àµ½ <ph name="MINIMUM" /> à´…à´•àµà´•à´™àµà´™à´³àµ†à´™àµà´•à´¿à´²àµà´‚ വേണം</translation>
<translation id="534916491091036097">ഇടതൠആവരണചിഹàµà´¨à´‚</translation>
@@ -2868,7 +2868,7 @@
<translation id="5438224778284622050">à´“à´«àµâ€Œà´²àµˆàµ» ഫയലàµà´•àµ¾ ഇലàµà´²à´¾à´¤à´¾à´•àµà´•à´£àµ‹?</translation>
<translation id="5438430601586617544">(പായàµà´•àµà´•àµ ചെയàµà´¯à´¾à´¤àµà´¤à´¤àµ)</translation>
<translation id="544083962418256601">à´•àµà´±àµà´•àµà´•àµà´µà´´à´¿à´•àµ¾ സൃഷàµâ€Œà´Ÿà´¿à´•àµà´•àµà´•...</translation>
-<translation id="5442550868130618860">à´¸àµà´µà´®àµ‡à´§à´¯à´¾ ഉളàµà´³ à´…à´ªàµâ€Œà´¡àµ‡à´±àµà´±àµ ഓൺ ചെയàµà´¯àµà´•</translation>
+<translation id="5442550868130618860">à´¸àµà´µà´®àµ‡à´§à´¯à´¾ ഉളàµà´³ à´…à´ªàµâ€Œà´¡àµ‡à´±àµà´±àµ ഓണാകàµà´•àµà´•</translation>
<translation id="5446983216438178612">ഓർഗനൈസേഷനàµà´±àµ† സർടàµà´Ÿà´¿à´«à´¿à´•àµà´•à´±àµà´±àµà´•àµ¾ കാണികàµà´•àµà´•</translation>
<translation id="5448293924669608770">à´•àµà´·à´®à´¿à´•àµà´•à´£à´‚, സൈൻ ഇൻ ചെയàµà´¯àµà´®àµà´ªàµ‹àµ¾ à´Žà´¨àµà´¤àµ‹ തെറàµà´±à´¾à´¯à´¿ സംഭവിചàµà´šàµ</translation>
<translation id="5449551289610225147">പാസàµâ€Œà´µàµ‡à´¡àµ അസാധàµà´µà´¾à´£àµ</translation>
@@ -3023,6 +3023,7 @@
<translation id="5678955352098267522"><ph name="WEBSITE_1" /> à´Žà´¨àµà´¨à´¤à´¿à´²àµ† നിങàµà´™à´³àµà´Ÿàµ† വിവരം വായികàµà´•àµà´•</translation>
<translation id="5684661240348539843">അസറàµà´±àµ à´à´¡à´¨àµà´±à´¿à´«à´¯àµ¼</translation>
<translation id="5687326903064479980">സമയമേഖല</translation>
+<translation id="5689516760719285838">ലൊകàµà´•àµ‡à´·àµ»</translation>
<translation id="56907980372820799">ഡാറàµà´± ലിങàµà´•àµà´šàµ†à´¯àµà´¯àµà´•</translation>
<translation id="5691511426247308406">à´•àµà´Ÿàµà´‚ബം</translation>
<translation id="5691596662111998220">à´•àµà´·à´®à´¿à´•àµà´•à´£à´‚, <ph name="FILE_NAME" /> നിലവിലിലàµà´².</translation>
@@ -4925,7 +4926,7 @@ Google Chrome മൊബൈൽ ഡാറàµà´± ഉപയോഗികàµà´•àµà´‚.
<translation id="8725066075913043281">വീണàµà´Ÿàµà´‚ à´¶àµà´°à´®à´¿à´•àµà´•àµà´•</translation>
<translation id="8725178340343806893">à´ªàµà´°à´¿à´¯à´™àµà´•à´°à´™àµà´™à´³àµâ€/à´¬àµà´•àµà´®à´¾à´°àµâ€à´•àµà´•àµà´•à´³àµâ€</translation>
<translation id="8726206820263995930">സെർവറിൽ നിനàµà´¨àµà´‚ നയ à´•àµà´°à´®àµ€à´•à´°à´£à´™àµà´™àµ¾ ലഭàµà´¯à´®à´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿àµ½ പിശകàµ: <ph name="CLIENT_ERROR" />.</translation>
-<translation id="8726718463424335668">ഇമàµà´ªàµ‹àµ¼à´Ÿàµà´Ÿàµ ഒഴിവാകàµà´•àµà´•</translation>
+<translation id="8726718463424335668">ഇമàµà´ªàµ‹àµ¼à´Ÿàµà´Ÿàµ ചെയàµà´¯àµà´¨àµà´¨à´¤àµ ഒഴിവാകàµà´•àµà´•</translation>
<translation id="8727142376512517020">ഇതൠവീണàµà´Ÿàµà´‚ കാണികàµà´•à´°àµà´¤àµ</translation>
<translation id="8730621377337864115">പൂർതàµà´¤à´¿à´¯à´¾à´•àµà´•à´¿</translation>
<translation id="8732030010853991079">à´ˆ à´à´•àµà´•à´£à´¿àµ½ à´•àµà´²à´¿à´•àµà´•àµà´šàµ†à´¯àµâ€Œà´¤àµ à´ˆ വിപàµà´²àµ€à´•à´°à´£à´‚ സജീവമാകàµà´•àµà´•.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_mr.xtb b/chromium/chrome/app/resources/generated_resources_mr.xtb
index 71a3fed41cc..29c4ecaa6ce 100644
--- a/chromium/chrome/app/resources/generated_resources_mr.xtb
+++ b/chromium/chrome/app/resources/generated_resources_mr.xtb
@@ -14,7 +14,7 @@
<translation id="1016566241875885511">अतिरिकà¥à¤¤ माहिती (परà¥à¤¯à¤¾à¤¯à¥€)</translation>
<translation id="1017280919048282932">शबà¥à¤¦à¤•à¥‹à¤¶à¤¾à¤¤ &amp;जोडा</translation>
<translation id="1018656279737460067">रदà¥à¤¦ à¤à¤¾à¤²à¥‡</translation>
-<translation id="102272308210570439">तà¥à¤®à¤šà¥à¤¯à¤¾ सà¥à¤•à¥à¤°à¥€à¤¨à¤µà¤° असलेले साहायà¥à¤¯à¤•à¤¾à¤²à¤¾ वापरू दà¥à¤¯à¤¾</translation>
+<translation id="102272308210570439">तà¥à¤®à¤šà¥à¤¯à¤¾ सà¥â€à¤•à¥à¤°à¥€à¤¨à¤µà¤° जे काही आहे ते Assistant ला वापरू दà¥à¤¯à¤¾</translation>
<translation id="1026822031284433028">पà¥à¤°à¤¤à¤¿à¤®à¤¾ लोड करा</translation>
<translation id="1029317248976101138">à¤à¥‚म करा</translation>
<translation id="1031362278801463162">पूरà¥à¤µà¤¾à¤µà¤²à¥‹à¤•à¤¨ लोड करत आहे</translation>
@@ -81,7 +81,7 @@
<translation id="1115018219887494029">Chromebook साठी Smart Lock (बीटा)</translation>
<translation id="1116694919640316211">बदà¥à¤¦à¤²</translation>
<translation id="1119069657431255176">Bzip2 संकीरà¥à¤£ tar संगà¥à¤°à¤¹à¤£</translation>
-<translation id="1119447706177454957">अंतरà¥à¤—त तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="1119447706177454957">अंतरà¥à¤—त à¤à¤°à¤°</translation>
<translation id="1120026268649657149">कीवरà¥à¤¡ रिकà¥à¤¤ किंवा अदà¥à¤µà¤¿à¤¤à¥€à¤¯ असणे आवशà¥à¤¯à¤• आहे</translation>
<translation id="1122198203221319518">&amp;साधने</translation>
<translation id="1122242684574577509">पà¥à¤°à¤®à¤¾à¤£à¥€à¤•à¤°à¤£ अयशसà¥à¤µà¥€. आपण वापरत असलेलà¥à¤¯à¤¾ (<ph name="NETWORK_ID" />) Wi-Fi नेटवरà¥à¤•à¤¸à¤¾à¤ à¥€ लॉग इन पृषà¥à¤ à¤¾à¤¸ भेट देणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ कà¥à¤²à¤¿à¤• करा.</translation>
@@ -109,7 +109,7 @@
<translation id="1163931534039071049">फà¥à¤°à¥‡à¤® सà¥à¤¤à¥à¤°à¥‹à¤¤ &amp;पहा</translation>
<translation id="1164674268730883318"><ph name="DEVICE_TYPE" /> साठी Smart Lock बंंद करायचे?</translation>
<translation id="1164899421101904659">पिन अनलॉक की à¤à¤‚टर करा</translation>
-<translation id="1165039591588034296">तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="1165039591588034296">à¤à¤°à¤°</translation>
<translation id="1166212789817575481">उजवीकडील टॅब बंद करा</translation>
<translation id="1168020859489941584"><ph name="TIME_REMAINING" /> मधà¥à¤¯à¥‡ उघडत आहे...</translation>
<translation id="1171135284592304528">ऑबà¥à¤œà¥‡à¤•à¥à¤Ÿ बदलते तेवà¥à¤¹à¤¾ ते कीबोरà¥à¤¡ फोकससह हायलाइट करा</translation>
@@ -129,10 +129,10 @@
<translation id="1190144681599273207">ही फाइल पà¥à¤°à¤¾à¤ªà¥à¤¤ करताना अंदाजे <ph name="FILE_SIZE" /> मोबाइल डेटा वापरला जाईल.</translation>
<translation id="11901918071949011">{NUM_FILES,plural, =1{आपलà¥à¤¯à¤¾ संगणकावर संचयित केलेलà¥à¤¯à¤¾ फाईलवर पà¥à¤°à¤µà¥‡à¤¶ करा}one{आपलà¥à¤¯à¤¾ संगणकावर संचयित केलेलà¥à¤¯à¤¾ # फाईलवर पà¥à¤°à¤µà¥‡à¤¶ करा}other{आपलà¥à¤¯à¤¾ संगणकावर संचयित केलेलà¥à¤¯à¤¾ # फायलींवर पà¥à¤°à¤µà¥‡à¤¶ करा}}</translation>
<translation id="1195076408729068893">Smart Lock चालू करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ तà¥à¤®à¤šà¤¾ पासवरà¥à¤¡ टाका. पà¥à¤¢à¤šà¥à¤¯à¤¾ वेळी तà¥à¤®à¤šà¥‡ <ph name="DEVICE_TYPE" /> अनलॉक करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ तà¥à¤®à¥à¤¹à¥€ तà¥à¤®à¤šà¤¾ फोन वापरू शकता.</translation>
-<translation id="1195447618553298278">अजà¥à¤žà¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¥€.</translation>
+<translation id="1195447618553298278">अजà¥à¤žà¤¾à¤¤ à¤à¤°à¤°.</translation>
<translation id="1196338895211115272">खासगी की निरà¥à¤¯à¤¾à¤¤ करणà¥à¤¯à¤¾à¤¤ अयशसà¥à¤µà¥€.</translation>
<translation id="119738088725604856">सà¥à¤•à¥à¤°à¥€à¤¨à¤¶à¥‰à¤Ÿ विंडो</translation>
-<translation id="1197979282329025000"><ph name="PRINTER_NAME" /> पà¥à¤°à¤¿à¤‚टरसाठी पà¥à¤°à¤¿à¤‚टर कà¥à¤·à¤®à¤¤à¤¾ पà¥à¤¨à¤°à¥à¤ªà¥à¤°à¤¾à¤ªà¥à¤¤ करताना तà¥à¤°à¥à¤Ÿà¥€ आली. हा पà¥à¤°à¤¿à¤‚टर <ph name="CLOUD_PRINT_NAME" /> सह नोंदणीकृत असू शकत नाही.</translation>
+<translation id="1197979282329025000"><ph name="PRINTER_NAME" /> पà¥à¤°à¤¿à¤‚टरसाठी पà¥à¤°à¤¿à¤‚टर कà¥à¤·à¤®à¤¤à¤¾ पà¥à¤¨à¤°à¥à¤ªà¥à¤°à¤¾à¤ªà¥à¤¤ करताना à¤à¤°à¤° आली. हा पà¥à¤°à¤¿à¤‚टर <ph name="CLOUD_PRINT_NAME" /> सह नोंदणीकृत असू शकत नाही.</translation>
<translation id="1198271701881992799">आता पà¥à¤°à¤¾à¤°à¤‚भ करा</translation>
<translation id="1199232041627643649">बाहेर येणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ <ph name="KEY_EQUIVALENT" /> दाबून ठेवा.</translation>
<translation id="119944043368869598">सरà¥à¤µ साफ करा</translation>
@@ -171,9 +171,9 @@
<translation id="1242633766021457174"><ph name="THIRD_PARTY_TOOL_NAME" /> आपलà¥à¤¯à¤¾ सेटिंगà¥à¤œ रीसेट करू इचà¥à¤›à¤¿à¤¤à¥‡.</translation>
<translation id="1243314992276662751">अपलोड करा</translation>
<translation id="1244147615850840081">कॅरियर</translation>
-<translation id="1244303850296295656">विसà¥à¤¤à¤¾à¤° तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="1244303850296295656">विसà¥à¤¤à¤¾à¤° à¤à¤°à¤°</translation>
<translation id="1249250836236328755">शैली</translation>
-<translation id="1252987234827889034">पà¥à¤°à¥‹à¤«à¤¾à¤ˆà¤² तà¥à¤°à¥à¤Ÿà¥€ आली</translation>
+<translation id="1252987234827889034">पà¥à¤°à¥‹à¤«à¤¾à¤ˆà¤² à¤à¤°à¤° आली</translation>
<translation id="1254593899333212300">थेट इंटरनेट कनेकà¥à¤¶à¤¨</translation>
<translation id="1259724620062607540">शेलà¥à¤« आयटम 7</translation>
<translation id="1259832254221278963">साहायà¥à¤¯à¤• सà¥à¤°à¥‚ करा</translation>
@@ -259,7 +259,7 @@
<translation id="1393283411312835250">सूरà¥à¤¯ आणि ढग</translation>
<translation id="1395262318152388157">सà¥à¤²à¤¾à¤¯à¤¾à¤¡à¤° शोधा</translation>
<translation id="1395730723686586365">अदà¥à¤¯à¤¤à¤¨à¤•à¤°à¥à¤¤à¤¾ पà¥à¤°à¤¾à¤°à¤‚भ</translation>
-<translation id="1396139853388185343">पà¥à¤°à¤¿à¤‚टर सेट अप करणà¥à¤¯à¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¥€ आली</translation>
+<translation id="1396139853388185343">पà¥à¤°à¤¿à¤‚टर सेट अप करणà¥à¤¯à¤¾à¤¤ à¤à¤°à¤° आली</translation>
<translation id="1396963298126346194">आपण पà¥à¤°à¤µà¤¿à¤·à¥â€à¤Ÿ केलेले वापरकरà¥à¤¤à¤¾à¤¨à¤¾à¤µ आणि पासवरà¥à¤¡ जà¥à¤³à¤¤ नाही</translation>
<translation id="1398853756734560583">वाढवा</translation>
<translation id="140250605646987970">आपला फोन सापडला. परंतॠSmart Lock केवळ Android 5.0 आणि वरील डिवà¥à¤¹à¤¾à¤‡à¤¸à¥‡à¤¸à¤µà¤° कारà¥à¤¯ करते. &lt;a&gt;अधिक जाणून घà¥à¤¯à¤¾&lt;/a&gt;</translation>
@@ -299,7 +299,7 @@
<translation id="146219525117638703">ONC सà¥à¤¥à¤¿à¤¤à¥€</translation>
<translation id="146220085323579959">इंटरनेट डिसà¥à¤•à¤¨à¥‡à¤•à¥à¤Ÿ à¤à¤¾à¤²à¥‡. कृपया आपले इंटरनेट कनेकà¥â€à¤¶à¤¨ तपासा आणि पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा.</translation>
<translation id="1464258312790801189">आपली खाती</translation>
-<translation id="1464724975715666883">1 तà¥à¤°à¥à¤Ÿà¥€.</translation>
+<translation id="1464724975715666883">1 à¤à¤°à¤°.</translation>
<translation id="1465176863081977902">ऑडिओ पतà¥à¤¤à¤¾ कॉपी करा</translation>
<translation id="1465827627707997754">पिà¤à¥à¤à¤¾ सà¥à¤²à¤¾à¤‡à¤¸</translation>
<translation id="1467432559032391204">डावे</translation>
@@ -325,14 +325,14 @@
<translation id="1497522201463361063">"<ph name="FILE_NAME" />" पà¥à¤¨à¤°à¥à¤¨à¤¾à¤®à¤¿à¤¤ करणà¥â€à¤¯à¤¾à¤¤ अकà¥à¤·à¤®. <ph name="ERROR_MESSAGE" /></translation>
<translation id="1500297251995790841">अजà¥à¤žà¤¾à¤¤ डिवà¥à¤¹à¤¾à¤‡à¤¸ [<ph name="VENDOR_ID" />:<ph name="PRODUCT_ID" />]</translation>
<translation id="1503394326855300303">हे मालक खाते à¤à¤•à¤¾à¤§à¤¿à¤• साइन-इन सतà¥à¤°à¤¾à¤®à¤§à¥€à¤² पà¥à¤°à¤¥à¤® साइन-इन केलेले खाते असणे आवशà¥à¤¯à¤• आहे.</translation>
-<translation id="1503914375822320413">कॉपी ऑपरेशन अयशसà¥à¤µà¥€, अनपेकà¥à¤·à¤¿à¤¤ तà¥à¤°à¥à¤Ÿà¥€: $1</translation>
+<translation id="1503914375822320413">कॉपी ऑपरेशन अयशसà¥à¤µà¥€, अनपेकà¥à¤·à¤¿à¤¤ à¤à¤°à¤°: $1</translation>
<translation id="150411034776756821"><ph name="SITE" /> काढा</translation>
<translation id="1504682556807808151">आपण या साइटसाठी <ph name="PASSWORD_MANAGER_BRAND" /> ने आपला पासवरà¥à¤¡ जतन करू इचà¥à¤›à¤¿à¤¤à¤¾?</translation>
<translation id="1506061864768559482">शोध इंजिन</translation>
<translation id="1507048939308275033">तà¥à¤®à¤šà¥à¤¯à¤¾ Chromebook वर à¤à¤¸à¤à¤®à¤à¤¸ वाचा आणि तà¥à¤¯à¤¾à¤‚ना उतà¥à¤¤à¤°à¥‡ दà¥à¤¯à¤¾</translation>
<translation id="1507170440449692343">हे पृषà¥à¤  आपलà¥à¤¯à¤¾ कॅमेरà¥â€à¤¯à¤¾à¤µà¤° पà¥à¤°à¤µà¥‡à¤¶ करणà¥à¤¯à¤¾à¤ªà¤¾à¤¸à¥‚न अवरोधित केले गेले आहे.</translation>
<translation id="1507246803636407672">&amp;टाकून दà¥à¤¯à¤¾</translation>
-<translation id="1507705801791187716">अदà¥à¤­à¥‚त, कोणतà¥à¤¯à¤¾à¤¹à¥€ तà¥à¤°à¥à¤Ÿà¥€ नाहीत!</translation>
+<translation id="1507705801791187716">अदà¥à¤­à¥‚त, कोणतà¥à¤¯à¤¾à¤¹à¥€ à¤à¤°à¤° नाहीत!</translation>
<translation id="1508491105858779599">डिवà¥à¤¹à¤¾à¤‡à¤¸ अनलॉक करणà¥â€à¤¯à¤¾à¤¸à¤¾à¤ à¥€ आपले बोट फिंगरपà¥à¤°à¤¿à¤‚ट सेनà¥à¤¸à¤°à¤µà¤° ठेवा.</translation>
<translation id="1509281256533087115">USB दà¥à¤µà¤¾à¤°à¥‡ कोणतà¥à¤¯à¤¾à¤¹à¥€ <ph name="DEVICE_NAME_AND_VENDOR" /> मधà¥à¤¯à¥‡ पà¥à¤°à¤µà¥‡à¤¶ करा</translation>
<translation id="150962533380566081">अवैध PUK.</translation>
@@ -472,7 +472,7 @@
<translation id="1708338024780164500">(निषà¥à¤•à¥à¤°à¤¿à¤¯)</translation>
<translation id="1708713382908678956"><ph name="NAME_PH" /> (आयडी: <ph name="ID_PH" />)</translation>
<translation id="1709106626015023981"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (मूळ)</translation>
-<translation id="1711973684025117106">à¤à¤¿à¤ª करणे अयशसà¥à¤µà¥€, अनपेकà¥à¤·à¤¿à¤¤ तà¥à¤°à¥à¤Ÿà¥€: $1</translation>
+<translation id="1711973684025117106">à¤à¤¿à¤ª करणे अयशसà¥à¤µà¥€, अनपेकà¥à¤·à¤¿à¤¤ à¤à¤°à¤°: $1</translation>
<translation id="1712349894969001173">आपलà¥à¤¯à¤¾ iPhone वर हा पासवरà¥à¤¡ मिळवा</translation>
<translation id="1718835860248848330">शेवटचà¥à¤¯à¤¾ तासामधील</translation>
<translation id="1719312230114180055">टीप: मजबूत पासवरà¥à¤¡ किंवा पिनपेकà¥à¤·à¤¾ आपले फिंगरपà¥à¤°à¤¿à¤‚ट कमी सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ असू शकतात.</translation>
@@ -567,7 +567,7 @@
<translation id="1848219224579402567">लिड बंद असताना साइन आउट करा</translation>
<translation id="1849186935225320012">या पृषà¥à¤ à¤¾à¤¸ MIDI डिवà¥à¤¹à¤¾à¤‡à¤¸à¤šà¥‡ पूरà¥à¤£ नियंतà¥à¤°à¤£ आहे.</translation>
<translation id="1850508293116537636">&amp;घडà¥à¤¯à¤¾à¤³à¤¾à¤šà¥à¤¯à¤¾ दिशेने फिरवा</translation>
-<translation id="1852799913675865625">फाइल वाचणà¥à¤¯à¤¾à¤šà¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करताना à¤à¤• तà¥à¤°à¥à¤Ÿà¥€ आली: <ph name="ERROR_TEXT" />.</translation>
+<translation id="1852799913675865625">फाइल वाचणà¥à¤¯à¤¾à¤šà¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करताना à¤à¤• à¤à¤°à¤° आली: <ph name="ERROR_TEXT" />.</translation>
<translation id="1856715684130786728">सà¥à¤¥à¤¾à¤¨ जोडा...</translation>
<translation id="1856813161013948396">फकà¥à¤¤ फिंगरपà¥à¤°à¤¿à¤‚ट सेनà¥à¤¸à¤°à¤µà¤° टॅप करून लॉक सà¥à¤•à¥à¤°à¥€à¤¨ वगळा. कॉनà¥à¤«à¤¿à¤—र करणà¥â€à¤¯à¤¾à¤¸à¤¾à¤ à¥€ कà¥à¤²à¤¿à¤• करा.</translation>
<translation id="1858585891038687145">सॉफà¥à¤Ÿà¤µà¥‡à¤…र निरà¥à¤®à¤¾à¤¤à¥à¤¯à¤¾à¤‚ना ओळखणà¥à¤¯à¤¾à¤•à¤°à¤¿à¤¤à¤¾ या पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°à¤¾à¤µà¤° विशà¥à¤µà¤¾à¤¸ ठेवा</translation>
@@ -720,9 +720,9 @@
<translation id="2126426811489709554">Chrome दà¥à¤µà¤¾à¤°à¥‡ समरà¥à¤¥à¤¿à¤¤</translation>
<translation id="2127372758936585790">निमà¥à¤¨-उरà¥à¤œà¥‡à¤šà¥‡ चारà¥à¤œà¤°</translation>
<translation id="212862741129535676">फà¥à¤°à¤¿à¤•à¥à¤µà¥‡à¤¨à¥à¤¸à¥€ सà¥à¤¥à¤¿à¤¤à¥€ कबà¥à¤œà¤¾ टकà¥à¤•à¥‡à¤µà¤¾à¤°à¥€</translation>
-<translation id="2128691215891724419">समकà¥à¤°à¤®à¤£ तà¥à¤°à¥à¤Ÿà¥€: समकà¥à¤°à¤®à¤£ वाकà¥à¤¯à¤¾à¤‚श अपडेट करा... </translation>
+<translation id="2128691215891724419">समकà¥à¤°à¤®à¤£ à¤à¤°à¤°: समकà¥à¤°à¤®à¤£ वाकà¥à¤¯à¤¾à¤‚श अपडेट करा... </translation>
<translation id="2129825002735785149">पà¥à¤²à¤—िन अपडेट करा</translation>
-<translation id="2129904043921227933">समकà¥à¤°à¤®à¤£ तà¥à¤°à¥à¤Ÿà¥€: समकà¥à¤°à¤®à¤£ वाकà¥à¤¯à¤¾à¤‚श अपडेट करा...</translation>
+<translation id="2129904043921227933">समकà¥à¤°à¤®à¤£ à¤à¤°à¤°: समकà¥à¤°à¤®à¤£ वाकà¥à¤¯à¤¾à¤‚श अपडेट करा...</translation>
<translation id="2131077480075264">"<ph name="IMPORT_NAME" />" दà¥à¤µà¤¾à¤°à¥‡ "<ph name="APP_NAME" />" ला अनà¥à¤®à¤¤à¥€ नसलà¥â€à¤¯à¤¾à¤¨à¥‡ तो सà¥â€à¤¥à¤¾à¤ªà¤¿à¤¤ करणà¥â€à¤¯à¤¾à¤¤ अकà¥à¤·à¤®</translation>
<translation id="213491463158799620">आपण हे पृषà¥à¤  भाषांतरित करू इचà¥à¤›à¤¿à¤¤à¤¾?</translation>
<translation id="2135787500304447609">&amp;पà¥à¤¨à¥à¤¹à¤¾ करा</translation>
@@ -760,7 +760,7 @@
<translation id="2177950615300672361">गà¥à¤ªà¥à¤¤ टॅब: <ph name="TAB_NAME" /></translation>
<translation id="2178614541317717477">CA तडजोड</translation>
<translation id="218070003709087997">किती पà¥à¤°à¤¤à¥€ मà¥à¤¦à¥à¤°à¤¿à¤¤ करायचà¥à¤¯à¤¾ ते सूचित करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ संखà¥à¤¯à¤¾ वापरा (1 ते 999).</translation>
-<translation id="2187895286714876935">सरà¥à¤µà¥à¤¹à¤° पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° आयात तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="2187895286714876935">सरà¥à¤µà¥à¤¹à¤° पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° आयात à¤à¤°à¤°</translation>
<translation id="2188881192257509750"><ph name="APPLICATION" /> उघडा</translation>
<translation id="2190069059097339078">WiFi कà¥à¤°à¥‡à¤¡à¥‡à¤¨à¥à¤¶à¤¿à¤¯à¤² मिळविणारा</translation>
<translation id="219008588003277019">नेटिवà¥à¤¹ कà¥à¤²à¤¾à¤¯à¤‚ट मॉडà¥à¤¯à¥‚ल: <ph name="NEXE_NAME" /></translation>
@@ -796,7 +796,7 @@
<translation id="222949136907494149"><ph name="URL" /> आपलà¥à¤¯à¤¾ संगणकाचे सà¥à¤¥à¤¾à¤¨ वापरू इचà¥à¤›à¤¿à¤¤à¥‡.</translation>
<translation id="2230051135190148440">CHAP</translation>
<translation id="2230062665678605299">फोलà¥à¤¡à¤° "<ph name="FOLDER_NAME" />" तयार करणà¥â€à¤¯à¤¾à¤¤ अकà¥à¤·à¤®. <ph name="ERROR_MESSAGE" /></translation>
-<translation id="223106756035922488">आजचे डूडल पाहणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ कà¥à¤²à¤¿à¤• करा</translation>
+<translation id="223106756035922488">आजचे डà¥à¤¡à¤² पाहणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ कà¥à¤²à¤¿à¤• करा</translation>
<translation id="2231238007119540260">आपण à¤à¤• सरà¥à¤µà¥à¤¹à¤° पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° हटविलà¥à¤¯à¤¾à¤¸, आपण तà¥à¤¯à¤¾ सरà¥à¤µà¥à¤¹à¤°à¤¸à¤¾à¤ à¥€ नेहमीचे सà¥à¤°à¤•à¥à¤·à¤¾ चेक पà¥à¤¨à¤°à¥à¤¸à¤‚चयित करता आणि तà¥à¤¯à¤¾à¤¸ à¤à¤• वैध पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° वापरणे आवशà¥à¤¯à¤• आहे.</translation>
<translation id="2231990265377706070">उदà¥à¤—ार चिनà¥à¤¹</translation>
<translation id="2232876851878324699">फाइलमधà¥à¤¯à¥‡ à¤à¤• पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° आहे, जे आयात à¤à¤¾à¤²à¥‡ नाही:</translation>
@@ -938,7 +938,7 @@
<translation id="2468902267404883140">तà¥à¤®à¤šà¥à¤¯à¤¾ फोनशी कनेकà¥à¤Ÿ होऊ शकत नाही. तà¥à¤®à¥à¤¹à¥€ चालू असलेला आणि सोयीसà¥à¤•à¤° असलेला सà¥à¤¸à¤‚गत Android फोन वापरत असलà¥à¤¯à¤¾à¤šà¥€ खातà¥à¤°à¥€ करा. &lt;a&gt;आणखी जाणून घà¥à¤¯à¤¾&lt;/a&gt;</translation>
<translation id="2470702053775288986">असमरà¥à¤¥à¤¿à¤¤ विसà¥à¤¤à¤¾à¤° अकà¥à¤·à¤®</translation>
<translation id="2473195200299095979">या पृषà¥à¤ à¤¾à¤šà¥‡ भाषांतर करा</translation>
-<translation id="2475982808118771221">à¤à¤• तà¥à¤°à¥à¤Ÿà¥€ आली आहे</translation>
+<translation id="2475982808118771221">à¤à¤• à¤à¤°à¤° आली आहे</translation>
<translation id="2476578072172137802">साइट सेटिंगà¥à¤œ</translation>
<translation id="2478176599153288112">"<ph name="EXTENSION" />" साठी मीडिया-फाईल परवानगà¥à¤¯à¤¾</translation>
<translation id="247949520305900375">ऑडिओ सामायिक करा</translation>
@@ -1078,13 +1078,13 @@
<translation id="2663302507110284145">भाषा</translation>
<translation id="2665394472441560184">à¤à¤• नवीन शबà¥à¤¦ जोडा</translation>
<translation id="2665717534925640469">हे पृषà¥â€à¤  आता फà¥à¤² सà¥à¤•à¥à¤°à¥€à¤¨ असून तà¥à¤¯à¤¾à¤¨à¥‡ आपला माऊस करà¥à¤¸à¤° अकà¥à¤·à¤® केला आहे.</translation>
-<translation id="2665919335226618153">ओहो! सà¥à¤µà¤°à¥‚पन करताना तà¥à¤°à¥à¤Ÿà¥€ आली.</translation>
+<translation id="2665919335226618153">ओहो! सà¥à¤µà¤°à¥‚पन करताना à¤à¤°à¤° आली.</translation>
<translation id="2667463864537187133">शबà¥à¤¦à¤²à¥‡à¤–न तपासणी वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ करा</translation>
<translation id="2670102641511624474"><ph name="APP_NAME" /> Chrome टॅब सामायिक करीत आहे.</translation>
<translation id="2670531586141364277">'<ph name="NAME" />' चà¥à¤¯à¤¾ सकà¥à¤°à¤¿à¤¯à¤£à¤¾à¤¸ नेटवरà¥à¤• कनेकà¥à¤¶à¤¨ आवशà¥à¤¯à¤• आहे.</translation>
<translation id="2671451824761031126">आपले बà¥à¤•à¤®à¤¾à¤°à¥à¤• आणि सेटिंगà¥à¤œ तयार आहेत</translation>
<translation id="2672142220933875349">खराब crx फाईल, पॅकिंग रदà¥à¤¦ करणे अयशसà¥à¤µà¥€.</translation>
-<translation id="2672394958563893062">तà¥à¤°à¥à¤Ÿà¥€ आली. सà¥à¤°à¤µà¤¾à¤¤à¥€à¤ªà¤¾à¤¸à¥‚न रीसà¥à¤Ÿà¤¾à¤°à¥à¤Ÿ करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ कà¥à¤²à¤¿à¤• करा.</translation>
+<translation id="2672394958563893062">à¤à¤°à¤° आली. सà¥à¤°à¤µà¤¾à¤¤à¥€à¤ªà¤¾à¤¸à¥‚न रीसà¥à¤Ÿà¤¾à¤°à¥à¤Ÿ करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ कà¥à¤²à¤¿à¤• करा.</translation>
<translation id="2673135533890720193">आपला बà¥à¤°à¤¾à¤‰à¤à¤¿à¤‚ग इतिहास वाचा</translation>
<translation id="2673589024369449924">या वापरकरà¥à¤¤à¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ डेसà¥à¤•à¤Ÿà¥‰à¤ª शॉरà¥à¤Ÿà¤•à¤Ÿ तयार करा</translation>
<translation id="2676946222714718093">यावर पà¥à¤²à¥‡ होत आहे</translation>
@@ -1096,7 +1096,7 @@
<translation id="2683638487103917598">कà¥à¤°à¤®à¤µà¤¾à¤°à¥€ लावलेला फोलà¥à¤¡à¤°</translation>
<translation id="2686444421126615064">खाते पहा</translation>
<translation id="2686759344028411998">लोड केलेली कोणतीही मॉडà¥à¤¯à¥‚ल शोधणà¥à¤¯à¤¾à¤¤ अकà¥à¤·à¤®. </translation>
-<translation id="2688196195245426394">सरà¥à¤µà¥à¤¹à¤°à¤µà¤° डिवà¥à¤¹à¤¾à¤‡à¤¸à¤šà¥€ नोंदणी करताना तà¥à¤°à¥à¤Ÿà¥€: <ph name="CLIENT_ERROR" />.</translation>
+<translation id="2688196195245426394">सरà¥à¤µà¥à¤¹à¤°à¤µà¤° डिवà¥à¤¹à¤¾à¤‡à¤¸à¤šà¥€ नोंदणी करताना à¤à¤°à¤°: <ph name="CLIENT_ERROR" />.</translation>
<translation id="2690024944919328218">भाषा परà¥à¤¯à¤¾à¤¯ दरà¥à¤¶à¤µà¤¾</translation>
<translation id="2691385045260836588">मॉडेल</translation>
<translation id="2693176596243495071">अरेरे! à¤à¤• अजà¥à¤žà¤¾à¤¤ à¤à¤°à¤° आली. कृपया नंतर पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा किंवा समसà¥à¤¯à¤¾ कायम राहिलà¥à¤¯à¤¾à¤¸ तà¥à¤®à¤šà¥à¤¯à¤¾ अâ€à¥…डमिनिसà¥à¤Ÿà¥à¤°à¥‡à¤Ÿà¤°à¤¶à¥€ संपरà¥à¤• साधा.</translation>
@@ -1115,7 +1115,7 @@
<translation id="2715751256863167692">हे अपडेट तà¥à¤®à¤šà¥‡ Chromebook रीसेट करते आणि तà¥à¤®à¤šà¤¾ सदà¥à¤¯ वापरकरà¥à¤¤à¤¾ डेटा काढून टाकते.</translation>
<translation id="2718395828230677721">रातà¥à¤°à¥€à¤šà¤¾ पà¥à¤°à¤•à¤¾à¤¶</translation>
<translation id="2718998670920917754">अà¤à¤Ÿà¥€-वà¥à¤¹à¤¾à¤¯à¤°à¤¸ सॉफà¥à¤Ÿà¤µà¥‡à¤…रला à¤à¤• वà¥à¤¹à¤¾à¤¯à¤°à¤¸ आढळला.</translation>
-<translation id="2719936478972253983">पà¥à¤¢à¥€à¤² कà¥à¤•à¥€à¤œ बà¥à¤²à¥‰à¤• केलà¥à¤¯à¤¾ गेलà¥à¤¯à¤¾</translation>
+<translation id="2719936478972253983">पà¥à¤¢à¥€à¤² कà¥à¤•à¥€ बà¥à¤²à¥‰à¤• केलà¥à¤¯à¤¾ होतà¥â€à¤¯à¤¾</translation>
<translation id="2721037002783622288">पà¥à¤°à¤¤à¤¿à¤®à¤¾ <ph name="SEARCH_ENGINE" /> वर शोधा</translation>
<translation id="2721334646575696520">Microsoft Edge</translation>
<translation id="2721695630904737430">आपलà¥à¤¯à¤¾ पà¥à¤°à¤¶à¤¾à¤¸à¤•à¤¾à¤¨à¥‡ परà¥à¤¯à¤µà¥‡à¤•à¥à¤·à¤¿à¤¤ वापरकरà¥à¤¤à¥‡ अकà¥à¤·à¤® केले आहेत.</translation>
@@ -1162,7 +1162,7 @@
<translation id="2787047795752739979">मूळवर खाडाखोड करा</translation>
<translation id="2788135150614412178">+</translation>
<translation id="2789486458103222910">ठीक आहे</translation>
-<translation id="2791952154587244007">à¤à¤• तà¥à¤°à¥à¤Ÿà¥€ आली. कियोसà¥à¤• अॅपà¥à¤²à¤¿à¤•à¥‡à¤¶à¤¨ या डिवà¥à¤¹à¤¾à¤‡à¤¸à¤µà¤° सà¥à¤µà¤¯à¤‚-लाà¤à¤š होणà¥à¤¯à¤¾à¤¤ सकà¥à¤·à¤® होणार नाही.</translation>
+<translation id="2791952154587244007">à¤à¤• à¤à¤°à¤° आली. कियोसà¥à¤• अॅपà¥à¤²à¤¿à¤•à¥‡à¤¶à¤¨ या डिवà¥à¤¹à¤¾à¤‡à¤¸à¤µà¤° सà¥à¤µà¤¯à¤‚-लाà¤à¤š होणà¥à¤¯à¤¾à¤¤ सकà¥à¤·à¤® होणार नाही.</translation>
<translation id="2792290659606763004">Android अॅपà¥à¤¸ काढायचे?</translation>
<translation id="2796424461616874739">"<ph name="DEVICE_NAME" />" शी कनेकà¥à¤Ÿ करताना पà¥à¤°à¤®à¤¾à¤£à¥€à¤•à¤°à¤£ कालबाहà¥à¤¯.</translation>
<translation id="2796740370559399562">कà¥à¤•à¥€à¤œà¤¨à¤¾ अनà¥à¤®à¤¤à¥€ देणे सà¥à¤°à¥ ठेवा</translation>
@@ -1199,7 +1199,7 @@
<translation id="2815500128677761940">बà¥à¤•à¤®à¤¾à¤°à¥à¤• बार</translation>
<translation id="2815693974042551705">बà¥à¤•à¤®à¤¾à¤°à¥à¤• फोलà¥à¤¡à¤°</translation>
<translation id="2818476747334107629">पà¥à¤°à¤¿à¤‚टर तपशील</translation>
-<translation id="2820957248982571256">सà¥à¤•à¥…न करत आहे...</translation>
+<translation id="2820957248982571256">सà¥à¤•à¥…न होत आहे...</translation>
<translation id="2822634587701817431">संकà¥à¤šà¤¿à¤¤ करा / विसà¥à¤¤à¥ƒà¤¤ करा</translation>
<translation id="2825758591930162672">विषयाची सारà¥à¤µà¤œà¤¨à¤¿à¤• की</translation>
<translation id="2828650939514476812">Wi-Fi नेटवरà¥à¤•à¤µà¤° कनेकà¥à¤Ÿ करा</translation>
@@ -1232,7 +1232,7 @@
<translation id="2871813825302180988">हे खाते या डिवà¥â€à¤¹à¤¾à¤‡à¤¸à¤µà¤° आधीपासूनच वापरले जात आहे.</translation>
<translation id="2872353916818027657">पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤• मॉनिटर सà¥à¤µà¥…प करा</translation>
<translation id="287286579981869940"><ph name="PROVIDER_NAME" /> जोडा...</translation>
-<translation id="2875698561019555027">(Chrome तà¥à¤°à¥à¤Ÿà¥€ पृषà¥à¤ à¥‡)</translation>
+<translation id="2875698561019555027">(Chrome à¤à¤°à¤° पृषà¥à¤ à¥‡)</translation>
<translation id="288042212351694283">आपलà¥à¤¯à¤¾ सरà¥à¤µà¤‚कष 2 रा घटक डिवà¥à¤¹à¤¾à¤‡à¤¸à¥‡à¤¸à¤µà¤° पà¥à¤°à¤µà¥‡à¤¶ करा</translation>
<translation id="2881966438216424900"> अखेरचा पà¥à¤°à¤µà¥‡à¤¶à¤ƒ</translation>
<translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> रीसà¥à¤Ÿà¤¾à¤°à¥à¤Ÿ होईल आणि कà¥à¤·à¤£à¤­à¤°à¤¾à¤¤ रीसेट होईल</translation>
@@ -1251,7 +1251,7 @@
<translation id="289695669188700754">की आयडी: <ph name="KEY_ID" /></translation>
<translation id="2897878306272793870">आपली खातà¥à¤°à¥€ आहे की आपण <ph name="TAB_COUNT" /> टॅब उघडू इचà¥à¤›à¤¿à¤¤à¤¾?</translation>
<translation id="290105521672621980">फाइल अâ€à¤¸à¤®à¤°à¥à¤¥à¤¿à¤¤ वैशिषà¥à¤Ÿà¥à¤¯à¤¾à¤‚चा वापर करीत आहे</translation>
-<translation id="2902127500170292085"><ph name="EXTENSION_NAME" /> ला या पà¥à¤°à¤¿à¤‚टरसह संपà¥à¤°à¥‡à¤·à¤£ करणे शकà¥à¤¯ à¤à¤¾à¤²à¥‡ नाही. पà¥à¤°à¤¿à¤‚टर पà¥à¤²à¤— इन केले आहे हे सà¥à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ करा आणि पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा.</translation>
+<translation id="2902127500170292085"><ph name="EXTENSION_NAME" /> ला या पà¥à¤°à¤¿à¤‚टरसह संवाद पà¥à¤°à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ करणे शकà¥à¤¯ à¤à¤¾à¤²à¥‡ नाही. पà¥à¤°à¤¿à¤‚टर पà¥à¤²à¤— इन केले आहे हे सà¥à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ करा आणि पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा.</translation>
<translation id="2902312830803030883">आणखी कà¥à¤°à¤¿à¤¯à¤¾</translation>
<translation id="2903457445916429186">निवडलेले आयटम उघडा</translation>
<translation id="2903493209154104877">पतà¥à¤¤à¥‡</translation>
@@ -1474,7 +1474,7 @@
<translation id="3242765319725186192">पूरà¥à¤µ-सामायिक की:</translation>
<translation id="3245321423178950146">अजà¥à¤žà¤¾à¤¤ कलाकार</translation>
<translation id="3246097286174000800">Smart Lock वापरून पहा</translation>
-<translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - नेटवरà¥à¤• तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="324849028894344899"><ph name="WINDOW_TITLE" /> - नेटवरà¥à¤• à¤à¤°à¤°</translation>
<translation id="3251759466064201842">&lt;पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°à¤¾à¤šà¤¾ भाग नाही&gt;</translation>
<translation id="3254434849914415189"><ph name="FILE_TYPE" /> फायलींसाठी डीफॉलà¥à¤Ÿ अॅपà¥à¤²à¤¿à¤•à¥‡à¤¶à¤¨ निवडा:</translation>
<translation id="3255228561559750854">शोधा किंवा "Ok Google" मà¥à¤¹à¤£à¤¾</translation>
@@ -1554,7 +1554,7 @@
<translation id="3348643303702027858">OS पà¥à¤¨à¤°à¥à¤ªà¥à¤°à¤¾à¤ªà¥à¤¤à¥€ मीडिया निरà¥à¤®à¤¿à¤¤à¥€ रदà¥à¤¦ केली गेली.</translation>
<translation id="3353984535370177728">अपलोड करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ à¤à¤• फोलà¥à¤¡à¤° निवडा</translation>
<translation id="335581015389089642">भाषण</translation>
-<translation id="3355936511340229503">कनेकà¥à¤¶à¤¨ तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="3355936511340229503">कनेकà¥à¤¶à¤¨ à¤à¤°à¤°</translation>
<translation id="3356580349448036450">पूरà¥à¤£</translation>
<translation id="3356797067524893661">Hangouts Meetवर सà¥à¤°à¥‚ ठेवणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ तà¥à¤®à¥à¤¹à¥€ पूरà¥à¤£ सजà¥à¤œ आहात</translation>
<translation id="3358935496594837302">तà¥à¤®à¤šà¤¾ फोन आढळला नाही. तà¥à¤®à¥à¤¹à¥€ सà¥à¤¸à¤‚गत Android फोन वापरत असलà¥à¤¯à¤¾à¤šà¥€ आणि तो चालू व सोयीसà¥à¤•à¤° असलà¥à¤¯à¤¾à¤šà¥€ खातà¥à¤°à¥€ करा. &lt;a&gt;आणखी जाणून घà¥à¤¯à¤¾&lt;/a&gt;</translation>
@@ -1571,7 +1571,7 @@
<translation id="3378572629723696641">हा विसà¥à¤¤à¤¾à¤° दूषित à¤à¤¾à¤²à¥‡à¤²à¤¾ असू शकतो.</translation>
<translation id="3378630551672149129">साइन इन करा, इनपà¥à¤Ÿ घटकांसह संवाद साधणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ टॅब की दाबा</translation>
<translation id="337920581046691015"><ph name="PRODUCT_NAME" /> इंसà¥à¤Ÿà¥‰à¤² केले जाईल.</translation>
-<translation id="3380365263193509176">अजà¥à¤žà¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="3380365263193509176">अजà¥à¤žà¤¾à¤¤ à¤à¤°à¤°</translation>
<translation id="3382073616108123819">अरेरे! या डिवà¥à¤¹à¤¾à¤‡à¤¸à¤¸à¤¾à¤ à¥€ डिवà¥à¤¹à¤¾à¤‡à¤¸ अभिजà¥à¤žà¤¾à¤ªà¤• निरà¥à¤§à¤¾à¤°à¤¿à¤¤ करणà¥à¤¯à¤¾à¤¤ सिसà¥à¤Ÿà¤® अयशसà¥à¤µà¥€.</translation>
<translation id="3385131213214862288">खालील आयटम यामधून साफ करा</translation>
<translation id="338583716107319301">विभाजक</translation>
@@ -1652,7 +1652,7 @@
<translation id="3492788708641132712">संकालन कारà¥à¤¯ करत नाही. पà¥à¤¨à¥à¤¹à¤¾ साइन इन करणà¥à¤¯à¤¾à¤šà¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा.</translation>
<translation id="3493881266323043047">वैधता</translation>
<translation id="3494769164076977169">पà¥à¤°à¤¥à¤® फायलीनंतर जेवà¥à¤¹à¤¾ à¤à¤–ादी साइट फायली सà¥à¤µà¤¯à¤‚चलितपणे डाउनलोड करणà¥à¤¯à¤¾à¤šà¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करते तेवà¥à¤¹à¤¾ विचारा (शिफारस केलेले)</translation>
-<translation id="3495304270784461826"><ph name="COUNT" /> तà¥à¤°à¥à¤Ÿà¥€.</translation>
+<translation id="3495304270784461826"><ph name="COUNT" /> à¤à¤°à¤°.</translation>
<translation id="3495660573538963482">Google साहायà¥à¤¯à¤• सेटिंगà¥à¤œ</translation>
<translation id="3496213124478423963">à¤à¥‚म कमी करा</translation>
<translation id="3504135463003295723">गट नाव:</translation>
@@ -1678,7 +1678,7 @@
<translation id="3534879087479077042">परà¥à¤¯à¤µà¥‡à¤•à¥à¤·à¥€ वापरकरà¥à¤¤à¤¾ काय आहे?</translation>
<translation id="354060433403403521">AC अâ€à¥…डापà¥â€à¤Ÿà¤°</translation>
<translation id="3541661933757219855">लपवणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ Ctrl+Alt+/ किंवा Escape टाइप करा</translation>
-<translation id="3543393733900874979">अपडेट अयशसà¥à¤µà¥€ (तà¥à¤°à¥à¤Ÿà¥€: <ph name="ERROR_NUMBER" />)</translation>
+<translation id="3543393733900874979">अपडेट अयशसà¥à¤µà¥€ (à¤à¤°à¤°: <ph name="ERROR_NUMBER" />)</translation>
<translation id="3543597750097719865">SHA-1 सह X9.62 ECDSA सà¥à¤µà¤¾à¤•à¥à¤·à¤°à¥€</translation>
<translation id="354602065659584722">धोकादायक सॉफà¥à¤Ÿà¤µà¥‡à¤…र काढले</translation>
<translation id="3547495624659668105">PRL आवृतà¥à¤¤à¥€</translation>
@@ -1769,14 +1769,14 @@
<translation id="3668823961463113931">हà¤à¤¡à¤²à¤°</translation>
<translation id="3670229581627177274">Bluetooth चालू करा</translation>
<translation id="3672159315667503033"><ph name="URL" /> आपलà¥à¤¯à¤¾ सà¥à¤¥à¤¾à¤¨à¤¿à¤• संगणकावर मोठà¥à¤¯à¤¾ पà¥à¤°à¤®à¤¾à¤£à¤¾à¤µà¤° डेटा कायमचा संचयित करू इचà¥à¤›à¤¿à¤¤ आहे.</translation>
-<translation id="3672681487849735243">à¤à¤• फॅकà¥à¤Ÿà¤°à¥€ तà¥à¤°à¥à¤Ÿà¥€ शोधली गेली</translation>
+<translation id="3672681487849735243">à¤à¤• फॅकà¥à¤Ÿà¤°à¥€ à¤à¤°à¤° शोधली गेली</translation>
<translation id="367645871420407123">आपण डीफॉलà¥à¤Ÿ चाचणी पà¥à¤°à¤¤à¤¿à¤®à¤¾ मूलà¥à¤¯à¤¾à¤®à¤§à¥à¤¯à¥‡ मूळ पासवरà¥à¤¡ सेट करू इचà¥à¤›à¤¿à¤¤ असलà¥à¤¯à¤¾à¤¸ रिकà¥à¤¤ सोडा</translation>
<translation id="3678156199662914018">विसà¥à¤¤à¤¾à¤°à¤ƒ <ph name="EXTENSION_NAME" /></translation>
<translation id="3681311097828166361">आपलà¥à¤¯à¤¾ अभिपà¥à¤°à¤¾à¤¯à¤¾à¤¬à¤¦à¥à¤¦à¤² धनà¥à¤¯à¤µà¤¾à¤¦. आपण आता ऑफलाइन आहात आणि आपला अहवाल नंतर पाठविला जाईल.</translation>
<translation id="3683023058278427253">आमà¥à¤¹à¥€ तà¥à¤®à¤šà¥à¤¯à¤¾ डोमेनसाठी असलेले à¤à¤•à¤¾à¤§à¤¿à¤• परवाने पà¥à¤°à¤•à¤¾à¤° शोधले आहेत. कृपया सà¥à¤°à¥‚ ठेवणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ à¤à¤• निवडा.</translation>
<translation id="3683524264665795342"><ph name="APP_NAME" /> सà¥à¤•à¥à¤°à¥€à¤¨ सामायिकरण विनंती</translation>
<translation id="3685122418104378273">मोबाईल डेटा वापरला जातो, तेवà¥à¤¹à¤¾ Google डà¥à¤°à¤¾à¤‡à¤µà¥à¤¹ संकालन डीफॉलà¥à¤Ÿà¤¨à¥à¤¸à¤¾à¤° अकà¥à¤·à¤® केले जाते.</translation>
-<translation id="368789413795732264">ही फाइल राइट करणà¥à¤¯à¤¾à¤šà¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करताना à¤à¤–ादी तà¥à¤°à¥à¤Ÿà¥€ आली:<ph name="ERROR_TEXT" />.</translation>
+<translation id="368789413795732264">ही फाइल राइट करणà¥à¤¯à¤¾à¤šà¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करताना à¤à¤–ादी à¤à¤°à¤° आली:<ph name="ERROR_TEXT" />.</translation>
<translation id="3688507211863392146">आपण अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ामधà¥à¤¯à¥‡ उघडता तà¥à¤¯à¤¾ फायलींमधà¥à¤¯à¥‡ आणि फोलà¥à¤¡à¤°à¤®à¤§à¥à¤¯à¥‡ लिहा</translation>
<translation id="3688526734140524629">चॅनेल बदला</translation>
<translation id="3688578402379768763">अदà¥à¤¯à¤¯à¤¾à¤µà¤¤</translation>
@@ -1825,7 +1825,7 @@
<translation id="37613671848467444">&amp;गà¥à¤ªà¥à¤¤ विंडोमधà¥à¤¯à¥‡ उघडा</translation>
<translation id="3763401818161139108">नेहमी <ph name="ORIGIN" /> वर चालवा</translation>
<translation id="3764314093345384080">तपशीलवार बिलà¥à¤¡ माहिती</translation>
-<translation id="3764583730281406327">{NUM_DEVICES,plural, =1{à¤à¤•à¤¾ USB डिवà¥à¤¹à¤¾à¤‡à¤¸à¤¸à¤¹ संपà¥à¤°à¥‡à¤·à¤£ करा}one{# USB डिवà¥à¤¹à¤¾à¤‡à¤¸à¤¸à¤¹ संपà¥à¤°à¥‡à¤·à¤£ करा}other{# USB डिवà¥à¤¹à¤¾à¤‡à¤¸à¥‡à¤¸à¤¸à¤¹ संपà¥à¤°à¥‡à¤·à¤£ करा}}</translation>
+<translation id="3764583730281406327">{NUM_DEVICES,plural, =1{à¤à¤•à¤¾ USB डिवà¥à¤¹à¤¾à¤‡à¤¸à¤¸à¤¹ संवाद पà¥à¤°à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ करा}one{# USB डिवà¥à¤¹à¤¾à¤‡à¤¸à¤¸à¤¹ संवाद पà¥à¤°à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ करा}other{# USB डिवà¥à¤¹à¤¾à¤‡à¤¸à¥‡à¤¸à¤¸à¤¹ संवाद पà¥à¤°à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ करा}}</translation>
<translation id="3764986667044728669">नोंदणी करणà¥à¤¯à¤¾à¤¤ अकà¥à¤·à¤®</translation>
<translation id="3768037234834996183">आपली पà¥à¤°à¤¾à¤§à¤¾à¤¨à¥à¤¯à¥‡ संकालित करत आहे...</translation>
<translation id="3771294271822695279">वà¥à¤¹à¤¿à¤¡à¤¿à¤“ फायली</translation>
@@ -1980,7 +1980,7 @@
<translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> सकà¥à¤·à¤® करा</translation>
<translation id="3981760180856053153">अवैध जतन पà¥à¤°à¤•à¤¾à¤° à¤à¤‚टर केले.</translation>
<translation id="3983586614702900908">अजà¥à¤žà¤¾à¤¤ विकà¥à¤°à¥‡à¤¤à¥à¤¯à¤¾à¤•à¤¡à¥€à¤² डिवà¥à¤¹à¤¾à¤‡à¤¸à¥‡à¤¸</translation>
-<translation id="3984413272403535372">विसà¥à¤¤à¤¾à¤°à¤¾à¤¤ साइन करताना तà¥à¤°à¥à¤Ÿà¥€.</translation>
+<translation id="3984413272403535372">विसà¥à¤¤à¤¾à¤°à¤¾à¤¤ साइन करताना à¤à¤°à¤°.</translation>
<translation id="3988996860813292272">टाइम à¤à¥‹à¤¨ निवडा</translation>
<translation id="3989635538409502728">साइन आउट</translation>
<translation id="399179161741278232">आयातीत</translation>
@@ -2005,7 +2005,7 @@
<translation id="4035758313003622889">&amp;कारà¥à¤¯ वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•</translation>
<translation id="4037084878352560732">घोडा</translation>
<translation id="4037889604535939429">वà¥à¤¯à¤•à¥à¤¤à¥€ संपादित करा</translation>
-<translation id="40400351611212369">नेटवरà¥à¤• सकà¥à¤°à¤¿à¤¯à¤£ तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="40400351611212369">नेटवरà¥à¤• सकà¥à¤°à¤¿à¤¯à¤£ à¤à¤°à¤°</translation>
<translation id="4042264909745389898">Google Chrome OS अटी</translation>
<translation id="4044612648082411741">आपला पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° पासवरà¥à¤¡ à¤à¤‚टर करा</translation>
<translation id="404493185430269859">डीफॉलà¥à¤Ÿ शोध इंजिन</translation>
@@ -2022,7 +2022,7 @@
<translation id="4065876735068446555">आपण वापरत असलेलà¥à¤¯à¤¾ (<ph name="NETWORK_ID" />) नेटवरà¥à¤•à¤²à¤¾ तà¥à¤¯à¤¾à¤šà¥à¤¯à¤¾ लॉग इन पृषà¥à¤ à¤¾à¤¸ भेट देणà¥à¤¯à¤¾à¤šà¥€ आवशà¥à¤¯à¤•à¤¤à¤¾ असू शकते.</translation>
<translation id="4068506536726151626">या पृषà¥à¤ à¤¾à¤µà¤° आपले सà¥à¤¥à¤¾à¤¨ टà¥à¤°à¥…क करणारà¥â€à¤¯à¤¾ खालील साइटवरील घटक समाविषà¥à¤Ÿ आहेत:</translation>
<translation id="4068776064906523561">फिंगरपà¥à¤°à¤¿à¤‚ट सेवà¥à¤¹ केले</translation>
-<translation id="4071770069230198275"><ph name="PROFILE_NAME" />: साइन इन तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="4071770069230198275"><ph name="PROFILE_NAME" />: साइन इन à¤à¤°à¤°</translation>
<translation id="4074900173531346617">ईमेल सà¥à¤µà¤¾à¤•à¥à¤·à¤°à¥€à¤•à¤°à¥à¤¤à¤¾ पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°</translation>
<translation id="407520071244661467">सà¥à¤•à¥‡à¤²</translation>
<translation id="4075639477629295004"><ph name="FILE_NAME" /> कासà¥à¤Ÿ करू शकलो नाही.</translation>
@@ -2105,7 +2105,7 @@
<translation id="4235200303672858594">संपूरà¥à¤£ सà¥à¤•à¥à¤°à¥€à¤¨</translation>
<translation id="4235813040357936597"><ph name="PROFILE_NAME" /> साठी खाते जोडा</translation>
<translation id="4235965441080806197">साइन इन रदà¥à¤¦ करा</translation>
-<translation id="4237016987259239829">नेटवरà¥à¤• कनेकà¥à¤¶à¤¨ तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="4237016987259239829">नेटवरà¥à¤• कनेकà¥à¤¶à¤¨ à¤à¤°à¤°</translation>
<translation id="4240511609794012987">शेअर केलेली मेमरी</translation>
<translation id="4242533952199664413">सेटिंगà¥à¤œ उघडा</translation>
<translation id="4242577469625748426">डिवà¥à¤¹à¤¾à¤‡à¤¸à¤µà¤° धोरण सेटिंगà¥à¤œ इंसà¥à¤Ÿà¥‰à¤² करणà¥à¤¯à¤¾à¤¤ अयशसà¥à¤µà¥€: <ph name="VALIDATION_ERROR" />.</translation>
@@ -2169,11 +2169,11 @@
<translation id="4336032328163998280">कॉपी ऑपरेशन अयशसà¥à¤µà¥€. <ph name="ERROR_MESSAGE" /></translation>
<translation id="4336979451636460645">नेटवरà¥à¤• लॉगसाठी, हे पहा: <ph name="DEVICE_LOG_LINK" /></translation>
<translation id="4337028641069424358">Android अॅपà¥à¤¸ डाउनलोड करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ आणि वापरणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€, अगोदर तà¥à¤®à¥à¤¹à¥€ अपडेट इंसà¥à¤Ÿà¥‰à¤² करणे आवशà¥à¤¯à¤• आहे. तà¥à¤®à¤šà¤¾ डिवà¥à¤¹à¤¾à¤‡à¤¸ अपडेट होत असताना, तà¥à¤®à¥à¤¹à¥€ तो वापरू शकत नाही. इंसà¥à¤Ÿà¥‰à¤² à¤à¤¾à¤²à¥à¤¯à¤¾à¤¨à¤‚तर तà¥à¤®à¤šà¤¾ <ph name="DEVICE_TYPE" /> पà¥à¤¨à¥à¤¹à¤¾ सà¥à¤°à¥‚ होईल.</translation>
-<translation id="4340515029017875942">"<ph name="EXTENSION_NAME" />" अâ€à¥…पसह <ph name="ORIGIN" /> संपà¥à¤°à¥‡à¤·à¤£ करू इचà¥à¤›à¤¿à¤¤à¥‹</translation>
-<translation id="4342311272543222243">अरेरे, TPM तà¥à¤°à¥à¤Ÿà¥€.</translation>
+<translation id="4340515029017875942">"<ph name="EXTENSION_NAME" />" अâ€à¥…पसह <ph name="ORIGIN" /> संवाद पà¥à¤°à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ करू इचà¥à¤›à¤¿à¤¤à¥‹</translation>
+<translation id="4342311272543222243">अरेरे, TPM à¤à¤°à¤°.</translation>
<translation id="4345587454538109430">कॉनà¥à¤«à¤¿à¤—र करा...</translation>
<translation id="4345703751611431217">सॉफà¥à¤Ÿà¤µà¥‡à¤…र विसंगतता: अधिक जाणून घà¥à¤¯à¤¾</translation>
-<translation id="4348766275249686434">तà¥à¤°à¥à¤Ÿà¥€ संकलित करा</translation>
+<translation id="4348766275249686434">à¤à¤°à¤° संकलित करा</translation>
<translation id="4350019051035968019">à¤à¤•à¤¾ भिनà¥à¤¨ डोमेनदà¥à¤µà¤¾à¤°à¥‡ वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤¨à¤¾à¤¸à¤¾à¤ à¥€ डिवà¥à¤¹à¤¾à¤‡à¤¸ चिनà¥à¤¹à¤¾à¤‚कित केले असलà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ आपले खाते जà¥à¤¯à¤¾ मालकीचे आहे तà¥à¤¯à¤¾ डोमेवर या डिवà¥à¤¹à¤¾à¤‡à¤¸à¤šà¥€ नोंदणी केली जाऊ शकत नाही.</translation>
<translation id="4356334633973342967">किंवा आपलà¥à¤¯à¤¾ सà¥à¤µà¤¤:चा डà¥à¤°à¤¾à¤‡à¤µà¥à¤¹à¤° निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करा:</translation>
<translation id="4358353773267946514"><ph name="LANGUAGE_1" />, <ph name="LANGUAGE_2" /></translation>
@@ -2320,7 +2320,7 @@
<translation id="4610637590575890427">आपलà¥à¤¯à¤¾à¤²à¤¾ <ph name="SITE" /> कडे जायचे असे मà¥à¤¹à¤£à¤¾à¤¯à¤šà¥‡ होते काय?</translation>
<translation id="4611114513649582138">डेटा कनेकà¥à¤¶à¤¨ उपलबà¥à¤§ आहे</translation>
<translation id="4613271546271159013">आपण नवीन टॅब उघडता तेवà¥à¤¹à¤¾ कोणते पृषà¥à¤  दरà¥à¤¶à¤µà¤¿à¤²à¥‡ जाते हे विसà¥à¤¤à¤¾à¤°à¤¾à¤¨à¥‡ बदलले आहे.</translation>
-<translation id="4615586811063744755">कà¥à¤•à¥€ निवडलेली नाही</translation>
+<translation id="4615586811063744755">कोणतà¥à¤¯à¤¾à¤¹à¥€ कà¥à¤•à¥€à¤œ निवडलेलà¥à¤¯à¤¾ नाही</translation>
<translation id="4617270414136722281">विसà¥à¤¤à¤¾à¤° परà¥à¤¯à¤¾à¤¯</translation>
<translation id="4618990963915449444"><ph name="DEVICE_NAME" /> वरील सरà¥à¤µ फायली मिटविलà¥à¤¯à¤¾ जातील.</translation>
<translation id="4619615317237390068">अनà¥à¤¯ डिवà¥à¤¹à¤¾à¤‡à¤¸à¥‡à¤¸à¤®à¤§à¥€à¤² टॅब</translation>
@@ -2351,7 +2351,7 @@
<translation id="4658312088164718891">Smart Lock चालू करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ तà¥à¤®à¤šà¤¾ पासवरà¥à¤¡ टाका. पà¥à¤¢à¤šà¥à¤¯à¤¾ वेळेस तà¥à¤®à¤šà¤¾ फोन तà¥à¤®à¤šà¥‡ <ph name="DEVICE_TYPE" /> अनलॉक करेल. सेटिंगà¥à¤œà¤®à¤§à¥‚न Smart Lock बंद करा.</translation>
<translation id="4662788913887017617">हा बà¥à¤•à¤®à¤¾à¤°à¥à¤• आपलà¥à¤¯à¤¾ iPhone सह शेअर करा</translation>
<translation id="4663373278480897665">कॅमेऱà¥à¤¯à¤¾à¤²à¤¾ अनà¥à¤®à¤¤à¥€ आहे</translation>
-<translation id="4664482161435122549">PKCS #12 निरà¥à¤¯à¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="4664482161435122549">PKCS #12 निरà¥à¤¯à¤¾à¤¤ à¤à¤°à¤°</translation>
<translation id="466481852929361583">सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ मॉडà¥à¤¯à¥‚ल सेट अप होत आहे. कृपया धीर धरा; यासाठी काही मिनिटे लागू शकतात.</translation>
<translation id="4665014895760275686">निरà¥à¤®à¤¾à¤¤à¤¾</translation>
<translation id="466506872045057845">Chrome तà¥à¤¯à¤¾à¤‚चà¥à¤¯à¤¾ परवानगà¥à¤¯à¤¾ डीफॉलà¥à¤Ÿà¤µà¤° सेट करेल</translation>
@@ -2415,7 +2415,7 @@
<translation id="4759238208242260848">डाउनलोड</translation>
<translation id="4761104368405085019">आपला मायकà¥à¤°à¥‹à¤«à¥‹à¤¨ वापरा</translation>
<translation id="4762718786438001384">डिवà¥à¤¹à¤¾à¤‡à¤¸ डिसà¥à¤• सà¥à¤¥à¤¾à¤¨ खूपच कमी आहे</translation>
-<translation id="4763408175235639573">तà¥à¤®à¥à¤¹à¥€ हा पेज पाहिला तेवà¥à¤¹à¤¾ पà¥à¤¢à¥€à¤² कà¥à¤•à¥€à¤œ सेट केलà¥à¤¯à¤¾ गेलà¥à¤¯à¤¾</translation>
+<translation id="4763408175235639573">तà¥à¤®à¥à¤¹à¥€ हे पेज पाहिले तेवà¥à¤¹à¤¾ पà¥à¤¢à¥€à¤² कà¥à¤•à¥€à¤œ सेट केलà¥à¤¯à¤¾ गेलà¥à¤¯à¤¾</translation>
<translation id="4763830802490665879">बाहेर पडताना à¤à¤•à¤¾à¤§à¤¿à¤• साइटà¥à¤¸à¤µà¤°à¥€à¤² कà¥à¤•à¥€à¤œ साफ केलà¥à¤¯à¤¾ जातील.</translation>
<translation id="4768332406694066911">आपलà¥â€à¤¯à¤¾à¤•à¤¡à¥‡ या संसà¥à¤¥à¤¾à¤‚कडील पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°à¥‡ आहेत जी आपलà¥â€à¤¯à¤¾à¤²à¤¾ ओळखतात</translation>
<translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> साठी पासवरà¥à¤¡</translation>
@@ -2441,7 +2441,7 @@
<translation id="4807098396393229769">कारà¥à¤¡à¤µà¤°à¥€à¤² नाव</translation>
<translation id="480990236307250886">मà¥à¤–à¥à¤¯à¤ªà¥ƒà¤·à¥à¤  उघडा</translation>
<translation id="4812632551187706935">कनेकà¥à¤¶à¤¨ पà¥à¤°à¤¾à¤°à¤‚भ करणे शकà¥à¤¯ à¤à¤¾à¤²à¥‡ नाही</translation>
-<translation id="4813512666221746211">नेटवरà¥à¤• तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="4813512666221746211">नेटवरà¥à¤• à¤à¤°à¤°</translation>
<translation id="4816492930507672669">पृषà¥â€à¤ à¤¾à¤¨à¥à¤°à¥à¤ª करा</translation>
<translation id="4820334425169212497">नाही, मला ते दिसत नाही</translation>
<translation id="4821086771593057290">आपला पासवरà¥à¤¡ बदलला आहे. कृपया आपलà¥à¤¯à¤¾ नवीन पासवरà¥à¤¡à¤¾à¤¸à¤¹ पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा.</translation>
@@ -2455,7 +2455,7 @@
<translation id="4830502475412647084">OS अपडेट इंसà¥à¤Ÿà¥‰à¤² करत आहे</translation>
<translation id="4830573902900904548"><ph name="NETWORK_NAME" /> वापरून इंटरनेटशी कनेकà¥à¤Ÿ करणà¥â€à¤¯à¤¾à¤¤ आपले <ph name="DEVICE_TYPE" /> अकà¥à¤·à¤® आहे. कृपया अनà¥à¤¯ नेटवरà¥à¤• वापरा. <ph name="LEARN_MORE_LINK_START" />अधिक जाणून घà¥â€à¤¯à¤¾<ph name="LEARN_MORE_LINK_END" /></translation>
<translation id="4835385943915508971">Chrome ला विनंती केलेलà¥à¤¯à¤¾ संसाधनामधà¥à¤¯à¥‡ पà¥à¤°à¤µà¥‡à¤¶ नाही.</translation>
-<translation id="4835836146030131423">साइन इन करताना तà¥à¤°à¥à¤Ÿà¥€.</translation>
+<translation id="4835836146030131423">साइन इन करताना à¤à¤°à¤°.</translation>
<translation id="4837926214103741331">आपण हे डिवà¥à¤¹à¤¾à¤‡à¤¸ वापरणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ पà¥à¤°à¤¾à¤§à¤¿à¤•à¥ƒà¤¤ नाही. कृपया साइन इन करणà¥à¤¯à¤¾à¤šà¥à¤¯à¤¾ परवानगीसाठी डिवà¥à¤¹à¤¾à¤‡à¤¸ मालकाशी संपरà¥à¤• साधा.</translation>
<translation id="4837952862063191349">आपला सà¥à¤¥à¤¾à¤¨à¤¿à¤• डेटा अनलॉक आणि पà¥à¤¨à¤°à¥à¤¸à¤‚चयित करणà¥â€à¤¯à¤¾à¤¸à¤¾à¤ à¥€, कृपया आपला जà¥à¤¨à¤¾ <ph name="DEVICE_TYPE" /> पासवरà¥à¤¡ पà¥à¤°à¤µà¤¿à¤·à¥â€à¤Ÿ करा.</translation>
<translation id="4839303808932127586">मà¥à¤¹à¤£à¥‚न वà¥à¤¹à¤¿à¤¡à¤¿à¤“ ज&amp;तन करा...</translation>
@@ -2523,7 +2523,7 @@
<translation id="4912643508233590958">निषà¥à¤•à¥à¤°à¤¿à¤¯à¤¤à¤¾ समापà¥à¤¤ करणे</translation>
<translation id="491691592645955587">सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ बà¥à¤°à¤¾à¤‰à¤à¤°à¤µà¤° बदला</translation>
<translation id="4917385247580444890">मजबूत</translation>
-<translation id="4918021164741308375"><ph name="ORIGIN" /> "<ph name="EXTENSION_NAME" />" विसà¥à¤¤à¤¾à¤°à¤¾à¤¶à¥€ संपà¥à¤°à¥‡à¤·à¤£ करू इचà¥à¤›à¤¿à¤¤ आहे</translation>
+<translation id="4918021164741308375"><ph name="ORIGIN" /> "<ph name="EXTENSION_NAME" />" विसà¥à¤¤à¤¾à¤°à¤¾à¤¶à¥€ संवाद पà¥à¤°à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ करू इचà¥à¤›à¤¿à¤¤ आहे</translation>
<translation id="4918086044614829423">सà¥à¤µà¥€à¤•à¤¾à¤°à¤¾</translation>
<translation id="4919810557098212913"><ph name="HOST" /> आपला कॅमेरा वापरॠइचà¥à¤›à¤¿à¤¤à¥‡.</translation>
<translation id="4920887663447894854">या पृषà¥à¤ à¤¾à¤µà¤° आपले सà¥à¤¥à¤¾à¤¨ टà¥à¤°à¥…क करणà¥à¤¯à¤¾à¤ªà¤¾à¤¸à¥‚न खालील साइट अवरोधित केलà¥à¤¯à¤¾ गेलà¥à¤¯à¤¾ आहेत:</translation>
@@ -2627,8 +2627,8 @@
<translation id="5087926280563932024">तà¥à¤®à¤šà¥à¤¯à¤¾ खातà¥à¤¯à¤¾à¤šà¥€ पडताळणी करता आली नाही. कृपया पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा किंवा तà¥à¤®à¤šà¥‡ Chromebook रीसà¥à¤Ÿà¤¾à¤°à¥à¤Ÿ करा.</translation>
<translation id="5088172560898466307">सरà¥à¤µà¥à¤¹à¤° होसà¥à¤Ÿà¤¨à¤¾à¤µ</translation>
<translation id="5088534251099454936">PKCS #1 RSA कूटबदà¥à¤§à¥€à¤•à¤°à¤£à¤¾à¤¸à¤¹ SHA-512</translation>
-<translation id="509429900233858213">à¤à¤• तà¥à¤°à¥à¤Ÿà¥€ आली आहे.</translation>
-<translation id="5094721898978802975">मूळ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ांना सहकारà¥à¤¯ करून संपà¥à¤°à¥‡à¤·à¤£ करा</translation>
+<translation id="509429900233858213">à¤à¤• à¤à¤°à¤° आली आहे.</translation>
+<translation id="5094721898978802975">मूळ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ांना सहकारà¥à¤¯ करून संवाद पà¥à¤°à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ करा</translation>
<translation id="5097002363526479830">'<ph name="NAME" />': नेटवरà¥à¤•à¤¶à¥€ कनेकà¥à¤Ÿ करणà¥à¤¯à¤¾à¤¤ अयशसà¥à¤µà¥€. <ph name="DETAILS" /></translation>
<translation id="5098647635849512368">पॅक करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ असलेलà¥à¤¯à¤¾ निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¥‡à¤šà¤¾ अचूक पथ शोधणे शकà¥à¤¯ नाही.</translation>
<translation id="5099354524039520280">वर</translation>
@@ -2693,7 +2693,7 @@
<translation id="5197680270886368025">समकà¥à¤°à¤®à¤£ पूरà¥à¤£.</translation>
<translation id="5204967432542742771">पासवरà¥à¤¡ à¤à¤‚टर करा</translation>
<translation id="5206215183583316675">"<ph name="CERTIFICATE_NAME" />" हटवायचे?</translation>
-<translation id="520621735928254154">पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° आयाâ€à¤¤ तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="520621735928254154">पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° आयाâ€à¤¤ à¤à¤°à¤°</translation>
<translation id="5209320130288484488">कोणतीही डिवà¥à¤¹à¤¾à¤‡à¤¸à¥‡à¤¸ आढळली नाहीत</translation>
<translation id="5209518306177824490">SHA-1 बोटाचा ठसा</translation>
<translation id="5210365745912300556">टॅब बंद करा</translation>
@@ -2741,7 +2741,7 @@
सामायिक करा, तयार करा आणि सहयोग करा.<ph name="MARKUP_9" /></translation>
<translation id="5264252276333215551">कृपया कियोसà¥à¤• मोडमधà¥à¤¯à¥‡ आपला अॅप लाà¤à¤š करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ इंटरनेटशी कनेकà¥à¤Ÿ करा.</translation>
<translation id="5265562206369321422">à¤à¤•à¤¾ आठवडà¥à¤¯à¤¾à¤ªà¥‡à¤•à¥à¤·à¤¾ जासà¥à¤¤ ऑफलाइन</translation>
-<translation id="5266113311903163739">पà¥à¤°à¤®à¤¾à¤£à¤¨ अधिकृतता आयात तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="5266113311903163739">पà¥à¤°à¤®à¤¾à¤£à¤¨ अधिकृतता आयात à¤à¤°à¤°</translation>
<translation id="5269977353971873915">मà¥à¤¦à¥à¤°à¤£ अयशसà¥à¤µà¥€</translation>
<translation id="5271549068863921519">पासवरà¥à¤¡ सेवà¥à¤¹ करा</translation>
<translation id="5275194674756975076">ठीक आहे, रीफà¥à¤°à¥‡à¤¶ करा</translation>
@@ -2795,7 +2795,7 @@
<translation id="5337771866151525739">à¤à¤•à¤¾ तृतीय पकà¥à¤·à¤¾à¤¦à¥à¤µà¤¾à¤°à¥‡ इंसà¥à¤Ÿà¥‰à¤².</translation>
<translation id="5338503421962489998">सà¥â€à¤¥à¤¾à¤¨à¤¿à¤• संचयन</translation>
<translation id="5340217413897845242">शेलà¥à¤« आयटम 6</translation>
-<translation id="5341793073192892252">पà¥à¤¢à¥€à¤² कà¥à¤•à¥€à¤œ बà¥à¤²à¥‰à¤• केलà¥à¤¯à¤¾ गेलà¥à¤¯à¤¾ आहेत (तृतीय-पकà¥à¤· कà¥à¤•à¥€à¤œ अपवादाशिवाय बà¥à¤²à¥‰à¤• केलà¥à¤¯à¤¾ जात आहेत)</translation>
+<translation id="5341793073192892252">पà¥à¤¢à¥€à¤² कà¥à¤•à¥€ बà¥à¤²à¥‰à¤• केलà¥à¤¯à¤¾ होतà¥â€à¤¯à¤¾ (तृतीय पकà¥à¤·à¤¾à¤šà¥à¤¯à¤¾ कà¥à¤•à¥€ कोणतà¥à¤¯à¤¾à¤¹à¥€ अपवादाशिवाय बà¥à¤²à¥‰à¤• केलेलà¥à¤¯à¤¾ आहेत)</translation>
<translation id="5341980496415249280">कृपया वाट पहा, पॅकिंग करत आहे...</translation>
<translation id="5342091991439452114">पिन किमान <ph name="MINIMUM" /> अंकांचा असणे आवशà¥à¤¯à¤• आहे</translation>
<translation id="534916491091036097">डावा कंस</translation>
@@ -3019,6 +3019,7 @@
<translation id="5678955352098267522"><ph name="WEBSITE_1" /> वर आपला डेटा वाचा</translation>
<translation id="5684661240348539843">मालमतà¥à¤¤à¤¾ अभिजà¥à¤žà¤¾à¤ªà¤•</translation>
<translation id="5687326903064479980">टाइमà¤à¥‹à¤¨</translation>
+<translation id="5689516760719285838">सà¥à¤¥à¤¾à¤¨</translation>
<translation id="56907980372820799">डेटा चा दà¥à¤µà¤¾ जोडा</translation>
<translation id="5691511426247308406">कà¥à¤Ÿà¥à¤‚ब</translation>
<translation id="5691596662111998220">अरेरे, <ph name="FILE_NAME" /> यापà¥à¤¢à¥‡ असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ नाही.</translation>
@@ -3343,7 +3344,7 @@
<translation id="6212039847102026977">पà¥à¤°à¤—त नेटवरà¥à¤• वैशिषà¥à¤Ÿà¥à¤¯à¥‡ दरà¥à¤¶à¤µà¤¾</translation>
<translation id="6212168817037875041">डिसà¥à¤ªà¥à¤²à¥‡ बंद करा</translation>
<translation id="6219616557885484178">आपलà¥à¤¯à¤¾ <ph name="DEVICE_TYPE" /> वर इंसà¥à¤Ÿà¥‰à¤² करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ आणि वापरणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ Google Play वरील लकà¥à¤·à¤¾à¤µà¤§à¥€ अॅपà¥à¤¸ आणि गेमवरून निवडा.</translation>
-<translation id="6220413761270491930">विसà¥à¤¤à¤¾à¤° लोड करताना तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="6220413761270491930">विसà¥à¤¤à¤¾à¤° लोड करताना à¤à¤°à¤°</translation>
<translation id="6223447490656896591">सानà¥à¤•à¥‚ल पà¥à¤°à¤¤à¤¿à¤®à¤¾:</translation>
<translation id="6223747324484398595">à¤à¤Ÿà¤ªà¤Ÿ टेथरिंग वापरणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ बà¥à¤²à¥à¤Ÿà¥‚थ चालू करा</translation>
<translation id="62243461820985415">Chrome हा वॉलपेपर डाउनलोड करू शकत नाही.</translation>
@@ -3380,7 +3381,7 @@
<translation id="6268252012308737255"><ph name="APP" /> सह उघडा</translation>
<translation id="6268747994388690914">HTML फायलीवरà¥à¤¨ बà¥à¤•à¤®à¤¾à¤°à¥à¤• आयात करा...</translation>
<translation id="6270770586500173387"><ph name="BEGIN_LINK1" />सिसà¥à¤Ÿà¤® आणि अॅप माहिती<ph name="END_LINK1" /> आणि <ph name="BEGIN_LINK2" />मेटà¥à¤°à¤¿à¤•à¥à¤¸<ph name="END_LINK2" /> पाठवा</translation>
-<translation id="6272643420381259437">पà¥à¤²à¤—िन डाउनलोड करताना (<ph name="ERROR" />) तà¥à¤°à¥à¤Ÿà¥€ आली</translation>
+<translation id="6272643420381259437">पà¥à¤²à¤—िन डाउनलोड करताना (<ph name="ERROR" />) à¤à¤°à¤° आली</translation>
<translation id="6273677812470008672">गà¥à¤£à¤µà¤¤à¥à¤¤à¤¾</translation>
<translation id="6274087148640822908"><ph name="BEGIN_LINK" />Chrome वेब सà¥à¤Ÿà¥‹à¤…र<ph name="END_LINK" /> मधà¥à¤¯à¥‡ विसà¥à¤¤à¤¾à¤° आणि अॅपà¥à¤¸ शोधा</translation>
<translation id="62751439899495218">फोटो बदला</translation>
@@ -3406,7 +3407,7 @@
<translation id="6307990684951724544">सिसà¥â€à¤Ÿà¥€à¤® वà¥à¤¯à¤¸à¥à¤¤</translation>
<translation id="6308937455967653460">मà¥à¤¹à¤£à¥‚न दà¥&amp;वा सेवà¥à¤¹ करा...</translation>
<translation id="6311220991371174222">आपले पà¥à¤°à¥‹à¤«à¤¾à¤‡à¤² उघडताना काहीतरी चूक à¤à¤¾à¤²à¥à¤¯à¤¾à¤¨à¥‡ Chrome पà¥à¤°à¤¾à¤°à¤‚भ करू शकत नाही. Chrome रीसà¥à¤Ÿà¤¾à¤°à¥à¤Ÿ करून पहा.</translation>
-<translation id="6312403991423642364">अजà¥à¤žà¤¾à¤¤ नेटवरà¥à¤• तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="6312403991423642364">अजà¥à¤žà¤¾à¤¤ नेटवरà¥à¤• à¤à¤°à¤°</translation>
<translation id="6313641880021325787">VRमधून बाहेर पडा</translation>
<translation id="6314335155547195432">पासवरà¥à¤¡ वà¥à¤¯à¥à¤¤à¥à¤ªà¤¨à¥à¤¨ करा</translation>
<translation id="6314819609899340042">आपण या <ph name="IDS_SHORT_PRODUCT_NAME" /> डिवà¥â€à¤¹à¤¾à¤‡à¤¸à¤µà¤° यशसà¥â€à¤µà¥€à¤°à¤¿à¤¤à¥à¤¯à¤¾ डीबग वैशिषà¥â€à¤Ÿà¥à¤¯à¥‡ सकà¥à¤·à¤® केली आहेत.</translation>
@@ -3438,7 +3439,7 @@
<translation id="6356138805250111037">बà¥à¤°à¤¾à¤‰à¤à¤°à¤®à¤§à¥à¤¯à¥‡ आपण जे टाइप करता ते Google कडे पाठवून आणखी सà¥à¤®à¤¾à¤°à¥à¤Ÿ शबà¥à¤¦à¤²à¥‡à¤–न-तपासणी</translation>
<translation id="63566973648609420">फकà¥à¤¤ आपला सांकेतिक वाकà¥à¤¯à¤¾à¤‚श असलेली à¤à¤–ादी वà¥à¤¯à¤•à¥à¤¤à¥€ आपला कूटबदà¥à¤§ डेटा वाचू शकते. सांकेतिक वाकà¥à¤¯à¤¾à¤‚श Google कडे पाठविला किंवा तà¥à¤¯à¤¾à¤¦à¥à¤µà¤¾à¤°à¥‡ संचयित केला जात नाही. आपण आपला सांकेतिक वाकà¥à¤¯à¤¾à¤‚श विसरलà¥à¤¯à¤¾à¤¸ किंवा हे सेटिंग बदलू इचà¥à¤›à¤¿à¤¤ असलà¥à¤¯à¤¾à¤¸, आपलà¥à¤¯à¤¾à¤²à¤¾ <ph name="BEGIN_LINK" />संकालन रीसेट करणà¥à¤¯à¤¾à¤šà¥€ आवशà¥à¤¯à¤•à¤¤à¤¾ असेल<ph name="END_LINK" />.</translation>
<translation id="6357619544108132570"><ph name="SHORT_PRODUCT_NAME" /> कà¥à¤Ÿà¥à¤‚बात आपले सà¥à¤µà¤¾à¤—त आहे. हा नेहमीचा संगणक नाहीये.</translation>
-<translation id="6361850914223837199">तà¥à¤°à¥à¤Ÿà¥€ तपशील:</translation>
+<translation id="6361850914223837199">à¤à¤°à¤° तपशील:</translation>
<translation id="6362853299801475928">&amp;समसà¥à¤¯à¤¾ नोंदवणे...</translation>
<translation id="6365411474437319296">कà¥à¤Ÿà¥à¤‚ब आणि मितà¥à¤° जोडा</translation>
<translation id="636850387210749493">Enterprise नावनोंदणी</translation>
@@ -3616,7 +3617,7 @@
<translation id="6606070663386660533">टॅब 8</translation>
<translation id="6607272825297743757">फाईल माहिती</translation>
<translation id="6607831829715835317">अधिक साध&amp;ने</translation>
-<translation id="6610183966322615106">पà¥à¤°à¤¿à¤‚टर जोडताना तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="6610183966322615106">पà¥à¤°à¤¿à¤‚टर जोडताना à¤à¤°à¤°</translation>
<translation id="6612358246767739896">संरकà¥à¤·à¤¿à¤¤ सामगà¥à¤°à¥€</translation>
<translation id="6613452264606394692">या पेजला बà¥à¤•à¤®à¤¾à¤°à¥à¤• करून येथे जलद परत या</translation>
<translation id="6615455863669487791">मला दरà¥à¤¶à¤µà¤¾</translation>
@@ -3754,18 +3755,18 @@
<translation id="6827236167376090743">हा वà¥à¤¹à¤¿à¤¡à¤¿à¤“ पà¥à¤°à¤¦à¥€à¤°à¥à¤˜ काळापरà¥à¤¯à¤‚त पà¥à¤²à¥‡ होत राहील.</translation>
<translation id="6828153365543658583">खालील वापरकरà¥à¤¤à¥à¤¯à¤¾à¤‚ना साइन- इन करणे पà¥à¤°à¤¤à¤¿à¤¬à¤‚धित करा:</translation>
<translation id="6828434191343384461">निवडलेला डेटा Chrome आणि संकालित केलेलà¥à¤¯à¤¾ डिवà¥à¤¹à¤¾à¤‡à¤¸à¥‡à¤¸ मधून काढला गेला आहे. आपलà¥à¤¯à¤¾ Google खातà¥à¤¯à¤¾à¤®à¤§à¥à¤¯à¥‡ Google चà¥à¤¯à¤¾ इतर सेवांमधील शोध आणि कà¥à¤°à¤¿à¤¯à¤¾à¤•à¤²à¤¾à¤ª यासारखà¥à¤¯à¤¾ बà¥à¤°à¤¾à¤‰à¤à¤¿à¤‚ग इतिहासाची इतर सà¥à¤µà¤°à¥‚पे <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" /> येथे असू शकतात.</translation>
-<translation id="6828860976882136098">सरà¥à¤µ वापरकरà¥à¤¤à¥à¤¯à¤¾à¤‚साठी सà¥à¤µà¤¯à¤‚चलित अपडेट सेट करणे अयशसà¥à¤µà¥€ à¤à¤¾à¤²à¥‡ (पूरà¥à¤µà¤«à¥à¤²à¤¾à¤‡à¤Ÿ अंमलबजावणी तà¥à¤°à¥à¤Ÿà¥€: <ph name="ERROR_NUMBER" />)</translation>
+<translation id="6828860976882136098">सरà¥à¤µ वापरकरà¥à¤¤à¥à¤¯à¤¾à¤‚साठी सà¥à¤µà¤¯à¤‚चलित अपडेट सेट करणे अयशसà¥à¤µà¥€ à¤à¤¾à¤²à¥‡ (पूरà¥à¤µà¤«à¥à¤²à¤¾à¤‡à¤Ÿ अंमलबजावणी à¤à¤°à¤°: <ph name="ERROR_NUMBER" />)</translation>
<translation id="6829250331733125857">आपलà¥â€à¤¯à¤¾ <ph name="DEVICE_TYPE" /> सह मदत मिळवा.</translation>
<translation id="6829270497922309893">आपलà¥â€à¤¯à¤¾ संसà¥â€à¤¥à¥‡à¤®à¤§à¥â€à¤¯à¥‡ नोंदणी करा</translation>
<translation id="682971198310367122">Google गोपनीयता धोरण</translation>
<translation id="6831043979455480757">भाषांतर करा</translation>
<translation id="683373380308365518">सà¥à¤®à¤¾à¤°à¥à¤Ÿ आणि सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ बà¥à¤°à¤¾à¤‰à¤à¤°à¤µà¤° बदला</translation>
<translation id="6835762382653651563">कृपया आपले <ph name="DEVICE_TYPE" /> अपडेट करणà¥â€à¤¯à¤¾à¤¸à¤¾à¤ à¥€ इंटरनेटशी कनेकà¥à¤Ÿ करा.</translation>
-<translation id="6839225236531462745">पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° हटविणे तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="6839225236531462745">पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° हटविणे à¤à¤°à¤°</translation>
<translation id="6840155290835956714">पाठविणà¥à¤¯à¤¾à¤ªà¥‚रà¥à¤µà¥€ विचारा</translation>
<translation id="6840184929775541289">पà¥à¤°à¤®à¤¾à¤£à¤¨ अधिकृतता नाही</translation>
<translation id="6840313690797192085">$1 PB</translation>
-<translation id="6841186874966388268">तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="6841186874966388268">à¤à¤°à¤°</translation>
<translation id="6843725295806269523">नि:शबà¥à¤¦ करा</translation>
<translation id="6845038076637626672">वाढवलेले उघडा</translation>
<translation id="6853388645642883916">अदà¥à¤¯à¤¤à¤¨à¤•à¤°à¥à¤¤à¤¾ निषà¥à¤•à¥à¤°à¤¿à¤¯ आहे</translation>
@@ -3782,7 +3783,7 @@
<translation id="6870888490422746447">यासह सामायिक करणà¥â€à¤¯à¤¾à¤¸à¤¾à¤ à¥€ à¤à¤• अॅप निवडा:</translation>
<translation id="6871644448911473373">OCSP पà¥à¤°à¤¤à¤¿à¤¸à¤¾à¤¦à¤•à¤°à¥à¤¤à¤¾: <ph name="LOCATION" /></translation>
<translation id="6872781471649843364">तà¥à¤®à¥à¤¹à¥€ टाकलेला पासवरà¥à¤¡ सरà¥à¤µà¥à¤¹à¤°à¤¨à¥‡ नाकारला होता.</translation>
-<translation id="6874681241562738119">साइन इन तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="6874681241562738119">साइन इन à¤à¤°à¤°</translation>
<translation id="687588960939994211">तसेच या डिवà¥à¤¹à¤¾à¤‡à¤¸à¤µà¤° संचयित केलेला आपला इतिहास, बà¥à¤•à¤®à¤¾à¤°à¥à¤•, सेटिंगà¥à¤œ आणि अनà¥à¤¯ Chrome डेटा साफ करा.</translation>
<translation id="6880587130513028875">या पृषà¥à¤ à¤¾à¤µà¤°à¥€à¤² पà¥à¤°à¤¤à¤¿à¤®à¤¾ अवरोधित केलेलà¥à¤¯à¤¾ होतà¥à¤¯à¤¾.</translation>
<translation id="6883319974225028188">अरेरे! डिवà¥à¤¹à¤¾à¤‡à¤¸ कॉनà¥à¤«à¤¿à¤—रेशन जतन करणà¥à¤¯à¤¾à¤¤ सिसà¥à¤Ÿà¤® अयशसà¥à¤µà¥€ à¤à¤¾à¤²à¥‡.</translation>
@@ -3917,7 +3918,7 @@
<translation id="708060913198414444">ऑडिओ पतà¥à¤¤à¤¾ कॉपी करा</translation>
<translation id="708278670402572152">सà¥à¤•à¥…निंग सà¥à¤°à¥‚ करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ डिसà¥à¤•à¤¨à¥‡à¤•à¥à¤Ÿ करा</translation>
<translation id="7084192839369222683">फकà¥à¤¤ महतà¥à¤µà¤¾à¤šà¥€ सामगà¥à¤°à¥€ चालवा</translation>
-<translation id="7088434364990739311">अपडेट तपासणी पà¥à¤°à¤¾à¤°à¤‚भ होणà¥â€à¤¯à¤¾à¤¤ अयशसà¥à¤µà¥€ (तà¥à¤°à¥à¤Ÿà¥€ कोड <ph name="ERROR" />).</translation>
+<translation id="7088434364990739311">अपडेट तपासणी पà¥à¤°à¤¾à¤°à¤‚भ होणà¥â€à¤¯à¤¾à¤¤ अयशसà¥à¤µà¥€ (à¤à¤°à¤° कोड <ph name="ERROR" />).</translation>
<translation id="7088561041432335295">Zip Archiver - Files अॅपमधà¥à¤¯à¥‡ à¤à¤¿à¤ª फायली उघडा आणि पॅक करा.</translation>
<translation id="7088674813905715446">हे डिवà¥â€à¤¹à¤¾à¤‡à¤¸ पà¥à¤°à¤¶à¤¾à¤¸à¤•à¤¾à¤¦à¥à¤µà¤¾à¤°à¥‡ तरतूद नसलेलà¥â€à¤¯à¤¾ सà¥â€à¤¥à¤¿à¤¤à¥€à¤®à¤§à¥à¤¯à¥‡ ठेवले गेले आहे. ते नोंदणीकरिता सकà¥à¤·à¤® करणà¥â€à¤¯à¤¾à¤¸à¤¾à¤ à¥€, कृपया आपलà¥â€à¤¯à¤¾ पà¥à¤°à¤¶à¤¾à¤¸à¤•à¤¾à¤¨à¥‡ डिवà¥â€à¤¹à¤¾à¤‡à¤¸ à¤à¤•à¤¾ पà¥à¤°à¤²à¤‚बित सà¥â€à¤¥à¤¿à¤¤à¥€à¤®à¤§à¥â€à¤¯à¥‡ ठेवावे.</translation>
<translation id="7092106376816104">पॉप-अप अपवाद</translation>
@@ -4013,7 +4014,7 @@
<translation id="7254951428499890870">आपण निदान मोडमधà¥à¤¯à¥‡ "<ph name="APP_NAME" />" लाà¤à¤š करू इचà¥à¤›à¤¿à¤¤à¤¾ याची आपलà¥à¤¯à¤¾à¤²à¤¾ खातà¥à¤°à¥€ आहे?</translation>
<translation id="7255220508626648026">कासà¥à¤Ÿ करीत आहे: <ph name="ROUTETITLE" /></translation>
<translation id="7255935316994522020">लागू करा</translation>
-<translation id="7256405249507348194">अपरिचित तà¥à¤°à¥à¤Ÿà¥€: <ph name="DESC" /></translation>
+<translation id="7256405249507348194">अपरिचित à¤à¤°à¤°: <ph name="DESC" /></translation>
<translation id="7256710573727326513">टॅबमधà¥à¤¯à¥‡ उघडा</translation>
<translation id="7257666756905341374">आपण कॉपी आणि पेसà¥à¤Ÿ करता तो डेटा वाचा</translation>
<translation id="7262004276116528033">ही साइन-इन सेवा <ph name="SAML_DOMAIN" /> दà¥à¤µà¤¾à¤°à¥‡ होसà¥à¤Ÿ केली जाते</translation>
@@ -4024,7 +4025,7 @@
<translation id="7273110280511444812"><ph name="DATE" /> रोजी अंतिम संलगà¥à¤¨ केले</translation>
<translation id="727441411541283857"><ph name="PERCENTAGE" />% - पूरà¥à¤£ होणà¥â€à¤¯à¤¾à¤¸ <ph name="TIME" /></translation>
<translation id="7278870042769914968">GTK+ थीम वापरा</translation>
-<translation id="727952162645687754">डाउनलोड तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="727952162645687754">डाउनलोड à¤à¤°à¤°</translation>
<translation id="7279701417129455881">कà¥à¤•à¥€ अवरोधित करणे वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ करा...</translation>
<translation id="7280877790564589615">परवानगीची विनंती केली</translation>
<translation id="7287143125007575591">पà¥à¤°à¤µà¥‡à¤¶ नाकारला.</translation>
@@ -4109,7 +4110,7 @@
<translation id="7409836189476010449">फà¥à¤²à¥…श चालवा</translation>
<translation id="7410344089573941623"><ph name="HOST" /> आपलà¥à¤¯à¤¾ कॅमेरा आणि मायकà¥à¤°à¥‹à¤«à¥‹à¤¨à¤µà¤° पà¥à¤°à¤µà¥‡à¤¶ करू इचà¥à¤›à¤¿à¤¤ असलà¥à¤¯à¤¾à¤¸ विचारा</translation>
<translation id="7412226954991670867">GPU मेमरी</translation>
-<translation id="7416362041876611053">अजà¥à¤žà¤¾à¤¤ नेटवरà¥à¤• तà¥à¤°à¥à¤Ÿà¥€.</translation>
+<translation id="7416362041876611053">अजà¥à¤žà¤¾à¤¤ नेटवरà¥à¤• à¤à¤°à¤°.</translation>
<translation id="7417705661718309329">Google नकाशा</translation>
<translation id="741906494724992817">हा अॅप ला कोणतà¥à¤¯à¤¾à¤¹à¥€ विशेष परवानगà¥à¤¯à¤¾à¤‚ची आवशà¥à¤¯à¤•à¤¤à¤¾ नाही.</translation>
<translation id="7421925624202799674">पृषà¥à¤  सà¥à¤¤à¥à¤°à¥‹à¤¤ &amp;पहा</translation>
@@ -4137,7 +4138,7 @@
<translation id="7464490149090366184">à¤à¤¿à¤ª करणे अयशसà¥à¤µà¥€, आयटम विदà¥à¤¯à¤®à¤¾à¤¨: "$1"</translation>
<translation id="7465778193084373987">Netscape पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° निरसà¥à¤¤à¥€à¤•à¤°à¤£ URL</translation>
<translation id="7469894403370665791">या नेटवरà¥à¤•à¤¶à¥€ सà¥à¤µà¤¯à¤‚चलितपणे कनेकà¥à¤Ÿ वà¥à¤¹à¤¾</translation>
-<translation id="747114903913869239">तà¥à¤°à¥à¤Ÿà¥€: विसà¥à¤¤à¤¾à¤° डीकोड करणà¥à¤¯à¤¾à¤¤ अकà¥à¤·à¤®</translation>
+<translation id="747114903913869239">à¤à¤°à¤°: विसà¥à¤¤à¤¾à¤° डीकोड करणà¥à¤¯à¤¾à¤¤ अकà¥à¤·à¤®</translation>
<translation id="7473891865547856676">नाही, नको</translation>
<translation id="747459581954555080">सरà¥à¤µ पà¥à¤¨à¤°à¥à¤¸à¤‚चयित करा</translation>
<translation id="7475671414023905704">Netscape पासवरà¥à¤¡ URL गमावली</translation>
@@ -4185,7 +4186,7 @@
<translation id="7530016656428373557">डिसà¥à¤šà¤¾à¤°à¥à¤œ रेट वॉटà¥à¤¸ मधà¥à¤¯à¥‡</translation>
<translation id="7536709149194614609">कृपया डिवà¥â€à¤¹à¤¾à¤‡à¤¸ रीसà¥à¤Ÿà¤¾à¤°à¥à¤Ÿ करा आणि नंतर पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा.</translation>
<translation id="7537601449003285327">टासà¥à¤•à¤¬à¤¾à¤°à¤µà¤° पिन करा</translation>
-<translation id="7540972813190816353">अपडेट तपासताना à¤à¤• तà¥à¤°à¥à¤Ÿà¥€ आली: <ph name="ERROR" /></translation>
+<translation id="7540972813190816353">अपडेट तपासताना à¤à¤• à¤à¤°à¤° आली: <ph name="ERROR" /></translation>
<translation id="7543104066686362383">या <ph name="IDS_SHORT_PRODUCT_NAME" /> डिवà¥â€à¤¹à¤¾à¤‡à¤¸à¤µà¤° डीबगिंग वैशिषà¥â€à¤Ÿà¥à¤¯à¥‡ सकà¥à¤·à¤® करा</translation>
<translation id="7544853251252956727">शफल करा</translation>
<translation id="7545415673537747415"><ph name="BEGIN_LINK" />Google कà¥à¤°à¤¿à¤¯à¤¾à¤•à¤²à¤¾à¤ª नियंतà¥à¤°à¤£à¥‡<ph name="END_LINK" /> मधून शोध, जाहिरात आणि इतर Google सेवा वैयकà¥à¤¤à¥€à¤•à¥ƒà¤¤ करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ Google आपला बà¥à¤°à¤¾à¤‰à¤à¤¿à¤‚ग इतिहास कसा वापरते ते नियंतà¥à¤°à¤¿à¤¤ करा.</translation>
@@ -4224,7 +4225,7 @@
<translation id="7589461650300748890">ओहो, तेथेच. काळजी घà¥à¤¯à¤¾.</translation>
<translation id="7589661784326793847">फकà¥à¤¤ à¤à¤• सेकंद पà¥à¤°à¤¤à¥€à¤•à¥à¤·à¤¾ करा</translation>
<translation id="7591957897535945411">हे पृषà¥à¤  भाषांतरित केले गेले आहे.</translation>
-<translation id="7595547011743502844"><ph name="ERROR" /> (तà¥à¤°à¥à¤Ÿà¥€ कोड <ph name="ERROR_CODE" />).</translation>
+<translation id="7595547011743502844"><ph name="ERROR" /> (à¤à¤°à¤° कोड <ph name="ERROR_CODE" />).</translation>
<translation id="7598466960084663009">काà¤à¤ªà¥à¤¯à¥à¤Ÿà¤° रीसà¥à¤Ÿà¤¾à¤°à¥à¤Ÿ करा</translation>
<translation id="7600965453749440009">कधीही <ph name="LANGUAGE" /> चा भाषांतर करॠनका</translation>
<translation id="760197030861754408">कनेकà¥à¤Ÿ करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ <ph name="LANDING_PAGE" /> वर जा.</translation>
@@ -4302,7 +4303,7 @@
<translation id="773426152488311044">आपण सधà¥â€à¤¯à¤¾ केवळ <ph name="PRODUCT_NAME" /> वापरकरà¥à¤¤à¤¾ आहात.</translation>
<translation id="7740996059027112821">मानक</translation>
<translation id="7742762435724633909">पà¥à¤°à¤¦à¤¾à¤¤à¥à¤¯à¤¾à¤šà¥‡ नाव:</translation>
-<translation id="774465434535803574">Pack विसà¥à¤¤à¤¾à¤° तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="774465434535803574">Pack विसà¥à¤¤à¤¾à¤° à¤à¤°à¤°</translation>
<translation id="7748528009589593815">मागील टॅब</translation>
<translation id="7751260505918304024">सरà¥à¤µ दरà¥à¤¶à¤µà¤¾</translation>
<translation id="7754704193130578113">डाउनलोड करणà¥à¤¯à¤¾à¤ªà¥‚रà¥à¤µà¥€ पà¥à¤°à¤¤à¥à¤¯à¥‡à¤• फाइल कोठे जतन करावी ते विचारा</translation>
@@ -4384,7 +4385,7 @@
<translation id="786957569166715433"><ph name="DEVICE_NAME" /> - जोडणी केली</translation>
<translation id="7870790288828963061">नवीन आवृतà¥à¤¤à¥€à¤¸à¤¹ कोणतेही कियोसà¥à¤• अॅपà¥à¤¸ आढळले नाहीत. काहीही अपडेट करू नका. कृपया USB सà¥à¤Ÿà¤¿à¤• काढा.</translation>
<translation id="7874357055309047713">नेहमी सरà¥à¤µ साइटवर चालवा</translation>
-<translation id="7877451762676714207">अजà¥à¤žà¤¾à¤¤ सरà¥à¤µà¥à¤¹à¤° तà¥à¤°à¥à¤Ÿà¥€. कृपया पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा किंवा सरà¥à¤µà¥à¤¹à¤° पà¥à¤°à¤¶à¤¾à¤¸à¤•à¤¾à¤¶à¥€ संपरà¥à¤• साधा.</translation>
+<translation id="7877451762676714207">अजà¥à¤žà¤¾à¤¤ सरà¥à¤µà¥à¤¹à¤° à¤à¤°à¤°. कृपया पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा किंवा सरà¥à¤µà¥à¤¹à¤° पà¥à¤°à¤¶à¤¾à¤¸à¤•à¤¾à¤¶à¥€ संपरà¥à¤• साधा.</translation>
<translation id="7877680364634660272">टूर</translation>
<translation id="7878562273885520351">तà¥à¤®à¤šà¥à¤¯à¤¾ पासवरà¥à¤¡à¤¶à¥€ तडजोड होत असलà¥à¤¯à¤¾à¤šà¥€ शकà¥à¤¯à¤¤à¤¾ आहे</translation>
<translation id="7881483672146086348">खाते पहा</translation>
@@ -4452,7 +4453,7 @@
<translation id="7974936243149753750">ओवà¥à¤¹à¤°à¤¸à¥à¤•à¥…न</translation>
<translation id="7977551819349545646">Chromebox अपडेट करत आहे...</translation>
<translation id="7978412674231730200">खाजगी की</translation>
-<translation id="7979036127916589816">समकà¥à¤°à¤®à¤£ तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="7979036127916589816">समकà¥à¤°à¤®à¤£ à¤à¤°à¤°</translation>
<translation id="7980084013673500153">मालमतà¥à¤¤à¤¾ आयडी: <ph name="ASSET_ID" /></translation>
<translation id="7982083145464587921">कृपया या तà¥à¤°à¥à¤Ÿà¥€à¤šà¥‡ निराकरण करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ आपले डिवà¥à¤¹à¤¾à¤‡à¤¸ रीसà¥à¤Ÿà¤¾à¤°à¥à¤Ÿ करा.</translation>
<translation id="7982283708762922719">उंची</translation>
@@ -4579,7 +4580,7 @@
<translation id="8154790740888707867">फाईल नाही</translation>
<translation id="815491593104042026">अरेरे! पà¥à¤°à¤®à¤¾à¤£à¥€à¤•à¤°à¤£ अ-सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ (<ph name="BLOCKED_URL" />) URL वापरणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ कॉनà¥à¤«à¤¿à¤—र केलà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ ते अयशसà¥à¤µà¥€ à¤à¤¾à¤²à¥‡. कृपया आपलà¥à¤¯à¤¾ पà¥à¤°à¤¶à¤¾à¤¸à¤•à¤¾à¤¶à¥€ संपरà¥à¤• साधा.</translation>
<translation id="8157939133946352716">7x5</translation>
-<translation id="816055135686411707">पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° विशà¥à¤µà¤¾à¤¸ सेट करताना तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="816055135686411707">पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° विशà¥à¤µà¤¾à¤¸ सेट करताना à¤à¤°à¤°</translation>
<translation id="816095449251911490"><ph name="SPEED" /> - <ph name="RECEIVED_AMOUNT" />, <ph name="TIME_REMAINING" /></translation>
<translation id="8162857629993139764">नवीन टीप तयार करा</translation>
<translation id="8165208966034452696"><ph name="PLUGIN_NAME" /></translation>
@@ -4837,7 +4838,7 @@
<translation id="8620617069779373398">रोमिंग सà¥à¤¥à¤¿à¤¤à¥€</translation>
<translation id="8620765578342452535">नेटवरà¥à¤• कनेकà¥â€à¤¶à¤¨ कॉनà¥à¤«à¤¿à¤—र करा</translation>
<translation id="8623004009673949077">'kiosk_only' मॅनिफेसà¥à¤Ÿ विशेषता असलेला अâ€à¥…प Chrome OS कियोसà¥à¤• मोडमधà¥à¤¯à¥‡ इंसà¥à¤Ÿà¥‰à¤² करणे आवशà¥à¤¯à¤• आहे.</translation>
-<translation id="8624205858755890468">साहायà¥à¤¯à¤•à¤¾à¤²à¤¾ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ संबंधित माहिती, अâ€à¥…पà¥à¤¸ आणि कृती दाखवू देतो.</translation>
+<translation id="8624205858755890468">Assistant ला तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ संबंधित माहिती, अâ€à¥…पà¥à¤¸ आणि कà¥à¤°à¤¿à¤¯à¤¾ दाखवू देते.</translation>
<translation id="862542460444371744">&amp;विसà¥à¤¤à¤¾à¤°</translation>
<translation id="8627151598708688654">सà¥à¤¤à¥à¤°à¥‹à¤¤ निवडा</translation>
<translation id="862727964348362408">निलंबित</translation>
@@ -4915,8 +4916,8 @@
<translation id="8724859055372736596">फोलà¥à¤¡à¤°à¤®à¤§à¥à¤¯à¥‡ &amp;दरà¥à¤¶à¤µà¤¾</translation>
<translation id="8725066075913043281">पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा</translation>
<translation id="8725178340343806893">मनपसंत/बà¥à¤•à¤®à¤¾à¤°à¥à¤•</translation>
-<translation id="8726206820263995930">सरà¥à¤µà¥à¤¹à¤°à¤µà¤°à¥‚न धोरण सेटिंगà¥à¤œ आणताना तà¥à¤°à¥à¤Ÿà¥€: <ph name="CLIENT_ERROR" />.</translation>
-<translation id="8726718463424335668">आयात करणे वगळा</translation>
+<translation id="8726206820263995930">सरà¥à¤µà¥à¤¹à¤°à¤µà¤°à¥‚न धोरण सेटिंगà¥à¤œ आणताना à¤à¤°à¤°: <ph name="CLIENT_ERROR" />.</translation>
+<translation id="8726718463424335668">आयात वगळा</translation>
<translation id="8727142376512517020">हे पà¥à¤¨à¥à¤¹à¤¾ दरà¥à¤¶à¤µà¥‚ नका</translation>
<translation id="8730621377337864115">पूरà¥à¤£ à¤à¤¾à¤²à¥‡</translation>
<translation id="8732030010853991079">या चिनà¥à¤¹à¤¾à¤µà¤° कà¥à¤²à¤¿à¤• करà¥à¤¨ हा विसà¥à¤¤à¤¾à¤° वापरा.</translation>
@@ -4964,7 +4965,7 @@
<translation id="8800004011501252845">यासाठी गंतवà¥à¤¯à¥‡ दरà¥à¤¶à¤µà¤¤ आहे</translation>
<translation id="8800420788467349919">वà¥à¤¹à¥‰à¤²à¥à¤¯à¥‚म: <ph name="PRECENTAGE" />%</translation>
<translation id="8803953437405899238">à¤à¤•à¤¾ कà¥à¤²à¤¿à¤•à¤¨à¥‡ à¤à¤• नवीन टॅब उघडा</translation>
-<translation id="8804398419035066391">वेबसाइटला सहकारà¥à¤¯ करून संपà¥à¤°à¥‡à¤·à¤£ करा</translation>
+<translation id="8804398419035066391">वेबसाइटला सहकारà¥à¤¯ करून संवाद पà¥à¤°à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ करा</translation>
<translation id="8805140816472474147">सिंक करणे सà¥à¤°à¥‚ करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ सिंक सेटिंगà¥à¤œà¤šà¥€ पà¥à¤·à¥à¤Ÿà¥€ करा.</translation>
<translation id="8807632654848257479">सà¥à¤¥à¤¿à¤°</translation>
<translation id="8808478386290700967">वेब सà¥à¤Ÿà¥‹à¤…र</translation>
@@ -5059,7 +5060,7 @@
<translation id="8948677146203372548">अपडेट यशसà¥à¤µà¥€ à¤à¤¾à¤²à¥‡. आता आपण Android अॅपà¥à¤¸ वापरू शकता.</translation>
<translation id="894871326938397531">गà¥à¤ªà¥à¤¤ मोड सोडायचा?</translation>
<translation id="895347679606913382">पà¥à¤°à¤¾à¤°à¤‚भ करीत आहे...</translation>
-<translation id="8954952943849489823">हलविणे अयशसà¥à¤µà¥€ अनपेकà¥à¤·à¤¿à¤¤ तà¥à¤°à¥à¤Ÿà¥€: $1</translation>
+<translation id="8954952943849489823">हलविणे अयशसà¥à¤µà¥€ अनपेकà¥à¤·à¤¿à¤¤ à¤à¤°à¤°: $1</translation>
<translation id="895586998699996576">$1 पà¥à¤°à¤¤à¤¿à¤®à¤¾</translation>
<translation id="8957423540740801332">उजवे</translation>
<translation id="8958084571232797708">सà¥à¤µà¤¯à¤‚कॉनà¥à¤«à¤¿à¤—रेशन URL वापरा</translation>
@@ -5197,8 +5198,8 @@
<translation id="9153934054460603056">ओळख आणि पासवरà¥à¤¡ सेवà¥à¤¹ करा</translation>
<translation id="9154194610265714752">अपडेट केलेले</translation>
<translation id="9154418932169119429">ही पà¥à¤°à¤¤à¤¿à¤®à¤¾ ऑफलाइन उपलबà¥à¤§ नाही.</translation>
-<translation id="9157697743260533322">सरà¥à¤µ वापरकरà¥à¤¤à¥à¤¯à¤¾à¤‚साठी सà¥à¤µà¤¯à¤‚चलित अपडेट सेट करणà¥à¤¯à¤¾à¤¤ अयशसà¥à¤µà¥€ à¤à¤¾à¤²à¥‡ (पूरà¥à¤µà¤«à¥à¤²à¤¾à¤‡à¤Ÿ लाà¤à¤š तà¥à¤°à¥à¤Ÿà¥€: <ph name="ERROR_NUMBER" />)</translation>
-<translation id="9158715103698450907">अरेरे! पà¥à¤°à¤®à¤¾à¤£à¥€à¤•à¤°à¤£à¤¾à¤¦à¤°à¤®à¥à¤¯à¤¾à¤¨ à¤à¤• नेटवरà¥à¤• संपà¥à¤°à¥‡à¤·à¤£ समसà¥à¤¯à¤¾ आली. कृपया आपले नेटवरà¥à¤• कनेकà¥à¤¶à¤¨ तपासा आणि पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा.</translation>
+<translation id="9157697743260533322">सरà¥à¤µ वापरकरà¥à¤¤à¥à¤¯à¤¾à¤‚साठी सà¥à¤µà¤¯à¤‚चलित अपडेट सेट करणà¥à¤¯à¤¾à¤¤ अयशसà¥à¤µà¥€ à¤à¤¾à¤²à¥‡ (पूरà¥à¤µà¤«à¥à¤²à¤¾à¤‡à¤Ÿ लाà¤à¤š à¤à¤°à¤°: <ph name="ERROR_NUMBER" />)</translation>
+<translation id="9158715103698450907">अरेरे! पà¥à¤°à¤®à¤¾à¤£à¥€à¤•à¤°à¤£à¤¾à¤¦à¤°à¤®à¥à¤¯à¤¾à¤¨ à¤à¤• नेटवरà¥à¤• संवाद पà¥à¤°à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ समसà¥à¤¯à¤¾ आली. कृपया आपले नेटवरà¥à¤• कनेकà¥à¤¶à¤¨ तपासा आणि पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा.</translation>
<translation id="9161070040817969420">यासाठी सबफà¥à¤°à¥‡à¤®: <ph name="PARENT_SITE" /></translation>
<translation id="9169496697824289689">कीबोरà¥à¤¡ शॉरà¥à¤Ÿà¤•à¤Ÿ पहा</translation>
<translation id="9170397650136757332">आपलà¥à¤¯à¤¾ फिंगरपà¥à¤°à¤¿à¤‚टचे सरà¥à¤µ भिनà¥à¤¨ भाग कॅपà¥à¤šà¤° करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ आता आपले बोट किंचित हलवा</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_ms.xtb b/chromium/chrome/app/resources/generated_resources_ms.xtb
index 2e9f674f6d8..d19eb18921b 100644
--- a/chromium/chrome/app/resources/generated_resources_ms.xtb
+++ b/chromium/chrome/app/resources/generated_resources_ms.xtb
@@ -14,7 +14,7 @@
<translation id="1016566241875885511">Maklumat tambahan (pilihan)</translation>
<translation id="1017280919048282932">&amp;Tambah ke kamus</translation>
<translation id="1018656279737460067">Dibatalkan</translation>
-<translation id="102272308210570439">Benarkan Assistant menggunakan item yang ada pada skrin anda</translation>
+<translation id="102272308210570439">Biarkan Pembantu menggunakan apa yang ada pada skrin anda</translation>
<translation id="1026822031284433028">Muatkan Imej</translation>
<translation id="1029317248976101138">Zum</translation>
<translation id="1031362278801463162">Memuatkan pratonton</translation>
@@ -2871,7 +2871,7 @@ Tekan sebarang kekunci untuk terus meneroka.</translation>
<translation id="5438224778284622050">Padam fail luar talian?</translation>
<translation id="5438430601586617544">(Nyahpadat)</translation>
<translation id="544083962418256601">Buat pintasan...</translation>
-<translation id="5442550868130618860">Hidupkan autokemas kini</translation>
+<translation id="5442550868130618860">Hidupkan kemas kini automatik</translation>
<translation id="5446983216438178612">Tunjukkan sijil untuk organisasi</translation>
<translation id="5448293924669608770">Op, sesuatu telah berlaku dengan log masuk</translation>
<translation id="5449551289610225147">Kata laluan tidak sah</translation>
@@ -3026,6 +3026,7 @@ Tekan sebarang kekunci untuk terus meneroka.</translation>
<translation id="5678955352098267522">Baca data anda di <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Pengecam Aset</translation>
<translation id="5687326903064479980">Zon waktu</translation>
+<translation id="5689516760719285838">Lokasi</translation>
<translation id="56907980372820799">Pautkan data</translation>
<translation id="5691511426247308406">Keluarga</translation>
<translation id="5691596662111998220">Op, <ph name="FILE_NAME" /> tidak lagi wujud.</translation>
@@ -4846,7 +4847,7 @@ perubahan ini berlaku, anda mungkin tidak mahukannya.</translation>
<translation id="8620617069779373398">Status perayauan</translation>
<translation id="8620765578342452535">Konfigurasikan sambungan rangkaian</translation>
<translation id="8623004009673949077">Apl dengan atribut manifes 'kiosk_only' mesti dipasang dalam mod kios Chrome OS.</translation>
-<translation id="8624205858755890468">Mendayakan Assistant untuk menunjukkan maklumat, apl dan tindakan yang berkaitan kepada anda.</translation>
+<translation id="8624205858755890468">Mendayakan Pembantu untuk menunjukkan maklumat, apl dan tindakan yang berkaitan kepada anda.</translation>
<translation id="862542460444371744">&amp;Sambungan</translation>
<translation id="8627151598708688654">Pilih sumber</translation>
<translation id="862727964348362408">Digantung</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_nl.xtb b/chromium/chrome/app/resources/generated_resources_nl.xtb
index 842a821d41a..6731413d1c5 100644
--- a/chromium/chrome/app/resources/generated_resources_nl.xtb
+++ b/chromium/chrome/app/resources/generated_resources_nl.xtb
@@ -126,7 +126,7 @@
<translation id="1187722533808055681">Activeringen vanuit inactief</translation>
<translation id="1188807932851744811">Logbestand niet geüpload.</translation>
<translation id="1189418886587279221">Schakel toegankelijkheidsfuncties in om je apparaat gebruiksvriendelijker te maken.</translation>
-<translation id="1190144681599273207">Voor het ophalen van dit bestand wordt ongeveer <ph name="FILE_SIZE" /> aan mobiele gegevens gebruikt.</translation>
+<translation id="1190144681599273207">Voor het ophalen van dit bestand wordt ongeveer <ph name="FILE_SIZE" /> aan mobiele data gebruikt.</translation>
<translation id="11901918071949011">{NUM_FILES,plural, =1{Toegang tot een bestand dat op je computer is opgeslagen}other{Toegang tot # bestanden die op je computer zijn opgeslagen}}</translation>
<translation id="1195076408729068893">Als je Smart Lock wilt starten, geef je je wachtwoord op. De volgende keer kun je je <ph name="DEVICE_TYPE" /> ontgrendelen met je telefoon.</translation>
<translation id="1195447618553298278">Onbekende fout</translation>
@@ -369,7 +369,7 @@
<translation id="1548132948283577726">Sites die nooit wachtwoorden opslaan, worden hier weergegeven.</translation>
<translation id="1549045574060481141">Downloaden bevestigen</translation>
<translation id="1549078091075571455">Wil je dat Google deze pagina vertaalt van het <ph name="SOURCE_LANGUAGE" /> naar het <ph name="TARGET_LANGUAGE" />?</translation>
-<translation id="1549788673239553762"><ph name="APP_NAME" /> wil toegang tot <ph name="VOLUME_NAME" />. Hierdoor worden uw bestanden mogelijk aangepast of verwijderd.</translation>
+<translation id="1549788673239553762"><ph name="APP_NAME" /> wil toegang tot <ph name="VOLUME_NAME" />. Hierdoor worden je bestanden mogelijk aangepast of verwijderd.</translation>
<translation id="1553538517812678578">onbeperkt</translation>
<translation id="1554390798506296774">Plug-ins zonder sandbox altijd toestaan op <ph name="HOST" /></translation>
<translation id="1556189134700913550">Op alles toepassen</translation>
@@ -1201,7 +1201,7 @@ Ik denk niet dat deze site moet worden geblokkeerd.</translation>
<translation id="2815500128677761940">Bladwijzerbalk</translation>
<translation id="2815693974042551705">Bladwijzer voor map toevoegen</translation>
<translation id="2818476747334107629">Printergegevens</translation>
-<translation id="2820957248982571256">Scannen...</translation>
+<translation id="2820957248982571256">Scannen…</translation>
<translation id="2822634587701817431">Verkleinen/vergroten</translation>
<translation id="2825758591930162672">Openbare sleutel van entiteit</translation>
<translation id="2828650939514476812">Verbinding maken met een wifi-netwerk</translation>
@@ -1295,7 +1295,7 @@ Ik denk niet dat deze site moet worden geblokkeerd.</translation>
<translation id="2961090598421146107"><ph name="CERTIFICATE_NAME" /> (door extensie geleverd)</translation>
<translation id="2961695502793809356">Klik om verder te gaan, houd ingedrukt om de geschiedenis weer te geven</translation>
<translation id="2963151496262057773">De volgende plug-in reageert niet meer: <ph name="PLUGIN_NAME" />Wil je deze beëindigen?</translation>
-<translation id="2966449113954629791">Je hebt misschien je mobiele gegevensquotum verbruikt. Ga naar de activeringsportal van <ph name="NAME" /> om meer gegevens te kopen.</translation>
+<translation id="2966449113954629791">Je hebt misschien je quotum voor mobiele data verbruikt. Ga naar de activeringsportal van <ph name="NAME" /> om meer data te kopen.</translation>
<translation id="2966937470348689686">Android-voorkeuren beheren</translation>
<translation id="2971033837577180453">&lt;span&gt;ID:&lt;/span&gt;<ph name="EXTENSION_ID" /></translation>
<translation id="2971213274238188218">helderheid lager</translation>
@@ -1424,7 +1424,7 @@ Ga naar ons <ph name="BEGIN_LINK" />Helpcentrum<ph name="END_LINK" /> voor meer
<translation id="3144647712221361880">Link openen als</translation>
<translation id="3149510190863420837">Chrome-apps</translation>
<translation id="3150927491400159470">Geforceerd opnieuw laden</translation>
-<translation id="315116470104423982">Mobiele gegevens</translation>
+<translation id="315116470104423982">Mobiele data</translation>
<translation id="3151539355209957474">Begintijd</translation>
<translation id="3151562827395986343">Geschiedenis, cookies, cache en meer wissen</translation>
<translation id="3151786313568798007">Stand</translation>
@@ -1782,7 +1782,7 @@ van <ph name="DOWNLOAD_DOMAIN" /></translation>
<translation id="3681311097828166361">Bedankt voor je feedback. Je bent nu offline en je rapport wordt later verzonden.</translation>
<translation id="3683023058278427253">We hebben meerdere licentietypen gedetecteerd voor je domein. Kies er een om door te gaan.</translation>
<translation id="3683524264665795342">Verzoek voor scherm delen van <ph name="APP_NAME" /></translation>
-<translation id="3685122418104378273">De synchronisatie van Google Drive is bij het gebruik van mobiele gegevens standaard uitgeschakeld.</translation>
+<translation id="3685122418104378273">De synchronisatie van Google Drive is bij het gebruik van mobiele data standaard uitgeschakeld.</translation>
<translation id="368789413795732264">Er is een fout opgetreden bij het genereren van het bestand: <ph name="ERROR_TEXT" />.</translation>
<translation id="3688507211863392146">Schrijven naar bestanden en mappen die je opent in de app</translation>
<translation id="3688526734140524629">Kanaal wijzigen</translation>
@@ -2134,7 +2134,7 @@ van <ph name="DOWNLOAD_DOMAIN" /></translation>
<translation id="4261901459838235729">Google-presentatie</translation>
<translation id="4262366363486082931">Focus op werkbalk</translation>
<translation id="4263757076580287579">Printerregistratie is geannuleerd.</translation>
-<translation id="426564820080660648">Gebruik Ethernet, wifi of mobiele gegevens om op updates te controleren.</translation>
+<translation id="426564820080660648">Gebruik Ethernet, wifi of mobiele data om op updates te controleren.</translation>
<translation id="4268025649754414643">Sleutelcodering</translation>
<translation id="4270393598798225102">Versie <ph name="NUMBER" /></translation>
<translation id="4271396100647220620">Geen overeenkomsten</translation>
@@ -2398,7 +2398,7 @@ Druk op een toets om door te gaan met verkennen.</translation>
<translation id="4716483597559580346">Powerwash voor extra beveiliging</translation>
<translation id="471800408830181311">Uitvoer van persoonlijke sleutel is mislukt.</translation>
<translation id="4720113199587244118">Apparaten toevoegen</translation>
-<translation id="4720185134442950733">Mobiel gegevensnetwerk</translation>
+<translation id="4720185134442950733">Mobiel datanetwerk</translation>
<translation id="4722920479021006856"><ph name="APP_NAME" /> deelt je scherm.</translation>
<translation id="4724450788351008910">Relatie is gewijzigd</translation>
<translation id="4724850507808590449">Er is een back-up van <ph name="FILE_COUNT" /> foto's gemaakt</translation>
@@ -2689,7 +2689,7 @@ Druk op een toets om door te gaan met verkennen.</translation>
<translation id="5175870427301879686"><ph name="URL" /> vraagt toestemming om permanent gegevens op je lokale computer op te slaan.</translation>
<translation id="5177479852722101802">Toegang tot de camera en microfoon blijven blokkeren</translation>
<translation id="5177526793333269655">Miniatuurweergave</translation>
-<translation id="5177549709747445269">Je gebruikt mobiele gegevens</translation>
+<translation id="5177549709747445269">Je gebruikt mobiele data</translation>
<translation id="5178667623289523808">Zoek vorige</translation>
<translation id="5181140330217080051">Downloaden</translation>
<translation id="5184063094292164363">&amp;JavaScript-console</translation>
@@ -3027,6 +3027,7 @@ Druk op een toets om door te gaan met verkennen.</translation>
<translation id="5678955352098267522">Je gegevens voor <ph name="WEBSITE_1" /> lezen</translation>
<translation id="5684661240348539843">Item-ID</translation>
<translation id="5687326903064479980">Tijdzone</translation>
+<translation id="5689516760719285838">Locatie</translation>
<translation id="56907980372820799">Gegevens koppelen</translation>
<translation id="5691511426247308406">Familie</translation>
<translation id="5691596662111998220"><ph name="FILE_NAME" /> bestaat niet meer.</translation>
@@ -3825,7 +3826,7 @@ Druk op een toets om door te gaan met verkennen.</translation>
<translation id="6955446738988643816">Pop-up controleren</translation>
<translation id="6957231940976260713">Servicenaam</translation>
<translation id="695755122858488207">Niet-geselecteerd keuzerondje</translation>
-<translation id="696203921837389374">Synchroniseren via mobiele gegevens inschakelen</translation>
+<translation id="696203921837389374">Synchroniseren via mobiele data inschakelen</translation>
<translation id="6964390816189577014">Held</translation>
<translation id="6965382102122355670">OK</translation>
<translation id="6965648386495488594">Poort</translation>
@@ -3927,7 +3928,7 @@ Druk op een toets om door te gaan met verkennen.</translation>
<translation id="7084192839369222683">Alleen belangrijke content uitvoeren</translation>
<translation id="7088434364990739311">Het starten van de updatecontrole is mislukt (foutcode <ph name="ERROR" />).</translation>
<translation id="7088561041432335295">Zip Archiver: zip-bestanden openen en inpakken in de Bestanden-app.</translation>
-<translation id="7088674813905715446">Dit apparaat is uit bedrijf genomen door de beheerder. Vraag uw beheerder om het apparaat op 'in behandeling' in te stellen, zodat het kan worden aangemeld.</translation>
+<translation id="7088674813905715446">Dit apparaat is uit bedrijf genomen door de beheerder. Vraag je beheerder om het apparaat op 'in behandeling' in te stellen, zodat het kan worden aangemeld.</translation>
<translation id="7092106376816104">Uitzonderingen voor pop-ups</translation>
<translation id="7093434536568905704">GTK+</translation>
<translation id="7093866338626856921">Gegevens uitwisselen met de apparaten met de naam: <ph name="HOSTNAMES" /></translation>
@@ -4373,7 +4374,7 @@ Druk op een toets om door te gaan met verkennen.</translation>
<translation id="7837776265184002579">Je homepage is gewijzigd in <ph name="URL" />.</translation>
<translation id="7839051173341654115">Media bekijken/back-up maken</translation>
<translation id="7839192898639727867">Sleutel-ID van certificaatonderwerp</translation>
-<translation id="7839804798877833423">Voor het ophalen van deze bestanden wordt ongeveer <ph name="FILE_SIZE" /> aan mobiele gegevens gebruikt.</translation>
+<translation id="7839804798877833423">Voor het ophalen van deze bestanden wordt ongeveer <ph name="FILE_SIZE" /> aan mobiele data gebruikt.</translation>
<translation id="7844992432319478437">Diff bijwerken</translation>
<translation id="7846076177841592234">Selectie opheffen</translation>
<translation id="7846634333498149051">Toetsenbord</translation>
@@ -4427,7 +4428,7 @@ Druk op een toets om door te gaan met verkennen.</translation>
<translation id="7915471803647590281">Vertel ons wat er aan de hand is voordat je de feedback verzendt.</translation>
<translation id="7925247922861151263">AAA-controle mislukt</translation>
<translation id="7925285046818567682">Wachten op <ph name="HOST_NAME" />...</translation>
-<translation id="7925686952655276919">Geen mobiele gegevens gebruiken voor synchronisatie</translation>
+<translation id="7925686952655276919">Geen mobiele data gebruiken voor synchronisatie</translation>
<translation id="7926423016278357561">Dit was ik niet.</translation>
<translation id="7928710562641958568">Apparaat uitwerpen</translation>
<translation id="79312157130859720"><ph name="APP_NAME" /> deelt je scherm en audio.</translation>
@@ -4576,7 +4577,7 @@ Bewaar je sleutelbestand op een veilige plaats. Je hebt het bestand nodig om nie
<translation id="8138082791834443598">Optioneel: Voer nieuwe informatie in of update bestaande informatie die aan dit apparaat moet worden gekoppeld.</translation>
<translation id="813913629614996137">Starten...</translation>
<translation id="8140778357236808512">Een bestaande gebruiker met beperkte rechten importeren</translation>
-<translation id="8141725884565838206">Uw wachtwoorden beheren</translation>
+<translation id="8141725884565838206">Je wachtwoorden beheren</translation>
<translation id="8142732521333266922">OK, alles synchroniseren</translation>
<translation id="8143442547342702591">Ongeldige app</translation>
<translation id="8146177459103116374">Als je al bent geregistreerd op dit apparaat, kun je <ph name="LINK2_START" />inloggen als een bestaande gebruiker<ph name="LINK2_END" />.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_no.xtb b/chromium/chrome/app/resources/generated_resources_no.xtb
index b219b7b9962..6026a4a85c7 100644
--- a/chromium/chrome/app/resources/generated_resources_no.xtb
+++ b/chromium/chrome/app/resources/generated_resources_no.xtb
@@ -347,7 +347,7 @@
<translation id="151501797353681931">Importert fra Safari</translation>
<translation id="1515163294334130951">Start</translation>
<translation id="1521442365706402292">Administrer sertifikater</translation>
-<translation id="152234381334907219">Aldri lagrede</translation>
+<translation id="152234381334907219">Aldri lagret</translation>
<translation id="1524430321211440688">Tastatur</translation>
<translation id="1526560967942511387">Dokument uten tittel</translation>
<translation id="1526925867532626635">Bekreft innstillingene for synkronisering</translation>
@@ -2261,7 +2261,7 @@ Trykk på en tast for å fortsette økten.</translation>
<translation id="4514542542275172126">Konfigurer en ny administrert bruker</translation>
<translation id="451515744433878153">Fjern</translation>
<translation id="4518677423782794009">Krasjer Chrome? Ser du uvanlige oppstartssider, verktøyrader eller uventede annonser du ikke blir kvitt? Eller blir nettleserbruken endret på annen måte? Det kan hende du kan løse problemet ved å kjøre opprydningsverktøyet for Chrome.</translation>
-<translation id="4520385623207007473">Informasjonskapsler som er i bruk</translation>
+<translation id="4520385623207007473">Informasjonskapsler i bruk</translation>
<translation id="452039078290142656">ukjente enheter fra <ph name="VENDOR_NAME" /></translation>
<translation id="4522570452068850558">Detaljer</translation>
<translation id="4530494379350999373">Opprinnelse</translation>
@@ -2398,7 +2398,7 @@ Trykk på en tast for å fortsette økten.</translation>
<translation id="4728558894243024398">Plattform</translation>
<translation id="4731422630970790516">Hylleelement 3</translation>
<translation id="4732760563705710320">Beklager. Denne videoen støttes ikke av castenheten din.</translation>
-<translation id="4733793249294335256">Plassering</translation>
+<translation id="4733793249294335256">Sted</translation>
<translation id="4734518477988699048">Inndataverdien er ugyldig.</translation>
<translation id="473546211690256853">Denne kontoen administreres av <ph name="DOMAIN" />.</translation>
<translation id="4737715515457435632">Du må koble til et nettverk</translation>
@@ -2764,7 +2764,7 @@ Trykk på en tast for å fortsette økten.</translation>
<translation id="5299682071747318445">Alle dataene er kryptert med passordfrasen din</translation>
<translation id="5300589172476337783">Vis</translation>
<translation id="5301751748813680278">GÃ¥r inn som gjest.</translation>
-<translation id="5301954838959518834">OK, skjønner</translation>
+<translation id="5301954838959518834">Greit</translation>
<translation id="5302048478445481009">Språk</translation>
<translation id="5305688511332277257">Ingen installert</translation>
<translation id="5308380583665731573">Koble til</translation>
@@ -3017,6 +3017,7 @@ Trykk på en tast for å fortsette økten.</translation>
<translation id="5678955352098267522">Les dataene dine på <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Ressursidentifikator</translation>
<translation id="5687326903064479980">Tidssone</translation>
+<translation id="5689516760719285838">Sted</translation>
<translation id="56907980372820799">Koble sammen data</translation>
<translation id="5691511426247308406">Familie</translation>
<translation id="5691596662111998220">Beklager, <ph name="FILE_NAME" /> eksisterer ikke lenger.</translation>
@@ -4827,7 +4828,7 @@ Oppbevar nøkkelfilen på et trygt sted. Du får bruk for den når du skal oppre
<translation id="8620617069779373398">Status for roaming</translation>
<translation id="8620765578342452535">Konfigurering av nettverkstilkoblinger</translation>
<translation id="8623004009673949077">Apper med manifest-attributtet «kiosk_only» må være installert i Chrome OS-kioskmodus.</translation>
-<translation id="8624205858755890468">Gjør at assistenten kan vise deg relatert informasjon, relaterte apper og handlinger.</translation>
+<translation id="8624205858755890468">Gjør at assistenten kan vise deg relatert informasjon og relaterte apper og handlinger.</translation>
<translation id="862542460444371744">&amp;Utvidelser</translation>
<translation id="8627151598708688654">Velg kilde</translation>
<translation id="862727964348362408">Stanset</translation>
@@ -4995,7 +4996,7 @@ Oppbevar nøkkelfilen på et trygt sted. Du får bruk for den når du skal oppre
<translation id="8870413625673593573">Nylig lukket</translation>
<translation id="8871551568777368300">Festet av administratoren</translation>
<translation id="8871696467337989339">Du bruker et kommandolinjeflagg som ikke håndteres: <ph name="BAD_FLAG" />. Dette vil skade stabiliteten og sikkerheten.</translation>
-<translation id="8871974300055371298">Innstillinger for innhold</translation>
+<translation id="8871974300055371298">Innholdsinnstillinger</translation>
<translation id="8872155268274985541">Fant ugyldig ekstern manifestfil for Kiosk-oppdatering. Kunne ikke oppdatere Kiosk-appen. Ta ut USB-pinnen.</translation>
<translation id="8874184842967597500">Ikke tilkoblet</translation>
<translation id="8876215549894133151">Format:</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_pl.xtb b/chromium/chrome/app/resources/generated_resources_pl.xtb
index ccf86fc2ff6..a8a0b42fd44 100644
--- a/chromium/chrome/app/resources/generated_resources_pl.xtb
+++ b/chromium/chrome/app/resources/generated_resources_pl.xtb
@@ -3,7 +3,7 @@
<translationbundle lang="pl">
<translation id="1000498691615767391">Wybierz folder do otwarcia</translation>
<translation id="1003088604756913841">Otwórz link w nowym oknie aplikacji <ph name="APP" /></translation>
-<translation id="1005274289863221750">Korzystać z Twojego mikrofonu i kamery</translation>
+<translation id="1005274289863221750">Korzystanie z Twojego mikrofonu i kamery</translation>
<translation id="1007233996198401083">Nie można połączyć.</translation>
<translation id="1007408791287232274">Nie udało się załadować urządzeń.</translation>
<translation id="1010833424573920260">{NUM_PAGES,plural, =1{Strona nie odpowiada}few{Strony nie odpowiadajÄ…}many{Strony nie odpowiadajÄ…}other{Strony nie odpowiadajÄ…}}</translation>
@@ -23,7 +23,7 @@
<translation id="1035094536595558507">Widok slajdów</translation>
<translation id="1035590878859356651">Dodaj tę stronę do zakładek...</translation>
<translation id="1036348656032585052">Wyłącz</translation>
-<translation id="1036511912703768636">Uzyskaj dostęp do dowolnego z tych urządzeń USB</translation>
+<translation id="1036511912703768636">Dostęp do dowolnego z tych urządzeń USB</translation>
<translation id="1036982837258183574">Aby zamknąć pełny ekran, naciśnij |<ph name="ACCELERATOR" />|</translation>
<translation id="1038168778161626396">Tylko szyfrowanie</translation>
<translation id="1039337018183941703">Nieprawidłowy lub uszkodzony plik</translation>
@@ -190,7 +190,7 @@
<translation id="1278049586634282054">Zobacz widoki:</translation>
<translation id="1280820357415527819">Szukam sieci komórkowych</translation>
<translation id="1285320974508926690">Nigdy nie tłumacz tej witryny</translation>
-<translation id="1285484354230578868">Przechowuj dane na koncie Dysku Google</translation>
+<translation id="1285484354230578868">Przechowywanie danych na koncie Dysku Google</translation>
<translation id="1293177648337752319">Zakończ wyciszanie strony</translation>
<translation id="1293509594570842875">Nie można utworzyć nowego nadzorowanego użytkownika. Sprawdź połączenie sieciowe i spróbuj ponownie później.</translation>
<translation id="1293556467332435079">Pliki</translation>
@@ -399,7 +399,7 @@
<translation id="159359590073980872">Pamięć podręczna grafiki</translation>
<translation id="1594233345027811150">{NUM_DOWNLOAD,plural, =1{Pobieranie w toku}few{Pobieranie w toku}many{Pobieranie w toku}other{Pobieranie w toku}}</translation>
<translation id="1598233202702788831">Aktualizacje zostały wyłączone przez administratora.</translation>
-<translation id="1600857548979126453">Uzyskiwać dostęp do programu debugera stron</translation>
+<translation id="1600857548979126453">Dostęp do backendu debugera stron</translation>
<translation id="1601560923496285236">Zastosuj</translation>
<translation id="1603914832182249871">(Incognito)</translation>
<translation id="1607220950420093847">Twoje konto mogło zostać usunięte lub wyłączone. Wyloguj się.</translation>
@@ -978,7 +978,7 @@ Ta strona nie powinna być zablokowana.</translation>
<translation id="2515586267016047495">Alt</translation>
<translation id="251662399991179012">Przeszkólmy Twoje urządzenie <ph name="DEVICE_TYPE" /></translation>
<translation id="2517472476991765520">Skanuj</translation>
-<translation id="2518024842978892609">Użyj certyfikatów klienta</translation>
+<translation id="2518024842978892609">Używanie certyfikatów klienta</translation>
<translation id="2520644704042891903">Czekam na dostępne gniazdo...</translation>
<translation id="252219247728877310">Składnik nie został zaktualizowany</translation>
<translation id="2522791476825452208">Bardzo blisko</translation>
@@ -1065,7 +1065,7 @@ Ta strona nie powinna być zablokowana.</translation>
<translation id="2642111877055905627">Piłka nożna</translation>
<translation id="2643698698624765890">Aby zarządzać zainstalowanymi rozszerzeniami, kliknij Rozszerzenia w menu Okno.</translation>
<translation id="2647142853114880570">odśwież</translation>
-<translation id="2647269890314209800">Pliki cookie w użyciu</translation>
+<translation id="2647269890314209800">Pliki cookie w użyciu</translation>
<translation id="2648831393319960979">Dodaję urządzenie do konta. Może to chwilę potrwać...</translation>
<translation id="2649045351178520408">Plik ASCII z kodowaniem Base64, łańcuch certyfikatów</translation>
<translation id="2653266418988778031">Jeśli usuniesz certyfikat urzędu certyfikacji, Twoja przeglądarka nie będzie już ufać żadnym certyfikatom wydanym przez ten urząd certyfikacji.</translation>
@@ -1116,7 +1116,7 @@ Ta strona nie powinna być zablokowana.</translation>
<translation id="2715751256863167692">Ta aktualizacja resetuje Chromebooka i usuwa dane bieżącego użytkownika.</translation>
<translation id="2718395828230677721">Podświetlenie nocne</translation>
<translation id="2718998670920917754">Oprogramowanie antywirusowe wykryło wirusa.</translation>
-<translation id="2719936478972253983">Następujące pliki cookie zostały zablokowane</translation>
+<translation id="2719936478972253983">Te pliki cookie zostały zablokowane</translation>
<translation id="2721037002783622288">&amp;Szukaj obrazu w <ph name="SEARCH_ENGINE" /></translation>
<translation id="2721334646575696520">Microsoft Edge</translation>
<translation id="2721695630904737430">Nadzorowanych użytkowników wyłączył administrator.</translation>
@@ -1333,7 +1333,7 @@ Ta strona nie powinna być zablokowana.</translation>
<translation id="3014095112974898292">Oczekuję na ukończenie innych żądań…</translation>
<translation id="3015992588037997514">Widzisz ten kod na ekranie Chromeboxa?</translation>
<translation id="3016641847947582299">Składnik został zaktualizowany</translation>
-<translation id="3016780570757425217">Sprawdzać Twoją lokalizację</translation>
+<translation id="3016780570757425217">Sprawdzanie Twojej lokalizacji</translation>
<translation id="302014277942214887">Wpisz ID aplikacji lub URL sklepu internetowego.</translation>
<translation id="3020990233660977256">Numer seryjny: <ph name="SERIAL_NUMBER" /></translation>
<translation id="3021678814754966447">&amp;Wyświetl źródło ramki</translation>
@@ -1605,7 +1605,7 @@ Więcej informacji znajduje się w naszym <ph name="BEGIN_LINK" />Centrum pomocy
<translation id="3429275422858276529">Dodaj tę stronę do zakładek, by później łatwo ją znaleźć</translation>
<translation id="3429599832623003132">Elementy: $1</translation>
<translation id="3432227430032737297">Usuń wszystkie wyświetlone</translation>
-<translation id="3432757130254800023">Wysyłaj obraz i dźwięk na ekrany w sieci lokalnej</translation>
+<translation id="3432757130254800023">Wysyłanie obrazu i dźwięku na ekrany w sieci lokalnej</translation>
<translation id="3433621910545056227">Ups! System nie mógł ustanowić blokady atrybutów urządzenia na czas instalacji.</translation>
<translation id="3434107140712555581"><ph name="BATTERY_PERCENTAGE" />%</translation>
<translation id="343467364461911375">Niektóre usługi związane z treściami używają identyfikatorów komputerów do jednoznacznej identyfikacji użytkownika na potrzeby autoryzacji dostępu do chronionych treści.</translation>
@@ -1783,7 +1783,7 @@ Więcej informacji znajduje się w naszym <ph name="BEGIN_LINK" />Centrum pomocy
<translation id="3683524264665795342"><ph name="APP_NAME" /> – żądanie udostępnienia ekranu</translation>
<translation id="3685122418104378273">Gdy komórkowa transmisja danych jest włączona, synchronizacja z Dyskiem Google jest domyślnie wyłączona.</translation>
<translation id="368789413795732264">Wystąpił błąd podczas próby zapisu pliku: <ph name="ERROR_TEXT" />.</translation>
-<translation id="3688507211863392146">Zapisywać dane w plikach i folderach otwieranych w aplikacji</translation>
+<translation id="3688507211863392146">Zapisywanie danych w plikach i folderach otwieranych w aplikacji</translation>
<translation id="3688526734140524629">Zmień kanał</translation>
<translation id="3688578402379768763">Aktualne</translation>
<translation id="3693415264595406141">Hasło:</translation>
@@ -1919,7 +1919,7 @@ Więcej informacji znajduje się w naszym <ph name="BEGIN_LINK" />Centrum pomocy
<translation id="3879748587602334249">Menedżer pobierania</translation>
<translation id="388485010393668001">Dostępne zakończenie: <ph name="COMPLETION_TEXT" /></translation>
<translation id="3892414795099177503">Dodaj OpenVPN/L2TP…</translation>
-<translation id="3893536212201235195">Odczytywać i zmieniać ustawienia ułatwień dostępu.</translation>
+<translation id="3893536212201235195">Odczytywanie i zmiana ustawień ułatwień dostępu</translation>
<translation id="3893630138897523026">ChromeVox (potwierdzenia głosowe)</translation>
<translation id="3894427358181296146">Dodaj folder</translation>
<translation id="389589731200570180">Udostępnij gościom</translation>
@@ -2056,7 +2056,7 @@ Więcej informacji znajduje się w naszym <ph name="BEGIN_LINK" />Centrum pomocy
<translation id="4100733287846229632">Na urządzeniu już prawie nie ma miejsca</translation>
<translation id="4104163789986725820">E&amp;ksportuj</translation>
<translation id="4105563239298244027">Uzyskaj 1 TB miejsca na Dysku Google za darmo</translation>
-<translation id="4107048419833779140">Rozpoznaj i wysuń urządzenia pamięci</translation>
+<translation id="4107048419833779140">Rozpoznawanie i wysuwanie urządzeń pamięci</translation>
<translation id="4109135793348361820">Przesuń okno do: <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)</translation>
<translation id="4110342520124362335">Pliki cookie z witryny <ph name="DOMAIN" /> zostały zablokowane.</translation>
<translation id="4110559665646603267">Zaznacz półkę</translation>
@@ -2194,7 +2194,7 @@ Naciśnij dowolny klawisz, by kontynuować przeglądanie.</translation>
<translation id="4370975561335139969">Podany adres e-mail i hasło nie pasują do siebie</translation>
<translation id="437184764829821926">Zaawansowane ustawienia czcionek</translation>
<translation id="4372884569765913867">1 x 1</translation>
-<translation id="4375035964737468845">Otwórz pobrane pliki</translation>
+<translation id="4375035964737468845">Otwieranie pobranych plików</translation>
<translation id="4377039040362059580">Motywy i tapety</translation>
<translation id="4377363674125277448">Wystąpił problem z certyfikatem serwera.</translation>
<translation id="4378154925671717803">Telefon</translation>
@@ -2268,7 +2268,7 @@ Naciśnij dowolny klawisz, by kontynuować przeglądanie.</translation>
<translation id="4514542542275172126">Skonfiguruj nowego nadzorowanego użytkownika</translation>
<translation id="451515744433878153">Usuń</translation>
<translation id="4518677423782794009">Czy masz w Chrome problemy z awariami, nietypowymi stronami startowymi, paskami narzędzi, nieoczekiwanymi reklamami, których nie możesz się pozbyć, lub innymi elementami, które utrudniają przeglądanie? Możesz to rozwiązać, korzystając z Narzędzia do czyszczenia Chrome.</translation>
-<translation id="4520385623207007473">Pliki cookie w użyciu</translation>
+<translation id="4520385623207007473">Pliki cookie w użyciu</translation>
<translation id="452039078290142656">nieznane urzÄ…dzenia od <ph name="VENDOR_NAME" /></translation>
<translation id="4522570452068850558">Szczegóły</translation>
<translation id="4530494379350999373">Pochodzenie</translation>
@@ -2422,7 +2422,7 @@ Naciśnij dowolny klawisz, by kontynuować przeglądanie.</translation>
<translation id="4759238208242260848">Pobrane pliki</translation>
<translation id="4761104368405085019">Korzystać z Twojego mikrofonu</translation>
<translation id="4762718786438001384">Bardzo mało miejsca na dysku</translation>
-<translation id="4763408175235639573">Podczas wyświetlania strony zostały utworzone następujące pliki cookie</translation>
+<translation id="4763408175235639573">Podczas wyświetlania strony zostały utworzone te pliki cookie</translation>
<translation id="4763830802490665879">Pliki cookie z wielu witryn będą czyszczone przy zamykaniu.</translation>
<translation id="4768332406694066911">Masz certyfikaty od tych organizacji potwierdzające Twoją tożsamość</translation>
<translation id="4776917500594043016">Hasło dla <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -2654,7 +2654,7 @@ Naciśnij dowolny klawisz, by kontynuować przeglądanie.</translation>
<translation id="5119173345047096771">Mozilla Firefox</translation>
<translation id="5121130586824819730">Dysk twardy jest pełny. Zapisz w innej lokalizacji lub zwolnij miejsce na dysku.</translation>
<translation id="5125751979347152379">Nieprawidłowy adres URL.</translation>
-<translation id="5127881134400491887">Zarządzać połączeniami sieciowymi</translation>
+<translation id="5127881134400491887">Zarządzanie połączeniami sieciowymi</translation>
<translation id="512903556749061217">podłączone</translation>
<translation id="5131347545782851480">Dokumenty PDF</translation>
<translation id="5133483819862530305">Od zachodu do wschodu słońca</translation>
@@ -2722,7 +2722,7 @@ Naciśnij dowolny klawisz, by kontynuować przeglądanie.</translation>
<translation id="5233736638227740678">&amp;Wklej</translation>
<translation id="5234764350956374838">Zamknij</translation>
<translation id="5235050375939235066">Odinstalować aplikację?</translation>
-<translation id="5235750401727657667">Zmień stronę, która wyświetla się, gdy otwierasz nową kartę</translation>
+<translation id="5235750401727657667">Zmiana strony, która wyświetla się, gdy otwierasz nową kartę</translation>
<translation id="5238278114306905396">Aplikacja „<ph name="EXTENSION_NAME" />†została automatycznie usunięta.</translation>
<translation id="5238369540257804368">Zakresy</translation>
<translation id="5241128660650683457">Odczyt wszystkich Twoich danych na odwiedzanych stronach internetowych</translation>
@@ -2801,7 +2801,7 @@ Naciśnij dowolny klawisz, by kontynuować przeglądanie.</translation>
<translation id="5337771866151525739">Zainstalowane przez innÄ… firmÄ™.</translation>
<translation id="5338503421962489998">Przechowywanie lokalne</translation>
<translation id="5340217413897845242">6 element na półce</translation>
-<translation id="5341793073192892252">Zablokowano następujące pliki cookie (pliki cookie innych firm są blokowane bez wyjątków)</translation>
+<translation id="5341793073192892252">Zablokowano te pliki cookie (pliki cookie innych firm są blokowane bez wyjątków)</translation>
<translation id="5341980496415249280">Czekaj, pakuję…</translation>
<translation id="5342091991439452114">Kod PIN musi się składać co najmniej z <ph name="MINIMUM" /> cyfr</translation>
<translation id="534916491091036097">Lewy nawias</translation>
@@ -3025,6 +3025,7 @@ Naciśnij dowolny klawisz, by kontynuować przeglądanie.</translation>
<translation id="5678955352098267522">Odczyt Twoich danych na stronie <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Identyfikator zasobu</translation>
<translation id="5687326903064479980">Strefa czasowa</translation>
+<translation id="5689516760719285838">Lokalizacja</translation>
<translation id="56907980372820799">Połącz dane</translation>
<translation id="5691511426247308406">Rodzina</translation>
<translation id="5691596662111998220">Ups, pliku <ph name="FILE_NAME" /> już nie ma.</translation>
@@ -3319,7 +3320,7 @@ Naciśnij dowolny klawisz, by kontynuować przeglądanie.</translation>
<translation id="6156323911414505561">Pokaż pasek zakładek</translation>
<translation id="6156863943908443225">Pamięć podręczna skryptów</translation>
<translation id="6156960295318603523">Ustawienia języka</translation>
-<translation id="6160625263637492097">Dostarczaj certyfikaty do uwierzytelniania</translation>
+<translation id="6160625263637492097">Dostarczanie certyfikatów do uwierzytelniania</translation>
<translation id="6163363155248589649">&amp;Normalny</translation>
<translation id="6163522313638838258">Rozwiń wszystko...</translation>
<translation id="6164005077879661055">W chwili usunięcia użytkownika nadzorowanego wszystkie powiązane z nim pliki i dane lokalne zostaną trwale usunięte. Lista stron, na które wszedł ten użytkownik, oraz jego ustawienia mogą być wciąż widoczne dla menedżera na <ph name="MANAGEMENT_URL" />.</translation>
@@ -3366,7 +3367,7 @@ Naciśnij dowolny klawisz, by kontynuować przeglądanie.</translation>
<translation id="6238923052227198598">Wyświetlaj najnowszą notatkę na ekranie blokady</translation>
<translation id="6239558157302047471">Załaduj ponownie &amp;ramkę</translation>
<translation id="624022915548992686">Zamknij stronÄ™</translation>
-<translation id="6241530762627360640">Uzyskiwać dostęp do informacji o urządzeniach Bluetooth sparowanych z systemem oraz wykrywać urządzenia Bluetooth w pobliżu.</translation>
+<translation id="6241530762627360640">Dostęp do informacji o urządzeniach Bluetooth sparowanych z systemem oraz wykrywanie urządzeń Bluetooth w pobliżu</translation>
<translation id="6243774244933267674">Serwer niedostępny</translation>
<translation id="6246413617632217567">Nie udało się zaimportować nadzorowanego użytkownika. Sprawdź miejsce na dysku twardym i uprawnienia, a potem spróbuj ponownie.</translation>
<translation id="6247708409970142803"><ph name="PERCENTAGE" />%</translation>
@@ -3434,7 +3435,7 @@ Naciśnij dowolny klawisz, by kontynuować przeglądanie.</translation>
<translation id="6340071272923955280">Internet Printing Protocol (IPPS)</translation>
<translation id="6341850831632289108">Wykrywanie Twojej lokalizacji</translation>
<translation id="634208815998129842">Menedżer zadań</translation>
-<translation id="6344170822609224263">Lista dostępu połączeń sieciowych</translation>
+<translation id="6344170822609224263">Dostęp do listy połączeń sieciowych</translation>
<translation id="6346310558342052870">Ograniczony dostęp</translation>
<translation id="6348109281845364640">Nie udało się skonfigurować drukarki</translation>
<translation id="6348657800373377022">Pole złożone</translation>
@@ -3456,7 +3457,7 @@ Naciśnij dowolny klawisz, by kontynuować przeglądanie.</translation>
<translation id="6377158645544167202">Nie można połączyć z drukarką. Upewnij się, że drukarka jest włączona i podłączona do Chromebooka za pomocą Wi-Fi lub USB.</translation>
<translation id="6380143666419481200">Zaakceptuj i kontynuuj</translation>
<translation id="6383051423892982287">Szyfruj synchronizowane dane za pomocą własnego <ph name="BEGIN_LINK" />hasła synchronizacji<ph name="END_LINK" /></translation>
-<translation id="6384275966486438344">Zmień ustawienia wyszukiwania na: <ph name="SEARCH_HOST" /></translation>
+<translation id="6384275966486438344">Zmiana ustawień wyszukiwania na: <ph name="SEARCH_HOST" /></translation>
<translation id="6385543213911723544">Strony mogą zapisywać dane w plikach cookie i je odczytywać</translation>
<translation id="6388771388956873507">Znajdź na urządzeniu czytnik linii papilarnych i dotknij go palcem</translation>
<translation id="6390799748543157332">Strony wyświetlane w tym oknie nie pojawią się w historii przeglądarki. Po zamknięciu wszystkich okien otwartych w trybie gościa nie zostanie po nich na komputerze żaden ślad (np. w postaci plików cookie). Pobrane pliki zostaną jednak zachowane.</translation>
@@ -3891,7 +3892,7 @@ Naciśnij dowolny klawisz, by kontynuować przeglądanie.</translation>
<translation id="7030031465713069059">Zapisz hasło</translation>
<translation id="7031962166228839643">Czekaj, moduł TPM jest przygotowywany (może to potrwać kilka minut)...</translation>
<translation id="7035437538340499453">Funkcja Smart Lock jest już skonfigurowana</translation>
-<translation id="7039326228527141150">Uzyskaj dostęp do urządzeń USB od <ph name="VENDOR_NAME" /></translation>
+<translation id="7039326228527141150">Dostęp do urządzeń USB od <ph name="VENDOR_NAME" /></translation>
<translation id="7039912931802252762">Logowanie karty inteligentnej firmy Microsoft</translation>
<translation id="7040138676081995583">Otwórz za pomocą...</translation>
<translation id="7040230719604914234">Operator</translation>
@@ -3961,7 +3962,7 @@ Naciśnij dowolny klawisz, by kontynuować przeglądanie.</translation>
<translation id="7144878232160441200">Ponów próbę</translation>
<translation id="7149893636342594995">Ostatnie 24 godziny</translation>
<translation id="715118844758971915">Drukarki tradycyjne</translation>
-<translation id="7154130902455071009">Zmień stronę startową na: <ph name="START_PAGE" /></translation>
+<translation id="7154130902455071009">Zmiana strony startowej na: <ph name="START_PAGE" /></translation>
<translation id="7155171745945906037">Istniejące zdjęcie z kamery lub pliku</translation>
<translation id="7156235233373189579">Ten plik został opracowany z myślą o komputerach z Windows. Jest on niezgodny z Twoim urządzeniem z Chrome OS. Spróbuj znaleźć aplikację zastępczą w <ph name="BEGIN_LINK" />Chrome Web Store<ph name="END_LINK" />. <ph name="BEGIN_LINK_HELP" />Więcej informacji<ph name="END_LINK_HELP" /></translation>
<translation id="7165320105431587207">Nie można skonfigurować sieci</translation>
@@ -3992,7 +3993,7 @@ Naciśnij dowolny klawisz, by kontynuować przeglądanie.</translation>
<translation id="7219989745826083607">Parser opisu urzÄ…dzenia DIAL</translation>
<translation id="722055596168483966">Dostosowywanie usług Google</translation>
<translation id="7221155467930685510">$1 GB</translation>
-<translation id="7221855153210829124">Pokazywać powiadomienia</translation>
+<translation id="7221855153210829124">Pokazywanie powiadomień</translation>
<translation id="7221869452894271364">Odśwież stronę</translation>
<translation id="7222232353993864120">Adres e-mail</translation>
<translation id="7222373446505536781">F11</translation>
@@ -4396,7 +4397,7 @@ Naciśnij dowolny klawisz, by kontynuować przeglądanie.</translation>
<translation id="7887864092952184874">Sparowano mysz Bluetooth</translation>
<translation id="7889966925761734854">Szukaj</translation>
<translation id="7892100671754994880">Następny użytkownik</translation>
-<translation id="7893008570150657497">Uzyskać dostęp do zdjęć, muzyki i innych multimediów na komptuerze</translation>
+<translation id="7893008570150657497">Dostęp do zdjęć, muzyki i innych multimediów na komputerze</translation>
<translation id="7893153962594818789">Bluetooth jest wyłączony na urządzeniu <ph name="DEVICE_TYPE" />. Wpisz hasło i włącz Bluetooth.</translation>
<translation id="7893393459573308604"><ph name="ENGINE_NAME" /> (domyślna)</translation>
<translation id="78957024357676568">w lewo</translation>
@@ -4553,7 +4554,7 @@ Przechowuj plik klucza w bezpiecznym miejscu. Będzie on potrzebny do utworzenia
<translation id="8116972784401310538">&amp;Menedżer zakładek</translation>
<translation id="8117620576188476503">Zarządzaj połączeniami, aktualizacjami i ustawieniami na pasku stanu. Aby je otworzyć za pomocą klawiatury, naciśnij Alt + Shift + S.</translation>
<translation id="8118362518458010043">Wyłączone przez Chrome. To rozszerzenie może być niebezpieczne.</translation>
-<translation id="8118860139461251237">ZarzÄ…dzaj pobranymi plikami</translation>
+<translation id="8118860139461251237">ZarzÄ…dzanie pobranymi plikami</translation>
<translation id="81238879832906896">Żółto-biały kwiat</translation>
<translation id="8124313775439841391">ZarzÄ…dzana konfiguracja ONC</translation>
<translation id="813082847718468539">Wyświetl informacje o witrynie</translation>
@@ -4836,7 +4837,7 @@ Osoby z wolnym połączeniem mogą nie zobaczyć treści, które przesyłasz.</
<translation id="8615618338313291042">Aplikacja w trybie incognito: <ph name="APP_NAME" /></translation>
<translation id="8619892228487928601"><ph name="CERTIFICATE_NAME" />: <ph name="ERROR" /></translation>
<translation id="8620617069779373398">Stan roamingu</translation>
-<translation id="8620765578342452535">Skonfiguruj połączenia sieciowe</translation>
+<translation id="8620765578342452535">Konfigurowanie połączenia sieciowego</translation>
<translation id="8623004009673949077">Aplikacja z atrybutem „kiosk_only†w pliku manifestu musi być zainstalowana w trybie kiosku Chrome OS.</translation>
<translation id="8624205858755890468">Umożliwia Asystentowi wyświetlanie powiązanych informacji, aplikacji i działań.</translation>
<translation id="862542460444371744">&amp;Rozszerzenia</translation>
@@ -4870,7 +4871,7 @@ Osoby z wolnym połączeniem mogą nie zobaczyć treści, które przesyłasz.</
<translation id="8661290697478713397">Otwórz link w oknie inco&amp;gnito</translation>
<translation id="8662795692588422978">Osoby</translation>
<translation id="8662811608048051533">Wylogowuje z większości stron internetowych.</translation>
-<translation id="8662911384982557515">Zmień stronę główną na: <ph name="HOME_PAGE" /></translation>
+<translation id="8662911384982557515">Zmiana strony głównej na: <ph name="HOME_PAGE" /></translation>
<translation id="8662978096466608964">Chrome nie może ustawić tapety.</translation>
<translation id="8663099077749055505">Zawsze blokuj wiele pobierań automatycznych na <ph name="HOST" /></translation>
<translation id="8664389313780386848">&amp;Wyświetl źródło strony</translation>
@@ -4929,7 +4930,7 @@ Osoby z wolnym połączeniem mogą nie zobaczyć treści, które przesyłasz.</
<translation id="8737685506611670901">Otwierać linki protokołu <ph name="PROTOCOL" /> zamiast modułu <ph name="REPLACED_HANDLER_TITLE" /></translation>
<translation id="8737709691285775803">Menedżer połączeń</translation>
<translation id="8743864605301774756">Zaktualizowano przed godzinÄ…</translation>
-<translation id="8749863574775030885">Uzyskaj dostęp do urządzeń USB od nieznanego dostawcy</translation>
+<translation id="8749863574775030885">Dostęp do urządzeń USB od nieznanego dostawcy</translation>
<translation id="8754200782896249056">&lt;p&gt;Po uruchomieniu programu <ph name="PRODUCT_NAME" /> w obsługiwanym środowisku pulpitu są używane systemowe ustawienia serwera proxy. Jednak ten system nie jest obsługiwany lub wystąpił problem z zastosowaniem konfiguracji systemu.&lt;/p&gt;
&lt;p&gt;Serwer proxy można jeszcze skonfigurować za pomocą wiersza poleceń. Więcej informacji na temat flag i zmiennych środowiskowych zawiera instrukcja &lt;code&gt;man <ph name="PRODUCT_BINARY_NAME" />&lt;/code&gt;.&lt;/p&gt;</translation>
@@ -4965,7 +4966,7 @@ Osoby z wolnym połączeniem mogą nie zobaczyć treści, które przesyłasz.</
<translation id="8800004011501252845">Pokaż urządzenia docelowe dla</translation>
<translation id="8800420788467349919">Głośność: <ph name="PRECENTAGE" />%</translation>
<translation id="8803953437405899238">Otwórz nową kartę jednym kliknięciem</translation>
-<translation id="8804398419035066391">Komunikowanie się ze współpracującymi witrynami</translation>
+<translation id="8804398419035066391">Komunikowanie się ze współpracującymi stronami</translation>
<translation id="8805140816472474147">Potwierdź ustawienia synchronizacji, by ją rozpocząć.</translation>
<translation id="8807632654848257479">Stabilny</translation>
<translation id="8808478386290700967">Chrome Web Store</translation>
@@ -5164,7 +5165,7 @@ Osoby z wolnym połączeniem mogą nie zobaczyć treści, które przesyłasz.</
<translation id="9111102763498581341">Odblokuj</translation>
<translation id="9111395131601239814"><ph name="NETWORKDEVICE" />: <ph name="STATUS" /></translation>
<translation id="9112614144067920641">Wybierz nowy kod PIN.</translation>
-<translation id="9112748030372401671">Zmień tapetę</translation>
+<translation id="9112748030372401671">Zmiana tapety</translation>
<translation id="9112987648460918699">Znajdź...</translation>
<translation id="9114663181201435112">Åatwe logowanie</translation>
<translation id="9115487443206954631">Zarządzaj urządzeniami przesyłającymi</translation>
@@ -5179,7 +5180,7 @@ Osoby z wolnym połączeniem mogą nie zobaczyć treści, które przesyłasz.</
<translation id="9128870381267983090">Połącz z siecią</translation>
<translation id="9130015405878219958">Wprowadzono nieprawidłowy tryb.</translation>
<translation id="9130775360844693113">Osoby z uprawnieniami do: „<ph name="DESTINATION_NAME" />†uzyskają dostęp do tych elementów.</translation>
-<translation id="9131487537093447019">Wysyłać wiadomości do urządzeń Bluetooth i odbierać je z nich.</translation>
+<translation id="9131487537093447019">Wysyłanie wiadomości do urządzeń Bluetooth i odbieranie ich z tych urządzeń</translation>
<translation id="9131598836763251128">Wybierz jeden lub kilka plików</translation>
<translation id="9133055936679483811">Pakowanie nie powiodło się. <ph name="ERROR_MESSAGE" /></translation>
<translation id="9134524245363717059">Ten plik został opracowany z myślą o komputerach Mac. Jest niezgodny z Twoim urządzeniem z Chrome OS. Poszukaj odpowiedniej aplikacji zastępczej w Chrome Web Store.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_pt-BR.xtb b/chromium/chrome/app/resources/generated_resources_pt-BR.xtb
index 9530c7a6ccc..b84e9ba108d 100644
--- a/chromium/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chromium/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -105,7 +105,7 @@
<translation id="1156185823432343624">Volume: Sem som</translation>
<translation id="1156488781945104845">Hora atual</translation>
<translation id="1161575384898972166">Faça login no <ph name="TOKEN_NAME" /> para exportar o certificado do cliente.</translation>
-<translation id="1163361280229063150">{NUM_DOWNLOAD,plural, =1{Um download está em andamento. Deseja cancelar o download e sair do modo sem rastros?}one{# downloads estão em andamento. Deseja cancelar os downloads e sair do modo sem rastros?}other{# downloads estão em andamento. Deseja cancelar os downloads e sair do modo sem rastros?}}</translation>
+<translation id="1163361280229063150">{NUM_DOWNLOAD,plural, =1{Um download está em andamento. Deseja cancelar o download e sair do modo de navegação anônima?}one{# downloads estão em andamento. Deseja cancelar os downloads e sair do modo de navegação anônima?}other{# downloads estão em andamento. Deseja cancelar os downloads e sair do modo de navegação anônima?}}</translation>
<translation id="1163931534039071049">&amp;Exibir código fonte do frame</translation>
<translation id="1164674268730883318">Desativar o Smart Lock para <ph name="DEVICE_TYPE" />?</translation>
<translation id="1164899421101904659">Informar chave para desbloqueio de PIN</translation>
@@ -350,7 +350,7 @@
<translation id="151501797353681931">Importados do Safari</translation>
<translation id="1515163294334130951">Iniciar</translation>
<translation id="1521442365706402292">Gerenciar certificados</translation>
-<translation id="152234381334907219">Nunca salvo</translation>
+<translation id="152234381334907219">Nunca salvas</translation>
<translation id="1524430321211440688">Teclado</translation>
<translation id="1526560967942511387">Documento sem título</translation>
<translation id="1526925867532626635">Confirmar configurações de sincronização</translation>
@@ -2421,7 +2421,7 @@ De <ph name="DOWNLOAD_DOMAIN" /></translation>
<translation id="4759238208242260848">Downloads</translation>
<translation id="4761104368405085019">Usar microfone</translation>
<translation id="4762718786438001384">Dispositivo com espaço em disco criticamente baixo</translation>
-<translation id="4763408175235639573">Os seguintes cookies foram definidos quando você visualizou esta página</translation>
+<translation id="4763408175235639573">Os cookies a seguir foram definidos quando você visualizou esta página</translation>
<translation id="4763830802490665879">Os cookies de vários sites serão apagados na saída.</translation>
<translation id="4768332406694066911">Você tem certificados das seguintes empresas que identificam você</translation>
<translation id="4776917500594043016">Senha para <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -2826,7 +2826,7 @@ De <ph name="DOWNLOAD_DOMAIN" /></translation>
<translation id="5379268888377976432">Desfazer exclusão</translation>
<translation id="5380103295189760361">Pressione Control, Alt, Shift ou "Pesquisar" para visualizar os atalhos do teclado para estes modificadores.</translation>
<translation id="5382591305415226340">Gerenciar links compatíveis</translation>
-<translation id="5384883051496921101">Este site está prestes a compartilhar informações com um app fora do modo sem rastros.</translation>
+<translation id="5384883051496921101">Este site está prestes a compartilhar informações com um app fora do modo de navegação anônima.</translation>
<translation id="5388588172257446328">Nome de usuário:</translation>
<translation id="5388885445722491159">Emparelhado</translation>
<translation id="5389237414310520250">Não foi possível criar o novo usuário. Verifique o espaço no seu disco rígido e suas permissões e tente novamente.</translation>
@@ -3024,6 +3024,7 @@ Não exponha nenhuma informação confidencial.</translation>
<translation id="5678955352098267522">Leia seus dados em <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Identificador de recurso</translation>
<translation id="5687326903064479980">Fuso horário</translation>
+<translation id="5689516760719285838">Local</translation>
<translation id="56907980372820799">Vincular dados</translation>
<translation id="5691511426247308406">Família</translation>
<translation id="5691596662111998220">O item <ph name="FILE_NAME" /> não existe mais.</translation>
@@ -5065,7 +5066,7 @@ Pessoas com conexões mais lentas talvez não vejam seu conteúdo.</translation>
<translation id="8946284507644756416">Seu <ph name="DEVICE_TYPE" /> pode ser desbloqueado com seu smartphone Android.</translation>
<translation id="8946359700442089734">Os recursos de depuração não foram completamente ativados neste dispositivo <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
<translation id="8948677146203372548">Atualização concluída. Agora você pode usar apps Android.</translation>
-<translation id="894871326938397531">Sair do modo sem rastros?</translation>
+<translation id="894871326938397531">Sair do modo de navegação anônima?</translation>
<translation id="895347679606913382">Iniciando...</translation>
<translation id="8954952943849489823">Falha na transferência, erro inesperado: $1</translation>
<translation id="895586998699996576">Imagem $1</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_pt-PT.xtb b/chromium/chrome/app/resources/generated_resources_pt-PT.xtb
index 4ec4987700f..960465e8f84 100644
--- a/chromium/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chromium/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -599,7 +599,7 @@
<translation id="1902576642799138955">Período de validade</translation>
<translation id="1905710495812624430">Foi excedido o número máximo de tentativas permitidas.</translation>
<translation id="1909880997794698664">Tem a certeza de que pretende manter permanentemente este dispositivo no modo de quiosque?</translation>
-<translation id="1910721550319506122">Bem-vindo(a)!</translation>
+<translation id="1910721550319506122">Bem-vindo!</translation>
<translation id="1915073950770830761">canary</translation>
<translation id="1916502483199172559">Avatar vermelho predefinido</translation>
<translation id="1918141783557917887">Mai&amp;s pequeno</translation>
@@ -780,7 +780,7 @@
<translation id="220858061631308971">Introduza este código PIN no "<ph name="DEVICE_NAME" />":</translation>
<translation id="2209593327042758816">Artigo de prateleira 2</translation>
<translation id="2213819743710253654">Acção da página</translation>
-<translation id="2215277870964745766">Bem-vindo(a)! Defina o seu idioma e rede</translation>
+<translation id="2215277870964745766">Bem-vindo! Defina o seu idioma e rede</translation>
<translation id="2217501013957346740">Criar um nome –</translation>
<translation id="2218019600945559112">Rato e touchpad</translation>
<translation id="2218515861914035131">Colar como texto simples</translation>
@@ -978,7 +978,7 @@ Acho que este site não deveria estar bloqueado.</translation>
<translation id="2509495747794740764">O valor de dimensionamento tem de ser um número entre 10 e 200.</translation>
<translation id="2515586267016047495">Alt</translation>
<translation id="251662399991179012">Vamos configurar o <ph name="DEVICE_TYPE" /></translation>
-<translation id="2517472476991765520">Procurar</translation>
+<translation id="2517472476991765520">Analisar</translation>
<translation id="2518024842978892609">Utilizar os certificados de cliente</translation>
<translation id="2520644704042891903">A aguardar ligação disponível...</translation>
<translation id="252219247728877310">Componente não atualizado</translation>
@@ -1013,7 +1013,7 @@ Acho que este site não deveria estar bloqueado.</translation>
<translation id="2570000010887652771">Poupou dados.</translation>
<translation id="2570648609346224037">Ocorreu um problema durante a transferência da imagem de recuperação.</translation>
<translation id="257088987046510401">Temas</translation>
-<translation id="2571964818629181240">Fechar o Firefox antes da importação</translation>
+<translation id="2571964818629181240">Feche o Firefox antes da importação</translation>
<translation id="2572032849266859634">Autorizações só de leitura concedidas a <ph name="VOLUME_NAME" />.</translation>
<translation id="2573269395582837871">Escolha uma fotografia e um nome</translation>
<translation id="2574102660421949343">Cookies de <ph name="DOMAIN" /> permitidos.</translation>
@@ -1201,7 +1201,7 @@ Acho que este site não deveria estar bloqueado.</translation>
<translation id="2815500128677761940">Barra de marcadores</translation>
<translation id="2815693974042551705">Pasta de marcadores</translation>
<translation id="2818476747334107629">Detalhes da impressora</translation>
-<translation id="2820957248982571256">A procurar...</translation>
+<translation id="2820957248982571256">A analisar...</translation>
<translation id="2822634587701817431">Reduzir/expandir</translation>
<translation id="2825758591930162672">Chave pública do requerente</translation>
<translation id="2828650939514476812">Estabelecer ligação à rede Wi-Fi</translation>
@@ -2407,7 +2407,7 @@ Prima qualquer tecla para continuar a explorar.</translation>
<translation id="4728558894243024398">Plataforma</translation>
<translation id="4731422630970790516">Artigo de prateleira 3</translation>
<translation id="4732760563705710320">Lamentamos, mas o seu dispositivo de transmissão não suporta este vídeo.</translation>
-<translation id="4733793249294335256">Localização</translation>
+<translation id="4733793249294335256">Local</translation>
<translation id="4734518477988699048">O valor de entrada é inválido.</translation>
<translation id="473546211690256853">Esta conta é gerida por <ph name="DOMAIN" /></translation>
<translation id="4737715515457435632">Ligue-se a uma rede</translation>
@@ -2424,7 +2424,7 @@ Prima qualquer tecla para continuar a explorar.</translation>
<translation id="4759238208242260848">Transferências</translation>
<translation id="4761104368405085019">Utilizar o seu microfone</translation>
<translation id="4762718786438001384">Espaço em disco do dispositivo criticamente baixo</translation>
-<translation id="4763408175235639573">Os seguintes cookies foram definidos quando visualizou esta página</translation>
+<translation id="4763408175235639573">Foram definidos os seguintes cookies quando visualizou esta página</translation>
<translation id="4763830802490665879">Os cookies de vários Sites serão apagados à saída.</translation>
<translation id="4768332406694066911">Tem certificados destas entidades que o identificam</translation>
<translation id="4776917500594043016">Palavra-passe para <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -3028,6 +3028,7 @@ Certifique-se de que não revela informações confidenciais.</translation>
<translation id="5678955352098267522">Ler os seus dados em <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Identificador de recursos</translation>
<translation id="5687326903064479980">Fuso horário</translation>
+<translation id="5689516760719285838">Local</translation>
<translation id="56907980372820799">Associar dados</translation>
<translation id="5691511426247308406">Família</translation>
<translation id="5691596662111998220">Ups, <ph name="FILE_NAME" /> já não existe.</translation>
@@ -3446,7 +3447,7 @@ Certifique-se de que não revela informações confidenciais.</translation>
<translation id="6354918092619878358">SECG de curva elíptica secp256r1 (também denominada ANSI X9.62 prime256v1, NIST P-256)</translation>
<translation id="6356138805250111037">Verificação ortográfica mais inteligente ao enviar o que escreve no navegador para a Google</translation>
<translation id="63566973648609420">Apenas alguém que conheça a sua frase de acesso pode ler os seus dados encriptados. A frase de acesso não é enviada para a Google nem armazenada pela mesma. Se se esquecer da frase de acesso ou pretender alterar esta definição, tem de <ph name="BEGIN_LINK" />repor a sincronização<ph name="END_LINK" />.</translation>
-<translation id="6357619544108132570">Bem-vindo(a) à família <ph name="SHORT_PRODUCT_NAME" />. Este não é um computador comum.</translation>
+<translation id="6357619544108132570">Bem-vindo à família <ph name="SHORT_PRODUCT_NAME" />. Este não é um computador comum.</translation>
<translation id="6361850914223837199">Detalhes do erro:</translation>
<translation id="6362853299801475928">&amp;Comunicar um problema...</translation>
<translation id="6365411474437319296">Adicionar família e amigos</translation>
@@ -4716,7 +4717,7 @@ Mantenha o seu ficheiro de chave num local seguro, pois irá precisar dele para
<translation id="8378285435971754261">Permita que o serviço de localização da Google ajude as aplicações a encontrarem a sua localização com precisão e rapidez, o que pode reduzir o consumo de bateria. São enviados à Google dados de localização anónimos, mesmo quando não estão a ser executadas quaisquer aplicações. <ph name="BEGIN_LINK1" />Saiba mais<ph name="END_LINK1" /></translation>
<translation id="8381179624334829711">Gerir definições da câmara...</translation>
<translation id="8382913212082956454">Copiar &amp;endereço de email</translation>
-<translation id="8386903983509584791">Procura concluída</translation>
+<translation id="8386903983509584791">Análise concluída</translation>
<translation id="8390029840652165810">Certifique-se de que a ligação de rede está a funcionar e, se o problema persistir, termine sessão e inicie novamente para atualizar as credenciais.</translation>
<translation id="8390449457866780408">O servidor não se encontra disponível.</translation>
<translation id="8392234662362215700">Prima Control-Shift-Espaço para mudar o esquema de teclado.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_ro.xtb b/chromium/chrome/app/resources/generated_resources_ro.xtb
index ece442a1ec2..14ba83cc809 100644
--- a/chromium/chrome/app/resources/generated_resources_ro.xtb
+++ b/chromium/chrome/app/resources/generated_resources_ro.xtb
@@ -2422,7 +2422,7 @@ Apăsați pe orice tastă pentru a continua explorarea.</translation>
<translation id="4759238208242260848">Descărcări</translation>
<translation id="4761104368405085019">Utilizează microfonul</translation>
<translation id="4762718786438001384">Spațiul de pe hard diskul dispozitivului este foarte redus</translation>
-<translation id="4763408175235639573">Când s-a afișat această pagină au fost setate următoarele cookie-uri</translation>
+<translation id="4763408175235639573">La afișarea paginii au fost setate următoarele cookie-uri</translation>
<translation id="4763830802490665879">Cookie-urile de la mai multe site-uri vor fi șterse la ieșire.</translation>
<translation id="4768332406694066911">Ai certificate de la aceste organizații care te identifică</translation>
<translation id="4776917500594043016">Parolă pentru <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -2801,7 +2801,7 @@ Apăsați pe orice tastă pentru a continua explorarea.</translation>
<translation id="5337771866151525739">Instalată de o terță parte.</translation>
<translation id="5338503421962489998">Stocare la nivel local</translation>
<translation id="5340217413897845242">Elementul 6 din raft</translation>
-<translation id="5341793073192892252">Au fost blocate următoarele cookie-uri (cookie-urile terță parte sunt blocate fără excepții)</translation>
+<translation id="5341793073192892252">Următoarele cookie-uri au fost blocate (cookie-urile terță parte sunt blocate fără excepții)</translation>
<translation id="5341980496415249280">Așteaptă, se împachetează...</translation>
<translation id="5342091991439452114">Codul PIN trebuie să conțină minimum <ph name="MINIMUM" /> cifre</translation>
<translation id="534916491091036097">Parant. desch.</translation>
@@ -3025,6 +3025,7 @@ Apăsați pe orice tastă pentru a continua explorarea.</translation>
<translation id="5678955352098267522">Citește datele de pe <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Identificator articol</translation>
<translation id="5687326903064479980">Fus orar</translation>
+<translation id="5689516760719285838">Locație</translation>
<translation id="56907980372820799">Conectați datele</translation>
<translation id="5691511426247308406">Familie</translation>
<translation id="5691596662111998220">Hopa, <ph name="FILE_NAME" /> nu mai există.</translation>
@@ -3767,7 +3768,7 @@ Apăsați pe orice tastă pentru a continua explorarea.</translation>
<translation id="683373380308365518">Comută la un browser inteligent și securizat</translation>
<translation id="6835762382653651563">Accesează internetul pentru a actualiza dispozitivul <ph name="DEVICE_TYPE" />.</translation>
<translation id="6839225236531462745">Eroare de ștergere a certificatului</translation>
-<translation id="6840155290835956714">Solicită permisiunea înainte de trimitere</translation>
+<translation id="6840155290835956714">Întreabă înainte de a trimite</translation>
<translation id="6840184929775541289">Nu este o Autoritate de certificare</translation>
<translation id="6840313690797192085">$1 PB</translation>
<translation id="6841186874966388268">Erori</translation>
@@ -4923,7 +4924,7 @@ Păstrează fișierul cu cheia într-un loc sigur. Acesta va fi necesar la crear
<translation id="8725066075913043281">Încearcă din nou</translation>
<translation id="8725178340343806893">Preferințe/Marcaje</translation>
<translation id="8726206820263995930">Eroare la preluarea setărilor politicii de pe server: <ph name="CLIENT_ERROR" />.</translation>
-<translation id="8726718463424335668">Ignoră importul</translation>
+<translation id="8726718463424335668">Omite importul</translation>
<translation id="8727142376512517020">Nu mai afișa acest mesaj</translation>
<translation id="8730621377337864115">Terminat</translation>
<translation id="8732030010853991079">Utilizați extensia dând clic pe această pictogramă.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_ru.xtb b/chromium/chrome/app/resources/generated_resources_ru.xtb
index a522abca3ed..da0f863df32 100644
--- a/chromium/chrome/app/resources/generated_resources_ru.xtb
+++ b/chromium/chrome/app/resources/generated_resources_ru.xtb
@@ -14,7 +14,7 @@
<translation id="1016566241875885511">Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ (необÑзательно)</translation>
<translation id="1017280919048282932">&amp;Добавить в Ñловарь</translation>
<translation id="1018656279737460067">Отменено</translation>
-<translation id="102272308210570439">Открыть ÐÑÑиÑтенту доÑтуп к Ñкрану</translation>
+<translation id="102272308210570439">Разрешить ÐÑÑиÑтенту доÑтуп к Ñкрану</translation>
<translation id="1026822031284433028">Загрузить изображение</translation>
<translation id="1029317248976101138">МаÑштаб</translation>
<translation id="1031362278801463162">Загрузка данных Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð²Ð°Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð³Ð¾ проÑмотра</translation>
@@ -1201,7 +1201,7 @@ http://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-featur
<translation id="2815500128677761940">Панель закладок</translation>
<translation id="2815693974042551705">Папка Ñ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ°Ð¼Ð¸</translation>
<translation id="2818476747334107629">Ð¡Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ принтере</translation>
-<translation id="2820957248982571256">ВыполнÑетÑÑ Ð¿Ð¾Ð¸Ñк…</translation>
+<translation id="2820957248982571256">ПоиÑк…</translation>
<translation id="2822634587701817431">Свернуть или развернуть</translation>
<translation id="2825758591930162672">Открытый ключ Ñубъекта</translation>
<translation id="2828650939514476812">ПодключитеÑÑŒ к Ñети Wi-Fi</translation>
@@ -2328,7 +2328,7 @@ http://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-featur
<translation id="4610637590575890427">Возможно, вы хотели перейти на <ph name="SITE" />?</translation>
<translation id="4611114513649582138">ДоÑтупно Интернет-подключение</translation>
<translation id="4613271546271159013">Одно из раÑширений изменило Ñтраницу, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ð²Ð°ÐµÑ‚ÑÑ Ð² новой вкладке.</translation>
-<translation id="4615586811063744755">файлы не выбраны</translation>
+<translation id="4615586811063744755">файлы cookie не выбраны</translation>
<translation id="4617270414136722281">Параметры раÑширений</translation>
<translation id="4618990963915449444">Ð’Ñе файлы, запиÑанные на ноÑителе "<ph name="DEVICE_NAME" />", будут удалены.</translation>
<translation id="4619615317237390068">Вкладки Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… уÑтройÑтв</translation>
@@ -2406,7 +2406,7 @@ http://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-featur
<translation id="4728558894243024398">Платформа</translation>
<translation id="4731422630970790516">3-й объект на панели запуÑка</translation>
<translation id="4732760563705710320">Это видео не поддерживаетÑÑ Ð½Ð° вашем Cast-уÑтройÑтве.</translation>
-<translation id="4733793249294335256">Путь</translation>
+<translation id="4733793249294335256">Папка</translation>
<translation id="4734518477988699048">Введено недопуÑтимое значение.</translation>
<translation id="473546211690256853">Этот аккаунт находитÑÑ Ð² домене <ph name="DOMAIN" /></translation>
<translation id="4737715515457435632">ПодключитеÑÑŒ к Интернету</translation>
@@ -2423,7 +2423,7 @@ http://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-featur
<translation id="4759238208242260848">Скачанные файлы</translation>
<translation id="4761104368405085019">ИÑпользование микрофона</translation>
<translation id="4762718786438001384">Свободное проÑтранÑтво почти закончилоÑÑŒ</translation>
-<translation id="4763408175235639573">Во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð¾Ñмотра Ñтой Ñтраницы были Ñохранены Ñледующие файлы cookie:</translation>
+<translation id="4763408175235639573">При поÑещении Ñтой Ñтраницы на вашем компьютере были Ñохранены Ñледующие файлы cookie:</translation>
<translation id="4763830802490665879">Файлы cookie Ñ Ð½ÐµÑкольких Ñайтов будут удалены при завершении ÑеанÑа.</translation>
<translation id="4768332406694066911">У Ð²Ð°Ñ ÐµÑÑ‚ÑŒ идентифицирующие Ð²Ð°Ñ Ñертификаты Ñтих организаций</translation>
<translation id="4776917500594043016">Пароль Ð´Ð»Ñ Ð°Ð´Ñ€ÐµÑа Ñлектронной почты <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -2802,7 +2802,7 @@ http://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-featur
<translation id="5337771866151525739">УÑтановлено незавиÑимым поÑтавщиком.</translation>
<translation id="5338503421962489998">Локальное хранилище</translation>
<translation id="5340217413897845242">6-й объект на панели запуÑка</translation>
-<translation id="5341793073192892252">Заблокированные файлы cookie (Ñторонние файлы cookie блокируютÑÑ Ð±ÐµÐ· иÑключениÑ):</translation>
+<translation id="5341793073192892252">Были заблокированы Ñледующие файлы cookie (Ñторонние файлы cookie блокируютÑÑ Ð±ÐµÐ· иÑключениÑ):</translation>
<translation id="5341980496415249280">ВыполнÑетÑÑ Ñжатие…</translation>
<translation id="5342091991439452114">PIN-код должен Ñодержать не менее <ph name="MINIMUM" /> знаков</translation>
<translation id="534916491091036097">Ð›ÐµÐ²Ð°Ñ Ñкобка</translation>
@@ -3026,6 +3026,7 @@ http://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-featur
<translation id="5678955352098267522">ПроÑмотр данных на Ñайте <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Идентификатор объекта</translation>
<translation id="5687326903064479980">ЧаÑовой поÑÑ</translation>
+<translation id="5689516760719285838">Геоданные</translation>
<translation id="56907980372820799">СвÑзать аккаунты</translation>
<translation id="5691511426247308406">СемейÑтво</translation>
<translation id="5691596662111998220">Элемент "<ph name="FILE_NAME" />" удален</translation>
@@ -4846,7 +4847,7 @@ http://www.chromium.org/chromium-os/how-tos-and-troubleshooting/debugging-featur
<translation id="8620617069779373398">Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ€Ð¾ÑƒÐ¼Ð¸Ð½Ð³Ð°</translation>
<translation id="8620765578342452535">ÐаÑтройка Ñетевых подключений</translation>
<translation id="8623004009673949077">ПриложениÑ, у которых в манифеÑте еÑÑ‚ÑŒ атрибут kiosk_only, можно уÑтанавливать только в режиме информационного киоÑка Chrome OS</translation>
-<translation id="8624205858755890468">ПозволÑет ÐÑÑиÑтенту показывать похожую информацию, Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¸ дейÑтвиÑ.</translation>
+<translation id="8624205858755890468">Разрешить ÐÑÑиÑтенту показывать похожую информацию, Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¸ дейÑтвиÑ.</translation>
<translation id="862542460444371744">РаÑширениÑ</translation>
<translation id="8627151598708688654">Выбор иÑточника</translation>
<translation id="862727964348362408">ПриоÑтановлено</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_sk.xtb b/chromium/chrome/app/resources/generated_resources_sk.xtb
index 569f32d3add..e87a53f5ab8 100644
--- a/chromium/chrome/app/resources/generated_resources_sk.xtb
+++ b/chromium/chrome/app/resources/generated_resources_sk.xtb
@@ -799,7 +799,7 @@ Do úplného nabitia zostáva: <ph name="HOUR" />:<ph name="MINUTE" /></translat
<translation id="222949136907494149">Stránky <ph name="URL" /> chcú použiÅ¥ polohu vášho poÄítaÄa.</translation>
<translation id="2230051135190148440">CHAP</translation>
<translation id="2230062665678605299">PrieÄinok <ph name="FOLDER_NAME" /> sa nepodarilo vytvoriÅ¥. <ph name="ERROR_MESSAGE" /></translation>
-<translation id="223106756035922488">Kliknutím zobrazte dnešný doodle</translation>
+<translation id="223106756035922488">Kliknutím zobrazíte dnešný doodle</translation>
<translation id="2231238007119540260">Ak odstránite certifikát servera, obnovíte zvyÄajné bezpeÄnostné kontroly servera a server bude musieÅ¥ používaÅ¥ platný certifikát.</translation>
<translation id="2231990265377706070">VýkriÄník</translation>
<translation id="2232876851878324699">Súbor obsahoval jeden certifikát, ktorý nebol importovaný:</translation>
@@ -1014,7 +1014,7 @@ Tieto webové stránky by podľa mňa nemali byť blokované.</translation>
<translation id="2570000010887652771">Uložené dáta.</translation>
<translation id="2570648609346224037">Pri sťahovaní obrazu na obnovenie sa vyskytol problém.</translation>
<translation id="257088987046510401">Motívy</translation>
-<translation id="2571964818629181240">Pred importovaním zatvoriť Firefox</translation>
+<translation id="2571964818629181240">Pred importovaním zatvorte Firefox</translation>
<translation id="2572032849266859634">Bol udelený prístup k médiu <ph name="VOLUME_NAME" /> s povolením iba na Äítanie.</translation>
<translation id="2573269395582837871">Vyberte obrázok a meno</translation>
<translation id="2574102660421949343">Boli povolené súbory cookie zo stránok <ph name="DOMAIN" />.</translation>
@@ -1117,7 +1117,7 @@ Tieto webové stránky by podľa mňa nemali byť blokované.</translation>
<translation id="2715751256863167692">Táto inovácia resetuje Chromebook a odstráni aktuálne dáta používateľa.</translation>
<translation id="2718395828230677721">NoÄný režim</translation>
<translation id="2718998670920917754">Antivírusový softvér našiel vírus.</translation>
-<translation id="2719936478972253983">Boli zablokované nasledujúce súbory cookie</translation>
+<translation id="2719936478972253983">Boli zablokované nasledujúce súbory cookie:</translation>
<translation id="2721037002783622288">&amp;Hľadať obrázok v službe <ph name="SEARCH_ENGINE" /></translation>
<translation id="2721334646575696520">Microsoft Edge</translation>
<translation id="2721695630904737430">Kontrolovaní používatelia boli zakázaní správcom.</translation>
@@ -2406,7 +2406,7 @@ Ak chcete pokraÄovaÅ¥ v práci, stlaÄte ľubovoľný kláves.</translation>
<translation id="4728558894243024398">Platforma</translation>
<translation id="4731422630970790516">3. položka na poliÄke</translation>
<translation id="4732760563705710320">Je nám to ľúto, ale vaše zariadenie na prenos nepodporuje toto video</translation>
-<translation id="4733793249294335256">Poloha</translation>
+<translation id="4733793249294335256">Umiestnenie</translation>
<translation id="4734518477988699048">Hodnota vstupu je neplatná.</translation>
<translation id="473546211690256853">Tento úÄet spravuje doména <ph name="DOMAIN" />.</translation>
<translation id="4737715515457435632">Pripojte sa k sieti</translation>
@@ -2802,7 +2802,7 @@ s ostatnými, a to všetko na jednom mieste.<ph name="MARKUP_9" /></translatio
<translation id="5337771866151525739">Nainštalované treťou stranou.</translation>
<translation id="5338503421962489998">Miestny ukladací priestor</translation>
<translation id="5340217413897845242">6. položka na poliÄke</translation>
-<translation id="5341793073192892252">Nasledujúce súbory cookie boli zablokované (súbory cookie tretej strany sú blokované bez výnimky)</translation>
+<translation id="5341793073192892252">Nasledujúce súbory cookie boli zablokované (súbory cookie tretej strany sú blokované bez výnimky):</translation>
<translation id="5341980496415249280">Čakajte, prebieha balenie…</translation>
<translation id="5342091991439452114">Minimálny poÄet Äíslic kódu PIN: <ph name="MINIMUM" /></translation>
<translation id="534916491091036097">Ľavá zátvorka</translation>
@@ -3026,6 +3026,7 @@ s ostatnými, a to všetko na jednom mieste.<ph name="MARKUP_9" /></translatio
<translation id="5678955352098267522">Čítať vaše údaje na: <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Identifikátor obsahu</translation>
<translation id="5687326903064479980">Časové pásmo</translation>
+<translation id="5689516760719285838">Poloha</translation>
<translation id="56907980372820799">Prepojiť údaje</translation>
<translation id="5691511426247308406">Rodina</translation>
<translation id="5691596662111998220">Hops, súbor <ph name="FILE_NAME" /> už neexistuje.</translation>
@@ -4844,7 +4845,7 @@ Prebieha výpoÄet Äasu do úplného nabitia</translation>
<translation id="8620617069779373398">Stav roamingu</translation>
<translation id="8620765578342452535">Konfigurovať sieťové pripojenia</translation>
<translation id="8623004009673949077">Aplikácie s atribútom manifestu „kiosk_only“ musia byť nainštalované v režime verejného terminálu systému OS Chrome.</translation>
-<translation id="8624205858755890468">Umožňuje Asistentovi zobrazovať súvisiace informácie, aplikácie a akcie.</translation>
+<translation id="8624205858755890468">Umožňuje Asistentovi zobraziť vám súvisiace informácie, aplikácie a akcie.</translation>
<translation id="862542460444371744">&amp;Rozšírenia</translation>
<translation id="8627151598708688654">Výber zdroja</translation>
<translation id="862727964348362408">Pozastavené</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_sl.xtb b/chromium/chrome/app/resources/generated_resources_sl.xtb
index c5909808bd5..add40dd6fc9 100644
--- a/chromium/chrome/app/resources/generated_resources_sl.xtb
+++ b/chromium/chrome/app/resources/generated_resources_sl.xtb
@@ -14,7 +14,7 @@
<translation id="1016566241875885511">Dodatni podatki (izbirno)</translation>
<translation id="1017280919048282932">&amp;Dodaj v slovar</translation>
<translation id="1018656279737460067">Preklicano</translation>
-<translation id="102272308210570439">Dovoli PomoÄniku, da uporabi vsebino na zaslonu</translation>
+<translation id="102272308210570439">Naj pomoÄnik uporabi vsebino na zaslonu</translation>
<translation id="1026822031284433028">Naloži sliko</translation>
<translation id="1029317248976101138">PoveÄaj</translation>
<translation id="1031362278801463162">Nalaganje predogleda</translation>
@@ -2424,7 +2424,7 @@ Pritisnite katero koli tipko, Äe želite Å¡e naprej raziskovati.</translation>
<translation id="4759238208242260848">Prenosi</translation>
<translation id="4761104368405085019">Uporabite mikrofon</translation>
<translation id="4762718786438001384">V napravi kritiÄno primanjkuje prostora na disku</translation>
-<translation id="4763408175235639573">Ko ste si ogledovali to stran, so bili nastavljeni ti piškotki</translation>
+<translation id="4763408175235639573">Ko ste si ogledovali to stran, so bili poslani ti piškotki</translation>
<translation id="4763830802490665879">PiÅ¡kotki z veÄ spletnih mest bodo ob izhodu izbrisani.</translation>
<translation id="4768332406694066911">Imate potrdila teh organizacij, ki vas identificirajo</translation>
<translation id="4776917500594043016">Geslo za <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -3028,6 +3028,7 @@ Poskrbite, da ne boste razkrili morebitnih obÄutljivih podatkov.</translation>
<translation id="5678955352098267522">Branje vaših podatkov na spletnem mestu <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">ID sredstva</translation>
<translation id="5687326903064479980">ÄŒasovni pas</translation>
+<translation id="5689516760719285838">Lokacija</translation>
<translation id="56907980372820799">Poveži podatke</translation>
<translation id="5691511426247308406">Družina</translation>
<translation id="5691596662111998220">Ups, <ph name="FILE_NAME" /> ne obstaja veÄ.</translation>
@@ -4848,7 +4849,7 @@ izraÄun Äasa do napolnjenosti</translation>
<translation id="8620617069779373398">Stanje gostovanja</translation>
<translation id="8620765578342452535">Konfiguriranje omrežnih povezav</translation>
<translation id="8623004009673949077">Aplikacijo z atributom manifesta »kiosk_only« je treba namestiti v naÄinu kioska Chrome OS.</translation>
-<translation id="8624205858755890468">OmogoÄi PomoÄniku, da prikazuje sorodne informacije, aplikacije in dejanja.</translation>
+<translation id="8624205858755890468">OmogoÄi PomoÄniku, da vam prikazuje sorodne informacije, aplikacije in dejanja.</translation>
<translation id="862542460444371744">&amp;Razširitve</translation>
<translation id="8627151598708688654">Izbira vira</translation>
<translation id="862727964348362408">OnemogoÄeno</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_sr.xtb b/chromium/chrome/app/resources/generated_resources_sr.xtb
index a4ea58b53a1..2f1f01ee1ce 100644
--- a/chromium/chrome/app/resources/generated_resources_sr.xtb
+++ b/chromium/chrome/app/resources/generated_resources_sr.xtb
@@ -3024,6 +3024,7 @@
<translation id="5678955352098267522">Читање ваших података на <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Идентификатор елемента</translation>
<translation id="5687326903064479980">ВременÑка зона</translation>
+<translation id="5689516760719285838">Локација</translation>
<translation id="56907980372820799">Повежи податке</translation>
<translation id="5691511426247308406">Породица</translation>
<translation id="5691596662111998220">УпÑ, <ph name="FILE_NAME" /> више не поÑтоји.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_sv.xtb b/chromium/chrome/app/resources/generated_resources_sv.xtb
index eb1295ceb99..c2e7d172ce5 100644
--- a/chromium/chrome/app/resources/generated_resources_sv.xtb
+++ b/chromium/chrome/app/resources/generated_resources_sv.xtb
@@ -14,7 +14,7 @@
<translation id="1016566241875885511">Mer information (valfritt)</translation>
<translation id="1017280919048282932">&amp;Lägg till i ordlistan</translation>
<translation id="1018656279737460067">Avbröts</translation>
-<translation id="102272308210570439">Ge assistenten tillgång till det som visas på skärmen</translation>
+<translation id="102272308210570439">Låt assistenten använda det som visas på skärmen</translation>
<translation id="1026822031284433028">Läs in bild</translation>
<translation id="1029317248976101138">Zooma in</translation>
<translation id="1031362278801463162">Läser in förhandsgranskning</translation>
@@ -38,7 +38,7 @@
<translation id="1049926623896334335">Word-dokument</translation>
<translation id="1054153489933238809">Öppna originalbilden i en ny flik</translation>
<translation id="1055806300943943258">Söker efter Bluetooth- och USB-enheter …</translation>
-<translation id="1056775291175587022">Inga nätverk hittades</translation>
+<translation id="1056775291175587022">Inga nätverk</translation>
<translation id="1056898198331236512">Varning</translation>
<translation id="1058262162121953039">PUK-kod</translation>
<translation id="1058418043520174283"><ph name="INDEX" /> av <ph name="COUNT" /></translation>
@@ -269,7 +269,7 @@
<translation id="1407489512183974736">Centrera och beskär</translation>
<translation id="1408504635543854729">Utforska innehållet på den här enheten i appen Filer. Innehållet har skrivskyddats av en administratör och kan inte ändras.</translation>
<translation id="1408789165795197664">Avancerat ...</translation>
-<translation id="1409390508152595145">Skapa en övervakad användare</translation>
+<translation id="1409390508152595145">Skapa en kontrollerad användare</translation>
<translation id="1410616244180625362">Fortsätt tillåta att <ph name="HOST" /> använder kameran</translation>
<translation id="1414648216875402825">Du uppdaterar till en instabil version av <ph name="PRODUCT_NAME" /> som innehåller funktioner som inte är klara. Du kommer att råka ut för kraschar och oväntade buggar. Var försiktig.</translation>
<translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (tilläggs-id <ph name="EXTENSION_ID" />) får inte användas i den här typen av session.</translation>
@@ -431,9 +431,9 @@
<translation id="1645516838734033527">Mobilen behöver ha ett skärmlås när du använder Smart Lock så att din <ph name="DEVICE_TYPE" /> förblir skyddad.</translation>
<translation id="1646102270785326155">Alla filer och all lokal data som är kopplade till den här användaren raderas permanent när användaren tas bort. $1 kan fortfarande logga in senare.</translation>
<translation id="1646982517418478057">Ange ett lösenord om du vill kryptera det här certifikatet</translation>
-<translation id="164814987133974965">En övervakad användare kan utforska webben med din hjälp. Som ansvarig hanterare för en övervakad användare kan du
+<translation id="164814987133974965">En kontrollerad användare kan utforska webben med din hjälp. Som ansvarig hanterare för en kontrollerad användare kan du
<ph name="BEGIN_BOLD" />tillåta eller förbjuda<ph name="END_BOLD" /> vissa webbplatser,
- <ph name="BEGIN_BOLD" />granska<ph name="END_BOLD" /> webbplatser som den övervakade användaren har besökt samt <ph name="BEGIN_BOLD" />hantera<ph name="END_BOLD" /> andra inställningar.</translation>
+ <ph name="BEGIN_BOLD" />granska<ph name="END_BOLD" /> webbplatser som den kontrollerade användaren har besökt samt <ph name="BEGIN_BOLD" />hantera<ph name="END_BOLD" /> andra inställningar.</translation>
<translation id="1648943974594387137">Inloggningsuppgifterna är inaktuella</translation>
<translation id="1650371550981945235">Visa inmatningsalternativ</translation>
<translation id="1650709179466243265">Lägg till www. och .com och öppna adressen</translation>
@@ -638,7 +638,7 @@
<translation id="1979280758666859181">Du byter till en kanal med en äldre version av <ph name="PRODUCT_NAME" />. Kanalen byts när kanalversionen matchar den version som är installerad på din enhet.</translation>
<translation id="1979718561647571293">Är det här den startsida du förväntade dig?</translation>
<translation id="1981115145845865539">LÃ¥s upp din <ph name="DEVICE_TYPE" /> automatiskt</translation>
-<translation id="1983959805486816857">När du har skapat en ny övervakad användare kan du hantera inställningarna när som helst från vilken enhet som helst på <ph name="MANAGEMENT_URL" />.</translation>
+<translation id="1983959805486816857">När du har skapat en ny kontrollerad användare kan du hantera inställningarna när som helst från vilken enhet som helst på <ph name="MANAGEMENT_URL" />.</translation>
<translation id="1984642098429648350">Docka fönstret till höger</translation>
<translation id="1987139229093034863">Byt användare.</translation>
<translation id="1989112275319619282">Bläddra</translation>
@@ -797,7 +797,7 @@
<translation id="222949136907494149"><ph name="URL" /> vill använda enhetens platsinfo.</translation>
<translation id="2230051135190148440">CHAP</translation>
<translation id="2230062665678605299">Det går inte att skapa mappen <ph name="FOLDER_NAME" />. <ph name="ERROR_MESSAGE" /></translation>
-<translation id="223106756035922488">Klicka här om du vill se dagens doodle</translation>
+<translation id="223106756035922488">Klicka här om du vill visa dagens doodle</translation>
<translation id="2231238007119540260">Om du tar bort ett servercertifikat återställer du de vanliga säkerhetskontrollerna för servern. Därefter måste servern använda ett giltigt certifikat.</translation>
<translation id="2231990265377706070">Utropstecken</translation>
<translation id="2232876851878324699">Filen innehöll ett certifikat och det importerades inte:</translation>
@@ -1012,7 +1012,7 @@ Jag tycker inte att den här webbplatsen ska blockeras!</translation>
<translation id="2570000010887652771">Data sparas.</translation>
<translation id="2570648609346224037">Det uppstod ett problem när återställningsavbildningen laddades ned.</translation>
<translation id="257088987046510401">Teman</translation>
-<translation id="2571964818629181240">Avsluta Firefox innan importeringen</translation>
+<translation id="2571964818629181240">Stäng Firefox före import</translation>
<translation id="2572032849266859634">Skrivskyddad åtkomst till <ph name="VOLUME_NAME" /> har beviljats.</translation>
<translation id="2573269395582837871">Välj bild och namn</translation>
<translation id="2574102660421949343">Cookies tillåts från <ph name="DOMAIN" />.</translation>
@@ -1027,8 +1027,8 @@ Jag tycker inte att den här webbplatsen ska blockeras!</translation>
<translation id="2581475589551312226">Säkerhetskopiera och återställ data i appar från Play på Google Drive. <ph name="BEGIN_LINK1" />Läs mer<ph name="END_LINK1" /></translation>
<translation id="2582253231918033891"><ph name="PRODUCT_NAME" /> <ph name="PRODUCT_VERSION" /> (Plattform <ph name="PLATFORM_VERSION" />) <ph name="DEVICE_SERIAL_NUMBER" /></translation>
<translation id="2585300050980572691">Standardinställningar för sökning</translation>
-<translation id="2587922270115112871">Inget Google-konto skapas när en övervakad användare skapas och användarens inställningar
- och data är inte tillgängliga på andra enheter via Chrome Sync. För närvarande gäller den övervakade användaren endast på den här enheten.</translation>
+<translation id="2587922270115112871">Inget Google-konto skapas när en kontrollerad användare skapas och användarens inställningar
+ och data är inte tillgängliga på andra enheter via Chrome Sync. För närvarande gäller den kontrollerade användaren endast på den här enheten.</translation>
<translation id="258932246702879617">Välj <ph name="BEGIN_BOLD" />Fäst i aktivitetsfältet<ph name="END_BOLD" /></translation>
<translation id="259421303766146093">Förminska</translation>
<translation id="2594999711683503743">Sök på Google eller skriv webbadressen</translation>
@@ -1137,7 +1137,7 @@ Jag tycker inte att den här webbplatsen ska blockeras!</translation>
<translation id="2738771556149464852">Inte efter</translation>
<translation id="2739191690716947896">Felsökning</translation>
<translation id="2739240477418971307">Ändra tillgänglighetsinställningarna</translation>
-<translation id="2740393541869613458">granska webbplatser som den övervakade användaren har besökt och</translation>
+<translation id="2740393541869613458">granska webbplatser som den kontrollerade användaren har besökt och</translation>
<translation id="2743387203779672305">Kopiera till Urklipp</translation>
<translation id="2745080116229976798">Microsofts kvalificerade underordning</translation>
<translation id="2749756011735116528">Logga in på <ph name="PRODUCT_NAME" /></translation>
@@ -1531,7 +1531,7 @@ Besök vårt <ph name="BEGIN_LINK" />hjälpcenter<ph name="END_LINK" /> om du vi
<translation id="3313080019966590424"><ph name="DOWNLOAD_RECEIVED_AND_TOTAL" />, <ph name="SUB_STATUS_TEXT" />
Från <ph name="DOWNLOAD_DOMAIN" /></translation>
<translation id="3313473140726597081">Starfliken har ändrats till <ph name="URL" />. Inaktivera tillägg som ändrar startfliken genom att trycka på Återställ.</translation>
-<translation id="3313590242757056087">Om du vill ange vilka webbplatser som den övervakade användaren får besöka, kan du ange begränsningar
+<translation id="3313590242757056087">Om du vill ange vilka webbplatser som den kontrollerade användaren får besöka, kan du ange begränsningar
och inställningar genom att besöka <ph name="MANAGEMENT_URL" />.
Om du inte ändrar standardinställningarna kan <ph name="USER_DISPLAY_NAME" />
besöka alla sidor på webben.</translation>
@@ -1673,14 +1673,14 @@ Från <ph name="DOWNLOAD_DOMAIN" /></translation>
<translation id="3514373592552233661">Prioriterade nätverk väljs före andra kända nätverk när det finns flera nätverk tillgängliga</translation>
<translation id="3523642406908660543">Fråga om en webbplats försöker använda en plugin för att få åtkomst till datorn (rekommenderas)</translation>
<translation id="3527085408025491307">Mapp</translation>
-<translation id="3527276236624876118">En övervakad användare med namnet <ph name="USER_DISPLAY_NAME" /> har skapats.</translation>
+<translation id="3527276236624876118">En kontrollerad användare med namnet <ph name="USER_DISPLAY_NAME" /> har skapats.</translation>
<translation id="3528033729920178817">Sidan spårar din plats.</translation>
<translation id="3528498924003805721">Mål för genvägar</translation>
<translation id="3530305684079447434"><ph name="SIGN_IN_LINK" /> om du vill få tillgång till samma bokmärken på alla dina enheter.</translation>
<translation id="3530751398950974194">Uppdatera lösenfrasen för synkronisering</translation>
<translation id="3531250013160506608">Lösenordsruta</translation>
<translation id="353316712352074340"><ph name="WINDOW_TITLE" /> – ljud av</translation>
-<translation id="3534879087479077042">Vad är en övervakad användare?</translation>
+<translation id="3534879087479077042">Vad är en kontrollerad användare?</translation>
<translation id="354060433403403521">Laddare</translation>
<translation id="3541661933757219855">Tryck på Ctrl+Alt+/ eller Escape för att dölja</translation>
<translation id="3543393733900874979">Uppdatering misslyckades (fel: <ph name="ERROR_NUMBER" />)</translation>
@@ -1738,7 +1738,7 @@ Från <ph name="DOWNLOAD_DOMAIN" /></translation>
<translation id="3616741288025931835">&amp;Rensa webbinformation...</translation>
<translation id="3618849550573277856">Sök efter â€<ph name="LOOKUP_STRING" />â€</translation>
<translation id="3620292326130836921">Allt har säkerhetskopierats!</translation>
-<translation id="3623574769078102674">Denna övervakade användare kommer att hanteras av <ph name="MANAGER_EMAIL" />.</translation>
+<translation id="3623574769078102674">Denna kontrollerade användare kommer att hanteras av <ph name="MANAGER_EMAIL" />.</translation>
<translation id="3625258641415618104">Skärmdumpar har inaktiverats</translation>
<translation id="3625870480639975468">Återställ zoom</translation>
<translation id="3626281679859535460">Ljusstyrka</translation>
@@ -1915,7 +1915,7 @@ Från <ph name="DOWNLOAD_DOMAIN" /></translation>
<translation id="3868718841498638222">Du har bytt till kanalen <ph name="CHANNEL_NAME" />.</translation>
<translation id="3869917919960562512">Fel index.</translation>
<translation id="3872991219937722530">Frigör diskutrymme för att enheten ska fortsätta svara.</translation>
-<translation id="3878840326289104869">Skapar övervakad användare</translation>
+<translation id="3878840326289104869">Skapar kontrollerad användare</translation>
<translation id="3879748587602334249">Nedladdningshanterare</translation>
<translation id="388485010393668001">Ett slutförande är tillgängligt: <ph name="COMPLETION_TEXT" /></translation>
<translation id="3892414795099177503">Lägg till OpenVPN/L2TP …</translation>
@@ -2327,7 +2327,7 @@ Tryck på någon tangent om du vill fortsätta utforska.</translation>
<translation id="4610637590575890427">Ville du besöka <ph name="SITE" />?</translation>
<translation id="4611114513649582138">Dataanslutningar är tillgängliga</translation>
<translation id="4613271546271159013">Vilken sida som visas när du öppnar en ny flik har ändrats av ett tillägg.</translation>
-<translation id="4615586811063744755">ingen cookie är vald</translation>
+<translation id="4615586811063744755">inga cookies har valts</translation>
<translation id="4617270414136722281">Tilläggsalternativ</translation>
<translation id="4618990963915449444">Alla filer på <ph name="DEVICE_NAME" /> kommer att tas bort.</translation>
<translation id="4619615317237390068">Flikar från andra enheter</translation>
@@ -2801,7 +2801,7 @@ Tryck på någon tangent om du vill fortsätta utforska.</translation>
<translation id="5337771866151525739">Installerad av tredje part.</translation>
<translation id="5338503421962489998">Lokal lagring</translation>
<translation id="5340217413897845242">Hyllobjekt 6</translation>
-<translation id="5341793073192892252">Följande cookies blockerades (cookies från tredje part blockeras alltid)</translation>
+<translation id="5341793073192892252">Följande cookies har blockerats (cookies från tredje part blockeras alltid)</translation>
<translation id="5341980496415249280">Komprimering pågår, vänta …</translation>
<translation id="5342091991439452114">Pinkoden måste bestå av minst <ph name="MINIMUM" /> siffror</translation>
<translation id="534916491091036097">Vänsterparen</translation>
@@ -3025,6 +3025,7 @@ Tryck på någon tangent om du vill fortsätta utforska.</translation>
<translation id="5678955352098267522">Läsa din data på <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Tillgångsidentifierare</translation>
<translation id="5687326903064479980">Tidszon</translation>
+<translation id="5689516760719285838">Plats</translation>
<translation id="56907980372820799">Länkdata</translation>
<translation id="5691511426247308406">Familj</translation>
<translation id="5691596662111998220"><ph name="FILE_NAME" /> finns tyvärr inte längre.</translation>
@@ -3084,7 +3085,7 @@ Tryck på någon tangent om du vill fortsätta utforska.</translation>
<translation id="5778747455497889540">Nedan visas det slumpmässigt genererade lösenordet för den säkra modulen som har tilldelats din dator:</translation>
<translation id="5780973441651030252">Prioriteringsprocess</translation>
<translation id="5781865261247219930">Skicka kommandon till <ph name="EXTENSION_NAME" /></translation>
-<translation id="5783221160790377646">Ingen övervakad användare skapades på grund av ett fel. Försök igen senare.</translation>
+<translation id="5783221160790377646">Ingen kontrollerad användare skapades på grund av ett fel. Försök igen senare.</translation>
<translation id="5783602409389152506">under sökningen efter enheter …</translation>
<translation id="57838592816432529">Stäng av ljudet</translation>
<translation id="5787146423283493983">Nyckelavtal</translation>
@@ -3196,7 +3197,7 @@ Tryck på någon tangent om du vill fortsätta utforska.</translation>
<translation id="5955282598396714173">Lösenordet har upphört att gälla. Logga ut och logga sedan in igen innan du ändrar det.</translation>
<translation id="5956585768868398362">Är det här den söksida du väntade dig?</translation>
<translation id="5957613098218939406">Fler alternativ</translation>
-<translation id="5958529069007801266">Övervakad användare</translation>
+<translation id="5958529069007801266">Kontrollerad användare</translation>
<translation id="5959471481388474538">Nätverket är inte tillgängligt</translation>
<translation id="5963026469094486319">Hämta teman</translation>
<translation id="5963453369025043595"><ph name="NUM_HANDLES" /> (<ph name="NUM_KILOBYTES_LIVE" /> som mest)</translation>
@@ -3861,7 +3862,7 @@ Tryck på någon tangent om du vill fortsätta utforska.</translation>
<translation id="6998711733709403587"><ph name="SELCTED_FOLDERS_COUNT" /> mappar har valts</translation>
<translation id="6998793565256476099">Registrera enheten för videokonferenser</translation>
<translation id="7002055706763150362">Om du vill konfigurera Smart Lock för Chrome måste Google vara säker på att det är du som gör ändringen, så du måste först ange ditt lösenord.</translation>
-<translation id="7002454948392136538">Välj ansvarig för den här övervakade användaren</translation>
+<translation id="7002454948392136538">Välj ansvarig för den här kontrollerade användaren</translation>
<translation id="7003339318920871147">Webbdatabaser</translation>
<translation id="7003723821785740825">Konfigurera ett snabbare sätt för att låsa upp enheten</translation>
<translation id="7004499039102548441">Senaste flikarna</translation>
@@ -4612,7 +4613,7 @@ Spara nyckelfilen på ett säkert ställe. Den behövs om du ska skapa nya versi
<translation id="8202160505685531999">Ange lösenordet på nytt om du vill uppdatera din profil på <ph name="DEVICE_TYPE" />.</translation>
<translation id="8206354486702514201">Administratören har gjort den här inställningen obligatorisk.</translation>
<translation id="8206745257863499010">Bluesig</translation>
-<translation id="8209677645716428427">En övervakad användare kan utforska webben med dig som guide. Du som hanterar en övervakad användare i Chrome kan:</translation>
+<translation id="8209677645716428427">En kontrollerad användare kan utforska webben med dig som guide. Du som hanterar en kontrollerad användare i Chrome kan:</translation>
<translation id="8213449224684199188">Fotoläget har aktiverats</translation>
<translation id="8213577208796878755">En till tillgänglig enhet.</translation>
<translation id="8214489666383623925">Öppna fil...</translation>
@@ -4760,7 +4761,7 @@ Spara nyckelfilen på ett säkert ställe. Den behövs om du ska skapa nya versi
<translation id="8461329675984532579">Hemleverantörens namn</translation>
<translation id="84613761564611563">Nätverkskonfigurering av användargränssnitt har begärts. Vänta en stund …</translation>
<translation id="8461914792118322307">Proxy</translation>
-<translation id="8463215747450521436">Den här övervakade användaren kan ha tagits bort eller inaktiverats av ansvarig hanterare. Kontakta hanteraren om du vill fortsätta att logga in som den här användaren.</translation>
+<translation id="8463215747450521436">Den här kontrollerade användaren kan ha tagits bort eller inaktiverats av ansvarig hanterare. Kontakta hanteraren om du vill fortsätta att logga in som den här användaren.</translation>
<translation id="8463955938112983119"><ph name="PLUGIN_NAME" /> har inaktiverats.</translation>
<translation id="8464132254133862871">Det här användarkontot kan inte väljas för denna tjänst.</translation>
<translation id="8465252176946159372">Inte giltig</translation>
@@ -4843,7 +4844,7 @@ Spara nyckelfilen på ett säkert ställe. Den behövs om du ska skapa nya versi
<translation id="8620617069779373398">Dirigeringsstatus</translation>
<translation id="8620765578342452535">Konfigurera nätverksanslutningar</translation>
<translation id="8623004009673949077">En app med manifestattributet kiosk_only måste installeras i kioskläget i Chrome OS.</translation>
-<translation id="8624205858755890468">Tillåt att assistenten visar relaterade uppgifter, appar och åtgärder.</translation>
+<translation id="8624205858755890468">Tillåter att assistenten visar relaterade uppgifter, appar och åtgärder.</translation>
<translation id="862542460444371744">&amp;Tillägg</translation>
<translation id="8627151598708688654">Välj källa</translation>
<translation id="862727964348362408">Tillfälligt avstängd</translation>
@@ -4922,7 +4923,7 @@ Spara nyckelfilen på ett säkert ställe. Den behövs om du ska skapa nya versi
<translation id="8725066075913043281">Försök igen</translation>
<translation id="8725178340343806893">Favoriter/bokmärken</translation>
<translation id="8726206820263995930">Det uppstod ett fel när policyinställningarna hämtades från servern: <ph name="CLIENT_ERROR" />.</translation>
-<translation id="8726718463424335668">Hoppa över importeringen</translation>
+<translation id="8726718463424335668">Hoppa över import</translation>
<translation id="8727142376512517020">Visa inte det här igen</translation>
<translation id="8730621377337864115">Klart</translation>
<translation id="8732030010853991079">Använd tillägget genom att klicka på den här ikonen.</translation>
@@ -5069,7 +5070,7 @@ Spara nyckelfilen på ett säkert ställe. Den behövs om du ska skapa nya versi
<translation id="8957423540740801332">höger</translation>
<translation id="8958084571232797708">Använd en webbadress för automatisk konfiguration</translation>
<translation id="895944840846194039">JavaScript-minne</translation>
-<translation id="8959810181433034287">Den övervakade användaren behöver använda detta lösenord för att logga in, så välj ett säkert lösenord och kom ihåg att diskutera det med den övervakade användaren.</translation>
+<translation id="8959810181433034287">Den kontrollerade användaren behöver använda detta lösenord för att logga in, så välj ett säkert lösenord och kom ihåg att diskutera det med den kontrollerade användaren.</translation>
<translation id="8960795431111723921">Vi håller på att undersöka problemet.</translation>
<translation id="8962083179518285172">Dölj detaljer</translation>
<translation id="8965037249707889821">Ange det gamla lösenordet</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_sw.xtb b/chromium/chrome/app/resources/generated_resources_sw.xtb
index 3e69a65dde6..9e21bd9bc3e 100644
--- a/chromium/chrome/app/resources/generated_resources_sw.xtb
+++ b/chromium/chrome/app/resources/generated_resources_sw.xtb
@@ -1011,7 +1011,7 @@ Sidhani ikiwa tovuti hii inapaswa kuzuiwa!</translation>
<translation id="2570000010887652771">Data iliyookolewa.</translation>
<translation id="2570648609346224037">Kulikuwa na tatizo wakati wa kupakua picha ya ufufuzi.</translation>
<translation id="257088987046510401">Mandhari</translation>
-<translation id="2571964818629181240">Funga programu ya Firefox kabla ya kuhamisha</translation>
+<translation id="2571964818629181240">Funga Firefox kabla ya kupakia</translation>
<translation id="2572032849266859634">Idhini ya kufikia kusoma tu kwenye <ph name="VOLUME_NAME" /> imeruhusiwa.</translation>
<translation id="2573269395582837871">Chagua picha na jina</translation>
<translation id="2574102660421949343">Vidakuzi kutoka <ph name="DOMAIN" /> vinaruhusiwa.</translation>
@@ -2320,7 +2320,7 @@ Bonyeza kitufe chochote ili kuendelea kuchunguza.</translation>
<translation id="4610637590575890427">Je, ulitaka kwenda <ph name="SITE" />?</translation>
<translation id="4611114513649582138">Muunganisho wa data unapatikana</translation>
<translation id="4613271546271159013">Kiendelezi kimebadilisha ukurasa unaoonyeshwa unapofungua kichupo kipya.</translation>
-<translation id="4615586811063744755">hakuna kidakuzi kilichochaguliwa</translation>
+<translation id="4615586811063744755">hakuna vidakuzi vilivyochaguliwa</translation>
<translation id="4617270414136722281">Chaguo za viendelezi</translation>
<translation id="4618990963915449444">Faili zote kwenye <ph name="DEVICE_NAME" /> zitafutwa.</translation>
<translation id="4619615317237390068">Vichupo kutoka kwenye vifaa vingine</translation>
@@ -2390,7 +2390,7 @@ Bonyeza kitufe chochote ili kuendelea kuchunguza.</translation>
<translation id="4716483597559580346">Tumia Powerwash kuimarisha usalama</translation>
<translation id="471800408830181311">Imeshindwa kutoa ufunguo binafsi.</translation>
<translation id="4720113199587244118">Ongeza Vifaa</translation>
-<translation id="4720185134442950733">Data ya mtandao wa simu</translation>
+<translation id="4720185134442950733">Mtandao wa data ya simu ya mkononi</translation>
<translation id="4722920479021006856"><ph name="APP_NAME" /> inashiriki skrini yako.</translation>
<translation id="4724450788351008910">Ushirika Ulibadilika</translation>
<translation id="4724850507808590449">Picha <ph name="FILE_COUNT" /> zimehifadhiwa nakala</translation>
@@ -2398,7 +2398,7 @@ Bonyeza kitufe chochote ili kuendelea kuchunguza.</translation>
<translation id="4728558894243024398">Mfumo wa uendeshaji</translation>
<translation id="4731422630970790516">Kipengee cha kabati cha 3</translation>
<translation id="4732760563705710320">Samahani, video hii haiwezi kuchezwa na kifaa chako cha kutuma maudhui.</translation>
-<translation id="4733793249294335256">Mahali</translation>
+<translation id="4733793249294335256">Eneo</translation>
<translation id="4734518477988699048">Thamani iliyowekwa si sahihi.</translation>
<translation id="473546211690256853">Akaunti hii inadhibitiwa na <ph name="DOMAIN" /></translation>
<translation id="4737715515457435632">Tafadhali unganisha kwenye mtandao.</translation>
@@ -2415,7 +2415,7 @@ Bonyeza kitufe chochote ili kuendelea kuchunguza.</translation>
<translation id="4759238208242260848">Vipakuliwa</translation>
<translation id="4761104368405085019">Tumia kipazasauti chako</translation>
<translation id="4762718786438001384">Hifadhi ya diski ya kifaa ni ndogo sana</translation>
-<translation id="4763408175235639573">Vidakuzi vifuatavyo viliwekwa ulipoangalia ukurasa huu</translation>
+<translation id="4763408175235639573">Vidakuzi vifuatavyo viliwekwa ulipofungua ukurasa huu</translation>
<translation id="4763830802490665879">Vidakuzi kutoka tovuti anuwai vitafutwa wakati wa kuondoka.</translation>
<translation id="4768332406694066911">Una vyeti kutoka kwenye mashirika haya vinavyokutambua</translation>
<translation id="4776917500594043016">Nenosiri la <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -2779,7 +2779,7 @@ Bonyeza kitufe chochote ili kuendelea kuchunguza.</translation>
<translation id="532360961509278431">Haiwezi kufungua "$1": $2</translation>
<translation id="5324780743567488672">Weka saa za eneo kiotomatiki kwa kutumia mahali pako</translation>
<translation id="5327248766486351172">Jina</translation>
-<translation id="532943162177641444">Gonga arifa kwenye <ph name="PHONE_NAME" /> yako ili uweke mipangilio ya mtandao-hewa unaoweza kuhamishika ambao unaweza kutumiwa na kifaa hiki.</translation>
+<translation id="532943162177641444">Gusa arifa kwenye <ph name="PHONE_NAME" /> yako ili uweke mipangilio ya mtandao-hewa unaoweza kuhamishika ambao unaweza kutumiwa na kifaa hiki.</translation>
<translation id="5329615878510216304">tafuta tena</translation>
<translation id="5329858601952122676">&amp;Futa</translation>
<translation id="5330145655348521461">Faili hizi zilifunguka kwenye eneo-kazi tofauti. Sogea kwenye <ph name="USER_NAME" /> ( <ph name="MAIL_ADDRESS" /> ) ili uzione.</translation>
@@ -2793,7 +2793,7 @@ Bonyeza kitufe chochote ili kuendelea kuchunguza.</translation>
<translation id="5337771866151525739">Imesakinishwa na mhusika mwingine.</translation>
<translation id="5338503421962489998">Hifadhi ya ndani</translation>
<translation id="5340217413897845242">Kipengee cha kabati cha 6</translation>
-<translation id="5341793073192892252">Vidakuzi vifuatavyo vilizuiwa (vidakuzi vya mashirika mengine vinazuiwa bila kufuata kanuni)</translation>
+<translation id="5341793073192892252">Vidakuzi vifuatavyo vilizuiwa (vidakuzi vyote vya washirika wengine vinazuiwa)</translation>
<translation id="5341980496415249280">Tafadhali subiri, inapakia...</translation>
<translation id="5342091991439452114">Lazima PIN iwe na angalau tarakimu <ph name="MINIMUM" /></translation>
<translation id="534916491091036097">Mabado ya kushoto</translation>
@@ -2975,7 +2975,7 @@ Bonyeza kitufe chochote ili kuendelea kuchunguza.</translation>
<translation id="5605623530403479164">Mitambo mingine ya kutafuta</translation>
<translation id="5605716740717446121">SIM kadi yako italemazwa milele kama huwezi kuingiza Kitufe sahihi cha Kufungua cha. Majarbio yaliyosalia: <ph name="TRIES_COUNT" /></translation>
<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_NAME" /> kwenye <ph name="PEPPER_PLUGIN_DOMAIN" /> inataka kufikia kifaa chako.</translation>
-<translation id="5608580678041221894">Gonga vitufe vinavyofuata ili urekebishe au usogeze eneo la kupunguzia</translation>
+<translation id="5608580678041221894">Gusa vitufe vinavyofuata ili urekebishe au usogeze eneo la kupunguzia</translation>
<translation id="5609231933459083978">Programu inaonekana kuwa batili.</translation>
<translation id="5612734644261457353">Samahani, bado nenosiri lako halikuweza kuthibitishwa. Kumbuka: ikiwa ulibadilisha nenosiri lako hivi karibuni, nenosiri lako jipya litaanza kutumika pindi tu utakapoondoka, tafadhali tumia nenosiri jipya hapa.</translation>
<translation id="5613695965848159202">Kitambulisho kisichojulikana:</translation>
@@ -3017,6 +3017,7 @@ Bonyeza kitufe chochote ili kuendelea kuchunguza.</translation>
<translation id="5678955352098267522">Soma data yako kwenye <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Kitambulisho cha Kipengee</translation>
<translation id="5687326903064479980">Saa za eneo:</translation>
+<translation id="5689516760719285838">Mahali</translation>
<translation id="56907980372820799">Unganisha data</translation>
<translation id="5691511426247308406">Familia</translation>
<translation id="5691596662111998220">Lo, <ph name="FILE_NAME" /> haipo tena.</translation>
@@ -4256,7 +4257,7 @@ Bonyeza kitufe chochote ili kuendelea kuchunguza.</translation>
<translation id="7659584679870740384">Huruhusiwi kukitimia kifaa hiki. Tafadhali wasiliana na msimamizi kwa ruhusa ya kuingia katika akaunti.</translation>
<translation id="7661259717474717992">Ruhusu tovuti zihifadhi na kusoma data ya vidakuzi</translation>
<translation id="7661451191293163002">Haikupata cheti cha usajili.</translation>
-<translation id="7662283695561029522">Gonga ili uweke mipangilio</translation>
+<translation id="7662283695561029522">Gusa ili uweke mipangilio</translation>
<translation id="7663719505383602579">Kipokezi: <ph name="ARC_PROCESS_NAME" /></translation>
<translation id="7664620655576155379">Kifaa cha Bluetooth kisichoweza kutumiwa: "<ph name="DEVICE_NAME" />".</translation>
<translation id="7665369617277396874">Ongeza akaunti</translation>
@@ -4710,10 +4711,10 @@ Huenda watu wengine wenye miunganisho ya polepole hawataona maudhui yako.</trans
<translation id="8378285435971754261">Ruhusu huduma ya mahali ya Google isaidie programu kupata mahali ulipo haraka na kwa usahihi, kufanya hivyo kunaweza kupunguza matumizi ya betri. Data ya mahali isiyo na vipengee vinavyoweza kukutambulisha itatumwa kwa Google, hata wakati hakuna programu inayotumika. <ph name="BEGIN_LINK1" />Pata Maelezo zaidi<ph name="END_LINK1" /></translation>
<translation id="8381179624334829711">Dhibiti mipangilio ya kamera...</translation>
<translation id="8382913212082956454">Nakili barua p&amp;epe</translation>
-<translation id="8386903983509584791">Imemaliza kukagua</translation>
+<translation id="8386903983509584791">Imemaliza kutafuta</translation>
<translation id="8390029840652165810">Tafadhali hakikisha muunganisho wako wa mtandao unafanya kazi na ikiwa tatizo litaendelea, tafadhali ondoka na uingie tena ili kuonyesha upya stakabadhi zako.</translation>
<translation id="8390449457866780408">Seva haipatikani.</translation>
-<translation id="8392234662362215700">Gonga Control-Shift-Space ili ubadilishe muundo wa kibodi.</translation>
+<translation id="8392234662362215700">Gusa Control-Shift-Space ili ubadilishe muundo wa kibodi.</translation>
<translation id="8392451568018454956">Menyu ya chaguo za <ph name="USER_EMAIL_ADDRESS" /></translation>
<translation id="8393511274964623038">Simamisha programu-jalizi</translation>
<translation id="8393700583063109961">Tuma ujumbe</translation>
@@ -4841,7 +4842,7 @@ Huenda watu wengine wenye miunganisho ya polepole hawataona maudhui yako.</trans
<translation id="8620617069779373398">Hali ya kutumia mtandao usio wako wa kawaida</translation>
<translation id="8620765578342452535">Sanidi miunganisho ya mtandao</translation>
<translation id="8623004009673949077">Programu iliyo na kipengee cha maelezo ya 'kiosk_only' lazima isakinishwe katika skrini nzima ya Chrome OS.</translation>
-<translation id="8624205858755890468">Huwasha programu ya Mratibu ili kukuonyesha maelezo, programu na vitendo vinavyohusiana.</translation>
+<translation id="8624205858755890468">Huwasha programu ya Mratibu ili kukuonyesha maelezo, programu na hatua zinazohusiana.</translation>
<translation id="862542460444371744">Vi&amp;endelezi</translation>
<translation id="8627151598708688654">Chagua chanzo</translation>
<translation id="862727964348362408">Imesitishwa</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_ta.xtb b/chromium/chrome/app/resources/generated_resources_ta.xtb
index afe684337ae..91c8d5087f4 100644
--- a/chromium/chrome/app/resources/generated_resources_ta.xtb
+++ b/chromium/chrome/app/resources/generated_resources_ta.xtb
@@ -2422,7 +2422,7 @@
<translation id="4759238208242260848">பதிவிறகà¯à®•à®™à¯à®•à®³à¯</translation>
<translation id="4761104368405085019">உஙà¯à®•à®³à¯ மைகà¯à®°à¯‹à®ƒà®ªà¯‹à®©à¯ˆà®ªà¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®²à®¾à®®à¯</translation>
<translation id="4762718786438001384">சாதனதà¯à®¤à®¿à®©à¯ வடà¯à®Ÿà®¿à®²à¯ காலியிடம௠மிகவà¯à®®à¯ கà¯à®±à¯ˆà®µà®¾à®• உளà¯à®³à®¤à¯</translation>
-<translation id="4763408175235639573">இநà¯à®¤à®ªà¯ பகà¯à®•à®¤à¯à®¤à¯ˆ நீஙà¯à®•à®³à¯ பாரà¯à®¤à¯à®¤ போதà¯, பினà¯à®µà®°à¯à®®à¯ கà¯à®•à¯à®•à¯€à®•à®³à¯ அமைகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®©:</translation>
+<translation id="4763408175235639573">இநà¯à®¤à®ªà¯ பகà¯à®•à®¤à¯à®¤à¯ˆ நீஙà¯à®•à®³à¯ பாரà¯à®¤à¯à®¤à®ªà¯‹à®¤à¯ பினà¯à®µà®°à¯à®®à¯ கà¯à®•à¯à®•à¯€à®•à®³à¯ அமைகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®©:</translation>
<translation id="4763830802490665879">பலà¯à®µà¯‡à®±à¯ தளஙà¯à®•à®³à®¿à®©à¯ கà¯à®•à¯à®•à¯€à®•à®³à¯à®®à¯ வெளியேறà¯à®®à¯à®ªà¯‹à®¤à¯ அழிகà¯à®•à®ªà¯à®ªà®Ÿà¯à®®à¯.</translation>
<translation id="4768332406694066911">உஙà¯à®•à®³à¯ˆ அடையாளஙà¯à®•à®¾à®£à¯à®®à¯ இநà¯à®¤ நிறà¯à®µà®©à®™à¯à®•à®³à®¿à®©à¯ சானà¯à®±à®¿à®¤à®´à¯à®•à®³à¯ உளà¯à®³à®©</translation>
<translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> கà¯à®•à®¾à®© கடவà¯à®šà¯à®šà¯Šà®²à¯</translation>
@@ -2801,7 +2801,7 @@
<translation id="5337771866151525739">மூனà¯à®±à®¾à®®à¯ தரபà¯à®ªà®¾à®²à¯ நிறà¯à®µà®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à®¾à®•à¯à®®à¯.</translation>
<translation id="5338503421962489998">அக சேமிபà¯à®ªà®•à®®à¯</translation>
<translation id="5340217413897845242">ஷெலà¯à®ƒà®ªà¯ உரà¯à®ªà¯à®ªà®Ÿà®¿ 6</translation>
-<translation id="5341793073192892252">பினà¯à®µà®°à¯à®®à¯ கà¯à®•à¯à®•à¯€à®•à®³à¯ தடà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®© (மூனà¯à®±à®¾à®®à¯ தரபà¯à®ªà¯à®•à¯ கà¯à®•à¯à®•à¯€à®•à®³à¯ எநà¯à®¤ விதிவிலகà¯à®•à¯à®®à¯ இனà¯à®±à®¿ தடà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®©à¯à®±à®©)</translation>
+<translation id="5341793073192892252">பினà¯à®µà®°à¯à®®à¯ கà¯à®•à¯à®•à¯€à®•à®³à¯ தடà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®© (மூனà¯à®±à®¾à®®à¯ தரபà¯à®ªà¯à®•à¯ கà¯à®•à¯à®•à¯€à®•à®³à¯ எநà¯à®¤ விதிவிலகà¯à®•à¯à®®à¯ இனà¯à®±à®¿ தடà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®©à¯à®±à®©):</translation>
<translation id="5341980496415249280">தொகà¯à®•à¯à®•à®¿à®±à®¤à¯, காதà¯à®¤à®¿à®°à¯à®•à¯à®•à®µà¯à®®à¯...</translation>
<translation id="5342091991439452114">பினà¯à®©à®¿à®²à¯ கà¯à®±à¯ˆà®¨à¯à®¤à®¤à¯ <ph name="MINIMUM" /> இலகà¯à®•à®™à¯à®•à®³à¯ இரà¯à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯</translation>
<translation id="534916491091036097">இடத௠அடைபà¯à®ªà¯à®•à¯à®•à¯à®±à®¿</translation>
@@ -3026,6 +3026,7 @@
<translation id="5678955352098267522">உஙà¯à®•à®³à¯ தரவை <ph name="WEBSITE_1" /> இல௠படிகà¯à®•à®µà¯à®®à¯</translation>
<translation id="5684661240348539843">பணà¯à®ªà¯ அடையாளஙà¯à®•à®¾à®Ÿà¯à®Ÿà®¿</translation>
<translation id="5687326903064479980">நேரமணà¯à®Ÿà®²à®®à¯</translation>
+<translation id="5689516760719285838">இரà¯à®ªà¯à®ªà®¿à®Ÿà®®à¯</translation>
<translation id="56907980372820799">தரவை இணை</translation>
<translation id="5691511426247308406">கà¯à®Ÿà¯à®®à¯à®ªà®®à¯</translation>
<translation id="5691596662111998220">அடடா, <ph name="FILE_NAME" /> இலà¯à®²à¯ˆ.</translation>
@@ -4838,7 +4839,7 @@
<translation id="8620617069779373398">ரோமிங௠நிலை</translation>
<translation id="8620765578342452535">நெடà¯à®µà¯Šà®°à¯à®•à¯ இணைபà¯à®ªà¯à®•à®³à¯ˆ உளà¯à®³à®®à¯ˆà®•à¯à®•à®µà¯à®®à¯</translation>
<translation id="8623004009673949077">Chrome OS கியோஸà¯à®•à¯ à®®à¯à®±à¯ˆà®¯à®¿à®²à¯, 'kiosk_only' மேனிஃபெஸà¯à®Ÿà¯ பணà¯à®ªà¯à®•à¯à®•à¯‚à®±à¯à®±à¯ˆà®•à¯ கொணà¯à®Ÿ பயனà¯à®ªà®¾à®Ÿà¯ நிறà¯à®µà®ªà¯à®ªà®Ÿ வேணà¯à®Ÿà¯à®®à¯.</translation>
-<translation id="8624205858755890468">தொடரà¯à®ªà¯à®Ÿà¯ˆà®¯ தகவலà¯, பயனà¯à®ªà®¾à®Ÿà¯à®•à®³à¯ மறà¯à®±à¯à®®à¯ செயலà¯à®•à®³à¯ˆà®•à¯ காடà¯à®Ÿà¯à®µà®¤à®±à¯à®•à¯ அசிஸà¯à®Ÿà®£à¯à®Ÿà¯à®Ÿà¯ˆ அனà¯à®®à®¤à®¿à®•à¯à®•à¯à®®à¯.</translation>
+<translation id="8624205858755890468">தொடரà¯à®ªà¯à®Ÿà¯ˆà®¯ தகவலà¯, பயனà¯à®ªà®¾à®Ÿà¯à®•à®³à¯ மறà¯à®±à¯à®®à¯ செயலà¯à®•à®³à¯ˆà®•à¯ காடà¯à®Ÿà¯à®µà®¤à®±à¯à®•à¯, அசிஸà¯à®Ÿà®£à¯à®Ÿà¯à®Ÿà¯ˆ அனà¯à®®à®¤à®¿à®•à¯à®•à¯à®®à¯.</translation>
<translation id="862542460444371744">&amp;நீடà¯à®šà®¿à®•à®³à¯</translation>
<translation id="8627151598708688654">ஆதாரதà¯à®¤à¯ˆà®¤à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯</translation>
<translation id="862727964348362408">இடைநீகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_te.xtb b/chromium/chrome/app/resources/generated_resources_te.xtb
index 36546ca5fa2..76003985051 100644
--- a/chromium/chrome/app/resources/generated_resources_te.xtb
+++ b/chromium/chrome/app/resources/generated_resources_te.xtb
@@ -1065,7 +1065,7 @@
<translation id="2642111877055905627">సాకరౠబంతి</translation>
<translation id="2643698698624765890">విండో మెనà±à°²à±‹à°¨à°¿ పొడిగింపà±à°²à°¨à± à°•à±à°²à°¿à°•à± చేయడం à°¦à±à°µà°¾à°°à°¾ మీ పొడిగింపà±à°²à°¨à± నిరà±à°µà°¹à°¿à°‚à°šà°‚à°¡à°¿.</translation>
<translation id="2647142853114880570">మళà±à°²à±€ లోడౠచేయి</translation>
-<translation id="2647269890314209800">ఉపయోగిసà±à°¤à±à°¨à±à°¨ à°•à±à°•à±à°•à±€à°²à±</translation>
+<translation id="2647269890314209800">ఉపయోగంలో ఉనà±à°¨ à°•à±à°•à±à°•à±€à°²à±</translation>
<translation id="2648831393319960979">పరికరానà±à°¨à°¿ మీ ఖాతాకౠజోడిసà±à°¤à±‹à°‚ది - దీనికి కొంత సమయం పటà±à°Ÿà°µà°šà±à°šà±...</translation>
<translation id="2649045351178520408">Base64-à°Žà°¨à±â€Œà°•à±‹à°¡à± చేసిన ASCII, సరà±à°Ÿà°¿à°«à°¿à°•à±†à°Ÿà± చైనà±</translation>
<translation id="2653266418988778031">మీరౠపà±à°°à°®à°¾à°£à°ªà°¤à±à°° అధికారి (CA) à°ªà±à°°à°®à°¾à°£à°ªà°¤à±à°°à°¾à°¨à±à°¨à°¿ తొలగిసà±à°¤à±‡, మీ à°¬à±à°°à±Œà°œà°°à± CA à°¦à±à°µà°¾à°°à°¾ జారీ చెయà±à°¯à°¬à°¡à°¿à°¨ à° à°ªà±à°°à°®à°¾à°£à°ªà°¤à±à°°à°¾à°²à°¨à± ఇకపై నమà±à°®à°¦à±.</translation>
@@ -2268,7 +2268,7 @@
<translation id="4514542542275172126">కొతà±à°¤ పరà±à°¯à°µà±‡à°•à±à°·à°¿à°‚చబడే వినియోగదారà±à°¨à°¿ సెటపౠచేయండి</translation>
<translation id="451515744433878153">తీసివేయి</translation>
<translation id="4518677423782794009">Chrome à°•à±à°°à°¾à°·à± à°…à°µà±à°¤à±‹à°‚దా, అసాధారణ రీతిలో à°ªà±à°°à°¾à°°à°‚à°­ పేజీలà±, సాధన పటà±à°Ÿà±€à°²à± లేదా మీరౠతొలగించలేని రీతిలో ఊహించని à°ªà±à°°à°•à°Ÿà°¨à°²à°¨à± చూపà±à°¤à±‹à°‚దా లేదా మీ à°¬à±à°°à±Œà°œà°°à± à°…à°¨à±à°­à°µà°¾à°¨à±à°¨à°¿ మారà±à°¸à±à°¤à±‹à°‚దా? మీరౠChrome à°¶à±à°­à±à°°à°¤ సాధనానà±à°¨à°¿ అమలౠచేయడం à°¦à±à°µà°¾à°°à°¾ సమసà±à°¯à°¨à± పరిషà±à°•à°°à°¿à°‚చవచà±à°šà±.</translation>
-<translation id="4520385623207007473">ఉపయోగిసà±à°¤à±à°¨à±à°¨ à°•à±à°•à±à°•à±€à°²à±</translation>
+<translation id="4520385623207007473">ఉపయోగంలో ఉనà±à°¨ à°•à±à°•à±à°•à±€à°²à±</translation>
<translation id="452039078290142656"><ph name="VENDOR_NAME" /> అందించిన తెలియని పరికరాలà±</translation>
<translation id="4522570452068850558">వివరాలà±</translation>
<translation id="4530494379350999373">మూలం</translation>
@@ -2327,7 +2327,7 @@
<translation id="4610637590575890427">మీరౠ<ph name="SITE" />కౠవెళà±à°²à°¾à°²à°¨à±à°•à±à°‚à°Ÿà±à°¨à±à°¨à°¾à°°à°¾?</translation>
<translation id="4611114513649582138">డేటా కనెకà±à°·à°¨à± à°…à°‚à°¦à±à°¬à°¾à°Ÿà±à°²à±‹ ఉంది</translation>
<translation id="4613271546271159013">మీరౠకొతà±à°¤ à°Ÿà±à°¯à°¾à°¬à±â€Œà°¨à± తెరిచినపà±à°ªà±à°¡à± చూపబడే పేజీని పొడిగింపౠమారà±à°šà°¿à°‚ది.</translation>
-<translation id="4615586811063744755">à°•à±à°•à±à°•à±€à°¨à°¿ à°Žà°‚à°šà±à°•à±‹à°²à±‡à°¦à±</translation>
+<translation id="4615586811063744755">à°•à±à°•à±à°•à±€à°²à°¨à± à°Žà°‚à°šà±à°•à±‹à°²à±‡à°¦à±</translation>
<translation id="4617270414136722281">పొడిగింపౠఎంపికలà±</translation>
<translation id="4618990963915449444"><ph name="DEVICE_NAME" />లో ఉనà±à°¨ à°…à°¨à±à°¨à°¿ ఫైలà±â€Œà°²à± తొలగించబడà±à°¡à°¾à°¯à°¿.</translation>
<translation id="4619615317237390068">ఇతర పరికరాలà±à°²à±‹à°¨à°¿ à°Ÿà±à°¯à°¾à°¬à±â€Œà°²à±</translation>
@@ -2870,7 +2870,7 @@
<translation id="5438224778284622050">ఆఫà±â€Œà°²à±ˆà°¨à± ఫైలà±â€Œà°²à°¨à± తొలగించాలా?</translation>
<translation id="5438430601586617544">(ఇంకా అభివృధà±à°§à°¿à°²à±‹ ఉంది)</translation>
<translation id="544083962418256601">సతà±à°µà°°à°®à°¾à°°à±à°—ాలనౠసృషà±à°Ÿà°¿à°‚à°šà±...</translation>
-<translation id="5442550868130618860">à°¸à±à°µà±€à°¯ à°…à°ªà±â€Œà°¡à±‡à°Ÿà±â€Œà°¨à°¿ ఆనౠచేయి</translation>
+<translation id="5442550868130618860">à°¸à±à°µà±€à°¯-à°…à°ªà±â€Œà°¡à±‡à°Ÿà±â€Œà°¨à°¿ ఆనౠచేయి</translation>
<translation id="5446983216438178612">సంసà±à°¥ కోసం కలిగి ఉనà±à°¨ à°ªà±à°°à°®à°¾à°£à°ªà°¤à±à°°à°¾à°²à°¨à± చూపà±</translation>
<translation id="5448293924669608770">à°…à°¯à±à°¯à±‹, సైనౠఇనౠచేయడంలో à°à°¦à±‹ తపà±à°ªà± జరిగింది</translation>
<translation id="5449551289610225147">పాసà±â€Œà°µà°°à±à°¡à± చెలà±à°²à°¦à±</translation>
@@ -3025,6 +3025,7 @@
<translation id="5678955352098267522"><ph name="WEBSITE_1" />లోని మీ డేటానౠచదవండి</translation>
<translation id="5684661240348539843">అసెటౠà°à°¡à±†à°‚టిఫైయరà±</translation>
<translation id="5687326903064479980">సమయ మండలి</translation>
+<translation id="5689516760719285838">à°¸à±à°¥à°¾à°¨à°‚</translation>
<translation id="56907980372820799">డేటానౠజోడించà±</translation>
<translation id="5691511426247308406">à°•à±à°Ÿà±à°‚బం</translation>
<translation id="5691596662111998220">à°…à°¯à±à°¯à±‹, <ph name="FILE_NAME" /> ఉనికిలో లేదà±.</translation>
@@ -4841,7 +4842,7 @@
<translation id="8620617069779373398">రోమింగౠసà±à°¥à°¿à°¤à°¿</translation>
<translation id="8620765578342452535">నెటà±â€Œà°µà°°à±à°•à± కనెకà±à°·à°¨à±â€Œà°²à°¨à± కానà±à°«à°¿à°—రౠచేయడానికి à°…à°¨à±à°®à°¤à°¿</translation>
<translation id="8623004009673949077">'కియోసà±à°•à±_మాతà±à°°à°®à±‡' మానిఫెసà±à°Ÿà± లకà±à°·à°£à°‚ ఉనà±à°¨ à°…à°¨à±à°µà°°à±à°¤à°¨à°¾à°¨à±à°¨à°¿ తపà±à°ªà°¨à°¿à°¸à°°à°¿à°—à°¾ Chrome OS కియోసà±à°•à± మోడà±â€Œà°²à±‹ ఇనà±â€Œà°¸à±à°Ÿà°¾à°²à± చేయాలి.</translation>
-<translation id="8624205858755890468">మీకౠసంబంధిత సమాచారం, యాపà±â€Œà°²à± మరియౠచరà±à°¯à°²à°¨à± చూపించడం కోసం సహాయకానà±à°¨à°¿ à°ªà±à°°à°¾à°°à°‚à°­à°¿à°¸à±à°¤à±à°‚ది.</translation>
+<translation id="8624205858755890468">మీకౠసంబంధిత సమాచారం, యాపà±â€Œà°²à± మరియౠచరà±à°¯à°²à°¨à± చూపించడానికి సహాయకానà±à°¨à°¿ à°ªà±à°°à°¾à°°à°‚à°­à°¿à°¸à±à°¤à±à°‚ది.</translation>
<translation id="862542460444371744">&amp;పొడిగింపà±à°²à±</translation>
<translation id="8627151598708688654">మూలానà±à°¨à°¿ à°Žà°‚à°šà±à°•à±‹à°‚à°¡à°¿</translation>
<translation id="862727964348362408">తాతà±à°•à°¾à°²à°¿à°•à°‚à°—à°¾ à°°à°¦à±à°¦à± చేయబడింది</translation>
@@ -4920,7 +4921,7 @@
<translation id="8725066075913043281">మళà±à°³à±€ à°ªà±à°°à°¯à°¤à±à°¨à°¿à°‚à°šà°‚à°¡à°¿</translation>
<translation id="8725178340343806893">ఇషà±à°Ÿà°®à±ˆà°¨à°µà°¿/à°¬à±à°•à±â€Œà°®à°¾à°°à±à°•à±â€Œà°²à±</translation>
<translation id="8726206820263995930">విధాన సెటà±à°Ÿà°¿à°‚à°—à±â€Œà°²à°¨à± సరà±à°µà°°à± à°¨à±à°‚à°¡à°¿ పొందà±à°¤à±à°¨à±à°¨à°ªà±à°ªà±à°¡à± లోపం: <ph name="CLIENT_ERROR" />.</translation>
-<translation id="8726718463424335668">దిగà±à°®à°¤à°¿à°¨à°¿ దాటవేయండి</translation>
+<translation id="8726718463424335668">దిగà±à°®à°¤à°¿à°¨à°¿ దాటవేయి</translation>
<translation id="8727142376512517020">దీనà±à°¨à°¿ మళà±à°²à±€ చూపవదà±à°¦à±</translation>
<translation id="8730621377337864115">పూరà±à°¤à°¯à°¿à°‚ది</translation>
<translation id="8732030010853991079">à°ˆ à°šà°¿à°¹à±à°¨à°‚పై à°•à±à°²à°¿à°•à± చేయడం à°¦à±à°µà°¾à°°à°¾ à°ˆ పొడిగింపà±à°¨à± ఉపయోగించండి.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_th.xtb b/chromium/chrome/app/resources/generated_resources_th.xtb
index 1ab29680096..e89db4d8107 100644
--- a/chromium/chrome/app/resources/generated_resources_th.xtb
+++ b/chromium/chrome/app/resources/generated_resources_th.xtb
@@ -1116,7 +1116,7 @@
<translation id="2715751256863167692">à¸à¸²à¸£à¸­à¸±à¸›à¹€à¸à¸£à¸”นี้จะรีเซ็ต Chromebook à¹à¸¥à¸°à¸™à¸³à¸‚้อมูลผู้ใช้ปัจจุบันออà¸</translation>
<translation id="2718395828230677721">à¹à¸ªà¸‡à¸•à¸­à¸™à¸à¸¥à¸²à¸‡à¸„ืน</translation>
<translation id="2718998670920917754">ซอฟà¹à¸§à¸£à¹Œà¸›à¹‰à¸­à¸‡à¸à¸±à¸™à¹„วรัสตรวจพบไวรัส</translation>
-<translation id="2719936478972253983">ระบบบล็อà¸à¸„ุà¸à¸à¸µà¹‰à¸•à¹ˆà¸­à¹„ปนี้à¹à¸¥à¹‰à¸§</translation>
+<translation id="2719936478972253983">บล็อà¸à¸„ุà¸à¸à¸µà¹‰à¸•à¹ˆà¸­à¹„ปนี้à¹à¸¥à¹‰à¸§</translation>
<translation id="2721037002783622288">&amp;ค้นหารูปภาพจาภ<ph name="SEARCH_ENGINE" /></translation>
<translation id="2721334646575696520">Microsoft Edge</translation>
<translation id="2721695630904737430">ผู้ดูà¹à¸¥à¸£à¸°à¸šà¸šà¸›à¸´à¸”ใช้ผู้ใช้ภายใต้à¸à¸²à¸£à¸”ูà¹à¸¥</translation>
@@ -2422,7 +2422,7 @@
<translation id="4759238208242260848">ดาวน์โหลด</translation>
<translation id="4761104368405085019">ใช้ไมโครโฟนของคุณ</translation>
<translation id="4762718786438001384">พื้นที่ดิสà¸à¹Œà¸‚องอุปà¸à¸£à¸“์ใà¸à¸¥à¹‰à¸ˆà¸°à¹€à¸•à¹‡à¸¡à¹à¸¥à¹‰à¸§</translation>
-<translation id="4763408175235639573">ระบบตั้งค่าคุà¸à¸à¸µà¹‰à¸•à¹ˆà¸­à¹„ปนี้เมื่อคุณดูหน้าเว็บนี้</translation>
+<translation id="4763408175235639573">มีà¸à¸²à¸£à¸§à¸²à¸‡à¸„ุà¸à¸à¸µà¹‰à¸•à¹ˆà¸­à¹„ปนี้เมื่อคุณดูหน้าเว็บนี้</translation>
<translation id="4763830802490665879">คุà¸à¸à¸µà¹‰à¸ˆà¸²à¸à¸«à¸¥à¸²à¸¢à¹† ไซต์จะถูà¸à¸¥à¹‰à¸²à¸‡à¹€à¸¡à¸·à¹ˆà¸­à¸­à¸­à¸</translation>
<translation id="4768332406694066911">คุณมีใบรับรองจาà¸à¸­à¸‡à¸„์à¸à¸£à¹€à¸«à¸¥à¹ˆà¸²à¸™à¸µà¹‰à¸‹à¸¶à¹ˆà¸‡à¸£à¸°à¸šà¸¸à¸–ึงตัวคุณ</translation>
<translation id="4776917500594043016">รหัสผ่านของ <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -2801,7 +2801,7 @@
<translation id="5337771866151525739">ติดตั้งโดยบุคคลที่สาม</translation>
<translation id="5338503421962489998">พื้นที่จัดเà¸à¹‡à¸šà¹ƒà¸™à¸•à¸±à¸§à¹€à¸„รื่อง</translation>
<translation id="5340217413897845242">รายà¸à¸²à¸£à¸Šà¸±à¹‰à¸™à¸§à¸²à¸‡ 6</translation>
-<translation id="5341793073192892252">ระบบบล็อà¸à¸„ุà¸à¸à¸µà¹‰à¸•à¹ˆà¸­à¹„ปนี้à¹à¸¥à¹‰à¸§ (ระบบทำà¸à¸²à¸£à¸šà¸¥à¹‡à¸­à¸à¸„ุà¸à¸à¸µà¹‰à¸‚องบุคคลที่สามโดยไม่มีข้อยà¸à¹€à¸§à¹‰à¸™)</translation>
+<translation id="5341793073192892252">บล็อà¸à¸„ุà¸à¸à¸µà¹‰à¸•à¹ˆà¸­à¹„ปนี้à¹à¸¥à¹‰à¸§ (บล็อà¸à¸„ุà¸à¸à¸µà¹‰à¸‚องบุคคลที่สามอยู่โดยไม่มีข้อยà¸à¹€à¸§à¹‰à¸™)</translation>
<translation id="5341980496415249280">โปรดรอ à¸à¸³à¸¥à¸±à¸‡à¸šà¸£à¸£à¸ˆà¸¸...</translation>
<translation id="5342091991439452114">PIN ต้องมีอย่างน้อย <ph name="MINIMUM" /> หลัà¸</translation>
<translation id="534916491091036097">วงเล็บเปิด</translation>
@@ -3025,6 +3025,7 @@
<translation id="5678955352098267522">อ่านข้อมูลใน <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">รหัสสินทรัพย์</translation>
<translation id="5687326903064479980">เขตเวลา</translation>
+<translation id="5689516760719285838">ตำà¹à¸«à¸™à¹ˆà¸‡</translation>
<translation id="56907980372820799">ลิงà¸à¹Œà¸‚้อมูล</translation>
<translation id="5691511426247308406">ครอบครัว</translation>
<translation id="5691596662111998220">อ๊ะ ไม่มี <ph name="FILE_NAME" /> à¹à¸¥à¹‰à¸§</translation>
@@ -4713,7 +4714,7 @@
<translation id="8378285435971754261">ให้บริà¸à¸²à¸£à¸•à¸³à¹à¸«à¸™à¹ˆà¸‡à¸‚อง Google ช่วยà¹à¸­à¸›à¸„้นหาตำà¹à¸«à¸™à¹ˆà¸‡à¸‚องคุณอย่างรวดเร็วà¹à¸¥à¸°à¹à¸¡à¹ˆà¸™à¸¢à¸³ ซึ่งจะช่วยประหยัดà¸à¸²à¸£à¹ƒà¸Šà¹‰à¹à¸šà¸•à¹€à¸•à¸­à¸£à¸µà¹ˆ ข้อมูลตำà¹à¸«à¸™à¹ˆà¸‡à¸—ี่ไม่ระบุชื่อจะส่งไปยัง Google à¹à¸¡à¹‰à¹ƒà¸™à¸‚ณะที่à¹à¸­à¸›à¹„ม่ได้ทำงาน <ph name="BEGIN_LINK1" />เรียนรู้เพิ่มเติม<ph name="END_LINK1" /></translation>
<translation id="8381179624334829711">จัดà¸à¸²à¸£à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าà¸à¸¥à¹‰à¸­à¸‡à¸–่ายรูป...</translation>
<translation id="8382913212082956454">คัดลอà¸&amp;ที่อยู่อีเมล</translation>
-<translation id="8386903983509584791">สà¹à¸à¸™à¸ªà¸³à¹€à¸£à¹‡à¸ˆà¹à¸¥à¹‰à¸§</translation>
+<translation id="8386903983509584791">สà¹à¸à¸™à¹€à¸ªà¸£à¹‡à¸ˆà¹à¸¥à¹‰à¸§</translation>
<translation id="8390029840652165810">โปรดตรวจสอบให้à¹à¸™à¹ˆà¹ƒà¸ˆà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•à¹ˆà¸­à¹€à¸„รือข่ายของคุณทำงานอยู่ à¹à¸¥à¸°à¸«à¸²à¸à¸›à¸±à¸à¸«à¸²à¸¢à¸±à¸‡à¸„งอยู่ โปรดออà¸à¸ˆà¸²à¸à¸£à¸°à¸šà¸šà¹à¸¥à¸°à¸¥à¸‡à¸Šà¸·à¹ˆà¸­à¹€à¸‚้าใช้อีà¸à¸„รั้งเพื่อรีเฟรชข้อมูลรับรองของคุณ</translation>
<translation id="8390449457866780408">เซิร์ฟเวอร์ไม่พร้อมใช้งาน</translation>
<translation id="8392234662362215700">à¸à¸” Control-Shift-Space เพื่อสลับรูปà¹à¸šà¸šà¹à¸›à¹‰à¸™à¸žà¸´à¸¡à¸žà¹Œ</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_tr.xtb b/chromium/chrome/app/resources/generated_resources_tr.xtb
index cf82352a81f..3debdaaeb61 100644
--- a/chromium/chrome/app/resources/generated_resources_tr.xtb
+++ b/chromium/chrome/app/resources/generated_resources_tr.xtb
@@ -38,7 +38,7 @@
<translation id="1049926623896334335">Word belgesi</translation>
<translation id="1054153489933238809">Orijinal &amp;Resmi Yeni Sekmede Aç</translation>
<translation id="1055806300943943258">Bluetooth ve USB cihazları aranıyor...</translation>
-<translation id="1056775291175587022">AÄŸ yok</translation>
+<translation id="1056775291175587022">Hücresel ağ yok</translation>
<translation id="1056898198331236512">Uyarı</translation>
<translation id="1058262162121953039">PUK</translation>
<translation id="1058418043520174283"><ph name="INDEX" /> / <ph name="COUNT" /></translation>
@@ -3027,6 +3027,7 @@ Hassas bilgileri vermediÄŸinizden emin olun.</translation>
<translation id="5678955352098267522"><ph name="WEBSITE_1" /> sitesindeki verilerinizi okuma</translation>
<translation id="5684661240348539843">Öğe Tanımlayıcı</translation>
<translation id="5687326903064479980">Saat dilimi</translation>
+<translation id="5689516760719285838">Konum</translation>
<translation id="56907980372820799">Verileri baÄŸla</translation>
<translation id="5691511426247308406">Aile</translation>
<translation id="5691596662111998220">Hata! <ph name="FILE_NAME" /> artık mevcut değil.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_uk.xtb b/chromium/chrome/app/resources/generated_resources_uk.xtb
index 8fc31c434d4..1bedee0d315 100644
--- a/chromium/chrome/app/resources/generated_resources_uk.xtb
+++ b/chromium/chrome/app/resources/generated_resources_uk.xtb
@@ -977,7 +977,7 @@
<translation id="2509495747794740764">Розмір маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð°Ñ” бути чиÑлом від 10 до 200.</translation>
<translation id="2515586267016047495">Alt</translation>
<translation id="251662399991179012">Ðавчімо ваш приÑтрій <ph name="DEVICE_TYPE" /></translation>
-<translation id="2517472476991765520">Шукати</translation>
+<translation id="2517472476991765520">Сканувати</translation>
<translation id="2518024842978892609">ВикориÑтовувати Ñертифікати клієнта</translation>
<translation id="2520644704042891903">ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупного Ñокета…</translation>
<translation id="252219247728877310">Компонент не оновлено</translation>
@@ -1012,7 +1012,7 @@
<translation id="2570000010887652771">Ð—Ð°Ð¾Ñ‰Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚Ñ€Ð°Ñ„Ñ–ÐºÑƒ.</translation>
<translation id="2570648609346224037">Під Ñ‡Ð°Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¾Ð±Ñ€Ð°Ð·Ñƒ Ð´Ð»Ñ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð¸Ð½Ð¸ÐºÐ»Ð° проблема.</translation>
<translation id="257088987046510401">Теми</translation>
-<translation id="2571964818629181240">Закрити Firefox перед імпортуваннÑм</translation>
+<translation id="2571964818629181240">Закрити Firefox перед імпортом</translation>
<translation id="2572032849266859634">Ðадано доÑтуп лише Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду (<ph name="VOLUME_NAME" />).</translation>
<translation id="2573269395582837871">Виберіть Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð° ім’Ñ</translation>
<translation id="2574102660421949343">Файли cookie з домену <ph name="DOMAIN" /> дозволено.</translation>
@@ -1065,7 +1065,7 @@
<translation id="2642111877055905627">Футбольний м’Ñч</translation>
<translation id="2643698698624765890">Керуйте Ñвоїми розширеннÑми, натиÑнувши вкладку "РозширеннÑ" в меню Window (Вікно).</translation>
<translation id="2647142853114880570">оновити</translation>
-<translation id="2647269890314209800">Файли cookie, що викориÑтовуютьÑÑ</translation>
+<translation id="2647269890314209800">Ðктивні файли cookie</translation>
<translation id="2648831393319960979">Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ñтрою в обліковий запиÑ. Це може тривати деÑкий чаÑ…</translation>
<translation id="2649045351178520408">ASCII Base64-кодуваннÑ, ланцюжок Ñертифікатів</translation>
<translation id="2653266418988778031">Якщо видалити Ñертифікат Центру Ñертифікації (ЦС), ваш веб-переглÑдач більше не буде довірÑти жодному Ñертифікату, виданому цим ЦС.</translation>
@@ -1116,7 +1116,7 @@
<translation id="2715751256863167692">Це Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñкидає Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Chromebook Ñ– вилучає дані поточного кориÑтувача.</translation>
<translation id="2718395828230677721">Ðічний режим</translation>
<translation id="2718998670920917754">ÐнтивіруÑне програмне Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ñвило віруÑ.</translation>
-<translation id="2719936478972253983">Заблоковано такі файли cookie:</translation>
+<translation id="2719936478972253983">Заблоковані файли cookie</translation>
<translation id="2721037002783622288">Шукати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð² <ph name="SEARCH_ENGINE" /></translation>
<translation id="2721334646575696520">Microsoft Edge</translation>
<translation id="2721695630904737430">Ваш адмініÑтратор вимкнув контрольованих кориÑтувачів.</translation>
@@ -1200,7 +1200,7 @@
<translation id="2815500128677761940">Панель закладок</translation>
<translation id="2815693974042551705">Папка із закладками</translation>
<translation id="2818476747334107629">Дані принтера</translation>
-<translation id="2820957248982571256">Пошук…</translation>
+<translation id="2820957248982571256">СкануваннÑ…</translation>
<translation id="2822634587701817431">Зменшити/збільшити</translation>
<translation id="2825758591930162672">Відкритий ключ Ñуб'єкта</translation>
<translation id="2828650939514476812">Ð—â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· мережею Wi-Fi</translation>
@@ -2268,7 +2268,7 @@
<translation id="4514542542275172126">Створити нового контрольованого кориÑтувача</translation>
<translation id="451515744433878153">Видалити</translation>
<translation id="4518677423782794009">Chrome припинÑÑ” роботу, показує незвичні початкові Ñторінки, панелі інÑтрументів або неочікувані оголошеннÑ, Ñких ви не можете позбутиÑÑ, тощо? Можливо, вам удаÑÑ‚ÑŒÑÑ Ð²Ð¸Ñ€Ñ–ÑˆÐ¸Ñ‚Ð¸ цю проблему за допомогою МайÑтра Ð¾Ñ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Chrome.</translation>
-<translation id="4520385623207007473">Файли cookie, що викориÑтовуютьÑÑ</translation>
+<translation id="4520385623207007473">Ðктивні файли cookie</translation>
<translation id="452039078290142656">невідомі приÑтрої від поÑтачальника <ph name="VENDOR_NAME" /></translation>
<translation id="4522570452068850558">Деталі</translation>
<translation id="4530494379350999373">ПоходженнÑ</translation>
@@ -2422,7 +2422,7 @@
<translation id="4759238208242260848">ЗавантаженнÑ</translation>
<translation id="4761104368405085019">ВикориÑтовувати ваш мікрофон</translation>
<translation id="4762718786438001384">Ðа диÑку приÑтрою дуже мало вільного міÑцÑ</translation>
-<translation id="4763408175235639573">Під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду вами цієї Ñторінки було Ñтворено такі файли cookie:</translation>
+<translation id="4763408175235639573">Файли cookie, Ñтворені під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду Ñторінки</translation>
<translation id="4763830802490665879">Файли cookie з багатьох Ñайтів буде очищено під Ñ‡Ð°Ñ Ð²Ð¸Ñ…Ð¾Ð´Ñƒ.</translation>
<translation id="4768332406694066911">Ð’Ð°Ñ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÑƒÑŽÑ‚ÑŒ Ñертифікати від цих організацій</translation>
<translation id="4776917500594043016">Пароль кориÑтувача <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -2801,7 +2801,7 @@
<translation id="5337771866151525739">Ð’Ñтановлено третьою Ñтороною.</translation>
<translation id="5338503421962489998">Локальна пам’ÑÑ‚ÑŒ</translation>
<translation id="5340217413897845242">Елемент полиці 6</translation>
-<translation id="5341793073192892252">Заблоковано такі файли cookie (Ñторонні файли cookie блокуютьÑÑ Ð±ÐµÐ· винÑтку):</translation>
+<translation id="5341793073192892252">Заблоковані файли cookie (Ñторонні файли cookie блокуютьÑÑ Ð±ÐµÐ· винÑтку)</translation>
<translation id="5341980496415249280">ПакуваннÑ. Зачекайте…</translation>
<translation id="5342091991439452114">Мінімальна кількіÑÑ‚ÑŒ цифр у PIN-коді: <ph name="MINIMUM" /></translation>
<translation id="534916491091036097">Ліва дужка</translation>
@@ -3025,6 +3025,7 @@
<translation id="5678955352098267522">ПереглÑдати ваші дані на веб-Ñайті <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Ідентифікатор об’єкта</translation>
<translation id="5687326903064479980">ЧаÑовий поÑÑ</translation>
+<translation id="5689516760719285838">МіÑцезнаходженнÑ</translation>
<translation id="56907980372820799">Зв’Ñзати облікові запиÑи</translation>
<translation id="5691511426247308406">Сім’Ñ</translation>
<translation id="5691596662111998220">Ðа жаль, файл "<ph name="FILE_NAME" />" більше не Ñ–Ñнує.</translation>
@@ -4713,7 +4714,7 @@
<translation id="8378285435971754261">ЗавдÑки Ñлужбі локації Google додатки швидко й точно визначають ваше міÑÑ†ÐµÐ·Ð½Ð°Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð° Ñпоживають менше зарÑду акумулÑтора. Ðнонімні геодані надÑилаютьÑÑ Ð² Google, навіть коли додатки не запущено. <ph name="BEGIN_LINK1" />Докладніше<ph name="END_LINK1" /></translation>
<translation id="8381179624334829711">Ðалаштувати камеру…</translation>
<translation id="8382913212082956454">Копіювати &amp;адреÑу електронної пошти</translation>
-<translation id="8386903983509584791">Пошук завершено</translation>
+<translation id="8386903983509584791">Ð¡ÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾</translation>
<translation id="8390029840652165810">ПереконайтеÑÑ, що Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· мережею працює. Якщо проблема не зникне, вийдіть з облікового запиÑу й увійдіть знову, щоб оновити облікові дані.</translation>
<translation id="8390449457866780408">Сервер не доÑтупний.</translation>
<translation id="8392234662362215700">ÐатиÑніть комбінацію клавіш Control-Shift-Space, щоб змінити розкладку клавіатури.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_vi.xtb b/chromium/chrome/app/resources/generated_resources_vi.xtb
index 37e20f1cae0..0bd77bc5d50 100644
--- a/chromium/chrome/app/resources/generated_resources_vi.xtb
+++ b/chromium/chrome/app/resources/generated_resources_vi.xtb
@@ -2375,7 +2375,7 @@ Nhấn phím bất kỳ để tiếp tục khám phá.</translation>
<translation id="4677772697204437347">Bá»™ nhá»› GPU</translation>
<translation id="4681930562518940301">Mở &amp;hình ảnh gốc trong tab mới</translation>
<translation id="4682551433947286597">Hình ná»n xuất hiện trên màn hình đăng nhập.</translation>
-<translation id="4684427112815847243">Äồng bá»™ hóa tất cả</translation>
+<translation id="4684427112815847243">Äồng bá»™ hóa má»i thứ</translation>
<translation id="4684748086689879921">BỠqua bước Nhập</translation>
<translation id="4685045708662437080">Äiá»u này giúp Google nhận dạng giá»ng nói của bạn và cải thiện nhận dạng bằng giá»ng nói và âm thanh để cung cấp cho bạn kết quả nhanh hÆ¡n và ít phức tạp hÆ¡n. <ph name="BEGIN_LINK" />Tìm hiểu thêm<ph name="END_LINK" /></translation>
<translation id="4689421377817139245">Äồng bá»™ hóa dấu trang này vá»›i iPhone của bạn</translation>
@@ -2424,7 +2424,7 @@ Nhấn phím bất kỳ để tiếp tục khám phá.</translation>
<translation id="4759238208242260848">Tải xuống</translation>
<translation id="4761104368405085019">Sử dụng micrô của bạn</translation>
<translation id="4762718786438001384">Dung lượng đĩa của thiết bị quá thấp</translation>
-<translation id="4763408175235639573">Các cookie sau đã được đặt khi bạn xem trang này</translation>
+<translation id="4763408175235639573">Các cookie sau đã được cài đặt khi bạn xem trang này</translation>
<translation id="4763830802490665879">Cookie từ nhiá»u trang web sẽ bị xóa khi thoát.</translation>
<translation id="4768332406694066911">Bạn có các chứng chỉ từ những tổ chức nhận dạng bạn sau đây</translation>
<translation id="4776917500594043016">Mật khẩu cho <ph name="USER_EMAIL_ADDRESS" /></translation>
@@ -3027,6 +3027,7 @@ Nhấn phím bất kỳ để tiếp tục khám phá.</translation>
<translation id="5678955352098267522">Äá»c dữ liệu của bạn trên <ph name="WEBSITE_1" /></translation>
<translation id="5684661240348539843">Số nhận dạng phần tử</translation>
<translation id="5687326903064479980">Múi giá»</translation>
+<translation id="5689516760719285838">Vị trí</translation>
<translation id="56907980372820799">Liên kết dữ liệu</translation>
<translation id="5691511426247308406">Gia đình</translation>
<translation id="5691596662111998220">Rất tiếc, <ph name="FILE_NAME" /> không tồn tại nữa.</translation>
@@ -4578,7 +4579,7 @@ Giữ tệp khóa của bạn ở nơi an toàn. Bạn sẽ cần tệp khóa đ
<translation id="813913629614996137">Äang khởi chạy...</translation>
<translation id="8140778357236808512">Nhập má»™t ngÆ°á»i dùng được giám sát hiện có</translation>
<translation id="8141725884565838206">Quản lý mật khẩu của bạn</translation>
-<translation id="8142732521333266922">OK, đồng bộ hóa tất cả</translation>
+<translation id="8142732521333266922">OK, đồng bá»™ hóa má»i thứ</translation>
<translation id="8143442547342702591">Ứng dụng không hợp lệ</translation>
<translation id="8146177459103116374">Nếu bạn đã đăng ký trên thiết bị này, bạn có thể <ph name="LINK2_START" />đăng nhập vá»›i tÆ° cách là ngÆ°á»i dùng hiện tại<ph name="LINK2_END" />.</translation>
<translation id="8146793085009540321">Äăng nhập không thành công. Vui lòng liên hệ vá»›i quản trị viên của bạn hoặc thá»­ lại.</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_zh-CN.xtb b/chromium/chrome/app/resources/generated_resources_zh-CN.xtb
index 4a510b5ce95..f4a93a79e5f 100644
--- a/chromium/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chromium/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -38,7 +38,7 @@
<translation id="1049926623896334335">Word 文档</translation>
<translation id="1054153489933238809">在新标签页中打开原始图片(&amp;I)</translation>
<translation id="1055806300943943258">正在æœç´¢è“牙设备和USB设备…</translation>
-<translation id="1056775291175587022">没有任何网络</translation>
+<translation id="1056775291175587022">找ä¸åˆ°ä»»ä½•ç½‘络</translation>
<translation id="1056898198331236512">警告</translation>
<translation id="1058262162121953039">PUK</translation>
<translation id="1058418043520174283">已选中第 <ph name="INDEX" /> 项,共 <ph name="COUNT" /> 项</translation>
@@ -183,7 +183,7 @@
<translation id="1272079795634619415">åœæ­¢</translation>
<translation id="1272978324304772054">此用户å¸å·ä¸å±žäºŽè®¾å¤‡æ‰€æ³¨å†Œçš„域。如果想注册其他域,那么您首先需è¦æ‰§è¡Œè®¾å¤‡æ¢å¤ã€‚</translation>
<translation id="1274977772557788323">Adobe Flash Player 存储设置</translation>
-<translation id="1274997165432133392">CookieåŠå…¶ä»–网站数æ®</translation>
+<translation id="1274997165432133392">Cookie åŠå…¶ä»–网站数æ®</translation>
<translation id="1275718070701477396">已选中</translation>
<translation id="127668050356036882">关闭所有窗å£</translation>
<translation id="1277908057200820621">查看设备列表</translation>
@@ -2415,7 +2415,7 @@
<translation id="4759238208242260848">下载内容</translation>
<translation id="4761104368405085019">使用您的麦克风</translation>
<translation id="4762718786438001384">设备ç£ç›˜ç©ºé—´ä¸¥é‡ä¸è¶³</translation>
-<translation id="4763408175235639573">以下 Cookie 是在您查看此网页时设置的</translation>
+<translation id="4763408175235639573">以下 Cookie 是系统在您查看此网页时设置的</translation>
<translation id="4763830802490665879">退出时会清除æ¥è‡ªå¤šä¸ªç½‘站的 Cookie。</translation>
<translation id="4768332406694066911">您有以下组织å‘给您的身份è¯ä¹¦</translation>
<translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> 的密ç </translation>
@@ -3012,6 +3012,7 @@
<translation id="5678955352098267522">读å–您在 <ph name="WEBSITE_1" /> 上的数æ®</translation>
<translation id="5684661240348539843">资产标识符</translation>
<translation id="5687326903064479980">时区</translation>
+<translation id="5689516760719285838">ä½ç½®</translation>
<translation id="56907980372820799">å…³è”æ•°æ®</translation>
<translation id="5691511426247308406">家用</translation>
<translation id="5691596662111998220">糟糕,<ph name="FILE_NAME" />å·²ç»ä¸å­˜åœ¨äº†ã€‚</translation>
diff --git a/chromium/chrome/app/resources/generated_resources_zh-TW.xtb b/chromium/chrome/app/resources/generated_resources_zh-TW.xtb
index 6e99609456e..4603afd97e6 100644
--- a/chromium/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chromium/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -3023,6 +3023,7 @@
<translation id="5678955352098267522">讀å–你在 <ph name="WEBSITE_1" /> 上產生的資料</translation>
<translation id="5684661240348539843">資產識別碼</translation>
<translation id="5687326903064479980">時å€</translation>
+<translation id="5689516760719285838">ä½ç½®</translation>
<translation id="56907980372820799">連çµè³‡æ–™</translation>
<translation id="5691511426247308406">家用</translation>
<translation id="5691596662111998220">糟糕ï¼ã€Œ<ph name="FILE_NAME" />ã€å·²ä¸å­˜åœ¨ã€‚</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_ar.xtb b/chromium/chrome/app/resources/google_chrome_strings_ar.xtb
index 678519de140..235d1b80025 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_ar.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_ar.xtb
@@ -7,7 +7,7 @@
<translation id="1088300314857992706">â€ÙƒØ§Ù† <ph name="USER_EMAIL_ADDRESS" /> يستخدم Chrome سابقًا</translation>
<translation id="1104959162601287462">â€Ø­ÙˆÙ„ &amp;نظام التشغيل Google Chrome</translation>
<translation id="110877069173485804">â€Ù‡Ø°Ø§ Chrome الخاص بك</translation>
-<translation id="1142745911746664600">â€ØªØ¹Ø°Ø± تحديث Chrome</translation>
+<translation id="1142745911746664600">â€ØªØ¹Ø°Ù‘ر تحديث Chrome</translation>
<translation id="123620459398936149">â€ØªØ¹Ø°Ø± على نظام التشغيل Chrome مزامنة البيانات. ÙŠÙرجى تحديث عبارة مرور المزامنة.</translation>
<translation id="127345590676626841">â€ÙŠØ¬Ø±ÙŠ تحديث Chrome تلقائيًا بحيث يكون لديك أحدث إصدار. عند اكتمال هذا التحميل، ستتم إعادة تشغيل Chrome وستبدأ العمل.</translation>
<translation id="1302523850133262269">â€ÙŠÙرجى الانتظار لحين تثبيت Chrome لآخر تحديثات النظام.</translation>
@@ -123,7 +123,7 @@
<translation id="4480040274068703980">â€ØªØ¹Ø°Ø± على نظام التشغيل Chrome مزامنة البيانات نظرًا لوجود خطأ ÙÙŠ تسجيل الدخول.</translation>
<translation id="4561051373932531560">â€ÙŠØªÙŠØ­ لك Google Chrome النقر على رقم هات٠على الويب والاتصال به باستخدام Skype!</translation>
<translation id="4567424176335768812">لقد سجلت دخولك باعتبارك <ph name="USER_EMAIL_ADDRESS" />. ويÙمكنك الآن الاستمتاع بالدخول إلى الإشارات المرجعية، والسجلّ، والإعدادات الأخرى على جميع الأجهزة التي تسجّل الدخول إليها.</translation>
-<translation id="4600710005438004015">â€ØªØ¹Ø°Ø± تحديث Chrome إلى آخر إصدار، لذلك قد تÙوتك الميزات الجديدة وعمليات إصلاح الأمان.</translation>
+<translation id="4600710005438004015">â€ØªØ¹Ø°Ù‘ر تحديث Chrome إلى آخر إصدار، لذلك قد تÙوتك الميزات وعمليات إصلاح الأمان الجديدة.</translation>
<translation id="4631713731678262610">â€Ø§Ù„إخÙاء ÙÙŠ قائمة Chrome</translation>
<translation id="4633000520311261472">â€Ù„جعل Chrome أكثر أمانًا، تم تعطيل بعض الإضاÙات غير المدرجة ÙÙŠ <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> والتي ربما تمت إضاÙتها بدون علمك.</translation>
<translation id="4664415150087723341">â€ØªÙ… الآن تطبيق تحديث أمان خاص لـ Google ChromeØ› تجب إعادة التشغيل الآن لتسري التغييرات التي أجريتها (ستتم استعادة علامات التبويب).</translation>
@@ -215,7 +215,7 @@
<translation id="7185038942300673794">â€ØªÙ…ت إضاÙØ© <ph name="EXTENSION_NAME" /> إلى Chrome.</translation>
<translation id="7242029209006116544">â€Ø¥Ù†Ùƒ تسجل الدخول باستخدام حساب Ù…Ùدار وتمنح المشر٠إمكانية التحكم ÙÙŠ ملÙÙƒ الشخصي ÙÙŠ Google Chrome. وسيتم ربط بيانات Chrome التابعة لك، مثل التطبيقات والإشارات المرجعية والسجلّ وكلمات المرور والإعدادات الأخرى بالمستخدم <ph name="USER_NAME" />. وستتمكن من حذ٠هذه البيانات عبر لوحة تحكم حسابات GoogleØŒ ولكنك لن تتمكن من إقران هذه البيانات بحساب آخر. ويÙمكنك اختيار إنشاء مل٠شخصي جديد للإبقاء على بياناتك الحالية ÙÙŠ Chrome بشكل مستقل. <ph name="LEARN_MORE" /></translation>
<translation id="729375352412857283">â€Ø³ÙŠØªÙˆÙ‚٠هذا الكمبيوتر قريبًا عن استلام تحديثات Google Chrome لأن أنظمة Windows XP ÙˆWindows Vista لن تصبح مدعومة بعد الآن.</translation>
-<translation id="7330164299247909639">â€Ø£Ø®Ùقت شهادة المصادقة. ÙŠÙرجى تسجيل الدخول إلى Google Chrome مرة أخرى بصÙتك <ph name="USER_NAME" /> أو الاتصال بمشرÙÙƒ لمزيد من المعلومات. <ph name="ADDITIONAL_EXPLANATION" /></translation>
+<translation id="7330164299247909639">â€ØªØ¹Ø°Ù‘رت شهادة المصادقة. ÙŠÙرجى تسجيل الدخول إلى Google Chrome مرة أخرى بصÙتك <ph name="USER_NAME" /> أو الاتصال بمشرÙÙƒ لمزيد من المعلومات. <ph name="ADDITIONAL_EXPLANATION" /></translation>
<translation id="7339898014177206373">ناÙذة جديدة</translation>
<translation id="7369650938475876456">â€Ø§Ø³ØªØ®Ø¯Ø§Ù… كلمة مرور قوية تم إنشاؤها بواسطة Chrome</translation>
<translation id="7398801000654795464">â€ØªÙ… تسجيل دخولك إلى Chrome باعتبارك <ph name="USER_EMAIL_ADDRESS" />. ÙŠÙرجى استخدام الحساب Ù†Ùسه لتسجيل الدخول مرة أخرى.</translation>
@@ -278,7 +278,7 @@
<translation id="8914504000324227558">â€Ø¥Ø¹Ø§Ø¯Ø© تشغيل Chrome</translation>
<translation id="9026991721384951619">â€ØªØ¹Ø°Ø± على نظام التشغيل Chrome مزامنة البيانات نظرًا لأن تÙاصيل تسجيل الدخول إلى حسابك قديمة.</translation>
<translation id="9067395829937117663">â€ÙŠØªØ·Ù„ب متصÙØ­ Google Chrome نظام التشغيل Windows 7 أو إصدارًا أحدث.</translation>
-<translation id="9084668267983921457">â€Ø£Ø®Ùقت شهادة المصادقة. ÙŠÙرجى تسجيل الدخول إلى Google Chrome مرة أخرى أو الاتصال بمشرÙÙƒ لمزيد من المعلومات. <ph name="ADDITIONAL_EXPLANATION" /></translation>
+<translation id="9084668267983921457">â€ØªØ¹Ø°Ù‘رت شهادة المصادقة. ÙŠÙرجى تسجيل الدخول إلى Google Chrome مرة أخرى أو الاتصال بمشرÙÙƒ لمزيد من المعلومات. <ph name="ADDITIONAL_EXPLANATION" /></translation>
<translation id="9107728822479888688">â€<ph name="BEGIN_BOLD" />تحذير:<ph name="END_BOLD" /> لا يستطيع Google Chrome منع الإضاÙات من تسجيل سجل التصÙØ­ الخاص بك. لتعطيل هذا الإضاÙØ© ÙÙŠ وضع التصÙØ­ المتخÙÙŠØŒ ألغ تحديد هذا الخيار.</translation>
<translation id="911206726377975832">هل تريد أيضًا حذ٠بيانات التصÙح؟</translation>
<translation id="919706545465235479">â€ØªØ­Ø¯ÙŠØ« Chrome لبدء المزامنة</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_bn.xtb b/chromium/chrome/app/resources/google_chrome_strings_bn.xtb
index 39ca6a6742e..cf7ba6c493b 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_bn.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_bn.xtb
@@ -44,7 +44,7 @@
<translation id="2120620239521071941">à¦à¦Ÿà¦¿ à¦à¦‡ ডিভাইস থেকে <ph name="ITEMS_COUNT" />টি আইটেম মà§à¦›à§‡ দেবে। আপনার ডেটা পরে পà§à¦¨à¦°à§à¦¦à§à¦§à¦¾à¦° করার জনà§à¦¯, Chrome ঠ<ph name="USER_EMAIL" /> হিসেবে পà§à¦°à¦¬à§‡à¦¶ করà§à¦¨à¥¤</translation>
<translation id="2123055963409958220"><ph name="BEGIN_LINK" />বরà§à¦¤à¦®à¦¾à¦¨ সেটিংসের<ph name="END_LINK" /> পà§à¦°à¦¤à¦¿à¦¬à§‡à¦¦à¦¨ করে Chrome কে আরও ভাল করে তà§à¦²à¦¤à§‡ সাহাযà§à¦¯ করà§à¦¨</translation>
<translation id="216054706567564023">আপনার ফোনে Chrome ইনসà§à¦Ÿà¦² করà§à¦¨à¥¤ আমরা আপনার অà§à¦¯à¦¾à¦•à¦¾à¦‰à¦¨à§à¦Ÿ পà§à¦¨à¦°à§à¦¦à§à¦§à¦¾à¦°à§‡à¦° ফোন নমà§à¦¬à¦°à§‡ à¦à¦•à¦Ÿà¦¿ à¦à¦¸à¦à¦®à¦à¦¸ পাঠাব।</translation>
-<translation id="2246246234298806438">বিলà§à¦Ÿ-ইন PDF viewer অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤ থাকার সময়ে Google Chrome মà§à¦¦à§à¦°à¦£à§‡à¦° পূরà§à¦¬à¦°à§à¦ª দেখাতে পারে না৷</translation>
+<translation id="2246246234298806438">বিলà§à¦Ÿ-ইন PDF viewer অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤ থাকার সময়ে Google Chrome পà§à¦°à¦¿à¦¨à§à¦Ÿà§‡à¦° পূরà§à¦¬à¦°à§à¦ª দেখাতে পারে না৷</translation>
<translation id="2252923619938421629">বরà§à¦¤à¦®à¦¾à¦¨ সেটিংস পà§à¦°à¦¤à¦¿à¦¬à§‡à¦¦à¦¨ করে Google Chrome আরও উতà§à¦¤à¦® করে তà§à¦²à¦¤à§‡ সাহাযà§à¦¯ করà§à¦¨</translation>
<translation id="2286950485307333924">আপনি à¦à¦–ন Chrome ঠপà§à¦°à¦¬à§‡à¦¶ করেছেন</translation>
<translation id="2290014774651636340">Google API কীগà§à¦²à¦¿ অনà§à¦ªà¦¸à§à¦¥à¦¿à¦¤à§· Google Chrome à¦à¦° কিছৠবৈশিষà§à¦Ÿà§à¦¯ নিষà§à¦•à§à¦°à¦¿à¦¯à¦¼ হয়ে যাবে৷</translation>
@@ -123,7 +123,7 @@
<translation id="4480040274068703980">সাইন ইনে তà§à¦°à§à¦Ÿà¦¿à¦° কারণে Chrome OS আপনার ডেটা সিঙà§à¦• করতে পারেনি৷</translation>
<translation id="4561051373932531560">Google Chrome আপনাকে ওয়েবে কোনো ফোন নমà§à¦¬à¦°à§‡ কà§à¦²à¦¿à¦• করতে à¦à¦¬à¦‚ Skype-à¦à¦° মাধà§à¦¯à¦®à§‡ সেটিতে কল করতে দেয়!</translation>
<translation id="4567424176335768812">আপনি <ph name="USER_EMAIL_ADDRESS" /> হিসাবে পà§à¦°à¦¬à§‡à¦¶ করেছেন৷ à¦à¦–ন আপনি আপনার সমসà§à¦¤ পà§à¦°à¦¬à§‡à¦¶ করা ডিভাইসে আপনার বà§à¦•à¦®à¦¾à¦°à§à¦•, ইতিহাস à¦à¦¬à¦‚ অনà§à¦¯à¦¾à¦¨à§à¦¯ সেটিংস অà§à¦¯à¦¾à¦•à§à¦¸à§‡à¦¸ করতে পারেন৷</translation>
-<translation id="4600710005438004015">Chrom লেটেসà§à¦Ÿ ভারà§à¦¸à¦¾à¦¨à§‡ আপডেট করা যাচà§à¦›à§‡ না, তাই আপনি নতà§à¦¨ বৈশিষà§à¦Ÿà§à¦¯ à¦à¦¬à¦‚ সà§à¦°à¦•à§à¦·à¦¾ সমাধানগà§à¦²à¦¿ পাচà§à¦›à§‡à¦¨ না।</translation>
+<translation id="4600710005438004015">Chrom লেটেসà§à¦Ÿ ভারà§à¦¸à¦¨à§‡ আপডেট করা যাচà§à¦›à§‡ না, তাই আপনি নতà§à¦¨ বৈশিষà§à¦Ÿà§à¦¯ à¦à¦¬à¦‚ সà§à¦°à¦•à§à¦·à¦¾ সমাধানগà§à¦²à¦¿ পাচà§à¦›à§‡à¦¨ না।</translation>
<translation id="4631713731678262610">Chromium মেনà§à¦° মধà§à¦¯à§‡ লà§à¦•à¦¾à¦¨</translation>
<translation id="4633000520311261472">Chrome কে আরও নিরাপদ করতে, আমরা কিছৠà¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¾à¦¨ অকà§à¦·à¦® করেছি যা <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ঠতালিকাবদà§à¦§ করা হয়নি à¦à¦¬à¦‚ হয়ত আপনাকে না জানিয়ে যোগ করা হয়েছে৷</translation>
<translation id="4664415150087723341">Google Chrome à¦à¦° জনà§à¦¯ à¦à¦•à¦Ÿà¦¿ বিশেষ সà§à¦°à¦•à§à¦·à¦¾ আপডেট à¦à¦‡à¦®à¦¾à¦¤à§à¦° পà§à¦°à¦¯à¦¼à§‹à¦— করা হয়েছে; à¦à¦Ÿà¦¾ কারà§à¦¯à¦•à¦° করার জনà§à¦¯ (আমরা আপনার টà§à¦¯à¦¾à¦¬à¦—à§à¦²à¦¿ পà§à¦¨à¦°à§à¦¦à§à¦§à¦¾à¦° করব) আপনার à¦à¦–নই à¦à¦•à§‡ পà§à¦¨à¦°à¦¾à¦¯à¦¼ চালৠকরা উচিত হবে।</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_ca.xtb b/chromium/chrome/app/resources/google_chrome_strings_ca.xtb
index 608ed907d42..db96b5640fc 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_ca.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_ca.xtb
@@ -217,7 +217,7 @@ Per obtenir més instruccions, consulteu el correu electrònic a <ph name="ACCOU
<translation id="7398801000654795464">Teníeu la sessió iniciada a Chrome com a <ph name="USER_EMAIL_ADDRESS" />. Utilitzeu el mateix compte per tornar-hi a iniciar la sessió.</translation>
<translation id="7408085963519505752">Condicions de Chrome OS</translation>
<translation id="7419046106786626209">Chrome OS no ha pogut sincronitzar les vostres dades perquè la sincronització no està disponible per al vostre domini.</translation>
-<translation id="7437998757836447326">Tancar la sessió de Chrome</translation>
+<translation id="7437998757836447326">Tanca la sessió de Chrome</translation>
<translation id="7459554271817304652">Configureu la sincronització per desar al web les funcions personalitzades del navegador i per accedir-hi des de qualsevol ordinador mitjançant Google Chrome.</translation>
<translation id="7473136999113284234">Chrome s'actualitza automàticament perquè en tingueu sempre la versió més recent.</translation>
<translation id="7473891865547856676">No, gràcies</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_el.xtb b/chromium/chrome/app/resources/google_chrome_strings_el.xtb
index 5aaff5bc7bd..f98410195a3 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_el.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_el.xtb
@@ -104,7 +104,7 @@
<translation id="386202838227397562">Κλείστε όλα τα παÏάθυÏα του Google Chrome και Ï€Ïοσπαθήστε ξανά.</translation>
<translation id="3870154837782082782">Google Inc.</translation>
<translation id="3873044882194371212">Άνοιγμα συνδέσμου σε παÏάθυÏο ανών&amp;υμης πεÏιήγησης Chrome</translation>
-<translation id="3889417619312448367">ΚατάÏγηση εγκατάστασης Google Chrome</translation>
+<translation id="3889417619312448367">Απεγκατάσταση Google Chrome</translation>
<translation id="4028693306634653894">Μεταβείτε ταχÏτεÏα στο Chrome</translation>
<translation id="4031074602479304239">Το Chrome διέκοψε την ανακατεÏθυνσή σας από αυτόν τον ιστότοπο στο</translation>
<translation id="4042449298237264661">Αυτός ο υπολογιστής δεν θα λαμβάνει πια ενημεÏώσεις Google Chrome, επειδή δεν υποστηÏίζονται πλέον τα Windows XP και Windows Vista.</translation>
@@ -123,7 +123,7 @@
<translation id="4480040274068703980">Το Chrome OS δεν μπόÏεσε να συγχÏονίσει τα δεδομένα σας λόγω σφάλματος κατά τη σÏνδεση.</translation>
<translation id="4561051373932531560">Το Google Chrome σάς επιτÏέπει να κάνετε κλικ σε έναν τηλεφωνικό αÏιθμό στον ιστό και να τον καλέσετε με το Skype!</translation>
<translation id="4567424176335768812">Έχετε συνδεθεί ως <ph name="USER_EMAIL_ADDRESS" />. ΤώÏα μποÏείτε να αποκτήσετε Ï€Ïόσβαση στους σελιδοδείκτες, το ιστοÏικό και σε άλλες Ïυθμίσεις από όλες τις συσκευές στις οποίες έχετε συνδεθεί.</translation>
-<translation id="4600710005438004015">Δεν ήταν δυνατή η ενημέÏωση του Chrome στην τελευταία έκδοση και έτσι δεν θα έχετε Ï€Ïόσβαση στις νέες λειτουÏγίες και στις επιδιοÏθώσεις ασφαλείας.</translation>
+<translation id="4600710005438004015">Δεν ήταν δυνατή η ενημέÏωση του Chrome στην πιο Ï€Ïόσφατη έκδοση και έτσι δεν θα έχετε Ï€Ïόσβαση στις νέες λειτουÏγίες και στις επιδιοÏθώσεις ασφαλείας.</translation>
<translation id="4631713731678262610">ΑπόκÏυψη από το Î¼ÎµÎ½Î¿Ï Ï„Î¿Ï… Chrome</translation>
<translation id="4633000520311261472">Για να κάνουμε το Chrome πιο ασφαλές, απενεÏγοποιήσαμε οÏισμένες επεκτάσεις που δεν αναφέÏονται στο <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> και ενδέχεται να έχουν Ï€Ïοστεθεί εν αγνοία σας.</translation>
<translation id="4664415150087723341">Μόλις εφαÏμόστηκε μια ειδική ενημέÏωση ασφαλείας για το Google Chrome. Θα Ï€Ïέπει να το επανεκκινήσετε Ï„ÏŽÏα για να τεθεί σε Î¹ÏƒÏ‡Ï (θα γίνει επαναφοÏά των καÏτελών σας).</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_es.xtb b/chromium/chrome/app/resources/google_chrome_strings_es.xtb
index b899b4e2c2e..fd31b3f4e8f 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_es.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_es.xtb
@@ -125,7 +125,7 @@ Consulta tu correo electrónico (<ph name="ACCOUNT_EMAIL" />) para obtener más
<translation id="4480040274068703980">Chrome OS no ha podido sincronizar los datos debido a un error de inicio de sesión.</translation>
<translation id="4561051373932531560">Google Chrome te permite hacer clic en un número de teléfono en la Web y llamar mediante Skype.</translation>
<translation id="4567424176335768812">Has iniciado sesión como <ph name="USER_EMAIL_ADDRESS" />. Ahora puedes acceder a tus marcadores, a tu historial y a otras opciones en todos los dispositivos en los que hayas iniciado sesión.</translation>
-<translation id="4600710005438004015">No se ha podido actualizar Chrome a la última versión, por lo que no disfrutas de las últimas funciones y correcciones de seguridad.</translation>
+<translation id="4600710005438004015">No se ha podido actualizar Chrome a la versión más reciente, por lo que no disfrutas de las últimas funciones y correcciones de seguridad.</translation>
<translation id="4631713731678262610">Ocultar en el menú de Chrome</translation>
<translation id="4633000520311261472">Para aumentar la seguridad de Chrome, hemos inhabilitado algunas extensiones que no figuran en <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> y que podrían haberse añadido sin tu conocimiento.</translation>
<translation id="4664415150087723341">Se acaba de instalar una actualización de seguridad especial para Google Chrome. Reinicia ahora para que se apliquen los cambios. No te preocupes, restauraremos tus pestañas.</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_fa.xtb b/chromium/chrome/app/resources/google_chrome_strings_fa.xtb
index f47e0083b2f..ea136c8e6e3 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_fa.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_fa.xtb
@@ -122,7 +122,7 @@
<translation id="4480040274068703980">â€Ø¨Ù‡ دلیل وجود یک خطای ورود به سیستم، سیستم‌عامل Chrome قادر به همگام‌سازی داده‌هایتان نبود.</translation>
<translation id="4561051373932531560">â€Google Chrome به شما اجازه می‌دهد بر روی شماره تلÙÙ† روی وب کلیک کرده Ùˆ از طریق Skype تماس بگیرید!</translation>
<translation id="4567424176335768812">با حساب <ph name="USER_EMAIL_ADDRESS" /> وارد سیستم شده‌اید. اکنون در همه دستگاه‌هایی که با آنها به سیستم وارد شده‌اید می‌توانید به نشانک‌ها، سابقه و دیگر تنظیماتتان دسترسی داشته باشید.</translation>
-<translation id="4600710005438004015">â€Chrome به جدیدترین نسخه به‌روزرسانی نشد، بنابراین قابلیت‌های جدید Ùˆ رÙع اشکال‌های امنیتی را از دست می‌دهید.</translation>
+<translation id="4600710005438004015">â€Chrome به جدیدترین نسخه به‌روزرسانی نشد، بنابراین قابلیت‌های جدید Ùˆ رÙع اشکال‌های امنیتی را ندارید.</translation>
<translation id="4631713731678262610">â€Ù¾Ù†Ù‡Ø§Ù† در منوی Chrome</translation>
<translation id="4633000520311261472">â€Ø¨Ø±Ø§ÛŒ ایمن‌تر کردن ChromeØŒ برخی از اÙزونه‌هایی را Ú©Ù‡ در<ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> Ùهرست نشده‌اند Ùˆ ممکن است بدون اطلاع شما اضاÙÙ‡ شده باشند، غیرÙعال کردیم.</translation>
<translation id="4664415150087723341">â€Ù„حظاتی پیش به‌روزرسانی امنیتی ویژه برای Google Chrome اعمال شد؛ برای Ùعال شدن آن باید هم‌اکنون راه‌اندازی مجدد کنید (برگه‌هایتان را بازیابی خواهیم کرد).</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_fr.xtb b/chromium/chrome/app/resources/google_chrome_strings_fr.xtb
index d11674e9fae..1ed90750a2d 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_fr.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_fr.xtb
@@ -8,7 +8,7 @@ Certaines fonctionnalités ne seront peut-être pas disponibles, et les modifica
<translation id="1088300314857992706"><ph name="USER_EMAIL_ADDRESS" /> utilisait Chrome précédemment</translation>
<translation id="1104959162601287462">À propos de &amp;Chrome OS</translation>
<translation id="110877069173485804">Voici votre Chrome</translation>
-<translation id="1142745911746664600">Impossible de mettre à jour Chrome</translation>
+<translation id="1142745911746664600">Impossible de mettre Chrome à jour</translation>
<translation id="123620459398936149">Impossible de synchroniser vos données dans Chrome OS. Veuillez mettre à jour votre phrase secrète de synchronisation.</translation>
<translation id="127345590676626841">Chrome est automatiquement mis à jour pour vous permettre de toujours disposer de la dernière version. Une fois le téléchargement terminé, Chrome redémarre et vous pouvez de nouveau l'utiliser.</translation>
<translation id="1302523850133262269">Veuillez patienter pendant que Chrome installe les dernières mises à jour du système.</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_hu.xtb b/chromium/chrome/app/resources/google_chrome_strings_hu.xtb
index d1be1bd4154..465ba2101f9 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_hu.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_hu.xtb
@@ -7,7 +7,7 @@
<translation id="1088300314857992706"><ph name="USER_EMAIL_ADDRESS" /> előzőleg Chrome-ot használt</translation>
<translation id="1104959162601287462">A &amp;Chrome OS névjegye</translation>
<translation id="110877069173485804">Ez az Ön Chrome-ja</translation>
-<translation id="1142745911746664600">A Chrome nem frissíthető</translation>
+<translation id="1142745911746664600">Nem sikerült a Chrome frissítése</translation>
<translation id="123620459398936149">A Chrome OS nem tudta szinkronizálni az adatokat. Kérjük, frissítse szinkronizálási összetett jelszavát.</translation>
<translation id="127345590676626841">A Chrome automatikusan frissít, így Ön mindig a legújabb verzióval rendelkezik. A letöltés befejezése után a Chrome újraindul, és máris rendelkezésre áll.</translation>
<translation id="1302523850133262269">Kérjük, várjon, amíg a Chrome telepíti a legutóbbi rendszerfrissítéseket.</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_ml.xtb b/chromium/chrome/app/resources/google_chrome_strings_ml.xtb
index b0e4bf4140e..fc660a7bef8 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_ml.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_ml.xtb
@@ -125,7 +125,7 @@
<translation id="4480040274068703980">സൈൻ ഇൻ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´²àµ† പിശകൠകാരണം Chrome OS-നൠനിങàµà´™à´³àµà´Ÿàµ† ഡാറàµà´± സമനàµà´µà´¯à´¿à´ªàµà´ªà´¿à´•àµà´•à´¾à´¨à´¾à´¯à´¿à´²àµà´².</translation>
<translation id="4561051373932531560">വെബàµà´¬à´¿à´²àµà´³àµà´³ ഒരൠഫോണàµâ€ നമàµà´ªà´°à´¿à´²àµâ€ à´•àµà´²à´¿à´•àµà´•àµà´šàµ†à´¯àµà´¯àµà´µà´¾à´¨àµà´‚ Skype ഉപയോഗിചàµà´šàµ വിളികàµà´•àµà´µà´¾à´¨àµà´‚ Google Chrome നിങàµà´™à´³àµ† à´…à´¨àµà´µà´¦à´¿à´•àµà´•àµà´¨àµà´¨àµ!</translation>
<translation id="4567424176335768812">നിങàµà´™àµ¾ <ph name="USER_EMAIL_ADDRESS" /> ആയി സൈൻ ഇൻ ചെയàµâ€Œà´¤à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ. സൈൻ ഇൻ ചെയàµâ€Œà´¤à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ à´Žà´²àµà´²à´¾ ഉപകരണങàµà´™à´³à´¿à´²àµà´‚ à´¬àµà´•àµà´•àµâ€Œà´®à´¾àµ¼à´•àµà´•àµà´•à´³àµà´‚ à´šà´°à´¿à´¤àµà´°à´µàµà´‚ മറàµà´±àµ à´•àµà´°à´®àµ€à´•à´°à´£à´™àµà´™à´³àµà´‚ ആകàµâ€Œà´¸à´¸àµà´¸àµà´šàµ†à´¯àµà´¯à´¾àµ» ഇപàµà´ªàµ‹àµ¾ നിങàµà´™àµ¾à´•àµà´•à´¾à´•àµà´‚.</translation>
-<translation id="4600710005438004015">à´à´±àµà´±à´µàµà´‚ à´ªàµà´¤à´¿à´¯ പതിപàµà´ªà´¿à´²àµ‡à´•àµà´•àµ Chrome à´…à´ªàµâ€Œà´¡àµ‡à´±àµà´±àµ ചെയàµà´¯à´¾à´¨à´¾à´¯à´¿à´²àµà´² à´…à´¤àµà´•àµŠà´£àµà´Ÿàµ നിങàµà´™àµ¾à´•àµà´•àµ à´ªàµà´¤à´¿à´¯ ഫീചàµà´šà´±àµà´•à´³àµà´‚ à´¸àµà´°à´•àµà´·à´¾ പരിഹാരങàµà´™à´³àµà´‚ ലഭിചàµà´šà´¿à´²àµà´².</translation>
+<translation id="4600710005438004015">à´à´±àµà´±à´µàµà´‚ à´ªàµà´¤à´¿à´¯ പതിപàµà´ªà´¿à´²àµ‡à´•àµà´•àµ Chrome à´…à´ªàµâ€Œà´¡àµ‡à´±àµà´±àµ ചെയàµà´¯à´¾à´¨à´¾à´¯à´¿à´²àµà´², അതിനാൽ à´ªàµà´¤à´¿à´¯ ഫീചàµà´šà´±àµà´•à´³àµà´‚ à´¸àµà´°à´•àµà´·à´¾ പരിഹാരങàµà´™à´³àµà´‚ നിങàµà´™àµ¾à´•àµà´•àµ ലഭികàµà´•àµà´¨àµà´¨à´¿à´²àµà´².</translation>
<translation id="4631713731678262610">Chrome മെനàµà´µà´¿àµ½ മറയàµâ€Œà´•àµà´•àµà´•</translation>
<translation id="4633000520311261472">Chrome à´¸àµà´°à´•àµà´·à´¿à´¤à´®à´¾à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµ, <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> à´Žà´¨àµà´¨à´¤à´¿àµ½ ലിസàµà´±àµà´±àµà´šàµ†à´¯àµà´¯à´¾à´¤àµà´¤ à´šà´¿à´² വിപàµà´²àµ€à´•à´°à´£à´™àµà´™àµ¾ à´žà´™àµà´™àµ¾ à´ªàµà´°à´µàµ¼à´¤àµà´¤à´¨à´°à´¹à´¿à´¤à´®à´¾à´•àµà´•à´¿, à´…à´µ നിങàµà´™à´³àµà´Ÿàµ† അറിവിലàµà´²à´¾à´¤àµ† ചേർതàµà´¤à´¿à´°à´¿à´•àµà´•à´¾à´¨à´¿à´Ÿà´¯àµà´£àµà´Ÿàµ.</translation>
<translation id="4664415150087723341">Google Chrome-à´¨àµà´³àµà´³ ഒരൠപàµà´°à´¤àµà´¯àµ‡à´• à´¸àµà´°à´•àµà´·à´¾ à´…à´ªàµà´¡àµ‡à´±àµà´±àµ ഇപàµà´ªàµ‹àµ¾ à´ªàµà´°à´¯àµ‹à´—à´¿à´šàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ; ഇതൠപàµà´°à´µàµ¼à´¤àµà´¤à´¨à´•àµà´·à´®à´®à´¾à´•àµà´•à´¾àµ» നിങàµà´™àµ¾ ഇപàµà´ªàµ‹àµ¾ à´ªàµà´¨à´ƒà´°à´¾à´°à´‚à´­à´¿à´•àµà´•àµ‡à´£àµà´Ÿà´¤àµà´£àµà´Ÿàµ (à´žà´™àµà´™àµ¾ നിങàµà´™à´³àµà´Ÿàµ† ടാബàµà´•àµ¾ à´ªàµà´¨à´ƒà´¸àµà´¥à´¾à´ªà´¿à´•àµà´•àµà´‚).</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_mr.xtb b/chromium/chrome/app/resources/google_chrome_strings_mr.xtb
index 08f0c10e0fa..f82f263d9ff 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_mr.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_mr.xtb
@@ -32,7 +32,7 @@
<ph name="USER_DATA_DIRECTORY" /></translation>
<translation id="1698376642261615901">Google Chrome à¤à¤• वेब बà¥à¤°à¤¾à¤‰à¤à¤° आहे जो वेब पृषà¥à¤ à¥‡ आणि अॅपà¥à¤²à¤¿à¤•à¥‡à¤¶à¤¨ विजेचà¥à¤¯à¤¾ गतीने चालवितो. तो जलद, सà¥à¤¥à¤¿à¤° आणि वापरणà¥à¤¯à¤¾à¤¸ सोपा आहे. Google Chrome मधà¥à¤¯à¥‡ तयार केलेलà¥à¤¯à¤¾ मालवेयर आणि फिशिंग संरकà¥à¤·à¤£à¤¾à¤¸à¤¹ वेब अधिक सà¥à¤°à¤•à¥à¤·à¤¿à¤¤à¤ªà¤£à¥‡ बà¥à¤°à¤¾à¤‰à¤ करा.</translation>
<translation id="1718131156967340976"><ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /> निवडा</translation>
-<translation id="174539241580958092">साइन इन करणà¥à¤¯à¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¥€ आलà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ Google Chrome आपला डेटा संकालित करू शकले नाही.</translation>
+<translation id="174539241580958092">साइन इन करणà¥à¤¯à¤¾à¤¤ à¤à¤°à¤° आलà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ Google Chrome आपला डेटा संकालित करू शकले नाही.</translation>
<translation id="1759301979429102118">आपलà¥à¤¯à¤¾ संपरà¥à¤•à¤¾à¤‚कडील तपशील आपलà¥à¤¯à¤¾à¤²à¤¾ Chrome मधà¥à¤¯à¥‡ अधिक दà¥à¤°à¥à¤¤à¤ªà¤£à¥‡ फॉरà¥à¤® भरणà¥à¤¯à¤¾à¤¸ मदत करू शकतात.</translation>
<translation id="1759842336958782510">Chrome</translation>
<translation id="1773601347087397504">Chrome OS वापरून मदत मिळवा </translation>
@@ -89,7 +89,7 @@
<translation id="3282568296779691940">Chrome वर साइन इन करा</translation>
<translation id="3360895254066713204">Chrome मदतनीस</translation>
<translation id="3395323229510056640">Chrome OS सह मदत मिळवा</translation>
-<translation id="3396977131400919238">सà¥à¤¥à¤¾à¤ªà¤¨à¥‡à¤¦à¤°à¤®à¥à¤¯à¤¾à¤¨ à¤à¤• ऑपरेटिंग सिसà¥à¤Ÿà¤®â€ तà¥à¤°à¥à¤Ÿà¥€ आली. कृपया Google Chrome पà¥à¤¨à¥à¤¹à¤¾ डाउनलोड करा.</translation>
+<translation id="3396977131400919238">सà¥à¤¥à¤¾à¤ªà¤¨à¥‡à¤¦à¤°à¤®à¥à¤¯à¤¾à¤¨ à¤à¤• ऑपरेटिंग सिसà¥à¤Ÿà¤®â€ à¤à¤°à¤° आली. कृपया Google Chrome पà¥à¤¨à¥à¤¹à¤¾ डाउनलोड करा.</translation>
<translation id="3398288718845740432">Chrome मेनूमधà¥â€à¤¯à¥‡ लपवा</translation>
<translation id="3451115285585441894">Chrome मधà¥â€à¤¯à¥‡ जोडत आहे...</translation>
<translation id="345171907106878721">Chrome वर आपलà¥à¤¯à¤¾ सà¥à¤µà¤¤à¤ƒà¤¸ जोडा</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_ms.xtb b/chromium/chrome/app/resources/google_chrome_strings_ms.xtb
index 3259c0d4a00..d7ade41b457 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_ms.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_ms.xtb
@@ -121,7 +121,7 @@ Sila semak e-mel anda di <ph name="ACCOUNT_EMAIL" /> untuk arahan lanjut.</trans
<translation id="4480040274068703980">OS Chrome tidak dapat menyegerakkan data anda disebabkan oleh ralat melog masuk.</translation>
<translation id="4561051373932531560">Google Chrome membolehkan anda mengklik nombor telefon pada web dan menghubunginya dengan Skype!</translation>
<translation id="4567424176335768812">Anda telah log masuk sebagai <ph name="USER_EMAIL_ADDRESS" />. Sekarang anda boleh mengakses penanda halaman, sejarah dan tetapan anda yang lain pada semua peranti yang anda gunakan untuk log masuk.</translation>
-<translation id="4600710005438004015">Chrome tidak dapat dikemas kini kepada versi terkini, maka anda terlepas ciri baharu dan tampalan keselamatan.</translation>
+<translation id="4600710005438004015">Chrome tidak dapat dikemas kini kepada versi terkini, maka anda terlepas ciri baharu dan penyelesaian keselamatan.</translation>
<translation id="4631713731678262610">Sembunyikan dalam menu Chrome</translation>
<translation id="4633000520311261472">Untuk menjadikan Chrome lebih selamat, kami melumpuhkan beberapa sambungan yang tidak disenaraikan dalam <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> dan mungkin telah ditambahkan tanpa pengetahuan anda.</translation>
<translation id="4664415150087723341">Kemas kini keselamatan khas untuk Google Chrome baru sahaja dilakukan; anda perlu memulakan semula peranti ini sekarang supaya kemas kini ini berkesan (kami akan memulihkan tab anda).</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_pl.xtb b/chromium/chrome/app/resources/google_chrome_strings_pl.xtb
index 3bd0afed412..9fc85e52729 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_pl.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_pl.xtb
@@ -122,7 +122,7 @@ Więcej instrukcji znajdziesz w e-mailu wysłanym na adres <ph name="ACCOUNT_EM
<translation id="4480040274068703980">System operacyjny Chrome nie może zsynchronizować danych z powodu błędu logowania.</translation>
<translation id="4561051373932531560">W przeglądarce Google Chrome możesz kliknąć numer telefonu zamieszczony w sieci i zadzwonić na niego za pośrednictwem usługi Skype!</translation>
<translation id="4567424176335768812">Jesteś zalogowany jako <ph name="USER_EMAIL_ADDRESS" />. Teraz możesz korzystać ze swoich zakładek, historii i innych ustawień na wszystkich zalogowanych urządzeniach.</translation>
-<translation id="4600710005438004015">Aktualizacja Chrome do najnowszej wersji nie udała się, więc nie masz dostępu do najnowszych funkcji i poprawek zabezpieczeń.</translation>
+<translation id="4600710005438004015">Aktualizacja Chrome do najnowszej wersji nie udała się, więc nie masz dostępu do najnowszych funkcji i poprawek zabezpieczeń.</translation>
<translation id="4631713731678262610">Ukryj w menu Chrome</translation>
<translation id="4633000520311261472">Aby poprawić bezpieczeństwo Chrome, wyłączyliśmy niektóre rozszerzenia niedostępne w <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />, które mogły zostać dodane bez Twojej wiedzy.</translation>
<translation id="4664415150087723341">Właśnie została zastosowana specjalna aktualizacja zabezpieczeń Google Chrome. Aby zmiany zostały wprowadzone, uruchom teraz ponownie przeglądarkę (karty zostaną przywrócone).</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_pt-BR.xtb b/chromium/chrome/app/resources/google_chrome_strings_pt-BR.xtb
index d39f8a32573..f7dcd611cbb 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_pt-BR.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_pt-BR.xtb
@@ -276,7 +276,7 @@ Verifique seu e-mail em <ph name="ACCOUNT_EMAIL" /> para ver mais instruções.<
<translation id="9026991721384951619">O Chrome OS não pôde sincronizar seus dados porque os detalhes de login da sua conta estão desatualizados.</translation>
<translation id="9067395829937117663">O Google Chrome requer o Windows 7 ou versão superior.</translation>
<translation id="9084668267983921457">Falha no certificado de autenticação. Faça login novamente no Google Chrome ou entre em contato com o administrador para receber mais informações. <ph name="ADDITIONAL_EXPLANATION" /></translation>
-<translation id="9107728822479888688"><ph name="BEGIN_BOLD" />Aviso:<ph name="END_BOLD" /> O Google Chrome não impede que as extensões gravem seu histórico de navegação. Para desativar esta extensão no modo sem rastros, desmarque esta opção.</translation>
+<translation id="9107728822479888688"><ph name="BEGIN_BOLD" />Aviso:<ph name="END_BOLD" /> O Google Chrome não impede que as extensões gravem seu histórico de navegação. Para desativar esta extensão no modo de navegação anônima, desmarque esta opção.</translation>
<translation id="911206726377975832">Excluir também dados de navegação?</translation>
<translation id="919706545465235479">Atualize o Chrome para iniciar a sincronização</translation>
<translation id="924447568950697217">Definir o Google Chrome como o navegador padrão</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_sk.xtb b/chromium/chrome/app/resources/google_chrome_strings_sk.xtb
index 0c1306b0543..6a3177b47ce 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_sk.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_sk.xtb
@@ -123,7 +123,7 @@ Ak chcete profilu <ph name="NEW_PROFILE_NAME" /> zabrániÅ¥ pristupovaÅ¥ do váÅ
<translation id="4480040274068703980">Systému OS Chrome sa nepodarilo synchronizovať vaše údaje, pretože sa pri prihlasovaní vyskytla chyba.</translation>
<translation id="4561051373932531560">PrehliadaÄ Google Chrome vám umožňuje vybraÅ¥ telefónne Äíslo na webe a zavolaÅ¥ naň pomocou aplikácie Skype.</translation>
<translation id="4567424176335768812">Ste prihlásený/-á ako <ph name="USER_EMAIL_ADDRESS" />. Teraz môžete na vÅ¡etkých zariadeniach, kde ste prihlásený/-á, pristupovaÅ¥ k svojim záložkám, histórii a Äalším nastaveniam.</translation>
-<translation id="4600710005438004015">Chrome sa nepodarilo aktualizovaÅ¥ na najnovÅ¡iu verziu. K dispozícii tak nie sú niektoré skvelé nové funkcie a bezpeÄnostné opravy.</translation>
+<translation id="4600710005438004015">Chrome sa nepodarilo aktualizovaÅ¥ na najnovÅ¡iu verziu. K dispozícii tak nie sú niektoré nové funkcie a bezpeÄnostné opravy.</translation>
<translation id="4631713731678262610">Skryť v Ponuke Chrome</translation>
<translation id="4633000520311261472">Z dôvodu vyÅ¡Å¡ej bezpeÄnosti prehliadaÄa Chrome sme zakázali niektoré rozšírenia, ktoré nedodáva <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> a mohli byÅ¥ pridané bez vášho vedomia.</translation>
<translation id="4664415150087723341">Práve bola použitá mimoriadna bezpeÄnostná aktualizácia pre prehliadaÄ Google Chrome. Zmeny sa prejavia až po jeho reÅ¡tartovaní (vaÅ¡e karty sa automaticky obnovia).</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_sv.xtb b/chromium/chrome/app/resources/google_chrome_strings_sv.xtb
index 86871a25918..920877d696b 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_sv.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_sv.xtb
@@ -125,7 +125,7 @@ Ytterligare anvisningar har skickats med e-post till dig på <ph name="ACCOUNT_E
<translation id="4480040274068703980">Det gick inte att synkronisera data med Chrome OS på grund av ett inloggningsfel.</translation>
<translation id="4561051373932531560">I Google Chrome kan du klicka på ett telefonnummer på nätet och ringa det med Skype!</translation>
<translation id="4567424176335768812">Du är inloggad som <ph name="USER_EMAIL_ADDRESS" />. Nu kan du komma åt dina bokmärken, historik och andra inställningar på alla enheter som du är inloggad på.</translation>
-<translation id="4600710005438004015">Det gick inte att uppdatera Chrome till den senaste versionen, så du går miste om några nya funktioner och säkerhetskorrigeringar.</translation>
+<translation id="4600710005438004015">Det gick inte att uppdatera Chrome till den senaste versionen. Därför går du miste om nya funktioner och säkerhetskorrigeringar.</translation>
<translation id="4631713731678262610">Dölj i Chrome-menyn</translation>
<translation id="4633000520311261472">Vi har gjort Chrome säkrare genom att inaktivera vissa tillägg som inte finns i <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> och som kan ha lagts till utan att du vet om det.</translation>
<translation id="4664415150087723341">En särskild säkerhetsuppdatering för Google Chrome installerades precis. Tillämpa uppdateringen genom att starta om (vi återställer flikarna).</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_sw.xtb b/chromium/chrome/app/resources/google_chrome_strings_sw.xtb
index ef04fde2c9f..b7ee0b05d0a 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_sw.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_sw.xtb
@@ -125,7 +125,7 @@ Tafadhali angalia barua pepe yako katika <ph name="ACCOUNT_EMAIL" /> upate maagi
<translation id="4480040274068703980">Mfumo wa Uendeshaji wa Chrome haukuweza kusawazisha data yako kutokana na hitilafu wakati wa kuingia katika akaunti.</translation>
<translation id="4561051373932531560">Google Chrome inakuwezesha kubofya nambari ya simu kwenye wavuti na kuipigia simu kwa Skype!</translation>
<translation id="4567424176335768812">Umeingia katika akaunti kama <ph name="USER_EMAIL_ADDRESS" />. Sasa unaweza kupata alamisho, historia, na mipangilio yako mingine kwenye vifaa vyako vyote vilivyoingia katika akaunti.</translation>
-<translation id="4600710005438004015">Chrome imeshindwa kusasisha toleo jipya, kwa hivyo hutapata vipengele vipya na masasisho ya usalama.</translation>
+<translation id="4600710005438004015">Imeshindwa kupata toleo jipya la Chrome, kwa hivyo hutapata masasisho ya usalama na vipengele vipya.</translation>
<translation id="4631713731678262610">Ficha katika menyu ya Chrome</translation>
<translation id="4633000520311261472">Ili kufanya Chrome salama zaidi, tumezima baadhi ya viendelezi ambavyo havijaorodheshwa katika <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> na ambavyo huendwa viliongezwa pasipo ridhaa yako.</translation>
<translation id="4664415150087723341">Sasisho maalum la usalama wa Google Chrome limewekwa; unapaswa kuzima na kuwasha Chrome sasa ili lifanye kazi (tutarejesha vichupo vyako).</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_ta.xtb b/chromium/chrome/app/resources/google_chrome_strings_ta.xtb
index 9db04ade9a5..7db4dca086d 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_ta.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_ta.xtb
@@ -121,7 +121,7 @@
<translation id="4480040274068703980">உளà¯à®¨à¯à®´à¯ˆà®µà®¤à®¿à®²à¯ à®à®±à¯à®ªà®Ÿà¯à®Ÿ பிழைக௠காரணமாக Chrome OS ஆல௠உஙà¯à®•à®³à¯ தரவை ஒதà¯à®¤à®¿à®šà¯ˆà®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ.</translation>
<translation id="4561051373932531560">வலையில௠ஒர௠தொலைபேசி எணà¯à®£à¯ˆà®•à¯ கிளிக௠செயà¯à®¤à¯, அதனை Skype மூலமாக அழைபà¯à®ªà®¤à®±à¯à®•à¯ உஙà¯à®•à®³à¯ˆ Google Chrome அனà¯à®®à®¤à®¿à®•à¯à®•à®¿à®±à®¤à¯!</translation>
<translation id="4567424176335768812">நீஙà¯à®•à®³à¯ <ph name="USER_EMAIL_ADDRESS" /> ஆக உளà¯à®¨à¯à®´à¯ˆà®¨à¯à®¤à¯à®³à¯à®³à¯€à®°à¯à®•à®³à¯. தறà¯à®ªà¯‹à®¤à¯ உஙà¯à®•à®³à¯ பà¯à®•à¯à®®à®¾à®°à¯à®•à¯à®•à¯à®•à®³à¯, வரலாற௠மறà¯à®±à¯à®®à¯ பிற அமைபà¯à®ªà¯à®•à®³à¯ˆ நீஙà¯à®•à®³à¯ உளà¯à®¨à¯à®´à¯ˆà®¨à¯à®¤à¯à®³à¯à®³ எலà¯à®²à®¾ சாதனஙà¯à®•à®³à®¿à®²à¯à®®à¯ அணà¯à®•à®²à®¾à®®à¯.</translation>
-<translation id="4600710005438004015">Chrome சமீபதà¯à®¤à®¿à®¯ பதிபà¯à®ªà®¿à®±à¯à®•à¯à®ªà¯ பà¯à®¤à¯à®ªà¯à®ªà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ. இதனால௠பà¯à®¤à®¿à®¯ à®…à®®à¯à®šà®™à¯à®•à®³à¯ˆà®¯à¯à®®à¯ பாதà¯à®•à®¾à®ªà¯à®ªà¯à®¤à¯ திரà¯à®¤à¯à®¤à®™à¯à®•à®³à¯ˆà®¯à¯à®®à¯ தவறவிடà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à¯.</translation>
+<translation id="4600710005438004015">Chrome சமீபதà¯à®¤à®¿à®¯ பதிபà¯à®ªà®¿à®±à¯à®•à¯à®ªà¯ பà¯à®¤à¯à®ªà¯à®ªà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ எனà¯à®ªà®¤à®¾à®²à¯, பà¯à®¤à®¿à®¯ à®…à®®à¯à®šà®™à¯à®•à®³à¯ˆà®¯à¯à®®à¯ பாதà¯à®•à®¾à®ªà¯à®ªà¯à®¤à¯ திரà¯à®¤à¯à®¤à®™à¯à®•à®³à¯ˆà®¯à¯à®®à¯ தவறவிடà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à¯.</translation>
<translation id="4631713731678262610">Chrome மெனà¯à®µà®¿à®²à¯ மறை</translation>
<translation id="4633000520311261472">Chrome à®à®ªà¯ பாதà¯à®•à®¾à®ªà¯à®ªà®¾à®©à®¤à®¾à®•à¯à®• <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> இல௠படà¯à®Ÿà®¿à®¯à®²à®¿à®Ÿà®ªà¯à®ªà®Ÿà®¾à®¤ சில நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯à®•à®³à¯ˆ நாஙà¯à®•à®³à¯ à®®à¯à®Ÿà®•à¯à®•à®¿à®µà®¿à®Ÿà¯à®Ÿà¯‹à®®à¯ மேலà¯à®®à¯ அவை உஙà¯à®•à®³à¯à®•à¯à®•à¯à®¤à¯ தெரியாமல௠சேரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¿à®°à¯à®•à¯à®•à®²à®¾à®®à¯.</translation>
<translation id="4664415150087723341">Google Chromeகà¯à®•à®¾à®© சிறபà¯à®ªà¯ பாதà¯à®•à®¾à®ªà¯à®ªà¯à®ªà¯ பà¯à®¤à¯à®ªà¯à®ªà®¿à®ªà¯à®ªà¯ சறà¯à®±à¯à®®à¯à®©à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯, அத௠செயலà¯à®ªà®Ÿ இபà¯à®ªà¯‹à®¤à¯ மீணà¯à®Ÿà¯à®®à¯ தொடஙà¯à®•à®µà¯à®®à¯ (உஙà¯à®•à®³à¯ தாவலà¯à®•à®³à¯ˆ மீடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯‹à®®à¯).</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_th.xtb b/chromium/chrome/app/resources/google_chrome_strings_th.xtb
index 994ed2c1097..21c992609bb 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_th.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_th.xtb
@@ -122,7 +122,7 @@
<translation id="4480040274068703980">Chrome OS ไม่สามารถซิงค์ข้อมูลของคุณเนื่องจาà¸à¹€à¸à¸´à¸”ข้อผิดพลาดในà¸à¸²à¸£à¸¥à¸‡à¸Šà¸·à¹ˆà¸­à¹€à¸‚้าใช้</translation>
<translation id="4561051373932531560">Google Chrome ทำให้คุณสามารถคลิà¸à¸—ี่หมายเลขโทรศัพท์บนเว็บà¹à¸¥à¹‰à¸§à¹‚ทรหาด้วย Skype!</translation>
<translation id="4567424176335768812">คุณà¸à¸³à¸¥à¸±à¸‡à¸¥à¸‡à¸Šà¸·à¹ˆà¸­à¹€à¸‚้าใช้เป็น <ph name="USER_EMAIL_ADDRESS" /> ตอนนี้คุณสามารถเข้าถึงบุ๊à¸à¸¡à¸²à¸£à¹Œà¸ ประวัติà¸à¸²à¸£à¹€à¸‚้าชม à¹à¸¥à¸°à¸à¸²à¸£à¸•à¸±à¹‰à¸‡à¸„่าอื่นๆ บนอุปà¸à¸£à¸“์ทั้งหมดที่ลงชื่อเข้าใช้</translation>
-<translation id="4600710005438004015">Chrome ไม่สามารถอัปเดตเป็นเวอร์ชันล่าสุดได้ คุณจึงไม่ได้รับฟีเจอร์ใหม่à¹à¸¥à¸°à¸à¸²à¸£à¹à¸à¹‰à¹„ขด้านความปลอดภัย</translation>
+<translation id="4600710005438004015">Chrome อัปเดตเป็นเวอร์ชันล่าสุดไม่ได้ คุณจึงไม่ได้รับฟีเจอร์ใหม่à¹à¸¥à¸°à¸à¸²à¸£à¹à¸à¹‰à¹„ขด้านความปลอดภัย</translation>
<translation id="4631713731678262610">ซ่อนในเมนู Chrome</translation>
<translation id="4633000520311261472">เพื่อให้ Chrome ปลอดภัยขึ้น เราปิดส่วนขยายบางรายà¸à¸²à¸£à¸—ี่ไม่ได้ระบุไว้ใน <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> à¹à¸¥à¸°à¸­à¸²à¸ˆà¸–ูà¸à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸‚้ามาโดยที่คุณไม่รู้ตัว</translation>
<translation id="4664415150087723341">ระบบเพิ่งนำà¸à¸²à¸£à¸­à¸±à¸›à¹€à¸”ตความปลอดภัยฉบับพิเศษไปใช้สำหรับ Google Chrome คุณควรรีสตาร์ทโปรà¹à¸à¸£à¸¡à¹€à¸žà¸·à¹ˆà¸­à¹ƒà¸«à¹‰à¸¡à¸µà¸œà¸¥à¹ƒà¸Šà¹‰à¸‡à¸²à¸™ (เราจะคืนค่าà¹à¸—็บให้คุณ)</translation>
diff --git a/chromium/chrome/app/resources/google_chrome_strings_uk.xtb b/chromium/chrome/app/resources/google_chrome_strings_uk.xtb
index 99235ba04db..72a5da05e3c 100644
--- a/chromium/chrome/app/resources/google_chrome_strings_uk.xtb
+++ b/chromium/chrome/app/resources/google_chrome_strings_uk.xtb
@@ -146,7 +146,7 @@
<translation id="5166975452760862670">Ð”Ð»Ñ Google Chrome вибрано цю мову</translation>
<translation id="5170938038195470297">Ваш профіль не можна викориÑтати, оÑкільки його Ñтворено в новішій верÑÑ–Ñ— Google Chrome. ДеÑкі функції можуть бути недоÑтупними. Укажіть інший каталог профілю чи ÑкориÑтайтеÑÑ Ð½Ð¾Ð²Ñ–ÑˆÐ¾ÑŽ верÑією Chrome.</translation>
<translation id="5193136243808726294">Ðеможливо відкрити цю Ñторінку в ОС Google Chrome.</translation>
-<translation id="5204098752394657250"><ph name="TERMS_OF_SERVICE_LINK" />Загальні Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð° умови<ph name="END_TERMS_OF_SERVICE_LINK" /> Google Chrome</translation>
+<translation id="5204098752394657250"><ph name="TERMS_OF_SERVICE_LINK" />Умови викориÑтаннÑ<ph name="END_TERMS_OF_SERVICE_LINK" /> Google Chrome</translation>
<translation id="5243785881901838525">Google Payments (Ñкопійовано в Chrome)</translation>
<translation id="5251420635869119124">ГоÑÑ‚Ñ– можуть анонімно кориÑтуватиÑÑ Chrome.</translation>
<translation id="5253588388888612165">Якщо ви кориÑтуєтеÑÑ Ñ†Ð¸Ð¼ комп’ютером Ñпільно з кориÑтувачем <ph name="PROFILE_NAME" />, додайте Ñебе в Chrome, щоб переглÑдати веб-Ñайти окремо. Також можна від’єднати обліковий Ð·Ð°Ð¿Ð¸Ñ Google цього кориÑтувача.</translation>
@@ -202,7 +202,7 @@
<translation id="6885412569789873916">Бета-верÑÑ–Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÑ–Ð² Chrome</translation>
<translation id="6967962315388095737">Вхідне правило Ð´Ð»Ñ Ð±ÐµÑ‚Ð°-верÑÑ–Ñ— Google Chrome дозволÑÑ” трафік mDNS.</translation>
<translation id="6970811910055250180">ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ñтрою...</translation>
-<translation id="6982337800632491844">Перш ніж викориÑтовувати цей приÑтрій, потрібно прочитати й прийнÑти наведені нижче Загальні Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð° умови Ð´Ð»Ñ <ph name="DOMAIN" />. Ці умови не розширюють, не змінюють Ñ– не обмежують Умови викориÑÑ‚Ð°Ð½Ð½Ñ ÐžÐ¡ Google Chrome.</translation>
+<translation id="6982337800632491844">Перш ніж викориÑтовувати цей приÑтрій, потрібно прочитати й прийнÑти наведені нижче Умови викориÑÑ‚Ð°Ð½Ð½Ñ Ñайту <ph name="DOMAIN" />. Ці умови не розширюють, не змінюють Ñ– не обмежують Умови викориÑÑ‚Ð°Ð½Ð½Ñ ÐžÐ¡ Google Chrome.</translation>
<translation id="6989339256997917931">Google Chrome оновлено, проте ви не кориÑтувалиÑÑ Ñ†Ð¸Ð¼ веб-переглÑдачем щонайменше 30 днів.</translation>
<translation id="7098166902387133879">Google Chrome викориÑтовує ваш мікрофон.</translation>
<translation id="7106741999175697885">ДиÑпетчер завдань - Google Chrome</translation>
diff --git a/chromium/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc b/chromium/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc
index b324f2171dc..7e26990ca4b 100644
--- a/chromium/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc
+++ b/chromium/chrome/browser/extensions/api/certificate_provider/certificate_provider_api.cc
@@ -124,8 +124,12 @@ bool CertificateProviderInternalReportCertificatesFunction::
return false;
}
- out_info->certificate =
- net::X509Certificate::CreateFromBytes(cert_der.data(), cert_der.size());
+ // Allow UTF-8 inside PrintableStrings in client certificates. See
+ // crbug.com/770323 and crbug.com/788655.
+ net::X509Certificate::UnsafeCreateOptions options;
+ options.printable_string_is_utf8 = true;
+ out_info->certificate = net::X509Certificate::CreateFromBytesUnsafeOptions(
+ cert_der.data(), cert_der.size(), options);
if (!out_info->certificate) {
WriteToConsole(content::CONSOLE_MESSAGE_LEVEL_ERROR, kErrorInvalidX509Cert);
return false;
diff --git a/chromium/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc b/chromium/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc
index 3a0a01ad53a..d20974aad2d 100644
--- a/chromium/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc
+++ b/chromium/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.cc
@@ -142,8 +142,13 @@ EnterprisePlatformKeysImportCertificateFunction::Run() {
return RespondNow(Error(platform_keys::kErrorInvalidToken));
const std::vector<char>& cert_der = params->certificate;
+ // Allow UTF-8 inside PrintableStrings in client certificates. See
+ // crbug.com/770323 and crbug.com/788655.
+ net::X509Certificate::UnsafeCreateOptions options;
+ options.printable_string_is_utf8 = true;
scoped_refptr<net::X509Certificate> cert_x509 =
- net::X509Certificate::CreateFromBytes(cert_der.data(), cert_der.size());
+ net::X509Certificate::CreateFromBytesUnsafeOptions(
+ cert_der.data(), cert_der.size(), options);
if (!cert_x509.get())
return RespondNow(Error(kErrorInvalidX509Cert));
@@ -180,8 +185,13 @@ EnterprisePlatformKeysRemoveCertificateFunction::Run() {
return RespondNow(Error(platform_keys::kErrorInvalidToken));
const std::vector<char>& cert_der = params->certificate;
+ // Allow UTF-8 inside PrintableStrings in client certificates. See
+ // crbug.com/770323 and crbug.com/788655.
+ net::X509Certificate::UnsafeCreateOptions options;
+ options.printable_string_is_utf8 = true;
scoped_refptr<net::X509Certificate> cert_x509 =
- net::X509Certificate::CreateFromBytes(cert_der.data(), cert_der.size());
+ net::X509Certificate::CreateFromBytesUnsafeOptions(
+ cert_der.data(), cert_der.size(), options);
if (!cert_x509.get())
return RespondNow(Error(kErrorInvalidX509Cert));
diff --git a/chromium/chrome/browser/extensions/api/platform_keys/platform_keys_api.cc b/chromium/chrome/browser/extensions/api/platform_keys/platform_keys_api.cc
index 4372d80fa7b..7fd7ef4dced 100644
--- a/chromium/chrome/browser/extensions/api/platform_keys/platform_keys_api.cc
+++ b/chromium/chrome/browser/extensions/api/platform_keys/platform_keys_api.cc
@@ -131,8 +131,13 @@ PlatformKeysInternalGetPublicKeyFunction::Run() {
const std::vector<char>& cert_der = params->certificate;
if (cert_der.empty())
return RespondNow(Error(platform_keys::kErrorInvalidX509Cert));
+ // Allow UTF-8 inside PrintableStrings in client certificates. See
+ // crbug.com/770323 and crbug.com/788655.
+ net::X509Certificate::UnsafeCreateOptions options;
+ options.printable_string_is_utf8 = true;
scoped_refptr<net::X509Certificate> cert_x509 =
- net::X509Certificate::CreateFromBytes(cert_der.data(), cert_der.size());
+ net::X509Certificate::CreateFromBytesUnsafeOptions(
+ cert_der.data(), cert_der.size(), options);
if (!cert_x509)
return RespondNow(Error(platform_keys::kErrorInvalidX509Cert));
@@ -206,9 +211,13 @@ PlatformKeysInternalSelectClientCertificatesFunction::Run() {
*params->details.client_certs) {
if (client_cert_der.empty())
return RespondNow(Error(platform_keys::kErrorInvalidX509Cert));
+ // Allow UTF-8 inside PrintableStrings in client certificates. See
+ // crbug.com/770323 and crbug.com/788655.
+ net::X509Certificate::UnsafeCreateOptions options;
+ options.printable_string_is_utf8 = true;
scoped_refptr<net::X509Certificate> client_cert_x509 =
- net::X509Certificate::CreateFromBytes(client_cert_der.data(),
- client_cert_der.size());
+ net::X509Certificate::CreateFromBytesUnsafeOptions(
+ client_cert_der.data(), client_cert_der.size(), options);
if (!client_cert_x509)
return RespondNow(Error(platform_keys::kErrorInvalidX509Cert));
client_certs->push_back(client_cert_x509);
diff --git a/chromium/chrome/browser/resources/gaia_auth_host/authenticator.js b/chromium/chrome/browser/resources/gaia_auth_host/authenticator.js
index 4d1bc38391f..fa1e41103f4 100644
--- a/chromium/chrome/browser/resources/gaia_auth_host/authenticator.js
+++ b/chromium/chrome/browser/resources/gaia_auth_host/authenticator.js
@@ -91,6 +91,9 @@ cr.define('cr.login', function() {
'menuGuestMode', // Enables "Guest mode" menu item
'menuKeyboardOptions', // Enables "Keyboard options" menu item
'menuEnterpriseEnrollment', // Enables "Enterprise enrollment" menu item.
+ 'lsbReleaseBoard', // Chrome OS Release board name
+ 'isFirstUser', // True if this is non-enterprise device,
+ // and there are no users yet.
// The email fields allow for the following possibilities:
//
@@ -328,6 +331,11 @@ cr.define('cr.login', function() {
mi += 'ee,';
if (mi.length)
url = appendParam(url, 'mi', mi);
+
+ if (data.lsbReleaseBoard)
+ url = appendParam(url, 'chromeos_board', data.lsbReleaseBoard);
+ if (data.isFirstUser)
+ url = appendParam(url, 'is_first_user', true);
}
} else {
url = appendParam(url, 'continue', this.continueUrl_);
@@ -428,8 +436,10 @@ cr.define('cr.login', function() {
* @private
*/
Authenticator.prototype.onFocus_ = function(e) {
- if (this.authMode == AuthMode.DESKTOP)
+ if (this.authMode == AuthMode.DESKTOP &&
+ document.activeElement == document.body) {
this.webview_.focus();
+ }
};
/**
diff --git a/chromium/chrome/browser/resources/plugin_metadata/plugins_linux.json b/chromium/chrome/browser/resources/plugin_metadata/plugins_linux.json
index ebd071c247c..99b6cf673f3 100644
--- a/chromium/chrome/browser/resources/plugin_metadata/plugins_linux.json
+++ b/chromium/chrome/browser/resources/plugin_metadata/plugins_linux.json
@@ -1,5 +1,5 @@
{
- "x-version": 24,
+ "x-version": 26,
"google-talk": {
"mime_types": [
],
@@ -80,9 +80,9 @@
],
"versions": [
{
- "version": "26.0.0.126",
+ "version": "27.0.0.187",
"status": "up_to_date",
- "reference": "https://helpx.adobe.com/security/products/flash-player/apsb17-17.html"
+ "reference": "https://helpx.adobe.com/security/products/flash-player/apsb17-33.html"
}
],
"lang": "en-US",
diff --git a/chromium/chrome/browser/resources/plugin_metadata/plugins_mac.json b/chromium/chrome/browser/resources/plugin_metadata/plugins_mac.json
index efd1b4f3612..a85342825f9 100644
--- a/chromium/chrome/browser/resources/plugin_metadata/plugins_mac.json
+++ b/chromium/chrome/browser/resources/plugin_metadata/plugins_mac.json
@@ -1,5 +1,5 @@
{
- "x-version": 30,
+ "x-version": 32,
"google-talk": {
"mime_types": [
],
@@ -115,9 +115,9 @@
],
"versions": [
{
- "version": "26.0.0.126",
+ "version": "27.0.0.187",
"status": "requires_authorization",
- "reference": "https://helpx.adobe.com/security/products/flash-player/apsb17-17.html"
+ "reference": "https://helpx.adobe.com/security/products/flash-player/apsb17-33.html"
}
],
"lang": "en-US",
diff --git a/chromium/chrome/browser/resources/plugin_metadata/plugins_win.json b/chromium/chrome/browser/resources/plugin_metadata/plugins_win.json
index 00786d2f197..c5b325b08c2 100644
--- a/chromium/chrome/browser/resources/plugin_metadata/plugins_win.json
+++ b/chromium/chrome/browser/resources/plugin_metadata/plugins_win.json
@@ -1,5 +1,5 @@
{
- "x-version": 39,
+ "x-version": 41,
"google-talk": {
"mime_types": [
],
@@ -137,9 +137,9 @@
],
"versions": [
{
- "version": "26.0.0.126",
+ "version": "27.0.0.187",
"status": "requires_authorization",
- "reference": "https://helpx.adobe.com/security/products/flash-player/apsb17-17.html"
+ "reference": "https://helpx.adobe.com/security/products/flash-player/apsb17-33.html"
}
],
"lang": "en-US",
diff --git a/chromium/chrome/browser/resources/settings/device_page/display.html b/chromium/chrome/browser/resources/settings/device_page/display.html
index 73d02acd988..0602de00131 100644
--- a/chromium/chrome/browser/resources/settings/device_page/display.html
+++ b/chromium/chrome/browser/resources/settings/device_page/display.html
@@ -145,7 +145,7 @@
[[getResolutionText_(selectedDisplay, selectedModePref_.value)]]
</div>
</div>
- <settings-slider disabled="[[selectedDisplay.isTabletMode]]"
+ <settings-slider disabled="[[!enableSetResolution_(selectedDisplay)]]"
tick-values="[[modeValues_]]" pref="{{selectedModePref_}}"
on-change="onSelectedModeChange_">
</settings-slider>
diff --git a/chromium/chrome/browser/resources/settings/people_page/change_picture.js b/chromium/chrome/browser/resources/settings/people_page/change_picture.js
index b610c1d4ac2..702225517b3 100644
--- a/chromium/chrome/browser/resources/settings/people_page/change_picture.js
+++ b/chromium/chrome/browser/resources/settings/people_page/change_picture.js
@@ -58,6 +58,7 @@ Polymer({
listeners: {
'discard-image': 'onDiscardImage_',
'image-activate': 'onImageActivate_',
+ 'focus-action': 'onFocusAction_',
'photo-taken': 'onPhotoTaken_',
'switch-mode': 'onSwitchMode_',
},
@@ -193,6 +194,11 @@ Polymer({
this.selectImage_(event.detail);
},
+ /** Focus the action button in the picture pane. */
+ onFocusAction_: function() {
+ /** CrPicturePaneElement */ (this.$.picturePane).focusActionButton();
+ },
+
/**
* @param {!{detail: !{photoDataUrl: string}}} event
* @private
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc b/chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc
index 712663b8457..365c68203b1 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.cc
@@ -12,6 +12,7 @@
#include "base/metrics/histogram_macros.h"
#include "base/stl_util.h"
#include "base/strings/utf_string_conversions.h"
+#include "base/sys_info.h"
#include "base/task_scheduler/post_task.h"
#include "base/values.h"
#include "chrome/browser/browser_process.h"
@@ -35,6 +36,7 @@
#include "chrome/common/chrome_features.h"
#include "chrome/common/pref_names.h"
#include "chrome/grit/generated_resources.h"
+#include "chrome/installer/util/google_update_settings.h"
#include "chromeos/chromeos_switches.h"
#include "chromeos/login/auth/authpolicy_login_helper.h"
#include "chromeos/login/auth/user_context.h"
@@ -212,6 +214,11 @@ bool IsOnline(NetworkPortalDetector::CaptivePortalStatus status) {
return status == NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE;
}
+void GetVersionAndConsent(std::string* out_version, bool* out_consent) {
+ *out_version = version_loader::GetVersion(version_loader::VERSION_SHORT);
+ *out_consent = GoogleUpdateSettings::GetCollectStatsConsent();
+}
+
} // namespace
// A class that's used to specify the way how Gaia should be loaded.
@@ -289,16 +296,24 @@ void GaiaScreenHandler::DisableRestrictiveProxyCheckForTest() {
}
void GaiaScreenHandler::LoadGaia(const GaiaContext& context) {
- base::PostTaskWithTraitsAndReplyWithResult(
- FROM_HERE, {base::MayBlock(), base::TaskPriority::BACKGROUND},
- base::Bind(&version_loader::GetVersion, version_loader::VERSION_SHORT),
- base::Bind(&GaiaScreenHandler::LoadGaiaWithVersion,
- weak_factory_.GetWeakPtr(), context));
-}
-
-void GaiaScreenHandler::LoadGaiaWithVersion(
+ std::unique_ptr<std::string> version = std::make_unique<std::string>();
+ std::unique_ptr<bool> consent = std::make_unique<bool>();
+ base::OnceClosure get_version_and_consent =
+ base::BindOnce(&GetVersionAndConsent, base::Unretained(version.get()),
+ base::Unretained(consent.get()));
+ base::OnceClosure load_gaia = base::BindOnce(
+ &GaiaScreenHandler::LoadGaiaWithVersionAndConsent,
+ weak_factory_.GetWeakPtr(), context, base::Owned(version.release()),
+ base::Owned(consent.release()));
+ base::PostTaskWithTraitsAndReply(
+ FROM_HERE, {base::MayBlock(), base::TaskPriority::USER_VISIBLE},
+ std::move(get_version_and_consent), std::move(load_gaia));
+}
+
+void GaiaScreenHandler::LoadGaiaWithVersionAndConsent(
const GaiaContext& context,
- const std::string& platform_version) {
+ const std::string* platform_version,
+ const bool* collect_stats_consent) {
base::DictionaryValue params;
params.SetBoolean("forceReload", context.force_reload);
@@ -348,8 +363,8 @@ void GaiaScreenHandler::LoadGaiaWithVersion(
params.SetString("clientId",
GaiaUrls::GetInstance()->oauth2_chrome_client_id());
params.SetString("clientVersion", version_info::GetVersionNumber());
- if (!platform_version.empty())
- params.SetString("platformVersion", platform_version);
+ if (!platform_version->empty())
+ params.SetString("platformVersion", *platform_version);
params.SetString("releaseChannel", chrome::GetChannelString());
params.SetString("endpointGen", kEndpointGen);
@@ -370,6 +385,10 @@ void GaiaScreenHandler::LoadGaiaWithVersion(
// (see https://crbug.com/709244 ).
params.SetString("chromeOSApiVersion", "2");
}
+ // We only send |chromeos_board| Gaia URL parameter if user has opted into
+ // sending device statistics.
+ if (*collect_stats_consent)
+ params.SetString("lsbReleaseBoard", base::SysInfo::GetLsbReleaseBoard());
frame_state_ = FRAME_STATE_LOADING;
CallJS("loadAuthExtension", params);
diff --git a/chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h b/chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h
index 2cda506da93..5ef51ba2f57 100644
--- a/chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h
+++ b/chromium/chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h
@@ -58,9 +58,11 @@ class GaiaScreenHandler : public BaseScreenHandler,
void LoadGaia(const GaiaContext& context);
- // Callback that loads GAIA after version information has been retrieved.
- void LoadGaiaWithVersion(const GaiaContext& context,
- const std::string& platform_version);
+ // Callback that loads GAIA after version and stat consent information has
+ // been retrieved.
+ void LoadGaiaWithVersionAndConsent(const GaiaContext& context,
+ const std::string* platform_version,
+ const bool* collect_stats_consent);
// Sends request to reload Gaia. If |force_reload| is true, request
// will be sent in any case, otherwise it will be sent only when Gaia is
diff --git a/chromium/chrome/common/extensions/api/_permission_features.json b/chromium/chrome/common/extensions/api/_permission_features.json
index 0c31592de0e..5dfafe651f4 100644
--- a/chromium/chrome/common/extensions/api/_permission_features.json
+++ b/chromium/chrome/common/extensions/api/_permission_features.json
@@ -138,7 +138,8 @@
"2B6C6A4A5940017146F3E58B7F90116206E84685", // http://crbug.com/642141
"B6C2EFAB3EC3BF6EF03701408B6B09A67B2D0069", // http://crbug.com/642141
"96FF2FFA5C9173C76D47184B3E86D267B37781DE", // http://crbug.com/642141
- "0136FCB13DB29FD5CD442F56E59E53B61F1DF96F" // http://crbug.com/642141
+ "0136FCB13DB29FD5CD442F56E59E53B61F1DF96F", // http://crbug.com/642141
+ "930F7D9989A5FBCDCCD7D85BB5C3B7006C24D91D" // http://crbug.com/782139
]
},
"clipboardRead": {
diff --git a/chromium/chrome/test/BUILD.gn b/chromium/chrome/test/BUILD.gn
index a02e1dc6379..1c77c910a5d 100644
--- a/chromium/chrome/test/BUILD.gn
+++ b/chromium/chrome/test/BUILD.gn
@@ -1090,6 +1090,7 @@ test("browser_tests") {
"../browser/apps/service_worker_browsertest.cc",
"../browser/autocomplete/autocomplete_browsertest.cc",
"../browser/autofill/autofill_browsertest.cc",
+ "../browser/autofill/autofill_metrics_browsertest.cc",
"../browser/autofill/autofill_server_browsertest.cc",
"../browser/autofill/content_autofill_driver_browsertest.cc",
"../browser/autofill/form_structure_browsertest.cc",
@@ -1264,6 +1265,7 @@ test("browser_tests") {
"../browser/policy/policy_network_browsertest.cc",
"../browser/policy/policy_prefs_browsertest.cc",
"../browser/policy/policy_startup_browsertest.cc",
+ "../browser/policy/site_isolation_policy_browsertest.cc",
"../browser/predictors/loading_test_util.cc",
"../browser/predictors/loading_test_util.h",
"../browser/predictors/resource_prefetch_predictor_browsertest.cc",
diff --git a/chromium/components/autofill/content/common/autofill_param_traits_macros.h b/chromium/components/autofill/content/common/autofill_param_traits_macros.h
index e738b99bdaa..76bd83dc37f 100644
--- a/chromium/components/autofill/content/common/autofill_param_traits_macros.h
+++ b/chromium/components/autofill/content/common/autofill_param_traits_macros.h
@@ -50,6 +50,7 @@ IPC_STRUCT_TRAITS_BEGIN(autofill::FormData)
IPC_STRUCT_TRAITS_MEMBER(name)
IPC_STRUCT_TRAITS_MEMBER(origin)
IPC_STRUCT_TRAITS_MEMBER(action)
+ IPC_STRUCT_TRAITS_MEMBER(main_frame_origin)
IPC_STRUCT_TRAITS_MEMBER(is_form_tag)
IPC_STRUCT_TRAITS_MEMBER(is_formless_checkout)
IPC_STRUCT_TRAITS_MEMBER(fields)
diff --git a/chromium/components/autofill/content/common/autofill_types.mojom b/chromium/components/autofill/content/common/autofill_types.mojom
index f37fb144071..b798c695d10 100644
--- a/chromium/components/autofill/content/common/autofill_types.mojom
+++ b/chromium/components/autofill/content/common/autofill_types.mojom
@@ -104,6 +104,7 @@ struct FormData {
string name;
url.mojom.Url origin;
url.mojom.Url action;
+ url.mojom.Url main_frame_origin;
bool is_form_tag;
bool is_formless_checkout;
array<FormFieldData> fields;
diff --git a/chromium/components/autofill/content/common/autofill_types_struct_traits.cc b/chromium/components/autofill/content/common/autofill_types_struct_traits.cc
index 8b016138358..0e88facc0ab 100644
--- a/chromium/components/autofill/content/common/autofill_types_struct_traits.cc
+++ b/chromium/components/autofill/content/common/autofill_types_struct_traits.cc
@@ -476,6 +476,8 @@ bool StructTraits<autofill::mojom::FormDataDataView, autofill::FormData>::Read(
return false;
if (!data.ReadAction(&out->action))
return false;
+ if (!data.ReadMainFrameOrigin(&out->main_frame_origin))
+ return false;
out->is_form_tag = data.is_form_tag();
out->is_formless_checkout = data.is_formless_checkout();
diff --git a/chromium/components/autofill/content/common/autofill_types_struct_traits.h b/chromium/components/autofill/content/common/autofill_types_struct_traits.h
index f1102ba9a37..8d3b9bc9e19 100644
--- a/chromium/components/autofill/content/common/autofill_types_struct_traits.h
+++ b/chromium/components/autofill/content/common/autofill_types_struct_traits.h
@@ -191,6 +191,10 @@ struct StructTraits<autofill::mojom::FormDataDataView, autofill::FormData> {
static const GURL& action(const autofill::FormData& r) { return r.action; }
+ static const GURL& main_frame_origin(const autofill::FormData& r) {
+ return r.main_frame_origin;
+ }
+
static bool is_form_tag(const autofill::FormData& r) { return r.is_form_tag; }
static bool is_formless_checkout(const autofill::FormData& r) {
diff --git a/chromium/components/autofill/content/renderer/form_autofill_util.cc b/chromium/components/autofill/content/renderer/form_autofill_util.cc
index 31d27cbfeb5..a832d801838 100644
--- a/chromium/components/autofill/content/renderer/form_autofill_util.cc
+++ b/chromium/components/autofill/content/renderer/form_autofill_util.cc
@@ -1145,6 +1145,11 @@ bool UnownedFormElementsAndFieldSetsToFormData(
FormData* form,
FormFieldData* field) {
form->origin = GetCanonicalOriginForDocument(document);
+ DCHECK(document.GetFrame()->Top());
+ url::Origin main_frame_origin =
+ document.GetFrame()->Top()->GetSecurityOrigin();
+ form->main_frame_origin = main_frame_origin.GetURL();
+
form->is_form_tag = false;
return FormOrFieldsetsToFormData(
@@ -1463,14 +1468,16 @@ bool WebFormElementToFormData(
ExtractMask extract_mask,
FormData* form,
FormFieldData* field) {
- const WebLocalFrame* frame = form_element.GetDocument().GetFrame();
+ WebLocalFrame* frame = form_element.GetDocument().GetFrame();
if (!frame)
return false;
form->name = GetFormIdentifier(form_element);
form->origin = GetCanonicalOriginForDocument(frame->GetDocument());
form->action = frame->GetDocument().CompleteURL(form_element.Action());
-
+ DCHECK(frame->Top());
+ url::Origin main_frame_origin = frame->Top()->GetSecurityOrigin();
+ form->main_frame_origin = main_frame_origin.GetURL();
// If the completed URL is not valid, just use the action we get from
// WebKit.
if (!form->action.is_valid())
diff --git a/chromium/components/autofill/core/browser/autofill_manager.cc b/chromium/components/autofill/core/browser/autofill_manager.cc
index 01583656d21..50d4ecb114c 100644
--- a/chromium/components/autofill/core/browser/autofill_manager.cc
+++ b/chromium/components/autofill/core/browser/autofill_manager.cc
@@ -20,6 +20,7 @@
#include "base/feature_list.h"
#include "base/files/file_util.h"
#include "base/guid.h"
+#include "base/i18n/rtl.h"
#include "base/logging.h"
#include "base/memory/ptr_util.h"
#include "base/message_loop/message_loop.h"
@@ -114,7 +115,12 @@ bool SectionIsAutofilled(const FormStructure& form_structure,
// characters removed.
base::string16 SanitizeCreditCardFieldValue(const base::string16& value) {
base::string16 sanitized;
+ // We remove whitespace as well as some invisible unicode characters.
base::TrimWhitespace(value, base::TRIM_ALL, &sanitized);
+ base::TrimString(sanitized,
+ base::string16({base::i18n::kRightToLeftMark,
+ base::i18n::kLeftToRightMark}),
+ &sanitized);
// Some sites have ____-____-____-____ in their credit card number fields, for
// example.
base::ReplaceChars(sanitized, base::ASCIIToUTF16("-_"),
@@ -2068,7 +2074,7 @@ void AutofillManager::ParseForms(const std::vector<FormData>& forms) {
return;
// Setup the url for metrics that we will collect for this form.
- form_interactions_ukm_logger_->OnFormsParsed(forms[0].origin);
+ form_interactions_ukm_logger_->OnFormsParsed(forms[0].main_frame_origin);
std::vector<FormStructure*> non_queryable_forms;
std::vector<FormStructure*> queryable_forms;
diff --git a/chromium/components/autofill/core/browser/autofill_manager_unittest.cc b/chromium/components/autofill/core/browser/autofill_manager_unittest.cc
index 74d41a7f88f..1fdfdee5ba1 100644
--- a/chromium/components/autofill/core/browser/autofill_manager_unittest.cc
+++ b/chromium/components/autofill/core/browser/autofill_manager_unittest.cc
@@ -95,6 +95,12 @@ const char kUTF8MidlineEllipsis[] =
const base::Time kArbitraryTime = base::Time::FromDoubleT(25);
const base::Time kMuchLaterTime = base::Time::FromDoubleT(5000);
+const std::string NextYear() {
+ base::Time::Exploded now;
+ base::Time::Now().LocalExplode(&now);
+ return std::to_string(now.year + 1);
+}
+
class MockAutofillClient : public TestAutofillClient {
public:
MockAutofillClient() {}
@@ -982,9 +988,11 @@ class AutofillManagerTest : public testing::Test {
if (is_https) {
form->origin = GURL("https://myform.com/form.html");
form->action = GURL("https://myform.com/submit.html");
+ form->main_frame_origin = GURL("https://myform_root.com/form.html");
} else {
form->origin = GURL("http://myform.com/form.html");
form->action = GURL("http://myform.com/submit.html");
+ form->main_frame_origin = GURL("http://myform_root.com/form.html");
}
FormFieldData field;
@@ -1042,7 +1050,7 @@ class AutofillManagerTest : public testing::Test {
// Edit the data, and submit.
form.fields[1].value = ASCIIToUTF16("4111111111111111");
form.fields[2].value = ASCIIToUTF16("11");
- form.fields[3].value = ASCIIToUTF16("2017");
+ form.fields[3].value = ASCIIToUTF16(NextYear());
EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _));
FormSubmitted(form);
}
@@ -1057,7 +1065,7 @@ class AutofillManagerTest : public testing::Test {
FormsSeen(std::vector<FormData>(1, *form));
*card = CreditCard(CreditCard::MASKED_SERVER_CARD, "a123");
test::SetCreditCardInfo(card, "John Dillinger", "1881" /* Visa */, "01",
- "2017", "1");
+ NextYear().c_str(), "1");
card->SetNetworkForMaskedCard(kVisaCard);
EXPECT_CALL(*autofill_driver_, SendFormDataToRenderer(_, _, _))
@@ -1719,13 +1727,36 @@ TEST_F(AutofillManagerTest, GetCreditCardSuggestions_StopCharsOnly) {
}
// Test that we return all credit card profile suggestions when the triggering
+// field has some invisible unicode characters in it.
+TEST_F(AutofillManagerTest, GetCreditCardSuggestions_InvisibleUnicodeOnly) {
+ // Set up our form data.
+ FormData form;
+ CreateTestCreditCardFormData(&form, true, false);
+ std::vector<FormData> forms(1, form);
+ FormsSeen(forms);
+
+ FormFieldData field = form.fields[1];
+ field.value = base::string16({0x200E, 0x200F});
+ GetAutofillSuggestions(form, field);
+
+ // Test that we sent the right values to the external delegate.
+ external_delegate_->CheckSuggestions(
+ kDefaultPageID,
+ Suggestion(std::string("Visa") + kUTF8MidlineEllipsis + "3456", "04/99",
+ kVisaCard, autofill_manager_->GetPackedCreditCardID(4)),
+ Suggestion(std::string("Mastercard") + kUTF8MidlineEllipsis + "8765",
+ "10/98", kMasterCard,
+ autofill_manager_->GetPackedCreditCardID(5)));
+}
+
+// Test that we return all credit card profile suggestions when the triggering
// field has stop characters in it and some input.
TEST_F(AutofillManagerTest, GetCreditCardSuggestions_StopCharsWithInput) {
// Add a credit card with particular numbers that we will attempt to recall.
CreditCard credit_card;
test::SetCreditCardInfo(&credit_card, "John Smith",
"5255667890123123", // Mastercard
- "08", "2017", "1");
+ "08", NextYear().c_str(), "1");
credit_card.set_guid("00000000-0000-0000-0000-000000000007");
autofill_manager_->AddCreditCard(credit_card);
@@ -1740,11 +1771,13 @@ TEST_F(AutofillManagerTest, GetCreditCardSuggestions_StopCharsWithInput) {
field.value = ASCIIToUTF16("5255-66__-____-____");
GetAutofillSuggestions(form, field);
+ std::string expected_date = "08/" + NextYear().substr(2, 2);
+
// Test that we sent the right value to the external delegate.
external_delegate_->CheckSuggestions(
kDefaultPageID,
Suggestion(std::string("Mastercard") + kUTF8MidlineEllipsis + "3123",
- "08/17", kMasterCard,
+ expected_date, kMasterCard,
autofill_manager_->GetPackedCreditCardID(7)));
}
@@ -4014,7 +4047,7 @@ TEST_F(AutofillManagerTest, MAYBE_CreditCardSavedWhenAutocompleteOff) {
// Edit the data, and submit.
form.fields[1].value = ASCIIToUTF16("4111111111111111");
form.fields[2].value = ASCIIToUTF16("11");
- form.fields[3].value = ASCIIToUTF16("2017");
+ form.fields[3].value = ASCIIToUTF16(NextYear());
EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _));
FormSubmitted(form);
}
@@ -4033,7 +4066,7 @@ TEST_F(AutofillManagerTest, InvalidCreditCardNumberIsNotSaved) {
ASSERT_FALSE(autofill::IsValidCreditCardNumber(ASCIIToUTF16(card)));
form.fields[1].value = ASCIIToUTF16(card);
form.fields[2].value = ASCIIToUTF16("11");
- form.fields[3].value = ASCIIToUTF16("2017");
+ form.fields[3].value = ASCIIToUTF16(NextYear());
EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0);
FormSubmitted(form);
}
@@ -4762,7 +4795,7 @@ TEST_F(AutofillManagerTest, DontOfferToSavePaymentsCard) {
else if (form.fields[i].name == ASCIIToUTF16("ccmonth"))
form.fields[i].value = ASCIIToUTF16("01");
else if (form.fields[i].name == ASCIIToUTF16("ccyear"))
- form.fields[i].value = ASCIIToUTF16("2017");
+ form.fields[i].value = ASCIIToUTF16(NextYear());
}
CardUnmaskDelegate::UnmaskResponse response;
@@ -4810,7 +4843,7 @@ TEST_F(AutofillManagerTest, CreditCardDisabledDoesNotSave) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -4886,7 +4919,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -4937,7 +4970,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_RequestCVCEnabled_DoesNotTrigger) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
EXPECT_CALL(autofill_client_, ConfirmSaveCreditCardLocally(_, _)).Times(0);
@@ -4974,7 +5007,7 @@ TEST_F(AutofillManagerTest, UploadCreditCardAndSaveCopy) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16(card_number);
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
FormSubmitted(credit_card_form);
@@ -5019,7 +5052,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_FeatureNotEnabled) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -5057,7 +5090,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_CvcUnavailable) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16(""); // CVC MISSING
base::HistogramTester histogram_tester;
@@ -5095,7 +5128,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_CvcInvalidLength) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("1234");
base::HistogramTester histogram_tester;
@@ -5133,6 +5166,8 @@ TEST_F(AutofillManagerTest, UploadCreditCard_MultipleCvcFields) {
credit_card_form.name = ASCIIToUTF16("MyForm");
credit_card_form.origin = GURL("https://myform.com/form.html");
credit_card_form.action = GURL("https://myform.com/submit.html");
+ credit_card_form.main_frame_origin =
+ GURL("https://myform_root.com/form.html");
FormFieldData field;
test::CreateTestFormField("Card Name", "cardname", "", "text", &field);
@@ -5154,7 +5189,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_MultipleCvcFields) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16(""); // CVC MISSING
credit_card_form.fields[5].value = ASCIIToUTF16("123");
@@ -5193,6 +5228,8 @@ TEST_F(AutofillManagerTest, UploadCreditCard_NoCvcFieldOnForm) {
credit_card_form.name = ASCIIToUTF16("MyForm");
credit_card_form.origin = GURL("https://myform.com/form.html");
credit_card_form.action = GURL("https://myform.com/submit.html");
+ credit_card_form.main_frame_origin =
+ GURL("https://myform_root.com/form.html");
FormFieldData field;
test::CreateTestFormField("Card Name", "cardname", "", "text", &field);
@@ -5210,7 +5247,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_NoCvcFieldOnForm) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
base::HistogramTester histogram_tester;
@@ -5248,6 +5285,8 @@ TEST_F(AutofillManagerTest,
credit_card_form.name = ASCIIToUTF16("MyForm");
credit_card_form.origin = GURL("https://myform.com/form.html");
credit_card_form.action = GURL("https://myform.com/submit.html");
+ credit_card_form.main_frame_origin =
+ GURL("https://myform_root.com/form.html");
FormFieldData field;
test::CreateTestFormField("Card Name", "cardname", "", "text", &field);
@@ -5267,7 +5306,7 @@ TEST_F(AutofillManagerTest,
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("1234");
base::HistogramTester histogram_tester;
@@ -5306,6 +5345,8 @@ TEST_F(AutofillManagerTest,
credit_card_form.name = ASCIIToUTF16("MyForm");
credit_card_form.origin = GURL("https://myform.com/form.html");
credit_card_form.action = GURL("https://myform.com/submit.html");
+ credit_card_form.main_frame_origin =
+ GURL("https://myform_root.com/form.html");
FormFieldData field;
test::CreateTestFormField("Card Name", "cardname", "", "text", &field);
@@ -5325,7 +5366,7 @@ TEST_F(AutofillManagerTest,
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -5366,6 +5407,8 @@ TEST_F(AutofillManagerTest,
credit_card_form.name = ASCIIToUTF16("MyForm");
credit_card_form.origin = GURL("https://myform.com/form.html");
credit_card_form.action = GURL("https://myform.com/submit.html");
+ credit_card_form.main_frame_origin =
+ GURL("https://myform_root.com/form.html");
FormFieldData field;
test::CreateTestFormField("Card Name", "cardname", "", "text", &field);
@@ -5385,7 +5428,7 @@ TEST_F(AutofillManagerTest,
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -5433,6 +5476,8 @@ TEST_F(AutofillManagerTest,
credit_card_form.name = ASCIIToUTF16("MyForm");
credit_card_form.origin = GURL("https://myform.com/form.html");
credit_card_form.action = GURL("https://myform.com/submit.html");
+ credit_card_form.main_frame_origin =
+ GURL("https://myform_root.com/form.html");
FormFieldData field;
test::CreateTestFormField("Card Name", "cardname", "", "text", &field);
@@ -5450,7 +5495,7 @@ TEST_F(AutofillManagerTest,
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
base::HistogramTester histogram_tester;
@@ -5494,6 +5539,8 @@ TEST_F(AutofillManagerTest, UploadCreditCard_NoCvcFieldOnFormExperimentOff) {
credit_card_form.name = ASCIIToUTF16("MyForm");
credit_card_form.origin = GURL("https://myform.com/form.html");
credit_card_form.action = GURL("https://myform.com/submit.html");
+ credit_card_form.main_frame_origin =
+ GURL("https://myform_root.com/form.html");
FormFieldData field;
test::CreateTestFormField("Card Name", "cardname", "", "text", &field);
@@ -5511,7 +5558,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_NoCvcFieldOnFormExperimentOff) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
base::HistogramTester histogram_tester;
@@ -5553,7 +5600,7 @@ TEST_F(AutofillManagerTest,
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
// Confirm upload happened and the new UI flag was sent in the request.
@@ -5586,7 +5633,7 @@ TEST_F(AutofillManagerTest,
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
// Confirm upload happened and the new UI flag was not sent in the request.
@@ -5619,7 +5666,7 @@ TEST_F(AutofillManagerTest,
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
// Confirm upload happened and the show Google logo flag was sent in the
@@ -5653,7 +5700,7 @@ TEST_F(AutofillManagerTest,
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
// Confirm upload happened and the show Google logo flag was not sent in the
@@ -5680,7 +5727,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_NoProfileAvailable) {
credit_card_form.fields[0].value = ASCIIToUTF16("Bob Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -5726,7 +5773,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_NoRecentlyUsedProfile) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -5764,7 +5811,7 @@ TEST_F(AutofillManagerTest,
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16(""); // CVC MISSING
base::HistogramTester histogram_tester;
@@ -5810,7 +5857,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_NoNameAvailable) {
// Edit the data, but don't include a name, and submit.
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -5858,7 +5905,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_ZipCodesConflict) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -5902,7 +5949,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_ZipCodesDiscardWhitespace) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -5946,7 +5993,7 @@ TEST_F(AutofillManagerTest,
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -5993,7 +6040,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_ZipCodesHavePrefixMatch) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -6038,7 +6085,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_NoZipCodeAvailable) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -6083,7 +6130,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_CCFormHasMiddleInitial) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo W. Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -6131,7 +6178,7 @@ TEST_F(AutofillManagerTest,
credit_card_form.fields[0].value = ASCIIToUTF16("Flo W. Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -6176,7 +6223,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_NoMiddleInitialInCCForm) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -6220,7 +6267,7 @@ TEST_F(AutofillManagerTest,
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -6257,7 +6304,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_CCFormHasMiddleName) {
credit_card_form.fields[0].value = ASCIIToUTF16("John Quincy Adams");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -6296,7 +6343,7 @@ TEST_F(AutofillManagerTest,
credit_card_form.fields[0].value = ASCIIToUTF16("John Quincy Adams");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -6336,7 +6383,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_CCFormRemovesMiddleName) {
credit_card_form.fields[0].value = ASCIIToUTF16("John Adams");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -6377,7 +6424,7 @@ TEST_F(AutofillManagerTest,
credit_card_form.fields[0].value = ASCIIToUTF16("John Adams");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -6426,7 +6473,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_NamesHaveToMatch) {
credit_card_form.fields[0].value = ASCIIToUTF16("Bob Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -6478,7 +6525,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_IgnoreOldProfiles) {
credit_card_form.fields[0].value = ASCIIToUTF16("Master Blaster");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -6525,7 +6572,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_LogPreviousUseDate) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -6566,7 +6613,7 @@ TEST_F(AutofillManagerTest, UploadCreditCard_UploadDetailsFails) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
base::HistogramTester histogram_tester;
@@ -6603,8 +6650,8 @@ TEST_F(AutofillManagerTest, DuplicateMaskedCreditCard) {
// Add a masked credit card whose |TypeAndLastFourDigits| matches what we will
// enter below.
CreditCard credit_card(CreditCard::MASKED_SERVER_CARD, "a123");
- test::SetCreditCardInfo(&credit_card, "Flo Master", "1111", "11", "2017",
- "1");
+ test::SetCreditCardInfo(&credit_card, "Flo Master", "1111", "11",
+ NextYear().c_str(), "1");
credit_card.SetNetworkForMaskedCard(kVisaCard);
personal_data_.AddServerCreditCard(credit_card);
@@ -6617,7 +6664,7 @@ TEST_F(AutofillManagerTest, DuplicateMaskedCreditCard) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
// The local save prompt should be shown.
@@ -6642,8 +6689,8 @@ TEST_F(AutofillManagerTest, DuplicateMaskedCreditCard_ExperimentOff) {
// Add a masked credit card whose |TypeAndLastFourDigits| matches what we will
// enter below.
CreditCard credit_card(CreditCard::MASKED_SERVER_CARD, "a123");
- test::SetCreditCardInfo(&credit_card, "Flo Master", "1111", "11", "2017",
- "1");
+ test::SetCreditCardInfo(&credit_card, "Flo Master", "1111", "11",
+ NextYear().c_str(), "1");
credit_card.SetNetworkForMaskedCard(kVisaCard);
personal_data_.AddServerCreditCard(credit_card);
@@ -6656,7 +6703,7 @@ TEST_F(AutofillManagerTest, DuplicateMaskedCreditCard_ExperimentOff) {
credit_card_form.fields[0].value = ASCIIToUTF16("Flo Master");
credit_card_form.fields[1].value = ASCIIToUTF16("4111111111111111");
credit_card_form.fields[2].value = ASCIIToUTF16("11");
- credit_card_form.fields[3].value = ASCIIToUTF16("2017");
+ credit_card_form.fields[3].value = ASCIIToUTF16(NextYear());
credit_card_form.fields[4].value = ASCIIToUTF16("123");
// The local save prompt should not be shown because the experiment is off.
diff --git a/chromium/components/autofill/core/browser/autofill_metrics_unittest.cc b/chromium/components/autofill/core/browser/autofill_metrics_unittest.cc
index 9bb357a69b4..403b163f054 100644
--- a/chromium/components/autofill/core/browser/autofill_metrics_unittest.cc
+++ b/chromium/components/autofill/core/browser/autofill_metrics_unittest.cc
@@ -309,7 +309,7 @@ class TestAutofillManager : public AutofillManager {
form_structure->set_form_parsed_timestamp(TimeTicks::Now());
form_structures()->push_back(std::move(form_structure));
- form_interactions_ukm_logger()->OnFormsParsed(form.origin);
+ form_interactions_ukm_logger()->OnFormsParsed(form.main_frame_origin);
}
// Calls AutofillManager::OnWillSubmitForm and waits for it to complete.
@@ -369,7 +369,7 @@ void VerifyDeveloperEngagementUkm(
const ukm::UkmSource* source =
ukm_recorder.GetSourceForSourceId(entry->source_id);
ASSERT_NE(nullptr, source);
- EXPECT_EQ(form.origin, source->url());
+ EXPECT_EQ(form.main_frame_origin, source->url());
int expected_metric_value = 0;
for (const auto it : expected_metric_values)
@@ -406,7 +406,7 @@ void VerifyFormInteractionUkm(const ukm::TestAutoSetUkmRecorder& ukm_recorder,
const ukm::UkmSource* source =
ukm_recorder.GetSourceForSourceId(entry->source_id);
ASSERT_NE(nullptr, source);
- EXPECT_EQ(form.origin, source->url());
+ EXPECT_EQ(form.main_frame_origin, source->url());
ASSERT_LT(expected_metrics_index, expected_metrics.size());
EXPECT_THAT(
@@ -576,6 +576,7 @@ TEST_F(AutofillMetricsTest, QualityMetrics) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
std::vector<ServerFieldType> heuristic_types, server_types;
FormFieldData field;
@@ -885,6 +886,7 @@ TEST_P(QualityMetricsTest, Classification) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
std::vector<ServerFieldType> heuristic_types, server_types, actual_types;
AutofillField field;
@@ -1053,6 +1055,7 @@ TEST_F(AutofillMetricsTest, TimingMetrics) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
test::CreateTestFormField(
@@ -1092,6 +1095,7 @@ TEST_F(AutofillMetricsTest, QualityMetrics_NoSubmission) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
std::vector<ServerFieldType> heuristic_types, server_types;
FormFieldData field;
@@ -1279,6 +1283,7 @@ TEST_F(AutofillMetricsTest, QualityMetrics_BasedOnAutocomplete) {
form.name = ASCIIToUTF16("MyForm");
form.origin = GURL("http://myform.com/form.html");
form.action = GURL("http://myform.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
// Heuristic value will match with Autocomplete attribute.
@@ -1389,6 +1394,7 @@ TEST_F(AutofillMetricsTest, UpiVirtualPaymentAddress) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
std::vector<ServerFieldType> heuristic_types, server_types;
FormFieldData field;
@@ -1437,6 +1443,7 @@ TEST_F(AutofillMetricsTest, PredictedMetricsWithAutocomplete) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field1;
test::CreateTestFormField("Select", "select", "USA", "select-one", &field1);
@@ -1504,6 +1511,7 @@ TEST_F(AutofillMetricsTest, SaneMetricsWithCacheMismatch) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
std::vector<ServerFieldType> heuristic_types, server_types;
@@ -1601,6 +1609,7 @@ TEST_F(AutofillMetricsTest, StoredProfileCountAutofillableFormSubmission) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
// Three fields is enough to make it an autofillable form.
FormFieldData field;
@@ -1632,6 +1641,7 @@ TEST_F(AutofillMetricsTest, StoredProfileCountNonAutofillableFormSubmission) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
// Two fields is not enough to make it an autofillable form.
FormFieldData field;
@@ -1661,6 +1671,7 @@ TEST_F(AutofillMetricsTest, NumberOfEditedAutofilledFields) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
std::vector<ServerFieldType> heuristic_types, server_types;
@@ -1712,6 +1723,7 @@ TEST_F(AutofillMetricsTest, NumberOfEditedAutofilledFields_NoSubmission) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
std::vector<ServerFieldType> heuristic_types, server_types;
@@ -1762,6 +1774,7 @@ TEST_F(AutofillMetricsTest, DeveloperEngagement) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
test::CreateTestFormField("Name", "name", "", "text", &field);
@@ -1851,6 +1864,7 @@ TEST_F(AutofillMetricsTest,
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
test::CreateTestFormField("Name", "name", "", "text", &field);
@@ -1895,6 +1909,7 @@ TEST_F(AutofillMetricsTest,
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
test::CreateTestFormField("Name", "name", "", "text", &field);
@@ -1944,6 +1959,7 @@ TEST_F(AutofillMetricsTest, UkmDeveloperEngagement_LogUpiVpaTypeHint) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
test::CreateTestFormField("Name", "name", "", "text", &field);
@@ -2223,6 +2239,7 @@ TEST_F(AutofillMetricsTest, AddressSuggestionsCount) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -2294,6 +2311,7 @@ TEST_F(AutofillMetricsTest, CreditCardCheckoutFlowUserActions) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -2406,6 +2424,7 @@ TEST_F(AutofillMetricsTest, ProfileCheckoutFlowUserActions) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -2578,6 +2597,7 @@ TEST_F(AutofillMetricsTest, QueriedCreditCardFormIsSecure) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
autofill_client_.set_form_origin(form.origin);
FormFieldData field;
@@ -2596,6 +2616,7 @@ TEST_F(AutofillMetricsTest, QueriedCreditCardFormIsSecure) {
// Simulate having seen this insecure form on page load.
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
autofill_manager_->AddSeenForm(form, field_types, field_types);
// Simulate an Autofill query on a credit card field (HTTP, non-secure
@@ -2612,6 +2633,7 @@ TEST_F(AutofillMetricsTest, QueriedCreditCardFormIsSecure) {
autofill_manager_->Reset();
form.origin = GURL("https://example.com/form.html");
form.action = GURL("https://example.com/submit.html");
+ form.main_frame_origin = GURL("https://example_root.com/form.html");
autofill_client_.set_form_origin(form.origin);
autofill_manager_->AddSeenForm(form, field_types, field_types);
@@ -2634,6 +2656,7 @@ TEST_F(AutofillMetricsTest, PolledProfileSuggestions_DebounceLogs) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -2686,6 +2709,7 @@ TEST_F(AutofillMetricsTest, CreditCardInteractedFormEvents) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -2734,6 +2758,7 @@ TEST_F(AutofillMetricsTest, CreditCardShownFormEvents) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -2874,6 +2899,7 @@ TEST_F(AutofillMetricsTest, CreditCardSelectedFormEvents) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -2945,6 +2971,7 @@ TEST_F(AutofillMetricsTest, CreditCardFilledFormEvents) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -3115,6 +3142,7 @@ TEST_F(AutofillMetricsTest, CreditCardGetRealPanDuration) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -3188,6 +3216,7 @@ TEST_F(AutofillMetricsTest,
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -3230,6 +3259,7 @@ TEST_F(AutofillMetricsTest,
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -3274,6 +3304,7 @@ TEST_F(AutofillMetricsTest,
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -3318,6 +3349,7 @@ TEST_F(AutofillMetricsTest,
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -3371,6 +3403,7 @@ TEST_F(AutofillMetricsTest, ShouldNotLogFormEventNoCardForAddressForm) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -3412,6 +3445,7 @@ TEST_F(AutofillMetricsTest, CreditCardSubmittedFormEvents) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -3759,6 +3793,7 @@ TEST_F(AutofillMetricsTest, CreditCardWillSubmitFormEvents) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -3980,6 +4015,7 @@ TEST_F(AutofillMetricsTest, AddressInteractedFormEvents) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -4031,6 +4067,7 @@ TEST_F(AutofillMetricsTest, AddressShownFormEvents) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -4120,6 +4157,7 @@ TEST_F(AutofillMetricsTest, AddressFilledFormEvents) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -4185,6 +4223,7 @@ TEST_F(AutofillMetricsTest, AddressSubmittedFormEvents) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -4385,6 +4424,7 @@ TEST_F(AutofillMetricsTest, AddressWillSubmitFormEvents) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -4556,6 +4596,7 @@ TEST_F(AutofillMetricsTest, CreditCardFormEventsAreSegmented) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -4664,6 +4705,7 @@ TEST_F(AutofillMetricsTest, AddressFormEventsAreSegmented) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
@@ -4749,6 +4791,7 @@ TEST_F(AutofillMetricsTest, AutofillFormSubmittedState) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
test::CreateTestFormField("Name", "name", "", "text", &field);
@@ -5051,6 +5094,7 @@ TEST_F(AutofillMetricsTest, UserHappinessFormInteraction_EmptyForm) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
std::vector<FormData> forms(1, form);
@@ -5072,6 +5116,7 @@ TEST_F(AutofillMetricsTest, UserHappinessFormInteraction_CreditCardForm) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
// Construct a valid credit card form with minimal fields.
FormFieldData field;
@@ -5231,6 +5276,7 @@ TEST_F(AutofillMetricsTest, UserHappinessFormInteraction_AddressForm) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
test::CreateTestFormField("Name", "name", "", "text", &field);
@@ -5443,6 +5489,7 @@ TEST_F(AutofillMetricsTest, FormFillDuration) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
test::CreateTestFormField("Name", "name", "", "text", &field);
@@ -5834,6 +5881,7 @@ TEST_F(AutofillMetricsTest, ProfileActionOnFormSubmitted) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
// Create the form's fields.
FormFieldData field;
@@ -5953,6 +6001,7 @@ class AutofillMetricsParseQueryResponseTest : public testing::Test {
void SetUp() override {
FormData form;
form.origin = GURL("http://foo.com");
+ form.main_frame_origin = GURL("http://foo_root.com");
FormFieldData field;
field.form_control_type = "text";
@@ -6086,6 +6135,7 @@ TEST_F(AutofillMetricsTest, NonsecureCreditCardForm) {
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("http://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
autofill_client_.set_form_origin(form.origin);
FormFieldData field;
@@ -6142,6 +6192,7 @@ TEST_F(AutofillMetricsTest,
form.name = ASCIIToUTF16("TestForm");
form.origin = GURL("https://example.com/form.html");
form.action = GURL("http://example.com/submit.html");
+ form.main_frame_origin = GURL("http://example_root.com/form.html");
FormFieldData field;
std::vector<ServerFieldType> field_types;
diff --git a/chromium/components/autofill/core/browser/autofill_test_utils.cc b/chromium/components/autofill/core/browser/autofill_test_utils.cc
index e0543b1eaf8..874a4b0fa64 100644
--- a/chromium/components/autofill/core/browser/autofill_test_utils.cc
+++ b/chromium/components/autofill/core/browser/autofill_test_utils.cc
@@ -132,6 +132,7 @@ void CreateTestAddressFormData(FormData* form,
form->name = ASCIIToUTF16("MyForm");
form->origin = GURL("http://myform.com/form.html");
form->action = GURL("http://myform.com/submit.html");
+ form->main_frame_origin = GURL("http://myform_root.com/form.html");
types->clear();
FormFieldData field;
diff --git a/chromium/components/autofill/core/browser/credit_card_unittest.cc b/chromium/components/autofill/core/browser/credit_card_unittest.cc
index 93e5f128678..88c50b58c4e 100644
--- a/chromium/components/autofill/core/browser/credit_card_unittest.cc
+++ b/chromium/components/autofill/core/browser/credit_card_unittest.cc
@@ -15,6 +15,7 @@
#include "components/autofill/core/browser/autofill_test_utils.h"
#include "components/autofill/core/browser/autofill_type.h"
#include "components/autofill/core/browser/credit_card.h"
+#include "components/autofill/core/browser/test_autofill_clock.h"
#include "components/autofill/core/browser/validation.h"
#include "components/autofill/core/common/autofill_constants.h"
#include "components/autofill/core/common/form_field_data.h"
@@ -1236,6 +1237,9 @@ TEST(CreditCardTest, GetLastUsedDateForDisplay) {
EXPECT_TRUE(
base::Time::FromLocalExploded(kTestDateTimeExploded, &kArbitraryTime));
+ TestAutofillClock test_clock;
+ test_clock.SetNow(kArbitraryTime);
+
// Test for added to chrome/chromium.
CreditCard credit_card0(base::GenerateGUID(), "https://www.example.com");
credit_card0.set_use_count(1);
diff --git a/chromium/components/autofill/core/browser/form_structure.cc b/chromium/components/autofill/core/browser/form_structure.cc
index 98393571074..550f1ffd58f 100644
--- a/chromium/components/autofill/core/browser/form_structure.cc
+++ b/chromium/components/autofill/core/browser/form_structure.cc
@@ -309,6 +309,7 @@ FormStructure::FormStructure(const FormData& form)
: form_name_(form.name),
source_url_(form.origin),
target_url_(form.action),
+ main_frame_url_(form.main_frame_origin),
autofill_count_(0),
active_field_count_(0),
upload_required_(USE_UPLOAD_RATES),
@@ -391,7 +392,7 @@ void FormStructure::DetermineHeuristicTypes(ukm::UkmRecorder* ukm_recorder) {
}
if (developer_engagement_metrics)
- AutofillMetrics::LogDeveloperEngagementUkm(ukm_recorder, source_url(),
+ AutofillMetrics::LogDeveloperEngagementUkm(ukm_recorder, main_frame_url(),
developer_engagement_metrics);
if (base::FeatureList::IsEnabled(kAutofillRationalizeFieldTypePredictions))
@@ -563,6 +564,7 @@ std::vector<FormDataPredictions> FormStructure::GetFieldTypePredictions(
form.data.name = form_structure->form_name_;
form.data.origin = form_structure->source_url_;
form.data.action = form_structure->target_url_;
+ form.data.main_frame_origin = form_structure->main_frame_url_;
form.data.is_form_tag = form_structure->is_form_tag_;
form.data.is_formless_checkout = form_structure->is_formless_checkout_;
form.signature = form_structure->FormSignatureAsStr();
@@ -808,8 +810,8 @@ void FormStructure::LogQualityMetrics(
GetFormTypes(), did_autofill_some_possible_fields, elapsed);
}
}
- if (form_interactions_ukm_logger->url() != source_url())
- form_interactions_ukm_logger->UpdateSourceURL(source_url());
+ if (form_interactions_ukm_logger->url() != main_frame_url())
+ form_interactions_ukm_logger->UpdateSourceURL(main_frame_url());
AutofillMetrics::LogAutofillFormSubmittedState(
state, form_parsed_timestamp_, form_interactions_ukm_logger);
}
@@ -1033,6 +1035,7 @@ FormData FormStructure::ToFormData() const {
data.name = form_name_;
data.origin = source_url_;
data.action = target_url_;
+ data.main_frame_origin = main_frame_url_;
for (size_t i = 0; i < fields_.size(); ++i) {
data.fields.push_back(FormFieldData(*fields_[i]));
diff --git a/chromium/components/autofill/core/browser/form_structure.h b/chromium/components/autofill/core/browser/form_structure.h
index d02b31beeab..9a8e4de1b6d 100644
--- a/chromium/components/autofill/core/browser/form_structure.h
+++ b/chromium/components/autofill/core/browser/form_structure.h
@@ -208,6 +208,8 @@ class FormStructure {
const GURL& target_url() const { return target_url_; }
+ const GURL& main_frame_url() const { return main_frame_url_; }
+
bool has_author_specified_types() const {
return has_author_specified_types_;
}
@@ -303,6 +305,9 @@ class FormStructure {
// The target URL.
GURL target_url_;
+ // The source URL of the main frame of this form.
+ GURL main_frame_url_;
+
// The number of fields able to be auto-filled.
size_t autofill_count_;
diff --git a/chromium/components/autofill/core/browser/form_structure_unittest.cc b/chromium/components/autofill/core/browser/form_structure_unittest.cc
index 3548474f66b..eb21fa925d6 100644
--- a/chromium/components/autofill/core/browser/form_structure_unittest.cc
+++ b/chromium/components/autofill/core/browser/form_structure_unittest.cc
@@ -3382,6 +3382,7 @@ TEST_F(FormStructureTest, CheckFormSignature) {
"https://login.facebook.com&login_form&email&first")),
form_structure->FormSignatureAsStr());
+ // Checks how digits are removed from field names.
field.check_status = FormFieldData::NOT_CHECKABLE;
field.label = ASCIIToUTF16("Random Field label");
field.name = ASCIIToUTF16("random1234");
@@ -3391,15 +3392,15 @@ TEST_F(FormStructureTest, CheckFormSignature) {
field.name = ASCIIToUTF16("random12345");
form.fields.push_back(field);
field.label = ASCIIToUTF16("Random Field label3");
- field.name = ASCIIToUTF16("1random12345678");
+ field.name = ASCIIToUTF16("1ran12dom12345678");
form.fields.push_back(field);
field.label = ASCIIToUTF16("Random Field label3");
- field.name = ASCIIToUTF16("12345random");
+ field.name = ASCIIToUTF16("12345ran123456dom123");
form.fields.push_back(field);
form_structure.reset(new FormStructure(form));
EXPECT_EQ(FormStructureTest::Hash64Bit(
std::string("https://login.facebook.com&login_form&email&first&"
- "random1234&random&1random&random")),
+ "random1234&random&1ran12dom&random123")),
form_structure->FormSignatureAsStr());
}
diff --git a/chromium/components/autofill/core/common/BUILD.gn b/chromium/components/autofill/core/common/BUILD.gn
index e58160d0360..24f45074e60 100644
--- a/chromium/components/autofill/core/common/BUILD.gn
+++ b/chromium/components/autofill/core/common/BUILD.gn
@@ -49,7 +49,6 @@ static_library("common") {
"//base",
"//base:i18n",
"//components/variations",
- "//third_party/re2",
"//url",
]
diff --git a/chromium/components/autofill/core/common/DEPS b/chromium/components/autofill/core/common/DEPS
deleted file mode 100644
index 0de07bbaf08..00000000000
--- a/chromium/components/autofill/core/common/DEPS
+++ /dev/null
@@ -1,3 +0,0 @@
-include_rules = [
- "+third_party/re2",
-]
diff --git a/chromium/components/autofill/core/common/form_data.cc b/chromium/components/autofill/core/common/form_data.cc
index 81de550a22b..11c651377c7 100644
--- a/chromium/components/autofill/core/common/form_data.cc
+++ b/chromium/components/autofill/core/common/form_data.cc
@@ -5,7 +5,6 @@
#include "components/autofill/core/common/form_data.h"
#include <stddef.h>
-
#include <tuple>
#include "base/base64.h"
@@ -18,7 +17,7 @@ namespace autofill {
namespace {
-const int kPickleVersion = 5;
+const int kPickleVersion = 6;
bool ReadGURL(base::PickleIterator* iter, GURL* url) {
std::string spec;
@@ -66,6 +65,7 @@ FormData::FormData(const FormData& data)
: name(data.name),
origin(data.origin),
action(data.action),
+ main_frame_origin(data.main_frame_origin),
is_form_tag(data.is_form_tag),
is_formless_checkout(data.is_formless_checkout),
fields(data.fields) {}
@@ -119,7 +119,8 @@ bool FormData::operator<(const FormData& form) const {
std::ostream& operator<<(std::ostream& os, const FormData& form) {
os << base::UTF16ToUTF8(form.name) << " " << form.origin << " " << form.action
- << " " << form.is_form_tag << " " << form.is_formless_checkout << " "
+ << " " << form.main_frame_origin << " " << form.is_form_tag << " "
+ << form.is_formless_checkout << " "
<< "Fields:";
for (size_t i = 0; i < form.fields.size(); ++i) {
os << form.fields[i] << ",";
@@ -135,6 +136,7 @@ void SerializeFormData(const FormData& form_data, base::Pickle* pickle) {
SerializeFormFieldDataVector(form_data.fields, pickle);
pickle->WriteBool(form_data.is_form_tag);
pickle->WriteBool(form_data.is_formless_checkout);
+ pickle->WriteString(form_data.main_frame_origin.spec());
}
void SerializeFormDataToBase64String(const FormData& form_data,
@@ -198,6 +200,13 @@ bool DeserializeFormData(base::PickleIterator* iter, FormData* form_data) {
}
}
+ if (version >= 6) {
+ if (!ReadGURL(iter, &temp_form_data.main_frame_origin)) {
+ LogDeserializationError(version);
+ return false;
+ }
+ }
+
*form_data = temp_form_data;
return true;
}
diff --git a/chromium/components/autofill/core/common/form_data.h b/chromium/components/autofill/core/common/form_data.h
index 5e5a42936f1..c7064803a12 100644
--- a/chromium/components/autofill/core/common/form_data.h
+++ b/chromium/components/autofill/core/common/form_data.h
@@ -41,6 +41,8 @@ struct FormData {
GURL origin;
// The action target of the form.
GURL action;
+ // The URL of main frame containing this form.
+ GURL main_frame_origin;
// True if this form is a form tag.
bool is_form_tag;
// True if the form is made of unowned fields in a non checkout flow.
diff --git a/chromium/components/autofill/core/common/form_data_unittest.cc b/chromium/components/autofill/core/common/form_data_unittest.cc
index ee174b715eb..c6dee3bec05 100644
--- a/chromium/components/autofill/core/common/form_data_unittest.cc
+++ b/chromium/components/autofill/core/common/form_data_unittest.cc
@@ -87,6 +87,21 @@ void SerializeInVersion5Format(const FormData& form_data,
pickle->WriteBool(form_data.is_formless_checkout);
}
+void SerializeInVersion6Format(const FormData& form_data,
+ base::Pickle* pickle) {
+ pickle->WriteInt(6);
+ pickle->WriteString16(form_data.name);
+ pickle->WriteString(form_data.origin.spec());
+ pickle->WriteString(form_data.action.spec());
+ pickle->WriteInt(static_cast<int>(form_data.fields.size()));
+ for (size_t i = 0; i < form_data.fields.size(); ++i) {
+ SerializeFormFieldData(form_data.fields[i], pickle);
+ }
+ pickle->WriteBool(form_data.is_form_tag);
+ pickle->WriteBool(form_data.is_formless_checkout);
+ pickle->WriteString(form_data.main_frame_origin.spec());
+}
+
// This function serializes the form data into the pickle in incorrect format
// (no version number).
void SerializeIncorrectFormat(const FormData& form_data, base::Pickle* pickle) {
@@ -102,8 +117,9 @@ void SerializeIncorrectFormat(const FormData& form_data, base::Pickle* pickle) {
void FillInDummyFormData(FormData* data) {
data->name = base::ASCIIToUTF16("name");
- data->origin = GURL("origin");
- data->action = GURL("action");
+ data->origin = GURL("https://example.com");
+ data->action = GURL("https://example.com/action");
+ data->main_frame_origin = GURL("https://origin-example.com");
data->is_form_tag = true; // Default value.
data->is_formless_checkout = false; // Default value.
@@ -249,6 +265,21 @@ TEST(FormDataTest, Serialize_v5_Deserialize_vCurrent) {
EXPECT_TRUE(actual.SameFormAs(data));
}
+TEST(FormDataTest, Serialize_v6_Deserialize_vCurrent) {
+ FormData data;
+ FillInDummyFormData(&data);
+ data.is_formless_checkout = true;
+
+ base::Pickle pickle;
+ SerializeInVersion6Format(data, &pickle);
+
+ base::PickleIterator iter(pickle);
+ FormData actual;
+ EXPECT_TRUE(DeserializeFormData(&iter, &actual));
+
+ EXPECT_TRUE(actual.SameFormAs(data));
+}
+
TEST(FormDataTest, SerializeIncorrectFormatAndDeserialize) {
FormData data;
FillInDummyFormData(&data);
diff --git a/chromium/components/autofill/core/common/signatures_util.cc b/chromium/components/autofill/core/common/signatures_util.cc
index 8e7695eac75..df549b97d2a 100644
--- a/chromium/components/autofill/core/common/signatures_util.cc
+++ b/chromium/components/autofill/core/common/signatures_util.cc
@@ -4,30 +4,41 @@
#include "components/autofill/core/common/signatures_util.h"
+#include <cctype>
+
#include "base/sha1.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "components/autofill/core/common/autofill_util.h"
#include "components/autofill/core/common/form_data.h"
#include "components/autofill/core/common/form_field_data.h"
-#include "third_party/re2/src/re2/re2.h"
-#include "third_party/re2/src/re2/stringpiece.h"
#include "url/gurl.h"
namespace autofill {
namespace {
-// Strip away >= 5 consecutive digits.
-const char kIgnorePatternInFieldName[] = "\\d{5,}";
-
-// Returns a copy of |input| without all occurrences of
-// |kIgnorePatternInFieldName|
+// Returns a copy of |input| without >= 5 consecutive digits.
std::string StripDigitsIfRequired(const base::string16& input) {
- std::string return_string = base::UTF16ToUTF8(input);
- re2::RE2::GlobalReplace(&return_string, re2::RE2(kIgnorePatternInFieldName),
- re2::StringPiece());
- return return_string;
+ std::string input_utf8 = base::UTF16ToUTF8(input);
+ std::string result;
+ result.reserve(input_utf8.length());
+
+ for (size_t i = 0; i < input_utf8.length();) {
+ if (std::isdigit(input_utf8[i])) {
+ size_t count = 0;
+ while (i < input_utf8.length() && std::isdigit(input_utf8[i])) {
+ i++;
+ count++;
+ }
+ if (count < 5)
+ result.append(input_utf8, i - count, count);
+ } else {
+ result.push_back(input_utf8[i]);
+ i++;
+ }
+ }
+ return result;
}
} // namespace
diff --git a/chromium/components/favicon/ios/web_favicon_driver.h b/chromium/components/favicon/ios/web_favicon_driver.h
index ea28bedf5cd..0d529da3592 100644
--- a/chromium/components/favicon/ios/web_favicon_driver.h
+++ b/chromium/components/favicon/ios/web_favicon_driver.h
@@ -31,6 +31,7 @@ class WebFaviconDriver : public web::WebStateObserver,
history::HistoryService* history_service);
// FaviconDriver implementation.
+ void FetchFavicon(const GURL& page_url, bool is_same_document) override;
gfx::Image GetFavicon() const override;
bool FaviconIsValid() const override;
GURL GetActiveURL() override;
@@ -57,21 +58,18 @@ class WebFaviconDriver : public web::WebStateObserver,
history::HistoryService* history_service);
// web::WebStateObserver implementation.
- void DidStartNavigation(web::NavigationContext* navigation_context) override;
+ void NavigationItemCommitted(
+ const web::LoadCommittedDetails& load_details) override;
void DidFinishNavigation(web::NavigationContext* navigation_context) override;
void FaviconUrlUpdated(
const std::vector<web::FaviconURL>& candidates) override;
- // Invoked when new favicon URL candidates are received.
- void FaviconUrlUpdatedInternal(
- const std::vector<favicon::FaviconURL>& candidates);
+ // The URL passed to FetchFavicon().
+ GURL fetch_favicon_url_;
// Image Fetcher used to fetch favicon.
image_fetcher::IOSImageDataFetcherWrapper image_fetcher_;
- // Caches the favicon URLs candidates for same-document navigations.
- std::vector<favicon::FaviconURL> candidates_;
-
DISALLOW_COPY_AND_ASSIGN(WebFaviconDriver);
};
diff --git a/chromium/components/favicon/ios/web_favicon_driver.mm b/chromium/components/favicon/ios/web_favicon_driver.mm
index 2a140aafee2..01e6a173300 100644
--- a/chromium/components/favicon/ios/web_favicon_driver.mm
+++ b/chromium/components/favicon/ios/web_favicon_driver.mm
@@ -49,6 +49,12 @@ void WebFaviconDriver::CreateForWebState(
web_state, favicon_service, history_service)));
}
+void WebFaviconDriver::FetchFavicon(const GURL& page_url,
+ bool is_same_document) {
+ fetch_favicon_url_ = page_url;
+ FaviconDriverImpl::FetchFavicon(page_url, is_same_document);
+}
+
gfx::Image WebFaviconDriver::GetFavicon() const {
web::NavigationItem* item =
web_state()->GetNavigationManager()->GetLastCommittedItem();
@@ -117,13 +123,10 @@ void WebFaviconDriver::OnFaviconUpdated(
// On iOS, the active URL can change between calls to FetchFavicon(). For
// instance, FetchFavicon() is not synchronously called when the active URL
// changes as a result of CRWSessionController::goToEntry().
- if (GetActiveURL() != page_url && !page_url.is_empty()) {
- return;
- }
-
web::NavigationItem* item =
web_state()->GetNavigationManager()->GetVisibleItem();
- DCHECK(item);
+ if (!item || item->GetURL() != page_url)
+ return;
web::FaviconStatus& favicon_status = item->GetFavicon();
favicon_status.valid = true;
@@ -143,40 +146,24 @@ WebFaviconDriver::WebFaviconDriver(web::WebState* web_state,
WebFaviconDriver::~WebFaviconDriver() {
}
-void WebFaviconDriver::DidStartNavigation(
- web::NavigationContext* navigation_context) {
- SetFaviconOutOfDateForPage(navigation_context->GetUrl(),
- /*force_reload=*/false);
+void WebFaviconDriver::NavigationItemCommitted(
+ const web::LoadCommittedDetails& load_details) {
+ FetchFavicon(web_state()->GetLastCommittedURL(), load_details.is_in_page);
}
void WebFaviconDriver::DidFinishNavigation(
web::NavigationContext* navigation_context) {
- if (navigation_context->GetError())
- return;
-
- // Fetch the favicon for the new URL.
- FetchFavicon(navigation_context->GetUrl(),
- navigation_context->IsSameDocument());
-
if (navigation_context->IsSameDocument()) {
- if (!candidates_.empty()) {
- FaviconUrlUpdatedInternal(candidates_);
- }
- } else {
- candidates_.clear();
+ // Fetch the favicon for the new URL.
+ FetchFavicon(navigation_context->GetUrl(), /*is_same_document=*/true);
}
}
void WebFaviconDriver::FaviconUrlUpdated(
const std::vector<web::FaviconURL>& candidates) {
DCHECK(!candidates.empty());
- candidates_ = FaviconURLsFromWebFaviconURLs(candidates);
- FaviconUrlUpdatedInternal(candidates_);
-}
-
-void WebFaviconDriver::FaviconUrlUpdatedInternal(
- const std::vector<favicon::FaviconURL>& candidates) {
- OnUpdateCandidates(GetActiveURL(), candidates, GURL());
+ OnUpdateCandidates(GetActiveURL(), FaviconURLsFromWebFaviconURLs(candidates),
+ GURL());
}
} // namespace favicon
diff --git a/chromium/components/password_manager/core/browser/password_manager.cc b/chromium/components/password_manager/core/browser/password_manager.cc
index cef50b7584b..41db950a2b4 100644
--- a/chromium/components/password_manager/core/browser/password_manager.cc
+++ b/chromium/components/password_manager/core/browser/password_manager.cc
@@ -798,7 +798,11 @@ void PasswordManager::OnLoginSuccessful() {
: metrics_util::SyncPasswordHashChange::
SAVED_IN_CONTENT_AREA);
store->SaveSyncPasswordHash(
- provisional_save_manager_->submitted_form()->password_value);
+ is_sync_password_change
+ ? provisional_save_manager_->submitted_form()
+ ->new_password_value
+ : provisional_save_manager_->submitted_form()
+ ->password_value);
}
}
#endif
diff --git a/chromium/components/password_manager/core/browser/password_manager_unittest.cc b/chromium/components/password_manager/core/browser/password_manager_unittest.cc
index cd59471e765..18e357556d4 100644
--- a/chromium/components/password_manager/core/browser/password_manager_unittest.cc
+++ b/chromium/components/password_manager/core/browser/password_manager_unittest.cc
@@ -16,6 +16,7 @@
#include "base/strings/utf_string_conversions.h"
#include "base/test/histogram_tester.h"
#include "base/test/scoped_feature_list.h"
+#include "build/build_config.h"
#include "components/password_manager/core/browser/form_fetcher_impl.h"
#include "components/password_manager/core/browser/mock_password_store.h"
#include "components/password_manager/core/browser/password_autofill_manager.h"
@@ -185,6 +186,20 @@ class PasswordManagerTest : public testing::Test {
return form;
}
+ PasswordForm MakeGAIAChangePasswordForm() {
+ PasswordForm form;
+ form.origin = GURL("https://accounts.google.com");
+ form.action = GURL("http://www.google.com/a/Login");
+ form.username_element = ASCIIToUTF16("Email");
+ form.new_password_element = ASCIIToUTF16("NewPasswd");
+ form.username_value = ASCIIToUTF16("googleuser");
+ form.new_password_value = ASCIIToUTF16("n3wp4ssword");
+ form.submit_element = ASCIIToUTF16("changePassword");
+ form.signon_realm = form.origin.spec();
+ form.form_data.name = ASCIIToUTF16("the-form-name");
+ return form;
+ }
+
// Create a sign-up form that only has a new password field.
PasswordForm MakeFormWithOnlyNewPasswordField() {
PasswordForm form = MakeSimpleForm();
@@ -2135,4 +2150,31 @@ TEST_F(PasswordManagerTest, ProcessAutofillPredictions) {
manager()->ProcessAutofillPredictions(&driver_, forms);
}
+// Sync password hash should be updated upon submission of change password page.
+TEST_F(PasswordManagerTest, SaveSyncPasswordHashOnChangePasswordPage) {
+ PasswordForm form(MakeGAIAChangePasswordForm());
+ EXPECT_CALL(*store_, GetLogins(_, _))
+ .WillRepeatedly(WithArg<1>(InvokeEmptyConsumerWithForms()));
+
+ std::vector<PasswordForm> observed;
+ observed.push_back(form);
+ manager()->OnPasswordFormsParsed(&driver_, observed);
+ manager()->OnPasswordFormsRendered(&driver_, observed, true);
+
+ // Submit form and finish navigation.
+ EXPECT_CALL(client_, IsSavingAndFillingEnabledForCurrentPage())
+ .WillRepeatedly(Return(true));
+ EXPECT_CALL(client_, GetPrefs()).WillRepeatedly(Return(nullptr));
+#if defined(OS_WIN) || (defined(OS_MACOSX) && !defined(OS_IOS)) || \
+ (defined(OS_LINUX) && !defined(OS_CHROMEOS))
+ EXPECT_CALL(*store_, SaveSyncPasswordHash(form.new_password_value));
+#endif
+ client_.FilterAllResultsForSaving();
+ OnPasswordFormSubmitted(form);
+
+ observed.clear();
+ manager()->OnPasswordFormsParsed(&driver_, observed);
+ manager()->OnPasswordFormsRendered(&driver_, observed, true);
+}
+
} // namespace password_manager
diff --git a/chromium/components/safe_browsing/password_protection/password_protection_navigation_throttle.cc b/chromium/components/safe_browsing/password_protection/password_protection_navigation_throttle.cc
index b7d1e1a8e9d..eab309b7c99 100644
--- a/chromium/components/safe_browsing/password_protection/password_protection_navigation_throttle.cc
+++ b/chromium/components/safe_browsing/password_protection/password_protection_navigation_throttle.cc
@@ -4,16 +4,28 @@
#include "components/safe_browsing/password_protection/password_protection_navigation_throttle.h"
+#include "components/safe_browsing/password_protection/password_protection_request.h"
#include "content/public/browser/navigation_handle.h"
namespace safe_browsing {
PasswordProtectionNavigationThrottle::PasswordProtectionNavigationThrottle(
content::NavigationHandle* navigation_handle,
+ scoped_refptr<PasswordProtectionRequest> request,
bool is_warning_showing)
: content::NavigationThrottle(navigation_handle),
- is_warning_showing_(is_warning_showing) {}
+ request_(request),
+ is_warning_showing_(is_warning_showing) {
+ // Only call AddThrottle() if there is no modal warning showing. If there's a
+ // modal dialog, PPNavigationThrottle will simply cancel this navigation
+ // immediately, therefore no need to keep track of it.
+ if (!is_warning_showing_)
+ request_->AddThrottle(this);
+}
-PasswordProtectionNavigationThrottle::~PasswordProtectionNavigationThrottle() {}
+PasswordProtectionNavigationThrottle::~PasswordProtectionNavigationThrottle() {
+ if (request_)
+ request_->RemoveThrottle(this);
+}
content::NavigationThrottle::ThrottleCheckResult
PasswordProtectionNavigationThrottle::WillStartRequest() {
diff --git a/chromium/components/safe_browsing/password_protection/password_protection_navigation_throttle.h b/chromium/components/safe_browsing/password_protection/password_protection_navigation_throttle.h
index dcc1723850d..16d4ebb8f65 100644
--- a/chromium/components/safe_browsing/password_protection/password_protection_navigation_throttle.h
+++ b/chromium/components/safe_browsing/password_protection/password_protection_navigation_throttle.h
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_SAFE_BROWSING_PASSWORD_PROTECTION_PASSWORD_PROTECTION_NAVIGATION_THROTTLE_H_
#define COMPONENTS_SAFE_BROWSING_PASSWORD_PROTECTION_PASSWORD_PROTECTION_NAVIGATION_THROTTLE_H_
+#include "base/memory/ref_counted.h"
#include "content/public/browser/navigation_throttle.h"
namespace content {
@@ -12,6 +13,8 @@ class NavigationHandle;
} // namespace content
namespace safe_browsing {
+class PasswordProtectionRequest;
+
// PasswordProtectionNavigationThrottle defers or cancel navigation under the
// following condition:
// (1) if a navigation starts when there is a on-going sync password reuse ping,
@@ -26,6 +29,7 @@ class PasswordProtectionNavigationThrottle
public:
PasswordProtectionNavigationThrottle(
content::NavigationHandle* navigation_handle,
+ scoped_refptr<PasswordProtectionRequest> request,
bool is_warning_showing);
~PasswordProtectionNavigationThrottle() override;
@@ -40,6 +44,7 @@ class PasswordProtectionNavigationThrottle
content::NavigationThrottle::ThrottleCheckResult result);
private:
+ scoped_refptr<PasswordProtectionRequest> request_;
bool is_warning_showing_;
DISALLOW_COPY_AND_ASSIGN(PasswordProtectionNavigationThrottle);
};
diff --git a/chromium/components/safe_browsing/password_protection/password_protection_request.h b/chromium/components/safe_browsing/password_protection/password_protection_request.h
index 701b8fedb58..69dc838fde1 100644
--- a/chromium/components/safe_browsing/password_protection/password_protection_request.h
+++ b/chromium/components/safe_browsing/password_protection/password_protection_request.h
@@ -102,6 +102,10 @@ class PasswordProtectionRequest : public base::RefCountedThreadSafe<
throttles_.insert(throttle);
}
+ void RemoveThrottle(PasswordProtectionNavigationThrottle* throttle) {
+ throttles_.erase(throttle);
+ }
+
// Cancels navigation if there is modal warning showing, resumes it otherwise.
void HandleDeferredNavigations();
@@ -112,6 +116,7 @@ class PasswordProtectionRequest : public base::RefCountedThreadSafe<
friend struct content::BrowserThread::DeleteOnThread<
content::BrowserThread::UI>;
friend class base::DeleteHelper<PasswordProtectionRequest>;
+ friend class ChromePasswordProtectionServiceTest;
~PasswordProtectionRequest() override;
// Start checking the whitelist.
diff --git a/chromium/components/safe_browsing/password_protection/password_protection_service.cc b/chromium/components/safe_browsing/password_protection/password_protection_service.cc
index bef34552f5f..4b47d7d3547 100644
--- a/chromium/components/safe_browsing/password_protection/password_protection_service.cc
+++ b/chromium/components/safe_browsing/password_protection/password_protection_service.cc
@@ -808,18 +808,15 @@ PasswordProtectionService::MaybeCreateNavigationThrottle(
request->trigger_type() ==
safe_browsing::LoginReputationClientRequest::PASSWORD_REUSE_EVENT &&
request->matches_sync_password()) {
- std::unique_ptr<PasswordProtectionNavigationThrottle> throttle =
- base::MakeUnique<PasswordProtectionNavigationThrottle>(
- navigation_handle, /*is_warning_showing=*/false);
- request->AddThrottle(throttle.get());
- return throttle;
+ return base::MakeUnique<PasswordProtectionNavigationThrottle>(
+ navigation_handle, request, /*is_warning_showing=*/false);
}
}
for (scoped_refptr<PasswordProtectionRequest> request : warning_requests_) {
if (request->web_contents() == web_contents) {
return base::MakeUnique<PasswordProtectionNavigationThrottle>(
- navigation_handle, /*is_warning_showing=*/true);
+ navigation_handle, request, /*is_warning_showing=*/true);
}
}
return nullptr;
diff --git a/chromium/components/strings/components_chromium_strings_el.xtb b/chromium/components/strings/components_chromium_strings_el.xtb
index 99cee503af5..6919e3951f0 100644
--- a/chromium/components/strings/components_chromium_strings_el.xtb
+++ b/chromium/components/strings/components_chromium_strings_el.xtb
@@ -16,7 +16,7 @@
<ph name="PROXIES_TITLE" />
&gt;
Ρυθμίσεις LAN
- και καταÏγήστε την επιλογή του πλαισίου ελέγχου "ΧÏήση
+ και αποεπιλέξτε το πλαίσιο ελέγχου "ΧÏήση
διακομιστή μεσολάβησης για το LAN".</translation>
<translation id="48558539577516920">ΕπιτÏέψτε στο Chromium να αποκτήσει Ï€Ïόσβαση στο δίκτυο από τις Ïυθμίσεις του τείχους Ï€Ïοστασίας
ή του Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÎ¿Ï Ï€Ïοστασίας από ιοÏÏ‚ που διαθέτετε.</translation>
@@ -35,11 +35,11 @@
<ph name="SETTINGS_TITLE" />
&gt;
<ph name="ADVANCED_TITLE" />
- και καταÏγήστε την επιλογή "<ph name="NO_PREFETCH_DESCRIPTION" />".
+ και αποεπιλέξτε "<ph name="NO_PREFETCH_DESCRIPTION" />".
Εάν με αυτόν τον Ï„Ïόπο δεν επιλÏεται το ζήτημά σας, συνιστοÏμε
να ενεÏγοποιήσετε ξανά αυτήν την επιλογή για βελτιωμένη απόδοση.</translation>
<translation id="8187289872471304532">Μεταβείτε στο
Applications &gt; System Preferences &gt; Network &gt; Advanced &gt; Proxies
- και καταÏγήστε τυχόν διακομιστές μεσολάβησης που έχουν επιλεγεί.</translation>
+ και αποεπιλέξτε τυχόν διακομιστές μεσολάβησης που έχουν επιλεγεί.</translation>
<translation id="8684913864886094367">Το Chromium δεν έκλεισε σωστά.</translation>
</translationbundle> \ No newline at end of file
diff --git a/chromium/components/strings/components_google_chrome_strings_el.xtb b/chromium/components/strings/components_google_chrome_strings_el.xtb
index 45046b13514..15e4a4a9556 100644
--- a/chromium/components/strings/components_google_chrome_strings_el.xtb
+++ b/chromium/components/strings/components_google_chrome_strings_el.xtb
@@ -25,7 +25,7 @@
<ph name="SETTINGS_TITLE" />
&gt;
<ph name="ADVANCED_TITLE" />
- και καταÏγήστε την επιλογή "<ph name="NO_PREFETCH_DESCRIPTION" />".
+ και αποεπιλέξτε "<ph name="NO_PREFETCH_DESCRIPTION" />".
Εάν με αυτόν τον Ï„Ïόπο δεν επιλÏεται το ζήτημά σας, συνιστοÏμε
να ενεÏγοποιήσετε ξανά αυτήν την επιλογή για βελτιωμένη απόδοση.</translation>
<translation id="6855094794438142393">Μεταβείτε
@@ -37,8 +37,8 @@
<ph name="PROXIES_TITLE" />
&gt;
Ρυθμίσεις LAN
- και καταÏγήστε την επιλογή "ΧÏήση διακομιστή μεσολάβησης για το LAN".</translation>
+ και αποεπιλέξτε τη "ΧÏήση διακομιστή μεσολάβησης για το LAN".</translation>
<translation id="8187289872471304532">Μεταβείτε στο
Applications &gt; System Preferences &gt; Network &gt; Advanced &gt; Proxies
- και καταÏγήστε τυχόν διακομιστές μεσολάβησης που έχουν επιλεγεί.</translation>
+ και αποεπιλέξτε τυχόν διακομιστές μεσολάβησης που έχουν επιλεγεί.</translation>
</translationbundle> \ No newline at end of file
diff --git a/chromium/components/strings/components_strings_am.xtb b/chromium/components/strings/components_strings_am.xtb
index ba8f964ff6d..c5f9b9f7a60 100644
--- a/chromium/components/strings/components_strings_am.xtb
+++ b/chromium/components/strings/components_strings_am.xtb
@@ -300,7 +300,7 @@
<ph name="PLATFORM_TEXT" /></translation>
<translation id="320323717674993345">ክáያን ሰርá‹</translation>
<translation id="3207960819495026254">á‹•áˆá‰£á‰µ ተደርጎበታáˆ</translation>
-<translation id="3209375525920864198">እባክዎ የሚሰራ የክáለ-ጊዜ ስሠያስገቡá¢</translation>
+<translation id="3209375525920864198">እባክዎ የሚሠራ የክáለ-ጊዜ ስሠያስገቡá¢</translation>
<translation id="3211223744486044430">በሚቀጥለዠጊዜ በበለጠ áጥáŠá‰µ ለመክáˆáˆ ይህን ካርድ በGoogle መለያዎ እና በዚህ መሣሪያ ላይ ያስቀáˆáŒ¡á¢</translation>
<translation id="3225919329040284222">አገáˆáŒ‹á‹© አብረዠየተሰሩ የሚጠበበማሟያዎችን የማያሟላ የእá‹á‰…ና ማረጋገጫ áŠá‹ ያቀረበá‹á¢ እáŠá‹šáˆ… የሚጠበበማሟያዎች እርስዎን ለመጠበቅ ለተረጋገጡ ከáተኛ ደህንáŠá‰µ ላላቸዠድር ጣቢያዎች ተካትተዋáˆá¢</translation>
<translation id="3226128629678568754">ገጹን ለመጫን የሚያስáˆáˆáŒˆá‹ á‹áˆ‚ብ ዳáŒáˆ ለማስገባት የዳáŒáˆ ጫን አá‹áˆ«áˆ©áŠ• ይጫኑá¢</translation>
@@ -630,6 +630,7 @@
<translation id="5669703222995421982">áŒáˆ‹á‹ŠáŠá‰µ የተላበሰ ይዘት á‹«áŒáŠ™</translation>
<translation id="5675650730144413517">ይህ ገጽ እየሠራ አይደለáˆ</translation>
<translation id="5689199277474810259">ወደ JSON ላክ</translation>
+<translation id="5689516760719285838">አካባቢ</translation>
<translation id="5710435578057952990">የዚህ ድረ-ገጽ ማንáŠá‰µ አáˆá‰°áˆ¨áŒ‹áŒˆáŒ áˆá¢</translation>
<translation id="5719499550583120431">የቅድመ-ክáá‹« ካርዶች ተቀባይáŠá‰µ አላቸá‹á¢</translation>
<translation id="5720705177508910913">የአáˆáŠ‘ ተጠቃሚ</translation>
@@ -885,7 +886,7 @@
<translation id="7812922009395017822">Mir</translation>
<translation id="7813600968533626083">የአስተያየት ጥቆማ ከChrome ይወገድ?</translation>
<translation id="7815407501681723534">ለ«<ph name="SEARCH_STRING" />» <ph name="NUMBER_OF_RESULTS" /> <ph name="SEARCH_RESULTS" /> ተገáŠá‰°á‹‹áˆá¢</translation>
-<translation id="7818867226424560206">የመመሪያ አስተዳደር</translation>
+<translation id="7818867226424560206">የመáˆáˆªá‹« አስተዳደር</translation>
<translation id="782886543891417279">እየተጠቀሙበት ያለዠWi-Fi (<ph name="WIFI_NAME" />) በመለያ መáŒá‰¢á‹« ገጹን እንዲጎበኙ ሊጠይቅዎት ይችላáˆá¢</translation>
<translation id="785549533363645510">ሆኖሠáŒáŠ• የማይታዩ አይደሉáˆá¢ ማንáŠá‰µ የማያሳá‹á‰… áˆáŠá‰³ መጠቀሠየእርስዎን አሰሳᣠየበይáŠáˆ˜áˆ¨á‰¥ አገáˆáŒáˆŽá‰µ አቅራቢ ወይሠየሚጎበኟቸዠድር ጣቢያዎች ከአሰሪዎ አይደብቃቸá‹áˆá¢</translation>
<translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
diff --git a/chromium/components/strings/components_strings_ar.xtb b/chromium/components/strings/components_strings_ar.xtb
index 4981fb32869..a4149f7b405 100644
--- a/chromium/components/strings/components_strings_ar.xtb
+++ b/chromium/components/strings/components_strings_ar.xtb
@@ -301,12 +301,12 @@
<ph name="PLATFORM_TEXT" /></translation>
<translation id="320323717674993345">إلغاء الدÙع</translation>
<translation id="3207960819495026254">محدد بعلامة متابعة القراءة</translation>
-<translation id="3209375525920864198">ÙŠÙرجى إدخال اسمًا صالحًا للجلسة.</translation>
+<translation id="3209375525920864198">ÙŠÙرجى إدخال اسم صالح للجلسة.</translation>
<translation id="3211223744486044430">â€Ù„لدÙع على نحو أسرع ÙÙŠ المرة القادمة، احÙظ هذه البطاقة ÙÙŠ حسابك ÙÙŠ Google ÙˆÙÙŠ هذا الجهاز.</translation>
<translation id="3225919329040284222">قدم الخادم شهادة لا تتطابق مع التوقعات المضمّنة. تم تضمين هذه التوقعات للحصول على مواقع ويب موثوقة وآمنة جدًا لتوÙير الحماية لك.</translation>
<translation id="3226128629678568754">اضغط على زر إعادة التحميل لإعادة إرسال البيانات المطلوبة لتحميل الصÙحة.</translation>
<translation id="3227137524299004712">الميكروÙون</translation>
-<translation id="3228969707346345236">أخÙقت الترجمة لأن الصÙحة باللغة <ph name="LANGUAGE" /> Ùعلاً.</translation>
+<translation id="3228969707346345236">تعذّرت الترجمة لأن الصÙحة باللغة <ph name="LANGUAGE" /> Ùعلاً.</translation>
<translation id="323107829343500871">â€Ø£Ø¯Ø®Ù„ رمز التحقق من البطاقة (CVC) لـ <ph name="CREDIT_CARD" /></translation>
<translation id="3234666976984236645">الكش٠دائمًا عن المحتوى المهم على هذا الموقع</translation>
<translation id="3254409185687681395">وضع إشارة على هذه الصÙحة</translation>
@@ -394,7 +394,7 @@
<translation id="3739623965217189342">الرابط الذي نسخته</translation>
<translation id="3744899669254331632">â€Ù„ا يمكنك زيارة <ph name="SITE" /> ÙÙŠ الوقت الحالي لأن الموقع أرسل اعتمادات مختلطة حيث لا يستطيع Chromium المعالجة. أخطاء الشبكة وهجماتها عادةً ما تكون مؤقتة، لذلك من المحتمل أن تعمل هذه الصÙحة ÙÙŠ وقت لاحق.</translation>
<translation id="3748148204939282805">قد يخدعك المهاجمون على <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> لتنÙيذ أمور خطيرة، مثل تثبيت البرامج أو نشر معلوماتك الشخصية (على سبيل المثال، كلمات المرور، أو أرقام الهاتÙØŒ أو بطاقات الائتمان). <ph name="BEGIN_LEARN_MORE_LINK" />مزيد من المعلومات<ph name="END_LEARN_MORE_LINK" /></translation>
-<translation id="375403751935624634">أخÙقت الترجمة بسبب حدوث خطأ ÙÙŠ الخادم.</translation>
+<translation id="375403751935624634">تعذّرت الترجمة بسبب حدوث خطأ ÙÙŠ الخادم.</translation>
<translation id="3759461132968374835">ليس لديك أي أعطال تم الإبلاغ عنها مؤخرًا. الأعطال التي حدثت عندما تم تعطيل الإبلاغ عن الأعطال لن تظهر هنا.</translation>
<translation id="3765032636089507299">صÙحة التصÙØ­ الآمن تحت الإنشاء.</translation>
<translation id="3778403066972421603">â€Ù‡Ù„ تريد Ø­Ùظ هذه البطاقة ÙÙŠ حسابك ÙÙŠ Google وعلى هذا الجهاز؟</translation>
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">الحصول على محتوى مخصص</translation>
<translation id="5675650730144413517">يتعذّر على هذه الصÙحة العمل</translation>
<translation id="5689199277474810259">â€ØªØµØ¯ÙŠØ± إلى JSON</translation>
+<translation id="5689516760719285838">الموقع</translation>
<translation id="5710435578057952990">لم يتمّ التحقق من هوية هذا الموقع.</translation>
<translation id="5719499550583120431">يتم قبول بطاقات الدÙع المسبق.</translation>
<translation id="5720705177508910913">المستخدم الحالي</translation>
@@ -749,7 +750,7 @@
<translation id="6753269504797312559">قيمة السياسة</translation>
<translation id="6757797048963528358">خضع جهازك إلى وضع السكون.</translation>
<translation id="6778737459546443941">لم يواÙÙ‚ عليه والداك حتى الآن</translation>
-<translation id="681021252041861472">حقل مطلوب</translation>
+<translation id="681021252041861472">الحقل مطلوب</translation>
<translation id="6810899417690483278">رقم تعري٠التخصيص</translation>
<translation id="6820686453637990663">CVC</translation>
<translation id="6824266427216888781">تعذَّر تحميل بيانات المناطق</translation>
@@ -942,7 +943,7 @@
<translation id="8294431847097064396">المصدر</translation>
<translation id="8298115750975731693">â€Ù‚د يتتطلب Wi-Fi الذي تستخدمه (<ph name="WIFI_NAME" />) زيارة <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" />.</translation>
<translation id="8306404619377842860">تعذر إنشاء اتصال خاص بـ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> نظرًا لأن تاريخ ووقت جهازك (<ph name="DATE_AND_TIME" />) غير صحيحين. <ph name="BEGIN_LEARN_MORE_LINK" />مزيد من المعلومات<ph name="END_LEARN_MORE_LINK" /></translation>
-<translation id="8308427013383895095">أخÙقت الترجمة بسبب حدوث مشكلة ÙÙŠ الاتصال بالشبكة.</translation>
+<translation id="8308427013383895095">تعذّرت الترجمة بسبب حدوث مشكلة ÙÙŠ الاتصال بالشبكة.</translation>
<translation id="8311129316111205805">تحميل الجلسة</translation>
<translation id="8332188693563227489">تم رÙض الدخول إلى <ph name="HOST_NAME" />.</translation>
<translation id="834457929814110454">إذا كنت على دراية بالمخاطر التي تهدد أمانك، يمكنك <ph name="BEGIN_LINK" />زيارة هذا الموقع<ph name="END_LINK" /> قبل أن تتم إزالة البرامج الضارة.</translation>
@@ -966,7 +967,7 @@
<translation id="8503813439785031346">اسم المستخدم</translation>
<translation id="8543181531796978784">يمكنك <ph name="BEGIN_ERROR_LINK" />الإبلاغ عن اكتشا٠مشكلة<ph name="END_ERROR_LINK" /> أو، إذا كنت تدرك المخاطر المتعلقة بالأمان، يمكنك <ph name="BEGIN_LINK" />زيارة هذا الموقع غير الآمن<ph name="END_LINK" />.</translation>
<translation id="8543556556237226809">هل هناك أي أسئلة؟ اتصل بالشخص الذي يشر٠على ملÙÙƒ الشخصي.</translation>
-<translation id="8553075262323480129">أخÙقت الترجمة لتعذر تحديد لغة الصÙحة.</translation>
+<translation id="8553075262323480129">تعذّرت الترجمة لتعذر تحديد لغة الصÙحة.</translation>
<translation id="8571890674111243710">جار٠ترجمة الصÙحة إلى <ph name="LANGUAGE" />...</translation>
<translation id="858637041960032120">إضاÙØ© رقم هاتÙ
</translation>
@@ -1039,7 +1040,7 @@
<translation id="917450738466192189">شهادة الخادم غير صالحة.</translation>
<translation id="9183425211371246419">يستخدم <ph name="HOST_NAME" /> بروتوكول غير مدعوم.</translation>
<translation id="9205078245616868884">يتم تشÙير بياناتك باستخدام عبارة مرور المزامنة. أدخلها لبدء المزامنة.</translation>
-<translation id="9207861905230894330">أخÙقت إضاÙØ© مقالة.</translation>
+<translation id="9207861905230894330">تعذّرت إضاÙØ© مقالة.</translation>
<translation id="9215416866750762878">â€ÙŠØ¹Ù…Ù„ أحد التطبيقات على منع اتصال Chrome بموقع الويب هذا على نحو آمن</translation>
<translation id="9219103736887031265">صور</translation>
<translation id="933612690413056017">لا يوجد اتصال بالإنترنت</translation>
diff --git a/chromium/components/strings/components_strings_bg.xtb b/chromium/components/strings/components_strings_bg.xtb
index 24371ca5e11..3557753508d 100644
--- a/chromium/components/strings/components_strings_bg.xtb
+++ b/chromium/components/strings/components_strings_bg.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Получаване на перÑонализирано Ñъдържание</translation>
<translation id="5675650730144413517">Тази Ñтраница не работи</translation>
<translation id="5689199277474810259">ЕкÑпортиране във формат JSON</translation>
+<translation id="5689516760719285838">МеÑтоположение</translation>
<translation id="5710435578057952990">СамоличноÑтта на този уебÑайт не е потвърдена.</translation>
<translation id="5719499550583120431">Приемат Ñе предплатени карти.</translation>
<translation id="5720705177508910913">ТекущиÑÑ‚ потребител</translation>
diff --git a/chromium/components/strings/components_strings_bn.xtb b/chromium/components/strings/components_strings_bn.xtb
index 26b18237ce3..d5336fb76cd 100644
--- a/chromium/components/strings/components_strings_bn.xtb
+++ b/chromium/components/strings/components_strings_bn.xtb
@@ -121,14 +121,14 @@
<translation id="1871208020102129563">
পà§à¦°à¦•à§à¦¸à¦¿ সà§à¦¥à¦¿à¦° পà§à¦°à¦•à§à¦¸à¦¿ সারà§à¦­à¦¾à¦°à¦—à§à¦²à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦° করতে সেট করা আছে কোনো .pac সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ URL নয়৷</translation>
<translation id="1871284979644508959">আবশà§à¦¯à¦• কà§à¦·à§‡à¦¤à§à¦°</translation>
-<translation id="1874765382782611674">ডেবিট কারà§à¦¡ গà§à¦°à¦¹à¦£ করা হয়</translation>
+<translation id="1874765382782611674">à¦à¦‡ ডেবিট কারà§à¦¡à¦—à§à¦²à¦¿ গà§à¦°à¦¹à¦£ করা হয়</translation>
<translation id="187918866476621466">শà§à¦°à§à¦° পৃষà§à¦ à¦¾à¦—à§à¦²à¦¿ খà§à¦²à§à¦¨</translation>
<translation id="1883255238294161206">তালিকা সঙà§à¦•à§à¦šà¦¿à¦¤ করà§à¦¨</translation>
<translation id="1898423065542865115">ফিলà§à¦Ÿà¦¾à¦° হচà§à¦›à§‡</translation>
<translation id="1916770123977586577">আপডেট করা সেটিংস à¦à¦‡ সাইটে পà§à¦°à§Ÿà§‹à¦— করতে পৃষà§à¦ à¦¾à¦Ÿà¦¿ আবার লোড করà§à¦¨</translation>
<translation id="1919345977826869612">বিজà§à¦žà¦¾à¦ªà¦¨</translation>
<translation id="192020519938775529">{COUNT,plural, =0{কিছà§à¦‡ নয়}=1{১টি সাইট}one{#টি সাইট}other{#টি সাইট}}</translation>
-<translation id="1927235823738766038">কà§à¦°à§‡à¦¡à¦¿à¦Ÿ à¦à¦¬à¦‚ ডেবিট কারà§à¦¡ গà§à¦°à¦¹à¦£ করা হয়</translation>
+<translation id="1927235823738766038">à¦à¦‡ কà§à¦°à§‡à¦¡à¦¿à¦Ÿ à¦à¦¬à¦‚ ডেবিট কারà§à¦¡à¦—à§à¦²à¦¿ গà§à¦°à¦¹à¦£ করা হয়</translation>
<translation id="194030505837763158"><ph name="LINK" /> ঠযান</translation>
<translation id="1948773908305951926">পà§à¦°à¦¿à¦ªà§‡à¦¡ কারà§à¦¡ গà§à¦°à¦¹à¦£ করা হয়</translation>
<translation id="1962204205936693436"><ph name="DOMAIN" /> বà§à¦•à¦®à¦¾à¦°à§à¦•à¦—à§à¦²à¦¿</translation>
@@ -225,7 +225,7 @@
<translation id="2670429602441959756">à¦à¦‡ পৃষà§à¦ à¦¾à§Ÿ à¦à¦®à¦¨ কিছৠবৈশিষà§à¦Ÿà§à¦¯ রয়েছে যা à¦à¦–নও VR ঠসমরà§à¦¥à¦¿à¦¤ নয়। পà§à¦°à¦¸à§à¦¥à¦¾à¦¨ করা হচà§à¦›à§‡...</translation>
<translation id="2674170444375937751">আপনি কি আপনার ইতিহাস থেকে à¦à¦‡ পৃষà§à¦ à¦¾à¦—à§à¦²à¦¿ মোছার বিষয়ে নিশà§à¦šà¦¿à¦¤?</translation>
<translation id="2677748264148917807">ছেড়ে চলে যান</translation>
-<translation id="2699302886720511147">কারà§à¦¡ গà§à¦°à¦¹à¦£ করা হয়</translation>
+<translation id="2699302886720511147">à¦à¦‡ কারà§à¦¡à¦—à§à¦²à¦¿ গà§à¦°à¦¹à¦£ করা হয়</translation>
<translation id="2702801445560668637">পড়ার তালিকা</translation>
<translation id="2704283930420550640">বিনà§à¦¯à¦¾à¦¸à§‡à¦° সাথে মূলà§à¦¯ মেলে না৷</translation>
<translation id="2704951214193499422">Chromium à¦à¦‡ মà§à¦¹à§‚রà§à¦¤à§‡ আপনার কারà§à¦¡ নিশà§à¦šà¦¿à¦¤ করতে অকà§à¦·à¦® হয়েছে৷ দয়া করে পরে আবার চেষà§à¦Ÿà¦¾ করà§à¦¨à§·</translation>
@@ -302,7 +302,7 @@
<ph name="PLATFORM_TEXT" /></translation>
<translation id="320323717674993345">পেমেনà§à¦Ÿ বাতিল করà§à¦¨</translation>
<translation id="3207960819495026254">বà§à¦•à¦®à¦¾à¦°à§à¦• করা হয়েছে</translation>
-<translation id="3209375525920864198">অনà§à¦—à§à¦°à¦¹ করে à¦à¦•à¦Ÿà¦¿ বৈধ সেশন নাম লিখà§à¦¨à¥¤</translation>
+<translation id="3209375525920864198">অনà§à¦—à§à¦°à¦¹ করে à¦à¦•à¦Ÿà¦¿ সঠিক সেশনের নাম লিখà§à¦¨à¥¤</translation>
<translation id="3211223744486044430">পরের বার আরও দà§à¦°à§à¦¤ পেমেনà§à¦Ÿ করা জনà§à¦¯ à¦à¦‡ কারà§à¦¡à¦Ÿà¦¿ Google অà§à¦¯à¦¾à¦•à¦¾à¦‰à¦¨à§à¦Ÿà§‡ à¦à¦¬à¦‚ à¦à¦‡ ডিভাইসে সেভ করে রাখà§à¦¨à¥¤</translation>
<translation id="3225919329040284222">সারà§à¦­à¦¾à¦°à¦Ÿà¦¿ à¦à¦®à¦¨ à¦à¦•à¦Ÿà¦¿ শংসাপতà§à¦° উপসà§à¦¥à¦¾à¦ªà¦¨à¦¾ করেছে যা বিলà§à¦Ÿ-ইন পà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¾à¦—à§à¦²à¦¿à¦° সাথে মেলে না৷ à¦à¦‡ পà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¾à¦—à§à¦²à¦¿ আপনাকে সà§à¦°à¦•à§à¦·à¦¿à¦¤ করতে কিছৠনিশà§à¦šà¦¿à¦¤, উচà§à¦š সà§à¦°à¦•à§à¦·à¦¾à¦° ওয়েবসাইটের জনà§à¦¯ অনà§à¦¤à¦°à§à¦­à§à¦•à§à¦¤à§·</translation>
<translation id="3226128629678568754">পৃষà§à¦ à¦¾à¦Ÿà¦¿ লোড করতে পà§à¦°à§Ÿà§‹à¦œà¦¨à§€à§Ÿ ডেটেটি আবার জমা দিতে আবার লোড করার বোতামটি টিপà§à¦¨à§·</translation>
@@ -463,7 +463,7 @@
<translation id="4325863107915753736">নিবনà§à¦§ খà§à¦à¦œà§‡ পেতে বà§à¦¯à¦°à§à¦¥ হয়েছে</translation>
<translation id="4326324639298822553">আপনার মেয়াদ শেষের তারিখ পরীকà§à¦·à¦¾ করে আবার চেষà§à¦Ÿà¦¾ করà§à¦¨</translation>
<translation id="4331708818696583467">সà§à¦°à¦•à§à¦·à¦¿à¦¤ নয়</translation>
-<translation id="4346197816712207223">কà§à¦°à§‡à¦¡à¦¿à¦Ÿ কারà§à¦¡ গà§à¦°à¦¹à¦£ করা হয়</translation>
+<translation id="4346197816712207223">à¦à¦‡ কà§à¦°à§‡à¦¡à¦¿à¦Ÿ কারà§à¦¡à¦—à§à¦²à¦¿ গà§à¦°à¦¹à¦£ করা হয়</translation>
<translation id="4356973930735388585">à¦à¦‡ সাইটে আকà§à¦°à¦®à¦£à¦•à¦¾à¦°à§€à¦°à¦¾ আপনার কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à¦°à§‡ কà§à¦·à¦¤à¦¿à¦•à¦¾à¦°à¦• পà§à¦°à§‹à¦—à§à¦°à¦¾à¦® ইনসà§à¦Ÿà¦² করতে পারে যা আপনার তথà§à¦¯ (উদাহরণসà§à¦¬à¦°à§à¦ª, ফটো, পাসওয়ারà§à¦¡, বারà§à¦¤à¦¾ à¦à¦¬à¦‚ কà§à¦°à§‡à¦¡à¦¿à¦Ÿ কারà§à¦¡) চà§à¦°à¦¿ করতে বা মà§à¦›à§‡ দিতে পারে।</translation>
<translation id="4372948949327679948">পà§à¦°à¦¤à§à¦¯à¦¾à¦¶à¦¿à¦¤ <ph name="VALUE_TYPE" /> মান৷</translation>
<translation id="4377125064752653719">আপনি <ph name="DOMAIN" />-ঠপৌà¦à¦›à¦¾à¦¨à§‹à¦° পà§à¦°à¦šà§‡à¦·à§à¦Ÿà¦¾ করেছেন, তবে সারà§à¦­à¦¾à¦°à¦Ÿà¦¿ যে শংসাপতà§à¦°à¦Ÿà¦¿ উপসà§à¦¥à¦¾à¦ªà¦¨ করেছে সেটির জারিকরà§à¦¤à¦¾ সেটিকে পà§à¦°à¦¤à§à¦¯à¦¾à¦¹à¦¾à¦° করেছে৷ à¦à¦° অরà§à¦¥ হ'ল সারà§à¦­à¦¾à¦°à¦Ÿà¦¿ যে সà§à¦°à¦•à§à¦·à¦¾ পà§à¦°à¦®à¦¾à¦¨à¦ªà¦¤à§à¦° উপসà§à¦¥à¦¾à¦ªà¦¨ করেছে তা কোনওমতেই বিশà§à¦¬à¦¾à¦¸à¦¯à§‹à¦—à§à¦¯ নয়৷ হতে পারে আপনি à¦à¦•à¦œà¦¨ আকà§à¦°à¦®à¦£à¦•à¦¾à¦°à§€à¦° সাথে যোগাযোগ করছেন৷</translation>
@@ -632,6 +632,7 @@
<translation id="5669703222995421982">বà§à¦¯à¦•à§à¦¤à¦¿à¦—তকৃত সামগà§à¦°à§€ পান</translation>
<translation id="5675650730144413517">à¦à¦‡ পৃষà§à¦ à¦¾à¦Ÿà¦¿ কাজ করছে না</translation>
<translation id="5689199277474810259">JSON ঠরপà§à¦¤à¦¾à¦¨à¦¿ করà§à¦¨</translation>
+<translation id="5689516760719285838">লোকেশন</translation>
<translation id="5710435578057952990">à¦à¦‡ ওয়েবসাইটির পরিচয় যাচাই করা হয় নি৷</translation>
<translation id="5719499550583120431">পà§à¦°à¦¿à¦ªà§‡à¦¡ কারà§à¦¡ গà§à¦°à¦¹à¦£ করা হয়।</translation>
<translation id="5720705177508910913">বরà§à¦¤à¦®à¦¾à¦¨ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€</translation>
@@ -749,7 +750,7 @@
<translation id="6753269504797312559">নীতি মান</translation>
<translation id="6757797048963528358">আপনার ডিভাইস নিদà§à¦°à¦¾ মোডে গিয়েছে।</translation>
<translation id="6778737459546443941">আপনার পিতামাতা à¦à¦–নও à¦à¦Ÿà¦¿ অনà§à¦®à§‹à¦¦à¦¨ করেন নি</translation>
-<translation id="681021252041861472">আবশà§à¦¯à¦• কà§à¦·à§‡à¦¤à§à¦°</translation>
+<translation id="681021252041861472">à¦à¦‡ ফিলà§à¦¡à¦Ÿà¦¿ ফাà¦à¦•à¦¾ রাখা যাবে না</translation>
<translation id="6810899417690483278">কাসà§à¦Ÿà¦®à¦¾à¦‡à¦œà§‡à¦¶à¦¨ আইডি</translation>
<translation id="6820686453637990663">CVC</translation>
<translation id="6824266427216888781">আঞà§à¦šà¦²à¦¿à¦• ডেটা লোড করা যায়নি</translation>
@@ -799,7 +800,7 @@
<translation id="724691107663265825">à¦à¦‡ সাইটটিতে মà§à¦¯à¦¾à¦²à¦“য়à§à¦¯à¦¾à¦° আছে</translation>
<translation id="724975217298816891">আপনার কারà§à¦¡à§‡à¦° বিবরণ আপডেট করার জনà§à¦¯ মেয়াদ শেষের তারিখ à¦à¦¬à¦‚ <ph name="CREDIT_CARD" /> à¦à¦° CVC লিখà§à¦¨à¥¤ আপনি নিশà§à¦šà¦¿à¦¤ করলে, আপনার কারà§à¦¡à§‡à¦° বিবরণ à¦à¦‡ সাইটের সাথে শেয়ার করা হবে।</translation>
<translation id="7260504762447901703">অà§à¦¯à¦¾à¦•à§à¦¸à§‡à¦¸ পà§à¦°à¦¤à§à¦¯à¦¾à¦¹à¦¾à¦° করà§à¦¨</translation>
-<translation id="7271803869921933038">পà§à¦°à¦¿à¦ªà§‡à¦¡ কারà§à¦¡ গà§à¦°à¦¹à¦£ করা হয়</translation>
+<translation id="7271803869921933038">à¦à¦‡ পà§à¦°à¦¿à¦ªà§‡à¦¡ কারà§à¦¡à¦—à§à¦²à¦¿ গà§à¦°à¦¹à¦£ করা হয়</translation>
<translation id="7275334191706090484">পরিচালিত বà§à¦•à¦®à¦¾à¦°à§à¦•à¦—à§à¦²à¦¿</translation>
<translation id="7298195798382681320">পà§à¦°à¦¸à§à¦¤à¦¾à¦¬à¦¿à¦¤</translation>
<translation id="7309308571273880165"><ph name="CRASH_TIME" /> ঠকà§à¦°à§à¦¯à¦¾à¦¶ পà§à¦°à¦¤à¦¿à¦¬à§‡à¦¦à¦¨ কà§à¦¯à¦¾à¦ªà¦šà¦¾à¦° করা হয়েছে (বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•à¦¾à¦°à§€ দà§à¦¬à¦¾à¦°à¦¾ আপলোডের অনà§à¦°à§‹à¦§ করা হয়েছে, à¦à¦–নও আপলোড করা হয়নি)</translation>
@@ -982,7 +983,7 @@
<translation id="8730621377337864115">সমà§à¦ªà¦¨à§à¦¨ হয়েছে</translation>
<translation id="8738058698779197622">নিরাপদ নেটওয়ারà§à¦• সংযোগ সà§à¦¥à¦¾à¦ªà¦¨ করতে আপনার ঘড়িকে সঠিকভাবে সেট করতে হবে৷ নিরাপদ সংযোগ সà§à¦¥à¦¾à¦ªà¦¨ করার জনà§à¦¯ নিজেদের সনাকà§à¦¤ করার জনà§à¦¯ ওয়েবসাইটগà§à¦²à¦¿ যে শংসাপতà§à¦°à¦—à§à¦²à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦° করে, সেগà§à¦²à¦¿ শà§à¦§à§à¦®à¦¾à¦¤à§à¦° নিরà§à¦¦à¦¿à¦·à§à¦Ÿ সময়ের জনà§à¦¯ বৈধ থাকে৷ যেহেতৠআপনার ডিভাইসের ঘড়িটি ভà§à¦², সেই জনà§à¦¯ Chromium সঠিকভাবে শংসাপতà§à¦°à¦—à§à¦²à¦¿ পরীকà§à¦·à¦¾ করতে পারে না৷</translation>
<translation id="8740359287975076522"><ph name="HOST_NAME" /> à¦à¦° &lt;abbr id="dnsDefinition"&gt;DNS ঠিকানা&lt;/abbr&gt; পাওয়া যায়নি। সমসà§à¦¯à¦¾ নিরà§à¦£à§Ÿ করা হচà§à¦›à§‡à¥¤</translation>
-<translation id="874846938927089722">কà§à¦°à§‡à¦¡à¦¿à¦Ÿ ও পà§à¦°à¦¿à¦ªà§‡à¦¡ কারà§à¦¡ গà§à¦°à¦¹à¦£ করা হয়</translation>
+<translation id="874846938927089722">à¦à¦‡ কà§à¦°à§‡à¦¡à¦¿à¦Ÿ ও পà§à¦°à¦¿à¦ªà§‡à¦¡ কারà§à¦¡à¦—à§à¦²à¦¿ গà§à¦°à¦¹à¦£ করা হয়</translation>
<translation id="8759274551635299824">à¦à¦‡ কারà§à¦¡à¦Ÿà¦¿à¦° মেয়াদ শেষ হয়েছে</translation>
<translation id="8761567432415473239">Google নিরাপদ বà§à¦°à¦¾à¦‰à¦œà¦¿à¦‚ সমà§à¦ªà§à¦°à¦¤à¦¿ <ph name="SITE" /> ঠ<ph name="BEGIN_LINK" />কà§à¦·à¦¤à¦¿à¦•à¦¾à¦°à¦• পà§à¦°à§‹à¦—à§à¦°à¦¾à¦®à¦—à§à¦²à¦¿ খà§à¦à¦œà§‡ পেয়েছে<ph name="END_LINK" />৷</translation>
<translation id="8790007591277257123">&amp;মà§à¦›à§‡ ফেলাকে আবার করà§à¦¨</translation>
@@ -1045,11 +1046,11 @@
<translation id="933712198907837967">Diners Club</translation>
<translation id="935608979562296692">ফরà§à¦® সাফ করà§à¦¨</translation>
<translation id="939736085109172342">নতà§à¦¨ ফোলà§à¦¡à¦¾à¦°</translation>
-<translation id="951104842009476243">ডেবিট ও পà§à¦°à¦¿à¦ªà§‡à¦¡ কারà§à¦¡ গà§à¦°à¦¹à¦£ করা হয়</translation>
+<translation id="951104842009476243">à¦à¦‡ ডেবিট ও পà§à¦°à¦¿à¦ªà§‡à¦¡ কারà§à¦¡à¦—à§à¦²à¦¿ গà§à¦°à¦¹à¦£ করা হয়</translation>
<translation id="969892804517981540">অফিসিয়াল বিলà§à¦¡</translation>
<translation id="975560348586398090">{COUNT,plural, =0{কিছà§à¦‡ নয়}=1{১টি আইটেম}one{#টি আইটেম}other{#টি আইটেম}}</translation>
<translation id="981121421437150478">অফলাইন</translation>
-<translation id="988159990683914416">বিকাশকারী বিলà§à¦¡</translation>
+<translation id="988159990683914416">ডেভেলপার বিলà§à¦¡</translation>
<translation id="989988560359834682">ঠিকানা সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ করà§à¦¨</translation>
<translation id="992115559265932548"><ph name="MICROSOFT_ACTIVE_DIRECTORY" /></translation>
<translation id="992432478773561401">"<ph name="SOFTWARE_NAME" />" আপনার কমà§à¦ªà¦¿à¦‰à¦Ÿà¦¾à¦° বা নেটওয়ারà§à¦•à§‡ সঠিকভাবে ইনসà§à¦Ÿà¦² করা হয়নি:
diff --git a/chromium/components/strings/components_strings_ca.xtb b/chromium/components/strings/components_strings_ca.xtb
index 2ef442da774..7f9c6cde633 100644
--- a/chromium/components/strings/components_strings_ca.xtb
+++ b/chromium/components/strings/components_strings_ca.xtb
@@ -77,7 +77,7 @@
<translation id="1549470594296187301">Heu d'activar el JavaScript per utilitzar aquesta funció.</translation>
<translation id="1559528461873125649">No existeix el fitxer o el directori</translation>
<translation id="1583429793053364125">S'ha produït un error en mostrar aquesta pàgina web.</translation>
-<translation id="1590457302292452960">Genera una contrasenya segura…</translation>
+<translation id="1590457302292452960">Genera una contrasenya segura...</translation>
<translation id="1592005682883173041">Accés a les dades locals</translation>
<translation id="1594030484168838125">Tria</translation>
<translation id="1620510694547887537">Càmera</translation>
@@ -155,7 +155,7 @@
<translation id="214556005048008348">Cancel·la el pagament</translation>
<translation id="2147827593068025794">Sincronització en segon pla</translation>
<translation id="2148613324460538318">Afegeix una targeta</translation>
-<translation id="2149973817440762519">Edició de l'adreça d'interès</translation>
+<translation id="2149973817440762519">Edita l'adreça d'interès</translation>
<translation id="2154054054215849342">La sincronització no està disponible per al teu domini</translation>
<translation id="2154484045852737596">Edita la targeta</translation>
<translation id="2166049586286450108">Accés complet d'administrador</translation>
@@ -430,14 +430,14 @@
<translation id="4103249731201008433">El número de sèrie del dispositiu no és vàlid</translation>
<translation id="410351446219883937">Reproducció automàtica</translation>
<translation id="4103763322291513355">Visiteu &lt;strong&gt;chrome://policy&lt;/strong&gt; per veure la llista d'URL inclosos a la llista negra i altres polítiques aplicades per l'administrador del sistema.</translation>
-<translation id="4116663294526079822">Permet sempre en aquest lloc</translation>
+<translation id="4116663294526079822">Permet sempre en aquest lloc web</translation>
<translation id="4117700440116928470">L'àmbit de la política no s'admet.</translation>
<translation id="4129401438321186435">{COUNT,plural, =1{1 element més}other{# elements més}}</translation>
<translation id="4130226655945681476">Comproveu els cables de xarxa, el mòdem i l'encaminador</translation>
<translation id="413544239732274901">Més informació</translation>
<translation id="4148925816941278100">American Express</translation>
<translation id="4151403195736952345">Utilitza el valor predeterminat global (detecta)</translation>
-<translation id="4165986682804962316">Configuració del lloc</translation>
+<translation id="4165986682804962316">Configuració del lloc web</translation>
<translation id="4169947484918424451">Voleu que Chromium desi aquesta targeta?</translation>
<translation id="4171400957073367226">La signatura de verificació és incorrecta</translation>
<translation id="4173827307318847180">{MORE_ITEMS,plural, =1{<ph name="ITEM_COUNT" /> element més}other{<ph name="ITEM_COUNT" /> elements més}}</translation>
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Obtén contingut personalitzat</translation>
<translation id="5675650730144413517">Aquesta pàgina no funciona</translation>
<translation id="5689199277474810259">Exporta a JSON</translation>
+<translation id="5689516760719285838">Ubicació</translation>
<translation id="5710435578057952990">La identitat d'aquest lloc web no ha estat verificada.</translation>
<translation id="5719499550583120431">S'accepten targetes de prepagament.</translation>
<translation id="5720705177508910913">Usuari actual</translation>
diff --git a/chromium/components/strings/components_strings_cs.xtb b/chromium/components/strings/components_strings_cs.xtb
index d9278f0f52b..7ae382d7cec 100644
--- a/chromium/components/strings/components_strings_cs.xtb
+++ b/chromium/components/strings/components_strings_cs.xtb
@@ -627,6 +627,7 @@ Kontaktujte administrátora systému.</translation>
<translation id="5669703222995421982">Získejte personalizovaný obsah</translation>
<translation id="5675650730144413517">Tato stránka nefunguje</translation>
<translation id="5689199277474810259">Exportovat do formátu JSON</translation>
+<translation id="5689516760719285838">Poloha</translation>
<translation id="5710435578057952990">Identita těchto webových stránek nebyla ověřena.</translation>
<translation id="5719499550583120431">Obchodník přijímá předplacené karty.</translation>
<translation id="5720705177508910913">Aktuální uživatel</translation>
diff --git a/chromium/components/strings/components_strings_da.xtb b/chromium/components/strings/components_strings_da.xtb
index cb44fcab455..8527a7afd89 100644
--- a/chromium/components/strings/components_strings_da.xtb
+++ b/chromium/components/strings/components_strings_da.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">FÃ¥ tilpasset indhold</translation>
<translation id="5675650730144413517">Denne side virker ikke</translation>
<translation id="5689199277474810259">Eksportér i JSON</translation>
+<translation id="5689516760719285838">Placering</translation>
<translation id="5710435578057952990">Dette websites identitet er ikke blevet bekræftet.</translation>
<translation id="5719499550583120431">Forudbetalte kort accepteres.</translation>
<translation id="5720705177508910913">Aktuel bruger</translation>
diff --git a/chromium/components/strings/components_strings_de.xtb b/chromium/components/strings/components_strings_de.xtb
index 4aa5924c011..ea29d50d356 100644
--- a/chromium/components/strings/components_strings_de.xtb
+++ b/chromium/components/strings/components_strings_de.xtb
@@ -397,7 +397,7 @@
<translation id="3759461132968374835">Es liegen keine kürzlich gemeldeten Abstürze vor. Abstürze, die bei deaktivierter Absturzberichtsfunktion aufgetreten sind, werden hier nicht angezeigt.</translation>
<translation id="3765032636089507299">Die Seite "Safe Browsing" wird überarbeitet.</translation>
<translation id="3778403066972421603">Möchten Sie diese Karte in Ihrem Google-Konto und auf diesem Gerät speichern?</translation>
-<translation id="3783418713923659662">MasterCard</translation>
+<translation id="3783418713923659662">Mastercard</translation>
<translation id="3787705759683870569">Ablaufdatum: <ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
<translation id="3808375843007691220">Warnung: experimentelle Funktionen!</translation>
<translation id="382518646247711829">Falls Sie einen Proxyserver verwenden...</translation>
@@ -630,6 +630,7 @@
<translation id="5669703222995421982">Personalisierte Inhalte erhalten</translation>
<translation id="5675650730144413517">Diese Seite funktioniert nicht</translation>
<translation id="5689199277474810259">Als JSON exportieren</translation>
+<translation id="5689516760719285838">Ort</translation>
<translation id="5710435578057952990">Die Identität dieser Website wurde nicht verifiziert.</translation>
<translation id="5719499550583120431">Prepaidkarten werden akzeptiert.</translation>
<translation id="5720705177508910913">Aktueller Nutzer</translation>
@@ -698,7 +699,7 @@
<translation id="6305205051461490394"><ph name="URL" /> ist nicht erreichbar.</translation>
<translation id="6319915415804115995">Vor über einem Jahr zuletzt verwendet</translation>
<translation id="6321917430147971392">Überprüfen Sie die DNS-Einstellungen.</translation>
-<translation id="6325286409953503969">Interessiert an coolen neuen Chrome-Funktionen? <ph name="BEGIN_LINK" />Testen Sie unsere Dev-Version.<ph name="END_LINK" /></translation>
+<translation id="6325286409953503969">Interessiert an coolen neuen Chrome-Funktionen? <ph name="BEGIN_LINK" />Testen Sie unseren Entwicklerkanal.<ph name="END_LINK" /></translation>
<translation id="6328639280570009161">Deaktivieren Sie die Netzwerkvorhersage.</translation>
<translation id="6328786501058569169">Sie befinden sich auf einer betrügerischen Website</translation>
<translation id="6337133576188860026">Es werden weniger als <ph name="SIZE" /> Speicherplatz freigegeben. Manche Websites werden beim nächsten Öffnen eventuell langsamer geladen.</translation>
@@ -748,7 +749,7 @@
<translation id="6753269504797312559">Wert der Richtlinie</translation>
<translation id="6757797048963528358">Ihr Gerät ist im Ruhemodus.</translation>
<translation id="6778737459546443941">Dein Elternteil hat die Berechtigung noch nicht erteilt</translation>
-<translation id="681021252041861472">Pflichtfeld</translation>
+<translation id="681021252041861472">Erforderliches Feld</translation>
<translation id="6810899417690483278">Personalisierungs-ID</translation>
<translation id="6820686453637990663">CVC</translation>
<translation id="6824266427216888781">Fehler beim Laden der Regionsdaten</translation>
@@ -858,7 +859,7 @@
<translation id="7668654391829183341">Unbekanntes Gerät</translation>
<translation id="7669271284792375604">Unbefugte Dritte auf dieser Website versuchen eventuell, Sie zur Installation von Programmen zu bewegen, die sich nachteilig auf Ihre Browsernutzung auswirken. Dabei kann zum Beispiel Ihre Startseite geändert werden oder es erscheinen zusätzliche Anzeigen auf von Ihnen besuchten Websites.</translation>
<translation id="7682287625158474539">Versand</translation>
-<translation id="7695552107151968219">Interessiert an coolen neuen Chrome-Funktionen? <ph name="BEGIN_LINK" />Testen Sie unsere Betaversion.<ph name="END_LINK" /></translation>
+<translation id="7695552107151968219">Interessiert an coolen neuen Chrome-Funktionen? <ph name="BEGIN_LINK" />Testen Sie unseren Betakanal.<ph name="END_LINK" /></translation>
<translation id="7699293099605015246">Momentan sind keine Artikel verfügbar</translation>
<translation id="7701040980221191251">Keine</translation>
<translation id="7704050614460855821"><ph name="BEGIN_LINK" />Weiter zu <ph name="SITE" /> (unsicher)<ph name="END_LINK" /></translation>
@@ -971,7 +972,7 @@
</translation>
<translation id="859285277496340001">In dem Zertifikat ist kein Mechanismus angegeben, mit dem geprüft werden kann, ob es zurückgerufen wurde.</translation>
<translation id="8620436878122366504">Deine Eltern haben die Berechtigung noch nicht erteilt</translation>
-<translation id="8625384913736129811">Diese Karte auf diesem Gerät speichern</translation>
+<translation id="8625384913736129811">Diese Karte für dieses Gerät speichern</translation>
<translation id="8647750283161643317">Alle auf Standardeinstellung zurücksetzen</translation>
<translation id="8660471606262461360">Aus Google Payments</translation>
<translation id="8688672835843460752">Verfügbar</translation>
diff --git a/chromium/components/strings/components_strings_el.xtb b/chromium/components/strings/components_strings_el.xtb
index 890af2ad1b2..5c0faf37179 100644
--- a/chromium/components/strings/components_strings_el.xtb
+++ b/chromium/components/strings/components_strings_el.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Λήψη εξατομικευμένου πεÏιεχομένου</translation>
<translation id="5675650730144413517">Αυτή η σελίδα δεν λειτουÏγεί</translation>
<translation id="5689199277474810259">Εξαγωγή σε JSON</translation>
+<translation id="5689516760719285838">Τοποθεσία</translation>
<translation id="5710435578057952990">Η ταυτότητα Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… ιστότοπου δεν έχει επαληθευτεί.</translation>
<translation id="5719499550583120431">Οι Ï€ÏοπληÏωμένες κάÏτες γίνονται δεκτές.</translation>
<translation id="5720705177508910913">ΤÏέχων χÏήστης</translation>
diff --git a/chromium/components/strings/components_strings_en-GB.xtb b/chromium/components/strings/components_strings_en-GB.xtb
index 550524f9277..2c19a0f8b85 100644
--- a/chromium/components/strings/components_strings_en-GB.xtb
+++ b/chromium/components/strings/components_strings_en-GB.xtb
@@ -77,7 +77,7 @@
<translation id="1549470594296187301">JavaScript must be enabled to use this feature.</translation>
<translation id="1559528461873125649">No such file or directory</translation>
<translation id="1583429793053364125">Something went wrong while displaying this web page.</translation>
-<translation id="1590457302292452960">Generate a strong password…</translation>
+<translation id="1590457302292452960">Generate a strong password...</translation>
<translation id="1592005682883173041">Local Data Access</translation>
<translation id="1594030484168838125">Choose</translation>
<translation id="1620510694547887537">Camera</translation>
@@ -398,7 +398,7 @@
<translation id="3759461132968374835">You have no recently reported crashes. Crashes that occurred when crash reporting was disabled will not appear here.</translation>
<translation id="3765032636089507299">The Safe Browsing page is under construction.</translation>
<translation id="3778403066972421603">Do you want to save this card to your Google account and on this device?</translation>
-<translation id="3783418713923659662">MasterCard</translation>
+<translation id="3783418713923659662">Mastercard</translation>
<translation id="3787705759683870569">Expires <ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
<translation id="3808375843007691220">Warning: Experimental features ahead!</translation>
<translation id="382518646247711829">If you use a proxy server...</translation>
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Get personalised content</translation>
<translation id="5675650730144413517">This page isn’t working</translation>
<translation id="5689199277474810259">Export to JSON</translation>
+<translation id="5689516760719285838">Location</translation>
<translation id="5710435578057952990">The identity of this website has not been verified.</translation>
<translation id="5719499550583120431">Prepaid cards are accepted.</translation>
<translation id="5720705177508910913">Current user</translation>
diff --git a/chromium/components/strings/components_strings_es-419.xtb b/chromium/components/strings/components_strings_es-419.xtb
index 008a8fb8133..da44466cd2a 100644
--- a/chromium/components/strings/components_strings_es-419.xtb
+++ b/chromium/components/strings/components_strings_es-419.xtb
@@ -399,7 +399,7 @@
<translation id="3759461132968374835">No has notificado ningún bloqueo recientemente. Los bloqueos que se hayan producido mientras la función de notificación de bloqueos estaba desactivada no aparecerán en esta página.</translation>
<translation id="3765032636089507299">La página de Navegación segura está en construcción.</translation>
<translation id="3778403066972421603">¿Deseas guardar esta tarjeta en tu cuenta de Google y en este dispositivo?</translation>
-<translation id="3783418713923659662">MasterCard</translation>
+<translation id="3783418713923659662">Mastercard</translation>
<translation id="3787705759683870569">Vencimiento: <ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
<translation id="3808375843007691220">Advertencia: Se detectaron funciones experimentales</translation>
<translation id="382518646247711829">Si utilizas un servidor proxy...</translation>
@@ -632,6 +632,7 @@
<translation id="5669703222995421982">Obtener contenido personalizado</translation>
<translation id="5675650730144413517">Esta página no funciona</translation>
<translation id="5689199277474810259">Exportar a JSON</translation>
+<translation id="5689516760719285838">Ubicación</translation>
<translation id="5710435578057952990">No se ha verificado la identidad de este sitio web.</translation>
<translation id="5719499550583120431">Se aceptan tarjetas de prepago.</translation>
<translation id="5720705177508910913">Usuario actual</translation>
diff --git a/chromium/components/strings/components_strings_es.xtb b/chromium/components/strings/components_strings_es.xtb
index 53fc1fbb4c2..49f78a58346 100644
--- a/chromium/components/strings/components_strings_es.xtb
+++ b/chromium/components/strings/components_strings_es.xtb
@@ -161,7 +161,7 @@
<translation id="2166049586286450108">Acceso de administrador completo</translation>
<translation id="2166378884831602661">Este sitio web no puede proporcionar una conexión segura</translation>
<translation id="2181821976797666341">Políticas</translation>
-<translation id="2183608646556468874">Número de teléfono</translation>
+<translation id="2183608646556468874">N.º de teléfono</translation>
<translation id="2184405333245229118">{COUNT,plural, =1{Una dirección}other{# direcciones}}</translation>
<translation id="2187317261103489799">Detectar (predeterminado)</translation>
<translation id="2202020181578195191">Introduce un año de vencimiento válido</translation>
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Obtener contenido personalizado</translation>
<translation id="5675650730144413517">Esta página no funciona</translation>
<translation id="5689199277474810259">Exportar a JSON</translation>
+<translation id="5689516760719285838">Ubicación</translation>
<translation id="5710435578057952990">No se ha verificado la identidad de este sitio web.</translation>
<translation id="5719499550583120431">Se aceptan tarjetas prepago.</translation>
<translation id="5720705177508910913">Usuario actual</translation>
@@ -796,7 +797,7 @@
<translation id="721197778055552897"><ph name="BEGIN_LINK" />Más información<ph name="END_LINK" /> sobre este problema.</translation>
<translation id="7219179957768738017">La conexión utiliza <ph name="SSL_VERSION" />.</translation>
<translation id="7220786058474068424">Procesando pago</translation>
-<translation id="724691107663265825">El sitio al que vas a acceder contiene software malicioso</translation>
+<translation id="724691107663265825">El sitio web al que vas a acceder contiene software malicioso</translation>
<translation id="724975217298816891">Introduce la fecha de caducidad y el código CVC de la tarjeta <ph name="CREDIT_CARD" /> para actualizar sus detalles. Cuando la confirmes, su información se compartirá con este sitio web.</translation>
<translation id="7260504762447901703">Revoca el acceso</translation>
<translation id="7271803869921933038">Tarjetas prepago aceptadas</translation>
@@ -1006,7 +1007,7 @@
<translation id="8957210676456822347">Autorización de portal cautivo</translation>
<translation id="8971063699422889582">El certificado del servidor ha caducado.</translation>
<translation id="8989148748219918422"><ph name="ORGANIZATION" /> [<ph name="COUNTRY" />]</translation>
-<translation id="8996941253935762404">El sitio al que vas a acceder contiene programas dañinos</translation>
+<translation id="8996941253935762404">El sitio web al que vas a acceder contiene programas dañinos</translation>
<translation id="8997023839087525404">El servidor ha mostrado un certificado que no se ha hecho público mediante la Política de Transparencia en los Certificados. Este requisito se aplica a algunos certificados para garantizar que son de confianza y ofrecer protección contra los atacantes.</translation>
<translation id="9001074447101275817">El proxy <ph name="DOMAIN" /> requiere un nombre de usuario y una contraseña.</translation>
<translation id="9005998258318286617">Se ha producido un error al cargar el documento PDF.</translation>
diff --git a/chromium/components/strings/components_strings_et.xtb b/chromium/components/strings/components_strings_et.xtb
index 5dd0ffe3ff6..b9a4e11d398 100644
--- a/chromium/components/strings/components_strings_et.xtb
+++ b/chromium/components/strings/components_strings_et.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Isikupärastatud sisu hankimine</translation>
<translation id="5675650730144413517">See leht ei tööta</translation>
<translation id="5689199277474810259">Ekspordi JSON-vormingus</translation>
+<translation id="5689516760719285838">Asukoht</translation>
<translation id="5710435578057952990">Selle veebisaidi identiteeti pole kinnitanud.</translation>
<translation id="5719499550583120431">Kaupmees aktsepteerib ettemakstud kaarte.</translation>
<translation id="5720705177508910913">Praegune kasutaja</translation>
@@ -886,7 +887,7 @@
<translation id="7812922009395017822">Mir</translation>
<translation id="7813600968533626083">Kas eemaldada Chrome'ist vormi soovitus?</translation>
<translation id="7815407501681723534">Otsingule „<ph name="SEARCH_STRING" />†leiti <ph name="NUMBER_OF_RESULTS" /> <ph name="SEARCH_RESULTS" />.</translation>
-<translation id="7818867226424560206">Reeglite haldamine</translation>
+<translation id="7818867226424560206">Eeskirjade haldamine</translation>
<translation id="782886543891417279">WiFi-võrk, mida kasutate (<ph name="WIFI_NAME" />), võib nõuda sisselogimislehe külastamist.</translation>
<translation id="785549533363645510">Te pole siiski nähtamatu. Inkognito režiimi kasutamine ei varja teie sirvimist tööandja, Interneti-teenuse pakkuja ega külastatavate veebisaitide eest.</translation>
<translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
diff --git a/chromium/components/strings/components_strings_fa.xtb b/chromium/components/strings/components_strings_fa.xtb
index 71c224db047..3483ca747d7 100644
--- a/chromium/components/strings/components_strings_fa.xtb
+++ b/chromium/components/strings/components_strings_fa.xtb
@@ -462,7 +462,7 @@
<translation id="4325863107915753736">مقاله یاÙت نشد.</translation>
<translation id="4326324639298822553">تاریخ انقضا را بررسی و دوباره امتحان کنید</translation>
<translation id="4331708818696583467">امن نیست</translation>
-<translation id="4346197816712207223">کارت‌های اعتباری قابل‌قبول</translation>
+<translation id="4346197816712207223">کارت‌های اعتباری قابل‌‌قبول</translation>
<translation id="4356973930735388585">مهاجم‌ها در این سایت ممکن است تلاش کنند برنامه‌های خطرناکی در رایانه شما نصب کنند که اطلاعات شما (مانند عکس‌ها، گذرواژه‌ها، پیام‌ها و کارت‌های اعتباری) را به سرقت می‌برند یا حذ٠می‌کنند.</translation>
<translation id="4372948949327679948">مقدار مورد انتظار <ph name="VALUE_TYPE" />.</translation>
<translation id="4377125064752653719">شما سعی در دسترسی به <ph name="DOMAIN" /> را داشتید، اما صادر کننده، گواهی ارائه شده از سوی سرور را باطل کرده است. یعنی اصلاً نباید به اطلاعات کاربری که این سرور ارائه می‌کند اطمینان کرد. ممکن است شما با مهاجمی در ارتباط باشید.</translation>
@@ -526,7 +526,7 @@
<translation id="4923459931733593730">پرداخت</translation>
<translation id="4926049483395192435">باید مشخص شود.</translation>
<translation id="4926340098269537727"><ph name="ACTIVE_MATCH" />/<ph name="TOTAL_MATCHCOUNT" /></translation>
-<translation id="495170559598752135">عملکردها</translation>
+<translation id="495170559598752135">کنش‌ها</translation>
<translation id="4958444002117714549">بزرگ کردن Ùهرست</translation>
<translation id="4974590756084640048">Ùعال کردن مجدد اخطارها</translation>
<translation id="4989542687859782284">دردسترس نیست</translation>
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">دریاÙت محتوای شخصی‌سازی‌شده</translation>
<translation id="5675650730144413517">این صÙحه کار نمی‌کند</translation>
<translation id="5689199277474810259">â€ØµØ§Ø¯Ø± کردن به JSON</translation>
+<translation id="5689516760719285838">مکان</translation>
<translation id="5710435578057952990">هویت این وب سایت تأیید نشده است.</translation>
<translation id="5719499550583120431">کارت‌های پیش‌پرداخت پذیرÙته می‌شوند.</translation>
<translation id="5720705177508910913">کاربر کنونی</translation>
@@ -971,7 +972,7 @@
<translation id="858637041960032120">اÙزودن شماره تلÙÙ†</translation>
<translation id="859285277496340001">این مجوز هیچ مکانیزمی را برای بررسی اینکه آیا باطل شده یا نه مشخص نمی‌کند.</translation>
<translation id="8620436878122366504">والدینتان هنوز این سایت را تأیید نکرده‌اند</translation>
-<translation id="8625384913736129811">ذخیره این کارت در این دستگاه</translation>
+<translation id="8625384913736129811">ذخیره کردن این کارت در این دستگاه</translation>
<translation id="8647750283161643317">بازنشانی همه به موارد پیش‌Ùرض</translation>
<translation id="8660471606262461360">â€Ø§Ø² Google Payments</translation>
<translation id="8688672835843460752">دردسترس</translation>
diff --git a/chromium/components/strings/components_strings_fi.xtb b/chromium/components/strings/components_strings_fi.xtb
index 3c65188c2a7..1425d4be730 100644
--- a/chromium/components/strings/components_strings_fi.xtb
+++ b/chromium/components/strings/components_strings_fi.xtb
@@ -302,7 +302,7 @@
<ph name="PLATFORM_TEXT" /></translation>
<translation id="320323717674993345">Peruuta maksu</translation>
<translation id="3207960819495026254">Kirjanmerkeissä</translation>
-<translation id="3209375525920864198">Anna kelvollinen käynnin nimi.</translation>
+<translation id="3209375525920864198">Anna kelvollinen istunnon nimi.</translation>
<translation id="3211223744486044430">Jos haluat maksaa nopeammin seuraavalla kerralla, tallenna tämä kortti Google-tilillesi ja tälle laitteelle.</translation>
<translation id="3225919329040284222">Palvelin esitti varmenteen, joka ei vastaa sisäänrakennettuja odotuksia. Tietyillä tehokkaasti suojatuilla sivustoilla on odotuksia, joilla suojataan käyttäjiä.</translation>
<translation id="3226128629678568754">Paina päivityspainiketta, niin sivun lataukseen tarvittavat tiedot lähetetään uudelleen.</translation>
@@ -399,7 +399,7 @@
<translation id="3759461132968374835">Ei viimeaikaisia kaatumisilmoituksia. Jos selain kaatui kaatumisilmoitusten ollessa pois käytöstä, ilmoituksia ei näytetä täällä.</translation>
<translation id="3765032636089507299">Selaussuojasivu on työn alla.</translation>
<translation id="3778403066972421603">Haluatko tallentaa tämän kortin Google-tilille ja tälle laitteelle?</translation>
-<translation id="3783418713923659662">MasterCard</translation>
+<translation id="3783418713923659662">Mastercard</translation>
<translation id="3787705759683870569">Vanhenee <ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
<translation id="3808375843007691220">Varoitus: Kokeellisia ominaisuuksia</translation>
<translation id="382518646247711829">Jos käytät välityspalvelinta…</translation>
@@ -632,6 +632,7 @@
<translation id="5669703222995421982">Hanki räätälöityä sisältöä</translation>
<translation id="5675650730144413517">Sivu ei toimi</translation>
<translation id="5689199277474810259">Vie JSON-tiedostoon</translation>
+<translation id="5689516760719285838">Sijainti</translation>
<translation id="5710435578057952990">Tämän sivuston identiteettiä ei ole vahvistettu.</translation>
<translation id="5719499550583120431">Prepaid-kortit hyväksytään.</translation>
<translation id="5720705177508910913">Nykyinen käyttäjä</translation>
@@ -894,7 +895,7 @@
<translation id="7878176543348854470">Maksu- ja prepaid-kortit hyväksytään.</translation>
<translation id="7878562273885520351">Salasanasi on saattanut vaarantua.</translation>
<translation id="7887683347370398519">Tarkista CVC ja yritä uudelleen.</translation>
-<translation id="7893255318348328562">Käynnin nimi</translation>
+<translation id="7893255318348328562">Istunnon nimi</translation>
<translation id="79338296614623784">Anna kelvollinen puhelinnumero.</translation>
<translation id="7935318582918952113">DOM Distiller</translation>
<translation id="7938958445268990899">Palvelimen varmenne ei ole vielä voimassa.</translation>
@@ -944,7 +945,7 @@
<translation id="8298115750975731693">Käyttämäsi Wi-Fi (<ph name="WIFI_NAME" />) saattaa edellyttää vierailua osoitteessa <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" />.</translation>
<translation id="8306404619377842860">Verkkotunnukseen <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ei voi muodostaa salattua yhteyttä, koska tietokoneesi aika ja päivämäärä (<ph name="DATE_AND_TIME" />) ovat virheelliset. <ph name="BEGIN_LEARN_MORE_LINK" />Lisätietoja<ph name="END_LEARN_MORE_LINK" /></translation>
<translation id="8308427013383895095">Käännös epäonnistui, koska verkkoyhteydessä esiintyi ongelmia.</translation>
-<translation id="8311129316111205805">Lataa käynti</translation>
+<translation id="8311129316111205805">Lataa istunto</translation>
<translation id="8332188693563227489">Sivuston <ph name="HOST_NAME" /> käyttöoikeus evättiin</translation>
<translation id="834457929814110454">Jos ymmärrät käyntiä koskevat turvallisuusriskit, voit <ph name="BEGIN_LINK" />siirtyä tähän sivustoon<ph name="END_LINK" /> jo ennen haitallisten ohjelmien poistamista.</translation>
<translation id="8349305172487531364">Kirjanmerkkipalkki</translation>
diff --git a/chromium/components/strings/components_strings_fil.xtb b/chromium/components/strings/components_strings_fil.xtb
index d5e08db7a44..4110fe469a3 100644
--- a/chromium/components/strings/components_strings_fil.xtb
+++ b/chromium/components/strings/components_strings_fil.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Makakuha ng naka-personalize na content</translation>
<translation id="5675650730144413517">Hindi gumagana ang page na ito</translation>
<translation id="5689199277474810259">I-export sa JSON</translation>
+<translation id="5689516760719285838">Lokasyon</translation>
<translation id="5710435578057952990">Ang pagkilala ng website na ito ay hindi natukoy.</translation>
<translation id="5719499550583120431">Tinatanggap ang mga prepaid card.</translation>
<translation id="5720705177508910913">Kasalukuyang user</translation>
@@ -971,7 +972,7 @@
<translation id="858637041960032120">Magdagdag ng numero ng telepono</translation>
<translation id="859285277496340001">Hindi tumutukoy ang certificate na ito ng mekanismo upang masuri kung nabawi ito.</translation>
<translation id="8620436878122366504">Hindi pa ito inaaprubahan ng iyong mga magulang</translation>
-<translation id="8625384913736129811">I-save ang Card Na Ito sa Device Na Ito</translation>
+<translation id="8625384913736129811">I-save ang Card na Ito sa Device na Ito</translation>
<translation id="8647750283161643317">I-reset ang lahat sa default</translation>
<translation id="8660471606262461360">Mula sa Google Payments</translation>
<translation id="8688672835843460752">Available</translation>
diff --git a/chromium/components/strings/components_strings_fr.xtb b/chromium/components/strings/components_strings_fr.xtb
index 588d26375c4..45277fea1e3 100644
--- a/chromium/components/strings/components_strings_fr.xtb
+++ b/chromium/components/strings/components_strings_fr.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Obtenir une recommandation de contenu personnalisé</translation>
<translation id="5675650730144413517">Cette page ne fonctionne pas</translation>
<translation id="5689199277474810259">Exporter au format JSON</translation>
+<translation id="5689516760719285838">Position</translation>
<translation id="5710435578057952990">L'identité de ce site Web n'a pas été vérifiée.</translation>
<translation id="5719499550583120431">Les cartes prépayées sont acceptées.</translation>
<translation id="5720705177508910913">Utilisateur actuel</translation>
diff --git a/chromium/components/strings/components_strings_gu.xtb b/chromium/components/strings/components_strings_gu.xtb
index 3030416bf29..28d54f5de91 100644
--- a/chromium/components/strings/components_strings_gu.xtb
+++ b/chromium/components/strings/components_strings_gu.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">વà«àª¯àª•à«àª¤àª¿àª—ત કરેલ સામગà«àª°à«€ મેળવો</translation>
<translation id="5675650730144413517">આ પૃષà«àª  કામ કરી રહà«àª¯à«àª‚ નથી</translation>
<translation id="5689199277474810259">JSON પર નિકાસ કરો</translation>
+<translation id="5689516760719285838">સà«àª¥àª¾àª¨</translation>
<translation id="5710435578057952990">આ વેબસાઇટની ઓળખ ચકાસવામાં આવી નથી.</translation>
<translation id="5719499550583120431">પà«àª°à«€àªªà«‡àª‡àª¡ કારà«àª¡ સà«àªµà«€àª•àª¾àª°àªµàª¾àª®àª¾àª‚ આવે છે.</translation>
<translation id="5720705177508910913">વરà«àª¤àª®àª¾àª¨ વપરાશકરà«àª¤àª¾</translation>
@@ -799,7 +800,7 @@
<translation id="724691107663265825">સાઇટ આગળ મૉલવેર ધરાવે છે</translation>
<translation id="724975217298816891">તમારા કારà«àª¡àª¨à«€ વિગતોને અપડેટ કરવા <ph name="CREDIT_CARD" /> માટે સમાપà«àª¤àª¿ તારીખ અને CVC દાખલ કરો. àªàª•àªµàª¾àª° તમે પà«àª·à«àªŸàª¿ કરી લો, તે પછી આ સાઇટ સાથે તમારા કારà«àª¡àª¨à«€ વિગતો શેર કરવામાં આવશે.</translation>
<translation id="7260504762447901703">àªàª•à«àª¸à«‡àª¸ રદબાતલ કરો</translation>
-<translation id="7271803869921933038">સà«àªµà«€àª•à«ƒàª¤ પà«àª°à«€àªªà«‡àª‡àª¡ કારà«àª¡</translation>
+<translation id="7271803869921933038">સà«àªµà«€àª•à«ƒàª¤ પà«àª°àª¿àªªà«‡àª‡àª¡ કારà«àª¡</translation>
<translation id="7275334191706090484">સંચાલિત બà«àª•àª®àª¾àª°à«àª•à«àª¸</translation>
<translation id="7298195798382681320">ભલામણ કરેલ</translation>
<translation id="7309308571273880165">કà«àª°à«‡àª¶ રિપોરà«àªŸ <ph name="CRASH_TIME" /> ઠકૅપà«àªšàª° કરવામાં આવી (વપરાશકરà«àª¤àª¾ દà«àªµàª¾àª°àª¾ અપલોડની વિનંતી કરવામાં આવી, હજી સà«àª§à«€ અપલોડ કરેલ નથી)</translation>
@@ -982,7 +983,7 @@
<translation id="8730621377337864115">થઈ ગયà«àª‚</translation>
<translation id="8738058698779197622">àªàª• સà«àª°àª•à«àª·àª¿àª¤ કનેકà«àª¶àª¨ સà«àª¥àª¾àªªàª¿àª¤ કરવા માટે, તમારà«àª‚ ઘડિયાળ યોગà«àª¯ રીતે સેટ હોવà«àª‚ જરૂરી છે. આનà«àª‚ કારણ ઠકે વેબસાઇટà«àª¸ તેઓને ઓળખવા માટે જે પà«àª°àª®àª¾àª£àªªàª¤à«àª°à«‹àª¨à«‹ ઉપયોગ કરે છે તે ચોકà«àª•àª¸ સમય અવધિ માટે જ માનà«àª¯ હોય છે. તમારા ઉપકરણની ઘડિયાળ ખોટી હોવાને લીધે, Chromium આ પà«àª°àª®àª¾àª£àªªàª¤à«àª°à«‹àª¨à«‡ ચકાસી શકતà«àª‚ નથી.</translation>
<translation id="8740359287975076522"><ph name="HOST_NAME" /> નà«àª‚ &lt;abbr id="dnsDefinition"&gt;DNS સરનામà«àª‚&lt;/abbr&gt; શોધી શકાયà«àª‚ નથી. સમસà«àª¯àª¾àª¨à«àª‚ નિદાન કરી રહà«àª¯àª¾àª‚ છીàª.</translation>
-<translation id="874846938927089722">સà«àªµà«€àª•à«ƒàª¤ કà«àª°à«‡àª¡àª¿àªŸ અને પà«àª°à«€àªªà«‡àª‡àª¡ કારà«àª¡</translation>
+<translation id="874846938927089722">સà«àªµà«€àª•à«ƒàª¤ કà«àª°à«‡àª¡àª¿àªŸ અને પà«àª°àª¿àªªà«‡àª‡àª¡ કારà«àª¡</translation>
<translation id="8759274551635299824">આ કારà«àª¡àª¨à«€ સમયસીમા સમાપà«àª¤ થઈ ગઈ છે</translation>
<translation id="8761567432415473239">Google Safe Browsing ને તાજેતરમાં <ph name="SITE" /> પર <ph name="BEGIN_LINK" />હાનિકારક પà«àª°à«‹àª—à«àª°àª¾àª®à«àª¸ મળà«àª¯àª¾àª‚<ph name="END_LINK" />.</translation>
<translation id="8790007591277257123">&amp;કાઢી નાખવà«àª‚ ફરી કરો</translation>
@@ -1045,7 +1046,7 @@
<translation id="933712198907837967">ડાઇનરà«àª¸ કà«àª²àª¬</translation>
<translation id="935608979562296692">ફોરà«àª® સાફ કરો</translation>
<translation id="939736085109172342">નવà«àª‚ ફોલà«àª¡àª°</translation>
-<translation id="951104842009476243">સà«àªµà«€àª•à«ƒàª¤ ડેબિટ અને પà«àª°à«€àªªà«‡àª‡àª¡ કારà«àª¡</translation>
+<translation id="951104842009476243">સà«àªµà«€àª•à«ƒàª¤ ડેબિટ અને પà«àª°àª¿àªªà«‡àª‡àª¡ કારà«àª¡</translation>
<translation id="969892804517981540">આધિકારિક બિલà«àª¡</translation>
<translation id="975560348586398090">{COUNT,plural, =0{કોઈ નહીં}=1{1 આઇટમ}one{# આઇટમ}other{# આઇટમ}}</translation>
<translation id="981121421437150478">ઑફલાઇન</translation>
diff --git a/chromium/components/strings/components_strings_hi.xtb b/chromium/components/strings/components_strings_hi.xtb
index 270d3ac9122..91ea7d605bd 100644
--- a/chromium/components/strings/components_strings_hi.xtb
+++ b/chromium/components/strings/components_strings_hi.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">खास आपके लिठबनी सामगà¥à¤°à¥€ पाà¤à¤‚</translation>
<translation id="5675650730144413517">यह पेज काम नहीं कर रहा है</translation>
<translation id="5689199277474810259">JSON में निरà¥à¤¯à¤¾à¤¤ करें</translation>
+<translation id="5689516760719285838">सà¥à¤¥à¤¾à¤¨</translation>
<translation id="5710435578057952990">इस वेबसाइट की पहचान सतà¥à¤¯à¤¾à¤ªà¤¿à¤¤ नहीं की गई है.</translation>
<translation id="5719499550583120431">पà¥à¤°à¥€à¤ªà¥‡à¤¡ कारà¥à¤¡ सà¥à¤µà¥€à¤•à¤¾à¤° किठजाते हैं.</translation>
<translation id="5720705177508910913">वरà¥à¤¤à¤®à¤¾à¤¨ उपयोगकरà¥à¤¤à¤¾</translation>
@@ -852,7 +853,7 @@
<translation id="7613889955535752492">समय-सीमा समापà¥à¤¤: <ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
<translation id="7615602087246926389">आपके पास पहले से à¤à¤¸à¤¾ डेटा है, जिसे आपके Google खाते के पासवरà¥à¤¡ के किसी भिनà¥â€à¤¨ वरà¥à¤¶à¤¨ का उपयोग करके à¤à¤¨à¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ किया गया है. कृपया उसे नीचे लिखें.</translation>
<translation id="7637571805876720304">कà¥à¤°à¥‹à¤®à¤¿à¤¯à¤® से कà¥à¤°à¥‡à¤¡à¤¿à¤Ÿ कारà¥à¤¡ निकालें?</translation>
-<translation id="765676359832457558">उनà¥à¤¨à¤¤ सेटिंगà¥à¤¸ छिपाà¤à¤‚...</translation>
+<translation id="765676359832457558">उनà¥à¤¨à¤¤ सेटिंग छिपाà¤à¤‚...</translation>
<translation id="7658239707568436148">अभी नहीं</translation>
<translation id="7662298039739062396">सेटिंग किसी à¤à¤•à¥à¤¸à¤Ÿà¥‡à¤‚शन से नियंतà¥à¤°à¤¿à¤¤ है</translation>
<translation id="7667346355482952095">वापस लौटा हà¥à¤† नीति टोकन खाली है या उसका मिलान वरà¥à¤¤à¤®à¤¾à¤¨ टोकन से नहीं होता</translation>
@@ -956,7 +957,7 @@
<translation id="8412145213513410671">कà¥à¤°à¥ˆà¤¶ (<ph name="CRASH_COUNT" />)</translation>
<translation id="8412392972487953978">आपको वही पासफ़à¥à¤°à¥‡à¥› दोबारा दरà¥à¤œ करना होगा.</translation>
<translation id="8424582179843326029"><ph name="FIRST_LABEL" /> <ph name="SECOND_LABEL" /> <ph name="THIRD_LABEL" /></translation>
-<translation id="8428213095426709021">सेटिंगà¥à¤¸</translation>
+<translation id="8428213095426709021">सेटिंग</translation>
<translation id="8433057134996913067">इससे आप अधिकांश वेबसाइट से पà¥à¤°à¤¸à¥à¤¥à¤¾à¤¨ कर जाà¤à¤‚गे.</translation>
<translation id="8437238597147034694">&amp;ले जाना वापस लाà¤à¤‚</translation>
<translation id="8466379296835108687">{COUNT,plural, =1{1 कà¥à¤°à¥‡à¤¡à¤¿à¤Ÿ कारà¥à¤¡}one{# कà¥à¤°à¥‡à¤¡à¤¿à¤Ÿ कारà¥à¤¡}other{# कà¥à¤°à¥‡à¤¡à¤¿à¤Ÿ कारà¥à¤¡}}</translation>
diff --git a/chromium/components/strings/components_strings_hr.xtb b/chromium/components/strings/components_strings_hr.xtb
index e10b114d477..2b70385be31 100644
--- a/chromium/components/strings/components_strings_hr.xtb
+++ b/chromium/components/strings/components_strings_hr.xtb
@@ -630,6 +630,7 @@
<translation id="5669703222995421982">Predlaganje sadržaja</translation>
<translation id="5675650730144413517">Stranica ne funkcionira</translation>
<translation id="5689199277474810259">Izvezi u JSON</translation>
+<translation id="5689516760719285838">Lokacija</translation>
<translation id="5710435578057952990">Identitet ove web lokacije nije ovjeren.</translation>
<translation id="5719499550583120431">Prihvaćaju se pretplatne kartice.</translation>
<translation id="5720705177508910913">TrenutaÄni korisnik:</translation>
diff --git a/chromium/components/strings/components_strings_hu.xtb b/chromium/components/strings/components_strings_hu.xtb
index 5f8d40edc5a..b4c83bfd401 100644
--- a/chromium/components/strings/components_strings_hu.xtb
+++ b/chromium/components/strings/components_strings_hu.xtb
@@ -629,6 +629,7 @@
<translation id="5669703222995421982">Személyre szabott tartalmak fogadása</translation>
<translation id="5675650730144413517">Az oldal nem működik</translation>
<translation id="5689199277474810259">Exportálás JSON formátumba</translation>
+<translation id="5689516760719285838">Tartózkodási hely</translation>
<translation id="5710435578057952990">A webhely valódiságát nem ellenőriztük.</translation>
<translation id="5719499550583120431">Elfogadott feltöltőkártyák.</translation>
<translation id="5720705177508910913">Jelenlegi felhasználó</translation>
diff --git a/chromium/components/strings/components_strings_id.xtb b/chromium/components/strings/components_strings_id.xtb
index fa51431586e..5a726079b40 100644
--- a/chromium/components/strings/components_strings_id.xtb
+++ b/chromium/components/strings/components_strings_id.xtb
@@ -77,7 +77,7 @@
<translation id="1549470594296187301">JavaScript harus diaktifkan untuk menggunakan fitur ini.</translation>
<translation id="1559528461873125649">Tidak ada file atau direktori tersebut</translation>
<translation id="1583429793053364125">Terjadi masalah sewaktu menampilkan halaman web ini.</translation>
-<translation id="1590457302292452960">Membuat sandi kuat...</translation>
+<translation id="1590457302292452960">Buat sandi kuat...</translation>
<translation id="1592005682883173041">Akses Data Lokal</translation>
<translation id="1594030484168838125">Pilih</translation>
<translation id="1620510694547887537">Kamera</translation>
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Mendapatkan konten hasil personalisasi</translation>
<translation id="5675650730144413517">Halaman ini tidak berfungsi</translation>
<translation id="5689199277474810259">Ekspor ke JSON</translation>
+<translation id="5689516760719285838">Lokasi</translation>
<translation id="5710435578057952990">Identitas situs Web ini belum diverifikasi.</translation>
<translation id="5719499550583120431">Kartu prabayar diterima.</translation>
<translation id="5720705177508910913">Pengguna saat ini</translation>
@@ -886,7 +887,7 @@
<translation id="7812922009395017822">Mir</translation>
<translation id="7813600968533626083">Hapus sebagai saran dari Chrome?</translation>
<translation id="7815407501681723534">Ditemukan <ph name="NUMBER_OF_RESULTS" /> <ph name="SEARCH_RESULTS" /> hasil untuk '<ph name="SEARCH_STRING" />'</translation>
-<translation id="7818867226424560206">Pengelolaan kebijakan</translation>
+<translation id="7818867226424560206">Manajemen kebijakan</translation>
<translation id="782886543891417279">Wi-Fi yang digunakan (<ph name="WIFI_NAME" />) mungkin mewajibkan Anda mengunjungi halaman masuknya.</translation>
<translation id="785549533363645510">Namun, Anda masih dapat terlihat. Masuk ke mode penyamaran tidak menyembunyikan penjelajahan Anda dari atasan, penyedia layanan internet, atau situs web yang Anda kunjungi.</translation>
<translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
@@ -971,7 +972,7 @@
<translation id="858637041960032120">+ nomor telepon</translation>
<translation id="859285277496340001">Sertifikat tidak menetapkan mekanisme untuk memeriksa apakah sertifikat telah ditarik.</translation>
<translation id="8620436878122366504">Orang tuamu belum menyetujuinya</translation>
-<translation id="8625384913736129811">Simpan Kartu ke Perangkat Ini</translation>
+<translation id="8625384913736129811">Simpan Kartu Ini ke Perangkat Ini</translation>
<translation id="8647750283161643317">Setel ulang semua ke default</translation>
<translation id="8660471606262461360">Dari Google Payments</translation>
<translation id="8688672835843460752">Tersedia</translation>
diff --git a/chromium/components/strings/components_strings_it.xtb b/chromium/components/strings/components_strings_it.xtb
index a9cf243d76a..3c66b69ad99 100644
--- a/chromium/components/strings/components_strings_it.xtb
+++ b/chromium/components/strings/components_strings_it.xtb
@@ -77,7 +77,7 @@
<translation id="1549470594296187301">JavaScript deve essere attivato per utilizzare questa funzione.</translation>
<translation id="1559528461873125649">Nessun file o directory corrispondente</translation>
<translation id="1583429793053364125">Si è verificato un problema durante la visualizzazione della pagina web.</translation>
-<translation id="1590457302292452960">Genera una password efficace...</translation>
+<translation id="1590457302292452960">Genera una password efficace…</translation>
<translation id="1592005682883173041">Accesso ai dati locali</translation>
<translation id="1594030484168838125">Scegli</translation>
<translation id="1620510694547887537">Videocamera</translation>
@@ -628,6 +628,7 @@
<translation id="5669703222995421982">Ricevi contenuti suggeriti appositamente per te</translation>
<translation id="5675650730144413517">La pagina non funziona</translation>
<translation id="5689199277474810259">Esporta in JSON</translation>
+<translation id="5689516760719285838">Posizione</translation>
<translation id="5710435578057952990">L'identità di questo sito web non è stata verificata.</translation>
<translation id="5719499550583120431">Le carte prepagate sono accettate.</translation>
<translation id="5720705177508910913">Utente corrente</translation>
@@ -967,7 +968,7 @@
<translation id="858637041960032120">Aggiungi telefono</translation>
<translation id="859285277496340001">Il certificato non specifica un meccanismo per il controllo della sua revoca.</translation>
<translation id="8620436878122366504">I tuoi genitori non hanno ancora approvato la richiesta</translation>
-<translation id="8625384913736129811">Salva la carta per questo dispositivo</translation>
+<translation id="8625384913736129811">Salva la carta su questo dispositivo</translation>
<translation id="8647750283161643317">Ripristina i valori predefiniti per tutto</translation>
<translation id="8660471606262461360">Da Google Payments</translation>
<translation id="8688672835843460752">Disponibile</translation>
diff --git a/chromium/components/strings/components_strings_iw.xtb b/chromium/components/strings/components_strings_iw.xtb
index ab7b8faf437..7cb44c0c287 100644
--- a/chromium/components/strings/components_strings_iw.xtb
+++ b/chromium/components/strings/components_strings_iw.xtb
@@ -636,6 +636,7 @@ Del</translation>
<translation id="5669703222995421982">הת×מה ×ישית של תוכן</translation>
<translation id="5675650730144413517">הדף ×”×–×” ×œ× ×¢×•×‘×“</translation>
<translation id="5689199277474810259">â€×™×™×¦×•× ×ל JSON</translation>
+<translation id="5689516760719285838">מיקו×</translation>
<translation id="5710435578057952990">הזהות של ×תר ×–×” ×œ× ×ומתה.</translation>
<translation id="5719499550583120431">×פשר ×œ×©×œ× ×‘×מצעות ×›×¨×˜×™×¡×™× ×ž×©×•×œ×ž×™× ×ž×¨×ש.</translation>
<translation id="5720705177508910913">משתמש נוכחי:</translation>
diff --git a/chromium/components/strings/components_strings_ja.xtb b/chromium/components/strings/components_strings_ja.xtb
index 5c9e4b5a089..fe61569bc5b 100644
--- a/chromium/components/strings/components_strings_ja.xtb
+++ b/chromium/components/strings/components_strings_ja.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">自分å‘ã‘ã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„を表示</translation>
<translation id="5675650730144413517">ã“ã®ãƒšãƒ¼ã‚¸ã¯å‹•ä½œã—ã¦ã„ã¾ã›ã‚“</translation>
<translation id="5689199277474810259">JSON ã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ</translation>
+<translation id="5689516760719285838">ç¾åœ¨åœ°</translation>
<translation id="5710435578057952990">ã“ã®ã‚¦ã‚§ãƒ–サイト㮠ID ã¯ç¢ºèªã•ã‚Œã¦ã„ã¾ã›ã‚“。</translation>
<translation id="5719499550583120431">プリペイド カードをã”利用ã„ãŸã ã‘ã¾ã™ã€‚</translation>
<translation id="5720705177508910913">ç¾åœ¨ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼</translation>
diff --git a/chromium/components/strings/components_strings_kn.xtb b/chromium/components/strings/components_strings_kn.xtb
index 2eb0a34c4e9..2f3e2a162c4 100644
--- a/chromium/components/strings/components_strings_kn.xtb
+++ b/chromium/components/strings/components_strings_kn.xtb
@@ -120,14 +120,14 @@
<translation id="1842969606798536927">ಪಾವತಿಸಿ</translation>
<translation id="1871208020102129563">.pac ಸà³à²•à³à²°à²¿à²ªà³à²Ÿà³ URL ಅಲà³à²²à²¦à³†, ನಿಗಧಿತ ಪà³à²°à²¾à²•à³à²¸à²¿ ಸರà³à²µà²°à³â€Œà²—ಳನà³à²¨à³ ಬಳಸಲೠಪà³à²°à²¾à²•à³à²¸à²¿à²¯à²¨à³à²¨à³ ಹೊಂದಿಸಲಾಗಿದೆ.</translation>
<translation id="1871284979644508959">ಅಗತà³à²¯ ಕà³à²·à³†à³•à²¤à³à²°</translation>
-<translation id="1874765382782611674">ಸಮà³à²®à²¤à²¿à²¸à²²à²¾à²¦ ಡೆಬಿಟೠಕಾರà³à²¡à³â€Œà²—ಳà³</translation>
+<translation id="1874765382782611674">ಸà³à²µà³€à²•à³ƒà²¤ ಡೆಬಿಟೠಕಾರà³à²¡à³â€Œà²—ಳà³</translation>
<translation id="187918866476621466">ಆರಂಭಿಕ ಪà³à²Ÿà²—ಳನà³à²¨à³ ತೆರೆಯಿರಿ</translation>
<translation id="1883255238294161206">ಪಟà³à²Ÿà²¿à²¯à²¨à³à²¨à³ ಸಂಕà³à²šà²¿à²¸à²¿</translation>
<translation id="1898423065542865115">ಫಿಲà³à²Ÿà²°à²¿à²‚ಗà³</translation>
<translation id="1916770123977586577">ನಿಮà³à²® ಅಪà³â€Œà²¡à³‡à²Ÿà³â€Œ ಮಾಡಲಾದ ಸೆಟà³à²Ÿà²¿à²‚ಗà³â€Œà²—ಳನà³à²¨à³ ಈ ಸೈಟà³â€Œà²—ೆ ಅನà³à²µà²¯à²¿à²¸à²²à³, ಈ ಪà³à²Ÿà²µà²¨à³à²¨à³ ಪà³à²¨à²ƒ ಲೋಡà³â€Œ ಮಾಡಿ</translation>
<translation id="1919345977826869612">ಜಾಹೀರಾತà³à²—ಳà³</translation>
<translation id="192020519938775529">{COUNT,plural, =0{ಯಾವà³à²¦à³‚ ಇಲà³à²²}=1{1 ಸೈಟà³}one{# ಸೈಟà³â€Œà²—ಳà³}other{# ಸೈಟà³â€Œà²—ಳà³}}</translation>
-<translation id="1927235823738766038">ಸಮà³à²®à²¤à²¿à²¸à²²à²¾à²¦ ಕà³à²°à³†à²¡à²¿à²Ÿà³ ಮತà³à²¤à³ ಡೆಬಿಟೠಕಾರà³à²¡à³â€Œà²—ಳà³</translation>
+<translation id="1927235823738766038">ಸà³à²µà³€à²•à³ƒà²¤ ಕà³à²°à³†à²¡à²¿à²Ÿà³ ಮತà³à²¤à³ ಡೆಬಿಟೠಕಾರà³à²¡à³â€Œà²—ಳà³</translation>
<translation id="194030505837763158"><ph name="LINK" /> ಗೆ ಹೋಗಿ</translation>
<translation id="1948773908305951926">ಸಮà³à²®à²¤à²¿à²¸à²²à²¾à²¦ ಪà³à²°à³€à²ªà³‡à²¯à³à²¡à³ ಕಾರà³à²¡à³â€Œà²—ಳà³</translation>
<translation id="1962204205936693436"><ph name="DOMAIN" /> ಬà³à²•à³â€Œà²®à²¾à²°à³à²•à³â€Œà²—ಳà³</translation>
@@ -299,7 +299,7 @@
<ph name="PLATFORM_TEXT" /></translation>
<translation id="320323717674993345">ಪಾವತಿಯನà³à²¨à³ ರದà³à²¦à³à²®à²¾à²¡à²¿</translation>
<translation id="3207960819495026254">ಬà³à²•à³â€Œà²®à²¾à²°à³à²•à³â€Œ ಮಾಡಲಾಗಿದೆ</translation>
-<translation id="3209375525920864198">ಮಾನà³à²¯ ಸೆಶನೠಹೆಸರನà³à²¨à³ ನಮೂದಿಸಿ.</translation>
+<translation id="3209375525920864198">ಮಾನà³à²¯à²µà²¾à²¦ ಸೆಶನೠಹೆಸರನà³à²¨à³ ನಮೂದಿಸಿ.</translation>
<translation id="3211223744486044430">ಮà³à²‚ದಿನ ಬಾರಿ ವೇಗವಾಗಿ ಪಾವತಿಸಲà³, ಈ ಕಾರà³à²¡à³â€Œ ಅನà³à²¨à³ ನಿಮà³à²® Google ಖಾತೆಯಲà³à²²à²¿ ಮತà³à²¤à³ ಈ ಸಾಧನದಲà³à²²à²¿ ಉಳಿಸಿ.</translation>
<translation id="3225919329040284222">ಆಂತರಿಕ ಮಾನದಂಡಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗದ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²µà²¨à³à²¨à³ ಸರà³à²µà²°à³ ಹಾಜರಿಪಡಿಸಿದೆ. ನಿಮà³à²® ಸà³à²°à²•à³à²·à²¤à³†à²¯ ಸಲà³à²µà²¾à²—ಿ ಕೆಲವೠಹೆಚà³à²šà³ ಸà³à²°à²•à³à²·à²¿à²¤ ವೆಬೠಸೈಟà³â€Œà²—ಳಲà³à²²à²¿ ಈ ಮಾನದಂಡಗಳನà³à²¨à³ ಸೇರà³à²ªà²¡à³†à²—ೊಳಿಸಲಾಗಿದೆ.</translation>
<translation id="3226128629678568754">ಪà³à²Ÿà²µà²¨à³à²¨à³ ಲೋಡೠಮಾಡà³à²µà³à²¦à²•à³à²•à³† ಅಗತà³à²¯à²µà²¿à²°à³à²µ ಡೇಟಾವನà³à²¨à³ ಮರà³à²¸à²²à³à²²à²¿à²¸à²²à³ ಮರà³à²²à³‹à²¡à³ ಬಟನೠಒತà³à²¤à²¿à²°à²¿.</translation>
@@ -625,6 +625,7 @@
<translation id="5669703222995421982">ವೈಯಕà³à²¤à³€à²•à²°à²¿à²¸à²²à²¾à²¦ ವಿಷಯವನà³à²¨à³ ಪಡೆಯಿರಿ</translation>
<translation id="5675650730144413517">ಈ ಪà³à²Ÿ ಕಾರà³à²¯à²¨à²¿à²°à³à²µà²¹à²¿à²¸à³à²¤à³à²¤à²¿à²²à³à²²</translation>
<translation id="5689199277474810259">JSON ಗೆ ರಫà³à²¤à³ ಮಾಡಿ</translation>
+<translation id="5689516760719285838">ಸà³à²¥à²³</translation>
<translation id="5710435578057952990">ಈ ವೆಬà³â€Œà²¸à³ˆà²Ÿà³â€Œà²¨ ಗà³à²°à³à²¤à²¿à²¸à³à²µà²¿à²•à³†à²¯à²¨à³à²¨à³ ಇನà³à²¨à³‚ ಪರಿಶೀಲಿಸಲಾಗಿಲà³à²².</translation>
<translation id="5719499550583120431">ಪà³à²°à³€à²ªà³‡à²¯à³à²¡à³ ಕಾರà³à²¡à³â€Œà²—ಳನà³à²¨à³ ಸಮà³à²®à²¤à²¿à²¸à²²à²¾à²—ಿದೆ.</translation>
<translation id="5720705177508910913">ಪà³à²°à²¸à³à²¤à³à²¤ ಬಳಕೆದಾರ</translation>
@@ -792,7 +793,7 @@
<translation id="724691107663265825">ಮà³à²‚ದಿರà³à²µ ಸೈಟà³â€Œà²¨à²²à³à²²à²¿ ಮಾಲà³â€Œà²µà³‡à²°à³ ಇದೆ</translation>
<translation id="724975217298816891">ನಿಮà³à²® ಕಾರà³à²¡à³â€Œ ವಿವರಗಳನà³à²¨à³ ಅಪà³â€Œà²¡à³‡à²Ÿà³â€Œ ಮಾಡಲೠ<ph name="CREDIT_CARD" /> ಗೆ ಮà³à²•à³à²¤à²¾à²¯ ದಿನಾಂಕ ಮತà³à²¤à³ CVC ಅನà³à²¨à³ ನಮೂದಿಸಿ. ನೀವೠಒಮà³à²®à³† ಖಚಿತಪಡಿಸಿದರೆ, ನಿಮà³à²® ಕಾರà³à²¡à³ ವಿವರಗಳನà³à²¨à³ ಈ ಸೈಟೠಜೊತೆಗೆ ಹಂಚಿಕೊಳà³à²³à²²à²¾à²—à³à²¤à³à²¤à²¦à³†.</translation>
<translation id="7260504762447901703">ಪà³à²°à²µà³‡à²¶à²µà²¨à³à²¨à³ ಹಿಂತೆಗೆದà³à²•à³Šà²³à³à²³à²¿</translation>
-<translation id="7271803869921933038">ಸಮà³à²®à²¤à²¿à²¸à²²à²¾à²¦ ಪà³à²°à³€à²ªà³‡à²¯à³à²¡à³ ಕಾರà³à²¡à³â€Œà²—ಳà³</translation>
+<translation id="7271803869921933038">ಸà³à²µà³€à²•à³ƒà²¤ ಪà³à²°à³€à²ªà³‡à²¯à³à²¡à³ ಕಾರà³à²¡à³â€Œà²—ಳà³</translation>
<translation id="7275334191706090484">ನಿರà³à²µà²¹à²¿à²¸à²¿à²¦ ಬà³à²•à³â€Œà²®à²¾à²°à³à²•à³â€Œà²—ಳà³</translation>
<translation id="7298195798382681320">ಶಿಫಾರಸೠಮಾಡಲಾಗಿದೆ</translation>
<translation id="7309308571273880165">ಕà³à²°à³à²¯à²¾à²¶à³ ವರದಿಯನà³à²¨à³ <ph name="CRASH_TIME" /> ರಲà³à²²à²¿ ಸೆರೆಹಿಡಿಯಲಾಗಿದೆ (ಬಳಕೆದಾರರ ಮೂಲಕ ವಿನಂತಿಸಲಾದ ಅಪà³â€Œà²²à³‹à²¡à³ ಅನà³à²¨à³, ಇನà³à²¨à³‚ ಅಪà³â€Œà²²à³‹à²¡à³ ಮಾಡಿಲಾಗಿಲà³à²²)</translation>
@@ -965,7 +966,7 @@
</translation>
<translation id="859285277496340001">ಇದನà³à²¨à³ ರದà³à²¦à³à²®à²¾à²¡à²²à²¾à²—ಿದೆಯೆ ಎಂದೠಪರಿಶೀಲಿಸಲೠಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²µà³ ಯಾಂತà³à²°à³€à²•à²°à²£à²µà²¨à³à²¨à³ ನಿರà³à²¦à²¿à²·à³à²Ÿà²ªà²¡à²¿à²¸à²¿à²²à³à²².</translation>
<translation id="8620436878122366504">ನಿಮà³à²® ಪೋಷಕರೠಇನà³à²¨à³‚ ಇದನà³à²¨à³ ಅಂಗೀಕರಿಸಿಲà³à²²</translation>
-<translation id="8625384913736129811">ಈ ಸಾಧನಕà³à²•à³† ಈ ಕಾರà³à²¡à³ ಉಳಿಸಿ</translation>
+<translation id="8625384913736129811">ಈ ಕಾರà³à²¡à³ ಅನà³à²¨à³ ಈ ಸಾಧನಕà³à²•à³† ಉಳಿಸಿ</translation>
<translation id="8647750283161643317">ಎಲà³à²²à²µà²¨à³à²¨à³‚ ಡೀಫಾಲà³à²Ÿà³â€Œà²—ೆ ಮರà³à²¹à³Šà²‚ದಿಸಿ</translation>
<translation id="8660471606262461360">Google Payments ನಿಂದ</translation>
<translation id="8688672835843460752">ಲಭà³à²¯à²µà²¿à²¦à³†</translation>
@@ -976,7 +977,7 @@
<translation id="8730621377337864115">ಮà³à²—ಿದಿದೆ</translation>
<translation id="8738058698779197622">ಸà³à²°à²•à³à²·à²¿à²¤ ಸಂಪರà³à²•à²µà²¨à³à²¨à³ ಸà³à²¥à²¾à²ªà²¿à²¸à²²à³, ನಿಮà³à²® ಗಡಿಯಾರವನà³à²¨à³ ಸರಿಯಾಗಿ ಹೊಂದಿಸà³à²µ ಅಗತà³à²¯à²µà²¿à²¦à³†. ವೆಬà³â€Œà²¸à³ˆà²Ÿà³â€Œà²—ಳೠತಮà³à²®à²¨à³à²¨à³ ಗà³à²°à³à²¤à²¿à²¸à²²à³ ಬಳಸà³à²µ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²—ಳೠಸಮಯದ ನಿರà³à²¦à²¿à²·à³à²Ÿ ಅವಧಿಗಳಲà³à²²à²¿ ಮಾತà³à²° ಮಾನà³à²¯à²µà²¾à²—ಿರà³à²µ ಕಾರಣ ಹೀಗಾಗà³à²¤à³à²¤à²¦à³†. ನಿಮà³à²® ಸಾಧನದ ಗಡಿಯಾರವೠತಪà³à²ªà²¾à²—ಿರà³à²µ ಕಾರಣ, Chromium ಗೆ ಈ ಪà³à²°à²®à²¾à²£à²ªà²¤à³à²°à²—ಳನà³à²¨à³ ಪರಿಶೀಲಿಸಲೠಸಾಧà³à²¯à²µà²¿à²²à³à²².</translation>
<translation id="8740359287975076522"><ph name="HOST_NAME" /> ನ &lt;abbr id="dnsDefinition"&gt;DNS ವಿಳಾಸ&lt;/abbr&gt; ಕಂಡà³à²¬à²°à²²à²¿à²²à³à²². ಸಮಸà³à²¯à³†à²¯à²¨à³à²¨à³ ಪತà³à²¤à³†à²¹à²šà³à²šà²²à²¾à²—à³à²¤à³à²¤à²¿à²¦à³†.</translation>
-<translation id="874846938927089722">ಸಮà³à²®à²¤à²¿à²¸à²²à²¾à²¦ ಕà³à²°à³†à²¡à²¿à²Ÿà³ ಮತà³à²¤à³ ಪà³à²°à³€à²ªà³‡à²¯à³à²¡à³ ಕಾರà³à²¡à³â€Œà²—ಳà³</translation>
+<translation id="874846938927089722">ಸà³à²µà³€à²•à³ƒà²¤ ಕà³à²°à³†à²¡à²¿à²Ÿà³ ಮತà³à²¤à³ ಪà³à²°à³€à²ªà³‡à²¯à³à²¡à³ ಕಾರà³à²¡à³â€Œà²—ಳà³</translation>
<translation id="8759274551635299824">ಈ ಕಾರà³à²¡à³â€Œà²¨ ಅವಧಿ ಮà³à²•à³à²¤à²¾à²¯à²µà²¾à²—ಿದೆ</translation>
<translation id="8761567432415473239">Google ಸà³à²°à²•à³à²·à²¿à²¤ ಬà³à²°à³Œà²¸à²¿à²‚ಗà³â€Œ ಇತà³à²¤à³€à²šà²¿à²—ೆ <ph name="SITE" /> ನಲà³à²²à²¿ <ph name="BEGIN_LINK" />ಹಾನಿಕಾರಕ ಪà³à²°à³‹à²—à³à²°à²¾à²‚ಗಳನà³à²¨à³ ಕಂಡà³à²¹à²¿à²¡à²¿à²¦à²¿à²¦à³†<ph name="END_LINK" />.</translation>
<translation id="8790007591277257123">&amp;ಅಳಿಸà³à²µà³à²¦à²¨à³à²¨à³ ಮತà³à²¤à³†à²®à²¾à²¡à³</translation>
@@ -1039,7 +1040,7 @@
<translation id="933712198907837967">Diners Club</translation>
<translation id="935608979562296692">ಫಾರà³à²®à³ ತೆರವà³à²—ೊಳಿಸಿ</translation>
<translation id="939736085109172342">ಹೊಸ ಫೋಲà³à²¡à²°à³</translation>
-<translation id="951104842009476243">ಸಮà³à²®à²¤à²¿à²¸à²²à²¾à²¦ ಡೆಬಿಟೠಮತà³à²¤à³ ಪà³à²°à³€à²ªà³‡à²¯à³à²¡à³ ಕಾರà³à²¡à³â€Œà²—ಳà³</translation>
+<translation id="951104842009476243">ಸà³à²µà³€à²•à³ƒà²¤ ಡೆಬಿಟೠಮತà³à²¤à³ ಪà³à²°à³€à²ªà³‡à²¯à³à²¡à³ ಕಾರà³à²¡à³â€Œà²—ಳà³</translation>
<translation id="969892804517981540">ಅಧಿಕೃತವಾಗಿ ನಿರà³à²®à²¿à²¸à²¿</translation>
<translation id="975560348586398090">{COUNT,plural, =0{ಯಾವà³à²¦à³‚ ಇಲà³à²²}=1{1 à²à²Ÿà²‚}one{# à²à²Ÿà²‚ಗಳà³}other{# à²à²Ÿà²‚ಗಳà³}}</translation>
<translation id="981121421437150478">ಆಫà³â€Œà²²à³ˆà²¨à³</translation>
diff --git a/chromium/components/strings/components_strings_ko.xtb b/chromium/components/strings/components_strings_ko.xtb
index bbe1ca60396..e78169a9ade 100644
--- a/chromium/components/strings/components_strings_ko.xtb
+++ b/chromium/components/strings/components_strings_ko.xtb
@@ -224,7 +224,7 @@
<translation id="2670429602441959756">ì´ íŽ˜ì´ì§€ì—는 ì•„ì§ VRì—ì„œ 지ì›ë˜ì§€ 않는 ê¸°ëŠ¥ì´ ìžˆìŠµë‹ˆë‹¤. 종료합니다...</translation>
<translation id="2674170444375937751">방문 기ë¡ì—ì„œ ì´ íŽ˜ì´ì§€ë¥¼ 삭제하시겠습니까?</translation>
<translation id="2677748264148917807">나가기</translation>
-<translation id="2699302886720511147">사용 가능한 카드</translation>
+<translation id="2699302886720511147">사용할 수 있는 카드</translation>
<translation id="2702801445560668637">ì½ê¸° 목ë¡</translation>
<translation id="2704283930420550640">ê°’ì´ í˜•ì‹ê³¼ ì¼ì¹˜í•˜ì§€ 않습니다.</translation>
<translation id="2704951214193499422">현재 Chromiumì—ì„œ 카드를 확ì¸í•  수 없습니다. ë‚˜ì¤‘ì— ë‹¤ì‹œ ì‹œë„í•´ 주세요.</translation>
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">내게 맞는 콘í…츠 추천 받기</translation>
<translation id="5675650730144413517">페ì´ì§€ê°€ ìž‘ë™í•˜ì§€ 않습니다.</translation>
<translation id="5689199277474810259">JSON 형ì‹ìœ¼ë¡œ 내보내기</translation>
+<translation id="5689516760719285838">위치</translation>
<translation id="5710435578057952990">ì´ ì›¹ì‚¬ì´íŠ¸ì˜ 주소가 확ì¸ë˜ì§€ 않았습니다.</translation>
<translation id="5719499550583120431">선불카드를 사용할 수 있습니다.</translation>
<translation id="5720705177508910913">현재 사용ìž</translation>
@@ -971,7 +972,7 @@
<translation id="858637041960032120">번호 추가</translation>
<translation id="859285277496340001">ì¸ì¦ì„œëŠ” 취소 여부를 확ì¸í•˜ëŠ” ë§¤ì»¤ë‹ˆì¦˜ì„ ì§€ì •í•˜ì§€ 않습니다.</translation>
<translation id="8620436878122366504">ë¶€ëª¨ë‹˜ì´ ì•„ì§ ìŠ¹ì¸í•˜ì§€ 않았습니다.</translation>
-<translation id="8625384913736129811">ê¸°ê¸°ì— ì¹´ë“œ 저장</translation>
+<translation id="8625384913736129811">ì´ ê¸°ê¸°ì— ì¹´ë“œ 저장</translation>
<translation id="8647750283161643317">기본값으로 재설정</translation>
<translation id="8660471606262461360">출처: Google Payments</translation>
<translation id="8688672835843460752">사용 가능</translation>
diff --git a/chromium/components/strings/components_strings_lt.xtb b/chromium/components/strings/components_strings_lt.xtb
index 1bffaf657b3..66d6c1aa0e7 100644
--- a/chromium/components/strings/components_strings_lt.xtb
+++ b/chromium/components/strings/components_strings_lt.xtb
@@ -632,6 +632,7 @@
<translation id="5669703222995421982">Suasmeninto turinio gavimas</translation>
<translation id="5675650730144413517">Å is puslapis neveikia</translation>
<translation id="5689199277474810259">Eksportuoti kaip JSON</translation>
+<translation id="5689516760719285838">Vieta</translation>
<translation id="5710435578057952990">Å io tinklalapio tapatybÄ— nenustatyta.</translation>
<translation id="5719499550583120431">IÅ¡ankstinio mokÄ—jimo kortelÄ—s tinkamos.</translation>
<translation id="5720705177508910913">Dabartinis naudotojas</translation>
diff --git a/chromium/components/strings/components_strings_lv.xtb b/chromium/components/strings/components_strings_lv.xtb
index e40fe3a483f..08d708f9bd6 100644
--- a/chromium/components/strings/components_strings_lv.xtb
+++ b/chromium/components/strings/components_strings_lv.xtb
@@ -224,7 +224,7 @@
<translation id="2670429602441959756">Å ajÄ lapÄ ir funkcijas, kas vÄ“l netiek atbalstÄ«tas virtuÄlajÄ realitÄtÄ“. Notiek aizvÄ“rÅ¡ana...</translation>
<translation id="2674170444375937751">Vai tieÅ¡Äm vÄ“laties dzÄ“st Å¡Ä«s lapas no savas vÄ“stures?</translation>
<translation id="2677748264148917807">Iziet</translation>
-<translation id="2699302886720511147">PieņemtÄs kartes</translation>
+<translation id="2699302886720511147">AtbalstÄ«tÄs kartes</translation>
<translation id="2702801445560668637">Atvērt sarakstu</translation>
<translation id="2704283930420550640">VÄ“rtÄ«ba neatbilst formÄtam.</translation>
<translation id="2704951214193499422">PÄrlÅ«kÄ Chromium paÅ¡laik nevar apstiprinÄt jÅ«su karti. LÅ«dzu, vÄ“lÄk mÄ“Ä£iniet vÄ“lreiz.</translation>
@@ -397,7 +397,7 @@
<translation id="3759461132968374835">PÄ“dÄ“jÄ laikÄ neesat ziņojis par avÄrijÄm. Å eit nebÅ«s redzamas avÄrijas, kas radÄs laikÄ, kad avÄriju pÄrskatu izveide bija atspÄ“jota.</translation>
<translation id="3765032636089507299">DroÅ¡Äs pÄrlÅ«koÅ¡anas lapa paÅ¡laik nav pieejama</translation>
<translation id="3778403066972421603">Vai vÄ“laties saglabÄt Å¡o karti savÄ Google kontÄ un Å¡ajÄ ierÄ«cÄ“?</translation>
-<translation id="3783418713923659662">MasterCard</translation>
+<translation id="3783418713923659662">Mastercard</translation>
<translation id="3787705759683870569">Derīguma termiņš: <ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
<translation id="3808375843007691220">UzmanÄ«bu — turpmÄkÄs funkcijas ir eksperimentÄlas!</translation>
<translation id="382518646247711829">Ja izmantojat starpniekserveri...</translation>
@@ -461,7 +461,7 @@
<translation id="4325863107915753736">Rakstu neizdevÄs atrast.</translation>
<translation id="4326324639298822553">PÄrbaudiet derÄ«guma termiņa datumu un mÄ“Ä£iniet vÄ“lreiz.</translation>
<translation id="4331708818696583467">Nav droši</translation>
-<translation id="4346197816712207223">AtbalstÄ«tÄs kredÄ«tkartes</translation>
+<translation id="4346197816712207223">PieņemtÄs kredÄ«tkartes</translation>
<translation id="4356973930735388585">Å ajÄ vietnÄ“ esoÅ¡ie uzbrucÄ“ji jÅ«su datorÄ var mÄ“Ä£inÄt instalÄ“t bÄ«stamas programmas, kuras var nozagt vai dzÄ“st jÅ«su informÄciju (piemÄ“ram, fotoattÄ“lus, paroles, ziņojumus un informÄciju par kredÄ«tkartÄ“m).</translation>
<translation id="4372948949327679948">Tika gaidīta vērtība <ph name="VALUE_TYPE" />.</translation>
<translation id="4377125064752653719">JÅ«s mÄ“Ä£inÄjÄt sasniegt <ph name="DOMAIN" />, bet izdevÄ“js atsauca servera uzrÄdÄ«to sertifikÄtu. Tas nozÄ«mÄ“, ka servera uzrÄdÄ«tie droÅ¡Ä«bas akreditÄcijas dati itin nemaz nav uzticami. IespÄ“jams, jÅ«s sazinÄties ar uzbrucÄ“ju.</translation>
@@ -630,6 +630,7 @@
<translation id="5669703222995421982">Saņemiet personalizētu saturu</translation>
<translation id="5675650730144413517">Å Ä« lapa nedarbojas</translation>
<translation id="5689199277474810259">EksportÄ“t JSON formÄtÄ</translation>
+<translation id="5689516760719285838">AtraÅ¡anÄs vieta</translation>
<translation id="5710435578057952990">TÄ«mekļa vietnes identitÄte nav apstiprinÄta.</translation>
<translation id="5719499550583120431">Tiek pieņemtas priekšapmaksas kartes.</translation>
<translation id="5720705177508910913">PaÅ¡reizÄ“jais lietotÄjs</translation>
diff --git a/chromium/components/strings/components_strings_ml.xtb b/chromium/components/strings/components_strings_ml.xtb
index 98573366b9b..41740278129 100644
--- a/chromium/components/strings/components_strings_ml.xtb
+++ b/chromium/components/strings/components_strings_ml.xtb
@@ -120,14 +120,14 @@
<translation id="1842969606798536927">പണമടയàµâ€Œà´•àµà´•àµà´•</translation>
<translation id="1871208020102129563">à´¸àµà´¥à´¿à´°à´®à´¾à´¯ à´ªàµà´°àµ‹à´•àµâ€Œà´¸à´¿ സെർവറàµà´•àµ¾ ഉപയോഗികàµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´ªàµà´°àµ‹à´•àµâ€Œà´¸à´¿ സജàµà´œàµ€à´•à´°à´¿à´šàµà´šà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ, ഒരൠ.pac à´¸àµâ€Œà´•àµà´°à´¿à´ªàµà´±àµà´±àµ URL ഉപയോഗികàµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´²àµà´².</translation>
<translation id="1871284979644508959">നിർബനàµà´§à´®à´¾à´¯àµà´‚ പൂരിപàµà´ªà´¿à´•àµà´•à´£à´‚</translation>
-<translation id="1874765382782611674">ഡെബിറàµà´±àµ കാർഡàµà´•àµ¾ à´¸àµà´µàµ€à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ</translation>
+<translation id="1874765382782611674">à´¸àµà´µàµ€à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨ ഡെബിറàµà´±àµ കാർഡàµà´•àµ¾</translation>
<translation id="187918866476621466">ആരംഭ പേജàµà´•àµ¾ à´¤àµà´±à´•àµà´•àµà´•</translation>
<translation id="1883255238294161206">ലിസàµà´±àµà´±àµ à´šàµà´°àµà´•àµà´•àµà´•</translation>
<translation id="1898423065542865115">ഫിൽടàµà´Ÿàµ¼ ചെയàµà´¯àµà´¨àµà´¨àµ</translation>
<translation id="1916770123977586577">à´ˆ സൈറàµà´±à´¿à´²àµ‡à´•àµà´•àµ നിങàµà´™à´³àµà´Ÿàµ† à´…à´ªàµâ€Œà´¡àµ‡à´±àµà´±àµà´šàµ†à´¯àµà´¤ à´•àµà´°à´®àµ€à´•à´°à´£à´‚ ഉപയോഗികàµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµ, à´ˆ പേജൠറീലോഡàµà´šàµ†à´¯àµà´¯àµà´•</translation>
<translation id="1919345977826869612">പരസàµà´¯à´™àµà´™à´³àµâ€</translation>
<translation id="192020519938775529">{COUNT,plural, =0{à´’à´¨àµà´¨àµà´®à´¿à´²àµà´²}=1{ഒരൠസൈറàµà´±àµ}other{# സൈറàµà´±àµà´•àµ¾}}</translation>
-<translation id="1927235823738766038">à´•àµà´°àµ†à´¡à´¿à´±àµà´±àµ കാർഡàµà´•à´³àµà´‚ ഡെബിറàµà´±àµ കാർഡàµà´•à´³àµà´‚ à´¸àµà´µàµ€à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ</translation>
+<translation id="1927235823738766038">à´¸àµà´µàµ€à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨ à´•àµà´°àµ†à´¡à´¿à´±àµà´±àµ കാർഡàµà´•à´³àµà´‚ ഡെബിറàµà´±àµ കാർഡàµà´•à´³àµà´‚</translation>
<translation id="194030505837763158"><ph name="LINK" />-ലേകàµà´•àµ പോകàµà´•</translation>
<translation id="1948773908305951926">à´ªàµà´°àµ€à´ªàµ†à´¯àµà´¡àµ കാർഡàµà´•àµ¾ à´¸àµà´µàµ€à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ</translation>
<translation id="1962204205936693436"><ph name="DOMAIN" /> à´¬àµà´•àµà´•àµâ€Œà´®à´¾àµ¼à´•àµà´•àµà´•àµ¾</translation>
@@ -300,7 +300,7 @@
<ph name="PLATFORM_TEXT" /></translation>
<translation id="320323717674993345">പേയàµâ€Œà´®àµ†à´¨àµà´±àµ റദàµà´¦à´¾à´•àµà´•àµà´•</translation>
<translation id="3207960819495026254">à´¬àµà´•àµà´•àµâ€Œà´®à´¾àµ¼à´•àµà´•àµà´šàµ†à´¯àµâ€Œà´¤àµ</translation>
-<translation id="3209375525920864198">സാധàµà´µà´¾à´¯àµŠà´°àµ സെഷൻ പേരൠനൽകàµà´•.</translation>
+<translation id="3209375525920864198">സാധàµà´¤à´¯àµà´³àµà´³àµŠà´°àµ സെഷൻ പേരൠനൽകàµà´•.</translation>
<translation id="3211223744486044430">à´…à´Ÿàµà´¤àµà´¤ à´ªàµà´°à´¾à´µà´¶àµà´¯à´‚ വേഗതàµà´¤à´¿àµ½ പണമടയàµà´•àµà´•à´¾àµ», നിങàµà´™à´³àµà´Ÿàµ† Google à´…à´•àµà´•àµ—à´£àµà´Ÿà´¿à´²àµà´‚ à´ˆ ഉപകരണതàµà´¤à´¿à´²àµà´‚ കാർഡൠസംരകàµà´·à´¿à´•àµà´•àµà´•.</translation>
<translation id="3225919329040284222">ബിൽടàµà´Ÿàµ-ഇൻ à´ªàµà´°à´¤àµ€à´•àµà´·à´•à´³àµâ€à´•àµà´•àµ പൊരàµà´¤àµà´¤à´ªàµà´ªàµ†à´Ÿà´¾à´¤àµà´¤ സരàµâ€à´Ÿàµà´Ÿà´¿à´«à´¿à´•àµà´•à´±àµà´±à´¾à´£àµ സെരàµâ€à´µà´°àµâ€ അവതരിപàµà´ªà´¿à´šàµà´šà´¤àµ. നിങàµà´™à´³àµ† സംരകàµà´·à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´²àµ‡à´•àµà´•à´¾à´¯àµà´³àµà´³ നിശàµà´šà´¿à´¤, ഉനàµà´¨à´¤-à´¸àµà´°à´•àµà´·à´¾ വെബàµâ€Œà´¸àµˆà´±àµà´±àµà´•àµ¾à´•àµà´•à´¾à´¯à´¾à´£àµ à´ˆ à´ªàµà´°à´¤àµ€à´•àµà´·à´•àµ¾ ഉൾപàµà´ªàµ†à´Ÿàµà´¤àµà´¤à´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨à´¤àµ.</translation>
<translation id="3226128629678568754">പേജൠലോഡàµà´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´µà´¶àµà´¯à´®à´¾à´¯ ഡാറàµà´± വീണàµà´Ÿàµà´‚ സമർപàµà´ªà´¿à´•àµà´•à´¾àµ» വീണàµà´Ÿàµà´‚ ലോഡàµà´šàµ†à´¯àµà´¯àµà´• ബടàµà´Ÿàµº അമർതàµà´¤àµà´•.</translation>
@@ -461,7 +461,7 @@
<translation id="4325863107915753736">ലേഖനം à´•à´£àµà´Ÿàµ†à´¤àµà´¤àµà´¨àµà´¨à´¤àµ പരാജയപàµà´ªàµ†à´Ÿàµà´Ÿàµ</translation>
<translation id="4326324639298822553">കാലാവധി തീരàµà´¨àµà´¨ തീയതി പരിശോധിചàµà´šàµ വീണàµà´Ÿàµà´‚ à´¶àµà´°à´®à´¿à´šàµà´šàµà´¨àµ‹à´•àµà´•àµ‚</translation>
<translation id="4331708818696583467">à´¸àµà´°à´•àµà´·à´¿à´¤à´®à´²àµà´²</translation>
-<translation id="4346197816712207223">à´•àµà´°àµ†à´¡à´¿à´±àµà´±àµ കാർഡàµà´•àµ¾ à´¸àµà´µàµ€à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ</translation>
+<translation id="4346197816712207223">à´¸àµà´µàµ€à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨ à´•àµà´°àµ†à´¡à´¿à´±àµà´±àµ കാർഡàµà´•àµ¾</translation>
<translation id="4356973930735388585">à´ˆ സൈറàµà´±à´¿à´²àµ† ആകàµà´°à´®à´£à´•à´¾à´°à´¿à´•àµ¾ നിങàµà´™à´³àµà´Ÿàµ† വിവരങàµà´™àµ¾ മോഷàµâ€Œà´Ÿà´¿à´•àµà´•à´¾à´¨àµ‹ ഇലàµà´²à´¾à´¤à´¾à´•àµà´•à´¾à´¨àµ‹ ഇടയàµà´³àµà´³ (ഉദാഹരണതàµà´¤à´¿à´¨àµ, ഫോടàµà´Ÿàµ‹à´•àµ¾, പാസàµâ€Œà´µàµ‡à´¡àµà´•àµ¾, സനàµà´¦àµ‡à´¶à´™àµà´™àµ¾, à´•àµà´°àµ†à´¡à´¿à´±àµà´±àµ കാർഡàµà´•àµ¾ à´Žà´¨àµà´¨à´¿à´µ) അപകടകരമായ à´ªàµà´°àµ‹à´—àµà´°à´¾à´®àµà´•àµ¾ à´•à´®àµà´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿àµ½ ഇൻസàµâ€Œà´±àµà´±à´¾àµ¾ ചെയàµà´¯à´¾àµ» à´¶àµà´°à´®à´¿à´šàµà´šàµ‡à´•àµà´•à´¾à´‚.</translation>
<translation id="4372948949327679948">à´ªàµà´°à´¤àµ€à´•àµà´·à´¿à´šàµà´š <ph name="VALUE_TYPE" /> മൂലàµà´¯à´‚.</translation>
<translation id="4377125064752653719">നിങàµà´™à´³àµâ€â€Œ <ph name="DOMAIN" /> à´Žà´¨àµà´¨à´¤à´¿à´²àµâ€â€Œ à´Žà´¤àµà´¤à´¾à´¨àµâ€â€Œ à´¶àµà´°à´®à´¿à´šàµà´šàµ, പകàµà´·àµ‡ സെരàµâ€â€Œà´µà´°àµâ€â€Œ നൽകിയ സരàµâ€â€Œà´Ÿàµà´Ÿà´¿à´«à´¿à´•àµà´•à´±àµà´±àµ അതൠനലàµâ€â€Œà´•à´¿à´¯ ആളàµâ€â€Œ അസാധàµà´µà´¾à´•àµà´•à´¿. സെരàµâ€â€Œà´µà´°àµâ€â€Œ നലàµâ€â€Œà´•à´¿à´¯ à´¸àµà´°à´•àµà´·à´¾ à´•àµà´°àµ†à´¡à´¨àµâ€â€Œà´·àµà´¯à´²àµà´•à´³àµâ€â€Œ തികചàµà´šàµà´‚ വിശàµà´µà´¾â€à´¸à´¯àµ‹à´—àµà´¯à´®à´²àµà´² à´Žà´¨àµà´¨à´¾à´£àµ ഇതിനരàµâ€â€Œà´¤àµà´¥à´‚. നിങàµà´™à´³àµâ€â€Œ ഒരൠആകàµà´°à´®à´£à´•à´¾à´°à´¿à´¯àµà´®à´¾à´¯à´¿à´Ÿàµà´Ÿà´¾à´•à´¾à´‚ ആശയവിനിമയം നടതàµà´¤àµà´¨àµà´¨à´¤àµ.</translation>
@@ -630,6 +630,7 @@
<translation id="5669703222995421982">à´µàµà´¯à´•àµà´¤à´¿à´ªà´°à´®à´¾à´•àµà´•à´¿à´¯ ഉളàµà´³à´Ÿà´•àµà´•à´‚ à´¸àµà´µà´¨àµà´¤à´®à´¾à´•àµà´•àµà´•</translation>
<translation id="5675650730144413517">à´ˆ പേജൠപàµà´°à´µàµ¼à´¤àµà´¤à´¿à´•àµà´•àµà´¨àµà´¨à´¿à´²àµà´²</translation>
<translation id="5689199277474810259">JSON-ലേകàµà´•àµ ‌എകàµâ€Œà´¸àµâ€Œà´ªàµ‹àµ¼à´Ÿàµà´Ÿàµ ചെയàµà´¯àµà´•</translation>
+<translation id="5689516760719285838">ലൊകàµà´•àµ‡à´·àµ»</translation>
<translation id="5710435578057952990">à´ˆ വെബàµà´¸àµˆà´±àµà´±à´¿à´¨àµà´±àµ† à´µàµà´¯à´•àµà´¤à´¿à´¤àµà´µà´‚ പരിശോധിചàµà´šà´¿à´Ÿàµà´Ÿà´¿à´²àµà´².</translation>
<translation id="5719499550583120431">à´ªàµà´°àµ€à´ªàµ†à´¯àµà´¡àµ കാർഡàµà´•àµ¾ à´¸àµà´µàµ€à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ.</translation>
<translation id="5720705177508910913">നിലവിലെ ഉപയോകàµà´¤à´¾à´µàµ</translation>
@@ -748,7 +749,7 @@
<translation id="6753269504797312559">നയ മൂലàµà´¯à´‚</translation>
<translation id="6757797048963528358">നിങàµà´™à´³àµà´Ÿàµ† ഉപകരണം à´¸àµà´·àµà´ªàµâ€Œà´¤à´¿à´¯à´¿à´²à´¾à´¯à´¿.</translation>
<translation id="6778737459546443941">നിങàµà´™à´³àµà´Ÿàµ† à´°à´•àµà´·à´¿à´¤à´¾à´µàµ ഇതàµà´µà´°àµ† അംഗീകാരം നൽകിയിടàµà´Ÿà´¿à´²àµà´²</translation>
-<translation id="681021252041861472">ആവശàµà´¯à´®àµà´³àµà´³ ഫീൽഡàµ</translation>
+<translation id="681021252041861472">ഇതൠപൂരിപàµà´ªà´¿à´•àµà´•àµ‡à´£àµà´Ÿà´¤àµà´£àµà´Ÿàµ</translation>
<translation id="6810899417690483278">ഇഷàµâ€Œà´Ÿà´¾à´¨àµà´¸àµƒà´¤à´®à´¾à´•àµà´•àµ½ à´à´¡à´¿</translation>
<translation id="6820686453637990663">CVC</translation>
<translation id="6824266427216888781">à´ªàµà´°à´¦àµ‡à´¶à´™àµà´™à´³àµà´Ÿàµ† വിവരങàµà´™àµ¾ ലോഡàµà´šàµ†à´¯àµà´¯à´¾à´¨à´¾à´¯à´¿à´²àµà´²</translation>
@@ -798,7 +799,7 @@
<translation id="724691107663265825">സൈറàµà´±à´¿àµ½ മാൽവെയർ à´…à´Ÿà´™àµà´™à´¿à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ</translation>
<translation id="724975217298816891">നിങàµà´™à´³àµà´Ÿàµ† കാർഡൠവിശദാംശങàµà´™àµ¾ à´…à´ªàµâ€Œà´¡àµ‡à´±àµà´±àµà´šàµ†à´¯àµà´¯à´¾àµ» <ph name="CREDIT_CARD" />-à´¨àµà´±àµ† കാലാവധി തീരàµà´¨àµà´¨ തീയതിയàµà´‚ CVC-à´¯àµà´‚ നൽകàµà´•. à´¸àµà´¥à´¿à´°àµ€à´•à´°à´¿à´šàµà´šàµ à´•à´´à´¿à´žàµà´žà´¾àµ½, à´ˆ സൈറàµà´±àµà´®à´¾à´¯à´¿ കാർഡൠവിശദാംശങàµà´™àµ¾ പങàµà´•à´¿à´Ÿàµà´‚.</translation>
<translation id="7260504762447901703">ആകàµâ€Œà´¸à´¸àµà´¸àµ റദàµà´¦à´¾à´•àµà´•àµà´•</translation>
-<translation id="7271803869921933038">à´ªàµà´°àµ€à´ªàµ†à´¯àµà´¡àµ കാർഡàµà´•àµ¾ à´¸àµà´µàµ€à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ</translation>
+<translation id="7271803869921933038">à´¸àµà´µàµ€à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨ à´ªàµà´°àµ€à´ªàµ†à´¯àµà´¡àµ കാർഡàµà´•àµ¾</translation>
<translation id="7275334191706090484">നിയനàµà´¤àµà´°à´¿à´¤ à´¬àµà´•àµà´•àµâ€Œà´®à´¾àµ¼à´•àµà´•àµà´•àµ¾</translation>
<translation id="7298195798382681320">à´¶àµà´ªà´¾àµ¼à´¶à´šàµ†à´¯àµà´¯àµà´¨àµà´¨à´¤àµ</translation>
<translation id="7309308571273880165"><ph name="CRASH_TIME" />-നൠകàµà´¯à´¾à´ªàµâ€Œà´šàµ¼ ചെയàµâ€Œà´¤ à´•àµà´°à´¾à´·àµ റിപàµà´ªàµ‹àµ¼à´Ÿàµà´Ÿàµà´•àµ¾ (ഉപയോകàµà´¤à´¾à´µàµ à´…à´­àµà´¯àµ¼à´¤àµà´¥à´¿à´šàµà´š à´…à´ªàµâ€Œà´²àµ‹à´¡àµ, ഇതàµà´µà´°àµ† à´…à´ªàµâ€Œà´²àµ‹à´¡àµà´šàµ†à´¯àµâ€Œà´¤à´¿à´Ÿàµà´Ÿà´¿à´²àµà´²)</translation>
@@ -971,7 +972,7 @@
</translation>
<translation id="859285277496340001">സാകàµâ€à´·àµà´¯à´ªà´¤àµà´°à´‚ അസാധàµà´µà´¾à´•àµà´•à´¿à´¯àµ‹ à´Žà´¨àµà´¨àµ പരിശോധികàµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµ അതൠഒരൠമെകàµà´•à´¾à´¨à´¿à´¸à´¤àµà´¤àµ†à´¯àµà´‚ സൂചിപàµà´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¿à´²àµà´².</translation>
<translation id="8620436878122366504">നിങàµà´™à´³àµà´Ÿàµ† à´°à´•àµà´·à´¿à´¤à´¾à´•àµà´•àµ¾ ഇതàµà´µà´°àµ† അംഗീകാരം നൽകിയിടàµà´Ÿà´¿à´²àµà´²</translation>
-<translation id="8625384913736129811">à´ˆ ഉപകരണതàµà´¤à´¿àµ½ à´ˆ കാർഡൠസംരകàµà´·à´¿à´•àµà´•àµà´•</translation>
+<translation id="8625384913736129811">à´ˆ ഉപകരണതàµà´¤à´¿à´²àµ‡à´•àµà´•àµ à´ˆ കാർഡൠസംരകàµà´·à´¿à´•àµà´•àµà´•</translation>
<translation id="8647750283161643317">à´Žà´²àµà´²à´¾à´‚ à´¸àµà´¥à´¿à´°à´®à´¾à´¯à´¿ à´ªàµà´¨à´ƒà´¸à´œàµà´œà´®à´¾à´•àµà´•àµà´•</translation>
<translation id="8660471606262461360">Google പേയàµâ€Œà´®àµ†à´¨àµà´±à´¿àµ½ നിനàµà´¨àµ</translation>
<translation id="8688672835843460752">ലഭàµà´¯à´®à´¾à´£àµ</translation>
@@ -982,7 +983,7 @@
<translation id="8730621377337864115">പൂർതàµà´¤à´¿à´¯à´¾à´•àµà´•à´¿</translation>
<translation id="8738058698779197622">ഒരൠസàµà´°à´•àµà´·à´¿à´¤ കണകàµà´·àµ» à´¸àµà´¥à´¾à´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµ, നിങàµà´™à´³àµà´Ÿàµ† à´•àµà´²àµ‹à´•àµà´•àµ ശരിയായി സജàµà´œàµ€à´•à´°à´¿à´•àµà´•àµ‡à´£àµà´Ÿà´¤àµà´£àµà´Ÿàµ. വെബàµâ€Œà´¸àµˆà´±àµà´±àµà´•àµ¾ à´¸àµà´µà´¯à´‚ തിരിചàµà´šà´±à´¿à´¯àµà´¨àµà´¨à´¤à´¿à´¨àµ ഉപയോഗികàµà´•àµà´¨àµà´¨ സർടàµà´Ÿà´¿à´«à´¿à´•àµà´•à´±àµà´±àµà´•àµ¾, നിർദàµà´¦à´¿à´·àµâ€Œà´Ÿ സമയ പരിധിയàµâ€Œà´•àµà´•àµ മാതàµà´°à´®à´¾à´¯à´¿ സാധàµà´¤à´¯àµà´³àµà´³à´¤à´¿à´¨à´¾à´²à´¾à´£à´¿à´¤àµ. നിങàµà´™à´³àµà´Ÿàµ† ഉപകരണതàµà´¤à´¿à´¨àµà´±àµ† à´•àµà´²àµ‹à´•àµà´•àµ തെറàµà´±à´¾à´¯à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾àµ½, Chromium-നൠഈ സർടàµà´Ÿà´¿à´«à´¿à´•àµà´•à´±àµà´±àµà´•àµ¾ പരിശോധിചàµà´šàµà´±à´ªàµà´ªà´¿à´•àµà´•à´¾à´¨à´¾à´µà´¿à´²àµà´².</translation>
<translation id="8740359287975076522"><ph name="HOST_NAME" /> ഹോസàµâ€Œà´±àµà´±à´¿à´¨àµà´±àµ† &lt;abbr id="dnsDefinition"&gt;DNS വിലാസം&lt;/abbr&gt; à´•à´£àµà´Ÿàµ†à´¤àµà´¤à´¾à´¨à´¾à´¯à´¿à´²àµà´². à´ªàµà´°à´¶àµâ€Œà´¨à´‚ നിർണàµà´£à´¯à´¿à´•àµà´•àµà´¨àµà´¨àµ.</translation>
-<translation id="874846938927089722">à´•àµà´°àµ†à´¡à´¿à´±àµà´±àµ കാർഡàµà´•à´³àµà´‚ à´ªàµà´°àµ€à´ªàµ†à´¯àµà´¡àµ കാർഡàµà´•à´³àµà´‚ à´¸àµà´µàµ€à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ</translation>
+<translation id="874846938927089722">à´¸àµà´µàµ€à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨ à´•àµà´°àµ†à´¡à´¿à´±àµà´±àµ കാർഡàµà´•à´³àµà´‚ à´ªàµà´°àµ€à´ªàµ†à´¯àµà´¡àµ കാർഡàµà´•à´³àµà´‚</translation>
<translation id="8759274551635299824">à´ˆ കാർഡൠകാലഹരണപàµà´ªàµ†à´Ÿàµà´Ÿàµ</translation>
<translation id="8761567432415473239">Google à´¸àµà´°à´•àµà´·à´¿à´¤ à´¬àµà´°àµ—സിംഗൠ<ph name="SITE" /> à´Žà´¨àµà´¨à´¤à´¿àµ½ ഈയിടെ <ph name="BEGIN_LINK" />ദോഷകരമായ à´ªàµà´°àµ‹à´—àµà´°à´¾à´®àµà´•àµ¾ à´•à´£àµà´Ÿàµ†à´¤àµà´¤à´¿<ph name="END_LINK" />.</translation>
<translation id="8790007591277257123">&amp;ഇലàµà´²à´¾à´¤à´¾à´•àµà´•àµà´¨àµà´¨à´¤àµ വീണàµà´Ÿàµà´‚ ചെയàµà´¯àµà´•</translation>
@@ -1045,7 +1046,7 @@
<translation id="933712198907837967">Diners Club</translation>
<translation id="935608979562296692">ഫോം മായàµâ€Œà´•àµà´•àµà´•</translation>
<translation id="939736085109172342">à´ªàµà´¤à´¿à´¯ ഫോളàµâ€à´¡à´°àµâ€</translation>
-<translation id="951104842009476243">ഡെബിറàµà´±àµ കാർഡàµà´•à´³àµà´‚ à´ªàµà´°àµ€à´ªàµ†à´¯àµà´¡àµ കാർഡàµà´•à´³àµà´‚ à´¸àµà´µàµ€à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ</translation>
+<translation id="951104842009476243">à´¸àµà´µàµ€à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨ ഡെബിറàµà´±àµ കാർഡàµà´•à´³àµà´‚ à´ªàµà´°àµ€à´ªàµ†à´¯àµà´¡àµ കാർഡàµà´•à´³àµà´‚</translation>
<translation id="969892804517981540">ഔദàµà´¯àµ‹à´—à´¿à´• ബിലàµâ€à´¡àµ</translation>
<translation id="975560348586398090">{COUNT,plural, =0{à´’à´¨àµà´¨àµà´®à´¿à´²àµà´²}=1{ഒരൠഇനം}other{# ഇനങàµà´™àµ¾}}</translation>
<translation id="981121421437150478">à´“à´«àµâ€Œà´²àµˆàµ»</translation>
diff --git a/chromium/components/strings/components_strings_mr.xtb b/chromium/components/strings/components_strings_mr.xtb
index 9a9725d33c9..713e5eb4b07 100644
--- a/chromium/components/strings/components_strings_mr.xtb
+++ b/chromium/components/strings/components_strings_mr.xtb
@@ -27,7 +27,7 @@
<translation id="1152921474424827756"><ph name="URL" /> चà¥à¤¯à¤¾ <ph name="BEGIN_LINK" />कॅश केलेलà¥à¤¯à¤¾ कॉपीवर<ph name="END_LINK" /> पà¥à¤°à¤µà¥‡à¤¶ करा</translation>
<translation id="1158211211994409885"><ph name="HOST_NAME" /> नी कनेकà¥à¤¶à¤¨ अनपेकà¥à¤·à¤¿à¤¤à¤°à¤¿à¤¤à¥à¤¯à¤¾ बंद केले.</translation>
<translation id="1161325031994447685">Wi-Fi शी पà¥à¤¨à¥à¤¹à¤¾ कनेकà¥à¤Ÿ करीत आहे</translation>
-<translation id="1165039591588034296">तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="1165039591588034296">à¤à¤°à¤°</translation>
<translation id="1175364870820465910">&amp;मà¥à¤¦à¥à¤°à¤£...</translation>
<translation id="1181037720776840403">काढा</translation>
<translation id="1184214524891303587">Google कडे संभावà¥à¤¯ सà¥à¤°à¤•à¥à¤·à¤¿à¤¤à¤¤à¤¾ घटनांचà¥à¤¯à¤¾ तपशीलांचा <ph name="BEGIN_WHITEPAPER_LINK" />सà¥à¤µà¤¯à¤‚चलितपणे अहवाल दà¥à¤¯à¤¾.<ph name="END_WHITEPAPER_LINK" /> <ph name="PRIVACY_PAGE_LINK" /></translation>
@@ -36,7 +36,7 @@
<translation id="1201895884277373915">या साइटकडून अधिक</translation>
<translation id="1206967143813997005">खराब पà¥à¤°à¤¾à¤°à¤‚भिक सà¥à¤µà¤¾à¤•à¥à¤·à¤°à¥€</translation>
<translation id="1209206284964581585">आतासाठी लपवा</translation>
-<translation id="121201262018556460">आपण <ph name="DOMAIN" /> वर पोहोचणà¥à¤¯à¤¾à¤šà¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ केलात, परंतॠसरà¥à¤µà¥à¤¹à¤°à¤¨à¥‡ à¤à¤• कमकà¥à¤µà¤¤ की असलेले पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° सादर केले. आकà¥à¤°à¤®à¤£à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤¨à¥‡ गोपनीय की तोडलेली असू शकते आणि सरà¥à¤µà¥à¤¹à¤° हे आपलà¥à¤¯à¤¾à¤²à¤¾ अपेकà¥à¤·à¤¿à¤¤ असणारे सरà¥à¤µà¥à¤¹à¤° नसू शकते (आपण कदाचित आकà¥à¤°à¤®à¤£à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤¶à¥€ संपà¥à¤°à¥‡à¤·à¤£ करत असाल).</translation>
+<translation id="121201262018556460">आपण <ph name="DOMAIN" /> वर पोहोचणà¥à¤¯à¤¾à¤šà¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ केलात, परंतॠसरà¥à¤µà¥à¤¹à¤°à¤¨à¥‡ à¤à¤• कमकà¥à¤µà¤¤ की असलेले पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° सादर केले. आकà¥à¤°à¤®à¤£à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤¨à¥‡ गोपनीय की तोडलेली असू शकते आणि सरà¥à¤µà¥à¤¹à¤° हे आपलà¥à¤¯à¤¾à¤²à¤¾ अपेकà¥à¤·à¤¿à¤¤ असणारे सरà¥à¤µà¥à¤¹à¤° नसू शकते (आपण कदाचित आकà¥à¤°à¤®à¤£à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤¶à¥€ संवाद पà¥à¤°à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ करत असाल).</translation>
<translation id="1219129156119358924">सिसà¥à¤Ÿà¤® सà¥à¤°à¤•à¥à¤·à¤¾</translation>
<translation id="1227224963052638717">अजà¥à¤žà¤¾à¤¤ धोरण.</translation>
<translation id="1227633850867390598">मूलà¥à¤¯ लपवा</translation>
@@ -64,7 +64,7 @@
<translation id="1377321085342047638">कारà¥à¤¡ नंबर</translation>
<translation id="139305205187523129"><ph name="HOST_NAME" /> नी कोणताही डेटा पाठविला नाही.</translation>
<translation id="1407135791313364759">सरà¥à¤µ उघडा</translation>
-<translation id="1413809658975081374">गोपनीयता तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="1413809658975081374">गोपनीयता à¤à¤°à¤°</translation>
<translation id="14171126816530869"><ph name="ISSUER" /> दà¥à¤µà¤¾à¤°à¥‡ <ph name="LOCALITY" /> सà¥à¤¥à¤¿à¤¤ <ph name="ORGANIZATION" /> ची ओळख सतà¥à¤¯à¤¾à¤ªà¤¿à¤¤ केली गेली आहे.</translation>
<translation id="1426410128494586442">होय</translation>
<translation id="1430915738399379752">मà¥à¤¦à¥à¤°à¤£</translation>
@@ -131,7 +131,7 @@
<translation id="194030505837763158"><ph name="LINK" /> दà¥à¤µà¥à¤¯à¤¾à¤•à¤¡à¥‡ जा</translation>
<translation id="1948773908305951926">सà¥à¤µà¥€à¤•à¤¾à¤°à¤²à¥€ जाणारी पà¥à¤°à¥€à¤ªà¥‡à¤¡ कारà¥à¤¡à¥‡</translation>
<translation id="1962204205936693436"><ph name="DOMAIN" /> बà¥à¤•à¤®à¤¾à¤°à¥à¤•</translation>
-<translation id="1973335181906896915">कà¥à¤°à¤®à¥€à¤•à¤°à¤£ तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="1973335181906896915">कà¥à¤°à¤®à¥€à¤•à¤°à¤£ à¤à¤°à¤°</translation>
<translation id="1974060860693918893">पà¥à¤°à¤—त</translation>
<translation id="1978555033938440688">फरà¥à¤®à¤µà¥‡à¤¯à¤° आवृतà¥à¤¤à¥€</translation>
<translation id="2001146170449793414">{COUNT,plural, =1{आणि 1 अधिक}one{आणि # अधिक}other{आणि # अधिक}}</translation>
@@ -171,7 +171,7 @@
<translation id="2230458221926704099"><ph name="BEGIN_LINK" />निदान अॅप<ph name="END_LINK" /> वापरून आपलà¥à¤¯à¤¾ कनेकà¥à¤¶à¤¨à¤šà¥‡ निराकरण करा</translation>
<translation id="2239100178324503013">आता पाठवा</translation>
<translation id="225207911366869382">हे मूलà¥à¤¯ या धोरणासाठी नापसंत करणà¥â€à¤¯à¤¾à¤¤ आले आहे.</translation>
-<translation id="2262243747453050782">HTTP तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="2262243747453050782">HTTP à¤à¤°à¤°</translation>
<translation id="2270484714375784793">फोन नंबर</translation>
<translation id="2292556288342944218">आपला इंटरनेट पà¥à¤°à¤µà¥‡à¤¶ अवरोधित केला आहे</translation>
<translation id="230155334948463882">नवीन कारà¥à¤¡?</translation>
@@ -197,7 +197,7 @@
<translation id="2467694685043708798"><ph name="BEGIN_LINK" />नेटवरà¥à¤• निदान चालविणे<ph name="END_LINK" /></translation>
<translation id="2479410451996844060">अवैध शोध URL.</translation>
<translation id="2482878487686419369">सूचना</translation>
-<translation id="2491120439723279231">सरà¥à¤µà¥à¤¹à¤°à¤šà¥à¤¯à¤¾ पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°à¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¥€ आहेत.</translation>
+<translation id="2491120439723279231">सरà¥à¤µà¥à¤¹à¤°à¤šà¥à¤¯à¤¾ पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°à¤¾à¤¤ à¤à¤°à¤° आहेत.</translation>
<translation id="2495083838625180221">JSON विशà¥à¤²à¥‡à¤·à¤•</translation>
<translation id="2495093607237746763">चेक केलà¥à¤¯à¤¾à¤¸, अधिक जलद फॉरà¥à¤® भरणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ या डिवà¥à¤¹à¤¾à¤‡à¤¸à¤µà¤° Chromium आपलà¥à¤¯à¤¾ कारà¥à¤¡à¤šà¥€ à¤à¤• पà¥à¤°à¤¤ संचयित करेल.</translation>
<translation id="2498091847651709837">नवीन कारà¥à¤¡ सà¥à¤•à¥…न करा</translation>
@@ -288,7 +288,7 @@
<translation id="3120730422813725195">Elo</translation>
<translation id="31207688938192855"><ph name="BEGIN_LINK" />कनेकà¥à¤Ÿà¤¿à¤µà¥à¤¹à¤¿à¤Ÿà¥€ निदान चालवून पहा<ph name="END_LINK" />.</translation>
<translation id="3145945101586104090">पà¥à¤°à¤¤à¤¿à¤¸à¤¾à¤¦ डीकोड करणà¥à¤¯à¤¾à¤¤ अयशसà¥à¤µà¥€</translation>
-<translation id="3150653042067488994">तातà¥à¤ªà¥à¤°à¤¤à¥€ सरà¥à¤µà¥à¤¹à¤° तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="3150653042067488994">तातà¥à¤ªà¥à¤°à¤¤à¥€ सरà¥à¤µà¥à¤¹à¤° à¤à¤°à¤°</translation>
<translation id="3154506275960390542">या पृषà¥à¤ à¤¾à¤µà¤° à¤à¤• फॉरà¥à¤® आहे जो कदाचित सà¥à¤°à¤•à¥à¤·à¤¿à¤¤à¤ªà¤£à¥‡ सबमिट होणार नाही. आपण पाठविलेला डेटा पà¥à¤°à¤µà¤¾à¤¸à¤¾à¤¦à¤°à¤®à¥à¤¯à¤¾à¤¨ इतर पाहू शकतात किंवा सरà¥à¤µà¥à¤¹à¤° पà¥à¤°à¤¾à¤ªà¥à¤¤ करत असलेलà¥à¤¯à¤¾ आकà¥à¤°à¤®à¤£à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤¦à¥à¤µà¤¾à¤°à¥‡ सà¥à¤§à¤¾à¤°à¤¿à¤¤ केले जाऊ शकते.</translation>
<translation id="3157931365184549694">पà¥à¤¨à¤°à¥à¤¸à¤‚चयित करा</translation>
<translation id="3162559335345991374">आपण वापरत असलेलà¥à¤¯à¤¾ Wi-Fi चà¥à¤¯à¤¾ लॉग इन पृषà¥à¤ à¤¾à¤¸ आपलà¥à¤¯à¤¾à¤²à¤¾ भेट देणà¥à¤¯à¤¾à¤šà¥€ आवशà¥à¤¯à¤•à¤¤à¤¾ असू शकते.</translation>
@@ -301,7 +301,7 @@
<ph name="PLATFORM_TEXT" /></translation>
<translation id="320323717674993345">पेमेंट रदà¥à¤¦ करा</translation>
<translation id="3207960819495026254">बà¥à¤•à¤®à¤¾à¤°à¥à¤• केलेली</translation>
-<translation id="3209375525920864198">कृपया बरोबर सेशन नाव टाका.</translation>
+<translation id="3209375525920864198">कृपया à¤à¤• वैध सेशन नाव टाका.</translation>
<translation id="3211223744486044430">पà¥à¤¢à¥€à¤² वेळी जलद पेमेंट देणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€, तà¥à¤®à¤šà¥à¤¯à¤¾ Google खातà¥à¤¯à¤¾à¤µà¤° आणि या डीवà¥à¤¹à¤¾à¤‡à¤¸à¤µà¤° हे कारà¥à¤¡ सेवà¥à¤¹ करा.</translation>
<translation id="3225919329040284222">सरà¥à¤µà¥à¤¹à¤°à¤¨à¥‡ असे पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° सादर केले आहे जे अंगभूत अपेकà¥à¤·à¤¾à¤‚शी जà¥à¤³à¤¤ नाही. या अपेकà¥à¤·à¤¾ आपलà¥à¤¯à¤¾à¤²à¤¾ संरकà¥à¤·à¤¿à¤¤ करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ विशिषà¥à¤Ÿ, उचà¥à¤š-सà¥à¤°à¤•à¥à¤·à¤¿à¤¤à¤¤à¥‡à¤šà¥à¤¯à¤¾ वेबसाइटसाठी समाविषà¥à¤Ÿ केलà¥à¤¯à¤¾ आहेत.</translation>
<translation id="3226128629678568754">पृषà¥à¤  लोड करणà¥à¤¯à¤¾à¤¸ आवशà¥à¤¯à¤• असलेला डेटा पà¥à¤¨à¥à¤¹à¤¾ सबमिट करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ रीलोड बटण दाबा.</translation>
@@ -329,10 +329,10 @@
<ph name="LIST_ITEM" />कà¥à¤•à¥€à¤œ आणि साइट डेटा
<ph name="LIST_ITEM" />फॉरà¥à¤®à¤®à¤§à¥à¤¯à¥‡ टाकलेली माहिती
<ph name="END_LIST" /></translation>
-<translation id="3369192424181595722">घडà¥à¤¯à¤¾à¤³ तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="3369192424181595722">घडà¥à¤¯à¤¾à¤³ à¤à¤°à¤°</translation>
<translation id="337363190475750230">तरतूद रदà¥à¤¦ केली</translation>
-<translation id="3377188786107721145">धोरण विशà¥à¤²à¥‡à¤·à¤£ तà¥à¤°à¥à¤Ÿà¥€</translation>
-<translation id="3380365263193509176">अजà¥à¤žà¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="3377188786107721145">धोरण विशà¥à¤²à¥‡à¤·à¤£ à¤à¤°à¤°</translation>
+<translation id="3380365263193509176">अजà¥à¤žà¤¾à¤¤ à¤à¤°à¤°</translation>
<translation id="3380864720620200369">कà¥à¤²à¤¾à¤¯à¤‚ट आयडी:</translation>
<translation id="3391030046425686457">वितरण पतà¥à¤¤à¤¾</translation>
<translation id="3395827396354264108">पिकअप पदà¥à¤§à¤¤</translation>
@@ -392,7 +392,7 @@
<translation id="372429172604983730">या à¤à¤°à¤°à¤²à¤¾ कारणीभूत असू शकणारà¥â€à¤¯à¤¾ अॅपà¥à¤²à¤¿à¤•à¥‡à¤¶à¤¨à¤®à¤§à¥à¤¯à¥‡ अà¤à¤Ÿà¤¿à¤µà¥à¤¹à¤¾à¤¯à¤°à¤¸, फायरवॉल आणि वेब-फिलà¥à¤Ÿà¤°à¤¿à¤‚ग किंवा पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ सॉफà¥à¤Ÿà¤µà¥‡à¤…रचा समावेश होतो.</translation>
<translation id="3736520371357197498">आपलà¥à¤¯à¤¾à¤²à¤¾ आपलà¥à¤¯à¤¾ सà¥à¤°à¤•à¥à¤·à¤¿à¤¤à¤¤à¥‡à¤šà¥à¤¯à¤¾ जोखमी समजत असलà¥à¤¯à¤¾à¤¸, धोकादायक पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® काढणà¥à¤¯à¤¾à¤ªà¥‚रà¥à¤µà¥€ आपण <ph name="BEGIN_LINK" />या असà¥à¤°à¤•à¥à¤·à¤¿à¤¤ साइटला भेट देऊ शकता<ph name="END_LINK" />.</translation>
<translation id="3739623965217189342">आपण कॉपी केलेलà¥à¤¯à¤¾à¤šà¤¾ दà¥à¤µà¤¾ जोडा</translation>
-<translation id="3744899669254331632">Chromium पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ करू शकत नसलेले सरमिसळ केलेले कà¥à¤°à¥‡à¤¡à¥‡à¤¨à¥â€à¤¶à¤¿à¤¯à¤² वेबसाइटने पाठविलà¥â€à¤¯à¤¾à¤¨à¥‡ आपण आतà¥à¤¤à¤¾ <ph name="SITE" /> ला भेट देऊ शकत नाही. नेटवरà¥à¤• तà¥à¤°à¥à¤Ÿà¥€ आणि आकà¥à¤°à¤®à¤£ सहसा तातà¥à¤ªà¥à¤°à¤¤à¥‡ आहेत तà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ संभवत: हे पृषà¥â€à¤  नंतर कारà¥à¤¯ करेल.</translation>
+<translation id="3744899669254331632">Chromium पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ करू शकत नसलेले सरमिसळ केलेले कà¥à¤°à¥‡à¤¡à¥‡à¤¨à¥â€à¤¶à¤¿à¤¯à¤² वेबसाइटने पाठविलà¥â€à¤¯à¤¾à¤¨à¥‡ आपण आतà¥à¤¤à¤¾ <ph name="SITE" /> ला भेट देऊ शकत नाही. नेटवरà¥à¤• à¤à¤°à¤° आणि आकà¥à¤°à¤®à¤£ सहसा तातà¥à¤ªà¥à¤°à¤¤à¥‡ आहेत तà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ संभवत: हे पृषà¥â€à¤  नंतर कारà¥à¤¯ करेल.</translation>
<translation id="3748148204939282805"><ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> वरील हलà¥à¤²à¥‡à¤–ोर कदाचित तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ सॉफà¥à¤Ÿà¤µà¥‡à¤…र इंसà¥à¤Ÿà¥‰à¤² करणे किंवा तà¥à¤®à¤šà¥€ वैयकà¥à¤¤à¤¿à¤• माहिती (उदाहरणारà¥à¤¥, पासवरà¥à¤¡, फोन नंबर किंवा कà¥à¤°à¥‡à¤¡à¤¿à¤Ÿ कारà¥à¤¡à¥‡) उघड करणे यासारखà¥à¤¯à¤¾ काही धोकादायक गोषà¥à¤Ÿà¥€ करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ फसवू शकतात. <ph name="BEGIN_LEARN_MORE_LINK" />आणखी जाणून घà¥à¤¯à¤¾<ph name="END_LEARN_MORE_LINK" /></translation>
<translation id="375403751935624634">सरà¥à¤µà¥à¤¹à¤° तà¥à¤°à¥à¤Ÿà¥€à¤®à¥à¤³à¥‡ भाषांतर अयशसà¥à¤µà¥€ à¤à¤¾à¤²à¤¾.</translation>
<translation id="3759461132968374835">आपण अलीकडे कोणतेही कà¥à¤°à¥…श नोंदवले नाहीत. कà¥à¤°à¥…श नोंदवणे अकà¥à¤·à¤® असताना à¤à¤¾à¤²à¥‡à¤²à¥‡ कà¥à¤°à¥…श येथे दिसून येणार नाहीत.</translation>
@@ -423,7 +423,7 @@
<translation id="4030383055268325496">&amp;जोडा पूरà¥à¤µà¤µà¤¤ करा</translation>
<translation id="4058922952496707368">की "<ph name="SUBKEY" />": <ph name="ERROR" /></translation>
<translation id="4067947977115446013">वैध पतà¥à¤¤à¤¾ जोडा</translation>
-<translation id="4072486802667267160">आपलà¥à¤¯à¤¾ मागणीवर पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ करताना तà¥à¤°à¥à¤Ÿà¥€ आली, कृपया पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा.</translation>
+<translation id="4072486802667267160">आपलà¥à¤¯à¤¾ मागणीवर पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ करताना à¤à¤°à¤° आली, कृपया पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा.</translation>
<translation id="4075732493274867456">कà¥à¤²à¤¾à¤¯à¤‚ट आणि सरà¥à¤µà¥à¤¹à¤° à¤à¤• सामानà¥à¤¯ SSL पà¥à¤°à¥‹à¤Ÿà¥‹à¤•à¥‰à¤² आवृतà¥à¤¤à¥€ किंवा सायफर संचाचे समरà¥à¤¥à¤¨ करीत नाही.</translation>
<translation id="4079302484614802869">पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ कॉनà¥à¤«à¤¿à¤—रेशन .pac सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ URL वापरणà¥â€à¤¯à¤¾à¤¸ सेट करणà¥â€à¤¯à¤¾à¤¤ आले आहे, निशà¥à¤šà¤¿à¤¤ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ सरà¥à¤µà¥à¤¹à¤° नवà¥à¤¹à¥‡.</translation>
<translation id="4098354747657067197">भà¥à¤°à¤¾à¤®à¤• साइट पà¥à¤¢à¥‡ आहे</translation>
@@ -465,7 +465,7 @@
<translation id="4346197816712207223">सà¥à¤µà¥€à¤•à¤¾à¤°à¤²à¥€ जाणारी कà¥à¤°à¥‡à¤¡à¤¿à¤Ÿ कारà¥à¤¡à¥‡</translation>
<translation id="4356973930735388585">या साइट वरील आकà¥à¤°à¤®à¤£à¤•à¤°à¥à¤¤à¥‡ आपली माहिती (उदाहरणारà¥à¤¥, फोटो, पासवरà¥à¤¡, संदेश आणि कà¥à¤°à¥‡à¤¡à¤¿à¤Ÿ कारà¥à¤¡) चोरणारे किंवा हटविणारे धोकादायक पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® आपलà¥à¤¯à¤¾ संगणकावर इंसà¥à¤Ÿà¥‰à¤² करणà¥â€à¤¯à¤¾à¤šà¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करू शकतात.</translation>
<translation id="4372948949327679948">अपेकà¥à¤·à¤¿à¤¤ <ph name="VALUE_TYPE" /> मूलà¥à¤¯.</translation>
-<translation id="4377125064752653719">आपण <ph name="DOMAIN" /> वर पोहोचणà¥à¤¯à¤¾à¤šà¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ केला, परंतॠसरà¥à¤µà¥à¤¹à¤°à¤¨à¥‡ सादर केलेले पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° तà¥à¤¯à¤¾à¤šà¥à¤¯à¤¾ जारीकरà¥à¤¤à¥à¤¯à¤¾à¤¦à¥à¤µà¤¾à¤°à¥‡ मागे घेतले गेले आहे. याचा अरà¥à¤¥ सरà¥à¤µà¥à¤¹à¤°à¤¨à¥‡ सादर केलेलà¥à¤¯à¤¾ सà¥à¤°à¤•à¥à¤·à¤¾ कà¥à¤°à¥‡à¤¡à¥‡à¤¨à¥à¤¶à¤¿à¤¯à¤²à¤µà¤° अजिबात ठेवला जाऊ नये. आपण कदाचित आकà¥à¤°à¤®à¤£à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤¶à¥€ संपà¥à¤°à¥‡à¤·à¤£ करत आहात.</translation>
+<translation id="4377125064752653719">आपण <ph name="DOMAIN" /> वर पोहोचणà¥à¤¯à¤¾à¤šà¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ केला, परंतॠसरà¥à¤µà¥à¤¹à¤°à¤¨à¥‡ सादर केलेले पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° तà¥à¤¯à¤¾à¤šà¥à¤¯à¤¾ जारीकरà¥à¤¤à¥à¤¯à¤¾à¤¦à¥à¤µà¤¾à¤°à¥‡ मागे घेतले गेले आहे. याचा अरà¥à¤¥ सरà¥à¤µà¥à¤¹à¤°à¤¨à¥‡ सादर केलेलà¥à¤¯à¤¾ सà¥à¤°à¤•à¥à¤·à¤¾ कà¥à¤°à¥‡à¤¡à¥‡à¤¨à¥à¤¶à¤¿à¤¯à¤²à¤µà¤° अजिबात ठेवला जाऊ नये. आपण कदाचित आकà¥à¤°à¤®à¤£à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤¶à¥€ संवाद पà¥à¤°à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ करत आहात.</translation>
<translation id="4394049700291259645">अकà¥à¤·à¤® करा</translation>
<translation id="4406896451731180161">शोध परिणाम</translation>
<translation id="4415426530740016218">घेणà¥à¤¯à¤¾à¤šà¤¾ पतà¥à¤¤à¤¾</translation>
@@ -473,7 +473,7 @@
<translation id="4432688616882109544"><ph name="HOST_NAME" /> ने आपले लॉग इन पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° सà¥à¤µà¥€à¤•à¤¾à¤°à¤²à¥‡ नाही किंवा कदाचित पà¥à¤°à¤¦à¤¾à¤¨ केले गेले नसावे.</translation>
<translation id="443673843213245140">पà¥à¤°à¥‰à¤•à¥à¤¸à¥€à¤šà¤¾ वापर अकà¥à¤·à¤® करणà¥â€à¤¯à¤¾à¤¤ आला आहे पण à¤à¤• सà¥à¤¸à¥à¤ªà¤·à¥â€à¤Ÿ पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ कॉनà¥â€à¤«à¤¿à¤—रेशन निरà¥à¤¦à¤¿à¤·à¥â€à¤Ÿ करणà¥â€à¤¯à¤¾à¤¤ आले आहे.</translation>
<translation id="445100540951337728">डेबिट कारà¥à¤¡à¥‡ सà¥à¤µà¥€à¤•à¤¾à¤°à¤²à¥€ जातात</translation>
-<translation id="4506176782989081258">पà¥à¤°à¤®à¤¾à¤£à¥€à¤•à¤°à¤£ तà¥à¤°à¥à¤Ÿà¥€: <ph name="VALIDATION_ERROR" /></translation>
+<translation id="4506176782989081258">पà¥à¤°à¤®à¤¾à¤£à¥€à¤•à¤°à¤£ à¤à¤°à¤°: <ph name="VALIDATION_ERROR" /></translation>
<translation id="4506599922270137252">सिसà¥à¤Ÿà¤® पà¥à¤°à¤¶à¤¾à¤¸à¤•à¤¾à¤¶à¥€ संपरà¥à¤• साधणे</translation>
<translation id="450710068430902550">पà¥à¤°à¤¶à¤¾à¤¸à¤•à¤¾à¤¸à¤¹ सामायिक करीत आहे</translation>
<translation id="4515275063822566619">कारà¥à¤¡ आणि पतà¥à¤¤à¥‡ Chrome आणि आपलà¥à¤¯à¤¾ Google खातà¥à¤¯à¤¾à¤•à¤¡à¥€à¤² (<ph name="ACCOUNT_EMAIL" />) आहेत. आपण तà¥à¤¯à¤¾à¤‚ना <ph name="BEGIN_LINK" />सेटिंगà¥â€à¤œ<ph name="END_LINK" /> मधून वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤ करू शकता.</translation>
@@ -488,7 +488,7 @@
<translation id="4611292653554630842">लॉग इन करा</translation>
<translation id="4619615317237390068">अनà¥à¤¯ डिवà¥à¤¹à¤¾à¤‡à¤¸à¥‡à¤¸à¤®à¤§à¥€à¤² टॅब</translation>
<translation id="4668929960204016307">,</translation>
-<translation id="467662567472608290">हा सरà¥à¤µà¥à¤¹à¤° हे <ph name="DOMAIN" /> असलà¥à¤¯à¤¾à¤šà¥‡ सिदà¥à¤§ करू शकला नाही; तà¥à¤¯à¤¾à¤šà¥à¤¯à¤¾ सà¥à¤°à¤•à¥à¤·à¤¿à¤¤à¤¤à¤¾ पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°à¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¥€ आहेत. हे कदाचित à¤à¤•à¤¾ चà¥à¤•à¥€à¤šà¥à¤¯à¤¾ कॉनà¥à¤«à¤¿à¤—रेशनमà¥à¤³à¥‡ किंवा आकà¥à¤°à¤®à¤£à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤¨à¥‡ आपले कनेकà¥à¤¶à¤¨ आंतरखंडित केलà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ à¤à¤¾à¤²à¥‡ असू शकते.</translation>
+<translation id="467662567472608290">हा सरà¥à¤µà¥à¤¹à¤° हे <ph name="DOMAIN" /> असलà¥à¤¯à¤¾à¤šà¥‡ सिदà¥à¤§ करू शकला नाही; तà¥à¤¯à¤¾à¤šà¥à¤¯à¤¾ सà¥à¤°à¤•à¥à¤·à¤¿à¤¤à¤¤à¤¾ पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤°à¤¾à¤¤ à¤à¤°à¤° आहेत. हे कदाचित à¤à¤•à¤¾ चà¥à¤•à¥€à¤šà¥à¤¯à¤¾ कॉनà¥à¤«à¤¿à¤—रेशनमà¥à¤³à¥‡ किंवा आकà¥à¤°à¤®à¤£à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤¨à¥‡ आपले कनेकà¥à¤¶à¤¨ आंतरखंडित केलà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ à¤à¤¾à¤²à¥‡ असू शकते.</translation>
<translation id="4690462567478992370">अवैध पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° वापरणे थांबवा</translation>
<translation id="4690954380545377795">तà¥à¤®à¥à¤¹à¥€ तà¥à¤®à¤šà¥à¤¯à¤¾ Google खातà¥à¤¯à¤¾à¤šà¤¾ अॅकà¥à¤¸à¥‡à¤¸ गमावू शकता किंवा तà¥à¤®à¤šà¥€ संवेदनशील माहिती चोरीला जाऊ शकते. Chrome लगेच तà¥à¤®à¤šà¤¾ पासवरà¥à¤¡ बदलणà¥à¤¯à¤¾à¤šà¥€ शिफारस करत आहे.</translation>
<translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
@@ -506,12 +506,12 @@
<translation id="4758311279753947758">संपरà¥à¤• माहिती जोडा</translation>
<translation id="4759118997339041434">पेमेंट सà¥à¤µà¤¯à¤‚भरण अकà¥à¤·à¤® केले</translation>
<translation id="4764776831041365478"><ph name="URL" /> येथील वेबपृषà¥à¤  कदाचित तातà¥à¤ªà¥à¤°à¤¤à¥‡ बंद आहे किंवा ते कदाचित कायमचे नवीन वेब पतà¥à¤¤à¥à¤¯à¤¾à¤µà¤° हलवले आहे.</translation>
-<translation id="4771973620359291008">à¤à¤• अजà¥à¤žà¤¾à¤¤ तà¥à¤°à¥à¤Ÿà¥€ आली आहे.</translation>
+<translation id="4771973620359291008">à¤à¤• अजà¥à¤žà¤¾à¤¤ à¤à¤°à¤° आली आहे.</translation>
<translation id="4792143361752574037">सेशन फायली अâ€à¥…कà¥à¤¸à¥‡à¤¸ करताना अडचण आली. डिसà¥à¤•à¤µà¤° सेवà¥à¤¹ करणे सधà¥à¤¯à¤¾ बंद केलेले आहे. पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ कृपया पेज रीलोड करा.</translation>
<translation id="4800132727771399293">आपली कालबाहà¥à¤¯à¤¤à¤¾ तारीख आणि CVC तपासा आणि पà¥à¤¨à¥à¤¹à¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ करा</translation>
<translation id="4803924862070940586"><ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
-<translation id="4807049035289105102">Google Chrome पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ करू शकत नाही असे न समजणारे कà¥à¤°à¥‡à¤¡à¥‡à¤¨à¥à¤¶à¤¿à¤¯à¤² वेबसाइटने पाठविलà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ आपण आतà¥à¤¤à¤¾ <ph name="SITE" /> ला भेट देऊ शकत नाही. नेटवरà¥à¤• तà¥à¤°à¥à¤Ÿà¥€ आणि आकà¥à¤°à¤®à¤£ सामानà¥à¤¯à¤¤à¤ƒ तातà¥à¤ªà¥à¤°à¤¤à¥‡ असतात, यामà¥à¤³à¥‡ हे पृषà¥à¤  कदाचित नंतर कारà¥à¤¯ करेल.</translation>
-<translation id="4813512666221746211">नेटवरà¥à¤• तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="4807049035289105102">Google Chrome पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ करू शकत नाही असे न समजणारे कà¥à¤°à¥‡à¤¡à¥‡à¤¨à¥à¤¶à¤¿à¤¯à¤² वेबसाइटने पाठविलà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ आपण आतà¥à¤¤à¤¾ <ph name="SITE" /> ला भेट देऊ शकत नाही. नेटवरà¥à¤• à¤à¤°à¤° आणि आकà¥à¤°à¤®à¤£ सामानà¥à¤¯à¤¤à¤ƒ तातà¥à¤ªà¥à¤°à¤¤à¥‡ असतात, यामà¥à¤³à¥‡ हे पृषà¥à¤  कदाचित नंतर कारà¥à¤¯ करेल.</translation>
+<translation id="4813512666221746211">नेटवरà¥à¤• à¤à¤°à¤°</translation>
<translation id="4816492930507672669">पृषà¥â€à¤ à¤¾à¤¨à¥à¤°à¥à¤ª करा</translation>
<translation id="483020001682031208">दरà¥à¤¶à¤µà¤¿à¤£à¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ कोणतीही वासà¥à¤¤à¤µà¤¿à¤• वेब पृषà¥à¤ à¥‡ नाहीत</translation>
<translation id="4850886885716139402">पहा</translation>
@@ -551,7 +551,7 @@
<translation id="5095208057601539847">पà¥à¤°à¤¾à¤‚त</translation>
<translation id="5115563688576182185">(64-बिट)</translation>
<translation id="5141240743006678641">आपलà¥à¤¯à¤¾ Google कà¥à¤°à¥‡à¤¡à¥‡à¤¨à¥à¤¶à¤¿à¤¯à¤²à¤¸à¤¹ संंकालित केलेले पासवरà¥à¤¡ कूटबदà¥à¤§ करा</translation>
-<translation id="5145883236150621069">धोरण पà¥à¤°à¤¤à¤¿à¤¸à¤¾à¤¦à¤¾à¤®à¤§à¥à¤¯à¥‡ तà¥à¤°à¥à¤Ÿà¥€ कोड असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ आहे</translation>
+<translation id="5145883236150621069">धोरण पà¥à¤°à¤¤à¤¿à¤¸à¤¾à¤¦à¤¾à¤®à¤§à¥à¤¯à¥‡ à¤à¤°à¤° कोड असà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ आहे</translation>
<translation id="5159010409087891077">नवीन गà¥à¤ªà¥à¤¤ विंडोमधà¥à¤¯à¥‡ पेज उघडा (⇧⌘N)</translation>
<translation id="5171045022955879922">URL शोधा किंवा टाइप करा</translation>
<translation id="5172758083709347301">मशीन</translation>
@@ -575,7 +575,7 @@
<ph name="LIST_ITEM" /> सॉफà¥à¤Ÿà¤µà¥‡à¤…र तà¥à¤®à¤šà¥à¤¯à¤¾ काà¤à¤ªà¥à¤¯à¥à¤Ÿà¤°à¤µà¤°à¥‚न काढून कसे टाकावे हे माहीत करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ <ph name="BEGIN_LEARN_MORE_LINK" />Chrome मदत केंदà¥à¤°<ph name="END_LEARN_MORE_LINK" /> वर जा
<ph name="END_LIST" /></translation>
<translation id="5285570108065881030">सरà¥à¤µ सेवà¥à¤¹ केलेले पासवरà¥à¤¡ दाखवा</translation>
-<translation id="5299298092464848405">धोरण विशà¥à¤²à¥‡à¤·à¤¿à¤¤ करताना तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="5299298092464848405">धोरण विशà¥à¤²à¥‡à¤·à¤¿à¤¤ करताना à¤à¤°à¤°</translation>
<translation id="5308380583665731573">कनेकà¥â€à¤Ÿ करा</translation>
<translation id="5308689395849655368">कà¥à¤°à¥…श अहवाल अकà¥à¤·à¤® केला गेला आहे.</translation>
<translation id="5317780077021120954">सेवà¥à¤¹ करा</translation>
@@ -590,7 +590,7 @@
<translation id="5421136146218899937">बà¥à¤°à¤¾à¤‰à¤à¤¿à¤‚ग डेटा साफ करा...</translation>
<translation id="5430298929874300616">बà¥à¤•à¤®à¤¾à¤°à¥à¤• काढा</translation>
<translation id="5431657950005405462">आपली फाईल आढळली नाही</translation>
-<translation id="5439770059721715174">"<ph name="ERROR_PATH" />" वर सà¥à¤•à¥€à¤®à¤¾ पà¥à¤°à¤®à¤¾à¤£à¥€à¤•à¤°à¤£ तà¥à¤°à¥à¤Ÿà¥€: <ph name="ERROR" /></translation>
+<translation id="5439770059721715174">"<ph name="ERROR_PATH" />" वर सà¥à¤•à¥€à¤®à¤¾ पà¥à¤°à¤®à¤¾à¤£à¥€à¤•à¤°à¤£ à¤à¤°à¤°: <ph name="ERROR" /></translation>
<translation id="5452270690849572955">हे <ph name="HOST_NAME" /> पृषà¥à¤  शोधले जाऊ शकत नाही</translation>
<translation id="5455374756549232013">खराब धोरण टाइमसà¥à¤Ÿà¤à¤ª</translation>
<translation id="5457113250005438886">अवैध</translation>
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">वैयकà¥à¤¤à¥€à¤•à¥ƒà¤¤ सामगà¥à¤°à¥€ मिळवा</translation>
<translation id="5675650730144413517">हे पृषà¥à¤  कारà¥à¤¯ करीत नाही</translation>
<translation id="5689199277474810259">JSON वर निरà¥à¤¯à¤¾à¤¤ करा</translation>
+<translation id="5689516760719285838">सà¥à¤¥à¤¾à¤¨</translation>
<translation id="5710435578057952990">या वेबसाइटची ओळख सतà¥à¤¯à¤¾à¤ªà¤¿à¤¤ केली गेली नाही.</translation>
<translation id="5719499550583120431">पà¥à¤°à¥€à¤ªà¥‡à¤¡ कारà¥à¤¡à¥‡ सà¥à¤µà¥€à¤•à¤¾à¤°à¤²à¥€ जातात.</translation>
<translation id="5720705177508910913">वरà¥à¤¤à¤®à¤¾à¤¨ वापरकरà¥à¤¤à¤¾</translation>
@@ -746,7 +747,7 @@
<translation id="6710213216561001401">मागील</translation>
<translation id="6710594484020273272">&lt;शोध संजà¥à¤žà¤¾ à¤à¤‚टर करा&gt;</translation>
<translation id="6711464428925977395">पà¥à¤°à¥‰à¤•à¥à¤¸à¥€ सरà¥à¤µà¥à¤¹à¤°à¤®à¤§à¥à¤¯à¥‡ काहीतरी चà¥à¤•à¥€à¤šà¥‡ आहे किंवा पतà¥à¤¤à¤¾ चà¥à¤•à¥€à¤šà¤¾ आहे.</translation>
-<translation id="674375294223700098">अजà¥à¤žà¤¾à¤¤ सरà¥à¤µà¥à¤¹à¤° पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° तà¥à¤°à¥à¤Ÿà¥€.</translation>
+<translation id="674375294223700098">अजà¥à¤žà¤¾à¤¤ सरà¥à¤µà¥à¤¹à¤° पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° à¤à¤°à¤°.</translation>
<translation id="6753269504797312559">धोरण मूलà¥à¤¯</translation>
<translation id="6757797048963528358">आपले डिवà¥à¤¹à¤¾à¤‡à¤¸ निषà¥à¤•à¥à¤°à¥€à¤¯ à¤à¤¾à¤²à¥‡.</translation>
<translation id="6778737459546443941">आपलà¥à¤¯à¤¾ पालकाने अदà¥à¤¯à¤¾à¤ª ती मंजूर केली नाही</translation>
@@ -972,7 +973,7 @@
<translation id="858637041960032120">फोन नंबर जोडा</translation>
<translation id="859285277496340001">पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° निरसà¥à¤¤ à¤à¤¾à¤²à¥‡ आहे किंवा नाही हे तपासणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ पà¥à¤°à¤£à¤¾à¤²à¥€ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करत नाही.</translation>
<translation id="8620436878122366504">आपलà¥à¤¯à¤¾ पालकांनी अदà¥à¤¯à¤¾à¤ª ती मंजूर केली नाही</translation>
-<translation id="8625384913736129811">हे कारà¥à¤¡ या डिवà¥à¤¹à¤¾à¤‡à¤¸à¤µà¤° सेवà¥à¤¹ करा</translation>
+<translation id="8625384913736129811">या डिवà¥à¤¹à¤¾à¤‡à¤¸à¤µà¤° हे कारà¥à¤¡ सेवà¥â€à¤¹ करा</translation>
<translation id="8647750283161643317">सरà¥à¤µ डीफॉलà¥à¤Ÿà¤®à¤§à¥à¤¯à¥‡ रीसेट करा</translation>
<translation id="8660471606262461360">Google Payments वरून</translation>
<translation id="8688672835843460752">उपलबà¥à¤§</translation>
@@ -993,7 +994,7 @@
<translation id="884264119367021077">वहनावळ पतà¥à¤¤à¤¾</translation>
<translation id="884923133447025588">कोणतीही निरसà¥à¤¤ करणà¥à¤¯à¤¾à¤šà¥€ पà¥à¤°à¤£à¤¾à¤²à¥€ आढळली नाही.</translation>
<translation id="885730110891505394">Google सह सामायिकरण</translation>
-<translation id="8866481888320382733">धोरण सेटिंगà¥à¤œ विशà¥à¤²à¥‡à¤·à¤¿à¤¤ करताना तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="8866481888320382733">धोरण सेटिंगà¥à¤œ विशà¥à¤²à¥‡à¤·à¤¿à¤¤ करताना à¤à¤°à¤°</translation>
<translation id="8866959479196209191">हे पृषà¥à¤  मà¥à¤¹à¤£à¤¤à¥‡:</translation>
<translation id="8870413625673593573">अलीकडे बंद</translation>
<translation id="8874824191258364635">वैध कारà¥à¤¡ नंबर à¤à¤‚टर करा</translation>
@@ -1015,7 +1016,7 @@
<translation id="901974403500617787">सिसà¥à¤Ÿà¤®-वà¥à¤¯à¤¾à¤ªà¥à¤¤ लागू होणारी धà¥à¤µà¤œà¤¾à¤‚कने केवळ मालकादà¥à¤µà¤¾à¤°à¥‡ सेट केली जाऊ शकतात: <ph name="OWNER_EMAIL" />.</translation>
<translation id="9020200922353704812">कारà¥à¤¡ बिलिंग पतà¥à¤¤à¤¾ आवशà¥à¤¯à¤• आहे</translation>
<translation id="9020542370529661692">हे पृषà¥à¤  <ph name="TARGET_LANGUAGE" /> मधà¥à¤¯à¥‡ भाषांतरित केले गेले आहे.</translation>
-<translation id="9035022520814077154">सà¥à¤°à¤•à¥à¤·à¤¿à¤¤à¤¤à¤¾ तà¥à¤°à¥à¤Ÿà¥€</translation>
+<translation id="9035022520814077154">सà¥à¤°à¤•à¥à¤·à¤¿à¤¤à¤¤à¤¾ à¤à¤°à¤°</translation>
<translation id="9038649477754266430">पृषà¥à¤ à¥‡ अधिक दà¥à¤°à¥à¤¤à¤ªà¤£à¥‡ लोड करणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ पूरà¥à¤µà¤¾à¤¨à¥à¤®à¤¾à¤¨ सेवेचा वापर करा</translation>
<translation id="9039213469156557790">पà¥à¤¢à¥‡, या पृषà¥à¤ à¤¾à¤¤ सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ नसलेली इतर संसाधने समाविषà¥à¤Ÿ आहेत. ही संसाधने संकà¥à¤°à¤®à¤£à¤¾à¤¤ असताना इतरांदà¥à¤µà¤¾à¤°à¥‡ पाहिली जाऊ शकतात आणि पृषà¥à¤ à¤¾à¤šà¥‡ वरà¥à¤¤à¤¨ बदलणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ आकà¥à¤°à¤®à¤£à¤•à¤°à¥à¤¤à¥à¤¯à¤¾à¤¦à¥à¤µà¤¾à¤°à¥‡ सà¥à¤§à¤¾à¤°à¤¿à¤¤ केली जाऊ शकतात.</translation>
<translation id="9049981332609050619">आपण <ph name="DOMAIN" /> वर पोहोचणà¥à¤¯à¤¾à¤šà¤¾ पà¥à¤°à¤¯à¤¤à¥à¤¨ केला, परंतॠसरà¥à¤µà¥à¤¹à¤°à¤¨à¥‡ अवैध पà¥à¤°à¤®à¤¾à¤£à¤ªà¤¤à¥à¤° सादर केले आहे.</translation>
diff --git a/chromium/components/strings/components_strings_ms.xtb b/chromium/components/strings/components_strings_ms.xtb
index e9f1563a641..d92655eb48a 100644
--- a/chromium/components/strings/components_strings_ms.xtb
+++ b/chromium/components/strings/components_strings_ms.xtb
@@ -632,6 +632,7 @@
<translation id="5669703222995421982">Dapatkan kandungan yang diperibadikan</translation>
<translation id="5675650730144413517">Halaman ini tidak berfungsi</translation>
<translation id="5689199277474810259">Eksport ke JSON</translation>
+<translation id="5689516760719285838">Lokasi</translation>
<translation id="5710435578057952990">Identiti tapak web ini belum disahkan.</translation>
<translation id="5719499550583120431">Kad prabayar diterima.</translation>
<translation id="5720705177508910913">Pengguna semasa</translation>
@@ -750,7 +751,7 @@
<translation id="6753269504797312559">Nilai dasar</translation>
<translation id="6757797048963528358">Peranti anda tidak aktif.</translation>
<translation id="6778737459546443941">Ibu bapa anda belum meluluskannya</translation>
-<translation id="681021252041861472">Medan yang Diperlukan</translation>
+<translation id="681021252041861472">Medan Diperlukan</translation>
<translation id="6810899417690483278">ID Penyesuaian</translation>
<translation id="6820686453637990663">CVC</translation>
<translation id="6824266427216888781">Gagal memuatkan data rantau</translation>
diff --git a/chromium/components/strings/components_strings_nl.xtb b/chromium/components/strings/components_strings_nl.xtb
index 409efc10394..c9760d9cac9 100644
--- a/chromium/components/strings/components_strings_nl.xtb
+++ b/chromium/components/strings/components_strings_nl.xtb
@@ -77,7 +77,7 @@
<translation id="1549470594296187301">JavaScript moet zijn ingeschakeld om deze functie te kunnen gebruiken.</translation>
<translation id="1559528461873125649">Dit bestand of deze directory bestaat niet</translation>
<translation id="1583429793053364125">Er is iets misgegaan met het weergeven van deze webpagina.</translation>
-<translation id="1590457302292452960">Een sterk wachtwoord genereren...</translation>
+<translation id="1590457302292452960">Een sterk wachtwoord genereren…</translation>
<translation id="1592005682883173041">Lokale gegevenstoegang</translation>
<translation id="1594030484168838125">Kiezen</translation>
<translation id="1620510694547887537">Camera</translation>
@@ -627,6 +627,7 @@
<translation id="5669703222995421982">Gepersonaliseerde content ontvangen</translation>
<translation id="5675650730144413517">Deze pagina werkt niet</translation>
<translation id="5689199277474810259">Exporteren naar JSON</translation>
+<translation id="5689516760719285838">Locatie</translation>
<translation id="5710435578057952990">De identiteit van deze website is niet geverifieerd.</translation>
<translation id="5719499550583120431">Prepaidkaarten worden geaccepteerd.</translation>
<translation id="5720705177508910913">Huidige gebruiker</translation>
@@ -966,7 +967,7 @@
<translation id="858637041960032120">Telnr. toevoegen</translation>
<translation id="859285277496340001">Er wordt in het certificaat geen methode gespecificeerd waarmee kan worden gecontroleerd of het certificaat is ingetrokken.</translation>
<translation id="8620436878122366504">Je ouders hebben dit nog niet goedgekeurd</translation>
-<translation id="8625384913736129811">Deze creditcard opslaan op dit apparaat</translation>
+<translation id="8625384913736129811">Deze kaart opslaan op dit apparaat</translation>
<translation id="8647750283161643317">Alle standaardinstellingen herstellen</translation>
<translation id="8660471606262461360">Van Google Payments</translation>
<translation id="8688672835843460752">Beschikbaar</translation>
diff --git a/chromium/components/strings/components_strings_no.xtb b/chromium/components/strings/components_strings_no.xtb
index e1b00aed1eb..e60c091a328 100644
--- a/chromium/components/strings/components_strings_no.xtb
+++ b/chromium/components/strings/components_strings_no.xtb
@@ -77,7 +77,7 @@
<translation id="1549470594296187301">Denne funksjonen kan ikke brukes når JavaScript er slått av.</translation>
<translation id="1559528461873125649">Finner ingen slik fil eller katalog</translation>
<translation id="1583429793053364125">Noe gikk galt under åpningen av denne nettsiden.</translation>
-<translation id="1590457302292452960">Generer et sterkt passord</translation>
+<translation id="1590457302292452960">Generer et sterkt passord …</translation>
<translation id="1592005682883173041">Tilgang til lokale data</translation>
<translation id="1594030484168838125">Velg</translation>
<translation id="1620510694547887537">Kamera</translation>
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">FÃ¥ innhold med et personlig preg</translation>
<translation id="5675650730144413517">Denne siden fungerer ikke</translation>
<translation id="5689199277474810259">Eksportér til JSON</translation>
+<translation id="5689516760719285838">Sted</translation>
<translation id="5710435578057952990">Identiteten til dette nettstedet er ikke verifisert.</translation>
<translation id="5719499550583120431">Forhåndsbetalte kort godtas.</translation>
<translation id="5720705177508910913">Gjeldende bruker</translation>
@@ -886,7 +887,7 @@
<translation id="7812922009395017822">Mir</translation>
<translation id="7813600968533626083">Vil du fjerne skjemaforslaget fra Chrome?</translation>
<translation id="7815407501681723534">Fant <ph name="NUMBER_OF_RESULTS" /> <ph name="SEARCH_RESULTS" /> for «<ph name="SEARCH_STRING" />»</translation>
-<translation id="7818867226424560206">Administrasjon av regler</translation>
+<translation id="7818867226424560206">Administrasjon av retningslinjer</translation>
<translation id="782886543891417279">Det kan hende at Wi-Fi-nettverket du bruker (<ph name="WIFI_NAME" />), krever at du besøker en påloggingsside.</translation>
<translation id="785549533363645510">Du er imidlertid ikke usynlig. Inkognitomodus skjuler ikke surfingen din for arbeidsgiveren din, Internett-leverandøren eller nettstedene du besøker.</translation>
<translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="CURRENCY_CODE" /> <ph name="FORMATTED_TOTAL_AMOUNT" /></translation>
@@ -943,7 +944,7 @@
<translation id="8298115750975731693">Det kan hende at Wi-Fi-nettverket du bruker (<ph name="WIFI_NAME" />), krever at du besøker <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" />.</translation>
<translation id="8306404619377842860">Det kan ikke opprettes noen privat tilkobling til <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, siden datoen og klokkeslettet (<ph name="DATE_AND_TIME" />) på enheten du bruker, er feil. <ph name="BEGIN_LEARN_MORE_LINK" />Finn ut mer<ph name="END_LEARN_MORE_LINK" /></translation>
<translation id="8308427013383895095">Oversettelsen mislyktes på grunn av et problem med nettverksforbindelsen.</translation>
-<translation id="8311129316111205805">Last inn økt</translation>
+<translation id="8311129316111205805">Last inn økten</translation>
<translation id="8332188693563227489">Forsøket på å koble til <ph name="HOST_NAME" /> ble avvist</translation>
<translation id="834457929814110454">Hvis du forstår sikkerhetsrisikoen, kan du <ph name="BEGIN_LINK" />gå til det usikre nettstedet<ph name="END_LINK" /> før de farlige programmene er fjernet.</translation>
<translation id="8349305172487531364">Bokmerkerad</translation>
diff --git a/chromium/components/strings/components_strings_pl.xtb b/chromium/components/strings/components_strings_pl.xtb
index 7ba632a35da..fe1b8e78a75 100644
--- a/chromium/components/strings/components_strings_pl.xtb
+++ b/chromium/components/strings/components_strings_pl.xtb
@@ -437,7 +437,7 @@
<translation id="413544239732274901">Więcej informacji</translation>
<translation id="4148925816941278100">American Express</translation>
<translation id="4151403195736952345">Użyj globalnego ustawienia domyślnego (Wykrywaj)</translation>
-<translation id="4165986682804962316">Ustawienia witryn</translation>
+<translation id="4165986682804962316">Ustawienia witryny</translation>
<translation id="4169947484918424451">Czy Chromium ma zapisać tę kartę?</translation>
<translation id="4171400957073367226">Nieprawidłowy podpis weryfikujący</translation>
<translation id="4173827307318847180">{MORE_ITEMS,plural, =1{Jeszcze <ph name="ITEM_COUNT" /> element}few{Jeszcze <ph name="ITEM_COUNT" /> elementy}many{Jeszcze <ph name="ITEM_COUNT" /> elementów}other{Jeszcze <ph name="ITEM_COUNT" /> elementu}}</translation>
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Otrzymywanie spersonalizowanych treści</translation>
<translation id="5675650730144413517">Ta strona nie działa</translation>
<translation id="5689199277474810259">Eksportuj w formacie JSON</translation>
+<translation id="5689516760719285838">Lokalizacja</translation>
<translation id="5710435578057952990">Tożsamość witryny nie została zweryfikowana.</translation>
<translation id="5719499550583120431">Karty przedpłacone są akceptowane.</translation>
<translation id="5720705177508910913">Bieżący użytkownik</translation>
diff --git a/chromium/components/strings/components_strings_pt-BR.xtb b/chromium/components/strings/components_strings_pt-BR.xtb
index 07cb4fc79fa..59398f25d1a 100644
--- a/chromium/components/strings/components_strings_pt-BR.xtb
+++ b/chromium/components/strings/components_strings_pt-BR.xtb
@@ -8,7 +8,7 @@
<translation id="1038842779957582377">nome desconhecido</translation>
<translation id="1050038467049342496">Fechar outros apps</translation>
<translation id="1055184225775184556">&amp;Desfazer adicionar</translation>
-<translation id="10614374240317010">Nunca salvam</translation>
+<translation id="10614374240317010">Nunca salvas</translation>
<translation id="1066396345355680611">É possível que você perca o acesso a conteúdos protegidos de <ph name="SITE" /> e de alguns outros sites.</translation>
<translation id="106701514854093668">Favoritos em computador</translation>
<translation id="1074497978438210769">Não seguro</translation>
@@ -280,7 +280,7 @@
<translation id="3039538478787849737">Salvar cartão no Google?</translation>
<translation id="3041612393474885105">Informações do certificado</translation>
<translation id="3063697135517575841">Não foi possível confirmar seu cartão com o Chrome no momento. Tente novamente mais tarde.</translation>
-<translation id="3064966200440839136">Saindo do modo sem rastros para pagar usando um aplicativo externo. Continuar?</translation>
+<translation id="3064966200440839136">Saindo do modo de navegação anônima para pagar usando um aplicativo externo. Continuar?</translation>
<translation id="3083099961703215236">{COUNT,plural, =0{Nenhuma}=1{1 senha}one{# senha}other{# senhas}}</translation>
<translation id="3093245981617870298">Você está off-line.</translation>
<translation id="3105172416063519923">Código do recurso:</translation>
@@ -301,7 +301,7 @@
<ph name="PLATFORM_TEXT" /></translation>
<translation id="320323717674993345">Cancelar pagamento</translation>
<translation id="3207960819495026254">Adicionada aos favoritos</translation>
-<translation id="3209375525920864198">Insira um nome de sessão válido.</translation>
+<translation id="3209375525920864198">Digite um nome de sessão válido.</translation>
<translation id="3211223744486044430">Para agilizar o pagamento na próxima vez, salve este cartão na sua Conta do Google e neste dispositivo.</translation>
<translation id="3225919329040284222">O servidor apresentou um certificado que não coincide com as expectativas incorporadas. Estas expectativas são incluídas para determinados websites de alta segurança com a finalidade de oferecer proteção a você.</translation>
<translation id="3226128629678568754">Pressione o botão "Atualizar" para reenviar os dados necessários para carregar a página.</translation>
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Receber conteúdo personalizado</translation>
<translation id="5675650730144413517">Esta página não está funcionando</translation>
<translation id="5689199277474810259">Exportar para JSON</translation>
+<translation id="5689516760719285838">Local</translation>
<translation id="5710435578057952990">A identidade deste site não foi confirmada.</translation>
<translation id="5719499550583120431">Cartões pré-pagos são aceitos.</translation>
<translation id="5720705177508910913">Usuário atual</translation>
diff --git a/chromium/components/strings/components_strings_pt-PT.xtb b/chromium/components/strings/components_strings_pt-PT.xtb
index 26874e9a866..5ddcb9b7086 100644
--- a/chromium/components/strings/components_strings_pt-PT.xtb
+++ b/chromium/components/strings/components_strings_pt-PT.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Obter conteúdo personalizado</translation>
<translation id="5675650730144413517">Esta página não está a funcionar</translation>
<translation id="5689199277474810259">Exportar para JSON</translation>
+<translation id="5689516760719285838">Local</translation>
<translation id="5710435578057952990">A identidade deste Web site não foi verificada.</translation>
<translation id="5719499550583120431">Os cartões pré-pagos são admitidos.</translation>
<translation id="5720705177508910913">Utilizador atual</translation>
diff --git a/chromium/components/strings/components_strings_ro.xtb b/chromium/components/strings/components_strings_ro.xtb
index 51b6b914556..4fec9be15c6 100644
--- a/chromium/components/strings/components_strings_ro.xtb
+++ b/chromium/components/strings/components_strings_ro.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Obține conținut personalizat</translation>
<translation id="5675650730144413517">Pagina nu funcționează</translation>
<translation id="5689199277474810259">Exportă în format JSON</translation>
+<translation id="5689516760719285838">Locație</translation>
<translation id="5710435578057952990">Identitatea acestui site nu a fost confirmată.</translation>
<translation id="5719499550583120431">Se acceptă carduri preplătite.</translation>
<translation id="5720705177508910913">Utilizator curent</translation>
diff --git a/chromium/components/strings/components_strings_ru.xtb b/chromium/components/strings/components_strings_ru.xtb
index c3ab8120e64..fc9dde177cb 100644
--- a/chromium/components/strings/components_strings_ru.xtb
+++ b/chromium/components/strings/components_strings_ru.xtb
@@ -77,7 +77,7 @@
<translation id="1549470594296187301">Ð”Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтой функции необходимо включить JavaScript.</translation>
<translation id="1559528461873125649">Данный файл или каталог не ÑущеÑтвует</translation>
<translation id="1583429793053364125">При загрузке Ñтой Ñтраницы возникли неполадки.</translation>
-<translation id="1590457302292452960">Создать надежный пароль…</translation>
+<translation id="1590457302292452960">Создайте надежный пароль…</translation>
<translation id="1592005682883173041">ДоÑтуп к данным на уÑтройÑтве</translation>
<translation id="1594030484168838125">Выбрать</translation>
<translation id="1620510694547887537">Камера</translation>
@@ -300,7 +300,7 @@
<ph name="PLATFORM_TEXT" /></translation>
<translation id="320323717674993345">Отменить оплату</translation>
<translation id="3207960819495026254">Добавлено в закладки</translation>
-<translation id="3209375525920864198">Укажите допуÑтимое название ÑеанÑа.</translation>
+<translation id="3209375525920864198">ÐедопуÑтимое название ÑеанÑа.</translation>
<translation id="3211223744486044430">Чтобы уÑкорить процеÑÑ Ð¾Ð¿Ð»Ð°Ñ‚Ñ‹ в будущем, Ñохраните карту в аккаунте Google и на Ñтом уÑтройÑтве.</translation>
<translation id="3225919329040284222">Сертификат не ÑоответÑтвует вÑтроенным параметрам определенных Ñайтов Ñ Ð²Ñ‹Ñоким уровнем безопаÑноÑти.</translation>
<translation id="3226128629678568754">Чтобы повторно ввеÑти данные, необходимые Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ Ñтраницы, нажмите "Обновить".</translation>
@@ -630,6 +630,7 @@
<translation id="5669703222995421982">Получение перÑонализированного контента</translation>
<translation id="5675650730144413517">Страница недоÑтупна</translation>
<translation id="5689199277474810259">ЭкÑпортировать как JSON</translation>
+<translation id="5689516760719285838">Геоданные</translation>
<translation id="5710435578057952990">Идентификационные данные Ñтого Ñайта не проверены.</translation>
<translation id="5719499550583120431">ПринимаютÑÑ ÐºÐ°Ñ€Ñ‚Ñ‹ предоплаты.</translation>
<translation id="5720705177508910913">Текущий пользователь</translation>
diff --git a/chromium/components/strings/components_strings_sk.xtb b/chromium/components/strings/components_strings_sk.xtb
index 7513d548ef1..1b91667abe8 100644
--- a/chromium/components/strings/components_strings_sk.xtb
+++ b/chromium/components/strings/components_strings_sk.xtb
@@ -77,7 +77,7 @@
<translation id="1549470594296187301">Ak chcete použiť túto funkciu, musíte povoliť JavaScript.</translation>
<translation id="1559528461873125649">Neexistuje žiadny takýto súbor ani prieÄinok</translation>
<translation id="1583429793053364125">Pri zobrazovaní tejto webovej stránky sa vyskytla chyba.</translation>
-<translation id="1590457302292452960">Vygenerujte silnejšie heslo…</translation>
+<translation id="1590457302292452960">Vygenerujte silné heslo…</translation>
<translation id="1592005682883173041">Prístup k miestnym údajom</translation>
<translation id="1594030484168838125">Zvoliť</translation>
<translation id="1620510694547887537">Kamera</translation>
@@ -627,6 +627,7 @@
<translation id="5669703222995421982">Ako získať prispôsobený obsah</translation>
<translation id="5675650730144413517">Táto stránka nefunguje</translation>
<translation id="5689199277474810259">Exportovať vo formáte JSON</translation>
+<translation id="5689516760719285838">Poloha</translation>
<translation id="5710435578057952990">Identita tejto webovej stránky nebola overená.</translation>
<translation id="5719499550583120431">Predplatené karty sú akceptované.</translation>
<translation id="5720705177508910913">Aktuálny používateľ</translation>
@@ -967,7 +968,7 @@
</translation>
<translation id="859285277496340001">V certifikáte nie je uvedené, akým spôsobom sa má skontrolovaÅ¥, Äi certifikát nebol odmietnutý.</translation>
<translation id="8620436878122366504">VaÅ¡i rodiÄia to zatiaľ neschválili</translation>
-<translation id="8625384913736129811">Uložiť túto kartu v zariadení</translation>
+<translation id="8625384913736129811">Uložiť túto kartu do tohto zariadenia</translation>
<translation id="8647750283161643317">Obnoviť predvolené nastavenia všetkých experimentov</translation>
<translation id="8660471606262461360">Zo služby Google Payments</translation>
<translation id="8688672835843460752">K dispozícii</translation>
diff --git a/chromium/components/strings/components_strings_sl.xtb b/chromium/components/strings/components_strings_sl.xtb
index b317584cf51..38dac3b8376 100644
--- a/chromium/components/strings/components_strings_sl.xtb
+++ b/chromium/components/strings/components_strings_sl.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Prilagojena vsebina</translation>
<translation id="5675650730144413517">Ta stran ne deluje</translation>
<translation id="5689199277474810259">Izvozi v JSON</translation>
+<translation id="5689516760719285838">Lokacija</translation>
<translation id="5710435578057952990">Identiteta tega spletnega mesta ni bila potrjena.</translation>
<translation id="5719499550583120431">Sprejema predplaÄniÅ¡ke kartice.</translation>
<translation id="5720705177508910913">Trenutni uporabnik</translation>
diff --git a/chromium/components/strings/components_strings_sr.xtb b/chromium/components/strings/components_strings_sr.xtb
index 4adc562acbf..9cf14f2cfb5 100644
--- a/chromium/components/strings/components_strings_sr.xtb
+++ b/chromium/components/strings/components_strings_sr.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Добијте перÑонализовани Ñадржај</translation>
<translation id="5675650730144413517">Ова Ñтраница не функционише</translation>
<translation id="5689199277474810259">Извези у JSON</translation>
+<translation id="5689516760719285838">Локација</translation>
<translation id="5710435578057952990">Идентитет овог веб-Ñајта није верификован.</translation>
<translation id="5719499550583120431">Прихватају Ñе припејд картице.</translation>
<translation id="5720705177508910913">Тренутни кориÑник</translation>
diff --git a/chromium/components/strings/components_strings_sv.xtb b/chromium/components/strings/components_strings_sv.xtb
index 1fcfc8555fc..67c0725bf80 100644
--- a/chromium/components/strings/components_strings_sv.xtb
+++ b/chromium/components/strings/components_strings_sv.xtb
@@ -301,7 +301,7 @@
<ph name="PLATFORM_TEXT" /></translation>
<translation id="320323717674993345">Avbryt betalningen</translation>
<translation id="3207960819495026254">Bokmärkt</translation>
-<translation id="3209375525920864198">Ange ett giltigt namn på sessionen.</translation>
+<translation id="3209375525920864198">Ange ett giltigt sessionsnamn.</translation>
<translation id="3211223744486044430">Spara det här kortet i Google-kontot och på enheten så går det snabbare att betala nästa gång.</translation>
<translation id="3225919329040284222">Ett certifikat som inte överensstämmer med inbyggda förväntningar presenterades på servern. Förväntningarna gäller för webbplatser med hög säkerhet för att skydda dig.</translation>
<translation id="3226128629678568754">Om du på nytt vill skicka datan som behövs för att läsa in sidan trycker du på knappen Läs in igen.</translation>
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Få anpassat innehåll</translation>
<translation id="5675650730144413517">Sidan fungerar inte</translation>
<translation id="5689199277474810259">Exportera som JSON</translation>
+<translation id="5689516760719285838">Plats</translation>
<translation id="5710435578057952990">Webbplatsens identitet har inte verifierats.</translation>
<translation id="5719499550583120431">Förbetalda kort kan användas.</translation>
<translation id="5720705177508910913">Aktuell användare</translation>
@@ -886,14 +887,14 @@
<translation id="7812922009395017822">Mir</translation>
<translation id="7813600968533626083">Vill du ta bort formulärförslaget från Chrome?</translation>
<translation id="7815407501681723534">Hittade <ph name="NUMBER_OF_RESULTS" /> <ph name="SEARCH_RESULTS" /> för <ph name="SEARCH_STRING" /></translation>
-<translation id="7818867226424560206">Hantera policyer</translation>
+<translation id="7818867226424560206">Hantera principer</translation>
<translation id="782886543891417279">Wi-Fi-nätverket du använder (<ph name="WIFI_NAME" />) kanske kräver att du besöker dess inloggningssida.</translation>
<translation id="785549533363645510">Men du är inte osynlig. Inkognitoläget döljer inte webbhistoriken för din arbetsgivare, internetleverantören eller webbplatserna du besöker.</translation>
<translation id="7855695075675558090"><ph name="TOTAL_LABEL" /> <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
<translation id="7878176543348854470">Betalkort och förbetalda kort får användas.</translation>
<translation id="7878562273885520351">Lösenordet kan vara utsatt för risk</translation>
<translation id="7887683347370398519">Kontrollera CVC-koden och försök igen</translation>
-<translation id="7893255318348328562">Namn på sessionen</translation>
+<translation id="7893255318348328562">Sessionsnamn</translation>
<translation id="79338296614623784">Ange ett giltigt telefonnummer</translation>
<translation id="7935318582918952113">DOM Distiller</translation>
<translation id="7938958445268990899">Servercertifikatet är inte giltigt ännu.</translation>
diff --git a/chromium/components/strings/components_strings_sw.xtb b/chromium/components/strings/components_strings_sw.xtb
index 4d1cb194a6d..3211f495a65 100644
--- a/chromium/components/strings/components_strings_sw.xtb
+++ b/chromium/components/strings/components_strings_sw.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Pata maudhui yanayokufaa</translation>
<translation id="5675650730144413517">Ukurasa huu haufanyi kazi</translation>
<translation id="5689199277474810259">Tuma katika mfumo wa JSON</translation>
+<translation id="5689516760719285838">Mahali</translation>
<translation id="5710435578057952990">Utambulisho wa tovuti hii haujathibitishwa.</translation>
<translation id="5719499550583120431">Kadi za kulipia awali zinakubaliwa.</translation>
<translation id="5720705177508910913">Mtumiaji wa sasa</translation>
@@ -943,7 +944,7 @@
<translation id="8298115750975731693">Wi-Fi unayotumia (<ph name="WIFI_NAME" />) inaweza kukuhitaji kutembelea <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" />.</translation>
<translation id="8306404619377842860">Muunganisho wa faragha kwenye <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> haujatambuliwa kwa sababu tarehe na saa za kifaa chako (<ph name="DATE_AND_TIME" />) si sahihi. <ph name="BEGIN_LEARN_MORE_LINK" />Pata maelezo zaidi<ph name="END_LEARN_MORE_LINK" /></translation>
<translation id="8308427013383895095">Utafsiri haukufanikiwa kwa sababu ya hitilafu ya seva.</translation>
-<translation id="8311129316111205805">Pakia kipindi kilichotajwa</translation>
+<translation id="8311129316111205805">Pakia kipindi</translation>
<translation id="8332188693563227489">Ufikiaji wa <ph name="HOST_NAME" /> umekataliwa</translation>
<translation id="834457929814110454">Ikiwa unaelewa hatari kwa usalama wako, unaweza <ph name="BEGIN_LINK" />kutembelea tovuti hii<ph name="END_LINK" /> kabla programu hatari hazijaondolewa.</translation>
<translation id="8349305172487531364">Sehemu ya Alamisho</translation>
@@ -972,7 +973,7 @@
</translation>
<translation id="859285277496340001">Cheti hakibainishi utaratibu wa kuangalia iwapo kimekataliwa.</translation>
<translation id="8620436878122366504">Wazazi wako bado hawajaiidhinisha</translation>
-<translation id="8625384913736129811">Hifadhi Kadi Hii kwenye Kifaa Hiki</translation>
+<translation id="8625384913736129811">Hifadhi Maelezo ya Kadi Hii kwenye Kifaa Hiki</translation>
<translation id="8647750283161643317">Rudisha zote katika chaguo-msingi</translation>
<translation id="8660471606262461360">Kutoka Google Payments</translation>
<translation id="8688672835843460752">Inapatikana</translation>
diff --git a/chromium/components/strings/components_strings_ta.xtb b/chromium/components/strings/components_strings_ta.xtb
index dac775c912b..4b6201e4f8d 100644
--- a/chromium/components/strings/components_strings_ta.xtb
+++ b/chromium/components/strings/components_strings_ta.xtb
@@ -298,7 +298,7 @@
<translation id="3176929007561373547">பிராகà¯à®šà®¿ சரà¯à®µà®°à¯ இயகà¯à®•à®¤à¯à®¤à®¿à®²à¯ உளà¯à®³à®¤à¯ எனà¯à®ªà®¤à¯ˆ உறà¯à®¤à®¿à®ªà¯à®ªà®Ÿà¯à®¤à¯à®¤ உஙà¯à®•à®³à¯ பிராகà¯à®šà®¿ அமைபà¯à®ªà¯à®•à®³à¯ˆà®šà¯ சரிபாரà¯à®•à¯à®•à®µà¯à®®à¯ அலà¯à®²à®¤à¯ நெடà¯à®µà¯Šà®°à¯à®•à¯ நிரà¯à®µà®¾à®•à®¿à®¯à¯ˆà®¤à¯ தொடரà¯à®ªà¯à®•à¯Šà®³à¯à®³à®µà¯à®®à¯. நீஙà¯à®•à®³à¯ பிராகà¯à®šà®¿ சரà¯à®µà®°à¯ˆà®ªà¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•à®¿à®±à¯€à®°à¯à®•à®³à¯ எனà¯à®ªà®¤à¯ˆ நமà¯à®ªà®µà®¿à®²à¯à®²à¯ˆ எனà¯à®±à®¾à®²à¯, பினà¯à®µà®°à¯à®µà®¤à¯ˆà®šà¯ செயà¯à®¯à®µà¯à®®à¯:<ph name="PLATFORM_TEXT" /></translation>
<translation id="320323717674993345">கடà¯à®Ÿà®£à®®à¯ செலà¯à®¤à¯à®¤à¯à®µà®¤à¯ˆ ரதà¯à®¤à¯à®šà¯†à®¯à¯</translation>
<translation id="3207960819495026254">பà¯à®•à¯à®®à®¾à®°à¯à®•à¯ செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯</translation>
-<translation id="3209375525920864198">சரியான அமரà¯à®µà®¿à®©à¯ பெயரை உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯.</translation>
+<translation id="3209375525920864198">சரியான அமரà¯à®µà¯à®ªà¯ பெயரை உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯.</translation>
<translation id="3211223744486044430">அடà¯à®¤à¯à®¤ à®®à¯à®±à¯ˆ விரைவாகப௠பணதà¯à®¤à¯ˆà®šà¯ செலà¯à®¤à¯à®¤, இநà¯à®¤à®•à¯ காரà¯à®Ÿà¯ˆ உஙà¯à®•à®³à¯ Google கணகà¯à®•à®¿à®²à¯à®®à¯ இநà¯à®¤à®šà¯ சாதனதà¯à®¤à®¿à®²à¯à®®à¯ சேமிகà¯à®•à®µà¯à®®à¯.</translation>
<translation id="3225919329040284222">உளà¯à®³à®®à¯ˆà®¨à¯à®¤ எதிரà¯à®ªà®¾à®°à¯à®ªà¯à®ªà¯à®•à®³à¯à®Ÿà®©à¯ பொரà¯à®¨à¯à®¤à®¾à®¤ சானà¯à®±à®¿à®¤à®´à¯ˆ சேவையகம௠வழஙà¯à®•à®¿à®¯à®¤à¯. சில உயரà¯-பாதà¯à®•à®¾à®ªà¯à®ªà¯ வலைதà¯à®¤à®³à®™à¯à®•à®³à®¿à®²à¯ உஙà¯à®•à®³à¯ˆà®ªà¯ பாதà¯à®•à®¾à®•à¯à®•à®µà¯‡ இநà¯à®¤ எதிரà¯à®ªà®¾à®°à¯à®ªà¯à®ªà¯à®•à®³à¯ சேரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®©à¯à®±à®©.</translation>
<translation id="3226128629678568754">பகà¯à®•à®¤à¯à®¤à¯ˆ à®à®±à¯à®± தேவைபà¯à®ªà®Ÿà¯à®®à¯ தரவை மறà¯à®®à¯à®±à¯ˆà®šà¯ சமரà¯à®ªà¯à®ªà®¿à®ªà¯à®ªà®¤à®±à¯à®•à¯ மீணà¯à®Ÿà¯à®®à¯ à®à®±à¯à®±à¯ எனà¯à®± பொதà¯à®¤à®¾à®©à¯ˆ à®…à®´à¯à®¤à¯à®¤à¯à®•.</translation>
@@ -628,6 +628,7 @@
<translation id="5669703222995421982">தனிபà¯à®ªà®¯à®©à®¾à®•à¯à®•à®¿à®¯ உளà¯à®³à®Ÿà®•à¯à®•à®¤à¯à®¤à¯ˆà®ªà¯ பெறà¯à®™à¯à®•à®³à¯</translation>
<translation id="5675650730144413517">இநà¯à®¤à®ªà¯ பகà¯à®•à®®à¯ செயலà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ</translation>
<translation id="5689199277474810259">JSONகà¯à®•à¯ à®à®±à¯à®±à¯</translation>
+<translation id="5689516760719285838">இரà¯à®ªà¯à®ªà®¿à®Ÿà®®à¯</translation>
<translation id="5710435578057952990">இநà¯à®¤ தளதà¯à®¤à®¿à®©à¯ அடையாளம௠சரிபாரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ.</translation>
<translation id="5719499550583120431">பà¯à®°à¯€à®ªà¯†à®¯à¯à®Ÿà¯ காரà¯à®Ÿà¯à®•à®³à¯ à®à®±à¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®©à¯à®±à®©.</translation>
<translation id="5720705177508910913">நடபà¯à®ªà¯à®ªà¯ பயனரà¯</translation>
@@ -745,7 +746,7 @@
<translation id="6753269504797312559">கொளà¯à®•à¯ˆ மதிபà¯à®ªà¯</translation>
<translation id="6757797048963528358">உஙà¯à®•à®³à¯ சாதனம௠உறகà¯à®•à®¨à®¿à®²à¯ˆà®•à¯à®•à¯à®šà¯ செனà¯à®±à®¤à¯.</translation>
<translation id="6778737459546443941">இனà¯à®©à¯à®®à¯ உஙà¯à®•à®³à¯ பெறà¯à®±à¯‹à®°à¯ அனà¯à®®à®¤à®¿à®•à¯à®•à®µà®¿à®²à¯à®²à¯ˆ</translation>
-<translation id="681021252041861472">அவசியமான பà¯à®²à®®à¯</translation>
+<translation id="681021252041861472">அவசியமà¯</translation>
<translation id="6810899417690483278">தனிபà¯à®ªà®¯à®©à®¾à®•à¯à®•à®²à¯ à®à®Ÿà®¿</translation>
<translation id="6820686453637990663">CVC</translation>
<translation id="6824266427216888781">மணà¯à®Ÿà®²à®™à¯à®•à®³à®¿à®©à¯ தரவை à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ</translation>
diff --git a/chromium/components/strings/components_strings_te.xtb b/chromium/components/strings/components_strings_te.xtb
index 359cecbe8c7..9b652d8c237 100644
--- a/chromium/components/strings/components_strings_te.xtb
+++ b/chromium/components/strings/components_strings_te.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">à°µà±à°¯à°•à±à°¤à°¿à°—తీకరించిన కంటెంటà±â€Œà°¨à± పొందండి</translation>
<translation id="5675650730144413517">à°ˆ పేజీ పని చేయడం లేదà±</translation>
<translation id="5689199277474810259">JSONà°•à± à°Žà°—à±à°®à°¤à°¿ చేయి</translation>
+<translation id="5689516760719285838">à°¸à±à°¥à°¾à°¨à°‚</translation>
<translation id="5710435578057952990">à°ˆ వెబà±â€â€Œà°¸à±ˆà°Ÿà± యొకà±à°• à°—à±à°°à±à°¤à°¿à°‚పౠనిరà±à°¥à°¾à°°à°¿à°‚చబడలేదà±.</translation>
<translation id="5719499550583120431">à°ªà±à°°à±€à°ªà±†à°¯à°¿à°¡à± కారà±à°¡à±â€Œà°²à± ఆమోదించబడతాయి.</translation>
<translation id="5720705177508910913">à°ªà±à°°à°¸à±à°¤à±à°¤ వినియోగదారà±</translation>
diff --git a/chromium/components/strings/components_strings_th.xtb b/chromium/components/strings/components_strings_th.xtb
index 8cac76e7211..15ceff7d372 100644
--- a/chromium/components/strings/components_strings_th.xtb
+++ b/chromium/components/strings/components_strings_th.xtb
@@ -398,7 +398,7 @@
<translation id="3759461132968374835">คุณไม่ได้รายงานข้อขัดข้องเมื่อเร็วๆ นี้ ข้อขัดข้องที่เà¸à¸´à¸”ขึ้นเมื่อปิดใช้งานà¸à¸²à¸£à¸£à¸²à¸¢à¸‡à¸²à¸™à¸‚้อขัดข้อง จะไม่ปราà¸à¸à¸—ี่นี่</translation>
<translation id="3765032636089507299">หน้า Google Safe Browsing อยู่ในระหว่างà¸à¸²à¸£à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡</translation>
<translation id="3778403066972421603">คุณต้องà¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸à¸šà¸±à¸•à¸£à¸™à¸µà¹‰à¸¥à¸‡à¹ƒà¸™à¸šà¸±à¸à¸Šà¸µ Google à¹à¸¥à¸°à¹ƒà¸™à¸­à¸¸à¸›à¸à¸£à¸“์นี้ไหม</translation>
-<translation id="3783418713923659662">MasterCard</translation>
+<translation id="3783418713923659662">Mastercard</translation>
<translation id="3787705759683870569">หมดอายุ <ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
<translation id="3808375843007691220">คำเตือน: จาà¸à¸™à¸µà¹‰à¹„ปจะเป็นฟีเจอร์ทดลอง!</translation>
<translation id="382518646247711829">หาà¸à¸„ุณใช้พร็อà¸à¸‹à¸µà¹€à¸‹à¸´à¸£à¹Œà¸Ÿà¹€à¸§à¸­à¸£à¹Œ...</translation>
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">รับเนื้อหาที่ปรับเปลี่ยนในà¹à¸šà¸šà¸‚องคุณ</translation>
<translation id="5675650730144413517">หน้านี้ใช้ไม่ได้</translation>
<translation id="5689199277474810259">ส่งออà¸à¹„ปยัง JSON</translation>
+<translation id="5689516760719285838">ตำà¹à¸«à¸™à¹ˆà¸‡</translation>
<translation id="5710435578057952990">ข้อมูลประจำตัวของเว็บไซต์นี้ยังไม่ได้รับà¸à¸²à¸£à¸¢à¸·à¸™à¸¢à¸±à¸™</translation>
<translation id="5719499550583120431">รับบัตรเติมเงิน</translation>
<translation id="5720705177508910913">ผู้ใช้ปัจจุบัน</translation>
diff --git a/chromium/components/strings/components_strings_tr.xtb b/chromium/components/strings/components_strings_tr.xtb
index 729e03efe9d..f3a88ce418e 100644
--- a/chromium/components/strings/components_strings_tr.xtb
+++ b/chromium/components/strings/components_strings_tr.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Kişiselleştirilmiş içerikler alma</translation>
<translation id="5675650730144413517">Bu sayfa çalışmıyor</translation>
<translation id="5689199277474810259">JSON'a aktar</translation>
+<translation id="5689516760719285838">Konum</translation>
<translation id="5710435578057952990">Bu web sitesinin kimliği doğrulanmadı.</translation>
<translation id="5719499550583120431">Ön ödemeli kartlar kabul edilir.</translation>
<translation id="5720705177508910913">Geçerli kullanıcı</translation>
@@ -749,7 +750,7 @@
<translation id="6753269504797312559">Politika deÄŸeri</translation>
<translation id="6757797048963528358">Cihazınız uyku moduna geçti.</translation>
<translation id="6778737459546443941">Ebeveyniniz henüz onaylamadı</translation>
-<translation id="681021252041861472">Zorunlu Alan</translation>
+<translation id="681021252041861472">Gerekli Alan</translation>
<translation id="6810899417690483278">Özelleştirme Kimliği</translation>
<translation id="6820686453637990663">CVC</translation>
<translation id="6824266427216888781">Bölge verileri yüklenemedi</translation>
diff --git a/chromium/components/strings/components_strings_uk.xtb b/chromium/components/strings/components_strings_uk.xtb
index 675c60c89ac..8c3c4673d96 100644
--- a/chromium/components/strings/components_strings_uk.xtb
+++ b/chromium/components/strings/components_strings_uk.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Отримувати перÑоналізовані пропозиції</translation>
<translation id="5675650730144413517">Сторінка не працює</translation>
<translation id="5689199277474810259">ЕкÑпортувати у формат JSON</translation>
+<translation id="5689516760719285838">МіÑцезнаходженнÑ</translation>
<translation id="5710435578057952990">Ідентифікаційну інформацію цього веб-Ñайта не було перевірено.</translation>
<translation id="5719499550583120431">Передплачені картки, Ñкі приймаютьÑÑ.</translation>
<translation id="5720705177508910913">Поточний кориÑтувач</translation>
@@ -886,7 +887,7 @@
<translation id="7812922009395017822">Mir</translation>
<translation id="7813600968533626083">Видалити дані Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñ„Ð¾Ñ€Ð¼ із Chrome?</translation>
<translation id="7815407501681723534">Знайдено результатів за запитом "<ph name="SEARCH_STRING" />": <ph name="NUMBER_OF_RESULTS" /> <ph name="SEARCH_RESULTS" /></translation>
-<translation id="7818867226424560206">ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°Ð¼Ð¸</translation>
+<translation id="7818867226424560206">Правила</translation>
<translation id="782886543891417279">Можливо, щоб під’єднатиÑÑ Ð´Ð¾ цієї мережі Wi-Fi (<ph name="WIFI_NAME" />), потрібно відвідати Ñ—Ñ— Ñторінку входу.</translation>
<translation id="785549533363645510">Ðавіть у режимі анонімного переглÑду ваш роботодавець, поÑтачальник поÑлуг Інтернету чи веб-Ñайти, Ñкі ви відвідуєте, можуть бачити, що ви переглÑдаєте.</translation>
<translation id="7855695075675558090"><ph name="TOTAL_LABEL" />: <ph name="FORMATTED_TOTAL_AMOUNT" /> <ph name="CURRENCY_CODE" /></translation>
diff --git a/chromium/components/strings/components_strings_vi.xtb b/chromium/components/strings/components_strings_vi.xtb
index 73b39ad77d1..64c67cd9ead 100644
--- a/chromium/components/strings/components_strings_vi.xtb
+++ b/chromium/components/strings/components_strings_vi.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">Nhận nội dung được cá nhân hóa</translation>
<translation id="5675650730144413517">Trang này hiện không hoạt động</translation>
<translation id="5689199277474810259">Xuất sang định dạng JSON</translation>
+<translation id="5689516760719285838">Vị trí</translation>
<translation id="5710435578057952990">Nhận dạng trang web này chưa được xác minh.</translation>
<translation id="5719499550583120431">Thẻ trả trước được chấp nhận.</translation>
<translation id="5720705177508910913">NgÆ°á»i dùng hiện tại</translation>
diff --git a/chromium/components/strings/components_strings_zh-CN.xtb b/chromium/components/strings/components_strings_zh-CN.xtb
index 9370b652270..f81e5b4fe5b 100644
--- a/chromium/components/strings/components_strings_zh-CN.xtb
+++ b/chromium/components/strings/components_strings_zh-CN.xtb
@@ -77,7 +77,7 @@
<translation id="1549470594296187301">å¿…é¡»å¯ç”¨ JavaScript æ‰èƒ½ä½¿ç”¨æ­¤åŠŸèƒ½ã€‚</translation>
<translation id="1559528461873125649">ä¸å­˜åœ¨æ­¤ç±»æ–‡ä»¶æˆ–目录</translation>
<translation id="1583429793053364125">显示此网页时出了点问题。</translation>
-<translation id="1590457302292452960">生æˆä¸€ä¸ªå®‰å…¨ç³»æ•°é«˜çš„密ç â€¦</translation>
+<translation id="1590457302292452960">生æˆå®‰å…¨ç³»æ•°é«˜çš„密ç â€¦</translation>
<translation id="1592005682883173041">本地数æ®è®¿é—®æƒé™</translation>
<translation id="1594030484168838125">选择</translation>
<translation id="1620510694547887537">æ‘„åƒå¤´</translation>
@@ -628,6 +628,7 @@
<translation id="5669703222995421982">获å–个性化内容</translation>
<translation id="5675650730144413517">该网页无法正常è¿ä½œ</translation>
<translation id="5689199277474810259">导出为 JSON æ ¼å¼</translation>
+<translation id="5689516760719285838">ä½ç½®</translation>
<translation id="5710435578057952990">此网站尚未ç»è¿‡èº«ä»½éªŒè¯ã€‚</translation>
<translation id="5719499550583120431">接å—预付å¡ã€‚</translation>
<translation id="5720705177508910913">当å‰ç”¨æˆ·</translation>
diff --git a/chromium/components/strings/components_strings_zh-TW.xtb b/chromium/components/strings/components_strings_zh-TW.xtb
index 1c0b304b1f5..25f5e47dc64 100644
--- a/chromium/components/strings/components_strings_zh-TW.xtb
+++ b/chromium/components/strings/components_strings_zh-TW.xtb
@@ -631,6 +631,7 @@
<translation id="5669703222995421982">å–得個人化內容</translation>
<translation id="5675650730144413517">這個網é ç„¡æ³•æ­£å¸¸é‹ä½œ</translation>
<translation id="5689199277474810259">以 JSON æ ¼å¼åŒ¯å‡º</translation>
+<translation id="5689516760719285838">ä½ç½®</translation>
<translation id="5710435578057952990">此網é çš„身分未經驗證。</translation>
<translation id="5719499550583120431">接å—é ä»˜å¡ã€‚</translation>
<translation id="5720705177508910913">ç›®å‰ä½¿ç”¨è€…</translation>
diff --git a/chromium/components/ukm/test_ukm_recorder.cc b/chromium/components/ukm/test_ukm_recorder.cc
index 0a3fcd16a6e..5f9e9e60bb6 100644
--- a/chromium/components/ukm/test_ukm_recorder.cc
+++ b/chromium/components/ukm/test_ukm_recorder.cc
@@ -58,6 +58,12 @@ TestUkmRecorder::TestUkmRecorder() {
TestUkmRecorder::~TestUkmRecorder() {
};
+bool TestUkmRecorder::ShouldRestrictToWhitelistedSourceIds() const {
+ // In tests, we want to record all source ids (not just hose that are
+ // whitelisted).
+ return false;
+}
+
std::set<ukm::SourceId> TestUkmRecorder::GetSourceIds() const {
std::set<ukm::SourceId> result;
for (const auto& kv : sources()) {
diff --git a/chromium/components/ukm/test_ukm_recorder.h b/chromium/components/ukm/test_ukm_recorder.h
index b14f9d79cdb..5bce2e87c39 100644
--- a/chromium/components/ukm/test_ukm_recorder.h
+++ b/chromium/components/ukm/test_ukm_recorder.h
@@ -27,6 +27,8 @@ class TestUkmRecorder : public UkmRecorderImpl {
TestUkmRecorder();
~TestUkmRecorder() override;
+ bool ShouldRestrictToWhitelistedSourceIds() const override;
+
size_t sources_count() const { return sources().size(); }
// Get all SourceIds with any data associated with them.
diff --git a/chromium/components/ukm/ukm_recorder_impl.cc b/chromium/components/ukm/ukm_recorder_impl.cc
index cb670812ebf..43adec45b40 100644
--- a/chromium/components/ukm/ukm_recorder_impl.cc
+++ b/chromium/components/ukm/ukm_recorder_impl.cc
@@ -13,6 +13,7 @@
#include "components/metrics/proto/ukm/report.pb.h"
#include "components/metrics/proto/ukm/source.pb.h"
#include "components/ukm/ukm_source.h"
+#include "services/metrics/public/cpp/ukm_source_id.h"
namespace ukm {
@@ -25,6 +26,11 @@ std::string GetWhitelistEntries() {
"WhitelistEntries");
}
+bool IsWhitelistedSourceId(SourceId source_id) {
+ return (static_cast<int64_t>(source_id) &
+ static_cast<int64_t>(SourceIdType::NAVIGATION_ID)) != 0;
+}
+
// Gets the maximum number of Sources we'll keep in memory before discarding any
// new ones being added.
size_t GetMaxSources() {
@@ -33,6 +39,14 @@ size_t GetMaxSources() {
kUkmFeature, "MaxSources", kDefaultMaxSources));
}
+// Gets the maximum number of unferenced Sources kept after purging sources
+// that were added to the log.
+size_t GetMaxKeptSources() {
+ constexpr size_t kDefaultMaxKeptSources = 100;
+ return static_cast<size_t>(base::GetFieldTrialParamByFeatureAsInt(
+ kUkmFeature, "MaxKeptSources", kDefaultMaxKeptSources));
+}
+
// Gets the maximum number of Entries we'll keep in memory before discarding any
// new ones being added.
size_t GetMaxEntries() {
@@ -101,21 +115,61 @@ void UkmRecorderImpl::Purge() {
}
void UkmRecorderImpl::StoreRecordingsInReport(Report* report) {
- for (const auto& kv : sources_) {
+ std::set<SourceId> ids_seen;
+ for (const auto& entry : entries_) {
+ Entry* proto_entry = report->add_entries();
+ StoreEntryProto(*entry, proto_entry);
+ ids_seen.insert(entry->source_id);
+ }
+
+ std::vector<std::unique_ptr<UkmSource>> unsent_sources;
+ for (auto& kv : sources_) {
+ // If the source id is not whitelisted, don't send it unless it has
+ // associated entries. Note: If ShouldRestrictToWhitelistedSourceIds() is
+ // true, this logic will not be hit as the source would have already been
+ // filtered in UpdateSourceURL().
+ if (!IsWhitelistedSourceId(kv.first) &&
+ !base::ContainsKey(ids_seen, kv.first)) {
+ unsent_sources.push_back(std::move(kv.second));
+ continue;
+ }
Source* proto_source = report->add_sources();
kv.second->PopulateProto(proto_source);
if (!ShouldRecordInitialUrl())
proto_source->clear_initial_url();
}
- for (const auto& entry : entries_) {
- Entry* proto_entry = report->add_entries();
- StoreEntryProto(*entry, proto_entry);
- }
- UMA_HISTOGRAM_COUNTS_1000("UKM.Sources.SerializedCount", sources_.size());
+ UMA_HISTOGRAM_COUNTS_1000("UKM.Sources.SerializedCount",
+ sources_.size() - unsent_sources.size());
UMA_HISTOGRAM_COUNTS_1000("UKM.Entries.SerializedCount", entries_.size());
+ UMA_HISTOGRAM_COUNTS_1000("UKM.Sources.UnsentSourcesCount",
+ unsent_sources.size());
sources_.clear();
entries_.clear();
+
+ // Keep at most |max_kept_sources|, prioritizing most-recent entries (by
+ // creation time).
+ const size_t max_kept_sources = GetMaxKeptSources();
+ if (unsent_sources.size() > max_kept_sources) {
+ std::nth_element(unsent_sources.begin(),
+ unsent_sources.begin() + max_kept_sources,
+ unsent_sources.end(),
+ [](const std::unique_ptr<ukm::UkmSource>& lhs,
+ const std::unique_ptr<ukm::UkmSource>& rhs) {
+ return lhs->creation_time() > rhs->creation_time();
+ });
+ unsent_sources.resize(max_kept_sources);
+ }
+
+ for (auto& source : unsent_sources) {
+ sources_.emplace(source->id(), std::move(source));
+ }
+ UMA_HISTOGRAM_COUNTS_1000("UKM.Sources.KeptSourcesCount", sources_.size());
+}
+
+bool UkmRecorderImpl::ShouldRestrictToWhitelistedSourceIds() const {
+ return base::GetFieldTrialParamByFeatureAsBool(
+ kUkmFeature, "RestrictToWhitelistedSourceIds", true);
}
void UkmRecorderImpl::UpdateSourceURL(ukm::SourceId source_id,
@@ -127,6 +181,12 @@ void UkmRecorderImpl::UpdateSourceURL(ukm::SourceId source_id,
return;
}
+ if (ShouldRestrictToWhitelistedSourceIds() &&
+ !IsWhitelistedSourceId(source_id)) {
+ RecordDroppedSource(DroppedDataReason::NOT_WHITELISTED);
+ return;
+ }
+
// Update the pre-existing source if there is any. This happens when the
// initial URL is different from the committed URL for the same source, e.g.,
// when there is redirection.
diff --git a/chromium/components/ukm/ukm_recorder_impl.h b/chromium/components/ukm/ukm_recorder_impl.h
index 1a20ddab4d1..c3cdc8d254b 100644
--- a/chromium/components/ukm/ukm_recorder_impl.h
+++ b/chromium/components/ukm/ukm_recorder_impl.h
@@ -45,12 +45,14 @@ class UkmRecorderImpl : public UkmRecorder {
// Writes recordings into a report proto, and clears recordings.
void StoreRecordingsInReport(Report* report);
- const std::map<ukm::SourceId, std::unique_ptr<UkmSource>>& sources() const {
+ const std::map<SourceId, std::unique_ptr<UkmSource>>& sources() const {
return sources_;
}
const std::vector<mojom::UkmEntryPtr>& entries() const { return entries_; }
+ virtual bool ShouldRestrictToWhitelistedSourceIds() const;
+
private:
friend ::metrics::UkmBrowserTest;
friend ::ukm::debug::DebugPage;
@@ -63,8 +65,8 @@ class UkmRecorderImpl : public UkmRecorder {
bool recording_enabled_;
// Contains newly added sources and entries of UKM metrics which periodically
- // get serialized and cleared by BuildAndStoreLog().
- std::map<ukm::SourceId, std::unique_ptr<UkmSource>> sources_;
+ // get serialized and cleared by StoreRecordingsInReport().
+ std::map<SourceId, std::unique_ptr<UkmSource>> sources_;
std::vector<mojom::UkmEntryPtr> entries_;
// Whitelisted Entry hashes, only the ones in this set will be recorded.
diff --git a/chromium/components/ukm/ukm_service_unittest.cc b/chromium/components/ukm/ukm_service_unittest.cc
index 75b383ab3a9..4c5b80e401c 100644
--- a/chromium/components/ukm/ukm_service_unittest.cc
+++ b/chromium/components/ukm/ukm_service_unittest.cc
@@ -10,9 +10,13 @@
#include "base/hash.h"
#include "base/metrics/metrics_hashes.h"
+#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_util.h"
#include "base/test/scoped_feature_list.h"
#include "base/test/test_simple_task_runner.h"
+#include "base/threading/platform_thread.h"
#include "base/threading/thread_task_runner_handle.h"
+#include "base/time/time.h"
#include "components/metrics/proto/ukm/report.pb.h"
#include "components/metrics/proto/ukm/source.pb.h"
#include "components/metrics/test_metrics_provider.h"
@@ -136,6 +140,14 @@ class UkmServiceTest : public testing::Test {
return report;
}
+ static SourceId GetWhitelistedSourceId(int64_t id) {
+ return ConvertToSourceId(id, SourceIdType::NAVIGATION_ID);
+ }
+
+ static SourceId GetNonWhitelistedSourceId(int64_t id) {
+ return ConvertToSourceId(id, SourceIdType::UKM);
+ }
+
protected:
TestingPrefServiceSimple prefs_;
metrics::TestMetricsServiceClient client_;
@@ -173,7 +185,7 @@ TEST_F(UkmServiceTest, PersistAndPurge) {
service.EnableRecording();
service.EnableReporting();
- ukm::SourceId id = UkmRecorder::GetNewSourceID();
+ SourceId id = GetWhitelistedSourceId(0);
recorder.UpdateSourceURL(id, GURL("https://google.com/foobar"));
// Should init, generate a log, and start an upload for source.
task_runner_->RunPendingTasks();
@@ -199,7 +211,7 @@ TEST_F(UkmServiceTest, SourceSerialization) {
service.EnableRecording();
service.EnableReporting();
- ukm::SourceId id = UkmRecorder::GetNewSourceID();
+ ukm::SourceId id = GetWhitelistedSourceId(0);
recorder.UpdateSourceURL(id, GURL("https://google.com/initial"));
recorder.UpdateSourceURL(id, GURL("https://google.com/intermediate"));
recorder.UpdateSourceURL(id, GURL("https://google.com/foobar"));
@@ -226,7 +238,7 @@ TEST_F(UkmServiceTest, EntryBuilderAndSerialization) {
service.EnableRecording();
service.EnableReporting();
- ukm::SourceId id = UkmRecorder::GetNewSourceID();
+ ukm::SourceId id = GetWhitelistedSourceId(0);
recorder.UpdateSourceURL(id, GURL("https://google.com/foobar"));
{
std::unique_ptr<UkmEntryBuilder> foo_builder =
@@ -290,7 +302,7 @@ TEST_F(UkmServiceTest, AddEntryWithEmptyMetrics) {
service.EnableRecording();
service.EnableReporting();
- ukm::SourceId id = UkmRecorder::GetNewSourceID();
+ ukm::SourceId id = GetWhitelistedSourceId(0);
recorder.UpdateSourceURL(id, GURL("https://google.com/foobar"));
{ ::ukm::builders::PageLoad(id).Record(&service); }
@@ -317,7 +329,7 @@ TEST_F(UkmServiceTest, MetricsProviderTest) {
service.EnableRecording();
service.EnableReporting();
- ukm::SourceId id = UkmRecorder::GetNewSourceID();
+ ukm::SourceId id = GetWhitelistedSourceId(0);
recorder.UpdateSourceURL(id, GURL("https://google.com/foobar"));
{
::ukm::builders::PageLoad(id)
@@ -350,7 +362,7 @@ TEST_F(UkmServiceTest, LogsUploadedOnlyWhenHavingSourcesOrEntries) {
service.Flush();
EXPECT_EQ(GetPersistedLogCount(), 0);
- ukm::SourceId id = UkmRecorder::GetNewSourceID();
+ ukm::SourceId id = GetWhitelistedSourceId(0);
recorder.UpdateSourceURL(id, GURL("https://google.com/foobar"));
// Includes a Source, so will persist.
service.Flush();
@@ -405,7 +417,7 @@ TEST_F(UkmServiceTest, RecordInitialUrl) {
service.EnableRecording();
service.EnableReporting();
- ukm::SourceId id = UkmRecorder::GetNewSourceID();
+ ukm::SourceId id = GetWhitelistedSourceId(0);
recorder.UpdateSourceURL(id, GURL("https://google.com/initial"));
recorder.UpdateSourceURL(id, GURL("https://google.com/intermediate"));
recorder.UpdateSourceURL(id, GURL("https://google.com/foobar"));
@@ -427,6 +439,55 @@ TEST_F(UkmServiceTest, RecordInitialUrl) {
}
}
+TEST_F(UkmServiceTest, RestrictToWhitelistedSourceIds) {
+ for (bool restrict_to_whitelisted_source_ids : {true, false}) {
+ base::FieldTrialList field_trial_list(nullptr /* entropy_provider */);
+ ScopedUkmFeatureParams params(
+ base::FeatureList::OVERRIDE_ENABLE_FEATURE,
+ {{"RestrictToWhitelistedSourceIds",
+ restrict_to_whitelisted_source_ids ? "true" : "false"}});
+
+ ClearPrefs();
+ UkmService service(&prefs_, &client_);
+ TestRecordingHelper recorder(&service);
+ EXPECT_EQ(GetPersistedLogCount(), 0);
+ service.Initialize();
+ task_runner_->RunUntilIdle();
+ service.EnableRecording();
+ service.EnableReporting();
+
+ ukm::SourceId id1 = GetWhitelistedSourceId(0);
+ recorder.UpdateSourceURL(id1, GURL("https://other.com/"));
+ recorder.GetEntryBuilder(id1, "FakeEntry");
+
+ // Create a non-navigation-based sourceid, which should not be whitelisted.
+ ukm::SourceId id2 = UkmRecorder::GetNewSourceID();
+ recorder.UpdateSourceURL(id2, GURL("https://example.com/"));
+ recorder.GetEntryBuilder(id2, "FakeEntry");
+
+ service.Flush();
+ EXPECT_EQ(GetPersistedLogCount(), 1);
+ Report proto_report = GetPersistedReport();
+ EXPECT_GE(proto_report.sources_size(), 1);
+
+ // The whitelisted source should always be recorded.
+ const Source& proto_source1 = proto_report.sources(0);
+ EXPECT_EQ(id1, proto_source1.id());
+ EXPECT_EQ(GURL("https://other.com/").spec(), proto_source1.url());
+
+ // The non-whitelisted source should only be recorded if we aren't
+ // restricted to whitelisted source ids.
+ if (restrict_to_whitelisted_source_ids) {
+ EXPECT_EQ(1, proto_report.sources_size());
+ } else {
+ EXPECT_EQ(2, proto_report.sources_size());
+ const Source& proto_source2 = proto_report.sources(1);
+ EXPECT_EQ(id2, proto_source2.id());
+ EXPECT_EQ(GURL("https://example.com/").spec(), proto_source2.url());
+ }
+ }
+}
+
TEST_F(UkmServiceTest, RecordSessionId) {
ClearPrefs();
UkmService service(&prefs_, &client_);
@@ -437,7 +498,7 @@ TEST_F(UkmServiceTest, RecordSessionId) {
service.EnableRecording();
service.EnableReporting();
- auto id = UkmRecorder::GetNewSourceID();
+ auto id = GetWhitelistedSourceId(0);
recorder.UpdateSourceURL(id, GURL("https://google.com/foobar"));
service.Flush();
@@ -463,11 +524,11 @@ TEST_F(UkmServiceTest, SourceSize) {
service.EnableRecording();
service.EnableReporting();
- auto id = UkmRecorder::GetNewSourceID();
+ auto id = GetWhitelistedSourceId(0);
recorder.UpdateSourceURL(id, GURL("https://google.com/foobar1"));
- id = UkmRecorder::GetNewSourceID();
+ id = GetWhitelistedSourceId(1);
recorder.UpdateSourceURL(id, GURL("https://google.com/foobar2"));
- id = UkmRecorder::GetNewSourceID();
+ id = GetWhitelistedSourceId(2);
recorder.UpdateSourceURL(id, GURL("https://google.com/foobar3"));
service.Flush();
@@ -487,7 +548,7 @@ TEST_F(UkmServiceTest, PurgeMidUpload) {
task_runner_->RunUntilIdle();
service.EnableRecording();
service.EnableReporting();
- auto id = UkmRecorder::GetNewSourceID();
+ auto id = GetWhitelistedSourceId(0);
recorder.UpdateSourceURL(id, GURL("https://google.com/foobar1"));
// Should init, generate a log, and start an upload.
task_runner_->RunPendingTasks();
@@ -515,7 +576,7 @@ TEST_F(UkmServiceTest, WhitelistEntryTest) {
service.EnableRecording();
service.EnableReporting();
- auto id = UkmRecorder::GetNewSourceID();
+ auto id = GetWhitelistedSourceId(0);
recorder.UpdateSourceURL(id, GURL("https://google.com/foobar1"));
{
@@ -561,7 +622,7 @@ TEST_F(UkmServiceTest, SourceURLLength) {
service.EnableRecording();
service.EnableReporting();
- auto id = UkmRecorder::GetNewSourceID();
+ auto id = GetWhitelistedSourceId(0);
// This URL is too long to be recorded fully.
const std::string long_string = "https://" + std::string(10000, 'a');
@@ -576,4 +637,87 @@ TEST_F(UkmServiceTest, SourceURLLength) {
EXPECT_EQ("URLTooLong", proto_source.url());
}
+TEST_F(UkmServiceTest, UnreferencedNonWhitelistedSources) {
+ for (bool restrict_to_whitelisted_source_ids : {true, false}) {
+ base::FieldTrialList field_trial_list(nullptr /* entropy_provider */);
+ // Set a threshold of number of Sources via Feature Params.
+ ScopedUkmFeatureParams params(
+ base::FeatureList::OVERRIDE_ENABLE_FEATURE,
+ {{"MaxKeptSources", "3"},
+ {"WhitelistEntries", "EntryA,EntryB"},
+ {"RestrictToWhitelistedSourceIds",
+ restrict_to_whitelisted_source_ids ? "true" : "false"}});
+
+ ClearPrefs();
+ UkmService service(&prefs_, &client_);
+ TestRecordingHelper recorder(&service);
+ EXPECT_EQ(0, GetPersistedLogCount());
+ service.Initialize();
+ task_runner_->RunUntilIdle();
+ service.EnableRecording();
+ service.EnableReporting();
+
+ std::vector<SourceId> ids;
+ base::TimeTicks last_time = base::TimeTicks::Now();
+ for (int i = 0; i < 6; ++i) {
+ // Wait until base::TimeTicks::Now() no longer equals |last_time|. This
+ // ensures each source has a unique timestamp to avoid flakes. Should take
+ // between 1-15ms per documented resolution of base::TimeTicks.
+ while (base::TimeTicks::Now() == last_time) {
+ base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(1));
+ }
+
+ ids.push_back(GetNonWhitelistedSourceId(i));
+ recorder.UpdateSourceURL(
+ ids.back(), GURL("https://google.com/foobar" + base::IntToString(i)));
+ last_time = base::TimeTicks::Now();
+ }
+
+ // Add whitelisted entries for 0, 2 and non-whitelisted entries for 2, 3.
+ recorder.GetEntryBuilder(ids[0], "EntryA")->AddMetric("Metric", 500);
+ recorder.GetEntryBuilder(ids[2], "EntryB")->AddMetric("Metric", 500);
+ recorder.GetEntryBuilder(ids[2], "EntryC")->AddMetric("Metric", 500);
+ recorder.GetEntryBuilder(ids[3], "EntryC")->AddMetric("Metric", 500);
+
+ service.Flush();
+ EXPECT_EQ(1, GetPersistedLogCount());
+ auto proto_report = GetPersistedReport();
+
+ if (restrict_to_whitelisted_source_ids) {
+ ASSERT_EQ(0, proto_report.sources_size());
+ } else {
+ ASSERT_EQ(2, proto_report.sources_size());
+ EXPECT_EQ(ids[0], proto_report.sources(0).id());
+ EXPECT_EQ("https://google.com/foobar0", proto_report.sources(0).url());
+ EXPECT_EQ(ids[2], proto_report.sources(1).id());
+ EXPECT_EQ("https://google.com/foobar2", proto_report.sources(1).url());
+ }
+
+ // Since MaxKeptSources is 3, only Sources 5, 4, 3 should be retained.
+ // Log entries under 0, 1, 3 and 4. Log them in reverse order - which
+ // shouldn't affect source ordering in the output.
+ // - Source 0 should not be re-transmitted since it was sent before.
+ // - Source 1 should not be transmitted due to MaxKeptSources param.
+ // - Sources 3 and 4 should be transmitted since they were not sent before.
+ recorder.GetEntryBuilder(ids[4], "EntryA")->AddMetric("Metric", 500);
+ recorder.GetEntryBuilder(ids[3], "EntryA")->AddMetric("Metric", 500);
+ recorder.GetEntryBuilder(ids[1], "EntryA")->AddMetric("Metric", 500);
+ recorder.GetEntryBuilder(ids[0], "EntryA")->AddMetric("Metric", 500);
+
+ service.Flush();
+ EXPECT_EQ(2, GetPersistedLogCount());
+ proto_report = GetPersistedReport();
+
+ if (restrict_to_whitelisted_source_ids) {
+ ASSERT_EQ(0, proto_report.sources_size());
+ } else {
+ ASSERT_EQ(2, proto_report.sources_size());
+ EXPECT_EQ(ids[3], proto_report.sources(0).id());
+ EXPECT_EQ("https://google.com/foobar3", proto_report.sources(0).url());
+ EXPECT_EQ(ids[4], proto_report.sources(1).id());
+ EXPECT_EQ("https://google.com/foobar4", proto_report.sources(1).url());
+ }
+ }
+}
+
} // namespace ukm
diff --git a/chromium/components/ukm/ukm_source.cc b/chromium/components/ukm/ukm_source.cc
index 5324048fc28..4a701495ecb 100644
--- a/chromium/components/ukm/ukm_source.cc
+++ b/chromium/components/ukm/ukm_source.cc
@@ -39,7 +39,9 @@ void UkmSource::SetCustomTabVisible(bool visible) {
g_custom_tab_state = visible ? kCustomTabTrue : kCustomTabFalse;
}
-UkmSource::UkmSource() : custom_tab_state_(g_custom_tab_state) {}
+UkmSource::UkmSource()
+ : custom_tab_state_(g_custom_tab_state),
+ creation_time_(base::TimeTicks::Now()) {}
UkmSource::~UkmSource() = default;
diff --git a/chromium/components/ukm/ukm_source.h b/chromium/components/ukm/ukm_source.h
index 6492cd1cf5b..e053a1f22c7 100644
--- a/chromium/components/ukm/ukm_source.h
+++ b/chromium/components/ukm/ukm_source.h
@@ -35,6 +35,10 @@ class UkmSource {
const GURL& initial_url() const { return initial_url_; }
const GURL& url() const { return url_; }
+ // The object creation time. This is for internal purposes only and is not
+ // intended to be anything useful for UKM clients.
+ const base::TimeTicks creation_time() const { return creation_time_; }
+
// Sets the URL for this source. Should be invoked when a source is
// initialized.
void set_url(const GURL& url) { url_ = url; }
@@ -66,6 +70,9 @@ class UkmSource {
// the metric was created.
const CustomTabState custom_tab_state_;
+ // When this object was created.
+ const base::TimeTicks creation_time_;
+
DISALLOW_COPY_AND_ASSIGN(UkmSource);
};
diff --git a/chromium/content/app/strings/translations/content_strings_es.xtb b/chromium/content/app/strings/translations/content_strings_es.xtb
index 4c364581e7a..10077278318 100644
--- a/chromium/content/app/strings/translations/content_strings_es.xtb
+++ b/chromium/content/app/strings/translations/content_strings_es.xtb
@@ -57,7 +57,7 @@
<translation id="310520048233152454">Introduce una URL</translation>
<translation id="3175736971608411871">temporizador</translation>
<translation id="3199563858620722075">cuadro combinado</translation>
-<translation id="3450233048674729344">El valor debe inferior o igual a <ph name="MAXIMUM" /></translation>
+<translation id="3450233048674729344">El valor debe ser inferior o igual a <ph name="MAXIMUM" /></translation>
<translation id="3486220673238053218">definición</translation>
<translation id="3557673793733683882">encabezado <ph name="HEADING_LEVEL" /></translation>
<translation id="3639613635497528239">número de segundos restantes de la película</translation>
diff --git a/chromium/content/browser/accessibility/dump_accessibility_tree_browsertest.cc b/chromium/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
index 067d18e4356..76c2d6efd49 100644
--- a/chromium/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
+++ b/chromium/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
@@ -1150,13 +1150,28 @@ IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
RunHtmlTest(FILE_PATH_LITERAL("iframe-cross-process.html"));
}
+// Flaky on Mac and Win
+#if defined(OS_WIN) || defined(OS_MACOSX)
+#define MAYBE_AccessibilityIframeCoordinates \
+ DISABLED_AccessibilityIframeCoordinates
+#else
+#define MAYBE_AccessibilityIframeCoordinates AccessibilityIframeCoordinates
+#endif
IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
- AccessibilityIframeCoordinates) {
+ MAYBE_AccessibilityIframeCoordinates) {
RunHtmlTest(FILE_PATH_LITERAL("iframe-coordinates.html"));
}
+// Flaky on Mac and Win
+#if defined(OS_WIN) || defined(OS_MACOSX)
+#define MAYBE_AccessibilityIframeCoordinatesCrossProcess \
+ DISABLED_AccessibilityIframeCoordinatesCrossProcess
+#else
+#define MAYBE_AccessibilityIframeCoordinatesCrossProcess \
+ AccessibilityIframeCoordinatesCrossProcess
+#endif
IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
- AccessibilityIframeCoordinatesCrossProcess) {
+ MAYBE_AccessibilityIframeCoordinatesCrossProcess) {
RunHtmlTest(FILE_PATH_LITERAL("iframe-coordinates-cross-process.html"));
}
@@ -1182,17 +1197,18 @@ IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
}
IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
- AccessibilityIframeTransformNested) {
+ DISABLED_AccessibilityIframeTransformNested) {
RunHtmlTest(FILE_PATH_LITERAL("iframe-transform-nested.html"));
}
-IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
- AccessibilityIframeTransformNestedCrossProcess) {
+IN_PROC_BROWSER_TEST_F(
+ DumpAccessibilityTreeTest,
+ DISABLED_AccessibilityIframeTransformNestedCrossProcess) {
RunHtmlTest(FILE_PATH_LITERAL("iframe-transform-nested-cross-process.html"));
}
IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
- AccessibilityIframeTransformScrolled) {
+ DISABLED_AccessibilityIframeTransformScrolled) {
RunHtmlTest(FILE_PATH_LITERAL("iframe-transform-scrolled.html"));
}
@@ -1494,12 +1510,13 @@ IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityObject) {
RunHtmlTest(FILE_PATH_LITERAL("object.html"));
}
-IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityOffscreen) {
+IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
+ DISABLED_AccessibilityOffscreen) {
RunHtmlTest(FILE_PATH_LITERAL("offscreen.html"));
}
IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
- AccessibilityOffscreenScroll) {
+ DISABLED_AccessibilityOffscreenScroll) {
RunHtmlTest(FILE_PATH_LITERAL("offscreen-scroll.html"));
}
@@ -1677,7 +1694,7 @@ IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityWbr) {
}
IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest,
- AccessibilityWindowCropsItems) {
+ DISABLED_AccessibilityWindowCropsItems) {
RunHtmlTest(FILE_PATH_LITERAL("window-crops-items.html"));
}
diff --git a/chromium/content/browser/accessibility/one_shot_accessibility_tree_search_unittest.cc b/chromium/content/browser/accessibility/one_shot_accessibility_tree_search_unittest.cc
index fe3cbfe4e80..23841fbacb6 100644
--- a/chromium/content/browser/accessibility/one_shot_accessibility_tree_search_unittest.cc
+++ b/chromium/content/browser/accessibility/one_shot_accessibility_tree_search_unittest.cc
@@ -187,7 +187,7 @@ TEST_F(MAYBE_OneShotAccessibilityTreeSearchTest,
EXPECT_EQ(4, search.GetMatchAtIndex(0)->GetId());
}
-TEST_F(MAYBE_OneShotAccessibilityTreeSearchTest, VisibleOnly) {
+TEST_F(MAYBE_OneShotAccessibilityTreeSearchTest, DISABLED_VisibleOnly) {
OneShotAccessibilityTreeSearch search(tree_->GetRoot());
search.SetVisibleOnly(true);
ASSERT_EQ(5U, search.CountMatches());
diff --git a/chromium/content/browser/accessibility/web_contents_accessibility_android.cc b/chromium/content/browser/accessibility/web_contents_accessibility_android.cc
index 732e5850f84..11d16927674 100644
--- a/chromium/content/browser/accessibility/web_contents_accessibility_android.cc
+++ b/chromium/content/browser/accessibility/web_contents_accessibility_android.cc
@@ -401,13 +401,6 @@ void WebContentsAccessibilityAndroid::UpdateEnabledState(bool enabled) {
// about to be destroyed).
if (manager)
manager->set_web_contents_accessibility(nullptr);
- // Note that disabling part is not useful at this moment since the mode will
- // be enabled again almost immediately for the renderer process that just
- // got swapped in. This boolean enable/disable logic will be expanded
- // to allow for more granular accessibility. See https://crbug.com/428494.
- accessibility_state->ResetAccessibilityMode();
- web_contents_->SetAccessibilityMode(
- accessibility_state->accessibility_mode());
}
}
diff --git a/chromium/content/browser/browser_main_loop.cc b/chromium/content/browser/browser_main_loop.cc
index b408b7914c4..b0c9546fdc8 100644
--- a/chromium/content/browser/browser_main_loop.cc
+++ b/chromium/content/browser/browser_main_loop.cc
@@ -89,6 +89,7 @@
#include "content/browser/webui/url_data_manager.h"
#include "content/common/content_switches_internal.h"
#include "content/common/service_manager/service_manager_connection_impl.h"
+#include "content/common/site_isolation_policy.h"
#include "content/common/task_scheduler.h"
#include "content/public/browser/browser_main_parts.h"
#include "content/public/browser/content_browser_client.h"
@@ -767,13 +768,6 @@ void BrowserMainLoop::PostMainMessageLoopStart() {
LevelDBWrapperImpl::EnableAggressiveCommitDelay();
}
- if (parsed_command_line_.HasSwitch(switches::kIsolateOrigins)) {
- ChildProcessSecurityPolicyImpl* policy =
- ChildProcessSecurityPolicyImpl::GetInstance();
- policy->AddIsolatedOriginsFromCommandLine(
- parsed_command_line_.GetSwitchValueASCII(switches::kIsolateOrigins));
- }
-
// Enable memory-infra dump providers.
InitSkiaEventTracer();
base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider(
@@ -874,12 +868,11 @@ int BrowserMainLoop::PreCreateThreads() {
// Initialize origins that are whitelisted for process isolation. Must be
// done after base::FeatureList is initialized, but before any navigations
// can happen.
- std::vector<url::Origin> origins =
- GetContentClient()->browser()->GetOriginsRequiringDedicatedProcess();
ChildProcessSecurityPolicyImpl* policy =
ChildProcessSecurityPolicyImpl::GetInstance();
- for (auto origin : origins)
- policy->AddIsolatedOrigin(origin);
+ policy->AddIsolatedOrigins(SiteIsolationPolicy::GetIsolatedOrigins());
+ policy->AddIsolatedOrigins(
+ GetContentClient()->browser()->GetOriginsRequiringDedicatedProcess());
EVP_set_buggy_rsa_parser(
base::FeatureList::IsEnabled(features::kBuggyRSAParser));
diff --git a/chromium/content/browser/child_process_security_policy_impl.cc b/chromium/content/browser/child_process_security_policy_impl.cc
index f9ca00994a4..3af4399e9bf 100644
--- a/chromium/content/browser/child_process_security_policy_impl.cc
+++ b/chromium/content/browser/child_process_security_policy_impl.cc
@@ -15,7 +15,6 @@
#include "base/macros.h"
#include "base/memory/ptr_util.h"
#include "base/metrics/histogram_macros.h"
-#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "build/build_config.h"
#include "content/browser/isolated_origin_util.h"
@@ -1144,26 +1143,24 @@ bool ChildProcessSecurityPolicyImpl::CanSendMidiSysExMessage(int child_id) {
return state->second->can_send_midi_sysex();
}
-void ChildProcessSecurityPolicyImpl::AddIsolatedOrigin(
- const url::Origin& origin) {
- CHECK(IsolatedOriginUtil::IsValidIsolatedOrigin(origin));
-
- base::AutoLock lock(lock_);
- CHECK(!isolated_origins_.count(origin))
- << "Duplicate isolated origin: " << origin.Serialize();
+void ChildProcessSecurityPolicyImpl::AddIsolatedOrigins(
+ std::vector<url::Origin> origins_to_add) {
+ // Filter out origins that cannot be used as an isolated origin.
+ auto end_of_valid_origins =
+ std::remove_if(origins_to_add.begin(), origins_to_add.end(),
+ [](const url::Origin& origin) {
+ if (IsolatedOriginUtil::IsValidIsolatedOrigin(origin))
+ return false; // Don't remove.
- isolated_origins_.insert(origin);
-}
+ LOG(ERROR) << "Invalid isolated origin: " << origin;
+ return true; // Remove.
+ });
+ origins_to_add.erase(end_of_valid_origins, origins_to_add.end());
-void ChildProcessSecurityPolicyImpl::AddIsolatedOriginsFromCommandLine(
- const std::string& origin_list) {
- for (const base::StringPiece& origin_piece :
- base::SplitStringPiece(origin_list, ",", base::TRIM_WHITESPACE,
- base::SPLIT_WANT_NONEMPTY)) {
- url::Origin origin((GURL(origin_piece)));
- if (!origin.unique())
- AddIsolatedOrigin(origin);
- }
+ // Taking the lock once and doing a batch insertion via base::flat_set::insert
+ // is important because of performance characteristics of base::flat_set.
+ base::AutoLock lock(lock_);
+ isolated_origins_.insert(origins_to_add.begin(), origins_to_add.end());
}
bool ChildProcessSecurityPolicyImpl::IsIsolatedOrigin(
diff --git a/chromium/content/browser/child_process_security_policy_impl.h b/chromium/content/browser/child_process_security_policy_impl.h
index 38f161bbb2e..9f522762eec 100644
--- a/chromium/content/browser/child_process_security_policy_impl.h
+++ b/chromium/content/browser/child_process_security_policy_impl.h
@@ -12,6 +12,7 @@
#include <vector>
#include "base/compiler_specific.h"
+#include "base/containers/flat_set.h"
#include "base/gtest_prod_util.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
@@ -208,7 +209,7 @@ class CONTENT_EXPORT ChildProcessSecurityPolicyImpl
// Returns true if sending system exclusive messages is allowed.
bool CanSendMidiSysExMessage(int child_id);
- // Add an origin to the list of origins that require process isolation.
+ // Add |origins| to the list of origins that require process isolation.
// When making process model decisions for such origins, the full
// scheme+host+port tuple rather than scheme and eTLD+1 will be used.
// SiteInstances for these origins will also use the full origin as site URL.
@@ -218,7 +219,7 @@ class CONTENT_EXPORT ChildProcessSecurityPolicyImpl
// isolated origin, then https://bar.isolated.foo.com will be considered part
// of the site for https://isolated.foo.com.
//
- // Note that |origin| must not be unique. URLs that render with
+ // Note that origins from |origins| must not be unique - URLs that render with
// unique origins, such as data: URLs, are not supported. Suborigins (see
// https://w3c.github.io/webappsec-suborigins/ -- not to be confused with
// subdomains) and non-standard schemes are also not supported. Sandboxed
@@ -228,13 +229,10 @@ class CONTENT_EXPORT ChildProcessSecurityPolicyImpl
// origin opens an about:blank popup, it will stay in the isolated origin's
// process. Nested URLs (filesystem: and blob:) retain process isolation
// behavior of their inner origin.
- void AddIsolatedOrigin(const url::Origin& origin);
-
- // Register a set of isolated origins as specified on the command line with
- // the --isolate-origins flag. |origin_list| is the flag's value, which
- // contains the list of comma-separated scheme-host-port origins. See
- // AddIsolatedOrigin for definition of an isolated origin.
- void AddIsolatedOriginsFromCommandLine(const std::string& origin_list);
+ //
+ // Note that it is okay if |origins| contains duplicates - the set of origins
+ // will be deduplicated inside the method.
+ void AddIsolatedOrigins(std::vector<url::Origin> origins);
// Check whether |origin| requires origin-wide process isolation.
//
@@ -287,8 +285,7 @@ class CONTENT_EXPORT ChildProcessSecurityPolicyImpl
FRIEND_TEST_ALL_PREFIXES(ChildProcessSecurityPolicyInProcessBrowserTest,
NoLeak);
FRIEND_TEST_ALL_PREFIXES(ChildProcessSecurityPolicyTest, FilePermissions);
- FRIEND_TEST_ALL_PREFIXES(ChildProcessSecurityPolicyTest,
- IsolateOriginsFromCommandLine);
+ FRIEND_TEST_ALL_PREFIXES(ChildProcessSecurityPolicyTest, AddIsolatedOrigins);
class SecurityState;
@@ -377,7 +374,7 @@ class CONTENT_EXPORT ChildProcessSecurityPolicyImpl
// when making process model decisions, rather than the origin's scheme and
// eTLD+1. Each of these origins requires a dedicated process. This set is
// protected by |lock_|.
- std::set<url::Origin> isolated_origins_;
+ base::flat_set<url::Origin> isolated_origins_;
DISALLOW_COPY_AND_ASSIGN(ChildProcessSecurityPolicyImpl);
};
diff --git a/chromium/content/browser/child_process_security_policy_unittest.cc b/chromium/content/browser/child_process_security_policy_unittest.cc
index 6b69dd7fe38..1cf98396e0d 100644
--- a/chromium/content/browser/child_process_security_policy_unittest.cc
+++ b/chromium/content/browser/child_process_security_policy_unittest.cc
@@ -6,6 +6,8 @@
#include <string>
#include "base/files/file_path.h"
+#include "base/logging.h"
+#include "base/test/mock_log.h"
#include "content/browser/child_process_security_policy_impl.h"
#include "content/public/common/url_constants.h"
#include "content/test/test_content_browser_client.h"
@@ -13,6 +15,7 @@
#include "storage/browser/fileapi/file_system_url.h"
#include "storage/browser/fileapi/isolated_context.h"
#include "storage/common/fileapi/file_system_types.h"
+#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
#include "url/origin.h"
@@ -973,30 +976,59 @@ TEST_F(ChildProcessSecurityPolicyTest, OriginGranting) {
p->Remove(kRendererID);
}
+// Verifies ChildProcessSecurityPolicyImpl::AddIsolatedOrigins method.
+TEST_F(ChildProcessSecurityPolicyTest, AddIsolatedOrigins) {
+ url::Origin foo = url::Origin::Create(GURL("https://foo.com/"));
+ url::Origin bar = url::Origin::Create(GURL("https://bar.com/"));
+ url::Origin baz = url::Origin::Create(GURL("https://baz.com/"));
+ url::Origin foobar = url::Origin::Create(GURL("https://foobar.com/"));
+ url::Origin baz_http_8000 = url::Origin::Create(GURL("http://baz.com:8000/"));
+ url::Origin baz_https_8000 =
+ url::Origin::Create(GURL("https://baz.com:8000/"));
+ url::Origin invalid_etld = url::Origin::Create(GURL("https://gov/"));
+ ChildProcessSecurityPolicyImpl* p =
+ ChildProcessSecurityPolicyImpl::GetInstance();
-// Verifies parsing logic that extracts origins from --isolate-origins.
-TEST_F(ChildProcessSecurityPolicyTest, IsolateOriginsFromCommandLine) {
- // Invalid and unique origins are not permitted.
- auto* policy = ChildProcessSecurityPolicyImpl::GetInstance();
- policy->AddIsolatedOriginsFromCommandLine("foo");
- policy->AddIsolatedOriginsFromCommandLine("");
- policy->AddIsolatedOriginsFromCommandLine("about:blank");
- EXPECT_EQ(0U, policy->isolated_origins_.size());
-
- policy->AddIsolatedOriginsFromCommandLine("http://isolated.foo.com");
- EXPECT_EQ(1U, policy->isolated_origins_.size());
- EXPECT_TRUE(
- policy->IsIsolatedOrigin(url::Origin(GURL("http://isolated.foo.com"))));
-
- policy->AddIsolatedOriginsFromCommandLine(
- "http://a.com,https://b.com,,https://c.com:8000");
- EXPECT_EQ(4U, policy->isolated_origins_.size());
- EXPECT_TRUE(
- policy->IsIsolatedOrigin(url::Origin(GURL("http://isolated.foo.com"))));
- EXPECT_TRUE(policy->IsIsolatedOrigin(url::Origin(GURL("http://a.com"))));
- EXPECT_TRUE(policy->IsIsolatedOrigin(url::Origin(GURL("https://b.com"))));
- EXPECT_TRUE(
- policy->IsIsolatedOrigin(url::Origin(GURL("https://c.com:8000"))));
+ // Initially there should be no isolated origins.
+ EXPECT_THAT(p->isolated_origins_, testing::IsEmpty());
+
+ // Verify deduplication of the argument.
+ p->AddIsolatedOrigins({foo, bar, bar});
+ EXPECT_THAT(p->isolated_origins_, testing::UnorderedElementsAre(foo, bar));
+
+ // Verify that the old set is extended (not replaced).
+ p->AddIsolatedOrigins({baz});
+ EXPECT_THAT(p->isolated_origins_,
+ testing::UnorderedElementsAre(foo, bar, baz));
+
+ // Verify deduplication against the old set.
+ p->AddIsolatedOrigins({foo});
+ EXPECT_THAT(p->isolated_origins_,
+ testing::UnorderedElementsAre(foo, bar, baz));
+
+ // Verify deduplication considers scheme and port differences.
+ p->AddIsolatedOrigins({baz, baz_http_8000, baz_https_8000});
+ EXPECT_THAT(p->isolated_origins_,
+ testing::UnorderedElementsAre(foo, bar, baz, baz_http_8000,
+ baz_https_8000));
+
+ // Verify that adding an origin that is invalid for isolation will 1) log a
+ // warning and 2) won't CHECK or crash the browser process, 3) will not add
+ // the invalid origin, but will add the remaining origins passed to
+ // AddIsolatedOrigins.
+ {
+ base::test::MockLog mock_log;
+ EXPECT_CALL(mock_log,
+ Log(::logging::LOG_ERROR, testing::_, testing::_, testing::_,
+ testing::HasSubstr(invalid_etld.Serialize())))
+ .Times(1);
+
+ mock_log.StartCapturingLogs();
+ p->AddIsolatedOrigins({foobar, invalid_etld});
+ EXPECT_THAT(p->isolated_origins_,
+ testing::UnorderedElementsAre(foo, bar, baz, baz_http_8000,
+ baz_https_8000, foobar));
+ }
}
} // namespace content
diff --git a/chromium/content/browser/frame_host/navigation_handle_impl.cc b/chromium/content/browser/frame_host/navigation_handle_impl.cc
index 28048bdb204..e56b81ef55e 100644
--- a/chromium/content/browser/frame_host/navigation_handle_impl.cc
+++ b/chromium/content/browser/frame_host/navigation_handle_impl.cc
@@ -605,19 +605,14 @@ void NavigationHandleImpl::WillStartRequest(
RunCompleteCallback(result);
}
-void NavigationHandleImpl::WillRedirectRequest(
+void NavigationHandleImpl::UpdateStateFollowingRedirect(
const GURL& new_url,
const std::string& new_method,
const GURL& new_referrer_url,
bool new_is_external_protocol,
scoped_refptr<net::HttpResponseHeaders> response_headers,
net::HttpResponseInfo::ConnectionInfo connection_info,
- RenderProcessHost* post_redirect_process,
const ThrottleChecksFinishedCallback& callback) {
- TRACE_EVENT_ASYNC_STEP_INTO1("navigation", "NavigationHandle", this,
- "WillRedirectRequest", "url",
- new_url.possibly_invalid_spec());
-
// |new_url| is not expected to be a "renderer debug" url. It should be
// blocked in NavigationRequest::OnRequestRedirected or in
// ResourceLoader::OnReceivedRedirect. If it is not the case,
@@ -629,7 +624,6 @@ void NavigationHandleImpl::WillRedirectRequest(
// Update the navigation parameters.
url_ = new_url;
method_ = new_method;
- UpdateSiteURL(post_redirect_process);
if (!(transition_ & ui::PAGE_TRANSITION_CLIENT_REDIRECT)) {
sanitized_referrer_.url = new_referrer_url;
@@ -647,6 +641,24 @@ void NavigationHandleImpl::WillRedirectRequest(
state_ = WILL_REDIRECT_REQUEST;
complete_callback_ = callback;
+}
+
+void NavigationHandleImpl::WillRedirectRequest(
+ const GURL& new_url,
+ const std::string& new_method,
+ const GURL& new_referrer_url,
+ bool new_is_external_protocol,
+ scoped_refptr<net::HttpResponseHeaders> response_headers,
+ net::HttpResponseInfo::ConnectionInfo connection_info,
+ RenderProcessHost* post_redirect_process,
+ const ThrottleChecksFinishedCallback& callback) {
+ TRACE_EVENT_ASYNC_STEP_INTO1("navigation", "NavigationHandle", this,
+ "WillRedirectRequest", "url",
+ new_url.possibly_invalid_spec());
+ UpdateStateFollowingRedirect(new_url, new_method, new_referrer_url,
+ new_is_external_protocol, response_headers,
+ connection_info, callback);
+ UpdateSiteURL(post_redirect_process);
if (IsSelfReferentialURL()) {
state_ = CANCELING;
diff --git a/chromium/content/browser/frame_host/navigation_handle_impl.h b/chromium/content/browser/frame_host/navigation_handle_impl.h
index c3be1f7534b..711b50c3f45 100644
--- a/chromium/content/browser/frame_host/navigation_handle_impl.h
+++ b/chromium/content/browser/frame_host/navigation_handle_impl.h
@@ -277,6 +277,17 @@ class CONTENT_EXPORT NavigationHandleImpl : public NavigationHandle {
blink::WebMixedContentContextType mixed_content_context_type,
const ThrottleChecksFinishedCallback& callback);
+ // Updates the state of the navigation handle after encountering a server
+ // redirect.
+ void UpdateStateFollowingRedirect(
+ const GURL& new_url,
+ const std::string& new_method,
+ const GURL& new_referrer_url,
+ bool new_is_external_protocol,
+ scoped_refptr<net::HttpResponseHeaders> response_headers,
+ net::HttpResponseInfo::ConnectionInfo connection_info,
+ const ThrottleChecksFinishedCallback& callback);
+
// Called when the URLRequest will be redirected in the network stack.
// |callback| will be called when all throttles check have completed. This
// will allow the caller to cancel the navigation or let it proceed.
diff --git a/chromium/content/browser/frame_host/navigation_request.cc b/chromium/content/browser/frame_host/navigation_request.cc
index 51d638924ab..66cbc43ab67 100644
--- a/chromium/content/browser/frame_host/navigation_request.cc
+++ b/chromium/content/browser/frame_host/navigation_request.cc
@@ -577,6 +577,41 @@ void NavigationRequest::TransferNavigationHandleOwnership(
void NavigationRequest::OnRequestRedirected(
const net::RedirectInfo& redirect_info,
const scoped_refptr<ResourceResponse>& response) {
+#if defined(OS_ANDROID)
+ base::WeakPtr<NavigationRequest> this_ptr(weak_factory_.GetWeakPtr());
+
+ bool should_override_url_loading =
+ GetContentClient()->browser()->ShouldOverrideUrlLoading(
+ frame_tree_node_->frame_tree_node_id(), browser_initiated_,
+ redirect_info.new_url, redirect_info.new_method,
+ // Redirects are always not counted as from user gesture.
+ false, true, frame_tree_node_->IsMainFrame(),
+ common_params_.transition);
+
+ // The content/ embedder might cause |this| to be deleted while
+ // |ShouldOverrideUrlLoading| is called.
+ // See https://crbug.com/770157.
+ if (!this_ptr)
+ return;
+
+ if (should_override_url_loading) {
+ bool is_external_protocol =
+ !GetContentClient()->browser()->IsHandledURL(common_params_.url);
+ navigation_handle_->set_net_error_code(net::ERR_ABORTED);
+ // Update the navigation handle to point to the new url to ensure
+ // AwWebContents sees the new URL and thus passes that URL to onPageFinished
+ // (rather than passing the old URL).
+ navigation_handle_->UpdateStateFollowingRedirect(
+ redirect_info.new_url, redirect_info.new_method,
+ GURL(redirect_info.new_referrer), is_external_protocol,
+ response->head.headers, response->head.connection_info,
+ base::Bind(&NavigationRequest::OnRedirectChecksComplete,
+ base::Unretained(this)));
+ frame_tree_node_->ResetNavigationRequest(false, true);
+ return;
+ }
+#endif
+
if (!ChildProcessSecurityPolicyImpl::GetInstance()->CanRedirectToURL(
redirect_info.new_url)) {
DVLOG(1) << "Denied redirect for "
@@ -606,8 +641,13 @@ void NavigationRequest::OnRequestRedirected(
// destination could change.
dest_site_instance_ = nullptr;
+ // For now, DevTools needs the POST data sent to the renderer process even if
+ // it is no longer a POST after the redirect.
+ // TODO(caseq): Send the requestWillBeSent from browser and remove the
+ // IsNetworkHandlerEnabled check here.
// If the navigation is no longer a POST, the POST data should be reset.
- if (redirect_info.new_method != "POST")
+ if (redirect_info.new_method != "POST" &&
+ !RenderFrameDevToolsAgentHost::IsNetworkHandlerEnabled(frame_tree_node_))
common_params_.post_data = nullptr;
// Mark time for the Navigation Timing API.
@@ -670,10 +710,6 @@ void NavigationRequest::OnRequestRedirected(
RenderProcessHost* expected_process =
site_instance->HasProcess() ? site_instance->GetProcess() : nullptr;
-#if defined(OS_ANDROID)
- base::WeakPtr<NavigationRequest> this_ptr(weak_factory_.GetWeakPtr());
-#endif
-
// It's safe to use base::Unretained because this NavigationRequest owns the
// NavigationHandle where the callback will be stored.
bool is_external_protocol =
@@ -684,32 +720,6 @@ void NavigationRequest::OnRequestRedirected(
response->head.connection_info, expected_process,
base::Bind(&NavigationRequest::OnRedirectChecksComplete,
base::Unretained(this)));
-// |this| may be deleted.
-
-#if defined(OS_ANDROID)
- if (!this_ptr)
- return;
-
- bool should_override_url_loading =
- GetContentClient()->browser()->ShouldOverrideUrlLoading(
- frame_tree_node_->frame_tree_node_id(), browser_initiated_,
- redirect_info.new_url, redirect_info.new_method,
- // Redirects are always not counted as from user gesture.
- false, true, frame_tree_node_->IsMainFrame(),
- common_params_.transition);
-
- // The content/ embedder might cause |this| to be deleted while
- // |ShouldOverrideUrlLoading| is called.
- // See https://crbug.com/770157.
- if (!this_ptr)
- return;
-
- if (should_override_url_loading) {
- navigation_handle_->set_net_error_code(net::ERR_ABORTED);
- frame_tree_node_->ResetNavigationRequest(false, true);
- return;
- }
-#endif
}
void NavigationRequest::OnResponseStarted(
diff --git a/chromium/content/browser/indexed_db/indexed_db_factory_impl.cc b/chromium/content/browser/indexed_db/indexed_db_factory_impl.cc
index 6e14aeec34c..22ca3685fb0 100644
--- a/chromium/content/browser/indexed_db/indexed_db_factory_impl.cc
+++ b/chromium/content/browser/indexed_db/indexed_db_factory_impl.cc
@@ -12,6 +12,7 @@
#include "base/feature_list.h"
#include "base/logging.h"
#include "base/memory/ptr_util.h"
+#include "base/metrics/histogram_macros.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/time/default_clock.h"
@@ -473,8 +474,11 @@ void IndexedDBFactoryImpl::HandleBackingStoreCorruption(
// so our corruption info file will remain.
leveldb::Status s =
IndexedDBBackingStore::DestroyBackingStore(path_base, saved_origin);
- if (!s.ok())
- DLOG(ERROR) << "Unable to delete backing store: " << s.ToString();
+ DLOG_IF(ERROR, !s.ok()) << "Unable to delete backing store: " << s.ToString();
+ UMA_HISTOGRAM_ENUMERATION(
+ "WebCore.IndexedDB.DestroyCorruptBackingStoreStatus",
+ leveldb_env::GetLevelDBStatusUMAValue(s),
+ leveldb_env::LEVELDB_STATUS_MAX);
}
bool IndexedDBFactoryImpl::IsDatabaseOpen(const Origin& origin,
diff --git a/chromium/content/browser/isolated_origin_browsertest.cc b/chromium/content/browser/isolated_origin_browsertest.cc
index d441653ac6b..cef4700c066 100644
--- a/chromium/content/browser/isolated_origin_browsertest.cc
+++ b/chromium/content/browser/isolated_origin_browsertest.cc
@@ -3,12 +3,15 @@
// found in the LICENSE file.
#include "base/command_line.h"
+#include "base/macros.h"
+#include "base/test/scoped_feature_list.h"
#include "content/browser/bad_message.h"
#include "content/browser/child_process_security_policy_impl.h"
#include "content/browser/storage_partition_impl.h"
#include "content/browser/web_contents/web_contents_impl.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/common/browser_side_navigation_policy.h"
+#include "content/public/common/content_features.h"
#include "content/public/common/content_switches.h"
#include "content/public/test/browser_test_utils.h"
#include "content/public/test/content_browser_test.h"
@@ -55,6 +58,9 @@ class IsolatedOriginTest : public ContentBrowserTest {
"document.body.appendChild(link);"
"link.click();"));
}
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(IsolatedOriginTest);
};
// Check that navigating a main frame from an non-isolated origin to an
@@ -896,6 +902,8 @@ class StoragePartitonInterceptor
// Keep a pointer to the original implementation of the service, so all
// calls can be forwarded to it.
mojom::StoragePartitionService* storage_partition_service_;
+
+ DISALLOW_COPY_AND_ASSIGN(StoragePartitonInterceptor);
};
void CreateTestStoragePartitionService(
@@ -929,4 +937,28 @@ IN_PROC_BROWSER_TEST_F(IsolatedOriginTest, LocalStorageOriginEnforcement) {
crash_observer.Wait();
}
+class IsolatedOriginFieldTrialTest : public ContentBrowserTest {
+ public:
+ IsolatedOriginFieldTrialTest() {
+ scoped_feature_list_.InitAndEnableFeatureWithParameters(
+ features::kIsolateOrigins,
+ {{features::kIsolateOriginsFieldTrialParamName,
+ "https://field.trial.com/,https://bar.com/"}});
+ }
+ ~IsolatedOriginFieldTrialTest() override {}
+
+ private:
+ base::test::ScopedFeatureList scoped_feature_list_;
+
+ DISALLOW_COPY_AND_ASSIGN(IsolatedOriginFieldTrialTest);
+};
+
+IN_PROC_BROWSER_TEST_F(IsolatedOriginFieldTrialTest, Test) {
+ auto* policy = ChildProcessSecurityPolicyImpl::GetInstance();
+ EXPECT_TRUE(policy->IsIsolatedOrigin(
+ url::Origin::Create(GURL("https://field.trial.com/"))));
+ EXPECT_TRUE(
+ policy->IsIsolatedOrigin(url::Origin::Create(GURL("https://bar.com/"))));
+}
+
} // namespace content
diff --git a/chromium/content/browser/renderer_host/render_process_host_unittest.cc b/chromium/content/browser/renderer_host/render_process_host_unittest.cc
index e0872a52e98..01e3171e028 100644
--- a/chromium/content/browser/renderer_host/render_process_host_unittest.cc
+++ b/chromium/content/browser/renderer_host/render_process_host_unittest.cc
@@ -604,7 +604,8 @@ class EffectiveURLContentBrowserClient : public ContentBrowserClient {
private:
GURL GetEffectiveURL(BrowserContext* browser_context,
- const GURL& url) override {
+ const GURL& url,
+ bool is_isolated_origin) override {
if (url == url_to_modify_)
return url_to_return_;
return url;
diff --git a/chromium/content/browser/site_instance_impl.cc b/chromium/content/browser/site_instance_impl.cc
index 6be22050f5c..68f9dbe8532 100644
--- a/chromium/content/browser/site_instance_impl.cc
+++ b/chromium/content/browser/site_instance_impl.cc
@@ -364,10 +364,13 @@ GURL SiteInstance::GetSiteForURL(BrowserContext* browser_context,
url::Origin origin(url);
// Isolated origins should use the full origin as their site URL. A subdomain
- // of an isolated origin should also use that isolated origin's site URL.
+ // of an isolated origin should also use that isolated origin's site URL. It
+ // is important to check |url| rather than |real_url| here, since some
+ // effective URLs (such as for NTP) need to be resolved prior to the isolated
+ // origin lookup.
auto* policy = ChildProcessSecurityPolicyImpl::GetInstance();
url::Origin isolated_origin;
- if (policy->GetMatchingIsolatedOrigin(url::Origin(real_url),
+ if (policy->GetMatchingIsolatedOrigin(url::Origin(url),
&isolated_origin)) {
return isolated_origin.GetURL();
}
@@ -397,14 +400,10 @@ GURL SiteInstance::GetSiteForURL(BrowserContext* browser_context,
// static
GURL SiteInstanceImpl::GetEffectiveURL(BrowserContext* browser_context,
const GURL& url) {
- // Don't resolve URLs corresponding to isolated origins, as isolated origins
- // take precedence over hosted apps.
auto* policy = ChildProcessSecurityPolicyImpl::GetInstance();
- if (policy->IsIsolatedOrigin(url::Origin(url)))
- return url;
-
- return GetContentClient()->browser()->
- GetEffectiveURL(browser_context, url);
+ bool is_isolated_origin = policy->IsIsolatedOrigin(url::Origin(url));
+ return GetContentClient()->browser()->GetEffectiveURL(browser_context, url,
+ is_isolated_origin);
}
// static
diff --git a/chromium/content/browser/site_instance_impl_unittest.cc b/chromium/content/browser/site_instance_impl_unittest.cc
index 2d1b28d9992..c523ca9a06b 100644
--- a/chromium/content/browser/site_instance_impl_unittest.cc
+++ b/chromium/content/browser/site_instance_impl_unittest.cc
@@ -7,6 +7,7 @@
#include <stddef.h>
#include <memory>
+#include <string>
#include <vector>
#include "base/command_line.h"
@@ -47,7 +48,7 @@ const char kPrivilegedScheme[] = "privileged";
class SiteInstanceTestBrowserClient : public TestContentBrowserClient {
public:
- explicit SiteInstanceTestBrowserClient()
+ SiteInstanceTestBrowserClient()
: privileged_process_id_(-1),
site_instance_delete_count_(0),
browsing_instance_delete_count_(0) {
@@ -896,7 +897,7 @@ TEST_F(SiteInstanceTest, IsolatedOrigins) {
EXPECT_FALSE(policy->IsIsolatedOrigin(url::Origin(isolated_foo_url)));
EXPECT_TRUE(SiteInstance::IsSameWebSite(nullptr, foo_url, isolated_foo_url));
- policy->AddIsolatedOrigin(url::Origin(isolated_foo_url));
+ policy->AddIsolatedOrigins({url::Origin(isolated_foo_url)});
EXPECT_TRUE(policy->IsIsolatedOrigin(url::Origin(isolated_foo_url)));
EXPECT_FALSE(policy->IsIsolatedOrigin(url::Origin(foo_url)));
EXPECT_FALSE(policy->IsIsolatedOrigin(url::Origin(GURL("http://foo.com"))));
@@ -907,7 +908,7 @@ TEST_F(SiteInstanceTest, IsolatedOrigins) {
EXPECT_FALSE(policy->IsIsolatedOrigin(
url::Origin(GURL("http://isolated.foo.com:12345"))));
- policy->AddIsolatedOrigin(url::Origin(isolated_bar_url));
+ policy->AddIsolatedOrigins({url::Origin(isolated_bar_url)});
EXPECT_TRUE(policy->IsIsolatedOrigin(url::Origin(isolated_bar_url)));
// IsSameWebSite should compare origins rather than sites if either URL is an
@@ -997,7 +998,7 @@ TEST_F(SiteInstanceTest, SubdomainOnIsolatedSite) {
GURL foo_isolated_url("http://foo.isolated.com");
auto* policy = ChildProcessSecurityPolicyImpl::GetInstance();
- policy->AddIsolatedOrigin(url::Origin(isolated_url));
+ policy->AddIsolatedOrigins({url::Origin(isolated_url)});
EXPECT_TRUE(policy->IsIsolatedOrigin(url::Origin(isolated_url)));
EXPECT_TRUE(policy->IsIsolatedOrigin(url::Origin(foo_isolated_url)));
@@ -1031,7 +1032,7 @@ TEST_F(SiteInstanceTest, SubdomainOnIsolatedSite) {
// Don't try to match subdomains on IP addresses.
GURL isolated_ip("http://127.0.0.1");
- policy->AddIsolatedOrigin(url::Origin(isolated_ip));
+ policy->AddIsolatedOrigins({url::Origin(isolated_ip)});
EXPECT_TRUE(policy->IsIsolatedOrigin(url::Origin(isolated_ip)));
EXPECT_FALSE(
policy->IsIsolatedOrigin(url::Origin(GURL("http://42.127.0.0.1"))));
@@ -1047,7 +1048,7 @@ TEST_F(SiteInstanceTest, SubdomainOnIsolatedOrigin) {
GURL baz_isolated_foo_url("http://baz.isolated.foo.com");
auto* policy = ChildProcessSecurityPolicyImpl::GetInstance();
- policy->AddIsolatedOrigin(url::Origin(isolated_foo_url));
+ policy->AddIsolatedOrigins({url::Origin(isolated_foo_url)});
EXPECT_FALSE(policy->IsIsolatedOrigin(url::Origin(foo_url)));
EXPECT_TRUE(policy->IsIsolatedOrigin(url::Origin(isolated_foo_url)));
@@ -1099,8 +1100,8 @@ TEST_F(SiteInstanceTest, MultipleIsolatedOriginsWithCommonSite) {
GURL qux_baz_bar_foo_url("http://qux.baz.bar.foo.com");
auto* policy = ChildProcessSecurityPolicyImpl::GetInstance();
- policy->AddIsolatedOrigin(url::Origin(foo_url));
- policy->AddIsolatedOrigin(url::Origin(baz_bar_foo_url));
+ policy->AddIsolatedOrigins({url::Origin(foo_url)});
+ policy->AddIsolatedOrigins({url::Origin(baz_bar_foo_url)});
EXPECT_TRUE(policy->IsIsolatedOrigin(url::Origin(foo_url)));
EXPECT_TRUE(policy->IsIsolatedOrigin(url::Origin(bar_foo_url)));
diff --git a/chromium/content/common/site_isolation_policy.cc b/chromium/content/common/site_isolation_policy.cc
index 8ee09a9c4f8..0d277b01a89 100644
--- a/chromium/content/common/site_isolation_policy.cc
+++ b/chromium/content/common/site_isolation_policy.cc
@@ -4,10 +4,15 @@
#include "content/common/site_isolation_policy.h"
+#include <string>
+
#include "base/command_line.h"
#include "base/feature_list.h"
+#include "base/metrics/field_trial_params.h"
+#include "base/strings/string_split.h"
#include "content/public/common/content_features.h"
#include "content/public/common/content_switches.h"
+#include "url/gurl.h"
namespace content {
@@ -29,12 +34,43 @@ bool SiteIsolationPolicy::IsTopDocumentIsolationEnabled() {
// static
bool SiteIsolationPolicy::AreIsolatedOriginsEnabled() {
- // TODO(alexmos): This currently assumes that isolated origins are only added
- // via the command-line switch, which may not be true in the future. Remove
- // this function when AreCrossProcessFramesPossible becomes true on Android
- // above.
return base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kIsolateOrigins);
+ switches::kIsolateOrigins) ||
+ base::FeatureList::IsEnabled(features::kIsolateOrigins);
+}
+
+// static
+std::vector<url::Origin> SiteIsolationPolicy::GetIsolatedOrigins() {
+ std::string cmdline_arg =
+ base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
+ switches::kIsolateOrigins);
+ if (!cmdline_arg.empty())
+ return ParseIsolatedOrigins(cmdline_arg);
+
+ if (base::FeatureList::IsEnabled(features::kIsolateOrigins)) {
+ std::string field_trial_arg = base::GetFieldTrialParamValueByFeature(
+ features::kIsolateOrigins,
+ features::kIsolateOriginsFieldTrialParamName);
+ return ParseIsolatedOrigins(field_trial_arg);
+ }
+
+ return std::vector<url::Origin>();
+}
+
+// static
+std::vector<url::Origin> SiteIsolationPolicy::ParseIsolatedOrigins(
+ base::StringPiece arg) {
+ std::vector<base::StringPiece> origin_strings = base::SplitStringPiece(
+ arg, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+
+ std::vector<url::Origin> origins;
+ origins.reserve(origin_strings.size());
+ for (const base::StringPiece& origin_string : origin_strings) {
+ url::Origin origin = url::Origin::Create(GURL(origin_string));
+ if (!origin.unique())
+ origins.push_back(origin);
+ }
+ return origins;
}
} // namespace content
diff --git a/chromium/content/common/site_isolation_policy.h b/chromium/content/common/site_isolation_policy.h
index b097a704f60..44afe7d5c6e 100644
--- a/chromium/content/common/site_isolation_policy.h
+++ b/chromium/content/common/site_isolation_policy.h
@@ -5,9 +5,13 @@
#ifndef CONTENT_COMMON_SITE_ISOLATION_POLICY_H_
#define CONTENT_COMMON_SITE_ISOLATION_POLICY_H_
+#include <vector>
+
+#include "base/gtest_prod_util.h"
#include "base/macros.h"
+#include "base/strings/string_piece_forward.h"
#include "content/common/content_export.h"
-#include "url/gurl.h"
+#include "url/origin.h"
namespace content {
@@ -15,7 +19,7 @@ namespace content {
// site isolation, --site-per-process, and related features.
//
// This is currently static because all these modes are controlled by command-
-// line flags.
+// line flags or field trials.
//
// These methods can be called from any thread.
class CONTENT_EXPORT SiteIsolationPolicy {
@@ -27,14 +31,21 @@ class CONTENT_EXPORT SiteIsolationPolicy {
// different process from the main frame.
static bool IsTopDocumentIsolationEnabled();
- // Returns true if there exist origins that require process isolation. Such
- // origins require a dedicated process, and hence they make cross-process
- // iframes possible.
+ // Returns true if isolated origins feature is enabled.
static bool AreIsolatedOriginsEnabled();
+ // Returns the origins to isolate. See also AreIsolatedOriginsEnabled.
+ // This list applies globally to the whole browser in all profiles.
+ // TODO(lukasza): Make sure this list also includes the origins returned by
+ // ContentBrowserClient::GetOriginsRequiringDedicatedProcess.
+ static std::vector<url::Origin> GetIsolatedOrigins();
+
private:
SiteIsolationPolicy(); // Not instantiable.
+ FRIEND_TEST_ALL_PREFIXES(SiteIsolationPolicyTest, ParseIsolatedOrigins);
+ static std::vector<url::Origin> ParseIsolatedOrigins(base::StringPiece arg);
+
DISALLOW_COPY_AND_ASSIGN(SiteIsolationPolicy);
};
diff --git a/chromium/content/common/site_isolation_policy_unittest.cc b/chromium/content/common/site_isolation_policy_unittest.cc
new file mode 100644
index 00000000000..b3935e68ab7
--- /dev/null
+++ b/chromium/content/common/site_isolation_policy_unittest.cc
@@ -0,0 +1,48 @@
+// 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 "content/common/site_isolation_policy.h"
+
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
+#include "url/origin.h"
+
+namespace content {
+
+// Verifies parsing logic in SiteIsolationPolicy::ParseIsolatedOrigins.
+TEST(SiteIsolationPolicyTest, ParseIsolatedOrigins) {
+ // Invalid and unique origins are not permitted.
+ EXPECT_THAT(SiteIsolationPolicy::ParseIsolatedOrigins("foo"),
+ testing::IsEmpty());
+ EXPECT_THAT(SiteIsolationPolicy::ParseIsolatedOrigins(""),
+ testing::IsEmpty());
+ EXPECT_THAT(SiteIsolationPolicy::ParseIsolatedOrigins("about:blank"),
+ testing::IsEmpty());
+
+ // Single simple, valid origin.
+ EXPECT_THAT(
+ SiteIsolationPolicy::ParseIsolatedOrigins("http://isolated.foo.com"),
+ testing::ElementsAre(
+ url::Origin::Create(GURL("http://isolated.foo.com"))));
+
+ // Multiple comma-separated origins.
+ EXPECT_THAT(
+ SiteIsolationPolicy::ParseIsolatedOrigins(
+ "http://a.com,https://b.com,,https://c.com:8000"),
+ testing::ElementsAre(url::Origin::Create(GURL("http://a.com")),
+ url::Origin::Create(GURL("https://b.com")),
+ url::Origin::Create(GURL("https://c.com:8000"))));
+
+ // ParseIsolatedOrigins should not do any deduplication (that is the job of
+ // ChildProcessSecurityPolicyImpl::AddIsolatedOrigins).
+ EXPECT_THAT(
+ SiteIsolationPolicy::ParseIsolatedOrigins(
+ "https://b.com,https://b.com,https://b.com:1234"),
+ testing::ElementsAre(url::Origin::Create(GURL("https://b.com")),
+ url::Origin::Create(GURL("https://b.com")),
+ url::Origin::Create(GURL("https://b.com:1234"))));
+}
+
+} // namespace content
diff --git a/chromium/content/public/browser/content_browser_client.cc b/chromium/content/public/browser/content_browser_client.cc
index 15a13c10c68..6a264c4692f 100644
--- a/chromium/content/public/browser/content_browser_client.cc
+++ b/chromium/content/public/browser/content_browser_client.cc
@@ -57,7 +57,8 @@ WebContentsViewDelegate* ContentBrowserClient::GetWebContentsViewDelegate(
}
GURL ContentBrowserClient::GetEffectiveURL(BrowserContext* browser_context,
- const GURL& url) {
+ const GURL& url,
+ bool is_isolated_origin) {
return url;
}
diff --git a/chromium/content/public/browser/content_browser_client.h b/chromium/content/public/browser/content_browser_client.h
index f3e94fe40a6..711fa80d0ea 100644
--- a/chromium/content/public/browser/content_browser_client.h
+++ b/chromium/content/public/browser/content_browser_client.h
@@ -210,8 +210,12 @@ class CONTENT_EXPORT ContentBrowserClient {
// Get the effective URL for the given actual URL, to allow an embedder to
// group different url schemes in the same SiteInstance.
+ // |is_isolated_origin| specifies whether |url| corresponds to an origin that
+ // requires process isolation. Certain kinds of effective URLs should be
+ // ignored for such origins.
virtual GURL GetEffectiveURL(BrowserContext* browser_context,
- const GURL& url);
+ const GURL& url,
+ bool is_isolated_origin);
// Returns whether all instances of the specified effective URL should be
// rendered by the same process, rather than using process-per-site-instance.
diff --git a/chromium/content/public/common/content_features.cc b/chromium/content/public/common/content_features.cc
index 66234129de4..2b88e0c7a99 100644
--- a/chromium/content/public/common/content_features.cc
+++ b/chromium/content/public/common/content_features.cc
@@ -413,6 +413,13 @@ const base::Feature kWebUsb{"WebUSB", base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kImageCaptureAPI{"ImageCaptureAPI",
base::FEATURE_ENABLED_BY_DEFAULT};
+// Alternative to switches::kIsolateOrigins, for turning on origin isolation.
+// List of origins to isolate has to be specified via
+// kIsolateOriginsFieldTrialParamName.
+const base::Feature kIsolateOrigins{"IsolateOrigins",
+ base::FEATURE_DISABLED_BY_DEFAULT};
+const char kIsolateOriginsFieldTrialParamName[] = "OriginsList";
+
const base::Feature kKeepAliveRendererForKeepaliveRequests{
"KeepAliveRendererForKeepaliveRequests", base::FEATURE_ENABLED_BY_DEFAULT};
diff --git a/chromium/content/public/common/content_features.h b/chromium/content/public/common/content_features.h
index 3e1ebf8f7a7..470b6607c3a 100644
--- a/chromium/content/public/common/content_features.h
+++ b/chromium/content/public/common/content_features.h
@@ -42,6 +42,8 @@ CONTENT_EXPORT extern const base::Feature kGamepadExtensions;
CONTENT_EXPORT extern const base::Feature kGuestViewCrossProcessFrames;
CONTENT_EXPORT extern const base::Feature kHeapCompaction;
CONTENT_EXPORT extern const base::Feature kImageCaptureAPI;
+CONTENT_EXPORT extern const base::Feature kIsolateOrigins;
+CONTENT_EXPORT extern const char kIsolateOriginsFieldTrialParamName[];
CONTENT_EXPORT extern const base::Feature
kKeepAliveRendererForKeepaliveRequests;
CONTENT_EXPORT extern const base::Feature kLazyInitializeMediaControls;
diff --git a/chromium/content/test/BUILD.gn b/chromium/content/test/BUILD.gn
index 9cebf576e4a..2b12a2416aa 100644
--- a/chromium/content/test/BUILD.gn
+++ b/chromium/content/test/BUILD.gn
@@ -1501,6 +1501,7 @@ test("content_unittests") {
"../common/sandbox_mac_unittest_helper.mm",
"../common/service_manager/service_manager_connection_impl_unittest.cc",
"../common/service_worker/service_worker_utils_unittest.cc",
+ "../common/site_isolation_policy_unittest.cc",
"../common/throttling_url_loader_unittest.cc",
"../common/unique_name_helper_unittest.cc",
"../common/webplugininfo_unittest.cc",
diff --git a/chromium/extensions/browser/api/media_perception_private/conversion_utils.cc b/chromium/extensions/browser/api/media_perception_private/conversion_utils.cc
index 8ea457ea397..f8849a4b051 100644
--- a/chromium/extensions/browser/api/media_perception_private/conversion_utils.cc
+++ b/chromium/extensions/browser/api/media_perception_private/conversion_utils.cc
@@ -77,6 +77,8 @@ EntityType EntityTypeProtoToIdl(const mri::Entity& entity) {
return ENTITY_TYPE_PERSON;
case mri::Entity::MOTION_REGION:
return ENTITY_TYPE_MOTION_REGION;
+ case mri::Entity::LABELED_REGION:
+ return ENTITY_TYPE_LABELED_REGION;
case mri::Entity::UNSPECIFIED:
return ENTITY_TYPE_UNSPECIFIED;
}
@@ -100,9 +102,29 @@ Entity EntityProtoToIdl(const mri::Entity& entity) {
if (entity.has_depth())
entity_result.depth = DistanceProtoToIdl(entity.depth());
+ if (entity.has_label())
+ entity_result.entity_label = std::make_unique<std::string>(entity.label());
+
return entity_result;
}
+PacketLatency PacketLatencyProtoToIdl(
+ const mri::PacketLatency& packet_latency) {
+ PacketLatency packet_latency_result;
+
+ if (packet_latency.has_label()) {
+ packet_latency_result.packet_label =
+ std::make_unique<std::string>(packet_latency.label());
+ }
+
+ if (packet_latency.has_latency_usec()) {
+ packet_latency_result.latency_usec =
+ std::make_unique<int>(packet_latency.latency_usec());
+ }
+
+ return packet_latency_result;
+}
+
FramePerception FramePerceptionProtoToIdl(
const mri::FramePerception& frame_perception) {
FramePerception frame_perception_result;
@@ -127,6 +149,14 @@ FramePerception FramePerceptionProtoToIdl(
for (const auto& entity : frame_perception.entity())
frame_perception_result.entities->emplace_back(EntityProtoToIdl(entity));
}
+ if (frame_perception.packet_latency_size() > 0) {
+ frame_perception_result.packet_latency =
+ std::make_unique<std::vector<PacketLatency>>();
+ for (const auto& packet_latency : frame_perception.packet_latency()) {
+ frame_perception_result.packet_latency->emplace_back(
+ PacketLatencyProtoToIdl(packet_latency));
+ }
+ }
return frame_perception_result;
}
@@ -223,6 +253,24 @@ mri::State::Status StateStatusIdlToProto(const State& state) {
return mri::State::STATUS_UNSPECIFIED;
}
+void VideoStreamParamIdlToProto(mri::VideoStreamParam* param_result,
+ const VideoStreamParam& param) {
+ if (param_result == nullptr)
+ return;
+
+ if (param.id)
+ param_result->set_id(*param.id);
+
+ if (param.width)
+ param_result->set_width(*param.width);
+
+ if (param.height)
+ param_result->set_height(*param.height);
+
+ if (param.frame_rate)
+ param_result->set_frame_rate(*param.frame_rate);
+}
+
} // namespace
State StateProtoToIdl(const mri::State& state) {
@@ -243,6 +291,15 @@ mri::State StateIdlToProto(const State& state) {
if (state.device_context)
state_result.set_device_context(*state.device_context);
+ if (state.video_stream_param && state.video_stream_param.get() != nullptr) {
+ for (size_t i = 0; i < state.video_stream_param.get()->size(); ++i) {
+ mri::VideoStreamParam* video_stream_param_result =
+ state_result.add_video_stream_param();
+ VideoStreamParamIdlToProto(video_stream_param_result,
+ state.video_stream_param.get()->at(i));
+ }
+ }
+
return state_result;
}
diff --git a/chromium/extensions/browser/api/media_perception_private/conversion_utils_unittest.cc b/chromium/extensions/browser/api/media_perception_private/conversion_utils_unittest.cc
index 5bf994a3b65..9230cf1d891 100644
--- a/chromium/extensions/browser/api/media_perception_private/conversion_utils_unittest.cc
+++ b/chromium/extensions/browser/api/media_perception_private/conversion_utils_unittest.cc
@@ -15,6 +15,29 @@ namespace extensions {
namespace {
const char kTestDeviceContext[] = "Video camera";
+const char kFakePacketLabel1[] = "Packet1";
+const char kFakePacketLabel3[] = "Packet3";
+const char kFakeEntityLabel3[] = "Region3";
+const char kVideoStreamIdForFaceDetection[] = "FaceDetection";
+const char kVideoStreamIdForVideoCapture[] = "VideoCapture";
+
+const int kVideoStreamWidthForFaceDetection = 1280;
+const int kVideoStreamHeightForFaceDetection = 720;
+const int kVideoStreamFrameRateForFaceDetection = 30;
+const int kVideoStreamWidthForVideoCapture = 640;
+const int kVideoStreamHeightForVideoCapture = 360;
+const int kVideoStreamFrameRateForVideoCapture = 5;
+
+void InitializeVideoStreamParam(media_perception::VideoStreamParam& param,
+ const std::string& id,
+ int width,
+ int height,
+ int frame_rate) {
+ param.id = std::make_unique<std::string>(id);
+ param.width = std::make_unique<int>(width);
+ param.height = std::make_unique<int>(height);
+ param.frame_rate = std::make_unique<int>(frame_rate);
+}
void InitializeFakeFramePerception(const int index,
mri::FramePerception* frame_perception) {
@@ -23,6 +46,20 @@ void InitializeFakeFramePerception(const int index,
frame_perception->set_frame_height_in_px(4);
frame_perception->set_timestamp(5);
+ // Add a couple fake packet latency to the frame perception.
+ mri::PacketLatency* packet_latency_one =
+ frame_perception->add_packet_latency();
+ packet_latency_one->set_label(kFakePacketLabel1);
+ packet_latency_one->set_latency_usec(10011);
+
+ mri::PacketLatency* packet_latency_two =
+ frame_perception->add_packet_latency();
+ packet_latency_two->set_latency_usec(20011);
+
+ mri::PacketLatency* packet_latency_three =
+ frame_perception->add_packet_latency();
+ packet_latency_three->set_label(kFakePacketLabel3);
+
// Add a couple fake entities to the frame perception. Note: PERSON
// EntityType is currently unused.
mri::Entity* entity_one = frame_perception->add_entity();
@@ -50,6 +87,10 @@ void InitializeFakeFramePerception(const int index,
bounding_box_two->mutable_top_left()->set_x(14);
bounding_box_two->mutable_top_left()->set_y(15);
bounding_box_two->set_normalized(true);
+
+ mri::Entity* entity_three = frame_perception->add_entity();
+ entity_three->set_type(mri::Entity::LABELED_REGION);
+ entity_three->set_label(kFakeEntityLabel3);
}
void ValidateFramePerceptionResult(
@@ -64,7 +105,25 @@ void ValidateFramePerceptionResult(
ASSERT_TRUE(frame_perception_result.timestamp);
EXPECT_EQ(*frame_perception_result.timestamp, 5);
- ASSERT_EQ(2u, frame_perception_result.entities->size());
+ // Validate packet latency.
+ ASSERT_EQ(3u, frame_perception_result.packet_latency->size());
+ const media_perception::PacketLatency& packet_latency_one =
+ frame_perception_result.packet_latency->at(0);
+ EXPECT_EQ(*packet_latency_one.packet_label, kFakePacketLabel1);
+ EXPECT_EQ(*packet_latency_one.latency_usec, 10011);
+
+ const media_perception::PacketLatency& packet_latency_two =
+ frame_perception_result.packet_latency->at(1);
+ EXPECT_FALSE(packet_latency_two.packet_label);
+ EXPECT_EQ(*packet_latency_two.latency_usec, 20011);
+
+ const media_perception::PacketLatency& packet_latency_three =
+ frame_perception_result.packet_latency->at(2);
+ EXPECT_EQ(*packet_latency_three.packet_label, kFakePacketLabel3);
+ EXPECT_FALSE(packet_latency_three.latency_usec);
+
+ // Validate entities.
+ ASSERT_EQ(3u, frame_perception_result.entities->size());
const media_perception::Entity& entity_result_one =
frame_perception_result.entities->at(0);
ASSERT_TRUE(entity_result_one.id);
@@ -111,6 +170,13 @@ void ValidateFramePerceptionResult(
EXPECT_EQ(*bounding_box_result_two->top_left->y, 15);
EXPECT_FALSE(bounding_box_result_two->bottom_right);
EXPECT_TRUE(*bounding_box_result_two->normalized);
+
+ const media_perception::Entity& entity_result_three =
+ frame_perception_result.entities->at(2);
+ ASSERT_TRUE(entity_result_three.entity_label);
+ EXPECT_EQ(*entity_result_three.entity_label, kFakeEntityLabel3);
+ EXPECT_EQ(entity_result_three.type,
+ media_perception::ENTITY_TYPE_LABELED_REGION);
}
void InitializeFakeImageFrameData(mri::ImageFrame* image_frame) {
@@ -226,4 +292,41 @@ TEST(MediaPerceptionConversionUtilsTest, StateIdlToProto) {
EXPECT_EQ(state_proto.status(), mri::State::RESTARTING);
}
+TEST(MediaPerceptionConversionUtilsTest, StateIdlToProtoWithVideoStreamParam) {
+ media_perception::State state;
+ state.status = media_perception::STATUS_RUNNING;
+ state.video_stream_param.reset(
+ new std::vector<media_perception::VideoStreamParam>(2));
+ InitializeVideoStreamParam(
+ state.video_stream_param.get()->at(0), kVideoStreamIdForFaceDetection,
+ kVideoStreamWidthForFaceDetection, kVideoStreamHeightForFaceDetection,
+ kVideoStreamFrameRateForFaceDetection);
+
+ InitializeVideoStreamParam(
+ state.video_stream_param.get()->at(1), kVideoStreamIdForVideoCapture,
+ kVideoStreamWidthForVideoCapture, kVideoStreamHeightForVideoCapture,
+ kVideoStreamFrameRateForVideoCapture);
+
+ mri::State state_proto = StateIdlToProto(state);
+ EXPECT_EQ(state_proto.status(), mri::State::RUNNING);
+
+ EXPECT_EQ(kVideoStreamIdForFaceDetection,
+ state_proto.video_stream_param(0).id());
+ EXPECT_EQ(kVideoStreamWidthForFaceDetection,
+ state_proto.video_stream_param(0).width());
+ EXPECT_EQ(kVideoStreamHeightForFaceDetection,
+ state_proto.video_stream_param(0).height());
+ EXPECT_EQ(kVideoStreamFrameRateForFaceDetection,
+ state_proto.video_stream_param(0).frame_rate());
+
+ EXPECT_EQ(kVideoStreamIdForVideoCapture,
+ state_proto.video_stream_param(1).id());
+ EXPECT_EQ(kVideoStreamWidthForVideoCapture,
+ state_proto.video_stream_param(1).width());
+ EXPECT_EQ(kVideoStreamHeightForVideoCapture,
+ state_proto.video_stream_param(1).height());
+ EXPECT_EQ(kVideoStreamFrameRateForVideoCapture,
+ state_proto.video_stream_param(1).frame_rate());
+}
+
} // namespace extensions
diff --git a/chromium/extensions/browser/api/media_perception_private/media_perception_private_api.cc b/chromium/extensions/browser/api/media_perception_private/media_perception_private_api.cc
index 4e5e07e6ff5..10f562fe1f8 100644
--- a/chromium/extensions/browser/api/media_perception_private/media_perception_private_api.cc
+++ b/chromium/extensions/browser/api/media_perception_private/media_perception_private_api.cc
@@ -52,6 +52,14 @@ MediaPerceptionPrivateSetStateFunction::Run() {
return RespondNow(
Error("Only provide deviceContext with SetState RUNNING."));
}
+
+ // Check that video stream parameters are only provided with SetState RUNNING.
+ if (params->state.status != media_perception::STATUS_RUNNING &&
+ params->state.video_stream_param.get() != nullptr) {
+ return RespondNow(
+ Error("SetState: status must be RUNNING to set videoStreamParam."));
+ }
+
MediaPerceptionAPIManager* manager =
MediaPerceptionAPIManager::Get(browser_context());
manager->SetState(
diff --git a/chromium/extensions/browser/content_hash_reader.cc b/chromium/extensions/browser/content_hash_reader.cc
index c3fbbd17601..039fa53e9b3 100644
--- a/chromium/extensions/browser/content_hash_reader.cc
+++ b/chromium/extensions/browser/content_hash_reader.cc
@@ -73,15 +73,12 @@ bool ContentHashReader::Init() {
have_computed_hashes_ = true;
- // Extensions sometimes request resources that do not have an entry in
- // verified_contents.json. This can happen when an extension sends an XHR to a
- // resource.
if (!verified_contents.HasTreeHashRoot(relative_path_)) {
- // Making a request to a non-existent resource should not result in
- // content verification failure.
- if (!base::PathExists(extension_root_.Append(relative_path_)))
- file_missing_from_verified_contents_ = true;
-
+ // Extension is requesting a non-existent resource that does not have an
+ // entry in verified_contents.json. This can happen when an extension sends
+ // XHR to its non-existent resource. This should not result in content
+ // verification failure.
+ file_missing_from_verified_contents_ = true;
return false;
}
diff --git a/chromium/extensions/browser/content_verify_job_unittest.cc b/chromium/extensions/browser/content_verify_job_unittest.cc
index e9880801305..dad557f68e2 100644
--- a/chromium/extensions/browser/content_verify_job_unittest.cc
+++ b/chromium/extensions/browser/content_verify_job_unittest.cc
@@ -187,26 +187,6 @@ TEST_F(ContentVerifyJobUnittest, DeletedAndMissingFiles) {
RunContentVerifyJob(*extension.get(), non_existent_resource_path,
empty_contents));
}
-
- {
- // Now create a resource foo.js which exists on disk but is not in the
- // extension's verified_contents.json. Verification should result in
- // NO_HASHES_FOR_FILE since the extension is trying to load a file the
- // extension should not have.
- const base::FilePath::CharType kUnexpectedResource[] =
- FILE_PATH_LITERAL("foo.js");
- base::FilePath unexpected_resource_path(kUnexpectedResource);
-
- base::FilePath full_path =
- unzipped_path.Append(base::FilePath(unexpected_resource_path));
- base::WriteFile(full_path, "42", sizeof("42"));
-
- std::string contents;
- base::ReadFileToString(full_path, &contents);
- EXPECT_EQ(ContentVerifyJob::NO_HASHES_FOR_FILE,
- RunContentVerifyJob(*extension.get(), unexpected_resource_path,
- contents));
- }
}
// Tests that content modification causes content verification failure.
diff --git a/chromium/extensions/common/api/media_perception_private.idl b/chromium/extensions/common/api/media_perception_private.idl
index 64325bca62e..4ebda135b54 100644
--- a/chromium/extensions/common/api/media_perception_private.idl
+++ b/chromium/extensions/common/api/media_perception_private.idl
@@ -54,6 +54,21 @@ namespace mediaPerceptionPrivate {
SERVICE_BUSY_LAUNCHING
};
+ // The parameters for processing a particular video stream.
+ dictionary VideoStreamParam {
+ // Identifies the video stream described by these parameters.
+ DOMString? id;
+
+ // Frame width in pixels.
+ long? width;
+
+ // Frame height in pixels.
+ long? height;
+
+ // The frame rate at which this video stream would be processed.
+ long? frameRate;
+ };
+
// The system and configuration state of the analytics process.
dictionary State {
Status status;
@@ -66,6 +81,10 @@ namespace mediaPerceptionPrivate {
// Return parameter for $(ref:setState) or $(ref:getState) that
// specifies the error type for failure cases.
ServiceError? serviceError;
+
+ // A list of video streams processed by the analytics process. To set this
+ // parameter, status has to be <code>RUNNING</code>.
+ VideoStreamParam[]? videoStreamParam;
};
dictionary Point {
@@ -104,7 +123,8 @@ namespace mediaPerceptionPrivate {
UNSPECIFIED,
FACE,
PERSON,
- MOTION_REGION
+ MOTION_REGION,
+ LABELED_REGION
};
dictionary Entity {
@@ -114,6 +134,9 @@ namespace mediaPerceptionPrivate {
EntityType? type;
+ // Label for this entity.
+ DOMString? entityLabel;
+
// Minimum box which captures entire detected entity.
BoundingBox? boundingBox;
@@ -124,6 +147,14 @@ namespace mediaPerceptionPrivate {
Distance? depth;
};
+ dictionary PacketLatency {
+ // Label for this packet.
+ DOMString? packetLabel;
+
+ // Packet processing latency in microseconds.
+ long? latencyUsec;
+ };
+
// The set of computer vision metadata for an image frame.
dictionary FramePerception {
long? frameId;
@@ -137,6 +168,9 @@ namespace mediaPerceptionPrivate {
// The list of entities detected in this frame.
Entity[]? entities;
+
+ // Processing latency for a list of packets.
+ PacketLatency[]? packetLatency;
};
dictionary MediaPerception {
diff --git a/chromium/extensions/strings/extensions_strings_ar.xtb b/chromium/extensions/strings/extensions_strings_ar.xtb
index 9b8a78ecd6d..e9c37101ade 100644
--- a/chromium/extensions/strings/extensions_strings_ar.xtb
+++ b/chromium/extensions/strings/extensions_strings_ar.xtb
@@ -11,7 +11,7 @@
<translation id="2159915644201199628">تعذر ÙÙƒ تشÙير الصورة: '<ph name="IMAGE_NAME" />'</translation>
<translation id="2350172092385603347">â€ØªÙ… استخدام التعريب، ولكن لم يتم تحديد default_locale ÙÙŠ البيان.</translation>
<translation id="2753617847762399167">مسار غير قانوني (أساسي أو منتسب مع '..'): '<ph name="IMAGE_PATH" />'</translation>
-<translation id="27822970480436970">أخÙقت هذه الإضاÙØ© ÙÙŠ تعديل طلب الشبكة نظرًا لتعارض التعديل مع إضاÙØ© أخرى.</translation>
+<translation id="27822970480436970">تعذّرت هذه الإضاÙØ© ÙÙŠ تعديل طلب الشبكة نظرًا لتعارض التعديل مع إضاÙØ© أخرى.</translation>
<translation id="2857834222104759979">مل٠البيان غير صالح.</translation>
<translation id="2903070246402204397">تم حظر <ph name="EXTENSION_NAME" /> (معر٠الإضاÙØ© "<ph name="EXTENSION_ID" />") من Ù‚Ùبل المشرÙ. <ph name="ADMIN_INFO" /></translation>
<translation id="2988488679308982380">تعذر تثبيت الحزمة: "<ph name="ERROR_CODE" />"</translation>
@@ -48,14 +48,14 @@
<translation id="7581279002575751816">â€Ø§Ù„مكونات الإضاÙية لـ NPAPI غير متواÙقة.</translation>
<translation id="7972881773422714442">الخيارات: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation>
<translation id="8035920974645200807">الكاميرا الأمامية للمستخدم</translation>
-<translation id="8047248493720652249">أخÙقت هذه الإضاÙØ© ÙÙŠ تسمية التنزيل "<ph name="ATTEMPTED_FILENAME" />" نظرًا لأن هناك إضاÙØ© أخرى (<ph name="EXTENSION_NAME" />) قد حددت اسم مل٠آخر "<ph name="ACTUAL_FILENAME" />".</translation>
+<translation id="8047248493720652249">تعذّرت هذه الإضاÙØ© ÙÙŠ تسمية التنزيل "<ph name="ATTEMPTED_FILENAME" />" نظرًا لأن هناك إضاÙØ© أخرى (<ph name="EXTENSION_NAME" />) قد حددت اسم مل٠آخر "<ph name="ACTUAL_FILENAME" />".</translation>
<translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> من <ph name="VENDOR_NAME" /></translation>
-<translation id="8341840687457896278">أخÙقت هذه الإضاÙØ© ÙÙŠ تقديم بيانات الاعتماد لطلب الشبكة، نظرًا لتقديم بيانات اعتماد مختلÙØ© بواسطة إضاÙØ© أخرى (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8341840687457896278">تعذّرت هذه الإضاÙØ© ÙÙŠ تقديم بيانات الاعتماد لطلب الشبكة، نظرًا لتقديم بيانات اعتماد مختلÙØ© بواسطة إضاÙØ© أخرى (<ph name="EXTENSION_NAME" />).</translation>
<translation id="8602184400052594090">مل٠البيان Ù…Ùقود أو غير قابل للقراءة.</translation>
<translation id="8636666366616799973">الحزمة غير صالحة. التÙاصيل: "<ph name="ERROR_MESSAGE" />".</translation>
-<translation id="8670869118777164560">أخÙقت الإضاÙØ© ÙÙŠ إعادة توجيه طلب الشبكة إلى <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> نظرًا لإعادة توجيهها بواسطة إضاÙØ© أخرى (<ph name="EXTENSION_NAME" />) إلى <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
+<translation id="8670869118777164560">تعذّرت الإضاÙØ© ÙÙŠ إعادة توجيه طلب الشبكة إلى <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> نظرًا لإعادة توجيهها بواسطة إضاÙØ© أخرى (<ph name="EXTENSION_NAME" />) إلى <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
<translation id="8712265948125780616">أداة ÙÙƒ ضغط الإضاÙات</translation>
<translation id="8761756413268424715">يطلب تطبيق "<ph name="APP_NAME" />" الدخول إلى جهاز من أجهزتك:</translation>
-<translation id="8825366169884721447">أخÙقت الإضاÙØ© ÙÙŠ تعديل عنوان الطلب "<ph name="HEADER_NAME" />" لأحد طلبات الشبكة نظرًا لتعارض التعديل مع إضاÙØ© أخرى (<ph name="EXTENSION_NAME" />).</translation>
-<translation id="9111791539553342076">أخÙقت الإضاÙØ© ÙÙŠ تعديل عنوان الاستجابة "<ph name="HEADER_NAME" />" لأحد طلبات الشبكة نظرًا لتعارض التعديل مع إضاÙØ© أخرى (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8825366169884721447">تعذّرت الإضاÙØ© ÙÙŠ تعديل عنوان الطلب "<ph name="HEADER_NAME" />" لأحد طلبات الشبكة نظرًا لتعارض التعديل مع إضاÙØ© أخرى (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="9111791539553342076">تعذّرت الإضاÙØ© ÙÙŠ تعديل عنوان الاستجابة "<ph name="HEADER_NAME" />" لأحد طلبات الشبكة نظرًا لتعارض التعديل مع إضاÙØ© أخرى (<ph name="EXTENSION_NAME" />).</translation>
</translationbundle> \ No newline at end of file
diff --git a/chromium/gpu/command_buffer/service/gles2_cmd_decoder.cc b/chromium/gpu/command_buffer/service/gles2_cmd_decoder.cc
index a5446a0059a..acc9e6946f0 100644
--- a/chromium/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/chromium/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -2975,8 +2975,9 @@ bool BackRenderbuffer::AllocateStorage(const gfx::Size& size,
size.height());
} else {
// TODO(kainino): This path will not perform RegenerateRenderbufferIfNeeded
- // on devices where multisample_renderbuffer_resize_emulation is needed.
- // Thus any code using this path (pepper?) could encounter issues on those
+ // on devices where multisample_renderbuffer_resize_emulation or
+ // depth_stencil_renderbuffer_resize_emulation is needed. Thus any code
+ // using this path (pepper?) could encounter issues on those
// devices. RenderbufferStorageMultisampleWithWorkaround should be used
// instead, but can only be used if BackRenderbuffer tracks its
// renderbuffers in the renderbuffer manager instead of manually.
@@ -8552,11 +8553,7 @@ void GLES2DecoderImpl::RenderbufferStorageMultisampleHelper(
bool GLES2DecoderImpl::RegenerateRenderbufferIfNeeded(
Renderbuffer* renderbuffer) {
- if (!workarounds().multisample_renderbuffer_resize_emulation) {
- return false;
- }
-
- if (!renderbuffer->RegenerateAndBindBackingObjectIfNeeded()) {
+ if (!renderbuffer->RegenerateAndBindBackingObjectIfNeeded(workarounds())) {
return false;
}
diff --git a/chromium/gpu/command_buffer/service/renderbuffer_manager.cc b/chromium/gpu/command_buffer/service/renderbuffer_manager.cc
index ecdb81af79e..722330a3ee2 100644
--- a/chromium/gpu/command_buffer/service/renderbuffer_manager.cc
+++ b/chromium/gpu/command_buffer/service/renderbuffer_manager.cc
@@ -18,6 +18,8 @@
#include "gpu/command_buffer/service/framebuffer_manager.h"
#include "gpu/command_buffer/service/gles2_cmd_decoder.h"
#include "gpu/command_buffer/service/memory_tracking.h"
+#include "gpu/command_buffer/service/texture_manager.h"
+#include "gpu/config/gpu_driver_bug_workarounds.h"
#include "ui/gl/gl_implementation.h"
#include "ui/gl/gl_version_info.h"
#include "ui/gl/trace_util.h"
@@ -137,9 +139,29 @@ Renderbuffer::Renderbuffer(RenderbufferManager* manager,
manager_->StartTracking(this);
}
-bool Renderbuffer::RegenerateAndBindBackingObjectIfNeeded() {
- if (!allocated_ || !has_been_bound_ || samples_ == 0) {
- // Not needed - won't trigger bug (multisample_renderbuffer_resize_broken).
+bool Renderbuffer::RegenerateAndBindBackingObjectIfNeeded(
+ const GpuDriverBugWorkarounds& workarounds) {
+ // There are two workarounds which need this code path:
+ // depth_stencil_renderbuffer_resize_emulation
+ // multisample_renderbuffer_resize_emulation
+ bool multisample_workaround =
+ workarounds.multisample_renderbuffer_resize_emulation;
+ bool depth_stencil_workaround =
+ workarounds.depth_stencil_renderbuffer_resize_emulation;
+ if (!multisample_workaround && !depth_stencil_workaround) {
+ return false;
+ }
+
+ if (!allocated_ || !has_been_bound_) {
+ return false;
+ }
+
+ bool workaround_needed = (multisample_workaround && samples_ > 0) ||
+ (depth_stencil_workaround &&
+ TextureManager::ExtractFormatFromStorageFormat(
+ internal_format_) == GL_DEPTH_STENCIL);
+
+ if (!workaround_needed) {
return false;
}
diff --git a/chromium/gpu/command_buffer/service/renderbuffer_manager.h b/chromium/gpu/command_buffer/service/renderbuffer_manager.h
index e87b1303cd0..72373f7adb4 100644
--- a/chromium/gpu/command_buffer/service/renderbuffer_manager.h
+++ b/chromium/gpu/command_buffer/service/renderbuffer_manager.h
@@ -20,6 +20,8 @@
#include "gpu/gpu_export.h"
namespace gpu {
+class GpuDriverBugWorkarounds;
+
namespace gles2 {
class FeatureInfo;
@@ -76,7 +78,8 @@ class GPU_EXPORT Renderbuffer
// Regenerates the object backing this client_id, creating a new service_id.
// Also reattaches any framebuffers using this renderbuffer.
- bool RegenerateAndBindBackingObjectIfNeeded();
+ bool RegenerateAndBindBackingObjectIfNeeded(
+ const GpuDriverBugWorkarounds& workarounds);
void AddFramebufferAttachmentPoint(Framebuffer* framebuffer,
GLenum attachment);
diff --git a/chromium/gpu/config/gpu_driver_bug_list.json b/chromium/gpu/config/gpu_driver_bug_list.json
index cac9919f8a2..77f9e48c970 100644
--- a/chromium/gpu/config/gpu_driver_bug_list.json
+++ b/chromium/gpu/config/gpu_driver_bug_list.json
@@ -1,6 +1,6 @@
{
"name": "gpu driver bug list",
- "version": "10.33",
+ "version": "10.34",
"entries": [
{
"id": 1,
@@ -2641,6 +2641,23 @@
"features": [
"dont_initialize_uninitialized_locals"
]
+ },
+ {
+ "id": 250,
+ "description": "Depth/stencil renderbuffers can't be resized on NVIDIA on macOS 10.13",
+ "cr_bugs": [775202],
+ "os": {
+ "type": "macosx",
+ "version": {
+ "op": ">=",
+ "value": "10.13.0"
+ }
+ },
+ "vendor_id": "0x10de",
+ "multi_gpu_category": "any",
+ "features": [
+ "depth_stencil_renderbuffer_resize_emulation"
+ ]
}
],
"comment": [
diff --git a/chromium/gpu/config/gpu_driver_bug_workaround_type.h b/chromium/gpu/config/gpu_driver_bug_workaround_type.h
index ce8b6ef2c8b..92ad1932c4d 100644
--- a/chromium/gpu/config/gpu_driver_bug_workaround_type.h
+++ b/chromium/gpu/config/gpu_driver_bug_workaround_type.h
@@ -39,6 +39,8 @@
count_all_in_varyings_packing) \
GPU_OP(DECODE_ENCODE_SRGB_FOR_GENERATEMIPMAP, \
decode_encode_srgb_for_generatemipmap) \
+ GPU_OP(DEPTH_STENCIL_RENDERBUFFER_RESIZE_EMULATION, \
+ depth_stencil_renderbuffer_resize_emulation) \
GPU_OP(DISABLE_ACCELERATED_VPX_DECODE, \
disable_accelerated_vpx_decode) \
GPU_OP(DISABLE_ANGLE_INSTANCED_ARRAYS, \
diff --git a/chromium/gpu/config/software_rendering_list.json b/chromium/gpu/config/software_rendering_list.json
index 1eb82b74bee..8fa23ed0aa1 100644
--- a/chromium/gpu/config/software_rendering_list.json
+++ b/chromium/gpu/config/software_rendering_list.json
@@ -1011,12 +1011,13 @@
{
"id": 112,
"description": "Intel HD 3000 driver crashes frequently on Mac",
- "cr_bugs": [592130],
+ "cr_bugs": [592130, 661596],
"os": {
"type": "macosx"
},
"vendor_id": "0x8086",
"device_id": ["0x0116", "0x0126"],
+ "multi_gpu_category": "any",
"features": [
"all"
]
diff --git a/chromium/media/audio/audio_input_device.cc b/chromium/media/audio/audio_input_device.cc
index 290102d4b7f..9b8ccfa6bcf 100644
--- a/chromium/media/audio/audio_input_device.cc
+++ b/chromium/media/audio/audio_input_device.cc
@@ -104,6 +104,14 @@ AudioInputDevice::AudioInputDevice(
void AudioInputDevice::Initialize(const AudioParameters& params,
CaptureCallback* callback,
int session_id) {
+ task_runner()->PostTask(
+ FROM_HERE, base::BindOnce(&AudioInputDevice::InitializeOnIOThread, this,
+ params, callback, session_id));
+}
+
+void AudioInputDevice::InitializeOnIOThread(const AudioParameters& params,
+ CaptureCallback* callback,
+ int session_id) {
DCHECK(params.IsValid());
DCHECK(!callback_);
DCHECK_EQ(0, session_id_);
@@ -113,7 +121,6 @@ void AudioInputDevice::Initialize(const AudioParameters& params,
}
void AudioInputDevice::Start() {
- DCHECK(callback_) << "Initialize hasn't been called";
DVLOG(1) << "Start()";
task_runner()->PostTask(
FROM_HERE, base::BindOnce(&AudioInputDevice::StartUpOnIOThread, this));
@@ -275,6 +282,7 @@ AudioInputDevice::~AudioInputDevice() {
void AudioInputDevice::StartUpOnIOThread() {
DCHECK(task_runner()->BelongsToCurrentThread());
+ DCHECK(callback_) << "Initialize hasn't been called";
// Make sure we don't call Start() more than once.
if (state_ != IDLE)
diff --git a/chromium/media/audio/audio_input_device.h b/chromium/media/audio/audio_input_device.h
index 20c906cc5ce..9e99b70b5fd 100644
--- a/chromium/media/audio/audio_input_device.h
+++ b/chromium/media/audio/audio_input_device.h
@@ -124,6 +124,9 @@ class MEDIA_EXPORT AudioInputDevice : public AudioCapturerSource,
// The following methods are tasks posted on the IO thread that needs to
// be executed on that thread. They interact with AudioInputMessageFilter and
// sends IPC messages on that thread.
+ void InitializeOnIOThread(const AudioParameters& params,
+ CaptureCallback* callback,
+ int session_id);
void StartUpOnIOThread();
void ShutDownOnIOThread();
void SetVolumeOnIOThread(double volume);
diff --git a/chromium/media/audio/audio_output_device.cc b/chromium/media/audio/audio_output_device.cc
index 336f040c650..3789f45a7e5 100644
--- a/chromium/media/audio/audio_output_device.cc
+++ b/chromium/media/audio/audio_output_device.cc
@@ -88,6 +88,13 @@ AudioOutputDevice::AudioOutputDevice(
void AudioOutputDevice::Initialize(const AudioParameters& params,
RenderCallback* callback) {
+ task_runner()->PostTask(
+ FROM_HERE, base::BindOnce(&AudioOutputDevice::InitializeOnIOThread, this,
+ params, callback));
+}
+
+void AudioOutputDevice::InitializeOnIOThread(const AudioParameters& params,
+ RenderCallback* callback) {
DCHECK(!callback_) << "Calling Initialize() twice?";
DCHECK(params.IsValid());
audio_parameters_ = params;
@@ -114,10 +121,8 @@ void AudioOutputDevice::RequestDeviceAuthorization() {
}
void AudioOutputDevice::Start() {
- DCHECK(callback_) << "Initialize hasn't been called";
- task_runner()->PostTask(FROM_HERE,
- base::Bind(&AudioOutputDevice::CreateStreamOnIOThread, this,
- audio_parameters_));
+ task_runner()->PostTask(
+ FROM_HERE, base::Bind(&AudioOutputDevice::CreateStreamOnIOThread, this));
}
void AudioOutputDevice::Stop() {
@@ -196,8 +201,9 @@ void AudioOutputDevice::RequestDeviceAuthorizationOnIOThread() {
}
}
-void AudioOutputDevice::CreateStreamOnIOThread(const AudioParameters& params) {
+void AudioOutputDevice::CreateStreamOnIOThread() {
DCHECK(task_runner()->BelongsToCurrentThread());
+ DCHECK(callback_) << "Initialize hasn't been called";
switch (state_) {
case IPC_CLOSED:
if (callback_)
@@ -208,7 +214,7 @@ void AudioOutputDevice::CreateStreamOnIOThread(const AudioParameters& params) {
if (did_receive_auth_.IsSignaled() && device_id_.empty() &&
security_origin_.unique()) {
state_ = CREATING_STREAM;
- ipc_->CreateStream(this, params);
+ ipc_->CreateStream(this, audio_parameters_);
} else {
RequestDeviceAuthorizationOnIOThread();
start_on_authorized_ = true;
@@ -221,7 +227,7 @@ void AudioOutputDevice::CreateStreamOnIOThread(const AudioParameters& params) {
case AUTHORIZED:
state_ = CREATING_STREAM;
- ipc_->CreateStream(this, params);
+ ipc_->CreateStream(this, audio_parameters_);
start_on_authorized_ = false;
break;
@@ -371,7 +377,7 @@ void AudioOutputDevice::OnDeviceAuthorized(
did_receive_auth_.Signal();
}
if (start_on_authorized_)
- CreateStreamOnIOThread(audio_parameters_);
+ CreateStreamOnIOThread();
} else {
// Closing IPC forces a Signal(), so no clients are locked waiting
// indefinitely after this method returns.
diff --git a/chromium/media/audio/audio_output_device.h b/chromium/media/audio/audio_output_device.h
index 47d16f8abf2..c6755a8ec6c 100644
--- a/chromium/media/audio/audio_output_device.h
+++ b/chromium/media/audio/audio_output_device.h
@@ -145,7 +145,9 @@ class MEDIA_EXPORT AudioOutputDevice : public AudioRendererSink,
// be executed on that thread. They use AudioOutputIPC to send IPC messages
// upon state changes.
void RequestDeviceAuthorizationOnIOThread();
- void CreateStreamOnIOThread(const AudioParameters& params);
+ void InitializeOnIOThread(const AudioParameters& params,
+ RenderCallback* callback);
+ void CreateStreamOnIOThread();
void PlayOnIOThread();
void PauseOnIOThread();
void ShutDownOnIOThread();
diff --git a/chromium/media/blink/video_frame_compositor.cc b/chromium/media/blink/video_frame_compositor.cc
index 8d162fc30c6..7abdf0999d8 100644
--- a/chromium/media/blink/video_frame_compositor.cc
+++ b/chromium/media/blink/video_frame_compositor.cc
@@ -134,6 +134,18 @@ scoped_refptr<VideoFrame> VideoFrameCompositor::GetCurrentFrame() {
return current_frame_;
}
+scoped_refptr<VideoFrame> VideoFrameCompositor::GetCurrentFrameOnAnyThread() {
+ base::AutoLock lock(current_frame_lock_);
+ return current_frame_;
+}
+
+void VideoFrameCompositor::SetCurrentFrame(
+ const scoped_refptr<VideoFrame>& frame) {
+ DCHECK(task_runner_->BelongsToCurrentThread());
+ base::AutoLock lock(current_frame_lock_);
+ current_frame_ = frame;
+}
+
void VideoFrameCompositor::PutCurrentFrame() {
DCHECK(task_runner_->BelongsToCurrentThread());
rendered_last_frame_ = true;
@@ -147,7 +159,7 @@ bool VideoFrameCompositor::UpdateCurrentFrame(base::TimeTicks deadline_min,
bool VideoFrameCompositor::HasCurrentFrame() {
DCHECK(task_runner_->BelongsToCurrentThread());
- return static_cast<bool>(current_frame_);
+ return static_cast<bool>(GetCurrentFrame());
}
void VideoFrameCompositor::Start(RenderCallback* callback) {
@@ -192,12 +204,11 @@ void VideoFrameCompositor::PaintSingleFrame(
}
}
-scoped_refptr<VideoFrame>
-VideoFrameCompositor::GetCurrentFrameAndUpdateIfStale() {
+void VideoFrameCompositor::UpdateCurrentFrameIfStale() {
DCHECK(task_runner_->BelongsToCurrentThread());
if (IsClientSinkAvailable() || !rendering_ || !is_background_rendering_)
- return current_frame_;
+ return;
DCHECK(!last_background_render_.is_null());
@@ -206,24 +217,12 @@ VideoFrameCompositor::GetCurrentFrameAndUpdateIfStale() {
// Cap updates to 250Hz which should be more than enough for everyone.
if (interval < base::TimeDelta::FromMilliseconds(4))
- return current_frame_;
+ return;
// Update the interval based on the time between calls and call background
// render which will give this information to the client.
last_interval_ = interval;
BackgroundRender();
-
- return current_frame_;
-}
-
-base::TimeDelta VideoFrameCompositor::GetCurrentFrameTimestamp() const {
- // When the VFC is stopped, |callback_| is cleared; this synchronously
- // prevents CallRender() from invoking ProcessNewFrame(), and so
- // |current_frame_| won't change again until after Start(). (Assuming that
- // PaintSingleFrame() is not also called while stopped.)
- if (!current_frame_)
- return base::TimeDelta();
- return current_frame_->timestamp();
}
void VideoFrameCompositor::SetOnNewProcessedFrameCallback(
@@ -237,8 +236,8 @@ bool VideoFrameCompositor::ProcessNewFrame(
bool repaint_duplicate_frame) {
DCHECK(task_runner_->BelongsToCurrentThread());
- if (frame && current_frame_ && !repaint_duplicate_frame &&
- frame->unique_id() == current_frame_->unique_id()) {
+ if (frame && GetCurrentFrame() && !repaint_duplicate_frame &&
+ frame->unique_id() == GetCurrentFrame()->unique_id()) {
return false;
}
@@ -246,7 +245,7 @@ bool VideoFrameCompositor::ProcessNewFrame(
// subsequent PutCurrentFrame() call it will mark it as rendered.
rendered_last_frame_ = false;
- current_frame_ = frame;
+ SetCurrentFrame(frame);
if (!new_processed_frame_cb_.is_null())
base::ResetAndReturn(&new_processed_frame_cb_).Run(base::TimeTicks::Now());
@@ -276,14 +275,14 @@ bool VideoFrameCompositor::CallRender(base::TimeTicks deadline_min,
if (!callback_) {
// Even if we no longer have a callback, return true if we have a frame
// which |client_| hasn't seen before.
- return !rendered_last_frame_ && current_frame_;
+ return !rendered_last_frame_ && GetCurrentFrame();
}
DCHECK(rendering_);
// If the previous frame was never rendered and we're not in background
// rendering mode (nor have just exited it), let the client know.
- if (!rendered_last_frame_ && current_frame_ && !background_rendering &&
+ if (!rendered_last_frame_ && GetCurrentFrame() && !background_rendering &&
!is_background_rendering_) {
callback_->OnFrameDropped();
}
diff --git a/chromium/media/blink/video_frame_compositor.h b/chromium/media/blink/video_frame_compositor.h
index 3a50d71aae0..46f66513d72 100644
--- a/chromium/media/blink/video_frame_compositor.h
+++ b/chromium/media/blink/video_frame_compositor.h
@@ -92,6 +92,12 @@ class MEDIA_BLINK_EXPORT VideoFrameCompositor : public VideoRendererSink,
scoped_refptr<VideoFrame> GetCurrentFrame() override;
void PutCurrentFrame() override;
+ // Returns |current_frame_|, without offering a guarantee as to how recently
+ // it was updated. In certain applications, one might need to periodically
+ // call UpdateCurrentFrameIfStale on |task_runner_| to drive the updates.
+ // Can be called from any thread.
+ scoped_refptr<VideoFrame> GetCurrentFrameOnAnyThread();
+
// VideoRendererSink implementation. These methods must be called from the
// same thread (typically the media thread).
void Start(RenderCallback* callback) override;
@@ -99,24 +105,18 @@ class MEDIA_BLINK_EXPORT VideoFrameCompositor : public VideoRendererSink,
void PaintSingleFrame(const scoped_refptr<VideoFrame>& frame,
bool repaint_duplicate_frame = false) override;
- // Returns |current_frame_| if |client_| is set. If no |client_| is set,
- // |is_background_rendering_| is true, and |callback_| is set, it requests a
- // new frame from |callback_|, using the elapsed time between calls to this
- // function as the render interval; defaulting to 16.6ms if no prior calls
- // have been made. A cap of 250Hz (4ms) is in place to prevent clients from
- // accidentally (or intentionally) spamming the rendering pipeline.
+ // If |client_| is not set, |callback_| is set, and |is_background_rendering_|
+ // is true, it requests a new frame from |callback_|. Uses the elapsed time
+ // between calls to this function as the render interval, defaulting to 16.6ms
+ // if no prior calls have been made. A cap of 250Hz (4ms) is in place to
+ // prevent clients from accidentally (or intentionally) spamming the rendering
+ // pipeline.
//
// This method is primarily to facilitate canvas and WebGL based applications
// where the <video> tag is invisible (possibly not even in the DOM) and thus
// does not receive a |client_|. In this case, frame acquisition is driven by
// the frequency of canvas or WebGL paints requested via JavaScript.
- scoped_refptr<VideoFrame> GetCurrentFrameAndUpdateIfStale();
-
- // Returns the timestamp of the current (possibly stale) frame, or
- // base::TimeDelta() if there is no current frame. This method may be called
- // from the media thread as long as the VFC is stopped. (Assuming that
- // PaintSingleFrame() is not also called while stopped.)
- base::TimeDelta GetCurrentFrameTimestamp() const;
+ void UpdateCurrentFrameIfStale();
// Sets the callback to be run when the new frame has been processed. The
// callback is only run once and then reset.
@@ -156,6 +156,8 @@ class MEDIA_BLINK_EXPORT VideoFrameCompositor : public VideoRendererSink,
bool ProcessNewFrame(const scoped_refptr<VideoFrame>& frame,
bool repaint_duplicate_frame);
+ void SetCurrentFrame(const scoped_refptr<VideoFrame>& frame);
+
// Called by |background_rendering_timer_| when enough time elapses where we
// haven't seen a Render() call.
void BackgroundRender();
@@ -193,8 +195,8 @@ class MEDIA_BLINK_EXPORT VideoFrameCompositor : public VideoRendererSink,
base::TimeTicks last_background_render_;
OnNewProcessedFrameCB new_processed_frame_cb_;
- // These values are set on the compositor thread, but also read on the media
- // thread when the VFC is stopped.
+ // Set on the compositor thread, but also read on the media thread.
+ base::Lock current_frame_lock_;
scoped_refptr<VideoFrame> current_frame_;
// These values are updated and read from the media and compositor threads.
diff --git a/chromium/media/blink/video_frame_compositor_unittest.cc b/chromium/media/blink/video_frame_compositor_unittest.cc
index 7f72e237db1..4e3d4748e47 100644
--- a/chromium/media/blink/video_frame_compositor_unittest.cc
+++ b/chromium/media/blink/video_frame_compositor_unittest.cc
@@ -246,33 +246,21 @@ TEST_P(VideoFrameCompositorTest,
StopVideoRendererSink(true);
}
-TEST_P(VideoFrameCompositorTest, GetCurrentFrameAndUpdateIfStale) {
+TEST_P(VideoFrameCompositorTest, UpdateCurrentFrameIfStale) {
scoped_refptr<VideoFrame> opaque_frame_1 = CreateOpaqueFrame();
scoped_refptr<VideoFrame> opaque_frame_2 = CreateOpaqueFrame();
compositor_->set_background_rendering_for_testing(true);
- // |current_frame_| should be null at this point since we don't have a client
- // or a callback.
- ASSERT_FALSE(compositor()->GetCurrentFrameAndUpdateIfStale());
-
// Starting the video renderer should return a single frame.
EXPECT_CALL(*this, Render(_, _, true)).WillOnce(Return(opaque_frame_1));
StartVideoRendererSink();
+ EXPECT_EQ(opaque_frame_1, compositor()->GetCurrentFrame());
// Since we have a client, this call should not call background render, even
// if a lot of time has elapsed between calls.
tick_clock_->Advance(base::TimeDelta::FromSeconds(1));
- ASSERT_EQ(opaque_frame_1, compositor()->GetCurrentFrameAndUpdateIfStale());
-
- // An update current frame call should stop background rendering.
- EXPECT_CALL(*this, Render(_, _, false)).WillOnce(Return(opaque_frame_2));
- EXPECT_TRUE(
- compositor()->UpdateCurrentFrame(base::TimeTicks(), base::TimeTicks()));
-
- // This call should still not call background render.
- ASSERT_EQ(opaque_frame_2, compositor()->GetCurrentFrameAndUpdateIfStale());
-
- testing::Mock::VerifyAndClearExpectations(this);
+ EXPECT_CALL(*this, Render(_, _, _)).Times(0);
+ compositor()->UpdateCurrentFrameIfStale();
if (IsSurfaceLayerForVideoEnabled()) {
compositor()->set_submitter_for_test(nullptr);
@@ -281,25 +269,24 @@ TEST_P(VideoFrameCompositorTest, GetCurrentFrameAndUpdateIfStale) {
compositor()->SetVideoFrameProviderClient(nullptr);
}
- // This call should still not call background render, because we aren't in the
- // background rendering state yet.
- ASSERT_EQ(opaque_frame_2, compositor()->GetCurrentFrameAndUpdateIfStale());
-
- // Wait for background rendering to tick again.
+ // Wait for background rendering to tick.
base::RunLoop run_loop;
EXPECT_CALL(*this, Render(_, _, true))
.WillOnce(
- DoAll(RunClosure(run_loop.QuitClosure()), Return(opaque_frame_1)))
- .WillOnce(Return(opaque_frame_2));
+ DoAll(RunClosure(run_loop.QuitClosure()), Return(opaque_frame_2)));
run_loop.Run();
// This call should still not call background render, because not enough time
// has elapsed since the last background render call.
- ASSERT_EQ(opaque_frame_1, compositor()->GetCurrentFrameAndUpdateIfStale());
+ EXPECT_CALL(*this, Render(_, _, true)).Times(0);
+ compositor()->UpdateCurrentFrameIfStale();
+ EXPECT_EQ(opaque_frame_2, compositor()->GetCurrentFrame());
// Advancing the tick clock should allow a new frame to be requested.
tick_clock_->Advance(base::TimeDelta::FromMilliseconds(10));
- ASSERT_EQ(opaque_frame_2, compositor()->GetCurrentFrameAndUpdateIfStale());
+ EXPECT_CALL(*this, Render(_, _, true)).WillOnce(Return(opaque_frame_1));
+ compositor()->UpdateCurrentFrameIfStale();
+ EXPECT_EQ(opaque_frame_1, compositor()->GetCurrentFrame());
// Background rendering should tick another render callback.
StopVideoRendererSink(false);
diff --git a/chromium/media/blink/watch_time_reporter_unittest.cc b/chromium/media/blink/watch_time_reporter_unittest.cc
index 4f46e59a649..62e749d4bee 100644
--- a/chromium/media/blink/watch_time_reporter_unittest.cc
+++ b/chromium/media/blink/watch_time_reporter_unittest.cc
@@ -167,9 +167,10 @@ class WatchTimeReporterTest : public testing::TestWithParam<bool>,
EXPECT_WATCH_TIME_FINALIZED();
wtr_.reset(new WatchTimeReporter(
- mojom::PlaybackProperties::New(
- kUnknownAudioCodec, kUnknownVideoCodec, has_audio, has_video_,
- is_mse, is_encrypted, false, initial_video_size, url::Origin()),
+ mojom::PlaybackProperties::New(kUnknownAudioCodec, kUnknownVideoCodec,
+ has_audio, has_video_, is_mse,
+ is_encrypted, false, initial_video_size,
+ url::Origin(), true /* is_top_frame */),
base::Bind(&WatchTimeReporterTest::GetCurrentMediaTime,
base::Unretained(this)),
this));
diff --git a/chromium/media/blink/webmediaplayer_impl.cc b/chromium/media/blink/webmediaplayer_impl.cc
index 0c496c4f78c..5ee29f7682d 100644
--- a/chromium/media/blink/webmediaplayer_impl.cc
+++ b/chromium/media/blink/webmediaplayer_impl.cc
@@ -2206,48 +2206,23 @@ blink::WebAudioSourceProvider* WebMediaPlayerImpl::GetAudioSourceProvider() {
return audio_source_provider_.get();
}
-static void GetCurrentFrameAndSignal(VideoFrameCompositor* compositor,
- scoped_refptr<VideoFrame>* video_frame_out,
- base::WaitableEvent* event) {
- TRACE_EVENT0("media", "GetCurrentFrameAndSignal");
- *video_frame_out = compositor->GetCurrentFrameAndUpdateIfStale();
- event->Signal();
-}
-
scoped_refptr<VideoFrame> WebMediaPlayerImpl::GetCurrentFrameFromCompositor()
const {
DCHECK(main_task_runner_->BelongsToCurrentThread());
TRACE_EVENT0("media", "WebMediaPlayerImpl::GetCurrentFrameFromCompositor");
- // Needed when the |main_task_runner_| and |vfc_task_runner_| are the
- // same to avoid deadlock in the Wait() below.
- if (vfc_task_runner_->BelongsToCurrentThread()) {
- scoped_refptr<VideoFrame> video_frame =
- compositor_->GetCurrentFrameAndUpdateIfStale();
- if (!video_frame) {
- return nullptr;
- }
- last_uploaded_frame_size_ = video_frame->natural_size();
- last_uploaded_frame_timestamp_ = video_frame->timestamp();
- return video_frame;
- }
+ // Can be null.
+ scoped_refptr<VideoFrame> video_frame =
+ compositor_->GetCurrentFrameOnAnyThread();
- // Use a posted task and waitable event instead of a lock otherwise
- // WebGL/Canvas can see different content than what the compositor is seeing.
- scoped_refptr<VideoFrame> video_frame;
- base::WaitableEvent event(base::WaitableEvent::ResetPolicy::AUTOMATIC,
- base::WaitableEvent::InitialState::NOT_SIGNALED);
+ // base::Unretained is safe here because |compositor_| is destroyed on
+ // |vfc_task_runner_|. The destruction is queued from |this|' destructor,
+ // which also runs on |main_task_runner_|, which makes it impossible for
+ // UpdateCurrentFrameIfStale() to be queued after |compositor_|'s dtor.
vfc_task_runner_->PostTask(
- FROM_HERE,
- base::Bind(&GetCurrentFrameAndSignal, base::Unretained(compositor_.get()),
- &video_frame, &event));
- event.Wait();
+ FROM_HERE, base::Bind(&VideoFrameCompositor::UpdateCurrentFrameIfStale,
+ base::Unretained(compositor_.get())));
- if (!video_frame) {
- return nullptr;
- }
- last_uploaded_frame_size_ = video_frame->natural_size();
- last_uploaded_frame_timestamp_ = video_frame->timestamp();
return video_frame;
}
@@ -2567,6 +2542,12 @@ void WebMediaPlayerImpl::CreateWatchTimeReporter() {
if (!HasVideo() && !HasAudio())
return;
+ // URL is used for UKM reporting. Privacy requires we only report origin of
+ // the top frame. |is_top_frame| signals how to interpret the origin.
+ // TODO(crbug.com/787209): Stop getting origin from the renderer.
+ bool is_top_frame = frame_ == frame_->Top();
+ url::Origin top_origin(frame_->Top()->GetSecurityOrigin());
+
// Create the watch time reporter and synchronize its initial state.
watch_time_reporter_.reset(new WatchTimeReporter(
mojom::PlaybackProperties::New(
@@ -2574,8 +2555,7 @@ void WebMediaPlayerImpl::CreateWatchTimeReporter() {
pipeline_metadata_.video_decoder_config.codec(),
pipeline_metadata_.has_audio, pipeline_metadata_.has_video,
!!chunk_demuxer_, is_encrypted_, embedded_media_experience_enabled_,
- pipeline_metadata_.natural_size,
- url::Origin(frame_->GetSecurityOrigin())),
+ pipeline_metadata_.natural_size, top_origin, is_top_frame),
base::BindRepeating(&WebMediaPlayerImpl::GetCurrentTimeInternal,
base::Unretained(this)),
watch_time_recorder_provider_));
diff --git a/chromium/media/blink/webmediaplayer_impl.h b/chromium/media/blink/webmediaplayer_impl.h
index 56c5cf472d5..6f5e997ed4e 100644
--- a/chromium/media/blink/webmediaplayer_impl.h
+++ b/chromium/media/blink/webmediaplayer_impl.h
@@ -350,8 +350,9 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
void SetNetworkState(blink::WebMediaPlayer::NetworkState state);
void SetReadyState(blink::WebMediaPlayer::ReadyState state);
- // Returns the current video frame from |compositor_|. Blocks until the
- // compositor can return the frame.
+ // Returns the current video frame from |compositor_|, and asks the compositor
+ // to update its frame if it is stale.
+ // Can return a nullptr.
scoped_refptr<VideoFrame> GetCurrentFrameFromCompositor() const;
// Called when the demuxer encounters encrypted streams.
@@ -800,9 +801,6 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
// Whether the use of a surface layer instead of a video layer is enabled.
bool surface_layer_for_video_enabled_ = false;
- mutable gfx::Size last_uploaded_frame_size_;
- mutable base::TimeDelta last_uploaded_frame_timestamp_;
-
base::CancelableCallback<void(base::TimeTicks)> frame_time_report_cb_;
bool initial_video_height_recorded_ = false;
diff --git a/chromium/media/midi/midi_manager_mac.cc b/chromium/media/midi/midi_manager_mac.cc
index ecdf16cc7df..75b373a1daa 100644
--- a/chromium/media/midi/midi_manager_mac.cc
+++ b/chromium/media/midi/midi_manager_mac.cc
@@ -241,10 +241,11 @@ void MidiManagerMac::ReceiveMidiNotify(const MIDINotification* message) {
// On kMIDIMsgObjectRemoved, the entry will be ignored because it
// will not be found in the pool.
if (!info.id.empty()) {
+ size_t index = it - sources_.begin();
sources_.push_back(endpoint);
AddInputPort(info);
MIDIPortConnectSource(midi_input_, endpoint,
- reinterpret_cast<void*>(it - sources_.begin()));
+ reinterpret_cast<void*>(index));
}
} else {
SetInputPortState(it - sources_.begin(), PortState::OPENED);
diff --git a/chromium/media/mojo/interfaces/watch_time_recorder.mojom b/chromium/media/mojo/interfaces/watch_time_recorder.mojom
index fb162233ec9..1e3492ecd84 100644
--- a/chromium/media/mojo/interfaces/watch_time_recorder.mojom
+++ b/chromium/media/mojo/interfaces/watch_time_recorder.mojom
@@ -20,7 +20,12 @@ struct PlaybackProperties {
bool is_eme;
bool is_embedded_media_experience; // Playback from 'Downloads' on Android.
gfx.mojom.Size natural_size; // Size of video frame; (0, 0) if audio only.
- url.mojom.Origin origin;
+
+ // For privacy, only record the top origin. "Untrusted" signals that this
+ // value comes from the renderer and should not be used for security checks.
+ // TODO(crbug.com/787209): Stop getting origin from the renderer.
+ url.mojom.Origin untrusted_top_origin;
+ bool is_top_frame; // False for any inner/iframe playbacks.
};
// Interface by which the WatchTimeReporter reports watch time. This is used to
diff --git a/chromium/media/mojo/services/watch_time_recorder.cc b/chromium/media/mojo/services/watch_time_recorder.cc
index f4f6d9eedfc..ed60fc41c95 100644
--- a/chromium/media/mojo/services/watch_time_recorder.cc
+++ b/chromium/media/mojo/services/watch_time_recorder.cc
@@ -173,9 +173,14 @@ void WatchTimeRecorder::RecordUkmPlaybackData() {
}
const int32_t source_id = ukm_recorder->GetNewSourceID();
- ukm_recorder->UpdateSourceURL(source_id, properties_->origin.GetURL());
+
+ // TODO(crbug.com/787209): Stop getting origin from the renderer.
+ ukm_recorder->UpdateSourceURL(source_id,
+ properties_->untrusted_top_origin.GetURL());
ukm::builders::Media_BasicPlayback builder(source_id);
+ builder.SetIsTopFrame(properties_->is_top_frame);
+
bool recorded_all_metric = false;
for (auto& kv : aggregate_watch_time_info_) {
if (kv.first == WatchTimeKey::kAudioAll ||
diff --git a/chromium/media/mojo/services/watch_time_recorder_unittest.cc b/chromium/media/mojo/services/watch_time_recorder_unittest.cc
index 3535bec3e3a..025c936e34a 100644
--- a/chromium/media/mojo/services/watch_time_recorder_unittest.cc
+++ b/chromium/media/mojo/services/watch_time_recorder_unittest.cc
@@ -55,10 +55,10 @@ class WatchTimeRecorderTest : public testing::Test {
bool is_mse,
bool is_encrypted) {
provider_->AcquireWatchTimeRecorder(
- mojom::PlaybackProperties::New(kUnknownAudioCodec, kUnknownVideoCodec,
- has_audio, has_video, is_mse,
- is_encrypted, false, gfx::Size(800, 600),
- url::Origin(GURL(kTestOrigin))),
+ mojom::PlaybackProperties::New(
+ kUnknownAudioCodec, kUnknownVideoCodec, has_audio, has_video,
+ is_mse, is_encrypted, false, gfx::Size(800, 600),
+ url::Origin(GURL(kTestOrigin)), true /* is_top_frame */),
mojo::MakeRequest(&wtr_));
}
@@ -246,7 +246,7 @@ TEST_F(WatchTimeRecorderTest, TestRebufferingMetrics) {
TEST_F(WatchTimeRecorderTest, BasicUkmAudioVideo) {
mojom::PlaybackPropertiesPtr properties = mojom::PlaybackProperties::New(
kCodecAAC, kCodecH264, true, true, false, false, false,
- gfx::Size(800, 600), url::Origin(GURL(kTestOrigin)));
+ gfx::Size(800, 600), url::Origin(GURL(kTestOrigin)), true);
provider_->AcquireWatchTimeRecorder(properties.Clone(),
mojo::MakeRequest(&wtr_));
@@ -287,7 +287,7 @@ TEST_F(WatchTimeRecorderTest, BasicUkmAudioVideo) {
TEST_F(WatchTimeRecorderTest, BasicUkmAudioVideoWithExtras) {
mojom::PlaybackPropertiesPtr properties = mojom::PlaybackProperties::New(
kCodecOpus, kCodecVP9, true, true, true, true, false, gfx::Size(800, 600),
- url::Origin(GURL(kTestOrigin)));
+ url::Origin(GURL(kTestOrigin)), true);
provider_->AcquireWatchTimeRecorder(properties.Clone(),
mojo::MakeRequest(&wtr_));
@@ -354,7 +354,7 @@ TEST_F(WatchTimeRecorderTest, BasicUkmAudioVideoWithExtras) {
TEST_F(WatchTimeRecorderTest, BasicUkmAudioVideoBackground) {
mojom::PlaybackPropertiesPtr properties = mojom::PlaybackProperties::New(
kCodecAAC, kCodecH264, true, true, false, false, false,
- gfx::Size(800, 600), url::Origin(GURL(kTestOrigin)));
+ gfx::Size(800, 600), url::Origin(GURL(kTestOrigin)), true);
provider_->AcquireWatchTimeRecorder(properties.Clone(),
mojo::MakeRequest(&wtr_));
diff --git a/chromium/net/cert/x509_certificate.cc b/chromium/net/cert/x509_certificate.cc
index 8a5d523faf7..c2f9544f67a 100644
--- a/chromium/net/cert/x509_certificate.cc
+++ b/chromium/net/cert/x509_certificate.cc
@@ -124,12 +124,20 @@ scoped_refptr<X509Certificate> X509Certificate::CreateFromDERCertChain(
scoped_refptr<X509Certificate> X509Certificate::CreateFromBytes(
const char* data,
size_t length) {
+ return CreateFromBytesUnsafeOptions(data, length, {});
+}
+
+// static
+scoped_refptr<X509Certificate> X509Certificate::CreateFromBytesUnsafeOptions(
+ const char* data,
+ size_t length,
+ UnsafeCreateOptions options) {
OSCertHandle cert_handle = CreateOSCertHandleFromBytes(data, length);
if (!cert_handle)
return NULL;
scoped_refptr<X509Certificate> cert =
- CreateFromHandle(cert_handle, OSCertHandles());
+ CreateFromHandleUnsafeOptions(cert_handle, {}, options);
FreeOSCertHandle(cert_handle);
return cert;
}
diff --git a/chromium/net/cert/x509_certificate.h b/chromium/net/cert/x509_certificate.h
index e31ebade953..52f7956c918 100644
--- a/chromium/net/cert/x509_certificate.h
+++ b/chromium/net/cert/x509_certificate.h
@@ -150,6 +150,13 @@ class NET_EXPORT X509Certificate
static scoped_refptr<X509Certificate> CreateFromBytes(const char* data,
size_t length);
+ // Create an X509Certificate with non-standard parsing options.
+ // Do not use without consulting //net owners.
+ static scoped_refptr<X509Certificate> CreateFromBytesUnsafeOptions(
+ const char* data,
+ size_t length,
+ UnsafeCreateOptions options);
+
// Create an X509Certificate from the representation stored in the given
// pickle. The data for this object is found relative to the given
// pickle_iter, which should be passed to the pickle's various Read* methods.
diff --git a/chromium/net/http/http_network_session.cc b/chromium/net/http/http_network_session.cc
index 6f8a9e39a06..ebe41f7f827 100644
--- a/chromium/net/http/http_network_session.cc
+++ b/chromium/net/http/http_network_session.cc
@@ -118,6 +118,7 @@ HttpNetworkSession::Params::Params()
quic_migrate_sessions_on_network_change(false),
quic_migrate_sessions_early(false),
quic_allow_server_migration(false),
+ quic_allow_remote_alt_svc(false),
quic_disable_bidirectional_streams(false),
quic_force_hol_blocking(false),
quic_race_cert_verification(false),
diff --git a/chromium/net/http/http_network_session.h b/chromium/net/http/http_network_session.h
index ebbf81a60b0..6d16f109118 100644
--- a/chromium/net/http/http_network_session.h
+++ b/chromium/net/http/http_network_session.h
@@ -160,6 +160,9 @@ class NET_EXPORT HttpNetworkSession : public base::MemoryCoordinatorClient {
// If true, allows migration of QUIC connections to a server-specified
// alternate server address.
bool quic_allow_server_migration;
+ // If true, allows QUIC to use alternative services with a different
+ // hostname from the origin.
+ bool quic_allow_remote_alt_svc;
// If true, bidirectional streams over QUIC will be disabled.
bool quic_disable_bidirectional_streams;
// If true, enable force HOL blocking. For measurement purposes.
diff --git a/chromium/net/http/http_stream_factory_impl_job_controller.cc b/chromium/net/http/http_stream_factory_impl_job_controller.cc
index fd6d73fc7fe..a5b64f4c619 100644
--- a/chromium/net/http/http_stream_factory_impl_job_controller.cc
+++ b/chromium/net/http/http_stream_factory_impl_job_controller.cc
@@ -1153,6 +1153,10 @@ HttpStreamFactoryImpl::JobController::GetAlternativeServiceInfoInternal(
QuicServerId server_id(mapped_origin, request_info.privacy_mode);
HostPortPair destination(alternative_service_info.host_port_pair());
+ if (server_id.host() != destination.host() &&
+ !session_->params().quic_allow_remote_alt_svc) {
+ continue;
+ }
ignore_result(ApplyHostMappingRules(original_url, &destination));
if (session_->quic_stream_factory()->CanUseExistingSession(server_id,
diff --git a/chromium/net/quic/chromium/quic_network_transaction_unittest.cc b/chromium/net/quic/chromium/quic_network_transaction_unittest.cc
index 77e74534a3f..4035961d15b 100644
--- a/chromium/net/quic/chromium/quic_network_transaction_unittest.cc
+++ b/chromium/net/quic/chromium/quic_network_transaction_unittest.cc
@@ -1154,6 +1154,7 @@ TEST_P(QuicNetworkTransactionTest, QuicProxyWithCert) {
}
TEST_P(QuicNetworkTransactionTest, AlternativeServicesDifferentHost) {
+ session_params_.quic_allow_remote_alt_svc = true;
HostPortPair origin("www.example.org", 443);
HostPortPair alternative("mail.example.org", 443);
@@ -2988,6 +2989,7 @@ TEST_P(QuicNetworkTransactionTest, ResetAfterHandshakeConfirmedThenBroken) {
// This is a regression tests for crbug/731303.
TEST_P(QuicNetworkTransactionTest,
ResetPooledAfterHandshakeConfirmedThenBroken) {
+ session_params_.quic_allow_remote_alt_svc = true;
session_params_.retry_without_alt_svc_on_quic_errors = true;
GURL origin1 = request_.url;
@@ -3100,6 +3102,7 @@ TEST_P(QuicNetworkTransactionTest,
url::SchemeHostPort(origin2),
AlternativeService(kProtoQUIC, "www.example.com", 443), expiration,
supported_versions_);
+
// First request opens connection to |destination1|
// with QuicServerId.host() == origin1.host().
SendRequestAndExpectQuicResponse("hello!");
@@ -3143,6 +3146,7 @@ TEST_P(QuicNetworkTransactionTest,
// service which uses existing QUIC session if available. If no existing QUIC
// session can be used, use the first alternative service from the list.
TEST_P(QuicNetworkTransactionTest, UseExistingAlternativeServiceForQuic) {
+ session_params_.quic_allow_remote_alt_svc = true;
MockRead http_reads[] = {
MockRead("HTTP/1.1 200 OK\r\n"),
MockRead("Alt-Svc: quic=\"foo.example.org:443\", quic=\":444\"\r\n\r\n"),
@@ -3278,6 +3282,7 @@ TEST_P(QuicNetworkTransactionTest, UseExistingQUICAlternativeProxy) {
// Pool to existing session with matching QuicServerId
// even if alternative service destination is different.
TEST_P(QuicNetworkTransactionTest, PoolByOrigin) {
+ session_params_.quic_allow_remote_alt_svc = true;
MockQuicData mock_quic_data;
QuicStreamOffset request_header_offset(0);
QuicStreamOffset response_header_offset(0);
@@ -3342,6 +3347,7 @@ TEST_P(QuicNetworkTransactionTest, PoolByOrigin) {
// even if origin is different, and even if the alternative service with
// matching destination is not the first one on the list.
TEST_P(QuicNetworkTransactionTest, PoolByDestination) {
+ session_params_.quic_allow_remote_alt_svc = true;
GURL origin1 = request_.url;
GURL origin2("https://www.example.org/");
ASSERT_NE(origin1.host(), origin2.host());
@@ -3432,6 +3438,7 @@ TEST_P(QuicNetworkTransactionTest, PoolByDestination) {
// if this is also the first existing QUIC session.
TEST_P(QuicNetworkTransactionTest,
UseSharedExistingAlternativeServiceForQuicWithValidCert) {
+ session_params_.quic_allow_remote_alt_svc = true;
// Default cert is valid for *.example.org
// HTTP data for request to www.example.org.
@@ -5080,6 +5087,7 @@ class QuicNetworkTransactionWithDestinationTest
HttpNetworkSession::Params session_params;
session_params.enable_quic = true;
+ session_params.quic_allow_remote_alt_svc = true;
session_params.quic_supported_versions = supported_versions_;
HttpNetworkSession::Context session_context;
diff --git a/chromium/skia/ext/skia_commit_hash.h b/chromium/skia/ext/skia_commit_hash.h
index fc6b95980b2..064a3695dba 100644
--- a/chromium/skia/ext/skia_commit_hash.h
+++ b/chromium/skia/ext/skia_commit_hash.h
@@ -3,6 +3,6 @@
#ifndef SKIA_EXT_SKIA_COMMIT_HASH_H_
#define SKIA_EXT_SKIA_COMMIT_HASH_H_
-#define SKIA_COMMIT_HASH "6d9ea17916a970d194a8054fec116b05f2bd5861-"
+#define SKIA_COMMIT_HASH "e376a767ac05c5e37627f950c86ff5c3f6e1cd4c-"
#endif // SKIA_EXT_SKIA_COMMIT_HASH_H_
diff --git a/chromium/third_party/WebKit/Source/bindings/core/v8/V8IntersectionObserverDelegate.cpp b/chromium/third_party/WebKit/Source/bindings/core/v8/V8IntersectionObserverDelegate.cpp
index 2a59dbb4ead..2949a8b7bc2 100644
--- a/chromium/third_party/WebKit/Source/bindings/core/v8/V8IntersectionObserverDelegate.cpp
+++ b/chromium/third_party/WebKit/Source/bindings/core/v8/V8IntersectionObserverDelegate.cpp
@@ -17,8 +17,7 @@ namespace blink {
V8IntersectionObserverDelegate::V8IntersectionObserverDelegate(
V8IntersectionObserverCallback* callback,
ScriptState* script_state)
- : ContextClient(ExecutionContext::From(script_state)),
- callback_(callback) {}
+ : callback_(callback), script_state_(script_state) {}
V8IntersectionObserverDelegate::~V8IntersectionObserverDelegate() {}
@@ -31,7 +30,6 @@ void V8IntersectionObserverDelegate::Deliver(
DEFINE_TRACE(V8IntersectionObserverDelegate) {
visitor->Trace(callback_);
IntersectionObserverDelegate::Trace(visitor);
- ContextClient::Trace(visitor);
}
DEFINE_TRACE_WRAPPERS(V8IntersectionObserverDelegate) {
@@ -39,8 +37,4 @@ DEFINE_TRACE_WRAPPERS(V8IntersectionObserverDelegate) {
IntersectionObserverDelegate::TraceWrappers(visitor);
}
-ExecutionContext* V8IntersectionObserverDelegate::GetExecutionContext() const {
- return ContextClient::GetExecutionContext();
-}
-
} // namespace blink
diff --git a/chromium/third_party/WebKit/Source/bindings/core/v8/V8IntersectionObserverDelegate.h b/chromium/third_party/WebKit/Source/bindings/core/v8/V8IntersectionObserverDelegate.h
index 93a5b17c9ee..9c97e13b9db 100644
--- a/chromium/third_party/WebKit/Source/bindings/core/v8/V8IntersectionObserverDelegate.h
+++ b/chromium/third_party/WebKit/Source/bindings/core/v8/V8IntersectionObserverDelegate.h
@@ -6,7 +6,6 @@
#define V8IntersectionObserverDelegate_h
#include "core/CoreExport.h"
-#include "core/dom/ContextLifecycleObserver.h"
#include "core/dom/ExecutionContext.h"
#include "core/intersection_observer/IntersectionObserverDelegate.h"
#include "platform/bindings/DOMWrapperWorld.h"
@@ -18,10 +17,7 @@ namespace blink {
class V8IntersectionObserverCallback;
class V8IntersectionObserverDelegate final
- : public IntersectionObserverDelegate,
- public ContextClient {
- USING_GARBAGE_COLLECTED_MIXIN(V8IntersectionObserverDelegate);
-
+ : public IntersectionObserverDelegate {
public:
CORE_EXPORT V8IntersectionObserverDelegate(V8IntersectionObserverCallback*,
ScriptState*);
@@ -30,13 +26,17 @@ class V8IntersectionObserverDelegate final
DECLARE_VIRTUAL_TRACE();
DECLARE_VIRTUAL_TRACE_WRAPPERS();
- ExecutionContext* GetExecutionContext() const override;
-
void Deliver(const HeapVector<Member<IntersectionObserverEntry>>&,
IntersectionObserver&) override;
+ ExecutionContext* GetExecutionContext() const override {
+ return ExecutionContext::From(script_state_.get());
+ }
+
private:
TraceWrapperMember<V8IntersectionObserverCallback> callback_;
+ // TODO(bashi): Use ContextClient rather than holding ScriptState.
+ RefPtr<ScriptState> script_state_;
};
} // namespace blink
diff --git a/chromium/third_party/WebKit/Source/core/dom/Document.cpp b/chromium/third_party/WebKit/Source/core/dom/Document.cpp
index 5f6f0c9aa6f..f76aea75a88 100644
--- a/chromium/third_party/WebKit/Source/core/dom/Document.cpp
+++ b/chromium/third_party/WebKit/Source/core/dom/Document.cpp
@@ -1922,7 +1922,7 @@ void Document::SetupFontBuilder(ComputedStyle& document_style) {
font_builder.CreateFontForDocument(selector, document_style);
}
-void Document::PropagateStyleToViewport(StyleRecalcChange change) {
+void Document::PropagateStyleToViewport() {
DCHECK(InStyleRecalc());
DCHECK(documentElement());
@@ -2034,48 +2034,42 @@ void Document::PropagateStyleToViewport(StyleRecalcChange change) {
scroll_boundary_behavior_y)));
}
- RefPtr<ComputedStyle> viewport_style;
- if (change == kForce || !GetLayoutViewItem().Style()) {
- viewport_style = StyleResolver::StyleForViewport(*this);
- } else {
- const ComputedStyle& old_style = GetLayoutViewItem().StyleRef();
- if (old_style.GetWritingMode() == root_writing_mode &&
- old_style.Direction() == root_direction &&
- old_style.VisitedDependentColor(CSSPropertyBackgroundColor) ==
- background_color &&
- old_style.BackgroundLayers() == background_layers &&
- old_style.ImageRendering() == image_rendering &&
- old_style.OverflowAnchor() == overflow_anchor &&
- old_style.OverflowX() == overflow_x &&
- old_style.OverflowY() == overflow_y &&
- old_style.HasNormalColumnGap() == column_gap_normal &&
- old_style.ColumnGap() == column_gap &&
- old_style.GetScrollSnapType() == snap_type &&
- old_style.GetScrollBehavior() == scroll_behavior &&
- old_style.OverscrollBehaviorX() == scroll_boundary_behavior_x &&
- old_style.OverscrollBehaviorY() == scroll_boundary_behavior_y) {
- return;
- }
- viewport_style = ComputedStyle::Clone(old_style);
- }
- viewport_style->SetWritingMode(root_writing_mode);
- viewport_style->SetDirection(root_direction);
- viewport_style->SetBackgroundColor(background_color);
- viewport_style->AccessBackgroundLayers() = background_layers;
- viewport_style->SetImageRendering(image_rendering);
- viewport_style->SetOverflowAnchor(overflow_anchor);
- viewport_style->SetOverflowX(overflow_x);
- viewport_style->SetOverflowY(overflow_y);
- if (column_gap_normal)
- viewport_style->SetHasNormalColumnGap();
- else
- viewport_style->SetColumnGap(column_gap);
- viewport_style->SetScrollSnapType(snap_type);
- viewport_style->SetScrollBehavior(scroll_behavior);
- viewport_style->SetOverscrollBehaviorX(scroll_boundary_behavior_x);
- viewport_style->SetOverscrollBehaviorY(scroll_boundary_behavior_y);
- GetLayoutViewItem().SetStyle(viewport_style);
- SetupFontBuilder(*viewport_style);
+ RefPtr<ComputedStyle> viewport_style = GetLayoutViewItem().MutableStyle();
+ if (viewport_style->GetWritingMode() != root_writing_mode ||
+ viewport_style->Direction() != root_direction ||
+ viewport_style->VisitedDependentColor(CSSPropertyBackgroundColor) !=
+ background_color ||
+ viewport_style->BackgroundLayers() != background_layers ||
+ viewport_style->ImageRendering() != image_rendering ||
+ viewport_style->OverflowAnchor() != overflow_anchor ||
+ viewport_style->OverflowX() != overflow_x ||
+ viewport_style->OverflowY() != overflow_y ||
+ viewport_style->HasNormalColumnGap() != column_gap_normal ||
+ viewport_style->ColumnGap() != column_gap ||
+ viewport_style->GetScrollSnapType() != snap_type ||
+ viewport_style->GetScrollBehavior() != scroll_behavior ||
+ viewport_style->OverscrollBehaviorX() != scroll_boundary_behavior_x ||
+ viewport_style->OverscrollBehaviorY() != scroll_boundary_behavior_y) {
+ RefPtr<ComputedStyle> new_style = ComputedStyle::Clone(*viewport_style);
+ new_style->SetWritingMode(root_writing_mode);
+ new_style->SetDirection(root_direction);
+ new_style->SetBackgroundColor(background_color);
+ new_style->AccessBackgroundLayers() = background_layers;
+ new_style->SetImageRendering(image_rendering);
+ new_style->SetOverflowAnchor(overflow_anchor);
+ new_style->SetOverflowX(overflow_x);
+ new_style->SetOverflowY(overflow_y);
+ if (column_gap_normal)
+ new_style->SetHasNormalColumnGap();
+ else
+ new_style->SetColumnGap(column_gap);
+ new_style->SetScrollSnapType(snap_type);
+ new_style->SetScrollBehavior(scroll_behavior);
+ new_style->SetOverscrollBehaviorX(scroll_boundary_behavior_x);
+ new_style->SetOverscrollBehaviorY(scroll_boundary_behavior_y);
+ GetLayoutViewItem().SetStyle(new_style);
+ SetupFontBuilder(*new_style);
+ }
}
#if DCHECK_IS_ON()
@@ -2213,13 +2207,28 @@ void Document::UpdateStyle() {
lifecycle_.AdvanceTo(DocumentLifecycle::kInStyleRecalc);
StyleRecalcChange change = kNoChange;
- if (GetStyleChangeType() >= kSubtreeStyleChange) {
+ if (GetStyleChangeType() >= kSubtreeStyleChange)
change = kForce;
- has_nodes_with_placeholder_style_ = false;
- }
NthIndexCache nth_index_cache(*this);
+ // TODO(rune@opera.com): Cannot access the EnsureStyleResolver() before
+ // calling StyleForViewport() below because apparently the StyleResolver's
+ // constructor has side effects. We should fix it. See
+ // printing/setPrinting.html, printing/width-overflow.html though they only
+ // fail on mac when accessing the resolver by what appears to be a viewport
+ // size difference.
+
+ if (change == kForce) {
+ has_nodes_with_placeholder_style_ = false;
+ RefPtr<ComputedStyle> viewport_style =
+ StyleResolver::StyleForViewport(*this);
+ StyleRecalcChange local_change = ComputedStyle::StylePropagationDiff(
+ viewport_style.get(), GetLayoutViewItem().Style());
+ if (local_change != kNoChange)
+ GetLayoutViewItem().SetStyle(std::move(viewport_style));
+ }
+
ClearNeedsStyleRecalc();
ClearNeedsReattachLayoutTree();
@@ -2238,15 +2247,13 @@ void Document::UpdateStyle() {
ViewportDefiningElementDidChange();
}
GetStyleEngine().MarkForWhitespaceReattachment();
- PropagateStyleToViewport(change);
+ PropagateStyleToViewport();
if (document_element->NeedsReattachLayoutTree() ||
document_element->ChildNeedsReattachLayoutTree()) {
TRACE_EVENT0("blink,blink_style", "Document::rebuildLayoutTree");
WhitespaceAttacher whitespace_attacher;
document_element->RebuildLayoutTree(whitespace_attacher);
}
- } else if (change == kForce) {
- GetLayoutViewItem().SetStyle(StyleResolver::StyleForViewport(*this));
}
GetStyleEngine().ClearWhitespaceReattachSet();
diff --git a/chromium/third_party/WebKit/Source/core/dom/Document.h b/chromium/third_party/WebKit/Source/core/dom/Document.h
index 18d9321d2fd..72b66e4f296 100644
--- a/chromium/third_party/WebKit/Source/core/dom/Document.h
+++ b/chromium/third_party/WebKit/Source/core/dom/Document.h
@@ -1414,7 +1414,7 @@ class CORE_EXPORT Document : public ContainerNode,
bool NeedsFullLayoutTreeUpdate() const;
- void PropagateStyleToViewport(StyleRecalcChange);
+ void PropagateStyleToViewport();
void UpdateUseShadowTreesIfNeeded();
void EvaluateMediaQueryListIfNeeded();
diff --git a/chromium/third_party/WebKit/Source/core/editing/EditingUtilities.cpp b/chromium/third_party/WebKit/Source/core/editing/EditingUtilities.cpp
index 9aa3d47f94b..7cc474be49e 100644
--- a/chromium/third_party/WebKit/Source/core/editing/EditingUtilities.cpp
+++ b/chromium/third_party/WebKit/Source/core/editing/EditingUtilities.cpp
@@ -1566,6 +1566,9 @@ bool IsTabHTMLSpanElement(const Node* node) {
return false;
if (!ToText(first_child)->data().Contains('\t'))
return false;
+ // TODO(editing-dev): Hoist the call of UpdateStyleAndLayoutTree to callers.
+ // See crbug.com/590369 for details.
+ node->GetDocument().UpdateStyleAndLayoutTree();
return node->GetComputedStyle()->WhiteSpace() == EWhiteSpace::kPre;
}
diff --git a/chromium/third_party/WebKit/Source/core/editing/SelectionController.cpp b/chromium/third_party/WebKit/Source/core/editing/SelectionController.cpp
index d57fcba1d6d..3032a4f60e0 100644
--- a/chromium/third_party/WebKit/Source/core/editing/SelectionController.cpp
+++ b/chromium/third_party/WebKit/Source/core/editing/SelectionController.cpp
@@ -848,6 +848,9 @@ void SelectionController::SetNonDirectionalSelectionIfNeeded(
original_base_in_flat_tree_ = PositionInFlatTreeWithAffinity();
}
+ builder.SetIsDirectional(
+ frame_->GetEditor().Behavior().ShouldConsiderSelectionAsDirectional() ||
+ new_selection.IsDirectional());
const SelectionInFlatTree& selection_in_flat_tree = builder.Build();
const bool should_show_handle =
handle_visibility == HandleVisibility::kVisible;
diff --git a/chromium/third_party/WebKit/Source/core/intersection_observer/IntersectionObserver.cpp b/chromium/third_party/WebKit/Source/core/intersection_observer/IntersectionObserver.cpp
index f6a932411a1..2af3d3e83c2 100644
--- a/chromium/third_party/WebKit/Source/core/intersection_observer/IntersectionObserver.cpp
+++ b/chromium/third_party/WebKit/Source/core/intersection_observer/IntersectionObserver.cpp
@@ -329,7 +329,6 @@ String IntersectionObserver::rootMargin() const {
void IntersectionObserver::EnqueueIntersectionObserverEntry(
IntersectionObserverEntry& entry) {
- DCHECK(delegate_->GetExecutionContext());
entries_.push_back(&entry);
ToDocument(delegate_->GetExecutionContext())
->EnsureIntersectionObserverController()
diff --git a/chromium/third_party/WebKit/Source/core/layout/LayoutBlock.cpp b/chromium/third_party/WebKit/Source/core/layout/LayoutBlock.cpp
index f73d3fd4f28..b998d060102 100644
--- a/chromium/third_party/WebKit/Source/core/layout/LayoutBlock.cpp
+++ b/chromium/third_party/WebKit/Source/core/layout/LayoutBlock.cpp
@@ -586,8 +586,7 @@ void LayoutBlock::UpdateBlockChildDirtyBitsBeforeLayout(bool relayout_children,
if (relayout_children || (has_relative_logical_height && !IsLayoutView()) ||
(height_available_to_children_changed_ &&
ChangeInAvailableLogicalHeightAffectsChild(this, child)) ||
- (child.IsListMarker() && IsListItem() &&
- ToLayoutBlockFlow(this)->ContainsFloats())) {
+ (child.IsListMarker() && IsListItem())) {
child.SetChildNeedsLayout(kMarkOnlyThis);
}
}
diff --git a/chromium/third_party/WebKit/Source/core/layout/LayoutBox.cpp b/chromium/third_party/WebKit/Source/core/layout/LayoutBox.cpp
index d192c995ed4..8bde145857e 100644
--- a/chromium/third_party/WebKit/Source/core/layout/LayoutBox.cpp
+++ b/chromium/third_party/WebKit/Source/core/layout/LayoutBox.cpp
@@ -187,6 +187,18 @@ void LayoutBox::StyleWillChange(StyleDifference diff,
if (flow_thread && flow_thread != this)
flow_thread->FlowThreadDescendantStyleWillChange(this, diff, new_style);
+ // The background of the root element or the body element could propagate up
+ // to the canvas. Just dirty the entire canvas when our style changes
+ // substantially.
+ if ((diff.NeedsFullPaintInvalidation() || diff.NeedsLayout()) &&
+ GetNode() && (IsDocumentElement() || IsHTMLBodyElement(*GetNode()))) {
+ View()->SetShouldDoFullPaintInvalidation();
+
+ if (old_style->HasEntirelyFixedBackground() !=
+ new_style.HasEntirelyFixedBackground())
+ View()->Compositor()->SetNeedsUpdateFixedBackground();
+ }
+
// When a layout hint happens and an object's position style changes, we
// have to do a layout to dirty the layout tree using the old position
// value now.
diff --git a/chromium/third_party/WebKit/Source/core/layout/LayoutView.cpp b/chromium/third_party/WebKit/Source/core/layout/LayoutView.cpp
index f6c7f5d5e9a..acaa480ebe7 100644
--- a/chromium/third_party/WebKit/Source/core/layout/LayoutView.cpp
+++ b/chromium/third_party/WebKit/Source/core/layout/LayoutView.cpp
@@ -928,33 +928,6 @@ bool LayoutView::PaintedOutputOfObjectHasNoEffectRegardlessOfSize() const {
return LayoutBlockFlow::PaintedOutputOfObjectHasNoEffectRegardlessOfSize();
}
-void LayoutView::StyleWillChange(StyleDifference diff,
- const ComputedStyle& new_style) {
- LayoutBlockFlow::StyleWillChange(diff, new_style);
-
- // TODO(rune@opera.com): Ideally, StyleWillChange for LayoutBlockFlow should
- // have been able to do the invalidation, but there is an early return in
- // LayoutObject::StyleDidChange which returns if parent_ is nullptr.
-
- if (const ComputedStyle* old_style = Style()) {
- // TODO(rune@opera.com): Consider checking diff.NeedsFullPaintInvalidation()
- // instead. That will currently lead to more invalidation rectangles. For
- // instance for computed overflow changes that would otherwise be
- // invalidated by root and body changes. Also zoom related changes will
- // cause extra invalidation rectangles to be recorded in paint/invalidation
- // layout tests.
- if (!old_style->BackgroundVisuallyEqual(new_style)) {
- // Paint invalidation of background propagated from root or body elements
- // to viewport.
- SetShouldDoFullPaintInvalidation();
- if (old_style->HasEntirelyFixedBackground() !=
- new_style.HasEntirelyFixedBackground()) {
- Compositor()->SetNeedsUpdateFixedBackground();
- }
- }
- }
-}
-
void LayoutView::UpdateCounters() {
if (!needs_counter_update_)
return;
diff --git a/chromium/third_party/WebKit/Source/core/layout/LayoutView.h b/chromium/third_party/WebKit/Source/core/layout/LayoutView.h
index e793757869d..523a36f98cc 100644
--- a/chromium/third_party/WebKit/Source/core/layout/LayoutView.h
+++ b/chromium/third_party/WebKit/Source/core/layout/LayoutView.h
@@ -248,9 +248,6 @@ class CORE_EXPORT LayoutView final : public LayoutBlockFlow {
// LocalFrameView or PaintLayerScrollableArea handle the scroll.
ScrollResult Scroll(ScrollGranularity, const FloatSize&) override;
- void StyleWillChange(StyleDifference,
- const ComputedStyle& new_style) override;
-
LayoutRect DebugRect() const override;
private:
diff --git a/chromium/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp b/chromium/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp
index 4bb9696ef87..8ef8813de2e 100644
--- a/chromium/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp
+++ b/chromium/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp
@@ -170,18 +170,8 @@ bool PrePaintTreeWalk::NeedsTreeBuilderContextUpdate(
object);
}
-void PrePaintTreeWalk::Walk(const LayoutObject& object,
- const PrePaintTreeWalkContext& parent_context) {
- // Early out from the tree walk if possible.
- bool needs_tree_builder_context_update =
- this->NeedsTreeBuilderContextUpdate(object, parent_context);
- if (!needs_tree_builder_context_update &&
- !object.ShouldCheckForPaintInvalidation())
- return;
-
- PrePaintTreeWalkContext context(parent_context,
- needs_tree_builder_context_update);
-
+void PrePaintTreeWalk::WalkInternal(const LayoutObject& object,
+ PrePaintTreeWalkContext& context) {
// This must happen before updatePropertiesForSelf, because the latter reads
// some of the state computed here.
UpdateAuxiliaryObjectProperties(object, context);
@@ -205,6 +195,20 @@ void PrePaintTreeWalk::Walk(const LayoutObject& object,
InvalidatePaintLayerOptimizationsIfNeeded(object, context);
}
+}
+
+void PrePaintTreeWalk::Walk(const LayoutObject& object,
+ const PrePaintTreeWalkContext& parent_context) {
+ // Early out from the tree walk if possible.
+ bool needs_tree_builder_context_update =
+ this->NeedsTreeBuilderContextUpdate(object, parent_context);
+ if (!needs_tree_builder_context_update &&
+ !object.ShouldCheckForPaintInvalidation())
+ return;
+
+ PrePaintTreeWalkContext context(parent_context,
+ needs_tree_builder_context_update);
+ WalkInternal(object, context);
for (const LayoutObject* child = object.SlowFirstChild(); child;
child = child->NextSibling()) {
diff --git a/chromium/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.h b/chromium/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.h
index 389bc763382..cd70c521d23 100644
--- a/chromium/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.h
+++ b/chromium/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.h
@@ -26,6 +26,13 @@ class CORE_EXPORT PrePaintTreeWalk {
private:
void Walk(LocalFrameView&, const PrePaintTreeWalkContext&);
+
+ // This is to minimize stack frame usage during recursion. Modern compilers
+ // (MSVC in particular) can inline across compilation units, resulting in
+ // very big stack frames. Splitting the heavy lifting to a separate function
+ // makes sure the stack frame is freed prior to making a recursive call.
+ // See https://crbug.com/781301 .
+ NOINLINE void WalkInternal(const LayoutObject&, PrePaintTreeWalkContext&);
void Walk(const LayoutObject&, const PrePaintTreeWalkContext&);
// Invalidates paint-layer painting optimizations, such as subsequence caching
diff --git a/chromium/third_party/WebKit/Source/core/paint/compositing/CompositedLayerMappingTest.cpp b/chromium/third_party/WebKit/Source/core/paint/compositing/CompositedLayerMappingTest.cpp
index c2e2cf1c4b6..d76e814a94c 100644
--- a/chromium/third_party/WebKit/Source/core/paint/compositing/CompositedLayerMappingTest.cpp
+++ b/chromium/third_party/WebKit/Source/core/paint/compositing/CompositedLayerMappingTest.cpp
@@ -2034,70 +2034,6 @@ TEST_P(CompositedLayerMappingTest,
ASSERT_TRUE(child_mapping->AncestorClippingMaskLayer());
}
-TEST_P(CompositedLayerMappingTest,
- BorderRadiusPreventsSquashingWithInlineTransform) {
- // When a node with inline transform has siblings with border radius and
- // composited children, those siblings must not be squashed because it
- // prevents application of a border radius clip mask.
- SetBodyInnerHTML(
- "<style>"
- " .precursor {"
- " width: 100px;"
- " height: 40px;"
- " }"
- " .container {"
- " position: relative;"
- " top: 20px;"
- " width: 100px;"
- " height: 40px;"
- " border: 1px solid black;"
- " border-radius: 10px;"
- " overflow: hidden;"
- " }"
- " .contents {"
- " height: 200px;"
- " width: 200px;"
- " position: relative;"
- " top: -10px;"
- " left: -10px;"
- " }"
- "</style>"
- "<div id='precursor' class='precursor'"
- " style='transform: translateZ(0);'>"
- "</div>"
- "<div id='container1' class='container'>"
- " <div id='contents1' class='contents'></div>"
- "</div>"
- "<div id='container2' class='container'>"
- " <div id='contents2' class='contents'></div>"
- "</div>");
- GetDocument().View()->UpdateAllLifecyclePhases();
-
- Element* first_child = GetDocument().getElementById("contents1");
- ASSERT_TRUE(first_child);
- PaintLayer* first_child_paint_layer =
- ToLayoutBoxModelObject(first_child->GetLayoutObject())->Layer();
- ASSERT_TRUE(first_child_paint_layer);
- CompositedLayerMapping* first_child_mapping =
- first_child_paint_layer->GetCompositedLayerMapping();
- ASSERT_TRUE(first_child_mapping);
- ASSERT_TRUE(first_child_mapping->AncestorClippingLayer());
- EXPECT_TRUE(first_child_mapping->AncestorClippingLayer()->MaskLayer());
- ASSERT_TRUE(first_child_mapping->AncestorClippingMaskLayer());
-
- Element* second_child = GetDocument().getElementById("contents2");
- ASSERT_TRUE(second_child);
- PaintLayer* second_child_paint_layer =
- ToLayoutBoxModelObject(second_child->GetLayoutObject())->Layer();
- ASSERT_TRUE(second_child_paint_layer);
- CompositedLayerMapping* second_child_mapping =
- second_child_paint_layer->GetCompositedLayerMapping();
- ASSERT_TRUE(second_child_mapping);
- ASSERT_TRUE(second_child_mapping->AncestorClippingLayer());
- EXPECT_TRUE(second_child_mapping->AncestorClippingLayer()->MaskLayer());
- ASSERT_TRUE(second_child_mapping->AncestorClippingMaskLayer());
-}
-
TEST_P(CompositedLayerMappingTest, StickyPositionMainThreadOffset) {
SetBodyInnerHTML(
"<style>.composited { backface-visibility: hidden; }"
diff --git a/chromium/third_party/WebKit/Source/core/paint/compositing/CompositingLayerAssigner.cpp b/chromium/third_party/WebKit/Source/core/paint/compositing/CompositingLayerAssigner.cpp
index 1969fe2c12c..6ba15f2b014 100644
--- a/chromium/third_party/WebKit/Source/core/paint/compositing/CompositingLayerAssigner.cpp
+++ b/chromium/third_party/WebKit/Source/core/paint/compositing/CompositingLayerAssigner.cpp
@@ -208,9 +208,6 @@ CompositingLayerAssigner::GetReasonsPreventingSquashing(
if (layer->EnclosingPaginationLayer())
return kSquashingDisallowedReasonFragmentedContent;
- if (layer->GetLayoutObject().Style()->HasBorderRadius())
- return kSquashingDisallowedReasonBorderRadiusClipsDescendants;
-
return kSquashingDisallowedReasonsNone;
}
diff --git a/chromium/third_party/WebKit/Source/modules/media_controls/MediaControlsImpl.h b/chromium/third_party/WebKit/Source/modules/media_controls/MediaControlsImpl.h
index 177744e8f48..5d22dc12e25 100644
--- a/chromium/third_party/WebKit/Source/modules/media_controls/MediaControlsImpl.h
+++ b/chromium/third_party/WebKit/Source/modules/media_controls/MediaControlsImpl.h
@@ -144,6 +144,7 @@ class MODULES_EXPORT MediaControlsImpl final : public HTMLDivElement,
friend class MediaControlsRotateToFullscreenDelegateTest;
friend class MediaControlsImplTest;
friend class MediaControlsImplInProductHelpTest;
+ friend class MediaControlTimelineElementTest;
// Need to be members of MediaControls for private member access.
class BatchedControlUpdate;
diff --git a/chromium/third_party/WebKit/Source/modules/media_controls/elements/MediaControlTimelineElement.cpp b/chromium/third_party/WebKit/Source/modules/media_controls/elements/MediaControlTimelineElement.cpp
index 167749245a9..724e052b0ef 100644
--- a/chromium/third_party/WebKit/Source/modules/media_controls/elements/MediaControlTimelineElement.cpp
+++ b/chromium/third_party/WebKit/Source/modules/media_controls/elements/MediaControlTimelineElement.cpp
@@ -81,7 +81,8 @@ void MediaControlTimelineElement::DefaultEventHandler(Event* event) {
bool started_from_thumb = thumb && thumb == event->target()->ToNode();
metrics_.StartGesture(started_from_thumb);
}
- if (event->type() == EventTypeNames::pointerup) {
+ if (event->type() == EventTypeNames::pointerup ||
+ event->type() == EventTypeNames::pointercancel) {
Platform::Current()->RecordAction(
UserMetricsAction("Media.Controls.ScrubbingEnd"));
GetMediaControls().EndScrubbing();
diff --git a/chromium/third_party/WebKit/Source/modules/media_controls/elements/MediaControlTimelineElement.h b/chromium/third_party/WebKit/Source/modules/media_controls/elements/MediaControlTimelineElement.h
index 3b703baa2ec..2fd98180bd0 100644
--- a/chromium/third_party/WebKit/Source/modules/media_controls/elements/MediaControlTimelineElement.h
+++ b/chromium/third_party/WebKit/Source/modules/media_controls/elements/MediaControlTimelineElement.h
@@ -5,6 +5,7 @@
#ifndef MediaControlTimelineElement_h
#define MediaControlTimelineElement_h
+#include "modules/ModulesExport.h"
#include "modules/media_controls/elements/MediaControlSliderElement.h"
#include "modules/media_controls/elements/MediaControlTimelineMetrics.h"
@@ -15,7 +16,7 @@ class MediaControlsImpl;
class MediaControlTimelineElement final : public MediaControlSliderElement {
public:
- explicit MediaControlTimelineElement(MediaControlsImpl&);
+ MODULES_EXPORT explicit MediaControlTimelineElement(MediaControlsImpl&);
// MediaControlInputElement overrides.
bool WillRespondToMouseClickEvents() override;
diff --git a/chromium/third_party/WebKit/Source/platform/graphics/SquashingDisallowedReasons.cpp b/chromium/third_party/WebKit/Source/platform/graphics/SquashingDisallowedReasons.cpp
index 1b7de607035..7f25de0ba20 100644
--- a/chromium/third_party/WebKit/Source/platform/graphics/SquashingDisallowedReasons.cpp
+++ b/chromium/third_party/WebKit/Source/platform/graphics/SquashingDisallowedReasons.cpp
@@ -65,10 +65,6 @@ const SquashingDisallowedReasonStringMap kSquashingDisallowedReasonStringMap[] =
{kSquashingDisallowedReasonFragmentedContent,
"SquashingDisallowedReasonFragmentedContent",
"Cannot squash layers that are inside fragmentation contexts."},
- {kSquashingDisallowedReasonBorderRadiusClipsDescendants,
- "SquashingDisallowedReasonBorderRadiusClipsDecendants",
- "Cannot squash layers that must apply a border radius clip to their "
- "decendants"},
};
const size_t kNumberOfSquashingDisallowedReasons =
diff --git a/chromium/third_party/WebKit/Source/platform/graphics/SquashingDisallowedReasons.h b/chromium/third_party/WebKit/Source/platform/graphics/SquashingDisallowedReasons.h
index 9fdc20af324..70b346c4fa5 100644
--- a/chromium/third_party/WebKit/Source/platform/graphics/SquashingDisallowedReasons.h
+++ b/chromium/third_party/WebKit/Source/platform/graphics/SquashingDisallowedReasons.h
@@ -29,7 +29,6 @@ enum SquashingDisallowedReason {
kSquashingDisallowedReasonSquashingLayerIsAnimating = 1 << 13,
kSquashingDisallowedReasonRenderingContextMismatch = 1 << 14,
kSquashingDisallowedReasonFragmentedContent = 1 << 15,
- kSquashingDisallowedReasonBorderRadiusClipsDescendants = 1 << 16,
};
typedef unsigned SquashingDisallowedReasons;
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp
index 32c1da691fd..4c75172943f 100644
--- a/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp
+++ b/chromium/third_party/angle/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp
@@ -1751,6 +1751,9 @@ gl::Error StateManager11::syncCurrentValueAttribs(const gl::State &glState)
currentValueAttrib->attribute = attrib;
currentValueAttrib->binding = &vertexBindings[attrib->bindingIndex];
+ mDirtyVertexBufferRange.extend(static_cast<unsigned int>(attribIndex));
+ mInputLayoutIsDirty = true;
+
ANGLE_TRY(mVertexDataManager.storeCurrentValue(currentValue, currentValueAttrib,
static_cast<size_t>(attribIndex)));
}
diff --git a/chromium/third_party/boringssl/src/crypto/curve25519/internal.h b/chromium/third_party/boringssl/src/crypto/curve25519/internal.h
index 9487a6c1360..4d79cb9d4f0 100644
--- a/chromium/third_party/boringssl/src/crypto/curve25519/internal.h
+++ b/chromium/third_party/boringssl/src/crypto/curve25519/internal.h
@@ -101,6 +101,26 @@ void x25519_ge_scalarmult_base(ge_p3 *h, const uint8_t a[32]);
void x25519_ge_scalarmult(ge_p2 *r, const uint8_t *scalar, const ge_p3 *A);
void x25519_sc_reduce(uint8_t *s);
+enum spake2_state_t {
+ spake2_state_init = 0,
+ spake2_state_msg_generated,
+ spake2_state_key_generated,
+};
+
+struct spake2_ctx_st {
+ uint8_t private_key[32];
+ uint8_t my_msg[32];
+ uint8_t password_scalar[32];
+ uint8_t password_hash[64];
+ uint8_t *my_name;
+ size_t my_name_len;
+ uint8_t *their_name;
+ size_t their_name_len;
+ enum spake2_role_t my_role;
+ enum spake2_state_t state;
+ char disable_password_scalar_hack;
+};
+
#if defined(__cplusplus)
} // extern C
diff --git a/chromium/third_party/boringssl/src/crypto/curve25519/spake25519.c b/chromium/third_party/boringssl/src/crypto/curve25519/spake25519.c
index 8ebedf99958..e17d510d7f3 100644
--- a/chromium/third_party/boringssl/src/crypto/curve25519/spake25519.c
+++ b/chromium/third_party/boringssl/src/crypto/curve25519/spake25519.c
@@ -14,6 +14,7 @@
#include <openssl/curve25519.h>
+#include <assert.h>
#include <string.h>
#include <openssl/bytestring.h>
@@ -267,25 +268,6 @@ static const uint8_t kSpakeMSmallPrecomp[15 * 2 * 32] = {
0xa6, 0x76, 0x81, 0x28, 0xb2, 0x65, 0xe8, 0x47, 0x14, 0xc6, 0x39, 0x06,
};
-enum spake2_state_t {
- spake2_state_init = 0,
- spake2_state_msg_generated,
- spake2_state_key_generated,
-};
-
-struct spake2_ctx_st {
- uint8_t private_key[32];
- uint8_t my_msg[32];
- uint8_t password_scalar[32];
- uint8_t password_hash[SHA512_DIGEST_LENGTH];
- uint8_t *my_name;
- size_t my_name_len;
- uint8_t *their_name;
- size_t their_name_len;
- enum spake2_role_t my_role;
- enum spake2_state_t state;
-};
-
SPAKE2_CTX *SPAKE2_CTX_new(enum spake2_role_t my_role,
const uint8_t *my_name, size_t my_name_len,
const uint8_t *their_name, size_t their_name_len) {
@@ -332,6 +314,48 @@ static void left_shift_3(uint8_t n[32]) {
}
}
+typedef union {
+ uint8_t bytes[32];
+ uint32_t words[8];
+} scalar;
+
+// kOrder is the order of the prime-order subgroup of curve25519 in
+// little-endian order.
+static const scalar kOrder = {{0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58,
+ 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10}};
+
+// scalar_cmov copies |src| to |dest| if |mask| is all ones.
+static void scalar_cmov(scalar *dest, const scalar *src, crypto_word_t mask) {
+ for (size_t i = 0; i < 8; i++) {
+ dest->words[i] =
+ constant_time_select_w(mask, src->words[i], dest->words[i]);
+ }
+}
+
+// scalar_double sets |s| to |2×s|.
+static void scalar_double(scalar *s) {
+ uint32_t carry = 0;
+
+ for (size_t i = 0; i < 8; i++) {
+ const uint32_t carry_out = s->words[i] >> 31;
+ s->words[i] = (s->words[i] << 1) | carry;
+ carry = carry_out;
+ }
+}
+
+// scalar_add sets |dest| to |dest| plus |src|.
+static void scalar_add(scalar *dest, const scalar *src) {
+ uint32_t carry = 0;
+
+ for (size_t i = 0; i < 8; i++) {
+ uint64_t tmp = ((uint64_t)dest->words[i] + src->words[i]) + carry;
+ dest->words[i] = (uint32_t)tmp;
+ carry = (uint32_t)(tmp >> 32);
+ }
+}
+
int SPAKE2_generate_msg(SPAKE2_CTX *ctx, uint8_t *out, size_t *out_len,
size_t max_out_len, const uint8_t *password,
size_t password_len) {
@@ -359,13 +383,61 @@ int SPAKE2_generate_msg(SPAKE2_CTX *ctx, uint8_t *out, size_t *out_len,
SHA512(password, password_len, password_tmp);
OPENSSL_memcpy(ctx->password_hash, password_tmp, sizeof(ctx->password_hash));
x25519_sc_reduce(password_tmp);
- OPENSSL_memcpy(ctx->password_scalar, password_tmp, sizeof(ctx->password_scalar));
+
+ // Due to a copy-paste error, the call to |left_shift_3| was omitted after
+ // the |x25519_sc_reduce|, just above. This meant that |ctx->password_scalar|
+ // was not a multiple of eight to clear the cofactor and thus three bits of
+ // the password hash would leak. In order to fix this in a unilateral way,
+ // points of small order are added to the mask point such that it is in the
+ // prime-order subgroup. Since the ephemeral scalar is a multiple of eight,
+ // these points will cancel out when calculating the shared secret.
+ //
+ // Adding points of small order is the same as adding multiples of the prime
+ // order to the password scalar. Since that's faster, that is what is done
+ // below. The prime order (kOrder) is a large prime, thus odd, thus the LSB
+ // is one. So adding it will flip the LSB. Adding twice it will flip the next
+ // bit and so one for all the bottom three bits.
+
+ scalar password_scalar;
+ OPENSSL_memcpy(&password_scalar, password_tmp, sizeof(password_scalar));
+
+ // |password_scalar| is the result of |x25519_sc_reduce| and thus is, at
+ // most, $l-1$ (where $l$ is |kOrder|, the order of the prime-order subgroup
+ // of Ed25519). In the following, we may add $l + 2×l + 4×l$ for a max value
+ // of $8×l-1$. That is < 2**256, as required.
+
+ if (!ctx->disable_password_scalar_hack) {
+ scalar order = kOrder;
+ scalar tmp;
+
+ OPENSSL_memset(&tmp, 0, sizeof(tmp));
+ scalar_cmov(&tmp, &order,
+ constant_time_eq_w(password_scalar.bytes[0] & 1, 1));
+ scalar_add(&password_scalar, &tmp);
+
+ scalar_double(&order);
+ OPENSSL_memset(&tmp, 0, sizeof(tmp));
+ scalar_cmov(&tmp, &order,
+ constant_time_eq_w(password_scalar.bytes[0] & 2, 2));
+ scalar_add(&password_scalar, &tmp);
+
+ scalar_double(&order);
+ OPENSSL_memset(&tmp, 0, sizeof(tmp));
+ scalar_cmov(&tmp, &order,
+ constant_time_eq_w(password_scalar.bytes[0] & 4, 4));
+ scalar_add(&password_scalar, &tmp);
+
+ assert((password_scalar.bytes[0] & 7) == 0);
+ }
+
+ OPENSSL_memcpy(ctx->password_scalar, password_scalar.bytes,
+ sizeof(ctx->password_scalar));
ge_p3 mask;
x25519_ge_scalarmult_small_precomp(&mask, ctx->password_scalar,
- ctx->my_role == spake2_role_alice
- ? kSpakeMSmallPrecomp
- : kSpakeNSmallPrecomp);
+ ctx->my_role == spake2_role_alice
+ ? kSpakeMSmallPrecomp
+ : kSpakeNSmallPrecomp);
// P* = P + mask.
ge_cached mask_cached;
diff --git a/chromium/third_party/boringssl/src/crypto/curve25519/spake25519_test.cc b/chromium/third_party/boringssl/src/crypto/curve25519/spake25519_test.cc
index cdf4ff580ec..3ebd0a9636a 100644
--- a/chromium/third_party/boringssl/src/crypto/curve25519/spake25519_test.cc
+++ b/chromium/third_party/boringssl/src/crypto/curve25519/spake25519_test.cc
@@ -23,6 +23,7 @@
#include <gtest/gtest.h>
#include "../internal.h"
+#include "internal.h"
// TODO(agl): add tests with fixed vectors once SPAKE2 is nailed down.
@@ -46,6 +47,13 @@ struct SPAKE2Run {
return false;
}
+ if (alice_disable_password_scalar_hack) {
+ alice->disable_password_scalar_hack = 1;
+ }
+ if (bob_disable_password_scalar_hack) {
+ bob->disable_password_scalar_hack = 1;
+ }
+
uint8_t alice_msg[SPAKE2_MAX_MSG_SIZE];
uint8_t bob_msg[SPAKE2_MAX_MSG_SIZE];
size_t alice_msg_len, bob_msg_len;
@@ -90,6 +98,8 @@ struct SPAKE2Run {
std::string bob_password = "password";
std::pair<std::string, std::string> alice_names = {"alice", "bob"};
std::pair<std::string, std::string> bob_names = {"bob", "alice"};
+ bool alice_disable_password_scalar_hack = false;
+ bool bob_disable_password_scalar_hack = false;
int alice_corrupt_msg_bit = -1;
private:
@@ -104,6 +114,24 @@ TEST(SPAKE25519Test, SPAKE2) {
}
}
+TEST(SPAKE25519Test, OldAlice) {
+ for (unsigned i = 0; i < 20; i++) {
+ SPAKE2Run spake2;
+ spake2.alice_disable_password_scalar_hack = true;
+ ASSERT_TRUE(spake2.Run());
+ EXPECT_TRUE(spake2.key_matches());
+ }
+}
+
+TEST(SPAKE25519Test, OldBob) {
+ for (unsigned i = 0; i < 20; i++) {
+ SPAKE2Run spake2;
+ spake2.bob_disable_password_scalar_hack = true;
+ ASSERT_TRUE(spake2.Run());
+ EXPECT_TRUE(spake2.key_matches());
+ }
+}
+
TEST(SPAKE25519Test, WrongPassword) {
SPAKE2Run spake2;
spake2.bob_password = "wrong password";
diff --git a/chromium/third_party/icu/README.chromium b/chromium/third_party/icu/README.chromium
index abefb878612..d48c31f6c16 100644
--- a/chromium/third_party/icu/README.chromium
+++ b/chromium/third_party/icu/README.chromium
@@ -318,3 +318,10 @@ D. Local Modifications
https://ssl.icu-project.org/trac/ticket/12770
- patches/timezone_detection.patch
+
+13. Persian calendar range fix.
+
+ https://ssl.icu-project.org/trac/changeset/40654
+ http://crbug.com/774382
+
+ - patches/persian_cal.patch (fixed in ICU 60.1)
diff --git a/chromium/third_party/icu/common/icudtb.dat b/chromium/third_party/icu/common/icudtb.dat
index 099fff40afa..e48fd0e4d07 100644
--- a/chromium/third_party/icu/common/icudtb.dat
+++ b/chromium/third_party/icu/common/icudtb.dat
Binary files differ
diff --git a/chromium/third_party/icu/common/icudtl.dat b/chromium/third_party/icu/common/icudtl.dat
index a9c427fbf11..13c7a1f5b66 100644
--- a/chromium/third_party/icu/common/icudtl.dat
+++ b/chromium/third_party/icu/common/icudtl.dat
Binary files differ
diff --git a/chromium/third_party/icu/patches/persian_cal.patch b/chromium/third_party/icu/patches/persian_cal.patch
new file mode 100644
index 00000000000..d0014c4702d
--- /dev/null
+++ b/chromium/third_party/icu/patches/persian_cal.patch
@@ -0,0 +1,51 @@
+diff --git a/source/i18n/gregoimp.cpp b/source/i18n/gregoimp.cpp
+index e62044b3..537aa19d 100644
+--- a/source/i18n/gregoimp.cpp
++++ b/source/i18n/gregoimp.cpp
+@@ -27,6 +27,11 @@ int32_t ClockMath::floorDivide(int32_t numerator, int32_t denominator) {
+ numerator / denominator : ((numerator + 1) / denominator) - 1;
+ }
+
++int64_t ClockMath::floorDivide(int64_t numerator, int64_t denominator) {
++ return (numerator >= 0) ?
++ numerator / denominator : ((numerator + 1) / denominator) - 1;
++}
++
+ int32_t ClockMath::floorDivide(double numerator, int32_t denominator,
+ int32_t& remainder) {
+ double quotient;
+diff --git a/source/i18n/gregoimp.h b/source/i18n/gregoimp.h
+index b3074167..afaacda0 100644
+--- a/source/i18n/gregoimp.h
++++ b/source/i18n/gregoimp.h
+@@ -40,6 +40,17 @@ class ClockMath {
+ */
+ static int32_t floorDivide(int32_t numerator, int32_t denominator);
+
++ /**
++ * Divide two integers, returning the floor of the quotient.
++ * Unlike the built-in division, this is mathematically
++ * well-behaved. E.g., <code>-1/4</code> => 0 but
++ * <code>floorDivide(-1,4)</code> => -1.
++ * @param numerator the numerator
++ * @param denominator a divisor which must be != 0
++ * @return the floor of the quotient
++ */
++ static int64_t floorDivide(int64_t numerator, int64_t denominator);
++
+ /**
+ * Divide two numbers, returning the floor of the quotient.
+ * Unlike the built-in division, this is mathematically
+diff --git a/source/i18n/persncal.cpp b/source/i18n/persncal.cpp
+index f66ac676..f38f779f 100644
+--- a/source/i18n/persncal.cpp
++++ b/source/i18n/persncal.cpp
+@@ -213,7 +213,7 @@ void PersianCalendar::handleComputeFields(int32_t julianDay, UErrorCode &/*statu
+ int32_t year, month, dayOfMonth, dayOfYear;
+
+ int32_t daysSinceEpoch = julianDay - PERSIAN_EPOCH;
+- year = 1 + ClockMath::floorDivide(33 * daysSinceEpoch + 3, 12053);
++ year = 1 + (int32_t)ClockMath::floorDivide(33 * (int64_t)daysSinceEpoch + 3, (int64_t)12053);
+
+ int32_t farvardin1 = 365 * (year - 1) + ClockMath::floorDivide(8 * year + 21, 33);
+ dayOfYear = (daysSinceEpoch - farvardin1); // 0-based
diff --git a/chromium/third_party/icu/source/data/misc/metaZones.txt b/chromium/third_party/icu/source/data/misc/metaZones.txt
index 5af96ba9152..e90883d24c6 100644
--- a/chromium/third_party/icu/source/data/misc/metaZones.txt
+++ b/chromium/third_party/icu/source/data/misc/metaZones.txt
@@ -912,6 +912,11 @@ metaZones:table(nofallback){
{
"Africa_Eastern",
"2000-01-15 10:00",
+ "2017-10-31 21:00",
+ }
+ {
+ "Africa_Central",
+ "2017-10-31 21:00",
"9999-12-31 23:59",
}
}
@@ -1078,11 +1083,16 @@ metaZones:table(nofallback){
{
"Africa_Central",
"1990-03-20 22:00",
- "1994-04-02 22:00",
+ "1994-03-20 22:00",
}
{
"Africa_Western",
- "1994-04-02 22:00",
+ "1994-03-20 22:00",
+ "2017-09-03 01:00",
+ }
+ {
+ "Africa_Central",
+ "2017-09-03 01:00",
"9999-12-31 23:59",
}
}
@@ -1637,6 +1647,11 @@ metaZones:table(nofallback){
{
"Atlantic",
"2015-11-01 06:00",
+ "2018-03-11 07:00",
+ }
+ {
+ "America_Eastern",
+ "2018-03-11 07:00",
"9999-12-31 23:59",
}
}
diff --git a/chromium/third_party/icu/source/data/misc/windowsZones.txt b/chromium/third_party/icu/source/data/misc/windowsZones.txt
index fdad2a665c8..ec393d912b0 100644
--- a/chromium/third_party/icu/source/data/misc/windowsZones.txt
+++ b/chromium/third_party/icu/source/data/misc/windowsZones.txt
@@ -58,7 +58,7 @@ windowsZones:table(nofallback){
}
"Astrakhan Standard Time"{
001{"Europe/Astrakhan"}
- RU{"Europe/Astrakhan Europe/Saratov Europe/Ulyanovsk"}
+ RU{"Europe/Astrakhan Europe/Ulyanovsk"}
}
"Atlantic Standard Time"{
001{"America/Halifax"}
@@ -372,6 +372,11 @@ windowsZones:table(nofallback){
001{"Asia/Magadan"}
RU{"Asia/Magadan"}
}
+ "Magallanes Standard Time"{
+ 001{"America/Punta_Arenas"}
+ AQ{"Antarctica/Palmer"}
+ CL{"America/Punta_Arenas"}
+ }
"Marquesas Standard Time"{
001{"Pacific/Marquesas"}
PF{"Pacific/Marquesas"}
@@ -503,12 +508,11 @@ windowsZones:table(nofallback){
}
"SA Eastern Standard Time"{
001{"America/Cayenne"}
- AQ{"Antarctica/Rothera Antarctica/Palmer"}
+ AQ{"Antarctica/Rothera"}
BR{
"America/Fortaleza America/Belem America/Maceio America/Recife Americ"
"a/Santarem"
}
- CL{"America/Punta_Arenas"}
FK{"Atlantic/Stanley"}
GF{"America/Cayenne"}
SR{"America/Paramaribo"}
@@ -579,6 +583,10 @@ windowsZones:table(nofallback){
001{"Pacific/Apia"}
WS{"Pacific/Apia"}
}
+ "Saratov Standard Time"{
+ 001{"Europe/Saratov"}
+ RU{"Europe/Saratov"}
+ }
"Singapore Standard Time"{
001{"Asia/Singapore"}
BN{"Asia/Brunei"}
@@ -637,10 +645,7 @@ windowsZones:table(nofallback){
}
"Tonga Standard Time"{
001{"Pacific/Tongatapu"}
- KI{"Pacific/Enderbury"}
- TK{"Pacific/Fakaofo"}
TO{"Pacific/Tongatapu"}
- ZZ{"Etc/GMT-13"}
}
"Transbaikal Standard Time"{
001{"Asia/Chita"}
@@ -681,6 +686,12 @@ windowsZones:table(nofallback){
WF{"Pacific/Wallis"}
ZZ{"Etc/GMT-12"}
}
+ "UTC+13"{
+ 001{"Etc/GMT-13"}
+ KI{"Pacific/Enderbury"}
+ TK{"Pacific/Fakaofo"}
+ ZZ{"Etc/GMT-13"}
+ }
"UTC-02"{
001{"Etc/GMT+2"}
BR{"America/Noronha"}
diff --git a/chromium/third_party/icu/source/data/misc/zoneinfo64.txt b/chromium/third_party/icu/source/data/misc/zoneinfo64.txt
index 872958f9017..154470b3ac5 100644
--- a/chromium/third_party/icu/source/data/misc/zoneinfo64.txt
+++ b/chromium/third_party/icu/source/data/misc/zoneinfo64.txt
@@ -3,17 +3,17 @@
// License & terms of use: http://www.unicode.org/copyright.html#License
//---------------------------------------------------------
// Build tool: tz2icu
-// Build date: Mon Mar 20 17:49:58 2017
+// Build date: Tue Oct 24 17:35:27 2017
// tz database: ftp://ftp.iana.org/tz/
-// tz version: 2017b
-// ICU version: 59.1
+// tz version: 2017c
+// ICU version: 60.1
//---------------------------------------------------------
// >> !!! >> THIS IS A MACHINE-GENERATED FILE << !!! <<
// >> !!! >>> DO NOT EDIT <<< !!! <<
//---------------------------------------------------------
zoneinfo64:table(nofallback) {
- TZVersion { "2017b" }
+ TZVersion { "2017c" }
Zones:array {
/* ACT */ :int { 354 } //Z#0
/* AET */ :int { 366 } //Z#1
@@ -100,13 +100,16 @@ zoneinfo64:table(nofallback) {
typeMap:bin { "010203020302" }
links:intvector { 30, 44, 45 }
} //Z#30
- /* Africa/Juba */ :int { 33 } //Z#31
+ /* Africa/Juba */ :table {
+ trans:intvector { -1230775588, 10360800, 24786000, 41810400, 56322000, 73432800, 87944400, 104882400, 119480400, 136332000, 151016400, 167781600, 182552400, 199231200, 214174800, 230680800, 245710800, 262735200, 277246800, 294184800, 308782800, 325634400, 340405200, 357084000, 371941200, 388533600, 403477200, 419983200, 435013200, 452037600, 466635600, 483487200, 498171600, 947930400 }
+ typeOffsets:intvector { 7588, 0, 7200, 0, 7200, 3600, 10800, 0 }
+ typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201020103" }
+ } //Z#31
/* Africa/Kampala */ :int { 48 } //Z#32
/* Africa/Khartoum */ :table {
- trans:intvector { -1230775808, 10360800, 24786000, 41810400, 56322000, 73432800, 87944400, 104882400, 119480400, 136332000, 151016400, 167781600, 182552400, 199231200, 214174800, 230680800, 245710800, 262735200, 277246800, 294184800, 308782800, 325634400, 340405200, 357084000, 371941200, 388533600, 403477200, 419983200, 435013200, 452037600, 466635600, 483487200, 498171600, 947930400 }
+ trans:intvector { -1230775808, 10360800, 24786000, 41810400, 56322000, 73432800, 87944400, 104882400, 119480400, 136332000, 151016400, 167781600, 182552400, 199231200, 214174800, 230680800, 245710800, 262735200, 277246800, 294184800, 308782800, 325634400, 340405200, 357084000, 371941200, 388533600, 403477200, 419983200, 435013200, 452037600, 466635600, 483487200, 498171600, 947930400, 1509483600 }
typeOffsets:intvector { 7808, 0, 7200, 0, 7200, 3600, 10800, 0 }
- typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201020103" }
- links:intvector { 31, 33 }
+ typeMap:bin { "0102010201020102010201020102010201020102010201020102010201020102010301" }
} //Z#33
/* Africa/Kigali */ :int { 43 } //Z#34
/* Africa/Kinshasa */ :int { 36 } //Z#35
@@ -167,17 +170,14 @@ zoneinfo64:table(nofallback) {
} //Z#57
/* Africa/Windhoek */ :table {
transPre32:intvector { -1, 1836796792 }
- trans:intvector { -2109288600, -860976000, -845254800, 765324000, 778640400, 796780800, 810090000 }
+ trans:intvector { -2109288600, -860976000, -845254800, 764200800, 778640400, 796780800, 810090000, 828835200, 841539600, 860284800, 873594000, 891734400, 905043600, 923184000, 936493200, 954633600, 967942800, 986083200, 999392400, 1018137600, 1030842000, 1049587200, 1062896400, 1081036800, 1094346000, 1112486400, 1125795600, 1143936000, 1157245200, 1175385600, 1188694800, 1207440000, 1220749200, 1238889600, 1252198800, 1270339200, 1283648400, 1301788800, 1315098000, 1333238400, 1346547600, 1365292800, 1377997200, 1396742400, 1410051600, 1428192000, 1441501200, 1459641600, 1472950800, 1491091200, 1504400400 }
typeOffsets:intvector { 4104, 0, 3600, 0, 3600, 3600, 5400, 0, 7200, 0, 7200, 3600 }
- typeMap:bin { "0304050401020102" }
- finalRule { "Namibia" }
- finalRaw:int { 3600 }
- finalYear:int { 1996 }
+ typeMap:bin { "03040504010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020104" }
} //Z#58
/* America/Adak */ :table {
- transPre32:intvector { -1, 1069611295, -1, 2106022494 }
+ transPre32:intvector { -1, 1069743569, -1, 2106022494 }
trans:intvector { -880196400, -765374400, -21466800, -5745600, 9982800, 25704000, 41432400, 57758400, 73486800, 89208000, 104936400, 120657600, 126709200, 152107200, 162392400, 183556800, 199285200, 215611200, 230734800, 247060800, 262789200, 278510400, 294238800, 309960000, 325688400, 341409600, 357138000, 372859200, 388587600, 404913600, 420037200, 436363200, 452088000, 467809200, 483537600, 499258800, 514987200, 530708400, 544622400, 562158000, 576072000, 594212400, 607521600, 625662000, 638971200, 657111600, 671025600, 688561200, 702475200, 720010800, 733924800, 752065200, 765374400, 783514800, 796824000, 814964400, 828878400, 846414000, 860328000, 877863600, 891777600, 909313200, 923227200, 941367600, 954676800, 972817200, 986126400, 1004266800, 1018180800, 1035716400, 1049630400, 1067166000, 1081080000, 1099220400, 1112529600, 1130670000, 1143979200, 1162119600, 1173614400, 1194174000 }
- typeOffsets:intvector { 44001, 0, -42398, 0, -39600, 0, -39600, 3600, -36000, 0, -36000, 3600 }
+ typeOffsets:intvector { 44002, 0, -42398, 0, -39600, 0, -39600, 3600, -36000, 0, -36000, 3600 }
typeMap:bin { "01020302030203020302030203020302030203020302030203020302030203020304050405040504050405040504050405040504050405040504050405040504050405040504050405040504050405040504" }
finalRule { "US" }
finalRaw:int { -36000 }
@@ -185,7 +185,7 @@ zoneinfo64:table(nofallback) {
links:intvector { 59, 80, 615 }
} //Z#59
/* America/Anchorage */ :table {
- transPre32:intvector { -1, 1069604872, -1, 2106016072 }
+ transPre32:intvector { -1, 1069743569, -1, 2106016072 }
trans:intvector { -880200000, -765378000, -21470400, -5749200, 9979200, 25700400, 41428800, 57754800, 73483200, 89204400, 104932800, 120654000, 126705600, 152103600, 162388800, 183553200, 199281600, 215607600, 230731200, 247057200, 262785600, 278506800, 294235200, 309956400, 325684800, 341406000, 357134400, 372855600, 388584000, 404910000, 420033600, 436359600, 452084400, 467805600, 483534000, 499255200, 514983600, 530704800, 544618800, 562154400, 576068400, 594208800, 607518000, 625658400, 638967600, 657108000, 671022000, 688557600, 702471600, 720007200, 733921200, 752061600, 765370800, 783511200, 796820400, 814960800, 828874800, 846410400, 860324400, 877860000, 891774000, 909309600, 923223600, 941364000, 954673200, 972813600, 986122800, 1004263200, 1018177200, 1035712800, 1049626800, 1067162400, 1081076400, 1099216800, 1112526000, 1130666400, 1143975600, 1162116000, 1173610800, 1194170400 }
typeOffsets:intvector { 50424, 0, -36000, 0, -36000, 3600, -35976, 0, -32400, 0, -32400, 3600 }
typeMap:bin { "03010201020102010201020102010201020102010201020102010201020102010204050405040504050405040504050405040504050405040504050405040504050405040504050405040504050405040504" }
@@ -461,9 +461,9 @@ zoneinfo64:table(nofallback) {
links:intvector { 109, 204, 543, 623 }
} //Z#109
/* America/Detroit */ :table {
- trans:intvector { -2051202469, -1724083200, -880218000, -765396000, -684349200, -671047200, -80499600, -68666400, 104914800, 120636000, 126687600, 152085600, 167814000, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600, 1173596400, 1194156000 }
+ trans:intvector { -2051202469, -1724083200, -880218000, -765396000, -684349200, -671047200, 104914800, 120636000, 126687600, 152085600, 167814000, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600, 1173596400, 1194156000 }
typeOffsets:intvector { -19931, 0, -21600, 0, -18000, 0, -18000, 3600 }
- typeMap:bin { "010203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302" }
+ typeMap:bin { "01020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302" }
finalRule { "US" }
finalRaw:int { -18000 }
finalYear:int { 2008 }
@@ -529,9 +529,12 @@ zoneinfo64:table(nofallback) {
} //Z#121
/* America/Grand_Turk */ :table {
transPre32:intvector { -1, 1770462768 }
- trans:intvector { -1827687169, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600, 1173596400, 1194156000, 1205046000, 1225605600, 1236495600, 1257055200, 1268550000, 1289109600, 1299999600, 1320559200, 1331449200, 1352008800, 1362898800, 1383458400, 1394348400, 1414908000, 1425798000, 1446357600 }
+ trans:intvector { -1827687169, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600, 1173596400, 1194156000, 1205046000, 1225605600, 1236495600, 1257055200, 1268550000, 1289109600, 1299999600, 1320559200, 1331449200, 1352008800, 1362898800, 1383458400, 1394348400, 1414908000, 1425798000, 1446357600, 1520751600, 1541311200 }
typeOffsets:intvector { -17072, 0, -18431, 0, -18000, 0, -18000, 3600, -14400, 0 }
- typeMap:bin { "01020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020304" }
+ typeMap:bin { "010203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203040302" }
+ finalRule { "US" }
+ finalRaw:int { -18000 }
+ finalYear:int { 2019 }
} //Z#122
/* America/Grenada */ :int { 186 } //Z#123
/* America/Guadeloupe */ :int { 186 } //Z#124
@@ -674,7 +677,7 @@ zoneinfo64:table(nofallback) {
} //Z#142
/* America/Jujuy */ :int { 68 } //Z#143
/* America/Juneau */ :table {
- transPre32:intvector { -1, 1069601157, -1, 2106012357 }
+ transPre32:intvector { -1, 1069743569, -1, 2106012357 }
trans:intvector { -880207200, -765385200, -21477600, -5756400, 9972000, 25693200, 41421600, 57747600, 73476000, 89197200, 104925600, 120646800, 126698400, 152096400, 162381600, 183546000, 199274400, 215600400, 230724000, 247050000, 262778400, 278499600, 294228000, 309949200, 325677600, 341402400, 357127200, 372848400, 388576800, 404902800, 420026400, 436352400, 452084400, 467805600, 483534000, 499255200, 514983600, 530704800, 544618800, 562154400, 576068400, 594208800, 607518000, 625658400, 638967600, 657108000, 671022000, 688557600, 702471600, 720007200, 733921200, 752061600, 765370800, 783511200, 796820400, 814960800, 828874800, 846410400, 860324400, 877860000, 891774000, 909309600, 923223600, 941364000, 954673200, 972813600, 986122800, 1004263200, 1018177200, 1035712800, 1049626800, 1067162400, 1081076400, 1099216800, 1112526000, 1130666400, 1143975600, 1162116000, 1173610800, 1194170400 }
typeOffsets:intvector { 54139, 0, -32400, 0, -32400, 3600, -32261, 0, -28800, 0, -28800, 3600 }
typeMap:bin { "03040504050405040504050405040504050405040504050405040204050405040501020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
@@ -785,7 +788,7 @@ zoneinfo64:table(nofallback) {
finalYear:int { 2003 }
} //Z#163
/* America/Metlakatla */ :table {
- transPre32:intvector { -1, 1069600474, -1, 2106011674 }
+ transPre32:intvector { -1, 1069743569, -1, 2106011674 }
trans:intvector { -880207200, -765385200, -21477600, -5756400, 9972000, 25693200, 41421600, 57747600, 73476000, 89197200, 104925600, 120646800, 126698400, 152096400, 162381600, 183546000, 199274400, 215600400, 230724000, 247050000, 262778400, 278499600, 294228000, 309949200, 325677600, 341398800, 357127200, 372848400, 388576800, 404902800, 420026400, 436352400, 1446372000, 1457866800, 1478426400 }
typeOffsets:intvector { 54822, 0, -32400, 0, -32400, 3600, -31578, 0, -28800, 0, -28800, 3600 }
typeMap:bin { "03040504050405040504050405040504050405040504050405040504050405040504010201" }
@@ -862,9 +865,9 @@ zoneinfo64:table(nofallback) {
finalYear:int { 2008 }
} //Z#174
/* America/Nome */ :table {
- transPre32:intvector { -1, 1069608595, -1, 2106019794 }
+ transPre32:intvector { -1, 1069743569, -1, 2106019794 }
trans:intvector { -880196400, -765374400, -21466800, -5745600, 9982800, 25704000, 41432400, 57758400, 73486800, 89208000, 104936400, 120657600, 126709200, 152107200, 162392400, 183556800, 199285200, 215611200, 230734800, 247060800, 262789200, 278510400, 294238800, 309960000, 325688400, 341409600, 357138000, 372859200, 388587600, 404913600, 420037200, 436363200, 452084400, 467805600, 483534000, 499255200, 514983600, 530704800, 544618800, 562154400, 576068400, 594208800, 607518000, 625658400, 638967600, 657108000, 671022000, 688557600, 702471600, 720007200, 733921200, 752061600, 765370800, 783511200, 796820400, 814960800, 828874800, 846410400, 860324400, 877860000, 891774000, 909309600, 923223600, 941364000, 954673200, 972813600, 986122800, 1004263200, 1018177200, 1035712800, 1049626800, 1067162400, 1081076400, 1099216800, 1112526000, 1130666400, 1143975600, 1162116000, 1173610800, 1194170400 }
- typeOffsets:intvector { 46701, 0, -39698, 0, -39600, 0, -39600, 3600, -32400, 0, -32400, 3600 }
+ typeOffsets:intvector { 46702, 0, -39698, 0, -39600, 0, -39600, 3600, -32400, 0, -32400, 3600 }
typeMap:bin { "01020302030203020302030203020302030203020302030203020302030203020304050405040504050405040504050405040504050405040504050405040504050405040504050405040504050405040504" }
finalRule { "US" }
finalRaw:int { -32400 }
@@ -1056,7 +1059,7 @@ zoneinfo64:table(nofallback) {
} //Z#203
/* America/Shiprock */ :int { 109 } //Z#204
/* America/Sitka */ :table {
- transPre32:intvector { -1, 1069601369, -1, 2106012569 }
+ transPre32:intvector { -1, 1069743569, -1, 2106012569 }
trans:intvector { -880207200, -765385200, -21477600, -5756400, 9972000, 25693200, 41421600, 57747600, 73476000, 89197200, 104925600, 120646800, 126698400, 152096400, 162381600, 183546000, 199274400, 215600400, 230724000, 247050000, 262778400, 278499600, 294228000, 309949200, 325677600, 341398800, 357127200, 372848400, 388576800, 404902800, 420026400, 436352400, 452084400, 467805600, 483534000, 499255200, 514983600, 530704800, 544618800, 562154400, 576068400, 594208800, 607518000, 625658400, 638967600, 657108000, 671022000, 688557600, 702471600, 720007200, 733921200, 752061600, 765370800, 783511200, 796820400, 814960800, 828874800, 846410400, 860324400, 877860000, 891774000, 909309600, 923223600, 941364000, 954673200, 972813600, 986122800, 1004263200, 1018177200, 1035712800, 1049626800, 1067162400, 1081076400, 1099216800, 1112526000, 1130666400, 1143975600, 1162116000, 1173610800, 1194170400 }
typeOffsets:intvector { 53927, 0, -32473, 0, -32400, 0, -32400, 3600, -28800, 0, -28800, 3600 }
typeMap:bin { "01040504050405040504050405040504050405040504050405040504050405040502030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302" }
@@ -1157,7 +1160,7 @@ zoneinfo64:table(nofallback) {
links:intvector { 222, 384 }
} //Z#222
/* America/Yakutat */ :table {
- transPre32:intvector { -1, 1069602431, -1, 2106013631 }
+ transPre32:intvector { -1, 1069743569, -1, 2106013631 }
trans:intvector { -880203600, -765381600, -21474000, -5752800, 9975600, 25696800, 41425200, 57751200, 73479600, 89200800, 104929200, 120650400, 126702000, 152100000, 162385200, 183549600, 199278000, 215604000, 230727600, 247053600, 262782000, 278503200, 294231600, 309952800, 325681200, 341402400, 357130800, 372852000, 388580400, 404906400, 420030000, 436356000, 452084400, 467805600, 483534000, 499255200, 514983600, 530704800, 544618800, 562154400, 576068400, 594208800, 607518000, 625658400, 638967600, 657108000, 671022000, 688557600, 702471600, 720007200, 733921200, 752061600, 765370800, 783511200, 796820400, 814960800, 828874800, 846410400, 860324400, 877860000, 891774000, 909309600, 923223600, 941364000, 954673200, 972813600, 986122800, 1004263200, 1018177200, 1035712800, 1049626800, 1067162400, 1081076400, 1099216800, 1112526000, 1130666400, 1143975600, 1162116000, 1173610800, 1194170400 }
typeOffsets:intvector { 52865, 0, -33535, 0, -32400, 0, -32400, 3600 }
typeMap:bin { "01020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302" }
@@ -1365,9 +1368,12 @@ zoneinfo64:table(nofallback) {
typeMap:bin { "010304030403040304030403040304030403040304030201" }
} //Z#266
/* Asia/Famagusta */ :table {
- trans:intvector { -1518920148, 166572000, 182293200, 200959200, 213829200, 228866400, 243982800, 260316000, 276123600, 291765600, 307486800, 323820000, 338936400, 354664800, 370386000, 386114400, 401835600, 417564000, 433285200, 449013600, 465339600, 481068000, 496789200, 512517600, 528238800, 543967200, 559688400, 575416800, 591138000, 606866400, 622587600, 638316000, 654642000, 670370400, 686091600, 701820000, 717541200, 733269600, 748990800, 764719200, 780440400, 796168800, 811890000, 828223200, 843944400, 859672800, 875394000, 891122400, 909277200, 922582800, 941331600, 954032400, 972781200, 985482000, 1004230800, 1017536400, 1035680400, 1048986000, 1067130000, 1080435600, 1099184400, 1111885200, 1130634000, 1143334800, 1162083600, 1174784400, 1193533200, 1206838800, 1224982800, 1238288400, 1256432400, 1269738000, 1288486800, 1301187600, 1319936400, 1332637200, 1351386000, 1364691600, 1382835600, 1396141200, 1414285200, 1427590800, 1445734800, 1459040400, 1473282000 }
+ trans:intvector { -1518920148, 166572000, 182293200, 200959200, 213829200, 228866400, 243982800, 260316000, 276123600, 291765600, 307486800, 323820000, 338936400, 354664800, 370386000, 386114400, 401835600, 417564000, 433285200, 449013600, 465339600, 481068000, 496789200, 512517600, 528238800, 543967200, 559688400, 575416800, 591138000, 606866400, 622587600, 638316000, 654642000, 670370400, 686091600, 701820000, 717541200, 733269600, 748990800, 764719200, 780440400, 796168800, 811890000, 828223200, 843944400, 859672800, 875394000, 891122400, 909277200, 922582800, 941331600, 954032400, 972781200, 985482000, 1004230800, 1017536400, 1035680400, 1048986000, 1067130000, 1080435600, 1099184400, 1111885200, 1130634000, 1143334800, 1162083600, 1174784400, 1193533200, 1206838800, 1224982800, 1238288400, 1256432400, 1269738000, 1288486800, 1301187600, 1319936400, 1332637200, 1351386000, 1364691600, 1382835600, 1396141200, 1414285200, 1427590800, 1445734800, 1459040400, 1473282000, 1509238800, 1521939600, 1540688400 }
typeOffsets:intvector { 8148, 0, 7200, 0, 7200, 3600, 10800, 0 }
- typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010203" }
+ typeMap:bin { "01020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010203010201" }
+ finalRule { "EUAsia" }
+ finalRaw:int { 7200 }
+ finalYear:int { 2019 }
} //Z#267
/* Asia/Gaza */ :table {
transPre32:intvector { -1, 2109557424 }
@@ -1462,10 +1468,10 @@ zoneinfo64:table(nofallback) {
typeMap:bin { "01030403040304030403040304030403040304030403020103040304030403040304030403040304030403040304030403050605060506050605060506050605070503" }
} //Z#285
/* Asia/Kolkata */ :table {
- transPre32:intvector { -1, 1454805288 }
- trans:intvector { -891582800, -872058600, -862637400, -764145000 }
- typeOffsets:intvector { 21208, 0, 19800, 0, 19800, 3600, 21200, 0, 23400, 0 }
- typeMap:bin { "0304010201" }
+ transPre32:intvector { -1, 649730088, -1, 1139272496 }
+ trans:intvector { -2019705670, -891581400, -872058600, -862637400, -764145000 }
+ typeOffsets:intvector { 21208, 0, 19270, 0, 19800, 0, 19800, 3600, 21200, 0 }
+ typeMap:bin { "04010203020302" }
links:intvector { 255, 286, 512 }
} //Z#286
/* Asia/Krasnoyarsk */ :table {
@@ -1680,8 +1686,8 @@ zoneinfo64:table(nofallback) {
typeMap:bin { "0103040304030403040304030403040304030403040302010304030403040304030403040304030403040304030403040304030403040304030403040304030503" }
} //Z#332
/* Asia/Yangon */ :table {
- trans:intvector { -1577946280, -873268200, -778410000 }
- typeOffsets:intvector { 23080, 0, 23400, 0, 32400, 0 }
+ trans:intvector { -1577946287, -873268200, -778410000 }
+ typeOffsets:intvector { 23087, 0, 23400, 0, 32400, 0 }
typeMap:bin { "010201" }
links:intvector { 307, 333 }
} //Z#333
@@ -2134,7 +2140,7 @@ zoneinfo64:table(nofallback) {
} //Z#451
/* Europe/Dublin */ :table {
transPre32:intvector { -1, 1473317596 }
- trans:intvector { -1691962479, -1680471279, -1664143200, -1650146400, -1633903200, -1617487200, -1601848800, -1586037600, -1570399200, -1552168800, -1538344800, -1522533600, -1507500000, -1490565600, -1473631200, -1460930400, -1442786400, -1428876000, -1410732000, -1396216800, -1379282400, -1364767200, -1348437600, -1333317600, -1315778400, -1301263200, -1284328800, -1269813600, -1253484000, -1238364000, -1221429600, -1206914400, -1189980000, -1175464800, -1159135200, -1143410400, -1126476000, -1111960800, -1095631200, -1080511200, -1063576800, -1049061600, -1032127200, -1017612000, -1001282400, -986162400, -969228000, -950479200, -942012000, -733359600, -719445600, -699490800, -684972000, -668037600, -654732000, -636588000, -622072800, -605743200, -590623200, -574293600, -558568800, -542239200, -527119200, -512604000, -496274400, -481154400, -464220000, -449704800, -432165600, -417650400, -401320800, -386200800, -369266400, -354751200, -337816800, -323301600, -306972000, -291852000, -276732000, -257983200, -245282400, -226533600, -213228000, -195084000, -182383200, -163634400, -150933600, -132184800, -119484000, -100735200, -88034400, -68680800, -59004000, -37242000, 57722400, 69818400, 89172000, 101268000, 120621600, 132717600, 152071200, 164167200, 183520800, 196221600, 214970400, 227671200, 246420000, 259120800, 278474400, 290570400, 309924000, 322020000, 341373600, 354675600, 372819600, 386125200, 404269200, 417574800, 435718800, 449024400, 467773200, 481078800, 499222800, 512528400, 530672400, 543978000, 562122000, 575427600, 593571600, 606877200, 625626000, 638326800, 657075600, 670381200, 688525200, 701830800, 719974800, 733280400, 751424400, 764730000, 782874000, 796179600, 814323600, 828234000, 846378000 }
+ trans:intvector { -1691962479, -1680471279, -1664143200, -1650146400, -1633903200, -1617487200, -1601848800, -1586037600, -1570399200, -1552168800, -1538344800, -1522533600, -1507500000, -1490565600, -1473631200, -1460930400, -1442786400, -1428876000, -1410732000, -1396216800, -1379282400, -1364767200, -1348437600, -1333317600, -1315778400, -1301263200, -1284328800, -1269813600, -1253484000, -1238364000, -1221429600, -1206914400, -1189980000, -1175464800, -1159135200, -1143410400, -1126476000, -1111960800, -1095631200, -1080511200, -1063576800, -1049061600, -1032127200, -1017612000, -1001282400, -986162400, -969228000, -950479200, -942012000, -733356000, -719445600, -699487200, -684972000, -668037600, -654732000, -636588000, -622072800, -605743200, -590623200, -574293600, -558568800, -542239200, -527119200, -512604000, -496274400, -481154400, -464220000, -449704800, -432165600, -417650400, -401320800, -386200800, -369266400, -354751200, -337816800, -323301600, -306972000, -291852000, -276732000, -257983200, -245282400, -226533600, -213228000, -195084000, -182383200, -163634400, -150933600, -132184800, -119484000, -100735200, -88034400, -68680800, -59004000, -37242000, 57722400, 69818400, 89172000, 101268000, 120621600, 132717600, 152071200, 164167200, 183520800, 196221600, 214970400, 227671200, 246420000, 259120800, 278474400, 290570400, 309924000, 322020000, 341373600, 354675600, 372819600, 386125200, 404269200, 417574800, 435718800, 449024400, 467773200, 481078800, 499222800, 512528400, 530672400, 543978000, 562122000, 575427600, 593571600, 606877200, 625626000, 638326800, 657075600, 670381200, 688525200, 701830800, 719974800, 733280400, 751424400, 764730000, 782874000, 796179600, 814323600, 828234000, 846378000 }
typeOffsets:intvector { -1500, 0, -1521, 0, -1521, 3600, 0, 0, 0, 3600, 3600, 0 }
typeMap:bin { "0102030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030405030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403" }
finalRule { "EU" }
@@ -2537,7 +2543,7 @@ zoneinfo64:table(nofallback) {
finalYear:int { 2008 }
} //Z#549
/* Pacific/Apia */ :table {
- transPre32:intvector { -1, 1439229312 }
+ transPre32:intvector { -1, 1849542912 }
trans:intvector { -1861878784, -631110600, 1285498800, 1301752800, 1316872800, 1325239200, 1333202400, 1348927200 }
typeOffsets:intvector { 45184, 0, -41400, 0, -41216, 0, -39600, 0, -39600, 3600, 46800, 0, 46800, 3600 }
typeMap:bin { "020103040304060506" }
@@ -2701,7 +2707,7 @@ zoneinfo64:table(nofallback) {
typeMap:bin { "01020102010201" }
} //Z#576
/* Pacific/Pago_Pago */ :table {
- transPre32:intvector { -1, 1439229064 }
+ transPre32:intvector { -1, 1849542664 }
trans:intvector { -1861879032 }
typeOffsets:intvector { 45432, 0, -40968, 0, -39600, 0 }
typeMap:bin { "0102" }
@@ -2750,12 +2756,9 @@ zoneinfo64:table(nofallback) {
} //Z#587
/* Pacific/Tongatapu */ :table {
transPre32:intvector { -1, 2117470136 }
- trans:intvector { -915193200, 939214800, 953384400, 973342800, 980596800, 1004792400, 1012046400, 1478350800, 1484398800, 1509800400 }
+ trans:intvector { -915193200, 939214800, 953384400, 973342800, 980596800, 1004792400, 1012046400, 1478350800, 1484398800 }
typeOffsets:intvector { 44360, 0, 44400, 0, 46800, 0, 46800, 3600 }
- typeMap:bin { "0102030203020302030203" }
- finalRule { "Tonga" }
- finalRaw:int { 46800 }
- finalYear:int { 2018 }
+ typeMap:bin { "01020302030203020302" }
} //Z#588
/* Pacific/Truk */ :int { 554 } //Z#589
/* Pacific/Wake */ :table {
@@ -3104,7 +3107,7 @@ zoneinfo64:table(nofallback) {
2, -31, -1, 3600, 2, 9, -31, -1, 3600, 2, 3600
} //_#11
Fiji:intvector {
- 10, 1, -1, 7200, 0, 0, 15, -1, 10800, 0, 3600
+ 10, 1, -1, 7200, 0, 0, 14, -1, 10800, 0, 3600
} //_#12
Haiti:intvector {
2, 8, -1, 7200, 0, 10, 1, -1, 7200, 0, 3600
@@ -3133,39 +3136,33 @@ zoneinfo64:table(nofallback) {
NZ:intvector {
8, -30, -1, 7200, 1, 3, 1, -1, 7200, 1, 3600
} //_#21
- Namibia:intvector {
- 8, 1, -1, 7200, 0, 3, 1, -1, 7200, 0, 3600
- } //_#22
Palestine:intvector {
2, -31, -7, 3600, 0, 9, -31, -7, 3600, 0, 3600
- } //_#23
+ } //_#22
Para:intvector {
9, 1, -1, 0, 0, 2, 22, -1, 0, 0, 3600
- } //_#24
+ } //_#23
Syria:intvector {
2, -31, -6, 0, 0, 9, -31, -6, 0, 0, 3600
- } //_#25
+ } //_#24
SystemV:intvector {
3, -30, -1, 7200, 0, 9, -31, -1, 7200, 0, 3600
- } //_#26
+ } //_#25
Thule:intvector {
2, 8, -1, 7200, 0, 10, 1, -1, 7200, 0, 3600
- } //_#27
- Tonga:intvector {
- 10, 1, -1, 7200, 0, 0, 15, -1, 10800, 0, 3600
- } //_#28
+ } //_#26
Troll:intvector {
2, -31, -1, 3600, 2, 9, -31, -1, 3600, 2, 7200
- } //_#29
+ } //_#27
US:intvector {
2, 8, -1, 7200, 0, 10, 1, -1, 7200, 0, 3600
- } //_#30
+ } //_#28
WS:intvector {
8, -30, -1, 10800, 0, 3, 1, -1, 14400, 0, 3600
- } //_#31
+ } //_#29
Zion:intvector {
2, 23, -6, 7200, 0, 9, -31, -1, 7200, 0, 3600
- } //_#32
+ } //_#30
}
Regions:array {
"AU", //Z#0 ACT
diff --git a/chromium/third_party/icu/source/i18n/gregoimp.cpp b/chromium/third_party/icu/source/i18n/gregoimp.cpp
index e62044b361a..537aa19d8a4 100644
--- a/chromium/third_party/icu/source/i18n/gregoimp.cpp
+++ b/chromium/third_party/icu/source/i18n/gregoimp.cpp
@@ -27,6 +27,11 @@ int32_t ClockMath::floorDivide(int32_t numerator, int32_t denominator) {
numerator / denominator : ((numerator + 1) / denominator) - 1;
}
+int64_t ClockMath::floorDivide(int64_t numerator, int64_t denominator) {
+ return (numerator >= 0) ?
+ numerator / denominator : ((numerator + 1) / denominator) - 1;
+}
+
int32_t ClockMath::floorDivide(double numerator, int32_t denominator,
int32_t& remainder) {
double quotient;
diff --git a/chromium/third_party/icu/source/i18n/gregoimp.h b/chromium/third_party/icu/source/i18n/gregoimp.h
index b30741679df..afaacda0b41 100644
--- a/chromium/third_party/icu/source/i18n/gregoimp.h
+++ b/chromium/third_party/icu/source/i18n/gregoimp.h
@@ -41,6 +41,17 @@ class ClockMath {
static int32_t floorDivide(int32_t numerator, int32_t denominator);
/**
+ * Divide two integers, returning the floor of the quotient.
+ * Unlike the built-in division, this is mathematically
+ * well-behaved. E.g., <code>-1/4</code> => 0 but
+ * <code>floorDivide(-1,4)</code> => -1.
+ * @param numerator the numerator
+ * @param denominator a divisor which must be != 0
+ * @return the floor of the quotient
+ */
+ static int64_t floorDivide(int64_t numerator, int64_t denominator);
+
+ /**
* Divide two numbers, returning the floor of the quotient.
* Unlike the built-in division, this is mathematically
* well-behaved. E.g., <code>-1/4</code> => 0 but
diff --git a/chromium/third_party/icu/source/i18n/persncal.cpp b/chromium/third_party/icu/source/i18n/persncal.cpp
index f66ac676a4a..f38f779fea9 100644
--- a/chromium/third_party/icu/source/i18n/persncal.cpp
+++ b/chromium/third_party/icu/source/i18n/persncal.cpp
@@ -213,7 +213,7 @@ void PersianCalendar::handleComputeFields(int32_t julianDay, UErrorCode &/*statu
int32_t year, month, dayOfMonth, dayOfYear;
int32_t daysSinceEpoch = julianDay - PERSIAN_EPOCH;
- year = 1 + ClockMath::floorDivide(33 * daysSinceEpoch + 3, 12053);
+ year = 1 + (int32_t)ClockMath::floorDivide(33 * (int64_t)daysSinceEpoch + 3, (int64_t)12053);
int32_t farvardin1 = 365 * (year - 1) + ClockMath::floorDivide(8 * year + 21, 33);
dayOfYear = (daysSinceEpoch - farvardin1); // 0-based
diff --git a/chromium/third_party/libaddressinput/chromium/resources/address_input_strings_ca.xtb b/chromium/third_party/libaddressinput/chromium/resources/address_input_strings_ca.xtb
index b82ff90a6fe..d7ee6443f98 100644
--- a/chromium/third_party/libaddressinput/chromium/resources/address_input_strings_ca.xtb
+++ b/chromium/third_party/libaddressinput/chromium/resources/address_input_strings_ca.xtb
@@ -16,7 +16,7 @@
<translation id="5089810972385038852">Estat</translation>
<translation id="5095208057601539847">Província</translation>
<translation id="5327248766486351172">Nom</translation>
-<translation id="5937097533660449554">Óblast</translation>
+<translation id="5937097533660449554">Oblast</translation>
<translation id="6132429659673988671">Urbanització</translation>
<translation id="6207937957461833379">País/Regió</translation>
<translation id="6247152910634872706">Organització</translation>
diff --git a/chromium/third_party/libaddressinput/chromium/resources/address_input_strings_fil.xtb b/chromium/third_party/libaddressinput/chromium/resources/address_input_strings_fil.xtb
index 0b960b13df8..a0926aa09aa 100644
--- a/chromium/third_party/libaddressinput/chromium/resources/address_input_strings_fil.xtb
+++ b/chromium/third_party/libaddressinput/chromium/resources/address_input_strings_fil.xtb
@@ -26,7 +26,7 @@
<translation id="6403469950615936250">Hindi nakikilala ang format na ito ng postal code. Halimbawa ng wastong postal code: <ph name="EXAMPLE" />. Hindi alam ang iyong postal code? Alamin iyon <ph name="BEGIN_LINK" />dito<ph name="END_LINK" />.</translation>
<translation id="6735419622867539268">Hindi natukoy ang <ph name="FIELD_VALUE" /> bilang kilalang halaga para sa field na ito.</translation>
<translation id="6768780634682399515">Eircode</translation>
-<translation id="6777217372746654521">Mukhang naglalaman ng post office box ang linya ng address na ito. Mangyaring gumamit ng address ng kalye o gusali.</translation>
+<translation id="6777217372746654521">Mukhang naglalaman ng post office box ang linya ng address na ito. Pakigamit ang address ng kalye o gusali.</translation>
<translation id="6839929833149231406">Lugar</translation>
<translation id="684852933191805996">Townland</translation>
<translation id="6970216967273061347">Distrito</translation>
diff --git a/chromium/third_party/pdfium/core/fpdftext/cpdf_textpage.cpp b/chromium/third_party/pdfium/core/fpdftext/cpdf_textpage.cpp
index fd33fb2f2fc..d528c6994f7 100644
--- a/chromium/third_party/pdfium/core/fpdftext/cpdf_textpage.cpp
+++ b/chromium/third_party/pdfium/core/fpdftext/cpdf_textpage.cpp
@@ -1218,25 +1218,26 @@ CPDF_TextPage::TextOrientation CPDF_TextPage::GetTextObjectWritingMode(
}
bool CPDF_TextPage::IsHyphen(wchar_t curChar) const {
- WideStringView curText;
- if (!m_TempTextBuf.IsEmpty())
- curText = m_TempTextBuf.AsStringView();
- else if (!m_TextBuf.IsEmpty())
+ WideStringView curText = m_TempTextBuf.AsStringView();
+ if (curText.IsEmpty())
curText = m_TextBuf.AsStringView();
- else
- return false;
- curText = curText.TrimmedRight(0x20);
- if (curText.GetLength() < 2)
+ if (curText.IsEmpty())
return false;
- // Extracting the last 2 characters, since they are all that matter
- curText = curText.Right(2);
- if (!IsHyphenCode(curText.Last()))
+ auto iter = curText.rbegin();
+ for (; (iter + 1) != curText.rend() && *iter == 0x20; iter++) {
+ // Do nothing
+ }
+
+ if (!IsHyphenCode(*iter))
return false;
- if (FXSYS_iswalpha(curText.First() && FXSYS_iswalnum(curChar)))
- return true;
+ if ((iter + 1) != curText.rend()) {
+ iter++;
+ if (FXSYS_iswalpha(*iter) && FXSYS_iswalpha(*iter))
+ return true;
+ }
const PAGECHAR_INFO* preInfo;
if (!m_TempCharList.empty())
@@ -1355,9 +1356,7 @@ CPDF_TextPage::GenerateCharacter CPDF_TextPage::ProcessInsertObject(
}
WideString PrevStr =
m_pPreTextObj->GetFont()->UnicodeFromCharCode(PrevItem.m_CharCode);
- if (PrevStr.IsEmpty())
- return GenerateCharacter::None;
- wchar_t preChar = PrevStr[PrevStr.GetLength() - 1];
+ wchar_t preChar = PrevStr.Last();
CFX_Matrix matrix = pObj->GetTextMatrix();
matrix.Concat(formMatrix);
diff --git a/chromium/third_party/pdfium/core/fxge/win32/cfx_psrenderer.cpp b/chromium/third_party/pdfium/core/fxge/win32/cfx_psrenderer.cpp
index d97391822a3..ecfab49c385 100644
--- a/chromium/third_party/pdfium/core/fxge/win32/cfx_psrenderer.cpp
+++ b/chromium/third_party/pdfium/core/fxge/win32/cfx_psrenderer.cpp
@@ -644,16 +644,20 @@ bool CFX_PSRenderer::DrawText(int nChars,
const CFX_Matrix* pObject2Device,
float font_size,
uint32_t color) {
- StartRendering();
- int alpha = FXARGB_A(color);
- if (alpha < 255)
- return false;
+ // Do not send zero or negative font sizes to printers. See crbug.com/767343.
+ if (font_size <= 0.0)
+ return true;
if ((pObject2Device->a == 0 && pObject2Device->b == 0) ||
(pObject2Device->c == 0 && pObject2Device->d == 0)) {
return true;
}
+ StartRendering();
+ int alpha = FXARGB_A(color);
+ if (alpha < 255)
+ return false;
+
SetColor(color);
std::ostringstream buf;
buf << "q[" << pObject2Device->a << " " << pObject2Device->b << " "
diff --git a/chromium/third_party/pdfium/fpdfsdk/fpdfview.cpp b/chromium/third_party/pdfium/fpdfsdk/fpdfview.cpp
index af1d0db1afa..069a7239fd6 100644
--- a/chromium/third_party/pdfium/fpdfsdk/fpdfview.cpp
+++ b/chromium/third_party/pdfium/fpdfsdk/fpdfview.cpp
@@ -869,10 +869,12 @@ FPDF_EXPORT void FPDF_CALLCONV FPDF_RenderPage(HDC dc,
// of masks. Full page bitmaps result in large spool sizes, so they should
// only be used when necessary. For large numbers of masks, rendering each
// individually is inefficient and unlikely to significantly improve spool
- // size.
- const bool bNewBitmap =
- pPage->BackgroundAlphaNeeded() ||
- (pPage->HasImageMask() && pPage->GetMaskBoundingBoxes().size() > 100);
+ // size. TODO (rbpotter): Find out why this still breaks printing for some
+ // PDFs (see crbug.com/777837).
+ const bool bEnableImageMasks = false;
+ const bool bNewBitmap = pPage->BackgroundAlphaNeeded() ||
+ (pPage->HasImageMask() && !bEnableImageMasks) ||
+ pPage->GetMaskBoundingBoxes().size() > 100;
const bool bHasMask = pPage->HasImageMask() && !bNewBitmap;
if (bNewBitmap || bHasMask) {
pBitmap = pdfium::MakeRetain<CFX_DIBitmap>();
diff --git a/chromium/third_party/skia/src/gpu/gl/GrGLCaps.cpp b/chromium/third_party/skia/src/gpu/gl/GrGLCaps.cpp
index 63fe074d79c..5ae715e3501 100644
--- a/chromium/third_party/skia/src/gpu/gl/GrGLCaps.cpp
+++ b/chromium/third_party/skia/src/gpu/gl/GrGLCaps.cpp
@@ -578,7 +578,9 @@ void GrGLCaps::init(const GrContextOptions& contextOptions,
#ifdef SK_BUILD_FOR_MAC
// crbug.com/768134 - On MacBook Pros, the Intel Iris Pro doesn't always perform
// full screen clears
- if (kIntelIrisPro_GrGLRenderer == ctxInfo.renderer()) {
+ // crbug.com/773107 - On MacBook Pros, a wide range of Intel GPUs don't always
+ // perform full screen clears.
+ if (kIntel_GrGLVendor == ctxInfo.vendor()) {
fUseDrawInsteadOfClear = true;
}
#endif
diff --git a/chromium/third_party/skia/src/gpu/gl/GrGLGpu.cpp b/chromium/third_party/skia/src/gpu/gl/GrGLGpu.cpp
index bef1f1919ff..d7a49f2ba0c 100644
--- a/chromium/third_party/skia/src/gpu/gl/GrGLGpu.cpp
+++ b/chromium/third_party/skia/src/gpu/gl/GrGLGpu.cpp
@@ -1081,8 +1081,11 @@ bool GrGLGpu::uploadTexData(GrPixelConfig texConfig, int texWidth, int texHeight
*wasFullMipMapDataProvided = true;
}
+ const bool usesMips = mipLevelCount > 1;
+
// find the combined size of all the mip levels and the relative offset of
// each into the collective buffer
+ bool willNeedData = false;
size_t combinedBufferSize = 0;
SkTArray<size_t> individualMipOffsets(mipLevelCount);
for (int currentMipLevel = 0; currentMipLevel < mipLevelCount; currentMipLevel++) {
@@ -1090,7 +1093,19 @@ bool GrGLGpu::uploadTexData(GrPixelConfig texConfig, int texWidth, int texHeight
int twoToTheMipLevel = 1 << currentMipLevel;
int currentWidth = SkTMax(1, width / twoToTheMipLevel);
int currentHeight = SkTMax(1, height / twoToTheMipLevel);
- const size_t trimmedSize = currentWidth * bpp * currentHeight;
+ const size_t trimRowBytes = currentWidth * bpp;
+ const size_t trimmedSize = trimRowBytes * currentHeight;
+
+ const size_t rowBytes = texelsShallowCopy[currentMipLevel].fRowBytes
+ ? texelsShallowCopy[currentMipLevel].fRowBytes
+ : trimRowBytes;
+
+
+ if (((!caps.unpackRowLengthSupport() || usesMips) && trimRowBytes != rowBytes) ||
+ swFlipY) {
+ willNeedData = true;
+ }
+
individualMipOffsets.push_back(combinedBufferSize);
combinedBufferSize += trimmedSize;
} else {
@@ -1101,7 +1116,10 @@ bool GrGLGpu::uploadTexData(GrPixelConfig texConfig, int texWidth, int texHeight
}
}
- char* buffer = (char*)tempStorage.reset(combinedBufferSize);
+ char* buffer = nullptr;
+ if (willNeedData) {
+ buffer = (char*)tempStorage.reset(combinedBufferSize);
+ }
for (int currentMipLevel = 0; currentMipLevel < mipLevelCount; currentMipLevel++) {
if (!texelsShallowCopy[currentMipLevel].fPixels) {
@@ -1127,7 +1145,6 @@ bool GrGLGpu::uploadTexData(GrPixelConfig texConfig, int texWidth, int texHeight
// TODO: This optimization should be enabled with or without mips.
// For use with mips, we must set GR_GL_UNPACK_ROW_LENGTH once per
// mip level, before calling glTexImage2D.
- const bool usesMips = mipLevelCount > 1;
if (caps.unpackRowLengthSupport() && !swFlipY && !usesMips) {
// can't use this for flipping, only non-neg values allowed. :(
if (rowBytes != trimRowBytes) {
diff --git a/chromium/third_party/webrtc/media/base/videocapturer.cc b/chromium/third_party/webrtc/media/base/videocapturer.cc
index 592f3e20e37..88cf9a8e3ee 100644
--- a/chromium/third_party/webrtc/media/base/videocapturer.cc
+++ b/chromium/third_party/webrtc/media/base/videocapturer.cc
@@ -17,6 +17,7 @@
#include "api/video/i420_buffer.h"
#include "api/video/video_frame.h"
#include "rtc_base/logging.h"
+#include "system_wrappers/include/field_trial.h"
namespace cricket {
@@ -26,6 +27,8 @@ static const int64_t kMaxDistance = ~(static_cast<int64_t>(1) << 63);
#ifdef WEBRTC_LINUX
static const int kYU12Penalty = 16; // Needs to be higher than MJPG index.
#endif
+static const char* kSimulcastScreenshareFieldTrialName =
+ "WebRTC-SimulcastScreenshare";
} // namespace
@@ -174,7 +177,10 @@ bool VideoCapturer::AdaptFrame(int width,
return false;
}
- if (enable_video_adapter_ && !IsScreencast()) {
+ bool simulcast_screenshare_enabled =
+ webrtc::field_trial::IsEnabled(kSimulcastScreenshareFieldTrialName);
+ if (enable_video_adapter_ &&
+ (!IsScreencast() || simulcast_screenshare_enabled)) {
if (!video_adapter_.AdaptFrameResolution(
width, height, camera_time_us * rtc::kNumNanosecsPerMicrosec,
crop_width, crop_height, out_width, out_height)) {
diff --git a/chromium/third_party/webrtc/media/engine/videodecodersoftwarefallbackwrapper.cc b/chromium/third_party/webrtc/media/engine/videodecodersoftwarefallbackwrapper.cc
index e99ea285fea..f93e509b03f 100644
--- a/chromium/third_party/webrtc/media/engine/videodecodersoftwarefallbackwrapper.cc
+++ b/chromium/third_party/webrtc/media/engine/videodecodersoftwarefallbackwrapper.cc
@@ -37,8 +37,8 @@ int32_t VideoDecoderSoftwareFallbackWrapper::InitDecode(
codec_settings_ = *codec_settings;
number_of_cores_ = number_of_cores;
int32_t ret = decoder_->InitDecode(codec_settings, number_of_cores);
- if (ret != WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE) {
- decoder_initialized_ = (ret == WEBRTC_VIDEO_CODEC_OK);
+ if (ret == WEBRTC_VIDEO_CODEC_OK) {
+ decoder_initialized_ = true;
return ret;
}
decoder_initialized_ = false;
diff --git a/chromium/third_party/webrtc/media/engine/videodecodersoftwarefallbackwrapper_unittest.cc b/chromium/third_party/webrtc/media/engine/videodecodersoftwarefallbackwrapper_unittest.cc
index 3a313b1ca1f..dfd388be13d 100644
--- a/chromium/third_party/webrtc/media/engine/videodecodersoftwarefallbackwrapper_unittest.cc
+++ b/chromium/third_party/webrtc/media/engine/videodecodersoftwarefallbackwrapper_unittest.cc
@@ -82,10 +82,10 @@ TEST_F(VideoDecoderSoftwareFallbackWrapperTest, InitializesDecoder) {
}
TEST_F(VideoDecoderSoftwareFallbackWrapperTest,
- UsesFallbackDecoderAfterOnInitDecodeFailure) {
+ UsesFallbackDecoderAfterAnyInitDecodeFailure) {
VideoCodec codec = {};
fake_decoder_->init_decode_return_code_ =
- WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE;
+ WEBRTC_VIDEO_CODEC_UNINITIALIZED;
fallback_wrapper_.InitDecode(&codec, 2);
EXPECT_EQ(1, fake_decoder_->init_decode_count_);
diff --git a/chromium/third_party/webrtc/modules/audio_processing/aec3/adaptive_fir_filter_unittest.cc b/chromium/third_party/webrtc/modules/audio_processing/aec3/adaptive_fir_filter_unittest.cc
index 9ff3c09b333..40f64fd1047 100644
--- a/chromium/third_party/webrtc/modules/audio_processing/aec3/adaptive_fir_filter_unittest.cc
+++ b/chromium/third_party/webrtc/modules/audio_processing/aec3/adaptive_fir_filter_unittest.cc
@@ -365,8 +365,9 @@ TEST(AdaptiveFirFilter, FilterAndAdapt) {
filter.Adapt(render_buffer, G);
aec_state.HandleEchoPathChange(EchoPathVariability(false, false));
aec_state.Update(filter.FilterFrequencyResponse(),
- filter.FilterImpulseResponse(), rtc::Optional<size_t>(),
- render_buffer, E2_main, Y2, x[0], s, false);
+ filter.FilterImpulseResponse(), true,
+ rtc::Optional<size_t>(), render_buffer, E2_main, Y2,
+ x[0], s, false);
}
// Verify that the filter is able to perform well.
EXPECT_LT(1000 * std::inner_product(e.begin(), e.end(), e.begin(), 0.f),
diff --git a/chromium/third_party/webrtc/modules/audio_processing/aec3/aec3_common.h b/chromium/third_party/webrtc/modules/audio_processing/aec3/aec3_common.h
index 2442f909e57..031e9b14769 100644
--- a/chromium/third_party/webrtc/modules/audio_processing/aec3/aec3_common.h
+++ b/chromium/third_party/webrtc/modules/audio_processing/aec3/aec3_common.h
@@ -39,7 +39,7 @@ constexpr size_t kFftLengthBy2Minus1 = kFftLengthBy2 - 1;
constexpr size_t kFftLength = 2 * kFftLengthBy2;
constexpr int kAdaptiveFilterLength = 12;
-constexpr int kResidualEchoPowerRenderWindowSize = 30;
+constexpr int kUnknownDelayRenderWindowSize = 30;
constexpr int kAdaptiveFilterTimeDomainLength =
kAdaptiveFilterLength * kFftLengthBy2;
@@ -69,6 +69,8 @@ constexpr size_t kRenderTransferQueueSize = kMaxApiCallsJitterBlocks / 2;
static_assert(2 * kRenderTransferQueueSize >= kMaxApiCallsJitterBlocks,
"Requirement to ensure buffer overflow detection");
+constexpr size_t kEchoPathChangeConvergenceBlocks = 2 * kNumBlocksPerSecond;
+
// TODO(peah): Integrate this with how it is done inside audio_processing_impl.
constexpr size_t NumBandsForRate(int sample_rate_hz) {
return static_cast<size_t>(sample_rate_hz == 8000 ? 1
diff --git a/chromium/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc b/chromium/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
index 6ea54fcf3d2..14b83e10be5 100644
--- a/chromium/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
+++ b/chromium/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
@@ -23,54 +23,29 @@ namespace webrtc {
namespace {
// Computes delay of the adaptive filter.
-rtc::Optional<size_t> EstimateFilterDelay(
+int EstimateFilterDelay(
const std::vector<std::array<float, kFftLengthBy2Plus1>>&
adaptive_filter_frequency_response) {
const auto& H2 = adaptive_filter_frequency_response;
-
- size_t reliable_delays_sum = 0;
- size_t num_reliable_delays = 0;
-
constexpr size_t kUpperBin = kFftLengthBy2 - 5;
- constexpr float kMinPeakMargin = 10.f;
- const size_t kTailPartition = H2.size() - 1;
+ RTC_DCHECK_GE(kAdaptiveFilterLength, H2.size());
+ std::array<int, kAdaptiveFilterLength> delays;
+ delays.fill(0);
for (size_t k = 1; k < kUpperBin; ++k) {
// Find the maximum of H2[j].
- int peak = 0;
+ size_t peak = 0;
for (size_t j = 0; j < H2.size(); ++j) {
if (H2[j][k] > H2[peak][k]) {
peak = j;
}
}
-
- // Count the peak as a delay only if the peak is sufficiently larger than
- // the tail.
- if (kMinPeakMargin * H2[kTailPartition][k] < H2[peak][k]) {
- reliable_delays_sum += peak;
- ++num_reliable_delays;
- }
- }
-
- // Return no delay if not sufficient delays have been found.
- if (num_reliable_delays < 21) {
- return rtc::Optional<size_t>();
+ ++delays[peak];
}
- const size_t delay = reliable_delays_sum / num_reliable_delays;
- // Sanity check that the peak is not caused by a false strong DC-component in
- // the filter.
- for (size_t k = 1; k < kUpperBin; ++k) {
- if (H2[delay][k] > H2[delay][0]) {
- RTC_DCHECK_GT(H2.size(), delay);
- return rtc::Optional<size_t>(delay);
- }
- }
- return rtc::Optional<size_t>();
+ return std::distance(delays.begin(),
+ std::max_element(delays.begin(), delays.end()));
}
-constexpr int kEchoPathChangeCounterInitial = kNumBlocksPerSecond / 5;
-constexpr int kEchoPathChangeCounterMax = 2 * kNumBlocksPerSecond;
-
} // namespace
int AecState::instance_count_ = 0;
@@ -81,7 +56,6 @@ AecState::AecState(const AudioProcessing::Config::EchoCanceller3& config)
erle_estimator_(config.param.erle.min,
config.param.erle.max_l,
config.param.erle.max_h),
- echo_path_change_counter_(kEchoPathChangeCounterInitial),
config_(config),
reverb_decay_(config_.param.ep_strength.default_len) {}
@@ -102,10 +76,10 @@ void AecState::HandleEchoPathChange(
blocks_with_filter_adaptation_ = 0;
render_received_ = false;
force_zero_gain_ = true;
- echo_path_change_counter_ = kEchoPathChangeCounterMax;
+ capture_block_counter_ = 0;
}
if (echo_path_variability.gain_change) {
- echo_path_change_counter_ = kEchoPathChangeCounterInitial;
+ capture_block_counter_ = kNumBlocksPerSecond;
}
}
}
@@ -114,6 +88,7 @@ void AecState::Update(const std::vector<std::array<float, kFftLengthBy2Plus1>>&
adaptive_filter_frequency_response,
const std::array<float, kAdaptiveFilterTimeDomainLength>&
adaptive_filter_impulse_response,
+ bool converged_filter,
const rtc::Optional<size_t>& external_delay_samples,
const RenderBuffer& render_buffer,
const std::array<float, kFftLengthBy2Plus1>& E2_main,
@@ -121,77 +96,79 @@ void AecState::Update(const std::vector<std::array<float, kFftLengthBy2Plus1>>&
rtc::ArrayView<const float> x,
const std::array<float, kBlockSize>& s,
bool echo_leakage_detected) {
- // Update the echo audibility evaluator.
- echo_audibility_.Update(x, s);
-
// Store input parameters.
echo_leakage_detected_ = echo_leakage_detected;
// Update counters.
- const float x_energy = std::inner_product(x.begin(), x.end(), x.begin(), 0.f);
-
- const bool active_render_block =
- x_energy > (config_.param.render_levels.active_render_limit *
- config_.param.render_levels.active_render_limit) *
- kFftLengthBy2;
- if (active_render_block) {
- render_received_ = true;
- }
- blocks_with_filter_adaptation_ +=
- (active_render_block && (!SaturatedCapture()) ? 1 : 0);
- --echo_path_change_counter_;
+ ++capture_block_counter_;
// Force zero echo suppression gain after an echo path change to allow at
// least some render data to be collected in order to avoid an initial echo
// burst.
- constexpr size_t kZeroGainBlocksAfterChange = kNumBlocksPerSecond / 5;
- force_zero_gain_ = (++force_zero_gain_counter_) < kZeroGainBlocksAfterChange;
+ force_zero_gain_ = (++force_zero_gain_counter_) < kNumBlocksPerSecond / 5;
// Estimate delays.
- filter_delay_ = EstimateFilterDelay(adaptive_filter_frequency_response);
+ filter_delay_ = rtc::Optional<size_t>(
+ EstimateFilterDelay(adaptive_filter_frequency_response));
external_delay_ =
external_delay_samples
? rtc::Optional<size_t>(*external_delay_samples / kBlockSize)
: rtc::Optional<size_t>();
// Update the ERL and ERLE measures.
- if (filter_delay_ && echo_path_change_counter_ <= 0) {
+ if (converged_filter && capture_block_counter_ >= 2 * kNumBlocksPerSecond) {
const auto& X2 = render_buffer.Spectrum(*filter_delay_);
erle_estimator_.Update(X2, Y2, E2_main);
erl_estimator_.Update(X2, Y2);
}
+ // Update the echo audibility evaluator.
+ echo_audibility_.Update(x, s, converged_filter);
+
// Detect and flag echo saturation.
// TODO(peah): Add the delay in this computation to ensure that the render and
// capture signals are properly aligned.
RTC_DCHECK_LT(0, x.size());
const float max_sample = fabs(*std::max_element(
x.begin(), x.end(), [](float a, float b) { return a * a < b * b; }));
- const bool saturated_echo =
- previous_max_sample_ * 100 > 1600 && SaturatedCapture();
- previous_max_sample_ = max_sample;
- // Counts the blocks since saturation.
- constexpr size_t kSaturationLeakageBlocks = 20;
- blocks_since_last_saturation_ =
- saturated_echo ? 0 : blocks_since_last_saturation_ + 1;
- echo_saturation_ = blocks_since_last_saturation_ < kSaturationLeakageBlocks;
+ if (config_.param.ep_strength.echo_can_saturate) {
+ const bool saturated_echo =
+ (previous_max_sample_ > 200.f) && SaturatedCapture();
+
+ // Counts the blocks since saturation.
+ constexpr size_t kSaturationLeakageBlocks = 20;
+ blocks_since_last_saturation_ =
+ saturated_echo ? 0 : blocks_since_last_saturation_ + 1;
+
+ echo_saturation_ = blocks_since_last_saturation_ < kSaturationLeakageBlocks;
+ } else {
+ echo_saturation_ = false;
+ }
+ previous_max_sample_ = max_sample;
// Flag whether the linear filter estimate is usable.
- constexpr size_t kEchoPathChangeConvergenceBlocks = 2 * kNumBlocksPerSecond;
usable_linear_estimate_ =
- (!echo_saturation_) &&
- (!render_received_ ||
- blocks_with_filter_adaptation_ > kEchoPathChangeConvergenceBlocks) &&
- filter_delay_ && echo_path_change_counter_ <= 0 && external_delay_;
+ (!echo_saturation_) && (converged_filter || SufficientFilterUpdates()) &&
+ capture_block_counter_ >= 2 * kNumBlocksPerSecond && external_delay_;
// After an amount of active render samples for which an echo should have been
// detected in the capture signal if the ERL was not infinite, flag that a
- // headset is used.
- constexpr size_t kHeadSetDetectionBlocks = 5 * kNumBlocksPerSecond;
- headset_detected_ = !external_delay_ && !filter_delay_ &&
+ // transparent mode should be entered.
+ const float x_energy = std::inner_product(x.begin(), x.end(), x.begin(), 0.f);
+ const bool active_render_block =
+ x_energy > (config_.param.render_levels.active_render_limit *
+ config_.param.render_levels.active_render_limit) *
+ kFftLengthBy2;
+ if (active_render_block) {
+ render_received_ = true;
+ }
+ blocks_with_filter_adaptation_ +=
+ (active_render_block && (!SaturatedCapture()) ? 1 : 0);
+
+ transparent_mode_ = !converged_filter &&
(!render_received_ || blocks_with_filter_adaptation_ >=
- kHeadSetDetectionBlocks);
+ 5 * kNumBlocksPerSecond);
// Update the room reverb estimate.
UpdateReverb(adaptive_filter_impulse_response);
@@ -276,7 +253,8 @@ void AecState::UpdateReverb(
}
void AecState::EchoAudibility::Update(rtc::ArrayView<const float> x,
- const std::array<float, kBlockSize>& s) {
+ const std::array<float, kBlockSize>& s,
+ bool converged_filter) {
auto result_x = std::minmax_element(x.begin(), x.end());
auto result_s = std::minmax_element(s.begin(), s.end());
const float x_abs =
@@ -284,10 +262,18 @@ void AecState::EchoAudibility::Update(rtc::ArrayView<const float> x,
const float s_abs =
std::max(std::abs(*result_s.first), std::abs(*result_s.second));
- if (x_abs < 5.f) {
- ++low_farend_counter_;
+ if (converged_filter) {
+ if (x_abs < 20.f) {
+ ++low_farend_counter_;
+ } else {
+ low_farend_counter_ = 0;
+ }
} else {
- low_farend_counter_ = 0;
+ if (x_abs < 100.f) {
+ ++low_farend_counter_;
+ } else {
+ low_farend_counter_ = 0;
+ }
}
// The echo is deemed as not audible if the echo estimate is on the level of
@@ -296,7 +282,8 @@ void AecState::EchoAudibility::Update(rtc::ArrayView<const float> x,
// any residual echo that is below the quantization noise level. Furthermore,
// cases where the render signal is very close to zero are also identified as
// not producing audible echo.
- inaudible_echo_ = max_nearend_ > 500 && s_abs < 30.f;
+ inaudible_echo_ = (max_nearend_ > 500 && s_abs < 30.f) ||
+ (!converged_filter && x_abs < 500);
inaudible_echo_ = inaudible_echo_ || low_farend_counter_ > 20;
}
diff --git a/chromium/third_party/webrtc/modules/audio_processing/aec3/aec_state.h b/chromium/third_party/webrtc/modules/audio_processing/aec3/aec_state.h
index 53899e55d14..358c74d8e0b 100644
--- a/chromium/third_party/webrtc/modules/audio_processing/aec3/aec_state.h
+++ b/chromium/third_party/webrtc/modules/audio_processing/aec3/aec_state.h
@@ -72,8 +72,8 @@ class AecState {
capture_signal_saturation_ = capture_signal_saturation;
}
- // Returns whether a probable headset setup has been detected.
- bool HeadsetDetected() const { return headset_detected_; }
+ // Returns whether the transparent mode is active
+ bool TransparentMode() const { return transparent_mode_; }
// Takes appropriate action at an echo path change.
void HandleEchoPathChange(const EchoPathVariability& echo_path_variability);
@@ -92,10 +92,20 @@ class AecState {
echo_audibility_.UpdateWithOutput(e);
}
+ // Returns whether the linear filter should have been able to adapt properly.
+ bool SufficientFilterUpdates() const {
+ return blocks_with_filter_adaptation_ >= kEchoPathChangeConvergenceBlocks;
+ }
+
// Returns whether the echo subtractor can be used to determine the residual
// echo.
bool LinearEchoEstimate() const {
- return UsableLinearEstimate() && !HeadsetDetected();
+ return UsableLinearEstimate() && !TransparentMode();
+ }
+
+ // Returns whether the AEC is in an initial state.
+ bool InitialState() const {
+ return capture_block_counter_ < 3 * kNumBlocksPerSecond;
}
// Updates the aec state.
@@ -103,6 +113,7 @@ class AecState {
adaptive_filter_frequency_response,
const std::array<float, kAdaptiveFilterTimeDomainLength>&
adaptive_filter_impulse_response,
+ bool converged_filter,
const rtc::Optional<size_t>& external_delay_samples,
const RenderBuffer& render_buffer,
const std::array<float, kFftLengthBy2Plus1>& E2_main,
@@ -115,7 +126,8 @@ class AecState {
class EchoAudibility {
public:
void Update(rtc::ArrayView<const float> x,
- const std::array<float, kBlockSize>& s);
+ const std::array<float, kBlockSize>& s,
+ bool converged_filter);
void UpdateWithOutput(rtc::ArrayView<const float> e);
bool InaudibleEcho() const { return inaudible_echo_; }
@@ -133,13 +145,13 @@ class AecState {
std::unique_ptr<ApmDataDumper> data_dumper_;
ErlEstimator erl_estimator_;
ErleEstimator erle_estimator_;
- int echo_path_change_counter_;
+ size_t capture_block_counter_ = 0;
size_t blocks_with_filter_adaptation_ = 0;
bool usable_linear_estimate_ = false;
bool echo_leakage_detected_ = false;
bool capture_signal_saturation_ = false;
bool echo_saturation_ = false;
- bool headset_detected_ = false;
+ bool transparent_mode_ = false;
float previous_max_sample_ = 0.f;
bool force_zero_gain_ = false;
bool render_received_ = false;
diff --git a/chromium/third_party/webrtc/modules/audio_processing/aec3/aec_state_unittest.cc b/chromium/third_party/webrtc/modules/audio_processing/aec3/aec_state_unittest.cc
index 8413413ce2f..4956456a8c0 100644
--- a/chromium/third_party/webrtc/modules/audio_processing/aec3/aec_state_unittest.cc
+++ b/chromium/third_party/webrtc/modules/audio_processing/aec3/aec_state_unittest.cc
@@ -43,7 +43,7 @@ TEST(AecState, NormalUsage) {
// Verify that linear AEC usability is false when the filter is diverged and
// there is no external delay reported.
- state.Update(diverged_filter_frequency_response, impulse_response,
+ state.Update(diverged_filter_frequency_response, impulse_response, true,
rtc::Optional<size_t>(), render_buffer, E2_main, Y2, x[0], s,
false);
EXPECT_FALSE(state.UsableLinearEstimate());
@@ -51,7 +51,7 @@ TEST(AecState, NormalUsage) {
// Verify that linear AEC usability is true when the filter is converged
std::fill(x[0].begin(), x[0].end(), 101.f);
for (int k = 0; k < 3000; ++k) {
- state.Update(converged_filter_frequency_response, impulse_response,
+ state.Update(converged_filter_frequency_response, impulse_response, true,
rtc::Optional<size_t>(2), render_buffer, E2_main, Y2, x[0], s,
false);
}
@@ -60,7 +60,7 @@ TEST(AecState, NormalUsage) {
// Verify that linear AEC usability becomes false after an echo path change is
// reported
state.HandleEchoPathChange(EchoPathVariability(true, false));
- state.Update(converged_filter_frequency_response, impulse_response,
+ state.Update(converged_filter_frequency_response, impulse_response, true,
rtc::Optional<size_t>(2), render_buffer, E2_main, Y2, x[0], s,
false);
EXPECT_FALSE(state.UsableLinearEstimate());
@@ -68,25 +68,25 @@ TEST(AecState, NormalUsage) {
// Verify that the active render detection works as intended.
std::fill(x[0].begin(), x[0].end(), 101.f);
state.HandleEchoPathChange(EchoPathVariability(true, true));
- state.Update(converged_filter_frequency_response, impulse_response,
+ state.Update(converged_filter_frequency_response, impulse_response, true,
rtc::Optional<size_t>(2), render_buffer, E2_main, Y2, x[0], s,
false);
EXPECT_FALSE(state.ActiveRender());
for (int k = 0; k < 1000; ++k) {
- state.Update(converged_filter_frequency_response, impulse_response,
+ state.Update(converged_filter_frequency_response, impulse_response, true,
rtc::Optional<size_t>(2), render_buffer, E2_main, Y2, x[0], s,
false);
}
EXPECT_TRUE(state.ActiveRender());
// Verify that echo leakage is properly reported.
- state.Update(converged_filter_frequency_response, impulse_response,
+ state.Update(converged_filter_frequency_response, impulse_response, true,
rtc::Optional<size_t>(2), render_buffer, E2_main, Y2, x[0], s,
false);
EXPECT_FALSE(state.EchoLeakageDetected());
- state.Update(converged_filter_frequency_response, impulse_response,
+ state.Update(converged_filter_frequency_response, impulse_response, true,
rtc::Optional<size_t>(2), render_buffer, E2_main, Y2, x[0], s,
true);
EXPECT_TRUE(state.EchoLeakageDetected());
@@ -103,7 +103,7 @@ TEST(AecState, NormalUsage) {
Y2.fill(10.f * 10000.f * 10000.f);
for (size_t k = 0; k < 1000; ++k) {
- state.Update(converged_filter_frequency_response, impulse_response,
+ state.Update(converged_filter_frequency_response, impulse_response, true,
rtc::Optional<size_t>(2), render_buffer, E2_main, Y2, x[0], s,
false);
}
@@ -120,7 +120,7 @@ TEST(AecState, NormalUsage) {
E2_main.fill(1.f * 10000.f * 10000.f);
Y2.fill(10.f * E2_main[0]);
for (size_t k = 0; k < 1000; ++k) {
- state.Update(converged_filter_frequency_response, impulse_response,
+ state.Update(converged_filter_frequency_response, impulse_response, true,
rtc::Optional<size_t>(2), render_buffer, E2_main, Y2, x[0], s,
false);
}
@@ -141,7 +141,7 @@ TEST(AecState, NormalUsage) {
E2_main.fill(1.f * 10000.f * 10000.f);
Y2.fill(5.f * E2_main[0]);
for (size_t k = 0; k < 1000; ++k) {
- state.Update(converged_filter_frequency_response, impulse_response,
+ state.Update(converged_filter_frequency_response, impulse_response, true,
rtc::Optional<size_t>(2), render_buffer, E2_main, Y2, x[0], s,
false);
}
@@ -161,34 +161,6 @@ TEST(AecState, NormalUsage) {
}
}
-// Verifies the a non-significant delay is correctly identified.
-TEST(AecState, NonSignificantDelay) {
- AecState state(AudioProcessing::Config::EchoCanceller3{});
- RenderBuffer render_buffer(Aec3Optimization::kNone, 3, 30,
- std::vector<size_t>(1, 30));
- std::array<float, kFftLengthBy2Plus1> E2_main;
- std::array<float, kFftLengthBy2Plus1> Y2;
- std::array<float, kBlockSize> x;
- EchoPathVariability echo_path_variability(false, false);
- std::array<float, kBlockSize> s;
- s.fill(100.f);
- x.fill(0.f);
-
- std::vector<std::array<float, kFftLengthBy2Plus1>> frequency_response(30);
- for (auto& v : frequency_response) {
- v.fill(0.01f);
- }
-
- std::array<float, kAdaptiveFilterTimeDomainLength> impulse_response;
- impulse_response.fill(0.f);
-
- // Verify that a non-significant filter delay is identified correctly.
- state.HandleEchoPathChange(echo_path_variability);
- state.Update(frequency_response, impulse_response, rtc::Optional<size_t>(),
- render_buffer, E2_main, Y2, x, s, false);
- EXPECT_FALSE(state.FilterDelay());
-}
-
// Verifies the delay for a converged filter is correctly identified.
TEST(AecState, ConvergedFilterDelay) {
constexpr int kFilterLength = 10;
@@ -217,8 +189,9 @@ TEST(AecState, ConvergedFilterDelay) {
frequency_response[k].fill(100.f);
frequency_response[k][0] = 0.f;
state.HandleEchoPathChange(echo_path_variability);
- state.Update(frequency_response, impulse_response, rtc::Optional<size_t>(),
- render_buffer, E2_main, Y2, x, s, false);
+ state.Update(frequency_response, impulse_response, true,
+ rtc::Optional<size_t>(), render_buffer, E2_main, Y2, x, s,
+ false);
EXPECT_TRUE(k == (kFilterLength - 1) || state.FilterDelay());
if (k != (kFilterLength - 1)) {
EXPECT_EQ(k, state.FilterDelay());
@@ -241,7 +214,8 @@ TEST(AecState, ExternalDelay) {
x.fill(0.f);
RenderBuffer render_buffer(Aec3Optimization::kNone, 3, 30,
std::vector<size_t>(1, 30));
- std::vector<std::array<float, kFftLengthBy2Plus1>> frequency_response(30);
+ std::vector<std::array<float, kFftLengthBy2Plus1>> frequency_response(
+ kAdaptiveFilterLength);
for (auto& v : frequency_response) {
v.fill(0.01f);
}
@@ -251,7 +225,7 @@ TEST(AecState, ExternalDelay) {
for (size_t k = 0; k < frequency_response.size() - 1; ++k) {
state.HandleEchoPathChange(EchoPathVariability(false, false));
- state.Update(frequency_response, impulse_response,
+ state.Update(frequency_response, impulse_response, true,
rtc::Optional<size_t>(k * kBlockSize + 5), render_buffer,
E2_main, Y2, x, s, false);
EXPECT_TRUE(state.ExternalDelay());
@@ -261,8 +235,9 @@ TEST(AecState, ExternalDelay) {
// Verify that the externally reported delay is properly unset when it is no
// longer present.
state.HandleEchoPathChange(EchoPathVariability(false, false));
- state.Update(frequency_response, impulse_response, rtc::Optional<size_t>(),
- render_buffer, E2_main, Y2, x, s, false);
+ state.Update(frequency_response, impulse_response, true,
+ rtc::Optional<size_t>(), render_buffer, E2_main, Y2, x, s,
+ false);
EXPECT_FALSE(state.ExternalDelay());
}
diff --git a/chromium/third_party/webrtc/modules/audio_processing/aec3/echo_remover.cc b/chromium/third_party/webrtc/modules/audio_processing/aec3/echo_remover.cc
index cb7e05bbce2..341c89a6e46 100644
--- a/chromium/third_party/webrtc/modules/audio_processing/aec3/echo_remover.cc
+++ b/chromium/third_party/webrtc/modules/audio_processing/aec3/echo_remover.cc
@@ -172,11 +172,12 @@ void EchoRemoverImpl::ProcessCapture(
// Update the AEC state information.
aec_state_.Update(subtractor_.FilterFrequencyResponse(),
subtractor_.FilterImpulseResponse(),
- echo_path_delay_samples, render_buffer, E2_main, Y2, x0,
- subtractor_output.s_main, echo_leakage_detected_);
+ subtractor_.ConvergedFilter(), echo_path_delay_samples,
+ render_buffer, E2_main, Y2, x0, subtractor_output.s_main,
+ echo_leakage_detected_);
// Choose the linear output.
- output_selector_.FormLinearOutput(!aec_state_.HeadsetDetected(), e_main, y0);
+ output_selector_.FormLinearOutput(!aec_state_.TransparentMode(), e_main, y0);
data_dumper_->DumpWav("aec3_output_linear", kBlockSize, &y0[0],
LowestBandRate(sample_rate_hz_), 1);
data_dumper_->DumpRaw("aec3_output_linear", y0);
diff --git a/chromium/third_party/webrtc/modules/audio_processing/aec3/main_filter_update_gain_unittest.cc b/chromium/third_party/webrtc/modules/audio_processing/aec3/main_filter_update_gain_unittest.cc
index 6d0423faaf2..e3f968ce771 100644
--- a/chromium/third_party/webrtc/modules/audio_processing/aec3/main_filter_update_gain_unittest.cc
+++ b/chromium/third_party/webrtc/modules/audio_processing/aec3/main_filter_update_gain_unittest.cc
@@ -135,7 +135,7 @@ void RunFilterUpdateTest(int num_blocks_to_process,
// Update the delay.
aec_state.HandleEchoPathChange(EchoPathVariability(false, false));
aec_state.Update(main_filter.FilterFrequencyResponse(),
- main_filter.FilterImpulseResponse(),
+ main_filter.FilterImpulseResponse(), true,
rtc::Optional<size_t>(), render_buffer, E2_main, Y2, x[0],
s, false);
}
diff --git a/chromium/third_party/webrtc/modules/audio_processing/aec3/render_delay_buffer.cc b/chromium/third_party/webrtc/modules/audio_processing/aec3/render_delay_buffer.cc
index 785b837ddb6..e173aa14d94 100644
--- a/chromium/third_party/webrtc/modules/audio_processing/aec3/render_delay_buffer.cc
+++ b/chromium/third_party/webrtc/modules/audio_processing/aec3/render_delay_buffer.cc
@@ -106,7 +106,7 @@ RenderDelayBufferImpl::RenderDelayBufferImpl(size_t num_bands)
fft_buffer_(
optimization_,
num_bands,
- std::max(kResidualEchoPowerRenderWindowSize, kAdaptiveFilterLength),
+ std::max(kUnknownDelayRenderWindowSize, kAdaptiveFilterLength),
std::vector<size_t>(1, kAdaptiveFilterLength)),
api_call_jitter_buffer_(num_bands),
zero_block_(num_bands, std::vector<float>(kBlockSize, 0.f)) {
diff --git a/chromium/third_party/webrtc/modules/audio_processing/aec3/residual_echo_estimator.cc b/chromium/third_party/webrtc/modules/audio_processing/aec3/residual_echo_estimator.cc
index c5b0161e8ca..04251a4cca2 100644
--- a/chromium/third_party/webrtc/modules/audio_processing/aec3/residual_echo_estimator.cc
+++ b/chromium/third_party/webrtc/modules/audio_processing/aec3/residual_echo_estimator.cc
@@ -74,9 +74,6 @@ void RenderNoisePower(
}
}
-// Assume a minimum echo path gain of -33 dB for headsets.
-constexpr float kHeadsetEchoPathGain = 0.0005f;
-
} // namespace
ResidualEchoEstimator::ResidualEchoEstimator(
@@ -95,24 +92,29 @@ void ResidualEchoEstimator::Estimate(
std::array<float, kFftLengthBy2Plus1>* R2) {
RTC_DCHECK(R2);
- const rtc::Optional<size_t> delay =
- aec_state.ExternalDelay()
- ? (aec_state.FilterDelay() ? aec_state.FilterDelay()
- : aec_state.ExternalDelay())
- : rtc::Optional<size_t>();
-
// Estimate the power of the stationary noise in the render signal.
RenderNoisePower(render_buffer, &X2_noise_floor_, &X2_noise_floor_counter_);
// Estimate the residual echo power.
-
if (aec_state.LinearEchoEstimate()) {
RTC_DCHECK(aec_state.FilterDelay());
const int filter_delay = *aec_state.FilterDelay();
LinearEstimate(S2_linear, aec_state.Erle(), filter_delay, R2);
AddEchoReverb(S2_linear, aec_state.SaturatedEcho(), filter_delay,
aec_state.ReverbDecay(), R2);
+
+ // If the echo is saturated, estimate the echo power as the maximum echo
+ // power with a leakage factor.
+ if (aec_state.SaturatedEcho()) {
+ R2->fill((*std::max_element(R2->begin(), R2->end())) * 100.f);
+ }
} else {
+ const rtc::Optional<size_t> delay =
+ aec_state.ExternalDelay()
+ ? (aec_state.FilterDelay() ? aec_state.FilterDelay()
+ : aec_state.ExternalDelay())
+ : rtc::Optional<size_t>();
+
// Estimate the echo generating signal power.
std::array<float, kFftLengthBy2Plus1> X2;
if (aec_state.ExternalDelay() && aec_state.FilterDelay()) {
@@ -120,14 +122,17 @@ void ResidualEchoEstimator::Estimate(
const int delay_use = static_cast<int>(*delay);
// Computes the spectral power over the blocks surrounding the delay.
- RTC_DCHECK_LT(delay_use, kResidualEchoPowerRenderWindowSize);
+ constexpr int kKnownDelayRenderWindowSize = 5;
+ static_assert(
+ kUnknownDelayRenderWindowSize >= kKnownDelayRenderWindowSize,
+ "Requirement to ensure that the render buffer is overrun");
EchoGeneratingPower(
render_buffer, std::max(0, delay_use - 1),
- std::min(kResidualEchoPowerRenderWindowSize - 1, delay_use + 1), &X2);
+ std::min(kKnownDelayRenderWindowSize - 1, delay_use + 1), &X2);
} else {
// Computes the spectral power over the latest blocks.
- EchoGeneratingPower(render_buffer, 0,
- kResidualEchoPowerRenderWindowSize - 1, &X2);
+ EchoGeneratingPower(render_buffer, 0, kUnknownDelayRenderWindowSize - 1,
+ &X2);
}
// Subtract the stationary noise power to avoid stationary noise causing
@@ -136,23 +141,25 @@ void ResidualEchoEstimator::Estimate(
X2.begin(), X2.end(), X2_noise_floor_.begin(), X2.begin(),
[](float a, float b) { return std::max(0.f, a - 10.f * b); });
- NonLinearEstimate(aec_state.HeadsetDetected(), X2, Y2, R2);
- AddEchoReverb(*R2, aec_state.SaturatedEcho(),
- std::min(static_cast<size_t>(kAdaptiveFilterLength),
- delay.value_or(kAdaptiveFilterLength)),
- aec_state.ReverbDecay(), R2);
+ NonLinearEstimate(
+ aec_state.SufficientFilterUpdates(), aec_state.SaturatedEcho(),
+ config_.param.ep_strength.bounded_erl, aec_state.TransparentMode(),
+ aec_state.InitialState(), X2, Y2, R2);
+
+ if (aec_state.ExternalDelay() && aec_state.FilterDelay() &&
+ aec_state.SaturatedEcho()) {
+ AddEchoReverb(*R2, aec_state.SaturatedEcho(),
+ std::min(static_cast<size_t>(kAdaptiveFilterLength),
+ delay.value_or(kAdaptiveFilterLength)),
+ aec_state.ReverbDecay(), R2);
+ }
}
// If the echo is deemed inaudible, set the residual echo to zero.
- if (aec_state.InaudibleEcho() &&
- (aec_state.ExternalDelay() || aec_state.HeadsetDetected())) {
+ if (aec_state.InaudibleEcho()) {
R2->fill(0.f);
- }
-
- // If the echo is saturated, estimate the echo power as the maximum echo power
- // with a leakage factor.
- if (aec_state.SaturatedEcho()) {
- R2->fill((*std::max_element(R2->begin(), R2->end())) * 100.f);
+ R2_old_.fill(0.f);
+ R2_hold_counter_.fill(0.f);
}
std::copy(R2->begin(), R2->end(), R2_old_.begin());
@@ -183,17 +190,39 @@ void ResidualEchoEstimator::LinearEstimate(
}
void ResidualEchoEstimator::NonLinearEstimate(
- bool headset_detected,
+ bool sufficient_filter_updates,
+ bool saturated_echo,
+ bool bounded_erl,
+ bool transparent_mode,
+ bool initial_state,
const std::array<float, kFftLengthBy2Plus1>& X2,
const std::array<float, kFftLengthBy2Plus1>& Y2,
std::array<float, kFftLengthBy2Plus1>* R2) {
- // Choose gains.
- const float echo_path_gain_lf =
- headset_detected ? kHeadsetEchoPathGain : config_.param.ep_strength.lf;
- const float echo_path_gain_mf =
- headset_detected ? kHeadsetEchoPathGain : config_.param.ep_strength.mf;
- const float echo_path_gain_hf =
- headset_detected ? kHeadsetEchoPathGain : config_.param.ep_strength.hf;
+ float echo_path_gain_lf;
+ float echo_path_gain_mf;
+ float echo_path_gain_hf;
+
+ // Set echo path gains.
+ if (saturated_echo) {
+ // If the echo could be saturated, use a very conservative gain.
+ echo_path_gain_lf = echo_path_gain_mf = echo_path_gain_hf = 10000.f;
+ } else if (sufficient_filter_updates && !bounded_erl) {
+ // If the filter should have been able to converge, and no assumption is
+ // possible on the ERL, use a low gain.
+ echo_path_gain_lf = echo_path_gain_mf = echo_path_gain_hf = 0.01f;
+ } else if ((sufficient_filter_updates && bounded_erl) || transparent_mode) {
+ // If the filter should have been able to converge, and and it is known that
+ // the ERL is bounded, use a very low gain.
+ echo_path_gain_lf = echo_path_gain_mf = echo_path_gain_hf = 0.001f;
+ } else if (!initial_state) {
+ // If the AEC is no longer in an initial state, assume a weak echo path.
+ echo_path_gain_lf = echo_path_gain_mf = echo_path_gain_hf = 0.01f;
+ } else {
+ // In the initial state, use conservative gains.
+ echo_path_gain_lf = config_.param.ep_strength.lf;
+ echo_path_gain_mf = config_.param.ep_strength.mf;
+ echo_path_gain_hf = config_.param.ep_strength.hf;
+ }
// Compute preliminary residual echo.
std::transform(
diff --git a/chromium/third_party/webrtc/modules/audio_processing/aec3/residual_echo_estimator.h b/chromium/third_party/webrtc/modules/audio_processing/aec3/residual_echo_estimator.h
index d766f123a4f..d2eada3edf8 100644
--- a/chromium/third_party/webrtc/modules/audio_processing/aec3/residual_echo_estimator.h
+++ b/chromium/third_party/webrtc/modules/audio_processing/aec3/residual_echo_estimator.h
@@ -49,7 +49,11 @@ class ResidualEchoEstimator {
// Estimates the residual echo power based on the estimate of the echo path
// gain.
- void NonLinearEstimate(bool headset_detected,
+ void NonLinearEstimate(bool sufficient_filter_updates,
+ bool saturated_echo,
+ bool bounded_erl,
+ bool transparent_mode,
+ bool initial_state,
const std::array<float, kFftLengthBy2Plus1>& X2,
const std::array<float, kFftLengthBy2Plus1>& Y2,
std::array<float, kFftLengthBy2Plus1>* R2);
diff --git a/chromium/third_party/webrtc/modules/audio_processing/aec3/residual_echo_estimator_unittest.cc b/chromium/third_party/webrtc/modules/audio_processing/aec3/residual_echo_estimator_unittest.cc
index 46b726d9967..a44a548e708 100644
--- a/chromium/third_party/webrtc/modules/audio_processing/aec3/residual_echo_estimator_unittest.cc
+++ b/chromium/third_party/webrtc/modules/audio_processing/aec3/residual_echo_estimator_unittest.cc
@@ -83,8 +83,8 @@ TEST(ResidualEchoEstimator, BasicTest) {
render_buffer.Insert(x);
aec_state.HandleEchoPathChange(echo_path_variability);
- aec_state.Update(H2, h, rtc::Optional<size_t>(2), render_buffer, E2_main,
- Y2, x[0], s, false);
+ aec_state.Update(H2, h, true, rtc::Optional<size_t>(2), render_buffer,
+ E2_main, Y2, x[0], s, false);
estimator.Estimate(aec_state, render_buffer, S2_linear, Y2, &R2);
}
diff --git a/chromium/third_party/webrtc/modules/audio_processing/aec3/subtractor.cc b/chromium/third_party/webrtc/modules/audio_processing/aec3/subtractor.cc
index c64e5a4ef9b..c1909f3b90b 100644
--- a/chromium/third_party/webrtc/modules/audio_processing/aec3/subtractor.cc
+++ b/chromium/third_party/webrtc/modules/audio_processing/aec3/subtractor.cc
@@ -11,6 +11,7 @@
#include "modules/audio_processing/aec3/subtractor.h"
#include <algorithm>
+#include <numeric>
#include "api/array_view.h"
#include "modules/audio_processing/logging/apm_data_dumper.h"
@@ -63,6 +64,7 @@ void Subtractor::HandleEchoPathChange(
shadow_filter_.HandleEchoPathChange();
G_main_.HandleEchoPathChange();
G_shadow_.HandleEchoPathChange();
+ converged_filter_ = false;
}
}
@@ -89,6 +91,19 @@ void Subtractor::Process(const RenderBuffer& render_buffer,
shadow_filter_.Filter(render_buffer, &S);
PredictionError(fft_, S, y, &e_shadow, &E_shadow, nullptr);
+ if (!converged_filter_) {
+ const auto sum_of_squares = [](float a, float b) { return a + b * b; };
+ const float e2_main =
+ std::accumulate(e_main.begin(), e_main.end(), 0.f, sum_of_squares);
+ const float e2_shadow =
+ std::accumulate(e_shadow.begin(), e_shadow.end(), 0.f, sum_of_squares);
+ const float y2 = std::accumulate(y.begin(), y.end(), 0.f, sum_of_squares);
+
+ if (y2 > kBlockSize * 50.f * 50.f) {
+ converged_filter_ = (e2_main > 0.3 * y2 || e2_shadow > 0.1 * y2);
+ }
+ }
+
// Compute spectra for future use.
E_main.Spectrum(optimization_, &output->E2_main);
E_shadow.Spectrum(optimization_, &output->E2_shadow);
diff --git a/chromium/third_party/webrtc/modules/audio_processing/aec3/subtractor.h b/chromium/third_party/webrtc/modules/audio_processing/aec3/subtractor.h
index e76155494c0..680bf458066 100644
--- a/chromium/third_party/webrtc/modules/audio_processing/aec3/subtractor.h
+++ b/chromium/third_party/webrtc/modules/audio_processing/aec3/subtractor.h
@@ -57,6 +57,8 @@ class Subtractor {
return main_filter_.FilterImpulseResponse();
}
+ bool ConvergedFilter() const { return converged_filter_; }
+
private:
const Aec3Fft fft_;
ApmDataDumper* data_dumper_;
@@ -65,6 +67,7 @@ class Subtractor {
AdaptiveFirFilter shadow_filter_;
MainFilterUpdateGain G_main_;
ShadowFilterUpdateGain G_shadow_;
+ bool converged_filter_ = false;
RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(Subtractor);
};
diff --git a/chromium/third_party/webrtc/modules/audio_processing/aec3/subtractor_unittest.cc b/chromium/third_party/webrtc/modules/audio_processing/aec3/subtractor_unittest.cc
index ea28c4e6638..0450b6ccd49 100644
--- a/chromium/third_party/webrtc/modules/audio_processing/aec3/subtractor_unittest.cc
+++ b/chromium/third_party/webrtc/modules/audio_processing/aec3/subtractor_unittest.cc
@@ -69,6 +69,7 @@ float RunSubtractorTest(int num_blocks_to_process,
aec_state.HandleEchoPathChange(EchoPathVariability(false, false));
aec_state.Update(subtractor.FilterFrequencyResponse(),
subtractor.FilterImpulseResponse(),
+ subtractor.ConvergedFilter(),
rtc::Optional<size_t>(delay_samples / kBlockSize),
render_buffer, E2_main, Y2, x[0], output.s_main, false);
}
diff --git a/chromium/third_party/webrtc/modules/audio_processing/include/audio_processing.h b/chromium/third_party/webrtc/modules/audio_processing/include/audio_processing.h
index 54aed341b63..6dd0e140aa3 100644
--- a/chromium/third_party/webrtc/modules/audio_processing/include/audio_processing.h
+++ b/chromium/third_party/webrtc/modules/audio_processing/include/audio_processing.h
@@ -284,9 +284,11 @@ class AudioProcessing : public rtc::RefCountInterface {
struct EpStrength {
float lf = 10.f;
- float mf = 100.f;
- float hf = 200.f;
+ float mf = 10.f;
+ float hf = 10.f;
float default_len = 0.f;
+ bool echo_can_saturate = true;
+ bool bounded_erl = false;
} ep_strength;
struct Mask {
@@ -304,7 +306,6 @@ class AudioProcessing : public rtc::RefCountInterface {
struct EchoAudibility {
float low_render_limit = 4 * 64.f;
float normal_render_limit = 64.f;
- float active_render_limit = 100.f;
} echo_audibility;
struct RenderLevels {
diff --git a/chromium/third_party/webrtc/modules/desktop_capture/mac/window_list_utils.cc b/chromium/third_party/webrtc/modules/desktop_capture/mac/window_list_utils.cc
index 3572d85be0e..005b1c64b2c 100644
--- a/chromium/third_party/webrtc/modules/desktop_capture/mac/window_list_utils.cc
+++ b/chromium/third_party/webrtc/modules/desktop_capture/mac/window_list_utils.cc
@@ -96,6 +96,12 @@ bool GetWindowList(rtc::FunctionView<bool(CFDictionaryRef)> on_window,
continue;
}
+ // TODO(webrtc:8460): On 10.12, the name of the dock window is not "Dock"
+ // anymore. The following check should be removed soon or later.
+ if (CFStringCompare(window_title, CFSTR("Dock"), 0) == 0) {
+ continue;
+ }
+
CFNumberRef window_id = reinterpret_cast<CFNumberRef>(
CFDictionaryGetValue(window, kCGWindowNumber));
if (!window_id) {
@@ -210,7 +216,10 @@ WindowId GetWindowId(CFDictionaryRef window) {
return kNullWindowId;
}
- WindowId id;
+ // Note: WindowId is 64-bit on 64-bit system, but CGWindowID is always 32-bit.
+ // CFNumberGetValue() fills only top 32 bits, so we should use CGWindowID to
+ // receive the window id.
+ CGWindowID id;
if (!CFNumberGetValue(window_id, kCFNumberIntType, &id)) {
return kNullWindowId;
}
diff --git a/chromium/third_party/webrtc/modules/pacing/BUILD.gn b/chromium/third_party/webrtc/modules/pacing/BUILD.gn
index fd350a40269..e9d8348e8f6 100644
--- a/chromium/third_party/webrtc/modules/pacing/BUILD.gn
+++ b/chromium/third_party/webrtc/modules/pacing/BUILD.gn
@@ -21,6 +21,8 @@ rtc_static_library("pacing") {
"pacer.h",
"packet_queue.cc",
"packet_queue.h",
+ "packet_queue2.cc",
+ "packet_queue2.h",
"packet_router.cc",
"packet_router.h",
]
diff --git a/chromium/third_party/webrtc/modules/pacing/paced_sender.cc b/chromium/third_party/webrtc/modules/pacing/paced_sender.cc
index 96355b30c07..e372cfe963b 100644
--- a/chromium/third_party/webrtc/modules/pacing/paced_sender.cc
+++ b/chromium/third_party/webrtc/modules/pacing/paced_sender.cc
@@ -59,7 +59,9 @@ PacedSender::PacedSender(const Clock* clock,
pacing_bitrate_kbps_(0),
time_last_update_us_(clock->TimeInMicroseconds()),
first_sent_packet_ms_(-1),
- packets_(new PacketQueue(clock)),
+ packets_(webrtc::field_trial::IsEnabled("WebRTC-RoundRobinPacing")
+ ? new PacketQueue2(clock)
+ : new PacketQueue(clock)),
packet_counter_(0),
pacing_factor_(kDefaultPaceMultiplier),
queue_time_limit(kMaxQueueLengthMs) {
@@ -361,6 +363,11 @@ void PacedSender::SetPacingFactor(float pacing_factor) {
pacing_factor_ = pacing_factor;
}
+float PacedSender::GetPacingFactor() const {
+ rtc::CritScope cs(&critsect_);
+ return pacing_factor_;
+}
+
void PacedSender::SetQueueTimeLimit(int limit_ms) {
rtc::CritScope cs(&critsect_);
queue_time_limit = limit_ms;
diff --git a/chromium/third_party/webrtc/modules/pacing/paced_sender.h b/chromium/third_party/webrtc/modules/pacing/paced_sender.h
index 499f1d90ae0..43911ccbbdf 100644
--- a/chromium/third_party/webrtc/modules/pacing/paced_sender.h
+++ b/chromium/third_party/webrtc/modules/pacing/paced_sender.h
@@ -15,7 +15,7 @@
#include "api/optional.h"
#include "modules/pacing/pacer.h"
-#include "modules/pacing/packet_queue.h"
+#include "modules/pacing/packet_queue2.h"
#include "rtc_base/criticalsection.h"
#include "rtc_base/thread_annotations.h"
#include "typedefs.h" // NOLINT(build/include)
@@ -143,6 +143,7 @@ class PacedSender : public Pacer {
// Called when the prober is associated with a process thread.
void ProcessThreadAttached(ProcessThread* process_thread) override;
void SetPacingFactor(float pacing_factor);
+ float GetPacingFactor() const;
void SetQueueTimeLimit(int limit_ms);
private:
diff --git a/chromium/third_party/webrtc/modules/pacing/paced_sender_unittest.cc b/chromium/third_party/webrtc/modules/pacing/paced_sender_unittest.cc
index e4adcd3f29b..e111bace9c0 100644
--- a/chromium/third_party/webrtc/modules/pacing/paced_sender_unittest.cc
+++ b/chromium/third_party/webrtc/modules/pacing/paced_sender_unittest.cc
@@ -10,9 +10,12 @@
#include <list>
#include <memory>
+#include <string>
#include "modules/pacing/paced_sender.h"
#include "system_wrappers/include/clock.h"
+#include "system_wrappers/include/field_trial.h"
+#include "test/field_trial.h"
#include "test/gmock.h"
#include "test/gtest.h"
@@ -101,9 +104,9 @@ class PacedSenderProbing : public PacedSender::PacketSender {
int padding_sent_;
};
-class PacedSenderTest : public ::testing::Test {
+class PacedSenderTest : public testing::TestWithParam<std::string> {
protected:
- PacedSenderTest() : clock_(123456) {
+ PacedSenderTest() : clock_(123456), field_trial_(GetParam()) {
srand(0);
// Need to initialize PacedSender after we initialize clock.
send_bucket_.reset(new PacedSender(&clock_, &callback_, nullptr));
@@ -134,9 +137,15 @@ class PacedSenderTest : public ::testing::Test {
SimulatedClock clock_;
MockPacedSenderCallback callback_;
std::unique_ptr<PacedSender> send_bucket_;
+ test::ScopedFieldTrials field_trial_;
};
-TEST_F(PacedSenderTest, FirstSentPacketTimeIsSet) {
+INSTANTIATE_TEST_CASE_P(RoundRobin,
+ PacedSenderTest,
+ ::testing::Values("WebRTC-RoundRobinPacing/Disabled/",
+ "WebRTC-RoundRobinPacing/Enabled/"));
+
+TEST_P(PacedSenderTest, FirstSentPacketTimeIsSet) {
uint16_t sequence_number = 1234;
const uint32_t kSsrc = 12345;
const size_t kSizeBytes = 250;
@@ -155,7 +164,7 @@ TEST_F(PacedSenderTest, FirstSentPacketTimeIsSet) {
EXPECT_EQ(kStartMs, send_bucket_->FirstSentPacketTimeMs());
}
-TEST_F(PacedSenderTest, QueuePacket) {
+TEST_P(PacedSenderTest, QueuePacket) {
uint32_t ssrc = 12345;
uint16_t sequence_number = 1234;
// Due to the multiplicative factor we can send 5 packets during a send
@@ -203,7 +212,7 @@ TEST_F(PacedSenderTest, QueuePacket) {
EXPECT_EQ(1u, send_bucket_->QueueSizePackets());
}
-TEST_F(PacedSenderTest, PaceQueuedPackets) {
+TEST_P(PacedSenderTest, PaceQueuedPackets) {
uint32_t ssrc = 12345;
uint16_t sequence_number = 1234;
@@ -255,7 +264,7 @@ TEST_F(PacedSenderTest, PaceQueuedPackets) {
EXPECT_EQ(1u, send_bucket_->QueueSizePackets());
}
-TEST_F(PacedSenderTest, RepeatedRetransmissionsAllowed) {
+TEST_P(PacedSenderTest, RepeatedRetransmissionsAllowed) {
// Send one packet, then two retransmissions of that packet.
for (size_t i = 0; i < 3; i++) {
constexpr uint32_t ssrc = 333;
@@ -269,7 +278,7 @@ TEST_F(PacedSenderTest, RepeatedRetransmissionsAllowed) {
send_bucket_->Process();
}
-TEST_F(PacedSenderTest, CanQueuePacketsWithSameSequenceNumberOnDifferentSsrcs) {
+TEST_P(PacedSenderTest, CanQueuePacketsWithSameSequenceNumberOnDifferentSsrcs) {
uint32_t ssrc = 12345;
uint16_t sequence_number = 1234;
@@ -292,7 +301,7 @@ TEST_F(PacedSenderTest, CanQueuePacketsWithSameSequenceNumberOnDifferentSsrcs) {
send_bucket_->Process();
}
-TEST_F(PacedSenderTest, Padding) {
+TEST_P(PacedSenderTest, Padding) {
uint32_t ssrc = 12345;
uint16_t sequence_number = 1234;
@@ -332,7 +341,7 @@ TEST_F(PacedSenderTest, Padding) {
send_bucket_->Process();
}
-TEST_F(PacedSenderTest, NoPaddingBeforeNormalPacket) {
+TEST_P(PacedSenderTest, NoPaddingBeforeNormalPacket) {
send_bucket_->SetEstimatedBitrate(kTargetBitrateBps);
send_bucket_->SetSendBitrateLimits(kTargetBitrateBps, kTargetBitrateBps);
@@ -355,7 +364,7 @@ TEST_F(PacedSenderTest, NoPaddingBeforeNormalPacket) {
send_bucket_->Process();
}
-TEST_F(PacedSenderTest, VerifyPaddingUpToBitrate) {
+TEST_P(PacedSenderTest, VerifyPaddingUpToBitrate) {
uint32_t ssrc = 12345;
uint16_t sequence_number = 1234;
int64_t capture_time_ms = 56789;
@@ -380,7 +389,7 @@ TEST_F(PacedSenderTest, VerifyPaddingUpToBitrate) {
}
}
-TEST_F(PacedSenderTest, VerifyAverageBitrateVaryingMediaPayload) {
+TEST_P(PacedSenderTest, VerifyAverageBitrateVaryingMediaPayload) {
uint32_t ssrc = 12345;
uint16_t sequence_number = 1234;
int64_t capture_time_ms = 56789;
@@ -413,7 +422,7 @@ TEST_F(PacedSenderTest, VerifyAverageBitrateVaryingMediaPayload) {
1);
}
-TEST_F(PacedSenderTest, Priority) {
+TEST_P(PacedSenderTest, Priority) {
uint32_t ssrc_low_priority = 12345;
uint32_t ssrc = 12346;
uint16_t sequence_number = 1234;
@@ -468,7 +477,7 @@ TEST_F(PacedSenderTest, Priority) {
send_bucket_->Process();
}
-TEST_F(PacedSenderTest, RetransmissionPriority) {
+TEST_P(PacedSenderTest, RetransmissionPriority) {
uint32_t ssrc = 12345;
uint16_t sequence_number = 1234;
int64_t capture_time_ms = 45678;
@@ -522,7 +531,7 @@ TEST_F(PacedSenderTest, RetransmissionPriority) {
EXPECT_EQ(0u, send_bucket_->QueueSizePackets());
}
-TEST_F(PacedSenderTest, HighPrioDoesntAffectBudget) {
+TEST_P(PacedSenderTest, HighPrioDoesntAffectBudget) {
uint32_t ssrc = 12346;
uint16_t sequence_number = 1234;
int64_t capture_time_ms = 56789;
@@ -560,7 +569,7 @@ TEST_F(PacedSenderTest, HighPrioDoesntAffectBudget) {
EXPECT_EQ(0u, send_bucket_->QueueSizePackets());
}
-TEST_F(PacedSenderTest, Pause) {
+TEST_P(PacedSenderTest, Pause) {
uint32_t ssrc_low_priority = 12345;
uint32_t ssrc = 12346;
uint32_t ssrc_high_priority = 12347;
@@ -674,7 +683,7 @@ TEST_F(PacedSenderTest, Pause) {
EXPECT_EQ(0, send_bucket_->QueueInMs());
}
-TEST_F(PacedSenderTest, ResendPacket) {
+TEST_P(PacedSenderTest, ResendPacket) {
uint32_t ssrc = 12346;
uint16_t sequence_number = 1234;
int64_t capture_time_ms = clock_.TimeInMilliseconds();
@@ -727,7 +736,7 @@ TEST_F(PacedSenderTest, ResendPacket) {
EXPECT_EQ(0, send_bucket_->QueueInMs());
}
-TEST_F(PacedSenderTest, ExpectedQueueTimeMs) {
+TEST_P(PacedSenderTest, ExpectedQueueTimeMs) {
uint32_t ssrc = 12346;
uint16_t sequence_number = 1234;
const size_t kNumPackets = 60;
@@ -764,7 +773,7 @@ TEST_F(PacedSenderTest, ExpectedQueueTimeMs) {
static_cast<int64_t>(1000 * kPacketSize * 8 / kMaxBitrate));
}
-TEST_F(PacedSenderTest, QueueTimeGrowsOverTime) {
+TEST_P(PacedSenderTest, QueueTimeGrowsOverTime) {
uint32_t ssrc = 12346;
uint16_t sequence_number = 1234;
EXPECT_EQ(0, send_bucket_->QueueInMs());
@@ -783,7 +792,7 @@ TEST_F(PacedSenderTest, QueueTimeGrowsOverTime) {
EXPECT_EQ(0, send_bucket_->QueueInMs());
}
-TEST_F(PacedSenderTest, ProbingWithInsertedPackets) {
+TEST_P(PacedSenderTest, ProbingWithInsertedPackets) {
const size_t kPacketSize = 1200;
const int kInitialBitrateBps = 300000;
uint32_t ssrc = 12346;
@@ -829,7 +838,7 @@ TEST_F(PacedSenderTest, ProbingWithInsertedPackets) {
kSecondClusterBps, kBitrateProbingError);
}
-TEST_F(PacedSenderTest, ProbingWithPaddingSupport) {
+TEST_P(PacedSenderTest, ProbingWithPaddingSupport) {
const size_t kPacketSize = 1200;
const int kInitialBitrateBps = 300000;
uint32_t ssrc = 12346;
@@ -865,7 +874,11 @@ TEST_F(PacedSenderTest, ProbingWithPaddingSupport) {
kFirstClusterBps, kBitrateProbingError);
}
-TEST_F(PacedSenderTest, PriorityInversion) {
+TEST_P(PacedSenderTest, PriorityInversion) {
+ // In this test capture timestamps are used to order packets, capture
+ // timestamps are not used in PacketQueue2.
+ if (webrtc::field_trial::IsEnabled("WebRTC-RoundRobinPacing"))
+ return;
uint32_t ssrc = 12346;
uint16_t sequence_number = 1234;
const size_t kPacketSize = 1200;
@@ -916,7 +929,7 @@ TEST_F(PacedSenderTest, PriorityInversion) {
}
}
-TEST_F(PacedSenderTest, PaddingOveruse) {
+TEST_P(PacedSenderTest, PaddingOveruse) {
uint32_t ssrc = 12346;
uint16_t sequence_number = 1234;
const size_t kPacketSize = 1200;
@@ -942,7 +955,7 @@ TEST_F(PacedSenderTest, PaddingOveruse) {
send_bucket_->Process();
}
-TEST_F(PacedSenderTest, AverageQueueTime) {
+TEST_P(PacedSenderTest, AverageQueueTime) {
uint32_t ssrc = 12346;
uint16_t sequence_number = 1234;
const size_t kPacketSize = 1200;
@@ -987,7 +1000,7 @@ TEST_F(PacedSenderTest, AverageQueueTime) {
EXPECT_EQ(0, send_bucket_->AverageQueueTimeMs());
}
-TEST_F(PacedSenderTest, ProbeClusterId) {
+TEST_P(PacedSenderTest, ProbeClusterId) {
uint32_t ssrc = 12346;
uint16_t sequence_number = 1234;
const size_t kPacketSize = 1200;
@@ -1033,7 +1046,7 @@ TEST_F(PacedSenderTest, ProbeClusterId) {
send_bucket_->Process();
}
-TEST_F(PacedSenderTest, AvoidBusyLoopOnSendFailure) {
+TEST_P(PacedSenderTest, AvoidBusyLoopOnSendFailure) {
uint32_t ssrc = 12346;
uint16_t sequence_number = 1234;
const size_t kPacketSize = kFirstClusterBps / (8000 / 10);
@@ -1060,7 +1073,7 @@ TEST_F(PacedSenderTest, AvoidBusyLoopOnSendFailure) {
EXPECT_EQ(5, send_bucket_->TimeUntilNextProcess());
}
-TEST_F(PacedSenderTest, QueueTimeWithPause) {
+TEST_P(PacedSenderTest, QueueTimeWithPause) {
const size_t kPacketSize = 1200;
const uint32_t kSsrc = 12346;
uint16_t sequence_number = 1234;
@@ -1089,7 +1102,7 @@ TEST_F(PacedSenderTest, QueueTimeWithPause) {
EXPECT_EQ(200, send_bucket_->AverageQueueTimeMs());
}
-TEST_F(PacedSenderTest, QueueTimePausedDuringPush) {
+TEST_P(PacedSenderTest, QueueTimePausedDuringPush) {
const size_t kPacketSize = 1200;
const uint32_t kSsrc = 12346;
uint16_t sequence_number = 1234;
diff --git a/chromium/third_party/webrtc/modules/pacing/packet_queue.cc b/chromium/third_party/webrtc/modules/pacing/packet_queue.cc
index 99f27c864f3..e0308d160c5 100644
--- a/chromium/third_party/webrtc/modules/pacing/packet_queue.cc
+++ b/chromium/third_party/webrtc/modules/pacing/packet_queue.cc
@@ -44,6 +44,8 @@ PacketQueue::Packet::Packet(RtpPacketSender::Priority priority,
retransmission(retransmission),
enqueue_order(enqueue_order) {}
+PacketQueue::Packet::Packet(const Packet& other) = default;
+
PacketQueue::Packet::~Packet() {}
PacketQueue::PacketQueue(const Clock* clock)
diff --git a/chromium/third_party/webrtc/modules/pacing/packet_queue.h b/chromium/third_party/webrtc/modules/pacing/packet_queue.h
index 5e970fb16dd..240961601c3 100644
--- a/chromium/third_party/webrtc/modules/pacing/packet_queue.h
+++ b/chromium/third_party/webrtc/modules/pacing/packet_queue.h
@@ -13,6 +13,7 @@
#include <list>
#include <queue>
+#include <set>
#include <vector>
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
@@ -34,31 +35,43 @@ class PacketQueue {
bool retransmission,
uint64_t enqueue_order);
+ Packet(const Packet& other);
+
virtual ~Packet();
+ bool operator<(const Packet& other) const {
+ if (priority != other.priority)
+ return priority > other.priority;
+ if (retransmission != other.retransmission)
+ return other.retransmission;
+
+ return enqueue_order > other.enqueue_order;
+ }
+
RtpPacketSender::Priority priority;
uint32_t ssrc;
uint16_t sequence_number;
int64_t capture_time_ms; // Absolute time of frame capture.
int64_t enqueue_time_ms; // Absolute time of pacer queue entry.
- int64_t sum_paused_ms; // Sum of time spent in queue while pacer is paused.
+ int64_t sum_paused_ms;
size_t bytes;
bool retransmission;
uint64_t enqueue_order;
std::list<Packet>::iterator this_it;
+ std::multiset<int64_t>::iterator enqueue_time_it;
};
- void Push(const Packet& packet);
- const Packet& BeginPop();
- void CancelPop(const Packet& packet);
- void FinalizePop(const Packet& packet);
- bool Empty() const;
- size_t SizeInPackets() const;
- uint64_t SizeInBytes() const;
- int64_t OldestEnqueueTimeMs() const;
- void UpdateQueueTime(int64_t timestamp_ms);
- void SetPauseState(bool paused, int64_t timestamp_ms);
- int64_t AverageQueueTimeMs() const;
+ virtual void Push(const Packet& packet);
+ virtual const Packet& BeginPop();
+ virtual void CancelPop(const Packet& packet);
+ virtual void FinalizePop(const Packet& packet);
+ virtual bool Empty() const;
+ virtual size_t SizeInPackets() const;
+ virtual uint64_t SizeInBytes() const;
+ virtual int64_t OldestEnqueueTimeMs() const;
+ virtual void UpdateQueueTime(int64_t timestamp_ms);
+ virtual void SetPauseState(bool paused, int64_t timestamp_ms);
+ virtual int64_t AverageQueueTimeMs() const;
private:
// Try to add a packet to the set of ssrc/seqno identifiers currently in the
diff --git a/chromium/third_party/webrtc/modules/pacing/packet_queue2.cc b/chromium/third_party/webrtc/modules/pacing/packet_queue2.cc
new file mode 100644
index 00000000000..6aee807af36
--- /dev/null
+++ b/chromium/third_party/webrtc/modules/pacing/packet_queue2.cc
@@ -0,0 +1,209 @@
+/*
+ * Copyright (c) 2017 The WebRTC 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 in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include "modules/pacing/packet_queue2.h"
+
+#include <algorithm>
+
+#include "rtc_base/checks.h"
+#include "system_wrappers/include/clock.h"
+
+namespace webrtc {
+
+PacketQueue2::Stream::Stream() : bytes(0) {}
+PacketQueue2::Stream::~Stream() {}
+
+PacketQueue2::PacketQueue2(const Clock* clock)
+ : PacketQueue(clock),
+ clock_(clock),
+ time_last_updated_(clock_->TimeInMilliseconds()) {}
+
+PacketQueue2::~PacketQueue2() {}
+
+void PacketQueue2::Push(const Packet& packet_to_insert) {
+ Packet packet(packet_to_insert);
+
+ auto stream_info_it = streams_.find(packet.ssrc);
+ if (stream_info_it == streams_.end()) {
+ stream_info_it = streams_.emplace(packet.ssrc, Stream()).first;
+ stream_info_it->second.priority_it = stream_priorities_.end();
+ stream_info_it->second.ssrc = packet.ssrc;
+ }
+
+ Stream* streams_ = &stream_info_it->second;
+
+ if (streams_->priority_it == stream_priorities_.end()) {
+ // If the SSRC is not currently scheduled, add it to |stream_priorities_|.
+ RTC_CHECK(!IsSsrcScheduled(streams_->ssrc));
+ streams_->priority_it = stream_priorities_.emplace(
+ StreamPrioKey(packet.priority, streams_->bytes), packet.ssrc);
+ } else if (packet.priority < streams_->priority_it->first.priority) {
+ // If the priority of this SSRC increased, remove the outdated StreamPrioKey
+ // and insert a new one with the new priority. Note that
+ // RtpPacketSender::Priority uses lower ordinal for higher priority.
+ stream_priorities_.erase(streams_->priority_it);
+ streams_->priority_it = stream_priorities_.emplace(
+ StreamPrioKey(packet.priority, streams_->bytes), packet.ssrc);
+ }
+ RTC_CHECK(streams_->priority_it != stream_priorities_.end());
+
+ packet.enqueue_time_it = enqueue_times_.insert(packet.enqueue_time_ms);
+
+ // In order to figure out how much time a packet has spent in the queue while
+ // not in a paused state, we subtract the total amount of time the queue has
+ // been paused so far, and when the packet is poped we subtract the total
+ // amount of time the queue has been paused at that moment. This way we
+ // subtract the total amount of time the packet has spent in the queue while
+ // in a paused state.
+ UpdateQueueTime(packet.enqueue_time_ms);
+ packet.enqueue_time_ms -= pause_time_sum_ms_;
+ streams_->packet_queue.push(packet);
+
+ size_packets_ += 1;
+ size_bytes_ += packet.bytes;
+}
+
+const PacketQueue2::Packet& PacketQueue2::BeginPop() {
+ RTC_CHECK(!pop_packet_ && !pop_stream_);
+
+ Stream* stream = GetHighestPriorityStream();
+ pop_stream_.emplace(stream);
+ pop_packet_.emplace(stream->packet_queue.top());
+ stream->packet_queue.pop();
+
+ return *pop_packet_;
+}
+
+void PacketQueue2::CancelPop(const Packet& packet) {
+ RTC_CHECK(pop_packet_ && pop_stream_);
+ (*pop_stream_)->packet_queue.push(*pop_packet_);
+ pop_packet_.reset();
+ pop_stream_.reset();
+}
+
+void PacketQueue2::FinalizePop(const Packet& packet) {
+ RTC_CHECK(!paused_);
+ if (!Empty()) {
+ RTC_CHECK(pop_packet_ && pop_stream_);
+ Stream* stream = *pop_stream_;
+ stream_priorities_.erase(stream->priority_it);
+ const Packet& packet = *pop_packet_;
+
+ // Calculate the total amount of time spent by this packet in the queue
+ // while in a non-paused state. Note that the |pause_time_sum_ms_| was
+ // subtracted from |packet.enqueue_time_ms| when the packet was pushed, and
+ // by subtracting it now we effectively remove the time spent in in the
+ // queue while in a paused state.
+ int64_t time_in_non_paused_state_ms =
+ time_last_updated_ - packet.enqueue_time_ms - pause_time_sum_ms_;
+ queue_time_sum_ms_ -= time_in_non_paused_state_ms;
+
+ RTC_CHECK(packet.enqueue_time_it != enqueue_times_.end());
+ enqueue_times_.erase(packet.enqueue_time_it);
+
+ // Update |bytes| of this stream. The general idea is that the stream that
+ // has sent the least amount of bytes should have the highest priority.
+ // The problem with that is if streams send with different rates, in which
+ // case a "budget" will be built up for the stream sending at the lower
+ // rate. To avoid building a too large budget we limit |bytes| to be within
+ // kMaxLeading bytes of the stream that has sent the most amount of bytes.
+ stream->bytes =
+ std::max(stream->bytes + packet.bytes, max_bytes_ - kMaxLeadingBytes);
+ max_bytes_ = std::max(max_bytes_, stream->bytes);
+
+ size_bytes_ -= packet.bytes;
+ size_packets_ -= 1;
+ RTC_CHECK(size_packets_ > 0 || queue_time_sum_ms_ == 0);
+
+ // If there are packets left to be sent, schedule the stream again.
+ RTC_CHECK(!IsSsrcScheduled(stream->ssrc));
+ if (stream->packet_queue.empty()) {
+ stream->priority_it = stream_priorities_.end();
+ } else {
+ RtpPacketSender::Priority priority = stream->packet_queue.top().priority;
+ stream->priority_it = stream_priorities_.emplace(
+ StreamPrioKey(priority, stream->bytes), stream->ssrc);
+ }
+
+ pop_packet_.reset();
+ pop_stream_.reset();
+ }
+}
+
+bool PacketQueue2::Empty() const {
+ RTC_CHECK((!stream_priorities_.empty() && size_packets_ > 0) ||
+ (stream_priorities_.empty() && size_packets_ == 0));
+ return stream_priorities_.empty();
+}
+
+size_t PacketQueue2::SizeInPackets() const {
+ return size_packets_;
+}
+
+uint64_t PacketQueue2::SizeInBytes() const {
+ return size_bytes_;
+}
+
+int64_t PacketQueue2::OldestEnqueueTimeMs() const {
+ if (Empty())
+ return 0;
+ RTC_CHECK(!enqueue_times_.empty());
+ return *enqueue_times_.begin();
+}
+
+void PacketQueue2::UpdateQueueTime(int64_t timestamp_ms) {
+ RTC_CHECK_GE(timestamp_ms, time_last_updated_);
+ if (timestamp_ms == time_last_updated_)
+ return;
+
+ int64_t delta_ms = timestamp_ms - time_last_updated_;
+
+ if (paused_) {
+ pause_time_sum_ms_ += delta_ms;
+ } else {
+ queue_time_sum_ms_ += delta_ms * size_packets_;
+ }
+
+ time_last_updated_ = timestamp_ms;
+}
+
+void PacketQueue2::SetPauseState(bool paused, int64_t timestamp_ms) {
+ if (paused_ == paused)
+ return;
+ UpdateQueueTime(timestamp_ms);
+ paused_ = paused;
+}
+
+int64_t PacketQueue2::AverageQueueTimeMs() const {
+ if (Empty())
+ return 0;
+ return queue_time_sum_ms_ / size_packets_;
+}
+
+PacketQueue2::Stream* PacketQueue2::GetHighestPriorityStream() {
+ RTC_CHECK(!stream_priorities_.empty());
+ uint32_t ssrc = stream_priorities_.begin()->second;
+
+ auto stream_info_it = streams_.find(ssrc);
+ RTC_CHECK(stream_info_it != streams_.end());
+ RTC_CHECK(stream_info_it->second.priority_it == stream_priorities_.begin());
+ RTC_CHECK(!stream_info_it->second.packet_queue.empty());
+ return &stream_info_it->second;
+}
+
+bool PacketQueue2::IsSsrcScheduled(uint32_t ssrc) const {
+ for (const auto& scheduled_stream : stream_priorities_) {
+ if (scheduled_stream.second == ssrc)
+ return true;
+ }
+ return false;
+}
+
+} // namespace webrtc
diff --git a/chromium/third_party/webrtc/modules/pacing/packet_queue2.h b/chromium/third_party/webrtc/modules/pacing/packet_queue2.h
new file mode 100644
index 00000000000..06e0f08b383
--- /dev/null
+++ b/chromium/third_party/webrtc/modules/pacing/packet_queue2.h
@@ -0,0 +1,111 @@
+/*
+ * Copyright (c) 2017 The WebRTC 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 in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+#ifndef MODULES_PACING_PACKET_QUEUE2_H_
+#define MODULES_PACING_PACKET_QUEUE2_H_
+
+#include <map>
+#include <queue>
+#include <set>
+
+#include "modules/pacing/packet_queue.h"
+#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
+
+namespace webrtc {
+
+class PacketQueue2 : public PacketQueue {
+ public:
+ explicit PacketQueue2(const Clock* clock);
+ ~PacketQueue2() override;
+
+ using Packet = PacketQueue::Packet;
+
+ void Push(const Packet& packet) override;
+ const Packet& BeginPop() override;
+ void CancelPop(const Packet& packet) override;
+ void FinalizePop(const Packet& packet) override;
+
+ bool Empty() const override;
+ size_t SizeInPackets() const override;
+ uint64_t SizeInBytes() const override;
+
+ int64_t OldestEnqueueTimeMs() const override;
+ int64_t AverageQueueTimeMs() const override;
+ void UpdateQueueTime(int64_t timestamp_ms) override;
+ void SetPauseState(bool paused, int64_t timestamp_ms) override;
+
+ struct StreamPrioKey {
+ StreamPrioKey() = default;
+ StreamPrioKey(RtpPacketSender::Priority priority, int64_t bytes)
+ : priority(priority), bytes(bytes) {}
+
+ bool operator<(const StreamPrioKey& other) const {
+ if (priority != other.priority)
+ return priority < other.priority;
+ return bytes > other.bytes;
+ }
+
+ const RtpPacketSender::Priority priority;
+ const size_t bytes;
+ };
+
+ struct Stream {
+ Stream();
+
+ virtual ~Stream();
+
+ size_t bytes;
+ uint32_t ssrc;
+ std::priority_queue<Packet> packet_queue;
+
+ // Whenever a packet is inserted for this stream we check if |priority_it|
+ // points to an element in |stream_priorities_|, and if it does it means
+ // this stream has already been scheduled, and if the scheduled priority is
+ // lower than the priority of the incoming packet we reschedule this stream
+ // with the higher priority.
+ std::multimap<StreamPrioKey, uint32_t>::iterator priority_it;
+ };
+
+ private:
+ static constexpr size_t kMaxLeadingBytes = 1400;
+
+ Stream* GetHighestPriorityStream();
+
+ // Just used to verify correctness.
+ bool IsSsrcScheduled(uint32_t ssrc) const;
+
+ const Clock* const clock_;
+ int64_t time_last_updated_;
+ rtc::Optional<Packet> pop_packet_;
+ rtc::Optional<Stream*> pop_stream_;
+
+ bool paused_ = false;
+ size_t size_packets_ = 0;
+ size_t size_bytes_ = 0;
+ size_t max_bytes_ = kMaxLeadingBytes;
+ int64_t queue_time_sum_ms_ = 0;
+ int64_t pause_time_sum_ms_ = 0;
+
+ // A map of streams used to prioritize from which stream to send next. We use
+ // a multimap instead of a priority_queue since the priority of a stream can
+ // change as a new packet is inserted, and a multimap allows us to remove and
+ // then reinsert a StreamPrioKey if the priority has increased.
+ std::multimap<StreamPrioKey, uint32_t> stream_priorities_;
+
+ // A map of SSRCs to Streams.
+ std::map<uint32_t, Stream> streams_;
+
+ // The enqueue time of every packet currently in the queue. Used to figure out
+ // the age of the oldest packet in the queue.
+ std::multiset<int64_t> enqueue_times_;
+};
+} // namespace webrtc
+
+#endif // MODULES_PACING_PACKET_QUEUE2_H_
diff --git a/chromium/third_party/webrtc/pc/mediasession.cc b/chromium/third_party/webrtc/pc/mediasession.cc
index 8079ae140cb..835f76d1cf0 100644
--- a/chromium/third_party/webrtc/pc/mediasession.cc
+++ b/chromium/third_party/webrtc/pc/mediasession.cc
@@ -1860,7 +1860,7 @@ bool MediaSessionDescriptionFactory::AddAudioContentForOffer(
AudioCodecs filtered_codecs;
// Add the codecs from current content if exists.
if (current_content) {
- RTC_DCHECK(IsMediaContentOfType(current_content, MEDIA_TYPE_AUDIO));
+ RTC_CHECK(IsMediaContentOfType(current_content, MEDIA_TYPE_AUDIO));
const AudioContentDescription* acd =
static_cast<const AudioContentDescription*>(
current_content->description);
@@ -1938,7 +1938,7 @@ bool MediaSessionDescriptionFactory::AddVideoContentForOffer(
VideoCodecs filtered_codecs;
// Add the codecs from current content if exists.
if (current_content) {
- RTC_DCHECK(IsMediaContentOfType(current_content, MEDIA_TYPE_VIDEO));
+ RTC_CHECK(IsMediaContentOfType(current_content, MEDIA_TYPE_VIDEO));
const VideoContentDescription* vcd =
static_cast<const VideoContentDescription*>(
current_content->description);
@@ -2002,6 +2002,7 @@ bool MediaSessionDescriptionFactory::AddDataContentForOffer(
// If the DataChannel type is not specified, use the DataChannel type in
// the current description.
if (session_options.data_channel_type == DCT_NONE && current_content) {
+ RTC_CHECK(IsMediaContentOfType(current_content, MEDIA_TYPE_DATA));
is_sctp = (static_cast<const DataContentDescription*>(
current_content->description)
->protocol() == kMediaProtocolSctp);
@@ -2077,6 +2078,7 @@ bool MediaSessionDescriptionFactory::AddAudioContentForAnswer(
const AudioCodecs& audio_codecs,
StreamParamsVec* current_streams,
SessionDescription* answer) const {
+ RTC_CHECK(IsMediaContentOfType(offer_content, MEDIA_TYPE_AUDIO));
const AudioContentDescription* offer_audio_description =
static_cast<const AudioContentDescription*>(offer_content->description);
@@ -2101,7 +2103,7 @@ bool MediaSessionDescriptionFactory::AddAudioContentForAnswer(
AudioCodecs filtered_codecs;
// Add the codecs from current content if exists.
if (current_content) {
- RTC_DCHECK(IsMediaContentOfType(current_content, MEDIA_TYPE_AUDIO));
+ RTC_CHECK(IsMediaContentOfType(current_content, MEDIA_TYPE_AUDIO));
const AudioContentDescription* acd =
static_cast<const AudioContentDescription*>(
current_content->description);
@@ -2170,6 +2172,7 @@ bool MediaSessionDescriptionFactory::AddVideoContentForAnswer(
const VideoCodecs& video_codecs,
StreamParamsVec* current_streams,
SessionDescription* answer) const {
+ RTC_CHECK(IsMediaContentOfType(offer_content, MEDIA_TYPE_VIDEO));
const VideoContentDescription* offer_video_description =
static_cast<const VideoContentDescription*>(offer_content->description);
@@ -2184,7 +2187,7 @@ bool MediaSessionDescriptionFactory::AddVideoContentForAnswer(
VideoCodecs filtered_codecs;
// Add the codecs from current content if exists.
if (current_content) {
- RTC_DCHECK(IsMediaContentOfType(current_content, MEDIA_TYPE_VIDEO));
+ RTC_CHECK(IsMediaContentOfType(current_content, MEDIA_TYPE_VIDEO));
const VideoContentDescription* vcd =
static_cast<const VideoContentDescription*>(
current_content->description);
@@ -2270,19 +2273,18 @@ bool MediaSessionDescriptionFactory::AddDataContentForAnswer(
data_transport->secure() ? cricket::SEC_DISABLED : secure();
bool bundle_enabled = offer_description->HasGroup(GROUP_TYPE_BUNDLE) &&
session_options.bundle_enabled;
+ RTC_CHECK(IsMediaContentOfType(offer_content, MEDIA_TYPE_DATA));
+ const DataContentDescription* offer_data_description =
+ static_cast<const DataContentDescription*>(offer_content->description);
if (!CreateMediaContentAnswer(
- static_cast<const DataContentDescription*>(
- offer_content->description),
- media_description_options, session_options, data_codecs, sdes_policy,
- GetCryptos(current_content), RtpHeaderExtensions(),
- enable_encrypted_rtp_header_extensions_, current_streams,
- bundle_enabled, data_answer.get())) {
+ offer_data_description, media_description_options, session_options,
+ data_codecs, sdes_policy, GetCryptos(current_content),
+ RtpHeaderExtensions(), enable_encrypted_rtp_header_extensions_,
+ current_streams, bundle_enabled, data_answer.get())) {
return false; // Fails the session setup.
}
// Respond with sctpmap if the offer uses sctpmap.
- const DataContentDescription* offer_data_description =
- static_cast<const DataContentDescription*>(offer_content->description);
bool offer_uses_sctpmap = offer_data_description->use_sctpmap();
data_answer->set_use_sctpmap(offer_uses_sctpmap);
diff --git a/chromium/third_party/webrtc/pc/peerconnectioninterface_unittest.cc b/chromium/third_party/webrtc/pc/peerconnectioninterface_unittest.cc
index cc063b4f746..ac6c8b95667 100644
--- a/chromium/third_party/webrtc/pc/peerconnectioninterface_unittest.cc
+++ b/chromium/third_party/webrtc/pc/peerconnectioninterface_unittest.cc
@@ -3710,7 +3710,7 @@ TEST_F(PeerConnectionInterfaceTest, CreateAnswerWithoutRemoteDescription) {
EXPECT_TRUE(DoCreateAnswer(&answer, nullptr));
}
-// Test that an error is returned if a description is applied that doesn't
+// Tests that an error is returned if a description is applied that doesn't
// respect the order of existing media sections.
TEST_F(PeerConnectionInterfaceTest,
MediaSectionOrderEnforcedForSubsequentOffers) {
@@ -3743,6 +3743,37 @@ TEST_F(PeerConnectionInterfaceTest,
EXPECT_FALSE(DoSetLocalDescription(std::move(offer)));
}
+// Tests that an error is returned if a description is applied that has fewer
+// media sections than the existing description.
+TEST_F(PeerConnectionInterfaceTest,
+ MediaSectionCountEnforcedForSubsequentOffer) {
+ CreatePeerConnection();
+ FakeConstraints constraints;
+ constraints.SetMandatoryReceiveAudio(true);
+ constraints.SetMandatoryReceiveVideo(true);
+ std::unique_ptr<SessionDescriptionInterface> offer;
+ ASSERT_TRUE(DoCreateOffer(&offer, &constraints));
+ EXPECT_TRUE(DoSetRemoteDescription(std::move(offer)));
+
+ // A remote offer with fewer media sections should be rejected.
+ ASSERT_TRUE(DoCreateOffer(&offer, &constraints));
+ offer->description()->contents().pop_back();
+ offer->description()->contents().pop_back();
+ ASSERT_TRUE(offer->description()->contents().empty());
+ EXPECT_FALSE(DoSetRemoteDescription(std::move(offer)));
+
+ std::unique_ptr<SessionDescriptionInterface> answer;
+ ASSERT_TRUE(DoCreateAnswer(&answer, nullptr));
+ EXPECT_TRUE(DoSetLocalDescription(std::move(answer)));
+
+ // A subsequent local offer with fewer media sections should be rejected.
+ ASSERT_TRUE(DoCreateOffer(&offer, &constraints));
+ offer->description()->contents().pop_back();
+ offer->description()->contents().pop_back();
+ ASSERT_TRUE(offer->description()->contents().empty());
+ EXPECT_FALSE(DoSetLocalDescription(std::move(offer)));
+}
+
class PeerConnectionMediaConfigTest : public testing::Test {
protected:
void SetUp() override {
diff --git a/chromium/third_party/webrtc/pc/webrtcsession.cc b/chromium/third_party/webrtc/pc/webrtcsession.cc
index f556204c6c9..55d029608cb 100644
--- a/chromium/third_party/webrtc/pc/webrtcsession.cc
+++ b/chromium/third_party/webrtc/pc/webrtcsession.cc
@@ -140,25 +140,30 @@ IceCandidatePairType GetIceCandidatePairCounter(
return kIceCandidatePairMax;
}
-// Verify that the order of media sections in |desc1| matches |desc2|. The
-// number of m= sections could be different.
-static bool MediaSectionsInSameOrder(const SessionDescription* desc1,
- const SessionDescription* desc2) {
- if (!desc1 || !desc2) {
+// Verify that the order of media sections in |new_desc| matches
+// |existing_desc|. The number of m= sections in |new_desc| should be no less
+// than |existing_desc|.
+static bool MediaSectionsInSameOrder(const SessionDescription* existing_desc,
+ const SessionDescription* new_desc) {
+ if (!existing_desc || !new_desc) {
+ return false;
+ }
+
+ if (existing_desc->contents().size() > new_desc->contents().size()) {
return false;
}
- for (size_t i = 0;
- i < desc1->contents().size() && i < desc2->contents().size(); ++i) {
- if ((desc2->contents()[i].name) != desc1->contents()[i].name) {
+
+ for (size_t i = 0; i < existing_desc->contents().size(); ++i) {
+ if (new_desc->contents()[i].name != existing_desc->contents()[i].name) {
return false;
}
- const MediaContentDescription* desc2_mdesc =
+ const MediaContentDescription* new_desc_mdesc =
static_cast<const MediaContentDescription*>(
- desc2->contents()[i].description);
- const MediaContentDescription* desc1_mdesc =
+ new_desc->contents()[i].description);
+ const MediaContentDescription* existing_desc_mdesc =
static_cast<const MediaContentDescription*>(
- desc1->contents()[i].description);
- if (desc2_mdesc->type() != desc1_mdesc->type()) {
+ existing_desc->contents()[i].description);
+ if (new_desc_mdesc->type() != existing_desc_mdesc->type()) {
return false;
}
}
@@ -2165,16 +2170,21 @@ bool WebRtcSession::ValidateSessionDescription(
const cricket::SessionDescription* offer_desc =
(source == cricket::CS_LOCAL) ? remote_description()->description()
: local_description()->description();
- if (!MediaSectionsHaveSameCount(sdesc->description(), offer_desc) ||
- !MediaSectionsInSameOrder(sdesc->description(), offer_desc)) {
+ if (!MediaSectionsHaveSameCount(offer_desc, sdesc->description()) ||
+ !MediaSectionsInSameOrder(offer_desc, sdesc->description())) {
return BadAnswerSdp(source, kMlineMismatchInAnswer, err_desc);
}
} else {
- // The re-offers should respect the order of m= sections in current local
+ const cricket::SessionDescription* current_desc = nullptr;
+ if (source == cricket::CS_LOCAL && local_description()) {
+ current_desc = local_description()->description();
+ } else if (source == cricket::CS_REMOTE && remote_description()) {
+ current_desc = remote_description()->description();
+ }
+ // The re-offers should respect the order of m= sections in current
// description. See RFC3264 Section 8 paragraph 4 for more details.
- if (local_description() &&
- !MediaSectionsInSameOrder(sdesc->description(),
- local_description()->description())) {
+ if (current_desc &&
+ !MediaSectionsInSameOrder(current_desc, sdesc->description())) {
return BadOfferSdp(source, kMlineMismatchInSubsequentOffer, err_desc);
}
}
diff --git a/chromium/third_party/webrtc/tools_webrtc/ios/client.webrtc.branches/iOS (beta).json b/chromium/third_party/webrtc/tools_webrtc/ios/client.webrtc.branches/iOS (beta).json
new file mode 100644
index 00000000000..ad87ca184ed
--- /dev/null
+++ b/chromium/third_party/webrtc/tools_webrtc/ios/client.webrtc.branches/iOS (beta).json
@@ -0,0 +1,24 @@
+{
+ "comments": [
+ "Tests for 64-bit iOS simulators."
+ ],
+ "xcode version": "8.0",
+ "gn_args": [
+ "goma_dir=\"$(goma_dir)\"",
+ "is_component_build=false",
+ "is_debug=true",
+ "target_cpu=\"x64\"",
+ "target_os=\"ios\"",
+ "use_goma=true"
+ ],
+ "additional_compile_targets": [ "all" ],
+ "configuration": "Debug",
+ "sdk": "iphonesimulator10.0",
+ "tests": [
+ {
+ "include": "common_tests.json",
+ "device type": "iPhone 6s",
+ "os": "10.0"
+ }
+ ]
+}
diff --git a/chromium/third_party/webrtc/tools_webrtc/ios/client.webrtc.branches/iOS (stable).json b/chromium/third_party/webrtc/tools_webrtc/ios/client.webrtc.branches/iOS (stable).json
new file mode 100644
index 00000000000..ad87ca184ed
--- /dev/null
+++ b/chromium/third_party/webrtc/tools_webrtc/ios/client.webrtc.branches/iOS (stable).json
@@ -0,0 +1,24 @@
+{
+ "comments": [
+ "Tests for 64-bit iOS simulators."
+ ],
+ "xcode version": "8.0",
+ "gn_args": [
+ "goma_dir=\"$(goma_dir)\"",
+ "is_component_build=false",
+ "is_debug=true",
+ "target_cpu=\"x64\"",
+ "target_os=\"ios\"",
+ "use_goma=true"
+ ],
+ "additional_compile_targets": [ "all" ],
+ "configuration": "Debug",
+ "sdk": "iphonesimulator10.0",
+ "tests": [
+ {
+ "include": "common_tests.json",
+ "device type": "iPhone 6s",
+ "os": "10.0"
+ }
+ ]
+}
diff --git a/chromium/third_party/webrtc/tools_webrtc/mb/mb_config.pyl b/chromium/third_party/webrtc/tools_webrtc/mb/mb_config.pyl
index 65d01fda609..baaedb8a474 100644
--- a/chromium/third_party/webrtc/tools_webrtc/mb/mb_config.pyl
+++ b/chromium/third_party/webrtc/tools_webrtc/mb/mb_config.pyl
@@ -76,6 +76,27 @@
'Win32 Release (MSVC)': 'win_msvc_release_bot_x86',
'Win32 Release [large tests]': 'release_bot_x86',
},
+ 'client.webrtc.branches': {
+ # iOS
+ 'iOS (stable)': 'ios',
+ 'iOS (beta)': 'ios',
+
+ # Mac
+ 'Mac (stable)': 'release_bot_x64',
+ 'Mac (beta)': 'release_bot_x64',
+
+ # Linux
+ 'Linux (stable)': 'release_bot_x64',
+ 'Linux (beta)': 'release_bot_x64',
+
+ # Android
+ 'Android (stable)': 'android_release_bot_arm',
+ 'Android (beta)': 'android_release_bot_arm',
+
+ # Windows
+ 'Win (stable)': 'release_bot_x86',
+ 'Win (beta)': 'release_bot_x86',
+ },
'client.webrtc.perf': {
# Android
'Android32 Builder': 'perf_android_release_bot_arm',
diff --git a/chromium/third_party/webrtc/tools_webrtc/whitespace.txt b/chromium/third_party/webrtc/tools_webrtc/whitespace.txt
index 633f23318e2..d7b9e4fc3e0 100644
--- a/chromium/third_party/webrtc/tools_webrtc/whitespace.txt
+++ b/chromium/third_party/webrtc/tools_webrtc/whitespace.txt
@@ -10,3 +10,4 @@ Lemur was here :)
Kjellander as well :-o
Foo Bar Baz
+.
diff --git a/chromium/third_party/webrtc/video/end_to_end_tests.cc b/chromium/third_party/webrtc/video/end_to_end_tests.cc
index 2ae3ceefbc2..03a51faed84 100644
--- a/chromium/third_party/webrtc/video/end_to_end_tests.cc
+++ b/chromium/third_party/webrtc/video/end_to_end_tests.cc
@@ -78,9 +78,10 @@ namespace {
constexpr int kSilenceTimeoutMs = 2000;
}
-class EndToEndTest : public test::CallTest {
+class EndToEndTest : public test::CallTest,
+ public testing::WithParamInterface<std::string> {
public:
- EndToEndTest() {}
+ EndToEndTest() : field_trial_(GetParam()) {}
virtual ~EndToEndTest() {
EXPECT_EQ(nullptr, video_send_stream_);
@@ -148,9 +149,11 @@ class EndToEndTest : public test::CallTest {
void VerifyNewVideoReceiveStreamsRespectNetworkState(
MediaType network_to_bring_up,
Transport* transport);
+
+ test::ScopedFieldTrials field_trial_;
};
-TEST_F(EndToEndTest, ReceiverCanBeStartedTwice) {
+TEST_P(EndToEndTest, ReceiverCanBeStartedTwice) {
CreateCalls(Call::Config(event_log_.get()), Call::Config(event_log_.get()));
test::NullTransport transport;
@@ -165,7 +168,7 @@ TEST_F(EndToEndTest, ReceiverCanBeStartedTwice) {
DestroyStreams();
}
-TEST_F(EndToEndTest, ReceiverCanBeStoppedTwice) {
+TEST_P(EndToEndTest, ReceiverCanBeStoppedTwice) {
CreateCalls(Call::Config(event_log_.get()), Call::Config(event_log_.get()));
test::NullTransport transport;
@@ -180,7 +183,7 @@ TEST_F(EndToEndTest, ReceiverCanBeStoppedTwice) {
DestroyStreams();
}
-TEST_F(EndToEndTest, ReceiverCanBeStoppedAndRestarted) {
+TEST_P(EndToEndTest, ReceiverCanBeStoppedAndRestarted) {
CreateCalls(Call::Config(event_log_.get()), Call::Config(event_log_.get()));
test::NullTransport transport;
@@ -196,7 +199,7 @@ TEST_F(EndToEndTest, ReceiverCanBeStoppedAndRestarted) {
DestroyStreams();
}
-TEST_F(EndToEndTest, RendersSingleDelayedFrame) {
+TEST_P(EndToEndTest, RendersSingleDelayedFrame) {
static const int kWidth = 320;
static const int kHeight = 240;
// This constant is chosen to be higher than the timeout in the video_render
@@ -264,7 +267,7 @@ TEST_F(EndToEndTest, RendersSingleDelayedFrame) {
});
}
-TEST_F(EndToEndTest, TransmitsFirstFrame) {
+TEST_P(EndToEndTest, TransmitsFirstFrame) {
class Renderer : public rtc::VideoSinkInterface<VideoFrame> {
public:
Renderer() : event_(false, false) {}
@@ -381,26 +384,26 @@ class CodecObserver : public test::EndToEndTest,
int frame_counter_;
};
-TEST_F(EndToEndTest, SendsAndReceivesVP8) {
+TEST_P(EndToEndTest, SendsAndReceivesVP8) {
CodecObserver test(5, kVideoRotation_0, "VP8", VP8Encoder::Create(),
VP8Decoder::Create());
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, SendsAndReceivesVP8Rotation90) {
+TEST_P(EndToEndTest, SendsAndReceivesVP8Rotation90) {
CodecObserver test(5, kVideoRotation_90, "VP8", VP8Encoder::Create(),
VP8Decoder::Create());
RunBaseTest(&test);
}
#if !defined(RTC_DISABLE_VP9)
-TEST_F(EndToEndTest, SendsAndReceivesVP9) {
+TEST_P(EndToEndTest, SendsAndReceivesVP9) {
CodecObserver test(500, kVideoRotation_0, "VP9", VP9Encoder::Create(),
VP9Decoder::Create());
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, SendsAndReceivesVP9VideoRotation90) {
+TEST_P(EndToEndTest, SendsAndReceivesVP9VideoRotation90) {
CodecObserver test(5, kVideoRotation_90, "VP9", VP9Encoder::Create(),
VP9Decoder::Create());
RunBaseTest(&test);
@@ -408,21 +411,21 @@ TEST_F(EndToEndTest, SendsAndReceivesVP9VideoRotation90) {
#endif // !defined(RTC_DISABLE_VP9)
#if defined(WEBRTC_USE_H264)
-TEST_F(EndToEndTest, SendsAndReceivesH264) {
+TEST_P(EndToEndTest, SendsAndReceivesH264) {
CodecObserver test(500, kVideoRotation_0, "H264",
H264Encoder::Create(cricket::VideoCodec("H264")),
H264Decoder::Create());
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, SendsAndReceivesH264VideoRotation90) {
+TEST_P(EndToEndTest, SendsAndReceivesH264VideoRotation90) {
CodecObserver test(5, kVideoRotation_90, "H264",
H264Encoder::Create(cricket::VideoCodec("H264")),
H264Decoder::Create());
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, SendsAndReceivesH264PacketizationMode0) {
+TEST_P(EndToEndTest, SendsAndReceivesH264PacketizationMode0) {
cricket::VideoCodec codec = cricket::VideoCodec("H264");
codec.SetParam(cricket::kH264FmtpPacketizationMode, "0");
CodecObserver test(500, kVideoRotation_0, "H264", H264Encoder::Create(codec),
@@ -430,7 +433,7 @@ TEST_F(EndToEndTest, SendsAndReceivesH264PacketizationMode0) {
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, SendsAndReceivesH264PacketizationMode1) {
+TEST_P(EndToEndTest, SendsAndReceivesH264PacketizationMode1) {
cricket::VideoCodec codec = cricket::VideoCodec("H264");
codec.SetParam(cricket::kH264FmtpPacketizationMode, "1");
CodecObserver test(500, kVideoRotation_0, "H264", H264Encoder::Create(codec),
@@ -440,7 +443,7 @@ TEST_F(EndToEndTest, SendsAndReceivesH264PacketizationMode1) {
#endif // defined(WEBRTC_USE_H264)
-TEST_F(EndToEndTest, ReceiverUsesLocalSsrc) {
+TEST_P(EndToEndTest, ReceiverUsesLocalSsrc) {
class SyncRtcpObserver : public test::EndToEndTest {
public:
SyncRtcpObserver() : EndToEndTest(kDefaultTimeoutMs) {}
@@ -463,7 +466,7 @@ TEST_F(EndToEndTest, ReceiverUsesLocalSsrc) {
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, ReceivesAndRetransmitsNack) {
+TEST_P(EndToEndTest, ReceivesAndRetransmitsNack) {
static const int kNumberOfNacksToObserve = 2;
static const int kLossBurstSize = 2;
static const int kPacketsBetweenLossBursts = 9;
@@ -546,7 +549,7 @@ TEST_F(EndToEndTest, ReceivesAndRetransmitsNack) {
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, ReceivesNackAndRetransmitsAudio) {
+TEST_P(EndToEndTest, ReceivesNackAndRetransmitsAudio) {
class NackObserver : public test::EndToEndTest {
public:
NackObserver()
@@ -618,7 +621,7 @@ TEST_F(EndToEndTest, ReceivesNackAndRetransmitsAudio) {
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, ReceivesUlpfec) {
+TEST_P(EndToEndTest, ReceivesUlpfec) {
class UlpfecRenderObserver : public test::EndToEndTest,
public rtc::VideoSinkInterface<VideoFrame> {
public:
@@ -892,22 +895,22 @@ class FlexfecRenderObserver : public test::EndToEndTest,
int num_packets_sent_;
};
-TEST_F(EndToEndTest, RecoversWithFlexfec) {
+TEST_P(EndToEndTest, RecoversWithFlexfec) {
FlexfecRenderObserver test(false, false);
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, RecoversWithFlexfecAndNack) {
+TEST_P(EndToEndTest, RecoversWithFlexfecAndNack) {
FlexfecRenderObserver test(true, false);
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, RecoversWithFlexfecAndSendsCorrespondingRtcp) {
+TEST_P(EndToEndTest, RecoversWithFlexfecAndSendsCorrespondingRtcp) {
FlexfecRenderObserver test(false, true);
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, ReceivedUlpfecPacketsNotNacked) {
+TEST_P(EndToEndTest, ReceivedUlpfecPacketsNotNacked) {
class UlpfecNackObserver : public test::EndToEndTest {
public:
UlpfecNackObserver()
@@ -1226,19 +1229,19 @@ void EndToEndTest::DecodesRetransmittedFrame(bool enable_rtx, bool enable_red) {
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, DecodesRetransmittedFrame) {
+TEST_P(EndToEndTest, DecodesRetransmittedFrame) {
DecodesRetransmittedFrame(false, false);
}
-TEST_F(EndToEndTest, DecodesRetransmittedFrameOverRtx) {
+TEST_P(EndToEndTest, DecodesRetransmittedFrameOverRtx) {
DecodesRetransmittedFrame(true, false);
}
-TEST_F(EndToEndTest, DecodesRetransmittedFrameByRed) {
+TEST_P(EndToEndTest, DecodesRetransmittedFrameByRed) {
DecodesRetransmittedFrame(false, true);
}
-TEST_F(EndToEndTest, DecodesRetransmittedFrameByRedOverRtx) {
+TEST_P(EndToEndTest, DecodesRetransmittedFrameByRedOverRtx) {
DecodesRetransmittedFrame(true, true);
}
@@ -1322,15 +1325,15 @@ void EndToEndTest::ReceivesPliAndRecovers(int rtp_history_ms) {
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, ReceivesPliAndRecoversWithNack) {
+TEST_P(EndToEndTest, ReceivesPliAndRecoversWithNack) {
ReceivesPliAndRecovers(1000);
}
-TEST_F(EndToEndTest, ReceivesPliAndRecoversWithoutNack) {
+TEST_P(EndToEndTest, ReceivesPliAndRecoversWithoutNack) {
ReceivesPliAndRecovers(0);
}
-TEST_F(EndToEndTest, UnknownRtpPacketGivesUnknownSsrcReturnCode) {
+TEST_P(EndToEndTest, UnknownRtpPacketGivesUnknownSsrcReturnCode) {
class PacketInputObserver : public PacketReceiver {
public:
explicit PacketInputObserver(PacketReceiver* receiver)
@@ -1481,11 +1484,11 @@ void EndToEndTest::RespectsRtcpMode(RtcpMode rtcp_mode) {
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, UsesRtcpCompoundMode) {
+TEST_P(EndToEndTest, UsesRtcpCompoundMode) {
RespectsRtcpMode(RtcpMode::kCompound);
}
-TEST_F(EndToEndTest, UsesRtcpReducedSizeMode) {
+TEST_P(EndToEndTest, UsesRtcpReducedSizeMode) {
RespectsRtcpMode(RtcpMode::kReducedSize);
}
@@ -1636,7 +1639,7 @@ class MultiStreamTest {
// Each renderer verifies that it receives the expected resolution, and as soon
// as every renderer has received a frame, the test finishes.
-TEST_F(EndToEndTest, SendsAndReceivesMultipleStreams) {
+TEST_P(EndToEndTest, SendsAndReceivesMultipleStreams) {
class VideoOutputObserver : public rtc::VideoSinkInterface<VideoFrame> {
public:
VideoOutputObserver(const MultiStreamTest::CodecSettings& settings,
@@ -1702,7 +1705,7 @@ TEST_F(EndToEndTest, SendsAndReceivesMultipleStreams) {
tester.RunTest();
}
-TEST_F(EndToEndTest, AssignsTransportSequenceNumbers) {
+TEST_P(EndToEndTest, AssignsTransportSequenceNumbers) {
static const int kExtensionId = 5;
class RtpExtensionHeaderObserver : public test::DirectTransport {
@@ -1977,32 +1980,32 @@ class TransportFeedbackTester : public test::EndToEndTest {
Call* receiver_call_;
};
-TEST_F(EndToEndTest, VideoReceivesTransportFeedback) {
+TEST_P(EndToEndTest, VideoReceivesTransportFeedback) {
TransportFeedbackTester test(true, 1, 0);
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, VideoTransportFeedbackNotConfigured) {
+TEST_P(EndToEndTest, VideoTransportFeedbackNotConfigured) {
TransportFeedbackTester test(false, 1, 0);
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, AudioReceivesTransportFeedback) {
+TEST_P(EndToEndTest, AudioReceivesTransportFeedback) {
TransportFeedbackTester test(true, 0, 1);
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, AudioTransportFeedbackNotConfigured) {
+TEST_P(EndToEndTest, AudioTransportFeedbackNotConfigured) {
TransportFeedbackTester test(false, 0, 1);
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, AudioVideoReceivesTransportFeedback) {
+TEST_P(EndToEndTest, AudioVideoReceivesTransportFeedback) {
TransportFeedbackTester test(true, 1, 1);
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, StopsSendingMediaWithoutFeedback) {
+TEST_P(EndToEndTest, StopsSendingMediaWithoutFeedback) {
test::ScopedFieldTrials override_field_trials(
"WebRTC-CwndExperiment/Enabled-250/");
@@ -2076,7 +2079,7 @@ TEST_F(EndToEndTest, StopsSendingMediaWithoutFeedback) {
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, ObserversEncodedFrames) {
+TEST_P(EndToEndTest, ObserversEncodedFrames) {
class EncodedFrameTestObserver : public EncodedFrameObserver {
public:
EncodedFrameTestObserver()
@@ -2159,7 +2162,7 @@ TEST_F(EndToEndTest, ObserversEncodedFrames) {
});
}
-TEST_F(EndToEndTest, ReceiveStreamSendsRemb) {
+TEST_P(EndToEndTest, ReceiveStreamSendsRemb) {
class RembObserver : public test::EndToEndTest {
public:
RembObserver() : EndToEndTest(kDefaultTimeoutMs) {}
@@ -2250,12 +2253,12 @@ class BandwidthStatsTest : public test::EndToEndTest {
const bool send_side_bwe_;
};
-TEST_F(EndToEndTest, VerifySendSideBweStats) {
+TEST_P(EndToEndTest, VerifySendSideBweStats) {
BandwidthStatsTest test(true);
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, VerifyRecvSideBweStats) {
+TEST_P(EndToEndTest, VerifyRecvSideBweStats) {
BandwidthStatsTest test(false);
RunBaseTest(&test);
}
@@ -2265,7 +2268,7 @@ TEST_F(EndToEndTest, VerifyRecvSideBweStats) {
// then have the test generate a REMB of 500 kbps and verify that the send BWE
// is reduced to exactly 500 kbps. Then a REMB of 1000 kbps is generated and the
// test verifies that the send BWE ramps back up to exactly 1000 kbps.
-TEST_F(EndToEndTest, RembWithSendSideBwe) {
+TEST_P(EndToEndTest, RembWithSendSideBwe) {
class BweObserver : public test::EndToEndTest {
public:
BweObserver()
@@ -2392,7 +2395,7 @@ TEST_F(EndToEndTest, RembWithSendSideBwe) {
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, StopSendingKeyframeRequestsForInactiveStream) {
+TEST_P(EndToEndTest, StopSendingKeyframeRequestsForInactiveStream) {
class KeyframeRequestObserver : public test::EndToEndTest {
public:
explicit KeyframeRequestObserver(
@@ -2461,7 +2464,7 @@ class ProbingTest : public test::EndToEndTest {
Call* sender_call_;
};
-TEST_F(EndToEndTest, MAYBE_InitialProbing) {
+TEST_P(EndToEndTest, MAYBE_InitialProbing) {
class InitialProbingTest : public ProbingTest {
public:
explicit InitialProbingTest(bool* success)
@@ -2504,12 +2507,12 @@ TEST_F(EndToEndTest, MAYBE_InitialProbing) {
// Fails on Linux MSan: bugs.webrtc.org/7428
#if defined(MEMORY_SANITIZER)
-TEST_F(EndToEndTest, DISABLED_TriggerMidCallProbing) {
+TEST_P(EndToEndTest, DISABLED_TriggerMidCallProbing) {
// Fails on iOS bots: bugs.webrtc.org/7851
#elif defined(TARGET_IPHONE_SIMULATOR) && TARGET_IPHONE_SIMULATOR
-TEST_F(EndToEndTest, DISABLED_TriggerMidCallProbing) {
+TEST_P(EndToEndTest, DISABLED_TriggerMidCallProbing) {
#else
-TEST_F(EndToEndTest, TriggerMidCallProbing) {
+TEST_P(EndToEndTest, TriggerMidCallProbing) {
#endif
class TriggerMidCallProbingTest : public ProbingTest {
@@ -2580,7 +2583,7 @@ TEST_F(EndToEndTest, TriggerMidCallProbing) {
<< " attempts).";
}
-TEST_F(EndToEndTest, VerifyNackStats) {
+TEST_P(EndToEndTest, VerifyNackStats) {
static const int kPacketNumberToDrop = 200;
class NackObserver : public test::EndToEndTest {
public:
@@ -2929,7 +2932,7 @@ void EndToEndTest::VerifyHistogramStats(bool use_rtx,
#else
#define MAYBE_ContentTypeSwitches ContentTypeSwitches
#endif
-TEST_F(EndToEndTest, MAYBE_ContentTypeSwitches) {
+TEST_P(EndToEndTest, MAYBE_ContentTypeSwitches) {
class StatsObserver : public test::BaseTest,
public rtc::VideoSinkInterface<VideoFrame> {
public:
@@ -3058,21 +3061,21 @@ TEST_F(EndToEndTest, MAYBE_ContentTypeSwitches) {
"WebRTC.Video.Screenshare.InterframeDelayMaxInMs"));
}
-TEST_F(EndToEndTest, VerifyHistogramStatsWithRtx) {
+TEST_P(EndToEndTest, VerifyHistogramStatsWithRtx) {
const bool kEnabledRtx = true;
const bool kEnabledRed = false;
const bool kScreenshare = false;
VerifyHistogramStats(kEnabledRtx, kEnabledRed, kScreenshare);
}
-TEST_F(EndToEndTest, VerifyHistogramStatsWithRed) {
+TEST_P(EndToEndTest, VerifyHistogramStatsWithRed) {
const bool kEnabledRtx = false;
const bool kEnabledRed = true;
const bool kScreenshare = false;
VerifyHistogramStats(kEnabledRtx, kEnabledRed, kScreenshare);
}
-TEST_F(EndToEndTest, VerifyHistogramStatsWithScreenshare) {
+TEST_P(EndToEndTest, VerifyHistogramStatsWithScreenshare) {
const bool kEnabledRtx = false;
const bool kEnabledRed = false;
const bool kScreenshare = true;
@@ -3197,7 +3200,7 @@ void EndToEndTest::TestSendsSetSsrcs(size_t num_ssrcs,
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, ReportsSetEncoderRates) {
+TEST_P(EndToEndTest, ReportsSetEncoderRates) {
class EncoderRateStatsTest : public test::EndToEndTest,
public test::FakeEncoder {
public:
@@ -3283,7 +3286,7 @@ TEST_F(EndToEndTest, ReportsSetEncoderRates) {
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, GetStats) {
+TEST_P(EndToEndTest, GetStats) {
static const int kStartBitrateBps = 3000000;
static const int kExpectedRenderDelayMs = 20;
@@ -3629,7 +3632,7 @@ TEST_F(EndToEndTest, GetStats) {
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, TimingFramesAreReported) {
+TEST_P(EndToEndTest, TimingFramesAreReported) {
static const int kExtensionId = 5;
class StatsObserver : public test::EndToEndTest {
@@ -3768,27 +3771,27 @@ class RtcpXrObserver : public test::EndToEndTest {
int sent_rtcp_dlrr_;
};
-TEST_F(EndToEndTest, TestExtendedReportsWithRrtrWithoutTargetBitrate) {
+TEST_P(EndToEndTest, TestExtendedReportsWithRrtrWithoutTargetBitrate) {
RtcpXrObserver test(true, false);
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, TestExtendedReportsWithoutRrtrWithoutTargetBitrate) {
+TEST_P(EndToEndTest, TestExtendedReportsWithoutRrtrWithoutTargetBitrate) {
RtcpXrObserver test(false, false);
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, TestExtendedReportsWithRrtrWithTargetBitrate) {
+TEST_P(EndToEndTest, TestExtendedReportsWithRrtrWithTargetBitrate) {
RtcpXrObserver test(true, true);
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, TestExtendedReportsWithoutRrtrWithTargetBitrate) {
+TEST_P(EndToEndTest, TestExtendedReportsWithoutRrtrWithTargetBitrate) {
RtcpXrObserver test(false, true);
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, TestReceivedRtpPacketStats) {
+TEST_P(EndToEndTest, TestReceivedRtpPacketStats) {
static const size_t kNumRtpPacketsToSend = 5;
class ReceivedRtpStatsObserver : public test::EndToEndTest {
public:
@@ -3828,19 +3831,19 @@ TEST_F(EndToEndTest, TestReceivedRtpPacketStats) {
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, SendsSetSsrc) {
+TEST_P(EndToEndTest, SendsSetSsrc) {
TestSendsSetSsrcs(1, false);
}
-TEST_F(EndToEndTest, SendsSetSimulcastSsrcs) {
+TEST_P(EndToEndTest, SendsSetSimulcastSsrcs) {
TestSendsSetSsrcs(kNumSsrcs, false);
}
-TEST_F(EndToEndTest, CanSwitchToUseAllSsrcs) {
+TEST_P(EndToEndTest, CanSwitchToUseAllSsrcs) {
TestSendsSetSsrcs(kNumSsrcs, true);
}
-TEST_F(EndToEndTest, DISABLED_RedundantPayloadsTransmittedOnAllSsrcs) {
+TEST_P(EndToEndTest, DISABLED_RedundantPayloadsTransmittedOnAllSsrcs) {
class ObserveRedundantPayloads: public test::EndToEndTest {
public:
ObserveRedundantPayloads()
@@ -4194,15 +4197,15 @@ void EndToEndTest::TestRtpStatePreservation(bool use_rtx,
});
}
-TEST_F(EndToEndTest, RestartingSendStreamPreservesRtpState) {
+TEST_P(EndToEndTest, RestartingSendStreamPreservesRtpState) {
TestRtpStatePreservation(false, false);
}
-TEST_F(EndToEndTest, RestartingSendStreamPreservesRtpStatesWithRtx) {
+TEST_P(EndToEndTest, RestartingSendStreamPreservesRtpStatesWithRtx) {
TestRtpStatePreservation(true, false);
}
-TEST_F(EndToEndTest, RestartingSendStreamKeepsRtpAndRtcpTimestampsSynced) {
+TEST_P(EndToEndTest, RestartingSendStreamKeepsRtpAndRtcpTimestampsSynced) {
TestRtpStatePreservation(true, true);
}
@@ -4210,12 +4213,10 @@ TEST_F(EndToEndTest, RestartingSendStreamKeepsRtpAndRtcpTimestampsSynced) {
// flakyness has been fixed.
// https://bugs.chromium.org/p/webrtc/issues/detail?id=7737
#if defined(WEBRTC_LINUX)
-#define MAYBE_TestFlexfecRtpStatePreservation \
- DISABLED_TestFlexfecRtpStatePreservation
+TEST_P(EndToEndTest, DISABLED_TestFlexfecRtpStatePreservation) {
#else
-#define MAYBE_TestFlexfecRtpStatePreservation TestFlexfecRtpStatePreservation
+TEST_P(EndToEndTest, TestFlexfecRtpStatePreservation) {
#endif
-TEST_F(EndToEndTest, MAYBE_TestFlexfecRtpStatePreservation) {
class RtpSequenceObserver : public test::RtpRtcpObserver {
public:
RtpSequenceObserver()
@@ -4397,7 +4398,7 @@ TEST_F(EndToEndTest, MAYBE_TestFlexfecRtpStatePreservation) {
});
}
-TEST_F(EndToEndTest, RespectsNetworkState) {
+TEST_P(EndToEndTest, RespectsNetworkState) {
// TODO(pbos): Remove accepted downtime packets etc. when signaling network
// down blocks until no more packets will be sent.
@@ -4607,7 +4608,7 @@ TEST_F(EndToEndTest, RespectsNetworkState) {
RunBaseTest(&test);
}
-TEST_F(EndToEndTest, CallReportsRttForSender) {
+TEST_P(EndToEndTest, CallReportsRttForSender) {
static const int kSendDelayMs = 30;
static const int kReceiveDelayMs = 70;
@@ -4717,7 +4718,7 @@ void EndToEndTest::VerifyNewVideoReceiveStreamsRespectNetworkState(
});
}
-TEST_F(EndToEndTest, NewVideoSendStreamsRespectVideoNetworkDown) {
+TEST_P(EndToEndTest, NewVideoSendStreamsRespectVideoNetworkDown) {
class UnusedEncoder : public test::FakeEncoder {
public:
UnusedEncoder() : FakeEncoder(Clock::GetRealTimeClock()) {}
@@ -4743,7 +4744,7 @@ TEST_F(EndToEndTest, NewVideoSendStreamsRespectVideoNetworkDown) {
MediaType::AUDIO, &unused_encoder, &unused_transport);
}
-TEST_F(EndToEndTest, NewVideoSendStreamsIgnoreAudioNetworkDown) {
+TEST_P(EndToEndTest, NewVideoSendStreamsIgnoreAudioNetworkDown) {
class RequiredEncoder : public test::FakeEncoder {
public:
RequiredEncoder()
@@ -4771,12 +4772,12 @@ TEST_F(EndToEndTest, NewVideoSendStreamsIgnoreAudioNetworkDown) {
MediaType::VIDEO, &required_encoder, &required_transport);
}
-TEST_F(EndToEndTest, NewVideoReceiveStreamsRespectVideoNetworkDown) {
+TEST_P(EndToEndTest, NewVideoReceiveStreamsRespectVideoNetworkDown) {
UnusedTransport transport;
VerifyNewVideoReceiveStreamsRespectNetworkState(MediaType::AUDIO, &transport);
}
-TEST_F(EndToEndTest, NewVideoReceiveStreamsIgnoreAudioNetworkDown) {
+TEST_P(EndToEndTest, NewVideoReceiveStreamsIgnoreAudioNetworkDown) {
RequiredTransport transport(false /*rtp*/, true /*rtcp*/);
VerifyNewVideoReceiveStreamsRespectNetworkState(MediaType::VIDEO, &transport);
}
@@ -4805,7 +4806,7 @@ void VerifyEmptyFlexfecConfig(
<< "Enabling FlexFEC requires ssrc-group: FEC-FR negotiation.";
}
-TEST_F(EndToEndTest, VerifyDefaultSendConfigParameters) {
+TEST_P(EndToEndTest, VerifyDefaultSendConfigParameters) {
VideoSendStream::Config default_send_config(nullptr);
EXPECT_EQ(0, default_send_config.rtp.nack.rtp_history_ms)
<< "Enabling NACK require rtcp-fb: nack negotiation.";
@@ -4819,7 +4820,7 @@ TEST_F(EndToEndTest, VerifyDefaultSendConfigParameters) {
VerifyEmptyFlexfecConfig(default_send_config.rtp.flexfec);
}
-TEST_F(EndToEndTest, VerifyDefaultVideoReceiveConfigParameters) {
+TEST_P(EndToEndTest, VerifyDefaultVideoReceiveConfigParameters) {
VideoReceiveStream::Config default_receive_config(nullptr);
EXPECT_EQ(RtcpMode::kCompound, default_receive_config.rtp.rtcp_mode)
<< "Reduced-size RTCP require rtcp-rsize to be negotiated.";
@@ -4842,7 +4843,7 @@ TEST_F(EndToEndTest, VerifyDefaultVideoReceiveConfigParameters) {
<< "Enabling ULPFEC requires rtpmap: red negotiation.";
}
-TEST_F(EndToEndTest, VerifyDefaultFlexfecReceiveConfigParameters) {
+TEST_P(EndToEndTest, VerifyDefaultFlexfecReceiveConfigParameters) {
test::NullTransport rtcp_send_transport;
FlexfecReceiveStream::Config default_receive_config(&rtcp_send_transport);
EXPECT_EQ(-1, default_receive_config.payload_type)
@@ -4853,7 +4854,7 @@ TEST_F(EndToEndTest, VerifyDefaultFlexfecReceiveConfigParameters) {
<< "Enabling FlexFEC requires ssrc-group: FEC-FR negotiation.";
}
-TEST_F(EndToEndTest, TransportSeqNumOnAudioAndVideo) {
+TEST_P(EndToEndTest, TransportSeqNumOnAudioAndVideo) {
static constexpr int kExtensionId = 8;
static constexpr size_t kMinPacketsToWaitFor = 50;
class TransportSequenceNumberTest : public test::EndToEndTest {
@@ -4964,7 +4965,7 @@ class EndToEndLogTest : public EndToEndTest {
std::vector<std::string> paths_;
};
-TEST_F(EndToEndLogTest, LogsEncodedFramesWhenRequested) {
+TEST_P(EndToEndLogTest, LogsEncodedFramesWhenRequested) {
static const int kNumFramesToRecord = 10;
class LogEncodingObserver : public test::EndToEndTest,
public EncodedFrameObserver {
@@ -5026,4 +5027,9 @@ TEST_F(EndToEndLogTest, LogsEncodedFramesWhenRequested) {
RunBaseTest(&test);
}
+INSTANTIATE_TEST_CASE_P(RoundRobin,
+ EndToEndTest,
+ ::testing::Values("WebRTC-RoundRobinPacing/Disabled/",
+ "WebRTC-RoundRobinPacing/Enabled/"));
+
} // namespace webrtc
diff --git a/chromium/third_party/webrtc/video/receive_statistics_proxy.cc b/chromium/third_party/webrtc/video/receive_statistics_proxy.cc
index 6e61032fad9..356558b5b04 100644
--- a/chromium/third_party/webrtc/video/receive_statistics_proxy.cc
+++ b/chromium/third_party/webrtc/video/receive_statistics_proxy.cc
@@ -45,7 +45,9 @@ const int kLowVarianceThreshold = 1;
const int kHighVarianceThreshold = 2;
// Some metrics are reported as a maximum over this period.
-const int kMovingMaxWindowMs = 10000;
+// This should be synchronized with a typical getStats polling interval in
+// the clients.
+const int kMovingMaxWindowMs = 1000;
// How large window we use to calculate the framerate/bitrate.
const int kRateStatisticsWindowSizeMs = 1000;
diff --git a/chromium/third_party/webrtc/video/receive_statistics_proxy_unittest.cc b/chromium/third_party/webrtc/video/receive_statistics_proxy_unittest.cc
index df4305b8128..614da19c2ed 100644
--- a/chromium/third_party/webrtc/video/receive_statistics_proxy_unittest.cc
+++ b/chromium/third_party/webrtc/video/receive_statistics_proxy_unittest.cc
@@ -144,9 +144,9 @@ TEST_F(ReceiveStatisticsProxyTest, ReportsMaxInterframeDelay) {
}
TEST_F(ReceiveStatisticsProxyTest, ReportInterframeDelayInWindow) {
- const int64_t kInterframeDelayMs1 = 9000;
- const int64_t kInterframeDelayMs2 = 7500;
- const int64_t kInterframeDelayMs3 = 7000;
+ const int64_t kInterframeDelayMs1 = 900;
+ const int64_t kInterframeDelayMs2 = 750;
+ const int64_t kInterframeDelayMs3 = 700;
EXPECT_EQ(-1, statistics_proxy_->GetStats().interframe_delay_max_ms);
statistics_proxy_->OnDecodedFrame(rtc::Optional<uint8_t>(3u),
VideoContentType::UNSPECIFIED);
diff --git a/chromium/third_party/webrtc/video/video_send_stream.cc b/chromium/third_party/webrtc/video/video_send_stream.cc
index f0380b2f3cf..9b9752b7ef7 100644
--- a/chromium/third_party/webrtc/video/video_send_stream.cc
+++ b/chromium/third_party/webrtc/video/video_send_stream.cc
@@ -143,9 +143,13 @@ std::unique_ptr<FlexfecSender> MaybeCreateFlexfecSender(
RTPSender::FecExtensionSizes(), rtp_state, Clock::GetRealTimeClock()));
}
-} // namespace
-
-namespace {
+bool TransportSeqNumExtensionConfigured(const VideoSendStream::Config& config) {
+ const std::vector<RtpExtension>& extensions = config.rtp.extensions;
+ return std::find_if(
+ extensions.begin(), extensions.end(), [](const RtpExtension& ext) {
+ return ext.uri == RtpExtension::kTransportSequenceNumberUri;
+ }) != extensions.end();
+}
bool PayloadTypeSupportsSkippingFecPackets(const std::string& payload_name) {
const VideoCodecType codecType = PayloadStringToCodecType(payload_name);
@@ -719,18 +723,22 @@ VideoSendStreamImpl::VideoSendStreamImpl(
field_trial::FindFullName(
AlrDetector::kScreenshareProbingBweExperimentName)
.empty());
- rtc::Optional<AlrDetector::AlrExperimentSettings> alr_settings;
- if (content_type == VideoEncoderConfig::ContentType::kScreen) {
- alr_settings = AlrDetector::ParseAlrSettingsFromFieldTrial(
- AlrDetector::kScreenshareProbingBweExperimentName);
- } else {
- alr_settings = AlrDetector::ParseAlrSettingsFromFieldTrial(
- AlrDetector::kStrictPacingAndProbingExperimentName);
- }
- if (alr_settings) {
- transport->send_side_cc()->EnablePeriodicAlrProbing(true);
- transport->pacer()->SetPacingFactor(alr_settings->pacing_factor);
- transport->pacer()->SetQueueTimeLimit(alr_settings->max_paced_queue_time);
+ // If send-side BWE is enabled, check if we should apply updated probing and
+ // pacing settings.
+ if (TransportSeqNumExtensionConfigured(*config_)) {
+ rtc::Optional<AlrDetector::AlrExperimentSettings> alr_settings;
+ if (content_type == VideoEncoderConfig::ContentType::kScreen) {
+ alr_settings = AlrDetector::ParseAlrSettingsFromFieldTrial(
+ AlrDetector::kScreenshareProbingBweExperimentName);
+ } else {
+ alr_settings = AlrDetector::ParseAlrSettingsFromFieldTrial(
+ AlrDetector::kStrictPacingAndProbingExperimentName);
+ }
+ if (alr_settings) {
+ transport->send_side_cc()->EnablePeriodicAlrProbing(true);
+ transport->pacer()->SetPacingFactor(alr_settings->pacing_factor);
+ transport->pacer()->SetQueueTimeLimit(alr_settings->max_paced_queue_time);
+ }
}
if (config_->periodic_alr_bandwidth_probing) {
diff --git a/chromium/third_party/webrtc/video/video_send_stream_tests.cc b/chromium/third_party/webrtc/video/video_send_stream_tests.cc
index faf47c7ffab..515085fc612 100644
--- a/chromium/third_party/webrtc/video/video_send_stream_tests.cc
+++ b/chromium/third_party/webrtc/video/video_send_stream_tests.cc
@@ -15,6 +15,7 @@
#include "call/rtp_transport_controller_send.h"
#include "common_video/include/frame_callback.h"
#include "common_video/include/video_frame.h"
+#include "modules/pacing/alr_detector.h"
#include "modules/rtp_rtcp/include/rtp_header_parser.h"
#include "modules/rtp_rtcp/include/rtp_rtcp.h"
#include "modules/rtp_rtcp/source/rtcp_sender.h"
@@ -3510,4 +3511,81 @@ TEST_F(VideoSendStreamTest, SendsKeepAlive) {
RunBaseTest(&test);
}
+TEST_F(VideoSendStreamTest, ConfiguresAlrWhenSendSideOn) {
+ const std::string kAlrProbingExperiment =
+ std::string(AlrDetector::kScreenshareProbingBweExperimentName) +
+ "/1.1,2875,85,20,-20,0/";
+ test::ScopedFieldTrials alr_experiment(kAlrProbingExperiment);
+ class PacingFactorObserver : public test::SendTest {
+ public:
+ PacingFactorObserver(bool configure_send_side, float expected_pacing_factor)
+ : test::SendTest(kDefaultTimeoutMs),
+ configure_send_side_(configure_send_side),
+ expected_pacing_factor_(expected_pacing_factor),
+ paced_sender_(nullptr) {}
+
+ void ModifyVideoConfigs(
+ VideoSendStream::Config* send_config,
+ std::vector<VideoReceiveStream::Config>* receive_configs,
+ VideoEncoderConfig* encoder_config) override {
+ // Check if send-side bwe extension is already present, and remove it if
+ // it is not desired.
+ bool has_send_side = false;
+ for (auto it = send_config->rtp.extensions.begin();
+ it != send_config->rtp.extensions.end(); ++it) {
+ if (it->uri == RtpExtension::kTransportSequenceNumberUri) {
+ if (configure_send_side_) {
+ has_send_side = true;
+ } else {
+ send_config->rtp.extensions.erase(it);
+ }
+ break;
+ }
+ }
+
+ if (configure_send_side_ && !has_send_side) {
+ // Want send side, not present by default, so add it.
+ send_config->rtp.extensions.emplace_back(
+ RtpExtension::kTransportSequenceNumberUri,
+ RtpExtension::kTransportSequenceNumberDefaultId);
+ }
+
+ // ALR only enabled for screenshare.
+ encoder_config->content_type = VideoEncoderConfig::ContentType::kScreen;
+ }
+
+ void OnRtpTransportControllerSendCreated(
+ RtpTransportControllerSend* controller) override {
+ // Grab a reference to the pacer.
+ paced_sender_ = controller->pacer();
+ }
+
+ void OnVideoStreamsCreated(
+ VideoSendStream* send_stream,
+ const std::vector<VideoReceiveStream*>& receive_streams) override {
+ // Video streams created, check that pacer is correctly configured.
+ EXPECT_EQ(expected_pacing_factor_, paced_sender_->GetPacingFactor());
+ observation_complete_.Set();
+ }
+
+ void PerformTest() override {
+ EXPECT_TRUE(Wait()) << "Timed out while waiting for pacer config.";
+ }
+
+ private:
+ const bool configure_send_side_;
+ const float expected_pacing_factor_;
+ const PacedSender* paced_sender_;
+ };
+
+ // Send-side bwe on, use pacing factor from |kAlrProbingExperiment| above.
+ PacingFactorObserver test_with_send_side(true, 1.1f);
+ RunBaseTest(&test_with_send_side);
+
+ // Send-side bwe off, use default pacing factor.
+ PacingFactorObserver test_without_send_side(
+ false, PacedSender::kDefaultPaceMultiplier);
+ RunBaseTest(&test_without_send_side);
+}
+
} // namespace webrtc
diff --git a/chromium/third_party/win_build_output/OWNERS b/chromium/third_party/win_build_output/OWNERS
new file mode 100644
index 00000000000..11e77e54dde
--- /dev/null
+++ b/chromium/third_party/win_build_output/OWNERS
@@ -0,0 +1,2 @@
+scottmg@chromium.org
+thakis@chromium.org
diff --git a/chromium/third_party/win_build_output/README.chromium b/chromium/third_party/win_build_output/README.chromium
new file mode 100644
index 00000000000..6e27eb09f3f
--- /dev/null
+++ b/chromium/third_party/win_build_output/README.chromium
@@ -0,0 +1,34 @@
+Name: Checked in build outputs generated on Windows.
+Version: -
+Revision: -
+License: BSD 3-clause
+License File: ../../LICENSE
+Security Critical: yes
+
+This directory contains outputs of some tools that run during the chrome/win
+build and that exist only as closed-source Windows binaries and that are used
+only in very few places of the build, and whose build inputs change almost
+never. By checking in the outputs of these tools, the chrome/win build can
+work on non-Windows hosts.
+
+On Windows, we run the tool and then compare its output with the checked-in
+files. If they differ, we error out. In that case (e.g. when you change
+the input files, or the tool versions), you need to copy the new outputs into
+this directory.
+
+For mc.exe:
+* mc.exe generates foo.h and foo.rc for input path\to\file.mc in
+ out\gn\gen\path\to. Copy over these two files to
+ third_party\win_build_output\mc\path\to. Then open foo.rc and copy all the
+ .bin files referenced from the .rc file (and delete all checked-in files not
+ in this list).
+
+For midl.exe:
+* midl.exe generates foo.h, foo.dlldata.c, foo_i.c, foo_p.i, foo_p.c, and
+ sometimes foo.tlb. Copy these 5 (or 6, if the .tlb file is present) to
+ third_party\win_build_output\midl\path\to\file. If there are multiple idl
+ files producing output in the same output directory, create directories called
+ "foo1.idl", "foo2.idl" etc in that directory and put the output for each idl
+ file into the directory named after the input file. Because midl.exe produces
+ different outputs in 32-bit and 64-bit builds, do one each and put the
+ 32-bit outputs in subfolder 'x86' and 64-bit outputs in subfolder 'x64'.
diff --git a/chromium/third_party/win_build_output/mc/base/trace_event/etw_manifest/MSG00001.bin b/chromium/third_party/win_build_output/mc/base/trace_event/etw_manifest/MSG00001.bin
new file mode 100644
index 00000000000..bcedca53bb0
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/base/trace_event/etw_manifest/MSG00001.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/base/trace_event/etw_manifest/chrome_events_win.h b/chromium/third_party/win_build_output/mc/base/trace_event/etw_manifest/chrome_events_win.h
new file mode 100644
index 00000000000..685ebe75e6c
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/base/trace_event/etw_manifest/chrome_events_win.h
@@ -0,0 +1,454 @@
+//**********************************************************************`
+//* This is an include file generated by Message Compiler. *`
+//* *`
+//* Copyright (c) Microsoft Corporation. All Rights Reserved. *`
+//**********************************************************************`
+#pragma once
+#include <wmistr.h>
+#include <evntrace.h>
+#include "evntprov.h"
+//
+// Initial Defs
+//
+#if !defined(ETW_INLINE)
+#define ETW_INLINE DECLSPEC_NOINLINE __inline
+#endif
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+//
+// Allow disabling of code generation
+//
+#ifndef MCGEN_DISABLE_PROVIDER_CODE_GENERATION
+#if !defined(McGenDebug)
+#define McGenDebug(a,b)
+#endif
+
+
+#if !defined(MCGEN_TRACE_CONTEXT_DEF)
+#define MCGEN_TRACE_CONTEXT_DEF
+typedef struct _MCGEN_TRACE_CONTEXT
+{
+ TRACEHANDLE RegistrationHandle;
+ TRACEHANDLE Logger;
+ ULONGLONG MatchAnyKeyword;
+ ULONGLONG MatchAllKeyword;
+ ULONG Flags;
+ ULONG IsEnabled;
+ UCHAR Level;
+ UCHAR Reserve;
+ USHORT EnableBitsCount;
+ PULONG EnableBitMask;
+ const ULONGLONG* EnableKeyWords;
+ const UCHAR* EnableLevel;
+} MCGEN_TRACE_CONTEXT, *PMCGEN_TRACE_CONTEXT;
+#endif
+
+#if !defined(MCGEN_LEVEL_KEYWORD_ENABLED_DEF)
+#define MCGEN_LEVEL_KEYWORD_ENABLED_DEF
+FORCEINLINE
+BOOLEAN
+McGenLevelKeywordEnabled(
+ _In_ PMCGEN_TRACE_CONTEXT EnableInfo,
+ _In_ UCHAR Level,
+ _In_ ULONGLONG Keyword
+ )
+{
+ //
+ // Check if the event Level is lower than the level at which
+ // the channel is enabled.
+ // If the event Level is 0 or the channel is enabled at level 0,
+ // all levels are enabled.
+ //
+
+ if ((Level <= EnableInfo->Level) || // This also covers the case of Level == 0.
+ (EnableInfo->Level == 0)) {
+
+ //
+ // Check if Keyword is enabled
+ //
+
+ if ((Keyword == (ULONGLONG)0) ||
+ ((Keyword & EnableInfo->MatchAnyKeyword) &&
+ ((Keyword & EnableInfo->MatchAllKeyword) == EnableInfo->MatchAllKeyword))) {
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+
+}
+#endif
+
+#if !defined(MCGEN_EVENT_ENABLED_DEF)
+#define MCGEN_EVENT_ENABLED_DEF
+FORCEINLINE
+BOOLEAN
+McGenEventEnabled(
+ _In_ PMCGEN_TRACE_CONTEXT EnableInfo,
+ _In_ PCEVENT_DESCRIPTOR EventDescriptor
+ )
+{
+
+ return McGenLevelKeywordEnabled(EnableInfo, EventDescriptor->Level, EventDescriptor->Keyword);
+
+}
+#endif
+
+
+//
+// EnableCheckMacro
+//
+#ifndef MCGEN_ENABLE_CHECK
+#define MCGEN_ENABLE_CHECK(Context, Descriptor) (Context.IsEnabled && McGenEventEnabled(&Context, &Descriptor))
+#endif
+
+#if !defined(MCGEN_CONTROL_CALLBACK)
+#define MCGEN_CONTROL_CALLBACK
+
+DECLSPEC_NOINLINE __inline
+VOID
+__stdcall
+McGenControlCallbackV2(
+ _In_ LPCGUID SourceId,
+ _In_ ULONG ControlCode,
+ _In_ UCHAR Level,
+ _In_ ULONGLONG MatchAnyKeyword,
+ _In_ ULONGLONG MatchAllKeyword,
+ _In_opt_ PEVENT_FILTER_DESCRIPTOR FilterData,
+ _Inout_opt_ PVOID CallbackContext
+ )
+/*++
+
+Routine Description:
+
+ This is the notification callback for Windows Vista and later.
+
+Arguments:
+
+ SourceId - The GUID that identifies the session that enabled the provider.
+
+ ControlCode - The parameter indicates whether the provider
+ is being enabled or disabled.
+
+ Level - The level at which the event is enabled.
+
+ MatchAnyKeyword - The bitmask of keywords that the provider uses to
+ determine the category of events that it writes.
+
+ MatchAllKeyword - This bitmask additionally restricts the category
+ of events that the provider writes.
+
+ FilterData - The provider-defined data.
+
+ CallbackContext - The context of the callback that is defined when the provider
+ called EtwRegister to register itself.
+
+Remarks:
+
+ ETW calls this function to notify provider of enable/disable
+
+--*/
+{
+ PMCGEN_TRACE_CONTEXT Ctx = (PMCGEN_TRACE_CONTEXT)CallbackContext;
+ ULONG Ix;
+#ifndef MCGEN_PRIVATE_ENABLE_CALLBACK_V2
+ UNREFERENCED_PARAMETER(SourceId);
+ UNREFERENCED_PARAMETER(FilterData);
+#endif
+
+ if (Ctx == NULL) {
+ return;
+ }
+
+ switch (ControlCode) {
+
+ case EVENT_CONTROL_CODE_ENABLE_PROVIDER:
+ Ctx->Level = Level;
+ Ctx->MatchAnyKeyword = MatchAnyKeyword;
+ Ctx->MatchAllKeyword = MatchAllKeyword;
+ Ctx->IsEnabled = EVENT_CONTROL_CODE_ENABLE_PROVIDER;
+
+ for (Ix = 0; Ix < Ctx->EnableBitsCount; Ix += 1) {
+ if (McGenLevelKeywordEnabled(Ctx, Ctx->EnableLevel[Ix], Ctx->EnableKeyWords[Ix]) != FALSE) {
+ Ctx->EnableBitMask[Ix >> 5] |= (1 << (Ix % 32));
+ } else {
+ Ctx->EnableBitMask[Ix >> 5] &= ~(1 << (Ix % 32));
+ }
+ }
+ break;
+
+ case EVENT_CONTROL_CODE_DISABLE_PROVIDER:
+ Ctx->IsEnabled = EVENT_CONTROL_CODE_DISABLE_PROVIDER;
+ Ctx->Level = 0;
+ Ctx->MatchAnyKeyword = 0;
+ Ctx->MatchAllKeyword = 0;
+ if (Ctx->EnableBitsCount > 0) {
+ RtlZeroMemory(Ctx->EnableBitMask, (((Ctx->EnableBitsCount - 1) / 32) + 1) * sizeof(ULONG));
+ }
+ break;
+
+ default:
+ break;
+ }
+
+#ifdef MCGEN_PRIVATE_ENABLE_CALLBACK_V2
+ //
+ // Call user defined callback
+ //
+ MCGEN_PRIVATE_ENABLE_CALLBACK_V2(
+ SourceId,
+ ControlCode,
+ Level,
+ MatchAnyKeyword,
+ MatchAllKeyword,
+ FilterData,
+ CallbackContext
+ );
+#endif
+
+ return;
+}
+
+#endif
+#endif // MCGEN_DISABLE_PROVIDER_CODE_GENERATION
+//+
+// Provider Chrome Event Count 1
+//+
+EXTERN_C __declspec(selectany) const GUID CHROME = {0xd2d578d9, 0x2936, 0x45b6, {0xa0, 0x9f, 0x30, 0xe3, 0x27, 0x15, 0xf4, 0x2d}};
+
+//
+// Channel
+//
+#define CHROME_CHANNEL_SYSTEM 0x8
+
+//
+// Event Descriptors
+//
+EXTERN_C __declspec(selectany) const EVENT_DESCRIPTOR ChromeEvent = {0x1, 0x0, 0x8, 0x4, 0x0, 0x0, 0x8000000000000000};
+#define ChromeEvent_value 0x1
+
+//
+// Note on Generate Code from Manifest for Windows Vista and above
+//
+//Structures : are handled as a size and pointer pairs. The macro for the event will have an extra
+//parameter for the size in bytes of the structure. Make sure that your structures have no extra padding.
+//
+//Strings: There are several cases that can be described in the manifest. For array of variable length
+//strings, the generated code will take the count of characters for the whole array as an input parameter.
+//
+//SID No support for array of SIDs, the macro will take a pointer to the SID and use appropriate
+//GetLengthSid function to get the length.
+//
+
+//
+// Allow disabling of code generation
+//
+#ifndef MCGEN_DISABLE_PROVIDER_CODE_GENERATION
+
+//
+// Globals
+//
+
+
+//
+// Event Enablement Bits
+//
+
+EXTERN_C __declspec(selectany) DECLSPEC_CACHEALIGN ULONG ChromeEnableBits[1];
+EXTERN_C __declspec(selectany) const ULONGLONG ChromeKeywords[1] = {0x8000000000000000};
+EXTERN_C __declspec(selectany) const UCHAR ChromeLevels[1] = {4};
+EXTERN_C __declspec(selectany) MCGEN_TRACE_CONTEXT CHROME_Context = {0, 0, 0, 0, 0, 0, 0, 0, 1, ChromeEnableBits, ChromeKeywords, ChromeLevels};
+
+EXTERN_C __declspec(selectany) REGHANDLE ChromeHandle = (REGHANDLE)0;
+
+#if !defined(McGenEventRegisterUnregister)
+#define McGenEventRegisterUnregister
+#pragma warning(push)
+#pragma warning(disable:6103)
+DECLSPEC_NOINLINE __inline
+ULONG __stdcall
+McGenEventRegister(
+ _In_ LPCGUID ProviderId,
+ _In_opt_ PENABLECALLBACK EnableCallback,
+ _In_opt_ PVOID CallbackContext,
+ _Inout_ PREGHANDLE RegHandle
+ )
+/*++
+
+Routine Description:
+
+ This function registers the provider with ETW USER mode.
+
+Arguments:
+ ProviderId - Provider ID to be register with ETW.
+
+ EnableCallback - Callback to be used.
+
+ CallbackContext - Context for this provider.
+
+ RegHandle - Pointer to registration handle.
+
+Remarks:
+
+ If the handle != NULL will return ERROR_SUCCESS
+
+--*/
+{
+ ULONG Error;
+
+
+ if (*RegHandle) {
+ //
+ // already registered
+ //
+ return ERROR_SUCCESS;
+ }
+
+ Error = EventRegister( ProviderId, EnableCallback, CallbackContext, RegHandle);
+
+ return Error;
+}
+#pragma warning(pop)
+
+
+DECLSPEC_NOINLINE __inline
+ULONG __stdcall
+McGenEventUnregister(_Inout_ PREGHANDLE RegHandle)
+/*++
+
+Routine Description:
+
+ Unregister from ETW USER mode
+
+Arguments:
+ RegHandle this is the pointer to the provider context
+Remarks:
+ If provider has not been registered, RegHandle == NULL,
+ return ERROR_SUCCESS
+--*/
+{
+ ULONG Error;
+
+
+ if(!(*RegHandle)) {
+ //
+ // Provider has not registerd
+ //
+ return ERROR_SUCCESS;
+ }
+
+ Error = EventUnregister(*RegHandle);
+ *RegHandle = (REGHANDLE)0;
+
+ return Error;
+}
+#endif
+//
+// Register with ETW Vista +
+//
+#ifndef EventRegisterChrome
+#define EventRegisterChrome() McGenEventRegister(&CHROME, McGenControlCallbackV2, &CHROME_Context, &ChromeHandle)
+#endif
+
+//
+// UnRegister with ETW
+//
+#ifndef EventUnregisterChrome
+#define EventUnregisterChrome() McGenEventUnregister(&ChromeHandle)
+#endif
+
+//
+// Enablement check macro for ChromeEvent
+//
+
+#define EventEnabledChromeEvent() ((ChromeEnableBits[0] & 0x00000001) != 0)
+
+//
+// Event Macro for ChromeEvent
+//
+#define EventWriteChromeEvent(Name, Phase, Arg_Name_1, Arg_Value_1, Arg_Name_2, Arg_Value_2, Arg_Name_3, Arg_Value_3)\
+ EventEnabledChromeEvent() ?\
+ Template_ssssssss(ChromeHandle, &ChromeEvent, Name, Phase, Arg_Name_1, Arg_Value_1, Arg_Name_2, Arg_Value_2, Arg_Name_3, Arg_Value_3)\
+ : ERROR_SUCCESS\
+
+#endif // MCGEN_DISABLE_PROVIDER_CODE_GENERATION
+
+
+//
+// Allow Diasabling of code generation
+//
+#ifndef MCGEN_DISABLE_PROVIDER_CODE_GENERATION
+
+//
+// Template Functions
+//
+//
+//Template from manifest : tid_chrome_event
+//
+#ifndef Template_ssssssss_def
+#define Template_ssssssss_def
+ETW_INLINE
+ULONG
+Template_ssssssss(
+ _In_ REGHANDLE RegHandle,
+ _In_ PCEVENT_DESCRIPTOR Descriptor,
+ _In_opt_ LPCSTR _Arg0,
+ _In_opt_ LPCSTR _Arg1,
+ _In_opt_ LPCSTR _Arg2,
+ _In_opt_ LPCSTR _Arg3,
+ _In_opt_ LPCSTR _Arg4,
+ _In_opt_ LPCSTR _Arg5,
+ _In_opt_ LPCSTR _Arg6,
+ _In_opt_ LPCSTR _Arg7
+ )
+{
+#define ARGUMENT_COUNT_ssssssss 8
+
+ EVENT_DATA_DESCRIPTOR EventData[ARGUMENT_COUNT_ssssssss];
+
+ EventDataDescCreate(&EventData[0],
+ (_Arg0 != NULL) ? _Arg0 : "NULL",
+ (_Arg0 != NULL) ? (ULONG)((strlen(_Arg0) + 1) * sizeof(CHAR)) : (ULONG)sizeof("NULL"));
+
+ EventDataDescCreate(&EventData[1],
+ (_Arg1 != NULL) ? _Arg1 : "NULL",
+ (_Arg1 != NULL) ? (ULONG)((strlen(_Arg1) + 1) * sizeof(CHAR)) : (ULONG)sizeof("NULL"));
+
+ EventDataDescCreate(&EventData[2],
+ (_Arg2 != NULL) ? _Arg2 : "NULL",
+ (_Arg2 != NULL) ? (ULONG)((strlen(_Arg2) + 1) * sizeof(CHAR)) : (ULONG)sizeof("NULL"));
+
+ EventDataDescCreate(&EventData[3],
+ (_Arg3 != NULL) ? _Arg3 : "NULL",
+ (_Arg3 != NULL) ? (ULONG)((strlen(_Arg3) + 1) * sizeof(CHAR)) : (ULONG)sizeof("NULL"));
+
+ EventDataDescCreate(&EventData[4],
+ (_Arg4 != NULL) ? _Arg4 : "NULL",
+ (_Arg4 != NULL) ? (ULONG)((strlen(_Arg4) + 1) * sizeof(CHAR)) : (ULONG)sizeof("NULL"));
+
+ EventDataDescCreate(&EventData[5],
+ (_Arg5 != NULL) ? _Arg5 : "NULL",
+ (_Arg5 != NULL) ? (ULONG)((strlen(_Arg5) + 1) * sizeof(CHAR)) : (ULONG)sizeof("NULL"));
+
+ EventDataDescCreate(&EventData[6],
+ (_Arg6 != NULL) ? _Arg6 : "NULL",
+ (_Arg6 != NULL) ? (ULONG)((strlen(_Arg6) + 1) * sizeof(CHAR)) : (ULONG)sizeof("NULL"));
+
+ EventDataDescCreate(&EventData[7],
+ (_Arg7 != NULL) ? _Arg7 : "NULL",
+ (_Arg7 != NULL) ? (ULONG)((strlen(_Arg7) + 1) * sizeof(CHAR)) : (ULONG)sizeof("NULL"));
+
+ return EventWrite(RegHandle, Descriptor, ARGUMENT_COUNT_ssssssss, EventData);
+}
+#endif
+
+#endif // MCGEN_DISABLE_PROVIDER_CODE_GENERATION
+
+#if defined(__cplusplus)
+};
+#endif
+
+#define MSG_ChromeEvent_EventMessage 0x00000001L
diff --git a/chromium/third_party/win_build_output/mc/base/trace_event/etw_manifest/chrome_events_win.rc b/chromium/third_party/win_build_output/mc/base/trace_event/etw_manifest/chrome_events_win.rc
new file mode 100644
index 00000000000..63ae293fee6
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/base/trace_event/etw_manifest/chrome_events_win.rc
@@ -0,0 +1,3 @@
+LANGUAGE 0x9,0x1
+1 11 "MSG00001.bin"
+1 WEVT_TEMPLATE "chrome_events_winTEMP.BIN"
diff --git a/chromium/third_party/win_build_output/mc/base/trace_event/etw_manifest/chrome_events_winTEMP.BIN b/chromium/third_party/win_build_output/mc/base/trace_event/etw_manifest/chrome_events_winTEMP.BIN
new file mode 100644
index 00000000000..8967fb3f834
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/base/trace_event/etw_manifest/chrome_events_winTEMP.BIN
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/chrome/common/win/MSG00409.bin b/chromium/third_party/win_build_output/mc/chrome/common/win/MSG00409.bin
new file mode 100644
index 00000000000..7dfe34ba7e7
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/chrome/common/win/MSG00409.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/chrome/common/win/eventlog_messages.h b/chromium/third_party/win_build_output/mc/chrome/common/win/eventlog_messages.h
new file mode 100644
index 00000000000..f845791c442
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/chrome/common/win/eventlog_messages.h
@@ -0,0 +1,66 @@
+// 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.
+//
+// Defines the names and types of messages that are logged with the SYSLOG
+// macro.
+// TODO(pastarmovj): Subdivide into more categories if needed.
+//
+// Values are 32 bit values laid out as follows:
+//
+// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
+// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
+// +---+-+-+-----------------------+-------------------------------+
+// |Sev|C|R| Facility | Code |
+// +---+-+-+-----------------------+-------------------------------+
+//
+// where
+//
+// Sev - is the severity code
+//
+// 00 - Success
+// 01 - Informational
+// 10 - Warning
+// 11 - Error
+//
+// C - is the Customer code flag
+//
+// R - is a reserved bit
+//
+// Facility - is the facility code
+//
+// Code - is the facility's status code
+//
+//
+// Define the facility codes
+//
+#define FACILITY_SYSTEM 0x0
+
+
+//
+// Define the severity codes
+//
+#define STATUS_SEVERITY_INFORMATIONAL 0x0
+#define STATUS_SEVERITY_WARNING 0x1
+#define STATUS_SEVERITY_ERROR 0x2
+#define STATUS_SEVERITY_FATAL 0x3
+
+
+//
+// MessageId: BROWSER_CATEGORY
+//
+// MessageText:
+//
+// Browser Events
+//
+#define BROWSER_CATEGORY ((WORD)0x00000001L)
+
+//
+// MessageId: MSG_LOG_MESSAGE
+//
+// MessageText:
+//
+// %1!S!
+//
+#define MSG_LOG_MESSAGE ((DWORD)0x80000100L)
+
diff --git a/chromium/third_party/win_build_output/mc/chrome/common/win/eventlog_messages.rc b/chromium/third_party/win_build_output/mc/chrome/common/win/eventlog_messages.rc
new file mode 100644
index 00000000000..e87d298e108
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/chrome/common/win/eventlog_messages.rc
@@ -0,0 +1,2 @@
+LANGUAGE 0x9,0x1
+1 11 "MSG00409.bin"
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0000d.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0000d.bin
new file mode 100644
index 00000000000..4de8d8b64df
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0000d.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00401.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00401.bin
new file mode 100644
index 00000000000..2b581f19f7e
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00401.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00402.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00402.bin
new file mode 100644
index 00000000000..5a96e876f1f
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00402.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00403.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00403.bin
new file mode 100644
index 00000000000..c0b6e6344f9
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00403.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00404.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00404.bin
new file mode 100644
index 00000000000..4a2be986553
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00404.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00405.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00405.bin
new file mode 100644
index 00000000000..18ae5059183
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00405.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00406.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00406.bin
new file mode 100644
index 00000000000..1452779f6e7
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00406.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00407.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00407.bin
new file mode 100644
index 00000000000..4976d7fdcd3
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00407.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00408.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00408.bin
new file mode 100644
index 00000000000..b12b01488b7
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00408.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00409.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00409.bin
new file mode 100644
index 00000000000..dc39763905f
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00409.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0040b.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0040b.bin
new file mode 100644
index 00000000000..29a435147e8
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0040b.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0040c.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0040c.bin
new file mode 100644
index 00000000000..59faee86bfe
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0040c.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0040d.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0040d.bin
new file mode 100644
index 00000000000..3008b04ad1a
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0040d.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0040e.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0040e.bin
new file mode 100644
index 00000000000..4f533d7120e
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0040e.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00410.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00410.bin
new file mode 100644
index 00000000000..a5917a7f27b
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00410.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00411.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00411.bin
new file mode 100644
index 00000000000..ac82f6cabd1
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00411.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00412.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00412.bin
new file mode 100644
index 00000000000..b04914bec1e
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00412.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00413.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00413.bin
new file mode 100644
index 00000000000..a5f8b4bda67
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00413.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00414.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00414.bin
new file mode 100644
index 00000000000..61ee02539cf
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00414.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00415.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00415.bin
new file mode 100644
index 00000000000..89abd7c90dc
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00415.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00416.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00416.bin
new file mode 100644
index 00000000000..edf53f8f7bc
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00416.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00418.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00418.bin
new file mode 100644
index 00000000000..7efe6c968be
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00418.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00419.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00419.bin
new file mode 100644
index 00000000000..0eb2bcc70a7
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00419.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041a.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041a.bin
new file mode 100644
index 00000000000..1e9238ae38a
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041a.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041b.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041b.bin
new file mode 100644
index 00000000000..d6362bfa5f2
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041b.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041d.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041d.bin
new file mode 100644
index 00000000000..39de29c88d6
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041d.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041e.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041e.bin
new file mode 100644
index 00000000000..b01b2d84867
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041e.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041f.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041f.bin
new file mode 100644
index 00000000000..3267418cf9a
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0041f.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00421.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00421.bin
new file mode 100644
index 00000000000..b72cde13242
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00421.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00422.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00422.bin
new file mode 100644
index 00000000000..c2f04f930a1
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00422.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00424.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00424.bin
new file mode 100644
index 00000000000..247ebbc371b
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00424.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00425.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00425.bin
new file mode 100644
index 00000000000..ec05c9cedc4
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00425.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00426.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00426.bin
new file mode 100644
index 00000000000..e92f70befcf
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00426.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00427.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00427.bin
new file mode 100644
index 00000000000..798b0ef181b
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00427.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00429.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00429.bin
new file mode 100644
index 00000000000..dbeb38674b2
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00429.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0042a.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0042a.bin
new file mode 100644
index 00000000000..3a49bf51fea
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0042a.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00439.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00439.bin
new file mode 100644
index 00000000000..762a18182fa
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00439.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0043e.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0043e.bin
new file mode 100644
index 00000000000..e0eef25bc15
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0043e.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00441.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00441.bin
new file mode 100644
index 00000000000..5840f8052c0
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00441.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00445.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00445.bin
new file mode 100644
index 00000000000..441223192c2
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00445.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00447.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00447.bin
new file mode 100644
index 00000000000..548240037d3
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00447.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00449.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00449.bin
new file mode 100644
index 00000000000..ff5ee6111e3
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00449.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0044a.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0044a.bin
new file mode 100644
index 00000000000..29f814dd039
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0044a.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0044b.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0044b.bin
new file mode 100644
index 00000000000..11eecc99c69
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0044b.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0044c.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0044c.bin
new file mode 100644
index 00000000000..1fc945a1827
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0044c.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0044e.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0044e.bin
new file mode 100644
index 00000000000..76b98bfec18
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0044e.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0045e.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0045e.bin
new file mode 100644
index 00000000000..a389b276c88
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0045e.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00464.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00464.bin
new file mode 100644
index 00000000000..8ee3c894014
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00464.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00804.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00804.bin
new file mode 100644
index 00000000000..261786a1ad3
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00804.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00809.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00809.bin
new file mode 100644
index 00000000000..dc39763905f
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00809.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0080a.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0080a.bin
new file mode 100644
index 00000000000..77cd6aeac15
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0080a.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00816.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00816.bin
new file mode 100644
index 00000000000..9e9f797460e
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00816.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0081a.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0081a.bin
new file mode 100644
index 00000000000..417257d4118
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG0081a.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00c0a.bin b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00c0a.bin
new file mode 100644
index 00000000000..acc6d2958da
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/MSG00c0a.bin
Binary files differ
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/remoting_host_messages.h b/chromium/third_party/win_build_output/mc/remoting/host/win/remoting_host_messages.h
new file mode 100644
index 00000000000..63ddd9d63c3
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/remoting_host_messages.h
@@ -0,0 +1,96 @@
+ // 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.
+ // The categories of events.
+//
+// Values are 32 bit values laid out as follows:
+//
+// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
+// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
+// +---+-+-+-----------------------+-------------------------------+
+// |Sev|C|R| Facility | Code |
+// +---+-+-+-----------------------+-------------------------------+
+//
+// where
+//
+// Sev - is the severity code
+//
+// 00 - Success
+// 01 - Informational
+// 10 - Warning
+// 11 - Error
+//
+// C - is the Customer code flag
+//
+// R - is a reserved bit
+//
+// Facility - is the facility code
+//
+// Code - is the facility's status code
+//
+//
+// Define the facility codes
+//
+#define FACILITY_HOST 0x0
+
+
+//
+// Define the severity codes
+//
+#define STATUS_SEVERITY_SUCCESS 0x0
+#define STATUS_SEVERITY_INFORMATIONAL 0x1
+#define STATUS_SEVERITY_WARNING 0x2
+#define STATUS_SEVERITY_ERROR 0x3
+
+
+//
+// MessageId: HOST_CATEGORY
+//
+// MessageText:
+//
+//
+#define HOST_CATEGORY ((WORD)0x00000001L)
+
+ // The message definitions.
+//
+// MessageId: MSG_HOST_CLIENT_CONNECTED
+//
+// MessageText:
+//
+//
+#define MSG_HOST_CLIENT_CONNECTED ((DWORD)0x40000001L)
+
+//
+// MessageId: MSG_HOST_CLIENT_DISCONNECTED
+//
+// MessageText:
+//
+//
+#define MSG_HOST_CLIENT_DISCONNECTED ((DWORD)0x40000002L)
+
+//
+// MessageId: MSG_HOST_CLIENT_ACCESS_DENIED
+//
+// MessageText:
+//
+//
+#define MSG_HOST_CLIENT_ACCESS_DENIED ((DWORD)0xC0000003L)
+
+//
+// MessageId: MSG_HOST_CLIENT_ROUTING_CHANGED
+//
+// MessageText:
+//
+//
+#define MSG_HOST_CLIENT_ROUTING_CHANGED ((DWORD)0x40000004L)
+
+//
+// MessageId: MSG_HOST_STARTED
+//
+// MessageText:
+//
+//
+#define MSG_HOST_STARTED ((DWORD)0x40000005L)
+
+ // This line makes sure that mc.exe does not complain about a single '.' at
+ // the end of the file. \ No newline at end of file
diff --git a/chromium/third_party/win_build_output/mc/remoting/host/win/remoting_host_messages.rc b/chromium/third_party/win_build_output/mc/remoting/host/win/remoting_host_messages.rc
new file mode 100644
index 00000000000..9d8c33cf814
--- /dev/null
+++ b/chromium/third_party/win_build_output/mc/remoting/host/win/remoting_host_messages.rc
@@ -0,0 +1,108 @@
+LANGUAGE 0x5e,0x1
+1 11 "MSG0045e.bin"
+LANGUAGE 0x1,0x1
+1 11 "MSG00401.bin"
+LANGUAGE 0x2,0x1
+1 11 "MSG00402.bin"
+LANGUAGE 0x45,0x1
+1 11 "MSG00445.bin"
+LANGUAGE 0x3,0x1
+1 11 "MSG00403.bin"
+LANGUAGE 0x5,0x1
+1 11 "MSG00405.bin"
+LANGUAGE 0x6,0x1
+1 11 "MSG00406.bin"
+LANGUAGE 0x7,0x1
+1 11 "MSG00407.bin"
+LANGUAGE 0x8,0x1
+1 11 "MSG00408.bin"
+LANGUAGE 0x9,0x1
+1 11 "MSG00409.bin"
+LANGUAGE 0x9,0x2
+1 11 "MSG00809.bin"
+LANGUAGE 0xa,0x3
+1 11 "MSG00c0a.bin"
+LANGUAGE 0xa,0x2
+1 11 "MSG0080a.bin"
+LANGUAGE 0x25,0x1
+1 11 "MSG00425.bin"
+LANGUAGE 0x29,0x1
+1 11 "MSG00429.bin"
+LANGUAGE 0xd,0x0
+1 11 "MSG0000d.bin"
+LANGUAGE 0xb,0x1
+1 11 "MSG0040b.bin"
+LANGUAGE 0x64,0x1
+1 11 "MSG00464.bin"
+LANGUAGE 0xc,0x1
+1 11 "MSG0040c.bin"
+LANGUAGE 0x47,0x1
+1 11 "MSG00447.bin"
+LANGUAGE 0xd,0x1
+1 11 "MSG0040d.bin"
+LANGUAGE 0x39,0x1
+1 11 "MSG00439.bin"
+LANGUAGE 0x1a,0x1
+1 11 "MSG0041a.bin"
+LANGUAGE 0xe,0x1
+1 11 "MSG0040e.bin"
+LANGUAGE 0x21,0x1
+1 11 "MSG00421.bin"
+LANGUAGE 0x10,0x1
+1 11 "MSG00410.bin"
+LANGUAGE 0x11,0x1
+1 11 "MSG00411.bin"
+LANGUAGE 0x4b,0x1
+1 11 "MSG0044b.bin"
+LANGUAGE 0x12,0x1
+1 11 "MSG00412.bin"
+LANGUAGE 0x27,0x1
+1 11 "MSG00427.bin"
+LANGUAGE 0x26,0x1
+1 11 "MSG00426.bin"
+LANGUAGE 0x4c,0x1
+1 11 "MSG0044c.bin"
+LANGUAGE 0x4e,0x1
+1 11 "MSG0044e.bin"
+LANGUAGE 0x3e,0x1
+1 11 "MSG0043e.bin"
+LANGUAGE 0x14,0x1
+1 11 "MSG00414.bin"
+LANGUAGE 0x13,0x1
+1 11 "MSG00413.bin"
+LANGUAGE 0x15,0x1
+1 11 "MSG00415.bin"
+LANGUAGE 0x16,0x1
+1 11 "MSG00416.bin"
+LANGUAGE 0x16,0x2
+1 11 "MSG00816.bin"
+LANGUAGE 0x18,0x1
+1 11 "MSG00418.bin"
+LANGUAGE 0x19,0x1
+1 11 "MSG00419.bin"
+LANGUAGE 0x1b,0x1
+1 11 "MSG0041b.bin"
+LANGUAGE 0x24,0x1
+1 11 "MSG00424.bin"
+LANGUAGE 0x1a,0x2
+1 11 "MSG0081a.bin"
+LANGUAGE 0x1d,0x1
+1 11 "MSG0041d.bin"
+LANGUAGE 0x41,0x1
+1 11 "MSG00441.bin"
+LANGUAGE 0x49,0x1
+1 11 "MSG00449.bin"
+LANGUAGE 0x4a,0x1
+1 11 "MSG0044a.bin"
+LANGUAGE 0x1e,0x1
+1 11 "MSG0041e.bin"
+LANGUAGE 0x1f,0x1
+1 11 "MSG0041f.bin"
+LANGUAGE 0x22,0x1
+1 11 "MSG00422.bin"
+LANGUAGE 0x2a,0x1
+1 11 "MSG0042a.bin"
+LANGUAGE 0x4,0x2
+1 11 "MSG00804.bin"
+LANGUAGE 0x4,0x1
+1 11 "MSG00404.bin"
diff --git a/chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl.dlldata.c b/chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl.dlldata.c
new file mode 100644
index 00000000000..7f84320cb61
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl.dlldata.c
@@ -0,0 +1,38 @@
+/*********************************************************
+ DllData file -- generated by MIDL compiler
+
+ DO NOT ALTER THIS FILE
+
+ This file is regenerated by MIDL on every IDL file compile.
+
+ To completely reconstruct this file, delete it and rerun MIDL
+ on all the IDL files in this DLL, specifying this file for the
+ /dlldata command line option
+
+*********************************************************/
+
+#define PROXY_DELEGATION
+
+#include <rpcproxy.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_PROXY_FILE( google_update_idl )
+
+
+PROXYFILE_LIST_START
+/* Start of list */
+ REFERENCE_PROXY_FILE( google_update_idl ),
+/* End of list */
+PROXYFILE_LIST_END
+
+
+DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID )
+
+#ifdef __cplusplus
+} /*extern "C" */
+#endif
+
+/* end of generated dlldata file */
diff --git a/chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl.h b/chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl.h
new file mode 100644
index 00000000000..ca3c67f8b1d
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl.h
@@ -0,0 +1,4892 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../google_update/google_update_idl.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif /* __RPCNDR_H_VERSION__ */
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __google_update_idl_h__
+#define __google_update_idl_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IGoogleUpdate3_FWD_DEFINED__
+#define __IGoogleUpdate3_FWD_DEFINED__
+typedef interface IGoogleUpdate3 IGoogleUpdate3;
+
+#endif /* __IGoogleUpdate3_FWD_DEFINED__ */
+
+
+#ifndef __IAppBundle_FWD_DEFINED__
+#define __IAppBundle_FWD_DEFINED__
+typedef interface IAppBundle IAppBundle;
+
+#endif /* __IAppBundle_FWD_DEFINED__ */
+
+
+#ifndef __IApp_FWD_DEFINED__
+#define __IApp_FWD_DEFINED__
+typedef interface IApp IApp;
+
+#endif /* __IApp_FWD_DEFINED__ */
+
+
+#ifndef __IAppCommand_FWD_DEFINED__
+#define __IAppCommand_FWD_DEFINED__
+typedef interface IAppCommand IAppCommand;
+
+#endif /* __IAppCommand_FWD_DEFINED__ */
+
+
+#ifndef __IAppVersion_FWD_DEFINED__
+#define __IAppVersion_FWD_DEFINED__
+typedef interface IAppVersion IAppVersion;
+
+#endif /* __IAppVersion_FWD_DEFINED__ */
+
+
+#ifndef __IPackage_FWD_DEFINED__
+#define __IPackage_FWD_DEFINED__
+typedef interface IPackage IPackage;
+
+#endif /* __IPackage_FWD_DEFINED__ */
+
+
+#ifndef __ICurrentState_FWD_DEFINED__
+#define __ICurrentState_FWD_DEFINED__
+typedef interface ICurrentState ICurrentState;
+
+#endif /* __ICurrentState_FWD_DEFINED__ */
+
+
+#ifndef __IRegistrationUpdateHook_FWD_DEFINED__
+#define __IRegistrationUpdateHook_FWD_DEFINED__
+typedef interface IRegistrationUpdateHook IRegistrationUpdateHook;
+
+#endif /* __IRegistrationUpdateHook_FWD_DEFINED__ */
+
+
+#ifndef __ICredentialDialog_FWD_DEFINED__
+#define __ICredentialDialog_FWD_DEFINED__
+typedef interface ICredentialDialog ICredentialDialog;
+
+#endif /* __ICredentialDialog_FWD_DEFINED__ */
+
+
+#ifndef __IGoogleUpdate3Web_FWD_DEFINED__
+#define __IGoogleUpdate3Web_FWD_DEFINED__
+typedef interface IGoogleUpdate3Web IGoogleUpdate3Web;
+
+#endif /* __IGoogleUpdate3Web_FWD_DEFINED__ */
+
+
+#ifndef __IGoogleUpdate3WebSecurity_FWD_DEFINED__
+#define __IGoogleUpdate3WebSecurity_FWD_DEFINED__
+typedef interface IGoogleUpdate3WebSecurity IGoogleUpdate3WebSecurity;
+
+#endif /* __IGoogleUpdate3WebSecurity_FWD_DEFINED__ */
+
+
+#ifndef __IAppBundleWeb_FWD_DEFINED__
+#define __IAppBundleWeb_FWD_DEFINED__
+typedef interface IAppBundleWeb IAppBundleWeb;
+
+#endif /* __IAppBundleWeb_FWD_DEFINED__ */
+
+
+#ifndef __IAppWeb_FWD_DEFINED__
+#define __IAppWeb_FWD_DEFINED__
+typedef interface IAppWeb IAppWeb;
+
+#endif /* __IAppWeb_FWD_DEFINED__ */
+
+
+#ifndef __IAppCommandWeb_FWD_DEFINED__
+#define __IAppCommandWeb_FWD_DEFINED__
+typedef interface IAppCommandWeb IAppCommandWeb;
+
+#endif /* __IAppCommandWeb_FWD_DEFINED__ */
+
+
+#ifndef __IAppVersionWeb_FWD_DEFINED__
+#define __IAppVersionWeb_FWD_DEFINED__
+typedef interface IAppVersionWeb IAppVersionWeb;
+
+#endif /* __IAppVersionWeb_FWD_DEFINED__ */
+
+
+#ifndef __ICoCreateAsyncStatus_FWD_DEFINED__
+#define __ICoCreateAsyncStatus_FWD_DEFINED__
+typedef interface ICoCreateAsyncStatus ICoCreateAsyncStatus;
+
+#endif /* __ICoCreateAsyncStatus_FWD_DEFINED__ */
+
+
+#ifndef __ICoCreateAsync_FWD_DEFINED__
+#define __ICoCreateAsync_FWD_DEFINED__
+typedef interface ICoCreateAsync ICoCreateAsync;
+
+#endif /* __ICoCreateAsync_FWD_DEFINED__ */
+
+
+#ifndef __IBrowserHttpRequest2_FWD_DEFINED__
+#define __IBrowserHttpRequest2_FWD_DEFINED__
+typedef interface IBrowserHttpRequest2 IBrowserHttpRequest2;
+
+#endif /* __IBrowserHttpRequest2_FWD_DEFINED__ */
+
+
+#ifndef __IProcessLauncher_FWD_DEFINED__
+#define __IProcessLauncher_FWD_DEFINED__
+typedef interface IProcessLauncher IProcessLauncher;
+
+#endif /* __IProcessLauncher_FWD_DEFINED__ */
+
+
+#ifndef __IOneClickProcessLauncher_FWD_DEFINED__
+#define __IOneClickProcessLauncher_FWD_DEFINED__
+typedef interface IOneClickProcessLauncher IOneClickProcessLauncher;
+
+#endif /* __IOneClickProcessLauncher_FWD_DEFINED__ */
+
+
+#ifndef __IProgressWndEvents_FWD_DEFINED__
+#define __IProgressWndEvents_FWD_DEFINED__
+typedef interface IProgressWndEvents IProgressWndEvents;
+
+#endif /* __IProgressWndEvents_FWD_DEFINED__ */
+
+
+#ifndef __IJobObserver_FWD_DEFINED__
+#define __IJobObserver_FWD_DEFINED__
+typedef interface IJobObserver IJobObserver;
+
+#endif /* __IJobObserver_FWD_DEFINED__ */
+
+
+#ifndef __IGoogleUpdate_FWD_DEFINED__
+#define __IGoogleUpdate_FWD_DEFINED__
+typedef interface IGoogleUpdate IGoogleUpdate;
+
+#endif /* __IGoogleUpdate_FWD_DEFINED__ */
+
+
+#ifndef __IGoogleUpdateCore_FWD_DEFINED__
+#define __IGoogleUpdateCore_FWD_DEFINED__
+typedef interface IGoogleUpdateCore IGoogleUpdateCore;
+
+#endif /* __IGoogleUpdateCore_FWD_DEFINED__ */
+
+
+#ifndef __IGoogleUpdate3_FWD_DEFINED__
+#define __IGoogleUpdate3_FWD_DEFINED__
+typedef interface IGoogleUpdate3 IGoogleUpdate3;
+
+#endif /* __IGoogleUpdate3_FWD_DEFINED__ */
+
+
+#ifndef __IAppBundle_FWD_DEFINED__
+#define __IAppBundle_FWD_DEFINED__
+typedef interface IAppBundle IAppBundle;
+
+#endif /* __IAppBundle_FWD_DEFINED__ */
+
+
+#ifndef __IApp_FWD_DEFINED__
+#define __IApp_FWD_DEFINED__
+typedef interface IApp IApp;
+
+#endif /* __IApp_FWD_DEFINED__ */
+
+
+#ifndef __IAppCommand_FWD_DEFINED__
+#define __IAppCommand_FWD_DEFINED__
+typedef interface IAppCommand IAppCommand;
+
+#endif /* __IAppCommand_FWD_DEFINED__ */
+
+
+#ifndef __IAppVersion_FWD_DEFINED__
+#define __IAppVersion_FWD_DEFINED__
+typedef interface IAppVersion IAppVersion;
+
+#endif /* __IAppVersion_FWD_DEFINED__ */
+
+
+#ifndef __IPackage_FWD_DEFINED__
+#define __IPackage_FWD_DEFINED__
+typedef interface IPackage IPackage;
+
+#endif /* __IPackage_FWD_DEFINED__ */
+
+
+#ifndef __ICurrentState_FWD_DEFINED__
+#define __ICurrentState_FWD_DEFINED__
+typedef interface ICurrentState ICurrentState;
+
+#endif /* __ICurrentState_FWD_DEFINED__ */
+
+
+#ifndef __IGoogleUpdate3Web_FWD_DEFINED__
+#define __IGoogleUpdate3Web_FWD_DEFINED__
+typedef interface IGoogleUpdate3Web IGoogleUpdate3Web;
+
+#endif /* __IGoogleUpdate3Web_FWD_DEFINED__ */
+
+
+#ifndef __IAppBundleWeb_FWD_DEFINED__
+#define __IAppBundleWeb_FWD_DEFINED__
+typedef interface IAppBundleWeb IAppBundleWeb;
+
+#endif /* __IAppBundleWeb_FWD_DEFINED__ */
+
+
+#ifndef __IAppWeb_FWD_DEFINED__
+#define __IAppWeb_FWD_DEFINED__
+typedef interface IAppWeb IAppWeb;
+
+#endif /* __IAppWeb_FWD_DEFINED__ */
+
+
+#ifndef __IAppCommandWeb_FWD_DEFINED__
+#define __IAppCommandWeb_FWD_DEFINED__
+typedef interface IAppCommandWeb IAppCommandWeb;
+
+#endif /* __IAppCommandWeb_FWD_DEFINED__ */
+
+
+#ifndef __IAppVersionWeb_FWD_DEFINED__
+#define __IAppVersionWeb_FWD_DEFINED__
+typedef interface IAppVersionWeb IAppVersionWeb;
+
+#endif /* __IAppVersionWeb_FWD_DEFINED__ */
+
+
+#ifndef __ICoCreateAsyncStatus_FWD_DEFINED__
+#define __ICoCreateAsyncStatus_FWD_DEFINED__
+typedef interface ICoCreateAsyncStatus ICoCreateAsyncStatus;
+
+#endif /* __ICoCreateAsyncStatus_FWD_DEFINED__ */
+
+
+#ifndef __GoogleUpdate3UserClass_FWD_DEFINED__
+#define __GoogleUpdate3UserClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class GoogleUpdate3UserClass GoogleUpdate3UserClass;
+#else
+typedef struct GoogleUpdate3UserClass GoogleUpdate3UserClass;
+#endif /* __cplusplus */
+
+#endif /* __GoogleUpdate3UserClass_FWD_DEFINED__ */
+
+
+#ifndef __GoogleUpdate3ServiceClass_FWD_DEFINED__
+#define __GoogleUpdate3ServiceClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class GoogleUpdate3ServiceClass GoogleUpdate3ServiceClass;
+#else
+typedef struct GoogleUpdate3ServiceClass GoogleUpdate3ServiceClass;
+#endif /* __cplusplus */
+
+#endif /* __GoogleUpdate3ServiceClass_FWD_DEFINED__ */
+
+
+#ifndef __GoogleUpdate3WebUserClass_FWD_DEFINED__
+#define __GoogleUpdate3WebUserClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class GoogleUpdate3WebUserClass GoogleUpdate3WebUserClass;
+#else
+typedef struct GoogleUpdate3WebUserClass GoogleUpdate3WebUserClass;
+#endif /* __cplusplus */
+
+#endif /* __GoogleUpdate3WebUserClass_FWD_DEFINED__ */
+
+
+#ifndef __GoogleUpdate3WebMachineClass_FWD_DEFINED__
+#define __GoogleUpdate3WebMachineClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class GoogleUpdate3WebMachineClass GoogleUpdate3WebMachineClass;
+#else
+typedef struct GoogleUpdate3WebMachineClass GoogleUpdate3WebMachineClass;
+#endif /* __cplusplus */
+
+#endif /* __GoogleUpdate3WebMachineClass_FWD_DEFINED__ */
+
+
+#ifndef __GoogleUpdate3WebServiceClass_FWD_DEFINED__
+#define __GoogleUpdate3WebServiceClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class GoogleUpdate3WebServiceClass GoogleUpdate3WebServiceClass;
+#else
+typedef struct GoogleUpdate3WebServiceClass GoogleUpdate3WebServiceClass;
+#endif /* __cplusplus */
+
+#endif /* __GoogleUpdate3WebServiceClass_FWD_DEFINED__ */
+
+
+#ifndef __GoogleUpdate3WebMachineFallbackClass_FWD_DEFINED__
+#define __GoogleUpdate3WebMachineFallbackClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class GoogleUpdate3WebMachineFallbackClass GoogleUpdate3WebMachineFallbackClass;
+#else
+typedef struct GoogleUpdate3WebMachineFallbackClass GoogleUpdate3WebMachineFallbackClass;
+#endif /* __cplusplus */
+
+#endif /* __GoogleUpdate3WebMachineFallbackClass_FWD_DEFINED__ */
+
+
+#ifndef __CurrentStateUserClass_FWD_DEFINED__
+#define __CurrentStateUserClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class CurrentStateUserClass CurrentStateUserClass;
+#else
+typedef struct CurrentStateUserClass CurrentStateUserClass;
+#endif /* __cplusplus */
+
+#endif /* __CurrentStateUserClass_FWD_DEFINED__ */
+
+
+#ifndef __CurrentStateMachineClass_FWD_DEFINED__
+#define __CurrentStateMachineClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class CurrentStateMachineClass CurrentStateMachineClass;
+#else
+typedef struct CurrentStateMachineClass CurrentStateMachineClass;
+#endif /* __cplusplus */
+
+#endif /* __CurrentStateMachineClass_FWD_DEFINED__ */
+
+
+#ifndef __CoCreateAsyncClass_FWD_DEFINED__
+#define __CoCreateAsyncClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class CoCreateAsyncClass CoCreateAsyncClass;
+#else
+typedef struct CoCreateAsyncClass CoCreateAsyncClass;
+#endif /* __cplusplus */
+
+#endif /* __CoCreateAsyncClass_FWD_DEFINED__ */
+
+
+#ifndef __CredentialDialogUserClass_FWD_DEFINED__
+#define __CredentialDialogUserClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class CredentialDialogUserClass CredentialDialogUserClass;
+#else
+typedef struct CredentialDialogUserClass CredentialDialogUserClass;
+#endif /* __cplusplus */
+
+#endif /* __CredentialDialogUserClass_FWD_DEFINED__ */
+
+
+#ifndef __CredentialDialogMachineClass_FWD_DEFINED__
+#define __CredentialDialogMachineClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class CredentialDialogMachineClass CredentialDialogMachineClass;
+#else
+typedef struct CredentialDialogMachineClass CredentialDialogMachineClass;
+#endif /* __cplusplus */
+
+#endif /* __CredentialDialogMachineClass_FWD_DEFINED__ */
+
+
+#ifndef __ProcessLauncherClass_FWD_DEFINED__
+#define __ProcessLauncherClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class ProcessLauncherClass ProcessLauncherClass;
+#else
+typedef struct ProcessLauncherClass ProcessLauncherClass;
+#endif /* __cplusplus */
+
+#endif /* __ProcessLauncherClass_FWD_DEFINED__ */
+
+
+#ifndef __OneClickUserProcessLauncherClass_FWD_DEFINED__
+#define __OneClickUserProcessLauncherClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class OneClickUserProcessLauncherClass OneClickUserProcessLauncherClass;
+#else
+typedef struct OneClickUserProcessLauncherClass OneClickUserProcessLauncherClass;
+#endif /* __cplusplus */
+
+#endif /* __OneClickUserProcessLauncherClass_FWD_DEFINED__ */
+
+
+#ifndef __OneClickMachineProcessLauncherClass_FWD_DEFINED__
+#define __OneClickMachineProcessLauncherClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class OneClickMachineProcessLauncherClass OneClickMachineProcessLauncherClass;
+#else
+typedef struct OneClickMachineProcessLauncherClass OneClickMachineProcessLauncherClass;
+#endif /* __cplusplus */
+
+#endif /* __OneClickMachineProcessLauncherClass_FWD_DEFINED__ */
+
+
+#ifndef __OnDemandUserAppsClass_FWD_DEFINED__
+#define __OnDemandUserAppsClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class OnDemandUserAppsClass OnDemandUserAppsClass;
+#else
+typedef struct OnDemandUserAppsClass OnDemandUserAppsClass;
+#endif /* __cplusplus */
+
+#endif /* __OnDemandUserAppsClass_FWD_DEFINED__ */
+
+
+#ifndef __OnDemandMachineAppsClass_FWD_DEFINED__
+#define __OnDemandMachineAppsClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class OnDemandMachineAppsClass OnDemandMachineAppsClass;
+#else
+typedef struct OnDemandMachineAppsClass OnDemandMachineAppsClass;
+#endif /* __cplusplus */
+
+#endif /* __OnDemandMachineAppsClass_FWD_DEFINED__ */
+
+
+#ifndef __OnDemandMachineAppsServiceClass_FWD_DEFINED__
+#define __OnDemandMachineAppsServiceClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class OnDemandMachineAppsServiceClass OnDemandMachineAppsServiceClass;
+#else
+typedef struct OnDemandMachineAppsServiceClass OnDemandMachineAppsServiceClass;
+#endif /* __cplusplus */
+
+#endif /* __OnDemandMachineAppsServiceClass_FWD_DEFINED__ */
+
+
+#ifndef __OnDemandMachineAppsFallbackClass_FWD_DEFINED__
+#define __OnDemandMachineAppsFallbackClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class OnDemandMachineAppsFallbackClass OnDemandMachineAppsFallbackClass;
+#else
+typedef struct OnDemandMachineAppsFallbackClass OnDemandMachineAppsFallbackClass;
+#endif /* __cplusplus */
+
+#endif /* __OnDemandMachineAppsFallbackClass_FWD_DEFINED__ */
+
+
+#ifndef __GoogleUpdateCoreClass_FWD_DEFINED__
+#define __GoogleUpdateCoreClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class GoogleUpdateCoreClass GoogleUpdateCoreClass;
+#else
+typedef struct GoogleUpdateCoreClass GoogleUpdateCoreClass;
+#endif /* __cplusplus */
+
+#endif /* __GoogleUpdateCoreClass_FWD_DEFINED__ */
+
+
+#ifndef __GoogleUpdateCoreMachineClass_FWD_DEFINED__
+#define __GoogleUpdateCoreMachineClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class GoogleUpdateCoreMachineClass GoogleUpdateCoreMachineClass;
+#else
+typedef struct GoogleUpdateCoreMachineClass GoogleUpdateCoreMachineClass;
+#endif /* __cplusplus */
+
+#endif /* __GoogleUpdateCoreMachineClass_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "oaidl.h"
+#include "ocidl.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_google_update_idl_0000_0000 */
+/* [local] */
+
+typedef
+enum BrowserType
+ {
+ BROWSER_UNKNOWN = 0,
+ BROWSER_DEFAULT = 1,
+ BROWSER_INTERNET_EXPLORER = 2,
+ BROWSER_FIREFOX = 3,
+ BROWSER_CHROME = 4
+ } BrowserType;
+
+typedef
+enum CurrentState
+ {
+ STATE_INIT = 1,
+ STATE_WAITING_TO_CHECK_FOR_UPDATE = 2,
+ STATE_CHECKING_FOR_UPDATE = 3,
+ STATE_UPDATE_AVAILABLE = 4,
+ STATE_WAITING_TO_DOWNLOAD = 5,
+ STATE_RETRYING_DOWNLOAD = 6,
+ STATE_DOWNLOADING = 7,
+ STATE_DOWNLOAD_COMPLETE = 8,
+ STATE_EXTRACTING = 9,
+ STATE_APPLYING_DIFFERENTIAL_PATCH = 10,
+ STATE_READY_TO_INSTALL = 11,
+ STATE_WAITING_TO_INSTALL = 12,
+ STATE_INSTALLING = 13,
+ STATE_INSTALL_COMPLETE = 14,
+ STATE_PAUSED = 15,
+ STATE_NO_UPDATE = 16,
+ STATE_ERROR = 17
+ } CurrentState;
+
+typedef
+enum InstallPriority
+ {
+ INSTALL_PRIORITY_LOW = 0,
+ INSTALL_PRIORITY_HIGH = 10
+ } InstallPriority;
+
+typedef
+enum PostInstallAction
+ {
+ POST_INSTALL_ACTION_DEFAULT = 0,
+ POST_INSTALL_ACTION_EXIT_SILENTLY = 1,
+ POST_INSTALL_ACTION_LAUNCH_COMMAND = 2,
+ POST_INSTALL_ACTION_EXIT_SILENTLY_ON_LAUNCH_COMMAND = 3,
+ POST_INSTALL_ACTION_RESTART_BROWSER = 4,
+ POST_INSTALL_ACTION_RESTART_ALL_BROWSERS = 5,
+ POST_INSTALL_ACTION_REBOOT = 6
+ } PostInstallAction;
+
+
+enum AppCommandStatus
+ {
+ COMMAND_STATUS_INIT = 1,
+ COMMAND_STATUS_RUNNING = 2,
+ COMMAND_STATUS_ERROR = 3,
+ COMMAND_STATUS_COMPLETE = 4
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_google_update_idl_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_google_update_idl_0000_0000_v0_0_s_ifspec;
+
+#ifndef __IGoogleUpdate3_INTERFACE_DEFINED__
+#define __IGoogleUpdate3_INTERFACE_DEFINED__
+
+/* interface IGoogleUpdate3 */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IGoogleUpdate3;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6DB17455-4E85-46e7-9D23-E555E4B005AF")
+ IGoogleUpdate3 : public IDispatch
+ {
+ public:
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Count(
+ /* [retval][out] */ long *count) = 0;
+
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Item(
+ /* [in] */ long index,
+ /* [retval][out] */ IDispatch **bundle) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE createAppBundle(
+ /* [retval][out] */ IDispatch **app_bundle) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IGoogleUpdate3Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IGoogleUpdate3 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IGoogleUpdate3 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IGoogleUpdate3 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IGoogleUpdate3 * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IGoogleUpdate3 * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IGoogleUpdate3 * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IGoogleUpdate3 * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
+ IGoogleUpdate3 * This,
+ /* [retval][out] */ long *count);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
+ IGoogleUpdate3 * This,
+ /* [in] */ long index,
+ /* [retval][out] */ IDispatch **bundle);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *createAppBundle )(
+ IGoogleUpdate3 * This,
+ /* [retval][out] */ IDispatch **app_bundle);
+
+ END_INTERFACE
+ } IGoogleUpdate3Vtbl;
+
+ interface IGoogleUpdate3
+ {
+ CONST_VTBL struct IGoogleUpdate3Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IGoogleUpdate3_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IGoogleUpdate3_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IGoogleUpdate3_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IGoogleUpdate3_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IGoogleUpdate3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IGoogleUpdate3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IGoogleUpdate3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IGoogleUpdate3_get_Count(This,count) \
+ ( (This)->lpVtbl -> get_Count(This,count) )
+
+#define IGoogleUpdate3_get_Item(This,index,bundle) \
+ ( (This)->lpVtbl -> get_Item(This,index,bundle) )
+
+#define IGoogleUpdate3_createAppBundle(This,app_bundle) \
+ ( (This)->lpVtbl -> createAppBundle(This,app_bundle) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IGoogleUpdate3_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAppBundle_INTERFACE_DEFINED__
+#define __IAppBundle_INTERFACE_DEFINED__
+
+/* interface IAppBundle */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IAppBundle;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("fe908cdd-22bb-472a-9870-1a0390e42f36")
+ IAppBundle : public IDispatch
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_displayName(
+ /* [retval][out] */ BSTR *__MIDL__IAppBundle0000) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_displayName(
+ /* [in] */ BSTR __MIDL__IAppBundle0001) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_displayLanguage(
+ /* [retval][out] */ BSTR *__MIDL__IAppBundle0002) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_displayLanguage(
+ /* [in] */ BSTR __MIDL__IAppBundle0003) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_installSource(
+ /* [retval][out] */ BSTR *__MIDL__IAppBundle0004) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_installSource(
+ /* [in] */ BSTR __MIDL__IAppBundle0005) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_originURL(
+ /* [retval][out] */ BSTR *__MIDL__IAppBundle0006) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_originURL(
+ /* [in] */ BSTR __MIDL__IAppBundle0007) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_offlineDirectory(
+ /* [retval][out] */ BSTR *offline_dir) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_offlineDirectory(
+ /* [in] */ BSTR offline_dir) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_sessionId(
+ /* [retval][out] */ BSTR *session_id) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_sessionId(
+ /* [in] */ BSTR session_id) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_sendPings(
+ /* [retval][out] */ VARIANT_BOOL *send_pings) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_sendPings(
+ /* [in] */ VARIANT_BOOL send_pings) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_priority(
+ /* [retval][out] */ long *priority) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_priority(
+ /* [in] */ long priority) = 0;
+
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Count(
+ /* [retval][out] */ long *count) = 0;
+
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Item(
+ /* [in] */ long index,
+ /* [retval][out] */ IDispatch **app) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_altTokens(
+ /* [in] */ ULONG_PTR impersonation_token,
+ /* [in] */ ULONG_PTR primary_token,
+ /* [in] */ DWORD caller_proc_id) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_parentHWND(
+ /* [in] */ ULONG_PTR hwnd) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE initialize( void) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE createApp(
+ /* [in] */ BSTR app_id,
+ /* [retval][out] */ IDispatch **app) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE createInstalledApp(
+ /* [in] */ BSTR app_id,
+ /* [retval][out] */ IDispatch **app) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE createAllInstalledApps( void) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE checkForUpdate( void) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE download( void) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE install( void) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE updateAllApps( void) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE stop( void) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE pause( void) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE resume( void) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE isBusy(
+ /* [retval][out] */ VARIANT_BOOL *is_busy) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE downloadPackage(
+ /* [in] */ BSTR app_id,
+ /* [in] */ BSTR package_name) = 0;
+
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_currentState(
+ /* [retval][out] */ VARIANT *current_state) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAppBundleVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAppBundle * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAppBundle * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAppBundle * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAppBundle * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAppBundle * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAppBundle * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAppBundle * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayName )(
+ IAppBundle * This,
+ /* [retval][out] */ BSTR *__MIDL__IAppBundle0000);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayName )(
+ IAppBundle * This,
+ /* [in] */ BSTR __MIDL__IAppBundle0001);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayLanguage )(
+ IAppBundle * This,
+ /* [retval][out] */ BSTR *__MIDL__IAppBundle0002);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayLanguage )(
+ IAppBundle * This,
+ /* [in] */ BSTR __MIDL__IAppBundle0003);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installSource )(
+ IAppBundle * This,
+ /* [retval][out] */ BSTR *__MIDL__IAppBundle0004);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_installSource )(
+ IAppBundle * This,
+ /* [in] */ BSTR __MIDL__IAppBundle0005);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_originURL )(
+ IAppBundle * This,
+ /* [retval][out] */ BSTR *__MIDL__IAppBundle0006);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_originURL )(
+ IAppBundle * This,
+ /* [in] */ BSTR __MIDL__IAppBundle0007);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offlineDirectory )(
+ IAppBundle * This,
+ /* [retval][out] */ BSTR *offline_dir);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_offlineDirectory )(
+ IAppBundle * This,
+ /* [in] */ BSTR offline_dir);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_sessionId )(
+ IAppBundle * This,
+ /* [retval][out] */ BSTR *session_id);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_sessionId )(
+ IAppBundle * This,
+ /* [in] */ BSTR session_id);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_sendPings )(
+ IAppBundle * This,
+ /* [retval][out] */ VARIANT_BOOL *send_pings);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_sendPings )(
+ IAppBundle * This,
+ /* [in] */ VARIANT_BOOL send_pings);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_priority )(
+ IAppBundle * This,
+ /* [retval][out] */ long *priority);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_priority )(
+ IAppBundle * This,
+ /* [in] */ long priority);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
+ IAppBundle * This,
+ /* [retval][out] */ long *count);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
+ IAppBundle * This,
+ /* [in] */ long index,
+ /* [retval][out] */ IDispatch **app);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_altTokens )(
+ IAppBundle * This,
+ /* [in] */ ULONG_PTR impersonation_token,
+ /* [in] */ ULONG_PTR primary_token,
+ /* [in] */ DWORD caller_proc_id);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_parentHWND )(
+ IAppBundle * This,
+ /* [in] */ ULONG_PTR hwnd);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *initialize )(
+ IAppBundle * This);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *createApp )(
+ IAppBundle * This,
+ /* [in] */ BSTR app_id,
+ /* [retval][out] */ IDispatch **app);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *createInstalledApp )(
+ IAppBundle * This,
+ /* [in] */ BSTR app_id,
+ /* [retval][out] */ IDispatch **app);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *createAllInstalledApps )(
+ IAppBundle * This);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *checkForUpdate )(
+ IAppBundle * This);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *download )(
+ IAppBundle * This);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *install )(
+ IAppBundle * This);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *updateAllApps )(
+ IAppBundle * This);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *stop )(
+ IAppBundle * This);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *pause )(
+ IAppBundle * This);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *resume )(
+ IAppBundle * This);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *isBusy )(
+ IAppBundle * This,
+ /* [retval][out] */ VARIANT_BOOL *is_busy);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *downloadPackage )(
+ IAppBundle * This,
+ /* [in] */ BSTR app_id,
+ /* [in] */ BSTR package_name);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )(
+ IAppBundle * This,
+ /* [retval][out] */ VARIANT *current_state);
+
+ END_INTERFACE
+ } IAppBundleVtbl;
+
+ interface IAppBundle
+ {
+ CONST_VTBL struct IAppBundleVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAppBundle_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAppBundle_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAppBundle_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAppBundle_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAppBundle_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAppBundle_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAppBundle_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAppBundle_get_displayName(This,__MIDL__IAppBundle0000) \
+ ( (This)->lpVtbl -> get_displayName(This,__MIDL__IAppBundle0000) )
+
+#define IAppBundle_put_displayName(This,__MIDL__IAppBundle0001) \
+ ( (This)->lpVtbl -> put_displayName(This,__MIDL__IAppBundle0001) )
+
+#define IAppBundle_get_displayLanguage(This,__MIDL__IAppBundle0002) \
+ ( (This)->lpVtbl -> get_displayLanguage(This,__MIDL__IAppBundle0002) )
+
+#define IAppBundle_put_displayLanguage(This,__MIDL__IAppBundle0003) \
+ ( (This)->lpVtbl -> put_displayLanguage(This,__MIDL__IAppBundle0003) )
+
+#define IAppBundle_get_installSource(This,__MIDL__IAppBundle0004) \
+ ( (This)->lpVtbl -> get_installSource(This,__MIDL__IAppBundle0004) )
+
+#define IAppBundle_put_installSource(This,__MIDL__IAppBundle0005) \
+ ( (This)->lpVtbl -> put_installSource(This,__MIDL__IAppBundle0005) )
+
+#define IAppBundle_get_originURL(This,__MIDL__IAppBundle0006) \
+ ( (This)->lpVtbl -> get_originURL(This,__MIDL__IAppBundle0006) )
+
+#define IAppBundle_put_originURL(This,__MIDL__IAppBundle0007) \
+ ( (This)->lpVtbl -> put_originURL(This,__MIDL__IAppBundle0007) )
+
+#define IAppBundle_get_offlineDirectory(This,offline_dir) \
+ ( (This)->lpVtbl -> get_offlineDirectory(This,offline_dir) )
+
+#define IAppBundle_put_offlineDirectory(This,offline_dir) \
+ ( (This)->lpVtbl -> put_offlineDirectory(This,offline_dir) )
+
+#define IAppBundle_get_sessionId(This,session_id) \
+ ( (This)->lpVtbl -> get_sessionId(This,session_id) )
+
+#define IAppBundle_put_sessionId(This,session_id) \
+ ( (This)->lpVtbl -> put_sessionId(This,session_id) )
+
+#define IAppBundle_get_sendPings(This,send_pings) \
+ ( (This)->lpVtbl -> get_sendPings(This,send_pings) )
+
+#define IAppBundle_put_sendPings(This,send_pings) \
+ ( (This)->lpVtbl -> put_sendPings(This,send_pings) )
+
+#define IAppBundle_get_priority(This,priority) \
+ ( (This)->lpVtbl -> get_priority(This,priority) )
+
+#define IAppBundle_put_priority(This,priority) \
+ ( (This)->lpVtbl -> put_priority(This,priority) )
+
+#define IAppBundle_get_Count(This,count) \
+ ( (This)->lpVtbl -> get_Count(This,count) )
+
+#define IAppBundle_get_Item(This,index,app) \
+ ( (This)->lpVtbl -> get_Item(This,index,app) )
+
+#define IAppBundle_put_altTokens(This,impersonation_token,primary_token,caller_proc_id) \
+ ( (This)->lpVtbl -> put_altTokens(This,impersonation_token,primary_token,caller_proc_id) )
+
+#define IAppBundle_put_parentHWND(This,hwnd) \
+ ( (This)->lpVtbl -> put_parentHWND(This,hwnd) )
+
+#define IAppBundle_initialize(This) \
+ ( (This)->lpVtbl -> initialize(This) )
+
+#define IAppBundle_createApp(This,app_id,app) \
+ ( (This)->lpVtbl -> createApp(This,app_id,app) )
+
+#define IAppBundle_createInstalledApp(This,app_id,app) \
+ ( (This)->lpVtbl -> createInstalledApp(This,app_id,app) )
+
+#define IAppBundle_createAllInstalledApps(This) \
+ ( (This)->lpVtbl -> createAllInstalledApps(This) )
+
+#define IAppBundle_checkForUpdate(This) \
+ ( (This)->lpVtbl -> checkForUpdate(This) )
+
+#define IAppBundle_download(This) \
+ ( (This)->lpVtbl -> download(This) )
+
+#define IAppBundle_install(This) \
+ ( (This)->lpVtbl -> install(This) )
+
+#define IAppBundle_updateAllApps(This) \
+ ( (This)->lpVtbl -> updateAllApps(This) )
+
+#define IAppBundle_stop(This) \
+ ( (This)->lpVtbl -> stop(This) )
+
+#define IAppBundle_pause(This) \
+ ( (This)->lpVtbl -> pause(This) )
+
+#define IAppBundle_resume(This) \
+ ( (This)->lpVtbl -> resume(This) )
+
+#define IAppBundle_isBusy(This,is_busy) \
+ ( (This)->lpVtbl -> isBusy(This,is_busy) )
+
+#define IAppBundle_downloadPackage(This,app_id,package_name) \
+ ( (This)->lpVtbl -> downloadPackage(This,app_id,package_name) )
+
+#define IAppBundle_get_currentState(This,current_state) \
+ ( (This)->lpVtbl -> get_currentState(This,current_state) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAppBundle_INTERFACE_DEFINED__ */
+
+
+#ifndef __IApp_INTERFACE_DEFINED__
+#define __IApp_INTERFACE_DEFINED__
+
+/* interface IApp */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IApp;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("76F7B787-A67C-4c73-82C7-31F5E3AABC5C")
+ IApp : public IDispatch
+ {
+ public:
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_currentVersion(
+ /* [retval][out] */ IDispatch **current) = 0;
+
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_nextVersion(
+ /* [retval][out] */ IDispatch **next) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appId(
+ /* [retval][out] */ BSTR *__MIDL__IApp0000) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_displayName(
+ /* [retval][out] */ BSTR *__MIDL__IApp0001) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_displayName(
+ /* [in] */ BSTR __MIDL__IApp0002) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_language(
+ /* [retval][out] */ BSTR *__MIDL__IApp0003) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_language(
+ /* [in] */ BSTR __MIDL__IApp0004) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ap(
+ /* [retval][out] */ BSTR *__MIDL__IApp0005) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ap(
+ /* [in] */ BSTR __MIDL__IApp0006) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ttToken(
+ /* [retval][out] */ BSTR *__MIDL__IApp0007) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ttToken(
+ /* [in] */ BSTR __MIDL__IApp0008) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_iid(
+ /* [retval][out] */ BSTR *__MIDL__IApp0009) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_iid(
+ /* [in] */ BSTR __MIDL__IApp0010) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_brandCode(
+ /* [retval][out] */ BSTR *__MIDL__IApp0011) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_brandCode(
+ /* [in] */ BSTR __MIDL__IApp0012) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_clientId(
+ /* [retval][out] */ BSTR *__MIDL__IApp0013) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_clientId(
+ /* [in] */ BSTR __MIDL__IApp0014) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_labels(
+ /* [retval][out] */ BSTR *__MIDL__IApp0015) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_labels(
+ /* [in] */ BSTR __MIDL__IApp0016) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_referralId(
+ /* [retval][out] */ BSTR *__MIDL__IApp0017) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_referralId(
+ /* [in] */ BSTR __MIDL__IApp0018) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_command(
+ /* [in] */ BSTR command_id,
+ /* [retval][out] */ IDispatch **command) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_browserType(
+ /* [retval][out] */ UINT *__MIDL__IApp0019) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_browserType(
+ /* [in] */ UINT __MIDL__IApp0020) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_clientInstallData(
+ /* [retval][out] */ BSTR *__MIDL__IApp0021) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_clientInstallData(
+ /* [in] */ BSTR __MIDL__IApp0022) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_serverInstallDataIndex(
+ /* [retval][out] */ BSTR *__MIDL__IApp0023) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_serverInstallDataIndex(
+ /* [in] */ BSTR __MIDL__IApp0024) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isEulaAccepted(
+ /* [retval][out] */ VARIANT_BOOL *__MIDL__IApp0025) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_isEulaAccepted(
+ /* [in] */ VARIANT_BOOL __MIDL__IApp0026) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_usageStatsEnable(
+ /* [retval][out] */ UINT *__MIDL__IApp0027) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_usageStatsEnable(
+ /* [in] */ UINT __MIDL__IApp0028) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_installTimeDiffSec(
+ /* [retval][out] */ UINT *__MIDL__IApp0029) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_currentState(
+ /* [retval][out] */ IDispatch **__MIDL__IApp0030) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAppVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IApp * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IApp * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IApp * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IApp * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IApp * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IApp * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IApp * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_currentVersion )(
+ IApp * This,
+ /* [retval][out] */ IDispatch **current);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersion )(
+ IApp * This,
+ /* [retval][out] */ IDispatch **next);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0000);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayName )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0001);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayName )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0002);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0003);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_language )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0004);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ap )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0005);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ap )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0006);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ttToken )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0007);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ttToken )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0008);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_iid )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0009);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_iid )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0010);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_brandCode )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0011);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_brandCode )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0012);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_clientId )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0013);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_clientId )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0014);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_labels )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0015);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_labels )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0016);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_referralId )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0017);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_referralId )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0018);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_command )(
+ IApp * This,
+ /* [in] */ BSTR command_id,
+ /* [retval][out] */ IDispatch **command);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_browserType )(
+ IApp * This,
+ /* [retval][out] */ UINT *__MIDL__IApp0019);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_browserType )(
+ IApp * This,
+ /* [in] */ UINT __MIDL__IApp0020);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_clientInstallData )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0021);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_clientInstallData )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0022);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_serverInstallDataIndex )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0023);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_serverInstallDataIndex )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0024);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isEulaAccepted )(
+ IApp * This,
+ /* [retval][out] */ VARIANT_BOOL *__MIDL__IApp0025);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_isEulaAccepted )(
+ IApp * This,
+ /* [in] */ VARIANT_BOOL __MIDL__IApp0026);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_usageStatsEnable )(
+ IApp * This,
+ /* [retval][out] */ UINT *__MIDL__IApp0027);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_usageStatsEnable )(
+ IApp * This,
+ /* [in] */ UINT __MIDL__IApp0028);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installTimeDiffSec )(
+ IApp * This,
+ /* [retval][out] */ UINT *__MIDL__IApp0029);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )(
+ IApp * This,
+ /* [retval][out] */ IDispatch **__MIDL__IApp0030);
+
+ END_INTERFACE
+ } IAppVtbl;
+
+ interface IApp
+ {
+ CONST_VTBL struct IAppVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IApp_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IApp_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IApp_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IApp_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IApp_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IApp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IApp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IApp_get_currentVersion(This,current) \
+ ( (This)->lpVtbl -> get_currentVersion(This,current) )
+
+#define IApp_get_nextVersion(This,next) \
+ ( (This)->lpVtbl -> get_nextVersion(This,next) )
+
+#define IApp_get_appId(This,__MIDL__IApp0000) \
+ ( (This)->lpVtbl -> get_appId(This,__MIDL__IApp0000) )
+
+#define IApp_get_displayName(This,__MIDL__IApp0001) \
+ ( (This)->lpVtbl -> get_displayName(This,__MIDL__IApp0001) )
+
+#define IApp_put_displayName(This,__MIDL__IApp0002) \
+ ( (This)->lpVtbl -> put_displayName(This,__MIDL__IApp0002) )
+
+#define IApp_get_language(This,__MIDL__IApp0003) \
+ ( (This)->lpVtbl -> get_language(This,__MIDL__IApp0003) )
+
+#define IApp_put_language(This,__MIDL__IApp0004) \
+ ( (This)->lpVtbl -> put_language(This,__MIDL__IApp0004) )
+
+#define IApp_get_ap(This,__MIDL__IApp0005) \
+ ( (This)->lpVtbl -> get_ap(This,__MIDL__IApp0005) )
+
+#define IApp_put_ap(This,__MIDL__IApp0006) \
+ ( (This)->lpVtbl -> put_ap(This,__MIDL__IApp0006) )
+
+#define IApp_get_ttToken(This,__MIDL__IApp0007) \
+ ( (This)->lpVtbl -> get_ttToken(This,__MIDL__IApp0007) )
+
+#define IApp_put_ttToken(This,__MIDL__IApp0008) \
+ ( (This)->lpVtbl -> put_ttToken(This,__MIDL__IApp0008) )
+
+#define IApp_get_iid(This,__MIDL__IApp0009) \
+ ( (This)->lpVtbl -> get_iid(This,__MIDL__IApp0009) )
+
+#define IApp_put_iid(This,__MIDL__IApp0010) \
+ ( (This)->lpVtbl -> put_iid(This,__MIDL__IApp0010) )
+
+#define IApp_get_brandCode(This,__MIDL__IApp0011) \
+ ( (This)->lpVtbl -> get_brandCode(This,__MIDL__IApp0011) )
+
+#define IApp_put_brandCode(This,__MIDL__IApp0012) \
+ ( (This)->lpVtbl -> put_brandCode(This,__MIDL__IApp0012) )
+
+#define IApp_get_clientId(This,__MIDL__IApp0013) \
+ ( (This)->lpVtbl -> get_clientId(This,__MIDL__IApp0013) )
+
+#define IApp_put_clientId(This,__MIDL__IApp0014) \
+ ( (This)->lpVtbl -> put_clientId(This,__MIDL__IApp0014) )
+
+#define IApp_get_labels(This,__MIDL__IApp0015) \
+ ( (This)->lpVtbl -> get_labels(This,__MIDL__IApp0015) )
+
+#define IApp_put_labels(This,__MIDL__IApp0016) \
+ ( (This)->lpVtbl -> put_labels(This,__MIDL__IApp0016) )
+
+#define IApp_get_referralId(This,__MIDL__IApp0017) \
+ ( (This)->lpVtbl -> get_referralId(This,__MIDL__IApp0017) )
+
+#define IApp_put_referralId(This,__MIDL__IApp0018) \
+ ( (This)->lpVtbl -> put_referralId(This,__MIDL__IApp0018) )
+
+#define IApp_get_command(This,command_id,command) \
+ ( (This)->lpVtbl -> get_command(This,command_id,command) )
+
+#define IApp_get_browserType(This,__MIDL__IApp0019) \
+ ( (This)->lpVtbl -> get_browserType(This,__MIDL__IApp0019) )
+
+#define IApp_put_browserType(This,__MIDL__IApp0020) \
+ ( (This)->lpVtbl -> put_browserType(This,__MIDL__IApp0020) )
+
+#define IApp_get_clientInstallData(This,__MIDL__IApp0021) \
+ ( (This)->lpVtbl -> get_clientInstallData(This,__MIDL__IApp0021) )
+
+#define IApp_put_clientInstallData(This,__MIDL__IApp0022) \
+ ( (This)->lpVtbl -> put_clientInstallData(This,__MIDL__IApp0022) )
+
+#define IApp_get_serverInstallDataIndex(This,__MIDL__IApp0023) \
+ ( (This)->lpVtbl -> get_serverInstallDataIndex(This,__MIDL__IApp0023) )
+
+#define IApp_put_serverInstallDataIndex(This,__MIDL__IApp0024) \
+ ( (This)->lpVtbl -> put_serverInstallDataIndex(This,__MIDL__IApp0024) )
+
+#define IApp_get_isEulaAccepted(This,__MIDL__IApp0025) \
+ ( (This)->lpVtbl -> get_isEulaAccepted(This,__MIDL__IApp0025) )
+
+#define IApp_put_isEulaAccepted(This,__MIDL__IApp0026) \
+ ( (This)->lpVtbl -> put_isEulaAccepted(This,__MIDL__IApp0026) )
+
+#define IApp_get_usageStatsEnable(This,__MIDL__IApp0027) \
+ ( (This)->lpVtbl -> get_usageStatsEnable(This,__MIDL__IApp0027) )
+
+#define IApp_put_usageStatsEnable(This,__MIDL__IApp0028) \
+ ( (This)->lpVtbl -> put_usageStatsEnable(This,__MIDL__IApp0028) )
+
+#define IApp_get_installTimeDiffSec(This,__MIDL__IApp0029) \
+ ( (This)->lpVtbl -> get_installTimeDiffSec(This,__MIDL__IApp0029) )
+
+#define IApp_get_currentState(This,__MIDL__IApp0030) \
+ ( (This)->lpVtbl -> get_currentState(This,__MIDL__IApp0030) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IApp_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAppCommand_INTERFACE_DEFINED__
+#define __IAppCommand_INTERFACE_DEFINED__
+
+/* interface IAppCommand */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IAppCommand;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("4DE778FE-F195-4ee3-9DAB-FE446C239221")
+ IAppCommand : public IDispatch
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isWebAccessible(
+ /* [retval][out] */ VARIANT_BOOL *__MIDL__IAppCommand0000) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_status(
+ /* [retval][out] */ UINT *__MIDL__IAppCommand0001) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_exitCode(
+ /* [retval][out] */ DWORD *__MIDL__IAppCommand0002) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE execute(
+ /* [optional][in] */ VARIANT arg1,
+ /* [optional][in] */ VARIANT arg2,
+ /* [optional][in] */ VARIANT arg3,
+ /* [optional][in] */ VARIANT arg4,
+ /* [optional][in] */ VARIANT arg5,
+ /* [optional][in] */ VARIANT arg6,
+ /* [optional][in] */ VARIANT arg7,
+ /* [optional][in] */ VARIANT arg8,
+ /* [optional][in] */ VARIANT arg9) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAppCommandVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAppCommand * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAppCommand * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAppCommand * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAppCommand * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAppCommand * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAppCommand * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAppCommand * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isWebAccessible )(
+ IAppCommand * This,
+ /* [retval][out] */ VARIANT_BOOL *__MIDL__IAppCommand0000);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_status )(
+ IAppCommand * This,
+ /* [retval][out] */ UINT *__MIDL__IAppCommand0001);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_exitCode )(
+ IAppCommand * This,
+ /* [retval][out] */ DWORD *__MIDL__IAppCommand0002);
+
+ HRESULT ( STDMETHODCALLTYPE *execute )(
+ IAppCommand * This,
+ /* [optional][in] */ VARIANT arg1,
+ /* [optional][in] */ VARIANT arg2,
+ /* [optional][in] */ VARIANT arg3,
+ /* [optional][in] */ VARIANT arg4,
+ /* [optional][in] */ VARIANT arg5,
+ /* [optional][in] */ VARIANT arg6,
+ /* [optional][in] */ VARIANT arg7,
+ /* [optional][in] */ VARIANT arg8,
+ /* [optional][in] */ VARIANT arg9);
+
+ END_INTERFACE
+ } IAppCommandVtbl;
+
+ interface IAppCommand
+ {
+ CONST_VTBL struct IAppCommandVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAppCommand_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAppCommand_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAppCommand_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAppCommand_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAppCommand_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAppCommand_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAppCommand_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAppCommand_get_isWebAccessible(This,__MIDL__IAppCommand0000) \
+ ( (This)->lpVtbl -> get_isWebAccessible(This,__MIDL__IAppCommand0000) )
+
+#define IAppCommand_get_status(This,__MIDL__IAppCommand0001) \
+ ( (This)->lpVtbl -> get_status(This,__MIDL__IAppCommand0001) )
+
+#define IAppCommand_get_exitCode(This,__MIDL__IAppCommand0002) \
+ ( (This)->lpVtbl -> get_exitCode(This,__MIDL__IAppCommand0002) )
+
+#define IAppCommand_execute(This,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) \
+ ( (This)->lpVtbl -> execute(This,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAppCommand_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAppVersion_INTERFACE_DEFINED__
+#define __IAppVersion_INTERFACE_DEFINED__
+
+/* interface IAppVersion */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IAppVersion;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("BCDCB538-01C0-46d1-A6A7-52F4D021C272")
+ IAppVersion : public IDispatch
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_version(
+ /* [retval][out] */ BSTR *__MIDL__IAppVersion0000) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_packageCount(
+ /* [retval][out] */ long *count) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_package(
+ /* [in] */ long index,
+ /* [retval][out] */ IDispatch **package) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAppVersionVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAppVersion * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAppVersion * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAppVersion * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAppVersion * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAppVersion * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAppVersion * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAppVersion * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_version )(
+ IAppVersion * This,
+ /* [retval][out] */ BSTR *__MIDL__IAppVersion0000);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCount )(
+ IAppVersion * This,
+ /* [retval][out] */ long *count);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_package )(
+ IAppVersion * This,
+ /* [in] */ long index,
+ /* [retval][out] */ IDispatch **package);
+
+ END_INTERFACE
+ } IAppVersionVtbl;
+
+ interface IAppVersion
+ {
+ CONST_VTBL struct IAppVersionVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAppVersion_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAppVersion_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAppVersion_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAppVersion_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAppVersion_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAppVersion_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAppVersion_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAppVersion_get_version(This,__MIDL__IAppVersion0000) \
+ ( (This)->lpVtbl -> get_version(This,__MIDL__IAppVersion0000) )
+
+#define IAppVersion_get_packageCount(This,count) \
+ ( (This)->lpVtbl -> get_packageCount(This,count) )
+
+#define IAppVersion_get_package(This,index,package) \
+ ( (This)->lpVtbl -> get_package(This,index,package) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAppVersion_INTERFACE_DEFINED__ */
+
+
+#ifndef __IPackage_INTERFACE_DEFINED__
+#define __IPackage_INTERFACE_DEFINED__
+
+/* interface IPackage */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IPackage;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("DCAB8386-4F03-4dbd-A366-D90BC9F68DE6")
+ IPackage : public IDispatch
+ {
+ public:
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE get(
+ /* [in] */ BSTR dir) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isAvailable(
+ /* [retval][out] */ VARIANT_BOOL *__MIDL__IPackage0000) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_filename(
+ /* [retval][out] */ BSTR *__MIDL__IPackage0001) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IPackageVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IPackage * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IPackage * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IPackage * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IPackage * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IPackage * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IPackage * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IPackage * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *get )(
+ IPackage * This,
+ /* [in] */ BSTR dir);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAvailable )(
+ IPackage * This,
+ /* [retval][out] */ VARIANT_BOOL *__MIDL__IPackage0000);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_filename )(
+ IPackage * This,
+ /* [retval][out] */ BSTR *__MIDL__IPackage0001);
+
+ END_INTERFACE
+ } IPackageVtbl;
+
+ interface IPackage
+ {
+ CONST_VTBL struct IPackageVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IPackage_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IPackage_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IPackage_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IPackage_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IPackage_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IPackage_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IPackage_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IPackage_get(This,dir) \
+ ( (This)->lpVtbl -> get(This,dir) )
+
+#define IPackage_get_isAvailable(This,__MIDL__IPackage0000) \
+ ( (This)->lpVtbl -> get_isAvailable(This,__MIDL__IPackage0000) )
+
+#define IPackage_get_filename(This,__MIDL__IPackage0001) \
+ ( (This)->lpVtbl -> get_filename(This,__MIDL__IPackage0001) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IPackage_INTERFACE_DEFINED__ */
+
+
+#ifndef __ICurrentState_INTERFACE_DEFINED__
+#define __ICurrentState_INTERFACE_DEFINED__
+
+/* interface ICurrentState */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_ICurrentState;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("247954F9-9EDC-4E68-8CC3-150C2B89EADF")
+ ICurrentState : public IDispatch
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_stateValue(
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0000) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_availableVersion(
+ /* [retval][out] */ BSTR *__MIDL__ICurrentState0001) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_bytesDownloaded(
+ /* [retval][out] */ ULONG *__MIDL__ICurrentState0002) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_totalBytesToDownload(
+ /* [retval][out] */ ULONG *__MIDL__ICurrentState0003) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_downloadTimeRemainingMs(
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0004) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nextRetryTime(
+ /* [retval][out] */ ULONGLONG *__MIDL__ICurrentState0005) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_installProgress(
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0006) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_installTimeRemainingMs(
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0007) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isCanceled(
+ /* [retval][out] */ VARIANT_BOOL *is_canceled) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_errorCode(
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0008) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extraCode1(
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0009) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_completionMessage(
+ /* [retval][out] */ BSTR *__MIDL__ICurrentState0010) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_installerResultCode(
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0011) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_installerResultExtraCode1(
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0012) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_postInstallLaunchCommandLine(
+ /* [retval][out] */ BSTR *__MIDL__ICurrentState0013) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_postInstallUrl(
+ /* [retval][out] */ BSTR *__MIDL__ICurrentState0014) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_postInstallAction(
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0015) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ICurrentStateVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ICurrentState * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ICurrentState * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ICurrentState * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ICurrentState * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ICurrentState * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ICurrentState * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ICurrentState * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_stateValue )(
+ ICurrentState * This,
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0000);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_availableVersion )(
+ ICurrentState * This,
+ /* [retval][out] */ BSTR *__MIDL__ICurrentState0001);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_bytesDownloaded )(
+ ICurrentState * This,
+ /* [retval][out] */ ULONG *__MIDL__ICurrentState0002);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_totalBytesToDownload )(
+ ICurrentState * This,
+ /* [retval][out] */ ULONG *__MIDL__ICurrentState0003);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_downloadTimeRemainingMs )(
+ ICurrentState * This,
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0004);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextRetryTime )(
+ ICurrentState * This,
+ /* [retval][out] */ ULONGLONG *__MIDL__ICurrentState0005);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installProgress )(
+ ICurrentState * This,
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0006);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installTimeRemainingMs )(
+ ICurrentState * This,
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0007);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCanceled )(
+ ICurrentState * This,
+ /* [retval][out] */ VARIANT_BOOL *is_canceled);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_errorCode )(
+ ICurrentState * This,
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0008);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extraCode1 )(
+ ICurrentState * This,
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0009);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_completionMessage )(
+ ICurrentState * This,
+ /* [retval][out] */ BSTR *__MIDL__ICurrentState0010);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installerResultCode )(
+ ICurrentState * This,
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0011);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installerResultExtraCode1 )(
+ ICurrentState * This,
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0012);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallLaunchCommandLine )(
+ ICurrentState * This,
+ /* [retval][out] */ BSTR *__MIDL__ICurrentState0013);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallUrl )(
+ ICurrentState * This,
+ /* [retval][out] */ BSTR *__MIDL__ICurrentState0014);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallAction )(
+ ICurrentState * This,
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0015);
+
+ END_INTERFACE
+ } ICurrentStateVtbl;
+
+ interface ICurrentState
+ {
+ CONST_VTBL struct ICurrentStateVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ICurrentState_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ICurrentState_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ICurrentState_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ICurrentState_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define ICurrentState_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define ICurrentState_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define ICurrentState_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define ICurrentState_get_stateValue(This,__MIDL__ICurrentState0000) \
+ ( (This)->lpVtbl -> get_stateValue(This,__MIDL__ICurrentState0000) )
+
+#define ICurrentState_get_availableVersion(This,__MIDL__ICurrentState0001) \
+ ( (This)->lpVtbl -> get_availableVersion(This,__MIDL__ICurrentState0001) )
+
+#define ICurrentState_get_bytesDownloaded(This,__MIDL__ICurrentState0002) \
+ ( (This)->lpVtbl -> get_bytesDownloaded(This,__MIDL__ICurrentState0002) )
+
+#define ICurrentState_get_totalBytesToDownload(This,__MIDL__ICurrentState0003) \
+ ( (This)->lpVtbl -> get_totalBytesToDownload(This,__MIDL__ICurrentState0003) )
+
+#define ICurrentState_get_downloadTimeRemainingMs(This,__MIDL__ICurrentState0004) \
+ ( (This)->lpVtbl -> get_downloadTimeRemainingMs(This,__MIDL__ICurrentState0004) )
+
+#define ICurrentState_get_nextRetryTime(This,__MIDL__ICurrentState0005) \
+ ( (This)->lpVtbl -> get_nextRetryTime(This,__MIDL__ICurrentState0005) )
+
+#define ICurrentState_get_installProgress(This,__MIDL__ICurrentState0006) \
+ ( (This)->lpVtbl -> get_installProgress(This,__MIDL__ICurrentState0006) )
+
+#define ICurrentState_get_installTimeRemainingMs(This,__MIDL__ICurrentState0007) \
+ ( (This)->lpVtbl -> get_installTimeRemainingMs(This,__MIDL__ICurrentState0007) )
+
+#define ICurrentState_get_isCanceled(This,is_canceled) \
+ ( (This)->lpVtbl -> get_isCanceled(This,is_canceled) )
+
+#define ICurrentState_get_errorCode(This,__MIDL__ICurrentState0008) \
+ ( (This)->lpVtbl -> get_errorCode(This,__MIDL__ICurrentState0008) )
+
+#define ICurrentState_get_extraCode1(This,__MIDL__ICurrentState0009) \
+ ( (This)->lpVtbl -> get_extraCode1(This,__MIDL__ICurrentState0009) )
+
+#define ICurrentState_get_completionMessage(This,__MIDL__ICurrentState0010) \
+ ( (This)->lpVtbl -> get_completionMessage(This,__MIDL__ICurrentState0010) )
+
+#define ICurrentState_get_installerResultCode(This,__MIDL__ICurrentState0011) \
+ ( (This)->lpVtbl -> get_installerResultCode(This,__MIDL__ICurrentState0011) )
+
+#define ICurrentState_get_installerResultExtraCode1(This,__MIDL__ICurrentState0012) \
+ ( (This)->lpVtbl -> get_installerResultExtraCode1(This,__MIDL__ICurrentState0012) )
+
+#define ICurrentState_get_postInstallLaunchCommandLine(This,__MIDL__ICurrentState0013) \
+ ( (This)->lpVtbl -> get_postInstallLaunchCommandLine(This,__MIDL__ICurrentState0013) )
+
+#define ICurrentState_get_postInstallUrl(This,__MIDL__ICurrentState0014) \
+ ( (This)->lpVtbl -> get_postInstallUrl(This,__MIDL__ICurrentState0014) )
+
+#define ICurrentState_get_postInstallAction(This,__MIDL__ICurrentState0015) \
+ ( (This)->lpVtbl -> get_postInstallAction(This,__MIDL__ICurrentState0015) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ICurrentState_INTERFACE_DEFINED__ */
+
+
+#ifndef __IRegistrationUpdateHook_INTERFACE_DEFINED__
+#define __IRegistrationUpdateHook_INTERFACE_DEFINED__
+
+/* interface IRegistrationUpdateHook */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IRegistrationUpdateHook;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("4E223325-C16B-4eeb-AEDC-19AA99A237FA")
+ IRegistrationUpdateHook : public IDispatch
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE UpdateRegistry(
+ /* [in] */ BSTR app_id,
+ /* [in] */ VARIANT_BOOL is_machine) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IRegistrationUpdateHookVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IRegistrationUpdateHook * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IRegistrationUpdateHook * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IRegistrationUpdateHook * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IRegistrationUpdateHook * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IRegistrationUpdateHook * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IRegistrationUpdateHook * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IRegistrationUpdateHook * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ HRESULT ( STDMETHODCALLTYPE *UpdateRegistry )(
+ IRegistrationUpdateHook * This,
+ /* [in] */ BSTR app_id,
+ /* [in] */ VARIANT_BOOL is_machine);
+
+ END_INTERFACE
+ } IRegistrationUpdateHookVtbl;
+
+ interface IRegistrationUpdateHook
+ {
+ CONST_VTBL struct IRegistrationUpdateHookVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IRegistrationUpdateHook_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IRegistrationUpdateHook_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IRegistrationUpdateHook_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IRegistrationUpdateHook_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IRegistrationUpdateHook_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IRegistrationUpdateHook_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IRegistrationUpdateHook_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IRegistrationUpdateHook_UpdateRegistry(This,app_id,is_machine) \
+ ( (This)->lpVtbl -> UpdateRegistry(This,app_id,is_machine) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IRegistrationUpdateHook_INTERFACE_DEFINED__ */
+
+
+#ifndef __ICredentialDialog_INTERFACE_DEFINED__
+#define __ICredentialDialog_INTERFACE_DEFINED__
+
+/* interface ICredentialDialog */
+/* [unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ICredentialDialog;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("b3a47570-0a85-4aea-8270-529d47899603")
+ ICredentialDialog : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE QueryUserForCredentials(
+ /* [in] */ ULONG_PTR owner_hwnd,
+ /* [in] */ BSTR server,
+ /* [in] */ BSTR message,
+ /* [out] */ BSTR *username,
+ /* [out] */ BSTR *password) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ICredentialDialogVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ICredentialDialog * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ICredentialDialog * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ICredentialDialog * This);
+
+ HRESULT ( STDMETHODCALLTYPE *QueryUserForCredentials )(
+ ICredentialDialog * This,
+ /* [in] */ ULONG_PTR owner_hwnd,
+ /* [in] */ BSTR server,
+ /* [in] */ BSTR message,
+ /* [out] */ BSTR *username,
+ /* [out] */ BSTR *password);
+
+ END_INTERFACE
+ } ICredentialDialogVtbl;
+
+ interface ICredentialDialog
+ {
+ CONST_VTBL struct ICredentialDialogVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ICredentialDialog_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ICredentialDialog_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ICredentialDialog_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ICredentialDialog_QueryUserForCredentials(This,owner_hwnd,server,message,username,password) \
+ ( (This)->lpVtbl -> QueryUserForCredentials(This,owner_hwnd,server,message,username,password) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ICredentialDialog_INTERFACE_DEFINED__ */
+
+
+#ifndef __IGoogleUpdate3Web_INTERFACE_DEFINED__
+#define __IGoogleUpdate3Web_INTERFACE_DEFINED__
+
+/* interface IGoogleUpdate3Web */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IGoogleUpdate3Web;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("494B20CF-282E-4BDD-9F5D-B70CB09D351E")
+ IGoogleUpdate3Web : public IDispatch
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE createAppBundleWeb(
+ /* [retval][out] */ IDispatch **app_bundle_web) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IGoogleUpdate3WebVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IGoogleUpdate3Web * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IGoogleUpdate3Web * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IGoogleUpdate3Web * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IGoogleUpdate3Web * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IGoogleUpdate3Web * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IGoogleUpdate3Web * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IGoogleUpdate3Web * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ HRESULT ( STDMETHODCALLTYPE *createAppBundleWeb )(
+ IGoogleUpdate3Web * This,
+ /* [retval][out] */ IDispatch **app_bundle_web);
+
+ END_INTERFACE
+ } IGoogleUpdate3WebVtbl;
+
+ interface IGoogleUpdate3Web
+ {
+ CONST_VTBL struct IGoogleUpdate3WebVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IGoogleUpdate3Web_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IGoogleUpdate3Web_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IGoogleUpdate3Web_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IGoogleUpdate3Web_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IGoogleUpdate3Web_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IGoogleUpdate3Web_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IGoogleUpdate3Web_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IGoogleUpdate3Web_createAppBundleWeb(This,app_bundle_web) \
+ ( (This)->lpVtbl -> createAppBundleWeb(This,app_bundle_web) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IGoogleUpdate3Web_INTERFACE_DEFINED__ */
+
+
+#ifndef __IGoogleUpdate3WebSecurity_INTERFACE_DEFINED__
+#define __IGoogleUpdate3WebSecurity_INTERFACE_DEFINED__
+
+/* interface IGoogleUpdate3WebSecurity */
+/* [unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_IGoogleUpdate3WebSecurity;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("2D363682-561D-4c3a-81C6-F2F82107562A")
+ IGoogleUpdate3WebSecurity : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE setOriginURL(
+ /* [in] */ BSTR origin_url) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IGoogleUpdate3WebSecurityVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IGoogleUpdate3WebSecurity * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IGoogleUpdate3WebSecurity * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IGoogleUpdate3WebSecurity * This);
+
+ HRESULT ( STDMETHODCALLTYPE *setOriginURL )(
+ IGoogleUpdate3WebSecurity * This,
+ /* [in] */ BSTR origin_url);
+
+ END_INTERFACE
+ } IGoogleUpdate3WebSecurityVtbl;
+
+ interface IGoogleUpdate3WebSecurity
+ {
+ CONST_VTBL struct IGoogleUpdate3WebSecurityVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IGoogleUpdate3WebSecurity_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IGoogleUpdate3WebSecurity_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IGoogleUpdate3WebSecurity_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IGoogleUpdate3WebSecurity_setOriginURL(This,origin_url) \
+ ( (This)->lpVtbl -> setOriginURL(This,origin_url) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IGoogleUpdate3WebSecurity_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAppBundleWeb_INTERFACE_DEFINED__
+#define __IAppBundleWeb_INTERFACE_DEFINED__
+
+/* interface IAppBundleWeb */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IAppBundleWeb;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("DD42475D-6D46-496a-924E-BD5630B4CBBA")
+ IAppBundleWeb : public IDispatch
+ {
+ public:
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE createApp(
+ /* [in] */ BSTR app_guid,
+ /* [in] */ BSTR brand_code,
+ /* [in] */ BSTR language,
+ /* [in] */ BSTR ap) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE createInstalledApp(
+ /* [in] */ BSTR app_id) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE createAllInstalledApps( void) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_displayLanguage(
+ /* [retval][out] */ BSTR *__MIDL__IAppBundleWeb0000) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_displayLanguage(
+ /* [in] */ BSTR __MIDL__IAppBundleWeb0001) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_parentHWND(
+ /* [in] */ ULONG_PTR hwnd) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_length(
+ /* [retval][out] */ int *index) = 0;
+
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_appWeb(
+ /* [in] */ int index,
+ /* [retval][out] */ IDispatch **app_web) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE initialize( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE checkForUpdate( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE download( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE install( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE pause( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE resume( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE cancel( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE downloadPackage(
+ /* [in] */ BSTR app_id,
+ /* [in] */ BSTR package_name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_currentState(
+ /* [retval][out] */ VARIANT *current_state) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAppBundleWebVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAppBundleWeb * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAppBundleWeb * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAppBundleWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAppBundleWeb * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAppBundleWeb * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAppBundleWeb * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAppBundleWeb * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *createApp )(
+ IAppBundleWeb * This,
+ /* [in] */ BSTR app_guid,
+ /* [in] */ BSTR brand_code,
+ /* [in] */ BSTR language,
+ /* [in] */ BSTR ap);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *createInstalledApp )(
+ IAppBundleWeb * This,
+ /* [in] */ BSTR app_id);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *createAllInstalledApps )(
+ IAppBundleWeb * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayLanguage )(
+ IAppBundleWeb * This,
+ /* [retval][out] */ BSTR *__MIDL__IAppBundleWeb0000);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayLanguage )(
+ IAppBundleWeb * This,
+ /* [in] */ BSTR __MIDL__IAppBundleWeb0001);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_parentHWND )(
+ IAppBundleWeb * This,
+ /* [in] */ ULONG_PTR hwnd);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )(
+ IAppBundleWeb * This,
+ /* [retval][out] */ int *index);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_appWeb )(
+ IAppBundleWeb * This,
+ /* [in] */ int index,
+ /* [retval][out] */ IDispatch **app_web);
+
+ HRESULT ( STDMETHODCALLTYPE *initialize )(
+ IAppBundleWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *checkForUpdate )(
+ IAppBundleWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *download )(
+ IAppBundleWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *install )(
+ IAppBundleWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *pause )(
+ IAppBundleWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *resume )(
+ IAppBundleWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *cancel )(
+ IAppBundleWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *downloadPackage )(
+ IAppBundleWeb * This,
+ /* [in] */ BSTR app_id,
+ /* [in] */ BSTR package_name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )(
+ IAppBundleWeb * This,
+ /* [retval][out] */ VARIANT *current_state);
+
+ END_INTERFACE
+ } IAppBundleWebVtbl;
+
+ interface IAppBundleWeb
+ {
+ CONST_VTBL struct IAppBundleWebVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAppBundleWeb_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAppBundleWeb_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAppBundleWeb_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAppBundleWeb_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAppBundleWeb_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAppBundleWeb_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAppBundleWeb_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAppBundleWeb_createApp(This,app_guid,brand_code,language,ap) \
+ ( (This)->lpVtbl -> createApp(This,app_guid,brand_code,language,ap) )
+
+#define IAppBundleWeb_createInstalledApp(This,app_id) \
+ ( (This)->lpVtbl -> createInstalledApp(This,app_id) )
+
+#define IAppBundleWeb_createAllInstalledApps(This) \
+ ( (This)->lpVtbl -> createAllInstalledApps(This) )
+
+#define IAppBundleWeb_get_displayLanguage(This,__MIDL__IAppBundleWeb0000) \
+ ( (This)->lpVtbl -> get_displayLanguage(This,__MIDL__IAppBundleWeb0000) )
+
+#define IAppBundleWeb_put_displayLanguage(This,__MIDL__IAppBundleWeb0001) \
+ ( (This)->lpVtbl -> put_displayLanguage(This,__MIDL__IAppBundleWeb0001) )
+
+#define IAppBundleWeb_put_parentHWND(This,hwnd) \
+ ( (This)->lpVtbl -> put_parentHWND(This,hwnd) )
+
+#define IAppBundleWeb_get_length(This,index) \
+ ( (This)->lpVtbl -> get_length(This,index) )
+
+#define IAppBundleWeb_get_appWeb(This,index,app_web) \
+ ( (This)->lpVtbl -> get_appWeb(This,index,app_web) )
+
+#define IAppBundleWeb_initialize(This) \
+ ( (This)->lpVtbl -> initialize(This) )
+
+#define IAppBundleWeb_checkForUpdate(This) \
+ ( (This)->lpVtbl -> checkForUpdate(This) )
+
+#define IAppBundleWeb_download(This) \
+ ( (This)->lpVtbl -> download(This) )
+
+#define IAppBundleWeb_install(This) \
+ ( (This)->lpVtbl -> install(This) )
+
+#define IAppBundleWeb_pause(This) \
+ ( (This)->lpVtbl -> pause(This) )
+
+#define IAppBundleWeb_resume(This) \
+ ( (This)->lpVtbl -> resume(This) )
+
+#define IAppBundleWeb_cancel(This) \
+ ( (This)->lpVtbl -> cancel(This) )
+
+#define IAppBundleWeb_downloadPackage(This,app_id,package_name) \
+ ( (This)->lpVtbl -> downloadPackage(This,app_id,package_name) )
+
+#define IAppBundleWeb_get_currentState(This,current_state) \
+ ( (This)->lpVtbl -> get_currentState(This,current_state) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAppBundleWeb_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAppWeb_INTERFACE_DEFINED__
+#define __IAppWeb_INTERFACE_DEFINED__
+
+/* interface IAppWeb */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IAppWeb;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("18D0F672-18B4-48e6-AD36-6E6BF01DBBC4")
+ IAppWeb : public IDispatch
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appId(
+ /* [retval][out] */ BSTR *__MIDL__IAppWeb0000) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_currentVersionWeb(
+ /* [retval][out] */ IDispatch **current) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nextVersionWeb(
+ /* [retval][out] */ IDispatch **next) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_command(
+ /* [in] */ BSTR command_id,
+ /* [retval][out] */ IDispatch **command) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE cancel( void) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_currentState(
+ /* [retval][out] */ IDispatch **current_state) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE launch( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE uninstall( void) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAppWebVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAppWeb * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAppWeb * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAppWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAppWeb * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAppWeb * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAppWeb * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAppWeb * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )(
+ IAppWeb * This,
+ /* [retval][out] */ BSTR *__MIDL__IAppWeb0000);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentVersionWeb )(
+ IAppWeb * This,
+ /* [retval][out] */ IDispatch **current);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersionWeb )(
+ IAppWeb * This,
+ /* [retval][out] */ IDispatch **next);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_command )(
+ IAppWeb * This,
+ /* [in] */ BSTR command_id,
+ /* [retval][out] */ IDispatch **command);
+
+ HRESULT ( STDMETHODCALLTYPE *cancel )(
+ IAppWeb * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )(
+ IAppWeb * This,
+ /* [retval][out] */ IDispatch **current_state);
+
+ HRESULT ( STDMETHODCALLTYPE *launch )(
+ IAppWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *uninstall )(
+ IAppWeb * This);
+
+ END_INTERFACE
+ } IAppWebVtbl;
+
+ interface IAppWeb
+ {
+ CONST_VTBL struct IAppWebVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAppWeb_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAppWeb_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAppWeb_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAppWeb_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAppWeb_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAppWeb_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAppWeb_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAppWeb_get_appId(This,__MIDL__IAppWeb0000) \
+ ( (This)->lpVtbl -> get_appId(This,__MIDL__IAppWeb0000) )
+
+#define IAppWeb_get_currentVersionWeb(This,current) \
+ ( (This)->lpVtbl -> get_currentVersionWeb(This,current) )
+
+#define IAppWeb_get_nextVersionWeb(This,next) \
+ ( (This)->lpVtbl -> get_nextVersionWeb(This,next) )
+
+#define IAppWeb_get_command(This,command_id,command) \
+ ( (This)->lpVtbl -> get_command(This,command_id,command) )
+
+#define IAppWeb_cancel(This) \
+ ( (This)->lpVtbl -> cancel(This) )
+
+#define IAppWeb_get_currentState(This,current_state) \
+ ( (This)->lpVtbl -> get_currentState(This,current_state) )
+
+#define IAppWeb_launch(This) \
+ ( (This)->lpVtbl -> launch(This) )
+
+#define IAppWeb_uninstall(This) \
+ ( (This)->lpVtbl -> uninstall(This) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAppWeb_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAppCommandWeb_INTERFACE_DEFINED__
+#define __IAppCommandWeb_INTERFACE_DEFINED__
+
+/* interface IAppCommandWeb */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IAppCommandWeb;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("68D6C2BD-712E-4c96-93E8-49CB8A9AAEED")
+ IAppCommandWeb : public IDispatch
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_status(
+ /* [retval][out] */ UINT *__MIDL__IAppCommandWeb0000) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_exitCode(
+ /* [retval][out] */ DWORD *__MIDL__IAppCommandWeb0001) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE execute(
+ /* [optional][in] */ VARIANT arg1,
+ /* [optional][in] */ VARIANT arg2,
+ /* [optional][in] */ VARIANT arg3,
+ /* [optional][in] */ VARIANT arg4,
+ /* [optional][in] */ VARIANT arg5,
+ /* [optional][in] */ VARIANT arg6,
+ /* [optional][in] */ VARIANT arg7,
+ /* [optional][in] */ VARIANT arg8,
+ /* [optional][in] */ VARIANT arg9) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAppCommandWebVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAppCommandWeb * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAppCommandWeb * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAppCommandWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAppCommandWeb * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAppCommandWeb * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAppCommandWeb * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAppCommandWeb * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_status )(
+ IAppCommandWeb * This,
+ /* [retval][out] */ UINT *__MIDL__IAppCommandWeb0000);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_exitCode )(
+ IAppCommandWeb * This,
+ /* [retval][out] */ DWORD *__MIDL__IAppCommandWeb0001);
+
+ HRESULT ( STDMETHODCALLTYPE *execute )(
+ IAppCommandWeb * This,
+ /* [optional][in] */ VARIANT arg1,
+ /* [optional][in] */ VARIANT arg2,
+ /* [optional][in] */ VARIANT arg3,
+ /* [optional][in] */ VARIANT arg4,
+ /* [optional][in] */ VARIANT arg5,
+ /* [optional][in] */ VARIANT arg6,
+ /* [optional][in] */ VARIANT arg7,
+ /* [optional][in] */ VARIANT arg8,
+ /* [optional][in] */ VARIANT arg9);
+
+ END_INTERFACE
+ } IAppCommandWebVtbl;
+
+ interface IAppCommandWeb
+ {
+ CONST_VTBL struct IAppCommandWebVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAppCommandWeb_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAppCommandWeb_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAppCommandWeb_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAppCommandWeb_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAppCommandWeb_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAppCommandWeb_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAppCommandWeb_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAppCommandWeb_get_status(This,__MIDL__IAppCommandWeb0000) \
+ ( (This)->lpVtbl -> get_status(This,__MIDL__IAppCommandWeb0000) )
+
+#define IAppCommandWeb_get_exitCode(This,__MIDL__IAppCommandWeb0001) \
+ ( (This)->lpVtbl -> get_exitCode(This,__MIDL__IAppCommandWeb0001) )
+
+#define IAppCommandWeb_execute(This,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) \
+ ( (This)->lpVtbl -> execute(This,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAppCommandWeb_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAppVersionWeb_INTERFACE_DEFINED__
+#define __IAppVersionWeb_INTERFACE_DEFINED__
+
+/* interface IAppVersionWeb */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IAppVersionWeb;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("0CD01D1E-4A1C-489d-93B9-9B6672877C57")
+ IAppVersionWeb : public IDispatch
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_version(
+ /* [retval][out] */ BSTR *__MIDL__IAppVersionWeb0000) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_packageCount(
+ /* [retval][out] */ long *count) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_packageWeb(
+ /* [in] */ long index,
+ /* [retval][out] */ IDispatch **package) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAppVersionWebVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAppVersionWeb * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAppVersionWeb * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAppVersionWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAppVersionWeb * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAppVersionWeb * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAppVersionWeb * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAppVersionWeb * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_version )(
+ IAppVersionWeb * This,
+ /* [retval][out] */ BSTR *__MIDL__IAppVersionWeb0000);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCount )(
+ IAppVersionWeb * This,
+ /* [retval][out] */ long *count);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageWeb )(
+ IAppVersionWeb * This,
+ /* [in] */ long index,
+ /* [retval][out] */ IDispatch **package);
+
+ END_INTERFACE
+ } IAppVersionWebVtbl;
+
+ interface IAppVersionWeb
+ {
+ CONST_VTBL struct IAppVersionWebVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAppVersionWeb_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAppVersionWeb_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAppVersionWeb_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAppVersionWeb_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAppVersionWeb_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAppVersionWeb_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAppVersionWeb_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAppVersionWeb_get_version(This,__MIDL__IAppVersionWeb0000) \
+ ( (This)->lpVtbl -> get_version(This,__MIDL__IAppVersionWeb0000) )
+
+#define IAppVersionWeb_get_packageCount(This,count) \
+ ( (This)->lpVtbl -> get_packageCount(This,count) )
+
+#define IAppVersionWeb_get_packageWeb(This,index,package) \
+ ( (This)->lpVtbl -> get_packageWeb(This,index,package) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAppVersionWeb_INTERFACE_DEFINED__ */
+
+
+#ifndef __ICoCreateAsyncStatus_INTERFACE_DEFINED__
+#define __ICoCreateAsyncStatus_INTERFACE_DEFINED__
+
+/* interface ICoCreateAsyncStatus */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_ICoCreateAsyncStatus;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("2E629606-312A-482f-9B12-2C4ABF6F0B6D")
+ ICoCreateAsyncStatus : public IDispatch
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isDone(
+ /* [retval][out] */ VARIANT_BOOL *is_done) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_completionHResult(
+ /* [retval][out] */ LONG *hr) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_createdInstance(
+ /* [retval][out] */ IDispatch **instance) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ICoCreateAsyncStatusVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ICoCreateAsyncStatus * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ICoCreateAsyncStatus * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ICoCreateAsyncStatus * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ICoCreateAsyncStatus * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ICoCreateAsyncStatus * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ICoCreateAsyncStatus * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ICoCreateAsyncStatus * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isDone )(
+ ICoCreateAsyncStatus * This,
+ /* [retval][out] */ VARIANT_BOOL *is_done);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_completionHResult )(
+ ICoCreateAsyncStatus * This,
+ /* [retval][out] */ LONG *hr);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_createdInstance )(
+ ICoCreateAsyncStatus * This,
+ /* [retval][out] */ IDispatch **instance);
+
+ END_INTERFACE
+ } ICoCreateAsyncStatusVtbl;
+
+ interface ICoCreateAsyncStatus
+ {
+ CONST_VTBL struct ICoCreateAsyncStatusVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ICoCreateAsyncStatus_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ICoCreateAsyncStatus_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ICoCreateAsyncStatus_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ICoCreateAsyncStatus_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define ICoCreateAsyncStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define ICoCreateAsyncStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define ICoCreateAsyncStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define ICoCreateAsyncStatus_get_isDone(This,is_done) \
+ ( (This)->lpVtbl -> get_isDone(This,is_done) )
+
+#define ICoCreateAsyncStatus_get_completionHResult(This,hr) \
+ ( (This)->lpVtbl -> get_completionHResult(This,hr) )
+
+#define ICoCreateAsyncStatus_get_createdInstance(This,instance) \
+ ( (This)->lpVtbl -> get_createdInstance(This,instance) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ICoCreateAsyncStatus_INTERFACE_DEFINED__ */
+
+
+#ifndef __ICoCreateAsync_INTERFACE_DEFINED__
+#define __ICoCreateAsync_INTERFACE_DEFINED__
+
+/* interface ICoCreateAsync */
+/* [unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ICoCreateAsync;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("DAB1D343-1B2A-47f9-B445-93DC50704BFE")
+ ICoCreateAsync : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE createOmahaMachineServerAsync(
+ /* [in] */ BSTR origin_url,
+ /* [in] */ BOOL create_elevated,
+ /* [retval][out] */ ICoCreateAsyncStatus **status) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ICoCreateAsyncVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ICoCreateAsync * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ICoCreateAsync * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ICoCreateAsync * This);
+
+ HRESULT ( STDMETHODCALLTYPE *createOmahaMachineServerAsync )(
+ ICoCreateAsync * This,
+ /* [in] */ BSTR origin_url,
+ /* [in] */ BOOL create_elevated,
+ /* [retval][out] */ ICoCreateAsyncStatus **status);
+
+ END_INTERFACE
+ } ICoCreateAsyncVtbl;
+
+ interface ICoCreateAsync
+ {
+ CONST_VTBL struct ICoCreateAsyncVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ICoCreateAsync_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ICoCreateAsync_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ICoCreateAsync_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ICoCreateAsync_createOmahaMachineServerAsync(This,origin_url,create_elevated,status) \
+ ( (This)->lpVtbl -> createOmahaMachineServerAsync(This,origin_url,create_elevated,status) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ICoCreateAsync_INTERFACE_DEFINED__ */
+
+
+#ifndef __IBrowserHttpRequest2_INTERFACE_DEFINED__
+#define __IBrowserHttpRequest2_INTERFACE_DEFINED__
+
+/* interface IBrowserHttpRequest2 */
+/* [unique][nonextensible][oleautomation][uuid][object] */
+
+
+EXTERN_C const IID IID_IBrowserHttpRequest2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("5B25A8DC-1780-4178-A629-6BE8B8DEFAA2")
+ IBrowserHttpRequest2 : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE Send(
+ /* [in] */ BSTR url,
+ /* [in] */ BSTR post_data,
+ /* [in] */ BSTR request_headers,
+ /* [in] */ VARIANT response_headers_needed,
+ /* [out] */ VARIANT *response_headers,
+ /* [out] */ DWORD *response_code,
+ /* [out] */ BSTR *cache_filename) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IBrowserHttpRequest2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IBrowserHttpRequest2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IBrowserHttpRequest2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IBrowserHttpRequest2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Send )(
+ IBrowserHttpRequest2 * This,
+ /* [in] */ BSTR url,
+ /* [in] */ BSTR post_data,
+ /* [in] */ BSTR request_headers,
+ /* [in] */ VARIANT response_headers_needed,
+ /* [out] */ VARIANT *response_headers,
+ /* [out] */ DWORD *response_code,
+ /* [out] */ BSTR *cache_filename);
+
+ END_INTERFACE
+ } IBrowserHttpRequest2Vtbl;
+
+ interface IBrowserHttpRequest2
+ {
+ CONST_VTBL struct IBrowserHttpRequest2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IBrowserHttpRequest2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IBrowserHttpRequest2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IBrowserHttpRequest2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IBrowserHttpRequest2_Send(This,url,post_data,request_headers,response_headers_needed,response_headers,response_code,cache_filename) \
+ ( (This)->lpVtbl -> Send(This,url,post_data,request_headers,response_headers_needed,response_headers,response_code,cache_filename) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IBrowserHttpRequest2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IProcessLauncher_INTERFACE_DEFINED__
+#define __IProcessLauncher_INTERFACE_DEFINED__
+
+/* interface IProcessLauncher */
+/* [unique][helpstring][uuid][oleautomation][object] */
+
+
+EXTERN_C const IID IID_IProcessLauncher;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("128C2DA6-2BC0-44c0-B3F6-4EC22E647964")
+ IProcessLauncher : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE LaunchCmdLine(
+ /* [string][in] */ const WCHAR *cmd_line) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE LaunchBrowser(
+ /* [in] */ DWORD browser_type,
+ /* [string][in] */ const WCHAR *url) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE LaunchCmdElevated(
+ /* [string][in] */ const WCHAR *app_guid,
+ /* [string][in] */ const WCHAR *cmd_id,
+ /* [in] */ DWORD caller_proc_id,
+ /* [out] */ ULONG_PTR *proc_handle) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IProcessLauncherVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IProcessLauncher * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IProcessLauncher * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IProcessLauncher * This);
+
+ HRESULT ( STDMETHODCALLTYPE *LaunchCmdLine )(
+ IProcessLauncher * This,
+ /* [string][in] */ const WCHAR *cmd_line);
+
+ HRESULT ( STDMETHODCALLTYPE *LaunchBrowser )(
+ IProcessLauncher * This,
+ /* [in] */ DWORD browser_type,
+ /* [string][in] */ const WCHAR *url);
+
+ HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )(
+ IProcessLauncher * This,
+ /* [string][in] */ const WCHAR *app_guid,
+ /* [string][in] */ const WCHAR *cmd_id,
+ /* [in] */ DWORD caller_proc_id,
+ /* [out] */ ULONG_PTR *proc_handle);
+
+ END_INTERFACE
+ } IProcessLauncherVtbl;
+
+ interface IProcessLauncher
+ {
+ CONST_VTBL struct IProcessLauncherVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IProcessLauncher_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IProcessLauncher_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IProcessLauncher_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IProcessLauncher_LaunchCmdLine(This,cmd_line) \
+ ( (This)->lpVtbl -> LaunchCmdLine(This,cmd_line) )
+
+#define IProcessLauncher_LaunchBrowser(This,browser_type,url) \
+ ( (This)->lpVtbl -> LaunchBrowser(This,browser_type,url) )
+
+#define IProcessLauncher_LaunchCmdElevated(This,app_guid,cmd_id,caller_proc_id,proc_handle) \
+ ( (This)->lpVtbl -> LaunchCmdElevated(This,app_guid,cmd_id,caller_proc_id,proc_handle) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IProcessLauncher_INTERFACE_DEFINED__ */
+
+
+#ifndef __IOneClickProcessLauncher_INTERFACE_DEFINED__
+#define __IOneClickProcessLauncher_INTERFACE_DEFINED__
+
+/* interface IOneClickProcessLauncher */
+/* [unique][helpstring][uuid][oleautomation][object] */
+
+
+EXTERN_C const IID IID_IOneClickProcessLauncher;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("5CCCB0EF-7073-4516-8028-4C628D0C8AAB")
+ IOneClickProcessLauncher : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE LaunchAppCommand(
+ /* [string][in] */ const WCHAR *app_guid,
+ /* [string][in] */ const WCHAR *cmd_id) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IOneClickProcessLauncherVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IOneClickProcessLauncher * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IOneClickProcessLauncher * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IOneClickProcessLauncher * This);
+
+ HRESULT ( STDMETHODCALLTYPE *LaunchAppCommand )(
+ IOneClickProcessLauncher * This,
+ /* [string][in] */ const WCHAR *app_guid,
+ /* [string][in] */ const WCHAR *cmd_id);
+
+ END_INTERFACE
+ } IOneClickProcessLauncherVtbl;
+
+ interface IOneClickProcessLauncher
+ {
+ CONST_VTBL struct IOneClickProcessLauncherVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IOneClickProcessLauncher_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IOneClickProcessLauncher_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IOneClickProcessLauncher_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IOneClickProcessLauncher_LaunchAppCommand(This,app_guid,cmd_id) \
+ ( (This)->lpVtbl -> LaunchAppCommand(This,app_guid,cmd_id) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IOneClickProcessLauncher_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_google_update_idl_0000_0020 */
+/* [local] */
+
+typedef /* [public][public] */
+enum __MIDL___MIDL_itf_google_update_idl_0000_0020_0001
+ {
+ COMPLETION_CODE_SUCCESS = 1,
+ COMPLETION_CODE_SUCCESS_CLOSE_UI = ( COMPLETION_CODE_SUCCESS + 1 ) ,
+ COMPLETION_CODE_ERROR = ( COMPLETION_CODE_SUCCESS_CLOSE_UI + 1 ) ,
+ COMPLETION_CODE_RESTART_ALL_BROWSERS = ( COMPLETION_CODE_ERROR + 1 ) ,
+ COMPLETION_CODE_REBOOT = ( COMPLETION_CODE_RESTART_ALL_BROWSERS + 1 ) ,
+ COMPLETION_CODE_RESTART_BROWSER = ( COMPLETION_CODE_REBOOT + 1 ) ,
+ COMPLETION_CODE_RESTART_ALL_BROWSERS_NOTICE_ONLY = ( COMPLETION_CODE_RESTART_BROWSER + 1 ) ,
+ COMPLETION_CODE_REBOOT_NOTICE_ONLY = ( COMPLETION_CODE_RESTART_ALL_BROWSERS_NOTICE_ONLY + 1 ) ,
+ COMPLETION_CODE_RESTART_BROWSER_NOTICE_ONLY = ( COMPLETION_CODE_REBOOT_NOTICE_ONLY + 1 ) ,
+ COMPLETION_CODE_RUN_COMMAND = ( COMPLETION_CODE_RESTART_BROWSER_NOTICE_ONLY + 1 )
+ } LegacyCompletionCodes;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_google_update_idl_0000_0020_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_google_update_idl_0000_0020_v0_0_s_ifspec;
+
+#ifndef __IProgressWndEvents_INTERFACE_DEFINED__
+#define __IProgressWndEvents_INTERFACE_DEFINED__
+
+/* interface IProgressWndEvents */
+/* [unique][helpstring][uuid][oleautomation][object] */
+
+
+EXTERN_C const IID IID_IProgressWndEvents;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("1C642CED-CA3B-4013-A9DF-CA6CE5FF6503")
+ IProgressWndEvents : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE DoClose( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DoPause( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DoResume( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DoRestartBrowsers( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DoReboot( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DoLaunchBrowser(
+ /* [string][in] */ const WCHAR *url) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IProgressWndEventsVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IProgressWndEvents * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IProgressWndEvents * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IProgressWndEvents * This);
+
+ HRESULT ( STDMETHODCALLTYPE *DoClose )(
+ IProgressWndEvents * This);
+
+ HRESULT ( STDMETHODCALLTYPE *DoPause )(
+ IProgressWndEvents * This);
+
+ HRESULT ( STDMETHODCALLTYPE *DoResume )(
+ IProgressWndEvents * This);
+
+ HRESULT ( STDMETHODCALLTYPE *DoRestartBrowsers )(
+ IProgressWndEvents * This);
+
+ HRESULT ( STDMETHODCALLTYPE *DoReboot )(
+ IProgressWndEvents * This);
+
+ HRESULT ( STDMETHODCALLTYPE *DoLaunchBrowser )(
+ IProgressWndEvents * This,
+ /* [string][in] */ const WCHAR *url);
+
+ END_INTERFACE
+ } IProgressWndEventsVtbl;
+
+ interface IProgressWndEvents
+ {
+ CONST_VTBL struct IProgressWndEventsVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IProgressWndEvents_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IProgressWndEvents_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IProgressWndEvents_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IProgressWndEvents_DoClose(This) \
+ ( (This)->lpVtbl -> DoClose(This) )
+
+#define IProgressWndEvents_DoPause(This) \
+ ( (This)->lpVtbl -> DoPause(This) )
+
+#define IProgressWndEvents_DoResume(This) \
+ ( (This)->lpVtbl -> DoResume(This) )
+
+#define IProgressWndEvents_DoRestartBrowsers(This) \
+ ( (This)->lpVtbl -> DoRestartBrowsers(This) )
+
+#define IProgressWndEvents_DoReboot(This) \
+ ( (This)->lpVtbl -> DoReboot(This) )
+
+#define IProgressWndEvents_DoLaunchBrowser(This,url) \
+ ( (This)->lpVtbl -> DoLaunchBrowser(This,url) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IProgressWndEvents_INTERFACE_DEFINED__ */
+
+
+#ifndef __IJobObserver_INTERFACE_DEFINED__
+#define __IJobObserver_INTERFACE_DEFINED__
+
+/* interface IJobObserver */
+/* [unique][helpstring][uuid][oleautomation][object] */
+
+
+EXTERN_C const IID IID_IJobObserver;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("49D7563B-2DDB-4831-88C8-768A53833837")
+ IJobObserver : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE OnShow( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnCheckingForUpdate( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnUpdateAvailable(
+ /* [string][in] */ const WCHAR *version_string) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnWaitingToDownload( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnDownloading(
+ /* [in] */ int time_remaining_ms,
+ /* [in] */ int pos) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnWaitingToInstall( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnInstalling( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnPause( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnComplete(
+ /* [in] */ LegacyCompletionCodes code,
+ /* [string][in] */ const WCHAR *completion_text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetEventSink(
+ /* [in] */ IProgressWndEvents *ui_sink) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IJobObserverVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IJobObserver * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IJobObserver * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IJobObserver * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OnShow )(
+ IJobObserver * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OnCheckingForUpdate )(
+ IJobObserver * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OnUpdateAvailable )(
+ IJobObserver * This,
+ /* [string][in] */ const WCHAR *version_string);
+
+ HRESULT ( STDMETHODCALLTYPE *OnWaitingToDownload )(
+ IJobObserver * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OnDownloading )(
+ IJobObserver * This,
+ /* [in] */ int time_remaining_ms,
+ /* [in] */ int pos);
+
+ HRESULT ( STDMETHODCALLTYPE *OnWaitingToInstall )(
+ IJobObserver * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OnInstalling )(
+ IJobObserver * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OnPause )(
+ IJobObserver * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OnComplete )(
+ IJobObserver * This,
+ /* [in] */ LegacyCompletionCodes code,
+ /* [string][in] */ const WCHAR *completion_text);
+
+ HRESULT ( STDMETHODCALLTYPE *SetEventSink )(
+ IJobObserver * This,
+ /* [in] */ IProgressWndEvents *ui_sink);
+
+ END_INTERFACE
+ } IJobObserverVtbl;
+
+ interface IJobObserver
+ {
+ CONST_VTBL struct IJobObserverVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IJobObserver_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IJobObserver_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IJobObserver_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IJobObserver_OnShow(This) \
+ ( (This)->lpVtbl -> OnShow(This) )
+
+#define IJobObserver_OnCheckingForUpdate(This) \
+ ( (This)->lpVtbl -> OnCheckingForUpdate(This) )
+
+#define IJobObserver_OnUpdateAvailable(This,version_string) \
+ ( (This)->lpVtbl -> OnUpdateAvailable(This,version_string) )
+
+#define IJobObserver_OnWaitingToDownload(This) \
+ ( (This)->lpVtbl -> OnWaitingToDownload(This) )
+
+#define IJobObserver_OnDownloading(This,time_remaining_ms,pos) \
+ ( (This)->lpVtbl -> OnDownloading(This,time_remaining_ms,pos) )
+
+#define IJobObserver_OnWaitingToInstall(This) \
+ ( (This)->lpVtbl -> OnWaitingToInstall(This) )
+
+#define IJobObserver_OnInstalling(This) \
+ ( (This)->lpVtbl -> OnInstalling(This) )
+
+#define IJobObserver_OnPause(This) \
+ ( (This)->lpVtbl -> OnPause(This) )
+
+#define IJobObserver_OnComplete(This,code,completion_text) \
+ ( (This)->lpVtbl -> OnComplete(This,code,completion_text) )
+
+#define IJobObserver_SetEventSink(This,ui_sink) \
+ ( (This)->lpVtbl -> SetEventSink(This,ui_sink) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IJobObserver_INTERFACE_DEFINED__ */
+
+
+#ifndef __IGoogleUpdate_INTERFACE_DEFINED__
+#define __IGoogleUpdate_INTERFACE_DEFINED__
+
+/* interface IGoogleUpdate */
+/* [unique][helpstring][uuid][oleautomation][object] */
+
+
+EXTERN_C const IID IID_IGoogleUpdate;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("31AC3F11-E5EA-4a85-8A3D-8E095A39C27B")
+ IGoogleUpdate : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE CheckForUpdate(
+ /* [string][in] */ const WCHAR *guid,
+ /* [in] */ IJobObserver *observer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Update(
+ /* [string][in] */ const WCHAR *guid,
+ /* [in] */ IJobObserver *observer) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IGoogleUpdateVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IGoogleUpdate * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IGoogleUpdate * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IGoogleUpdate * This);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckForUpdate )(
+ IGoogleUpdate * This,
+ /* [string][in] */ const WCHAR *guid,
+ /* [in] */ IJobObserver *observer);
+
+ HRESULT ( STDMETHODCALLTYPE *Update )(
+ IGoogleUpdate * This,
+ /* [string][in] */ const WCHAR *guid,
+ /* [in] */ IJobObserver *observer);
+
+ END_INTERFACE
+ } IGoogleUpdateVtbl;
+
+ interface IGoogleUpdate
+ {
+ CONST_VTBL struct IGoogleUpdateVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IGoogleUpdate_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IGoogleUpdate_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IGoogleUpdate_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IGoogleUpdate_CheckForUpdate(This,guid,observer) \
+ ( (This)->lpVtbl -> CheckForUpdate(This,guid,observer) )
+
+#define IGoogleUpdate_Update(This,guid,observer) \
+ ( (This)->lpVtbl -> Update(This,guid,observer) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IGoogleUpdate_INTERFACE_DEFINED__ */
+
+
+#ifndef __IGoogleUpdateCore_INTERFACE_DEFINED__
+#define __IGoogleUpdateCore_INTERFACE_DEFINED__
+
+/* interface IGoogleUpdateCore */
+/* [unique][helpstring][uuid][oleautomation][object] */
+
+
+EXTERN_C const IID IID_IGoogleUpdateCore;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("909489C2-85A6-4322-AA56-D25278649D67")
+ IGoogleUpdateCore : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE LaunchCmdElevated(
+ /* [string][in] */ const WCHAR *app_guid,
+ /* [string][in] */ const WCHAR *cmd_id,
+ /* [in] */ DWORD caller_proc_id,
+ /* [out] */ ULONG_PTR *proc_handle) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IGoogleUpdateCoreVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IGoogleUpdateCore * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IGoogleUpdateCore * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IGoogleUpdateCore * This);
+
+ HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )(
+ IGoogleUpdateCore * This,
+ /* [string][in] */ const WCHAR *app_guid,
+ /* [string][in] */ const WCHAR *cmd_id,
+ /* [in] */ DWORD caller_proc_id,
+ /* [out] */ ULONG_PTR *proc_handle);
+
+ END_INTERFACE
+ } IGoogleUpdateCoreVtbl;
+
+ interface IGoogleUpdateCore
+ {
+ CONST_VTBL struct IGoogleUpdateCoreVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IGoogleUpdateCore_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IGoogleUpdateCore_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IGoogleUpdateCore_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IGoogleUpdateCore_LaunchCmdElevated(This,app_guid,cmd_id,caller_proc_id,proc_handle) \
+ ( (This)->lpVtbl -> LaunchCmdElevated(This,app_guid,cmd_id,caller_proc_id,proc_handle) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IGoogleUpdateCore_INTERFACE_DEFINED__ */
+
+
+
+#ifndef __GoogleUpdate3Lib_LIBRARY_DEFINED__
+#define __GoogleUpdate3Lib_LIBRARY_DEFINED__
+
+/* library GoogleUpdate3Lib */
+/* [helpstring][version][uuid] */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+EXTERN_C const IID LIBID_GoogleUpdate3Lib;
+
+EXTERN_C const CLSID CLSID_GoogleUpdate3UserClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("022105BD-948A-40c9-AB42-A3300DDF097F")
+GoogleUpdate3UserClass;
+#endif
+
+EXTERN_C const CLSID CLSID_GoogleUpdate3ServiceClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("4EB61BAC-A3B6-4760-9581-655041EF4D69")
+GoogleUpdate3ServiceClass;
+#endif
+
+EXTERN_C const CLSID CLSID_GoogleUpdate3WebUserClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("22181302-A8A6-4f84-A541-E5CBFC70CC43")
+GoogleUpdate3WebUserClass;
+#endif
+
+EXTERN_C const CLSID CLSID_GoogleUpdate3WebMachineClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("8A1D4361-2C08-4700-A351-3EAA9CBFF5E4")
+GoogleUpdate3WebMachineClass;
+#endif
+
+EXTERN_C const CLSID CLSID_GoogleUpdate3WebServiceClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("534F5323-3569-4f42-919D-1E1CF93E5BF6")
+GoogleUpdate3WebServiceClass;
+#endif
+
+EXTERN_C const CLSID CLSID_GoogleUpdate3WebMachineFallbackClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("598FE0E5-E02D-465d-9A9D-37974A28FD42")
+GoogleUpdate3WebMachineFallbackClass;
+#endif
+
+EXTERN_C const CLSID CLSID_CurrentStateUserClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("E8CF3E55-F919-49d9-ABC0-948E6CB34B9F")
+CurrentStateUserClass;
+#endif
+
+EXTERN_C const CLSID CLSID_CurrentStateMachineClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("9D6AA569-9F30-41ad-885A-346685C74928")
+CurrentStateMachineClass;
+#endif
+
+EXTERN_C const CLSID CLSID_CoCreateAsyncClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("7DE94008-8AFD-4c70-9728-C6FBFFF6A73E")
+CoCreateAsyncClass;
+#endif
+
+EXTERN_C const CLSID CLSID_CredentialDialogUserClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("e67be843-bbbe-4484-95fb-05271ae86750")
+CredentialDialogUserClass;
+#endif
+
+EXTERN_C const CLSID CLSID_CredentialDialogMachineClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("25461599-633d-42b1-84fb-7cd68d026e53")
+CredentialDialogMachineClass;
+#endif
+
+EXTERN_C const CLSID CLSID_ProcessLauncherClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("ABC01078-F197-4b0b-ADBC-CFE684B39C82")
+ProcessLauncherClass;
+#endif
+
+EXTERN_C const CLSID CLSID_OneClickUserProcessLauncherClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("51F9E8EF-59D7-475b-A106-C7EA6F30C119")
+OneClickUserProcessLauncherClass;
+#endif
+
+EXTERN_C const CLSID CLSID_OneClickMachineProcessLauncherClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("AAD4AE2E-D834-46d4-8B09-490FAC9C722B")
+OneClickMachineProcessLauncherClass;
+#endif
+
+EXTERN_C const CLSID CLSID_OnDemandUserAppsClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("2F0E2680-9FF5-43c0-B76E-114A56E93598")
+OnDemandUserAppsClass;
+#endif
+
+EXTERN_C const CLSID CLSID_OnDemandMachineAppsClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("6F8BD55B-E83D-4a47-85BE-81FFA8057A69")
+OnDemandMachineAppsClass;
+#endif
+
+EXTERN_C const CLSID CLSID_OnDemandMachineAppsServiceClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("9465B4B4-5216-4042-9A2C-754D3BCDC410")
+OnDemandMachineAppsServiceClass;
+#endif
+
+EXTERN_C const CLSID CLSID_OnDemandMachineAppsFallbackClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("B3D28DBD-0DFA-40e4-8071-520767BADC7E")
+OnDemandMachineAppsFallbackClass;
+#endif
+
+EXTERN_C const CLSID CLSID_GoogleUpdateCoreClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("E225E692-4B47-4777-9BED-4FD7FE257F0E")
+GoogleUpdateCoreClass;
+#endif
+
+EXTERN_C const CLSID CLSID_GoogleUpdateCoreMachineClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("9B2340A0-4068-43d6-B404-32E27217859D")
+GoogleUpdateCoreMachineClass;
+#endif
+#endif /* __GoogleUpdate3Lib_LIBRARY_DEFINED__ */
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
+void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl.tlb b/chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl.tlb
new file mode 100644
index 00000000000..2fb7e2f66cc
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl.tlb
Binary files differ
diff --git a/chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl_i.c b/chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl_i.c
new file mode 100644
index 00000000000..6140d5ef417
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl_i.c
@@ -0,0 +1,211 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../google_update/google_update_idl.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif // !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IGoogleUpdate3,0x6DB17455,0x4E85,0x46e7,0x9D,0x23,0xE5,0x55,0xE4,0xB0,0x05,0xAF);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAppBundle,0xfe908cdd,0x22bb,0x472a,0x98,0x70,0x1a,0x03,0x90,0xe4,0x2f,0x36);
+
+
+MIDL_DEFINE_GUID(IID, IID_IApp,0x76F7B787,0xA67C,0x4c73,0x82,0xC7,0x31,0xF5,0xE3,0xAA,0xBC,0x5C);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAppCommand,0x4DE778FE,0xF195,0x4ee3,0x9D,0xAB,0xFE,0x44,0x6C,0x23,0x92,0x21);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAppVersion,0xBCDCB538,0x01C0,0x46d1,0xA6,0xA7,0x52,0xF4,0xD0,0x21,0xC2,0x72);
+
+
+MIDL_DEFINE_GUID(IID, IID_IPackage,0xDCAB8386,0x4F03,0x4dbd,0xA3,0x66,0xD9,0x0B,0xC9,0xF6,0x8D,0xE6);
+
+
+MIDL_DEFINE_GUID(IID, IID_ICurrentState,0x247954F9,0x9EDC,0x4E68,0x8C,0xC3,0x15,0x0C,0x2B,0x89,0xEA,0xDF);
+
+
+MIDL_DEFINE_GUID(IID, IID_IRegistrationUpdateHook,0x4E223325,0xC16B,0x4eeb,0xAE,0xDC,0x19,0xAA,0x99,0xA2,0x37,0xFA);
+
+
+MIDL_DEFINE_GUID(IID, IID_ICredentialDialog,0xb3a47570,0x0a85,0x4aea,0x82,0x70,0x52,0x9d,0x47,0x89,0x96,0x03);
+
+
+MIDL_DEFINE_GUID(IID, IID_IGoogleUpdate3Web,0x494B20CF,0x282E,0x4BDD,0x9F,0x5D,0xB7,0x0C,0xB0,0x9D,0x35,0x1E);
+
+
+MIDL_DEFINE_GUID(IID, IID_IGoogleUpdate3WebSecurity,0x2D363682,0x561D,0x4c3a,0x81,0xC6,0xF2,0xF8,0x21,0x07,0x56,0x2A);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAppBundleWeb,0xDD42475D,0x6D46,0x496a,0x92,0x4E,0xBD,0x56,0x30,0xB4,0xCB,0xBA);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAppWeb,0x18D0F672,0x18B4,0x48e6,0xAD,0x36,0x6E,0x6B,0xF0,0x1D,0xBB,0xC4);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAppCommandWeb,0x68D6C2BD,0x712E,0x4c96,0x93,0xE8,0x49,0xCB,0x8A,0x9A,0xAE,0xED);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAppVersionWeb,0x0CD01D1E,0x4A1C,0x489d,0x93,0xB9,0x9B,0x66,0x72,0x87,0x7C,0x57);
+
+
+MIDL_DEFINE_GUID(IID, IID_ICoCreateAsyncStatus,0x2E629606,0x312A,0x482f,0x9B,0x12,0x2C,0x4A,0xBF,0x6F,0x0B,0x6D);
+
+
+MIDL_DEFINE_GUID(IID, IID_ICoCreateAsync,0xDAB1D343,0x1B2A,0x47f9,0xB4,0x45,0x93,0xDC,0x50,0x70,0x4B,0xFE);
+
+
+MIDL_DEFINE_GUID(IID, IID_IBrowserHttpRequest2,0x5B25A8DC,0x1780,0x4178,0xA6,0x29,0x6B,0xE8,0xB8,0xDE,0xFA,0xA2);
+
+
+MIDL_DEFINE_GUID(IID, IID_IProcessLauncher,0x128C2DA6,0x2BC0,0x44c0,0xB3,0xF6,0x4E,0xC2,0x2E,0x64,0x79,0x64);
+
+
+MIDL_DEFINE_GUID(IID, IID_IOneClickProcessLauncher,0x5CCCB0EF,0x7073,0x4516,0x80,0x28,0x4C,0x62,0x8D,0x0C,0x8A,0xAB);
+
+
+MIDL_DEFINE_GUID(IID, IID_IProgressWndEvents,0x1C642CED,0xCA3B,0x4013,0xA9,0xDF,0xCA,0x6C,0xE5,0xFF,0x65,0x03);
+
+
+MIDL_DEFINE_GUID(IID, IID_IJobObserver,0x49D7563B,0x2DDB,0x4831,0x88,0xC8,0x76,0x8A,0x53,0x83,0x38,0x37);
+
+
+MIDL_DEFINE_GUID(IID, IID_IGoogleUpdate,0x31AC3F11,0xE5EA,0x4a85,0x8A,0x3D,0x8E,0x09,0x5A,0x39,0xC2,0x7B);
+
+
+MIDL_DEFINE_GUID(IID, IID_IGoogleUpdateCore,0x909489C2,0x85A6,0x4322,0xAA,0x56,0xD2,0x52,0x78,0x64,0x9D,0x67);
+
+
+MIDL_DEFINE_GUID(IID, LIBID_GoogleUpdate3Lib,0x655DD85A,0x3C0D,0x4674,0x9C,0x58,0xAF,0x71,0x68,0xC5,0x86,0x1E);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_GoogleUpdate3UserClass,0x022105BD,0x948A,0x40c9,0xAB,0x42,0xA3,0x30,0x0D,0xDF,0x09,0x7F);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_GoogleUpdate3ServiceClass,0x4EB61BAC,0xA3B6,0x4760,0x95,0x81,0x65,0x50,0x41,0xEF,0x4D,0x69);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_GoogleUpdate3WebUserClass,0x22181302,0xA8A6,0x4f84,0xA5,0x41,0xE5,0xCB,0xFC,0x70,0xCC,0x43);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_GoogleUpdate3WebMachineClass,0x8A1D4361,0x2C08,0x4700,0xA3,0x51,0x3E,0xAA,0x9C,0xBF,0xF5,0xE4);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_GoogleUpdate3WebServiceClass,0x534F5323,0x3569,0x4f42,0x91,0x9D,0x1E,0x1C,0xF9,0x3E,0x5B,0xF6);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_GoogleUpdate3WebMachineFallbackClass,0x598FE0E5,0xE02D,0x465d,0x9A,0x9D,0x37,0x97,0x4A,0x28,0xFD,0x42);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CurrentStateUserClass,0xE8CF3E55,0xF919,0x49d9,0xAB,0xC0,0x94,0x8E,0x6C,0xB3,0x4B,0x9F);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CurrentStateMachineClass,0x9D6AA569,0x9F30,0x41ad,0x88,0x5A,0x34,0x66,0x85,0xC7,0x49,0x28);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CoCreateAsyncClass,0x7DE94008,0x8AFD,0x4c70,0x97,0x28,0xC6,0xFB,0xFF,0xF6,0xA7,0x3E);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CredentialDialogUserClass,0xe67be843,0xbbbe,0x4484,0x95,0xfb,0x05,0x27,0x1a,0xe8,0x67,0x50);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CredentialDialogMachineClass,0x25461599,0x633d,0x42b1,0x84,0xfb,0x7c,0xd6,0x8d,0x02,0x6e,0x53);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_ProcessLauncherClass,0xABC01078,0xF197,0x4b0b,0xAD,0xBC,0xCF,0xE6,0x84,0xB3,0x9C,0x82);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_OneClickUserProcessLauncherClass,0x51F9E8EF,0x59D7,0x475b,0xA1,0x06,0xC7,0xEA,0x6F,0x30,0xC1,0x19);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_OneClickMachineProcessLauncherClass,0xAAD4AE2E,0xD834,0x46d4,0x8B,0x09,0x49,0x0F,0xAC,0x9C,0x72,0x2B);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_OnDemandUserAppsClass,0x2F0E2680,0x9FF5,0x43c0,0xB7,0x6E,0x11,0x4A,0x56,0xE9,0x35,0x98);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_OnDemandMachineAppsClass,0x6F8BD55B,0xE83D,0x4a47,0x85,0xBE,0x81,0xFF,0xA8,0x05,0x7A,0x69);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_OnDemandMachineAppsServiceClass,0x9465B4B4,0x5216,0x4042,0x9A,0x2C,0x75,0x4D,0x3B,0xCD,0xC4,0x10);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_OnDemandMachineAppsFallbackClass,0xB3D28DBD,0x0DFA,0x40e4,0x80,0x71,0x52,0x07,0x67,0xBA,0xDC,0x7E);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_GoogleUpdateCoreClass,0xE225E692,0x4B47,0x4777,0x9B,0xED,0x4F,0xD7,0xFE,0x25,0x7F,0x0E);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_GoogleUpdateCoreMachineClass,0x9B2340A0,0x4068,0x43d6,0xB4,0x04,0x32,0xE2,0x72,0x17,0x85,0x9D);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl_p.c b/chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl_p.c
new file mode 100644
index 00000000000..777fd9e7a16
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/google_update/x64/google_update_idl_p.c
@@ -0,0 +1,7602 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../google_update/google_update_idl.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "google_update_idl.h"
+
+#define TYPE_FORMAT_STRING_SIZE 1117
+#define PROC_FORMAT_STRING_SIZE 5147
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 2
+
+typedef struct _google_update_idl_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } google_update_idl_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _google_update_idl_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } google_update_idl_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _google_update_idl_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } google_update_idl_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const google_update_idl_MIDL_TYPE_FORMAT_STRING google_update_idl__MIDL_TypeFormatString;
+extern const google_update_idl_MIDL_PROC_FORMAT_STRING google_update_idl__MIDL_ProcFormatString;
+extern const google_update_idl_MIDL_EXPR_FORMAT_STRING google_update_idl__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IGoogleUpdate3_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IGoogleUpdate3_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAppBundle_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAppBundle_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IApp_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IApp_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAppCommand_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAppCommand_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAppVersion_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAppVersion_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IPackage_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IPackage_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO ICurrentState_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO ICurrentState_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IRegistrationUpdateHook_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IRegistrationUpdateHook_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO ICredentialDialog_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO ICredentialDialog_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IGoogleUpdate3Web_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IGoogleUpdate3Web_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IGoogleUpdate3WebSecurity_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IGoogleUpdate3WebSecurity_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAppBundleWeb_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAppBundleWeb_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAppWeb_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAppWeb_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAppCommandWeb_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAppCommandWeb_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAppVersionWeb_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAppVersionWeb_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO ICoCreateAsyncStatus_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO ICoCreateAsyncStatus_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO ICoCreateAsync_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO ICoCreateAsync_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IBrowserHttpRequest2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IBrowserHttpRequest2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IProcessLauncher_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IProcessLauncher_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IOneClickProcessLauncher_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IOneClickProcessLauncher_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IProgressWndEvents_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IProgressWndEvents_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IJobObserver_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IJobObserver_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IGoogleUpdate_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IGoogleUpdate_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IGoogleUpdateCore_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IGoogleUpdateCore_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const google_update_idl_MIDL_PROC_FORMAT_STRING google_update_idl__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_status */
+
+
+ /* Procedure get_stateValue */
+
+
+ /* Procedure get_Count */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x7 ), /* 7 */
+/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x24 ), /* 36 */
+/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IAppCommandWeb0000 */
+
+
+ /* Parameter __MIDL__ICurrentState0000 */
+
+
+ /* Parameter count */
+
+/* 26 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_Item */
+
+/* 38 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 40 */ NdrFcLong( 0x0 ), /* 0 */
+/* 44 */ NdrFcShort( 0x8 ), /* 8 */
+/* 46 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 48 */ NdrFcShort( 0x8 ), /* 8 */
+/* 50 */ NdrFcShort( 0x8 ), /* 8 */
+/* 52 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 54 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 64 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 68 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter bundle */
+
+/* 70 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 74 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+/* 76 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 78 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 80 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_createdInstance */
+
+
+ /* Procedure get_nextVersionWeb */
+
+
+ /* Procedure createAppBundle */
+
+/* 82 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 84 */ NdrFcLong( 0x0 ), /* 0 */
+/* 88 */ NdrFcShort( 0x9 ), /* 9 */
+/* 90 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 92 */ NdrFcShort( 0x0 ), /* 0 */
+/* 94 */ NdrFcShort( 0x8 ), /* 8 */
+/* 96 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 98 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 100 */ NdrFcShort( 0x0 ), /* 0 */
+/* 102 */ NdrFcShort( 0x0 ), /* 0 */
+/* 104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 106 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter instance */
+
+
+ /* Parameter next */
+
+
+ /* Parameter app_bundle */
+
+/* 108 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 110 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 112 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 114 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 116 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 118 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_version */
+
+
+ /* Procedure get_appId */
+
+
+ /* Procedure get_version */
+
+
+ /* Procedure get_displayName */
+
+/* 120 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 122 */ NdrFcLong( 0x0 ), /* 0 */
+/* 126 */ NdrFcShort( 0x7 ), /* 7 */
+/* 128 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 130 */ NdrFcShort( 0x0 ), /* 0 */
+/* 132 */ NdrFcShort( 0x8 ), /* 8 */
+/* 134 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 136 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 138 */ NdrFcShort( 0x1 ), /* 1 */
+/* 140 */ NdrFcShort( 0x0 ), /* 0 */
+/* 142 */ NdrFcShort( 0x0 ), /* 0 */
+/* 144 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IAppVersionWeb0000 */
+
+
+ /* Parameter __MIDL__IAppWeb0000 */
+
+
+ /* Parameter __MIDL__IAppVersion0000 */
+
+
+ /* Parameter __MIDL__IAppBundle0000 */
+
+/* 146 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 148 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 150 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 152 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 154 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 156 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure createInstalledApp */
+
+
+ /* Procedure put_displayName */
+
+/* 158 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 160 */ NdrFcLong( 0x0 ), /* 0 */
+/* 164 */ NdrFcShort( 0x8 ), /* 8 */
+/* 166 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 168 */ NdrFcShort( 0x0 ), /* 0 */
+/* 170 */ NdrFcShort( 0x8 ), /* 8 */
+/* 172 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 174 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 176 */ NdrFcShort( 0x0 ), /* 0 */
+/* 178 */ NdrFcShort( 0x1 ), /* 1 */
+/* 180 */ NdrFcShort( 0x0 ), /* 0 */
+/* 182 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_id */
+
+
+ /* Parameter __MIDL__IAppBundle0001 */
+
+/* 184 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 186 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 188 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 190 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 192 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 194 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_filename */
+
+
+ /* Procedure get_appId */
+
+
+ /* Procedure get_displayLanguage */
+
+/* 196 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 198 */ NdrFcLong( 0x0 ), /* 0 */
+/* 202 */ NdrFcShort( 0x9 ), /* 9 */
+/* 204 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 206 */ NdrFcShort( 0x0 ), /* 0 */
+/* 208 */ NdrFcShort( 0x8 ), /* 8 */
+/* 210 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 212 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 214 */ NdrFcShort( 0x1 ), /* 1 */
+/* 216 */ NdrFcShort( 0x0 ), /* 0 */
+/* 218 */ NdrFcShort( 0x0 ), /* 0 */
+/* 220 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IPackage0001 */
+
+
+ /* Parameter __MIDL__IApp0000 */
+
+
+ /* Parameter __MIDL__IAppBundle0002 */
+
+/* 222 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 224 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 226 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 228 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 230 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 232 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_displayLanguage */
+
+/* 234 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 236 */ NdrFcLong( 0x0 ), /* 0 */
+/* 240 */ NdrFcShort( 0xa ), /* 10 */
+/* 242 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 244 */ NdrFcShort( 0x0 ), /* 0 */
+/* 246 */ NdrFcShort( 0x8 ), /* 8 */
+/* 248 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 250 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 252 */ NdrFcShort( 0x0 ), /* 0 */
+/* 254 */ NdrFcShort( 0x1 ), /* 1 */
+/* 256 */ NdrFcShort( 0x0 ), /* 0 */
+/* 258 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IAppBundle0003 */
+
+/* 260 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 262 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 264 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 266 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 268 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 270 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_installSource */
+
+/* 272 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 274 */ NdrFcLong( 0x0 ), /* 0 */
+/* 278 */ NdrFcShort( 0xb ), /* 11 */
+/* 280 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 282 */ NdrFcShort( 0x0 ), /* 0 */
+/* 284 */ NdrFcShort( 0x8 ), /* 8 */
+/* 286 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 288 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 290 */ NdrFcShort( 0x1 ), /* 1 */
+/* 292 */ NdrFcShort( 0x0 ), /* 0 */
+/* 294 */ NdrFcShort( 0x0 ), /* 0 */
+/* 296 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IAppBundle0004 */
+
+/* 298 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 300 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 302 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 304 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 306 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 308 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_installSource */
+
+/* 310 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 312 */ NdrFcLong( 0x0 ), /* 0 */
+/* 316 */ NdrFcShort( 0xc ), /* 12 */
+/* 318 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 320 */ NdrFcShort( 0x0 ), /* 0 */
+/* 322 */ NdrFcShort( 0x8 ), /* 8 */
+/* 324 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 326 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 328 */ NdrFcShort( 0x0 ), /* 0 */
+/* 330 */ NdrFcShort( 0x1 ), /* 1 */
+/* 332 */ NdrFcShort( 0x0 ), /* 0 */
+/* 334 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IAppBundle0005 */
+
+/* 336 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 338 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 340 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 342 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 344 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 346 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_originURL */
+
+/* 348 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 350 */ NdrFcLong( 0x0 ), /* 0 */
+/* 354 */ NdrFcShort( 0xd ), /* 13 */
+/* 356 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 358 */ NdrFcShort( 0x0 ), /* 0 */
+/* 360 */ NdrFcShort( 0x8 ), /* 8 */
+/* 362 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 364 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 366 */ NdrFcShort( 0x1 ), /* 1 */
+/* 368 */ NdrFcShort( 0x0 ), /* 0 */
+/* 370 */ NdrFcShort( 0x0 ), /* 0 */
+/* 372 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IAppBundle0006 */
+
+/* 374 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 376 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 378 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 380 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 382 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 384 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_originURL */
+
+/* 386 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 388 */ NdrFcLong( 0x0 ), /* 0 */
+/* 392 */ NdrFcShort( 0xe ), /* 14 */
+/* 394 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 396 */ NdrFcShort( 0x0 ), /* 0 */
+/* 398 */ NdrFcShort( 0x8 ), /* 8 */
+/* 400 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 402 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 404 */ NdrFcShort( 0x0 ), /* 0 */
+/* 406 */ NdrFcShort( 0x1 ), /* 1 */
+/* 408 */ NdrFcShort( 0x0 ), /* 0 */
+/* 410 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IAppBundle0007 */
+
+/* 412 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 414 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 416 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 418 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 420 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 422 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_offlineDirectory */
+
+/* 424 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 426 */ NdrFcLong( 0x0 ), /* 0 */
+/* 430 */ NdrFcShort( 0xf ), /* 15 */
+/* 432 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 434 */ NdrFcShort( 0x0 ), /* 0 */
+/* 436 */ NdrFcShort( 0x8 ), /* 8 */
+/* 438 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 440 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 442 */ NdrFcShort( 0x1 ), /* 1 */
+/* 444 */ NdrFcShort( 0x0 ), /* 0 */
+/* 446 */ NdrFcShort( 0x0 ), /* 0 */
+/* 448 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offline_dir */
+
+/* 450 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 452 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 454 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 456 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 458 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 460 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_offlineDirectory */
+
+/* 462 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 464 */ NdrFcLong( 0x0 ), /* 0 */
+/* 468 */ NdrFcShort( 0x10 ), /* 16 */
+/* 470 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 472 */ NdrFcShort( 0x0 ), /* 0 */
+/* 474 */ NdrFcShort( 0x8 ), /* 8 */
+/* 476 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 478 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 480 */ NdrFcShort( 0x0 ), /* 0 */
+/* 482 */ NdrFcShort( 0x1 ), /* 1 */
+/* 484 */ NdrFcShort( 0x0 ), /* 0 */
+/* 486 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offline_dir */
+
+/* 488 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 490 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 492 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 494 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 496 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 498 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_sessionId */
+
+/* 500 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 502 */ NdrFcLong( 0x0 ), /* 0 */
+/* 506 */ NdrFcShort( 0x11 ), /* 17 */
+/* 508 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 510 */ NdrFcShort( 0x0 ), /* 0 */
+/* 512 */ NdrFcShort( 0x8 ), /* 8 */
+/* 514 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 516 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 518 */ NdrFcShort( 0x1 ), /* 1 */
+/* 520 */ NdrFcShort( 0x0 ), /* 0 */
+/* 522 */ NdrFcShort( 0x0 ), /* 0 */
+/* 524 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter session_id */
+
+/* 526 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 528 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 530 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 532 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 534 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 536 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_sessionId */
+
+/* 538 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 540 */ NdrFcLong( 0x0 ), /* 0 */
+/* 544 */ NdrFcShort( 0x12 ), /* 18 */
+/* 546 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 548 */ NdrFcShort( 0x0 ), /* 0 */
+/* 550 */ NdrFcShort( 0x8 ), /* 8 */
+/* 552 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 554 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 556 */ NdrFcShort( 0x0 ), /* 0 */
+/* 558 */ NdrFcShort( 0x1 ), /* 1 */
+/* 560 */ NdrFcShort( 0x0 ), /* 0 */
+/* 562 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter session_id */
+
+/* 564 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 566 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 568 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 570 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 572 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 574 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_sendPings */
+
+/* 576 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 578 */ NdrFcLong( 0x0 ), /* 0 */
+/* 582 */ NdrFcShort( 0x13 ), /* 19 */
+/* 584 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 586 */ NdrFcShort( 0x0 ), /* 0 */
+/* 588 */ NdrFcShort( 0x22 ), /* 34 */
+/* 590 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 592 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 594 */ NdrFcShort( 0x0 ), /* 0 */
+/* 596 */ NdrFcShort( 0x0 ), /* 0 */
+/* 598 */ NdrFcShort( 0x0 ), /* 0 */
+/* 600 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter send_pings */
+
+/* 602 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 604 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 606 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 608 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 610 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 612 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_sendPings */
+
+/* 614 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 616 */ NdrFcLong( 0x0 ), /* 0 */
+/* 620 */ NdrFcShort( 0x14 ), /* 20 */
+/* 622 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 624 */ NdrFcShort( 0x6 ), /* 6 */
+/* 626 */ NdrFcShort( 0x8 ), /* 8 */
+/* 628 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 630 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 632 */ NdrFcShort( 0x0 ), /* 0 */
+/* 634 */ NdrFcShort( 0x0 ), /* 0 */
+/* 636 */ NdrFcShort( 0x0 ), /* 0 */
+/* 638 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter send_pings */
+
+/* 640 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 642 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 644 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 646 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 648 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 650 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_priority */
+
+/* 652 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 654 */ NdrFcLong( 0x0 ), /* 0 */
+/* 658 */ NdrFcShort( 0x15 ), /* 21 */
+/* 660 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 662 */ NdrFcShort( 0x0 ), /* 0 */
+/* 664 */ NdrFcShort( 0x24 ), /* 36 */
+/* 666 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 668 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 670 */ NdrFcShort( 0x0 ), /* 0 */
+/* 672 */ NdrFcShort( 0x0 ), /* 0 */
+/* 674 */ NdrFcShort( 0x0 ), /* 0 */
+/* 676 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter priority */
+
+/* 678 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 680 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 682 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 684 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 686 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 688 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_priority */
+
+/* 690 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 692 */ NdrFcLong( 0x0 ), /* 0 */
+/* 696 */ NdrFcShort( 0x16 ), /* 22 */
+/* 698 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 700 */ NdrFcShort( 0x8 ), /* 8 */
+/* 702 */ NdrFcShort( 0x8 ), /* 8 */
+/* 704 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 706 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 708 */ NdrFcShort( 0x0 ), /* 0 */
+/* 710 */ NdrFcShort( 0x0 ), /* 0 */
+/* 712 */ NdrFcShort( 0x0 ), /* 0 */
+/* 714 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter priority */
+
+/* 716 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 718 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 720 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 722 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 724 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 726 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_postInstallAction */
+
+
+ /* Procedure get_Count */
+
+/* 728 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 730 */ NdrFcLong( 0x0 ), /* 0 */
+/* 734 */ NdrFcShort( 0x17 ), /* 23 */
+/* 736 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 738 */ NdrFcShort( 0x0 ), /* 0 */
+/* 740 */ NdrFcShort( 0x24 ), /* 36 */
+/* 742 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 744 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 746 */ NdrFcShort( 0x0 ), /* 0 */
+/* 748 */ NdrFcShort( 0x0 ), /* 0 */
+/* 750 */ NdrFcShort( 0x0 ), /* 0 */
+/* 752 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0015 */
+
+
+ /* Parameter count */
+
+/* 754 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 756 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 758 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 760 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 762 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 764 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_Item */
+
+/* 766 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 768 */ NdrFcLong( 0x0 ), /* 0 */
+/* 772 */ NdrFcShort( 0x18 ), /* 24 */
+/* 774 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 776 */ NdrFcShort( 0x8 ), /* 8 */
+/* 778 */ NdrFcShort( 0x8 ), /* 8 */
+/* 780 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 782 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 784 */ NdrFcShort( 0x0 ), /* 0 */
+/* 786 */ NdrFcShort( 0x0 ), /* 0 */
+/* 788 */ NdrFcShort( 0x0 ), /* 0 */
+/* 790 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 792 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 794 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 796 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter app */
+
+/* 798 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 800 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 802 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+/* 804 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 806 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 808 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_altTokens */
+
+/* 810 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 812 */ NdrFcLong( 0x0 ), /* 0 */
+/* 816 */ NdrFcShort( 0x19 ), /* 25 */
+/* 818 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 820 */ NdrFcShort( 0x18 ), /* 24 */
+/* 822 */ NdrFcShort( 0x8 ), /* 8 */
+/* 824 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 826 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 828 */ NdrFcShort( 0x0 ), /* 0 */
+/* 830 */ NdrFcShort( 0x0 ), /* 0 */
+/* 832 */ NdrFcShort( 0x0 ), /* 0 */
+/* 834 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter impersonation_token */
+
+/* 836 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 838 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 840 */ 0xb9, /* FC_UINT3264 */
+ 0x0, /* 0 */
+
+ /* Parameter primary_token */
+
+/* 842 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 844 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 846 */ 0xb9, /* FC_UINT3264 */
+ 0x0, /* 0 */
+
+ /* Parameter caller_proc_id */
+
+/* 848 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 850 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 852 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 854 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 856 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 858 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_parentHWND */
+
+/* 860 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 862 */ NdrFcLong( 0x0 ), /* 0 */
+/* 866 */ NdrFcShort( 0x1a ), /* 26 */
+/* 868 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 870 */ NdrFcShort( 0x8 ), /* 8 */
+/* 872 */ NdrFcShort( 0x8 ), /* 8 */
+/* 874 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 876 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 878 */ NdrFcShort( 0x0 ), /* 0 */
+/* 880 */ NdrFcShort( 0x0 ), /* 0 */
+/* 882 */ NdrFcShort( 0x0 ), /* 0 */
+/* 884 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter hwnd */
+
+/* 886 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 888 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 890 */ 0xb9, /* FC_UINT3264 */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 892 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 894 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 896 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure initialize */
+
+/* 898 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 900 */ NdrFcLong( 0x0 ), /* 0 */
+/* 904 */ NdrFcShort( 0x1b ), /* 27 */
+/* 906 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 908 */ NdrFcShort( 0x0 ), /* 0 */
+/* 910 */ NdrFcShort( 0x8 ), /* 8 */
+/* 912 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 914 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 916 */ NdrFcShort( 0x0 ), /* 0 */
+/* 918 */ NdrFcShort( 0x0 ), /* 0 */
+/* 920 */ NdrFcShort( 0x0 ), /* 0 */
+/* 922 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 924 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 926 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 928 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_command */
+
+
+ /* Procedure createApp */
+
+/* 930 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 932 */ NdrFcLong( 0x0 ), /* 0 */
+/* 936 */ NdrFcShort( 0x1c ), /* 28 */
+/* 938 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 940 */ NdrFcShort( 0x0 ), /* 0 */
+/* 942 */ NdrFcShort( 0x8 ), /* 8 */
+/* 944 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 946 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 948 */ NdrFcShort( 0x0 ), /* 0 */
+/* 950 */ NdrFcShort( 0x1 ), /* 1 */
+/* 952 */ NdrFcShort( 0x0 ), /* 0 */
+/* 954 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter command_id */
+
+
+ /* Parameter app_id */
+
+/* 956 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 958 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 960 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter command */
+
+
+ /* Parameter app */
+
+/* 962 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 964 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 966 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 968 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 970 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 972 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure createInstalledApp */
+
+/* 974 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 976 */ NdrFcLong( 0x0 ), /* 0 */
+/* 980 */ NdrFcShort( 0x1d ), /* 29 */
+/* 982 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 984 */ NdrFcShort( 0x0 ), /* 0 */
+/* 986 */ NdrFcShort( 0x8 ), /* 8 */
+/* 988 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 990 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 992 */ NdrFcShort( 0x0 ), /* 0 */
+/* 994 */ NdrFcShort( 0x1 ), /* 1 */
+/* 996 */ NdrFcShort( 0x0 ), /* 0 */
+/* 998 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_id */
+
+/* 1000 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1002 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1004 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter app */
+
+/* 1006 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 1008 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1010 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+/* 1012 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1014 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1016 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure createAllInstalledApps */
+
+/* 1018 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1020 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1024 */ NdrFcShort( 0x1e ), /* 30 */
+/* 1026 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1028 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1030 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1032 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 1034 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1036 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1038 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1040 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1042 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 1044 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1046 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1048 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure checkForUpdate */
+
+/* 1050 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1052 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1056 */ NdrFcShort( 0x1f ), /* 31 */
+/* 1058 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1060 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1062 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1064 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 1066 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1068 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1070 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1072 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1074 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 1076 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1078 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1080 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure download */
+
+/* 1082 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1084 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1088 */ NdrFcShort( 0x20 ), /* 32 */
+/* 1090 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1092 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1094 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1096 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 1098 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1100 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1102 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1106 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 1108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1110 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure install */
+
+/* 1114 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1116 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1120 */ NdrFcShort( 0x21 ), /* 33 */
+/* 1122 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1124 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1126 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1128 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 1130 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1132 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1134 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1136 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1138 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 1140 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1142 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1144 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure updateAllApps */
+
+/* 1146 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1148 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1152 */ NdrFcShort( 0x22 ), /* 34 */
+/* 1154 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1156 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1158 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1160 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 1162 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1164 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1166 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1168 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1170 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 1172 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1174 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1176 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure stop */
+
+/* 1178 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1180 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1184 */ NdrFcShort( 0x23 ), /* 35 */
+/* 1186 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1188 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1190 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1192 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 1194 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1196 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1198 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1200 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1202 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 1204 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1206 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1208 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure pause */
+
+/* 1210 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1212 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1216 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1218 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1220 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1222 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1224 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 1226 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1228 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1230 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1232 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1234 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 1236 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1238 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1240 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure resume */
+
+/* 1242 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1244 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1248 */ NdrFcShort( 0x25 ), /* 37 */
+/* 1250 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1252 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1254 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1256 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 1258 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1260 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1262 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1264 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1266 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 1268 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1270 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1272 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure isBusy */
+
+/* 1274 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1276 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1280 */ NdrFcShort( 0x26 ), /* 38 */
+/* 1282 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1284 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1286 */ NdrFcShort( 0x22 ), /* 34 */
+/* 1288 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1290 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1292 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1294 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1296 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1298 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter is_busy */
+
+/* 1300 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1302 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1304 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1306 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1308 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1310 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure downloadPackage */
+
+/* 1312 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1314 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1318 */ NdrFcShort( 0x27 ), /* 39 */
+/* 1320 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1322 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1324 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1326 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 1328 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1330 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1332 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1334 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1336 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_id */
+
+/* 1338 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1340 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1342 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter package_name */
+
+/* 1344 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1346 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1348 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 1350 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1352 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1354 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_currentState */
+
+/* 1356 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1358 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1362 */ NdrFcShort( 0x28 ), /* 40 */
+/* 1364 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1366 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1368 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1370 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1372 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1374 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1376 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1378 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1380 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter current_state */
+
+/* 1382 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 1384 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1386 */ NdrFcShort( 0x3fa ), /* Type Offset=1018 */
+
+ /* Return value */
+
+/* 1388 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1390 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1392 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure createAppBundleWeb */
+
+
+ /* Procedure get_currentVersion */
+
+/* 1394 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1396 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1400 */ NdrFcShort( 0x7 ), /* 7 */
+/* 1402 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1404 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1406 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1408 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1410 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1412 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1414 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1416 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1418 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_bundle_web */
+
+
+ /* Parameter current */
+
+/* 1420 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 1422 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1424 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1426 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1428 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1430 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_currentVersionWeb */
+
+
+ /* Procedure get_nextVersion */
+
+/* 1432 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1434 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1438 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1440 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1442 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1444 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1446 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1448 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1450 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1452 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1454 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1456 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter current */
+
+
+ /* Parameter next */
+
+/* 1458 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 1460 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1462 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1464 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1466 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1468 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_displayLanguage */
+
+
+ /* Procedure get_displayName */
+
+/* 1470 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1472 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1476 */ NdrFcShort( 0xa ), /* 10 */
+/* 1478 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1480 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1482 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1484 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1486 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1488 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1490 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1492 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1494 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IAppBundleWeb0000 */
+
+
+ /* Parameter __MIDL__IApp0001 */
+
+/* 1496 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1498 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1500 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1502 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1504 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1506 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_displayLanguage */
+
+
+ /* Procedure put_displayName */
+
+/* 1508 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1510 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1514 */ NdrFcShort( 0xb ), /* 11 */
+/* 1516 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1518 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1520 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1522 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1524 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1526 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1528 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1530 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1532 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IAppBundleWeb0001 */
+
+
+ /* Parameter __MIDL__IApp0002 */
+
+/* 1534 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1536 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1538 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1540 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1542 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1544 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_language */
+
+/* 1546 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1548 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1552 */ NdrFcShort( 0xc ), /* 12 */
+/* 1554 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1556 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1558 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1560 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1562 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1564 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1566 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1568 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1570 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0003 */
+
+/* 1572 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1574 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1576 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 1578 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1580 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1582 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_language */
+
+/* 1584 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1586 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1590 */ NdrFcShort( 0xd ), /* 13 */
+/* 1592 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1594 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1596 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1598 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1600 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1602 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1604 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1606 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1608 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0004 */
+
+/* 1610 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1612 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1614 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 1616 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1618 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1620 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_ap */
+
+/* 1622 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1624 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1628 */ NdrFcShort( 0xe ), /* 14 */
+/* 1630 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1632 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1634 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1636 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1638 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1640 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1642 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1644 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1646 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0005 */
+
+/* 1648 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1650 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1652 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 1654 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1656 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1658 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_ap */
+
+/* 1660 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1662 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1666 */ NdrFcShort( 0xf ), /* 15 */
+/* 1668 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1670 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1672 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1674 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1676 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1678 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1680 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1682 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1684 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0006 */
+
+/* 1686 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1688 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1690 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 1692 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1694 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1696 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_ttToken */
+
+/* 1698 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1700 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1704 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1706 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1708 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1710 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1712 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1714 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1716 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1718 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1720 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1722 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0007 */
+
+/* 1724 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1726 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1728 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 1730 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1732 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1734 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_ttToken */
+
+/* 1736 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1738 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1742 */ NdrFcShort( 0x11 ), /* 17 */
+/* 1744 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1746 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1748 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1750 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1752 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1754 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1756 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1758 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1760 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0008 */
+
+/* 1762 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1764 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1766 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 1768 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1770 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1772 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_completionMessage */
+
+
+ /* Procedure get_iid */
+
+/* 1774 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1776 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1780 */ NdrFcShort( 0x12 ), /* 18 */
+/* 1782 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1784 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1786 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1788 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1790 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1792 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1794 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1796 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1798 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0010 */
+
+
+ /* Parameter __MIDL__IApp0009 */
+
+/* 1800 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1802 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1804 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1806 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1808 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1810 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_iid */
+
+/* 1812 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1814 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1818 */ NdrFcShort( 0x13 ), /* 19 */
+/* 1820 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1822 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1824 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1826 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1828 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1830 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1832 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1834 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1836 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0010 */
+
+/* 1838 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1840 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1842 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 1844 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1846 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1848 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_brandCode */
+
+/* 1850 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1852 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1856 */ NdrFcShort( 0x14 ), /* 20 */
+/* 1858 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1860 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1862 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1864 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1866 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1868 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1870 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1872 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1874 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0011 */
+
+/* 1876 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1878 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1880 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 1882 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1884 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1886 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_brandCode */
+
+/* 1888 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1890 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1894 */ NdrFcShort( 0x15 ), /* 21 */
+/* 1896 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1898 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1900 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1902 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1904 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1906 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1908 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1910 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1912 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0012 */
+
+/* 1914 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1916 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1918 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 1920 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1922 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1924 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_postInstallUrl */
+
+
+ /* Procedure get_clientId */
+
+/* 1926 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1928 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1932 */ NdrFcShort( 0x16 ), /* 22 */
+/* 1934 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1936 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1938 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1940 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1942 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1944 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1946 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1948 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1950 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0014 */
+
+
+ /* Parameter __MIDL__IApp0013 */
+
+/* 1952 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1954 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1956 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1958 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1960 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1962 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_clientId */
+
+/* 1964 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1966 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1970 */ NdrFcShort( 0x17 ), /* 23 */
+/* 1972 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1974 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1976 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1978 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1980 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1982 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1984 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1986 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1988 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0014 */
+
+/* 1990 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1992 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1994 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 1996 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1998 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2000 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_labels */
+
+/* 2002 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2004 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2008 */ NdrFcShort( 0x18 ), /* 24 */
+/* 2010 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2012 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2014 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2016 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2018 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2020 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2022 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2024 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2026 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0015 */
+
+/* 2028 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2030 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2032 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 2034 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2036 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2038 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_labels */
+
+/* 2040 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2042 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2046 */ NdrFcShort( 0x19 ), /* 25 */
+/* 2048 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2050 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2052 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2054 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2056 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2058 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2060 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2062 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2064 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0016 */
+
+/* 2066 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2068 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2070 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 2072 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2074 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2076 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_referralId */
+
+/* 2078 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2080 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2084 */ NdrFcShort( 0x1a ), /* 26 */
+/* 2086 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2088 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2090 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2092 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2094 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2096 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2098 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2100 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2102 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0017 */
+
+/* 2104 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2106 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2108 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 2110 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2112 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2114 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_referralId */
+
+/* 2116 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2118 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2122 */ NdrFcShort( 0x1b ), /* 27 */
+/* 2124 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2126 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2128 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2130 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2132 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2134 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2136 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2138 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2140 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0018 */
+
+/* 2142 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2144 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2146 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 2148 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2150 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2152 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_browserType */
+
+/* 2154 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2156 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2160 */ NdrFcShort( 0x1d ), /* 29 */
+/* 2162 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2164 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2166 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2168 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2170 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2172 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2174 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2176 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2178 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0019 */
+
+/* 2180 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2182 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2184 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2186 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2188 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2190 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_browserType */
+
+/* 2192 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2194 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2198 */ NdrFcShort( 0x1e ), /* 30 */
+/* 2200 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2202 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2204 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2206 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2208 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2210 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2212 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2214 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2216 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0020 */
+
+/* 2218 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2220 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2222 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2224 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2226 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2228 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_clientInstallData */
+
+/* 2230 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2232 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2236 */ NdrFcShort( 0x1f ), /* 31 */
+/* 2238 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2240 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2242 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2244 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2246 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2248 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2250 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2252 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2254 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0021 */
+
+/* 2256 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2258 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2260 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 2262 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2264 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2266 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_clientInstallData */
+
+/* 2268 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2270 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2274 */ NdrFcShort( 0x20 ), /* 32 */
+/* 2276 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2278 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2280 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2282 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2284 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2286 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2288 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2290 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2292 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0022 */
+
+/* 2294 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2296 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2298 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 2300 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2302 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2304 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_serverInstallDataIndex */
+
+/* 2306 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2308 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2312 */ NdrFcShort( 0x21 ), /* 33 */
+/* 2314 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2316 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2318 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2320 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2322 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2324 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2326 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2328 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2330 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0023 */
+
+/* 2332 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2334 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2336 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 2338 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2340 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2342 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_serverInstallDataIndex */
+
+/* 2344 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2346 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2350 */ NdrFcShort( 0x22 ), /* 34 */
+/* 2352 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2354 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2356 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2358 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2360 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2362 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2364 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2366 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2368 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0024 */
+
+/* 2370 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2372 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2374 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 2376 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2378 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2380 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isEulaAccepted */
+
+/* 2382 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2384 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2388 */ NdrFcShort( 0x23 ), /* 35 */
+/* 2390 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2392 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2394 */ NdrFcShort( 0x22 ), /* 34 */
+/* 2396 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2398 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2400 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2402 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2404 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2406 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0025 */
+
+/* 2408 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2410 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2412 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2414 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2416 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2418 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_isEulaAccepted */
+
+/* 2420 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2422 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2426 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2428 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2430 */ NdrFcShort( 0x6 ), /* 6 */
+/* 2432 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2434 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2436 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2438 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2440 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2442 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2444 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0026 */
+
+/* 2446 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2448 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2450 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2452 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2454 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2456 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_usageStatsEnable */
+
+/* 2458 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2460 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2464 */ NdrFcShort( 0x25 ), /* 37 */
+/* 2466 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2468 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2470 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2472 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2474 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2476 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2478 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2480 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2482 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0027 */
+
+/* 2484 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2486 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2488 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2490 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2492 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2494 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_usageStatsEnable */
+
+/* 2496 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2498 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2502 */ NdrFcShort( 0x26 ), /* 38 */
+/* 2504 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2506 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2508 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2510 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2512 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2514 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2516 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2518 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2520 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0028 */
+
+/* 2522 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2524 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2526 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2528 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2530 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2532 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_installTimeDiffSec */
+
+/* 2534 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2536 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2540 */ NdrFcShort( 0x27 ), /* 39 */
+/* 2542 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2544 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2546 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2548 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2550 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2552 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2554 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2556 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2558 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0029 */
+
+/* 2560 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2562 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2564 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2566 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2568 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2570 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_currentState */
+
+/* 2572 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2574 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2578 */ NdrFcShort( 0x28 ), /* 40 */
+/* 2580 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2582 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2584 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2586 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2588 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2590 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2592 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2594 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2596 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0030 */
+
+/* 2598 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 2600 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2602 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+/* 2604 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2606 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2608 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isDone */
+
+
+ /* Procedure get_isWebAccessible */
+
+/* 2610 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2612 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2616 */ NdrFcShort( 0x7 ), /* 7 */
+/* 2618 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2620 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2622 */ NdrFcShort( 0x22 ), /* 34 */
+/* 2624 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2626 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2628 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2630 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2632 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2634 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter is_done */
+
+
+ /* Parameter __MIDL__IAppCommand0000 */
+
+/* 2636 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2638 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2640 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 2642 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2644 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2646 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_completionHResult */
+
+
+ /* Procedure get_packageCount */
+
+
+ /* Procedure get_exitCode */
+
+
+ /* Procedure get_packageCount */
+
+
+ /* Procedure get_status */
+
+/* 2648 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2650 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2654 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2656 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2658 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2660 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2662 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2664 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2666 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2668 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2670 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2672 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter hr */
+
+
+ /* Parameter count */
+
+
+ /* Parameter __MIDL__IAppCommandWeb0001 */
+
+
+ /* Parameter count */
+
+
+ /* Parameter __MIDL__IAppCommand0001 */
+
+/* 2674 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2676 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2678 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 2680 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2682 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2684 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_bytesDownloaded */
+
+
+ /* Procedure get_exitCode */
+
+/* 2686 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2688 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2692 */ NdrFcShort( 0x9 ), /* 9 */
+/* 2694 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2696 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2698 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2700 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2702 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2704 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2706 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2708 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2710 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0002 */
+
+
+ /* Parameter __MIDL__IAppCommand0002 */
+
+/* 2712 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2714 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2716 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 2718 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2720 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2722 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure execute */
+
+/* 2724 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2726 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2730 */ NdrFcShort( 0xa ), /* 10 */
+/* 2732 */ NdrFcShort( 0x58 ), /* X64 Stack size/offset = 88 */
+/* 2734 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2736 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2738 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0xa, /* 10 */
+/* 2740 */ 0xa, /* 10 */
+ 0x85, /* Ext Flags: new corr desc, srv corr check, has big byval param */
+/* 2742 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2744 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2746 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2748 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter arg1 */
+
+/* 2750 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2752 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2754 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Parameter arg2 */
+
+/* 2756 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2758 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2760 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Parameter arg3 */
+
+/* 2762 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2764 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2766 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Parameter arg4 */
+
+/* 2768 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2770 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2772 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Parameter arg5 */
+
+/* 2774 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2776 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2778 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Parameter arg6 */
+
+/* 2780 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2782 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 2784 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Parameter arg7 */
+
+/* 2786 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2788 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 2790 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Parameter arg8 */
+
+/* 2792 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2794 */ NdrFcShort( 0x40 ), /* X64 Stack size/offset = 64 */
+/* 2796 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Parameter arg9 */
+
+/* 2798 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2800 */ NdrFcShort( 0x48 ), /* X64 Stack size/offset = 72 */
+/* 2802 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Return value */
+
+/* 2804 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2806 */ NdrFcShort( 0x50 ), /* X64 Stack size/offset = 80 */
+/* 2808 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_packageWeb */
+
+
+ /* Procedure get_package */
+
+/* 2810 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2812 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2816 */ NdrFcShort( 0x9 ), /* 9 */
+/* 2818 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2820 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2822 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2824 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 2826 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2828 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2830 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2832 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2834 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+
+ /* Parameter index */
+
+/* 2836 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2838 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2840 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter package */
+
+
+ /* Parameter package */
+
+/* 2842 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 2844 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2846 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 2848 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2850 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2852 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get */
+
+/* 2854 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2856 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2860 */ NdrFcShort( 0x7 ), /* 7 */
+/* 2862 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2864 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2866 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2868 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2870 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2872 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2874 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2876 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2878 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter dir */
+
+/* 2880 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2882 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2884 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 2886 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2888 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2890 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isAvailable */
+
+/* 2892 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2894 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2898 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2900 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2902 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2904 */ NdrFcShort( 0x22 ), /* 34 */
+/* 2906 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2908 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2910 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2912 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2914 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2916 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IPackage0000 */
+
+/* 2918 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2920 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2922 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2924 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2926 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2928 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_availableVersion */
+
+/* 2930 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2932 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2936 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2938 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2940 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2942 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2944 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2946 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2948 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2950 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2952 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2954 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0001 */
+
+/* 2956 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2958 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2960 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 2962 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2964 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2966 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_totalBytesToDownload */
+
+/* 2968 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2970 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2974 */ NdrFcShort( 0xa ), /* 10 */
+/* 2976 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2978 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2980 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2982 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2984 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2986 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2988 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2990 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2992 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0003 */
+
+/* 2994 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2996 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2998 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3000 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3002 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3004 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_downloadTimeRemainingMs */
+
+/* 3006 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3008 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3012 */ NdrFcShort( 0xb ), /* 11 */
+/* 3014 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3016 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3018 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3020 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3022 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3024 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3026 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3028 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3030 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0004 */
+
+/* 3032 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3034 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3036 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3038 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3040 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3042 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nextRetryTime */
+
+/* 3044 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3046 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3050 */ NdrFcShort( 0xc ), /* 12 */
+/* 3052 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3054 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3056 */ NdrFcShort( 0x2c ), /* 44 */
+/* 3058 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3060 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3062 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3064 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3066 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3068 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0005 */
+
+/* 3070 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3072 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3074 */ 0xb, /* FC_HYPER */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3076 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3078 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3080 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_length */
+
+
+ /* Procedure get_installProgress */
+
+/* 3082 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3084 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3088 */ NdrFcShort( 0xd ), /* 13 */
+/* 3090 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3092 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3094 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3096 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3098 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3100 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3102 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3106 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+
+ /* Parameter __MIDL__ICurrentState0006 */
+
+/* 3108 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3110 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 3114 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3116 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3118 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_installTimeRemainingMs */
+
+/* 3120 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3122 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3126 */ NdrFcShort( 0xe ), /* 14 */
+/* 3128 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3130 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3132 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3134 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3136 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3138 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3140 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3142 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3144 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0007 */
+
+/* 3146 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3148 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3150 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3152 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3154 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3156 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isCanceled */
+
+/* 3158 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3160 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3164 */ NdrFcShort( 0xf ), /* 15 */
+/* 3166 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3168 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3170 */ NdrFcShort( 0x22 ), /* 34 */
+/* 3172 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3174 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3176 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3178 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3180 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3182 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter is_canceled */
+
+/* 3184 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3186 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3188 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3190 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3192 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3194 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_errorCode */
+
+/* 3196 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3198 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3202 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3204 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3206 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3208 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3210 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3212 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3214 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3216 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3218 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3220 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0008 */
+
+/* 3222 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3224 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3226 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3228 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3230 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3232 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_extraCode1 */
+
+/* 3234 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3236 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3240 */ NdrFcShort( 0x11 ), /* 17 */
+/* 3242 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3244 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3246 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3248 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3250 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3252 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3254 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3256 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3258 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0009 */
+
+/* 3260 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3262 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3264 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3266 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3268 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3270 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_installerResultCode */
+
+/* 3272 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3274 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3278 */ NdrFcShort( 0x13 ), /* 19 */
+/* 3280 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3282 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3284 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3286 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3288 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3290 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3292 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3294 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3296 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0011 */
+
+/* 3298 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3300 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3302 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3304 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3306 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3308 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_installerResultExtraCode1 */
+
+/* 3310 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3312 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3316 */ NdrFcShort( 0x14 ), /* 20 */
+/* 3318 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3320 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3322 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3324 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3326 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3328 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3330 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3332 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3334 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0012 */
+
+/* 3336 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3338 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3340 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3342 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3344 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3346 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_postInstallLaunchCommandLine */
+
+/* 3348 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3350 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3354 */ NdrFcShort( 0x15 ), /* 21 */
+/* 3356 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3358 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3360 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3362 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 3364 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3366 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3368 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3370 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3372 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0013 */
+
+/* 3374 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 3376 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3378 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 3380 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3382 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3384 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure UpdateRegistry */
+
+/* 3386 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3388 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3392 */ NdrFcShort( 0x7 ), /* 7 */
+/* 3394 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3396 */ NdrFcShort( 0x6 ), /* 6 */
+/* 3398 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3400 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3402 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 3404 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3406 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3408 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3410 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_id */
+
+/* 3412 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3414 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3416 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter is_machine */
+
+/* 3418 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3420 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3422 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3424 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3426 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3428 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure QueryUserForCredentials */
+
+/* 3430 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3432 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3436 */ NdrFcShort( 0x3 ), /* 3 */
+/* 3438 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 3440 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3442 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3444 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 3446 */ 0xa, /* 10 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 3448 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3450 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3452 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3454 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter owner_hwnd */
+
+/* 3456 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3458 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3460 */ 0xb9, /* FC_UINT3264 */
+ 0x0, /* 0 */
+
+ /* Parameter server */
+
+/* 3462 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3464 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3466 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter message */
+
+/* 3468 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3470 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3472 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter username */
+
+/* 3474 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 3476 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3478 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Parameter password */
+
+/* 3480 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 3482 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 3484 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 3486 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3488 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 3490 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setOriginURL */
+
+/* 3492 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3494 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3498 */ NdrFcShort( 0x3 ), /* 3 */
+/* 3500 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3502 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3504 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3506 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 3508 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 3510 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3512 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3514 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3516 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter origin_url */
+
+/* 3518 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3520 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3522 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 3524 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3526 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3528 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure createApp */
+
+/* 3530 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3532 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3536 */ NdrFcShort( 0x7 ), /* 7 */
+/* 3538 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 3540 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3542 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3544 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 3546 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 3548 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3550 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3552 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3554 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_guid */
+
+/* 3556 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3558 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3560 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter brand_code */
+
+/* 3562 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3564 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3566 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter language */
+
+/* 3568 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3570 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3572 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter ap */
+
+/* 3574 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3576 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3578 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 3580 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3582 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 3584 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure OnInstalling */
+
+
+ /* Procedure createAllInstalledApps */
+
+/* 3586 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3588 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3592 */ NdrFcShort( 0x9 ), /* 9 */
+/* 3594 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3596 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3598 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3600 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3602 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3604 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3606 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3608 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3610 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 3612 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3614 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3616 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_parentHWND */
+
+/* 3618 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3620 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3624 */ NdrFcShort( 0xc ), /* 12 */
+/* 3626 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3628 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3630 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3632 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3634 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3636 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3638 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3640 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3642 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter hwnd */
+
+/* 3644 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3646 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3648 */ 0xb9, /* FC_UINT3264 */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3650 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3652 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3654 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_appWeb */
+
+/* 3656 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3658 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3662 */ NdrFcShort( 0xe ), /* 14 */
+/* 3664 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3666 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3668 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3670 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3672 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3674 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3676 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3678 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3680 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 3682 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3684 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3686 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter app_web */
+
+/* 3688 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3690 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3692 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+/* 3694 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3696 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3698 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure initialize */
+
+/* 3700 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3702 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3706 */ NdrFcShort( 0xf ), /* 15 */
+/* 3708 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3710 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3712 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3714 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3716 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3718 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3720 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3722 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3724 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 3726 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3728 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3730 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure checkForUpdate */
+
+/* 3732 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3734 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3738 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3740 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3742 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3744 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3746 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3748 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3750 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3752 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3754 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3756 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 3758 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3760 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3762 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure download */
+
+/* 3764 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3766 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3770 */ NdrFcShort( 0x11 ), /* 17 */
+/* 3772 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3774 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3776 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3778 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3780 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3782 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3784 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3786 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3788 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 3790 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3792 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3794 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure install */
+
+/* 3796 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3798 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3802 */ NdrFcShort( 0x12 ), /* 18 */
+/* 3804 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3806 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3808 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3810 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3812 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3814 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3816 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3818 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3820 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 3822 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3824 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3826 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure pause */
+
+/* 3828 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3830 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3834 */ NdrFcShort( 0x13 ), /* 19 */
+/* 3836 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3838 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3840 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3842 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3844 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3846 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3848 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3850 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3852 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 3854 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3856 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3858 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure resume */
+
+/* 3860 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3862 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3866 */ NdrFcShort( 0x14 ), /* 20 */
+/* 3868 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3870 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3872 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3874 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3876 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3878 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3880 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3882 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3884 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 3886 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3888 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3890 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure cancel */
+
+/* 3892 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3894 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3898 */ NdrFcShort( 0x15 ), /* 21 */
+/* 3900 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3902 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3904 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3906 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3908 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3910 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3912 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3914 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3916 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 3918 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3920 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3922 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure downloadPackage */
+
+/* 3924 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3926 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3930 */ NdrFcShort( 0x16 ), /* 22 */
+/* 3932 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3934 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3936 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3938 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3940 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 3942 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3944 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3946 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3948 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_id */
+
+/* 3950 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3952 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3954 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter package_name */
+
+/* 3956 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3958 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3960 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 3962 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3964 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3966 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_currentState */
+
+/* 3968 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3970 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3974 */ NdrFcShort( 0x17 ), /* 23 */
+/* 3976 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3978 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3980 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3982 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 3984 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3986 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3988 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3990 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3992 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter current_state */
+
+/* 3994 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 3996 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3998 */ NdrFcShort( 0x3fa ), /* Type Offset=1018 */
+
+ /* Return value */
+
+/* 4000 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4002 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4004 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_command */
+
+/* 4006 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4008 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4012 */ NdrFcShort( 0xa ), /* 10 */
+/* 4014 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4016 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4018 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4020 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4022 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 4024 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4026 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4028 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4030 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter command_id */
+
+/* 4032 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 4034 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4036 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter command */
+
+/* 4038 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 4040 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4042 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+/* 4044 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4046 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4048 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure cancel */
+
+/* 4050 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4052 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4056 */ NdrFcShort( 0xb ), /* 11 */
+/* 4058 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4060 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4062 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4064 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 4066 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4068 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4070 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4072 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4074 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 4076 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4078 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4080 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_currentState */
+
+/* 4082 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4084 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4088 */ NdrFcShort( 0xc ), /* 12 */
+/* 4090 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4092 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4094 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4096 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4098 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4100 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4102 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4106 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter current_state */
+
+/* 4108 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 4110 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4112 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+/* 4114 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4116 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4118 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure launch */
+
+/* 4120 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4122 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4126 */ NdrFcShort( 0xd ), /* 13 */
+/* 4128 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4130 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4132 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4134 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 4136 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4138 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4140 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4142 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4144 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 4146 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4148 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4150 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure uninstall */
+
+/* 4152 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4154 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4158 */ NdrFcShort( 0xe ), /* 14 */
+/* 4160 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4162 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4164 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4166 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 4168 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4170 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4172 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4174 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4176 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 4178 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4180 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4182 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure execute */
+
+/* 4184 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4186 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4190 */ NdrFcShort( 0x9 ), /* 9 */
+/* 4192 */ NdrFcShort( 0x58 ), /* X64 Stack size/offset = 88 */
+/* 4194 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4196 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4198 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0xa, /* 10 */
+/* 4200 */ 0xa, /* 10 */
+ 0x85, /* Ext Flags: new corr desc, srv corr check, has big byval param */
+/* 4202 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4204 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4206 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4208 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter arg1 */
+
+/* 4210 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4212 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4214 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Parameter arg2 */
+
+/* 4216 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4218 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4220 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Parameter arg3 */
+
+/* 4222 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4224 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4226 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Parameter arg4 */
+
+/* 4228 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4230 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4232 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Parameter arg5 */
+
+/* 4234 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4236 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 4238 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Parameter arg6 */
+
+/* 4240 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4242 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 4244 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Parameter arg7 */
+
+/* 4246 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4248 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 4250 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Parameter arg8 */
+
+/* 4252 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4254 */ NdrFcShort( 0x40 ), /* X64 Stack size/offset = 64 */
+/* 4256 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Parameter arg9 */
+
+/* 4258 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4260 */ NdrFcShort( 0x48 ), /* X64 Stack size/offset = 72 */
+/* 4262 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Return value */
+
+/* 4264 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4266 */ NdrFcShort( 0x50 ), /* X64 Stack size/offset = 80 */
+/* 4268 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure createOmahaMachineServerAsync */
+
+/* 4270 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4272 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4276 */ NdrFcShort( 0x3 ), /* 3 */
+/* 4278 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 4280 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4282 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4284 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 4286 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 4288 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4290 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4292 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4294 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter origin_url */
+
+/* 4296 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 4298 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4300 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter create_elevated */
+
+/* 4302 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4304 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4306 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter status */
+
+/* 4308 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 4310 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4312 */ NdrFcShort( 0x41a ), /* Type Offset=1050 */
+
+ /* Return value */
+
+/* 4314 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4316 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4318 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure Send */
+
+/* 4320 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4322 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4326 */ NdrFcShort( 0x3 ), /* 3 */
+/* 4328 */ NdrFcShort( 0x48 ), /* X64 Stack size/offset = 72 */
+/* 4330 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4332 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4334 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x8, /* 8 */
+/* 4336 */ 0xa, /* 10 */
+ 0x87, /* Ext Flags: new corr desc, clt corr check, srv corr check, has big byval param */
+/* 4338 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4340 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4342 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4344 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter url */
+
+/* 4346 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 4348 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4350 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter post_data */
+
+/* 4352 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 4354 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4356 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter request_headers */
+
+/* 4358 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 4360 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4362 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter response_headers_needed */
+
+/* 4364 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4366 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4368 */ NdrFcShort( 0x40c ), /* Type Offset=1036 */
+
+ /* Parameter response_headers */
+
+/* 4370 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 4372 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 4374 */ NdrFcShort( 0x3fa ), /* Type Offset=1018 */
+
+ /* Parameter response_code */
+
+/* 4376 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4378 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 4380 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter cache_filename */
+
+/* 4382 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 4384 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 4386 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 4388 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4390 */ NdrFcShort( 0x40 ), /* X64 Stack size/offset = 64 */
+/* 4392 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure LaunchCmdLine */
+
+/* 4394 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4396 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4400 */ NdrFcShort( 0x3 ), /* 3 */
+/* 4402 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4404 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4406 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4408 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4410 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4412 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4414 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4416 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4418 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cmd_line */
+
+/* 4420 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4422 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4424 */ NdrFcShort( 0x432 ), /* Type Offset=1074 */
+
+ /* Return value */
+
+/* 4426 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4428 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4430 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure LaunchBrowser */
+
+/* 4432 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4434 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4438 */ NdrFcShort( 0x4 ), /* 4 */
+/* 4440 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4442 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4444 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4446 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4448 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4450 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4452 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4454 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4456 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter browser_type */
+
+/* 4458 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4460 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4462 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter url */
+
+/* 4464 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4466 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4468 */ NdrFcShort( 0x432 ), /* Type Offset=1074 */
+
+ /* Return value */
+
+/* 4470 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4472 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4474 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure LaunchCmdElevated */
+
+/* 4476 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4478 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4482 */ NdrFcShort( 0x5 ), /* 5 */
+/* 4484 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 4486 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4488 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4490 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 4492 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4494 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4496 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4498 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4500 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_guid */
+
+/* 4502 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4504 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4506 */ NdrFcShort( 0x432 ), /* Type Offset=1074 */
+
+ /* Parameter cmd_id */
+
+/* 4508 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4510 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4512 */ NdrFcShort( 0x432 ), /* Type Offset=1074 */
+
+ /* Parameter caller_proc_id */
+
+/* 4514 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4516 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4518 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter proc_handle */
+
+/* 4520 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4522 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4524 */ 0xb9, /* FC_UINT3264 */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4526 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4528 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 4530 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure LaunchAppCommand */
+
+/* 4532 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4534 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4538 */ NdrFcShort( 0x3 ), /* 3 */
+/* 4540 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4542 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4544 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4546 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4548 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4550 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4552 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4554 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4556 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_guid */
+
+/* 4558 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4560 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4562 */ NdrFcShort( 0x432 ), /* Type Offset=1074 */
+
+ /* Parameter cmd_id */
+
+/* 4564 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4566 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4568 */ NdrFcShort( 0x432 ), /* Type Offset=1074 */
+
+ /* Return value */
+
+/* 4570 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4572 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4574 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure OnShow */
+
+
+ /* Procedure DoClose */
+
+/* 4576 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4578 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4582 */ NdrFcShort( 0x3 ), /* 3 */
+/* 4584 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4586 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4588 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4590 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 4592 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4594 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4596 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4598 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4600 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 4602 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4604 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4606 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure OnCheckingForUpdate */
+
+
+ /* Procedure DoPause */
+
+/* 4608 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4610 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4614 */ NdrFcShort( 0x4 ), /* 4 */
+/* 4616 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4618 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4620 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4622 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 4624 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4626 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4628 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4630 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4632 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 4634 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4636 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4638 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure DoResume */
+
+/* 4640 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4642 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4646 */ NdrFcShort( 0x5 ), /* 5 */
+/* 4648 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4650 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4652 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4654 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 4656 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4658 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4660 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4662 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4664 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 4666 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4668 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4670 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure OnWaitingToDownload */
+
+
+ /* Procedure DoRestartBrowsers */
+
+/* 4672 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4674 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4678 */ NdrFcShort( 0x6 ), /* 6 */
+/* 4680 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4682 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4684 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4686 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 4688 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4690 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4692 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4694 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4696 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 4698 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4700 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4702 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure DoReboot */
+
+/* 4704 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4706 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4710 */ NdrFcShort( 0x7 ), /* 7 */
+/* 4712 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4714 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4716 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4718 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 4720 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4722 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4724 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4726 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4728 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 4730 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4732 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4734 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure DoLaunchBrowser */
+
+/* 4736 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4738 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4742 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4744 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4746 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4748 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4750 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4752 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4754 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4756 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4758 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4760 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter url */
+
+/* 4762 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4764 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4766 */ NdrFcShort( 0x432 ), /* Type Offset=1074 */
+
+ /* Return value */
+
+/* 4768 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4770 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4772 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure OnUpdateAvailable */
+
+/* 4774 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4776 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4780 */ NdrFcShort( 0x5 ), /* 5 */
+/* 4782 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4784 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4786 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4788 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4790 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4792 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4794 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4796 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4798 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter version_string */
+
+/* 4800 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4802 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4804 */ NdrFcShort( 0x432 ), /* Type Offset=1074 */
+
+ /* Return value */
+
+/* 4806 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4808 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4810 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure OnDownloading */
+
+/* 4812 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4814 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4818 */ NdrFcShort( 0x7 ), /* 7 */
+/* 4820 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4822 */ NdrFcShort( 0x10 ), /* 16 */
+/* 4824 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4826 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 4828 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4830 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4832 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4834 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4836 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter time_remaining_ms */
+
+/* 4838 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4840 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4842 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter pos */
+
+/* 4844 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4846 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4848 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4850 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4852 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4854 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure OnWaitingToInstall */
+
+/* 4856 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4858 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4862 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4864 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4866 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4868 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4870 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 4872 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4874 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4876 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4878 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4880 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 4882 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4884 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4886 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure OnPause */
+
+/* 4888 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4890 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4894 */ NdrFcShort( 0xa ), /* 10 */
+/* 4896 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4898 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4900 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4902 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 4904 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4906 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4908 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4910 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4912 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 4914 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4916 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4918 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure OnComplete */
+
+/* 4920 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4922 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4926 */ NdrFcShort( 0xb ), /* 11 */
+/* 4928 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4930 */ NdrFcShort( 0x6 ), /* 6 */
+/* 4932 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4934 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4936 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4938 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4940 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4942 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4944 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter code */
+
+/* 4946 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4948 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4950 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter completion_text */
+
+/* 4952 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4954 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4956 */ NdrFcShort( 0x432 ), /* Type Offset=1074 */
+
+ /* Return value */
+
+/* 4958 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4960 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4962 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure SetEventSink */
+
+/* 4964 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4966 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4970 */ NdrFcShort( 0xc ), /* 12 */
+/* 4972 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4974 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4976 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4978 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4980 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4982 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4984 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4986 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4988 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter ui_sink */
+
+/* 4990 */ NdrFcShort( 0xb ), /* Flags: must size, must free, in, */
+/* 4992 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4994 */ NdrFcShort( 0x438 ), /* Type Offset=1080 */
+
+ /* Return value */
+
+/* 4996 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4998 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5000 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure CheckForUpdate */
+
+/* 5002 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5004 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5008 */ NdrFcShort( 0x3 ), /* 3 */
+/* 5010 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 5012 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5014 */ NdrFcShort( 0x8 ), /* 8 */
+/* 5016 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 5018 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5020 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5022 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5024 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5026 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter guid */
+
+/* 5028 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 5030 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5032 */ NdrFcShort( 0x432 ), /* Type Offset=1074 */
+
+ /* Parameter observer */
+
+/* 5034 */ NdrFcShort( 0xb ), /* Flags: must size, must free, in, */
+/* 5036 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5038 */ NdrFcShort( 0x44a ), /* Type Offset=1098 */
+
+ /* Return value */
+
+/* 5040 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5042 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5044 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure Update */
+
+/* 5046 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5048 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5052 */ NdrFcShort( 0x4 ), /* 4 */
+/* 5054 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 5056 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5058 */ NdrFcShort( 0x8 ), /* 8 */
+/* 5060 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 5062 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5064 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5066 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5068 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5070 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter guid */
+
+/* 5072 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 5074 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5076 */ NdrFcShort( 0x432 ), /* Type Offset=1074 */
+
+ /* Parameter observer */
+
+/* 5078 */ NdrFcShort( 0xb ), /* Flags: must size, must free, in, */
+/* 5080 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5082 */ NdrFcShort( 0x44a ), /* Type Offset=1098 */
+
+ /* Return value */
+
+/* 5084 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5086 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5088 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure LaunchCmdElevated */
+
+/* 5090 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5092 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5096 */ NdrFcShort( 0x3 ), /* 3 */
+/* 5098 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 5100 */ NdrFcShort( 0x8 ), /* 8 */
+/* 5102 */ NdrFcShort( 0x24 ), /* 36 */
+/* 5104 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 5106 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5108 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5110 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5112 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5114 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_guid */
+
+/* 5116 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 5118 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5120 */ NdrFcShort( 0x432 ), /* Type Offset=1074 */
+
+ /* Parameter cmd_id */
+
+/* 5122 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 5124 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5126 */ NdrFcShort( 0x432 ), /* Type Offset=1074 */
+
+ /* Parameter caller_proc_id */
+
+/* 5128 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 5130 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5132 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter proc_handle */
+
+/* 5134 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5136 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 5138 */ 0xb9, /* FC_UINT3264 */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 5140 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5142 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 5144 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const google_update_idl_MIDL_TYPE_FORMAT_STRING google_update_idl__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 4 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 6 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 8 */ NdrFcShort( 0x2 ), /* Offset= 2 (10) */
+/* 10 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 12 */ NdrFcLong( 0x20400 ), /* 132096 */
+/* 16 */ NdrFcShort( 0x0 ), /* 0 */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 22 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 24 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 26 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 28 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 30 */ NdrFcShort( 0x1c ), /* Offset= 28 (58) */
+/* 32 */
+ 0x13, 0x0, /* FC_OP */
+/* 34 */ NdrFcShort( 0xe ), /* Offset= 14 (48) */
+/* 36 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 38 */ NdrFcShort( 0x2 ), /* 2 */
+/* 40 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 42 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 44 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 46 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 48 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 50 */ NdrFcShort( 0x8 ), /* 8 */
+/* 52 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (36) */
+/* 54 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 56 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 58 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x8 ), /* 8 */
+/* 64 */ NdrFcShort( 0x0 ), /* 0 */
+/* 66 */ NdrFcShort( 0xffde ), /* Offset= -34 (32) */
+/* 68 */
+ 0x12, 0x0, /* FC_UP */
+/* 70 */ NdrFcShort( 0xffea ), /* Offset= -22 (48) */
+/* 72 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 74 */ NdrFcShort( 0x0 ), /* 0 */
+/* 76 */ NdrFcShort( 0x8 ), /* 8 */
+/* 78 */ NdrFcShort( 0x0 ), /* 0 */
+/* 80 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (68) */
+/* 82 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 84 */ 0x6, /* FC_SHORT */
+ 0x5c, /* FC_PAD */
+/* 86 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 88 */ NdrFcShort( 0x3a2 ), /* Offset= 930 (1018) */
+/* 90 */
+ 0x13, 0x0, /* FC_OP */
+/* 92 */ NdrFcShort( 0x38a ), /* Offset= 906 (998) */
+/* 94 */
+ 0x2b, /* FC_NON_ENCAPSULATED_UNION */
+ 0x9, /* FC_ULONG */
+/* 96 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 98 */ NdrFcShort( 0xfff8 ), /* -8 */
+/* 100 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 102 */ NdrFcShort( 0x2 ), /* Offset= 2 (104) */
+/* 104 */ NdrFcShort( 0x10 ), /* 16 */
+/* 106 */ NdrFcShort( 0x2f ), /* 47 */
+/* 108 */ NdrFcLong( 0x14 ), /* 20 */
+/* 112 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 114 */ NdrFcLong( 0x3 ), /* 3 */
+/* 118 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 120 */ NdrFcLong( 0x11 ), /* 17 */
+/* 124 */ NdrFcShort( 0x8001 ), /* Simple arm type: FC_BYTE */
+/* 126 */ NdrFcLong( 0x2 ), /* 2 */
+/* 130 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 132 */ NdrFcLong( 0x4 ), /* 4 */
+/* 136 */ NdrFcShort( 0x800a ), /* Simple arm type: FC_FLOAT */
+/* 138 */ NdrFcLong( 0x5 ), /* 5 */
+/* 142 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 144 */ NdrFcLong( 0xb ), /* 11 */
+/* 148 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 150 */ NdrFcLong( 0xa ), /* 10 */
+/* 154 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 156 */ NdrFcLong( 0x6 ), /* 6 */
+/* 160 */ NdrFcShort( 0xe8 ), /* Offset= 232 (392) */
+/* 162 */ NdrFcLong( 0x7 ), /* 7 */
+/* 166 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 168 */ NdrFcLong( 0x8 ), /* 8 */
+/* 172 */ NdrFcShort( 0xff74 ), /* Offset= -140 (32) */
+/* 174 */ NdrFcLong( 0xd ), /* 13 */
+/* 178 */ NdrFcShort( 0xdc ), /* Offset= 220 (398) */
+/* 180 */ NdrFcLong( 0x9 ), /* 9 */
+/* 184 */ NdrFcShort( 0xff52 ), /* Offset= -174 (10) */
+/* 186 */ NdrFcLong( 0x2000 ), /* 8192 */
+/* 190 */ NdrFcShort( 0xe2 ), /* Offset= 226 (416) */
+/* 192 */ NdrFcLong( 0x24 ), /* 36 */
+/* 196 */ NdrFcShort( 0x2d8 ), /* Offset= 728 (924) */
+/* 198 */ NdrFcLong( 0x4024 ), /* 16420 */
+/* 202 */ NdrFcShort( 0x2d2 ), /* Offset= 722 (924) */
+/* 204 */ NdrFcLong( 0x4011 ), /* 16401 */
+/* 208 */ NdrFcShort( 0x2d0 ), /* Offset= 720 (928) */
+/* 210 */ NdrFcLong( 0x4002 ), /* 16386 */
+/* 214 */ NdrFcShort( 0x2ce ), /* Offset= 718 (932) */
+/* 216 */ NdrFcLong( 0x4003 ), /* 16387 */
+/* 220 */ NdrFcShort( 0x2cc ), /* Offset= 716 (936) */
+/* 222 */ NdrFcLong( 0x4014 ), /* 16404 */
+/* 226 */ NdrFcShort( 0x2ca ), /* Offset= 714 (940) */
+/* 228 */ NdrFcLong( 0x4004 ), /* 16388 */
+/* 232 */ NdrFcShort( 0x2c8 ), /* Offset= 712 (944) */
+/* 234 */ NdrFcLong( 0x4005 ), /* 16389 */
+/* 238 */ NdrFcShort( 0x2c6 ), /* Offset= 710 (948) */
+/* 240 */ NdrFcLong( 0x400b ), /* 16395 */
+/* 244 */ NdrFcShort( 0x2b0 ), /* Offset= 688 (932) */
+/* 246 */ NdrFcLong( 0x400a ), /* 16394 */
+/* 250 */ NdrFcShort( 0x2ae ), /* Offset= 686 (936) */
+/* 252 */ NdrFcLong( 0x4006 ), /* 16390 */
+/* 256 */ NdrFcShort( 0x2b8 ), /* Offset= 696 (952) */
+/* 258 */ NdrFcLong( 0x4007 ), /* 16391 */
+/* 262 */ NdrFcShort( 0x2ae ), /* Offset= 686 (948) */
+/* 264 */ NdrFcLong( 0x4008 ), /* 16392 */
+/* 268 */ NdrFcShort( 0x2b0 ), /* Offset= 688 (956) */
+/* 270 */ NdrFcLong( 0x400d ), /* 16397 */
+/* 274 */ NdrFcShort( 0x2ae ), /* Offset= 686 (960) */
+/* 276 */ NdrFcLong( 0x4009 ), /* 16393 */
+/* 280 */ NdrFcShort( 0x2ac ), /* Offset= 684 (964) */
+/* 282 */ NdrFcLong( 0x6000 ), /* 24576 */
+/* 286 */ NdrFcShort( 0x2aa ), /* Offset= 682 (968) */
+/* 288 */ NdrFcLong( 0x400c ), /* 16396 */
+/* 292 */ NdrFcShort( 0x2a8 ), /* Offset= 680 (972) */
+/* 294 */ NdrFcLong( 0x10 ), /* 16 */
+/* 298 */ NdrFcShort( 0x8002 ), /* Simple arm type: FC_CHAR */
+/* 300 */ NdrFcLong( 0x12 ), /* 18 */
+/* 304 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 306 */ NdrFcLong( 0x13 ), /* 19 */
+/* 310 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 312 */ NdrFcLong( 0x15 ), /* 21 */
+/* 316 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 318 */ NdrFcLong( 0x16 ), /* 22 */
+/* 322 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 324 */ NdrFcLong( 0x17 ), /* 23 */
+/* 328 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 330 */ NdrFcLong( 0xe ), /* 14 */
+/* 334 */ NdrFcShort( 0x286 ), /* Offset= 646 (980) */
+/* 336 */ NdrFcLong( 0x400e ), /* 16398 */
+/* 340 */ NdrFcShort( 0x28a ), /* Offset= 650 (990) */
+/* 342 */ NdrFcLong( 0x4010 ), /* 16400 */
+/* 346 */ NdrFcShort( 0x288 ), /* Offset= 648 (994) */
+/* 348 */ NdrFcLong( 0x4012 ), /* 16402 */
+/* 352 */ NdrFcShort( 0x244 ), /* Offset= 580 (932) */
+/* 354 */ NdrFcLong( 0x4013 ), /* 16403 */
+/* 358 */ NdrFcShort( 0x242 ), /* Offset= 578 (936) */
+/* 360 */ NdrFcLong( 0x4015 ), /* 16405 */
+/* 364 */ NdrFcShort( 0x240 ), /* Offset= 576 (940) */
+/* 366 */ NdrFcLong( 0x4016 ), /* 16406 */
+/* 370 */ NdrFcShort( 0x236 ), /* Offset= 566 (936) */
+/* 372 */ NdrFcLong( 0x4017 ), /* 16407 */
+/* 376 */ NdrFcShort( 0x230 ), /* Offset= 560 (936) */
+/* 378 */ NdrFcLong( 0x0 ), /* 0 */
+/* 382 */ NdrFcShort( 0x0 ), /* Offset= 0 (382) */
+/* 384 */ NdrFcLong( 0x1 ), /* 1 */
+/* 388 */ NdrFcShort( 0x0 ), /* Offset= 0 (388) */
+/* 390 */ NdrFcShort( 0xffff ), /* Offset= -1 (389) */
+/* 392 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 394 */ NdrFcShort( 0x8 ), /* 8 */
+/* 396 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 398 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 400 */ NdrFcLong( 0x0 ), /* 0 */
+/* 404 */ NdrFcShort( 0x0 ), /* 0 */
+/* 406 */ NdrFcShort( 0x0 ), /* 0 */
+/* 408 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 410 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 412 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 414 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 416 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 418 */ NdrFcShort( 0x2 ), /* Offset= 2 (420) */
+/* 420 */
+ 0x13, 0x0, /* FC_OP */
+/* 422 */ NdrFcShort( 0x1e4 ), /* Offset= 484 (906) */
+/* 424 */
+ 0x2a, /* FC_ENCAPSULATED_UNION */
+ 0x89, /* 137 */
+/* 426 */ NdrFcShort( 0x20 ), /* 32 */
+/* 428 */ NdrFcShort( 0xa ), /* 10 */
+/* 430 */ NdrFcLong( 0x8 ), /* 8 */
+/* 434 */ NdrFcShort( 0x50 ), /* Offset= 80 (514) */
+/* 436 */ NdrFcLong( 0xd ), /* 13 */
+/* 440 */ NdrFcShort( 0x70 ), /* Offset= 112 (552) */
+/* 442 */ NdrFcLong( 0x9 ), /* 9 */
+/* 446 */ NdrFcShort( 0x90 ), /* Offset= 144 (590) */
+/* 448 */ NdrFcLong( 0xc ), /* 12 */
+/* 452 */ NdrFcShort( 0xb0 ), /* Offset= 176 (628) */
+/* 454 */ NdrFcLong( 0x24 ), /* 36 */
+/* 458 */ NdrFcShort( 0x102 ), /* Offset= 258 (716) */
+/* 460 */ NdrFcLong( 0x800d ), /* 32781 */
+/* 464 */ NdrFcShort( 0x11e ), /* Offset= 286 (750) */
+/* 466 */ NdrFcLong( 0x10 ), /* 16 */
+/* 470 */ NdrFcShort( 0x138 ), /* Offset= 312 (782) */
+/* 472 */ NdrFcLong( 0x2 ), /* 2 */
+/* 476 */ NdrFcShort( 0x14e ), /* Offset= 334 (810) */
+/* 478 */ NdrFcLong( 0x3 ), /* 3 */
+/* 482 */ NdrFcShort( 0x164 ), /* Offset= 356 (838) */
+/* 484 */ NdrFcLong( 0x14 ), /* 20 */
+/* 488 */ NdrFcShort( 0x17a ), /* Offset= 378 (866) */
+/* 490 */ NdrFcShort( 0xffff ), /* Offset= -1 (489) */
+/* 492 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 494 */ NdrFcShort( 0x0 ), /* 0 */
+/* 496 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 498 */ NdrFcShort( 0x0 ), /* 0 */
+/* 500 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 502 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 506 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 508 */
+ 0x13, 0x0, /* FC_OP */
+/* 510 */ NdrFcShort( 0xfe32 ), /* Offset= -462 (48) */
+/* 512 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 514 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 516 */ NdrFcShort( 0x10 ), /* 16 */
+/* 518 */ NdrFcShort( 0x0 ), /* 0 */
+/* 520 */ NdrFcShort( 0x6 ), /* Offset= 6 (526) */
+/* 522 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 524 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 526 */
+ 0x11, 0x0, /* FC_RP */
+/* 528 */ NdrFcShort( 0xffdc ), /* Offset= -36 (492) */
+/* 530 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 532 */ NdrFcShort( 0x0 ), /* 0 */
+/* 534 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 536 */ NdrFcShort( 0x0 ), /* 0 */
+/* 538 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 540 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 544 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 546 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 548 */ NdrFcShort( 0xff6a ), /* Offset= -150 (398) */
+/* 550 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 552 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 554 */ NdrFcShort( 0x10 ), /* 16 */
+/* 556 */ NdrFcShort( 0x0 ), /* 0 */
+/* 558 */ NdrFcShort( 0x6 ), /* Offset= 6 (564) */
+/* 560 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 562 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 564 */
+ 0x11, 0x0, /* FC_RP */
+/* 566 */ NdrFcShort( 0xffdc ), /* Offset= -36 (530) */
+/* 568 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 570 */ NdrFcShort( 0x0 ), /* 0 */
+/* 572 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 574 */ NdrFcShort( 0x0 ), /* 0 */
+/* 576 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 578 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 582 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 584 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 586 */ NdrFcShort( 0xfdc0 ), /* Offset= -576 (10) */
+/* 588 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 590 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 592 */ NdrFcShort( 0x10 ), /* 16 */
+/* 594 */ NdrFcShort( 0x0 ), /* 0 */
+/* 596 */ NdrFcShort( 0x6 ), /* Offset= 6 (602) */
+/* 598 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 600 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 602 */
+ 0x11, 0x0, /* FC_RP */
+/* 604 */ NdrFcShort( 0xffdc ), /* Offset= -36 (568) */
+/* 606 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 608 */ NdrFcShort( 0x0 ), /* 0 */
+/* 610 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 612 */ NdrFcShort( 0x0 ), /* 0 */
+/* 614 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 616 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 620 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 622 */
+ 0x13, 0x0, /* FC_OP */
+/* 624 */ NdrFcShort( 0x176 ), /* Offset= 374 (998) */
+/* 626 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 628 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 630 */ NdrFcShort( 0x10 ), /* 16 */
+/* 632 */ NdrFcShort( 0x0 ), /* 0 */
+/* 634 */ NdrFcShort( 0x6 ), /* Offset= 6 (640) */
+/* 636 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 638 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 640 */
+ 0x11, 0x0, /* FC_RP */
+/* 642 */ NdrFcShort( 0xffdc ), /* Offset= -36 (606) */
+/* 644 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 646 */ NdrFcLong( 0x2f ), /* 47 */
+/* 650 */ NdrFcShort( 0x0 ), /* 0 */
+/* 652 */ NdrFcShort( 0x0 ), /* 0 */
+/* 654 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 656 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 658 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 660 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 662 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 664 */ NdrFcShort( 0x1 ), /* 1 */
+/* 666 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 668 */ NdrFcShort( 0x4 ), /* 4 */
+/* 670 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 672 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 674 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 676 */ NdrFcShort( 0x18 ), /* 24 */
+/* 678 */ NdrFcShort( 0x0 ), /* 0 */
+/* 680 */ NdrFcShort( 0xa ), /* Offset= 10 (690) */
+/* 682 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 684 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 686 */ NdrFcShort( 0xffd6 ), /* Offset= -42 (644) */
+/* 688 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 690 */
+ 0x13, 0x0, /* FC_OP */
+/* 692 */ NdrFcShort( 0xffe2 ), /* Offset= -30 (662) */
+/* 694 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 696 */ NdrFcShort( 0x0 ), /* 0 */
+/* 698 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 700 */ NdrFcShort( 0x0 ), /* 0 */
+/* 702 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 704 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 708 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 710 */
+ 0x13, 0x0, /* FC_OP */
+/* 712 */ NdrFcShort( 0xffda ), /* Offset= -38 (674) */
+/* 714 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 716 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 718 */ NdrFcShort( 0x10 ), /* 16 */
+/* 720 */ NdrFcShort( 0x0 ), /* 0 */
+/* 722 */ NdrFcShort( 0x6 ), /* Offset= 6 (728) */
+/* 724 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 726 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 728 */
+ 0x11, 0x0, /* FC_RP */
+/* 730 */ NdrFcShort( 0xffdc ), /* Offset= -36 (694) */
+/* 732 */
+ 0x1d, /* FC_SMFARRAY */
+ 0x0, /* 0 */
+/* 734 */ NdrFcShort( 0x8 ), /* 8 */
+/* 736 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 738 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 740 */ NdrFcShort( 0x10 ), /* 16 */
+/* 742 */ 0x8, /* FC_LONG */
+ 0x6, /* FC_SHORT */
+/* 744 */ 0x6, /* FC_SHORT */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 746 */ 0x0, /* 0 */
+ NdrFcShort( 0xfff1 ), /* Offset= -15 (732) */
+ 0x5b, /* FC_END */
+/* 750 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 752 */ NdrFcShort( 0x20 ), /* 32 */
+/* 754 */ NdrFcShort( 0x0 ), /* 0 */
+/* 756 */ NdrFcShort( 0xa ), /* Offset= 10 (766) */
+/* 758 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 760 */ 0x36, /* FC_POINTER */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 762 */ 0x0, /* 0 */
+ NdrFcShort( 0xffe7 ), /* Offset= -25 (738) */
+ 0x5b, /* FC_END */
+/* 766 */
+ 0x11, 0x0, /* FC_RP */
+/* 768 */ NdrFcShort( 0xff12 ), /* Offset= -238 (530) */
+/* 770 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 772 */ NdrFcShort( 0x1 ), /* 1 */
+/* 774 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 776 */ NdrFcShort( 0x0 ), /* 0 */
+/* 778 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 780 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 782 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 784 */ NdrFcShort( 0x10 ), /* 16 */
+/* 786 */ NdrFcShort( 0x0 ), /* 0 */
+/* 788 */ NdrFcShort( 0x6 ), /* Offset= 6 (794) */
+/* 790 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 792 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 794 */
+ 0x13, 0x0, /* FC_OP */
+/* 796 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (770) */
+/* 798 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 800 */ NdrFcShort( 0x2 ), /* 2 */
+/* 802 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 804 */ NdrFcShort( 0x0 ), /* 0 */
+/* 806 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 808 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 810 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 812 */ NdrFcShort( 0x10 ), /* 16 */
+/* 814 */ NdrFcShort( 0x0 ), /* 0 */
+/* 816 */ NdrFcShort( 0x6 ), /* Offset= 6 (822) */
+/* 818 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 820 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 822 */
+ 0x13, 0x0, /* FC_OP */
+/* 824 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (798) */
+/* 826 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 828 */ NdrFcShort( 0x4 ), /* 4 */
+/* 830 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 832 */ NdrFcShort( 0x0 ), /* 0 */
+/* 834 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 836 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 838 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 840 */ NdrFcShort( 0x10 ), /* 16 */
+/* 842 */ NdrFcShort( 0x0 ), /* 0 */
+/* 844 */ NdrFcShort( 0x6 ), /* Offset= 6 (850) */
+/* 846 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 848 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 850 */
+ 0x13, 0x0, /* FC_OP */
+/* 852 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (826) */
+/* 854 */
+ 0x1b, /* FC_CARRAY */
+ 0x7, /* 7 */
+/* 856 */ NdrFcShort( 0x8 ), /* 8 */
+/* 858 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 860 */ NdrFcShort( 0x0 ), /* 0 */
+/* 862 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 864 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 866 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 868 */ NdrFcShort( 0x10 ), /* 16 */
+/* 870 */ NdrFcShort( 0x0 ), /* 0 */
+/* 872 */ NdrFcShort( 0x6 ), /* Offset= 6 (878) */
+/* 874 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 876 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 878 */
+ 0x13, 0x0, /* FC_OP */
+/* 880 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (854) */
+/* 882 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 884 */ NdrFcShort( 0x8 ), /* 8 */
+/* 886 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 888 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 890 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 892 */ NdrFcShort( 0x8 ), /* 8 */
+/* 894 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 896 */ NdrFcShort( 0xffc8 ), /* -56 */
+/* 898 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 900 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 902 */ NdrFcShort( 0xffec ), /* Offset= -20 (882) */
+/* 904 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 906 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 908 */ NdrFcShort( 0x38 ), /* 56 */
+/* 910 */ NdrFcShort( 0xffec ), /* Offset= -20 (890) */
+/* 912 */ NdrFcShort( 0x0 ), /* Offset= 0 (912) */
+/* 914 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 916 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 918 */ 0x40, /* FC_STRUCTPAD4 */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 920 */ 0x0, /* 0 */
+ NdrFcShort( 0xfe0f ), /* Offset= -497 (424) */
+ 0x5b, /* FC_END */
+/* 924 */
+ 0x13, 0x0, /* FC_OP */
+/* 926 */ NdrFcShort( 0xff04 ), /* Offset= -252 (674) */
+/* 928 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 930 */ 0x1, /* FC_BYTE */
+ 0x5c, /* FC_PAD */
+/* 932 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 934 */ 0x6, /* FC_SHORT */
+ 0x5c, /* FC_PAD */
+/* 936 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 938 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 940 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 942 */ 0xb, /* FC_HYPER */
+ 0x5c, /* FC_PAD */
+/* 944 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 946 */ 0xa, /* FC_FLOAT */
+ 0x5c, /* FC_PAD */
+/* 948 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 950 */ 0xc, /* FC_DOUBLE */
+ 0x5c, /* FC_PAD */
+/* 952 */
+ 0x13, 0x0, /* FC_OP */
+/* 954 */ NdrFcShort( 0xfdce ), /* Offset= -562 (392) */
+/* 956 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 958 */ NdrFcShort( 0xfc62 ), /* Offset= -926 (32) */
+/* 960 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 962 */ NdrFcShort( 0xfdcc ), /* Offset= -564 (398) */
+/* 964 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 966 */ NdrFcShort( 0xfc44 ), /* Offset= -956 (10) */
+/* 968 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 970 */ NdrFcShort( 0xfdd6 ), /* Offset= -554 (416) */
+/* 972 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 974 */ NdrFcShort( 0x2 ), /* Offset= 2 (976) */
+/* 976 */
+ 0x13, 0x0, /* FC_OP */
+/* 978 */ NdrFcShort( 0x14 ), /* Offset= 20 (998) */
+/* 980 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 982 */ NdrFcShort( 0x10 ), /* 16 */
+/* 984 */ 0x6, /* FC_SHORT */
+ 0x1, /* FC_BYTE */
+/* 986 */ 0x1, /* FC_BYTE */
+ 0x8, /* FC_LONG */
+/* 988 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 990 */
+ 0x13, 0x0, /* FC_OP */
+/* 992 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (980) */
+/* 994 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 996 */ 0x2, /* FC_CHAR */
+ 0x5c, /* FC_PAD */
+/* 998 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x7, /* 7 */
+/* 1000 */ NdrFcShort( 0x20 ), /* 32 */
+/* 1002 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1004 */ NdrFcShort( 0x0 ), /* Offset= 0 (1004) */
+/* 1006 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1008 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1010 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1012 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1014 */ NdrFcShort( 0xfc68 ), /* Offset= -920 (94) */
+/* 1016 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1018 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 1020 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1022 */ NdrFcShort( 0x18 ), /* 24 */
+/* 1024 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1026 */ NdrFcShort( 0xfc58 ), /* Offset= -936 (90) */
+/* 1028 */
+ 0x11, 0x0, /* FC_RP */
+/* 1030 */ NdrFcShort( 0x6 ), /* Offset= 6 (1036) */
+/* 1032 */
+ 0x12, 0x0, /* FC_UP */
+/* 1034 */ NdrFcShort( 0xffdc ), /* Offset= -36 (998) */
+/* 1036 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 1038 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1040 */ NdrFcShort( 0x18 ), /* 24 */
+/* 1042 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1044 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (1032) */
+/* 1046 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 1048 */ 0xb, /* FC_HYPER */
+ 0x5c, /* FC_PAD */
+/* 1050 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 1052 */ NdrFcShort( 0x2 ), /* Offset= 2 (1054) */
+/* 1054 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 1056 */ NdrFcLong( 0x2e629606 ), /* 778212870 */
+/* 1060 */ NdrFcShort( 0x312a ), /* 12586 */
+/* 1062 */ NdrFcShort( 0x482f ), /* 18479 */
+/* 1064 */ 0x9b, /* 155 */
+ 0x12, /* 18 */
+/* 1066 */ 0x2c, /* 44 */
+ 0x4a, /* 74 */
+/* 1068 */ 0xbf, /* 191 */
+ 0x6f, /* 111 */
+/* 1070 */ 0xb, /* 11 */
+ 0x6d, /* 109 */
+/* 1072 */
+ 0x11, 0x8, /* FC_RP [simple_pointer] */
+/* 1074 */
+ 0x25, /* FC_C_WSTRING */
+ 0x5c, /* FC_PAD */
+/* 1076 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 1078 */ 0xb9, /* FC_UINT3264 */
+ 0x5c, /* FC_PAD */
+/* 1080 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 1082 */ NdrFcLong( 0x1c642ced ), /* 476327149 */
+/* 1086 */ NdrFcShort( 0xca3b ), /* -13765 */
+/* 1088 */ NdrFcShort( 0x4013 ), /* 16403 */
+/* 1090 */ 0xa9, /* 169 */
+ 0xdf, /* 223 */
+/* 1092 */ 0xca, /* 202 */
+ 0x6c, /* 108 */
+/* 1094 */ 0xe5, /* 229 */
+ 0xff, /* 255 */
+/* 1096 */ 0x65, /* 101 */
+ 0x3, /* 3 */
+/* 1098 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 1100 */ NdrFcLong( 0x49d7563b ), /* 1238849083 */
+/* 1104 */ NdrFcShort( 0x2ddb ), /* 11739 */
+/* 1106 */ NdrFcShort( 0x4831 ), /* 18481 */
+/* 1108 */ 0x88, /* 136 */
+ 0xc8, /* 200 */
+/* 1110 */ 0x76, /* 118 */
+ 0x8a, /* 138 */
+/* 1112 */ 0x53, /* 83 */
+ 0x83, /* 131 */
+/* 1114 */ 0x38, /* 56 */
+ 0x37, /* 55 */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ },
+ {
+ VARIANT_UserSize
+ ,VARIANT_UserMarshal
+ ,VARIANT_UserUnmarshal
+ ,VARIANT_UserFree
+ }
+
+ };
+
+
+
+/* Standard interface: __MIDL_itf_google_update_idl_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IDispatch, ver. 0.0,
+ GUID={0x00020400,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IGoogleUpdate3, ver. 0.0,
+ GUID={0x6DB17455,0x4E85,0x46e7,{0x9D,0x23,0xE5,0x55,0xE4,0xB0,0x05,0xAF}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IGoogleUpdate3_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 0,
+ 38,
+ 82
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IGoogleUpdate3_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdate3_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IGoogleUpdate3_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdate3_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(10) _IGoogleUpdate3ProxyVtbl =
+{
+ &IGoogleUpdate3_ProxyInfo,
+ &IID_IGoogleUpdate3,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IGoogleUpdate3::get_Count */ ,
+ (void *) (INT_PTR) -1 /* IGoogleUpdate3::get_Item */ ,
+ (void *) (INT_PTR) -1 /* IGoogleUpdate3::createAppBundle */
+};
+
+
+static const PRPC_STUB_FUNCTION IGoogleUpdate3_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IGoogleUpdate3StubVtbl =
+{
+ &IID_IGoogleUpdate3,
+ &IGoogleUpdate3_ServerInfo,
+ 10,
+ &IGoogleUpdate3_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IAppBundle, ver. 0.0,
+ GUID={0xfe908cdd,0x22bb,0x472a,{0x98,0x70,0x1a,0x03,0x90,0xe4,0x2f,0x36}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAppBundle_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 120,
+ 158,
+ 196,
+ 234,
+ 272,
+ 310,
+ 348,
+ 386,
+ 424,
+ 462,
+ 500,
+ 538,
+ 576,
+ 614,
+ 652,
+ 690,
+ 728,
+ 766,
+ 810,
+ 860,
+ 898,
+ 930,
+ 974,
+ 1018,
+ 1050,
+ 1082,
+ 1114,
+ 1146,
+ 1178,
+ 1210,
+ 1242,
+ 1274,
+ 1312,
+ 1356
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAppBundle_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppBundle_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAppBundle_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppBundle_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(41) _IAppBundleProxyVtbl =
+{
+ &IAppBundle_ProxyInfo,
+ &IID_IAppBundle,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_displayName */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_displayName */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_displayLanguage */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_displayLanguage */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_installSource */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_installSource */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_originURL */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_originURL */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_offlineDirectory */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_offlineDirectory */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_sessionId */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_sessionId */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_sendPings */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_sendPings */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_priority */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_priority */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_Count */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_Item */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_altTokens */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_parentHWND */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::initialize */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::createApp */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::createInstalledApp */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::createAllInstalledApps */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::checkForUpdate */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::download */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::install */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::updateAllApps */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::stop */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::pause */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::resume */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::isBusy */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::downloadPackage */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_currentState */
+};
+
+
+static const PRPC_STUB_FUNCTION IAppBundle_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAppBundleStubVtbl =
+{
+ &IID_IAppBundle,
+ &IAppBundle_ServerInfo,
+ 41,
+ &IAppBundle_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IApp, ver. 0.0,
+ GUID={0x76F7B787,0xA67C,0x4c73,{0x82,0xC7,0x31,0xF5,0xE3,0xAA,0xBC,0x5C}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IApp_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 1394,
+ 1432,
+ 196,
+ 1470,
+ 1508,
+ 1546,
+ 1584,
+ 1622,
+ 1660,
+ 1698,
+ 1736,
+ 1774,
+ 1812,
+ 1850,
+ 1888,
+ 1926,
+ 1964,
+ 2002,
+ 2040,
+ 2078,
+ 2116,
+ 930,
+ 2154,
+ 2192,
+ 2230,
+ 2268,
+ 2306,
+ 2344,
+ 2382,
+ 2420,
+ 2458,
+ 2496,
+ 2534,
+ 2572
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IApp_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IApp_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IApp_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IApp_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(41) _IAppProxyVtbl =
+{
+ &IApp_ProxyInfo,
+ &IID_IApp,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_currentVersion */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_nextVersion */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_appId */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_displayName */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_displayName */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_language */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_language */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_ap */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_ap */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_ttToken */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_ttToken */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_iid */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_iid */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_brandCode */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_brandCode */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_clientId */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_clientId */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_labels */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_labels */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_referralId */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_referralId */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_command */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_browserType */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_browserType */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_clientInstallData */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_clientInstallData */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_serverInstallDataIndex */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_serverInstallDataIndex */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_isEulaAccepted */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_isEulaAccepted */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_usageStatsEnable */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_usageStatsEnable */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_installTimeDiffSec */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_currentState */
+};
+
+
+static const PRPC_STUB_FUNCTION IApp_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAppStubVtbl =
+{
+ &IID_IApp,
+ &IApp_ServerInfo,
+ 41,
+ &IApp_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IAppCommand, ver. 0.0,
+ GUID={0x4DE778FE,0xF195,0x4ee3,{0x9D,0xAB,0xFE,0x44,0x6C,0x23,0x92,0x21}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAppCommand_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 2610,
+ 2648,
+ 2686,
+ 2724
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAppCommand_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppCommand_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAppCommand_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppCommand_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(11) _IAppCommandProxyVtbl =
+{
+ &IAppCommand_ProxyInfo,
+ &IID_IAppCommand,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IAppCommand::get_isWebAccessible */ ,
+ (void *) (INT_PTR) -1 /* IAppCommand::get_status */ ,
+ (void *) (INT_PTR) -1 /* IAppCommand::get_exitCode */ ,
+ (void *) (INT_PTR) -1 /* IAppCommand::execute */
+};
+
+
+static const PRPC_STUB_FUNCTION IAppCommand_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAppCommandStubVtbl =
+{
+ &IID_IAppCommand,
+ &IAppCommand_ServerInfo,
+ 11,
+ &IAppCommand_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IAppVersion, ver. 0.0,
+ GUID={0xBCDCB538,0x01C0,0x46d1,{0xA6,0xA7,0x52,0xF4,0xD0,0x21,0xC2,0x72}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAppVersion_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 120,
+ 2648,
+ 2810
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAppVersion_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppVersion_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAppVersion_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppVersion_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(10) _IAppVersionProxyVtbl =
+{
+ &IAppVersion_ProxyInfo,
+ &IID_IAppVersion,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IAppVersion::get_version */ ,
+ (void *) (INT_PTR) -1 /* IAppVersion::get_packageCount */ ,
+ (void *) (INT_PTR) -1 /* IAppVersion::get_package */
+};
+
+
+static const PRPC_STUB_FUNCTION IAppVersion_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAppVersionStubVtbl =
+{
+ &IID_IAppVersion,
+ &IAppVersion_ServerInfo,
+ 10,
+ &IAppVersion_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IPackage, ver. 0.0,
+ GUID={0xDCAB8386,0x4F03,0x4dbd,{0xA3,0x66,0xD9,0x0B,0xC9,0xF6,0x8D,0xE6}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IPackage_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 2854,
+ 2892,
+ 196
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IPackage_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IPackage_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IPackage_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IPackage_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(10) _IPackageProxyVtbl =
+{
+ &IPackage_ProxyInfo,
+ &IID_IPackage,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IPackage::get */ ,
+ (void *) (INT_PTR) -1 /* IPackage::get_isAvailable */ ,
+ (void *) (INT_PTR) -1 /* IPackage::get_filename */
+};
+
+
+static const PRPC_STUB_FUNCTION IPackage_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IPackageStubVtbl =
+{
+ &IID_IPackage,
+ &IPackage_ServerInfo,
+ 10,
+ &IPackage_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: ICurrentState, ver. 0.0,
+ GUID={0x247954F9,0x9EDC,0x4E68,{0x8C,0xC3,0x15,0x0C,0x2B,0x89,0xEA,0xDF}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short ICurrentState_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 0,
+ 2930,
+ 2686,
+ 2968,
+ 3006,
+ 3044,
+ 3082,
+ 3120,
+ 3158,
+ 3196,
+ 3234,
+ 1774,
+ 3272,
+ 3310,
+ 3348,
+ 1926,
+ 728
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO ICurrentState_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &ICurrentState_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO ICurrentState_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &ICurrentState_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(24) _ICurrentStateProxyVtbl =
+{
+ &ICurrentState_ProxyInfo,
+ &IID_ICurrentState,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_stateValue */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_availableVersion */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_bytesDownloaded */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_totalBytesToDownload */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_downloadTimeRemainingMs */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_nextRetryTime */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_installProgress */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_installTimeRemainingMs */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_isCanceled */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_errorCode */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_extraCode1 */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_completionMessage */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_installerResultCode */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_installerResultExtraCode1 */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_postInstallLaunchCommandLine */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_postInstallUrl */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_postInstallAction */
+};
+
+
+static const PRPC_STUB_FUNCTION ICurrentState_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _ICurrentStateStubVtbl =
+{
+ &IID_ICurrentState,
+ &ICurrentState_ServerInfo,
+ 24,
+ &ICurrentState_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IRegistrationUpdateHook, ver. 0.0,
+ GUID={0x4E223325,0xC16B,0x4eeb,{0xAE,0xDC,0x19,0xAA,0x99,0xA2,0x37,0xFA}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IRegistrationUpdateHook_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 3386
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IRegistrationUpdateHook_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IRegistrationUpdateHook_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IRegistrationUpdateHook_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IRegistrationUpdateHook_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(8) _IRegistrationUpdateHookProxyVtbl =
+{
+ &IRegistrationUpdateHook_ProxyInfo,
+ &IID_IRegistrationUpdateHook,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IRegistrationUpdateHook::UpdateRegistry */
+};
+
+
+static const PRPC_STUB_FUNCTION IRegistrationUpdateHook_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IRegistrationUpdateHookStubVtbl =
+{
+ &IID_IRegistrationUpdateHook,
+ &IRegistrationUpdateHook_ServerInfo,
+ 8,
+ &IRegistrationUpdateHook_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: ICredentialDialog, ver. 0.0,
+ GUID={0xb3a47570,0x0a85,0x4aea,{0x82,0x70,0x52,0x9d,0x47,0x89,0x96,0x03}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short ICredentialDialog_FormatStringOffsetTable[] =
+ {
+ 3430
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO ICredentialDialog_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &ICredentialDialog_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO ICredentialDialog_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &ICredentialDialog_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(4) _ICredentialDialogProxyVtbl =
+{
+ &ICredentialDialog_ProxyInfo,
+ &IID_ICredentialDialog,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* ICredentialDialog::QueryUserForCredentials */
+};
+
+const CInterfaceStubVtbl _ICredentialDialogStubVtbl =
+{
+ &IID_ICredentialDialog,
+ &ICredentialDialog_ServerInfo,
+ 4,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IGoogleUpdate3Web, ver. 0.0,
+ GUID={0x494B20CF,0x282E,0x4BDD,{0x9F,0x5D,0xB7,0x0C,0xB0,0x9D,0x35,0x1E}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IGoogleUpdate3Web_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 1394
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IGoogleUpdate3Web_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdate3Web_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IGoogleUpdate3Web_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdate3Web_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(8) _IGoogleUpdate3WebProxyVtbl =
+{
+ &IGoogleUpdate3Web_ProxyInfo,
+ &IID_IGoogleUpdate3Web,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IGoogleUpdate3Web::createAppBundleWeb */
+};
+
+
+static const PRPC_STUB_FUNCTION IGoogleUpdate3Web_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IGoogleUpdate3WebStubVtbl =
+{
+ &IID_IGoogleUpdate3Web,
+ &IGoogleUpdate3Web_ServerInfo,
+ 8,
+ &IGoogleUpdate3Web_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IGoogleUpdate3WebSecurity, ver. 0.0,
+ GUID={0x2D363682,0x561D,0x4c3a,{0x81,0xC6,0xF2,0xF8,0x21,0x07,0x56,0x2A}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IGoogleUpdate3WebSecurity_FormatStringOffsetTable[] =
+ {
+ 3492
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IGoogleUpdate3WebSecurity_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdate3WebSecurity_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IGoogleUpdate3WebSecurity_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdate3WebSecurity_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(4) _IGoogleUpdate3WebSecurityProxyVtbl =
+{
+ &IGoogleUpdate3WebSecurity_ProxyInfo,
+ &IID_IGoogleUpdate3WebSecurity,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IGoogleUpdate3WebSecurity::setOriginURL */
+};
+
+const CInterfaceStubVtbl _IGoogleUpdate3WebSecurityStubVtbl =
+{
+ &IID_IGoogleUpdate3WebSecurity,
+ &IGoogleUpdate3WebSecurity_ServerInfo,
+ 4,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAppBundleWeb, ver. 0.0,
+ GUID={0xDD42475D,0x6D46,0x496a,{0x92,0x4E,0xBD,0x56,0x30,0xB4,0xCB,0xBA}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAppBundleWeb_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 3530,
+ 158,
+ 3586,
+ 1470,
+ 1508,
+ 3618,
+ 3082,
+ 3656,
+ 3700,
+ 3732,
+ 3764,
+ 3796,
+ 3828,
+ 3860,
+ 3892,
+ 3924,
+ 3968
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAppBundleWeb_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppBundleWeb_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAppBundleWeb_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppBundleWeb_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(24) _IAppBundleWebProxyVtbl =
+{
+ &IAppBundleWeb_ProxyInfo,
+ &IID_IAppBundleWeb,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::createApp */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::createInstalledApp */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::createAllInstalledApps */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::get_displayLanguage */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::put_displayLanguage */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::put_parentHWND */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::get_length */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::get_appWeb */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::initialize */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::checkForUpdate */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::download */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::install */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::pause */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::resume */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::cancel */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::downloadPackage */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::get_currentState */
+};
+
+
+static const PRPC_STUB_FUNCTION IAppBundleWeb_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAppBundleWebStubVtbl =
+{
+ &IID_IAppBundleWeb,
+ &IAppBundleWeb_ServerInfo,
+ 24,
+ &IAppBundleWeb_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IAppWeb, ver. 0.0,
+ GUID={0x18D0F672,0x18B4,0x48e6,{0xAD,0x36,0x6E,0x6B,0xF0,0x1D,0xBB,0xC4}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAppWeb_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 120,
+ 1432,
+ 82,
+ 4006,
+ 4050,
+ 4082,
+ 4120,
+ 4152
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAppWeb_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppWeb_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAppWeb_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppWeb_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(15) _IAppWebProxyVtbl =
+{
+ &IAppWeb_ProxyInfo,
+ &IID_IAppWeb,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IAppWeb::get_appId */ ,
+ (void *) (INT_PTR) -1 /* IAppWeb::get_currentVersionWeb */ ,
+ (void *) (INT_PTR) -1 /* IAppWeb::get_nextVersionWeb */ ,
+ (void *) (INT_PTR) -1 /* IAppWeb::get_command */ ,
+ (void *) (INT_PTR) -1 /* IAppWeb::cancel */ ,
+ (void *) (INT_PTR) -1 /* IAppWeb::get_currentState */ ,
+ (void *) (INT_PTR) -1 /* IAppWeb::launch */ ,
+ (void *) (INT_PTR) -1 /* IAppWeb::uninstall */
+};
+
+
+static const PRPC_STUB_FUNCTION IAppWeb_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAppWebStubVtbl =
+{
+ &IID_IAppWeb,
+ &IAppWeb_ServerInfo,
+ 15,
+ &IAppWeb_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IAppCommandWeb, ver. 0.0,
+ GUID={0x68D6C2BD,0x712E,0x4c96,{0x93,0xE8,0x49,0xCB,0x8A,0x9A,0xAE,0xED}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAppCommandWeb_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 0,
+ 2648,
+ 4184
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAppCommandWeb_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppCommandWeb_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAppCommandWeb_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppCommandWeb_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(10) _IAppCommandWebProxyVtbl =
+{
+ &IAppCommandWeb_ProxyInfo,
+ &IID_IAppCommandWeb,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IAppCommandWeb::get_status */ ,
+ (void *) (INT_PTR) -1 /* IAppCommandWeb::get_exitCode */ ,
+ (void *) (INT_PTR) -1 /* IAppCommandWeb::execute */
+};
+
+
+static const PRPC_STUB_FUNCTION IAppCommandWeb_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAppCommandWebStubVtbl =
+{
+ &IID_IAppCommandWeb,
+ &IAppCommandWeb_ServerInfo,
+ 10,
+ &IAppCommandWeb_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IAppVersionWeb, ver. 0.0,
+ GUID={0x0CD01D1E,0x4A1C,0x489d,{0x93,0xB9,0x9B,0x66,0x72,0x87,0x7C,0x57}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAppVersionWeb_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 120,
+ 2648,
+ 2810
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAppVersionWeb_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppVersionWeb_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAppVersionWeb_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppVersionWeb_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(10) _IAppVersionWebProxyVtbl =
+{
+ &IAppVersionWeb_ProxyInfo,
+ &IID_IAppVersionWeb,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IAppVersionWeb::get_version */ ,
+ (void *) (INT_PTR) -1 /* IAppVersionWeb::get_packageCount */ ,
+ (void *) (INT_PTR) -1 /* IAppVersionWeb::get_packageWeb */
+};
+
+
+static const PRPC_STUB_FUNCTION IAppVersionWeb_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAppVersionWebStubVtbl =
+{
+ &IID_IAppVersionWeb,
+ &IAppVersionWeb_ServerInfo,
+ 10,
+ &IAppVersionWeb_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: ICoCreateAsyncStatus, ver. 0.0,
+ GUID={0x2E629606,0x312A,0x482f,{0x9B,0x12,0x2C,0x4A,0xBF,0x6F,0x0B,0x6D}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short ICoCreateAsyncStatus_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 2610,
+ 2648,
+ 82
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO ICoCreateAsyncStatus_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &ICoCreateAsyncStatus_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO ICoCreateAsyncStatus_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &ICoCreateAsyncStatus_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(10) _ICoCreateAsyncStatusProxyVtbl =
+{
+ &ICoCreateAsyncStatus_ProxyInfo,
+ &IID_ICoCreateAsyncStatus,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* ICoCreateAsyncStatus::get_isDone */ ,
+ (void *) (INT_PTR) -1 /* ICoCreateAsyncStatus::get_completionHResult */ ,
+ (void *) (INT_PTR) -1 /* ICoCreateAsyncStatus::get_createdInstance */
+};
+
+
+static const PRPC_STUB_FUNCTION ICoCreateAsyncStatus_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _ICoCreateAsyncStatusStubVtbl =
+{
+ &IID_ICoCreateAsyncStatus,
+ &ICoCreateAsyncStatus_ServerInfo,
+ 10,
+ &ICoCreateAsyncStatus_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: ICoCreateAsync, ver. 0.0,
+ GUID={0xDAB1D343,0x1B2A,0x47f9,{0xB4,0x45,0x93,0xDC,0x50,0x70,0x4B,0xFE}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short ICoCreateAsync_FormatStringOffsetTable[] =
+ {
+ 4270
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO ICoCreateAsync_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &ICoCreateAsync_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO ICoCreateAsync_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &ICoCreateAsync_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(4) _ICoCreateAsyncProxyVtbl =
+{
+ &ICoCreateAsync_ProxyInfo,
+ &IID_ICoCreateAsync,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* ICoCreateAsync::createOmahaMachineServerAsync */
+};
+
+const CInterfaceStubVtbl _ICoCreateAsyncStubVtbl =
+{
+ &IID_ICoCreateAsync,
+ &ICoCreateAsync_ServerInfo,
+ 4,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IBrowserHttpRequest2, ver. 0.0,
+ GUID={0x5B25A8DC,0x1780,0x4178,{0xA6,0x29,0x6B,0xE8,0xB8,0xDE,0xFA,0xA2}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IBrowserHttpRequest2_FormatStringOffsetTable[] =
+ {
+ 4320
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IBrowserHttpRequest2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IBrowserHttpRequest2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IBrowserHttpRequest2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IBrowserHttpRequest2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(4) _IBrowserHttpRequest2ProxyVtbl =
+{
+ &IBrowserHttpRequest2_ProxyInfo,
+ &IID_IBrowserHttpRequest2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IBrowserHttpRequest2::Send */
+};
+
+const CInterfaceStubVtbl _IBrowserHttpRequest2StubVtbl =
+{
+ &IID_IBrowserHttpRequest2,
+ &IBrowserHttpRequest2_ServerInfo,
+ 4,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IProcessLauncher, ver. 0.0,
+ GUID={0x128C2DA6,0x2BC0,0x44c0,{0xB3,0xF6,0x4E,0xC2,0x2E,0x64,0x79,0x64}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IProcessLauncher_FormatStringOffsetTable[] =
+ {
+ 4394,
+ 4432,
+ 4476
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IProcessLauncher_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IProcessLauncher_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IProcessLauncher_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IProcessLauncher_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(6) _IProcessLauncherProxyVtbl =
+{
+ &IProcessLauncher_ProxyInfo,
+ &IID_IProcessLauncher,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IProcessLauncher::LaunchCmdLine */ ,
+ (void *) (INT_PTR) -1 /* IProcessLauncher::LaunchBrowser */ ,
+ (void *) (INT_PTR) -1 /* IProcessLauncher::LaunchCmdElevated */
+};
+
+const CInterfaceStubVtbl _IProcessLauncherStubVtbl =
+{
+ &IID_IProcessLauncher,
+ &IProcessLauncher_ServerInfo,
+ 6,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IOneClickProcessLauncher, ver. 0.0,
+ GUID={0x5CCCB0EF,0x7073,0x4516,{0x80,0x28,0x4C,0x62,0x8D,0x0C,0x8A,0xAB}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IOneClickProcessLauncher_FormatStringOffsetTable[] =
+ {
+ 4532
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IOneClickProcessLauncher_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IOneClickProcessLauncher_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IOneClickProcessLauncher_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IOneClickProcessLauncher_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(4) _IOneClickProcessLauncherProxyVtbl =
+{
+ &IOneClickProcessLauncher_ProxyInfo,
+ &IID_IOneClickProcessLauncher,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IOneClickProcessLauncher::LaunchAppCommand */
+};
+
+const CInterfaceStubVtbl _IOneClickProcessLauncherStubVtbl =
+{
+ &IID_IOneClickProcessLauncher,
+ &IOneClickProcessLauncher_ServerInfo,
+ 4,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_google_update_idl_0000_0020, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IProgressWndEvents, ver. 0.0,
+ GUID={0x1C642CED,0xCA3B,0x4013,{0xA9,0xDF,0xCA,0x6C,0xE5,0xFF,0x65,0x03}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IProgressWndEvents_FormatStringOffsetTable[] =
+ {
+ 4576,
+ 4608,
+ 4640,
+ 4672,
+ 4704,
+ 4736
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IProgressWndEvents_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IProgressWndEvents_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IProgressWndEvents_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IProgressWndEvents_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(9) _IProgressWndEventsProxyVtbl =
+{
+ &IProgressWndEvents_ProxyInfo,
+ &IID_IProgressWndEvents,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IProgressWndEvents::DoClose */ ,
+ (void *) (INT_PTR) -1 /* IProgressWndEvents::DoPause */ ,
+ (void *) (INT_PTR) -1 /* IProgressWndEvents::DoResume */ ,
+ (void *) (INT_PTR) -1 /* IProgressWndEvents::DoRestartBrowsers */ ,
+ (void *) (INT_PTR) -1 /* IProgressWndEvents::DoReboot */ ,
+ (void *) (INT_PTR) -1 /* IProgressWndEvents::DoLaunchBrowser */
+};
+
+const CInterfaceStubVtbl _IProgressWndEventsStubVtbl =
+{
+ &IID_IProgressWndEvents,
+ &IProgressWndEvents_ServerInfo,
+ 9,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IJobObserver, ver. 0.0,
+ GUID={0x49D7563B,0x2DDB,0x4831,{0x88,0xC8,0x76,0x8A,0x53,0x83,0x38,0x37}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IJobObserver_FormatStringOffsetTable[] =
+ {
+ 4576,
+ 4608,
+ 4774,
+ 4672,
+ 4812,
+ 4856,
+ 3586,
+ 4888,
+ 4920,
+ 4964
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IJobObserver_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IJobObserver_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IJobObserver_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IJobObserver_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(13) _IJobObserverProxyVtbl =
+{
+ &IJobObserver_ProxyInfo,
+ &IID_IJobObserver,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IJobObserver::OnShow */ ,
+ (void *) (INT_PTR) -1 /* IJobObserver::OnCheckingForUpdate */ ,
+ (void *) (INT_PTR) -1 /* IJobObserver::OnUpdateAvailable */ ,
+ (void *) (INT_PTR) -1 /* IJobObserver::OnWaitingToDownload */ ,
+ (void *) (INT_PTR) -1 /* IJobObserver::OnDownloading */ ,
+ (void *) (INT_PTR) -1 /* IJobObserver::OnWaitingToInstall */ ,
+ (void *) (INT_PTR) -1 /* IJobObserver::OnInstalling */ ,
+ (void *) (INT_PTR) -1 /* IJobObserver::OnPause */ ,
+ (void *) (INT_PTR) -1 /* IJobObserver::OnComplete */ ,
+ (void *) (INT_PTR) -1 /* IJobObserver::SetEventSink */
+};
+
+const CInterfaceStubVtbl _IJobObserverStubVtbl =
+{
+ &IID_IJobObserver,
+ &IJobObserver_ServerInfo,
+ 13,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IGoogleUpdate, ver. 0.0,
+ GUID={0x31AC3F11,0xE5EA,0x4a85,{0x8A,0x3D,0x8E,0x09,0x5A,0x39,0xC2,0x7B}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IGoogleUpdate_FormatStringOffsetTable[] =
+ {
+ 5002,
+ 5046
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IGoogleUpdate_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdate_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IGoogleUpdate_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdate_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(5) _IGoogleUpdateProxyVtbl =
+{
+ &IGoogleUpdate_ProxyInfo,
+ &IID_IGoogleUpdate,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IGoogleUpdate::CheckForUpdate */ ,
+ (void *) (INT_PTR) -1 /* IGoogleUpdate::Update */
+};
+
+const CInterfaceStubVtbl _IGoogleUpdateStubVtbl =
+{
+ &IID_IGoogleUpdate,
+ &IGoogleUpdate_ServerInfo,
+ 5,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IGoogleUpdateCore, ver. 0.0,
+ GUID={0x909489C2,0x85A6,0x4322,{0xAA,0x56,0xD2,0x52,0x78,0x64,0x9D,0x67}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IGoogleUpdateCore_FormatStringOffsetTable[] =
+ {
+ 5090
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IGoogleUpdateCore_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdateCore_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IGoogleUpdateCore_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdateCore_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(4) _IGoogleUpdateCoreProxyVtbl =
+{
+ &IGoogleUpdateCore_ProxyInfo,
+ &IID_IGoogleUpdateCore,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IGoogleUpdateCore::LaunchCmdElevated */
+};
+
+const CInterfaceStubVtbl _IGoogleUpdateCoreStubVtbl =
+{
+ &IID_IGoogleUpdateCore,
+ &IGoogleUpdateCore_ServerInfo,
+ 4,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ google_update_idl__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x801026e, /* MIDL Version 8.1.622 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _google_update_idl_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_ICoCreateAsyncStatusProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IGoogleUpdateProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAppVersionWebProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IRegistrationUpdateHookProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAppVersionProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IJobObserverProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_ICoCreateAsyncProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IGoogleUpdate3ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAppBundleWebProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_ICredentialDialogProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAppWebProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IGoogleUpdate3WebSecurityProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IPackageProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAppProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IProcessLauncherProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAppCommandWebProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IGoogleUpdateCoreProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IGoogleUpdate3WebProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IBrowserHttpRequest2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAppBundleProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IProgressWndEventsProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IOneClickProcessLauncherProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_ICurrentStateProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAppCommandProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _google_update_idl_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_ICoCreateAsyncStatusStubVtbl,
+ ( CInterfaceStubVtbl *) &_IGoogleUpdateStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAppVersionWebStubVtbl,
+ ( CInterfaceStubVtbl *) &_IRegistrationUpdateHookStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAppVersionStubVtbl,
+ ( CInterfaceStubVtbl *) &_IJobObserverStubVtbl,
+ ( CInterfaceStubVtbl *) &_ICoCreateAsyncStubVtbl,
+ ( CInterfaceStubVtbl *) &_IGoogleUpdate3StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAppBundleWebStubVtbl,
+ ( CInterfaceStubVtbl *) &_ICredentialDialogStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAppWebStubVtbl,
+ ( CInterfaceStubVtbl *) &_IGoogleUpdate3WebSecurityStubVtbl,
+ ( CInterfaceStubVtbl *) &_IPackageStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAppStubVtbl,
+ ( CInterfaceStubVtbl *) &_IProcessLauncherStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAppCommandWebStubVtbl,
+ ( CInterfaceStubVtbl *) &_IGoogleUpdateCoreStubVtbl,
+ ( CInterfaceStubVtbl *) &_IGoogleUpdate3WebStubVtbl,
+ ( CInterfaceStubVtbl *) &_IBrowserHttpRequest2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAppBundleStubVtbl,
+ ( CInterfaceStubVtbl *) &_IProgressWndEventsStubVtbl,
+ ( CInterfaceStubVtbl *) &_IOneClickProcessLauncherStubVtbl,
+ ( CInterfaceStubVtbl *) &_ICurrentStateStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAppCommandStubVtbl,
+ 0
+};
+
+PCInterfaceName const _google_update_idl_InterfaceNamesList[] =
+{
+ "ICoCreateAsyncStatus",
+ "IGoogleUpdate",
+ "IAppVersionWeb",
+ "IRegistrationUpdateHook",
+ "IAppVersion",
+ "IJobObserver",
+ "ICoCreateAsync",
+ "IGoogleUpdate3",
+ "IAppBundleWeb",
+ "ICredentialDialog",
+ "IAppWeb",
+ "IGoogleUpdate3WebSecurity",
+ "IPackage",
+ "IApp",
+ "IProcessLauncher",
+ "IAppCommandWeb",
+ "IGoogleUpdateCore",
+ "IGoogleUpdate3Web",
+ "IBrowserHttpRequest2",
+ "IAppBundle",
+ "IProgressWndEvents",
+ "IOneClickProcessLauncher",
+ "ICurrentState",
+ "IAppCommand",
+ 0
+};
+
+const IID * const _google_update_idl_BaseIIDList[] =
+{
+ &IID_IDispatch,
+ 0,
+ &IID_IDispatch,
+ &IID_IDispatch,
+ &IID_IDispatch,
+ 0,
+ 0,
+ &IID_IDispatch,
+ &IID_IDispatch,
+ 0,
+ &IID_IDispatch,
+ 0,
+ &IID_IDispatch,
+ &IID_IDispatch,
+ 0,
+ &IID_IDispatch,
+ 0,
+ &IID_IDispatch,
+ 0,
+ &IID_IDispatch,
+ 0,
+ 0,
+ &IID_IDispatch,
+ &IID_IDispatch,
+ 0
+};
+
+
+#define _google_update_idl_CHECK_IID(n) IID_GENERIC_CHECK_IID( _google_update_idl, pIID, n)
+
+int __stdcall _google_update_idl_IID_Lookup( const IID * pIID, int * pIndex )
+{
+ IID_BS_LOOKUP_SETUP
+
+ IID_BS_LOOKUP_INITIAL_TEST( _google_update_idl, 24, 16 )
+ IID_BS_LOOKUP_NEXT_TEST( _google_update_idl, 8 )
+ IID_BS_LOOKUP_NEXT_TEST( _google_update_idl, 4 )
+ IID_BS_LOOKUP_NEXT_TEST( _google_update_idl, 2 )
+ IID_BS_LOOKUP_NEXT_TEST( _google_update_idl, 1 )
+ IID_BS_LOOKUP_RETURN_RESULT( _google_update_idl, 24, *pIndex )
+
+}
+
+const ExtendedProxyFileInfo google_update_idl_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _google_update_idl_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _google_update_idl_StubVtblList,
+ (const PCInterfaceName * ) & _google_update_idl_InterfaceNamesList,
+ (const IID ** ) & _google_update_idl_BaseIIDList,
+ & _google_update_idl_IID_Lookup,
+ 24,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl.dlldata.c b/chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl.dlldata.c
new file mode 100644
index 00000000000..7f84320cb61
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl.dlldata.c
@@ -0,0 +1,38 @@
+/*********************************************************
+ DllData file -- generated by MIDL compiler
+
+ DO NOT ALTER THIS FILE
+
+ This file is regenerated by MIDL on every IDL file compile.
+
+ To completely reconstruct this file, delete it and rerun MIDL
+ on all the IDL files in this DLL, specifying this file for the
+ /dlldata command line option
+
+*********************************************************/
+
+#define PROXY_DELEGATION
+
+#include <rpcproxy.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_PROXY_FILE( google_update_idl )
+
+
+PROXYFILE_LIST_START
+/* Start of list */
+ REFERENCE_PROXY_FILE( google_update_idl ),
+/* End of list */
+PROXYFILE_LIST_END
+
+
+DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID )
+
+#ifdef __cplusplus
+} /*extern "C" */
+#endif
+
+/* end of generated dlldata file */
diff --git a/chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl.h b/chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl.h
new file mode 100644
index 00000000000..1414af1bf25
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl.h
@@ -0,0 +1,4892 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../google_update/google_update_idl.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif /* __RPCNDR_H_VERSION__ */
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __google_update_idl_h__
+#define __google_update_idl_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IGoogleUpdate3_FWD_DEFINED__
+#define __IGoogleUpdate3_FWD_DEFINED__
+typedef interface IGoogleUpdate3 IGoogleUpdate3;
+
+#endif /* __IGoogleUpdate3_FWD_DEFINED__ */
+
+
+#ifndef __IAppBundle_FWD_DEFINED__
+#define __IAppBundle_FWD_DEFINED__
+typedef interface IAppBundle IAppBundle;
+
+#endif /* __IAppBundle_FWD_DEFINED__ */
+
+
+#ifndef __IApp_FWD_DEFINED__
+#define __IApp_FWD_DEFINED__
+typedef interface IApp IApp;
+
+#endif /* __IApp_FWD_DEFINED__ */
+
+
+#ifndef __IAppCommand_FWD_DEFINED__
+#define __IAppCommand_FWD_DEFINED__
+typedef interface IAppCommand IAppCommand;
+
+#endif /* __IAppCommand_FWD_DEFINED__ */
+
+
+#ifndef __IAppVersion_FWD_DEFINED__
+#define __IAppVersion_FWD_DEFINED__
+typedef interface IAppVersion IAppVersion;
+
+#endif /* __IAppVersion_FWD_DEFINED__ */
+
+
+#ifndef __IPackage_FWD_DEFINED__
+#define __IPackage_FWD_DEFINED__
+typedef interface IPackage IPackage;
+
+#endif /* __IPackage_FWD_DEFINED__ */
+
+
+#ifndef __ICurrentState_FWD_DEFINED__
+#define __ICurrentState_FWD_DEFINED__
+typedef interface ICurrentState ICurrentState;
+
+#endif /* __ICurrentState_FWD_DEFINED__ */
+
+
+#ifndef __IRegistrationUpdateHook_FWD_DEFINED__
+#define __IRegistrationUpdateHook_FWD_DEFINED__
+typedef interface IRegistrationUpdateHook IRegistrationUpdateHook;
+
+#endif /* __IRegistrationUpdateHook_FWD_DEFINED__ */
+
+
+#ifndef __ICredentialDialog_FWD_DEFINED__
+#define __ICredentialDialog_FWD_DEFINED__
+typedef interface ICredentialDialog ICredentialDialog;
+
+#endif /* __ICredentialDialog_FWD_DEFINED__ */
+
+
+#ifndef __IGoogleUpdate3Web_FWD_DEFINED__
+#define __IGoogleUpdate3Web_FWD_DEFINED__
+typedef interface IGoogleUpdate3Web IGoogleUpdate3Web;
+
+#endif /* __IGoogleUpdate3Web_FWD_DEFINED__ */
+
+
+#ifndef __IGoogleUpdate3WebSecurity_FWD_DEFINED__
+#define __IGoogleUpdate3WebSecurity_FWD_DEFINED__
+typedef interface IGoogleUpdate3WebSecurity IGoogleUpdate3WebSecurity;
+
+#endif /* __IGoogleUpdate3WebSecurity_FWD_DEFINED__ */
+
+
+#ifndef __IAppBundleWeb_FWD_DEFINED__
+#define __IAppBundleWeb_FWD_DEFINED__
+typedef interface IAppBundleWeb IAppBundleWeb;
+
+#endif /* __IAppBundleWeb_FWD_DEFINED__ */
+
+
+#ifndef __IAppWeb_FWD_DEFINED__
+#define __IAppWeb_FWD_DEFINED__
+typedef interface IAppWeb IAppWeb;
+
+#endif /* __IAppWeb_FWD_DEFINED__ */
+
+
+#ifndef __IAppCommandWeb_FWD_DEFINED__
+#define __IAppCommandWeb_FWD_DEFINED__
+typedef interface IAppCommandWeb IAppCommandWeb;
+
+#endif /* __IAppCommandWeb_FWD_DEFINED__ */
+
+
+#ifndef __IAppVersionWeb_FWD_DEFINED__
+#define __IAppVersionWeb_FWD_DEFINED__
+typedef interface IAppVersionWeb IAppVersionWeb;
+
+#endif /* __IAppVersionWeb_FWD_DEFINED__ */
+
+
+#ifndef __ICoCreateAsyncStatus_FWD_DEFINED__
+#define __ICoCreateAsyncStatus_FWD_DEFINED__
+typedef interface ICoCreateAsyncStatus ICoCreateAsyncStatus;
+
+#endif /* __ICoCreateAsyncStatus_FWD_DEFINED__ */
+
+
+#ifndef __ICoCreateAsync_FWD_DEFINED__
+#define __ICoCreateAsync_FWD_DEFINED__
+typedef interface ICoCreateAsync ICoCreateAsync;
+
+#endif /* __ICoCreateAsync_FWD_DEFINED__ */
+
+
+#ifndef __IBrowserHttpRequest2_FWD_DEFINED__
+#define __IBrowserHttpRequest2_FWD_DEFINED__
+typedef interface IBrowserHttpRequest2 IBrowserHttpRequest2;
+
+#endif /* __IBrowserHttpRequest2_FWD_DEFINED__ */
+
+
+#ifndef __IProcessLauncher_FWD_DEFINED__
+#define __IProcessLauncher_FWD_DEFINED__
+typedef interface IProcessLauncher IProcessLauncher;
+
+#endif /* __IProcessLauncher_FWD_DEFINED__ */
+
+
+#ifndef __IOneClickProcessLauncher_FWD_DEFINED__
+#define __IOneClickProcessLauncher_FWD_DEFINED__
+typedef interface IOneClickProcessLauncher IOneClickProcessLauncher;
+
+#endif /* __IOneClickProcessLauncher_FWD_DEFINED__ */
+
+
+#ifndef __IProgressWndEvents_FWD_DEFINED__
+#define __IProgressWndEvents_FWD_DEFINED__
+typedef interface IProgressWndEvents IProgressWndEvents;
+
+#endif /* __IProgressWndEvents_FWD_DEFINED__ */
+
+
+#ifndef __IJobObserver_FWD_DEFINED__
+#define __IJobObserver_FWD_DEFINED__
+typedef interface IJobObserver IJobObserver;
+
+#endif /* __IJobObserver_FWD_DEFINED__ */
+
+
+#ifndef __IGoogleUpdate_FWD_DEFINED__
+#define __IGoogleUpdate_FWD_DEFINED__
+typedef interface IGoogleUpdate IGoogleUpdate;
+
+#endif /* __IGoogleUpdate_FWD_DEFINED__ */
+
+
+#ifndef __IGoogleUpdateCore_FWD_DEFINED__
+#define __IGoogleUpdateCore_FWD_DEFINED__
+typedef interface IGoogleUpdateCore IGoogleUpdateCore;
+
+#endif /* __IGoogleUpdateCore_FWD_DEFINED__ */
+
+
+#ifndef __IGoogleUpdate3_FWD_DEFINED__
+#define __IGoogleUpdate3_FWD_DEFINED__
+typedef interface IGoogleUpdate3 IGoogleUpdate3;
+
+#endif /* __IGoogleUpdate3_FWD_DEFINED__ */
+
+
+#ifndef __IAppBundle_FWD_DEFINED__
+#define __IAppBundle_FWD_DEFINED__
+typedef interface IAppBundle IAppBundle;
+
+#endif /* __IAppBundle_FWD_DEFINED__ */
+
+
+#ifndef __IApp_FWD_DEFINED__
+#define __IApp_FWD_DEFINED__
+typedef interface IApp IApp;
+
+#endif /* __IApp_FWD_DEFINED__ */
+
+
+#ifndef __IAppCommand_FWD_DEFINED__
+#define __IAppCommand_FWD_DEFINED__
+typedef interface IAppCommand IAppCommand;
+
+#endif /* __IAppCommand_FWD_DEFINED__ */
+
+
+#ifndef __IAppVersion_FWD_DEFINED__
+#define __IAppVersion_FWD_DEFINED__
+typedef interface IAppVersion IAppVersion;
+
+#endif /* __IAppVersion_FWD_DEFINED__ */
+
+
+#ifndef __IPackage_FWD_DEFINED__
+#define __IPackage_FWD_DEFINED__
+typedef interface IPackage IPackage;
+
+#endif /* __IPackage_FWD_DEFINED__ */
+
+
+#ifndef __ICurrentState_FWD_DEFINED__
+#define __ICurrentState_FWD_DEFINED__
+typedef interface ICurrentState ICurrentState;
+
+#endif /* __ICurrentState_FWD_DEFINED__ */
+
+
+#ifndef __IGoogleUpdate3Web_FWD_DEFINED__
+#define __IGoogleUpdate3Web_FWD_DEFINED__
+typedef interface IGoogleUpdate3Web IGoogleUpdate3Web;
+
+#endif /* __IGoogleUpdate3Web_FWD_DEFINED__ */
+
+
+#ifndef __IAppBundleWeb_FWD_DEFINED__
+#define __IAppBundleWeb_FWD_DEFINED__
+typedef interface IAppBundleWeb IAppBundleWeb;
+
+#endif /* __IAppBundleWeb_FWD_DEFINED__ */
+
+
+#ifndef __IAppWeb_FWD_DEFINED__
+#define __IAppWeb_FWD_DEFINED__
+typedef interface IAppWeb IAppWeb;
+
+#endif /* __IAppWeb_FWD_DEFINED__ */
+
+
+#ifndef __IAppCommandWeb_FWD_DEFINED__
+#define __IAppCommandWeb_FWD_DEFINED__
+typedef interface IAppCommandWeb IAppCommandWeb;
+
+#endif /* __IAppCommandWeb_FWD_DEFINED__ */
+
+
+#ifndef __IAppVersionWeb_FWD_DEFINED__
+#define __IAppVersionWeb_FWD_DEFINED__
+typedef interface IAppVersionWeb IAppVersionWeb;
+
+#endif /* __IAppVersionWeb_FWD_DEFINED__ */
+
+
+#ifndef __ICoCreateAsyncStatus_FWD_DEFINED__
+#define __ICoCreateAsyncStatus_FWD_DEFINED__
+typedef interface ICoCreateAsyncStatus ICoCreateAsyncStatus;
+
+#endif /* __ICoCreateAsyncStatus_FWD_DEFINED__ */
+
+
+#ifndef __GoogleUpdate3UserClass_FWD_DEFINED__
+#define __GoogleUpdate3UserClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class GoogleUpdate3UserClass GoogleUpdate3UserClass;
+#else
+typedef struct GoogleUpdate3UserClass GoogleUpdate3UserClass;
+#endif /* __cplusplus */
+
+#endif /* __GoogleUpdate3UserClass_FWD_DEFINED__ */
+
+
+#ifndef __GoogleUpdate3ServiceClass_FWD_DEFINED__
+#define __GoogleUpdate3ServiceClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class GoogleUpdate3ServiceClass GoogleUpdate3ServiceClass;
+#else
+typedef struct GoogleUpdate3ServiceClass GoogleUpdate3ServiceClass;
+#endif /* __cplusplus */
+
+#endif /* __GoogleUpdate3ServiceClass_FWD_DEFINED__ */
+
+
+#ifndef __GoogleUpdate3WebUserClass_FWD_DEFINED__
+#define __GoogleUpdate3WebUserClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class GoogleUpdate3WebUserClass GoogleUpdate3WebUserClass;
+#else
+typedef struct GoogleUpdate3WebUserClass GoogleUpdate3WebUserClass;
+#endif /* __cplusplus */
+
+#endif /* __GoogleUpdate3WebUserClass_FWD_DEFINED__ */
+
+
+#ifndef __GoogleUpdate3WebMachineClass_FWD_DEFINED__
+#define __GoogleUpdate3WebMachineClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class GoogleUpdate3WebMachineClass GoogleUpdate3WebMachineClass;
+#else
+typedef struct GoogleUpdate3WebMachineClass GoogleUpdate3WebMachineClass;
+#endif /* __cplusplus */
+
+#endif /* __GoogleUpdate3WebMachineClass_FWD_DEFINED__ */
+
+
+#ifndef __GoogleUpdate3WebServiceClass_FWD_DEFINED__
+#define __GoogleUpdate3WebServiceClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class GoogleUpdate3WebServiceClass GoogleUpdate3WebServiceClass;
+#else
+typedef struct GoogleUpdate3WebServiceClass GoogleUpdate3WebServiceClass;
+#endif /* __cplusplus */
+
+#endif /* __GoogleUpdate3WebServiceClass_FWD_DEFINED__ */
+
+
+#ifndef __GoogleUpdate3WebMachineFallbackClass_FWD_DEFINED__
+#define __GoogleUpdate3WebMachineFallbackClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class GoogleUpdate3WebMachineFallbackClass GoogleUpdate3WebMachineFallbackClass;
+#else
+typedef struct GoogleUpdate3WebMachineFallbackClass GoogleUpdate3WebMachineFallbackClass;
+#endif /* __cplusplus */
+
+#endif /* __GoogleUpdate3WebMachineFallbackClass_FWD_DEFINED__ */
+
+
+#ifndef __CurrentStateUserClass_FWD_DEFINED__
+#define __CurrentStateUserClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class CurrentStateUserClass CurrentStateUserClass;
+#else
+typedef struct CurrentStateUserClass CurrentStateUserClass;
+#endif /* __cplusplus */
+
+#endif /* __CurrentStateUserClass_FWD_DEFINED__ */
+
+
+#ifndef __CurrentStateMachineClass_FWD_DEFINED__
+#define __CurrentStateMachineClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class CurrentStateMachineClass CurrentStateMachineClass;
+#else
+typedef struct CurrentStateMachineClass CurrentStateMachineClass;
+#endif /* __cplusplus */
+
+#endif /* __CurrentStateMachineClass_FWD_DEFINED__ */
+
+
+#ifndef __CoCreateAsyncClass_FWD_DEFINED__
+#define __CoCreateAsyncClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class CoCreateAsyncClass CoCreateAsyncClass;
+#else
+typedef struct CoCreateAsyncClass CoCreateAsyncClass;
+#endif /* __cplusplus */
+
+#endif /* __CoCreateAsyncClass_FWD_DEFINED__ */
+
+
+#ifndef __CredentialDialogUserClass_FWD_DEFINED__
+#define __CredentialDialogUserClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class CredentialDialogUserClass CredentialDialogUserClass;
+#else
+typedef struct CredentialDialogUserClass CredentialDialogUserClass;
+#endif /* __cplusplus */
+
+#endif /* __CredentialDialogUserClass_FWD_DEFINED__ */
+
+
+#ifndef __CredentialDialogMachineClass_FWD_DEFINED__
+#define __CredentialDialogMachineClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class CredentialDialogMachineClass CredentialDialogMachineClass;
+#else
+typedef struct CredentialDialogMachineClass CredentialDialogMachineClass;
+#endif /* __cplusplus */
+
+#endif /* __CredentialDialogMachineClass_FWD_DEFINED__ */
+
+
+#ifndef __ProcessLauncherClass_FWD_DEFINED__
+#define __ProcessLauncherClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class ProcessLauncherClass ProcessLauncherClass;
+#else
+typedef struct ProcessLauncherClass ProcessLauncherClass;
+#endif /* __cplusplus */
+
+#endif /* __ProcessLauncherClass_FWD_DEFINED__ */
+
+
+#ifndef __OneClickUserProcessLauncherClass_FWD_DEFINED__
+#define __OneClickUserProcessLauncherClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class OneClickUserProcessLauncherClass OneClickUserProcessLauncherClass;
+#else
+typedef struct OneClickUserProcessLauncherClass OneClickUserProcessLauncherClass;
+#endif /* __cplusplus */
+
+#endif /* __OneClickUserProcessLauncherClass_FWD_DEFINED__ */
+
+
+#ifndef __OneClickMachineProcessLauncherClass_FWD_DEFINED__
+#define __OneClickMachineProcessLauncherClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class OneClickMachineProcessLauncherClass OneClickMachineProcessLauncherClass;
+#else
+typedef struct OneClickMachineProcessLauncherClass OneClickMachineProcessLauncherClass;
+#endif /* __cplusplus */
+
+#endif /* __OneClickMachineProcessLauncherClass_FWD_DEFINED__ */
+
+
+#ifndef __OnDemandUserAppsClass_FWD_DEFINED__
+#define __OnDemandUserAppsClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class OnDemandUserAppsClass OnDemandUserAppsClass;
+#else
+typedef struct OnDemandUserAppsClass OnDemandUserAppsClass;
+#endif /* __cplusplus */
+
+#endif /* __OnDemandUserAppsClass_FWD_DEFINED__ */
+
+
+#ifndef __OnDemandMachineAppsClass_FWD_DEFINED__
+#define __OnDemandMachineAppsClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class OnDemandMachineAppsClass OnDemandMachineAppsClass;
+#else
+typedef struct OnDemandMachineAppsClass OnDemandMachineAppsClass;
+#endif /* __cplusplus */
+
+#endif /* __OnDemandMachineAppsClass_FWD_DEFINED__ */
+
+
+#ifndef __OnDemandMachineAppsServiceClass_FWD_DEFINED__
+#define __OnDemandMachineAppsServiceClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class OnDemandMachineAppsServiceClass OnDemandMachineAppsServiceClass;
+#else
+typedef struct OnDemandMachineAppsServiceClass OnDemandMachineAppsServiceClass;
+#endif /* __cplusplus */
+
+#endif /* __OnDemandMachineAppsServiceClass_FWD_DEFINED__ */
+
+
+#ifndef __OnDemandMachineAppsFallbackClass_FWD_DEFINED__
+#define __OnDemandMachineAppsFallbackClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class OnDemandMachineAppsFallbackClass OnDemandMachineAppsFallbackClass;
+#else
+typedef struct OnDemandMachineAppsFallbackClass OnDemandMachineAppsFallbackClass;
+#endif /* __cplusplus */
+
+#endif /* __OnDemandMachineAppsFallbackClass_FWD_DEFINED__ */
+
+
+#ifndef __GoogleUpdateCoreClass_FWD_DEFINED__
+#define __GoogleUpdateCoreClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class GoogleUpdateCoreClass GoogleUpdateCoreClass;
+#else
+typedef struct GoogleUpdateCoreClass GoogleUpdateCoreClass;
+#endif /* __cplusplus */
+
+#endif /* __GoogleUpdateCoreClass_FWD_DEFINED__ */
+
+
+#ifndef __GoogleUpdateCoreMachineClass_FWD_DEFINED__
+#define __GoogleUpdateCoreMachineClass_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class GoogleUpdateCoreMachineClass GoogleUpdateCoreMachineClass;
+#else
+typedef struct GoogleUpdateCoreMachineClass GoogleUpdateCoreMachineClass;
+#endif /* __cplusplus */
+
+#endif /* __GoogleUpdateCoreMachineClass_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "oaidl.h"
+#include "ocidl.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_google_update_idl_0000_0000 */
+/* [local] */
+
+typedef
+enum BrowserType
+ {
+ BROWSER_UNKNOWN = 0,
+ BROWSER_DEFAULT = 1,
+ BROWSER_INTERNET_EXPLORER = 2,
+ BROWSER_FIREFOX = 3,
+ BROWSER_CHROME = 4
+ } BrowserType;
+
+typedef
+enum CurrentState
+ {
+ STATE_INIT = 1,
+ STATE_WAITING_TO_CHECK_FOR_UPDATE = 2,
+ STATE_CHECKING_FOR_UPDATE = 3,
+ STATE_UPDATE_AVAILABLE = 4,
+ STATE_WAITING_TO_DOWNLOAD = 5,
+ STATE_RETRYING_DOWNLOAD = 6,
+ STATE_DOWNLOADING = 7,
+ STATE_DOWNLOAD_COMPLETE = 8,
+ STATE_EXTRACTING = 9,
+ STATE_APPLYING_DIFFERENTIAL_PATCH = 10,
+ STATE_READY_TO_INSTALL = 11,
+ STATE_WAITING_TO_INSTALL = 12,
+ STATE_INSTALLING = 13,
+ STATE_INSTALL_COMPLETE = 14,
+ STATE_PAUSED = 15,
+ STATE_NO_UPDATE = 16,
+ STATE_ERROR = 17
+ } CurrentState;
+
+typedef
+enum InstallPriority
+ {
+ INSTALL_PRIORITY_LOW = 0,
+ INSTALL_PRIORITY_HIGH = 10
+ } InstallPriority;
+
+typedef
+enum PostInstallAction
+ {
+ POST_INSTALL_ACTION_DEFAULT = 0,
+ POST_INSTALL_ACTION_EXIT_SILENTLY = 1,
+ POST_INSTALL_ACTION_LAUNCH_COMMAND = 2,
+ POST_INSTALL_ACTION_EXIT_SILENTLY_ON_LAUNCH_COMMAND = 3,
+ POST_INSTALL_ACTION_RESTART_BROWSER = 4,
+ POST_INSTALL_ACTION_RESTART_ALL_BROWSERS = 5,
+ POST_INSTALL_ACTION_REBOOT = 6
+ } PostInstallAction;
+
+
+enum AppCommandStatus
+ {
+ COMMAND_STATUS_INIT = 1,
+ COMMAND_STATUS_RUNNING = 2,
+ COMMAND_STATUS_ERROR = 3,
+ COMMAND_STATUS_COMPLETE = 4
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_google_update_idl_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_google_update_idl_0000_0000_v0_0_s_ifspec;
+
+#ifndef __IGoogleUpdate3_INTERFACE_DEFINED__
+#define __IGoogleUpdate3_INTERFACE_DEFINED__
+
+/* interface IGoogleUpdate3 */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IGoogleUpdate3;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6DB17455-4E85-46e7-9D23-E555E4B005AF")
+ IGoogleUpdate3 : public IDispatch
+ {
+ public:
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Count(
+ /* [retval][out] */ long *count) = 0;
+
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Item(
+ /* [in] */ long index,
+ /* [retval][out] */ IDispatch **bundle) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE createAppBundle(
+ /* [retval][out] */ IDispatch **app_bundle) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IGoogleUpdate3Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IGoogleUpdate3 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IGoogleUpdate3 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IGoogleUpdate3 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IGoogleUpdate3 * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IGoogleUpdate3 * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IGoogleUpdate3 * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IGoogleUpdate3 * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
+ IGoogleUpdate3 * This,
+ /* [retval][out] */ long *count);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
+ IGoogleUpdate3 * This,
+ /* [in] */ long index,
+ /* [retval][out] */ IDispatch **bundle);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *createAppBundle )(
+ IGoogleUpdate3 * This,
+ /* [retval][out] */ IDispatch **app_bundle);
+
+ END_INTERFACE
+ } IGoogleUpdate3Vtbl;
+
+ interface IGoogleUpdate3
+ {
+ CONST_VTBL struct IGoogleUpdate3Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IGoogleUpdate3_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IGoogleUpdate3_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IGoogleUpdate3_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IGoogleUpdate3_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IGoogleUpdate3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IGoogleUpdate3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IGoogleUpdate3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IGoogleUpdate3_get_Count(This,count) \
+ ( (This)->lpVtbl -> get_Count(This,count) )
+
+#define IGoogleUpdate3_get_Item(This,index,bundle) \
+ ( (This)->lpVtbl -> get_Item(This,index,bundle) )
+
+#define IGoogleUpdate3_createAppBundle(This,app_bundle) \
+ ( (This)->lpVtbl -> createAppBundle(This,app_bundle) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IGoogleUpdate3_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAppBundle_INTERFACE_DEFINED__
+#define __IAppBundle_INTERFACE_DEFINED__
+
+/* interface IAppBundle */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IAppBundle;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("fe908cdd-22bb-472a-9870-1a0390e42f36")
+ IAppBundle : public IDispatch
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_displayName(
+ /* [retval][out] */ BSTR *__MIDL__IAppBundle0000) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_displayName(
+ /* [in] */ BSTR __MIDL__IAppBundle0001) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_displayLanguage(
+ /* [retval][out] */ BSTR *__MIDL__IAppBundle0002) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_displayLanguage(
+ /* [in] */ BSTR __MIDL__IAppBundle0003) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_installSource(
+ /* [retval][out] */ BSTR *__MIDL__IAppBundle0004) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_installSource(
+ /* [in] */ BSTR __MIDL__IAppBundle0005) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_originURL(
+ /* [retval][out] */ BSTR *__MIDL__IAppBundle0006) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_originURL(
+ /* [in] */ BSTR __MIDL__IAppBundle0007) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_offlineDirectory(
+ /* [retval][out] */ BSTR *offline_dir) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_offlineDirectory(
+ /* [in] */ BSTR offline_dir) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_sessionId(
+ /* [retval][out] */ BSTR *session_id) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_sessionId(
+ /* [in] */ BSTR session_id) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_sendPings(
+ /* [retval][out] */ VARIANT_BOOL *send_pings) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_sendPings(
+ /* [in] */ VARIANT_BOOL send_pings) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_priority(
+ /* [retval][out] */ long *priority) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_priority(
+ /* [in] */ long priority) = 0;
+
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Count(
+ /* [retval][out] */ long *count) = 0;
+
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Item(
+ /* [in] */ long index,
+ /* [retval][out] */ IDispatch **app) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_altTokens(
+ /* [in] */ ULONG_PTR impersonation_token,
+ /* [in] */ ULONG_PTR primary_token,
+ /* [in] */ DWORD caller_proc_id) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_parentHWND(
+ /* [in] */ ULONG_PTR hwnd) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE initialize( void) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE createApp(
+ /* [in] */ BSTR app_id,
+ /* [retval][out] */ IDispatch **app) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE createInstalledApp(
+ /* [in] */ BSTR app_id,
+ /* [retval][out] */ IDispatch **app) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE createAllInstalledApps( void) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE checkForUpdate( void) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE download( void) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE install( void) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE updateAllApps( void) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE stop( void) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE pause( void) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE resume( void) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE isBusy(
+ /* [retval][out] */ VARIANT_BOOL *is_busy) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE downloadPackage(
+ /* [in] */ BSTR app_id,
+ /* [in] */ BSTR package_name) = 0;
+
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_currentState(
+ /* [retval][out] */ VARIANT *current_state) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAppBundleVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAppBundle * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAppBundle * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAppBundle * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAppBundle * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAppBundle * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAppBundle * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAppBundle * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayName )(
+ IAppBundle * This,
+ /* [retval][out] */ BSTR *__MIDL__IAppBundle0000);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayName )(
+ IAppBundle * This,
+ /* [in] */ BSTR __MIDL__IAppBundle0001);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayLanguage )(
+ IAppBundle * This,
+ /* [retval][out] */ BSTR *__MIDL__IAppBundle0002);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayLanguage )(
+ IAppBundle * This,
+ /* [in] */ BSTR __MIDL__IAppBundle0003);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installSource )(
+ IAppBundle * This,
+ /* [retval][out] */ BSTR *__MIDL__IAppBundle0004);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_installSource )(
+ IAppBundle * This,
+ /* [in] */ BSTR __MIDL__IAppBundle0005);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_originURL )(
+ IAppBundle * This,
+ /* [retval][out] */ BSTR *__MIDL__IAppBundle0006);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_originURL )(
+ IAppBundle * This,
+ /* [in] */ BSTR __MIDL__IAppBundle0007);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offlineDirectory )(
+ IAppBundle * This,
+ /* [retval][out] */ BSTR *offline_dir);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_offlineDirectory )(
+ IAppBundle * This,
+ /* [in] */ BSTR offline_dir);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_sessionId )(
+ IAppBundle * This,
+ /* [retval][out] */ BSTR *session_id);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_sessionId )(
+ IAppBundle * This,
+ /* [in] */ BSTR session_id);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_sendPings )(
+ IAppBundle * This,
+ /* [retval][out] */ VARIANT_BOOL *send_pings);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_sendPings )(
+ IAppBundle * This,
+ /* [in] */ VARIANT_BOOL send_pings);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_priority )(
+ IAppBundle * This,
+ /* [retval][out] */ long *priority);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_priority )(
+ IAppBundle * This,
+ /* [in] */ long priority);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
+ IAppBundle * This,
+ /* [retval][out] */ long *count);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
+ IAppBundle * This,
+ /* [in] */ long index,
+ /* [retval][out] */ IDispatch **app);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_altTokens )(
+ IAppBundle * This,
+ /* [in] */ ULONG_PTR impersonation_token,
+ /* [in] */ ULONG_PTR primary_token,
+ /* [in] */ DWORD caller_proc_id);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_parentHWND )(
+ IAppBundle * This,
+ /* [in] */ ULONG_PTR hwnd);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *initialize )(
+ IAppBundle * This);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *createApp )(
+ IAppBundle * This,
+ /* [in] */ BSTR app_id,
+ /* [retval][out] */ IDispatch **app);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *createInstalledApp )(
+ IAppBundle * This,
+ /* [in] */ BSTR app_id,
+ /* [retval][out] */ IDispatch **app);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *createAllInstalledApps )(
+ IAppBundle * This);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *checkForUpdate )(
+ IAppBundle * This);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *download )(
+ IAppBundle * This);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *install )(
+ IAppBundle * This);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *updateAllApps )(
+ IAppBundle * This);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *stop )(
+ IAppBundle * This);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *pause )(
+ IAppBundle * This);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *resume )(
+ IAppBundle * This);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *isBusy )(
+ IAppBundle * This,
+ /* [retval][out] */ VARIANT_BOOL *is_busy);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *downloadPackage )(
+ IAppBundle * This,
+ /* [in] */ BSTR app_id,
+ /* [in] */ BSTR package_name);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )(
+ IAppBundle * This,
+ /* [retval][out] */ VARIANT *current_state);
+
+ END_INTERFACE
+ } IAppBundleVtbl;
+
+ interface IAppBundle
+ {
+ CONST_VTBL struct IAppBundleVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAppBundle_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAppBundle_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAppBundle_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAppBundle_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAppBundle_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAppBundle_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAppBundle_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAppBundle_get_displayName(This,__MIDL__IAppBundle0000) \
+ ( (This)->lpVtbl -> get_displayName(This,__MIDL__IAppBundle0000) )
+
+#define IAppBundle_put_displayName(This,__MIDL__IAppBundle0001) \
+ ( (This)->lpVtbl -> put_displayName(This,__MIDL__IAppBundle0001) )
+
+#define IAppBundle_get_displayLanguage(This,__MIDL__IAppBundle0002) \
+ ( (This)->lpVtbl -> get_displayLanguage(This,__MIDL__IAppBundle0002) )
+
+#define IAppBundle_put_displayLanguage(This,__MIDL__IAppBundle0003) \
+ ( (This)->lpVtbl -> put_displayLanguage(This,__MIDL__IAppBundle0003) )
+
+#define IAppBundle_get_installSource(This,__MIDL__IAppBundle0004) \
+ ( (This)->lpVtbl -> get_installSource(This,__MIDL__IAppBundle0004) )
+
+#define IAppBundle_put_installSource(This,__MIDL__IAppBundle0005) \
+ ( (This)->lpVtbl -> put_installSource(This,__MIDL__IAppBundle0005) )
+
+#define IAppBundle_get_originURL(This,__MIDL__IAppBundle0006) \
+ ( (This)->lpVtbl -> get_originURL(This,__MIDL__IAppBundle0006) )
+
+#define IAppBundle_put_originURL(This,__MIDL__IAppBundle0007) \
+ ( (This)->lpVtbl -> put_originURL(This,__MIDL__IAppBundle0007) )
+
+#define IAppBundle_get_offlineDirectory(This,offline_dir) \
+ ( (This)->lpVtbl -> get_offlineDirectory(This,offline_dir) )
+
+#define IAppBundle_put_offlineDirectory(This,offline_dir) \
+ ( (This)->lpVtbl -> put_offlineDirectory(This,offline_dir) )
+
+#define IAppBundle_get_sessionId(This,session_id) \
+ ( (This)->lpVtbl -> get_sessionId(This,session_id) )
+
+#define IAppBundle_put_sessionId(This,session_id) \
+ ( (This)->lpVtbl -> put_sessionId(This,session_id) )
+
+#define IAppBundle_get_sendPings(This,send_pings) \
+ ( (This)->lpVtbl -> get_sendPings(This,send_pings) )
+
+#define IAppBundle_put_sendPings(This,send_pings) \
+ ( (This)->lpVtbl -> put_sendPings(This,send_pings) )
+
+#define IAppBundle_get_priority(This,priority) \
+ ( (This)->lpVtbl -> get_priority(This,priority) )
+
+#define IAppBundle_put_priority(This,priority) \
+ ( (This)->lpVtbl -> put_priority(This,priority) )
+
+#define IAppBundle_get_Count(This,count) \
+ ( (This)->lpVtbl -> get_Count(This,count) )
+
+#define IAppBundle_get_Item(This,index,app) \
+ ( (This)->lpVtbl -> get_Item(This,index,app) )
+
+#define IAppBundle_put_altTokens(This,impersonation_token,primary_token,caller_proc_id) \
+ ( (This)->lpVtbl -> put_altTokens(This,impersonation_token,primary_token,caller_proc_id) )
+
+#define IAppBundle_put_parentHWND(This,hwnd) \
+ ( (This)->lpVtbl -> put_parentHWND(This,hwnd) )
+
+#define IAppBundle_initialize(This) \
+ ( (This)->lpVtbl -> initialize(This) )
+
+#define IAppBundle_createApp(This,app_id,app) \
+ ( (This)->lpVtbl -> createApp(This,app_id,app) )
+
+#define IAppBundle_createInstalledApp(This,app_id,app) \
+ ( (This)->lpVtbl -> createInstalledApp(This,app_id,app) )
+
+#define IAppBundle_createAllInstalledApps(This) \
+ ( (This)->lpVtbl -> createAllInstalledApps(This) )
+
+#define IAppBundle_checkForUpdate(This) \
+ ( (This)->lpVtbl -> checkForUpdate(This) )
+
+#define IAppBundle_download(This) \
+ ( (This)->lpVtbl -> download(This) )
+
+#define IAppBundle_install(This) \
+ ( (This)->lpVtbl -> install(This) )
+
+#define IAppBundle_updateAllApps(This) \
+ ( (This)->lpVtbl -> updateAllApps(This) )
+
+#define IAppBundle_stop(This) \
+ ( (This)->lpVtbl -> stop(This) )
+
+#define IAppBundle_pause(This) \
+ ( (This)->lpVtbl -> pause(This) )
+
+#define IAppBundle_resume(This) \
+ ( (This)->lpVtbl -> resume(This) )
+
+#define IAppBundle_isBusy(This,is_busy) \
+ ( (This)->lpVtbl -> isBusy(This,is_busy) )
+
+#define IAppBundle_downloadPackage(This,app_id,package_name) \
+ ( (This)->lpVtbl -> downloadPackage(This,app_id,package_name) )
+
+#define IAppBundle_get_currentState(This,current_state) \
+ ( (This)->lpVtbl -> get_currentState(This,current_state) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAppBundle_INTERFACE_DEFINED__ */
+
+
+#ifndef __IApp_INTERFACE_DEFINED__
+#define __IApp_INTERFACE_DEFINED__
+
+/* interface IApp */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IApp;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("76F7B787-A67C-4c73-82C7-31F5E3AABC5C")
+ IApp : public IDispatch
+ {
+ public:
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_currentVersion(
+ /* [retval][out] */ IDispatch **current) = 0;
+
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_nextVersion(
+ /* [retval][out] */ IDispatch **next) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appId(
+ /* [retval][out] */ BSTR *__MIDL__IApp0000) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_displayName(
+ /* [retval][out] */ BSTR *__MIDL__IApp0001) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_displayName(
+ /* [in] */ BSTR __MIDL__IApp0002) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_language(
+ /* [retval][out] */ BSTR *__MIDL__IApp0003) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_language(
+ /* [in] */ BSTR __MIDL__IApp0004) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ap(
+ /* [retval][out] */ BSTR *__MIDL__IApp0005) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ap(
+ /* [in] */ BSTR __MIDL__IApp0006) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ttToken(
+ /* [retval][out] */ BSTR *__MIDL__IApp0007) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ttToken(
+ /* [in] */ BSTR __MIDL__IApp0008) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_iid(
+ /* [retval][out] */ BSTR *__MIDL__IApp0009) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_iid(
+ /* [in] */ BSTR __MIDL__IApp0010) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_brandCode(
+ /* [retval][out] */ BSTR *__MIDL__IApp0011) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_brandCode(
+ /* [in] */ BSTR __MIDL__IApp0012) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_clientId(
+ /* [retval][out] */ BSTR *__MIDL__IApp0013) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_clientId(
+ /* [in] */ BSTR __MIDL__IApp0014) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_labels(
+ /* [retval][out] */ BSTR *__MIDL__IApp0015) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_labels(
+ /* [in] */ BSTR __MIDL__IApp0016) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_referralId(
+ /* [retval][out] */ BSTR *__MIDL__IApp0017) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_referralId(
+ /* [in] */ BSTR __MIDL__IApp0018) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_command(
+ /* [in] */ BSTR command_id,
+ /* [retval][out] */ IDispatch **command) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_browserType(
+ /* [retval][out] */ UINT *__MIDL__IApp0019) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_browserType(
+ /* [in] */ UINT __MIDL__IApp0020) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_clientInstallData(
+ /* [retval][out] */ BSTR *__MIDL__IApp0021) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_clientInstallData(
+ /* [in] */ BSTR __MIDL__IApp0022) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_serverInstallDataIndex(
+ /* [retval][out] */ BSTR *__MIDL__IApp0023) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_serverInstallDataIndex(
+ /* [in] */ BSTR __MIDL__IApp0024) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isEulaAccepted(
+ /* [retval][out] */ VARIANT_BOOL *__MIDL__IApp0025) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_isEulaAccepted(
+ /* [in] */ VARIANT_BOOL __MIDL__IApp0026) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_usageStatsEnable(
+ /* [retval][out] */ UINT *__MIDL__IApp0027) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_usageStatsEnable(
+ /* [in] */ UINT __MIDL__IApp0028) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_installTimeDiffSec(
+ /* [retval][out] */ UINT *__MIDL__IApp0029) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_currentState(
+ /* [retval][out] */ IDispatch **__MIDL__IApp0030) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAppVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IApp * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IApp * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IApp * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IApp * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IApp * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IApp * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IApp * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_currentVersion )(
+ IApp * This,
+ /* [retval][out] */ IDispatch **current);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersion )(
+ IApp * This,
+ /* [retval][out] */ IDispatch **next);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0000);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayName )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0001);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayName )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0002);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0003);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_language )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0004);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ap )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0005);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ap )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0006);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ttToken )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0007);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ttToken )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0008);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_iid )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0009);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_iid )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0010);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_brandCode )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0011);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_brandCode )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0012);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_clientId )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0013);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_clientId )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0014);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_labels )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0015);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_labels )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0016);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_referralId )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0017);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_referralId )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0018);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_command )(
+ IApp * This,
+ /* [in] */ BSTR command_id,
+ /* [retval][out] */ IDispatch **command);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_browserType )(
+ IApp * This,
+ /* [retval][out] */ UINT *__MIDL__IApp0019);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_browserType )(
+ IApp * This,
+ /* [in] */ UINT __MIDL__IApp0020);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_clientInstallData )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0021);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_clientInstallData )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0022);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_serverInstallDataIndex )(
+ IApp * This,
+ /* [retval][out] */ BSTR *__MIDL__IApp0023);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_serverInstallDataIndex )(
+ IApp * This,
+ /* [in] */ BSTR __MIDL__IApp0024);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isEulaAccepted )(
+ IApp * This,
+ /* [retval][out] */ VARIANT_BOOL *__MIDL__IApp0025);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_isEulaAccepted )(
+ IApp * This,
+ /* [in] */ VARIANT_BOOL __MIDL__IApp0026);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_usageStatsEnable )(
+ IApp * This,
+ /* [retval][out] */ UINT *__MIDL__IApp0027);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_usageStatsEnable )(
+ IApp * This,
+ /* [in] */ UINT __MIDL__IApp0028);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installTimeDiffSec )(
+ IApp * This,
+ /* [retval][out] */ UINT *__MIDL__IApp0029);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )(
+ IApp * This,
+ /* [retval][out] */ IDispatch **__MIDL__IApp0030);
+
+ END_INTERFACE
+ } IAppVtbl;
+
+ interface IApp
+ {
+ CONST_VTBL struct IAppVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IApp_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IApp_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IApp_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IApp_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IApp_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IApp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IApp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IApp_get_currentVersion(This,current) \
+ ( (This)->lpVtbl -> get_currentVersion(This,current) )
+
+#define IApp_get_nextVersion(This,next) \
+ ( (This)->lpVtbl -> get_nextVersion(This,next) )
+
+#define IApp_get_appId(This,__MIDL__IApp0000) \
+ ( (This)->lpVtbl -> get_appId(This,__MIDL__IApp0000) )
+
+#define IApp_get_displayName(This,__MIDL__IApp0001) \
+ ( (This)->lpVtbl -> get_displayName(This,__MIDL__IApp0001) )
+
+#define IApp_put_displayName(This,__MIDL__IApp0002) \
+ ( (This)->lpVtbl -> put_displayName(This,__MIDL__IApp0002) )
+
+#define IApp_get_language(This,__MIDL__IApp0003) \
+ ( (This)->lpVtbl -> get_language(This,__MIDL__IApp0003) )
+
+#define IApp_put_language(This,__MIDL__IApp0004) \
+ ( (This)->lpVtbl -> put_language(This,__MIDL__IApp0004) )
+
+#define IApp_get_ap(This,__MIDL__IApp0005) \
+ ( (This)->lpVtbl -> get_ap(This,__MIDL__IApp0005) )
+
+#define IApp_put_ap(This,__MIDL__IApp0006) \
+ ( (This)->lpVtbl -> put_ap(This,__MIDL__IApp0006) )
+
+#define IApp_get_ttToken(This,__MIDL__IApp0007) \
+ ( (This)->lpVtbl -> get_ttToken(This,__MIDL__IApp0007) )
+
+#define IApp_put_ttToken(This,__MIDL__IApp0008) \
+ ( (This)->lpVtbl -> put_ttToken(This,__MIDL__IApp0008) )
+
+#define IApp_get_iid(This,__MIDL__IApp0009) \
+ ( (This)->lpVtbl -> get_iid(This,__MIDL__IApp0009) )
+
+#define IApp_put_iid(This,__MIDL__IApp0010) \
+ ( (This)->lpVtbl -> put_iid(This,__MIDL__IApp0010) )
+
+#define IApp_get_brandCode(This,__MIDL__IApp0011) \
+ ( (This)->lpVtbl -> get_brandCode(This,__MIDL__IApp0011) )
+
+#define IApp_put_brandCode(This,__MIDL__IApp0012) \
+ ( (This)->lpVtbl -> put_brandCode(This,__MIDL__IApp0012) )
+
+#define IApp_get_clientId(This,__MIDL__IApp0013) \
+ ( (This)->lpVtbl -> get_clientId(This,__MIDL__IApp0013) )
+
+#define IApp_put_clientId(This,__MIDL__IApp0014) \
+ ( (This)->lpVtbl -> put_clientId(This,__MIDL__IApp0014) )
+
+#define IApp_get_labels(This,__MIDL__IApp0015) \
+ ( (This)->lpVtbl -> get_labels(This,__MIDL__IApp0015) )
+
+#define IApp_put_labels(This,__MIDL__IApp0016) \
+ ( (This)->lpVtbl -> put_labels(This,__MIDL__IApp0016) )
+
+#define IApp_get_referralId(This,__MIDL__IApp0017) \
+ ( (This)->lpVtbl -> get_referralId(This,__MIDL__IApp0017) )
+
+#define IApp_put_referralId(This,__MIDL__IApp0018) \
+ ( (This)->lpVtbl -> put_referralId(This,__MIDL__IApp0018) )
+
+#define IApp_get_command(This,command_id,command) \
+ ( (This)->lpVtbl -> get_command(This,command_id,command) )
+
+#define IApp_get_browserType(This,__MIDL__IApp0019) \
+ ( (This)->lpVtbl -> get_browserType(This,__MIDL__IApp0019) )
+
+#define IApp_put_browserType(This,__MIDL__IApp0020) \
+ ( (This)->lpVtbl -> put_browserType(This,__MIDL__IApp0020) )
+
+#define IApp_get_clientInstallData(This,__MIDL__IApp0021) \
+ ( (This)->lpVtbl -> get_clientInstallData(This,__MIDL__IApp0021) )
+
+#define IApp_put_clientInstallData(This,__MIDL__IApp0022) \
+ ( (This)->lpVtbl -> put_clientInstallData(This,__MIDL__IApp0022) )
+
+#define IApp_get_serverInstallDataIndex(This,__MIDL__IApp0023) \
+ ( (This)->lpVtbl -> get_serverInstallDataIndex(This,__MIDL__IApp0023) )
+
+#define IApp_put_serverInstallDataIndex(This,__MIDL__IApp0024) \
+ ( (This)->lpVtbl -> put_serverInstallDataIndex(This,__MIDL__IApp0024) )
+
+#define IApp_get_isEulaAccepted(This,__MIDL__IApp0025) \
+ ( (This)->lpVtbl -> get_isEulaAccepted(This,__MIDL__IApp0025) )
+
+#define IApp_put_isEulaAccepted(This,__MIDL__IApp0026) \
+ ( (This)->lpVtbl -> put_isEulaAccepted(This,__MIDL__IApp0026) )
+
+#define IApp_get_usageStatsEnable(This,__MIDL__IApp0027) \
+ ( (This)->lpVtbl -> get_usageStatsEnable(This,__MIDL__IApp0027) )
+
+#define IApp_put_usageStatsEnable(This,__MIDL__IApp0028) \
+ ( (This)->lpVtbl -> put_usageStatsEnable(This,__MIDL__IApp0028) )
+
+#define IApp_get_installTimeDiffSec(This,__MIDL__IApp0029) \
+ ( (This)->lpVtbl -> get_installTimeDiffSec(This,__MIDL__IApp0029) )
+
+#define IApp_get_currentState(This,__MIDL__IApp0030) \
+ ( (This)->lpVtbl -> get_currentState(This,__MIDL__IApp0030) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IApp_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAppCommand_INTERFACE_DEFINED__
+#define __IAppCommand_INTERFACE_DEFINED__
+
+/* interface IAppCommand */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IAppCommand;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("4DE778FE-F195-4ee3-9DAB-FE446C239221")
+ IAppCommand : public IDispatch
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isWebAccessible(
+ /* [retval][out] */ VARIANT_BOOL *__MIDL__IAppCommand0000) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_status(
+ /* [retval][out] */ UINT *__MIDL__IAppCommand0001) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_exitCode(
+ /* [retval][out] */ DWORD *__MIDL__IAppCommand0002) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE execute(
+ /* [optional][in] */ VARIANT arg1,
+ /* [optional][in] */ VARIANT arg2,
+ /* [optional][in] */ VARIANT arg3,
+ /* [optional][in] */ VARIANT arg4,
+ /* [optional][in] */ VARIANT arg5,
+ /* [optional][in] */ VARIANT arg6,
+ /* [optional][in] */ VARIANT arg7,
+ /* [optional][in] */ VARIANT arg8,
+ /* [optional][in] */ VARIANT arg9) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAppCommandVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAppCommand * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAppCommand * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAppCommand * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAppCommand * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAppCommand * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAppCommand * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAppCommand * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isWebAccessible )(
+ IAppCommand * This,
+ /* [retval][out] */ VARIANT_BOOL *__MIDL__IAppCommand0000);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_status )(
+ IAppCommand * This,
+ /* [retval][out] */ UINT *__MIDL__IAppCommand0001);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_exitCode )(
+ IAppCommand * This,
+ /* [retval][out] */ DWORD *__MIDL__IAppCommand0002);
+
+ HRESULT ( STDMETHODCALLTYPE *execute )(
+ IAppCommand * This,
+ /* [optional][in] */ VARIANT arg1,
+ /* [optional][in] */ VARIANT arg2,
+ /* [optional][in] */ VARIANT arg3,
+ /* [optional][in] */ VARIANT arg4,
+ /* [optional][in] */ VARIANT arg5,
+ /* [optional][in] */ VARIANT arg6,
+ /* [optional][in] */ VARIANT arg7,
+ /* [optional][in] */ VARIANT arg8,
+ /* [optional][in] */ VARIANT arg9);
+
+ END_INTERFACE
+ } IAppCommandVtbl;
+
+ interface IAppCommand
+ {
+ CONST_VTBL struct IAppCommandVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAppCommand_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAppCommand_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAppCommand_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAppCommand_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAppCommand_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAppCommand_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAppCommand_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAppCommand_get_isWebAccessible(This,__MIDL__IAppCommand0000) \
+ ( (This)->lpVtbl -> get_isWebAccessible(This,__MIDL__IAppCommand0000) )
+
+#define IAppCommand_get_status(This,__MIDL__IAppCommand0001) \
+ ( (This)->lpVtbl -> get_status(This,__MIDL__IAppCommand0001) )
+
+#define IAppCommand_get_exitCode(This,__MIDL__IAppCommand0002) \
+ ( (This)->lpVtbl -> get_exitCode(This,__MIDL__IAppCommand0002) )
+
+#define IAppCommand_execute(This,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) \
+ ( (This)->lpVtbl -> execute(This,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAppCommand_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAppVersion_INTERFACE_DEFINED__
+#define __IAppVersion_INTERFACE_DEFINED__
+
+/* interface IAppVersion */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IAppVersion;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("BCDCB538-01C0-46d1-A6A7-52F4D021C272")
+ IAppVersion : public IDispatch
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_version(
+ /* [retval][out] */ BSTR *__MIDL__IAppVersion0000) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_packageCount(
+ /* [retval][out] */ long *count) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_package(
+ /* [in] */ long index,
+ /* [retval][out] */ IDispatch **package) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAppVersionVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAppVersion * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAppVersion * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAppVersion * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAppVersion * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAppVersion * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAppVersion * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAppVersion * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_version )(
+ IAppVersion * This,
+ /* [retval][out] */ BSTR *__MIDL__IAppVersion0000);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCount )(
+ IAppVersion * This,
+ /* [retval][out] */ long *count);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_package )(
+ IAppVersion * This,
+ /* [in] */ long index,
+ /* [retval][out] */ IDispatch **package);
+
+ END_INTERFACE
+ } IAppVersionVtbl;
+
+ interface IAppVersion
+ {
+ CONST_VTBL struct IAppVersionVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAppVersion_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAppVersion_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAppVersion_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAppVersion_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAppVersion_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAppVersion_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAppVersion_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAppVersion_get_version(This,__MIDL__IAppVersion0000) \
+ ( (This)->lpVtbl -> get_version(This,__MIDL__IAppVersion0000) )
+
+#define IAppVersion_get_packageCount(This,count) \
+ ( (This)->lpVtbl -> get_packageCount(This,count) )
+
+#define IAppVersion_get_package(This,index,package) \
+ ( (This)->lpVtbl -> get_package(This,index,package) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAppVersion_INTERFACE_DEFINED__ */
+
+
+#ifndef __IPackage_INTERFACE_DEFINED__
+#define __IPackage_INTERFACE_DEFINED__
+
+/* interface IPackage */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IPackage;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("DCAB8386-4F03-4dbd-A366-D90BC9F68DE6")
+ IPackage : public IDispatch
+ {
+ public:
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE get(
+ /* [in] */ BSTR dir) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isAvailable(
+ /* [retval][out] */ VARIANT_BOOL *__MIDL__IPackage0000) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_filename(
+ /* [retval][out] */ BSTR *__MIDL__IPackage0001) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IPackageVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IPackage * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IPackage * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IPackage * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IPackage * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IPackage * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IPackage * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IPackage * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *get )(
+ IPackage * This,
+ /* [in] */ BSTR dir);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAvailable )(
+ IPackage * This,
+ /* [retval][out] */ VARIANT_BOOL *__MIDL__IPackage0000);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_filename )(
+ IPackage * This,
+ /* [retval][out] */ BSTR *__MIDL__IPackage0001);
+
+ END_INTERFACE
+ } IPackageVtbl;
+
+ interface IPackage
+ {
+ CONST_VTBL struct IPackageVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IPackage_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IPackage_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IPackage_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IPackage_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IPackage_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IPackage_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IPackage_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IPackage_get(This,dir) \
+ ( (This)->lpVtbl -> get(This,dir) )
+
+#define IPackage_get_isAvailable(This,__MIDL__IPackage0000) \
+ ( (This)->lpVtbl -> get_isAvailable(This,__MIDL__IPackage0000) )
+
+#define IPackage_get_filename(This,__MIDL__IPackage0001) \
+ ( (This)->lpVtbl -> get_filename(This,__MIDL__IPackage0001) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IPackage_INTERFACE_DEFINED__ */
+
+
+#ifndef __ICurrentState_INTERFACE_DEFINED__
+#define __ICurrentState_INTERFACE_DEFINED__
+
+/* interface ICurrentState */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_ICurrentState;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("247954F9-9EDC-4E68-8CC3-150C2B89EADF")
+ ICurrentState : public IDispatch
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_stateValue(
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0000) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_availableVersion(
+ /* [retval][out] */ BSTR *__MIDL__ICurrentState0001) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_bytesDownloaded(
+ /* [retval][out] */ ULONG *__MIDL__ICurrentState0002) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_totalBytesToDownload(
+ /* [retval][out] */ ULONG *__MIDL__ICurrentState0003) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_downloadTimeRemainingMs(
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0004) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nextRetryTime(
+ /* [retval][out] */ ULONGLONG *__MIDL__ICurrentState0005) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_installProgress(
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0006) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_installTimeRemainingMs(
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0007) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isCanceled(
+ /* [retval][out] */ VARIANT_BOOL *is_canceled) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_errorCode(
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0008) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extraCode1(
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0009) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_completionMessage(
+ /* [retval][out] */ BSTR *__MIDL__ICurrentState0010) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_installerResultCode(
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0011) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_installerResultExtraCode1(
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0012) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_postInstallLaunchCommandLine(
+ /* [retval][out] */ BSTR *__MIDL__ICurrentState0013) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_postInstallUrl(
+ /* [retval][out] */ BSTR *__MIDL__ICurrentState0014) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_postInstallAction(
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0015) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ICurrentStateVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ICurrentState * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ICurrentState * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ICurrentState * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ICurrentState * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ICurrentState * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ICurrentState * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ICurrentState * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_stateValue )(
+ ICurrentState * This,
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0000);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_availableVersion )(
+ ICurrentState * This,
+ /* [retval][out] */ BSTR *__MIDL__ICurrentState0001);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_bytesDownloaded )(
+ ICurrentState * This,
+ /* [retval][out] */ ULONG *__MIDL__ICurrentState0002);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_totalBytesToDownload )(
+ ICurrentState * This,
+ /* [retval][out] */ ULONG *__MIDL__ICurrentState0003);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_downloadTimeRemainingMs )(
+ ICurrentState * This,
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0004);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextRetryTime )(
+ ICurrentState * This,
+ /* [retval][out] */ ULONGLONG *__MIDL__ICurrentState0005);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installProgress )(
+ ICurrentState * This,
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0006);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installTimeRemainingMs )(
+ ICurrentState * This,
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0007);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCanceled )(
+ ICurrentState * This,
+ /* [retval][out] */ VARIANT_BOOL *is_canceled);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_errorCode )(
+ ICurrentState * This,
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0008);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extraCode1 )(
+ ICurrentState * This,
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0009);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_completionMessage )(
+ ICurrentState * This,
+ /* [retval][out] */ BSTR *__MIDL__ICurrentState0010);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installerResultCode )(
+ ICurrentState * This,
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0011);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installerResultExtraCode1 )(
+ ICurrentState * This,
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0012);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallLaunchCommandLine )(
+ ICurrentState * This,
+ /* [retval][out] */ BSTR *__MIDL__ICurrentState0013);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallUrl )(
+ ICurrentState * This,
+ /* [retval][out] */ BSTR *__MIDL__ICurrentState0014);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallAction )(
+ ICurrentState * This,
+ /* [retval][out] */ LONG *__MIDL__ICurrentState0015);
+
+ END_INTERFACE
+ } ICurrentStateVtbl;
+
+ interface ICurrentState
+ {
+ CONST_VTBL struct ICurrentStateVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ICurrentState_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ICurrentState_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ICurrentState_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ICurrentState_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define ICurrentState_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define ICurrentState_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define ICurrentState_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define ICurrentState_get_stateValue(This,__MIDL__ICurrentState0000) \
+ ( (This)->lpVtbl -> get_stateValue(This,__MIDL__ICurrentState0000) )
+
+#define ICurrentState_get_availableVersion(This,__MIDL__ICurrentState0001) \
+ ( (This)->lpVtbl -> get_availableVersion(This,__MIDL__ICurrentState0001) )
+
+#define ICurrentState_get_bytesDownloaded(This,__MIDL__ICurrentState0002) \
+ ( (This)->lpVtbl -> get_bytesDownloaded(This,__MIDL__ICurrentState0002) )
+
+#define ICurrentState_get_totalBytesToDownload(This,__MIDL__ICurrentState0003) \
+ ( (This)->lpVtbl -> get_totalBytesToDownload(This,__MIDL__ICurrentState0003) )
+
+#define ICurrentState_get_downloadTimeRemainingMs(This,__MIDL__ICurrentState0004) \
+ ( (This)->lpVtbl -> get_downloadTimeRemainingMs(This,__MIDL__ICurrentState0004) )
+
+#define ICurrentState_get_nextRetryTime(This,__MIDL__ICurrentState0005) \
+ ( (This)->lpVtbl -> get_nextRetryTime(This,__MIDL__ICurrentState0005) )
+
+#define ICurrentState_get_installProgress(This,__MIDL__ICurrentState0006) \
+ ( (This)->lpVtbl -> get_installProgress(This,__MIDL__ICurrentState0006) )
+
+#define ICurrentState_get_installTimeRemainingMs(This,__MIDL__ICurrentState0007) \
+ ( (This)->lpVtbl -> get_installTimeRemainingMs(This,__MIDL__ICurrentState0007) )
+
+#define ICurrentState_get_isCanceled(This,is_canceled) \
+ ( (This)->lpVtbl -> get_isCanceled(This,is_canceled) )
+
+#define ICurrentState_get_errorCode(This,__MIDL__ICurrentState0008) \
+ ( (This)->lpVtbl -> get_errorCode(This,__MIDL__ICurrentState0008) )
+
+#define ICurrentState_get_extraCode1(This,__MIDL__ICurrentState0009) \
+ ( (This)->lpVtbl -> get_extraCode1(This,__MIDL__ICurrentState0009) )
+
+#define ICurrentState_get_completionMessage(This,__MIDL__ICurrentState0010) \
+ ( (This)->lpVtbl -> get_completionMessage(This,__MIDL__ICurrentState0010) )
+
+#define ICurrentState_get_installerResultCode(This,__MIDL__ICurrentState0011) \
+ ( (This)->lpVtbl -> get_installerResultCode(This,__MIDL__ICurrentState0011) )
+
+#define ICurrentState_get_installerResultExtraCode1(This,__MIDL__ICurrentState0012) \
+ ( (This)->lpVtbl -> get_installerResultExtraCode1(This,__MIDL__ICurrentState0012) )
+
+#define ICurrentState_get_postInstallLaunchCommandLine(This,__MIDL__ICurrentState0013) \
+ ( (This)->lpVtbl -> get_postInstallLaunchCommandLine(This,__MIDL__ICurrentState0013) )
+
+#define ICurrentState_get_postInstallUrl(This,__MIDL__ICurrentState0014) \
+ ( (This)->lpVtbl -> get_postInstallUrl(This,__MIDL__ICurrentState0014) )
+
+#define ICurrentState_get_postInstallAction(This,__MIDL__ICurrentState0015) \
+ ( (This)->lpVtbl -> get_postInstallAction(This,__MIDL__ICurrentState0015) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ICurrentState_INTERFACE_DEFINED__ */
+
+
+#ifndef __IRegistrationUpdateHook_INTERFACE_DEFINED__
+#define __IRegistrationUpdateHook_INTERFACE_DEFINED__
+
+/* interface IRegistrationUpdateHook */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IRegistrationUpdateHook;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("4E223325-C16B-4eeb-AEDC-19AA99A237FA")
+ IRegistrationUpdateHook : public IDispatch
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE UpdateRegistry(
+ /* [in] */ BSTR app_id,
+ /* [in] */ VARIANT_BOOL is_machine) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IRegistrationUpdateHookVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IRegistrationUpdateHook * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IRegistrationUpdateHook * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IRegistrationUpdateHook * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IRegistrationUpdateHook * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IRegistrationUpdateHook * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IRegistrationUpdateHook * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IRegistrationUpdateHook * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ HRESULT ( STDMETHODCALLTYPE *UpdateRegistry )(
+ IRegistrationUpdateHook * This,
+ /* [in] */ BSTR app_id,
+ /* [in] */ VARIANT_BOOL is_machine);
+
+ END_INTERFACE
+ } IRegistrationUpdateHookVtbl;
+
+ interface IRegistrationUpdateHook
+ {
+ CONST_VTBL struct IRegistrationUpdateHookVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IRegistrationUpdateHook_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IRegistrationUpdateHook_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IRegistrationUpdateHook_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IRegistrationUpdateHook_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IRegistrationUpdateHook_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IRegistrationUpdateHook_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IRegistrationUpdateHook_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IRegistrationUpdateHook_UpdateRegistry(This,app_id,is_machine) \
+ ( (This)->lpVtbl -> UpdateRegistry(This,app_id,is_machine) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IRegistrationUpdateHook_INTERFACE_DEFINED__ */
+
+
+#ifndef __ICredentialDialog_INTERFACE_DEFINED__
+#define __ICredentialDialog_INTERFACE_DEFINED__
+
+/* interface ICredentialDialog */
+/* [unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ICredentialDialog;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("b3a47570-0a85-4aea-8270-529d47899603")
+ ICredentialDialog : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE QueryUserForCredentials(
+ /* [in] */ ULONG_PTR owner_hwnd,
+ /* [in] */ BSTR server,
+ /* [in] */ BSTR message,
+ /* [out] */ BSTR *username,
+ /* [out] */ BSTR *password) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ICredentialDialogVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ICredentialDialog * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ICredentialDialog * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ICredentialDialog * This);
+
+ HRESULT ( STDMETHODCALLTYPE *QueryUserForCredentials )(
+ ICredentialDialog * This,
+ /* [in] */ ULONG_PTR owner_hwnd,
+ /* [in] */ BSTR server,
+ /* [in] */ BSTR message,
+ /* [out] */ BSTR *username,
+ /* [out] */ BSTR *password);
+
+ END_INTERFACE
+ } ICredentialDialogVtbl;
+
+ interface ICredentialDialog
+ {
+ CONST_VTBL struct ICredentialDialogVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ICredentialDialog_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ICredentialDialog_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ICredentialDialog_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ICredentialDialog_QueryUserForCredentials(This,owner_hwnd,server,message,username,password) \
+ ( (This)->lpVtbl -> QueryUserForCredentials(This,owner_hwnd,server,message,username,password) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ICredentialDialog_INTERFACE_DEFINED__ */
+
+
+#ifndef __IGoogleUpdate3Web_INTERFACE_DEFINED__
+#define __IGoogleUpdate3Web_INTERFACE_DEFINED__
+
+/* interface IGoogleUpdate3Web */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IGoogleUpdate3Web;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("494B20CF-282E-4BDD-9F5D-B70CB09D351E")
+ IGoogleUpdate3Web : public IDispatch
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE createAppBundleWeb(
+ /* [retval][out] */ IDispatch **app_bundle_web) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IGoogleUpdate3WebVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IGoogleUpdate3Web * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IGoogleUpdate3Web * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IGoogleUpdate3Web * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IGoogleUpdate3Web * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IGoogleUpdate3Web * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IGoogleUpdate3Web * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IGoogleUpdate3Web * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ HRESULT ( STDMETHODCALLTYPE *createAppBundleWeb )(
+ IGoogleUpdate3Web * This,
+ /* [retval][out] */ IDispatch **app_bundle_web);
+
+ END_INTERFACE
+ } IGoogleUpdate3WebVtbl;
+
+ interface IGoogleUpdate3Web
+ {
+ CONST_VTBL struct IGoogleUpdate3WebVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IGoogleUpdate3Web_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IGoogleUpdate3Web_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IGoogleUpdate3Web_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IGoogleUpdate3Web_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IGoogleUpdate3Web_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IGoogleUpdate3Web_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IGoogleUpdate3Web_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IGoogleUpdate3Web_createAppBundleWeb(This,app_bundle_web) \
+ ( (This)->lpVtbl -> createAppBundleWeb(This,app_bundle_web) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IGoogleUpdate3Web_INTERFACE_DEFINED__ */
+
+
+#ifndef __IGoogleUpdate3WebSecurity_INTERFACE_DEFINED__
+#define __IGoogleUpdate3WebSecurity_INTERFACE_DEFINED__
+
+/* interface IGoogleUpdate3WebSecurity */
+/* [unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_IGoogleUpdate3WebSecurity;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("2D363682-561D-4c3a-81C6-F2F82107562A")
+ IGoogleUpdate3WebSecurity : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE setOriginURL(
+ /* [in] */ BSTR origin_url) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IGoogleUpdate3WebSecurityVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IGoogleUpdate3WebSecurity * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IGoogleUpdate3WebSecurity * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IGoogleUpdate3WebSecurity * This);
+
+ HRESULT ( STDMETHODCALLTYPE *setOriginURL )(
+ IGoogleUpdate3WebSecurity * This,
+ /* [in] */ BSTR origin_url);
+
+ END_INTERFACE
+ } IGoogleUpdate3WebSecurityVtbl;
+
+ interface IGoogleUpdate3WebSecurity
+ {
+ CONST_VTBL struct IGoogleUpdate3WebSecurityVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IGoogleUpdate3WebSecurity_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IGoogleUpdate3WebSecurity_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IGoogleUpdate3WebSecurity_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IGoogleUpdate3WebSecurity_setOriginURL(This,origin_url) \
+ ( (This)->lpVtbl -> setOriginURL(This,origin_url) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IGoogleUpdate3WebSecurity_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAppBundleWeb_INTERFACE_DEFINED__
+#define __IAppBundleWeb_INTERFACE_DEFINED__
+
+/* interface IAppBundleWeb */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IAppBundleWeb;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("DD42475D-6D46-496a-924E-BD5630B4CBBA")
+ IAppBundleWeb : public IDispatch
+ {
+ public:
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE createApp(
+ /* [in] */ BSTR app_guid,
+ /* [in] */ BSTR brand_code,
+ /* [in] */ BSTR language,
+ /* [in] */ BSTR ap) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE createInstalledApp(
+ /* [in] */ BSTR app_id) = 0;
+
+ virtual /* [id] */ HRESULT STDMETHODCALLTYPE createAllInstalledApps( void) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_displayLanguage(
+ /* [retval][out] */ BSTR *__MIDL__IAppBundleWeb0000) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_displayLanguage(
+ /* [in] */ BSTR __MIDL__IAppBundleWeb0001) = 0;
+
+ virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_parentHWND(
+ /* [in] */ ULONG_PTR hwnd) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_length(
+ /* [retval][out] */ int *index) = 0;
+
+ virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_appWeb(
+ /* [in] */ int index,
+ /* [retval][out] */ IDispatch **app_web) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE initialize( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE checkForUpdate( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE download( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE install( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE pause( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE resume( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE cancel( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE downloadPackage(
+ /* [in] */ BSTR app_id,
+ /* [in] */ BSTR package_name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_currentState(
+ /* [retval][out] */ VARIANT *current_state) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAppBundleWebVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAppBundleWeb * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAppBundleWeb * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAppBundleWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAppBundleWeb * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAppBundleWeb * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAppBundleWeb * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAppBundleWeb * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *createApp )(
+ IAppBundleWeb * This,
+ /* [in] */ BSTR app_guid,
+ /* [in] */ BSTR brand_code,
+ /* [in] */ BSTR language,
+ /* [in] */ BSTR ap);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *createInstalledApp )(
+ IAppBundleWeb * This,
+ /* [in] */ BSTR app_id);
+
+ /* [id] */ HRESULT ( STDMETHODCALLTYPE *createAllInstalledApps )(
+ IAppBundleWeb * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayLanguage )(
+ IAppBundleWeb * This,
+ /* [retval][out] */ BSTR *__MIDL__IAppBundleWeb0000);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayLanguage )(
+ IAppBundleWeb * This,
+ /* [in] */ BSTR __MIDL__IAppBundleWeb0001);
+
+ /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_parentHWND )(
+ IAppBundleWeb * This,
+ /* [in] */ ULONG_PTR hwnd);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )(
+ IAppBundleWeb * This,
+ /* [retval][out] */ int *index);
+
+ /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_appWeb )(
+ IAppBundleWeb * This,
+ /* [in] */ int index,
+ /* [retval][out] */ IDispatch **app_web);
+
+ HRESULT ( STDMETHODCALLTYPE *initialize )(
+ IAppBundleWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *checkForUpdate )(
+ IAppBundleWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *download )(
+ IAppBundleWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *install )(
+ IAppBundleWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *pause )(
+ IAppBundleWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *resume )(
+ IAppBundleWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *cancel )(
+ IAppBundleWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *downloadPackage )(
+ IAppBundleWeb * This,
+ /* [in] */ BSTR app_id,
+ /* [in] */ BSTR package_name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )(
+ IAppBundleWeb * This,
+ /* [retval][out] */ VARIANT *current_state);
+
+ END_INTERFACE
+ } IAppBundleWebVtbl;
+
+ interface IAppBundleWeb
+ {
+ CONST_VTBL struct IAppBundleWebVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAppBundleWeb_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAppBundleWeb_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAppBundleWeb_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAppBundleWeb_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAppBundleWeb_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAppBundleWeb_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAppBundleWeb_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAppBundleWeb_createApp(This,app_guid,brand_code,language,ap) \
+ ( (This)->lpVtbl -> createApp(This,app_guid,brand_code,language,ap) )
+
+#define IAppBundleWeb_createInstalledApp(This,app_id) \
+ ( (This)->lpVtbl -> createInstalledApp(This,app_id) )
+
+#define IAppBundleWeb_createAllInstalledApps(This) \
+ ( (This)->lpVtbl -> createAllInstalledApps(This) )
+
+#define IAppBundleWeb_get_displayLanguage(This,__MIDL__IAppBundleWeb0000) \
+ ( (This)->lpVtbl -> get_displayLanguage(This,__MIDL__IAppBundleWeb0000) )
+
+#define IAppBundleWeb_put_displayLanguage(This,__MIDL__IAppBundleWeb0001) \
+ ( (This)->lpVtbl -> put_displayLanguage(This,__MIDL__IAppBundleWeb0001) )
+
+#define IAppBundleWeb_put_parentHWND(This,hwnd) \
+ ( (This)->lpVtbl -> put_parentHWND(This,hwnd) )
+
+#define IAppBundleWeb_get_length(This,index) \
+ ( (This)->lpVtbl -> get_length(This,index) )
+
+#define IAppBundleWeb_get_appWeb(This,index,app_web) \
+ ( (This)->lpVtbl -> get_appWeb(This,index,app_web) )
+
+#define IAppBundleWeb_initialize(This) \
+ ( (This)->lpVtbl -> initialize(This) )
+
+#define IAppBundleWeb_checkForUpdate(This) \
+ ( (This)->lpVtbl -> checkForUpdate(This) )
+
+#define IAppBundleWeb_download(This) \
+ ( (This)->lpVtbl -> download(This) )
+
+#define IAppBundleWeb_install(This) \
+ ( (This)->lpVtbl -> install(This) )
+
+#define IAppBundleWeb_pause(This) \
+ ( (This)->lpVtbl -> pause(This) )
+
+#define IAppBundleWeb_resume(This) \
+ ( (This)->lpVtbl -> resume(This) )
+
+#define IAppBundleWeb_cancel(This) \
+ ( (This)->lpVtbl -> cancel(This) )
+
+#define IAppBundleWeb_downloadPackage(This,app_id,package_name) \
+ ( (This)->lpVtbl -> downloadPackage(This,app_id,package_name) )
+
+#define IAppBundleWeb_get_currentState(This,current_state) \
+ ( (This)->lpVtbl -> get_currentState(This,current_state) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAppBundleWeb_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAppWeb_INTERFACE_DEFINED__
+#define __IAppWeb_INTERFACE_DEFINED__
+
+/* interface IAppWeb */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IAppWeb;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("18D0F672-18B4-48e6-AD36-6E6BF01DBBC4")
+ IAppWeb : public IDispatch
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appId(
+ /* [retval][out] */ BSTR *__MIDL__IAppWeb0000) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_currentVersionWeb(
+ /* [retval][out] */ IDispatch **current) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nextVersionWeb(
+ /* [retval][out] */ IDispatch **next) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_command(
+ /* [in] */ BSTR command_id,
+ /* [retval][out] */ IDispatch **command) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE cancel( void) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_currentState(
+ /* [retval][out] */ IDispatch **current_state) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE launch( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE uninstall( void) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAppWebVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAppWeb * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAppWeb * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAppWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAppWeb * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAppWeb * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAppWeb * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAppWeb * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )(
+ IAppWeb * This,
+ /* [retval][out] */ BSTR *__MIDL__IAppWeb0000);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentVersionWeb )(
+ IAppWeb * This,
+ /* [retval][out] */ IDispatch **current);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersionWeb )(
+ IAppWeb * This,
+ /* [retval][out] */ IDispatch **next);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_command )(
+ IAppWeb * This,
+ /* [in] */ BSTR command_id,
+ /* [retval][out] */ IDispatch **command);
+
+ HRESULT ( STDMETHODCALLTYPE *cancel )(
+ IAppWeb * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )(
+ IAppWeb * This,
+ /* [retval][out] */ IDispatch **current_state);
+
+ HRESULT ( STDMETHODCALLTYPE *launch )(
+ IAppWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *uninstall )(
+ IAppWeb * This);
+
+ END_INTERFACE
+ } IAppWebVtbl;
+
+ interface IAppWeb
+ {
+ CONST_VTBL struct IAppWebVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAppWeb_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAppWeb_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAppWeb_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAppWeb_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAppWeb_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAppWeb_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAppWeb_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAppWeb_get_appId(This,__MIDL__IAppWeb0000) \
+ ( (This)->lpVtbl -> get_appId(This,__MIDL__IAppWeb0000) )
+
+#define IAppWeb_get_currentVersionWeb(This,current) \
+ ( (This)->lpVtbl -> get_currentVersionWeb(This,current) )
+
+#define IAppWeb_get_nextVersionWeb(This,next) \
+ ( (This)->lpVtbl -> get_nextVersionWeb(This,next) )
+
+#define IAppWeb_get_command(This,command_id,command) \
+ ( (This)->lpVtbl -> get_command(This,command_id,command) )
+
+#define IAppWeb_cancel(This) \
+ ( (This)->lpVtbl -> cancel(This) )
+
+#define IAppWeb_get_currentState(This,current_state) \
+ ( (This)->lpVtbl -> get_currentState(This,current_state) )
+
+#define IAppWeb_launch(This) \
+ ( (This)->lpVtbl -> launch(This) )
+
+#define IAppWeb_uninstall(This) \
+ ( (This)->lpVtbl -> uninstall(This) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAppWeb_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAppCommandWeb_INTERFACE_DEFINED__
+#define __IAppCommandWeb_INTERFACE_DEFINED__
+
+/* interface IAppCommandWeb */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IAppCommandWeb;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("68D6C2BD-712E-4c96-93E8-49CB8A9AAEED")
+ IAppCommandWeb : public IDispatch
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_status(
+ /* [retval][out] */ UINT *__MIDL__IAppCommandWeb0000) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_exitCode(
+ /* [retval][out] */ DWORD *__MIDL__IAppCommandWeb0001) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE execute(
+ /* [optional][in] */ VARIANT arg1,
+ /* [optional][in] */ VARIANT arg2,
+ /* [optional][in] */ VARIANT arg3,
+ /* [optional][in] */ VARIANT arg4,
+ /* [optional][in] */ VARIANT arg5,
+ /* [optional][in] */ VARIANT arg6,
+ /* [optional][in] */ VARIANT arg7,
+ /* [optional][in] */ VARIANT arg8,
+ /* [optional][in] */ VARIANT arg9) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAppCommandWebVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAppCommandWeb * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAppCommandWeb * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAppCommandWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAppCommandWeb * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAppCommandWeb * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAppCommandWeb * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAppCommandWeb * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_status )(
+ IAppCommandWeb * This,
+ /* [retval][out] */ UINT *__MIDL__IAppCommandWeb0000);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_exitCode )(
+ IAppCommandWeb * This,
+ /* [retval][out] */ DWORD *__MIDL__IAppCommandWeb0001);
+
+ HRESULT ( STDMETHODCALLTYPE *execute )(
+ IAppCommandWeb * This,
+ /* [optional][in] */ VARIANT arg1,
+ /* [optional][in] */ VARIANT arg2,
+ /* [optional][in] */ VARIANT arg3,
+ /* [optional][in] */ VARIANT arg4,
+ /* [optional][in] */ VARIANT arg5,
+ /* [optional][in] */ VARIANT arg6,
+ /* [optional][in] */ VARIANT arg7,
+ /* [optional][in] */ VARIANT arg8,
+ /* [optional][in] */ VARIANT arg9);
+
+ END_INTERFACE
+ } IAppCommandWebVtbl;
+
+ interface IAppCommandWeb
+ {
+ CONST_VTBL struct IAppCommandWebVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAppCommandWeb_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAppCommandWeb_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAppCommandWeb_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAppCommandWeb_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAppCommandWeb_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAppCommandWeb_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAppCommandWeb_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAppCommandWeb_get_status(This,__MIDL__IAppCommandWeb0000) \
+ ( (This)->lpVtbl -> get_status(This,__MIDL__IAppCommandWeb0000) )
+
+#define IAppCommandWeb_get_exitCode(This,__MIDL__IAppCommandWeb0001) \
+ ( (This)->lpVtbl -> get_exitCode(This,__MIDL__IAppCommandWeb0001) )
+
+#define IAppCommandWeb_execute(This,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) \
+ ( (This)->lpVtbl -> execute(This,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAppCommandWeb_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAppVersionWeb_INTERFACE_DEFINED__
+#define __IAppVersionWeb_INTERFACE_DEFINED__
+
+/* interface IAppVersionWeb */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_IAppVersionWeb;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("0CD01D1E-4A1C-489d-93B9-9B6672877C57")
+ IAppVersionWeb : public IDispatch
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_version(
+ /* [retval][out] */ BSTR *__MIDL__IAppVersionWeb0000) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_packageCount(
+ /* [retval][out] */ long *count) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_packageWeb(
+ /* [in] */ long index,
+ /* [retval][out] */ IDispatch **package) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAppVersionWebVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAppVersionWeb * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAppVersionWeb * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAppVersionWeb * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAppVersionWeb * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAppVersionWeb * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAppVersionWeb * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAppVersionWeb * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_version )(
+ IAppVersionWeb * This,
+ /* [retval][out] */ BSTR *__MIDL__IAppVersionWeb0000);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCount )(
+ IAppVersionWeb * This,
+ /* [retval][out] */ long *count);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageWeb )(
+ IAppVersionWeb * This,
+ /* [in] */ long index,
+ /* [retval][out] */ IDispatch **package);
+
+ END_INTERFACE
+ } IAppVersionWebVtbl;
+
+ interface IAppVersionWeb
+ {
+ CONST_VTBL struct IAppVersionWebVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAppVersionWeb_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAppVersionWeb_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAppVersionWeb_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAppVersionWeb_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAppVersionWeb_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAppVersionWeb_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAppVersionWeb_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAppVersionWeb_get_version(This,__MIDL__IAppVersionWeb0000) \
+ ( (This)->lpVtbl -> get_version(This,__MIDL__IAppVersionWeb0000) )
+
+#define IAppVersionWeb_get_packageCount(This,count) \
+ ( (This)->lpVtbl -> get_packageCount(This,count) )
+
+#define IAppVersionWeb_get_packageWeb(This,index,package) \
+ ( (This)->lpVtbl -> get_packageWeb(This,index,package) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAppVersionWeb_INTERFACE_DEFINED__ */
+
+
+#ifndef __ICoCreateAsyncStatus_INTERFACE_DEFINED__
+#define __ICoCreateAsyncStatus_INTERFACE_DEFINED__
+
+/* interface ICoCreateAsyncStatus */
+/* [unique][helpstring][uuid][dual][object] */
+
+
+EXTERN_C const IID IID_ICoCreateAsyncStatus;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("2E629606-312A-482f-9B12-2C4ABF6F0B6D")
+ ICoCreateAsyncStatus : public IDispatch
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isDone(
+ /* [retval][out] */ VARIANT_BOOL *is_done) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_completionHResult(
+ /* [retval][out] */ LONG *hr) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_createdInstance(
+ /* [retval][out] */ IDispatch **instance) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ICoCreateAsyncStatusVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ICoCreateAsyncStatus * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ICoCreateAsyncStatus * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ICoCreateAsyncStatus * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ ICoCreateAsyncStatus * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ ICoCreateAsyncStatus * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ ICoCreateAsyncStatus * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ ICoCreateAsyncStatus * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isDone )(
+ ICoCreateAsyncStatus * This,
+ /* [retval][out] */ VARIANT_BOOL *is_done);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_completionHResult )(
+ ICoCreateAsyncStatus * This,
+ /* [retval][out] */ LONG *hr);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_createdInstance )(
+ ICoCreateAsyncStatus * This,
+ /* [retval][out] */ IDispatch **instance);
+
+ END_INTERFACE
+ } ICoCreateAsyncStatusVtbl;
+
+ interface ICoCreateAsyncStatus
+ {
+ CONST_VTBL struct ICoCreateAsyncStatusVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ICoCreateAsyncStatus_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ICoCreateAsyncStatus_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ICoCreateAsyncStatus_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ICoCreateAsyncStatus_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define ICoCreateAsyncStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define ICoCreateAsyncStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define ICoCreateAsyncStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define ICoCreateAsyncStatus_get_isDone(This,is_done) \
+ ( (This)->lpVtbl -> get_isDone(This,is_done) )
+
+#define ICoCreateAsyncStatus_get_completionHResult(This,hr) \
+ ( (This)->lpVtbl -> get_completionHResult(This,hr) )
+
+#define ICoCreateAsyncStatus_get_createdInstance(This,instance) \
+ ( (This)->lpVtbl -> get_createdInstance(This,instance) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ICoCreateAsyncStatus_INTERFACE_DEFINED__ */
+
+
+#ifndef __ICoCreateAsync_INTERFACE_DEFINED__
+#define __ICoCreateAsync_INTERFACE_DEFINED__
+
+/* interface ICoCreateAsync */
+/* [unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_ICoCreateAsync;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("DAB1D343-1B2A-47f9-B445-93DC50704BFE")
+ ICoCreateAsync : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE createOmahaMachineServerAsync(
+ /* [in] */ BSTR origin_url,
+ /* [in] */ BOOL create_elevated,
+ /* [retval][out] */ ICoCreateAsyncStatus **status) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ICoCreateAsyncVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ICoCreateAsync * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ICoCreateAsync * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ICoCreateAsync * This);
+
+ HRESULT ( STDMETHODCALLTYPE *createOmahaMachineServerAsync )(
+ ICoCreateAsync * This,
+ /* [in] */ BSTR origin_url,
+ /* [in] */ BOOL create_elevated,
+ /* [retval][out] */ ICoCreateAsyncStatus **status);
+
+ END_INTERFACE
+ } ICoCreateAsyncVtbl;
+
+ interface ICoCreateAsync
+ {
+ CONST_VTBL struct ICoCreateAsyncVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ICoCreateAsync_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ICoCreateAsync_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ICoCreateAsync_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ICoCreateAsync_createOmahaMachineServerAsync(This,origin_url,create_elevated,status) \
+ ( (This)->lpVtbl -> createOmahaMachineServerAsync(This,origin_url,create_elevated,status) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ICoCreateAsync_INTERFACE_DEFINED__ */
+
+
+#ifndef __IBrowserHttpRequest2_INTERFACE_DEFINED__
+#define __IBrowserHttpRequest2_INTERFACE_DEFINED__
+
+/* interface IBrowserHttpRequest2 */
+/* [unique][nonextensible][oleautomation][uuid][object] */
+
+
+EXTERN_C const IID IID_IBrowserHttpRequest2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("5B25A8DC-1780-4178-A629-6BE8B8DEFAA2")
+ IBrowserHttpRequest2 : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE Send(
+ /* [in] */ BSTR url,
+ /* [in] */ BSTR post_data,
+ /* [in] */ BSTR request_headers,
+ /* [in] */ VARIANT response_headers_needed,
+ /* [out] */ VARIANT *response_headers,
+ /* [out] */ DWORD *response_code,
+ /* [out] */ BSTR *cache_filename) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IBrowserHttpRequest2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IBrowserHttpRequest2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IBrowserHttpRequest2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IBrowserHttpRequest2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Send )(
+ IBrowserHttpRequest2 * This,
+ /* [in] */ BSTR url,
+ /* [in] */ BSTR post_data,
+ /* [in] */ BSTR request_headers,
+ /* [in] */ VARIANT response_headers_needed,
+ /* [out] */ VARIANT *response_headers,
+ /* [out] */ DWORD *response_code,
+ /* [out] */ BSTR *cache_filename);
+
+ END_INTERFACE
+ } IBrowserHttpRequest2Vtbl;
+
+ interface IBrowserHttpRequest2
+ {
+ CONST_VTBL struct IBrowserHttpRequest2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IBrowserHttpRequest2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IBrowserHttpRequest2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IBrowserHttpRequest2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IBrowserHttpRequest2_Send(This,url,post_data,request_headers,response_headers_needed,response_headers,response_code,cache_filename) \
+ ( (This)->lpVtbl -> Send(This,url,post_data,request_headers,response_headers_needed,response_headers,response_code,cache_filename) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IBrowserHttpRequest2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IProcessLauncher_INTERFACE_DEFINED__
+#define __IProcessLauncher_INTERFACE_DEFINED__
+
+/* interface IProcessLauncher */
+/* [unique][helpstring][uuid][oleautomation][object] */
+
+
+EXTERN_C const IID IID_IProcessLauncher;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("128C2DA6-2BC0-44c0-B3F6-4EC22E647964")
+ IProcessLauncher : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE LaunchCmdLine(
+ /* [string][in] */ const WCHAR *cmd_line) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE LaunchBrowser(
+ /* [in] */ DWORD browser_type,
+ /* [string][in] */ const WCHAR *url) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE LaunchCmdElevated(
+ /* [string][in] */ const WCHAR *app_guid,
+ /* [string][in] */ const WCHAR *cmd_id,
+ /* [in] */ DWORD caller_proc_id,
+ /* [out] */ ULONG_PTR *proc_handle) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IProcessLauncherVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IProcessLauncher * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IProcessLauncher * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IProcessLauncher * This);
+
+ HRESULT ( STDMETHODCALLTYPE *LaunchCmdLine )(
+ IProcessLauncher * This,
+ /* [string][in] */ const WCHAR *cmd_line);
+
+ HRESULT ( STDMETHODCALLTYPE *LaunchBrowser )(
+ IProcessLauncher * This,
+ /* [in] */ DWORD browser_type,
+ /* [string][in] */ const WCHAR *url);
+
+ HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )(
+ IProcessLauncher * This,
+ /* [string][in] */ const WCHAR *app_guid,
+ /* [string][in] */ const WCHAR *cmd_id,
+ /* [in] */ DWORD caller_proc_id,
+ /* [out] */ ULONG_PTR *proc_handle);
+
+ END_INTERFACE
+ } IProcessLauncherVtbl;
+
+ interface IProcessLauncher
+ {
+ CONST_VTBL struct IProcessLauncherVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IProcessLauncher_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IProcessLauncher_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IProcessLauncher_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IProcessLauncher_LaunchCmdLine(This,cmd_line) \
+ ( (This)->lpVtbl -> LaunchCmdLine(This,cmd_line) )
+
+#define IProcessLauncher_LaunchBrowser(This,browser_type,url) \
+ ( (This)->lpVtbl -> LaunchBrowser(This,browser_type,url) )
+
+#define IProcessLauncher_LaunchCmdElevated(This,app_guid,cmd_id,caller_proc_id,proc_handle) \
+ ( (This)->lpVtbl -> LaunchCmdElevated(This,app_guid,cmd_id,caller_proc_id,proc_handle) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IProcessLauncher_INTERFACE_DEFINED__ */
+
+
+#ifndef __IOneClickProcessLauncher_INTERFACE_DEFINED__
+#define __IOneClickProcessLauncher_INTERFACE_DEFINED__
+
+/* interface IOneClickProcessLauncher */
+/* [unique][helpstring][uuid][oleautomation][object] */
+
+
+EXTERN_C const IID IID_IOneClickProcessLauncher;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("5CCCB0EF-7073-4516-8028-4C628D0C8AAB")
+ IOneClickProcessLauncher : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE LaunchAppCommand(
+ /* [string][in] */ const WCHAR *app_guid,
+ /* [string][in] */ const WCHAR *cmd_id) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IOneClickProcessLauncherVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IOneClickProcessLauncher * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IOneClickProcessLauncher * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IOneClickProcessLauncher * This);
+
+ HRESULT ( STDMETHODCALLTYPE *LaunchAppCommand )(
+ IOneClickProcessLauncher * This,
+ /* [string][in] */ const WCHAR *app_guid,
+ /* [string][in] */ const WCHAR *cmd_id);
+
+ END_INTERFACE
+ } IOneClickProcessLauncherVtbl;
+
+ interface IOneClickProcessLauncher
+ {
+ CONST_VTBL struct IOneClickProcessLauncherVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IOneClickProcessLauncher_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IOneClickProcessLauncher_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IOneClickProcessLauncher_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IOneClickProcessLauncher_LaunchAppCommand(This,app_guid,cmd_id) \
+ ( (This)->lpVtbl -> LaunchAppCommand(This,app_guid,cmd_id) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IOneClickProcessLauncher_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_google_update_idl_0000_0020 */
+/* [local] */
+
+typedef /* [public][public] */
+enum __MIDL___MIDL_itf_google_update_idl_0000_0020_0001
+ {
+ COMPLETION_CODE_SUCCESS = 1,
+ COMPLETION_CODE_SUCCESS_CLOSE_UI = ( COMPLETION_CODE_SUCCESS + 1 ) ,
+ COMPLETION_CODE_ERROR = ( COMPLETION_CODE_SUCCESS_CLOSE_UI + 1 ) ,
+ COMPLETION_CODE_RESTART_ALL_BROWSERS = ( COMPLETION_CODE_ERROR + 1 ) ,
+ COMPLETION_CODE_REBOOT = ( COMPLETION_CODE_RESTART_ALL_BROWSERS + 1 ) ,
+ COMPLETION_CODE_RESTART_BROWSER = ( COMPLETION_CODE_REBOOT + 1 ) ,
+ COMPLETION_CODE_RESTART_ALL_BROWSERS_NOTICE_ONLY = ( COMPLETION_CODE_RESTART_BROWSER + 1 ) ,
+ COMPLETION_CODE_REBOOT_NOTICE_ONLY = ( COMPLETION_CODE_RESTART_ALL_BROWSERS_NOTICE_ONLY + 1 ) ,
+ COMPLETION_CODE_RESTART_BROWSER_NOTICE_ONLY = ( COMPLETION_CODE_REBOOT_NOTICE_ONLY + 1 ) ,
+ COMPLETION_CODE_RUN_COMMAND = ( COMPLETION_CODE_RESTART_BROWSER_NOTICE_ONLY + 1 )
+ } LegacyCompletionCodes;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_google_update_idl_0000_0020_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_google_update_idl_0000_0020_v0_0_s_ifspec;
+
+#ifndef __IProgressWndEvents_INTERFACE_DEFINED__
+#define __IProgressWndEvents_INTERFACE_DEFINED__
+
+/* interface IProgressWndEvents */
+/* [unique][helpstring][uuid][oleautomation][object] */
+
+
+EXTERN_C const IID IID_IProgressWndEvents;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("1C642CED-CA3B-4013-A9DF-CA6CE5FF6503")
+ IProgressWndEvents : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE DoClose( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DoPause( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DoResume( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DoRestartBrowsers( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DoReboot( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DoLaunchBrowser(
+ /* [string][in] */ const WCHAR *url) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IProgressWndEventsVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IProgressWndEvents * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IProgressWndEvents * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IProgressWndEvents * This);
+
+ HRESULT ( STDMETHODCALLTYPE *DoClose )(
+ IProgressWndEvents * This);
+
+ HRESULT ( STDMETHODCALLTYPE *DoPause )(
+ IProgressWndEvents * This);
+
+ HRESULT ( STDMETHODCALLTYPE *DoResume )(
+ IProgressWndEvents * This);
+
+ HRESULT ( STDMETHODCALLTYPE *DoRestartBrowsers )(
+ IProgressWndEvents * This);
+
+ HRESULT ( STDMETHODCALLTYPE *DoReboot )(
+ IProgressWndEvents * This);
+
+ HRESULT ( STDMETHODCALLTYPE *DoLaunchBrowser )(
+ IProgressWndEvents * This,
+ /* [string][in] */ const WCHAR *url);
+
+ END_INTERFACE
+ } IProgressWndEventsVtbl;
+
+ interface IProgressWndEvents
+ {
+ CONST_VTBL struct IProgressWndEventsVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IProgressWndEvents_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IProgressWndEvents_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IProgressWndEvents_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IProgressWndEvents_DoClose(This) \
+ ( (This)->lpVtbl -> DoClose(This) )
+
+#define IProgressWndEvents_DoPause(This) \
+ ( (This)->lpVtbl -> DoPause(This) )
+
+#define IProgressWndEvents_DoResume(This) \
+ ( (This)->lpVtbl -> DoResume(This) )
+
+#define IProgressWndEvents_DoRestartBrowsers(This) \
+ ( (This)->lpVtbl -> DoRestartBrowsers(This) )
+
+#define IProgressWndEvents_DoReboot(This) \
+ ( (This)->lpVtbl -> DoReboot(This) )
+
+#define IProgressWndEvents_DoLaunchBrowser(This,url) \
+ ( (This)->lpVtbl -> DoLaunchBrowser(This,url) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IProgressWndEvents_INTERFACE_DEFINED__ */
+
+
+#ifndef __IJobObserver_INTERFACE_DEFINED__
+#define __IJobObserver_INTERFACE_DEFINED__
+
+/* interface IJobObserver */
+/* [unique][helpstring][uuid][oleautomation][object] */
+
+
+EXTERN_C const IID IID_IJobObserver;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("49D7563B-2DDB-4831-88C8-768A53833837")
+ IJobObserver : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE OnShow( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnCheckingForUpdate( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnUpdateAvailable(
+ /* [string][in] */ const WCHAR *version_string) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnWaitingToDownload( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnDownloading(
+ /* [in] */ int time_remaining_ms,
+ /* [in] */ int pos) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnWaitingToInstall( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnInstalling( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnPause( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnComplete(
+ /* [in] */ LegacyCompletionCodes code,
+ /* [string][in] */ const WCHAR *completion_text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetEventSink(
+ /* [in] */ IProgressWndEvents *ui_sink) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IJobObserverVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IJobObserver * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IJobObserver * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IJobObserver * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OnShow )(
+ IJobObserver * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OnCheckingForUpdate )(
+ IJobObserver * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OnUpdateAvailable )(
+ IJobObserver * This,
+ /* [string][in] */ const WCHAR *version_string);
+
+ HRESULT ( STDMETHODCALLTYPE *OnWaitingToDownload )(
+ IJobObserver * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OnDownloading )(
+ IJobObserver * This,
+ /* [in] */ int time_remaining_ms,
+ /* [in] */ int pos);
+
+ HRESULT ( STDMETHODCALLTYPE *OnWaitingToInstall )(
+ IJobObserver * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OnInstalling )(
+ IJobObserver * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OnPause )(
+ IJobObserver * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OnComplete )(
+ IJobObserver * This,
+ /* [in] */ LegacyCompletionCodes code,
+ /* [string][in] */ const WCHAR *completion_text);
+
+ HRESULT ( STDMETHODCALLTYPE *SetEventSink )(
+ IJobObserver * This,
+ /* [in] */ IProgressWndEvents *ui_sink);
+
+ END_INTERFACE
+ } IJobObserverVtbl;
+
+ interface IJobObserver
+ {
+ CONST_VTBL struct IJobObserverVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IJobObserver_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IJobObserver_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IJobObserver_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IJobObserver_OnShow(This) \
+ ( (This)->lpVtbl -> OnShow(This) )
+
+#define IJobObserver_OnCheckingForUpdate(This) \
+ ( (This)->lpVtbl -> OnCheckingForUpdate(This) )
+
+#define IJobObserver_OnUpdateAvailable(This,version_string) \
+ ( (This)->lpVtbl -> OnUpdateAvailable(This,version_string) )
+
+#define IJobObserver_OnWaitingToDownload(This) \
+ ( (This)->lpVtbl -> OnWaitingToDownload(This) )
+
+#define IJobObserver_OnDownloading(This,time_remaining_ms,pos) \
+ ( (This)->lpVtbl -> OnDownloading(This,time_remaining_ms,pos) )
+
+#define IJobObserver_OnWaitingToInstall(This) \
+ ( (This)->lpVtbl -> OnWaitingToInstall(This) )
+
+#define IJobObserver_OnInstalling(This) \
+ ( (This)->lpVtbl -> OnInstalling(This) )
+
+#define IJobObserver_OnPause(This) \
+ ( (This)->lpVtbl -> OnPause(This) )
+
+#define IJobObserver_OnComplete(This,code,completion_text) \
+ ( (This)->lpVtbl -> OnComplete(This,code,completion_text) )
+
+#define IJobObserver_SetEventSink(This,ui_sink) \
+ ( (This)->lpVtbl -> SetEventSink(This,ui_sink) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IJobObserver_INTERFACE_DEFINED__ */
+
+
+#ifndef __IGoogleUpdate_INTERFACE_DEFINED__
+#define __IGoogleUpdate_INTERFACE_DEFINED__
+
+/* interface IGoogleUpdate */
+/* [unique][helpstring][uuid][oleautomation][object] */
+
+
+EXTERN_C const IID IID_IGoogleUpdate;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("31AC3F11-E5EA-4a85-8A3D-8E095A39C27B")
+ IGoogleUpdate : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE CheckForUpdate(
+ /* [string][in] */ const WCHAR *guid,
+ /* [in] */ IJobObserver *observer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Update(
+ /* [string][in] */ const WCHAR *guid,
+ /* [in] */ IJobObserver *observer) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IGoogleUpdateVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IGoogleUpdate * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IGoogleUpdate * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IGoogleUpdate * This);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckForUpdate )(
+ IGoogleUpdate * This,
+ /* [string][in] */ const WCHAR *guid,
+ /* [in] */ IJobObserver *observer);
+
+ HRESULT ( STDMETHODCALLTYPE *Update )(
+ IGoogleUpdate * This,
+ /* [string][in] */ const WCHAR *guid,
+ /* [in] */ IJobObserver *observer);
+
+ END_INTERFACE
+ } IGoogleUpdateVtbl;
+
+ interface IGoogleUpdate
+ {
+ CONST_VTBL struct IGoogleUpdateVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IGoogleUpdate_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IGoogleUpdate_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IGoogleUpdate_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IGoogleUpdate_CheckForUpdate(This,guid,observer) \
+ ( (This)->lpVtbl -> CheckForUpdate(This,guid,observer) )
+
+#define IGoogleUpdate_Update(This,guid,observer) \
+ ( (This)->lpVtbl -> Update(This,guid,observer) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IGoogleUpdate_INTERFACE_DEFINED__ */
+
+
+#ifndef __IGoogleUpdateCore_INTERFACE_DEFINED__
+#define __IGoogleUpdateCore_INTERFACE_DEFINED__
+
+/* interface IGoogleUpdateCore */
+/* [unique][helpstring][uuid][oleautomation][object] */
+
+
+EXTERN_C const IID IID_IGoogleUpdateCore;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("909489C2-85A6-4322-AA56-D25278649D67")
+ IGoogleUpdateCore : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE LaunchCmdElevated(
+ /* [string][in] */ const WCHAR *app_guid,
+ /* [string][in] */ const WCHAR *cmd_id,
+ /* [in] */ DWORD caller_proc_id,
+ /* [out] */ ULONG_PTR *proc_handle) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IGoogleUpdateCoreVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IGoogleUpdateCore * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IGoogleUpdateCore * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IGoogleUpdateCore * This);
+
+ HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )(
+ IGoogleUpdateCore * This,
+ /* [string][in] */ const WCHAR *app_guid,
+ /* [string][in] */ const WCHAR *cmd_id,
+ /* [in] */ DWORD caller_proc_id,
+ /* [out] */ ULONG_PTR *proc_handle);
+
+ END_INTERFACE
+ } IGoogleUpdateCoreVtbl;
+
+ interface IGoogleUpdateCore
+ {
+ CONST_VTBL struct IGoogleUpdateCoreVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IGoogleUpdateCore_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IGoogleUpdateCore_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IGoogleUpdateCore_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IGoogleUpdateCore_LaunchCmdElevated(This,app_guid,cmd_id,caller_proc_id,proc_handle) \
+ ( (This)->lpVtbl -> LaunchCmdElevated(This,app_guid,cmd_id,caller_proc_id,proc_handle) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IGoogleUpdateCore_INTERFACE_DEFINED__ */
+
+
+
+#ifndef __GoogleUpdate3Lib_LIBRARY_DEFINED__
+#define __GoogleUpdate3Lib_LIBRARY_DEFINED__
+
+/* library GoogleUpdate3Lib */
+/* [helpstring][version][uuid] */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+EXTERN_C const IID LIBID_GoogleUpdate3Lib;
+
+EXTERN_C const CLSID CLSID_GoogleUpdate3UserClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("022105BD-948A-40c9-AB42-A3300DDF097F")
+GoogleUpdate3UserClass;
+#endif
+
+EXTERN_C const CLSID CLSID_GoogleUpdate3ServiceClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("4EB61BAC-A3B6-4760-9581-655041EF4D69")
+GoogleUpdate3ServiceClass;
+#endif
+
+EXTERN_C const CLSID CLSID_GoogleUpdate3WebUserClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("22181302-A8A6-4f84-A541-E5CBFC70CC43")
+GoogleUpdate3WebUserClass;
+#endif
+
+EXTERN_C const CLSID CLSID_GoogleUpdate3WebMachineClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("8A1D4361-2C08-4700-A351-3EAA9CBFF5E4")
+GoogleUpdate3WebMachineClass;
+#endif
+
+EXTERN_C const CLSID CLSID_GoogleUpdate3WebServiceClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("534F5323-3569-4f42-919D-1E1CF93E5BF6")
+GoogleUpdate3WebServiceClass;
+#endif
+
+EXTERN_C const CLSID CLSID_GoogleUpdate3WebMachineFallbackClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("598FE0E5-E02D-465d-9A9D-37974A28FD42")
+GoogleUpdate3WebMachineFallbackClass;
+#endif
+
+EXTERN_C const CLSID CLSID_CurrentStateUserClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("E8CF3E55-F919-49d9-ABC0-948E6CB34B9F")
+CurrentStateUserClass;
+#endif
+
+EXTERN_C const CLSID CLSID_CurrentStateMachineClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("9D6AA569-9F30-41ad-885A-346685C74928")
+CurrentStateMachineClass;
+#endif
+
+EXTERN_C const CLSID CLSID_CoCreateAsyncClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("7DE94008-8AFD-4c70-9728-C6FBFFF6A73E")
+CoCreateAsyncClass;
+#endif
+
+EXTERN_C const CLSID CLSID_CredentialDialogUserClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("e67be843-bbbe-4484-95fb-05271ae86750")
+CredentialDialogUserClass;
+#endif
+
+EXTERN_C const CLSID CLSID_CredentialDialogMachineClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("25461599-633d-42b1-84fb-7cd68d026e53")
+CredentialDialogMachineClass;
+#endif
+
+EXTERN_C const CLSID CLSID_ProcessLauncherClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("ABC01078-F197-4b0b-ADBC-CFE684B39C82")
+ProcessLauncherClass;
+#endif
+
+EXTERN_C const CLSID CLSID_OneClickUserProcessLauncherClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("51F9E8EF-59D7-475b-A106-C7EA6F30C119")
+OneClickUserProcessLauncherClass;
+#endif
+
+EXTERN_C const CLSID CLSID_OneClickMachineProcessLauncherClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("AAD4AE2E-D834-46d4-8B09-490FAC9C722B")
+OneClickMachineProcessLauncherClass;
+#endif
+
+EXTERN_C const CLSID CLSID_OnDemandUserAppsClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("2F0E2680-9FF5-43c0-B76E-114A56E93598")
+OnDemandUserAppsClass;
+#endif
+
+EXTERN_C const CLSID CLSID_OnDemandMachineAppsClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("6F8BD55B-E83D-4a47-85BE-81FFA8057A69")
+OnDemandMachineAppsClass;
+#endif
+
+EXTERN_C const CLSID CLSID_OnDemandMachineAppsServiceClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("9465B4B4-5216-4042-9A2C-754D3BCDC410")
+OnDemandMachineAppsServiceClass;
+#endif
+
+EXTERN_C const CLSID CLSID_OnDemandMachineAppsFallbackClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("B3D28DBD-0DFA-40e4-8071-520767BADC7E")
+OnDemandMachineAppsFallbackClass;
+#endif
+
+EXTERN_C const CLSID CLSID_GoogleUpdateCoreClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("E225E692-4B47-4777-9BED-4FD7FE257F0E")
+GoogleUpdateCoreClass;
+#endif
+
+EXTERN_C const CLSID CLSID_GoogleUpdateCoreMachineClass;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("9B2340A0-4068-43d6-B404-32E27217859D")
+GoogleUpdateCoreMachineClass;
+#endif
+#endif /* __GoogleUpdate3Lib_LIBRARY_DEFINED__ */
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
+void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl.tlb b/chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl.tlb
new file mode 100644
index 00000000000..5dcf862ba03
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl.tlb
Binary files differ
diff --git a/chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl_i.c b/chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl_i.c
new file mode 100644
index 00000000000..2341a5cc7a4
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl_i.c
@@ -0,0 +1,211 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../google_update/google_update_idl.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif // !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IGoogleUpdate3,0x6DB17455,0x4E85,0x46e7,0x9D,0x23,0xE5,0x55,0xE4,0xB0,0x05,0xAF);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAppBundle,0xfe908cdd,0x22bb,0x472a,0x98,0x70,0x1a,0x03,0x90,0xe4,0x2f,0x36);
+
+
+MIDL_DEFINE_GUID(IID, IID_IApp,0x76F7B787,0xA67C,0x4c73,0x82,0xC7,0x31,0xF5,0xE3,0xAA,0xBC,0x5C);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAppCommand,0x4DE778FE,0xF195,0x4ee3,0x9D,0xAB,0xFE,0x44,0x6C,0x23,0x92,0x21);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAppVersion,0xBCDCB538,0x01C0,0x46d1,0xA6,0xA7,0x52,0xF4,0xD0,0x21,0xC2,0x72);
+
+
+MIDL_DEFINE_GUID(IID, IID_IPackage,0xDCAB8386,0x4F03,0x4dbd,0xA3,0x66,0xD9,0x0B,0xC9,0xF6,0x8D,0xE6);
+
+
+MIDL_DEFINE_GUID(IID, IID_ICurrentState,0x247954F9,0x9EDC,0x4E68,0x8C,0xC3,0x15,0x0C,0x2B,0x89,0xEA,0xDF);
+
+
+MIDL_DEFINE_GUID(IID, IID_IRegistrationUpdateHook,0x4E223325,0xC16B,0x4eeb,0xAE,0xDC,0x19,0xAA,0x99,0xA2,0x37,0xFA);
+
+
+MIDL_DEFINE_GUID(IID, IID_ICredentialDialog,0xb3a47570,0x0a85,0x4aea,0x82,0x70,0x52,0x9d,0x47,0x89,0x96,0x03);
+
+
+MIDL_DEFINE_GUID(IID, IID_IGoogleUpdate3Web,0x494B20CF,0x282E,0x4BDD,0x9F,0x5D,0xB7,0x0C,0xB0,0x9D,0x35,0x1E);
+
+
+MIDL_DEFINE_GUID(IID, IID_IGoogleUpdate3WebSecurity,0x2D363682,0x561D,0x4c3a,0x81,0xC6,0xF2,0xF8,0x21,0x07,0x56,0x2A);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAppBundleWeb,0xDD42475D,0x6D46,0x496a,0x92,0x4E,0xBD,0x56,0x30,0xB4,0xCB,0xBA);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAppWeb,0x18D0F672,0x18B4,0x48e6,0xAD,0x36,0x6E,0x6B,0xF0,0x1D,0xBB,0xC4);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAppCommandWeb,0x68D6C2BD,0x712E,0x4c96,0x93,0xE8,0x49,0xCB,0x8A,0x9A,0xAE,0xED);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAppVersionWeb,0x0CD01D1E,0x4A1C,0x489d,0x93,0xB9,0x9B,0x66,0x72,0x87,0x7C,0x57);
+
+
+MIDL_DEFINE_GUID(IID, IID_ICoCreateAsyncStatus,0x2E629606,0x312A,0x482f,0x9B,0x12,0x2C,0x4A,0xBF,0x6F,0x0B,0x6D);
+
+
+MIDL_DEFINE_GUID(IID, IID_ICoCreateAsync,0xDAB1D343,0x1B2A,0x47f9,0xB4,0x45,0x93,0xDC,0x50,0x70,0x4B,0xFE);
+
+
+MIDL_DEFINE_GUID(IID, IID_IBrowserHttpRequest2,0x5B25A8DC,0x1780,0x4178,0xA6,0x29,0x6B,0xE8,0xB8,0xDE,0xFA,0xA2);
+
+
+MIDL_DEFINE_GUID(IID, IID_IProcessLauncher,0x128C2DA6,0x2BC0,0x44c0,0xB3,0xF6,0x4E,0xC2,0x2E,0x64,0x79,0x64);
+
+
+MIDL_DEFINE_GUID(IID, IID_IOneClickProcessLauncher,0x5CCCB0EF,0x7073,0x4516,0x80,0x28,0x4C,0x62,0x8D,0x0C,0x8A,0xAB);
+
+
+MIDL_DEFINE_GUID(IID, IID_IProgressWndEvents,0x1C642CED,0xCA3B,0x4013,0xA9,0xDF,0xCA,0x6C,0xE5,0xFF,0x65,0x03);
+
+
+MIDL_DEFINE_GUID(IID, IID_IJobObserver,0x49D7563B,0x2DDB,0x4831,0x88,0xC8,0x76,0x8A,0x53,0x83,0x38,0x37);
+
+
+MIDL_DEFINE_GUID(IID, IID_IGoogleUpdate,0x31AC3F11,0xE5EA,0x4a85,0x8A,0x3D,0x8E,0x09,0x5A,0x39,0xC2,0x7B);
+
+
+MIDL_DEFINE_GUID(IID, IID_IGoogleUpdateCore,0x909489C2,0x85A6,0x4322,0xAA,0x56,0xD2,0x52,0x78,0x64,0x9D,0x67);
+
+
+MIDL_DEFINE_GUID(IID, LIBID_GoogleUpdate3Lib,0x655DD85A,0x3C0D,0x4674,0x9C,0x58,0xAF,0x71,0x68,0xC5,0x86,0x1E);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_GoogleUpdate3UserClass,0x022105BD,0x948A,0x40c9,0xAB,0x42,0xA3,0x30,0x0D,0xDF,0x09,0x7F);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_GoogleUpdate3ServiceClass,0x4EB61BAC,0xA3B6,0x4760,0x95,0x81,0x65,0x50,0x41,0xEF,0x4D,0x69);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_GoogleUpdate3WebUserClass,0x22181302,0xA8A6,0x4f84,0xA5,0x41,0xE5,0xCB,0xFC,0x70,0xCC,0x43);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_GoogleUpdate3WebMachineClass,0x8A1D4361,0x2C08,0x4700,0xA3,0x51,0x3E,0xAA,0x9C,0xBF,0xF5,0xE4);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_GoogleUpdate3WebServiceClass,0x534F5323,0x3569,0x4f42,0x91,0x9D,0x1E,0x1C,0xF9,0x3E,0x5B,0xF6);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_GoogleUpdate3WebMachineFallbackClass,0x598FE0E5,0xE02D,0x465d,0x9A,0x9D,0x37,0x97,0x4A,0x28,0xFD,0x42);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CurrentStateUserClass,0xE8CF3E55,0xF919,0x49d9,0xAB,0xC0,0x94,0x8E,0x6C,0xB3,0x4B,0x9F);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CurrentStateMachineClass,0x9D6AA569,0x9F30,0x41ad,0x88,0x5A,0x34,0x66,0x85,0xC7,0x49,0x28);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CoCreateAsyncClass,0x7DE94008,0x8AFD,0x4c70,0x97,0x28,0xC6,0xFB,0xFF,0xF6,0xA7,0x3E);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CredentialDialogUserClass,0xe67be843,0xbbbe,0x4484,0x95,0xfb,0x05,0x27,0x1a,0xe8,0x67,0x50);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_CredentialDialogMachineClass,0x25461599,0x633d,0x42b1,0x84,0xfb,0x7c,0xd6,0x8d,0x02,0x6e,0x53);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_ProcessLauncherClass,0xABC01078,0xF197,0x4b0b,0xAD,0xBC,0xCF,0xE6,0x84,0xB3,0x9C,0x82);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_OneClickUserProcessLauncherClass,0x51F9E8EF,0x59D7,0x475b,0xA1,0x06,0xC7,0xEA,0x6F,0x30,0xC1,0x19);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_OneClickMachineProcessLauncherClass,0xAAD4AE2E,0xD834,0x46d4,0x8B,0x09,0x49,0x0F,0xAC,0x9C,0x72,0x2B);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_OnDemandUserAppsClass,0x2F0E2680,0x9FF5,0x43c0,0xB7,0x6E,0x11,0x4A,0x56,0xE9,0x35,0x98);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_OnDemandMachineAppsClass,0x6F8BD55B,0xE83D,0x4a47,0x85,0xBE,0x81,0xFF,0xA8,0x05,0x7A,0x69);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_OnDemandMachineAppsServiceClass,0x9465B4B4,0x5216,0x4042,0x9A,0x2C,0x75,0x4D,0x3B,0xCD,0xC4,0x10);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_OnDemandMachineAppsFallbackClass,0xB3D28DBD,0x0DFA,0x40e4,0x80,0x71,0x52,0x07,0x67,0xBA,0xDC,0x7E);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_GoogleUpdateCoreClass,0xE225E692,0x4B47,0x4777,0x9B,0xED,0x4F,0xD7,0xFE,0x25,0x7F,0x0E);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_GoogleUpdateCoreMachineClass,0x9B2340A0,0x4068,0x43d6,0xB4,0x04,0x32,0xE2,0x72,0x17,0x85,0x9D);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl_p.c b/chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl_p.c
new file mode 100644
index 00000000000..8e79cbcc7bb
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/google_update/x86/google_update_idl_p.c
@@ -0,0 +1,7546 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../google_update/google_update_idl.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64) && !defined(_ARM_)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "google_update_idl.h"
+
+#define TYPE_FORMAT_STRING_SIZE 1159
+#define PROC_FORMAT_STRING_SIZE 4885
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 2
+
+typedef struct _google_update_idl_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } google_update_idl_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _google_update_idl_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } google_update_idl_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _google_update_idl_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } google_update_idl_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const google_update_idl_MIDL_TYPE_FORMAT_STRING google_update_idl__MIDL_TypeFormatString;
+extern const google_update_idl_MIDL_PROC_FORMAT_STRING google_update_idl__MIDL_ProcFormatString;
+extern const google_update_idl_MIDL_EXPR_FORMAT_STRING google_update_idl__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IGoogleUpdate3_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IGoogleUpdate3_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAppBundle_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAppBundle_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IApp_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IApp_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAppCommand_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAppCommand_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAppVersion_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAppVersion_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IPackage_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IPackage_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO ICurrentState_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO ICurrentState_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IRegistrationUpdateHook_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IRegistrationUpdateHook_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO ICredentialDialog_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO ICredentialDialog_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IGoogleUpdate3Web_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IGoogleUpdate3Web_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IGoogleUpdate3WebSecurity_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IGoogleUpdate3WebSecurity_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAppBundleWeb_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAppBundleWeb_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAppWeb_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAppWeb_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAppCommandWeb_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAppCommandWeb_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAppVersionWeb_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAppVersionWeb_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO ICoCreateAsyncStatus_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO ICoCreateAsyncStatus_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO ICoCreateAsync_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO ICoCreateAsync_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IBrowserHttpRequest2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IBrowserHttpRequest2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IProcessLauncher_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IProcessLauncher_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IOneClickProcessLauncher_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IOneClickProcessLauncher_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IProgressWndEvents_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IProgressWndEvents_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IJobObserver_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IJobObserver_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IGoogleUpdate_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IGoogleUpdate_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IGoogleUpdateCore_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IGoogleUpdateCore_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const google_update_idl_MIDL_PROC_FORMAT_STRING google_update_idl__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_status */
+
+
+ /* Procedure get_stateValue */
+
+
+ /* Procedure get_Count */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x7 ), /* 7 */
+/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x24 ), /* 36 */
+/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IAppCommandWeb0000 */
+
+
+ /* Parameter __MIDL__ICurrentState0000 */
+
+
+ /* Parameter count */
+
+/* 24 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_Item */
+
+/* 36 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 38 */ NdrFcLong( 0x0 ), /* 0 */
+/* 42 */ NdrFcShort( 0x8 ), /* 8 */
+/* 44 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 46 */ NdrFcShort( 0x8 ), /* 8 */
+/* 48 */ NdrFcShort( 0x8 ), /* 8 */
+/* 50 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 52 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 54 */ NdrFcShort( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 60 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 64 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter bundle */
+
+/* 66 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 70 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+/* 72 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 74 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 76 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_createdInstance */
+
+
+ /* Procedure get_nextVersionWeb */
+
+
+ /* Procedure createAppBundle */
+
+/* 78 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 80 */ NdrFcLong( 0x0 ), /* 0 */
+/* 84 */ NdrFcShort( 0x9 ), /* 9 */
+/* 86 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 88 */ NdrFcShort( 0x0 ), /* 0 */
+/* 90 */ NdrFcShort( 0x8 ), /* 8 */
+/* 92 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 94 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 96 */ NdrFcShort( 0x0 ), /* 0 */
+/* 98 */ NdrFcShort( 0x0 ), /* 0 */
+/* 100 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter instance */
+
+
+ /* Parameter next */
+
+
+ /* Parameter app_bundle */
+
+/* 102 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 104 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 106 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 110 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_version */
+
+
+ /* Procedure get_appId */
+
+
+ /* Procedure get_version */
+
+
+ /* Procedure get_displayName */
+
+/* 114 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 116 */ NdrFcLong( 0x0 ), /* 0 */
+/* 120 */ NdrFcShort( 0x7 ), /* 7 */
+/* 122 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 124 */ NdrFcShort( 0x0 ), /* 0 */
+/* 126 */ NdrFcShort( 0x8 ), /* 8 */
+/* 128 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 130 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 132 */ NdrFcShort( 0x1 ), /* 1 */
+/* 134 */ NdrFcShort( 0x0 ), /* 0 */
+/* 136 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IAppVersionWeb0000 */
+
+
+ /* Parameter __MIDL__IAppWeb0000 */
+
+
+ /* Parameter __MIDL__IAppVersion0000 */
+
+
+ /* Parameter __MIDL__IAppBundle0000 */
+
+/* 138 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 140 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 142 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 144 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 146 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 148 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure createInstalledApp */
+
+
+ /* Procedure put_displayName */
+
+/* 150 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 152 */ NdrFcLong( 0x0 ), /* 0 */
+/* 156 */ NdrFcShort( 0x8 ), /* 8 */
+/* 158 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 160 */ NdrFcShort( 0x0 ), /* 0 */
+/* 162 */ NdrFcShort( 0x8 ), /* 8 */
+/* 164 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 166 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 168 */ NdrFcShort( 0x0 ), /* 0 */
+/* 170 */ NdrFcShort( 0x1 ), /* 1 */
+/* 172 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_id */
+
+
+ /* Parameter __MIDL__IAppBundle0001 */
+
+/* 174 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 176 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 178 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 180 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 182 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 184 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_filename */
+
+
+ /* Procedure get_appId */
+
+
+ /* Procedure get_displayLanguage */
+
+/* 186 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 188 */ NdrFcLong( 0x0 ), /* 0 */
+/* 192 */ NdrFcShort( 0x9 ), /* 9 */
+/* 194 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 196 */ NdrFcShort( 0x0 ), /* 0 */
+/* 198 */ NdrFcShort( 0x8 ), /* 8 */
+/* 200 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 202 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 204 */ NdrFcShort( 0x1 ), /* 1 */
+/* 206 */ NdrFcShort( 0x0 ), /* 0 */
+/* 208 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IPackage0001 */
+
+
+ /* Parameter __MIDL__IApp0000 */
+
+
+ /* Parameter __MIDL__IAppBundle0002 */
+
+/* 210 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 212 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 214 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 216 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 218 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 220 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_displayLanguage */
+
+/* 222 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 224 */ NdrFcLong( 0x0 ), /* 0 */
+/* 228 */ NdrFcShort( 0xa ), /* 10 */
+/* 230 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 232 */ NdrFcShort( 0x0 ), /* 0 */
+/* 234 */ NdrFcShort( 0x8 ), /* 8 */
+/* 236 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 238 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 240 */ NdrFcShort( 0x0 ), /* 0 */
+/* 242 */ NdrFcShort( 0x1 ), /* 1 */
+/* 244 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IAppBundle0003 */
+
+/* 246 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 248 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 250 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 252 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 254 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 256 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_installSource */
+
+/* 258 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 260 */ NdrFcLong( 0x0 ), /* 0 */
+/* 264 */ NdrFcShort( 0xb ), /* 11 */
+/* 266 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 268 */ NdrFcShort( 0x0 ), /* 0 */
+/* 270 */ NdrFcShort( 0x8 ), /* 8 */
+/* 272 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 274 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 276 */ NdrFcShort( 0x1 ), /* 1 */
+/* 278 */ NdrFcShort( 0x0 ), /* 0 */
+/* 280 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IAppBundle0004 */
+
+/* 282 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 284 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 286 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 288 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 290 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 292 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_installSource */
+
+/* 294 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 296 */ NdrFcLong( 0x0 ), /* 0 */
+/* 300 */ NdrFcShort( 0xc ), /* 12 */
+/* 302 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 304 */ NdrFcShort( 0x0 ), /* 0 */
+/* 306 */ NdrFcShort( 0x8 ), /* 8 */
+/* 308 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 310 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 312 */ NdrFcShort( 0x0 ), /* 0 */
+/* 314 */ NdrFcShort( 0x1 ), /* 1 */
+/* 316 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IAppBundle0005 */
+
+/* 318 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 320 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 322 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 324 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 326 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 328 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_originURL */
+
+/* 330 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 332 */ NdrFcLong( 0x0 ), /* 0 */
+/* 336 */ NdrFcShort( 0xd ), /* 13 */
+/* 338 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 340 */ NdrFcShort( 0x0 ), /* 0 */
+/* 342 */ NdrFcShort( 0x8 ), /* 8 */
+/* 344 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 346 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 348 */ NdrFcShort( 0x1 ), /* 1 */
+/* 350 */ NdrFcShort( 0x0 ), /* 0 */
+/* 352 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IAppBundle0006 */
+
+/* 354 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 356 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 358 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 360 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 362 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 364 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_originURL */
+
+/* 366 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 368 */ NdrFcLong( 0x0 ), /* 0 */
+/* 372 */ NdrFcShort( 0xe ), /* 14 */
+/* 374 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 376 */ NdrFcShort( 0x0 ), /* 0 */
+/* 378 */ NdrFcShort( 0x8 ), /* 8 */
+/* 380 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 382 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 384 */ NdrFcShort( 0x0 ), /* 0 */
+/* 386 */ NdrFcShort( 0x1 ), /* 1 */
+/* 388 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IAppBundle0007 */
+
+/* 390 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 392 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 394 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 396 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 398 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 400 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_offlineDirectory */
+
+/* 402 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 404 */ NdrFcLong( 0x0 ), /* 0 */
+/* 408 */ NdrFcShort( 0xf ), /* 15 */
+/* 410 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 412 */ NdrFcShort( 0x0 ), /* 0 */
+/* 414 */ NdrFcShort( 0x8 ), /* 8 */
+/* 416 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 418 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 420 */ NdrFcShort( 0x1 ), /* 1 */
+/* 422 */ NdrFcShort( 0x0 ), /* 0 */
+/* 424 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offline_dir */
+
+/* 426 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 428 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 430 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 432 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 434 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 436 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_offlineDirectory */
+
+/* 438 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 440 */ NdrFcLong( 0x0 ), /* 0 */
+/* 444 */ NdrFcShort( 0x10 ), /* 16 */
+/* 446 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 448 */ NdrFcShort( 0x0 ), /* 0 */
+/* 450 */ NdrFcShort( 0x8 ), /* 8 */
+/* 452 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 454 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 456 */ NdrFcShort( 0x0 ), /* 0 */
+/* 458 */ NdrFcShort( 0x1 ), /* 1 */
+/* 460 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offline_dir */
+
+/* 462 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 464 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 466 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 468 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 470 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 472 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_sessionId */
+
+/* 474 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 476 */ NdrFcLong( 0x0 ), /* 0 */
+/* 480 */ NdrFcShort( 0x11 ), /* 17 */
+/* 482 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 484 */ NdrFcShort( 0x0 ), /* 0 */
+/* 486 */ NdrFcShort( 0x8 ), /* 8 */
+/* 488 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 490 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 492 */ NdrFcShort( 0x1 ), /* 1 */
+/* 494 */ NdrFcShort( 0x0 ), /* 0 */
+/* 496 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter session_id */
+
+/* 498 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 500 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 502 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 504 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 506 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 508 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_sessionId */
+
+/* 510 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 512 */ NdrFcLong( 0x0 ), /* 0 */
+/* 516 */ NdrFcShort( 0x12 ), /* 18 */
+/* 518 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 520 */ NdrFcShort( 0x0 ), /* 0 */
+/* 522 */ NdrFcShort( 0x8 ), /* 8 */
+/* 524 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 526 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 528 */ NdrFcShort( 0x0 ), /* 0 */
+/* 530 */ NdrFcShort( 0x1 ), /* 1 */
+/* 532 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter session_id */
+
+/* 534 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 536 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 538 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 540 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 542 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 544 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_sendPings */
+
+/* 546 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 548 */ NdrFcLong( 0x0 ), /* 0 */
+/* 552 */ NdrFcShort( 0x13 ), /* 19 */
+/* 554 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 556 */ NdrFcShort( 0x0 ), /* 0 */
+/* 558 */ NdrFcShort( 0x22 ), /* 34 */
+/* 560 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 562 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 564 */ NdrFcShort( 0x0 ), /* 0 */
+/* 566 */ NdrFcShort( 0x0 ), /* 0 */
+/* 568 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter send_pings */
+
+/* 570 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 572 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 574 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 576 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 578 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 580 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_sendPings */
+
+/* 582 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 584 */ NdrFcLong( 0x0 ), /* 0 */
+/* 588 */ NdrFcShort( 0x14 ), /* 20 */
+/* 590 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 592 */ NdrFcShort( 0x6 ), /* 6 */
+/* 594 */ NdrFcShort( 0x8 ), /* 8 */
+/* 596 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 598 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 600 */ NdrFcShort( 0x0 ), /* 0 */
+/* 602 */ NdrFcShort( 0x0 ), /* 0 */
+/* 604 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter send_pings */
+
+/* 606 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 608 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 610 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 612 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 614 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 616 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_priority */
+
+/* 618 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 620 */ NdrFcLong( 0x0 ), /* 0 */
+/* 624 */ NdrFcShort( 0x15 ), /* 21 */
+/* 626 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 628 */ NdrFcShort( 0x0 ), /* 0 */
+/* 630 */ NdrFcShort( 0x24 ), /* 36 */
+/* 632 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 634 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 636 */ NdrFcShort( 0x0 ), /* 0 */
+/* 638 */ NdrFcShort( 0x0 ), /* 0 */
+/* 640 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter priority */
+
+/* 642 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 644 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 646 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 648 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 650 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 652 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_priority */
+
+/* 654 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 656 */ NdrFcLong( 0x0 ), /* 0 */
+/* 660 */ NdrFcShort( 0x16 ), /* 22 */
+/* 662 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 664 */ NdrFcShort( 0x8 ), /* 8 */
+/* 666 */ NdrFcShort( 0x8 ), /* 8 */
+/* 668 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 670 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 672 */ NdrFcShort( 0x0 ), /* 0 */
+/* 674 */ NdrFcShort( 0x0 ), /* 0 */
+/* 676 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter priority */
+
+/* 678 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 680 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 682 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 684 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 686 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 688 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_postInstallAction */
+
+
+ /* Procedure get_Count */
+
+/* 690 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 692 */ NdrFcLong( 0x0 ), /* 0 */
+/* 696 */ NdrFcShort( 0x17 ), /* 23 */
+/* 698 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 700 */ NdrFcShort( 0x0 ), /* 0 */
+/* 702 */ NdrFcShort( 0x24 ), /* 36 */
+/* 704 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 706 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 708 */ NdrFcShort( 0x0 ), /* 0 */
+/* 710 */ NdrFcShort( 0x0 ), /* 0 */
+/* 712 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0015 */
+
+
+ /* Parameter count */
+
+/* 714 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 716 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 718 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 720 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 722 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 724 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_Item */
+
+/* 726 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 728 */ NdrFcLong( 0x0 ), /* 0 */
+/* 732 */ NdrFcShort( 0x18 ), /* 24 */
+/* 734 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 736 */ NdrFcShort( 0x8 ), /* 8 */
+/* 738 */ NdrFcShort( 0x8 ), /* 8 */
+/* 740 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 742 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 744 */ NdrFcShort( 0x0 ), /* 0 */
+/* 746 */ NdrFcShort( 0x0 ), /* 0 */
+/* 748 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 750 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 752 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 754 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter app */
+
+/* 756 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 758 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 760 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+/* 762 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 764 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 766 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_altTokens */
+
+/* 768 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 770 */ NdrFcLong( 0x0 ), /* 0 */
+/* 774 */ NdrFcShort( 0x19 ), /* 25 */
+/* 776 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 778 */ NdrFcShort( 0x18 ), /* 24 */
+/* 780 */ NdrFcShort( 0x8 ), /* 8 */
+/* 782 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 784 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 786 */ NdrFcShort( 0x0 ), /* 0 */
+/* 788 */ NdrFcShort( 0x0 ), /* 0 */
+/* 790 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter impersonation_token */
+
+/* 792 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 794 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 796 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter primary_token */
+
+/* 798 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 800 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 802 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter caller_proc_id */
+
+/* 804 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 806 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 808 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 810 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 812 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 814 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_parentHWND */
+
+/* 816 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 818 */ NdrFcLong( 0x0 ), /* 0 */
+/* 822 */ NdrFcShort( 0x1a ), /* 26 */
+/* 824 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 826 */ NdrFcShort( 0x8 ), /* 8 */
+/* 828 */ NdrFcShort( 0x8 ), /* 8 */
+/* 830 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 832 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 834 */ NdrFcShort( 0x0 ), /* 0 */
+/* 836 */ NdrFcShort( 0x0 ), /* 0 */
+/* 838 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter hwnd */
+
+/* 840 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 842 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 844 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 846 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 848 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 850 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure initialize */
+
+/* 852 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 854 */ NdrFcLong( 0x0 ), /* 0 */
+/* 858 */ NdrFcShort( 0x1b ), /* 27 */
+/* 860 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 862 */ NdrFcShort( 0x0 ), /* 0 */
+/* 864 */ NdrFcShort( 0x8 ), /* 8 */
+/* 866 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 868 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 870 */ NdrFcShort( 0x0 ), /* 0 */
+/* 872 */ NdrFcShort( 0x0 ), /* 0 */
+/* 874 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 876 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 878 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 880 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_command */
+
+
+ /* Procedure createApp */
+
+/* 882 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 884 */ NdrFcLong( 0x0 ), /* 0 */
+/* 888 */ NdrFcShort( 0x1c ), /* 28 */
+/* 890 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 892 */ NdrFcShort( 0x0 ), /* 0 */
+/* 894 */ NdrFcShort( 0x8 ), /* 8 */
+/* 896 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 898 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 900 */ NdrFcShort( 0x0 ), /* 0 */
+/* 902 */ NdrFcShort( 0x1 ), /* 1 */
+/* 904 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter command_id */
+
+
+ /* Parameter app_id */
+
+/* 906 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 908 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 910 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter command */
+
+
+ /* Parameter app */
+
+/* 912 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 914 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 916 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 918 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 920 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 922 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure createInstalledApp */
+
+/* 924 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 926 */ NdrFcLong( 0x0 ), /* 0 */
+/* 930 */ NdrFcShort( 0x1d ), /* 29 */
+/* 932 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 934 */ NdrFcShort( 0x0 ), /* 0 */
+/* 936 */ NdrFcShort( 0x8 ), /* 8 */
+/* 938 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 940 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 942 */ NdrFcShort( 0x0 ), /* 0 */
+/* 944 */ NdrFcShort( 0x1 ), /* 1 */
+/* 946 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_id */
+
+/* 948 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 950 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 952 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter app */
+
+/* 954 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 956 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 958 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+/* 960 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 962 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 964 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure createAllInstalledApps */
+
+/* 966 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 968 */ NdrFcLong( 0x0 ), /* 0 */
+/* 972 */ NdrFcShort( 0x1e ), /* 30 */
+/* 974 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 976 */ NdrFcShort( 0x0 ), /* 0 */
+/* 978 */ NdrFcShort( 0x8 ), /* 8 */
+/* 980 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 982 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 984 */ NdrFcShort( 0x0 ), /* 0 */
+/* 986 */ NdrFcShort( 0x0 ), /* 0 */
+/* 988 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 990 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 992 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 994 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure checkForUpdate */
+
+/* 996 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 998 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1002 */ NdrFcShort( 0x1f ), /* 31 */
+/* 1004 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1006 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1008 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1010 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 1012 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1014 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1016 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1018 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 1020 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1022 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1024 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure download */
+
+/* 1026 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1028 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1032 */ NdrFcShort( 0x20 ), /* 32 */
+/* 1034 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1036 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1038 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1040 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 1042 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1044 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1046 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1048 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 1050 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1052 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1054 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure install */
+
+/* 1056 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1058 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1062 */ NdrFcShort( 0x21 ), /* 33 */
+/* 1064 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1066 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1068 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1070 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 1072 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1074 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1076 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1078 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 1080 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1082 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1084 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure updateAllApps */
+
+/* 1086 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1088 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1092 */ NdrFcShort( 0x22 ), /* 34 */
+/* 1094 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1096 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1098 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1100 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 1102 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1106 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1108 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 1110 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1112 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1114 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure stop */
+
+/* 1116 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1118 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1122 */ NdrFcShort( 0x23 ), /* 35 */
+/* 1124 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1126 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1128 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1130 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 1132 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1134 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1136 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1138 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 1140 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1142 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1144 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure pause */
+
+/* 1146 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1148 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1152 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1154 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1156 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1158 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1160 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 1162 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1164 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1166 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1168 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 1170 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1172 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1174 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure resume */
+
+/* 1176 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1178 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1182 */ NdrFcShort( 0x25 ), /* 37 */
+/* 1184 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1186 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1188 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1190 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 1192 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1194 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1196 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1198 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 1200 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1202 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1204 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure isBusy */
+
+/* 1206 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1208 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1212 */ NdrFcShort( 0x26 ), /* 38 */
+/* 1214 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1216 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1218 */ NdrFcShort( 0x22 ), /* 34 */
+/* 1220 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1222 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1224 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1226 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1228 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter is_busy */
+
+/* 1230 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1232 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1234 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1236 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1238 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1240 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure downloadPackage */
+
+/* 1242 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1244 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1248 */ NdrFcShort( 0x27 ), /* 39 */
+/* 1250 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1252 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1254 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1256 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 1258 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1260 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1262 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1264 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_id */
+
+/* 1266 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1268 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1270 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter package_name */
+
+/* 1272 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1274 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1276 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 1278 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1280 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1282 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_currentState */
+
+/* 1284 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1286 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1290 */ NdrFcShort( 0x28 ), /* 40 */
+/* 1292 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1294 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1296 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1298 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1300 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1302 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1304 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1306 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter current_state */
+
+/* 1308 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 1310 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1312 */ NdrFcShort( 0x42c ), /* Type Offset=1068 */
+
+ /* Return value */
+
+/* 1314 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1316 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1318 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure createAppBundleWeb */
+
+
+ /* Procedure get_currentVersion */
+
+/* 1320 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1322 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1326 */ NdrFcShort( 0x7 ), /* 7 */
+/* 1328 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1330 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1332 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1334 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1336 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1338 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1340 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1342 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_bundle_web */
+
+
+ /* Parameter current */
+
+/* 1344 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 1346 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1348 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1350 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1352 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1354 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_currentVersionWeb */
+
+
+ /* Procedure get_nextVersion */
+
+/* 1356 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1358 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1362 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1364 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1366 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1368 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1370 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1372 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1374 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1376 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1378 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter current */
+
+
+ /* Parameter next */
+
+/* 1380 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 1382 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1384 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1386 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1388 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1390 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_displayLanguage */
+
+
+ /* Procedure get_displayName */
+
+/* 1392 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1394 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1398 */ NdrFcShort( 0xa ), /* 10 */
+/* 1400 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1402 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1404 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1406 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1408 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1410 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1412 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1414 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IAppBundleWeb0000 */
+
+
+ /* Parameter __MIDL__IApp0001 */
+
+/* 1416 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1418 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1420 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1422 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1424 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1426 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_displayLanguage */
+
+
+ /* Procedure put_displayName */
+
+/* 1428 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1430 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1434 */ NdrFcShort( 0xb ), /* 11 */
+/* 1436 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1438 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1440 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1442 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1444 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1446 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1448 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1450 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IAppBundleWeb0001 */
+
+
+ /* Parameter __MIDL__IApp0002 */
+
+/* 1452 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1454 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1456 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1458 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1460 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1462 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_language */
+
+/* 1464 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1466 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1470 */ NdrFcShort( 0xc ), /* 12 */
+/* 1472 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1474 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1476 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1478 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1480 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1482 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1484 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1486 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0003 */
+
+/* 1488 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1490 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1492 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 1494 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1496 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1498 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_language */
+
+/* 1500 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1502 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1506 */ NdrFcShort( 0xd ), /* 13 */
+/* 1508 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1510 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1512 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1514 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1516 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1518 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1520 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1522 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0004 */
+
+/* 1524 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1526 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1528 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 1530 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1532 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1534 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_ap */
+
+/* 1536 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1538 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1542 */ NdrFcShort( 0xe ), /* 14 */
+/* 1544 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1546 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1548 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1550 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1552 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1554 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1556 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1558 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0005 */
+
+/* 1560 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1562 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1564 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 1566 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1568 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1570 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_ap */
+
+/* 1572 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1574 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1578 */ NdrFcShort( 0xf ), /* 15 */
+/* 1580 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1582 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1584 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1586 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1588 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1590 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1592 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1594 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0006 */
+
+/* 1596 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1598 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1600 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 1602 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1604 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1606 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_ttToken */
+
+/* 1608 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1610 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1614 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1616 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1618 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1620 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1622 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1624 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1626 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1628 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1630 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0007 */
+
+/* 1632 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1634 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1636 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 1638 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1640 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1642 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_ttToken */
+
+/* 1644 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1646 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1650 */ NdrFcShort( 0x11 ), /* 17 */
+/* 1652 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1654 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1656 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1658 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1660 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1662 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1664 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1666 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0008 */
+
+/* 1668 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1670 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1672 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 1674 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1676 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1678 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_completionMessage */
+
+
+ /* Procedure get_iid */
+
+/* 1680 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1682 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1686 */ NdrFcShort( 0x12 ), /* 18 */
+/* 1688 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1690 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1692 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1694 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1696 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1698 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1700 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1702 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0010 */
+
+
+ /* Parameter __MIDL__IApp0009 */
+
+/* 1704 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1706 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1708 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1710 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1712 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1714 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_iid */
+
+/* 1716 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1718 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1722 */ NdrFcShort( 0x13 ), /* 19 */
+/* 1724 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1726 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1728 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1730 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1732 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1734 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1736 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1738 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0010 */
+
+/* 1740 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1742 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1744 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 1746 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1748 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1750 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_brandCode */
+
+/* 1752 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1754 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1758 */ NdrFcShort( 0x14 ), /* 20 */
+/* 1760 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1762 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1764 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1766 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1768 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1770 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1772 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1774 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0011 */
+
+/* 1776 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1778 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1780 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 1782 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1784 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1786 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_brandCode */
+
+/* 1788 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1790 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1794 */ NdrFcShort( 0x15 ), /* 21 */
+/* 1796 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1798 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1800 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1802 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1804 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1806 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1808 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1810 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0012 */
+
+/* 1812 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1814 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1816 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 1818 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1820 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1822 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_postInstallUrl */
+
+
+ /* Procedure get_clientId */
+
+/* 1824 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1826 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1830 */ NdrFcShort( 0x16 ), /* 22 */
+/* 1832 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1834 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1836 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1838 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1840 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1842 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1844 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1846 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0014 */
+
+
+ /* Parameter __MIDL__IApp0013 */
+
+/* 1848 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1850 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1852 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1854 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1856 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1858 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_clientId */
+
+/* 1860 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1862 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1866 */ NdrFcShort( 0x17 ), /* 23 */
+/* 1868 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1870 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1872 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1874 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1876 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1878 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1880 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1882 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0014 */
+
+/* 1884 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1886 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1888 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 1890 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1892 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1894 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_labels */
+
+/* 1896 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1898 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1902 */ NdrFcShort( 0x18 ), /* 24 */
+/* 1904 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1906 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1908 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1910 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1912 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1914 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1916 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1918 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0015 */
+
+/* 1920 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1922 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1924 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 1926 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1928 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1930 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_labels */
+
+/* 1932 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1934 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1938 */ NdrFcShort( 0x19 ), /* 25 */
+/* 1940 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1942 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1944 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1946 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1948 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1950 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1952 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1954 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0016 */
+
+/* 1956 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1958 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1960 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 1962 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1964 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1966 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_referralId */
+
+/* 1968 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1970 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1974 */ NdrFcShort( 0x1a ), /* 26 */
+/* 1976 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1978 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1980 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1982 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1984 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1986 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1988 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1990 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0017 */
+
+/* 1992 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1994 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1996 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 1998 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2000 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2002 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_referralId */
+
+/* 2004 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2006 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2010 */ NdrFcShort( 0x1b ), /* 27 */
+/* 2012 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2014 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2016 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2018 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2020 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2022 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2024 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2026 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0018 */
+
+/* 2028 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2030 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2032 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 2034 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2036 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2038 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_browserType */
+
+/* 2040 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2042 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2046 */ NdrFcShort( 0x1d ), /* 29 */
+/* 2048 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2050 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2052 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2054 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2056 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2058 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2060 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2062 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0019 */
+
+/* 2064 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2066 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2068 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2070 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2072 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2074 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_browserType */
+
+/* 2076 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2078 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2082 */ NdrFcShort( 0x1e ), /* 30 */
+/* 2084 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2086 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2088 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2090 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2092 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2094 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2096 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2098 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0020 */
+
+/* 2100 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2102 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2104 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2106 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2108 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2110 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_clientInstallData */
+
+/* 2112 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2114 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2118 */ NdrFcShort( 0x1f ), /* 31 */
+/* 2120 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2122 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2124 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2126 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2128 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2130 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2132 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2134 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0021 */
+
+/* 2136 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2138 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2140 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 2142 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2144 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2146 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_clientInstallData */
+
+/* 2148 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2150 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2154 */ NdrFcShort( 0x20 ), /* 32 */
+/* 2156 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2158 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2160 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2162 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2164 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2166 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2168 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2170 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0022 */
+
+/* 2172 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2174 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2176 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 2178 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2180 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2182 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_serverInstallDataIndex */
+
+/* 2184 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2186 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2190 */ NdrFcShort( 0x21 ), /* 33 */
+/* 2192 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2194 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2196 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2198 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2200 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2202 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2204 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2206 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0023 */
+
+/* 2208 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2210 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2212 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 2214 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2216 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2218 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_serverInstallDataIndex */
+
+/* 2220 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2222 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2226 */ NdrFcShort( 0x22 ), /* 34 */
+/* 2228 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2230 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2232 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2234 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2236 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2238 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2240 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2242 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0024 */
+
+/* 2244 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2246 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2248 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 2250 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2252 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2254 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isEulaAccepted */
+
+/* 2256 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2258 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2262 */ NdrFcShort( 0x23 ), /* 35 */
+/* 2264 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2266 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2268 */ NdrFcShort( 0x22 ), /* 34 */
+/* 2270 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2272 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2274 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2276 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2278 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0025 */
+
+/* 2280 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2282 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2284 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2286 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2288 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2290 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_isEulaAccepted */
+
+/* 2292 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2294 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2298 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2300 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2302 */ NdrFcShort( 0x6 ), /* 6 */
+/* 2304 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2306 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2308 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2310 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2312 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2314 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0026 */
+
+/* 2316 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2318 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2320 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2322 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2324 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2326 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_usageStatsEnable */
+
+/* 2328 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2330 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2334 */ NdrFcShort( 0x25 ), /* 37 */
+/* 2336 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2338 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2340 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2342 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2344 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2346 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2348 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2350 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0027 */
+
+/* 2352 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2354 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2356 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2358 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2360 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2362 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_usageStatsEnable */
+
+/* 2364 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2366 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2370 */ NdrFcShort( 0x26 ), /* 38 */
+/* 2372 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2374 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2376 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2378 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2380 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2382 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2384 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2386 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0028 */
+
+/* 2388 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2390 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2392 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2394 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2396 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2398 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_installTimeDiffSec */
+
+/* 2400 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2402 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2406 */ NdrFcShort( 0x27 ), /* 39 */
+/* 2408 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2410 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2412 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2414 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2416 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2418 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2420 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2422 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0029 */
+
+/* 2424 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2426 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2428 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2430 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2432 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2434 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_currentState */
+
+/* 2436 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2438 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2442 */ NdrFcShort( 0x28 ), /* 40 */
+/* 2444 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2446 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2448 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2450 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2452 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2454 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2456 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2458 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IApp0030 */
+
+/* 2460 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 2462 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2464 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+/* 2466 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2468 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2470 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isDone */
+
+
+ /* Procedure get_isWebAccessible */
+
+/* 2472 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2474 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2478 */ NdrFcShort( 0x7 ), /* 7 */
+/* 2480 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2482 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2484 */ NdrFcShort( 0x22 ), /* 34 */
+/* 2486 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2488 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2490 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2492 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2494 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter is_done */
+
+
+ /* Parameter __MIDL__IAppCommand0000 */
+
+/* 2496 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2498 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2500 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 2502 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2504 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2506 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_completionHResult */
+
+
+ /* Procedure get_packageCount */
+
+
+ /* Procedure get_exitCode */
+
+
+ /* Procedure get_packageCount */
+
+
+ /* Procedure get_status */
+
+/* 2508 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2510 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2514 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2516 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2518 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2520 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2522 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2524 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2526 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2528 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2530 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter hr */
+
+
+ /* Parameter count */
+
+
+ /* Parameter __MIDL__IAppCommandWeb0001 */
+
+
+ /* Parameter count */
+
+
+ /* Parameter __MIDL__IAppCommand0001 */
+
+/* 2532 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2534 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2536 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 2538 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2540 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2542 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_bytesDownloaded */
+
+
+ /* Procedure get_exitCode */
+
+/* 2544 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2546 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2550 */ NdrFcShort( 0x9 ), /* 9 */
+/* 2552 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2554 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2556 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2558 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2560 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2562 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2564 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2566 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0002 */
+
+
+ /* Parameter __MIDL__IAppCommand0002 */
+
+/* 2568 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2570 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2572 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 2574 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2576 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2578 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure execute */
+
+/* 2580 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2582 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2586 */ NdrFcShort( 0xa ), /* 10 */
+/* 2588 */ NdrFcShort( 0x98 ), /* x86 Stack size/offset = 152 */
+/* 2590 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2592 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2594 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0xa, /* 10 */
+/* 2596 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2598 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2600 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2602 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter arg1 */
+
+/* 2604 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2606 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2608 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Parameter arg2 */
+
+/* 2610 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2612 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 2614 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Parameter arg3 */
+
+/* 2616 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2618 */ NdrFcShort( 0x24 ), /* x86 Stack size/offset = 36 */
+/* 2620 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Parameter arg4 */
+
+/* 2622 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2624 */ NdrFcShort( 0x34 ), /* x86 Stack size/offset = 52 */
+/* 2626 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Parameter arg5 */
+
+/* 2628 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2630 */ NdrFcShort( 0x44 ), /* x86 Stack size/offset = 68 */
+/* 2632 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Parameter arg6 */
+
+/* 2634 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2636 */ NdrFcShort( 0x54 ), /* x86 Stack size/offset = 84 */
+/* 2638 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Parameter arg7 */
+
+/* 2640 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2642 */ NdrFcShort( 0x64 ), /* x86 Stack size/offset = 100 */
+/* 2644 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Parameter arg8 */
+
+/* 2646 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2648 */ NdrFcShort( 0x74 ), /* x86 Stack size/offset = 116 */
+/* 2650 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Parameter arg9 */
+
+/* 2652 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2654 */ NdrFcShort( 0x84 ), /* x86 Stack size/offset = 132 */
+/* 2656 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Return value */
+
+/* 2658 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2660 */ NdrFcShort( 0x94 ), /* x86 Stack size/offset = 148 */
+/* 2662 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_packageWeb */
+
+
+ /* Procedure get_package */
+
+/* 2664 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2666 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2670 */ NdrFcShort( 0x9 ), /* 9 */
+/* 2672 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2674 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2676 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2678 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 2680 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2682 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2684 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2686 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+
+ /* Parameter index */
+
+/* 2688 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2690 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2692 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter package */
+
+
+ /* Parameter package */
+
+/* 2694 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 2696 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2698 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 2700 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2702 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2704 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get */
+
+/* 2706 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2708 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2712 */ NdrFcShort( 0x7 ), /* 7 */
+/* 2714 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2716 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2718 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2720 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2722 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2724 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2726 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2728 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter dir */
+
+/* 2730 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2732 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2734 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 2736 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2738 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2740 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isAvailable */
+
+/* 2742 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2744 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2748 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2750 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2752 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2754 */ NdrFcShort( 0x22 ), /* 34 */
+/* 2756 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2758 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2760 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2762 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2764 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__IPackage0000 */
+
+/* 2766 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2768 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2770 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2772 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2774 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2776 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_availableVersion */
+
+/* 2778 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2780 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2784 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2786 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2788 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2790 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2792 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2794 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2796 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2798 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2800 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0001 */
+
+/* 2802 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2804 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2806 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 2808 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2810 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2812 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_totalBytesToDownload */
+
+/* 2814 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2816 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2820 */ NdrFcShort( 0xa ), /* 10 */
+/* 2822 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2824 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2826 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2828 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2830 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2832 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2834 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2836 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0003 */
+
+/* 2838 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2840 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2842 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2844 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2846 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2848 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_downloadTimeRemainingMs */
+
+/* 2850 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2852 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2856 */ NdrFcShort( 0xb ), /* 11 */
+/* 2858 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2860 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2862 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2864 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2866 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2868 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2870 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2872 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0004 */
+
+/* 2874 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2876 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2878 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2880 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2882 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2884 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nextRetryTime */
+
+/* 2886 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2888 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2892 */ NdrFcShort( 0xc ), /* 12 */
+/* 2894 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2896 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2898 */ NdrFcShort( 0x2c ), /* 44 */
+/* 2900 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2902 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2904 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2906 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2908 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0005 */
+
+/* 2910 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2912 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2914 */ 0xb, /* FC_HYPER */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2916 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2918 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2920 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_length */
+
+
+ /* Procedure get_installProgress */
+
+/* 2922 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2924 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2928 */ NdrFcShort( 0xd ), /* 13 */
+/* 2930 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2932 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2934 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2936 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2938 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2940 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2942 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2944 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+
+ /* Parameter __MIDL__ICurrentState0006 */
+
+/* 2946 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2948 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2950 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 2952 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2954 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2956 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_installTimeRemainingMs */
+
+/* 2958 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2960 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2964 */ NdrFcShort( 0xe ), /* 14 */
+/* 2966 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2968 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2970 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2972 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2974 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2976 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2978 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2980 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0007 */
+
+/* 2982 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2984 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2986 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2988 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2990 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2992 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isCanceled */
+
+/* 2994 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2996 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3000 */ NdrFcShort( 0xf ), /* 15 */
+/* 3002 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3004 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3006 */ NdrFcShort( 0x22 ), /* 34 */
+/* 3008 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3010 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3012 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3014 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3016 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter is_canceled */
+
+/* 3018 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3020 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3022 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3024 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3026 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3028 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_errorCode */
+
+/* 3030 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3032 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3036 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3038 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3040 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3042 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3044 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3046 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3048 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3050 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3052 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0008 */
+
+/* 3054 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3056 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3058 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3060 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3062 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3064 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_extraCode1 */
+
+/* 3066 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3068 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3072 */ NdrFcShort( 0x11 ), /* 17 */
+/* 3074 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3076 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3078 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3080 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3082 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3084 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3086 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3088 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0009 */
+
+/* 3090 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3092 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3094 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3096 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3098 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3100 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_installerResultCode */
+
+/* 3102 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3104 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3108 */ NdrFcShort( 0x13 ), /* 19 */
+/* 3110 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3112 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3114 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3116 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3118 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3120 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3122 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3124 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0011 */
+
+/* 3126 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3128 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3130 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3132 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3134 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3136 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_installerResultExtraCode1 */
+
+/* 3138 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3140 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3144 */ NdrFcShort( 0x14 ), /* 20 */
+/* 3146 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3148 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3150 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3152 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3154 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3156 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3158 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3160 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0012 */
+
+/* 3162 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3164 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3166 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3168 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3170 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3172 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_postInstallLaunchCommandLine */
+
+/* 3174 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3176 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3180 */ NdrFcShort( 0x15 ), /* 21 */
+/* 3182 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3184 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3186 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3188 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 3190 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3192 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3194 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3196 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter __MIDL__ICurrentState0013 */
+
+/* 3198 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 3200 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3202 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 3204 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3206 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3208 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure UpdateRegistry */
+
+/* 3210 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3212 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3216 */ NdrFcShort( 0x7 ), /* 7 */
+/* 3218 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3220 */ NdrFcShort( 0x6 ), /* 6 */
+/* 3222 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3224 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3226 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 3228 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3230 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3232 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_id */
+
+/* 3234 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3236 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3238 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter is_machine */
+
+/* 3240 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3242 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3244 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3246 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3248 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3250 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure QueryUserForCredentials */
+
+/* 3252 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3254 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3258 */ NdrFcShort( 0x3 ), /* 3 */
+/* 3260 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 3262 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3264 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3266 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 3268 */ 0x8, /* 8 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 3270 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3272 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3274 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter owner_hwnd */
+
+/* 3276 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3278 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3280 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter server */
+
+/* 3282 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3284 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3286 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter message */
+
+/* 3288 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3290 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3292 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter username */
+
+/* 3294 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 3296 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3298 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Parameter password */
+
+/* 3300 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 3302 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 3304 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 3306 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3308 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 3310 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setOriginURL */
+
+/* 3312 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3314 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3318 */ NdrFcShort( 0x3 ), /* 3 */
+/* 3320 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3322 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3324 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3326 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 3328 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 3330 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3332 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3334 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter origin_url */
+
+/* 3336 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3338 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3340 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 3342 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3344 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3346 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure createApp */
+
+/* 3348 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3350 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3354 */ NdrFcShort( 0x7 ), /* 7 */
+/* 3356 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 3358 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3360 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3362 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 3364 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 3366 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3368 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3370 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_guid */
+
+/* 3372 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3374 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3376 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter brand_code */
+
+/* 3378 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3380 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3382 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter language */
+
+/* 3384 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3386 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3388 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter ap */
+
+/* 3390 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3392 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3394 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 3396 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3398 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 3400 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure OnInstalling */
+
+
+ /* Procedure createAllInstalledApps */
+
+/* 3402 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3404 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3408 */ NdrFcShort( 0x9 ), /* 9 */
+/* 3410 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3412 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3414 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3416 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3418 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3420 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3422 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3424 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 3426 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3428 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3430 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_parentHWND */
+
+/* 3432 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3434 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3438 */ NdrFcShort( 0xc ), /* 12 */
+/* 3440 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3442 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3444 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3446 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3448 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3450 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3452 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3454 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter hwnd */
+
+/* 3456 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3458 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3460 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3462 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3464 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3466 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_appWeb */
+
+/* 3468 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3470 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3474 */ NdrFcShort( 0xe ), /* 14 */
+/* 3476 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3478 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3480 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3482 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3484 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3486 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3488 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3490 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 3492 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3494 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3496 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter app_web */
+
+/* 3498 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3500 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3502 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+/* 3504 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3506 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3508 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure initialize */
+
+/* 3510 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3512 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3516 */ NdrFcShort( 0xf ), /* 15 */
+/* 3518 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3520 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3522 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3524 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3526 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3528 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3530 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3532 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 3534 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3536 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3538 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure checkForUpdate */
+
+/* 3540 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3542 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3546 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3548 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3550 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3552 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3554 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3556 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3558 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3560 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3562 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 3564 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3566 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3568 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure download */
+
+/* 3570 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3572 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3576 */ NdrFcShort( 0x11 ), /* 17 */
+/* 3578 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3580 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3582 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3584 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3586 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3588 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3590 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3592 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 3594 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3596 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3598 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure install */
+
+/* 3600 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3602 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3606 */ NdrFcShort( 0x12 ), /* 18 */
+/* 3608 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3610 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3612 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3614 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3616 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3618 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3620 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3622 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 3624 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3626 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3628 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure pause */
+
+/* 3630 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3632 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3636 */ NdrFcShort( 0x13 ), /* 19 */
+/* 3638 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3640 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3642 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3644 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3646 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3648 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3650 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3652 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 3654 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3656 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3658 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure resume */
+
+/* 3660 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3662 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3666 */ NdrFcShort( 0x14 ), /* 20 */
+/* 3668 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3670 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3672 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3674 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3676 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3678 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3680 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3682 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 3684 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3686 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3688 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure cancel */
+
+/* 3690 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3692 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3696 */ NdrFcShort( 0x15 ), /* 21 */
+/* 3698 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3700 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3702 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3704 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3706 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3708 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3710 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3712 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 3714 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3716 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3718 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure downloadPackage */
+
+/* 3720 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3722 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3726 */ NdrFcShort( 0x16 ), /* 22 */
+/* 3728 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3730 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3732 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3734 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3736 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 3738 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3740 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3742 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_id */
+
+/* 3744 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3746 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3748 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter package_name */
+
+/* 3750 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3752 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3754 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Return value */
+
+/* 3756 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3758 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3760 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_currentState */
+
+/* 3762 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3764 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3768 */ NdrFcShort( 0x17 ), /* 23 */
+/* 3770 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3772 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3774 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3776 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 3778 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3780 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3782 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3784 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter current_state */
+
+/* 3786 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 3788 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3790 */ NdrFcShort( 0x42c ), /* Type Offset=1068 */
+
+ /* Return value */
+
+/* 3792 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3794 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3796 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_command */
+
+/* 3798 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3800 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3804 */ NdrFcShort( 0xa ), /* 10 */
+/* 3806 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3808 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3810 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3812 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3814 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 3816 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3818 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3820 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter command_id */
+
+/* 3822 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3824 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3826 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter command */
+
+/* 3828 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3830 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3832 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+/* 3834 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3836 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3838 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure cancel */
+
+/* 3840 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3842 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3846 */ NdrFcShort( 0xb ), /* 11 */
+/* 3848 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3850 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3852 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3854 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3856 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3858 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3860 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3862 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 3864 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3866 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3868 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_currentState */
+
+/* 3870 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3872 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3876 */ NdrFcShort( 0xc ), /* 12 */
+/* 3878 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3880 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3882 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3884 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 3886 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3888 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3890 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3892 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter current_state */
+
+/* 3894 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3896 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3898 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
+
+ /* Return value */
+
+/* 3900 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3902 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3904 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure launch */
+
+/* 3906 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3908 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3912 */ NdrFcShort( 0xd ), /* 13 */
+/* 3914 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3916 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3918 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3920 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3922 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3924 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3926 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3928 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 3930 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3932 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3934 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure uninstall */
+
+/* 3936 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3938 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3942 */ NdrFcShort( 0xe ), /* 14 */
+/* 3944 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3946 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3948 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3950 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 3952 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3954 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3956 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3958 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 3960 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3962 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3964 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure execute */
+
+/* 3966 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3968 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3972 */ NdrFcShort( 0x9 ), /* 9 */
+/* 3974 */ NdrFcShort( 0x98 ), /* x86 Stack size/offset = 152 */
+/* 3976 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3978 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3980 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0xa, /* 10 */
+/* 3982 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 3984 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3986 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3988 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter arg1 */
+
+/* 3990 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3992 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3994 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Parameter arg2 */
+
+/* 3996 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 3998 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 4000 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Parameter arg3 */
+
+/* 4002 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 4004 */ NdrFcShort( 0x24 ), /* x86 Stack size/offset = 36 */
+/* 4006 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Parameter arg4 */
+
+/* 4008 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 4010 */ NdrFcShort( 0x34 ), /* x86 Stack size/offset = 52 */
+/* 4012 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Parameter arg5 */
+
+/* 4014 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 4016 */ NdrFcShort( 0x44 ), /* x86 Stack size/offset = 68 */
+/* 4018 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Parameter arg6 */
+
+/* 4020 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 4022 */ NdrFcShort( 0x54 ), /* x86 Stack size/offset = 84 */
+/* 4024 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Parameter arg7 */
+
+/* 4026 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 4028 */ NdrFcShort( 0x64 ), /* x86 Stack size/offset = 100 */
+/* 4030 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Parameter arg8 */
+
+/* 4032 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 4034 */ NdrFcShort( 0x74 ), /* x86 Stack size/offset = 116 */
+/* 4036 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Parameter arg9 */
+
+/* 4038 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 4040 */ NdrFcShort( 0x84 ), /* x86 Stack size/offset = 132 */
+/* 4042 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Return value */
+
+/* 4044 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4046 */ NdrFcShort( 0x94 ), /* x86 Stack size/offset = 148 */
+/* 4048 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure createOmahaMachineServerAsync */
+
+/* 4050 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4052 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4056 */ NdrFcShort( 0x3 ), /* 3 */
+/* 4058 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 4060 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4062 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4064 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 4066 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 4068 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4070 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4072 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter origin_url */
+
+/* 4074 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 4076 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4078 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter create_elevated */
+
+/* 4080 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4082 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4084 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter status */
+
+/* 4086 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 4088 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4090 */ NdrFcShort( 0x448 ), /* Type Offset=1096 */
+
+ /* Return value */
+
+/* 4092 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4094 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4096 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure Send */
+
+/* 4098 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4100 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4104 */ NdrFcShort( 0x3 ), /* 3 */
+/* 4106 */ NdrFcShort( 0x30 ), /* x86 Stack size/offset = 48 */
+/* 4108 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4110 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4112 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x8, /* 8 */
+/* 4114 */ 0x8, /* 8 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 4116 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4118 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4120 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter url */
+
+/* 4122 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 4124 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4126 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter post_data */
+
+/* 4128 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 4130 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4132 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter request_headers */
+
+/* 4134 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 4136 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4138 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter response_headers_needed */
+
+/* 4140 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 4142 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4144 */ NdrFcShort( 0x43a ), /* Type Offset=1082 */
+
+ /* Parameter response_headers */
+
+/* 4146 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 4148 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */
+/* 4150 */ NdrFcShort( 0x42c ), /* Type Offset=1068 */
+
+ /* Parameter response_code */
+
+/* 4152 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4154 */ NdrFcShort( 0x24 ), /* x86 Stack size/offset = 36 */
+/* 4156 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter cache_filename */
+
+/* 4158 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 4160 */ NdrFcShort( 0x28 ), /* x86 Stack size/offset = 40 */
+/* 4162 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
+
+ /* Return value */
+
+/* 4164 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4166 */ NdrFcShort( 0x2c ), /* x86 Stack size/offset = 44 */
+/* 4168 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure LaunchCmdLine */
+
+/* 4170 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4172 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4176 */ NdrFcShort( 0x3 ), /* 3 */
+/* 4178 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4180 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4182 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4184 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4186 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4188 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4190 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4192 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cmd_line */
+
+/* 4194 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4196 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4198 */ NdrFcShort( 0x460 ), /* Type Offset=1120 */
+
+ /* Return value */
+
+/* 4200 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4202 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4204 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure LaunchBrowser */
+
+/* 4206 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4208 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4212 */ NdrFcShort( 0x4 ), /* 4 */
+/* 4214 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4216 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4218 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4220 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4222 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4224 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4226 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4228 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter browser_type */
+
+/* 4230 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4232 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4234 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter url */
+
+/* 4236 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4238 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4240 */ NdrFcShort( 0x460 ), /* Type Offset=1120 */
+
+ /* Return value */
+
+/* 4242 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4244 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4246 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure LaunchCmdElevated */
+
+/* 4248 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4250 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4254 */ NdrFcShort( 0x5 ), /* 5 */
+/* 4256 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 4258 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4260 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4262 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 4264 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4266 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4268 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4270 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_guid */
+
+/* 4272 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4274 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4276 */ NdrFcShort( 0x460 ), /* Type Offset=1120 */
+
+ /* Parameter cmd_id */
+
+/* 4278 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4280 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4282 */ NdrFcShort( 0x460 ), /* Type Offset=1120 */
+
+ /* Parameter caller_proc_id */
+
+/* 4284 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4286 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4288 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter proc_handle */
+
+/* 4290 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4292 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4294 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4296 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4298 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 4300 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure LaunchAppCommand */
+
+/* 4302 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4304 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4308 */ NdrFcShort( 0x3 ), /* 3 */
+/* 4310 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4312 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4314 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4316 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4318 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4320 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4322 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4324 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_guid */
+
+/* 4326 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4328 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4330 */ NdrFcShort( 0x460 ), /* Type Offset=1120 */
+
+ /* Parameter cmd_id */
+
+/* 4332 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4334 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4336 */ NdrFcShort( 0x460 ), /* Type Offset=1120 */
+
+ /* Return value */
+
+/* 4338 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4340 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4342 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure OnShow */
+
+
+ /* Procedure DoClose */
+
+/* 4344 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4346 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4350 */ NdrFcShort( 0x3 ), /* 3 */
+/* 4352 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4354 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4356 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4358 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 4360 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4362 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4364 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4366 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 4368 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4370 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4372 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure OnCheckingForUpdate */
+
+
+ /* Procedure DoPause */
+
+/* 4374 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4376 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4380 */ NdrFcShort( 0x4 ), /* 4 */
+/* 4382 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4384 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4386 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4388 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 4390 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4392 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4394 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4396 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 4398 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4400 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4402 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure DoResume */
+
+/* 4404 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4406 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4410 */ NdrFcShort( 0x5 ), /* 5 */
+/* 4412 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4414 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4416 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4418 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 4420 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4422 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4424 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4426 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 4428 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4430 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4432 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure OnWaitingToDownload */
+
+
+ /* Procedure DoRestartBrowsers */
+
+/* 4434 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4436 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4440 */ NdrFcShort( 0x6 ), /* 6 */
+/* 4442 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4444 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4446 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4448 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 4450 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4452 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4454 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4456 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 4458 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4460 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4462 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure DoReboot */
+
+/* 4464 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4466 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4470 */ NdrFcShort( 0x7 ), /* 7 */
+/* 4472 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4474 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4476 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4478 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 4480 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4482 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4484 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4486 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 4488 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4490 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4492 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure DoLaunchBrowser */
+
+/* 4494 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4496 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4500 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4502 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4504 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4506 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4508 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4510 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4512 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4514 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4516 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter url */
+
+/* 4518 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4520 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4522 */ NdrFcShort( 0x460 ), /* Type Offset=1120 */
+
+ /* Return value */
+
+/* 4524 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4526 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4528 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure OnUpdateAvailable */
+
+/* 4530 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4532 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4536 */ NdrFcShort( 0x5 ), /* 5 */
+/* 4538 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4540 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4542 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4544 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4546 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4548 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4550 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4552 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter version_string */
+
+/* 4554 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4556 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4558 */ NdrFcShort( 0x460 ), /* Type Offset=1120 */
+
+ /* Return value */
+
+/* 4560 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4562 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4564 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure OnDownloading */
+
+/* 4566 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4568 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4572 */ NdrFcShort( 0x7 ), /* 7 */
+/* 4574 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4576 */ NdrFcShort( 0x10 ), /* 16 */
+/* 4578 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4580 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 4582 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4584 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4586 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4588 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter time_remaining_ms */
+
+/* 4590 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4592 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4594 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter pos */
+
+/* 4596 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4598 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4600 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4602 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4604 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4606 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure OnWaitingToInstall */
+
+/* 4608 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4610 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4614 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4616 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4618 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4620 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4622 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 4624 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4626 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4628 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4630 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 4632 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4634 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4636 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure OnPause */
+
+/* 4638 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4640 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4644 */ NdrFcShort( 0xa ), /* 10 */
+/* 4646 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4648 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4650 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4652 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 4654 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4656 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4658 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4660 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 4662 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4664 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4666 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure OnComplete */
+
+/* 4668 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4670 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4674 */ NdrFcShort( 0xb ), /* 11 */
+/* 4676 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4678 */ NdrFcShort( 0x6 ), /* 6 */
+/* 4680 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4682 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4684 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4686 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4688 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4690 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter code */
+
+/* 4692 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4694 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4696 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter completion_text */
+
+/* 4698 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4700 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4702 */ NdrFcShort( 0x460 ), /* Type Offset=1120 */
+
+ /* Return value */
+
+/* 4704 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4706 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4708 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure SetEventSink */
+
+/* 4710 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4712 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4716 */ NdrFcShort( 0xc ), /* 12 */
+/* 4718 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4720 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4722 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4724 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4726 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4728 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4730 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4732 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter ui_sink */
+
+/* 4734 */ NdrFcShort( 0xb ), /* Flags: must size, must free, in, */
+/* 4736 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4738 */ NdrFcShort( 0x462 ), /* Type Offset=1122 */
+
+ /* Return value */
+
+/* 4740 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4742 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4744 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure CheckForUpdate */
+
+/* 4746 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4748 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4752 */ NdrFcShort( 0x3 ), /* 3 */
+/* 4754 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4756 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4758 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4760 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4762 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4764 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4766 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4768 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter guid */
+
+/* 4770 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4772 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4774 */ NdrFcShort( 0x460 ), /* Type Offset=1120 */
+
+ /* Parameter observer */
+
+/* 4776 */ NdrFcShort( 0xb ), /* Flags: must size, must free, in, */
+/* 4778 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4780 */ NdrFcShort( 0x474 ), /* Type Offset=1140 */
+
+ /* Return value */
+
+/* 4782 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4784 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4786 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure Update */
+
+/* 4788 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4790 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4794 */ NdrFcShort( 0x4 ), /* 4 */
+/* 4796 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4798 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4800 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4802 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4804 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4806 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4808 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4810 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter guid */
+
+/* 4812 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4814 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4816 */ NdrFcShort( 0x460 ), /* Type Offset=1120 */
+
+ /* Parameter observer */
+
+/* 4818 */ NdrFcShort( 0xb ), /* Flags: must size, must free, in, */
+/* 4820 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4822 */ NdrFcShort( 0x474 ), /* Type Offset=1140 */
+
+ /* Return value */
+
+/* 4824 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4826 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4828 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure LaunchCmdElevated */
+
+/* 4830 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4832 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4836 */ NdrFcShort( 0x3 ), /* 3 */
+/* 4838 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 4840 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4842 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4844 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 4846 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4848 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4850 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4852 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter app_guid */
+
+/* 4854 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4856 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4858 */ NdrFcShort( 0x460 ), /* Type Offset=1120 */
+
+ /* Parameter cmd_id */
+
+/* 4860 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 4862 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4864 */ NdrFcShort( 0x460 ), /* Type Offset=1120 */
+
+ /* Parameter caller_proc_id */
+
+/* 4866 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4868 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4870 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter proc_handle */
+
+/* 4872 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4874 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4876 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4878 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4880 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 4882 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const google_update_idl_MIDL_TYPE_FORMAT_STRING google_update_idl__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 4 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 6 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 8 */ NdrFcShort( 0x2 ), /* Offset= 2 (10) */
+/* 10 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 12 */ NdrFcLong( 0x20400 ), /* 132096 */
+/* 16 */ NdrFcShort( 0x0 ), /* 0 */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 22 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 24 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 26 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 28 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 30 */ NdrFcShort( 0x1c ), /* Offset= 28 (58) */
+/* 32 */
+ 0x13, 0x0, /* FC_OP */
+/* 34 */ NdrFcShort( 0xe ), /* Offset= 14 (48) */
+/* 36 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 38 */ NdrFcShort( 0x2 ), /* 2 */
+/* 40 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 42 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 44 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 46 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 48 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 50 */ NdrFcShort( 0x8 ), /* 8 */
+/* 52 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (36) */
+/* 54 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 56 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 58 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x4 ), /* 4 */
+/* 64 */ NdrFcShort( 0x0 ), /* 0 */
+/* 66 */ NdrFcShort( 0xffde ), /* Offset= -34 (32) */
+/* 68 */
+ 0x12, 0x0, /* FC_UP */
+/* 70 */ NdrFcShort( 0xffea ), /* Offset= -22 (48) */
+/* 72 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 74 */ NdrFcShort( 0x0 ), /* 0 */
+/* 76 */ NdrFcShort( 0x4 ), /* 4 */
+/* 78 */ NdrFcShort( 0x0 ), /* 0 */
+/* 80 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (68) */
+/* 82 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 84 */ 0x6, /* FC_SHORT */
+ 0x5c, /* FC_PAD */
+/* 86 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 88 */ NdrFcShort( 0x3d4 ), /* Offset= 980 (1068) */
+/* 90 */
+ 0x13, 0x0, /* FC_OP */
+/* 92 */ NdrFcShort( 0x3bc ), /* Offset= 956 (1048) */
+/* 94 */
+ 0x2b, /* FC_NON_ENCAPSULATED_UNION */
+ 0x9, /* FC_ULONG */
+/* 96 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 98 */ NdrFcShort( 0xfff8 ), /* -8 */
+/* 100 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 102 */ NdrFcShort( 0x2 ), /* Offset= 2 (104) */
+/* 104 */ NdrFcShort( 0x10 ), /* 16 */
+/* 106 */ NdrFcShort( 0x2f ), /* 47 */
+/* 108 */ NdrFcLong( 0x14 ), /* 20 */
+/* 112 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 114 */ NdrFcLong( 0x3 ), /* 3 */
+/* 118 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 120 */ NdrFcLong( 0x11 ), /* 17 */
+/* 124 */ NdrFcShort( 0x8001 ), /* Simple arm type: FC_BYTE */
+/* 126 */ NdrFcLong( 0x2 ), /* 2 */
+/* 130 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 132 */ NdrFcLong( 0x4 ), /* 4 */
+/* 136 */ NdrFcShort( 0x800a ), /* Simple arm type: FC_FLOAT */
+/* 138 */ NdrFcLong( 0x5 ), /* 5 */
+/* 142 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 144 */ NdrFcLong( 0xb ), /* 11 */
+/* 148 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 150 */ NdrFcLong( 0xa ), /* 10 */
+/* 154 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 156 */ NdrFcLong( 0x6 ), /* 6 */
+/* 160 */ NdrFcShort( 0xe8 ), /* Offset= 232 (392) */
+/* 162 */ NdrFcLong( 0x7 ), /* 7 */
+/* 166 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 168 */ NdrFcLong( 0x8 ), /* 8 */
+/* 172 */ NdrFcShort( 0xff74 ), /* Offset= -140 (32) */
+/* 174 */ NdrFcLong( 0xd ), /* 13 */
+/* 178 */ NdrFcShort( 0xdc ), /* Offset= 220 (398) */
+/* 180 */ NdrFcLong( 0x9 ), /* 9 */
+/* 184 */ NdrFcShort( 0xff52 ), /* Offset= -174 (10) */
+/* 186 */ NdrFcLong( 0x2000 ), /* 8192 */
+/* 190 */ NdrFcShort( 0xe2 ), /* Offset= 226 (416) */
+/* 192 */ NdrFcLong( 0x24 ), /* 36 */
+/* 196 */ NdrFcShort( 0x30a ), /* Offset= 778 (974) */
+/* 198 */ NdrFcLong( 0x4024 ), /* 16420 */
+/* 202 */ NdrFcShort( 0x304 ), /* Offset= 772 (974) */
+/* 204 */ NdrFcLong( 0x4011 ), /* 16401 */
+/* 208 */ NdrFcShort( 0x302 ), /* Offset= 770 (978) */
+/* 210 */ NdrFcLong( 0x4002 ), /* 16386 */
+/* 214 */ NdrFcShort( 0x300 ), /* Offset= 768 (982) */
+/* 216 */ NdrFcLong( 0x4003 ), /* 16387 */
+/* 220 */ NdrFcShort( 0x2fe ), /* Offset= 766 (986) */
+/* 222 */ NdrFcLong( 0x4014 ), /* 16404 */
+/* 226 */ NdrFcShort( 0x2fc ), /* Offset= 764 (990) */
+/* 228 */ NdrFcLong( 0x4004 ), /* 16388 */
+/* 232 */ NdrFcShort( 0x2fa ), /* Offset= 762 (994) */
+/* 234 */ NdrFcLong( 0x4005 ), /* 16389 */
+/* 238 */ NdrFcShort( 0x2f8 ), /* Offset= 760 (998) */
+/* 240 */ NdrFcLong( 0x400b ), /* 16395 */
+/* 244 */ NdrFcShort( 0x2e2 ), /* Offset= 738 (982) */
+/* 246 */ NdrFcLong( 0x400a ), /* 16394 */
+/* 250 */ NdrFcShort( 0x2e0 ), /* Offset= 736 (986) */
+/* 252 */ NdrFcLong( 0x4006 ), /* 16390 */
+/* 256 */ NdrFcShort( 0x2ea ), /* Offset= 746 (1002) */
+/* 258 */ NdrFcLong( 0x4007 ), /* 16391 */
+/* 262 */ NdrFcShort( 0x2e0 ), /* Offset= 736 (998) */
+/* 264 */ NdrFcLong( 0x4008 ), /* 16392 */
+/* 268 */ NdrFcShort( 0x2e2 ), /* Offset= 738 (1006) */
+/* 270 */ NdrFcLong( 0x400d ), /* 16397 */
+/* 274 */ NdrFcShort( 0x2e0 ), /* Offset= 736 (1010) */
+/* 276 */ NdrFcLong( 0x4009 ), /* 16393 */
+/* 280 */ NdrFcShort( 0x2de ), /* Offset= 734 (1014) */
+/* 282 */ NdrFcLong( 0x6000 ), /* 24576 */
+/* 286 */ NdrFcShort( 0x2dc ), /* Offset= 732 (1018) */
+/* 288 */ NdrFcLong( 0x400c ), /* 16396 */
+/* 292 */ NdrFcShort( 0x2da ), /* Offset= 730 (1022) */
+/* 294 */ NdrFcLong( 0x10 ), /* 16 */
+/* 298 */ NdrFcShort( 0x8002 ), /* Simple arm type: FC_CHAR */
+/* 300 */ NdrFcLong( 0x12 ), /* 18 */
+/* 304 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 306 */ NdrFcLong( 0x13 ), /* 19 */
+/* 310 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 312 */ NdrFcLong( 0x15 ), /* 21 */
+/* 316 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 318 */ NdrFcLong( 0x16 ), /* 22 */
+/* 322 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 324 */ NdrFcLong( 0x17 ), /* 23 */
+/* 328 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 330 */ NdrFcLong( 0xe ), /* 14 */
+/* 334 */ NdrFcShort( 0x2b8 ), /* Offset= 696 (1030) */
+/* 336 */ NdrFcLong( 0x400e ), /* 16398 */
+/* 340 */ NdrFcShort( 0x2bc ), /* Offset= 700 (1040) */
+/* 342 */ NdrFcLong( 0x4010 ), /* 16400 */
+/* 346 */ NdrFcShort( 0x2ba ), /* Offset= 698 (1044) */
+/* 348 */ NdrFcLong( 0x4012 ), /* 16402 */
+/* 352 */ NdrFcShort( 0x276 ), /* Offset= 630 (982) */
+/* 354 */ NdrFcLong( 0x4013 ), /* 16403 */
+/* 358 */ NdrFcShort( 0x274 ), /* Offset= 628 (986) */
+/* 360 */ NdrFcLong( 0x4015 ), /* 16405 */
+/* 364 */ NdrFcShort( 0x272 ), /* Offset= 626 (990) */
+/* 366 */ NdrFcLong( 0x4016 ), /* 16406 */
+/* 370 */ NdrFcShort( 0x268 ), /* Offset= 616 (986) */
+/* 372 */ NdrFcLong( 0x4017 ), /* 16407 */
+/* 376 */ NdrFcShort( 0x262 ), /* Offset= 610 (986) */
+/* 378 */ NdrFcLong( 0x0 ), /* 0 */
+/* 382 */ NdrFcShort( 0x0 ), /* Offset= 0 (382) */
+/* 384 */ NdrFcLong( 0x1 ), /* 1 */
+/* 388 */ NdrFcShort( 0x0 ), /* Offset= 0 (388) */
+/* 390 */ NdrFcShort( 0xffff ), /* Offset= -1 (389) */
+/* 392 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 394 */ NdrFcShort( 0x8 ), /* 8 */
+/* 396 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 398 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 400 */ NdrFcLong( 0x0 ), /* 0 */
+/* 404 */ NdrFcShort( 0x0 ), /* 0 */
+/* 406 */ NdrFcShort( 0x0 ), /* 0 */
+/* 408 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 410 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 412 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 414 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 416 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 418 */ NdrFcShort( 0x2 ), /* Offset= 2 (420) */
+/* 420 */
+ 0x13, 0x0, /* FC_OP */
+/* 422 */ NdrFcShort( 0x216 ), /* Offset= 534 (956) */
+/* 424 */
+ 0x2a, /* FC_ENCAPSULATED_UNION */
+ 0x49, /* 73 */
+/* 426 */ NdrFcShort( 0x18 ), /* 24 */
+/* 428 */ NdrFcShort( 0xa ), /* 10 */
+/* 430 */ NdrFcLong( 0x8 ), /* 8 */
+/* 434 */ NdrFcShort( 0x5a ), /* Offset= 90 (524) */
+/* 436 */ NdrFcLong( 0xd ), /* 13 */
+/* 440 */ NdrFcShort( 0x7e ), /* Offset= 126 (566) */
+/* 442 */ NdrFcLong( 0x9 ), /* 9 */
+/* 446 */ NdrFcShort( 0x9e ), /* Offset= 158 (604) */
+/* 448 */ NdrFcLong( 0xc ), /* 12 */
+/* 452 */ NdrFcShort( 0xc8 ), /* Offset= 200 (652) */
+/* 454 */ NdrFcLong( 0x24 ), /* 36 */
+/* 458 */ NdrFcShort( 0x124 ), /* Offset= 292 (750) */
+/* 460 */ NdrFcLong( 0x800d ), /* 32781 */
+/* 464 */ NdrFcShort( 0x140 ), /* Offset= 320 (784) */
+/* 466 */ NdrFcLong( 0x10 ), /* 16 */
+/* 470 */ NdrFcShort( 0x15a ), /* Offset= 346 (816) */
+/* 472 */ NdrFcLong( 0x2 ), /* 2 */
+/* 476 */ NdrFcShort( 0x174 ), /* Offset= 372 (848) */
+/* 478 */ NdrFcLong( 0x3 ), /* 3 */
+/* 482 */ NdrFcShort( 0x18e ), /* Offset= 398 (880) */
+/* 484 */ NdrFcLong( 0x14 ), /* 20 */
+/* 488 */ NdrFcShort( 0x1a8 ), /* Offset= 424 (912) */
+/* 490 */ NdrFcShort( 0xffff ), /* Offset= -1 (489) */
+/* 492 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 494 */ NdrFcShort( 0x4 ), /* 4 */
+/* 496 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 498 */ NdrFcShort( 0x0 ), /* 0 */
+/* 500 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 502 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 504 */
+ 0x48, /* FC_VARIABLE_REPEAT */
+ 0x49, /* FC_FIXED_OFFSET */
+/* 506 */ NdrFcShort( 0x4 ), /* 4 */
+/* 508 */ NdrFcShort( 0x0 ), /* 0 */
+/* 510 */ NdrFcShort( 0x1 ), /* 1 */
+/* 512 */ NdrFcShort( 0x0 ), /* 0 */
+/* 514 */ NdrFcShort( 0x0 ), /* 0 */
+/* 516 */ 0x13, 0x0, /* FC_OP */
+/* 518 */ NdrFcShort( 0xfe2a ), /* Offset= -470 (48) */
+/* 520 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 522 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 524 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 526 */ NdrFcShort( 0x8 ), /* 8 */
+/* 528 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 530 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 532 */ NdrFcShort( 0x4 ), /* 4 */
+/* 534 */ NdrFcShort( 0x4 ), /* 4 */
+/* 536 */ 0x11, 0x0, /* FC_RP */
+/* 538 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (492) */
+/* 540 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 542 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 544 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 546 */ NdrFcShort( 0x0 ), /* 0 */
+/* 548 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 550 */ NdrFcShort( 0x0 ), /* 0 */
+/* 552 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 554 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 558 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 560 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 562 */ NdrFcShort( 0xff5c ), /* Offset= -164 (398) */
+/* 564 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 566 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 568 */ NdrFcShort( 0x8 ), /* 8 */
+/* 570 */ NdrFcShort( 0x0 ), /* 0 */
+/* 572 */ NdrFcShort( 0x6 ), /* Offset= 6 (578) */
+/* 574 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 576 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 578 */
+ 0x11, 0x0, /* FC_RP */
+/* 580 */ NdrFcShort( 0xffdc ), /* Offset= -36 (544) */
+/* 582 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 584 */ NdrFcShort( 0x0 ), /* 0 */
+/* 586 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 588 */ NdrFcShort( 0x0 ), /* 0 */
+/* 590 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 592 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 596 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 598 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 600 */ NdrFcShort( 0xfdb2 ), /* Offset= -590 (10) */
+/* 602 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 604 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 606 */ NdrFcShort( 0x8 ), /* 8 */
+/* 608 */ NdrFcShort( 0x0 ), /* 0 */
+/* 610 */ NdrFcShort( 0x6 ), /* Offset= 6 (616) */
+/* 612 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 614 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 616 */
+ 0x11, 0x0, /* FC_RP */
+/* 618 */ NdrFcShort( 0xffdc ), /* Offset= -36 (582) */
+/* 620 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 622 */ NdrFcShort( 0x4 ), /* 4 */
+/* 624 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 626 */ NdrFcShort( 0x0 ), /* 0 */
+/* 628 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 630 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 632 */
+ 0x48, /* FC_VARIABLE_REPEAT */
+ 0x49, /* FC_FIXED_OFFSET */
+/* 634 */ NdrFcShort( 0x4 ), /* 4 */
+/* 636 */ NdrFcShort( 0x0 ), /* 0 */
+/* 638 */ NdrFcShort( 0x1 ), /* 1 */
+/* 640 */ NdrFcShort( 0x0 ), /* 0 */
+/* 642 */ NdrFcShort( 0x0 ), /* 0 */
+/* 644 */ 0x13, 0x0, /* FC_OP */
+/* 646 */ NdrFcShort( 0x192 ), /* Offset= 402 (1048) */
+/* 648 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 650 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 652 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 654 */ NdrFcShort( 0x8 ), /* 8 */
+/* 656 */ NdrFcShort( 0x0 ), /* 0 */
+/* 658 */ NdrFcShort( 0x6 ), /* Offset= 6 (664) */
+/* 660 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 662 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 664 */
+ 0x11, 0x0, /* FC_RP */
+/* 666 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (620) */
+/* 668 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 670 */ NdrFcLong( 0x2f ), /* 47 */
+/* 674 */ NdrFcShort( 0x0 ), /* 0 */
+/* 676 */ NdrFcShort( 0x0 ), /* 0 */
+/* 678 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 680 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 682 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 684 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 686 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 688 */ NdrFcShort( 0x1 ), /* 1 */
+/* 690 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 692 */ NdrFcShort( 0x4 ), /* 4 */
+/* 694 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 696 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 698 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 700 */ NdrFcShort( 0x10 ), /* 16 */
+/* 702 */ NdrFcShort( 0x0 ), /* 0 */
+/* 704 */ NdrFcShort( 0xa ), /* Offset= 10 (714) */
+/* 706 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 708 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 710 */ NdrFcShort( 0xffd6 ), /* Offset= -42 (668) */
+/* 712 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 714 */
+ 0x13, 0x0, /* FC_OP */
+/* 716 */ NdrFcShort( 0xffe2 ), /* Offset= -30 (686) */
+/* 718 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 720 */ NdrFcShort( 0x4 ), /* 4 */
+/* 722 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 724 */ NdrFcShort( 0x0 ), /* 0 */
+/* 726 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 728 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 730 */
+ 0x48, /* FC_VARIABLE_REPEAT */
+ 0x49, /* FC_FIXED_OFFSET */
+/* 732 */ NdrFcShort( 0x4 ), /* 4 */
+/* 734 */ NdrFcShort( 0x0 ), /* 0 */
+/* 736 */ NdrFcShort( 0x1 ), /* 1 */
+/* 738 */ NdrFcShort( 0x0 ), /* 0 */
+/* 740 */ NdrFcShort( 0x0 ), /* 0 */
+/* 742 */ 0x13, 0x0, /* FC_OP */
+/* 744 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (698) */
+/* 746 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 748 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 750 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 752 */ NdrFcShort( 0x8 ), /* 8 */
+/* 754 */ NdrFcShort( 0x0 ), /* 0 */
+/* 756 */ NdrFcShort( 0x6 ), /* Offset= 6 (762) */
+/* 758 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 760 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 762 */
+ 0x11, 0x0, /* FC_RP */
+/* 764 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (718) */
+/* 766 */
+ 0x1d, /* FC_SMFARRAY */
+ 0x0, /* 0 */
+/* 768 */ NdrFcShort( 0x8 ), /* 8 */
+/* 770 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 772 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 774 */ NdrFcShort( 0x10 ), /* 16 */
+/* 776 */ 0x8, /* FC_LONG */
+ 0x6, /* FC_SHORT */
+/* 778 */ 0x6, /* FC_SHORT */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 780 */ 0x0, /* 0 */
+ NdrFcShort( 0xfff1 ), /* Offset= -15 (766) */
+ 0x5b, /* FC_END */
+/* 784 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 786 */ NdrFcShort( 0x18 ), /* 24 */
+/* 788 */ NdrFcShort( 0x0 ), /* 0 */
+/* 790 */ NdrFcShort( 0xa ), /* Offset= 10 (800) */
+/* 792 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 794 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 796 */ NdrFcShort( 0xffe8 ), /* Offset= -24 (772) */
+/* 798 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 800 */
+ 0x11, 0x0, /* FC_RP */
+/* 802 */ NdrFcShort( 0xfefe ), /* Offset= -258 (544) */
+/* 804 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 806 */ NdrFcShort( 0x1 ), /* 1 */
+/* 808 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 810 */ NdrFcShort( 0x0 ), /* 0 */
+/* 812 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 814 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 816 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 818 */ NdrFcShort( 0x8 ), /* 8 */
+/* 820 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 822 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 824 */ NdrFcShort( 0x4 ), /* 4 */
+/* 826 */ NdrFcShort( 0x4 ), /* 4 */
+/* 828 */ 0x13, 0x0, /* FC_OP */
+/* 830 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (804) */
+/* 832 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 834 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 836 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 838 */ NdrFcShort( 0x2 ), /* 2 */
+/* 840 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 842 */ NdrFcShort( 0x0 ), /* 0 */
+/* 844 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 846 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 848 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 850 */ NdrFcShort( 0x8 ), /* 8 */
+/* 852 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 854 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 856 */ NdrFcShort( 0x4 ), /* 4 */
+/* 858 */ NdrFcShort( 0x4 ), /* 4 */
+/* 860 */ 0x13, 0x0, /* FC_OP */
+/* 862 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (836) */
+/* 864 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 866 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 868 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 870 */ NdrFcShort( 0x4 ), /* 4 */
+/* 872 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 874 */ NdrFcShort( 0x0 ), /* 0 */
+/* 876 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 878 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 880 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 882 */ NdrFcShort( 0x8 ), /* 8 */
+/* 884 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 886 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 888 */ NdrFcShort( 0x4 ), /* 4 */
+/* 890 */ NdrFcShort( 0x4 ), /* 4 */
+/* 892 */ 0x13, 0x0, /* FC_OP */
+/* 894 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (868) */
+/* 896 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 898 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 900 */
+ 0x1b, /* FC_CARRAY */
+ 0x7, /* 7 */
+/* 902 */ NdrFcShort( 0x8 ), /* 8 */
+/* 904 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 906 */ NdrFcShort( 0x0 ), /* 0 */
+/* 908 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 910 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 912 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 914 */ NdrFcShort( 0x8 ), /* 8 */
+/* 916 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 918 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 920 */ NdrFcShort( 0x4 ), /* 4 */
+/* 922 */ NdrFcShort( 0x4 ), /* 4 */
+/* 924 */ 0x13, 0x0, /* FC_OP */
+/* 926 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (900) */
+/* 928 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 930 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 932 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 934 */ NdrFcShort( 0x8 ), /* 8 */
+/* 936 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 938 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 940 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 942 */ NdrFcShort( 0x8 ), /* 8 */
+/* 944 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 946 */ NdrFcShort( 0xffd8 ), /* -40 */
+/* 948 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 950 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 952 */ NdrFcShort( 0xffec ), /* Offset= -20 (932) */
+/* 954 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 956 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 958 */ NdrFcShort( 0x28 ), /* 40 */
+/* 960 */ NdrFcShort( 0xffec ), /* Offset= -20 (940) */
+/* 962 */ NdrFcShort( 0x0 ), /* Offset= 0 (962) */
+/* 964 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 966 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 968 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 970 */ NdrFcShort( 0xfdde ), /* Offset= -546 (424) */
+/* 972 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 974 */
+ 0x13, 0x0, /* FC_OP */
+/* 976 */ NdrFcShort( 0xfeea ), /* Offset= -278 (698) */
+/* 978 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 980 */ 0x1, /* FC_BYTE */
+ 0x5c, /* FC_PAD */
+/* 982 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 984 */ 0x6, /* FC_SHORT */
+ 0x5c, /* FC_PAD */
+/* 986 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 988 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 990 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 992 */ 0xb, /* FC_HYPER */
+ 0x5c, /* FC_PAD */
+/* 994 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 996 */ 0xa, /* FC_FLOAT */
+ 0x5c, /* FC_PAD */
+/* 998 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1000 */ 0xc, /* FC_DOUBLE */
+ 0x5c, /* FC_PAD */
+/* 1002 */
+ 0x13, 0x0, /* FC_OP */
+/* 1004 */ NdrFcShort( 0xfd9c ), /* Offset= -612 (392) */
+/* 1006 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1008 */ NdrFcShort( 0xfc30 ), /* Offset= -976 (32) */
+/* 1010 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1012 */ NdrFcShort( 0xfd9a ), /* Offset= -614 (398) */
+/* 1014 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1016 */ NdrFcShort( 0xfc12 ), /* Offset= -1006 (10) */
+/* 1018 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1020 */ NdrFcShort( 0xfda4 ), /* Offset= -604 (416) */
+/* 1022 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1024 */ NdrFcShort( 0x2 ), /* Offset= 2 (1026) */
+/* 1026 */
+ 0x13, 0x0, /* FC_OP */
+/* 1028 */ NdrFcShort( 0x14 ), /* Offset= 20 (1048) */
+/* 1030 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 1032 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1034 */ 0x6, /* FC_SHORT */
+ 0x1, /* FC_BYTE */
+/* 1036 */ 0x1, /* FC_BYTE */
+ 0x8, /* FC_LONG */
+/* 1038 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 1040 */
+ 0x13, 0x0, /* FC_OP */
+/* 1042 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (1030) */
+/* 1044 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1046 */ 0x2, /* FC_CHAR */
+ 0x5c, /* FC_PAD */
+/* 1048 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x7, /* 7 */
+/* 1050 */ NdrFcShort( 0x20 ), /* 32 */
+/* 1052 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1054 */ NdrFcShort( 0x0 ), /* Offset= 0 (1054) */
+/* 1056 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1058 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1060 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1062 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1064 */ NdrFcShort( 0xfc36 ), /* Offset= -970 (94) */
+/* 1066 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1068 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 1070 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1072 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1074 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1076 */ NdrFcShort( 0xfc26 ), /* Offset= -986 (90) */
+/* 1078 */
+ 0x12, 0x0, /* FC_UP */
+/* 1080 */ NdrFcShort( 0xffe0 ), /* Offset= -32 (1048) */
+/* 1082 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 1084 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1086 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1088 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1090 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (1078) */
+/* 1092 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 1094 */ 0xb, /* FC_HYPER */
+ 0x5c, /* FC_PAD */
+/* 1096 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 1098 */ NdrFcShort( 0x2 ), /* Offset= 2 (1100) */
+/* 1100 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 1102 */ NdrFcLong( 0x2e629606 ), /* 778212870 */
+/* 1106 */ NdrFcShort( 0x312a ), /* 12586 */
+/* 1108 */ NdrFcShort( 0x482f ), /* 18479 */
+/* 1110 */ 0x9b, /* 155 */
+ 0x12, /* 18 */
+/* 1112 */ 0x2c, /* 44 */
+ 0x4a, /* 74 */
+/* 1114 */ 0xbf, /* 191 */
+ 0x6f, /* 111 */
+/* 1116 */ 0xb, /* 11 */
+ 0x6d, /* 109 */
+/* 1118 */
+ 0x11, 0x8, /* FC_RP [simple_pointer] */
+/* 1120 */
+ 0x25, /* FC_C_WSTRING */
+ 0x5c, /* FC_PAD */
+/* 1122 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 1124 */ NdrFcLong( 0x1c642ced ), /* 476327149 */
+/* 1128 */ NdrFcShort( 0xca3b ), /* -13765 */
+/* 1130 */ NdrFcShort( 0x4013 ), /* 16403 */
+/* 1132 */ 0xa9, /* 169 */
+ 0xdf, /* 223 */
+/* 1134 */ 0xca, /* 202 */
+ 0x6c, /* 108 */
+/* 1136 */ 0xe5, /* 229 */
+ 0xff, /* 255 */
+/* 1138 */ 0x65, /* 101 */
+ 0x3, /* 3 */
+/* 1140 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 1142 */ NdrFcLong( 0x49d7563b ), /* 1238849083 */
+/* 1146 */ NdrFcShort( 0x2ddb ), /* 11739 */
+/* 1148 */ NdrFcShort( 0x4831 ), /* 18481 */
+/* 1150 */ 0x88, /* 136 */
+ 0xc8, /* 200 */
+/* 1152 */ 0x76, /* 118 */
+ 0x8a, /* 138 */
+/* 1154 */ 0x53, /* 83 */
+ 0x83, /* 131 */
+/* 1156 */ 0x38, /* 56 */
+ 0x37, /* 55 */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ },
+ {
+ VARIANT_UserSize
+ ,VARIANT_UserMarshal
+ ,VARIANT_UserUnmarshal
+ ,VARIANT_UserFree
+ }
+
+ };
+
+
+
+/* Standard interface: __MIDL_itf_google_update_idl_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IDispatch, ver. 0.0,
+ GUID={0x00020400,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IGoogleUpdate3, ver. 0.0,
+ GUID={0x6DB17455,0x4E85,0x46e7,{0x9D,0x23,0xE5,0x55,0xE4,0xB0,0x05,0xAF}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IGoogleUpdate3_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 0,
+ 36,
+ 78
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IGoogleUpdate3_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdate3_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IGoogleUpdate3_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdate3_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(10) _IGoogleUpdate3ProxyVtbl =
+{
+ &IGoogleUpdate3_ProxyInfo,
+ &IID_IGoogleUpdate3,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IGoogleUpdate3::get_Count */ ,
+ (void *) (INT_PTR) -1 /* IGoogleUpdate3::get_Item */ ,
+ (void *) (INT_PTR) -1 /* IGoogleUpdate3::createAppBundle */
+};
+
+
+static const PRPC_STUB_FUNCTION IGoogleUpdate3_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IGoogleUpdate3StubVtbl =
+{
+ &IID_IGoogleUpdate3,
+ &IGoogleUpdate3_ServerInfo,
+ 10,
+ &IGoogleUpdate3_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IAppBundle, ver. 0.0,
+ GUID={0xfe908cdd,0x22bb,0x472a,{0x98,0x70,0x1a,0x03,0x90,0xe4,0x2f,0x36}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAppBundle_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 114,
+ 150,
+ 186,
+ 222,
+ 258,
+ 294,
+ 330,
+ 366,
+ 402,
+ 438,
+ 474,
+ 510,
+ 546,
+ 582,
+ 618,
+ 654,
+ 690,
+ 726,
+ 768,
+ 816,
+ 852,
+ 882,
+ 924,
+ 966,
+ 996,
+ 1026,
+ 1056,
+ 1086,
+ 1116,
+ 1146,
+ 1176,
+ 1206,
+ 1242,
+ 1284
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAppBundle_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppBundle_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAppBundle_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppBundle_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(41) _IAppBundleProxyVtbl =
+{
+ &IAppBundle_ProxyInfo,
+ &IID_IAppBundle,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_displayName */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_displayName */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_displayLanguage */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_displayLanguage */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_installSource */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_installSource */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_originURL */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_originURL */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_offlineDirectory */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_offlineDirectory */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_sessionId */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_sessionId */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_sendPings */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_sendPings */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_priority */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_priority */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_Count */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_Item */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_altTokens */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::put_parentHWND */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::initialize */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::createApp */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::createInstalledApp */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::createAllInstalledApps */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::checkForUpdate */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::download */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::install */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::updateAllApps */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::stop */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::pause */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::resume */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::isBusy */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::downloadPackage */ ,
+ (void *) (INT_PTR) -1 /* IAppBundle::get_currentState */
+};
+
+
+static const PRPC_STUB_FUNCTION IAppBundle_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAppBundleStubVtbl =
+{
+ &IID_IAppBundle,
+ &IAppBundle_ServerInfo,
+ 41,
+ &IAppBundle_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IApp, ver. 0.0,
+ GUID={0x76F7B787,0xA67C,0x4c73,{0x82,0xC7,0x31,0xF5,0xE3,0xAA,0xBC,0x5C}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IApp_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 1320,
+ 1356,
+ 186,
+ 1392,
+ 1428,
+ 1464,
+ 1500,
+ 1536,
+ 1572,
+ 1608,
+ 1644,
+ 1680,
+ 1716,
+ 1752,
+ 1788,
+ 1824,
+ 1860,
+ 1896,
+ 1932,
+ 1968,
+ 2004,
+ 882,
+ 2040,
+ 2076,
+ 2112,
+ 2148,
+ 2184,
+ 2220,
+ 2256,
+ 2292,
+ 2328,
+ 2364,
+ 2400,
+ 2436
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IApp_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IApp_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IApp_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IApp_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(41) _IAppProxyVtbl =
+{
+ &IApp_ProxyInfo,
+ &IID_IApp,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_currentVersion */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_nextVersion */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_appId */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_displayName */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_displayName */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_language */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_language */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_ap */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_ap */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_ttToken */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_ttToken */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_iid */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_iid */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_brandCode */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_brandCode */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_clientId */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_clientId */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_labels */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_labels */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_referralId */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_referralId */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_command */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_browserType */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_browserType */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_clientInstallData */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_clientInstallData */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_serverInstallDataIndex */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_serverInstallDataIndex */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_isEulaAccepted */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_isEulaAccepted */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_usageStatsEnable */ ,
+ (void *) (INT_PTR) -1 /* IApp::put_usageStatsEnable */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_installTimeDiffSec */ ,
+ (void *) (INT_PTR) -1 /* IApp::get_currentState */
+};
+
+
+static const PRPC_STUB_FUNCTION IApp_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAppStubVtbl =
+{
+ &IID_IApp,
+ &IApp_ServerInfo,
+ 41,
+ &IApp_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IAppCommand, ver. 0.0,
+ GUID={0x4DE778FE,0xF195,0x4ee3,{0x9D,0xAB,0xFE,0x44,0x6C,0x23,0x92,0x21}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAppCommand_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 2472,
+ 2508,
+ 2544,
+ 2580
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAppCommand_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppCommand_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAppCommand_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppCommand_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(11) _IAppCommandProxyVtbl =
+{
+ &IAppCommand_ProxyInfo,
+ &IID_IAppCommand,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IAppCommand::get_isWebAccessible */ ,
+ (void *) (INT_PTR) -1 /* IAppCommand::get_status */ ,
+ (void *) (INT_PTR) -1 /* IAppCommand::get_exitCode */ ,
+ (void *) (INT_PTR) -1 /* IAppCommand::execute */
+};
+
+
+static const PRPC_STUB_FUNCTION IAppCommand_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAppCommandStubVtbl =
+{
+ &IID_IAppCommand,
+ &IAppCommand_ServerInfo,
+ 11,
+ &IAppCommand_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IAppVersion, ver. 0.0,
+ GUID={0xBCDCB538,0x01C0,0x46d1,{0xA6,0xA7,0x52,0xF4,0xD0,0x21,0xC2,0x72}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAppVersion_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 114,
+ 2508,
+ 2664
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAppVersion_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppVersion_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAppVersion_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppVersion_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(10) _IAppVersionProxyVtbl =
+{
+ &IAppVersion_ProxyInfo,
+ &IID_IAppVersion,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IAppVersion::get_version */ ,
+ (void *) (INT_PTR) -1 /* IAppVersion::get_packageCount */ ,
+ (void *) (INT_PTR) -1 /* IAppVersion::get_package */
+};
+
+
+static const PRPC_STUB_FUNCTION IAppVersion_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAppVersionStubVtbl =
+{
+ &IID_IAppVersion,
+ &IAppVersion_ServerInfo,
+ 10,
+ &IAppVersion_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IPackage, ver. 0.0,
+ GUID={0xDCAB8386,0x4F03,0x4dbd,{0xA3,0x66,0xD9,0x0B,0xC9,0xF6,0x8D,0xE6}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IPackage_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 2706,
+ 2742,
+ 186
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IPackage_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IPackage_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IPackage_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IPackage_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(10) _IPackageProxyVtbl =
+{
+ &IPackage_ProxyInfo,
+ &IID_IPackage,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IPackage::get */ ,
+ (void *) (INT_PTR) -1 /* IPackage::get_isAvailable */ ,
+ (void *) (INT_PTR) -1 /* IPackage::get_filename */
+};
+
+
+static const PRPC_STUB_FUNCTION IPackage_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IPackageStubVtbl =
+{
+ &IID_IPackage,
+ &IPackage_ServerInfo,
+ 10,
+ &IPackage_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: ICurrentState, ver. 0.0,
+ GUID={0x247954F9,0x9EDC,0x4E68,{0x8C,0xC3,0x15,0x0C,0x2B,0x89,0xEA,0xDF}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short ICurrentState_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 0,
+ 2778,
+ 2544,
+ 2814,
+ 2850,
+ 2886,
+ 2922,
+ 2958,
+ 2994,
+ 3030,
+ 3066,
+ 1680,
+ 3102,
+ 3138,
+ 3174,
+ 1824,
+ 690
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO ICurrentState_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &ICurrentState_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO ICurrentState_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &ICurrentState_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(24) _ICurrentStateProxyVtbl =
+{
+ &ICurrentState_ProxyInfo,
+ &IID_ICurrentState,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_stateValue */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_availableVersion */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_bytesDownloaded */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_totalBytesToDownload */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_downloadTimeRemainingMs */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_nextRetryTime */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_installProgress */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_installTimeRemainingMs */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_isCanceled */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_errorCode */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_extraCode1 */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_completionMessage */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_installerResultCode */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_installerResultExtraCode1 */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_postInstallLaunchCommandLine */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_postInstallUrl */ ,
+ (void *) (INT_PTR) -1 /* ICurrentState::get_postInstallAction */
+};
+
+
+static const PRPC_STUB_FUNCTION ICurrentState_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _ICurrentStateStubVtbl =
+{
+ &IID_ICurrentState,
+ &ICurrentState_ServerInfo,
+ 24,
+ &ICurrentState_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IRegistrationUpdateHook, ver. 0.0,
+ GUID={0x4E223325,0xC16B,0x4eeb,{0xAE,0xDC,0x19,0xAA,0x99,0xA2,0x37,0xFA}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IRegistrationUpdateHook_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 3210
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IRegistrationUpdateHook_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IRegistrationUpdateHook_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IRegistrationUpdateHook_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IRegistrationUpdateHook_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(8) _IRegistrationUpdateHookProxyVtbl =
+{
+ &IRegistrationUpdateHook_ProxyInfo,
+ &IID_IRegistrationUpdateHook,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IRegistrationUpdateHook::UpdateRegistry */
+};
+
+
+static const PRPC_STUB_FUNCTION IRegistrationUpdateHook_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IRegistrationUpdateHookStubVtbl =
+{
+ &IID_IRegistrationUpdateHook,
+ &IRegistrationUpdateHook_ServerInfo,
+ 8,
+ &IRegistrationUpdateHook_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: ICredentialDialog, ver. 0.0,
+ GUID={0xb3a47570,0x0a85,0x4aea,{0x82,0x70,0x52,0x9d,0x47,0x89,0x96,0x03}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short ICredentialDialog_FormatStringOffsetTable[] =
+ {
+ 3252
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO ICredentialDialog_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &ICredentialDialog_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO ICredentialDialog_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &ICredentialDialog_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(4) _ICredentialDialogProxyVtbl =
+{
+ &ICredentialDialog_ProxyInfo,
+ &IID_ICredentialDialog,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* ICredentialDialog::QueryUserForCredentials */
+};
+
+const CInterfaceStubVtbl _ICredentialDialogStubVtbl =
+{
+ &IID_ICredentialDialog,
+ &ICredentialDialog_ServerInfo,
+ 4,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IGoogleUpdate3Web, ver. 0.0,
+ GUID={0x494B20CF,0x282E,0x4BDD,{0x9F,0x5D,0xB7,0x0C,0xB0,0x9D,0x35,0x1E}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IGoogleUpdate3Web_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 1320
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IGoogleUpdate3Web_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdate3Web_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IGoogleUpdate3Web_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdate3Web_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(8) _IGoogleUpdate3WebProxyVtbl =
+{
+ &IGoogleUpdate3Web_ProxyInfo,
+ &IID_IGoogleUpdate3Web,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IGoogleUpdate3Web::createAppBundleWeb */
+};
+
+
+static const PRPC_STUB_FUNCTION IGoogleUpdate3Web_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IGoogleUpdate3WebStubVtbl =
+{
+ &IID_IGoogleUpdate3Web,
+ &IGoogleUpdate3Web_ServerInfo,
+ 8,
+ &IGoogleUpdate3Web_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IGoogleUpdate3WebSecurity, ver. 0.0,
+ GUID={0x2D363682,0x561D,0x4c3a,{0x81,0xC6,0xF2,0xF8,0x21,0x07,0x56,0x2A}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IGoogleUpdate3WebSecurity_FormatStringOffsetTable[] =
+ {
+ 3312
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IGoogleUpdate3WebSecurity_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdate3WebSecurity_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IGoogleUpdate3WebSecurity_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdate3WebSecurity_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(4) _IGoogleUpdate3WebSecurityProxyVtbl =
+{
+ &IGoogleUpdate3WebSecurity_ProxyInfo,
+ &IID_IGoogleUpdate3WebSecurity,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IGoogleUpdate3WebSecurity::setOriginURL */
+};
+
+const CInterfaceStubVtbl _IGoogleUpdate3WebSecurityStubVtbl =
+{
+ &IID_IGoogleUpdate3WebSecurity,
+ &IGoogleUpdate3WebSecurity_ServerInfo,
+ 4,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAppBundleWeb, ver. 0.0,
+ GUID={0xDD42475D,0x6D46,0x496a,{0x92,0x4E,0xBD,0x56,0x30,0xB4,0xCB,0xBA}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAppBundleWeb_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 3348,
+ 150,
+ 3402,
+ 1392,
+ 1428,
+ 3432,
+ 2922,
+ 3468,
+ 3510,
+ 3540,
+ 3570,
+ 3600,
+ 3630,
+ 3660,
+ 3690,
+ 3720,
+ 3762
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAppBundleWeb_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppBundleWeb_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAppBundleWeb_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppBundleWeb_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(24) _IAppBundleWebProxyVtbl =
+{
+ &IAppBundleWeb_ProxyInfo,
+ &IID_IAppBundleWeb,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::createApp */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::createInstalledApp */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::createAllInstalledApps */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::get_displayLanguage */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::put_displayLanguage */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::put_parentHWND */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::get_length */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::get_appWeb */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::initialize */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::checkForUpdate */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::download */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::install */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::pause */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::resume */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::cancel */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::downloadPackage */ ,
+ (void *) (INT_PTR) -1 /* IAppBundleWeb::get_currentState */
+};
+
+
+static const PRPC_STUB_FUNCTION IAppBundleWeb_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAppBundleWebStubVtbl =
+{
+ &IID_IAppBundleWeb,
+ &IAppBundleWeb_ServerInfo,
+ 24,
+ &IAppBundleWeb_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IAppWeb, ver. 0.0,
+ GUID={0x18D0F672,0x18B4,0x48e6,{0xAD,0x36,0x6E,0x6B,0xF0,0x1D,0xBB,0xC4}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAppWeb_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 114,
+ 1356,
+ 78,
+ 3798,
+ 3840,
+ 3870,
+ 3906,
+ 3936
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAppWeb_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppWeb_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAppWeb_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppWeb_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(15) _IAppWebProxyVtbl =
+{
+ &IAppWeb_ProxyInfo,
+ &IID_IAppWeb,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IAppWeb::get_appId */ ,
+ (void *) (INT_PTR) -1 /* IAppWeb::get_currentVersionWeb */ ,
+ (void *) (INT_PTR) -1 /* IAppWeb::get_nextVersionWeb */ ,
+ (void *) (INT_PTR) -1 /* IAppWeb::get_command */ ,
+ (void *) (INT_PTR) -1 /* IAppWeb::cancel */ ,
+ (void *) (INT_PTR) -1 /* IAppWeb::get_currentState */ ,
+ (void *) (INT_PTR) -1 /* IAppWeb::launch */ ,
+ (void *) (INT_PTR) -1 /* IAppWeb::uninstall */
+};
+
+
+static const PRPC_STUB_FUNCTION IAppWeb_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAppWebStubVtbl =
+{
+ &IID_IAppWeb,
+ &IAppWeb_ServerInfo,
+ 15,
+ &IAppWeb_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IAppCommandWeb, ver. 0.0,
+ GUID={0x68D6C2BD,0x712E,0x4c96,{0x93,0xE8,0x49,0xCB,0x8A,0x9A,0xAE,0xED}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAppCommandWeb_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 0,
+ 2508,
+ 3966
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAppCommandWeb_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppCommandWeb_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAppCommandWeb_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppCommandWeb_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(10) _IAppCommandWebProxyVtbl =
+{
+ &IAppCommandWeb_ProxyInfo,
+ &IID_IAppCommandWeb,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IAppCommandWeb::get_status */ ,
+ (void *) (INT_PTR) -1 /* IAppCommandWeb::get_exitCode */ ,
+ (void *) (INT_PTR) -1 /* IAppCommandWeb::execute */
+};
+
+
+static const PRPC_STUB_FUNCTION IAppCommandWeb_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAppCommandWebStubVtbl =
+{
+ &IID_IAppCommandWeb,
+ &IAppCommandWeb_ServerInfo,
+ 10,
+ &IAppCommandWeb_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IAppVersionWeb, ver. 0.0,
+ GUID={0x0CD01D1E,0x4A1C,0x489d,{0x93,0xB9,0x9B,0x66,0x72,0x87,0x7C,0x57}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAppVersionWeb_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 114,
+ 2508,
+ 2664
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAppVersionWeb_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppVersionWeb_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAppVersionWeb_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IAppVersionWeb_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(10) _IAppVersionWebProxyVtbl =
+{
+ &IAppVersionWeb_ProxyInfo,
+ &IID_IAppVersionWeb,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* IAppVersionWeb::get_version */ ,
+ (void *) (INT_PTR) -1 /* IAppVersionWeb::get_packageCount */ ,
+ (void *) (INT_PTR) -1 /* IAppVersionWeb::get_packageWeb */
+};
+
+
+static const PRPC_STUB_FUNCTION IAppVersionWeb_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAppVersionWebStubVtbl =
+{
+ &IID_IAppVersionWeb,
+ &IAppVersionWeb_ServerInfo,
+ 10,
+ &IAppVersionWeb_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: ICoCreateAsyncStatus, ver. 0.0,
+ GUID={0x2E629606,0x312A,0x482f,{0x9B,0x12,0x2C,0x4A,0xBF,0x6F,0x0B,0x6D}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short ICoCreateAsyncStatus_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 2472,
+ 2508,
+ 78
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO ICoCreateAsyncStatus_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &ICoCreateAsyncStatus_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO ICoCreateAsyncStatus_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &ICoCreateAsyncStatus_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(10) _ICoCreateAsyncStatusProxyVtbl =
+{
+ &ICoCreateAsyncStatus_ProxyInfo,
+ &IID_ICoCreateAsyncStatus,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ (void *) (INT_PTR) -1 /* ICoCreateAsyncStatus::get_isDone */ ,
+ (void *) (INT_PTR) -1 /* ICoCreateAsyncStatus::get_completionHResult */ ,
+ (void *) (INT_PTR) -1 /* ICoCreateAsyncStatus::get_createdInstance */
+};
+
+
+static const PRPC_STUB_FUNCTION ICoCreateAsyncStatus_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _ICoCreateAsyncStatusStubVtbl =
+{
+ &IID_ICoCreateAsyncStatus,
+ &ICoCreateAsyncStatus_ServerInfo,
+ 10,
+ &ICoCreateAsyncStatus_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: ICoCreateAsync, ver. 0.0,
+ GUID={0xDAB1D343,0x1B2A,0x47f9,{0xB4,0x45,0x93,0xDC,0x50,0x70,0x4B,0xFE}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short ICoCreateAsync_FormatStringOffsetTable[] =
+ {
+ 4050
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO ICoCreateAsync_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &ICoCreateAsync_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO ICoCreateAsync_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &ICoCreateAsync_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(4) _ICoCreateAsyncProxyVtbl =
+{
+ &ICoCreateAsync_ProxyInfo,
+ &IID_ICoCreateAsync,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* ICoCreateAsync::createOmahaMachineServerAsync */
+};
+
+const CInterfaceStubVtbl _ICoCreateAsyncStubVtbl =
+{
+ &IID_ICoCreateAsync,
+ &ICoCreateAsync_ServerInfo,
+ 4,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IBrowserHttpRequest2, ver. 0.0,
+ GUID={0x5B25A8DC,0x1780,0x4178,{0xA6,0x29,0x6B,0xE8,0xB8,0xDE,0xFA,0xA2}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IBrowserHttpRequest2_FormatStringOffsetTable[] =
+ {
+ 4098
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IBrowserHttpRequest2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IBrowserHttpRequest2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IBrowserHttpRequest2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IBrowserHttpRequest2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(4) _IBrowserHttpRequest2ProxyVtbl =
+{
+ &IBrowserHttpRequest2_ProxyInfo,
+ &IID_IBrowserHttpRequest2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IBrowserHttpRequest2::Send */
+};
+
+const CInterfaceStubVtbl _IBrowserHttpRequest2StubVtbl =
+{
+ &IID_IBrowserHttpRequest2,
+ &IBrowserHttpRequest2_ServerInfo,
+ 4,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IProcessLauncher, ver. 0.0,
+ GUID={0x128C2DA6,0x2BC0,0x44c0,{0xB3,0xF6,0x4E,0xC2,0x2E,0x64,0x79,0x64}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IProcessLauncher_FormatStringOffsetTable[] =
+ {
+ 4170,
+ 4206,
+ 4248
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IProcessLauncher_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IProcessLauncher_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IProcessLauncher_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IProcessLauncher_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(6) _IProcessLauncherProxyVtbl =
+{
+ &IProcessLauncher_ProxyInfo,
+ &IID_IProcessLauncher,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IProcessLauncher::LaunchCmdLine */ ,
+ (void *) (INT_PTR) -1 /* IProcessLauncher::LaunchBrowser */ ,
+ (void *) (INT_PTR) -1 /* IProcessLauncher::LaunchCmdElevated */
+};
+
+const CInterfaceStubVtbl _IProcessLauncherStubVtbl =
+{
+ &IID_IProcessLauncher,
+ &IProcessLauncher_ServerInfo,
+ 6,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IOneClickProcessLauncher, ver. 0.0,
+ GUID={0x5CCCB0EF,0x7073,0x4516,{0x80,0x28,0x4C,0x62,0x8D,0x0C,0x8A,0xAB}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IOneClickProcessLauncher_FormatStringOffsetTable[] =
+ {
+ 4302
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IOneClickProcessLauncher_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IOneClickProcessLauncher_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IOneClickProcessLauncher_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IOneClickProcessLauncher_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(4) _IOneClickProcessLauncherProxyVtbl =
+{
+ &IOneClickProcessLauncher_ProxyInfo,
+ &IID_IOneClickProcessLauncher,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IOneClickProcessLauncher::LaunchAppCommand */
+};
+
+const CInterfaceStubVtbl _IOneClickProcessLauncherStubVtbl =
+{
+ &IID_IOneClickProcessLauncher,
+ &IOneClickProcessLauncher_ServerInfo,
+ 4,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_google_update_idl_0000_0020, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IProgressWndEvents, ver. 0.0,
+ GUID={0x1C642CED,0xCA3B,0x4013,{0xA9,0xDF,0xCA,0x6C,0xE5,0xFF,0x65,0x03}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IProgressWndEvents_FormatStringOffsetTable[] =
+ {
+ 4344,
+ 4374,
+ 4404,
+ 4434,
+ 4464,
+ 4494
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IProgressWndEvents_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IProgressWndEvents_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IProgressWndEvents_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IProgressWndEvents_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(9) _IProgressWndEventsProxyVtbl =
+{
+ &IProgressWndEvents_ProxyInfo,
+ &IID_IProgressWndEvents,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IProgressWndEvents::DoClose */ ,
+ (void *) (INT_PTR) -1 /* IProgressWndEvents::DoPause */ ,
+ (void *) (INT_PTR) -1 /* IProgressWndEvents::DoResume */ ,
+ (void *) (INT_PTR) -1 /* IProgressWndEvents::DoRestartBrowsers */ ,
+ (void *) (INT_PTR) -1 /* IProgressWndEvents::DoReboot */ ,
+ (void *) (INT_PTR) -1 /* IProgressWndEvents::DoLaunchBrowser */
+};
+
+const CInterfaceStubVtbl _IProgressWndEventsStubVtbl =
+{
+ &IID_IProgressWndEvents,
+ &IProgressWndEvents_ServerInfo,
+ 9,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IJobObserver, ver. 0.0,
+ GUID={0x49D7563B,0x2DDB,0x4831,{0x88,0xC8,0x76,0x8A,0x53,0x83,0x38,0x37}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IJobObserver_FormatStringOffsetTable[] =
+ {
+ 4344,
+ 4374,
+ 4530,
+ 4434,
+ 4566,
+ 4608,
+ 3402,
+ 4638,
+ 4668,
+ 4710
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IJobObserver_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IJobObserver_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IJobObserver_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IJobObserver_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(13) _IJobObserverProxyVtbl =
+{
+ &IJobObserver_ProxyInfo,
+ &IID_IJobObserver,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IJobObserver::OnShow */ ,
+ (void *) (INT_PTR) -1 /* IJobObserver::OnCheckingForUpdate */ ,
+ (void *) (INT_PTR) -1 /* IJobObserver::OnUpdateAvailable */ ,
+ (void *) (INT_PTR) -1 /* IJobObserver::OnWaitingToDownload */ ,
+ (void *) (INT_PTR) -1 /* IJobObserver::OnDownloading */ ,
+ (void *) (INT_PTR) -1 /* IJobObserver::OnWaitingToInstall */ ,
+ (void *) (INT_PTR) -1 /* IJobObserver::OnInstalling */ ,
+ (void *) (INT_PTR) -1 /* IJobObserver::OnPause */ ,
+ (void *) (INT_PTR) -1 /* IJobObserver::OnComplete */ ,
+ (void *) (INT_PTR) -1 /* IJobObserver::SetEventSink */
+};
+
+const CInterfaceStubVtbl _IJobObserverStubVtbl =
+{
+ &IID_IJobObserver,
+ &IJobObserver_ServerInfo,
+ 13,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IGoogleUpdate, ver. 0.0,
+ GUID={0x31AC3F11,0xE5EA,0x4a85,{0x8A,0x3D,0x8E,0x09,0x5A,0x39,0xC2,0x7B}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IGoogleUpdate_FormatStringOffsetTable[] =
+ {
+ 4746,
+ 4788
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IGoogleUpdate_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdate_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IGoogleUpdate_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdate_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(5) _IGoogleUpdateProxyVtbl =
+{
+ &IGoogleUpdate_ProxyInfo,
+ &IID_IGoogleUpdate,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IGoogleUpdate::CheckForUpdate */ ,
+ (void *) (INT_PTR) -1 /* IGoogleUpdate::Update */
+};
+
+const CInterfaceStubVtbl _IGoogleUpdateStubVtbl =
+{
+ &IID_IGoogleUpdate,
+ &IGoogleUpdate_ServerInfo,
+ 5,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IGoogleUpdateCore, ver. 0.0,
+ GUID={0x909489C2,0x85A6,0x4322,{0xAA,0x56,0xD2,0x52,0x78,0x64,0x9D,0x67}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IGoogleUpdateCore_FormatStringOffsetTable[] =
+ {
+ 4830
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IGoogleUpdateCore_ProxyInfo =
+ {
+ &Object_StubDesc,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdateCore_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IGoogleUpdateCore_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ google_update_idl__MIDL_ProcFormatString.Format,
+ &IGoogleUpdateCore_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(4) _IGoogleUpdateCoreProxyVtbl =
+{
+ &IGoogleUpdateCore_ProxyInfo,
+ &IID_IGoogleUpdateCore,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IGoogleUpdateCore::LaunchCmdElevated */
+};
+
+const CInterfaceStubVtbl _IGoogleUpdateCoreStubVtbl =
+{
+ &IID_IGoogleUpdateCore,
+ &IGoogleUpdateCore_ServerInfo,
+ 4,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ google_update_idl__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x801026e, /* MIDL Version 8.1.622 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _google_update_idl_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_ICoCreateAsyncStatusProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IGoogleUpdateProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAppVersionWebProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IRegistrationUpdateHookProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAppVersionProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IJobObserverProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_ICoCreateAsyncProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IGoogleUpdate3ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAppBundleWebProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_ICredentialDialogProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAppWebProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IGoogleUpdate3WebSecurityProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IPackageProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAppProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IProcessLauncherProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAppCommandWebProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IGoogleUpdateCoreProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IGoogleUpdate3WebProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IBrowserHttpRequest2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAppBundleProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IProgressWndEventsProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IOneClickProcessLauncherProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_ICurrentStateProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAppCommandProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _google_update_idl_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_ICoCreateAsyncStatusStubVtbl,
+ ( CInterfaceStubVtbl *) &_IGoogleUpdateStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAppVersionWebStubVtbl,
+ ( CInterfaceStubVtbl *) &_IRegistrationUpdateHookStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAppVersionStubVtbl,
+ ( CInterfaceStubVtbl *) &_IJobObserverStubVtbl,
+ ( CInterfaceStubVtbl *) &_ICoCreateAsyncStubVtbl,
+ ( CInterfaceStubVtbl *) &_IGoogleUpdate3StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAppBundleWebStubVtbl,
+ ( CInterfaceStubVtbl *) &_ICredentialDialogStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAppWebStubVtbl,
+ ( CInterfaceStubVtbl *) &_IGoogleUpdate3WebSecurityStubVtbl,
+ ( CInterfaceStubVtbl *) &_IPackageStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAppStubVtbl,
+ ( CInterfaceStubVtbl *) &_IProcessLauncherStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAppCommandWebStubVtbl,
+ ( CInterfaceStubVtbl *) &_IGoogleUpdateCoreStubVtbl,
+ ( CInterfaceStubVtbl *) &_IGoogleUpdate3WebStubVtbl,
+ ( CInterfaceStubVtbl *) &_IBrowserHttpRequest2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAppBundleStubVtbl,
+ ( CInterfaceStubVtbl *) &_IProgressWndEventsStubVtbl,
+ ( CInterfaceStubVtbl *) &_IOneClickProcessLauncherStubVtbl,
+ ( CInterfaceStubVtbl *) &_ICurrentStateStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAppCommandStubVtbl,
+ 0
+};
+
+PCInterfaceName const _google_update_idl_InterfaceNamesList[] =
+{
+ "ICoCreateAsyncStatus",
+ "IGoogleUpdate",
+ "IAppVersionWeb",
+ "IRegistrationUpdateHook",
+ "IAppVersion",
+ "IJobObserver",
+ "ICoCreateAsync",
+ "IGoogleUpdate3",
+ "IAppBundleWeb",
+ "ICredentialDialog",
+ "IAppWeb",
+ "IGoogleUpdate3WebSecurity",
+ "IPackage",
+ "IApp",
+ "IProcessLauncher",
+ "IAppCommandWeb",
+ "IGoogleUpdateCore",
+ "IGoogleUpdate3Web",
+ "IBrowserHttpRequest2",
+ "IAppBundle",
+ "IProgressWndEvents",
+ "IOneClickProcessLauncher",
+ "ICurrentState",
+ "IAppCommand",
+ 0
+};
+
+const IID * const _google_update_idl_BaseIIDList[] =
+{
+ &IID_IDispatch,
+ 0,
+ &IID_IDispatch,
+ &IID_IDispatch,
+ &IID_IDispatch,
+ 0,
+ 0,
+ &IID_IDispatch,
+ &IID_IDispatch,
+ 0,
+ &IID_IDispatch,
+ 0,
+ &IID_IDispatch,
+ &IID_IDispatch,
+ 0,
+ &IID_IDispatch,
+ 0,
+ &IID_IDispatch,
+ 0,
+ &IID_IDispatch,
+ 0,
+ 0,
+ &IID_IDispatch,
+ &IID_IDispatch,
+ 0
+};
+
+
+#define _google_update_idl_CHECK_IID(n) IID_GENERIC_CHECK_IID( _google_update_idl, pIID, n)
+
+int __stdcall _google_update_idl_IID_Lookup( const IID * pIID, int * pIndex )
+{
+ IID_BS_LOOKUP_SETUP
+
+ IID_BS_LOOKUP_INITIAL_TEST( _google_update_idl, 24, 16 )
+ IID_BS_LOOKUP_NEXT_TEST( _google_update_idl, 8 )
+ IID_BS_LOOKUP_NEXT_TEST( _google_update_idl, 4 )
+ IID_BS_LOOKUP_NEXT_TEST( _google_update_idl, 2 )
+ IID_BS_LOOKUP_NEXT_TEST( _google_update_idl, 1 )
+ IID_BS_LOOKUP_RETURN_RESULT( _google_update_idl, 24, *pIndex )
+
+}
+
+const ExtendedProxyFileInfo google_update_idl_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _google_update_idl_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _google_update_idl_StubVtblList,
+ (const PCInterfaceName * ) & _google_update_idl_InterfaceNamesList,
+ (const IID ** ) & _google_update_idl_BaseIIDList,
+ & _google_update_idl_IID_Lookup,
+ 24,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64) && !defined(_ARM_) */
+
diff --git a/chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.dlldata.c b/chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.dlldata.c
new file mode 100644
index 00000000000..62257138fca
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.dlldata.c
@@ -0,0 +1,37 @@
+/*********************************************************
+ DllData file -- generated by MIDL compiler
+
+ DO NOT ALTER THIS FILE
+
+ This file is regenerated by MIDL on every IDL file compile.
+
+ To completely reconstruct this file, delete it and rerun MIDL
+ on all the IDL files in this DLL, specifying this file for the
+ /dlldata command line option
+
+*********************************************************/
+
+
+#include <rpcproxy.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_PROXY_FILE( chromoting_lib )
+
+
+PROXYFILE_LIST_START
+/* Start of list */
+ REFERENCE_PROXY_FILE( chromoting_lib ),
+/* End of list */
+PROXYFILE_LIST_END
+
+
+DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID )
+
+#ifdef __cplusplus
+} /*extern "C" */
+#endif
+
+/* end of generated dlldata file */
diff --git a/chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.h b/chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.h
new file mode 100644
index 00000000000..04be032c7da
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.h
@@ -0,0 +1,327 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for gen/remoting/host/win/chromoting_lib.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif /* __RPCNDR_H_VERSION__ */
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __chromoting_lib_h__
+#define __chromoting_lib_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IRdpDesktopSessionEventHandler_FWD_DEFINED__
+#define __IRdpDesktopSessionEventHandler_FWD_DEFINED__
+typedef interface IRdpDesktopSessionEventHandler IRdpDesktopSessionEventHandler;
+
+#endif /* __IRdpDesktopSessionEventHandler_FWD_DEFINED__ */
+
+
+#ifndef __IRdpDesktopSession_FWD_DEFINED__
+#define __IRdpDesktopSession_FWD_DEFINED__
+typedef interface IRdpDesktopSession IRdpDesktopSession;
+
+#endif /* __IRdpDesktopSession_FWD_DEFINED__ */
+
+
+#ifndef __RdpDesktopSession_FWD_DEFINED__
+#define __RdpDesktopSession_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class RdpDesktopSession RdpDesktopSession;
+#else
+typedef struct RdpDesktopSession RdpDesktopSession;
+#endif /* __cplusplus */
+
+#endif /* __RdpDesktopSession_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "oaidl.h"
+#include "ocidl.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IRdpDesktopSessionEventHandler_INTERFACE_DEFINED__
+#define __IRdpDesktopSessionEventHandler_INTERFACE_DEFINED__
+
+/* interface IRdpDesktopSessionEventHandler */
+/* [unique][helpstring][nonextensible][uuid][object] */
+
+
+EXTERN_C const IID IID_IRdpDesktopSessionEventHandler;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("b59b96da-83cb-40ee-9b91-c377400fc3e3")
+ IRdpDesktopSessionEventHandler : public IUnknown
+ {
+ public:
+ virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnRdpConnected( void) = 0;
+
+ virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnRdpClosed( void) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IRdpDesktopSessionEventHandlerVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IRdpDesktopSessionEventHandler * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IRdpDesktopSessionEventHandler * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IRdpDesktopSessionEventHandler * This);
+
+ /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnRdpConnected )(
+ IRdpDesktopSessionEventHandler * This);
+
+ /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnRdpClosed )(
+ IRdpDesktopSessionEventHandler * This);
+
+ END_INTERFACE
+ } IRdpDesktopSessionEventHandlerVtbl;
+
+ interface IRdpDesktopSessionEventHandler
+ {
+ CONST_VTBL struct IRdpDesktopSessionEventHandlerVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IRdpDesktopSessionEventHandler_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IRdpDesktopSessionEventHandler_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IRdpDesktopSessionEventHandler_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IRdpDesktopSessionEventHandler_OnRdpConnected(This) \
+ ( (This)->lpVtbl -> OnRdpConnected(This) )
+
+#define IRdpDesktopSessionEventHandler_OnRdpClosed(This) \
+ ( (This)->lpVtbl -> OnRdpClosed(This) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IRdpDesktopSessionEventHandler_INTERFACE_DEFINED__ */
+
+
+#ifndef __IRdpDesktopSession_INTERFACE_DEFINED__
+#define __IRdpDesktopSession_INTERFACE_DEFINED__
+
+/* interface IRdpDesktopSession */
+/* [unique][helpstring][nonextensible][uuid][object] */
+
+
+EXTERN_C const IID IID_IRdpDesktopSession;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6a7699f0-ee43-43e7-aa30-a6738f9bd470")
+ IRdpDesktopSession : public IUnknown
+ {
+ public:
+ virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Connect(
+ /* [in] */ long width,
+ /* [in] */ long height,
+ /* [in] */ long dpi_x,
+ /* [in] */ long dpi_y,
+ /* [in] */ BSTR terminal_id,
+ /* [in] */ DWORD port_number,
+ /* [in] */ IRdpDesktopSessionEventHandler *event_handler) = 0;
+
+ virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Disconnect( void) = 0;
+
+ virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ChangeResolution(
+ /* [in] */ long width,
+ /* [in] */ long height,
+ /* [in] */ long dpi_x,
+ /* [in] */ long dpi_y) = 0;
+
+ virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InjectSas( void) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IRdpDesktopSessionVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IRdpDesktopSession * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IRdpDesktopSession * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IRdpDesktopSession * This);
+
+ /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Connect )(
+ IRdpDesktopSession * This,
+ /* [in] */ long width,
+ /* [in] */ long height,
+ /* [in] */ long dpi_x,
+ /* [in] */ long dpi_y,
+ /* [in] */ BSTR terminal_id,
+ /* [in] */ DWORD port_number,
+ /* [in] */ IRdpDesktopSessionEventHandler *event_handler);
+
+ /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )(
+ IRdpDesktopSession * This);
+
+ /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ChangeResolution )(
+ IRdpDesktopSession * This,
+ /* [in] */ long width,
+ /* [in] */ long height,
+ /* [in] */ long dpi_x,
+ /* [in] */ long dpi_y);
+
+ /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InjectSas )(
+ IRdpDesktopSession * This);
+
+ END_INTERFACE
+ } IRdpDesktopSessionVtbl;
+
+ interface IRdpDesktopSession
+ {
+ CONST_VTBL struct IRdpDesktopSessionVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IRdpDesktopSession_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IRdpDesktopSession_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IRdpDesktopSession_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IRdpDesktopSession_Connect(This,width,height,dpi_x,dpi_y,terminal_id,port_number,event_handler) \
+ ( (This)->lpVtbl -> Connect(This,width,height,dpi_x,dpi_y,terminal_id,port_number,event_handler) )
+
+#define IRdpDesktopSession_Disconnect(This) \
+ ( (This)->lpVtbl -> Disconnect(This) )
+
+#define IRdpDesktopSession_ChangeResolution(This,width,height,dpi_x,dpi_y) \
+ ( (This)->lpVtbl -> ChangeResolution(This,width,height,dpi_x,dpi_y) )
+
+#define IRdpDesktopSession_InjectSas(This) \
+ ( (This)->lpVtbl -> InjectSas(This) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IRdpDesktopSession_INTERFACE_DEFINED__ */
+
+
+
+#ifndef __ChromotingLib_LIBRARY_DEFINED__
+#define __ChromotingLib_LIBRARY_DEFINED__
+
+/* library ChromotingLib */
+/* [helpstring][version][uuid] */
+
+
+EXTERN_C const IID LIBID_ChromotingLib;
+
+EXTERN_C const CLSID CLSID_RdpDesktopSession;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("6741fd0a-6a8a-5838-a35e-8088697e2088")
+RdpDesktopSession;
+#endif
+#endif /* __ChromotingLib_LIBRARY_DEFINED__ */
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.tlb b/chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.tlb
new file mode 100644
index 00000000000..01bf6f048e0
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.tlb
Binary files differ
diff --git a/chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib_i.c b/chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib_i.c
new file mode 100644
index 00000000000..ce296abcd2a
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib_i.c
@@ -0,0 +1,88 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for gen/remoting/host/win/chromoting_lib.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif // !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IRdpDesktopSessionEventHandler,0xb59b96da,0x83cb,0x40ee,0x9b,0x91,0xc3,0x77,0x40,0x0f,0xc3,0xe3);
+
+
+MIDL_DEFINE_GUID(IID, IID_IRdpDesktopSession,0x6a7699f0,0xee43,0x43e7,0xaa,0x30,0xa6,0x73,0x8f,0x9b,0xd4,0x70);
+
+
+MIDL_DEFINE_GUID(IID, LIBID_ChromotingLib,0xb6396c45,0xb0cc,0x456b,0x9f,0x49,0xf1,0x29,0x64,0xee,0x6d,0xf4);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_RdpDesktopSession,0x6741fd0a,0x6a8a,0x5838,0xa3,0x5e,0x80,0x88,0x69,0x7e,0x20,0x88);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib_p.c b/chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib_p.c
new file mode 100644
index 00000000000..f24679e10e1
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib_p.c
@@ -0,0 +1,572 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for gen/remoting/host/win/chromoting_lib.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "chromoting_lib.h"
+
+#define TYPE_FORMAT_STRING_SIZE 57
+#define PROC_FORMAT_STRING_SIZE 227
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _chromoting_lib_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } chromoting_lib_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _chromoting_lib_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } chromoting_lib_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _chromoting_lib_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } chromoting_lib_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const chromoting_lib_MIDL_TYPE_FORMAT_STRING chromoting_lib__MIDL_TypeFormatString;
+extern const chromoting_lib_MIDL_PROC_FORMAT_STRING chromoting_lib__MIDL_ProcFormatString;
+extern const chromoting_lib_MIDL_EXPR_FORMAT_STRING chromoting_lib__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IRdpDesktopSessionEventHandler_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IRdpDesktopSessionEventHandler_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IRdpDesktopSession_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IRdpDesktopSession_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const chromoting_lib_MIDL_PROC_FORMAT_STRING chromoting_lib__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure OnRdpConnected */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 16 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 26 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure Disconnect */
+
+
+ /* Procedure OnRdpClosed */
+
+/* 32 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 34 */ NdrFcLong( 0x0 ), /* 0 */
+/* 38 */ NdrFcShort( 0x4 ), /* 4 */
+/* 40 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 42 */ NdrFcShort( 0x0 ), /* 0 */
+/* 44 */ NdrFcShort( 0x8 ), /* 8 */
+/* 46 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 48 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 50 */ NdrFcShort( 0x0 ), /* 0 */
+/* 52 */ NdrFcShort( 0x0 ), /* 0 */
+/* 54 */ NdrFcShort( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 58 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 60 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 62 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure Connect */
+
+/* 64 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 66 */ NdrFcLong( 0x0 ), /* 0 */
+/* 70 */ NdrFcShort( 0x3 ), /* 3 */
+/* 72 */ NdrFcShort( 0x48 ), /* X64 Stack size/offset = 72 */
+/* 74 */ NdrFcShort( 0x28 ), /* 40 */
+/* 76 */ NdrFcShort( 0x8 ), /* 8 */
+/* 78 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x8, /* 8 */
+/* 80 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 82 */ NdrFcShort( 0x0 ), /* 0 */
+/* 84 */ NdrFcShort( 0x1 ), /* 1 */
+/* 86 */ NdrFcShort( 0x0 ), /* 0 */
+/* 88 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter width */
+
+/* 90 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 92 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 94 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter height */
+
+/* 96 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 98 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 100 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter dpi_x */
+
+/* 102 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 104 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter dpi_y */
+
+/* 108 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 110 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter terminal_id */
+
+/* 114 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 116 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 118 */ NdrFcShort( 0x1c ), /* Type Offset=28 */
+
+ /* Parameter port_number */
+
+/* 120 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 122 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 124 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter event_handler */
+
+/* 126 */ NdrFcShort( 0xb ), /* Flags: must size, must free, in, */
+/* 128 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 130 */ NdrFcShort( 0x26 ), /* Type Offset=38 */
+
+ /* Return value */
+
+/* 132 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 134 */ NdrFcShort( 0x40 ), /* X64 Stack size/offset = 64 */
+/* 136 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure ChangeResolution */
+
+/* 138 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 140 */ NdrFcLong( 0x0 ), /* 0 */
+/* 144 */ NdrFcShort( 0x5 ), /* 5 */
+/* 146 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 148 */ NdrFcShort( 0x20 ), /* 32 */
+/* 150 */ NdrFcShort( 0x8 ), /* 8 */
+/* 152 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x5, /* 5 */
+/* 154 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 156 */ NdrFcShort( 0x0 ), /* 0 */
+/* 158 */ NdrFcShort( 0x0 ), /* 0 */
+/* 160 */ NdrFcShort( 0x0 ), /* 0 */
+/* 162 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter width */
+
+/* 164 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 166 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 168 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter height */
+
+/* 170 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 172 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 174 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter dpi_x */
+
+/* 176 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 178 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 180 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter dpi_y */
+
+/* 182 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 184 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 186 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 188 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 190 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 192 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure InjectSas */
+
+/* 194 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 196 */ NdrFcLong( 0x0 ), /* 0 */
+/* 200 */ NdrFcShort( 0x6 ), /* 6 */
+/* 202 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 204 */ NdrFcShort( 0x0 ), /* 0 */
+/* 206 */ NdrFcShort( 0x8 ), /* 8 */
+/* 208 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 210 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 212 */ NdrFcShort( 0x0 ), /* 0 */
+/* 214 */ NdrFcShort( 0x0 ), /* 0 */
+/* 216 */ NdrFcShort( 0x0 ), /* 0 */
+/* 218 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 220 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 222 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 224 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const chromoting_lib_MIDL_TYPE_FORMAT_STRING chromoting_lib__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x12, 0x0, /* FC_UP */
+/* 4 */ NdrFcShort( 0xe ), /* Offset= 14 (18) */
+/* 6 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 8 */ NdrFcShort( 0x2 ), /* 2 */
+/* 10 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 12 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 14 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 16 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 18 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 20 */ NdrFcShort( 0x8 ), /* 8 */
+/* 22 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (6) */
+/* 24 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 26 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 28 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 30 */ NdrFcShort( 0x0 ), /* 0 */
+/* 32 */ NdrFcShort( 0x8 ), /* 8 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0xffde ), /* Offset= -34 (2) */
+/* 38 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 40 */ NdrFcLong( 0xb59b96da ), /* -1248094502 */
+/* 44 */ NdrFcShort( 0x83cb ), /* -31797 */
+/* 46 */ NdrFcShort( 0x40ee ), /* 16622 */
+/* 48 */ 0x9b, /* 155 */
+ 0x91, /* 145 */
+/* 50 */ 0xc3, /* 195 */
+ 0x77, /* 119 */
+/* 52 */ 0x40, /* 64 */
+ 0xf, /* 15 */
+/* 54 */ 0xc3, /* 195 */
+ 0xe3, /* 227 */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IRdpDesktopSessionEventHandler, ver. 0.0,
+ GUID={0xb59b96da,0x83cb,0x40ee,{0x9b,0x91,0xc3,0x77,0x40,0x0f,0xc3,0xe3}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IRdpDesktopSessionEventHandler_FormatStringOffsetTable[] =
+ {
+ 0,
+ 32
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IRdpDesktopSessionEventHandler_ProxyInfo =
+ {
+ &Object_StubDesc,
+ chromoting_lib__MIDL_ProcFormatString.Format,
+ &IRdpDesktopSessionEventHandler_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IRdpDesktopSessionEventHandler_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ chromoting_lib__MIDL_ProcFormatString.Format,
+ &IRdpDesktopSessionEventHandler_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(5) _IRdpDesktopSessionEventHandlerProxyVtbl =
+{
+ &IRdpDesktopSessionEventHandler_ProxyInfo,
+ &IID_IRdpDesktopSessionEventHandler,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IRdpDesktopSessionEventHandler::OnRdpConnected */ ,
+ (void *) (INT_PTR) -1 /* IRdpDesktopSessionEventHandler::OnRdpClosed */
+};
+
+const CInterfaceStubVtbl _IRdpDesktopSessionEventHandlerStubVtbl =
+{
+ &IID_IRdpDesktopSessionEventHandler,
+ &IRdpDesktopSessionEventHandler_ServerInfo,
+ 5,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IRdpDesktopSession, ver. 0.0,
+ GUID={0x6a7699f0,0xee43,0x43e7,{0xaa,0x30,0xa6,0x73,0x8f,0x9b,0xd4,0x70}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IRdpDesktopSession_FormatStringOffsetTable[] =
+ {
+ 64,
+ 32,
+ 138,
+ 194
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IRdpDesktopSession_ProxyInfo =
+ {
+ &Object_StubDesc,
+ chromoting_lib__MIDL_ProcFormatString.Format,
+ &IRdpDesktopSession_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IRdpDesktopSession_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ chromoting_lib__MIDL_ProcFormatString.Format,
+ &IRdpDesktopSession_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(7) _IRdpDesktopSessionProxyVtbl =
+{
+ &IRdpDesktopSession_ProxyInfo,
+ &IID_IRdpDesktopSession,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IRdpDesktopSession::Connect */ ,
+ (void *) (INT_PTR) -1 /* IRdpDesktopSession::Disconnect */ ,
+ (void *) (INT_PTR) -1 /* IRdpDesktopSession::ChangeResolution */ ,
+ (void *) (INT_PTR) -1 /* IRdpDesktopSession::InjectSas */
+};
+
+const CInterfaceStubVtbl _IRdpDesktopSessionStubVtbl =
+{
+ &IID_IRdpDesktopSession,
+ &IRdpDesktopSession_ServerInfo,
+ 7,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ chromoting_lib__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x801026e, /* MIDL Version 8.1.622 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _chromoting_lib_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IRdpDesktopSessionEventHandlerProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IRdpDesktopSessionProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _chromoting_lib_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IRdpDesktopSessionEventHandlerStubVtbl,
+ ( CInterfaceStubVtbl *) &_IRdpDesktopSessionStubVtbl,
+ 0
+};
+
+PCInterfaceName const _chromoting_lib_InterfaceNamesList[] =
+{
+ "IRdpDesktopSessionEventHandler",
+ "IRdpDesktopSession",
+ 0
+};
+
+
+#define _chromoting_lib_CHECK_IID(n) IID_GENERIC_CHECK_IID( _chromoting_lib, pIID, n)
+
+int __stdcall _chromoting_lib_IID_Lookup( const IID * pIID, int * pIndex )
+{
+ IID_BS_LOOKUP_SETUP
+
+ IID_BS_LOOKUP_INITIAL_TEST( _chromoting_lib, 2, 1 )
+ IID_BS_LOOKUP_RETURN_RESULT( _chromoting_lib, 2, *pIndex )
+
+}
+
+const ExtendedProxyFileInfo chromoting_lib_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _chromoting_lib_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _chromoting_lib_StubVtblList,
+ (const PCInterfaceName * ) & _chromoting_lib_InterfaceNamesList,
+ 0, /* no delegation */
+ & _chromoting_lib_IID_Lookup,
+ 2,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.dlldata.c b/chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.dlldata.c
new file mode 100644
index 00000000000..62257138fca
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.dlldata.c
@@ -0,0 +1,37 @@
+/*********************************************************
+ DllData file -- generated by MIDL compiler
+
+ DO NOT ALTER THIS FILE
+
+ This file is regenerated by MIDL on every IDL file compile.
+
+ To completely reconstruct this file, delete it and rerun MIDL
+ on all the IDL files in this DLL, specifying this file for the
+ /dlldata command line option
+
+*********************************************************/
+
+
+#include <rpcproxy.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_PROXY_FILE( chromoting_lib )
+
+
+PROXYFILE_LIST_START
+/* Start of list */
+ REFERENCE_PROXY_FILE( chromoting_lib ),
+/* End of list */
+PROXYFILE_LIST_END
+
+
+DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID )
+
+#ifdef __cplusplus
+} /*extern "C" */
+#endif
+
+/* end of generated dlldata file */
diff --git a/chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.h b/chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.h
new file mode 100644
index 00000000000..62ced2fa3bc
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.h
@@ -0,0 +1,327 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for gen/remoting/host/win/chromoting_lib.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif /* __RPCNDR_H_VERSION__ */
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __chromoting_lib_h__
+#define __chromoting_lib_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IRdpDesktopSessionEventHandler_FWD_DEFINED__
+#define __IRdpDesktopSessionEventHandler_FWD_DEFINED__
+typedef interface IRdpDesktopSessionEventHandler IRdpDesktopSessionEventHandler;
+
+#endif /* __IRdpDesktopSessionEventHandler_FWD_DEFINED__ */
+
+
+#ifndef __IRdpDesktopSession_FWD_DEFINED__
+#define __IRdpDesktopSession_FWD_DEFINED__
+typedef interface IRdpDesktopSession IRdpDesktopSession;
+
+#endif /* __IRdpDesktopSession_FWD_DEFINED__ */
+
+
+#ifndef __RdpDesktopSession_FWD_DEFINED__
+#define __RdpDesktopSession_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class RdpDesktopSession RdpDesktopSession;
+#else
+typedef struct RdpDesktopSession RdpDesktopSession;
+#endif /* __cplusplus */
+
+#endif /* __RdpDesktopSession_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "oaidl.h"
+#include "ocidl.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#ifndef __IRdpDesktopSessionEventHandler_INTERFACE_DEFINED__
+#define __IRdpDesktopSessionEventHandler_INTERFACE_DEFINED__
+
+/* interface IRdpDesktopSessionEventHandler */
+/* [unique][helpstring][nonextensible][uuid][object] */
+
+
+EXTERN_C const IID IID_IRdpDesktopSessionEventHandler;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("b59b96da-83cb-40ee-9b91-c377400fc3e3")
+ IRdpDesktopSessionEventHandler : public IUnknown
+ {
+ public:
+ virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnRdpConnected( void) = 0;
+
+ virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OnRdpClosed( void) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IRdpDesktopSessionEventHandlerVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IRdpDesktopSessionEventHandler * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IRdpDesktopSessionEventHandler * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IRdpDesktopSessionEventHandler * This);
+
+ /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnRdpConnected )(
+ IRdpDesktopSessionEventHandler * This);
+
+ /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnRdpClosed )(
+ IRdpDesktopSessionEventHandler * This);
+
+ END_INTERFACE
+ } IRdpDesktopSessionEventHandlerVtbl;
+
+ interface IRdpDesktopSessionEventHandler
+ {
+ CONST_VTBL struct IRdpDesktopSessionEventHandlerVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IRdpDesktopSessionEventHandler_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IRdpDesktopSessionEventHandler_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IRdpDesktopSessionEventHandler_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IRdpDesktopSessionEventHandler_OnRdpConnected(This) \
+ ( (This)->lpVtbl -> OnRdpConnected(This) )
+
+#define IRdpDesktopSessionEventHandler_OnRdpClosed(This) \
+ ( (This)->lpVtbl -> OnRdpClosed(This) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IRdpDesktopSessionEventHandler_INTERFACE_DEFINED__ */
+
+
+#ifndef __IRdpDesktopSession_INTERFACE_DEFINED__
+#define __IRdpDesktopSession_INTERFACE_DEFINED__
+
+/* interface IRdpDesktopSession */
+/* [unique][helpstring][nonextensible][uuid][object] */
+
+
+EXTERN_C const IID IID_IRdpDesktopSession;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6a7699f0-ee43-43e7-aa30-a6738f9bd470")
+ IRdpDesktopSession : public IUnknown
+ {
+ public:
+ virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Connect(
+ /* [in] */ long width,
+ /* [in] */ long height,
+ /* [in] */ long dpi_x,
+ /* [in] */ long dpi_y,
+ /* [in] */ BSTR terminal_id,
+ /* [in] */ DWORD port_number,
+ /* [in] */ IRdpDesktopSessionEventHandler *event_handler) = 0;
+
+ virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Disconnect( void) = 0;
+
+ virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ChangeResolution(
+ /* [in] */ long width,
+ /* [in] */ long height,
+ /* [in] */ long dpi_x,
+ /* [in] */ long dpi_y) = 0;
+
+ virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InjectSas( void) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IRdpDesktopSessionVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IRdpDesktopSession * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IRdpDesktopSession * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IRdpDesktopSession * This);
+
+ /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Connect )(
+ IRdpDesktopSession * This,
+ /* [in] */ long width,
+ /* [in] */ long height,
+ /* [in] */ long dpi_x,
+ /* [in] */ long dpi_y,
+ /* [in] */ BSTR terminal_id,
+ /* [in] */ DWORD port_number,
+ /* [in] */ IRdpDesktopSessionEventHandler *event_handler);
+
+ /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )(
+ IRdpDesktopSession * This);
+
+ /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ChangeResolution )(
+ IRdpDesktopSession * This,
+ /* [in] */ long width,
+ /* [in] */ long height,
+ /* [in] */ long dpi_x,
+ /* [in] */ long dpi_y);
+
+ /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InjectSas )(
+ IRdpDesktopSession * This);
+
+ END_INTERFACE
+ } IRdpDesktopSessionVtbl;
+
+ interface IRdpDesktopSession
+ {
+ CONST_VTBL struct IRdpDesktopSessionVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IRdpDesktopSession_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IRdpDesktopSession_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IRdpDesktopSession_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IRdpDesktopSession_Connect(This,width,height,dpi_x,dpi_y,terminal_id,port_number,event_handler) \
+ ( (This)->lpVtbl -> Connect(This,width,height,dpi_x,dpi_y,terminal_id,port_number,event_handler) )
+
+#define IRdpDesktopSession_Disconnect(This) \
+ ( (This)->lpVtbl -> Disconnect(This) )
+
+#define IRdpDesktopSession_ChangeResolution(This,width,height,dpi_x,dpi_y) \
+ ( (This)->lpVtbl -> ChangeResolution(This,width,height,dpi_x,dpi_y) )
+
+#define IRdpDesktopSession_InjectSas(This) \
+ ( (This)->lpVtbl -> InjectSas(This) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IRdpDesktopSession_INTERFACE_DEFINED__ */
+
+
+
+#ifndef __ChromotingLib_LIBRARY_DEFINED__
+#define __ChromotingLib_LIBRARY_DEFINED__
+
+/* library ChromotingLib */
+/* [helpstring][version][uuid] */
+
+
+EXTERN_C const IID LIBID_ChromotingLib;
+
+EXTERN_C const CLSID CLSID_RdpDesktopSession;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("6741fd0a-6a8a-5838-a35e-8088697e2088")
+RdpDesktopSession;
+#endif
+#endif /* __ChromotingLib_LIBRARY_DEFINED__ */
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.tlb b/chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.tlb
new file mode 100644
index 00000000000..42ae987e6a3
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.tlb
Binary files differ
diff --git a/chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib_i.c b/chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib_i.c
new file mode 100644
index 00000000000..e975a95a84e
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib_i.c
@@ -0,0 +1,88 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for gen/remoting/host/win/chromoting_lib.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif // !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IRdpDesktopSessionEventHandler,0xb59b96da,0x83cb,0x40ee,0x9b,0x91,0xc3,0x77,0x40,0x0f,0xc3,0xe3);
+
+
+MIDL_DEFINE_GUID(IID, IID_IRdpDesktopSession,0x6a7699f0,0xee43,0x43e7,0xaa,0x30,0xa6,0x73,0x8f,0x9b,0xd4,0x70);
+
+
+MIDL_DEFINE_GUID(IID, LIBID_ChromotingLib,0xb6396c45,0xb0cc,0x456b,0x9f,0x49,0xf1,0x29,0x64,0xee,0x6d,0xf4);
+
+
+MIDL_DEFINE_GUID(CLSID, CLSID_RdpDesktopSession,0x6741fd0a,0x6a8a,0x5838,0xa3,0x5e,0x80,0x88,0x69,0x7e,0x20,0x88);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib_p.c b/chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib_p.c
new file mode 100644
index 00000000000..8bee3fa68d8
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib_p.c
@@ -0,0 +1,578 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for gen/remoting/host/win/chromoting_lib.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64) && !defined(_ARM_)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "chromoting_lib.h"
+
+#define TYPE_FORMAT_STRING_SIZE 57
+#define PROC_FORMAT_STRING_SIZE 217
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _chromoting_lib_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } chromoting_lib_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _chromoting_lib_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } chromoting_lib_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _chromoting_lib_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } chromoting_lib_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const chromoting_lib_MIDL_TYPE_FORMAT_STRING chromoting_lib__MIDL_TypeFormatString;
+extern const chromoting_lib_MIDL_PROC_FORMAT_STRING chromoting_lib__MIDL_ProcFormatString;
+extern const chromoting_lib_MIDL_EXPR_FORMAT_STRING chromoting_lib__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IRdpDesktopSessionEventHandler_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IRdpDesktopSessionEventHandler_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IRdpDesktopSession_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IRdpDesktopSession_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const chromoting_lib_MIDL_PROC_FORMAT_STRING chromoting_lib__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure OnRdpConnected */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 16 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 18 */ NdrFcShort( 0x0 ), /* 0 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 24 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure Disconnect */
+
+
+ /* Procedure OnRdpClosed */
+
+/* 30 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 32 */ NdrFcLong( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x4 ), /* 4 */
+/* 38 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 40 */ NdrFcShort( 0x0 ), /* 0 */
+/* 42 */ NdrFcShort( 0x8 ), /* 8 */
+/* 44 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 46 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 48 */ NdrFcShort( 0x0 ), /* 0 */
+/* 50 */ NdrFcShort( 0x0 ), /* 0 */
+/* 52 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 54 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 56 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 58 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure Connect */
+
+/* 60 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 62 */ NdrFcLong( 0x0 ), /* 0 */
+/* 66 */ NdrFcShort( 0x3 ), /* 3 */
+/* 68 */ NdrFcShort( 0x24 ), /* x86 Stack size/offset = 36 */
+/* 70 */ NdrFcShort( 0x28 ), /* 40 */
+/* 72 */ NdrFcShort( 0x8 ), /* 8 */
+/* 74 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x8, /* 8 */
+/* 76 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 78 */ NdrFcShort( 0x0 ), /* 0 */
+/* 80 */ NdrFcShort( 0x1 ), /* 1 */
+/* 82 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter width */
+
+/* 84 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 86 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 88 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter height */
+
+/* 90 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 92 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 94 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter dpi_x */
+
+/* 96 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 98 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 100 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter dpi_y */
+
+/* 102 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 104 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter terminal_id */
+
+/* 108 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 110 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 112 */ NdrFcShort( 0x1c ), /* Type Offset=28 */
+
+ /* Parameter port_number */
+
+/* 114 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 116 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 118 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter event_handler */
+
+/* 120 */ NdrFcShort( 0xb ), /* Flags: must size, must free, in, */
+/* 122 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 124 */ NdrFcShort( 0x26 ), /* Type Offset=38 */
+
+ /* Return value */
+
+/* 126 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 128 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */
+/* 130 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure ChangeResolution */
+
+/* 132 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 134 */ NdrFcLong( 0x0 ), /* 0 */
+/* 138 */ NdrFcShort( 0x5 ), /* 5 */
+/* 140 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 142 */ NdrFcShort( 0x20 ), /* 32 */
+/* 144 */ NdrFcShort( 0x8 ), /* 8 */
+/* 146 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x5, /* 5 */
+/* 148 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 150 */ NdrFcShort( 0x0 ), /* 0 */
+/* 152 */ NdrFcShort( 0x0 ), /* 0 */
+/* 154 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter width */
+
+/* 156 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 158 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 160 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter height */
+
+/* 162 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 164 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 166 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter dpi_x */
+
+/* 168 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 170 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 172 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter dpi_y */
+
+/* 174 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 176 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 178 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 180 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 182 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 184 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure InjectSas */
+
+/* 186 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 188 */ NdrFcLong( 0x0 ), /* 0 */
+/* 192 */ NdrFcShort( 0x6 ), /* 6 */
+/* 194 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 196 */ NdrFcShort( 0x0 ), /* 0 */
+/* 198 */ NdrFcShort( 0x8 ), /* 8 */
+/* 200 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x1, /* 1 */
+/* 202 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 204 */ NdrFcShort( 0x0 ), /* 0 */
+/* 206 */ NdrFcShort( 0x0 ), /* 0 */
+/* 208 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Return value */
+
+/* 210 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 212 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 214 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const chromoting_lib_MIDL_TYPE_FORMAT_STRING chromoting_lib__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x12, 0x0, /* FC_UP */
+/* 4 */ NdrFcShort( 0xe ), /* Offset= 14 (18) */
+/* 6 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 8 */ NdrFcShort( 0x2 ), /* 2 */
+/* 10 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 12 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 14 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 16 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 18 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 20 */ NdrFcShort( 0x8 ), /* 8 */
+/* 22 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (6) */
+/* 24 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 26 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 28 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 30 */ NdrFcShort( 0x0 ), /* 0 */
+/* 32 */ NdrFcShort( 0x4 ), /* 4 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0xffde ), /* Offset= -34 (2) */
+/* 38 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 40 */ NdrFcLong( 0xb59b96da ), /* -1248094502 */
+/* 44 */ NdrFcShort( 0x83cb ), /* -31797 */
+/* 46 */ NdrFcShort( 0x40ee ), /* 16622 */
+/* 48 */ 0x9b, /* 155 */
+ 0x91, /* 145 */
+/* 50 */ 0xc3, /* 195 */
+ 0x77, /* 119 */
+/* 52 */ 0x40, /* 64 */
+ 0xf, /* 15 */
+/* 54 */ 0xc3, /* 195 */
+ 0xe3, /* 227 */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IRdpDesktopSessionEventHandler, ver. 0.0,
+ GUID={0xb59b96da,0x83cb,0x40ee,{0x9b,0x91,0xc3,0x77,0x40,0x0f,0xc3,0xe3}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IRdpDesktopSessionEventHandler_FormatStringOffsetTable[] =
+ {
+ 0,
+ 30
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IRdpDesktopSessionEventHandler_ProxyInfo =
+ {
+ &Object_StubDesc,
+ chromoting_lib__MIDL_ProcFormatString.Format,
+ &IRdpDesktopSessionEventHandler_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IRdpDesktopSessionEventHandler_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ chromoting_lib__MIDL_ProcFormatString.Format,
+ &IRdpDesktopSessionEventHandler_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(5) _IRdpDesktopSessionEventHandlerProxyVtbl =
+{
+ &IRdpDesktopSessionEventHandler_ProxyInfo,
+ &IID_IRdpDesktopSessionEventHandler,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IRdpDesktopSessionEventHandler::OnRdpConnected */ ,
+ (void *) (INT_PTR) -1 /* IRdpDesktopSessionEventHandler::OnRdpClosed */
+};
+
+const CInterfaceStubVtbl _IRdpDesktopSessionEventHandlerStubVtbl =
+{
+ &IID_IRdpDesktopSessionEventHandler,
+ &IRdpDesktopSessionEventHandler_ServerInfo,
+ 5,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IRdpDesktopSession, ver. 0.0,
+ GUID={0x6a7699f0,0xee43,0x43e7,{0xaa,0x30,0xa6,0x73,0x8f,0x9b,0xd4,0x70}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IRdpDesktopSession_FormatStringOffsetTable[] =
+ {
+ 60,
+ 30,
+ 132,
+ 186
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IRdpDesktopSession_ProxyInfo =
+ {
+ &Object_StubDesc,
+ chromoting_lib__MIDL_ProcFormatString.Format,
+ &IRdpDesktopSession_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IRdpDesktopSession_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ chromoting_lib__MIDL_ProcFormatString.Format,
+ &IRdpDesktopSession_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(7) _IRdpDesktopSessionProxyVtbl =
+{
+ &IRdpDesktopSession_ProxyInfo,
+ &IID_IRdpDesktopSession,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IRdpDesktopSession::Connect */ ,
+ (void *) (INT_PTR) -1 /* IRdpDesktopSession::Disconnect */ ,
+ (void *) (INT_PTR) -1 /* IRdpDesktopSession::ChangeResolution */ ,
+ (void *) (INT_PTR) -1 /* IRdpDesktopSession::InjectSas */
+};
+
+const CInterfaceStubVtbl _IRdpDesktopSessionStubVtbl =
+{
+ &IID_IRdpDesktopSession,
+ &IRdpDesktopSession_ServerInfo,
+ 7,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ chromoting_lib__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x801026e, /* MIDL Version 8.1.622 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _chromoting_lib_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IRdpDesktopSessionEventHandlerProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IRdpDesktopSessionProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _chromoting_lib_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IRdpDesktopSessionEventHandlerStubVtbl,
+ ( CInterfaceStubVtbl *) &_IRdpDesktopSessionStubVtbl,
+ 0
+};
+
+PCInterfaceName const _chromoting_lib_InterfaceNamesList[] =
+{
+ "IRdpDesktopSessionEventHandler",
+ "IRdpDesktopSession",
+ 0
+};
+
+
+#define _chromoting_lib_CHECK_IID(n) IID_GENERIC_CHECK_IID( _chromoting_lib, pIID, n)
+
+int __stdcall _chromoting_lib_IID_Lookup( const IID * pIID, int * pIndex )
+{
+ IID_BS_LOOKUP_SETUP
+
+ IID_BS_LOOKUP_INITIAL_TEST( _chromoting_lib, 2, 1 )
+ IID_BS_LOOKUP_RETURN_RESULT( _chromoting_lib, 2, *pIndex )
+
+}
+
+const ExtendedProxyFileInfo chromoting_lib_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _chromoting_lib_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _chromoting_lib_StubVtblList,
+ (const PCInterfaceName * ) & _chromoting_lib_InterfaceNamesList,
+ 0, /* no delegation */
+ & _chromoting_lib_IID_Lookup,
+ 2,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64) && !defined(_ARM_) */
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.dlldata.c b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.dlldata.c
new file mode 100644
index 00000000000..1685d8340a7
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.dlldata.c
@@ -0,0 +1,38 @@
+/*********************************************************
+ DllData file -- generated by MIDL compiler
+
+ DO NOT ALTER THIS FILE
+
+ This file is regenerated by MIDL on every IDL file compile.
+
+ To completely reconstruct this file, delete it and rerun MIDL
+ on all the IDL files in this DLL, specifying this file for the
+ /dlldata command line option
+
+*********************************************************/
+
+#define PROXY_DELEGATION
+
+#include <rpcproxy.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_PROXY_FILE( ia2_api_all )
+
+
+PROXYFILE_LIST_START
+/* Start of list */
+ REFERENCE_PROXY_FILE( ia2_api_all ),
+/* End of list */
+PROXYFILE_LIST_END
+
+
+DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID )
+
+#ifdef __cplusplus
+} /*extern "C" */
+#endif
+
+/* end of generated dlldata file */
diff --git a/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.h b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.h
new file mode 100644
index 00000000000..dada8e6fad6
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.h
@@ -0,0 +1,4746 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/iaccessible2/ia2_api_all.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif /* __RPCNDR_H_VERSION__ */
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __ia2_api_all_h__
+#define __ia2_api_all_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleRelation_FWD_DEFINED__
+#define __IAccessibleRelation_FWD_DEFINED__
+typedef interface IAccessibleRelation IAccessibleRelation;
+
+#endif /* __IAccessibleRelation_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleAction_FWD_DEFINED__
+#define __IAccessibleAction_FWD_DEFINED__
+typedef interface IAccessibleAction IAccessibleAction;
+
+#endif /* __IAccessibleAction_FWD_DEFINED__ */
+
+
+#ifndef __IAccessible2_FWD_DEFINED__
+#define __IAccessible2_FWD_DEFINED__
+typedef interface IAccessible2 IAccessible2;
+
+#endif /* __IAccessible2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessible2_2_FWD_DEFINED__
+#define __IAccessible2_2_FWD_DEFINED__
+typedef interface IAccessible2_2 IAccessible2_2;
+
+#endif /* __IAccessible2_2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleComponent_FWD_DEFINED__
+#define __IAccessibleComponent_FWD_DEFINED__
+typedef interface IAccessibleComponent IAccessibleComponent;
+
+#endif /* __IAccessibleComponent_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleValue_FWD_DEFINED__
+#define __IAccessibleValue_FWD_DEFINED__
+typedef interface IAccessibleValue IAccessibleValue;
+
+#endif /* __IAccessibleValue_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleText_FWD_DEFINED__
+#define __IAccessibleText_FWD_DEFINED__
+typedef interface IAccessibleText IAccessibleText;
+
+#endif /* __IAccessibleText_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleText2_FWD_DEFINED__
+#define __IAccessibleText2_FWD_DEFINED__
+typedef interface IAccessibleText2 IAccessibleText2;
+
+#endif /* __IAccessibleText2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleEditableText_FWD_DEFINED__
+#define __IAccessibleEditableText_FWD_DEFINED__
+typedef interface IAccessibleEditableText IAccessibleEditableText;
+
+#endif /* __IAccessibleEditableText_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHyperlink_FWD_DEFINED__
+#define __IAccessibleHyperlink_FWD_DEFINED__
+typedef interface IAccessibleHyperlink IAccessibleHyperlink;
+
+#endif /* __IAccessibleHyperlink_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext_FWD_DEFINED__
+#define __IAccessibleHypertext_FWD_DEFINED__
+typedef interface IAccessibleHypertext IAccessibleHypertext;
+
+#endif /* __IAccessibleHypertext_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext2_FWD_DEFINED__
+#define __IAccessibleHypertext2_FWD_DEFINED__
+typedef interface IAccessibleHypertext2 IAccessibleHypertext2;
+
+#endif /* __IAccessibleHypertext2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTable_FWD_DEFINED__
+#define __IAccessibleTable_FWD_DEFINED__
+typedef interface IAccessibleTable IAccessibleTable;
+
+#endif /* __IAccessibleTable_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTable2_FWD_DEFINED__
+#define __IAccessibleTable2_FWD_DEFINED__
+typedef interface IAccessibleTable2 IAccessibleTable2;
+
+#endif /* __IAccessibleTable2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTableCell_FWD_DEFINED__
+#define __IAccessibleTableCell_FWD_DEFINED__
+typedef interface IAccessibleTableCell IAccessibleTableCell;
+
+#endif /* __IAccessibleTableCell_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleImage_FWD_DEFINED__
+#define __IAccessibleImage_FWD_DEFINED__
+typedef interface IAccessibleImage IAccessibleImage;
+
+#endif /* __IAccessibleImage_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleApplication_FWD_DEFINED__
+#define __IAccessibleApplication_FWD_DEFINED__
+typedef interface IAccessibleApplication IAccessibleApplication;
+
+#endif /* __IAccessibleApplication_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleDocument_FWD_DEFINED__
+#define __IAccessibleDocument_FWD_DEFINED__
+typedef interface IAccessibleDocument IAccessibleDocument;
+
+#endif /* __IAccessibleDocument_FWD_DEFINED__ */
+
+
+#ifndef __IAccessible2_FWD_DEFINED__
+#define __IAccessible2_FWD_DEFINED__
+typedef interface IAccessible2 IAccessible2;
+
+#endif /* __IAccessible2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessible2_2_FWD_DEFINED__
+#define __IAccessible2_2_FWD_DEFINED__
+typedef interface IAccessible2_2 IAccessible2_2;
+
+#endif /* __IAccessible2_2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleAction_FWD_DEFINED__
+#define __IAccessibleAction_FWD_DEFINED__
+typedef interface IAccessibleAction IAccessibleAction;
+
+#endif /* __IAccessibleAction_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleApplication_FWD_DEFINED__
+#define __IAccessibleApplication_FWD_DEFINED__
+typedef interface IAccessibleApplication IAccessibleApplication;
+
+#endif /* __IAccessibleApplication_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleComponent_FWD_DEFINED__
+#define __IAccessibleComponent_FWD_DEFINED__
+typedef interface IAccessibleComponent IAccessibleComponent;
+
+#endif /* __IAccessibleComponent_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleDocument_FWD_DEFINED__
+#define __IAccessibleDocument_FWD_DEFINED__
+typedef interface IAccessibleDocument IAccessibleDocument;
+
+#endif /* __IAccessibleDocument_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleEditableText_FWD_DEFINED__
+#define __IAccessibleEditableText_FWD_DEFINED__
+typedef interface IAccessibleEditableText IAccessibleEditableText;
+
+#endif /* __IAccessibleEditableText_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHyperlink_FWD_DEFINED__
+#define __IAccessibleHyperlink_FWD_DEFINED__
+typedef interface IAccessibleHyperlink IAccessibleHyperlink;
+
+#endif /* __IAccessibleHyperlink_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleText_FWD_DEFINED__
+#define __IAccessibleText_FWD_DEFINED__
+typedef interface IAccessibleText IAccessibleText;
+
+#endif /* __IAccessibleText_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext_FWD_DEFINED__
+#define __IAccessibleHypertext_FWD_DEFINED__
+typedef interface IAccessibleHypertext IAccessibleHypertext;
+
+#endif /* __IAccessibleHypertext_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext2_FWD_DEFINED__
+#define __IAccessibleHypertext2_FWD_DEFINED__
+typedef interface IAccessibleHypertext2 IAccessibleHypertext2;
+
+#endif /* __IAccessibleHypertext2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleImage_FWD_DEFINED__
+#define __IAccessibleImage_FWD_DEFINED__
+typedef interface IAccessibleImage IAccessibleImage;
+
+#endif /* __IAccessibleImage_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleRelation_FWD_DEFINED__
+#define __IAccessibleRelation_FWD_DEFINED__
+typedef interface IAccessibleRelation IAccessibleRelation;
+
+#endif /* __IAccessibleRelation_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTable_FWD_DEFINED__
+#define __IAccessibleTable_FWD_DEFINED__
+typedef interface IAccessibleTable IAccessibleTable;
+
+#endif /* __IAccessibleTable_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTable2_FWD_DEFINED__
+#define __IAccessibleTable2_FWD_DEFINED__
+typedef interface IAccessibleTable2 IAccessibleTable2;
+
+#endif /* __IAccessibleTable2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTableCell_FWD_DEFINED__
+#define __IAccessibleTableCell_FWD_DEFINED__
+typedef interface IAccessibleTableCell IAccessibleTableCell;
+
+#endif /* __IAccessibleTableCell_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleText2_FWD_DEFINED__
+#define __IAccessibleText2_FWD_DEFINED__
+typedef interface IAccessibleText2 IAccessibleText2;
+
+#endif /* __IAccessibleText2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleValue_FWD_DEFINED__
+#define __IAccessibleValue_FWD_DEFINED__
+typedef interface IAccessibleValue IAccessibleValue;
+
+#endif /* __IAccessibleValue_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0000 */
+/* [local] */
+
+
+enum IA2ScrollType
+ {
+ IA2_SCROLL_TYPE_TOP_LEFT = 0,
+ IA2_SCROLL_TYPE_BOTTOM_RIGHT = ( IA2_SCROLL_TYPE_TOP_LEFT + 1 ) ,
+ IA2_SCROLL_TYPE_TOP_EDGE = ( IA2_SCROLL_TYPE_BOTTOM_RIGHT + 1 ) ,
+ IA2_SCROLL_TYPE_BOTTOM_EDGE = ( IA2_SCROLL_TYPE_TOP_EDGE + 1 ) ,
+ IA2_SCROLL_TYPE_LEFT_EDGE = ( IA2_SCROLL_TYPE_BOTTOM_EDGE + 1 ) ,
+ IA2_SCROLL_TYPE_RIGHT_EDGE = ( IA2_SCROLL_TYPE_LEFT_EDGE + 1 ) ,
+ IA2_SCROLL_TYPE_ANYWHERE = ( IA2_SCROLL_TYPE_RIGHT_EDGE + 1 )
+ } ;
+
+enum IA2CoordinateType
+ {
+ IA2_COORDTYPE_SCREEN_RELATIVE = 0,
+ IA2_COORDTYPE_PARENT_RELATIVE = ( IA2_COORDTYPE_SCREEN_RELATIVE + 1 )
+ } ;
+
+enum IA2TextSpecialOffsets
+ {
+ IA2_TEXT_OFFSET_LENGTH = -1,
+ IA2_TEXT_OFFSET_CARET = -2
+ } ;
+
+enum IA2TableModelChangeType
+ {
+ IA2_TABLE_MODEL_CHANGE_INSERT = 0,
+ IA2_TABLE_MODEL_CHANGE_DELETE = ( IA2_TABLE_MODEL_CHANGE_INSERT + 1 ) ,
+ IA2_TABLE_MODEL_CHANGE_UPDATE = ( IA2_TABLE_MODEL_CHANGE_DELETE + 1 )
+ } ;
+typedef struct IA2TableModelChange
+ {
+ enum IA2TableModelChangeType type;
+ long firstRow;
+ long lastRow;
+ long firstColumn;
+ long lastColumn;
+ } IA2TableModelChange;
+
+#define IA2_RELATION_CONTAINING_APPLICATION ( L"containingApplication" )
+
+#define IA2_RELATION_CONTAINING_DOCUMENT ( L"containingDocument" )
+
+#define IA2_RELATION_CONTAINING_TAB_PANE ( L"containingTabPane" )
+
+#define IA2_RELATION_CONTAINING_WINDOW ( L"containingWindow" )
+
+#define IA2_RELATION_CONTROLLED_BY ( L"controlledBy" )
+
+#define IA2_RELATION_CONTROLLER_FOR ( L"controllerFor" )
+
+#define IA2_RELATION_DESCRIBED_BY ( L"describedBy" )
+
+#define IA2_RELATION_DESCRIPTION_FOR ( L"descriptionFor" )
+
+#define IA2_RELATION_EMBEDDED_BY ( L"embeddedBy" )
+
+#define IA2_RELATION_EMBEDS ( L"embeds" )
+
+#define IA2_RELATION_FLOWS_FROM ( L"flowsFrom" )
+
+#define IA2_RELATION_FLOWS_TO ( L"flowsTo" )
+
+#define IA2_RELATION_LABEL_FOR ( L"labelFor" )
+
+#define IA2_RELATION_LABELED_BY ( L"labelledBy" )
+
+#define IA2_RELATION_LABELLED_BY ( L"labelledBy" )
+
+#define IA2_RELATION_MEMBER_OF ( L"memberOf" )
+
+#define IA2_RELATION_NEXT_TABBABLE ( L"nextTabbable" )
+
+#define IA2_RELATION_NODE_CHILD_OF ( L"nodeChildOf" )
+
+#define IA2_RELATION_NODE_PARENT_OF ( L"nodeParentOf" )
+
+#define IA2_RELATION_PARENT_WINDOW_OF ( L"parentWindowOf" )
+
+#define IA2_RELATION_POPUP_FOR ( L"popupFor" )
+
+#define IA2_RELATION_PREVIOUS_TABBABLE ( L"previousTabbable" )
+
+#define IA2_RELATION_SUBWINDOW_OF ( L"subwindowOf" )
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0000_v0_0_s_ifspec;
+
+#ifndef __IAccessibleRelation_INTERFACE_DEFINED__
+#define __IAccessibleRelation_INTERFACE_DEFINED__
+
+/* interface IAccessibleRelation */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleRelation;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("7CDF86EE-C3DA-496a-BDA4-281B336E1FDC")
+ IAccessibleRelation : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relationType(
+ /* [retval][out] */ BSTR *relationType) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedRelationType(
+ /* [retval][out] */ BSTR *localizedRelationType) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nTargets(
+ /* [retval][out] */ long *nTargets) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_target(
+ /* [in] */ long targetIndex,
+ /* [retval][out] */ IUnknown **target) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_targets(
+ /* [in] */ long maxTargets,
+ /* [length_is][size_is][out] */ IUnknown **targets,
+ /* [retval][out] */ long *nTargets) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleRelationVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleRelation * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleRelation * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleRelation * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationType )(
+ IAccessibleRelation * This,
+ /* [retval][out] */ BSTR *relationType);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedRelationType )(
+ IAccessibleRelation * This,
+ /* [retval][out] */ BSTR *localizedRelationType);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nTargets )(
+ IAccessibleRelation * This,
+ /* [retval][out] */ long *nTargets);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_target )(
+ IAccessibleRelation * This,
+ /* [in] */ long targetIndex,
+ /* [retval][out] */ IUnknown **target);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targets )(
+ IAccessibleRelation * This,
+ /* [in] */ long maxTargets,
+ /* [length_is][size_is][out] */ IUnknown **targets,
+ /* [retval][out] */ long *nTargets);
+
+ END_INTERFACE
+ } IAccessibleRelationVtbl;
+
+ interface IAccessibleRelation
+ {
+ CONST_VTBL struct IAccessibleRelationVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleRelation_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleRelation_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleRelation_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleRelation_get_relationType(This,relationType) \
+ ( (This)->lpVtbl -> get_relationType(This,relationType) )
+
+#define IAccessibleRelation_get_localizedRelationType(This,localizedRelationType) \
+ ( (This)->lpVtbl -> get_localizedRelationType(This,localizedRelationType) )
+
+#define IAccessibleRelation_get_nTargets(This,nTargets) \
+ ( (This)->lpVtbl -> get_nTargets(This,nTargets) )
+
+#define IAccessibleRelation_get_target(This,targetIndex,target) \
+ ( (This)->lpVtbl -> get_target(This,targetIndex,target) )
+
+#define IAccessibleRelation_get_targets(This,maxTargets,targets,nTargets) \
+ ( (This)->lpVtbl -> get_targets(This,maxTargets,targets,nTargets) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleRelation_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0001 */
+/* [local] */
+
+
+enum IA2Actions
+ {
+ IA2_ACTION_OPEN = -1,
+ IA2_ACTION_COMPLETE = -2,
+ IA2_ACTION_CLOSE = -3
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0001_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0001_v0_0_s_ifspec;
+
+#ifndef __IAccessibleAction_INTERFACE_DEFINED__
+#define __IAccessibleAction_INTERFACE_DEFINED__
+
+/* interface IAccessibleAction */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleAction;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("B70D9F59-3B5A-4dba-AB9E-22012F607DF5")
+ IAccessibleAction : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE nActions(
+ /* [retval][out] */ long *nActions) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE doAction(
+ /* [in] */ long actionIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_description(
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_keyBinding(
+ /* [in] */ long actionIndex,
+ /* [in] */ long nMaxBindings,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
+ /* [retval][out] */ long *nBindings) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_name(
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedName(
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *localizedName) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleActionVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleAction * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleAction * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleAction * This);
+
+ HRESULT ( STDMETHODCALLTYPE *nActions )(
+ IAccessibleAction * This,
+ /* [retval][out] */ long *nActions);
+
+ HRESULT ( STDMETHODCALLTYPE *doAction )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [in] */ long nMaxBindings,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
+ /* [retval][out] */ long *nBindings);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *localizedName);
+
+ END_INTERFACE
+ } IAccessibleActionVtbl;
+
+ interface IAccessibleAction
+ {
+ CONST_VTBL struct IAccessibleActionVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleAction_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleAction_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleAction_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleAction_nActions(This,nActions) \
+ ( (This)->lpVtbl -> nActions(This,nActions) )
+
+#define IAccessibleAction_doAction(This,actionIndex) \
+ ( (This)->lpVtbl -> doAction(This,actionIndex) )
+
+#define IAccessibleAction_get_description(This,actionIndex,description) \
+ ( (This)->lpVtbl -> get_description(This,actionIndex,description) )
+
+#define IAccessibleAction_get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) \
+ ( (This)->lpVtbl -> get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) )
+
+#define IAccessibleAction_get_name(This,actionIndex,name) \
+ ( (This)->lpVtbl -> get_name(This,actionIndex,name) )
+
+#define IAccessibleAction_get_localizedName(This,actionIndex,localizedName) \
+ ( (This)->lpVtbl -> get_localizedName(This,actionIndex,localizedName) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleAction_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0002 */
+/* [local] */
+
+
+enum IA2Role
+ {
+ IA2_ROLE_UNKNOWN = 0,
+ IA2_ROLE_CANVAS = 0x401,
+ IA2_ROLE_CAPTION = ( IA2_ROLE_CANVAS + 1 ) ,
+ IA2_ROLE_CHECK_MENU_ITEM = ( IA2_ROLE_CAPTION + 1 ) ,
+ IA2_ROLE_COLOR_CHOOSER = ( IA2_ROLE_CHECK_MENU_ITEM + 1 ) ,
+ IA2_ROLE_DATE_EDITOR = ( IA2_ROLE_COLOR_CHOOSER + 1 ) ,
+ IA2_ROLE_DESKTOP_ICON = ( IA2_ROLE_DATE_EDITOR + 1 ) ,
+ IA2_ROLE_DESKTOP_PANE = ( IA2_ROLE_DESKTOP_ICON + 1 ) ,
+ IA2_ROLE_DIRECTORY_PANE = ( IA2_ROLE_DESKTOP_PANE + 1 ) ,
+ IA2_ROLE_EDITBAR = ( IA2_ROLE_DIRECTORY_PANE + 1 ) ,
+ IA2_ROLE_EMBEDDED_OBJECT = ( IA2_ROLE_EDITBAR + 1 ) ,
+ IA2_ROLE_ENDNOTE = ( IA2_ROLE_EMBEDDED_OBJECT + 1 ) ,
+ IA2_ROLE_FILE_CHOOSER = ( IA2_ROLE_ENDNOTE + 1 ) ,
+ IA2_ROLE_FONT_CHOOSER = ( IA2_ROLE_FILE_CHOOSER + 1 ) ,
+ IA2_ROLE_FOOTER = ( IA2_ROLE_FONT_CHOOSER + 1 ) ,
+ IA2_ROLE_FOOTNOTE = ( IA2_ROLE_FOOTER + 1 ) ,
+ IA2_ROLE_FORM = ( IA2_ROLE_FOOTNOTE + 1 ) ,
+ IA2_ROLE_FRAME = ( IA2_ROLE_FORM + 1 ) ,
+ IA2_ROLE_GLASS_PANE = ( IA2_ROLE_FRAME + 1 ) ,
+ IA2_ROLE_HEADER = ( IA2_ROLE_GLASS_PANE + 1 ) ,
+ IA2_ROLE_HEADING = ( IA2_ROLE_HEADER + 1 ) ,
+ IA2_ROLE_ICON = ( IA2_ROLE_HEADING + 1 ) ,
+ IA2_ROLE_IMAGE_MAP = ( IA2_ROLE_ICON + 1 ) ,
+ IA2_ROLE_INPUT_METHOD_WINDOW = ( IA2_ROLE_IMAGE_MAP + 1 ) ,
+ IA2_ROLE_INTERNAL_FRAME = ( IA2_ROLE_INPUT_METHOD_WINDOW + 1 ) ,
+ IA2_ROLE_LABEL = ( IA2_ROLE_INTERNAL_FRAME + 1 ) ,
+ IA2_ROLE_LAYERED_PANE = ( IA2_ROLE_LABEL + 1 ) ,
+ IA2_ROLE_NOTE = ( IA2_ROLE_LAYERED_PANE + 1 ) ,
+ IA2_ROLE_OPTION_PANE = ( IA2_ROLE_NOTE + 1 ) ,
+ IA2_ROLE_PAGE = ( IA2_ROLE_OPTION_PANE + 1 ) ,
+ IA2_ROLE_PARAGRAPH = ( IA2_ROLE_PAGE + 1 ) ,
+ IA2_ROLE_RADIO_MENU_ITEM = ( IA2_ROLE_PARAGRAPH + 1 ) ,
+ IA2_ROLE_REDUNDANT_OBJECT = ( IA2_ROLE_RADIO_MENU_ITEM + 1 ) ,
+ IA2_ROLE_ROOT_PANE = ( IA2_ROLE_REDUNDANT_OBJECT + 1 ) ,
+ IA2_ROLE_RULER = ( IA2_ROLE_ROOT_PANE + 1 ) ,
+ IA2_ROLE_SCROLL_PANE = ( IA2_ROLE_RULER + 1 ) ,
+ IA2_ROLE_SECTION = ( IA2_ROLE_SCROLL_PANE + 1 ) ,
+ IA2_ROLE_SHAPE = ( IA2_ROLE_SECTION + 1 ) ,
+ IA2_ROLE_SPLIT_PANE = ( IA2_ROLE_SHAPE + 1 ) ,
+ IA2_ROLE_TEAR_OFF_MENU = ( IA2_ROLE_SPLIT_PANE + 1 ) ,
+ IA2_ROLE_TERMINAL = ( IA2_ROLE_TEAR_OFF_MENU + 1 ) ,
+ IA2_ROLE_TEXT_FRAME = ( IA2_ROLE_TERMINAL + 1 ) ,
+ IA2_ROLE_TOGGLE_BUTTON = ( IA2_ROLE_TEXT_FRAME + 1 ) ,
+ IA2_ROLE_VIEW_PORT = ( IA2_ROLE_TOGGLE_BUTTON + 1 ) ,
+ IA2_ROLE_COMPLEMENTARY_CONTENT = ( IA2_ROLE_VIEW_PORT + 1 )
+ } ;
+typedef long AccessibleStates;
+
+
+enum IA2States
+ {
+ IA2_STATE_ACTIVE = 0x1,
+ IA2_STATE_ARMED = 0x2,
+ IA2_STATE_DEFUNCT = 0x4,
+ IA2_STATE_EDITABLE = 0x8,
+ IA2_STATE_HORIZONTAL = 0x10,
+ IA2_STATE_ICONIFIED = 0x20,
+ IA2_STATE_INVALID_ENTRY = 0x40,
+ IA2_STATE_MANAGES_DESCENDANTS = 0x80,
+ IA2_STATE_MODAL = 0x100,
+ IA2_STATE_MULTI_LINE = 0x200,
+ IA2_STATE_OPAQUE = 0x400,
+ IA2_STATE_REQUIRED = 0x800,
+ IA2_STATE_SELECTABLE_TEXT = 0x1000,
+ IA2_STATE_SINGLE_LINE = 0x2000,
+ IA2_STATE_STALE = 0x4000,
+ IA2_STATE_SUPPORTS_AUTOCOMPLETION = 0x8000,
+ IA2_STATE_TRANSIENT = 0x10000,
+ IA2_STATE_VERTICAL = 0x20000,
+ IA2_STATE_CHECKABLE = 0x40000,
+ IA2_STATE_PINNED = 0x80000
+ } ;
+typedef struct IA2Locale
+ {
+ BSTR language;
+ BSTR country;
+ BSTR variant;
+ } IA2Locale;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0002_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0002_v0_0_s_ifspec;
+
+#ifndef __IAccessible2_INTERFACE_DEFINED__
+#define __IAccessible2_INTERFACE_DEFINED__
+
+/* interface IAccessible2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessible2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("E89F726E-C4F4-4c19-BB19-B647D7FA8478")
+ IAccessible2 : public IAccessible
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRelations(
+ /* [retval][out] */ long *nRelations) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relation(
+ /* [in] */ long relationIndex,
+ /* [retval][out] */ IAccessibleRelation **relation) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relations(
+ /* [in] */ long maxRelations,
+ /* [length_is][size_is][out] */ IAccessibleRelation **relations,
+ /* [retval][out] */ long *nRelations) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE role(
+ /* [retval][out] */ long *role) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollTo(
+ /* [in] */ enum IA2ScrollType scrollType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollToPoint(
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_groupPosition(
+ /* [out] */ long *groupLevel,
+ /* [out] */ long *similarItemsInGroup,
+ /* [retval][out] */ long *positionInGroup) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_states(
+ /* [retval][out] */ AccessibleStates *states) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extendedRole(
+ /* [retval][out] */ BSTR *extendedRole) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedExtendedRole(
+ /* [retval][out] */ BSTR *localizedExtendedRole) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nExtendedStates(
+ /* [retval][out] */ long *nExtendedStates) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extendedStates(
+ /* [in] */ long maxExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
+ /* [retval][out] */ long *nExtendedStates) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedExtendedStates(
+ /* [in] */ long maxLocalizedExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
+ /* [retval][out] */ long *nLocalizedExtendedStates) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_uniqueID(
+ /* [retval][out] */ long *uniqueID) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_windowHandle(
+ /* [retval][out] */ HWND *windowHandle) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_indexInParent(
+ /* [retval][out] */ long *indexInParent) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_locale(
+ /* [retval][out] */ IA2Locale *locale) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributes(
+ /* [retval][out] */ BSTR *attributes) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessible2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessible2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessible2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessible2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAccessible2 * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAccessible2 * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAccessible2 * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAccessible2 * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )(
+ IAccessible2 * This,
+ /* [retval][out] */ IDispatch **ppdispParent);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *pcountChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )(
+ IAccessible2 * This,
+ /* [in] */ VARIANT varChild,
+ /* [retval][out] */ IDispatch **ppdispChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszName);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszValue);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDescription);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarRole);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarState);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszHelp);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )(
+ IAccessible2 * This,
+ /* [out] */ BSTR *pszHelpFile,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ long *pidTopic);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszKeyboardShortcut);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )(
+ IAccessible2 * This,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )(
+ IAccessible2 * This,
+ /* [retval][out] */ VARIANT *pvarChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDefaultAction);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )(
+ IAccessible2 * This,
+ /* [in] */ long flagsSelect,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )(
+ IAccessible2 * This,
+ /* [out] */ long *pxLeft,
+ /* [out] */ long *pyTop,
+ /* [out] */ long *pcxWidth,
+ /* [out] */ long *pcyHeight,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )(
+ IAccessible2 * This,
+ /* [in] */ long navDir,
+ /* [optional][in] */ VARIANT varStart,
+ /* [retval][out] */ VARIANT *pvarEndUpAt);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )(
+ IAccessible2 * This,
+ /* [in] */ long xLeft,
+ /* [in] */ long yTop,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szName);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szValue);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *nRelations);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )(
+ IAccessible2 * This,
+ /* [in] */ long relationIndex,
+ /* [retval][out] */ IAccessibleRelation **relation);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )(
+ IAccessible2 * This,
+ /* [in] */ long maxRelations,
+ /* [length_is][size_is][out] */ IAccessibleRelation **relations,
+ /* [retval][out] */ long *nRelations);
+
+ HRESULT ( STDMETHODCALLTYPE *role )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *role);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollTo )(
+ IAccessible2 * This,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollToPoint )(
+ IAccessible2 * This,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )(
+ IAccessible2 * This,
+ /* [out] */ long *groupLevel,
+ /* [out] */ long *similarItemsInGroup,
+ /* [retval][out] */ long *positionInGroup);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )(
+ IAccessible2 * This,
+ /* [retval][out] */ AccessibleStates *states);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )(
+ IAccessible2 * This,
+ /* [retval][out] */ BSTR *extendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )(
+ IAccessible2 * This,
+ /* [retval][out] */ BSTR *localizedExtendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )(
+ IAccessible2 * This,
+ /* [in] */ long maxExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )(
+ IAccessible2 * This,
+ /* [in] */ long maxLocalizedExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
+ /* [retval][out] */ long *nLocalizedExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *uniqueID);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )(
+ IAccessible2 * This,
+ /* [retval][out] */ HWND *windowHandle);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *indexInParent);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )(
+ IAccessible2 * This,
+ /* [retval][out] */ IA2Locale *locale);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessible2 * This,
+ /* [retval][out] */ BSTR *attributes);
+
+ END_INTERFACE
+ } IAccessible2Vtbl;
+
+ interface IAccessible2
+ {
+ CONST_VTBL struct IAccessible2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessible2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessible2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessible2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessible2_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAccessible2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAccessible2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAccessible2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAccessible2_get_accParent(This,ppdispParent) \
+ ( (This)->lpVtbl -> get_accParent(This,ppdispParent) )
+
+#define IAccessible2_get_accChildCount(This,pcountChildren) \
+ ( (This)->lpVtbl -> get_accChildCount(This,pcountChildren) )
+
+#define IAccessible2_get_accChild(This,varChild,ppdispChild) \
+ ( (This)->lpVtbl -> get_accChild(This,varChild,ppdispChild) )
+
+#define IAccessible2_get_accName(This,varChild,pszName) \
+ ( (This)->lpVtbl -> get_accName(This,varChild,pszName) )
+
+#define IAccessible2_get_accValue(This,varChild,pszValue) \
+ ( (This)->lpVtbl -> get_accValue(This,varChild,pszValue) )
+
+#define IAccessible2_get_accDescription(This,varChild,pszDescription) \
+ ( (This)->lpVtbl -> get_accDescription(This,varChild,pszDescription) )
+
+#define IAccessible2_get_accRole(This,varChild,pvarRole) \
+ ( (This)->lpVtbl -> get_accRole(This,varChild,pvarRole) )
+
+#define IAccessible2_get_accState(This,varChild,pvarState) \
+ ( (This)->lpVtbl -> get_accState(This,varChild,pvarState) )
+
+#define IAccessible2_get_accHelp(This,varChild,pszHelp) \
+ ( (This)->lpVtbl -> get_accHelp(This,varChild,pszHelp) )
+
+#define IAccessible2_get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) \
+ ( (This)->lpVtbl -> get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) )
+
+#define IAccessible2_get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) \
+ ( (This)->lpVtbl -> get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) )
+
+#define IAccessible2_get_accFocus(This,pvarChild) \
+ ( (This)->lpVtbl -> get_accFocus(This,pvarChild) )
+
+#define IAccessible2_get_accSelection(This,pvarChildren) \
+ ( (This)->lpVtbl -> get_accSelection(This,pvarChildren) )
+
+#define IAccessible2_get_accDefaultAction(This,varChild,pszDefaultAction) \
+ ( (This)->lpVtbl -> get_accDefaultAction(This,varChild,pszDefaultAction) )
+
+#define IAccessible2_accSelect(This,flagsSelect,varChild) \
+ ( (This)->lpVtbl -> accSelect(This,flagsSelect,varChild) )
+
+#define IAccessible2_accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) \
+ ( (This)->lpVtbl -> accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) )
+
+#define IAccessible2_accNavigate(This,navDir,varStart,pvarEndUpAt) \
+ ( (This)->lpVtbl -> accNavigate(This,navDir,varStart,pvarEndUpAt) )
+
+#define IAccessible2_accHitTest(This,xLeft,yTop,pvarChild) \
+ ( (This)->lpVtbl -> accHitTest(This,xLeft,yTop,pvarChild) )
+
+#define IAccessible2_accDoDefaultAction(This,varChild) \
+ ( (This)->lpVtbl -> accDoDefaultAction(This,varChild) )
+
+#define IAccessible2_put_accName(This,varChild,szName) \
+ ( (This)->lpVtbl -> put_accName(This,varChild,szName) )
+
+#define IAccessible2_put_accValue(This,varChild,szValue) \
+ ( (This)->lpVtbl -> put_accValue(This,varChild,szValue) )
+
+
+#define IAccessible2_get_nRelations(This,nRelations) \
+ ( (This)->lpVtbl -> get_nRelations(This,nRelations) )
+
+#define IAccessible2_get_relation(This,relationIndex,relation) \
+ ( (This)->lpVtbl -> get_relation(This,relationIndex,relation) )
+
+#define IAccessible2_get_relations(This,maxRelations,relations,nRelations) \
+ ( (This)->lpVtbl -> get_relations(This,maxRelations,relations,nRelations) )
+
+#define IAccessible2_role(This,role) \
+ ( (This)->lpVtbl -> role(This,role) )
+
+#define IAccessible2_scrollTo(This,scrollType) \
+ ( (This)->lpVtbl -> scrollTo(This,scrollType) )
+
+#define IAccessible2_scrollToPoint(This,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollToPoint(This,coordinateType,x,y) )
+
+#define IAccessible2_get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) \
+ ( (This)->lpVtbl -> get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) )
+
+#define IAccessible2_get_states(This,states) \
+ ( (This)->lpVtbl -> get_states(This,states) )
+
+#define IAccessible2_get_extendedRole(This,extendedRole) \
+ ( (This)->lpVtbl -> get_extendedRole(This,extendedRole) )
+
+#define IAccessible2_get_localizedExtendedRole(This,localizedExtendedRole) \
+ ( (This)->lpVtbl -> get_localizedExtendedRole(This,localizedExtendedRole) )
+
+#define IAccessible2_get_nExtendedStates(This,nExtendedStates) \
+ ( (This)->lpVtbl -> get_nExtendedStates(This,nExtendedStates) )
+
+#define IAccessible2_get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) \
+ ( (This)->lpVtbl -> get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) )
+
+#define IAccessible2_get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) \
+ ( (This)->lpVtbl -> get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) )
+
+#define IAccessible2_get_uniqueID(This,uniqueID) \
+ ( (This)->lpVtbl -> get_uniqueID(This,uniqueID) )
+
+#define IAccessible2_get_windowHandle(This,windowHandle) \
+ ( (This)->lpVtbl -> get_windowHandle(This,windowHandle) )
+
+#define IAccessible2_get_indexInParent(This,indexInParent) \
+ ( (This)->lpVtbl -> get_indexInParent(This,indexInParent) )
+
+#define IAccessible2_get_locale(This,locale) \
+ ( (This)->lpVtbl -> get_locale(This,locale) )
+
+#define IAccessible2_get_attributes(This,attributes) \
+ ( (This)->lpVtbl -> get_attributes(This,attributes) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessible2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessible2_2_INTERFACE_DEFINED__
+#define __IAccessible2_2_INTERFACE_DEFINED__
+
+/* interface IAccessible2_2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessible2_2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6C9430E9-299D-4E6F-BD01-A82A1E88D3FF")
+ IAccessible2_2 : public IAccessible2
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attribute(
+ /* [in] */ BSTR name,
+ /* [retval][out] */ VARIANT *attribute) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_accessibleWithCaret(
+ /* [out] */ IUnknown **accessible,
+ /* [retval][out] */ long *caretOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relationTargetsOfType(
+ /* [in] */ BSTR type,
+ /* [in] */ long maxTargets,
+ /* [size_is][size_is][out] */ IUnknown ***targets,
+ /* [retval][out] */ long *nTargets) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessible2_2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessible2_2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessible2_2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessible2_2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAccessible2_2 * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAccessible2_2 * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAccessible2_2 * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAccessible2_2 * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ IDispatch **ppdispParent);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *pcountChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )(
+ IAccessible2_2 * This,
+ /* [in] */ VARIANT varChild,
+ /* [retval][out] */ IDispatch **ppdispChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszName);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszValue);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDescription);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarRole);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarState);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszHelp);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )(
+ IAccessible2_2 * This,
+ /* [out] */ BSTR *pszHelpFile,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ long *pidTopic);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszKeyboardShortcut);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ VARIANT *pvarChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDefaultAction);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )(
+ IAccessible2_2 * This,
+ /* [in] */ long flagsSelect,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )(
+ IAccessible2_2 * This,
+ /* [out] */ long *pxLeft,
+ /* [out] */ long *pyTop,
+ /* [out] */ long *pcxWidth,
+ /* [out] */ long *pcyHeight,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )(
+ IAccessible2_2 * This,
+ /* [in] */ long navDir,
+ /* [optional][in] */ VARIANT varStart,
+ /* [retval][out] */ VARIANT *pvarEndUpAt);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )(
+ IAccessible2_2 * This,
+ /* [in] */ long xLeft,
+ /* [in] */ long yTop,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szName);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szValue);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *nRelations);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )(
+ IAccessible2_2 * This,
+ /* [in] */ long relationIndex,
+ /* [retval][out] */ IAccessibleRelation **relation);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )(
+ IAccessible2_2 * This,
+ /* [in] */ long maxRelations,
+ /* [length_is][size_is][out] */ IAccessibleRelation **relations,
+ /* [retval][out] */ long *nRelations);
+
+ HRESULT ( STDMETHODCALLTYPE *role )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *role);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollTo )(
+ IAccessible2_2 * This,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollToPoint )(
+ IAccessible2_2 * This,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )(
+ IAccessible2_2 * This,
+ /* [out] */ long *groupLevel,
+ /* [out] */ long *similarItemsInGroup,
+ /* [retval][out] */ long *positionInGroup);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ AccessibleStates *states);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ BSTR *extendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ BSTR *localizedExtendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )(
+ IAccessible2_2 * This,
+ /* [in] */ long maxExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )(
+ IAccessible2_2 * This,
+ /* [in] */ long maxLocalizedExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
+ /* [retval][out] */ long *nLocalizedExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *uniqueID);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ HWND *windowHandle);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *indexInParent);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ IA2Locale *locale);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ BSTR *attributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attribute )(
+ IAccessible2_2 * This,
+ /* [in] */ BSTR name,
+ /* [retval][out] */ VARIANT *attribute);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleWithCaret )(
+ IAccessible2_2 * This,
+ /* [out] */ IUnknown **accessible,
+ /* [retval][out] */ long *caretOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationTargetsOfType )(
+ IAccessible2_2 * This,
+ /* [in] */ BSTR type,
+ /* [in] */ long maxTargets,
+ /* [size_is][size_is][out] */ IUnknown ***targets,
+ /* [retval][out] */ long *nTargets);
+
+ END_INTERFACE
+ } IAccessible2_2Vtbl;
+
+ interface IAccessible2_2
+ {
+ CONST_VTBL struct IAccessible2_2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessible2_2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessible2_2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessible2_2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessible2_2_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAccessible2_2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAccessible2_2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAccessible2_2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAccessible2_2_get_accParent(This,ppdispParent) \
+ ( (This)->lpVtbl -> get_accParent(This,ppdispParent) )
+
+#define IAccessible2_2_get_accChildCount(This,pcountChildren) \
+ ( (This)->lpVtbl -> get_accChildCount(This,pcountChildren) )
+
+#define IAccessible2_2_get_accChild(This,varChild,ppdispChild) \
+ ( (This)->lpVtbl -> get_accChild(This,varChild,ppdispChild) )
+
+#define IAccessible2_2_get_accName(This,varChild,pszName) \
+ ( (This)->lpVtbl -> get_accName(This,varChild,pszName) )
+
+#define IAccessible2_2_get_accValue(This,varChild,pszValue) \
+ ( (This)->lpVtbl -> get_accValue(This,varChild,pszValue) )
+
+#define IAccessible2_2_get_accDescription(This,varChild,pszDescription) \
+ ( (This)->lpVtbl -> get_accDescription(This,varChild,pszDescription) )
+
+#define IAccessible2_2_get_accRole(This,varChild,pvarRole) \
+ ( (This)->lpVtbl -> get_accRole(This,varChild,pvarRole) )
+
+#define IAccessible2_2_get_accState(This,varChild,pvarState) \
+ ( (This)->lpVtbl -> get_accState(This,varChild,pvarState) )
+
+#define IAccessible2_2_get_accHelp(This,varChild,pszHelp) \
+ ( (This)->lpVtbl -> get_accHelp(This,varChild,pszHelp) )
+
+#define IAccessible2_2_get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) \
+ ( (This)->lpVtbl -> get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) )
+
+#define IAccessible2_2_get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) \
+ ( (This)->lpVtbl -> get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) )
+
+#define IAccessible2_2_get_accFocus(This,pvarChild) \
+ ( (This)->lpVtbl -> get_accFocus(This,pvarChild) )
+
+#define IAccessible2_2_get_accSelection(This,pvarChildren) \
+ ( (This)->lpVtbl -> get_accSelection(This,pvarChildren) )
+
+#define IAccessible2_2_get_accDefaultAction(This,varChild,pszDefaultAction) \
+ ( (This)->lpVtbl -> get_accDefaultAction(This,varChild,pszDefaultAction) )
+
+#define IAccessible2_2_accSelect(This,flagsSelect,varChild) \
+ ( (This)->lpVtbl -> accSelect(This,flagsSelect,varChild) )
+
+#define IAccessible2_2_accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) \
+ ( (This)->lpVtbl -> accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) )
+
+#define IAccessible2_2_accNavigate(This,navDir,varStart,pvarEndUpAt) \
+ ( (This)->lpVtbl -> accNavigate(This,navDir,varStart,pvarEndUpAt) )
+
+#define IAccessible2_2_accHitTest(This,xLeft,yTop,pvarChild) \
+ ( (This)->lpVtbl -> accHitTest(This,xLeft,yTop,pvarChild) )
+
+#define IAccessible2_2_accDoDefaultAction(This,varChild) \
+ ( (This)->lpVtbl -> accDoDefaultAction(This,varChild) )
+
+#define IAccessible2_2_put_accName(This,varChild,szName) \
+ ( (This)->lpVtbl -> put_accName(This,varChild,szName) )
+
+#define IAccessible2_2_put_accValue(This,varChild,szValue) \
+ ( (This)->lpVtbl -> put_accValue(This,varChild,szValue) )
+
+
+#define IAccessible2_2_get_nRelations(This,nRelations) \
+ ( (This)->lpVtbl -> get_nRelations(This,nRelations) )
+
+#define IAccessible2_2_get_relation(This,relationIndex,relation) \
+ ( (This)->lpVtbl -> get_relation(This,relationIndex,relation) )
+
+#define IAccessible2_2_get_relations(This,maxRelations,relations,nRelations) \
+ ( (This)->lpVtbl -> get_relations(This,maxRelations,relations,nRelations) )
+
+#define IAccessible2_2_role(This,role) \
+ ( (This)->lpVtbl -> role(This,role) )
+
+#define IAccessible2_2_scrollTo(This,scrollType) \
+ ( (This)->lpVtbl -> scrollTo(This,scrollType) )
+
+#define IAccessible2_2_scrollToPoint(This,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollToPoint(This,coordinateType,x,y) )
+
+#define IAccessible2_2_get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) \
+ ( (This)->lpVtbl -> get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) )
+
+#define IAccessible2_2_get_states(This,states) \
+ ( (This)->lpVtbl -> get_states(This,states) )
+
+#define IAccessible2_2_get_extendedRole(This,extendedRole) \
+ ( (This)->lpVtbl -> get_extendedRole(This,extendedRole) )
+
+#define IAccessible2_2_get_localizedExtendedRole(This,localizedExtendedRole) \
+ ( (This)->lpVtbl -> get_localizedExtendedRole(This,localizedExtendedRole) )
+
+#define IAccessible2_2_get_nExtendedStates(This,nExtendedStates) \
+ ( (This)->lpVtbl -> get_nExtendedStates(This,nExtendedStates) )
+
+#define IAccessible2_2_get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) \
+ ( (This)->lpVtbl -> get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) )
+
+#define IAccessible2_2_get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) \
+ ( (This)->lpVtbl -> get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) )
+
+#define IAccessible2_2_get_uniqueID(This,uniqueID) \
+ ( (This)->lpVtbl -> get_uniqueID(This,uniqueID) )
+
+#define IAccessible2_2_get_windowHandle(This,windowHandle) \
+ ( (This)->lpVtbl -> get_windowHandle(This,windowHandle) )
+
+#define IAccessible2_2_get_indexInParent(This,indexInParent) \
+ ( (This)->lpVtbl -> get_indexInParent(This,indexInParent) )
+
+#define IAccessible2_2_get_locale(This,locale) \
+ ( (This)->lpVtbl -> get_locale(This,locale) )
+
+#define IAccessible2_2_get_attributes(This,attributes) \
+ ( (This)->lpVtbl -> get_attributes(This,attributes) )
+
+
+#define IAccessible2_2_get_attribute(This,name,attribute) \
+ ( (This)->lpVtbl -> get_attribute(This,name,attribute) )
+
+#define IAccessible2_2_get_accessibleWithCaret(This,accessible,caretOffset) \
+ ( (This)->lpVtbl -> get_accessibleWithCaret(This,accessible,caretOffset) )
+
+#define IAccessible2_2_get_relationTargetsOfType(This,type,maxTargets,targets,nTargets) \
+ ( (This)->lpVtbl -> get_relationTargetsOfType(This,type,maxTargets,targets,nTargets) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessible2_2_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0004 */
+/* [local] */
+
+typedef long IA2Color;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0004_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0004_v0_0_s_ifspec;
+
+#ifndef __IAccessibleComponent_INTERFACE_DEFINED__
+#define __IAccessibleComponent_INTERFACE_DEFINED__
+
+/* interface IAccessibleComponent */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleComponent;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("1546D4B0-4C98-4bda-89AE-9A64748BDDE4")
+ IAccessibleComponent : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_locationInParent(
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_foreground(
+ /* [retval][out] */ IA2Color *foreground) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_background(
+ /* [retval][out] */ IA2Color *background) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleComponentVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleComponent * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleComponent * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleComponent * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationInParent )(
+ IAccessibleComponent * This,
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_foreground )(
+ IAccessibleComponent * This,
+ /* [retval][out] */ IA2Color *foreground);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_background )(
+ IAccessibleComponent * This,
+ /* [retval][out] */ IA2Color *background);
+
+ END_INTERFACE
+ } IAccessibleComponentVtbl;
+
+ interface IAccessibleComponent
+ {
+ CONST_VTBL struct IAccessibleComponentVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleComponent_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleComponent_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleComponent_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleComponent_get_locationInParent(This,x,y) \
+ ( (This)->lpVtbl -> get_locationInParent(This,x,y) )
+
+#define IAccessibleComponent_get_foreground(This,foreground) \
+ ( (This)->lpVtbl -> get_foreground(This,foreground) )
+
+#define IAccessibleComponent_get_background(This,background) \
+ ( (This)->lpVtbl -> get_background(This,background) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleComponent_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleValue_INTERFACE_DEFINED__
+#define __IAccessibleValue_INTERFACE_DEFINED__
+
+/* interface IAccessibleValue */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleValue;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("35855B5B-C566-4fd0-A7B1-E65465600394")
+ IAccessibleValue : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_currentValue(
+ /* [retval][out] */ VARIANT *currentValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setCurrentValue(
+ /* [in] */ VARIANT value) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_maximumValue(
+ /* [retval][out] */ VARIANT *maximumValue) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_minimumValue(
+ /* [retval][out] */ VARIANT *minimumValue) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleValueVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleValue * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleValue * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleValue * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentValue )(
+ IAccessibleValue * This,
+ /* [retval][out] */ VARIANT *currentValue);
+
+ HRESULT ( STDMETHODCALLTYPE *setCurrentValue )(
+ IAccessibleValue * This,
+ /* [in] */ VARIANT value);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_maximumValue )(
+ IAccessibleValue * This,
+ /* [retval][out] */ VARIANT *maximumValue);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_minimumValue )(
+ IAccessibleValue * This,
+ /* [retval][out] */ VARIANT *minimumValue);
+
+ END_INTERFACE
+ } IAccessibleValueVtbl;
+
+ interface IAccessibleValue
+ {
+ CONST_VTBL struct IAccessibleValueVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleValue_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleValue_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleValue_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleValue_get_currentValue(This,currentValue) \
+ ( (This)->lpVtbl -> get_currentValue(This,currentValue) )
+
+#define IAccessibleValue_setCurrentValue(This,value) \
+ ( (This)->lpVtbl -> setCurrentValue(This,value) )
+
+#define IAccessibleValue_get_maximumValue(This,maximumValue) \
+ ( (This)->lpVtbl -> get_maximumValue(This,maximumValue) )
+
+#define IAccessibleValue_get_minimumValue(This,minimumValue) \
+ ( (This)->lpVtbl -> get_minimumValue(This,minimumValue) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleValue_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0006 */
+/* [local] */
+
+typedef struct IA2TextSegment
+ {
+ BSTR text;
+ long start;
+ long end;
+ } IA2TextSegment;
+
+
+enum IA2TextBoundaryType
+ {
+ IA2_TEXT_BOUNDARY_CHAR = 0,
+ IA2_TEXT_BOUNDARY_WORD = ( IA2_TEXT_BOUNDARY_CHAR + 1 ) ,
+ IA2_TEXT_BOUNDARY_SENTENCE = ( IA2_TEXT_BOUNDARY_WORD + 1 ) ,
+ IA2_TEXT_BOUNDARY_PARAGRAPH = ( IA2_TEXT_BOUNDARY_SENTENCE + 1 ) ,
+ IA2_TEXT_BOUNDARY_LINE = ( IA2_TEXT_BOUNDARY_PARAGRAPH + 1 ) ,
+ IA2_TEXT_BOUNDARY_ALL = ( IA2_TEXT_BOUNDARY_LINE + 1 )
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0006_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0006_v0_0_s_ifspec;
+
+#ifndef __IAccessibleText_INTERFACE_DEFINED__
+#define __IAccessibleText_INTERFACE_DEFINED__
+
+/* interface IAccessibleText */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleText;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("24FD2FFB-3AAD-4a08-8335-A3AD89C0FB4B")
+ IAccessibleText : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE addSelection(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributes(
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caretOffset(
+ /* [retval][out] */ long *offset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_characterExtents(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelections(
+ /* [retval][out] */ long *nSelections) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_offsetAtPoint(
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selection(
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_text(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textBeforeOffset(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textAfterOffset(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textAtOffset(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE removeSelection(
+ /* [in] */ long selectionIndex) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setCaretOffset(
+ /* [in] */ long offset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setSelection(
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nCharacters(
+ /* [retval][out] */ long *nCharacters) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollSubstringTo(
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollSubstringToPoint(
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_newText(
+ /* [retval][out] */ IA2TextSegment *newText) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_oldText(
+ /* [retval][out] */ IA2TextSegment *oldText) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleText * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleText * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleText * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleText * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleText * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleText * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleText * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleText * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleText * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleText * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleText * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleText * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleText * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleText * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ END_INTERFACE
+ } IAccessibleTextVtbl;
+
+ interface IAccessibleText
+ {
+ CONST_VTBL struct IAccessibleTextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleText_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleText_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleText_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleText_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleText_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleText_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleText_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleText_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleText_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleText_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleText_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleText_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleText_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleText_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleText_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleText_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleText_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleText_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleText2_INTERFACE_DEFINED__
+#define __IAccessibleText2_INTERFACE_DEFINED__
+
+/* interface IAccessibleText2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleText2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("9690A9CC-5C80-4DF5-852E-2D5AE4189A54")
+ IAccessibleText2 : public IAccessibleText
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributeRange(
+ /* [in] */ long offset,
+ /* [in] */ BSTR filter,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *attributeValues) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleText2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleText2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleText2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleText2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleText2 * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleText2 * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleText2 * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleText2 * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleText2 * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleText2 * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleText2 * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleText2 * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributeRange )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ BSTR filter,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *attributeValues);
+
+ END_INTERFACE
+ } IAccessibleText2Vtbl;
+
+ interface IAccessibleText2
+ {
+ CONST_VTBL struct IAccessibleText2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleText2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleText2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleText2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleText2_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleText2_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleText2_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleText2_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleText2_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleText2_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleText2_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText2_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleText2_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText2_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText2_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText2_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleText2_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleText2_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText2_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleText2_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleText2_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleText2_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleText2_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+
+#define IAccessibleText2_get_attributeRange(This,offset,filter,startOffset,endOffset,attributeValues) \
+ ( (This)->lpVtbl -> get_attributeRange(This,offset,filter,startOffset,endOffset,attributeValues) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleText2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleEditableText_INTERFACE_DEFINED__
+#define __IAccessibleEditableText_INTERFACE_DEFINED__
+
+/* interface IAccessibleEditableText */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleEditableText;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("A59AA09A-7011-4b65-939D-32B1FB5547E3")
+ IAccessibleEditableText : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE copyText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE deleteText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE insertText(
+ /* [in] */ long offset,
+ /* [in] */ BSTR *text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE cutText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE pasteText(
+ /* [in] */ long offset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE replaceText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setAttributes(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *attributes) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleEditableTextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleEditableText * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleEditableText * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleEditableText * This);
+
+ HRESULT ( STDMETHODCALLTYPE *copyText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ HRESULT ( STDMETHODCALLTYPE *deleteText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ HRESULT ( STDMETHODCALLTYPE *insertText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long offset,
+ /* [in] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *cutText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ HRESULT ( STDMETHODCALLTYPE *pasteText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *replaceText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *setAttributes )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *attributes);
+
+ END_INTERFACE
+ } IAccessibleEditableTextVtbl;
+
+ interface IAccessibleEditableText
+ {
+ CONST_VTBL struct IAccessibleEditableTextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleEditableText_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleEditableText_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleEditableText_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleEditableText_copyText(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> copyText(This,startOffset,endOffset) )
+
+#define IAccessibleEditableText_deleteText(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> deleteText(This,startOffset,endOffset) )
+
+#define IAccessibleEditableText_insertText(This,offset,text) \
+ ( (This)->lpVtbl -> insertText(This,offset,text) )
+
+#define IAccessibleEditableText_cutText(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> cutText(This,startOffset,endOffset) )
+
+#define IAccessibleEditableText_pasteText(This,offset) \
+ ( (This)->lpVtbl -> pasteText(This,offset) )
+
+#define IAccessibleEditableText_replaceText(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> replaceText(This,startOffset,endOffset,text) )
+
+#define IAccessibleEditableText_setAttributes(This,startOffset,endOffset,attributes) \
+ ( (This)->lpVtbl -> setAttributes(This,startOffset,endOffset,attributes) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleEditableText_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleHyperlink_INTERFACE_DEFINED__
+#define __IAccessibleHyperlink_INTERFACE_DEFINED__
+
+/* interface IAccessibleHyperlink */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleHyperlink;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("01C20F2B-3DD2-400f-949F-AD00BDAB1D41")
+ IAccessibleHyperlink : public IAccessibleAction
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchor(
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchor) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchorTarget(
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchorTarget) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_startIndex(
+ /* [retval][out] */ long *index) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_endIndex(
+ /* [retval][out] */ long *index) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_valid(
+ /* [retval][out] */ boolean *valid) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleHyperlinkVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleHyperlink * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleHyperlink * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleHyperlink * This);
+
+ HRESULT ( STDMETHODCALLTYPE *nActions )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ long *nActions);
+
+ HRESULT ( STDMETHODCALLTYPE *doAction )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [in] */ long nMaxBindings,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
+ /* [retval][out] */ long *nBindings);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *localizedName);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchor )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchor);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchorTarget);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_startIndex )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ long *index);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_endIndex )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ long *index);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_valid )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ boolean *valid);
+
+ END_INTERFACE
+ } IAccessibleHyperlinkVtbl;
+
+ interface IAccessibleHyperlink
+ {
+ CONST_VTBL struct IAccessibleHyperlinkVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleHyperlink_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleHyperlink_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleHyperlink_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleHyperlink_nActions(This,nActions) \
+ ( (This)->lpVtbl -> nActions(This,nActions) )
+
+#define IAccessibleHyperlink_doAction(This,actionIndex) \
+ ( (This)->lpVtbl -> doAction(This,actionIndex) )
+
+#define IAccessibleHyperlink_get_description(This,actionIndex,description) \
+ ( (This)->lpVtbl -> get_description(This,actionIndex,description) )
+
+#define IAccessibleHyperlink_get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) \
+ ( (This)->lpVtbl -> get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) )
+
+#define IAccessibleHyperlink_get_name(This,actionIndex,name) \
+ ( (This)->lpVtbl -> get_name(This,actionIndex,name) )
+
+#define IAccessibleHyperlink_get_localizedName(This,actionIndex,localizedName) \
+ ( (This)->lpVtbl -> get_localizedName(This,actionIndex,localizedName) )
+
+
+#define IAccessibleHyperlink_get_anchor(This,index,anchor) \
+ ( (This)->lpVtbl -> get_anchor(This,index,anchor) )
+
+#define IAccessibleHyperlink_get_anchorTarget(This,index,anchorTarget) \
+ ( (This)->lpVtbl -> get_anchorTarget(This,index,anchorTarget) )
+
+#define IAccessibleHyperlink_get_startIndex(This,index) \
+ ( (This)->lpVtbl -> get_startIndex(This,index) )
+
+#define IAccessibleHyperlink_get_endIndex(This,index) \
+ ( (This)->lpVtbl -> get_endIndex(This,index) )
+
+#define IAccessibleHyperlink_get_valid(This,valid) \
+ ( (This)->lpVtbl -> get_valid(This,valid) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleHyperlink_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext_INTERFACE_DEFINED__
+#define __IAccessibleHypertext_INTERFACE_DEFINED__
+
+/* interface IAccessibleHypertext */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleHypertext;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6B4F8BBF-F1F2-418a-B35E-A195BC4103B9")
+ IAccessibleHypertext : public IAccessibleText
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nHyperlinks(
+ /* [retval][out] */ long *hyperlinkCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlink(
+ /* [in] */ long index,
+ /* [retval][out] */ IAccessibleHyperlink **hyperlink) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlinkIndex(
+ /* [in] */ long charIndex,
+ /* [retval][out] */ long *hyperlinkIndex) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleHypertextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleHypertext * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleHypertext * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleHypertext * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleHypertext * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *hyperlinkCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )(
+ IAccessibleHypertext * This,
+ /* [in] */ long index,
+ /* [retval][out] */ IAccessibleHyperlink **hyperlink);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )(
+ IAccessibleHypertext * This,
+ /* [in] */ long charIndex,
+ /* [retval][out] */ long *hyperlinkIndex);
+
+ END_INTERFACE
+ } IAccessibleHypertextVtbl;
+
+ interface IAccessibleHypertext
+ {
+ CONST_VTBL struct IAccessibleHypertextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleHypertext_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleHypertext_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleHypertext_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleHypertext_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleHypertext_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleHypertext_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleHypertext_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleHypertext_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleHypertext_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleHypertext_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleHypertext_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleHypertext_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleHypertext_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleHypertext_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleHypertext_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleHypertext_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+
+#define IAccessibleHypertext_get_nHyperlinks(This,hyperlinkCount) \
+ ( (This)->lpVtbl -> get_nHyperlinks(This,hyperlinkCount) )
+
+#define IAccessibleHypertext_get_hyperlink(This,index,hyperlink) \
+ ( (This)->lpVtbl -> get_hyperlink(This,index,hyperlink) )
+
+#define IAccessibleHypertext_get_hyperlinkIndex(This,charIndex,hyperlinkIndex) \
+ ( (This)->lpVtbl -> get_hyperlinkIndex(This,charIndex,hyperlinkIndex) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleHypertext_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext2_INTERFACE_DEFINED__
+#define __IAccessibleHypertext2_INTERFACE_DEFINED__
+
+/* interface IAccessibleHypertext2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleHypertext2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("CF64D89F-8287-4B44-8501-A827453A6077")
+ IAccessibleHypertext2 : public IAccessibleHypertext
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlinks(
+ /* [size_is][size_is][out] */ IAccessibleHyperlink ***hyperlinks,
+ /* [retval][out] */ long *nHyperlinks) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleHypertext2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleHypertext2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleHypertext2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ long *hyperlinkCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long index,
+ /* [retval][out] */ IAccessibleHyperlink **hyperlink);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long charIndex,
+ /* [retval][out] */ long *hyperlinkIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinks )(
+ IAccessibleHypertext2 * This,
+ /* [size_is][size_is][out] */ IAccessibleHyperlink ***hyperlinks,
+ /* [retval][out] */ long *nHyperlinks);
+
+ END_INTERFACE
+ } IAccessibleHypertext2Vtbl;
+
+ interface IAccessibleHypertext2
+ {
+ CONST_VTBL struct IAccessibleHypertext2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleHypertext2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleHypertext2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleHypertext2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleHypertext2_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleHypertext2_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleHypertext2_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleHypertext2_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleHypertext2_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleHypertext2_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleHypertext2_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext2_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext2_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext2_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext2_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext2_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleHypertext2_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleHypertext2_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext2_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleHypertext2_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleHypertext2_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleHypertext2_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleHypertext2_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+
+#define IAccessibleHypertext2_get_nHyperlinks(This,hyperlinkCount) \
+ ( (This)->lpVtbl -> get_nHyperlinks(This,hyperlinkCount) )
+
+#define IAccessibleHypertext2_get_hyperlink(This,index,hyperlink) \
+ ( (This)->lpVtbl -> get_hyperlink(This,index,hyperlink) )
+
+#define IAccessibleHypertext2_get_hyperlinkIndex(This,charIndex,hyperlinkIndex) \
+ ( (This)->lpVtbl -> get_hyperlinkIndex(This,charIndex,hyperlinkIndex) )
+
+
+#define IAccessibleHypertext2_get_hyperlinks(This,hyperlinks,nHyperlinks) \
+ ( (This)->lpVtbl -> get_hyperlinks(This,hyperlinks,nHyperlinks) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleHypertext2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleTable_INTERFACE_DEFINED__
+#define __IAccessibleTable_INTERFACE_DEFINED__
+
+/* interface IAccessibleTable */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleTable;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("35AD8070-C20C-4fb4-B094-F4F7275DD469")
+ IAccessibleTable : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_accessibleAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_childIndex(
+ /* [in] */ long rowIndex,
+ /* [in] */ long columnIndex,
+ /* [retval][out] */ long *cellIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription(
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtentAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nColumnsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeader(
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingRowIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex(
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *columnIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedChildren(
+ /* [retval][out] */ long *cellCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription(
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtentAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nRowsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeader(
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingColumnIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex(
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *rowIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedChildren(
+ /* [in] */ long maxChildren,
+ /* [length_is][length_is][size_is][size_is][out] */ long **children,
+ /* [retval][out] */ long *nChildren) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns(
+ /* [in] */ long maxColumns,
+ /* [length_is][length_is][size_is][size_is][out] */ long **columns,
+ /* [retval][out] */ long *nColumns) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows(
+ /* [in] */ long maxRows,
+ /* [length_is][length_is][size_is][size_is][out] */ long **rows,
+ /* [retval][out] */ long *nRows) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected(
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected(
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtentsAtIndex(
+ /* [in] */ long index,
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange(
+ /* [retval][out] */ IA2TableModelChange *modelChange) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTableVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleTable * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleTable * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleTable * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleAt )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )(
+ IAccessibleTable * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_childIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long rowIndex,
+ /* [in] */ long columnIndex,
+ /* [retval][out] */ long *cellIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )(
+ IAccessibleTable * This,
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtentAt )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nColumnsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeader )(
+ IAccessibleTable * This,
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingRowIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *columnIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedChildren )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *cellCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtentAt )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nRowsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeader )(
+ IAccessibleTable * This,
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingColumnIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *rowIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedChildren )(
+ IAccessibleTable * This,
+ /* [in] */ long maxChildren,
+ /* [length_is][length_is][size_is][size_is][out] */ long **children,
+ /* [retval][out] */ long *nChildren);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )(
+ IAccessibleTable * This,
+ /* [in] */ long maxColumns,
+ /* [length_is][length_is][size_is][size_is][out] */ long **columns,
+ /* [retval][out] */ long *nColumns);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )(
+ IAccessibleTable * This,
+ /* [in] */ long maxRows,
+ /* [length_is][length_is][size_is][size_is][out] */ long **rows,
+ /* [retval][out] */ long *nRows);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )(
+ IAccessibleTable * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )(
+ IAccessibleTable * This,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected);
+
+ HRESULT ( STDMETHODCALLTYPE *selectRow )(
+ IAccessibleTable * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *selectColumn )(
+ IAccessibleTable * This,
+ /* [in] */ long column);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectRow )(
+ IAccessibleTable * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectColumn )(
+ IAccessibleTable * This,
+ /* [in] */ long column);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtentsAtIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long index,
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )(
+ IAccessibleTable * This,
+ /* [retval][out] */ IA2TableModelChange *modelChange);
+
+ END_INTERFACE
+ } IAccessibleTableVtbl;
+
+ interface IAccessibleTable
+ {
+ CONST_VTBL struct IAccessibleTableVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleTable_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleTable_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleTable_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleTable_get_accessibleAt(This,row,column,accessible) \
+ ( (This)->lpVtbl -> get_accessibleAt(This,row,column,accessible) )
+
+#define IAccessibleTable_get_caption(This,accessible) \
+ ( (This)->lpVtbl -> get_caption(This,accessible) )
+
+#define IAccessibleTable_get_childIndex(This,rowIndex,columnIndex,cellIndex) \
+ ( (This)->lpVtbl -> get_childIndex(This,rowIndex,columnIndex,cellIndex) )
+
+#define IAccessibleTable_get_columnDescription(This,column,description) \
+ ( (This)->lpVtbl -> get_columnDescription(This,column,description) )
+
+#define IAccessibleTable_get_columnExtentAt(This,row,column,nColumnsSpanned) \
+ ( (This)->lpVtbl -> get_columnExtentAt(This,row,column,nColumnsSpanned) )
+
+#define IAccessibleTable_get_columnHeader(This,accessibleTable,startingRowIndex) \
+ ( (This)->lpVtbl -> get_columnHeader(This,accessibleTable,startingRowIndex) )
+
+#define IAccessibleTable_get_columnIndex(This,cellIndex,columnIndex) \
+ ( (This)->lpVtbl -> get_columnIndex(This,cellIndex,columnIndex) )
+
+#define IAccessibleTable_get_nColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nColumns(This,columnCount) )
+
+#define IAccessibleTable_get_nRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nRows(This,rowCount) )
+
+#define IAccessibleTable_get_nSelectedChildren(This,cellCount) \
+ ( (This)->lpVtbl -> get_nSelectedChildren(This,cellCount) )
+
+#define IAccessibleTable_get_nSelectedColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nSelectedColumns(This,columnCount) )
+
+#define IAccessibleTable_get_nSelectedRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nSelectedRows(This,rowCount) )
+
+#define IAccessibleTable_get_rowDescription(This,row,description) \
+ ( (This)->lpVtbl -> get_rowDescription(This,row,description) )
+
+#define IAccessibleTable_get_rowExtentAt(This,row,column,nRowsSpanned) \
+ ( (This)->lpVtbl -> get_rowExtentAt(This,row,column,nRowsSpanned) )
+
+#define IAccessibleTable_get_rowHeader(This,accessibleTable,startingColumnIndex) \
+ ( (This)->lpVtbl -> get_rowHeader(This,accessibleTable,startingColumnIndex) )
+
+#define IAccessibleTable_get_rowIndex(This,cellIndex,rowIndex) \
+ ( (This)->lpVtbl -> get_rowIndex(This,cellIndex,rowIndex) )
+
+#define IAccessibleTable_get_selectedChildren(This,maxChildren,children,nChildren) \
+ ( (This)->lpVtbl -> get_selectedChildren(This,maxChildren,children,nChildren) )
+
+#define IAccessibleTable_get_selectedColumns(This,maxColumns,columns,nColumns) \
+ ( (This)->lpVtbl -> get_selectedColumns(This,maxColumns,columns,nColumns) )
+
+#define IAccessibleTable_get_selectedRows(This,maxRows,rows,nRows) \
+ ( (This)->lpVtbl -> get_selectedRows(This,maxRows,rows,nRows) )
+
+#define IAccessibleTable_get_summary(This,accessible) \
+ ( (This)->lpVtbl -> get_summary(This,accessible) )
+
+#define IAccessibleTable_get_isColumnSelected(This,column,isSelected) \
+ ( (This)->lpVtbl -> get_isColumnSelected(This,column,isSelected) )
+
+#define IAccessibleTable_get_isRowSelected(This,row,isSelected) \
+ ( (This)->lpVtbl -> get_isRowSelected(This,row,isSelected) )
+
+#define IAccessibleTable_get_isSelected(This,row,column,isSelected) \
+ ( (This)->lpVtbl -> get_isSelected(This,row,column,isSelected) )
+
+#define IAccessibleTable_selectRow(This,row) \
+ ( (This)->lpVtbl -> selectRow(This,row) )
+
+#define IAccessibleTable_selectColumn(This,column) \
+ ( (This)->lpVtbl -> selectColumn(This,column) )
+
+#define IAccessibleTable_unselectRow(This,row) \
+ ( (This)->lpVtbl -> unselectRow(This,row) )
+
+#define IAccessibleTable_unselectColumn(This,column) \
+ ( (This)->lpVtbl -> unselectColumn(This,column) )
+
+#define IAccessibleTable_get_rowColumnExtentsAtIndex(This,index,row,column,rowExtents,columnExtents,isSelected) \
+ ( (This)->lpVtbl -> get_rowColumnExtentsAtIndex(This,index,row,column,rowExtents,columnExtents,isSelected) )
+
+#define IAccessibleTable_get_modelChange(This,modelChange) \
+ ( (This)->lpVtbl -> get_modelChange(This,modelChange) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleTable_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleTable2_INTERFACE_DEFINED__
+#define __IAccessibleTable2_INTERFACE_DEFINED__
+
+/* interface IAccessibleTable2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleTable2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6167f295-06f0-4cdd-a1fa-02e25153d869")
+ IAccessibleTable2 : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_cellAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **cell) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription(
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedCells(
+ /* [retval][out] */ long *cellCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription(
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedCells(
+ /* [size_is][size_is][out] */ IUnknown ***cells,
+ /* [retval][out] */ long *nSelectedCells) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns(
+ /* [size_is][size_is][out] */ long **selectedColumns,
+ /* [retval][out] */ long *nColumns) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows(
+ /* [size_is][size_is][out] */ long **selectedRows,
+ /* [retval][out] */ long *nRows) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected(
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected(
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange(
+ /* [retval][out] */ IA2TableModelChange *modelChange) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTable2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleTable2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleTable2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleTable2 * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_cellAt )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **cell);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedCells )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *cellCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedCells )(
+ IAccessibleTable2 * This,
+ /* [size_is][size_is][out] */ IUnknown ***cells,
+ /* [retval][out] */ long *nSelectedCells);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )(
+ IAccessibleTable2 * This,
+ /* [size_is][size_is][out] */ long **selectedColumns,
+ /* [retval][out] */ long *nColumns);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )(
+ IAccessibleTable2 * This,
+ /* [size_is][size_is][out] */ long **selectedRows,
+ /* [retval][out] */ long *nRows);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected);
+
+ HRESULT ( STDMETHODCALLTYPE *selectRow )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *selectColumn )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectRow )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectColumn )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ IA2TableModelChange *modelChange);
+
+ END_INTERFACE
+ } IAccessibleTable2Vtbl;
+
+ interface IAccessibleTable2
+ {
+ CONST_VTBL struct IAccessibleTable2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleTable2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleTable2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleTable2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleTable2_get_cellAt(This,row,column,cell) \
+ ( (This)->lpVtbl -> get_cellAt(This,row,column,cell) )
+
+#define IAccessibleTable2_get_caption(This,accessible) \
+ ( (This)->lpVtbl -> get_caption(This,accessible) )
+
+#define IAccessibleTable2_get_columnDescription(This,column,description) \
+ ( (This)->lpVtbl -> get_columnDescription(This,column,description) )
+
+#define IAccessibleTable2_get_nColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nColumns(This,columnCount) )
+
+#define IAccessibleTable2_get_nRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nRows(This,rowCount) )
+
+#define IAccessibleTable2_get_nSelectedCells(This,cellCount) \
+ ( (This)->lpVtbl -> get_nSelectedCells(This,cellCount) )
+
+#define IAccessibleTable2_get_nSelectedColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nSelectedColumns(This,columnCount) )
+
+#define IAccessibleTable2_get_nSelectedRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nSelectedRows(This,rowCount) )
+
+#define IAccessibleTable2_get_rowDescription(This,row,description) \
+ ( (This)->lpVtbl -> get_rowDescription(This,row,description) )
+
+#define IAccessibleTable2_get_selectedCells(This,cells,nSelectedCells) \
+ ( (This)->lpVtbl -> get_selectedCells(This,cells,nSelectedCells) )
+
+#define IAccessibleTable2_get_selectedColumns(This,selectedColumns,nColumns) \
+ ( (This)->lpVtbl -> get_selectedColumns(This,selectedColumns,nColumns) )
+
+#define IAccessibleTable2_get_selectedRows(This,selectedRows,nRows) \
+ ( (This)->lpVtbl -> get_selectedRows(This,selectedRows,nRows) )
+
+#define IAccessibleTable2_get_summary(This,accessible) \
+ ( (This)->lpVtbl -> get_summary(This,accessible) )
+
+#define IAccessibleTable2_get_isColumnSelected(This,column,isSelected) \
+ ( (This)->lpVtbl -> get_isColumnSelected(This,column,isSelected) )
+
+#define IAccessibleTable2_get_isRowSelected(This,row,isSelected) \
+ ( (This)->lpVtbl -> get_isRowSelected(This,row,isSelected) )
+
+#define IAccessibleTable2_selectRow(This,row) \
+ ( (This)->lpVtbl -> selectRow(This,row) )
+
+#define IAccessibleTable2_selectColumn(This,column) \
+ ( (This)->lpVtbl -> selectColumn(This,column) )
+
+#define IAccessibleTable2_unselectRow(This,row) \
+ ( (This)->lpVtbl -> unselectRow(This,row) )
+
+#define IAccessibleTable2_unselectColumn(This,column) \
+ ( (This)->lpVtbl -> unselectColumn(This,column) )
+
+#define IAccessibleTable2_get_modelChange(This,modelChange) \
+ ( (This)->lpVtbl -> get_modelChange(This,modelChange) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleTable2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleTableCell_INTERFACE_DEFINED__
+#define __IAccessibleTableCell_INTERFACE_DEFINED__
+
+/* interface IAccessibleTableCell */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleTableCell;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("594116B1-C99F-4847-AD06-0A7A86ECE645")
+ IAccessibleTableCell : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtent(
+ /* [retval][out] */ long *nColumnsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeaderCells(
+ /* [size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nColumnHeaderCells) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex(
+ /* [retval][out] */ long *columnIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtent(
+ /* [retval][out] */ long *nRowsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeaderCells(
+ /* [size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nRowHeaderCells) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex(
+ /* [retval][out] */ long *rowIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected(
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtents(
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_table(
+ /* [retval][out] */ IUnknown **table) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTableCellVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleTableCell * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleTableCell * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleTableCell * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtent )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *nColumnsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeaderCells )(
+ IAccessibleTableCell * This,
+ /* [size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nColumnHeaderCells);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *columnIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtent )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *nRowsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeaderCells )(
+ IAccessibleTableCell * This,
+ /* [size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nRowHeaderCells);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *rowIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtents )(
+ IAccessibleTableCell * This,
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_table )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ IUnknown **table);
+
+ END_INTERFACE
+ } IAccessibleTableCellVtbl;
+
+ interface IAccessibleTableCell
+ {
+ CONST_VTBL struct IAccessibleTableCellVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleTableCell_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleTableCell_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleTableCell_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleTableCell_get_columnExtent(This,nColumnsSpanned) \
+ ( (This)->lpVtbl -> get_columnExtent(This,nColumnsSpanned) )
+
+#define IAccessibleTableCell_get_columnHeaderCells(This,cellAccessibles,nColumnHeaderCells) \
+ ( (This)->lpVtbl -> get_columnHeaderCells(This,cellAccessibles,nColumnHeaderCells) )
+
+#define IAccessibleTableCell_get_columnIndex(This,columnIndex) \
+ ( (This)->lpVtbl -> get_columnIndex(This,columnIndex) )
+
+#define IAccessibleTableCell_get_rowExtent(This,nRowsSpanned) \
+ ( (This)->lpVtbl -> get_rowExtent(This,nRowsSpanned) )
+
+#define IAccessibleTableCell_get_rowHeaderCells(This,cellAccessibles,nRowHeaderCells) \
+ ( (This)->lpVtbl -> get_rowHeaderCells(This,cellAccessibles,nRowHeaderCells) )
+
+#define IAccessibleTableCell_get_rowIndex(This,rowIndex) \
+ ( (This)->lpVtbl -> get_rowIndex(This,rowIndex) )
+
+#define IAccessibleTableCell_get_isSelected(This,isSelected) \
+ ( (This)->lpVtbl -> get_isSelected(This,isSelected) )
+
+#define IAccessibleTableCell_get_rowColumnExtents(This,row,column,rowExtents,columnExtents,isSelected) \
+ ( (This)->lpVtbl -> get_rowColumnExtents(This,row,column,rowExtents,columnExtents,isSelected) )
+
+#define IAccessibleTableCell_get_table(This,table) \
+ ( (This)->lpVtbl -> get_table(This,table) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleTableCell_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleImage_INTERFACE_DEFINED__
+#define __IAccessibleImage_INTERFACE_DEFINED__
+
+/* interface IAccessibleImage */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleImage;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("FE5ABB3D-615E-4f7b-909F-5F0EDA9E8DDE")
+ IAccessibleImage : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_description(
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_imagePosition(
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_imageSize(
+ /* [out] */ long *height,
+ /* [retval][out] */ long *width) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleImageVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleImage * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleImage * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleImage * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
+ IAccessibleImage * This,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imagePosition )(
+ IAccessibleImage * This,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageSize )(
+ IAccessibleImage * This,
+ /* [out] */ long *height,
+ /* [retval][out] */ long *width);
+
+ END_INTERFACE
+ } IAccessibleImageVtbl;
+
+ interface IAccessibleImage
+ {
+ CONST_VTBL struct IAccessibleImageVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleImage_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleImage_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleImage_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleImage_get_description(This,description) \
+ ( (This)->lpVtbl -> get_description(This,description) )
+
+#define IAccessibleImage_get_imagePosition(This,coordinateType,x,y) \
+ ( (This)->lpVtbl -> get_imagePosition(This,coordinateType,x,y) )
+
+#define IAccessibleImage_get_imageSize(This,height,width) \
+ ( (This)->lpVtbl -> get_imageSize(This,height,width) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleImage_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0016 */
+/* [local] */
+
+
+enum IA2EventID
+ {
+ IA2_EVENT_ACTION_CHANGED = 0x101,
+ IA2_EVENT_ACTIVE_DECENDENT_CHANGED = ( IA2_EVENT_ACTION_CHANGED + 1 ) ,
+ IA2_EVENT_ACTIVE_DESCENDANT_CHANGED = IA2_EVENT_ACTIVE_DECENDENT_CHANGED,
+ IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED = ( IA2_EVENT_ACTIVE_DESCENDANT_CHANGED + 1 ) ,
+ IA2_EVENT_DOCUMENT_CONTENT_CHANGED = ( IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED + 1 ) ,
+ IA2_EVENT_DOCUMENT_LOAD_COMPLETE = ( IA2_EVENT_DOCUMENT_CONTENT_CHANGED + 1 ) ,
+ IA2_EVENT_DOCUMENT_LOAD_STOPPED = ( IA2_EVENT_DOCUMENT_LOAD_COMPLETE + 1 ) ,
+ IA2_EVENT_DOCUMENT_RELOAD = ( IA2_EVENT_DOCUMENT_LOAD_STOPPED + 1 ) ,
+ IA2_EVENT_HYPERLINK_END_INDEX_CHANGED = ( IA2_EVENT_DOCUMENT_RELOAD + 1 ) ,
+ IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED = ( IA2_EVENT_HYPERLINK_END_INDEX_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED = ( IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_LINK_ACTIVATED = ( IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_LINK_SELECTED = ( IA2_EVENT_HYPERTEXT_LINK_ACTIVATED + 1 ) ,
+ IA2_EVENT_HYPERLINK_START_INDEX_CHANGED = ( IA2_EVENT_HYPERTEXT_LINK_SELECTED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_CHANGED = ( IA2_EVENT_HYPERLINK_START_INDEX_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_NLINKS_CHANGED = ( IA2_EVENT_HYPERTEXT_CHANGED + 1 ) ,
+ IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED = ( IA2_EVENT_HYPERTEXT_NLINKS_CHANGED + 1 ) ,
+ IA2_EVENT_PAGE_CHANGED = ( IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED + 1 ) ,
+ IA2_EVENT_SECTION_CHANGED = ( IA2_EVENT_PAGE_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_CAPTION_CHANGED = ( IA2_EVENT_SECTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED = ( IA2_EVENT_TABLE_CAPTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED = ( IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_MODEL_CHANGED = ( IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED = ( IA2_EVENT_TABLE_MODEL_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_ROW_HEADER_CHANGED = ( IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_SUMMARY_CHANGED = ( IA2_EVENT_TABLE_ROW_HEADER_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_ATTRIBUTE_CHANGED = ( IA2_EVENT_TABLE_SUMMARY_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_CARET_MOVED = ( IA2_EVENT_TEXT_ATTRIBUTE_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_CHANGED = ( IA2_EVENT_TEXT_CARET_MOVED + 1 ) ,
+ IA2_EVENT_TEXT_COLUMN_CHANGED = ( IA2_EVENT_TEXT_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_INSERTED = ( IA2_EVENT_TEXT_COLUMN_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_REMOVED = ( IA2_EVENT_TEXT_INSERTED + 1 ) ,
+ IA2_EVENT_TEXT_UPDATED = ( IA2_EVENT_TEXT_REMOVED + 1 ) ,
+ IA2_EVENT_TEXT_SELECTION_CHANGED = ( IA2_EVENT_TEXT_UPDATED + 1 ) ,
+ IA2_EVENT_VISIBLE_DATA_CHANGED = ( IA2_EVENT_TEXT_SELECTION_CHANGED + 1 )
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0016_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0016_v0_0_s_ifspec;
+
+#ifndef __IAccessibleApplication_INTERFACE_DEFINED__
+#define __IAccessibleApplication_INTERFACE_DEFINED__
+
+/* interface IAccessibleApplication */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleApplication;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("D49DED83-5B25-43F4-9B95-93B44595979E")
+ IAccessibleApplication : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appName(
+ /* [retval][out] */ BSTR *name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appVersion(
+ /* [retval][out] */ BSTR *version) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_toolkitName(
+ /* [retval][out] */ BSTR *name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_toolkitVersion(
+ /* [retval][out] */ BSTR *version) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleApplicationVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleApplication * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleApplication * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleApplication * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appName )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appVersion )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *version);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitName )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitVersion )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *version);
+
+ END_INTERFACE
+ } IAccessibleApplicationVtbl;
+
+ interface IAccessibleApplication
+ {
+ CONST_VTBL struct IAccessibleApplicationVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleApplication_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleApplication_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleApplication_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleApplication_get_appName(This,name) \
+ ( (This)->lpVtbl -> get_appName(This,name) )
+
+#define IAccessibleApplication_get_appVersion(This,version) \
+ ( (This)->lpVtbl -> get_appVersion(This,version) )
+
+#define IAccessibleApplication_get_toolkitName(This,name) \
+ ( (This)->lpVtbl -> get_toolkitName(This,name) )
+
+#define IAccessibleApplication_get_toolkitVersion(This,version) \
+ ( (This)->lpVtbl -> get_toolkitVersion(This,version) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleApplication_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleDocument_INTERFACE_DEFINED__
+#define __IAccessibleDocument_INTERFACE_DEFINED__
+
+/* interface IAccessibleDocument */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleDocument;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("C48C7FCF-4AB5-4056-AFA6-902D6E1D1149")
+ IAccessibleDocument : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchorTarget(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleDocumentVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleDocument * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleDocument * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleDocument * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )(
+ IAccessibleDocument * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ END_INTERFACE
+ } IAccessibleDocumentVtbl;
+
+ interface IAccessibleDocument
+ {
+ CONST_VTBL struct IAccessibleDocumentVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleDocument_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleDocument_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleDocument_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleDocument_get_anchorTarget(This,accessible) \
+ ( (This)->lpVtbl -> get_anchorTarget(This,accessible) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleDocument_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0018 */
+/* [local] */
+
+
+// Type Library Definitions
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0018_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0018_v0_0_s_ifspec;
+
+
+#ifndef __IAccessible2Lib_LIBRARY_DEFINED__
+#define __IAccessible2Lib_LIBRARY_DEFINED__
+
+/* library IAccessible2Lib */
+/* [hidden][version][helpstring][uuid] */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+EXTERN_C const IID LIBID_IAccessible2Lib;
+#endif /* __IAccessible2Lib_LIBRARY_DEFINED__ */
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+unsigned long __RPC_USER HWND_UserSize( unsigned long *, unsigned long , HWND * );
+unsigned char * __RPC_USER HWND_UserMarshal( unsigned long *, unsigned char *, HWND * );
+unsigned char * __RPC_USER HWND_UserUnmarshal(unsigned long *, unsigned char *, HWND * );
+void __RPC_USER HWND_UserFree( unsigned long *, HWND * );
+
+unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
+void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.tlb b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.tlb
new file mode 100644
index 00000000000..9dff4f95e83
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.tlb
Binary files differ
diff --git a/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all_i.c b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all_i.c
new file mode 100644
index 00000000000..90d55377935
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all_i.c
@@ -0,0 +1,133 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/iaccessible2/ia2_api_all.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif // !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleRelation,0x7CDF86EE,0xC3DA,0x496a,0xBD,0xA4,0x28,0x1B,0x33,0x6E,0x1F,0xDC);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleAction,0xB70D9F59,0x3B5A,0x4dba,0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessible2,0xE89F726E,0xC4F4,0x4c19,0xBB,0x19,0xB6,0x47,0xD7,0xFA,0x84,0x78);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessible2_2,0x6C9430E9,0x299D,0x4E6F,0xBD,0x01,0xA8,0x2A,0x1E,0x88,0xD3,0xFF);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleComponent,0x1546D4B0,0x4C98,0x4bda,0x89,0xAE,0x9A,0x64,0x74,0x8B,0xDD,0xE4);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleValue,0x35855B5B,0xC566,0x4fd0,0xA7,0xB1,0xE6,0x54,0x65,0x60,0x03,0x94);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleText,0x24FD2FFB,0x3AAD,0x4a08,0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleText2,0x9690A9CC,0x5C80,0x4DF5,0x85,0x2E,0x2D,0x5A,0xE4,0x18,0x9A,0x54);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleEditableText,0xA59AA09A,0x7011,0x4b65,0x93,0x9D,0x32,0xB1,0xFB,0x55,0x47,0xE3);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleHyperlink,0x01C20F2B,0x3DD2,0x400f,0x94,0x9F,0xAD,0x00,0xBD,0xAB,0x1D,0x41);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleHypertext,0x6B4F8BBF,0xF1F2,0x418a,0xB3,0x5E,0xA1,0x95,0xBC,0x41,0x03,0xB9);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleHypertext2,0xCF64D89F,0x8287,0x4B44,0x85,0x01,0xA8,0x27,0x45,0x3A,0x60,0x77);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleTable,0x35AD8070,0xC20C,0x4fb4,0xB0,0x94,0xF4,0xF7,0x27,0x5D,0xD4,0x69);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleTable2,0x6167f295,0x06f0,0x4cdd,0xa1,0xfa,0x02,0xe2,0x51,0x53,0xd8,0x69);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleTableCell,0x594116B1,0xC99F,0x4847,0xAD,0x06,0x0A,0x7A,0x86,0xEC,0xE6,0x45);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleImage,0xFE5ABB3D,0x615E,0x4f7b,0x90,0x9F,0x5F,0x0E,0xDA,0x9E,0x8D,0xDE);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleApplication,0xD49DED83,0x5B25,0x43F4,0x9B,0x95,0x93,0xB4,0x45,0x95,0x97,0x9E);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleDocument,0xC48C7FCF,0x4AB5,0x4056,0xAF,0xA6,0x90,0x2D,0x6E,0x1D,0x11,0x49);
+
+
+MIDL_DEFINE_GUID(IID, LIBID_IAccessible2Lib,0xCE3F726E,0xD1D3,0x44FE,0xB9,0x95,0xFF,0x1D,0xB3,0xB4,0x8B,0x2B);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all_p.c b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all_p.c
new file mode 100644
index 00000000000..c6e4d55242c
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all_p.c
@@ -0,0 +1,7867 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/iaccessible2/ia2_api_all.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "ia2_api_all.h"
+
+#define TYPE_FORMAT_STRING_SIZE 1467
+#define PROC_FORMAT_STRING_SIZE 5445
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 3
+
+typedef struct _ia2_api_all_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } ia2_api_all_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _ia2_api_all_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } ia2_api_all_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _ia2_api_all_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } ia2_api_all_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const ia2_api_all_MIDL_TYPE_FORMAT_STRING ia2_api_all__MIDL_TypeFormatString;
+extern const ia2_api_all_MIDL_PROC_FORMAT_STRING ia2_api_all__MIDL_ProcFormatString;
+extern const ia2_api_all_MIDL_EXPR_FORMAT_STRING ia2_api_all__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleRelation_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleRelation_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleAction_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleAction_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessible2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessible2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessible2_2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessible2_2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleComponent_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleComponent_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleValue_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleValue_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleText_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleText_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleText2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleText2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleEditableText_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleEditableText_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleHyperlink_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHyperlink_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleHypertext_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleHypertext2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleTable_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTable_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleTable2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTable2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleTableCell_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTableCell_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleImage_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleImage_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleApplication_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleApplication_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleDocument_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleDocument_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const ia2_api_all_MIDL_PROC_FORMAT_STRING ia2_api_all__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_appName */
+
+
+ /* Procedure get_description */
+
+
+ /* Procedure get_relationType */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter name */
+
+
+ /* Parameter description */
+
+
+ /* Parameter relationType */
+
+/* 26 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_appVersion */
+
+
+ /* Procedure get_localizedRelationType */
+
+/* 38 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 40 */ NdrFcLong( 0x0 ), /* 0 */
+/* 44 */ NdrFcShort( 0x4 ), /* 4 */
+/* 46 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 48 */ NdrFcShort( 0x0 ), /* 0 */
+/* 50 */ NdrFcShort( 0x8 ), /* 8 */
+/* 52 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 54 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 56 */ NdrFcShort( 0x1 ), /* 1 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter version */
+
+
+ /* Parameter localizedRelationType */
+
+/* 64 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 68 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 70 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 74 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnIndex */
+
+
+ /* Procedure get_caretOffset */
+
+
+ /* Procedure get_background */
+
+
+ /* Procedure get_nTargets */
+
+/* 76 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 78 */ NdrFcLong( 0x0 ), /* 0 */
+/* 82 */ NdrFcShort( 0x5 ), /* 5 */
+/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 86 */ NdrFcShort( 0x0 ), /* 0 */
+/* 88 */ NdrFcShort( 0x24 ), /* 36 */
+/* 90 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 92 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 94 */ NdrFcShort( 0x0 ), /* 0 */
+/* 96 */ NdrFcShort( 0x0 ), /* 0 */
+/* 98 */ NdrFcShort( 0x0 ), /* 0 */
+/* 100 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnIndex */
+
+
+ /* Parameter offset */
+
+
+ /* Parameter background */
+
+
+ /* Parameter nTargets */
+
+/* 102 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 104 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 110 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_target */
+
+/* 114 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 116 */ NdrFcLong( 0x0 ), /* 0 */
+/* 120 */ NdrFcShort( 0x6 ), /* 6 */
+/* 122 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 124 */ NdrFcShort( 0x8 ), /* 8 */
+/* 126 */ NdrFcShort( 0x8 ), /* 8 */
+/* 128 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 130 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 132 */ NdrFcShort( 0x0 ), /* 0 */
+/* 134 */ NdrFcShort( 0x0 ), /* 0 */
+/* 136 */ NdrFcShort( 0x0 ), /* 0 */
+/* 138 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter targetIndex */
+
+/* 140 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 142 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 144 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter target */
+
+/* 146 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 148 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 150 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 152 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 154 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 156 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_targets */
+
+/* 158 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 160 */ NdrFcLong( 0x0 ), /* 0 */
+/* 164 */ NdrFcShort( 0x7 ), /* 7 */
+/* 166 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 168 */ NdrFcShort( 0x8 ), /* 8 */
+/* 170 */ NdrFcShort( 0x24 ), /* 36 */
+/* 172 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 174 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 176 */ NdrFcShort( 0x1 ), /* 1 */
+/* 178 */ NdrFcShort( 0x0 ), /* 0 */
+/* 180 */ NdrFcShort( 0x0 ), /* 0 */
+/* 182 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxTargets */
+
+/* 184 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 186 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 188 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter targets */
+
+/* 190 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 192 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 194 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter nTargets */
+
+/* 196 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 198 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 200 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 202 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 204 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 206 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnExtent */
+
+
+ /* Procedure nActions */
+
+/* 208 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 210 */ NdrFcLong( 0x0 ), /* 0 */
+/* 214 */ NdrFcShort( 0x3 ), /* 3 */
+/* 216 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 218 */ NdrFcShort( 0x0 ), /* 0 */
+/* 220 */ NdrFcShort( 0x24 ), /* 36 */
+/* 222 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 224 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 226 */ NdrFcShort( 0x0 ), /* 0 */
+/* 228 */ NdrFcShort( 0x0 ), /* 0 */
+/* 230 */ NdrFcShort( 0x0 ), /* 0 */
+/* 232 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nColumnsSpanned */
+
+
+ /* Parameter nActions */
+
+/* 234 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 236 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 238 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 240 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 242 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 244 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure doAction */
+
+/* 246 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 248 */ NdrFcLong( 0x0 ), /* 0 */
+/* 252 */ NdrFcShort( 0x4 ), /* 4 */
+/* 254 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 256 */ NdrFcShort( 0x8 ), /* 8 */
+/* 258 */ NdrFcShort( 0x8 ), /* 8 */
+/* 260 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 262 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 264 */ NdrFcShort( 0x0 ), /* 0 */
+/* 266 */ NdrFcShort( 0x0 ), /* 0 */
+/* 268 */ NdrFcShort( 0x0 ), /* 0 */
+/* 270 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 272 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 274 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 276 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 278 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 280 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 282 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnDescription */
+
+
+ /* Procedure get_description */
+
+/* 284 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 286 */ NdrFcLong( 0x0 ), /* 0 */
+/* 290 */ NdrFcShort( 0x5 ), /* 5 */
+/* 292 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 294 */ NdrFcShort( 0x8 ), /* 8 */
+/* 296 */ NdrFcShort( 0x8 ), /* 8 */
+/* 298 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 300 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 302 */ NdrFcShort( 0x1 ), /* 1 */
+/* 304 */ NdrFcShort( 0x0 ), /* 0 */
+/* 306 */ NdrFcShort( 0x0 ), /* 0 */
+/* 308 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+
+ /* Parameter actionIndex */
+
+/* 310 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 312 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 314 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+
+ /* Parameter description */
+
+/* 316 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 318 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 320 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 322 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 324 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 326 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_keyBinding */
+
+/* 328 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 330 */ NdrFcLong( 0x0 ), /* 0 */
+/* 334 */ NdrFcShort( 0x6 ), /* 6 */
+/* 336 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 338 */ NdrFcShort( 0x10 ), /* 16 */
+/* 340 */ NdrFcShort( 0x24 ), /* 36 */
+/* 342 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 344 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 346 */ NdrFcShort( 0x1 ), /* 1 */
+/* 348 */ NdrFcShort( 0x0 ), /* 0 */
+/* 350 */ NdrFcShort( 0x0 ), /* 0 */
+/* 352 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 354 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 356 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 358 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nMaxBindings */
+
+/* 360 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 362 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 364 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter keyBindings */
+
+/* 366 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 368 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 370 */ NdrFcShort( 0x5e ), /* Type Offset=94 */
+
+ /* Parameter nBindings */
+
+/* 372 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 374 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 376 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 378 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 380 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 382 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_name */
+
+/* 384 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 386 */ NdrFcLong( 0x0 ), /* 0 */
+/* 390 */ NdrFcShort( 0x7 ), /* 7 */
+/* 392 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 394 */ NdrFcShort( 0x8 ), /* 8 */
+/* 396 */ NdrFcShort( 0x8 ), /* 8 */
+/* 398 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 400 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 402 */ NdrFcShort( 0x1 ), /* 1 */
+/* 404 */ NdrFcShort( 0x0 ), /* 0 */
+/* 406 */ NdrFcShort( 0x0 ), /* 0 */
+/* 408 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 410 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 412 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 414 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter name */
+
+/* 416 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 418 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 420 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 422 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 424 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 426 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedName */
+
+/* 428 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 430 */ NdrFcLong( 0x0 ), /* 0 */
+/* 434 */ NdrFcShort( 0x8 ), /* 8 */
+/* 436 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 438 */ NdrFcShort( 0x8 ), /* 8 */
+/* 440 */ NdrFcShort( 0x8 ), /* 8 */
+/* 442 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 444 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 446 */ NdrFcShort( 0x1 ), /* 1 */
+/* 448 */ NdrFcShort( 0x0 ), /* 0 */
+/* 450 */ NdrFcShort( 0x0 ), /* 0 */
+/* 452 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 454 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 456 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 458 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter localizedName */
+
+/* 460 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 462 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 464 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 466 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 468 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 470 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nRelations */
+
+/* 472 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 474 */ NdrFcLong( 0x0 ), /* 0 */
+/* 478 */ NdrFcShort( 0x1c ), /* 28 */
+/* 480 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 482 */ NdrFcShort( 0x0 ), /* 0 */
+/* 484 */ NdrFcShort( 0x24 ), /* 36 */
+/* 486 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 488 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 490 */ NdrFcShort( 0x0 ), /* 0 */
+/* 492 */ NdrFcShort( 0x0 ), /* 0 */
+/* 494 */ NdrFcShort( 0x0 ), /* 0 */
+/* 496 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nRelations */
+
+/* 498 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 500 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 502 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 504 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 506 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 508 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_relation */
+
+/* 510 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 512 */ NdrFcLong( 0x0 ), /* 0 */
+/* 516 */ NdrFcShort( 0x1d ), /* 29 */
+/* 518 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 520 */ NdrFcShort( 0x8 ), /* 8 */
+/* 522 */ NdrFcShort( 0x8 ), /* 8 */
+/* 524 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 526 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 528 */ NdrFcShort( 0x0 ), /* 0 */
+/* 530 */ NdrFcShort( 0x0 ), /* 0 */
+/* 532 */ NdrFcShort( 0x0 ), /* 0 */
+/* 534 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter relationIndex */
+
+/* 536 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 538 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 540 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter relation */
+
+/* 542 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 544 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 546 */ NdrFcShort( 0x7c ), /* Type Offset=124 */
+
+ /* Return value */
+
+/* 548 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 550 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 552 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_relations */
+
+/* 554 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 556 */ NdrFcLong( 0x0 ), /* 0 */
+/* 560 */ NdrFcShort( 0x1e ), /* 30 */
+/* 562 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 564 */ NdrFcShort( 0x8 ), /* 8 */
+/* 566 */ NdrFcShort( 0x24 ), /* 36 */
+/* 568 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 570 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 572 */ NdrFcShort( 0x1 ), /* 1 */
+/* 574 */ NdrFcShort( 0x0 ), /* 0 */
+/* 576 */ NdrFcShort( 0x0 ), /* 0 */
+/* 578 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxRelations */
+
+/* 580 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 582 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 584 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter relations */
+
+/* 586 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 588 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 590 */ NdrFcShort( 0x96 ), /* Type Offset=150 */
+
+ /* Parameter nRelations */
+
+/* 592 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 594 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 596 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 598 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 600 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 602 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure role */
+
+/* 604 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 606 */ NdrFcLong( 0x0 ), /* 0 */
+/* 610 */ NdrFcShort( 0x1f ), /* 31 */
+/* 612 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 614 */ NdrFcShort( 0x0 ), /* 0 */
+/* 616 */ NdrFcShort( 0x24 ), /* 36 */
+/* 618 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 620 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 622 */ NdrFcShort( 0x0 ), /* 0 */
+/* 624 */ NdrFcShort( 0x0 ), /* 0 */
+/* 626 */ NdrFcShort( 0x0 ), /* 0 */
+/* 628 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter role */
+
+/* 630 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 632 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 634 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 636 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 638 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 640 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollTo */
+
+/* 642 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 644 */ NdrFcLong( 0x0 ), /* 0 */
+/* 648 */ NdrFcShort( 0x20 ), /* 32 */
+/* 650 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 652 */ NdrFcShort( 0x6 ), /* 6 */
+/* 654 */ NdrFcShort( 0x8 ), /* 8 */
+/* 656 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 658 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 660 */ NdrFcShort( 0x0 ), /* 0 */
+/* 662 */ NdrFcShort( 0x0 ), /* 0 */
+/* 664 */ NdrFcShort( 0x0 ), /* 0 */
+/* 666 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter scrollType */
+
+/* 668 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 670 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 672 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 674 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 676 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 678 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollToPoint */
+
+/* 680 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 682 */ NdrFcLong( 0x0 ), /* 0 */
+/* 686 */ NdrFcShort( 0x21 ), /* 33 */
+/* 688 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 690 */ NdrFcShort( 0x16 ), /* 22 */
+/* 692 */ NdrFcShort( 0x8 ), /* 8 */
+/* 694 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 696 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 698 */ NdrFcShort( 0x0 ), /* 0 */
+/* 700 */ NdrFcShort( 0x0 ), /* 0 */
+/* 702 */ NdrFcShort( 0x0 ), /* 0 */
+/* 704 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter coordinateType */
+
+/* 706 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 708 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 710 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 712 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 714 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 716 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 718 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 720 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 722 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 724 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 726 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 728 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_groupPosition */
+
+/* 730 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 732 */ NdrFcLong( 0x0 ), /* 0 */
+/* 736 */ NdrFcShort( 0x22 ), /* 34 */
+/* 738 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 740 */ NdrFcShort( 0x0 ), /* 0 */
+/* 742 */ NdrFcShort( 0x5c ), /* 92 */
+/* 744 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 746 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 748 */ NdrFcShort( 0x0 ), /* 0 */
+/* 750 */ NdrFcShort( 0x0 ), /* 0 */
+/* 752 */ NdrFcShort( 0x0 ), /* 0 */
+/* 754 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter groupLevel */
+
+/* 756 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 758 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 760 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter similarItemsInGroup */
+
+/* 762 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 764 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 766 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter positionInGroup */
+
+/* 768 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 770 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 772 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 774 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 776 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 778 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_states */
+
+/* 780 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 782 */ NdrFcLong( 0x0 ), /* 0 */
+/* 786 */ NdrFcShort( 0x23 ), /* 35 */
+/* 788 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 790 */ NdrFcShort( 0x0 ), /* 0 */
+/* 792 */ NdrFcShort( 0x24 ), /* 36 */
+/* 794 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 796 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 798 */ NdrFcShort( 0x0 ), /* 0 */
+/* 800 */ NdrFcShort( 0x0 ), /* 0 */
+/* 802 */ NdrFcShort( 0x0 ), /* 0 */
+/* 804 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter states */
+
+/* 806 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 808 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 810 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 812 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 814 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 816 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_extendedRole */
+
+/* 818 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 820 */ NdrFcLong( 0x0 ), /* 0 */
+/* 824 */ NdrFcShort( 0x24 ), /* 36 */
+/* 826 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 828 */ NdrFcShort( 0x0 ), /* 0 */
+/* 830 */ NdrFcShort( 0x8 ), /* 8 */
+/* 832 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 834 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 836 */ NdrFcShort( 0x1 ), /* 1 */
+/* 838 */ NdrFcShort( 0x0 ), /* 0 */
+/* 840 */ NdrFcShort( 0x0 ), /* 0 */
+/* 842 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter extendedRole */
+
+/* 844 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 846 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 848 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 850 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 852 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 854 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedExtendedRole */
+
+/* 856 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 858 */ NdrFcLong( 0x0 ), /* 0 */
+/* 862 */ NdrFcShort( 0x25 ), /* 37 */
+/* 864 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 866 */ NdrFcShort( 0x0 ), /* 0 */
+/* 868 */ NdrFcShort( 0x8 ), /* 8 */
+/* 870 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 872 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 874 */ NdrFcShort( 0x1 ), /* 1 */
+/* 876 */ NdrFcShort( 0x0 ), /* 0 */
+/* 878 */ NdrFcShort( 0x0 ), /* 0 */
+/* 880 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter localizedExtendedRole */
+
+/* 882 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 884 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 886 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 888 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 890 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 892 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nExtendedStates */
+
+/* 894 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 896 */ NdrFcLong( 0x0 ), /* 0 */
+/* 900 */ NdrFcShort( 0x26 ), /* 38 */
+/* 902 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 904 */ NdrFcShort( 0x0 ), /* 0 */
+/* 906 */ NdrFcShort( 0x24 ), /* 36 */
+/* 908 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 910 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 912 */ NdrFcShort( 0x0 ), /* 0 */
+/* 914 */ NdrFcShort( 0x0 ), /* 0 */
+/* 916 */ NdrFcShort( 0x0 ), /* 0 */
+/* 918 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nExtendedStates */
+
+/* 920 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 922 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 924 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 926 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 928 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 930 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_extendedStates */
+
+/* 932 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 934 */ NdrFcLong( 0x0 ), /* 0 */
+/* 938 */ NdrFcShort( 0x27 ), /* 39 */
+/* 940 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 942 */ NdrFcShort( 0x8 ), /* 8 */
+/* 944 */ NdrFcShort( 0x24 ), /* 36 */
+/* 946 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 948 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 950 */ NdrFcShort( 0x1 ), /* 1 */
+/* 952 */ NdrFcShort( 0x0 ), /* 0 */
+/* 954 */ NdrFcShort( 0x0 ), /* 0 */
+/* 956 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxExtendedStates */
+
+/* 958 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 960 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 962 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter extendedStates */
+
+/* 964 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 966 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 968 */ NdrFcShort( 0xac ), /* Type Offset=172 */
+
+ /* Parameter nExtendedStates */
+
+/* 970 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 972 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 974 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 976 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 978 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 980 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedExtendedStates */
+
+/* 982 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 984 */ NdrFcLong( 0x0 ), /* 0 */
+/* 988 */ NdrFcShort( 0x28 ), /* 40 */
+/* 990 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 992 */ NdrFcShort( 0x8 ), /* 8 */
+/* 994 */ NdrFcShort( 0x24 ), /* 36 */
+/* 996 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 998 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1000 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1002 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1004 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1006 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxLocalizedExtendedStates */
+
+/* 1008 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1010 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1012 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter localizedExtendedStates */
+
+/* 1014 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 1016 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1018 */ NdrFcShort( 0xac ), /* Type Offset=172 */
+
+ /* Parameter nLocalizedExtendedStates */
+
+/* 1020 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1022 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1024 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1026 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1028 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1030 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_uniqueID */
+
+/* 1032 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1034 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1038 */ NdrFcShort( 0x29 ), /* 41 */
+/* 1040 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1042 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1044 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1046 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1048 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1050 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1052 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1054 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1056 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter uniqueID */
+
+/* 1058 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1060 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1062 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1064 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1066 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1068 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_windowHandle */
+
+/* 1070 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1072 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1076 */ NdrFcShort( 0x2a ), /* 42 */
+/* 1078 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1080 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1082 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1084 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1086 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1088 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1090 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1092 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1094 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter windowHandle */
+
+/* 1096 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1098 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1100 */ NdrFcShort( 0xe6 ), /* Type Offset=230 */
+
+ /* Return value */
+
+/* 1102 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1104 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_indexInParent */
+
+/* 1108 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1110 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1114 */ NdrFcShort( 0x2b ), /* 43 */
+/* 1116 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1118 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1120 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1122 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1124 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1126 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1128 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1130 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1132 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter indexInParent */
+
+/* 1134 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1136 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1138 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1140 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1142 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1144 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_locale */
+
+/* 1146 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1148 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1152 */ NdrFcShort( 0x2c ), /* 44 */
+/* 1154 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1156 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1158 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1160 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1162 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1164 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1166 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1168 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1170 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter locale */
+
+/* 1172 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 1174 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1176 */ NdrFcShort( 0xf4 ), /* Type Offset=244 */
+
+ /* Return value */
+
+/* 1178 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1180 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1182 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributes */
+
+/* 1184 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1186 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1190 */ NdrFcShort( 0x2d ), /* 45 */
+/* 1192 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1194 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1196 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1198 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1200 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1202 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1204 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1206 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1208 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter attributes */
+
+/* 1210 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1212 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1214 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 1216 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1218 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1220 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attribute */
+
+/* 1222 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1224 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1228 */ NdrFcShort( 0x2e ), /* 46 */
+/* 1230 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1232 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1234 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1236 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 1238 */ 0xa, /* 10 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 1240 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1242 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1244 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1246 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter name */
+
+/* 1248 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1250 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1252 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Parameter attribute */
+
+/* 1254 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 1256 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1258 */ NdrFcShort( 0x4bc ), /* Type Offset=1212 */
+
+ /* Return value */
+
+/* 1260 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1262 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1264 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_accessibleWithCaret */
+
+/* 1266 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1268 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1272 */ NdrFcShort( 0x2f ), /* 47 */
+/* 1274 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1276 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1278 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1280 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 1282 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1284 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1286 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1288 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1290 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 1292 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 1294 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1296 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Parameter caretOffset */
+
+/* 1298 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1300 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1302 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1304 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1306 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1308 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_relationTargetsOfType */
+
+/* 1310 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1312 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1316 */ NdrFcShort( 0x30 ), /* 48 */
+/* 1318 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 1320 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1322 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1324 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 1326 */ 0xa, /* 10 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 1328 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1330 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1332 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1334 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter type */
+
+/* 1336 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1338 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1340 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Parameter maxTargets */
+
+/* 1342 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1344 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1346 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter targets */
+
+/* 1348 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 1350 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1352 */ NdrFcShort( 0x4c6 ), /* Type Offset=1222 */
+
+ /* Parameter nTargets */
+
+/* 1354 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1356 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1358 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1360 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1362 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 1364 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_locationInParent */
+
+/* 1366 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1368 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1372 */ NdrFcShort( 0x3 ), /* 3 */
+/* 1374 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1376 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1378 */ NdrFcShort( 0x40 ), /* 64 */
+/* 1380 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 1382 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1384 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1386 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1388 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1390 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter x */
+
+/* 1392 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1394 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1396 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 1398 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1400 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1402 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1404 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1406 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1408 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_foreground */
+
+/* 1410 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1412 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1416 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1418 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1420 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1422 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1424 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1426 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1428 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1430 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1432 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1434 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter foreground */
+
+/* 1436 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1438 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1440 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1442 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1444 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1446 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_currentValue */
+
+/* 1448 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1450 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1454 */ NdrFcShort( 0x3 ), /* 3 */
+/* 1456 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1458 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1460 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1462 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1464 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1466 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1468 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1470 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1472 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter currentValue */
+
+/* 1474 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 1476 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1478 */ NdrFcShort( 0x4bc ), /* Type Offset=1212 */
+
+ /* Return value */
+
+/* 1480 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1482 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1484 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setCurrentValue */
+
+/* 1486 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1488 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1492 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1494 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1496 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1498 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1500 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1502 */ 0xa, /* 10 */
+ 0x85, /* Ext Flags: new corr desc, srv corr check, has big byval param */
+/* 1504 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1506 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1508 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1510 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter value */
+
+/* 1512 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 1514 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1516 */ NdrFcShort( 0x4ec ), /* Type Offset=1260 */
+
+ /* Return value */
+
+/* 1518 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1520 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1522 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_maximumValue */
+
+/* 1524 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1526 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1530 */ NdrFcShort( 0x5 ), /* 5 */
+/* 1532 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1534 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1536 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1538 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1540 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1542 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1544 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1546 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1548 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maximumValue */
+
+/* 1550 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 1552 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1554 */ NdrFcShort( 0x4bc ), /* Type Offset=1212 */
+
+ /* Return value */
+
+/* 1556 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1558 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1560 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_minimumValue */
+
+/* 1562 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1564 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1568 */ NdrFcShort( 0x6 ), /* 6 */
+/* 1570 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1572 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1574 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1576 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1578 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1580 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1582 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1584 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1586 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter minimumValue */
+
+/* 1588 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 1590 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1592 */ NdrFcShort( 0x4bc ), /* Type Offset=1212 */
+
+ /* Return value */
+
+/* 1594 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1596 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1598 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure copyText */
+
+
+ /* Procedure addSelection */
+
+/* 1600 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1602 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1606 */ NdrFcShort( 0x3 ), /* 3 */
+/* 1608 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1610 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1612 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1614 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 1616 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1618 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1620 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1622 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1624 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+
+ /* Parameter startOffset */
+
+/* 1626 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1628 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1630 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+
+ /* Parameter endOffset */
+
+/* 1632 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1634 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1636 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1638 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1640 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1642 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributes */
+
+/* 1644 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1646 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1650 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1652 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 1654 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1656 */ NdrFcShort( 0x40 ), /* 64 */
+/* 1658 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 1660 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1662 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1664 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1666 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1668 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 1670 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1672 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1674 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 1676 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1678 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1680 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 1682 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1684 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1686 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter textAttributes */
+
+/* 1688 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1690 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1692 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 1694 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1696 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 1698 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_characterExtents */
+
+/* 1700 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1702 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1706 */ NdrFcShort( 0x6 ), /* 6 */
+/* 1708 */ NdrFcShort( 0x40 ), /* X64 Stack size/offset = 64 */
+/* 1710 */ NdrFcShort( 0xe ), /* 14 */
+/* 1712 */ NdrFcShort( 0x78 ), /* 120 */
+/* 1714 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x7, /* 7 */
+/* 1716 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1718 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1720 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1722 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1724 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 1726 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1728 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1730 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter coordType */
+
+/* 1732 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1734 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1736 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 1738 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1740 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1742 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 1744 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1746 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1748 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter width */
+
+/* 1750 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1752 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 1754 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter height */
+
+/* 1756 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1758 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 1760 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1762 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1764 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 1766 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nRows */
+
+
+ /* Procedure get_nSelections */
+
+/* 1768 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1770 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1774 */ NdrFcShort( 0x7 ), /* 7 */
+/* 1776 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1778 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1780 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1782 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1784 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1786 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1788 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1790 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1792 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+
+ /* Parameter nSelections */
+
+/* 1794 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1796 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1798 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1800 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1802 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1804 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_offsetAtPoint */
+
+/* 1806 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1808 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1812 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1814 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 1816 */ NdrFcShort( 0x16 ), /* 22 */
+/* 1818 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1820 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x5, /* 5 */
+/* 1822 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1824 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1826 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1828 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1830 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter x */
+
+/* 1832 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1834 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1836 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 1838 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1840 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1842 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter coordType */
+
+/* 1844 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1846 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1848 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter offset */
+
+/* 1850 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1852 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1854 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1856 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1858 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 1860 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selection */
+
+/* 1862 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1864 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1868 */ NdrFcShort( 0x9 ), /* 9 */
+/* 1870 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 1872 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1874 */ NdrFcShort( 0x40 ), /* 64 */
+/* 1876 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 1878 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1880 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1882 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1884 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1886 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectionIndex */
+
+/* 1888 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1890 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1892 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 1894 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1896 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1898 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 1900 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1902 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1904 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1906 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1908 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1910 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_text */
+
+/* 1912 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1914 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1918 */ NdrFcShort( 0xa ), /* 10 */
+/* 1920 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 1922 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1924 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1926 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 1928 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1930 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1932 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1934 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1936 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 1938 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1940 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1942 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 1944 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1946 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1948 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 1950 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1952 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1954 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 1956 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1958 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1960 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_textBeforeOffset */
+
+/* 1962 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1964 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1968 */ NdrFcShort( 0xb ), /* 11 */
+/* 1970 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 1972 */ NdrFcShort( 0xe ), /* 14 */
+/* 1974 */ NdrFcShort( 0x40 ), /* 64 */
+/* 1976 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 1978 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1980 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1982 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1984 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1986 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 1988 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1990 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1992 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter boundaryType */
+
+/* 1994 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1996 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1998 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2000 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2002 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2004 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2006 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2008 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2010 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 2012 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2014 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2016 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 2018 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2020 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 2022 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_textAfterOffset */
+
+/* 2024 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2026 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2030 */ NdrFcShort( 0xc ), /* 12 */
+/* 2032 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 2034 */ NdrFcShort( 0xe ), /* 14 */
+/* 2036 */ NdrFcShort( 0x40 ), /* 64 */
+/* 2038 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 2040 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2042 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2044 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2046 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2048 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2050 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2052 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2054 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter boundaryType */
+
+/* 2056 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2058 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2060 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2062 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2064 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2066 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2068 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2070 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2072 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 2074 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2076 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2078 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 2080 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2082 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 2084 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_textAtOffset */
+
+/* 2086 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2088 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2092 */ NdrFcShort( 0xd ), /* 13 */
+/* 2094 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 2096 */ NdrFcShort( 0xe ), /* 14 */
+/* 2098 */ NdrFcShort( 0x40 ), /* 64 */
+/* 2100 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 2102 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2104 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2106 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2108 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2110 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2112 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2114 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2116 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter boundaryType */
+
+/* 2118 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2120 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2122 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2124 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2126 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2128 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2130 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2132 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2134 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 2136 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2138 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2140 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 2142 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2144 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 2146 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure removeSelection */
+
+/* 2148 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2150 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2154 */ NdrFcShort( 0xe ), /* 14 */
+/* 2156 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2158 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2160 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2162 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2164 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2166 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2168 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2170 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2172 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectionIndex */
+
+/* 2174 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2176 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2178 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2180 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2182 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2184 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setCaretOffset */
+
+/* 2186 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2188 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2192 */ NdrFcShort( 0xf ), /* 15 */
+/* 2194 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2196 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2198 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2200 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2202 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2204 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2206 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2208 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2210 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2212 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2214 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2216 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2218 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2220 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2222 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setSelection */
+
+/* 2224 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2226 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2230 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2232 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2234 */ NdrFcShort( 0x18 ), /* 24 */
+/* 2236 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2238 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 2240 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2242 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2244 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2246 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2248 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectionIndex */
+
+/* 2250 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2252 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2254 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2256 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2258 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2260 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2262 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2264 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2266 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2268 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2270 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2272 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nCharacters */
+
+/* 2274 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2276 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2280 */ NdrFcShort( 0x11 ), /* 17 */
+/* 2282 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2284 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2286 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2288 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2290 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2292 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2294 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2296 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2298 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nCharacters */
+
+/* 2300 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2302 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2304 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2306 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2308 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2310 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollSubstringTo */
+
+/* 2312 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2314 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2318 */ NdrFcShort( 0x12 ), /* 18 */
+/* 2320 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2322 */ NdrFcShort( 0x16 ), /* 22 */
+/* 2324 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2326 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 2328 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2330 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2332 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2334 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2336 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startIndex */
+
+/* 2338 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2340 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2342 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endIndex */
+
+/* 2344 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2346 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2348 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter scrollType */
+
+/* 2350 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2352 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2354 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2356 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2358 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2360 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollSubstringToPoint */
+
+/* 2362 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2364 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2368 */ NdrFcShort( 0x13 ), /* 19 */
+/* 2370 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 2372 */ NdrFcShort( 0x26 ), /* 38 */
+/* 2374 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2376 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x6, /* 6 */
+/* 2378 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2380 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2382 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2384 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2386 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startIndex */
+
+/* 2388 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2390 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2392 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endIndex */
+
+/* 2394 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2396 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2398 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter coordinateType */
+
+/* 2400 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2402 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2404 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 2406 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2408 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2410 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 2412 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2414 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2416 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2418 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2420 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 2422 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_newText */
+
+/* 2424 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2426 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2430 */ NdrFcShort( 0x14 ), /* 20 */
+/* 2432 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2434 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2436 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2438 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2440 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2442 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2444 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2446 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2448 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter newText */
+
+/* 2450 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 2452 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2454 */ NdrFcShort( 0x4fa ), /* Type Offset=1274 */
+
+ /* Return value */
+
+/* 2456 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2458 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2460 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_oldText */
+
+/* 2462 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2464 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2468 */ NdrFcShort( 0x15 ), /* 21 */
+/* 2470 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2472 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2474 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2476 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2478 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2480 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2482 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2484 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2486 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter oldText */
+
+/* 2488 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 2490 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2492 */ NdrFcShort( 0x4fa ), /* Type Offset=1274 */
+
+ /* Return value */
+
+/* 2494 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2496 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2498 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributeRange */
+
+/* 2500 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2502 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2506 */ NdrFcShort( 0x16 ), /* 22 */
+/* 2508 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 2510 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2512 */ NdrFcShort( 0x40 ), /* 64 */
+/* 2514 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 2516 */ 0xa, /* 10 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 2518 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2520 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2522 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2524 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2526 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2528 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2530 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter filter */
+
+/* 2532 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2534 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2536 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Parameter startOffset */
+
+/* 2538 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2540 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2542 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2544 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2546 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2548 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter attributeValues */
+
+/* 2550 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2552 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2554 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 2556 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2558 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 2560 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure deleteText */
+
+/* 2562 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2564 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2568 */ NdrFcShort( 0x4 ), /* 4 */
+/* 2570 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2572 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2574 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2576 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 2578 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2580 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2582 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2584 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2586 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2588 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2590 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2592 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2594 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2596 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2598 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2600 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2602 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2604 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure insertText */
+
+/* 2606 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2608 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2612 */ NdrFcShort( 0x5 ), /* 5 */
+/* 2614 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2616 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2618 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2620 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 2622 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2624 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2626 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2628 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2630 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2632 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2634 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2636 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 2638 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2640 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2642 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Return value */
+
+/* 2644 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2646 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2648 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure cutText */
+
+/* 2650 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2652 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2656 */ NdrFcShort( 0x6 ), /* 6 */
+/* 2658 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2660 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2662 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2664 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 2666 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2668 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2670 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2672 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2674 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2676 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2678 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2680 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2682 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2684 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2686 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2688 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2690 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2692 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure pasteText */
+
+/* 2694 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2696 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2700 */ NdrFcShort( 0x7 ), /* 7 */
+/* 2702 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2704 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2706 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2708 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2710 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2712 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2714 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2716 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2718 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2720 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2722 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2724 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2726 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2728 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2730 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure replaceText */
+
+/* 2732 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2734 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2738 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2740 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2742 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2744 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2746 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 2748 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2750 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2752 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2754 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2756 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2758 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2760 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2762 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2764 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2766 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2768 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 2770 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2772 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2774 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Return value */
+
+/* 2776 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2778 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2780 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setAttributes */
+
+/* 2782 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2784 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2788 */ NdrFcShort( 0x9 ), /* 9 */
+/* 2790 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2792 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2794 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2796 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 2798 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2800 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2802 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2804 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2806 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2808 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2810 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2812 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2814 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2816 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2818 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter attributes */
+
+/* 2820 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2822 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2824 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Return value */
+
+/* 2826 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2828 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2830 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_anchor */
+
+/* 2832 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2834 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2838 */ NdrFcShort( 0x9 ), /* 9 */
+/* 2840 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2842 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2844 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2846 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 2848 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2850 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2852 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2854 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2856 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 2858 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2860 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2862 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter anchor */
+
+/* 2864 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 2866 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2868 */ NdrFcShort( 0x4bc ), /* Type Offset=1212 */
+
+ /* Return value */
+
+/* 2870 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2872 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2874 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_anchorTarget */
+
+/* 2876 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2878 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2882 */ NdrFcShort( 0xa ), /* 10 */
+/* 2884 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2886 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2888 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2890 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 2892 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2894 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2896 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2898 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2900 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 2902 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2904 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2906 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter anchorTarget */
+
+/* 2908 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 2910 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2912 */ NdrFcShort( 0x4bc ), /* Type Offset=1212 */
+
+ /* Return value */
+
+/* 2914 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2916 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2918 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nRows */
+
+
+ /* Procedure get_startIndex */
+
+/* 2920 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2922 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2926 */ NdrFcShort( 0xb ), /* 11 */
+/* 2928 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2930 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2932 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2934 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2936 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2938 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2940 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2942 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2944 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+
+ /* Parameter index */
+
+/* 2946 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2948 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2950 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 2952 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2954 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2956 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedChildren */
+
+
+ /* Procedure get_endIndex */
+
+/* 2958 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2960 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2964 */ NdrFcShort( 0xc ), /* 12 */
+/* 2966 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2968 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2970 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2972 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2974 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2976 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2978 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2980 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2982 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellCount */
+
+
+ /* Parameter index */
+
+/* 2984 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2986 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2988 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 2990 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2992 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2994 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_valid */
+
+/* 2996 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2998 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3002 */ NdrFcShort( 0xd ), /* 13 */
+/* 3004 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3006 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3008 */ NdrFcShort( 0x21 ), /* 33 */
+/* 3010 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3012 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3014 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3016 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3018 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3020 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter valid */
+
+/* 3022 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3024 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3026 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3028 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3030 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3032 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nHyperlinks */
+
+/* 3034 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3036 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3040 */ NdrFcShort( 0x16 ), /* 22 */
+/* 3042 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3044 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3046 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3048 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3050 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3052 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3054 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3056 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3058 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter hyperlinkCount */
+
+/* 3060 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3062 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3064 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3066 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3068 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3070 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_hyperlink */
+
+/* 3072 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3074 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3078 */ NdrFcShort( 0x17 ), /* 23 */
+/* 3080 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3082 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3084 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3086 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3088 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3090 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3092 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3094 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3096 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 3098 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3100 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3102 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter hyperlink */
+
+/* 3104 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3106 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3108 */ NdrFcShort( 0x512 ), /* Type Offset=1298 */
+
+ /* Return value */
+
+/* 3110 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3112 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3114 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_hyperlinkIndex */
+
+/* 3116 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3118 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3122 */ NdrFcShort( 0x18 ), /* 24 */
+/* 3124 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3126 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3128 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3130 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 3132 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3134 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3136 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3138 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3140 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter charIndex */
+
+/* 3142 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3144 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3146 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter hyperlinkIndex */
+
+/* 3148 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3150 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3152 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3154 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3156 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3158 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_hyperlinks */
+
+/* 3160 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3162 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3166 */ NdrFcShort( 0x19 ), /* 25 */
+/* 3168 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3170 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3172 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3174 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3176 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3178 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3180 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3182 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3184 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter hyperlinks */
+
+/* 3186 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 3188 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3190 */ NdrFcShort( 0x528 ), /* Type Offset=1320 */
+
+ /* Parameter nHyperlinks */
+
+/* 3192 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3194 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3196 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3198 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3200 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3202 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_cellAt */
+
+
+ /* Procedure get_accessibleAt */
+
+/* 3204 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3206 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3210 */ NdrFcShort( 0x3 ), /* 3 */
+/* 3212 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 3214 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3216 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3218 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 3220 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3222 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3224 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3226 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3228 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+
+ /* Parameter row */
+
+/* 3230 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3232 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3234 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+
+ /* Parameter column */
+
+/* 3236 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3238 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3240 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter cell */
+
+
+ /* Parameter accessible */
+
+/* 3242 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3244 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3246 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 3248 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3250 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3252 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_caption */
+
+
+ /* Procedure get_caption */
+
+/* 3254 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3256 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3260 */ NdrFcShort( 0x4 ), /* 4 */
+/* 3262 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3264 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3266 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3268 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 3270 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3272 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3274 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3276 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3278 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+
+ /* Parameter accessible */
+
+/* 3280 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3282 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3284 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 3286 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3288 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3290 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_childIndex */
+
+/* 3292 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3294 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3298 */ NdrFcShort( 0x5 ), /* 5 */
+/* 3300 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 3302 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3304 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3306 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 3308 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3310 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3312 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3314 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3316 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowIndex */
+
+/* 3318 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3320 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3322 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnIndex */
+
+/* 3324 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3326 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3328 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter cellIndex */
+
+/* 3330 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3332 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3334 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3336 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3338 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3340 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnDescription */
+
+/* 3342 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3344 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3348 */ NdrFcShort( 0x6 ), /* 6 */
+/* 3350 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3352 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3354 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3356 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3358 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3360 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3362 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3364 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3366 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 3368 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3370 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3372 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 3374 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 3376 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3378 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 3380 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3382 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3384 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnExtentAt */
+
+/* 3386 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3388 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3392 */ NdrFcShort( 0x7 ), /* 7 */
+/* 3394 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 3396 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3398 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3400 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 3402 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3404 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3406 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3408 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3410 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 3412 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3414 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3416 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 3418 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3420 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3422 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nColumnsSpanned */
+
+/* 3424 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3426 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3428 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3430 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3432 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3434 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnHeader */
+
+/* 3436 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3438 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3442 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3444 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3446 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3448 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3450 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3452 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3454 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3456 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3458 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3460 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessibleTable */
+
+/* 3462 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3464 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3466 */ NdrFcShort( 0x546 ), /* Type Offset=1350 */
+
+ /* Parameter startingRowIndex */
+
+/* 3468 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3470 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3472 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3474 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3476 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3478 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnIndex */
+
+/* 3480 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3482 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3486 */ NdrFcShort( 0x9 ), /* 9 */
+/* 3488 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3490 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3492 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3494 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 3496 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3498 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3500 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3502 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3504 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellIndex */
+
+/* 3506 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3508 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3510 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnIndex */
+
+/* 3512 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3514 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3516 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3518 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3520 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3522 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedRows */
+
+
+ /* Procedure get_nColumns */
+
+/* 3524 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3526 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3530 */ NdrFcShort( 0xa ), /* 10 */
+/* 3532 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3534 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3536 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3538 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3540 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3542 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3544 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3546 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3548 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+
+ /* Parameter columnCount */
+
+/* 3550 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3552 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3554 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 3556 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3558 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3560 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedColumns */
+
+/* 3562 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3564 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3568 */ NdrFcShort( 0xd ), /* 13 */
+/* 3570 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3572 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3574 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3576 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3578 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3580 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3582 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3584 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3586 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnCount */
+
+/* 3588 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3590 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3592 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3594 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3596 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3598 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedRows */
+
+/* 3600 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3602 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3606 */ NdrFcShort( 0xe ), /* 14 */
+/* 3608 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3610 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3612 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3614 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3616 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3618 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3620 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3622 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3624 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+/* 3626 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3628 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3630 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3632 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3634 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3636 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowDescription */
+
+/* 3638 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3640 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3644 */ NdrFcShort( 0xf ), /* 15 */
+/* 3646 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3648 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3650 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3652 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3654 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3656 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3658 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3660 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3662 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 3664 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3666 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3668 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 3670 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 3672 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3674 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 3676 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3678 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3680 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowExtentAt */
+
+/* 3682 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3684 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3688 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3690 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 3692 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3694 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3696 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 3698 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3700 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3702 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3704 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3706 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 3708 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3710 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3712 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 3714 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3716 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3718 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nRowsSpanned */
+
+/* 3720 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3722 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3724 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3726 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3728 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3730 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowHeader */
+
+/* 3732 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3734 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3738 */ NdrFcShort( 0x11 ), /* 17 */
+/* 3740 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3742 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3744 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3746 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3748 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3750 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3752 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3754 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3756 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessibleTable */
+
+/* 3758 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3760 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3762 */ NdrFcShort( 0x546 ), /* Type Offset=1350 */
+
+ /* Parameter startingColumnIndex */
+
+/* 3764 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3766 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3768 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3770 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3772 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3774 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowIndex */
+
+/* 3776 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3778 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3782 */ NdrFcShort( 0x12 ), /* 18 */
+/* 3784 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3786 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3788 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3790 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 3792 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3794 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3796 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3798 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3800 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellIndex */
+
+/* 3802 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3804 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3806 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rowIndex */
+
+/* 3808 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3810 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3812 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3814 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3816 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3818 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedChildren */
+
+/* 3820 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3822 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3826 */ NdrFcShort( 0x13 ), /* 19 */
+/* 3828 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 3830 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3832 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3834 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 3836 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3838 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3840 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3842 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3844 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxChildren */
+
+/* 3846 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3848 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3850 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter children */
+
+/* 3852 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 3854 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3856 */ NdrFcShort( 0x55c ), /* Type Offset=1372 */
+
+ /* Parameter nChildren */
+
+/* 3858 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3860 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3862 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3864 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3866 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3868 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedColumns */
+
+/* 3870 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3872 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3876 */ NdrFcShort( 0x14 ), /* 20 */
+/* 3878 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 3880 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3882 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3884 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 3886 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3888 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3890 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3892 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3894 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxColumns */
+
+/* 3896 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3898 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3900 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columns */
+
+/* 3902 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 3904 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3906 */ NdrFcShort( 0x55c ), /* Type Offset=1372 */
+
+ /* Parameter nColumns */
+
+/* 3908 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3910 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3912 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3914 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3916 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3918 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedRows */
+
+/* 3920 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3922 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3926 */ NdrFcShort( 0x15 ), /* 21 */
+/* 3928 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 3930 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3932 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3934 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 3936 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3938 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3940 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3942 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3944 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxRows */
+
+/* 3946 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3948 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3950 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rows */
+
+/* 3952 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 3954 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3956 */ NdrFcShort( 0x55c ), /* Type Offset=1372 */
+
+ /* Parameter nRows */
+
+/* 3958 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3960 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3962 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3964 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3966 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3968 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_summary */
+
+/* 3970 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3972 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3976 */ NdrFcShort( 0x16 ), /* 22 */
+/* 3978 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3980 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3982 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3984 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 3986 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3988 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3990 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3992 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3994 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 3996 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3998 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4000 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 4002 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4004 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4006 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isColumnSelected */
+
+/* 4008 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4010 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4014 */ NdrFcShort( 0x17 ), /* 23 */
+/* 4016 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4018 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4020 */ NdrFcShort( 0x21 ), /* 33 */
+/* 4022 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 4024 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4026 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4028 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4030 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4032 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4034 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4036 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4038 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4040 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4042 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4044 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4046 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4048 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4050 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isRowSelected */
+
+/* 4052 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4054 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4058 */ NdrFcShort( 0x18 ), /* 24 */
+/* 4060 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4062 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4064 */ NdrFcShort( 0x21 ), /* 33 */
+/* 4066 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 4068 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4070 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4072 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4074 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4076 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4078 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4080 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4082 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4084 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4086 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4088 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4090 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4092 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4094 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isSelected */
+
+/* 4096 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4098 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4102 */ NdrFcShort( 0x19 ), /* 25 */
+/* 4104 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 4106 */ NdrFcShort( 0x10 ), /* 16 */
+/* 4108 */ NdrFcShort( 0x21 ), /* 33 */
+/* 4110 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 4112 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4114 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4116 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4118 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4120 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4122 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4124 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4126 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 4128 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4130 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4132 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4134 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4136 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4138 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4140 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4142 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4144 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectRow */
+
+/* 4146 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4148 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4152 */ NdrFcShort( 0x1a ), /* 26 */
+/* 4154 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4156 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4158 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4160 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4162 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4164 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4166 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4168 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4170 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4172 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4174 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4176 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4178 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4180 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4182 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectColumn */
+
+/* 4184 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4186 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4190 */ NdrFcShort( 0x1b ), /* 27 */
+/* 4192 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4194 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4196 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4198 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4200 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4202 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4204 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4206 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4208 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4210 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4212 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4214 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4216 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4218 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4220 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectRow */
+
+/* 4222 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4224 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4228 */ NdrFcShort( 0x1c ), /* 28 */
+/* 4230 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4232 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4234 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4236 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4238 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4240 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4242 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4244 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4246 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4248 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4250 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4252 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4254 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4256 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4258 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectColumn */
+
+/* 4260 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4262 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4266 */ NdrFcShort( 0x1d ), /* 29 */
+/* 4268 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4270 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4272 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4274 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4276 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4278 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4280 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4282 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4284 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4286 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4288 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4290 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4292 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4294 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4296 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowColumnExtentsAtIndex */
+
+/* 4298 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4300 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4304 */ NdrFcShort( 0x1e ), /* 30 */
+/* 4306 */ NdrFcShort( 0x40 ), /* X64 Stack size/offset = 64 */
+/* 4308 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4310 */ NdrFcShort( 0x91 ), /* 145 */
+/* 4312 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x7, /* 7 */
+/* 4314 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4316 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4318 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4320 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4322 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 4324 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4326 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4328 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter row */
+
+/* 4330 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4332 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4334 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 4336 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4338 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4340 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rowExtents */
+
+/* 4342 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4344 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4346 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnExtents */
+
+/* 4348 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4350 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 4352 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4354 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4356 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 4358 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4360 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4362 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 4364 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_modelChange */
+
+/* 4366 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4368 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4372 */ NdrFcShort( 0x1f ), /* 31 */
+/* 4374 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4376 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4378 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4380 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4382 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4384 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4386 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4388 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4390 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter modelChange */
+
+/* 4392 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 4394 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4396 */ NdrFcShort( 0x57a ), /* Type Offset=1402 */
+
+ /* Return value */
+
+/* 4398 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4400 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4402 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowExtent */
+
+
+ /* Procedure get_nColumns */
+
+/* 4404 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4406 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4410 */ NdrFcShort( 0x6 ), /* 6 */
+/* 4412 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4414 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4416 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4418 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4420 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4422 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4424 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4426 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4428 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nRowsSpanned */
+
+
+ /* Parameter columnCount */
+
+/* 4430 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4432 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4434 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 4436 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4438 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4440 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowIndex */
+
+
+ /* Procedure get_nSelectedCells */
+
+/* 4442 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4444 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4448 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4450 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4452 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4454 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4456 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4458 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4460 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4462 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4464 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4466 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowIndex */
+
+
+ /* Parameter cellCount */
+
+/* 4468 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4470 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4472 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 4474 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4476 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4478 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedColumns */
+
+/* 4480 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4482 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4486 */ NdrFcShort( 0x9 ), /* 9 */
+/* 4488 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4490 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4492 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4494 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4496 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4498 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4500 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4502 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4504 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnCount */
+
+/* 4506 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4508 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4510 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4512 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4514 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4516 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowDescription */
+
+/* 4518 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4520 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4524 */ NdrFcShort( 0xb ), /* 11 */
+/* 4526 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4528 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4530 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4532 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4534 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4536 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4538 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4540 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4542 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4544 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4546 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4548 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 4550 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 4552 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4554 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 4556 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4558 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4560 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedCells */
+
+/* 4562 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4564 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4568 */ NdrFcShort( 0xc ), /* 12 */
+/* 4570 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4572 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4574 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4576 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4578 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4580 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4582 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4584 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4586 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cells */
+
+/* 4588 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 4590 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4592 */ NdrFcShort( 0x588 ), /* Type Offset=1416 */
+
+ /* Parameter nSelectedCells */
+
+/* 4594 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4596 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4598 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4600 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4602 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4604 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedColumns */
+
+/* 4606 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4608 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4612 */ NdrFcShort( 0xd ), /* 13 */
+/* 4614 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4616 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4618 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4620 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4622 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4624 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4626 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4628 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4630 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectedColumns */
+
+/* 4632 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 4634 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4636 */ NdrFcShort( 0x5a6 ), /* Type Offset=1446 */
+
+ /* Parameter nColumns */
+
+/* 4638 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4640 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4642 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4644 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4646 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4648 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedRows */
+
+/* 4650 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4652 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4656 */ NdrFcShort( 0xe ), /* 14 */
+/* 4658 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4660 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4662 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4664 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4666 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4668 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4670 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4672 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4674 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectedRows */
+
+/* 4676 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 4678 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4680 */ NdrFcShort( 0x5a6 ), /* Type Offset=1446 */
+
+ /* Parameter nRows */
+
+/* 4682 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4684 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4686 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4688 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4690 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4692 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_summary */
+
+/* 4694 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4696 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4700 */ NdrFcShort( 0xf ), /* 15 */
+/* 4702 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4704 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4706 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4708 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4710 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4712 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4714 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4716 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4718 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 4720 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 4722 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4724 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 4726 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4728 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4730 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isColumnSelected */
+
+/* 4732 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4734 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4738 */ NdrFcShort( 0x10 ), /* 16 */
+/* 4740 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4742 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4744 */ NdrFcShort( 0x21 ), /* 33 */
+/* 4746 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 4748 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4750 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4752 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4754 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4756 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4758 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4760 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4762 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4764 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4766 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4768 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4770 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4772 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4774 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isRowSelected */
+
+/* 4776 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4778 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4782 */ NdrFcShort( 0x11 ), /* 17 */
+/* 4784 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4786 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4788 */ NdrFcShort( 0x21 ), /* 33 */
+/* 4790 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 4792 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4794 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4796 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4798 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4800 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4802 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4804 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4806 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4808 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4810 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4812 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4814 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4816 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4818 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectRow */
+
+/* 4820 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4822 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4826 */ NdrFcShort( 0x12 ), /* 18 */
+/* 4828 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4830 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4832 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4834 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4836 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4838 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4840 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4842 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4844 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4846 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4848 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4850 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4852 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4854 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4856 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectColumn */
+
+/* 4858 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4860 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4864 */ NdrFcShort( 0x13 ), /* 19 */
+/* 4866 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4868 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4870 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4872 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4874 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4876 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4878 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4880 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4882 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4884 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4886 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4888 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4890 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4892 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4894 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectRow */
+
+/* 4896 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4898 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4902 */ NdrFcShort( 0x14 ), /* 20 */
+/* 4904 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4906 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4908 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4910 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4912 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4914 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4916 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4918 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4920 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4922 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4924 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4926 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4928 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4930 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4932 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectColumn */
+
+/* 4934 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4936 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4940 */ NdrFcShort( 0x15 ), /* 21 */
+/* 4942 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4944 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4946 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4948 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4950 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4952 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4954 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4956 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4958 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4960 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4962 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4964 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4966 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4968 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4970 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_modelChange */
+
+/* 4972 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4974 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4978 */ NdrFcShort( 0x16 ), /* 22 */
+/* 4980 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4982 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4984 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4986 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4988 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4990 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4992 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4994 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4996 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter modelChange */
+
+/* 4998 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 5000 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5002 */ NdrFcShort( 0x57a ), /* Type Offset=1402 */
+
+ /* Return value */
+
+/* 5004 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5006 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5008 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnHeaderCells */
+
+/* 5010 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5012 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5016 */ NdrFcShort( 0x4 ), /* 4 */
+/* 5018 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 5020 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5022 */ NdrFcShort( 0x24 ), /* 36 */
+/* 5024 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 5026 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 5028 */ NdrFcShort( 0x1 ), /* 1 */
+/* 5030 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5032 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5034 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellAccessibles */
+
+/* 5036 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 5038 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5040 */ NdrFcShort( 0x588 ), /* Type Offset=1416 */
+
+ /* Parameter nColumnHeaderCells */
+
+/* 5042 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5044 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5046 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 5048 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5050 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5052 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowHeaderCells */
+
+/* 5054 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5056 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5060 */ NdrFcShort( 0x7 ), /* 7 */
+/* 5062 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 5064 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5066 */ NdrFcShort( 0x24 ), /* 36 */
+/* 5068 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 5070 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 5072 */ NdrFcShort( 0x1 ), /* 1 */
+/* 5074 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5076 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5078 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellAccessibles */
+
+/* 5080 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 5082 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5084 */ NdrFcShort( 0x588 ), /* Type Offset=1416 */
+
+ /* Parameter nRowHeaderCells */
+
+/* 5086 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5088 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5090 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 5092 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5094 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5096 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isSelected */
+
+/* 5098 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5100 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5104 */ NdrFcShort( 0x9 ), /* 9 */
+/* 5106 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5108 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5110 */ NdrFcShort( 0x21 ), /* 33 */
+/* 5112 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 5114 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5116 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5118 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5120 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5122 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter isSelected */
+
+/* 5124 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5126 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5128 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 5130 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5132 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5134 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowColumnExtents */
+
+/* 5136 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5138 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5142 */ NdrFcShort( 0xa ), /* 10 */
+/* 5144 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 5146 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5148 */ NdrFcShort( 0x91 ), /* 145 */
+/* 5150 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x6, /* 6 */
+/* 5152 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5154 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5156 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5158 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5160 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 5162 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5164 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5166 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 5168 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5170 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5172 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rowExtents */
+
+/* 5174 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5176 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5178 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnExtents */
+
+/* 5180 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5182 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 5184 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 5186 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5188 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 5190 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 5192 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5194 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 5196 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_table */
+
+/* 5198 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5200 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5204 */ NdrFcShort( 0xb ), /* 11 */
+/* 5206 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5208 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5210 */ NdrFcShort( 0x8 ), /* 8 */
+/* 5212 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 5214 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5216 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5218 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5220 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5222 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter table */
+
+/* 5224 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 5226 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5228 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 5230 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5232 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5234 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_imagePosition */
+
+/* 5236 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5238 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5242 */ NdrFcShort( 0x4 ), /* 4 */
+/* 5244 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 5246 */ NdrFcShort( 0x6 ), /* 6 */
+/* 5248 */ NdrFcShort( 0x40 ), /* 64 */
+/* 5250 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 5252 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5254 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5256 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5258 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5260 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter coordinateType */
+
+/* 5262 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 5264 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5266 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 5268 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5270 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5272 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 5274 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5276 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5278 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 5280 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5282 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 5284 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_imageSize */
+
+/* 5286 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5288 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5292 */ NdrFcShort( 0x5 ), /* 5 */
+/* 5294 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 5296 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5298 */ NdrFcShort( 0x40 ), /* 64 */
+/* 5300 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 5302 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5304 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5306 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5308 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5310 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter height */
+
+/* 5312 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5314 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5316 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter width */
+
+/* 5318 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5320 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5322 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 5324 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5326 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5328 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_toolkitName */
+
+/* 5330 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5332 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5336 */ NdrFcShort( 0x5 ), /* 5 */
+/* 5338 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5340 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5342 */ NdrFcShort( 0x8 ), /* 8 */
+/* 5344 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 5346 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 5348 */ NdrFcShort( 0x1 ), /* 1 */
+/* 5350 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5352 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5354 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter name */
+
+/* 5356 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 5358 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5360 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 5362 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5364 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5366 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_toolkitVersion */
+
+/* 5368 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5370 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5374 */ NdrFcShort( 0x6 ), /* 6 */
+/* 5376 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5378 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5380 */ NdrFcShort( 0x8 ), /* 8 */
+/* 5382 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 5384 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 5386 */ NdrFcShort( 0x1 ), /* 1 */
+/* 5388 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5390 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5392 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter version */
+
+/* 5394 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 5396 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5398 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 5400 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5402 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5404 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_anchorTarget */
+
+/* 5406 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5408 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5412 */ NdrFcShort( 0x3 ), /* 3 */
+/* 5414 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5416 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5418 */ NdrFcShort( 0x8 ), /* 8 */
+/* 5420 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 5422 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5424 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5426 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5428 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5430 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 5432 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 5434 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5436 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 5438 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5440 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5442 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const ia2_api_all_MIDL_TYPE_FORMAT_STRING ia2_api_all__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
+/* 10 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 12 */ NdrFcShort( 0x2 ), /* 2 */
+/* 14 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 20 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 22 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 24 */ NdrFcShort( 0x8 ), /* 8 */
+/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 30 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 32 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x8 ), /* 8 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
+/* 42 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 44 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 46 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 48 */ NdrFcShort( 0x2 ), /* Offset= 2 (50) */
+/* 50 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 52 */ NdrFcLong( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 62 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 64 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 66 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 68 */
+ 0x11, 0x0, /* FC_RP */
+/* 70 */ NdrFcShort( 0x2 ), /* Offset= 2 (72) */
+/* 72 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 74 */ NdrFcShort( 0x0 ), /* 0 */
+/* 76 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 78 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 80 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 82 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 86 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 88 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 90 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (50) */
+/* 92 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 94 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 96 */ NdrFcShort( 0x2 ), /* Offset= 2 (98) */
+/* 98 */
+ 0x13, 0x0, /* FC_OP */
+/* 100 */ NdrFcShort( 0x2 ), /* Offset= 2 (102) */
+/* 102 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 106 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 108 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 110 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 112 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 114 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 116 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 118 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 120 */ NdrFcShort( 0xffa8 ), /* Offset= -88 (32) */
+/* 122 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 124 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 126 */ NdrFcShort( 0x2 ), /* Offset= 2 (128) */
+/* 128 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 130 */ NdrFcLong( 0x7cdf86ee ), /* 2095023854 */
+/* 134 */ NdrFcShort( 0xc3da ), /* -15398 */
+/* 136 */ NdrFcShort( 0x496a ), /* 18794 */
+/* 138 */ 0xbd, /* 189 */
+ 0xa4, /* 164 */
+/* 140 */ 0x28, /* 40 */
+ 0x1b, /* 27 */
+/* 142 */ 0x33, /* 51 */
+ 0x6e, /* 110 */
+/* 144 */ 0x1f, /* 31 */
+ 0xdc, /* 220 */
+/* 146 */
+ 0x11, 0x0, /* FC_RP */
+/* 148 */ NdrFcShort( 0x2 ), /* Offset= 2 (150) */
+/* 150 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 152 */ NdrFcShort( 0x0 ), /* 0 */
+/* 154 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 156 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 158 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 160 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 162 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 164 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 166 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 168 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (128) */
+/* 170 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 172 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 174 */ NdrFcShort( 0x2 ), /* Offset= 2 (176) */
+/* 176 */
+ 0x13, 0x0, /* FC_OP */
+/* 178 */ NdrFcShort( 0x2 ), /* Offset= 2 (180) */
+/* 180 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 182 */ NdrFcShort( 0x0 ), /* 0 */
+/* 184 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 186 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 188 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 190 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 192 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 194 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 196 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 198 */ NdrFcShort( 0xff5a ), /* Offset= -166 (32) */
+/* 200 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 202 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 204 */ NdrFcShort( 0x1a ), /* Offset= 26 (230) */
+/* 206 */
+ 0x13, 0x0, /* FC_OP */
+/* 208 */ NdrFcShort( 0x2 ), /* Offset= 2 (210) */
+/* 210 */
+ 0x2a, /* FC_ENCAPSULATED_UNION */
+ 0x48, /* 72 */
+/* 212 */ NdrFcShort( 0x4 ), /* 4 */
+/* 214 */ NdrFcShort( 0x2 ), /* 2 */
+/* 216 */ NdrFcLong( 0x48746457 ), /* 1215587415 */
+/* 220 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 222 */ NdrFcLong( 0x52746457 ), /* 1383359575 */
+/* 226 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 228 */ NdrFcShort( 0xffff ), /* Offset= -1 (227) */
+/* 230 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 232 */ NdrFcShort( 0x1 ), /* 1 */
+/* 234 */ NdrFcShort( 0x8 ), /* 8 */
+/* 236 */ NdrFcShort( 0x0 ), /* 0 */
+/* 238 */ NdrFcShort( 0xffe0 ), /* Offset= -32 (206) */
+/* 240 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 242 */ NdrFcShort( 0x2 ), /* Offset= 2 (244) */
+/* 244 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 246 */ NdrFcShort( 0x18 ), /* 24 */
+/* 248 */ NdrFcShort( 0x0 ), /* 0 */
+/* 250 */ NdrFcShort( 0x0 ), /* Offset= 0 (250) */
+/* 252 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 254 */ NdrFcShort( 0xff22 ), /* Offset= -222 (32) */
+/* 256 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 258 */ NdrFcShort( 0xff1e ), /* Offset= -226 (32) */
+/* 260 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 262 */ NdrFcShort( 0xff1a ), /* Offset= -230 (32) */
+/* 264 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 266 */
+ 0x12, 0x0, /* FC_UP */
+/* 268 */ NdrFcShort( 0xff0a ), /* Offset= -246 (22) */
+/* 270 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 272 */ NdrFcShort( 0x0 ), /* 0 */
+/* 274 */ NdrFcShort( 0x8 ), /* 8 */
+/* 276 */ NdrFcShort( 0x0 ), /* 0 */
+/* 278 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (266) */
+/* 280 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 282 */ NdrFcShort( 0x3a2 ), /* Offset= 930 (1212) */
+/* 284 */
+ 0x13, 0x0, /* FC_OP */
+/* 286 */ NdrFcShort( 0x38a ), /* Offset= 906 (1192) */
+/* 288 */
+ 0x2b, /* FC_NON_ENCAPSULATED_UNION */
+ 0x9, /* FC_ULONG */
+/* 290 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 292 */ NdrFcShort( 0xfff8 ), /* -8 */
+/* 294 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 296 */ NdrFcShort( 0x2 ), /* Offset= 2 (298) */
+/* 298 */ NdrFcShort( 0x10 ), /* 16 */
+/* 300 */ NdrFcShort( 0x2f ), /* 47 */
+/* 302 */ NdrFcLong( 0x14 ), /* 20 */
+/* 306 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 308 */ NdrFcLong( 0x3 ), /* 3 */
+/* 312 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 314 */ NdrFcLong( 0x11 ), /* 17 */
+/* 318 */ NdrFcShort( 0x8001 ), /* Simple arm type: FC_BYTE */
+/* 320 */ NdrFcLong( 0x2 ), /* 2 */
+/* 324 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 326 */ NdrFcLong( 0x4 ), /* 4 */
+/* 330 */ NdrFcShort( 0x800a ), /* Simple arm type: FC_FLOAT */
+/* 332 */ NdrFcLong( 0x5 ), /* 5 */
+/* 336 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 338 */ NdrFcLong( 0xb ), /* 11 */
+/* 342 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 344 */ NdrFcLong( 0xa ), /* 10 */
+/* 348 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 350 */ NdrFcLong( 0x6 ), /* 6 */
+/* 354 */ NdrFcShort( 0xe8 ), /* Offset= 232 (586) */
+/* 356 */ NdrFcLong( 0x7 ), /* 7 */
+/* 360 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 362 */ NdrFcLong( 0x8 ), /* 8 */
+/* 366 */ NdrFcShort( 0xfe98 ), /* Offset= -360 (6) */
+/* 368 */ NdrFcLong( 0xd ), /* 13 */
+/* 372 */ NdrFcShort( 0xfebe ), /* Offset= -322 (50) */
+/* 374 */ NdrFcLong( 0x9 ), /* 9 */
+/* 378 */ NdrFcShort( 0xd6 ), /* Offset= 214 (592) */
+/* 380 */ NdrFcLong( 0x2000 ), /* 8192 */
+/* 384 */ NdrFcShort( 0xe2 ), /* Offset= 226 (610) */
+/* 386 */ NdrFcLong( 0x24 ), /* 36 */
+/* 390 */ NdrFcShort( 0x2d8 ), /* Offset= 728 (1118) */
+/* 392 */ NdrFcLong( 0x4024 ), /* 16420 */
+/* 396 */ NdrFcShort( 0x2d2 ), /* Offset= 722 (1118) */
+/* 398 */ NdrFcLong( 0x4011 ), /* 16401 */
+/* 402 */ NdrFcShort( 0x2d0 ), /* Offset= 720 (1122) */
+/* 404 */ NdrFcLong( 0x4002 ), /* 16386 */
+/* 408 */ NdrFcShort( 0x2ce ), /* Offset= 718 (1126) */
+/* 410 */ NdrFcLong( 0x4003 ), /* 16387 */
+/* 414 */ NdrFcShort( 0x2cc ), /* Offset= 716 (1130) */
+/* 416 */ NdrFcLong( 0x4014 ), /* 16404 */
+/* 420 */ NdrFcShort( 0x2ca ), /* Offset= 714 (1134) */
+/* 422 */ NdrFcLong( 0x4004 ), /* 16388 */
+/* 426 */ NdrFcShort( 0x2c8 ), /* Offset= 712 (1138) */
+/* 428 */ NdrFcLong( 0x4005 ), /* 16389 */
+/* 432 */ NdrFcShort( 0x2c6 ), /* Offset= 710 (1142) */
+/* 434 */ NdrFcLong( 0x400b ), /* 16395 */
+/* 438 */ NdrFcShort( 0x2b0 ), /* Offset= 688 (1126) */
+/* 440 */ NdrFcLong( 0x400a ), /* 16394 */
+/* 444 */ NdrFcShort( 0x2ae ), /* Offset= 686 (1130) */
+/* 446 */ NdrFcLong( 0x4006 ), /* 16390 */
+/* 450 */ NdrFcShort( 0x2b8 ), /* Offset= 696 (1146) */
+/* 452 */ NdrFcLong( 0x4007 ), /* 16391 */
+/* 456 */ NdrFcShort( 0x2ae ), /* Offset= 686 (1142) */
+/* 458 */ NdrFcLong( 0x4008 ), /* 16392 */
+/* 462 */ NdrFcShort( 0x2b0 ), /* Offset= 688 (1150) */
+/* 464 */ NdrFcLong( 0x400d ), /* 16397 */
+/* 468 */ NdrFcShort( 0x2ae ), /* Offset= 686 (1154) */
+/* 470 */ NdrFcLong( 0x4009 ), /* 16393 */
+/* 474 */ NdrFcShort( 0x2ac ), /* Offset= 684 (1158) */
+/* 476 */ NdrFcLong( 0x6000 ), /* 24576 */
+/* 480 */ NdrFcShort( 0x2aa ), /* Offset= 682 (1162) */
+/* 482 */ NdrFcLong( 0x400c ), /* 16396 */
+/* 486 */ NdrFcShort( 0x2a8 ), /* Offset= 680 (1166) */
+/* 488 */ NdrFcLong( 0x10 ), /* 16 */
+/* 492 */ NdrFcShort( 0x8002 ), /* Simple arm type: FC_CHAR */
+/* 494 */ NdrFcLong( 0x12 ), /* 18 */
+/* 498 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 500 */ NdrFcLong( 0x13 ), /* 19 */
+/* 504 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 506 */ NdrFcLong( 0x15 ), /* 21 */
+/* 510 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 512 */ NdrFcLong( 0x16 ), /* 22 */
+/* 516 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 518 */ NdrFcLong( 0x17 ), /* 23 */
+/* 522 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 524 */ NdrFcLong( 0xe ), /* 14 */
+/* 528 */ NdrFcShort( 0x286 ), /* Offset= 646 (1174) */
+/* 530 */ NdrFcLong( 0x400e ), /* 16398 */
+/* 534 */ NdrFcShort( 0x28a ), /* Offset= 650 (1184) */
+/* 536 */ NdrFcLong( 0x4010 ), /* 16400 */
+/* 540 */ NdrFcShort( 0x288 ), /* Offset= 648 (1188) */
+/* 542 */ NdrFcLong( 0x4012 ), /* 16402 */
+/* 546 */ NdrFcShort( 0x244 ), /* Offset= 580 (1126) */
+/* 548 */ NdrFcLong( 0x4013 ), /* 16403 */
+/* 552 */ NdrFcShort( 0x242 ), /* Offset= 578 (1130) */
+/* 554 */ NdrFcLong( 0x4015 ), /* 16405 */
+/* 558 */ NdrFcShort( 0x240 ), /* Offset= 576 (1134) */
+/* 560 */ NdrFcLong( 0x4016 ), /* 16406 */
+/* 564 */ NdrFcShort( 0x236 ), /* Offset= 566 (1130) */
+/* 566 */ NdrFcLong( 0x4017 ), /* 16407 */
+/* 570 */ NdrFcShort( 0x230 ), /* Offset= 560 (1130) */
+/* 572 */ NdrFcLong( 0x0 ), /* 0 */
+/* 576 */ NdrFcShort( 0x0 ), /* Offset= 0 (576) */
+/* 578 */ NdrFcLong( 0x1 ), /* 1 */
+/* 582 */ NdrFcShort( 0x0 ), /* Offset= 0 (582) */
+/* 584 */ NdrFcShort( 0xffff ), /* Offset= -1 (583) */
+/* 586 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 588 */ NdrFcShort( 0x8 ), /* 8 */
+/* 590 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 592 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 594 */ NdrFcLong( 0x20400 ), /* 132096 */
+/* 598 */ NdrFcShort( 0x0 ), /* 0 */
+/* 600 */ NdrFcShort( 0x0 ), /* 0 */
+/* 602 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 604 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 606 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 608 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 610 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 612 */ NdrFcShort( 0x2 ), /* Offset= 2 (614) */
+/* 614 */
+ 0x13, 0x0, /* FC_OP */
+/* 616 */ NdrFcShort( 0x1e4 ), /* Offset= 484 (1100) */
+/* 618 */
+ 0x2a, /* FC_ENCAPSULATED_UNION */
+ 0x89, /* 137 */
+/* 620 */ NdrFcShort( 0x20 ), /* 32 */
+/* 622 */ NdrFcShort( 0xa ), /* 10 */
+/* 624 */ NdrFcLong( 0x8 ), /* 8 */
+/* 628 */ NdrFcShort( 0x50 ), /* Offset= 80 (708) */
+/* 630 */ NdrFcLong( 0xd ), /* 13 */
+/* 634 */ NdrFcShort( 0x70 ), /* Offset= 112 (746) */
+/* 636 */ NdrFcLong( 0x9 ), /* 9 */
+/* 640 */ NdrFcShort( 0x90 ), /* Offset= 144 (784) */
+/* 642 */ NdrFcLong( 0xc ), /* 12 */
+/* 646 */ NdrFcShort( 0xb0 ), /* Offset= 176 (822) */
+/* 648 */ NdrFcLong( 0x24 ), /* 36 */
+/* 652 */ NdrFcShort( 0x102 ), /* Offset= 258 (910) */
+/* 654 */ NdrFcLong( 0x800d ), /* 32781 */
+/* 658 */ NdrFcShort( 0x11e ), /* Offset= 286 (944) */
+/* 660 */ NdrFcLong( 0x10 ), /* 16 */
+/* 664 */ NdrFcShort( 0x138 ), /* Offset= 312 (976) */
+/* 666 */ NdrFcLong( 0x2 ), /* 2 */
+/* 670 */ NdrFcShort( 0x14e ), /* Offset= 334 (1004) */
+/* 672 */ NdrFcLong( 0x3 ), /* 3 */
+/* 676 */ NdrFcShort( 0x164 ), /* Offset= 356 (1032) */
+/* 678 */ NdrFcLong( 0x14 ), /* 20 */
+/* 682 */ NdrFcShort( 0x17a ), /* Offset= 378 (1060) */
+/* 684 */ NdrFcShort( 0xffff ), /* Offset= -1 (683) */
+/* 686 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 688 */ NdrFcShort( 0x0 ), /* 0 */
+/* 690 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 692 */ NdrFcShort( 0x0 ), /* 0 */
+/* 694 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 696 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 700 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 702 */
+ 0x13, 0x0, /* FC_OP */
+/* 704 */ NdrFcShort( 0xfd56 ), /* Offset= -682 (22) */
+/* 706 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 708 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 710 */ NdrFcShort( 0x10 ), /* 16 */
+/* 712 */ NdrFcShort( 0x0 ), /* 0 */
+/* 714 */ NdrFcShort( 0x6 ), /* Offset= 6 (720) */
+/* 716 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 718 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 720 */
+ 0x11, 0x0, /* FC_RP */
+/* 722 */ NdrFcShort( 0xffdc ), /* Offset= -36 (686) */
+/* 724 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 726 */ NdrFcShort( 0x0 ), /* 0 */
+/* 728 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 730 */ NdrFcShort( 0x0 ), /* 0 */
+/* 732 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 734 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 738 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 740 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 742 */ NdrFcShort( 0xfd4c ), /* Offset= -692 (50) */
+/* 744 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 746 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 748 */ NdrFcShort( 0x10 ), /* 16 */
+/* 750 */ NdrFcShort( 0x0 ), /* 0 */
+/* 752 */ NdrFcShort( 0x6 ), /* Offset= 6 (758) */
+/* 754 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 756 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 758 */
+ 0x11, 0x0, /* FC_RP */
+/* 760 */ NdrFcShort( 0xffdc ), /* Offset= -36 (724) */
+/* 762 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 764 */ NdrFcShort( 0x0 ), /* 0 */
+/* 766 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 768 */ NdrFcShort( 0x0 ), /* 0 */
+/* 770 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 772 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 776 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 778 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 780 */ NdrFcShort( 0xff44 ), /* Offset= -188 (592) */
+/* 782 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 784 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 786 */ NdrFcShort( 0x10 ), /* 16 */
+/* 788 */ NdrFcShort( 0x0 ), /* 0 */
+/* 790 */ NdrFcShort( 0x6 ), /* Offset= 6 (796) */
+/* 792 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 794 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 796 */
+ 0x11, 0x0, /* FC_RP */
+/* 798 */ NdrFcShort( 0xffdc ), /* Offset= -36 (762) */
+/* 800 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 802 */ NdrFcShort( 0x0 ), /* 0 */
+/* 804 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 806 */ NdrFcShort( 0x0 ), /* 0 */
+/* 808 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 810 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 814 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 816 */
+ 0x13, 0x0, /* FC_OP */
+/* 818 */ NdrFcShort( 0x176 ), /* Offset= 374 (1192) */
+/* 820 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 822 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 824 */ NdrFcShort( 0x10 ), /* 16 */
+/* 826 */ NdrFcShort( 0x0 ), /* 0 */
+/* 828 */ NdrFcShort( 0x6 ), /* Offset= 6 (834) */
+/* 830 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 832 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 834 */
+ 0x11, 0x0, /* FC_RP */
+/* 836 */ NdrFcShort( 0xffdc ), /* Offset= -36 (800) */
+/* 838 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 840 */ NdrFcLong( 0x2f ), /* 47 */
+/* 844 */ NdrFcShort( 0x0 ), /* 0 */
+/* 846 */ NdrFcShort( 0x0 ), /* 0 */
+/* 848 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 850 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 852 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 854 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 856 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 858 */ NdrFcShort( 0x1 ), /* 1 */
+/* 860 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 862 */ NdrFcShort( 0x4 ), /* 4 */
+/* 864 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 866 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 868 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 870 */ NdrFcShort( 0x18 ), /* 24 */
+/* 872 */ NdrFcShort( 0x0 ), /* 0 */
+/* 874 */ NdrFcShort( 0xa ), /* Offset= 10 (884) */
+/* 876 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 878 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 880 */ NdrFcShort( 0xffd6 ), /* Offset= -42 (838) */
+/* 882 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 884 */
+ 0x13, 0x0, /* FC_OP */
+/* 886 */ NdrFcShort( 0xffe2 ), /* Offset= -30 (856) */
+/* 888 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 890 */ NdrFcShort( 0x0 ), /* 0 */
+/* 892 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 894 */ NdrFcShort( 0x0 ), /* 0 */
+/* 896 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 898 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 902 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 904 */
+ 0x13, 0x0, /* FC_OP */
+/* 906 */ NdrFcShort( 0xffda ), /* Offset= -38 (868) */
+/* 908 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 910 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 912 */ NdrFcShort( 0x10 ), /* 16 */
+/* 914 */ NdrFcShort( 0x0 ), /* 0 */
+/* 916 */ NdrFcShort( 0x6 ), /* Offset= 6 (922) */
+/* 918 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 920 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 922 */
+ 0x11, 0x0, /* FC_RP */
+/* 924 */ NdrFcShort( 0xffdc ), /* Offset= -36 (888) */
+/* 926 */
+ 0x1d, /* FC_SMFARRAY */
+ 0x0, /* 0 */
+/* 928 */ NdrFcShort( 0x8 ), /* 8 */
+/* 930 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 932 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 934 */ NdrFcShort( 0x10 ), /* 16 */
+/* 936 */ 0x8, /* FC_LONG */
+ 0x6, /* FC_SHORT */
+/* 938 */ 0x6, /* FC_SHORT */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 940 */ 0x0, /* 0 */
+ NdrFcShort( 0xfff1 ), /* Offset= -15 (926) */
+ 0x5b, /* FC_END */
+/* 944 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 946 */ NdrFcShort( 0x20 ), /* 32 */
+/* 948 */ NdrFcShort( 0x0 ), /* 0 */
+/* 950 */ NdrFcShort( 0xa ), /* Offset= 10 (960) */
+/* 952 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 954 */ 0x36, /* FC_POINTER */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 956 */ 0x0, /* 0 */
+ NdrFcShort( 0xffe7 ), /* Offset= -25 (932) */
+ 0x5b, /* FC_END */
+/* 960 */
+ 0x11, 0x0, /* FC_RP */
+/* 962 */ NdrFcShort( 0xff12 ), /* Offset= -238 (724) */
+/* 964 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 966 */ NdrFcShort( 0x1 ), /* 1 */
+/* 968 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 970 */ NdrFcShort( 0x0 ), /* 0 */
+/* 972 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 974 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 976 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 978 */ NdrFcShort( 0x10 ), /* 16 */
+/* 980 */ NdrFcShort( 0x0 ), /* 0 */
+/* 982 */ NdrFcShort( 0x6 ), /* Offset= 6 (988) */
+/* 984 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 986 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 988 */
+ 0x13, 0x0, /* FC_OP */
+/* 990 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (964) */
+/* 992 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 994 */ NdrFcShort( 0x2 ), /* 2 */
+/* 996 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 998 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1000 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1002 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 1004 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 1006 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1008 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1010 */ NdrFcShort( 0x6 ), /* Offset= 6 (1016) */
+/* 1012 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 1014 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 1016 */
+ 0x13, 0x0, /* FC_OP */
+/* 1018 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (992) */
+/* 1020 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 1022 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1024 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 1026 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1028 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1030 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1032 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 1034 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1036 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1038 */ NdrFcShort( 0x6 ), /* Offset= 6 (1044) */
+/* 1040 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 1042 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 1044 */
+ 0x13, 0x0, /* FC_OP */
+/* 1046 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (1020) */
+/* 1048 */
+ 0x1b, /* FC_CARRAY */
+ 0x7, /* 7 */
+/* 1050 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1052 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 1054 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1056 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1058 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 1060 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 1062 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1064 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1066 */ NdrFcShort( 0x6 ), /* Offset= 6 (1072) */
+/* 1068 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 1070 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 1072 */
+ 0x13, 0x0, /* FC_OP */
+/* 1074 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (1048) */
+/* 1076 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 1078 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1080 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1082 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1084 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 1086 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1088 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 1090 */ NdrFcShort( 0xffc8 ), /* -56 */
+/* 1092 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1094 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1096 */ NdrFcShort( 0xffec ), /* Offset= -20 (1076) */
+/* 1098 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1100 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 1102 */ NdrFcShort( 0x38 ), /* 56 */
+/* 1104 */ NdrFcShort( 0xffec ), /* Offset= -20 (1084) */
+/* 1106 */ NdrFcShort( 0x0 ), /* Offset= 0 (1106) */
+/* 1108 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1110 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1112 */ 0x40, /* FC_STRUCTPAD4 */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 1114 */ 0x0, /* 0 */
+ NdrFcShort( 0xfe0f ), /* Offset= -497 (618) */
+ 0x5b, /* FC_END */
+/* 1118 */
+ 0x13, 0x0, /* FC_OP */
+/* 1120 */ NdrFcShort( 0xff04 ), /* Offset= -252 (868) */
+/* 1122 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1124 */ 0x1, /* FC_BYTE */
+ 0x5c, /* FC_PAD */
+/* 1126 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1128 */ 0x6, /* FC_SHORT */
+ 0x5c, /* FC_PAD */
+/* 1130 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1132 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 1134 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1136 */ 0xb, /* FC_HYPER */
+ 0x5c, /* FC_PAD */
+/* 1138 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1140 */ 0xa, /* FC_FLOAT */
+ 0x5c, /* FC_PAD */
+/* 1142 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1144 */ 0xc, /* FC_DOUBLE */
+ 0x5c, /* FC_PAD */
+/* 1146 */
+ 0x13, 0x0, /* FC_OP */
+/* 1148 */ NdrFcShort( 0xfdce ), /* Offset= -562 (586) */
+/* 1150 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1152 */ NdrFcShort( 0xfb86 ), /* Offset= -1146 (6) */
+/* 1154 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1156 */ NdrFcShort( 0xfbae ), /* Offset= -1106 (50) */
+/* 1158 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1160 */ NdrFcShort( 0xfdc8 ), /* Offset= -568 (592) */
+/* 1162 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1164 */ NdrFcShort( 0xfdd6 ), /* Offset= -554 (610) */
+/* 1166 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1168 */ NdrFcShort( 0x2 ), /* Offset= 2 (1170) */
+/* 1170 */
+ 0x13, 0x0, /* FC_OP */
+/* 1172 */ NdrFcShort( 0x14 ), /* Offset= 20 (1192) */
+/* 1174 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 1176 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1178 */ 0x6, /* FC_SHORT */
+ 0x1, /* FC_BYTE */
+/* 1180 */ 0x1, /* FC_BYTE */
+ 0x8, /* FC_LONG */
+/* 1182 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 1184 */
+ 0x13, 0x0, /* FC_OP */
+/* 1186 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (1174) */
+/* 1188 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1190 */ 0x2, /* FC_CHAR */
+ 0x5c, /* FC_PAD */
+/* 1192 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x7, /* 7 */
+/* 1194 */ NdrFcShort( 0x20 ), /* 32 */
+/* 1196 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1198 */ NdrFcShort( 0x0 ), /* Offset= 0 (1198) */
+/* 1200 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1202 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1204 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1206 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1208 */ NdrFcShort( 0xfc68 ), /* Offset= -920 (288) */
+/* 1210 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1212 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 1214 */ NdrFcShort( 0x2 ), /* 2 */
+/* 1216 */ NdrFcShort( 0x18 ), /* 24 */
+/* 1218 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1220 */ NdrFcShort( 0xfc58 ), /* Offset= -936 (284) */
+/* 1222 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1224 */ NdrFcShort( 0x2 ), /* Offset= 2 (1226) */
+/* 1226 */
+ 0x13, 0x0, /* FC_OP */
+/* 1228 */ NdrFcShort( 0x2 ), /* Offset= 2 (1230) */
+/* 1230 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 1232 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1234 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1236 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1238 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1240 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 1244 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1246 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1248 */ NdrFcShort( 0xfb52 ), /* Offset= -1198 (50) */
+/* 1250 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1252 */
+ 0x11, 0x0, /* FC_RP */
+/* 1254 */ NdrFcShort( 0x6 ), /* Offset= 6 (1260) */
+/* 1256 */
+ 0x12, 0x0, /* FC_UP */
+/* 1258 */ NdrFcShort( 0xffbe ), /* Offset= -66 (1192) */
+/* 1260 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 1262 */ NdrFcShort( 0x2 ), /* 2 */
+/* 1264 */ NdrFcShort( 0x18 ), /* 24 */
+/* 1266 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1268 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (1256) */
+/* 1270 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 1272 */ NdrFcShort( 0x2 ), /* Offset= 2 (1274) */
+/* 1274 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 1276 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1278 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1280 */ NdrFcShort( 0x0 ), /* Offset= 0 (1280) */
+/* 1282 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1284 */ NdrFcShort( 0xfb1c ), /* Offset= -1252 (32) */
+/* 1286 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1288 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1290 */
+ 0x11, 0x0, /* FC_RP */
+/* 1292 */ NdrFcShort( 0xfc02 ), /* Offset= -1022 (270) */
+/* 1294 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 1296 */ 0x3, /* FC_SMALL */
+ 0x5c, /* FC_PAD */
+/* 1298 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 1300 */ NdrFcShort( 0x2 ), /* Offset= 2 (1302) */
+/* 1302 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 1304 */ NdrFcLong( 0x1c20f2b ), /* 29495083 */
+/* 1308 */ NdrFcShort( 0x3dd2 ), /* 15826 */
+/* 1310 */ NdrFcShort( 0x400f ), /* 16399 */
+/* 1312 */ 0x94, /* 148 */
+ 0x9f, /* 159 */
+/* 1314 */ 0xad, /* 173 */
+ 0x0, /* 0 */
+/* 1316 */ 0xbd, /* 189 */
+ 0xab, /* 171 */
+/* 1318 */ 0x1d, /* 29 */
+ 0x41, /* 65 */
+/* 1320 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1322 */ NdrFcShort( 0x2 ), /* Offset= 2 (1324) */
+/* 1324 */
+ 0x13, 0x0, /* FC_OP */
+/* 1326 */ NdrFcShort( 0x2 ), /* Offset= 2 (1328) */
+/* 1328 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 1330 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1332 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1334 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1336 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1338 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 1342 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1344 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1346 */ NdrFcShort( 0xffd4 ), /* Offset= -44 (1302) */
+/* 1348 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1350 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 1352 */ NdrFcShort( 0x2 ), /* Offset= 2 (1354) */
+/* 1354 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 1356 */ NdrFcLong( 0x35ad8070 ), /* 900563056 */
+/* 1360 */ NdrFcShort( 0xc20c ), /* -15860 */
+/* 1362 */ NdrFcShort( 0x4fb4 ), /* 20404 */
+/* 1364 */ 0xb0, /* 176 */
+ 0x94, /* 148 */
+/* 1366 */ 0xf4, /* 244 */
+ 0xf7, /* 247 */
+/* 1368 */ 0x27, /* 39 */
+ 0x5d, /* 93 */
+/* 1370 */ 0xd4, /* 212 */
+ 0x69, /* 105 */
+/* 1372 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1374 */ NdrFcShort( 0x2 ), /* Offset= 2 (1376) */
+/* 1376 */
+ 0x13, 0x0, /* FC_OP */
+/* 1378 */ NdrFcShort( 0x2 ), /* Offset= 2 (1380) */
+/* 1380 */
+ 0x1c, /* FC_CVARRAY */
+ 0x3, /* 3 */
+/* 1382 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1384 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 1386 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1388 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1390 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1392 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1394 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1396 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1398 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 1400 */ NdrFcShort( 0x2 ), /* Offset= 2 (1402) */
+/* 1402 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 1404 */ NdrFcShort( 0x14 ), /* 20 */
+/* 1406 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1408 */ NdrFcShort( 0x0 ), /* Offset= 0 (1408) */
+/* 1410 */ 0xd, /* FC_ENUM16 */
+ 0x8, /* FC_LONG */
+/* 1412 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1414 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1416 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1418 */ NdrFcShort( 0x2 ), /* Offset= 2 (1420) */
+/* 1420 */
+ 0x13, 0x0, /* FC_OP */
+/* 1422 */ NdrFcShort( 0x2 ), /* Offset= 2 (1424) */
+/* 1424 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 1426 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1428 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1430 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1432 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1434 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 1438 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1440 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1442 */ NdrFcShort( 0xfa90 ), /* Offset= -1392 (50) */
+/* 1444 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1446 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1448 */ NdrFcShort( 0x2 ), /* Offset= 2 (1450) */
+/* 1450 */
+ 0x13, 0x0, /* FC_OP */
+/* 1452 */ NdrFcShort( 0x2 ), /* Offset= 2 (1454) */
+/* 1454 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 1456 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1458 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1460 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1462 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1464 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ },
+ {
+ HWND_UserSize
+ ,HWND_UserMarshal
+ ,HWND_UserUnmarshal
+ ,HWND_UserFree
+ },
+ {
+ VARIANT_UserSize
+ ,VARIANT_UserMarshal
+ ,VARIANT_UserUnmarshal
+ ,VARIANT_UserFree
+ }
+
+ };
+
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleRelation, ver. 0.0,
+ GUID={0x7CDF86EE,0xC3DA,0x496a,{0xBD,0xA4,0x28,0x1B,0x33,0x6E,0x1F,0xDC}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleRelation_FormatStringOffsetTable[] =
+ {
+ 0,
+ 38,
+ 76,
+ 114,
+ 158
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleRelation_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleRelation_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleRelation_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleRelation_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(8) _IAccessibleRelationProxyVtbl =
+{
+ &IAccessibleRelation_ProxyInfo,
+ &IID_IAccessibleRelation,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_relationType */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_localizedRelationType */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_nTargets */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_target */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_targets */
+};
+
+const CInterfaceStubVtbl _IAccessibleRelationStubVtbl =
+{
+ &IID_IAccessibleRelation,
+ &IAccessibleRelation_ServerInfo,
+ 8,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0001, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IAccessibleAction, ver. 0.0,
+ GUID={0xB70D9F59,0x3B5A,0x4dba,{0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleAction_FormatStringOffsetTable[] =
+ {
+ 208,
+ 246,
+ 284,
+ 328,
+ 384,
+ 428
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleAction_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleAction_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleAction_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleAction_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(9) _IAccessibleActionProxyVtbl =
+{
+ &IAccessibleAction_ProxyInfo,
+ &IID_IAccessibleAction,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::nActions */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::doAction */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_description */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_keyBinding */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_name */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_localizedName */
+};
+
+const CInterfaceStubVtbl _IAccessibleActionStubVtbl =
+{
+ &IID_IAccessibleAction,
+ &IAccessibleAction_ServerInfo,
+ 9,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0002, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IDispatch, ver. 0.0,
+ GUID={0x00020400,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessible, ver. 0.0,
+ GUID={0x618736e0,0x3c3d,0x11cf,{0x81,0x0c,0x00,0xaa,0x00,0x38,0x9b,0x71}} */
+
+
+/* Object interface: IAccessible2, ver. 0.0,
+ GUID={0xE89F726E,0xC4F4,0x4c19,{0xBB,0x19,0xB6,0x47,0xD7,0xFA,0x84,0x78}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessible2_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 472,
+ 510,
+ 554,
+ 604,
+ 642,
+ 680,
+ 730,
+ 780,
+ 818,
+ 856,
+ 894,
+ 932,
+ 982,
+ 1032,
+ 1070,
+ 1108,
+ 1146,
+ 1184
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessible2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessible2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessible2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessible2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(46) _IAccessible2ProxyVtbl =
+{
+ &IAccessible2_ProxyInfo,
+ &IID_IAccessible2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ 0 /* IAccessible::get_accParent */ ,
+ 0 /* IAccessible::get_accChildCount */ ,
+ 0 /* IAccessible::get_accChild */ ,
+ 0 /* IAccessible::get_accName */ ,
+ 0 /* IAccessible::get_accValue */ ,
+ 0 /* IAccessible::get_accDescription */ ,
+ 0 /* IAccessible::get_accRole */ ,
+ 0 /* IAccessible::get_accState */ ,
+ 0 /* IAccessible::get_accHelp */ ,
+ 0 /* IAccessible::get_accHelpTopic */ ,
+ 0 /* IAccessible::get_accKeyboardShortcut */ ,
+ 0 /* IAccessible::get_accFocus */ ,
+ 0 /* IAccessible::get_accSelection */ ,
+ 0 /* IAccessible::get_accDefaultAction */ ,
+ 0 /* IAccessible::accSelect */ ,
+ 0 /* IAccessible::accLocation */ ,
+ 0 /* IAccessible::accNavigate */ ,
+ 0 /* IAccessible::accHitTest */ ,
+ 0 /* IAccessible::accDoDefaultAction */ ,
+ 0 /* IAccessible::put_accName */ ,
+ 0 /* IAccessible::put_accValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nRelations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relation */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::role */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_groupPosition */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_states */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_uniqueID */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_windowHandle */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_indexInParent */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_locale */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_attributes */
+};
+
+
+static const PRPC_STUB_FUNCTION IAccessible2_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAccessible2StubVtbl =
+{
+ &IID_IAccessible2,
+ &IAccessible2_ServerInfo,
+ 46,
+ &IAccessible2_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IAccessible2_2, ver. 0.0,
+ GUID={0x6C9430E9,0x299D,0x4E6F,{0xBD,0x01,0xA8,0x2A,0x1E,0x88,0xD3,0xFF}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessible2_2_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 472,
+ 510,
+ 554,
+ 604,
+ 642,
+ 680,
+ 730,
+ 780,
+ 818,
+ 856,
+ 894,
+ 932,
+ 982,
+ 1032,
+ 1070,
+ 1108,
+ 1146,
+ 1184,
+ 1222,
+ 1266,
+ 1310
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessible2_2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessible2_2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessible2_2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessible2_2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(49) _IAccessible2_2ProxyVtbl =
+{
+ &IAccessible2_2_ProxyInfo,
+ &IID_IAccessible2_2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ 0 /* IAccessible::get_accParent */ ,
+ 0 /* IAccessible::get_accChildCount */ ,
+ 0 /* IAccessible::get_accChild */ ,
+ 0 /* IAccessible::get_accName */ ,
+ 0 /* IAccessible::get_accValue */ ,
+ 0 /* IAccessible::get_accDescription */ ,
+ 0 /* IAccessible::get_accRole */ ,
+ 0 /* IAccessible::get_accState */ ,
+ 0 /* IAccessible::get_accHelp */ ,
+ 0 /* IAccessible::get_accHelpTopic */ ,
+ 0 /* IAccessible::get_accKeyboardShortcut */ ,
+ 0 /* IAccessible::get_accFocus */ ,
+ 0 /* IAccessible::get_accSelection */ ,
+ 0 /* IAccessible::get_accDefaultAction */ ,
+ 0 /* IAccessible::accSelect */ ,
+ 0 /* IAccessible::accLocation */ ,
+ 0 /* IAccessible::accNavigate */ ,
+ 0 /* IAccessible::accHitTest */ ,
+ 0 /* IAccessible::accDoDefaultAction */ ,
+ 0 /* IAccessible::put_accName */ ,
+ 0 /* IAccessible::put_accValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nRelations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relation */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::role */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_groupPosition */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_states */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_uniqueID */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_windowHandle */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_indexInParent */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_locale */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2_2::get_attribute */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2_2::get_accessibleWithCaret */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2_2::get_relationTargetsOfType */
+};
+
+
+static const PRPC_STUB_FUNCTION IAccessible2_2_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAccessible2_2StubVtbl =
+{
+ &IID_IAccessible2_2,
+ &IAccessible2_2_ServerInfo,
+ 49,
+ &IAccessible2_2_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0004, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IAccessibleComponent, ver. 0.0,
+ GUID={0x1546D4B0,0x4C98,0x4bda,{0x89,0xAE,0x9A,0x64,0x74,0x8B,0xDD,0xE4}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleComponent_FormatStringOffsetTable[] =
+ {
+ 1366,
+ 1410,
+ 76
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleComponent_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleComponent_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleComponent_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleComponent_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(6) _IAccessibleComponentProxyVtbl =
+{
+ &IAccessibleComponent_ProxyInfo,
+ &IID_IAccessibleComponent,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleComponent::get_locationInParent */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleComponent::get_foreground */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleComponent::get_background */
+};
+
+const CInterfaceStubVtbl _IAccessibleComponentStubVtbl =
+{
+ &IID_IAccessibleComponent,
+ &IAccessibleComponent_ServerInfo,
+ 6,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleValue, ver. 0.0,
+ GUID={0x35855B5B,0xC566,0x4fd0,{0xA7,0xB1,0xE6,0x54,0x65,0x60,0x03,0x94}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleValue_FormatStringOffsetTable[] =
+ {
+ 1448,
+ 1486,
+ 1524,
+ 1562
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleValue_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleValue_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleValue_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleValue_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(7) _IAccessibleValueProxyVtbl =
+{
+ &IAccessibleValue_ProxyInfo,
+ &IID_IAccessibleValue,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::get_currentValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::setCurrentValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::get_maximumValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::get_minimumValue */
+};
+
+const CInterfaceStubVtbl _IAccessibleValueStubVtbl =
+{
+ &IID_IAccessibleValue,
+ &IAccessibleValue_ServerInfo,
+ 7,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0006, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IAccessibleText, ver. 0.0,
+ GUID={0x24FD2FFB,0x3AAD,0x4a08,{0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleText_FormatStringOffsetTable[] =
+ {
+ 1600,
+ 1644,
+ 76,
+ 1700,
+ 1768,
+ 1806,
+ 1862,
+ 1912,
+ 1962,
+ 2024,
+ 2086,
+ 2148,
+ 2186,
+ 2224,
+ 2274,
+ 2312,
+ 2362,
+ 2424,
+ 2462
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleText_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleText_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(22) _IAccessibleTextProxyVtbl =
+{
+ &IAccessibleText_ProxyInfo,
+ &IID_IAccessibleText,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */
+};
+
+const CInterfaceStubVtbl _IAccessibleTextStubVtbl =
+{
+ &IID_IAccessibleText,
+ &IAccessibleText_ServerInfo,
+ 22,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleText2, ver. 0.0,
+ GUID={0x9690A9CC,0x5C80,0x4DF5,{0x85,0x2E,0x2D,0x5A,0xE4,0x18,0x9A,0x54}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleText2_FormatStringOffsetTable[] =
+ {
+ 1600,
+ 1644,
+ 76,
+ 1700,
+ 1768,
+ 1806,
+ 1862,
+ 1912,
+ 1962,
+ 2024,
+ 2086,
+ 2148,
+ 2186,
+ 2224,
+ 2274,
+ 2312,
+ 2362,
+ 2424,
+ 2462,
+ 2500
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleText2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleText2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleText2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleText2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(23) _IAccessibleText2ProxyVtbl =
+{
+ &IAccessibleText2_ProxyInfo,
+ &IID_IAccessibleText2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText2::get_attributeRange */
+};
+
+const CInterfaceStubVtbl _IAccessibleText2StubVtbl =
+{
+ &IID_IAccessibleText2,
+ &IAccessibleText2_ServerInfo,
+ 23,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleEditableText, ver. 0.0,
+ GUID={0xA59AA09A,0x7011,0x4b65,{0x93,0x9D,0x32,0xB1,0xFB,0x55,0x47,0xE3}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleEditableText_FormatStringOffsetTable[] =
+ {
+ 1600,
+ 2562,
+ 2606,
+ 2650,
+ 2694,
+ 2732,
+ 2782
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleEditableText_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleEditableText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleEditableText_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleEditableText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(10) _IAccessibleEditableTextProxyVtbl =
+{
+ &IAccessibleEditableText_ProxyInfo,
+ &IID_IAccessibleEditableText,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::copyText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::deleteText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::insertText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::cutText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::pasteText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::replaceText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::setAttributes */
+};
+
+const CInterfaceStubVtbl _IAccessibleEditableTextStubVtbl =
+{
+ &IID_IAccessibleEditableText,
+ &IAccessibleEditableText_ServerInfo,
+ 10,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleHyperlink, ver. 0.0,
+ GUID={0x01C20F2B,0x3DD2,0x400f,{0x94,0x9F,0xAD,0x00,0xBD,0xAB,0x1D,0x41}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleHyperlink_FormatStringOffsetTable[] =
+ {
+ 208,
+ 246,
+ 284,
+ 328,
+ 384,
+ 428,
+ 2832,
+ 2876,
+ 2920,
+ 2958,
+ 2996
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleHyperlink_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHyperlink_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleHyperlink_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHyperlink_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(14) _IAccessibleHyperlinkProxyVtbl =
+{
+ &IAccessibleHyperlink_ProxyInfo,
+ &IID_IAccessibleHyperlink,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::nActions */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::doAction */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_description */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_keyBinding */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_name */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_localizedName */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_anchor */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_anchorTarget */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_startIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_endIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_valid */
+};
+
+const CInterfaceStubVtbl _IAccessibleHyperlinkStubVtbl =
+{
+ &IID_IAccessibleHyperlink,
+ &IAccessibleHyperlink_ServerInfo,
+ 14,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleHypertext, ver. 0.0,
+ GUID={0x6B4F8BBF,0xF1F2,0x418a,{0xB3,0x5E,0xA1,0x95,0xBC,0x41,0x03,0xB9}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleHypertext_FormatStringOffsetTable[] =
+ {
+ 1600,
+ 1644,
+ 76,
+ 1700,
+ 1768,
+ 1806,
+ 1862,
+ 1912,
+ 1962,
+ 2024,
+ 2086,
+ 2148,
+ 2186,
+ 2224,
+ 2274,
+ 2312,
+ 2362,
+ 2424,
+ 2462,
+ 3034,
+ 3072,
+ 3116
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleHypertext_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(25) _IAccessibleHypertextProxyVtbl =
+{
+ &IAccessibleHypertext_ProxyInfo,
+ &IID_IAccessibleHypertext,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_nHyperlinks */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlink */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlinkIndex */
+};
+
+const CInterfaceStubVtbl _IAccessibleHypertextStubVtbl =
+{
+ &IID_IAccessibleHypertext,
+ &IAccessibleHypertext_ServerInfo,
+ 25,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleHypertext2, ver. 0.0,
+ GUID={0xCF64D89F,0x8287,0x4B44,{0x85,0x01,0xA8,0x27,0x45,0x3A,0x60,0x77}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleHypertext2_FormatStringOffsetTable[] =
+ {
+ 1600,
+ 1644,
+ 76,
+ 1700,
+ 1768,
+ 1806,
+ 1862,
+ 1912,
+ 1962,
+ 2024,
+ 2086,
+ 2148,
+ 2186,
+ 2224,
+ 2274,
+ 2312,
+ 2362,
+ 2424,
+ 2462,
+ 3034,
+ 3072,
+ 3116,
+ 3160
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleHypertext2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(26) _IAccessibleHypertext2ProxyVtbl =
+{
+ &IAccessibleHypertext2_ProxyInfo,
+ &IID_IAccessibleHypertext2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_nHyperlinks */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlink */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlinkIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext2::get_hyperlinks */
+};
+
+const CInterfaceStubVtbl _IAccessibleHypertext2StubVtbl =
+{
+ &IID_IAccessibleHypertext2,
+ &IAccessibleHypertext2_ServerInfo,
+ 26,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleTable, ver. 0.0,
+ GUID={0x35AD8070,0xC20C,0x4fb4,{0xB0,0x94,0xF4,0xF7,0x27,0x5D,0xD4,0x69}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleTable_FormatStringOffsetTable[] =
+ {
+ 3204,
+ 3254,
+ 3292,
+ 3342,
+ 3386,
+ 3436,
+ 3480,
+ 3524,
+ 2920,
+ 2958,
+ 3562,
+ 3600,
+ 3638,
+ 3682,
+ 3732,
+ 3776,
+ 3820,
+ 3870,
+ 3920,
+ 3970,
+ 4008,
+ 4052,
+ 4096,
+ 4146,
+ 4184,
+ 4222,
+ 4260,
+ 4298,
+ 4366
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleTable_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTable_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleTable_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTable_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(32) _IAccessibleTableProxyVtbl =
+{
+ &IAccessibleTable_ProxyInfo,
+ &IID_IAccessibleTable,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_accessibleAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_caption */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_childIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnExtentAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnHeader */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedChildren */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowExtentAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowHeader */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedChildren */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_summary */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_isColumnSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_isRowSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_isSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::selectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::selectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::unselectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::unselectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowColumnExtentsAtIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_modelChange */
+};
+
+const CInterfaceStubVtbl _IAccessibleTableStubVtbl =
+{
+ &IID_IAccessibleTable,
+ &IAccessibleTable_ServerInfo,
+ 32,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleTable2, ver. 0.0,
+ GUID={0x6167f295,0x06f0,0x4cdd,{0xa1,0xfa,0x02,0xe2,0x51,0x53,0xd8,0x69}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleTable2_FormatStringOffsetTable[] =
+ {
+ 3204,
+ 3254,
+ 284,
+ 4404,
+ 1768,
+ 4442,
+ 4480,
+ 3524,
+ 4518,
+ 4562,
+ 4606,
+ 4650,
+ 4694,
+ 4732,
+ 4776,
+ 4820,
+ 4858,
+ 4896,
+ 4934,
+ 4972
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleTable2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTable2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleTable2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTable2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(23) _IAccessibleTable2ProxyVtbl =
+{
+ &IAccessibleTable2_ProxyInfo,
+ &IID_IAccessibleTable2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_cellAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_caption */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_columnDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_rowDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_summary */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_isColumnSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_isRowSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::selectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::selectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::unselectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::unselectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_modelChange */
+};
+
+const CInterfaceStubVtbl _IAccessibleTable2StubVtbl =
+{
+ &IID_IAccessibleTable2,
+ &IAccessibleTable2_ServerInfo,
+ 23,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleTableCell, ver. 0.0,
+ GUID={0x594116B1,0xC99F,0x4847,{0xAD,0x06,0x0A,0x7A,0x86,0xEC,0xE6,0x45}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleTableCell_FormatStringOffsetTable[] =
+ {
+ 208,
+ 5010,
+ 76,
+ 4404,
+ 5054,
+ 4442,
+ 5098,
+ 5136,
+ 5198
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleTableCell_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTableCell_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleTableCell_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTableCell_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(12) _IAccessibleTableCellProxyVtbl =
+{
+ &IAccessibleTableCell_ProxyInfo,
+ &IID_IAccessibleTableCell,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnExtent */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnHeaderCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowExtent */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowHeaderCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_isSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowColumnExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_table */
+};
+
+const CInterfaceStubVtbl _IAccessibleTableCellStubVtbl =
+{
+ &IID_IAccessibleTableCell,
+ &IAccessibleTableCell_ServerInfo,
+ 12,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleImage, ver. 0.0,
+ GUID={0xFE5ABB3D,0x615E,0x4f7b,{0x90,0x9F,0x5F,0x0E,0xDA,0x9E,0x8D,0xDE}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleImage_FormatStringOffsetTable[] =
+ {
+ 0,
+ 5236,
+ 5286
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleImage_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleImage_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleImage_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleImage_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(6) _IAccessibleImageProxyVtbl =
+{
+ &IAccessibleImage_ProxyInfo,
+ &IID_IAccessibleImage,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleImage::get_description */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleImage::get_imagePosition */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleImage::get_imageSize */
+};
+
+const CInterfaceStubVtbl _IAccessibleImageStubVtbl =
+{
+ &IID_IAccessibleImage,
+ &IAccessibleImage_ServerInfo,
+ 6,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0016, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IAccessibleApplication, ver. 0.0,
+ GUID={0xD49DED83,0x5B25,0x43F4,{0x9B,0x95,0x93,0xB4,0x45,0x95,0x97,0x9E}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleApplication_FormatStringOffsetTable[] =
+ {
+ 0,
+ 38,
+ 5330,
+ 5368
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleApplication_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleApplication_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleApplication_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleApplication_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(7) _IAccessibleApplicationProxyVtbl =
+{
+ &IAccessibleApplication_ProxyInfo,
+ &IID_IAccessibleApplication,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_appName */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_appVersion */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_toolkitName */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_toolkitVersion */
+};
+
+const CInterfaceStubVtbl _IAccessibleApplicationStubVtbl =
+{
+ &IID_IAccessibleApplication,
+ &IAccessibleApplication_ServerInfo,
+ 7,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleDocument, ver. 0.0,
+ GUID={0xC48C7FCF,0x4AB5,0x4056,{0xAF,0xA6,0x90,0x2D,0x6E,0x1D,0x11,0x49}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleDocument_FormatStringOffsetTable[] =
+ {
+ 5406
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleDocument_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleDocument_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleDocument_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleDocument_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(4) _IAccessibleDocumentProxyVtbl =
+{
+ &IAccessibleDocument_ProxyInfo,
+ &IID_IAccessibleDocument,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleDocument::get_anchorTarget */
+};
+
+const CInterfaceStubVtbl _IAccessibleDocumentStubVtbl =
+{
+ &IID_IAccessibleDocument,
+ &IAccessibleDocument_ServerInfo,
+ 4,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0018, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ ia2_api_all__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x801026e, /* MIDL Version 8.1.622 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _ia2_api_all_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleHyperlinkProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleImageProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleActionProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleValueProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessible2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleTableProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleApplicationProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleTable2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleEditableTextProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleHypertext2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleComponentProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleTableCellProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleHypertextProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleText2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleDocumentProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessible2_2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleRelationProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleTextProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _ia2_api_all_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleHyperlinkStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleImageStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleActionStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleValueStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessible2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleTableStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleApplicationStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleTable2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleEditableTextStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleHypertext2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleComponentStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleTableCellStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleHypertextStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleText2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleDocumentStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessible2_2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleRelationStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleTextStubVtbl,
+ 0
+};
+
+PCInterfaceName const _ia2_api_all_InterfaceNamesList[] =
+{
+ "IAccessibleHyperlink",
+ "IAccessibleImage",
+ "IAccessibleAction",
+ "IAccessibleValue",
+ "IAccessible2",
+ "IAccessibleTable",
+ "IAccessibleApplication",
+ "IAccessibleTable2",
+ "IAccessibleEditableText",
+ "IAccessibleHypertext2",
+ "IAccessibleComponent",
+ "IAccessibleTableCell",
+ "IAccessibleHypertext",
+ "IAccessibleText2",
+ "IAccessibleDocument",
+ "IAccessible2_2",
+ "IAccessibleRelation",
+ "IAccessibleText",
+ 0
+};
+
+const IID * const _ia2_api_all_BaseIIDList[] =
+{
+ 0,
+ 0,
+ 0,
+ 0,
+ &IID_IAccessible,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ &IID_IAccessible,
+ 0,
+ 0,
+ 0
+};
+
+
+#define _ia2_api_all_CHECK_IID(n) IID_GENERIC_CHECK_IID( _ia2_api_all, pIID, n)
+
+int __stdcall _ia2_api_all_IID_Lookup( const IID * pIID, int * pIndex )
+{
+ IID_BS_LOOKUP_SETUP
+
+ IID_BS_LOOKUP_INITIAL_TEST( _ia2_api_all, 18, 16 )
+ IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 8 )
+ IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 4 )
+ IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 2 )
+ IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 1 )
+ IID_BS_LOOKUP_RETURN_RESULT( _ia2_api_all, 18, *pIndex )
+
+}
+
+const ExtendedProxyFileInfo ia2_api_all_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _ia2_api_all_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _ia2_api_all_StubVtblList,
+ (const PCInterfaceName * ) & _ia2_api_all_InterfaceNamesList,
+ (const IID ** ) & _ia2_api_all_BaseIIDList,
+ & _ia2_api_all_IID_Lookup,
+ 18,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.dlldata.c b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.dlldata.c
new file mode 100644
index 00000000000..1685d8340a7
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.dlldata.c
@@ -0,0 +1,38 @@
+/*********************************************************
+ DllData file -- generated by MIDL compiler
+
+ DO NOT ALTER THIS FILE
+
+ This file is regenerated by MIDL on every IDL file compile.
+
+ To completely reconstruct this file, delete it and rerun MIDL
+ on all the IDL files in this DLL, specifying this file for the
+ /dlldata command line option
+
+*********************************************************/
+
+#define PROXY_DELEGATION
+
+#include <rpcproxy.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_PROXY_FILE( ia2_api_all )
+
+
+PROXYFILE_LIST_START
+/* Start of list */
+ REFERENCE_PROXY_FILE( ia2_api_all ),
+/* End of list */
+PROXYFILE_LIST_END
+
+
+DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID )
+
+#ifdef __cplusplus
+} /*extern "C" */
+#endif
+
+/* end of generated dlldata file */
diff --git a/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.h b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.h
new file mode 100644
index 00000000000..c800f13c846
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.h
@@ -0,0 +1,4746 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/iaccessible2/ia2_api_all.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif /* __RPCNDR_H_VERSION__ */
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __ia2_api_all_h__
+#define __ia2_api_all_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleRelation_FWD_DEFINED__
+#define __IAccessibleRelation_FWD_DEFINED__
+typedef interface IAccessibleRelation IAccessibleRelation;
+
+#endif /* __IAccessibleRelation_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleAction_FWD_DEFINED__
+#define __IAccessibleAction_FWD_DEFINED__
+typedef interface IAccessibleAction IAccessibleAction;
+
+#endif /* __IAccessibleAction_FWD_DEFINED__ */
+
+
+#ifndef __IAccessible2_FWD_DEFINED__
+#define __IAccessible2_FWD_DEFINED__
+typedef interface IAccessible2 IAccessible2;
+
+#endif /* __IAccessible2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessible2_2_FWD_DEFINED__
+#define __IAccessible2_2_FWD_DEFINED__
+typedef interface IAccessible2_2 IAccessible2_2;
+
+#endif /* __IAccessible2_2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleComponent_FWD_DEFINED__
+#define __IAccessibleComponent_FWD_DEFINED__
+typedef interface IAccessibleComponent IAccessibleComponent;
+
+#endif /* __IAccessibleComponent_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleValue_FWD_DEFINED__
+#define __IAccessibleValue_FWD_DEFINED__
+typedef interface IAccessibleValue IAccessibleValue;
+
+#endif /* __IAccessibleValue_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleText_FWD_DEFINED__
+#define __IAccessibleText_FWD_DEFINED__
+typedef interface IAccessibleText IAccessibleText;
+
+#endif /* __IAccessibleText_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleText2_FWD_DEFINED__
+#define __IAccessibleText2_FWD_DEFINED__
+typedef interface IAccessibleText2 IAccessibleText2;
+
+#endif /* __IAccessibleText2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleEditableText_FWD_DEFINED__
+#define __IAccessibleEditableText_FWD_DEFINED__
+typedef interface IAccessibleEditableText IAccessibleEditableText;
+
+#endif /* __IAccessibleEditableText_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHyperlink_FWD_DEFINED__
+#define __IAccessibleHyperlink_FWD_DEFINED__
+typedef interface IAccessibleHyperlink IAccessibleHyperlink;
+
+#endif /* __IAccessibleHyperlink_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext_FWD_DEFINED__
+#define __IAccessibleHypertext_FWD_DEFINED__
+typedef interface IAccessibleHypertext IAccessibleHypertext;
+
+#endif /* __IAccessibleHypertext_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext2_FWD_DEFINED__
+#define __IAccessibleHypertext2_FWD_DEFINED__
+typedef interface IAccessibleHypertext2 IAccessibleHypertext2;
+
+#endif /* __IAccessibleHypertext2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTable_FWD_DEFINED__
+#define __IAccessibleTable_FWD_DEFINED__
+typedef interface IAccessibleTable IAccessibleTable;
+
+#endif /* __IAccessibleTable_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTable2_FWD_DEFINED__
+#define __IAccessibleTable2_FWD_DEFINED__
+typedef interface IAccessibleTable2 IAccessibleTable2;
+
+#endif /* __IAccessibleTable2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTableCell_FWD_DEFINED__
+#define __IAccessibleTableCell_FWD_DEFINED__
+typedef interface IAccessibleTableCell IAccessibleTableCell;
+
+#endif /* __IAccessibleTableCell_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleImage_FWD_DEFINED__
+#define __IAccessibleImage_FWD_DEFINED__
+typedef interface IAccessibleImage IAccessibleImage;
+
+#endif /* __IAccessibleImage_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleApplication_FWD_DEFINED__
+#define __IAccessibleApplication_FWD_DEFINED__
+typedef interface IAccessibleApplication IAccessibleApplication;
+
+#endif /* __IAccessibleApplication_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleDocument_FWD_DEFINED__
+#define __IAccessibleDocument_FWD_DEFINED__
+typedef interface IAccessibleDocument IAccessibleDocument;
+
+#endif /* __IAccessibleDocument_FWD_DEFINED__ */
+
+
+#ifndef __IAccessible2_FWD_DEFINED__
+#define __IAccessible2_FWD_DEFINED__
+typedef interface IAccessible2 IAccessible2;
+
+#endif /* __IAccessible2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessible2_2_FWD_DEFINED__
+#define __IAccessible2_2_FWD_DEFINED__
+typedef interface IAccessible2_2 IAccessible2_2;
+
+#endif /* __IAccessible2_2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleAction_FWD_DEFINED__
+#define __IAccessibleAction_FWD_DEFINED__
+typedef interface IAccessibleAction IAccessibleAction;
+
+#endif /* __IAccessibleAction_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleApplication_FWD_DEFINED__
+#define __IAccessibleApplication_FWD_DEFINED__
+typedef interface IAccessibleApplication IAccessibleApplication;
+
+#endif /* __IAccessibleApplication_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleComponent_FWD_DEFINED__
+#define __IAccessibleComponent_FWD_DEFINED__
+typedef interface IAccessibleComponent IAccessibleComponent;
+
+#endif /* __IAccessibleComponent_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleDocument_FWD_DEFINED__
+#define __IAccessibleDocument_FWD_DEFINED__
+typedef interface IAccessibleDocument IAccessibleDocument;
+
+#endif /* __IAccessibleDocument_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleEditableText_FWD_DEFINED__
+#define __IAccessibleEditableText_FWD_DEFINED__
+typedef interface IAccessibleEditableText IAccessibleEditableText;
+
+#endif /* __IAccessibleEditableText_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHyperlink_FWD_DEFINED__
+#define __IAccessibleHyperlink_FWD_DEFINED__
+typedef interface IAccessibleHyperlink IAccessibleHyperlink;
+
+#endif /* __IAccessibleHyperlink_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleText_FWD_DEFINED__
+#define __IAccessibleText_FWD_DEFINED__
+typedef interface IAccessibleText IAccessibleText;
+
+#endif /* __IAccessibleText_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext_FWD_DEFINED__
+#define __IAccessibleHypertext_FWD_DEFINED__
+typedef interface IAccessibleHypertext IAccessibleHypertext;
+
+#endif /* __IAccessibleHypertext_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext2_FWD_DEFINED__
+#define __IAccessibleHypertext2_FWD_DEFINED__
+typedef interface IAccessibleHypertext2 IAccessibleHypertext2;
+
+#endif /* __IAccessibleHypertext2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleImage_FWD_DEFINED__
+#define __IAccessibleImage_FWD_DEFINED__
+typedef interface IAccessibleImage IAccessibleImage;
+
+#endif /* __IAccessibleImage_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleRelation_FWD_DEFINED__
+#define __IAccessibleRelation_FWD_DEFINED__
+typedef interface IAccessibleRelation IAccessibleRelation;
+
+#endif /* __IAccessibleRelation_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTable_FWD_DEFINED__
+#define __IAccessibleTable_FWD_DEFINED__
+typedef interface IAccessibleTable IAccessibleTable;
+
+#endif /* __IAccessibleTable_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTable2_FWD_DEFINED__
+#define __IAccessibleTable2_FWD_DEFINED__
+typedef interface IAccessibleTable2 IAccessibleTable2;
+
+#endif /* __IAccessibleTable2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTableCell_FWD_DEFINED__
+#define __IAccessibleTableCell_FWD_DEFINED__
+typedef interface IAccessibleTableCell IAccessibleTableCell;
+
+#endif /* __IAccessibleTableCell_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleText2_FWD_DEFINED__
+#define __IAccessibleText2_FWD_DEFINED__
+typedef interface IAccessibleText2 IAccessibleText2;
+
+#endif /* __IAccessibleText2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleValue_FWD_DEFINED__
+#define __IAccessibleValue_FWD_DEFINED__
+typedef interface IAccessibleValue IAccessibleValue;
+
+#endif /* __IAccessibleValue_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0000 */
+/* [local] */
+
+
+enum IA2ScrollType
+ {
+ IA2_SCROLL_TYPE_TOP_LEFT = 0,
+ IA2_SCROLL_TYPE_BOTTOM_RIGHT = ( IA2_SCROLL_TYPE_TOP_LEFT + 1 ) ,
+ IA2_SCROLL_TYPE_TOP_EDGE = ( IA2_SCROLL_TYPE_BOTTOM_RIGHT + 1 ) ,
+ IA2_SCROLL_TYPE_BOTTOM_EDGE = ( IA2_SCROLL_TYPE_TOP_EDGE + 1 ) ,
+ IA2_SCROLL_TYPE_LEFT_EDGE = ( IA2_SCROLL_TYPE_BOTTOM_EDGE + 1 ) ,
+ IA2_SCROLL_TYPE_RIGHT_EDGE = ( IA2_SCROLL_TYPE_LEFT_EDGE + 1 ) ,
+ IA2_SCROLL_TYPE_ANYWHERE = ( IA2_SCROLL_TYPE_RIGHT_EDGE + 1 )
+ } ;
+
+enum IA2CoordinateType
+ {
+ IA2_COORDTYPE_SCREEN_RELATIVE = 0,
+ IA2_COORDTYPE_PARENT_RELATIVE = ( IA2_COORDTYPE_SCREEN_RELATIVE + 1 )
+ } ;
+
+enum IA2TextSpecialOffsets
+ {
+ IA2_TEXT_OFFSET_LENGTH = -1,
+ IA2_TEXT_OFFSET_CARET = -2
+ } ;
+
+enum IA2TableModelChangeType
+ {
+ IA2_TABLE_MODEL_CHANGE_INSERT = 0,
+ IA2_TABLE_MODEL_CHANGE_DELETE = ( IA2_TABLE_MODEL_CHANGE_INSERT + 1 ) ,
+ IA2_TABLE_MODEL_CHANGE_UPDATE = ( IA2_TABLE_MODEL_CHANGE_DELETE + 1 )
+ } ;
+typedef struct IA2TableModelChange
+ {
+ enum IA2TableModelChangeType type;
+ long firstRow;
+ long lastRow;
+ long firstColumn;
+ long lastColumn;
+ } IA2TableModelChange;
+
+#define IA2_RELATION_CONTAINING_APPLICATION ( L"containingApplication" )
+
+#define IA2_RELATION_CONTAINING_DOCUMENT ( L"containingDocument" )
+
+#define IA2_RELATION_CONTAINING_TAB_PANE ( L"containingTabPane" )
+
+#define IA2_RELATION_CONTAINING_WINDOW ( L"containingWindow" )
+
+#define IA2_RELATION_CONTROLLED_BY ( L"controlledBy" )
+
+#define IA2_RELATION_CONTROLLER_FOR ( L"controllerFor" )
+
+#define IA2_RELATION_DESCRIBED_BY ( L"describedBy" )
+
+#define IA2_RELATION_DESCRIPTION_FOR ( L"descriptionFor" )
+
+#define IA2_RELATION_EMBEDDED_BY ( L"embeddedBy" )
+
+#define IA2_RELATION_EMBEDS ( L"embeds" )
+
+#define IA2_RELATION_FLOWS_FROM ( L"flowsFrom" )
+
+#define IA2_RELATION_FLOWS_TO ( L"flowsTo" )
+
+#define IA2_RELATION_LABEL_FOR ( L"labelFor" )
+
+#define IA2_RELATION_LABELED_BY ( L"labelledBy" )
+
+#define IA2_RELATION_LABELLED_BY ( L"labelledBy" )
+
+#define IA2_RELATION_MEMBER_OF ( L"memberOf" )
+
+#define IA2_RELATION_NEXT_TABBABLE ( L"nextTabbable" )
+
+#define IA2_RELATION_NODE_CHILD_OF ( L"nodeChildOf" )
+
+#define IA2_RELATION_NODE_PARENT_OF ( L"nodeParentOf" )
+
+#define IA2_RELATION_PARENT_WINDOW_OF ( L"parentWindowOf" )
+
+#define IA2_RELATION_POPUP_FOR ( L"popupFor" )
+
+#define IA2_RELATION_PREVIOUS_TABBABLE ( L"previousTabbable" )
+
+#define IA2_RELATION_SUBWINDOW_OF ( L"subwindowOf" )
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0000_v0_0_s_ifspec;
+
+#ifndef __IAccessibleRelation_INTERFACE_DEFINED__
+#define __IAccessibleRelation_INTERFACE_DEFINED__
+
+/* interface IAccessibleRelation */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleRelation;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("7CDF86EE-C3DA-496a-BDA4-281B336E1FDC")
+ IAccessibleRelation : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relationType(
+ /* [retval][out] */ BSTR *relationType) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedRelationType(
+ /* [retval][out] */ BSTR *localizedRelationType) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nTargets(
+ /* [retval][out] */ long *nTargets) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_target(
+ /* [in] */ long targetIndex,
+ /* [retval][out] */ IUnknown **target) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_targets(
+ /* [in] */ long maxTargets,
+ /* [length_is][size_is][out] */ IUnknown **targets,
+ /* [retval][out] */ long *nTargets) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleRelationVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleRelation * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleRelation * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleRelation * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationType )(
+ IAccessibleRelation * This,
+ /* [retval][out] */ BSTR *relationType);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedRelationType )(
+ IAccessibleRelation * This,
+ /* [retval][out] */ BSTR *localizedRelationType);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nTargets )(
+ IAccessibleRelation * This,
+ /* [retval][out] */ long *nTargets);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_target )(
+ IAccessibleRelation * This,
+ /* [in] */ long targetIndex,
+ /* [retval][out] */ IUnknown **target);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targets )(
+ IAccessibleRelation * This,
+ /* [in] */ long maxTargets,
+ /* [length_is][size_is][out] */ IUnknown **targets,
+ /* [retval][out] */ long *nTargets);
+
+ END_INTERFACE
+ } IAccessibleRelationVtbl;
+
+ interface IAccessibleRelation
+ {
+ CONST_VTBL struct IAccessibleRelationVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleRelation_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleRelation_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleRelation_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleRelation_get_relationType(This,relationType) \
+ ( (This)->lpVtbl -> get_relationType(This,relationType) )
+
+#define IAccessibleRelation_get_localizedRelationType(This,localizedRelationType) \
+ ( (This)->lpVtbl -> get_localizedRelationType(This,localizedRelationType) )
+
+#define IAccessibleRelation_get_nTargets(This,nTargets) \
+ ( (This)->lpVtbl -> get_nTargets(This,nTargets) )
+
+#define IAccessibleRelation_get_target(This,targetIndex,target) \
+ ( (This)->lpVtbl -> get_target(This,targetIndex,target) )
+
+#define IAccessibleRelation_get_targets(This,maxTargets,targets,nTargets) \
+ ( (This)->lpVtbl -> get_targets(This,maxTargets,targets,nTargets) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleRelation_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0001 */
+/* [local] */
+
+
+enum IA2Actions
+ {
+ IA2_ACTION_OPEN = -1,
+ IA2_ACTION_COMPLETE = -2,
+ IA2_ACTION_CLOSE = -3
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0001_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0001_v0_0_s_ifspec;
+
+#ifndef __IAccessibleAction_INTERFACE_DEFINED__
+#define __IAccessibleAction_INTERFACE_DEFINED__
+
+/* interface IAccessibleAction */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleAction;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("B70D9F59-3B5A-4dba-AB9E-22012F607DF5")
+ IAccessibleAction : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE nActions(
+ /* [retval][out] */ long *nActions) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE doAction(
+ /* [in] */ long actionIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_description(
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_keyBinding(
+ /* [in] */ long actionIndex,
+ /* [in] */ long nMaxBindings,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
+ /* [retval][out] */ long *nBindings) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_name(
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedName(
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *localizedName) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleActionVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleAction * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleAction * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleAction * This);
+
+ HRESULT ( STDMETHODCALLTYPE *nActions )(
+ IAccessibleAction * This,
+ /* [retval][out] */ long *nActions);
+
+ HRESULT ( STDMETHODCALLTYPE *doAction )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [in] */ long nMaxBindings,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
+ /* [retval][out] */ long *nBindings);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *localizedName);
+
+ END_INTERFACE
+ } IAccessibleActionVtbl;
+
+ interface IAccessibleAction
+ {
+ CONST_VTBL struct IAccessibleActionVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleAction_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleAction_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleAction_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleAction_nActions(This,nActions) \
+ ( (This)->lpVtbl -> nActions(This,nActions) )
+
+#define IAccessibleAction_doAction(This,actionIndex) \
+ ( (This)->lpVtbl -> doAction(This,actionIndex) )
+
+#define IAccessibleAction_get_description(This,actionIndex,description) \
+ ( (This)->lpVtbl -> get_description(This,actionIndex,description) )
+
+#define IAccessibleAction_get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) \
+ ( (This)->lpVtbl -> get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) )
+
+#define IAccessibleAction_get_name(This,actionIndex,name) \
+ ( (This)->lpVtbl -> get_name(This,actionIndex,name) )
+
+#define IAccessibleAction_get_localizedName(This,actionIndex,localizedName) \
+ ( (This)->lpVtbl -> get_localizedName(This,actionIndex,localizedName) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleAction_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0002 */
+/* [local] */
+
+
+enum IA2Role
+ {
+ IA2_ROLE_UNKNOWN = 0,
+ IA2_ROLE_CANVAS = 0x401,
+ IA2_ROLE_CAPTION = ( IA2_ROLE_CANVAS + 1 ) ,
+ IA2_ROLE_CHECK_MENU_ITEM = ( IA2_ROLE_CAPTION + 1 ) ,
+ IA2_ROLE_COLOR_CHOOSER = ( IA2_ROLE_CHECK_MENU_ITEM + 1 ) ,
+ IA2_ROLE_DATE_EDITOR = ( IA2_ROLE_COLOR_CHOOSER + 1 ) ,
+ IA2_ROLE_DESKTOP_ICON = ( IA2_ROLE_DATE_EDITOR + 1 ) ,
+ IA2_ROLE_DESKTOP_PANE = ( IA2_ROLE_DESKTOP_ICON + 1 ) ,
+ IA2_ROLE_DIRECTORY_PANE = ( IA2_ROLE_DESKTOP_PANE + 1 ) ,
+ IA2_ROLE_EDITBAR = ( IA2_ROLE_DIRECTORY_PANE + 1 ) ,
+ IA2_ROLE_EMBEDDED_OBJECT = ( IA2_ROLE_EDITBAR + 1 ) ,
+ IA2_ROLE_ENDNOTE = ( IA2_ROLE_EMBEDDED_OBJECT + 1 ) ,
+ IA2_ROLE_FILE_CHOOSER = ( IA2_ROLE_ENDNOTE + 1 ) ,
+ IA2_ROLE_FONT_CHOOSER = ( IA2_ROLE_FILE_CHOOSER + 1 ) ,
+ IA2_ROLE_FOOTER = ( IA2_ROLE_FONT_CHOOSER + 1 ) ,
+ IA2_ROLE_FOOTNOTE = ( IA2_ROLE_FOOTER + 1 ) ,
+ IA2_ROLE_FORM = ( IA2_ROLE_FOOTNOTE + 1 ) ,
+ IA2_ROLE_FRAME = ( IA2_ROLE_FORM + 1 ) ,
+ IA2_ROLE_GLASS_PANE = ( IA2_ROLE_FRAME + 1 ) ,
+ IA2_ROLE_HEADER = ( IA2_ROLE_GLASS_PANE + 1 ) ,
+ IA2_ROLE_HEADING = ( IA2_ROLE_HEADER + 1 ) ,
+ IA2_ROLE_ICON = ( IA2_ROLE_HEADING + 1 ) ,
+ IA2_ROLE_IMAGE_MAP = ( IA2_ROLE_ICON + 1 ) ,
+ IA2_ROLE_INPUT_METHOD_WINDOW = ( IA2_ROLE_IMAGE_MAP + 1 ) ,
+ IA2_ROLE_INTERNAL_FRAME = ( IA2_ROLE_INPUT_METHOD_WINDOW + 1 ) ,
+ IA2_ROLE_LABEL = ( IA2_ROLE_INTERNAL_FRAME + 1 ) ,
+ IA2_ROLE_LAYERED_PANE = ( IA2_ROLE_LABEL + 1 ) ,
+ IA2_ROLE_NOTE = ( IA2_ROLE_LAYERED_PANE + 1 ) ,
+ IA2_ROLE_OPTION_PANE = ( IA2_ROLE_NOTE + 1 ) ,
+ IA2_ROLE_PAGE = ( IA2_ROLE_OPTION_PANE + 1 ) ,
+ IA2_ROLE_PARAGRAPH = ( IA2_ROLE_PAGE + 1 ) ,
+ IA2_ROLE_RADIO_MENU_ITEM = ( IA2_ROLE_PARAGRAPH + 1 ) ,
+ IA2_ROLE_REDUNDANT_OBJECT = ( IA2_ROLE_RADIO_MENU_ITEM + 1 ) ,
+ IA2_ROLE_ROOT_PANE = ( IA2_ROLE_REDUNDANT_OBJECT + 1 ) ,
+ IA2_ROLE_RULER = ( IA2_ROLE_ROOT_PANE + 1 ) ,
+ IA2_ROLE_SCROLL_PANE = ( IA2_ROLE_RULER + 1 ) ,
+ IA2_ROLE_SECTION = ( IA2_ROLE_SCROLL_PANE + 1 ) ,
+ IA2_ROLE_SHAPE = ( IA2_ROLE_SECTION + 1 ) ,
+ IA2_ROLE_SPLIT_PANE = ( IA2_ROLE_SHAPE + 1 ) ,
+ IA2_ROLE_TEAR_OFF_MENU = ( IA2_ROLE_SPLIT_PANE + 1 ) ,
+ IA2_ROLE_TERMINAL = ( IA2_ROLE_TEAR_OFF_MENU + 1 ) ,
+ IA2_ROLE_TEXT_FRAME = ( IA2_ROLE_TERMINAL + 1 ) ,
+ IA2_ROLE_TOGGLE_BUTTON = ( IA2_ROLE_TEXT_FRAME + 1 ) ,
+ IA2_ROLE_VIEW_PORT = ( IA2_ROLE_TOGGLE_BUTTON + 1 ) ,
+ IA2_ROLE_COMPLEMENTARY_CONTENT = ( IA2_ROLE_VIEW_PORT + 1 )
+ } ;
+typedef long AccessibleStates;
+
+
+enum IA2States
+ {
+ IA2_STATE_ACTIVE = 0x1,
+ IA2_STATE_ARMED = 0x2,
+ IA2_STATE_DEFUNCT = 0x4,
+ IA2_STATE_EDITABLE = 0x8,
+ IA2_STATE_HORIZONTAL = 0x10,
+ IA2_STATE_ICONIFIED = 0x20,
+ IA2_STATE_INVALID_ENTRY = 0x40,
+ IA2_STATE_MANAGES_DESCENDANTS = 0x80,
+ IA2_STATE_MODAL = 0x100,
+ IA2_STATE_MULTI_LINE = 0x200,
+ IA2_STATE_OPAQUE = 0x400,
+ IA2_STATE_REQUIRED = 0x800,
+ IA2_STATE_SELECTABLE_TEXT = 0x1000,
+ IA2_STATE_SINGLE_LINE = 0x2000,
+ IA2_STATE_STALE = 0x4000,
+ IA2_STATE_SUPPORTS_AUTOCOMPLETION = 0x8000,
+ IA2_STATE_TRANSIENT = 0x10000,
+ IA2_STATE_VERTICAL = 0x20000,
+ IA2_STATE_CHECKABLE = 0x40000,
+ IA2_STATE_PINNED = 0x80000
+ } ;
+typedef struct IA2Locale
+ {
+ BSTR language;
+ BSTR country;
+ BSTR variant;
+ } IA2Locale;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0002_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0002_v0_0_s_ifspec;
+
+#ifndef __IAccessible2_INTERFACE_DEFINED__
+#define __IAccessible2_INTERFACE_DEFINED__
+
+/* interface IAccessible2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessible2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("E89F726E-C4F4-4c19-BB19-B647D7FA8478")
+ IAccessible2 : public IAccessible
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRelations(
+ /* [retval][out] */ long *nRelations) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relation(
+ /* [in] */ long relationIndex,
+ /* [retval][out] */ IAccessibleRelation **relation) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relations(
+ /* [in] */ long maxRelations,
+ /* [length_is][size_is][out] */ IAccessibleRelation **relations,
+ /* [retval][out] */ long *nRelations) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE role(
+ /* [retval][out] */ long *role) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollTo(
+ /* [in] */ enum IA2ScrollType scrollType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollToPoint(
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_groupPosition(
+ /* [out] */ long *groupLevel,
+ /* [out] */ long *similarItemsInGroup,
+ /* [retval][out] */ long *positionInGroup) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_states(
+ /* [retval][out] */ AccessibleStates *states) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extendedRole(
+ /* [retval][out] */ BSTR *extendedRole) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedExtendedRole(
+ /* [retval][out] */ BSTR *localizedExtendedRole) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nExtendedStates(
+ /* [retval][out] */ long *nExtendedStates) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extendedStates(
+ /* [in] */ long maxExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
+ /* [retval][out] */ long *nExtendedStates) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedExtendedStates(
+ /* [in] */ long maxLocalizedExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
+ /* [retval][out] */ long *nLocalizedExtendedStates) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_uniqueID(
+ /* [retval][out] */ long *uniqueID) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_windowHandle(
+ /* [retval][out] */ HWND *windowHandle) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_indexInParent(
+ /* [retval][out] */ long *indexInParent) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_locale(
+ /* [retval][out] */ IA2Locale *locale) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributes(
+ /* [retval][out] */ BSTR *attributes) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessible2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessible2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessible2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessible2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAccessible2 * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAccessible2 * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAccessible2 * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAccessible2 * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )(
+ IAccessible2 * This,
+ /* [retval][out] */ IDispatch **ppdispParent);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *pcountChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )(
+ IAccessible2 * This,
+ /* [in] */ VARIANT varChild,
+ /* [retval][out] */ IDispatch **ppdispChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszName);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszValue);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDescription);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarRole);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarState);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszHelp);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )(
+ IAccessible2 * This,
+ /* [out] */ BSTR *pszHelpFile,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ long *pidTopic);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszKeyboardShortcut);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )(
+ IAccessible2 * This,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )(
+ IAccessible2 * This,
+ /* [retval][out] */ VARIANT *pvarChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDefaultAction);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )(
+ IAccessible2 * This,
+ /* [in] */ long flagsSelect,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )(
+ IAccessible2 * This,
+ /* [out] */ long *pxLeft,
+ /* [out] */ long *pyTop,
+ /* [out] */ long *pcxWidth,
+ /* [out] */ long *pcyHeight,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )(
+ IAccessible2 * This,
+ /* [in] */ long navDir,
+ /* [optional][in] */ VARIANT varStart,
+ /* [retval][out] */ VARIANT *pvarEndUpAt);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )(
+ IAccessible2 * This,
+ /* [in] */ long xLeft,
+ /* [in] */ long yTop,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szName);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szValue);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *nRelations);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )(
+ IAccessible2 * This,
+ /* [in] */ long relationIndex,
+ /* [retval][out] */ IAccessibleRelation **relation);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )(
+ IAccessible2 * This,
+ /* [in] */ long maxRelations,
+ /* [length_is][size_is][out] */ IAccessibleRelation **relations,
+ /* [retval][out] */ long *nRelations);
+
+ HRESULT ( STDMETHODCALLTYPE *role )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *role);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollTo )(
+ IAccessible2 * This,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollToPoint )(
+ IAccessible2 * This,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )(
+ IAccessible2 * This,
+ /* [out] */ long *groupLevel,
+ /* [out] */ long *similarItemsInGroup,
+ /* [retval][out] */ long *positionInGroup);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )(
+ IAccessible2 * This,
+ /* [retval][out] */ AccessibleStates *states);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )(
+ IAccessible2 * This,
+ /* [retval][out] */ BSTR *extendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )(
+ IAccessible2 * This,
+ /* [retval][out] */ BSTR *localizedExtendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )(
+ IAccessible2 * This,
+ /* [in] */ long maxExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )(
+ IAccessible2 * This,
+ /* [in] */ long maxLocalizedExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
+ /* [retval][out] */ long *nLocalizedExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *uniqueID);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )(
+ IAccessible2 * This,
+ /* [retval][out] */ HWND *windowHandle);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *indexInParent);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )(
+ IAccessible2 * This,
+ /* [retval][out] */ IA2Locale *locale);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessible2 * This,
+ /* [retval][out] */ BSTR *attributes);
+
+ END_INTERFACE
+ } IAccessible2Vtbl;
+
+ interface IAccessible2
+ {
+ CONST_VTBL struct IAccessible2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessible2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessible2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessible2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessible2_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAccessible2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAccessible2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAccessible2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAccessible2_get_accParent(This,ppdispParent) \
+ ( (This)->lpVtbl -> get_accParent(This,ppdispParent) )
+
+#define IAccessible2_get_accChildCount(This,pcountChildren) \
+ ( (This)->lpVtbl -> get_accChildCount(This,pcountChildren) )
+
+#define IAccessible2_get_accChild(This,varChild,ppdispChild) \
+ ( (This)->lpVtbl -> get_accChild(This,varChild,ppdispChild) )
+
+#define IAccessible2_get_accName(This,varChild,pszName) \
+ ( (This)->lpVtbl -> get_accName(This,varChild,pszName) )
+
+#define IAccessible2_get_accValue(This,varChild,pszValue) \
+ ( (This)->lpVtbl -> get_accValue(This,varChild,pszValue) )
+
+#define IAccessible2_get_accDescription(This,varChild,pszDescription) \
+ ( (This)->lpVtbl -> get_accDescription(This,varChild,pszDescription) )
+
+#define IAccessible2_get_accRole(This,varChild,pvarRole) \
+ ( (This)->lpVtbl -> get_accRole(This,varChild,pvarRole) )
+
+#define IAccessible2_get_accState(This,varChild,pvarState) \
+ ( (This)->lpVtbl -> get_accState(This,varChild,pvarState) )
+
+#define IAccessible2_get_accHelp(This,varChild,pszHelp) \
+ ( (This)->lpVtbl -> get_accHelp(This,varChild,pszHelp) )
+
+#define IAccessible2_get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) \
+ ( (This)->lpVtbl -> get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) )
+
+#define IAccessible2_get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) \
+ ( (This)->lpVtbl -> get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) )
+
+#define IAccessible2_get_accFocus(This,pvarChild) \
+ ( (This)->lpVtbl -> get_accFocus(This,pvarChild) )
+
+#define IAccessible2_get_accSelection(This,pvarChildren) \
+ ( (This)->lpVtbl -> get_accSelection(This,pvarChildren) )
+
+#define IAccessible2_get_accDefaultAction(This,varChild,pszDefaultAction) \
+ ( (This)->lpVtbl -> get_accDefaultAction(This,varChild,pszDefaultAction) )
+
+#define IAccessible2_accSelect(This,flagsSelect,varChild) \
+ ( (This)->lpVtbl -> accSelect(This,flagsSelect,varChild) )
+
+#define IAccessible2_accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) \
+ ( (This)->lpVtbl -> accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) )
+
+#define IAccessible2_accNavigate(This,navDir,varStart,pvarEndUpAt) \
+ ( (This)->lpVtbl -> accNavigate(This,navDir,varStart,pvarEndUpAt) )
+
+#define IAccessible2_accHitTest(This,xLeft,yTop,pvarChild) \
+ ( (This)->lpVtbl -> accHitTest(This,xLeft,yTop,pvarChild) )
+
+#define IAccessible2_accDoDefaultAction(This,varChild) \
+ ( (This)->lpVtbl -> accDoDefaultAction(This,varChild) )
+
+#define IAccessible2_put_accName(This,varChild,szName) \
+ ( (This)->lpVtbl -> put_accName(This,varChild,szName) )
+
+#define IAccessible2_put_accValue(This,varChild,szValue) \
+ ( (This)->lpVtbl -> put_accValue(This,varChild,szValue) )
+
+
+#define IAccessible2_get_nRelations(This,nRelations) \
+ ( (This)->lpVtbl -> get_nRelations(This,nRelations) )
+
+#define IAccessible2_get_relation(This,relationIndex,relation) \
+ ( (This)->lpVtbl -> get_relation(This,relationIndex,relation) )
+
+#define IAccessible2_get_relations(This,maxRelations,relations,nRelations) \
+ ( (This)->lpVtbl -> get_relations(This,maxRelations,relations,nRelations) )
+
+#define IAccessible2_role(This,role) \
+ ( (This)->lpVtbl -> role(This,role) )
+
+#define IAccessible2_scrollTo(This,scrollType) \
+ ( (This)->lpVtbl -> scrollTo(This,scrollType) )
+
+#define IAccessible2_scrollToPoint(This,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollToPoint(This,coordinateType,x,y) )
+
+#define IAccessible2_get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) \
+ ( (This)->lpVtbl -> get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) )
+
+#define IAccessible2_get_states(This,states) \
+ ( (This)->lpVtbl -> get_states(This,states) )
+
+#define IAccessible2_get_extendedRole(This,extendedRole) \
+ ( (This)->lpVtbl -> get_extendedRole(This,extendedRole) )
+
+#define IAccessible2_get_localizedExtendedRole(This,localizedExtendedRole) \
+ ( (This)->lpVtbl -> get_localizedExtendedRole(This,localizedExtendedRole) )
+
+#define IAccessible2_get_nExtendedStates(This,nExtendedStates) \
+ ( (This)->lpVtbl -> get_nExtendedStates(This,nExtendedStates) )
+
+#define IAccessible2_get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) \
+ ( (This)->lpVtbl -> get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) )
+
+#define IAccessible2_get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) \
+ ( (This)->lpVtbl -> get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) )
+
+#define IAccessible2_get_uniqueID(This,uniqueID) \
+ ( (This)->lpVtbl -> get_uniqueID(This,uniqueID) )
+
+#define IAccessible2_get_windowHandle(This,windowHandle) \
+ ( (This)->lpVtbl -> get_windowHandle(This,windowHandle) )
+
+#define IAccessible2_get_indexInParent(This,indexInParent) \
+ ( (This)->lpVtbl -> get_indexInParent(This,indexInParent) )
+
+#define IAccessible2_get_locale(This,locale) \
+ ( (This)->lpVtbl -> get_locale(This,locale) )
+
+#define IAccessible2_get_attributes(This,attributes) \
+ ( (This)->lpVtbl -> get_attributes(This,attributes) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessible2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessible2_2_INTERFACE_DEFINED__
+#define __IAccessible2_2_INTERFACE_DEFINED__
+
+/* interface IAccessible2_2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessible2_2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6C9430E9-299D-4E6F-BD01-A82A1E88D3FF")
+ IAccessible2_2 : public IAccessible2
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attribute(
+ /* [in] */ BSTR name,
+ /* [retval][out] */ VARIANT *attribute) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_accessibleWithCaret(
+ /* [out] */ IUnknown **accessible,
+ /* [retval][out] */ long *caretOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relationTargetsOfType(
+ /* [in] */ BSTR type,
+ /* [in] */ long maxTargets,
+ /* [size_is][size_is][out] */ IUnknown ***targets,
+ /* [retval][out] */ long *nTargets) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessible2_2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessible2_2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessible2_2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessible2_2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAccessible2_2 * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAccessible2_2 * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAccessible2_2 * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAccessible2_2 * This,
+ /* [annotation][in] */
+ _In_ DISPID dispIdMember,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][in] */
+ _In_ LCID lcid,
+ /* [annotation][in] */
+ _In_ WORD wFlags,
+ /* [annotation][out][in] */
+ _In_ DISPPARAMS *pDispParams,
+ /* [annotation][out] */
+ _Out_opt_ VARIANT *pVarResult,
+ /* [annotation][out] */
+ _Out_opt_ EXCEPINFO *pExcepInfo,
+ /* [annotation][out] */
+ _Out_opt_ UINT *puArgErr);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ IDispatch **ppdispParent);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *pcountChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )(
+ IAccessible2_2 * This,
+ /* [in] */ VARIANT varChild,
+ /* [retval][out] */ IDispatch **ppdispChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszName);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszValue);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDescription);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarRole);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarState);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszHelp);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )(
+ IAccessible2_2 * This,
+ /* [out] */ BSTR *pszHelpFile,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ long *pidTopic);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszKeyboardShortcut);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ VARIANT *pvarChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDefaultAction);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )(
+ IAccessible2_2 * This,
+ /* [in] */ long flagsSelect,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )(
+ IAccessible2_2 * This,
+ /* [out] */ long *pxLeft,
+ /* [out] */ long *pyTop,
+ /* [out] */ long *pcxWidth,
+ /* [out] */ long *pcyHeight,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )(
+ IAccessible2_2 * This,
+ /* [in] */ long navDir,
+ /* [optional][in] */ VARIANT varStart,
+ /* [retval][out] */ VARIANT *pvarEndUpAt);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )(
+ IAccessible2_2 * This,
+ /* [in] */ long xLeft,
+ /* [in] */ long yTop,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szName);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szValue);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *nRelations);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )(
+ IAccessible2_2 * This,
+ /* [in] */ long relationIndex,
+ /* [retval][out] */ IAccessibleRelation **relation);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )(
+ IAccessible2_2 * This,
+ /* [in] */ long maxRelations,
+ /* [length_is][size_is][out] */ IAccessibleRelation **relations,
+ /* [retval][out] */ long *nRelations);
+
+ HRESULT ( STDMETHODCALLTYPE *role )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *role);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollTo )(
+ IAccessible2_2 * This,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollToPoint )(
+ IAccessible2_2 * This,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )(
+ IAccessible2_2 * This,
+ /* [out] */ long *groupLevel,
+ /* [out] */ long *similarItemsInGroup,
+ /* [retval][out] */ long *positionInGroup);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ AccessibleStates *states);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ BSTR *extendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ BSTR *localizedExtendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )(
+ IAccessible2_2 * This,
+ /* [in] */ long maxExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )(
+ IAccessible2_2 * This,
+ /* [in] */ long maxLocalizedExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
+ /* [retval][out] */ long *nLocalizedExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *uniqueID);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ HWND *windowHandle);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *indexInParent);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ IA2Locale *locale);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ BSTR *attributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attribute )(
+ IAccessible2_2 * This,
+ /* [in] */ BSTR name,
+ /* [retval][out] */ VARIANT *attribute);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleWithCaret )(
+ IAccessible2_2 * This,
+ /* [out] */ IUnknown **accessible,
+ /* [retval][out] */ long *caretOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationTargetsOfType )(
+ IAccessible2_2 * This,
+ /* [in] */ BSTR type,
+ /* [in] */ long maxTargets,
+ /* [size_is][size_is][out] */ IUnknown ***targets,
+ /* [retval][out] */ long *nTargets);
+
+ END_INTERFACE
+ } IAccessible2_2Vtbl;
+
+ interface IAccessible2_2
+ {
+ CONST_VTBL struct IAccessible2_2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessible2_2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessible2_2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessible2_2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessible2_2_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAccessible2_2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAccessible2_2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAccessible2_2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAccessible2_2_get_accParent(This,ppdispParent) \
+ ( (This)->lpVtbl -> get_accParent(This,ppdispParent) )
+
+#define IAccessible2_2_get_accChildCount(This,pcountChildren) \
+ ( (This)->lpVtbl -> get_accChildCount(This,pcountChildren) )
+
+#define IAccessible2_2_get_accChild(This,varChild,ppdispChild) \
+ ( (This)->lpVtbl -> get_accChild(This,varChild,ppdispChild) )
+
+#define IAccessible2_2_get_accName(This,varChild,pszName) \
+ ( (This)->lpVtbl -> get_accName(This,varChild,pszName) )
+
+#define IAccessible2_2_get_accValue(This,varChild,pszValue) \
+ ( (This)->lpVtbl -> get_accValue(This,varChild,pszValue) )
+
+#define IAccessible2_2_get_accDescription(This,varChild,pszDescription) \
+ ( (This)->lpVtbl -> get_accDescription(This,varChild,pszDescription) )
+
+#define IAccessible2_2_get_accRole(This,varChild,pvarRole) \
+ ( (This)->lpVtbl -> get_accRole(This,varChild,pvarRole) )
+
+#define IAccessible2_2_get_accState(This,varChild,pvarState) \
+ ( (This)->lpVtbl -> get_accState(This,varChild,pvarState) )
+
+#define IAccessible2_2_get_accHelp(This,varChild,pszHelp) \
+ ( (This)->lpVtbl -> get_accHelp(This,varChild,pszHelp) )
+
+#define IAccessible2_2_get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) \
+ ( (This)->lpVtbl -> get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) )
+
+#define IAccessible2_2_get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) \
+ ( (This)->lpVtbl -> get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) )
+
+#define IAccessible2_2_get_accFocus(This,pvarChild) \
+ ( (This)->lpVtbl -> get_accFocus(This,pvarChild) )
+
+#define IAccessible2_2_get_accSelection(This,pvarChildren) \
+ ( (This)->lpVtbl -> get_accSelection(This,pvarChildren) )
+
+#define IAccessible2_2_get_accDefaultAction(This,varChild,pszDefaultAction) \
+ ( (This)->lpVtbl -> get_accDefaultAction(This,varChild,pszDefaultAction) )
+
+#define IAccessible2_2_accSelect(This,flagsSelect,varChild) \
+ ( (This)->lpVtbl -> accSelect(This,flagsSelect,varChild) )
+
+#define IAccessible2_2_accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) \
+ ( (This)->lpVtbl -> accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) )
+
+#define IAccessible2_2_accNavigate(This,navDir,varStart,pvarEndUpAt) \
+ ( (This)->lpVtbl -> accNavigate(This,navDir,varStart,pvarEndUpAt) )
+
+#define IAccessible2_2_accHitTest(This,xLeft,yTop,pvarChild) \
+ ( (This)->lpVtbl -> accHitTest(This,xLeft,yTop,pvarChild) )
+
+#define IAccessible2_2_accDoDefaultAction(This,varChild) \
+ ( (This)->lpVtbl -> accDoDefaultAction(This,varChild) )
+
+#define IAccessible2_2_put_accName(This,varChild,szName) \
+ ( (This)->lpVtbl -> put_accName(This,varChild,szName) )
+
+#define IAccessible2_2_put_accValue(This,varChild,szValue) \
+ ( (This)->lpVtbl -> put_accValue(This,varChild,szValue) )
+
+
+#define IAccessible2_2_get_nRelations(This,nRelations) \
+ ( (This)->lpVtbl -> get_nRelations(This,nRelations) )
+
+#define IAccessible2_2_get_relation(This,relationIndex,relation) \
+ ( (This)->lpVtbl -> get_relation(This,relationIndex,relation) )
+
+#define IAccessible2_2_get_relations(This,maxRelations,relations,nRelations) \
+ ( (This)->lpVtbl -> get_relations(This,maxRelations,relations,nRelations) )
+
+#define IAccessible2_2_role(This,role) \
+ ( (This)->lpVtbl -> role(This,role) )
+
+#define IAccessible2_2_scrollTo(This,scrollType) \
+ ( (This)->lpVtbl -> scrollTo(This,scrollType) )
+
+#define IAccessible2_2_scrollToPoint(This,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollToPoint(This,coordinateType,x,y) )
+
+#define IAccessible2_2_get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) \
+ ( (This)->lpVtbl -> get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) )
+
+#define IAccessible2_2_get_states(This,states) \
+ ( (This)->lpVtbl -> get_states(This,states) )
+
+#define IAccessible2_2_get_extendedRole(This,extendedRole) \
+ ( (This)->lpVtbl -> get_extendedRole(This,extendedRole) )
+
+#define IAccessible2_2_get_localizedExtendedRole(This,localizedExtendedRole) \
+ ( (This)->lpVtbl -> get_localizedExtendedRole(This,localizedExtendedRole) )
+
+#define IAccessible2_2_get_nExtendedStates(This,nExtendedStates) \
+ ( (This)->lpVtbl -> get_nExtendedStates(This,nExtendedStates) )
+
+#define IAccessible2_2_get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) \
+ ( (This)->lpVtbl -> get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) )
+
+#define IAccessible2_2_get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) \
+ ( (This)->lpVtbl -> get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) )
+
+#define IAccessible2_2_get_uniqueID(This,uniqueID) \
+ ( (This)->lpVtbl -> get_uniqueID(This,uniqueID) )
+
+#define IAccessible2_2_get_windowHandle(This,windowHandle) \
+ ( (This)->lpVtbl -> get_windowHandle(This,windowHandle) )
+
+#define IAccessible2_2_get_indexInParent(This,indexInParent) \
+ ( (This)->lpVtbl -> get_indexInParent(This,indexInParent) )
+
+#define IAccessible2_2_get_locale(This,locale) \
+ ( (This)->lpVtbl -> get_locale(This,locale) )
+
+#define IAccessible2_2_get_attributes(This,attributes) \
+ ( (This)->lpVtbl -> get_attributes(This,attributes) )
+
+
+#define IAccessible2_2_get_attribute(This,name,attribute) \
+ ( (This)->lpVtbl -> get_attribute(This,name,attribute) )
+
+#define IAccessible2_2_get_accessibleWithCaret(This,accessible,caretOffset) \
+ ( (This)->lpVtbl -> get_accessibleWithCaret(This,accessible,caretOffset) )
+
+#define IAccessible2_2_get_relationTargetsOfType(This,type,maxTargets,targets,nTargets) \
+ ( (This)->lpVtbl -> get_relationTargetsOfType(This,type,maxTargets,targets,nTargets) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessible2_2_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0004 */
+/* [local] */
+
+typedef long IA2Color;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0004_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0004_v0_0_s_ifspec;
+
+#ifndef __IAccessibleComponent_INTERFACE_DEFINED__
+#define __IAccessibleComponent_INTERFACE_DEFINED__
+
+/* interface IAccessibleComponent */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleComponent;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("1546D4B0-4C98-4bda-89AE-9A64748BDDE4")
+ IAccessibleComponent : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_locationInParent(
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_foreground(
+ /* [retval][out] */ IA2Color *foreground) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_background(
+ /* [retval][out] */ IA2Color *background) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleComponentVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleComponent * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleComponent * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleComponent * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationInParent )(
+ IAccessibleComponent * This,
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_foreground )(
+ IAccessibleComponent * This,
+ /* [retval][out] */ IA2Color *foreground);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_background )(
+ IAccessibleComponent * This,
+ /* [retval][out] */ IA2Color *background);
+
+ END_INTERFACE
+ } IAccessibleComponentVtbl;
+
+ interface IAccessibleComponent
+ {
+ CONST_VTBL struct IAccessibleComponentVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleComponent_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleComponent_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleComponent_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleComponent_get_locationInParent(This,x,y) \
+ ( (This)->lpVtbl -> get_locationInParent(This,x,y) )
+
+#define IAccessibleComponent_get_foreground(This,foreground) \
+ ( (This)->lpVtbl -> get_foreground(This,foreground) )
+
+#define IAccessibleComponent_get_background(This,background) \
+ ( (This)->lpVtbl -> get_background(This,background) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleComponent_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleValue_INTERFACE_DEFINED__
+#define __IAccessibleValue_INTERFACE_DEFINED__
+
+/* interface IAccessibleValue */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleValue;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("35855B5B-C566-4fd0-A7B1-E65465600394")
+ IAccessibleValue : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_currentValue(
+ /* [retval][out] */ VARIANT *currentValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setCurrentValue(
+ /* [in] */ VARIANT value) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_maximumValue(
+ /* [retval][out] */ VARIANT *maximumValue) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_minimumValue(
+ /* [retval][out] */ VARIANT *minimumValue) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleValueVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleValue * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleValue * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleValue * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentValue )(
+ IAccessibleValue * This,
+ /* [retval][out] */ VARIANT *currentValue);
+
+ HRESULT ( STDMETHODCALLTYPE *setCurrentValue )(
+ IAccessibleValue * This,
+ /* [in] */ VARIANT value);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_maximumValue )(
+ IAccessibleValue * This,
+ /* [retval][out] */ VARIANT *maximumValue);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_minimumValue )(
+ IAccessibleValue * This,
+ /* [retval][out] */ VARIANT *minimumValue);
+
+ END_INTERFACE
+ } IAccessibleValueVtbl;
+
+ interface IAccessibleValue
+ {
+ CONST_VTBL struct IAccessibleValueVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleValue_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleValue_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleValue_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleValue_get_currentValue(This,currentValue) \
+ ( (This)->lpVtbl -> get_currentValue(This,currentValue) )
+
+#define IAccessibleValue_setCurrentValue(This,value) \
+ ( (This)->lpVtbl -> setCurrentValue(This,value) )
+
+#define IAccessibleValue_get_maximumValue(This,maximumValue) \
+ ( (This)->lpVtbl -> get_maximumValue(This,maximumValue) )
+
+#define IAccessibleValue_get_minimumValue(This,minimumValue) \
+ ( (This)->lpVtbl -> get_minimumValue(This,minimumValue) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleValue_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0006 */
+/* [local] */
+
+typedef struct IA2TextSegment
+ {
+ BSTR text;
+ long start;
+ long end;
+ } IA2TextSegment;
+
+
+enum IA2TextBoundaryType
+ {
+ IA2_TEXT_BOUNDARY_CHAR = 0,
+ IA2_TEXT_BOUNDARY_WORD = ( IA2_TEXT_BOUNDARY_CHAR + 1 ) ,
+ IA2_TEXT_BOUNDARY_SENTENCE = ( IA2_TEXT_BOUNDARY_WORD + 1 ) ,
+ IA2_TEXT_BOUNDARY_PARAGRAPH = ( IA2_TEXT_BOUNDARY_SENTENCE + 1 ) ,
+ IA2_TEXT_BOUNDARY_LINE = ( IA2_TEXT_BOUNDARY_PARAGRAPH + 1 ) ,
+ IA2_TEXT_BOUNDARY_ALL = ( IA2_TEXT_BOUNDARY_LINE + 1 )
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0006_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0006_v0_0_s_ifspec;
+
+#ifndef __IAccessibleText_INTERFACE_DEFINED__
+#define __IAccessibleText_INTERFACE_DEFINED__
+
+/* interface IAccessibleText */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleText;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("24FD2FFB-3AAD-4a08-8335-A3AD89C0FB4B")
+ IAccessibleText : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE addSelection(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributes(
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caretOffset(
+ /* [retval][out] */ long *offset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_characterExtents(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelections(
+ /* [retval][out] */ long *nSelections) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_offsetAtPoint(
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selection(
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_text(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textBeforeOffset(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textAfterOffset(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textAtOffset(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE removeSelection(
+ /* [in] */ long selectionIndex) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setCaretOffset(
+ /* [in] */ long offset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setSelection(
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nCharacters(
+ /* [retval][out] */ long *nCharacters) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollSubstringTo(
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollSubstringToPoint(
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_newText(
+ /* [retval][out] */ IA2TextSegment *newText) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_oldText(
+ /* [retval][out] */ IA2TextSegment *oldText) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleText * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleText * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleText * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleText * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleText * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleText * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleText * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleText * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleText * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleText * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleText * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleText * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleText * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleText * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ END_INTERFACE
+ } IAccessibleTextVtbl;
+
+ interface IAccessibleText
+ {
+ CONST_VTBL struct IAccessibleTextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleText_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleText_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleText_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleText_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleText_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleText_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleText_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleText_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleText_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleText_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleText_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleText_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleText_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleText_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleText_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleText_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleText_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleText_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleText2_INTERFACE_DEFINED__
+#define __IAccessibleText2_INTERFACE_DEFINED__
+
+/* interface IAccessibleText2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleText2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("9690A9CC-5C80-4DF5-852E-2D5AE4189A54")
+ IAccessibleText2 : public IAccessibleText
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributeRange(
+ /* [in] */ long offset,
+ /* [in] */ BSTR filter,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *attributeValues) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleText2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleText2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleText2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleText2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleText2 * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleText2 * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleText2 * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleText2 * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleText2 * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleText2 * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleText2 * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleText2 * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributeRange )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ BSTR filter,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *attributeValues);
+
+ END_INTERFACE
+ } IAccessibleText2Vtbl;
+
+ interface IAccessibleText2
+ {
+ CONST_VTBL struct IAccessibleText2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleText2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleText2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleText2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleText2_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleText2_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleText2_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleText2_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleText2_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleText2_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleText2_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText2_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleText2_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText2_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText2_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText2_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleText2_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleText2_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText2_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleText2_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleText2_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleText2_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleText2_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+
+#define IAccessibleText2_get_attributeRange(This,offset,filter,startOffset,endOffset,attributeValues) \
+ ( (This)->lpVtbl -> get_attributeRange(This,offset,filter,startOffset,endOffset,attributeValues) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleText2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleEditableText_INTERFACE_DEFINED__
+#define __IAccessibleEditableText_INTERFACE_DEFINED__
+
+/* interface IAccessibleEditableText */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleEditableText;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("A59AA09A-7011-4b65-939D-32B1FB5547E3")
+ IAccessibleEditableText : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE copyText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE deleteText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE insertText(
+ /* [in] */ long offset,
+ /* [in] */ BSTR *text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE cutText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE pasteText(
+ /* [in] */ long offset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE replaceText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setAttributes(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *attributes) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleEditableTextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleEditableText * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleEditableText * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleEditableText * This);
+
+ HRESULT ( STDMETHODCALLTYPE *copyText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ HRESULT ( STDMETHODCALLTYPE *deleteText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ HRESULT ( STDMETHODCALLTYPE *insertText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long offset,
+ /* [in] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *cutText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ HRESULT ( STDMETHODCALLTYPE *pasteText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *replaceText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *setAttributes )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *attributes);
+
+ END_INTERFACE
+ } IAccessibleEditableTextVtbl;
+
+ interface IAccessibleEditableText
+ {
+ CONST_VTBL struct IAccessibleEditableTextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleEditableText_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleEditableText_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleEditableText_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleEditableText_copyText(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> copyText(This,startOffset,endOffset) )
+
+#define IAccessibleEditableText_deleteText(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> deleteText(This,startOffset,endOffset) )
+
+#define IAccessibleEditableText_insertText(This,offset,text) \
+ ( (This)->lpVtbl -> insertText(This,offset,text) )
+
+#define IAccessibleEditableText_cutText(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> cutText(This,startOffset,endOffset) )
+
+#define IAccessibleEditableText_pasteText(This,offset) \
+ ( (This)->lpVtbl -> pasteText(This,offset) )
+
+#define IAccessibleEditableText_replaceText(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> replaceText(This,startOffset,endOffset,text) )
+
+#define IAccessibleEditableText_setAttributes(This,startOffset,endOffset,attributes) \
+ ( (This)->lpVtbl -> setAttributes(This,startOffset,endOffset,attributes) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleEditableText_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleHyperlink_INTERFACE_DEFINED__
+#define __IAccessibleHyperlink_INTERFACE_DEFINED__
+
+/* interface IAccessibleHyperlink */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleHyperlink;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("01C20F2B-3DD2-400f-949F-AD00BDAB1D41")
+ IAccessibleHyperlink : public IAccessibleAction
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchor(
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchor) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchorTarget(
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchorTarget) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_startIndex(
+ /* [retval][out] */ long *index) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_endIndex(
+ /* [retval][out] */ long *index) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_valid(
+ /* [retval][out] */ boolean *valid) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleHyperlinkVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleHyperlink * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleHyperlink * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleHyperlink * This);
+
+ HRESULT ( STDMETHODCALLTYPE *nActions )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ long *nActions);
+
+ HRESULT ( STDMETHODCALLTYPE *doAction )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [in] */ long nMaxBindings,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
+ /* [retval][out] */ long *nBindings);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *localizedName);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchor )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchor);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchorTarget);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_startIndex )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ long *index);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_endIndex )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ long *index);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_valid )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ boolean *valid);
+
+ END_INTERFACE
+ } IAccessibleHyperlinkVtbl;
+
+ interface IAccessibleHyperlink
+ {
+ CONST_VTBL struct IAccessibleHyperlinkVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleHyperlink_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleHyperlink_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleHyperlink_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleHyperlink_nActions(This,nActions) \
+ ( (This)->lpVtbl -> nActions(This,nActions) )
+
+#define IAccessibleHyperlink_doAction(This,actionIndex) \
+ ( (This)->lpVtbl -> doAction(This,actionIndex) )
+
+#define IAccessibleHyperlink_get_description(This,actionIndex,description) \
+ ( (This)->lpVtbl -> get_description(This,actionIndex,description) )
+
+#define IAccessibleHyperlink_get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) \
+ ( (This)->lpVtbl -> get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) )
+
+#define IAccessibleHyperlink_get_name(This,actionIndex,name) \
+ ( (This)->lpVtbl -> get_name(This,actionIndex,name) )
+
+#define IAccessibleHyperlink_get_localizedName(This,actionIndex,localizedName) \
+ ( (This)->lpVtbl -> get_localizedName(This,actionIndex,localizedName) )
+
+
+#define IAccessibleHyperlink_get_anchor(This,index,anchor) \
+ ( (This)->lpVtbl -> get_anchor(This,index,anchor) )
+
+#define IAccessibleHyperlink_get_anchorTarget(This,index,anchorTarget) \
+ ( (This)->lpVtbl -> get_anchorTarget(This,index,anchorTarget) )
+
+#define IAccessibleHyperlink_get_startIndex(This,index) \
+ ( (This)->lpVtbl -> get_startIndex(This,index) )
+
+#define IAccessibleHyperlink_get_endIndex(This,index) \
+ ( (This)->lpVtbl -> get_endIndex(This,index) )
+
+#define IAccessibleHyperlink_get_valid(This,valid) \
+ ( (This)->lpVtbl -> get_valid(This,valid) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleHyperlink_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext_INTERFACE_DEFINED__
+#define __IAccessibleHypertext_INTERFACE_DEFINED__
+
+/* interface IAccessibleHypertext */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleHypertext;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6B4F8BBF-F1F2-418a-B35E-A195BC4103B9")
+ IAccessibleHypertext : public IAccessibleText
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nHyperlinks(
+ /* [retval][out] */ long *hyperlinkCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlink(
+ /* [in] */ long index,
+ /* [retval][out] */ IAccessibleHyperlink **hyperlink) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlinkIndex(
+ /* [in] */ long charIndex,
+ /* [retval][out] */ long *hyperlinkIndex) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleHypertextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleHypertext * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleHypertext * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleHypertext * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleHypertext * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *hyperlinkCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )(
+ IAccessibleHypertext * This,
+ /* [in] */ long index,
+ /* [retval][out] */ IAccessibleHyperlink **hyperlink);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )(
+ IAccessibleHypertext * This,
+ /* [in] */ long charIndex,
+ /* [retval][out] */ long *hyperlinkIndex);
+
+ END_INTERFACE
+ } IAccessibleHypertextVtbl;
+
+ interface IAccessibleHypertext
+ {
+ CONST_VTBL struct IAccessibleHypertextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleHypertext_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleHypertext_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleHypertext_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleHypertext_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleHypertext_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleHypertext_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleHypertext_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleHypertext_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleHypertext_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleHypertext_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleHypertext_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleHypertext_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleHypertext_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleHypertext_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleHypertext_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleHypertext_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+
+#define IAccessibleHypertext_get_nHyperlinks(This,hyperlinkCount) \
+ ( (This)->lpVtbl -> get_nHyperlinks(This,hyperlinkCount) )
+
+#define IAccessibleHypertext_get_hyperlink(This,index,hyperlink) \
+ ( (This)->lpVtbl -> get_hyperlink(This,index,hyperlink) )
+
+#define IAccessibleHypertext_get_hyperlinkIndex(This,charIndex,hyperlinkIndex) \
+ ( (This)->lpVtbl -> get_hyperlinkIndex(This,charIndex,hyperlinkIndex) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleHypertext_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext2_INTERFACE_DEFINED__
+#define __IAccessibleHypertext2_INTERFACE_DEFINED__
+
+/* interface IAccessibleHypertext2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleHypertext2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("CF64D89F-8287-4B44-8501-A827453A6077")
+ IAccessibleHypertext2 : public IAccessibleHypertext
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlinks(
+ /* [size_is][size_is][out] */ IAccessibleHyperlink ***hyperlinks,
+ /* [retval][out] */ long *nHyperlinks) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleHypertext2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleHypertext2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleHypertext2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ long *hyperlinkCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long index,
+ /* [retval][out] */ IAccessibleHyperlink **hyperlink);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long charIndex,
+ /* [retval][out] */ long *hyperlinkIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinks )(
+ IAccessibleHypertext2 * This,
+ /* [size_is][size_is][out] */ IAccessibleHyperlink ***hyperlinks,
+ /* [retval][out] */ long *nHyperlinks);
+
+ END_INTERFACE
+ } IAccessibleHypertext2Vtbl;
+
+ interface IAccessibleHypertext2
+ {
+ CONST_VTBL struct IAccessibleHypertext2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleHypertext2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleHypertext2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleHypertext2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleHypertext2_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleHypertext2_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleHypertext2_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleHypertext2_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleHypertext2_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleHypertext2_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleHypertext2_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext2_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext2_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext2_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext2_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext2_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleHypertext2_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleHypertext2_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext2_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleHypertext2_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleHypertext2_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleHypertext2_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleHypertext2_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+
+#define IAccessibleHypertext2_get_nHyperlinks(This,hyperlinkCount) \
+ ( (This)->lpVtbl -> get_nHyperlinks(This,hyperlinkCount) )
+
+#define IAccessibleHypertext2_get_hyperlink(This,index,hyperlink) \
+ ( (This)->lpVtbl -> get_hyperlink(This,index,hyperlink) )
+
+#define IAccessibleHypertext2_get_hyperlinkIndex(This,charIndex,hyperlinkIndex) \
+ ( (This)->lpVtbl -> get_hyperlinkIndex(This,charIndex,hyperlinkIndex) )
+
+
+#define IAccessibleHypertext2_get_hyperlinks(This,hyperlinks,nHyperlinks) \
+ ( (This)->lpVtbl -> get_hyperlinks(This,hyperlinks,nHyperlinks) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleHypertext2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleTable_INTERFACE_DEFINED__
+#define __IAccessibleTable_INTERFACE_DEFINED__
+
+/* interface IAccessibleTable */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleTable;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("35AD8070-C20C-4fb4-B094-F4F7275DD469")
+ IAccessibleTable : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_accessibleAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_childIndex(
+ /* [in] */ long rowIndex,
+ /* [in] */ long columnIndex,
+ /* [retval][out] */ long *cellIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription(
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtentAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nColumnsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeader(
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingRowIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex(
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *columnIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedChildren(
+ /* [retval][out] */ long *cellCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription(
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtentAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nRowsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeader(
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingColumnIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex(
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *rowIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedChildren(
+ /* [in] */ long maxChildren,
+ /* [length_is][length_is][size_is][size_is][out] */ long **children,
+ /* [retval][out] */ long *nChildren) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns(
+ /* [in] */ long maxColumns,
+ /* [length_is][length_is][size_is][size_is][out] */ long **columns,
+ /* [retval][out] */ long *nColumns) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows(
+ /* [in] */ long maxRows,
+ /* [length_is][length_is][size_is][size_is][out] */ long **rows,
+ /* [retval][out] */ long *nRows) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected(
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected(
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtentsAtIndex(
+ /* [in] */ long index,
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange(
+ /* [retval][out] */ IA2TableModelChange *modelChange) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTableVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleTable * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleTable * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleTable * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleAt )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )(
+ IAccessibleTable * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_childIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long rowIndex,
+ /* [in] */ long columnIndex,
+ /* [retval][out] */ long *cellIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )(
+ IAccessibleTable * This,
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtentAt )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nColumnsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeader )(
+ IAccessibleTable * This,
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingRowIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *columnIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedChildren )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *cellCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtentAt )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nRowsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeader )(
+ IAccessibleTable * This,
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingColumnIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *rowIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedChildren )(
+ IAccessibleTable * This,
+ /* [in] */ long maxChildren,
+ /* [length_is][length_is][size_is][size_is][out] */ long **children,
+ /* [retval][out] */ long *nChildren);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )(
+ IAccessibleTable * This,
+ /* [in] */ long maxColumns,
+ /* [length_is][length_is][size_is][size_is][out] */ long **columns,
+ /* [retval][out] */ long *nColumns);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )(
+ IAccessibleTable * This,
+ /* [in] */ long maxRows,
+ /* [length_is][length_is][size_is][size_is][out] */ long **rows,
+ /* [retval][out] */ long *nRows);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )(
+ IAccessibleTable * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )(
+ IAccessibleTable * This,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected);
+
+ HRESULT ( STDMETHODCALLTYPE *selectRow )(
+ IAccessibleTable * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *selectColumn )(
+ IAccessibleTable * This,
+ /* [in] */ long column);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectRow )(
+ IAccessibleTable * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectColumn )(
+ IAccessibleTable * This,
+ /* [in] */ long column);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtentsAtIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long index,
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )(
+ IAccessibleTable * This,
+ /* [retval][out] */ IA2TableModelChange *modelChange);
+
+ END_INTERFACE
+ } IAccessibleTableVtbl;
+
+ interface IAccessibleTable
+ {
+ CONST_VTBL struct IAccessibleTableVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleTable_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleTable_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleTable_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleTable_get_accessibleAt(This,row,column,accessible) \
+ ( (This)->lpVtbl -> get_accessibleAt(This,row,column,accessible) )
+
+#define IAccessibleTable_get_caption(This,accessible) \
+ ( (This)->lpVtbl -> get_caption(This,accessible) )
+
+#define IAccessibleTable_get_childIndex(This,rowIndex,columnIndex,cellIndex) \
+ ( (This)->lpVtbl -> get_childIndex(This,rowIndex,columnIndex,cellIndex) )
+
+#define IAccessibleTable_get_columnDescription(This,column,description) \
+ ( (This)->lpVtbl -> get_columnDescription(This,column,description) )
+
+#define IAccessibleTable_get_columnExtentAt(This,row,column,nColumnsSpanned) \
+ ( (This)->lpVtbl -> get_columnExtentAt(This,row,column,nColumnsSpanned) )
+
+#define IAccessibleTable_get_columnHeader(This,accessibleTable,startingRowIndex) \
+ ( (This)->lpVtbl -> get_columnHeader(This,accessibleTable,startingRowIndex) )
+
+#define IAccessibleTable_get_columnIndex(This,cellIndex,columnIndex) \
+ ( (This)->lpVtbl -> get_columnIndex(This,cellIndex,columnIndex) )
+
+#define IAccessibleTable_get_nColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nColumns(This,columnCount) )
+
+#define IAccessibleTable_get_nRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nRows(This,rowCount) )
+
+#define IAccessibleTable_get_nSelectedChildren(This,cellCount) \
+ ( (This)->lpVtbl -> get_nSelectedChildren(This,cellCount) )
+
+#define IAccessibleTable_get_nSelectedColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nSelectedColumns(This,columnCount) )
+
+#define IAccessibleTable_get_nSelectedRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nSelectedRows(This,rowCount) )
+
+#define IAccessibleTable_get_rowDescription(This,row,description) \
+ ( (This)->lpVtbl -> get_rowDescription(This,row,description) )
+
+#define IAccessibleTable_get_rowExtentAt(This,row,column,nRowsSpanned) \
+ ( (This)->lpVtbl -> get_rowExtentAt(This,row,column,nRowsSpanned) )
+
+#define IAccessibleTable_get_rowHeader(This,accessibleTable,startingColumnIndex) \
+ ( (This)->lpVtbl -> get_rowHeader(This,accessibleTable,startingColumnIndex) )
+
+#define IAccessibleTable_get_rowIndex(This,cellIndex,rowIndex) \
+ ( (This)->lpVtbl -> get_rowIndex(This,cellIndex,rowIndex) )
+
+#define IAccessibleTable_get_selectedChildren(This,maxChildren,children,nChildren) \
+ ( (This)->lpVtbl -> get_selectedChildren(This,maxChildren,children,nChildren) )
+
+#define IAccessibleTable_get_selectedColumns(This,maxColumns,columns,nColumns) \
+ ( (This)->lpVtbl -> get_selectedColumns(This,maxColumns,columns,nColumns) )
+
+#define IAccessibleTable_get_selectedRows(This,maxRows,rows,nRows) \
+ ( (This)->lpVtbl -> get_selectedRows(This,maxRows,rows,nRows) )
+
+#define IAccessibleTable_get_summary(This,accessible) \
+ ( (This)->lpVtbl -> get_summary(This,accessible) )
+
+#define IAccessibleTable_get_isColumnSelected(This,column,isSelected) \
+ ( (This)->lpVtbl -> get_isColumnSelected(This,column,isSelected) )
+
+#define IAccessibleTable_get_isRowSelected(This,row,isSelected) \
+ ( (This)->lpVtbl -> get_isRowSelected(This,row,isSelected) )
+
+#define IAccessibleTable_get_isSelected(This,row,column,isSelected) \
+ ( (This)->lpVtbl -> get_isSelected(This,row,column,isSelected) )
+
+#define IAccessibleTable_selectRow(This,row) \
+ ( (This)->lpVtbl -> selectRow(This,row) )
+
+#define IAccessibleTable_selectColumn(This,column) \
+ ( (This)->lpVtbl -> selectColumn(This,column) )
+
+#define IAccessibleTable_unselectRow(This,row) \
+ ( (This)->lpVtbl -> unselectRow(This,row) )
+
+#define IAccessibleTable_unselectColumn(This,column) \
+ ( (This)->lpVtbl -> unselectColumn(This,column) )
+
+#define IAccessibleTable_get_rowColumnExtentsAtIndex(This,index,row,column,rowExtents,columnExtents,isSelected) \
+ ( (This)->lpVtbl -> get_rowColumnExtentsAtIndex(This,index,row,column,rowExtents,columnExtents,isSelected) )
+
+#define IAccessibleTable_get_modelChange(This,modelChange) \
+ ( (This)->lpVtbl -> get_modelChange(This,modelChange) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleTable_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleTable2_INTERFACE_DEFINED__
+#define __IAccessibleTable2_INTERFACE_DEFINED__
+
+/* interface IAccessibleTable2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleTable2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6167f295-06f0-4cdd-a1fa-02e25153d869")
+ IAccessibleTable2 : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_cellAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **cell) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription(
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedCells(
+ /* [retval][out] */ long *cellCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription(
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedCells(
+ /* [size_is][size_is][out] */ IUnknown ***cells,
+ /* [retval][out] */ long *nSelectedCells) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns(
+ /* [size_is][size_is][out] */ long **selectedColumns,
+ /* [retval][out] */ long *nColumns) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows(
+ /* [size_is][size_is][out] */ long **selectedRows,
+ /* [retval][out] */ long *nRows) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected(
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected(
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange(
+ /* [retval][out] */ IA2TableModelChange *modelChange) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTable2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleTable2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleTable2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleTable2 * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_cellAt )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **cell);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedCells )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *cellCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedCells )(
+ IAccessibleTable2 * This,
+ /* [size_is][size_is][out] */ IUnknown ***cells,
+ /* [retval][out] */ long *nSelectedCells);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )(
+ IAccessibleTable2 * This,
+ /* [size_is][size_is][out] */ long **selectedColumns,
+ /* [retval][out] */ long *nColumns);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )(
+ IAccessibleTable2 * This,
+ /* [size_is][size_is][out] */ long **selectedRows,
+ /* [retval][out] */ long *nRows);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected);
+
+ HRESULT ( STDMETHODCALLTYPE *selectRow )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *selectColumn )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectRow )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectColumn )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ IA2TableModelChange *modelChange);
+
+ END_INTERFACE
+ } IAccessibleTable2Vtbl;
+
+ interface IAccessibleTable2
+ {
+ CONST_VTBL struct IAccessibleTable2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleTable2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleTable2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleTable2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleTable2_get_cellAt(This,row,column,cell) \
+ ( (This)->lpVtbl -> get_cellAt(This,row,column,cell) )
+
+#define IAccessibleTable2_get_caption(This,accessible) \
+ ( (This)->lpVtbl -> get_caption(This,accessible) )
+
+#define IAccessibleTable2_get_columnDescription(This,column,description) \
+ ( (This)->lpVtbl -> get_columnDescription(This,column,description) )
+
+#define IAccessibleTable2_get_nColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nColumns(This,columnCount) )
+
+#define IAccessibleTable2_get_nRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nRows(This,rowCount) )
+
+#define IAccessibleTable2_get_nSelectedCells(This,cellCount) \
+ ( (This)->lpVtbl -> get_nSelectedCells(This,cellCount) )
+
+#define IAccessibleTable2_get_nSelectedColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nSelectedColumns(This,columnCount) )
+
+#define IAccessibleTable2_get_nSelectedRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nSelectedRows(This,rowCount) )
+
+#define IAccessibleTable2_get_rowDescription(This,row,description) \
+ ( (This)->lpVtbl -> get_rowDescription(This,row,description) )
+
+#define IAccessibleTable2_get_selectedCells(This,cells,nSelectedCells) \
+ ( (This)->lpVtbl -> get_selectedCells(This,cells,nSelectedCells) )
+
+#define IAccessibleTable2_get_selectedColumns(This,selectedColumns,nColumns) \
+ ( (This)->lpVtbl -> get_selectedColumns(This,selectedColumns,nColumns) )
+
+#define IAccessibleTable2_get_selectedRows(This,selectedRows,nRows) \
+ ( (This)->lpVtbl -> get_selectedRows(This,selectedRows,nRows) )
+
+#define IAccessibleTable2_get_summary(This,accessible) \
+ ( (This)->lpVtbl -> get_summary(This,accessible) )
+
+#define IAccessibleTable2_get_isColumnSelected(This,column,isSelected) \
+ ( (This)->lpVtbl -> get_isColumnSelected(This,column,isSelected) )
+
+#define IAccessibleTable2_get_isRowSelected(This,row,isSelected) \
+ ( (This)->lpVtbl -> get_isRowSelected(This,row,isSelected) )
+
+#define IAccessibleTable2_selectRow(This,row) \
+ ( (This)->lpVtbl -> selectRow(This,row) )
+
+#define IAccessibleTable2_selectColumn(This,column) \
+ ( (This)->lpVtbl -> selectColumn(This,column) )
+
+#define IAccessibleTable2_unselectRow(This,row) \
+ ( (This)->lpVtbl -> unselectRow(This,row) )
+
+#define IAccessibleTable2_unselectColumn(This,column) \
+ ( (This)->lpVtbl -> unselectColumn(This,column) )
+
+#define IAccessibleTable2_get_modelChange(This,modelChange) \
+ ( (This)->lpVtbl -> get_modelChange(This,modelChange) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleTable2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleTableCell_INTERFACE_DEFINED__
+#define __IAccessibleTableCell_INTERFACE_DEFINED__
+
+/* interface IAccessibleTableCell */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleTableCell;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("594116B1-C99F-4847-AD06-0A7A86ECE645")
+ IAccessibleTableCell : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtent(
+ /* [retval][out] */ long *nColumnsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeaderCells(
+ /* [size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nColumnHeaderCells) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex(
+ /* [retval][out] */ long *columnIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtent(
+ /* [retval][out] */ long *nRowsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeaderCells(
+ /* [size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nRowHeaderCells) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex(
+ /* [retval][out] */ long *rowIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected(
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtents(
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_table(
+ /* [retval][out] */ IUnknown **table) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTableCellVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleTableCell * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleTableCell * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleTableCell * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtent )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *nColumnsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeaderCells )(
+ IAccessibleTableCell * This,
+ /* [size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nColumnHeaderCells);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *columnIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtent )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *nRowsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeaderCells )(
+ IAccessibleTableCell * This,
+ /* [size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nRowHeaderCells);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *rowIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtents )(
+ IAccessibleTableCell * This,
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_table )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ IUnknown **table);
+
+ END_INTERFACE
+ } IAccessibleTableCellVtbl;
+
+ interface IAccessibleTableCell
+ {
+ CONST_VTBL struct IAccessibleTableCellVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleTableCell_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleTableCell_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleTableCell_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleTableCell_get_columnExtent(This,nColumnsSpanned) \
+ ( (This)->lpVtbl -> get_columnExtent(This,nColumnsSpanned) )
+
+#define IAccessibleTableCell_get_columnHeaderCells(This,cellAccessibles,nColumnHeaderCells) \
+ ( (This)->lpVtbl -> get_columnHeaderCells(This,cellAccessibles,nColumnHeaderCells) )
+
+#define IAccessibleTableCell_get_columnIndex(This,columnIndex) \
+ ( (This)->lpVtbl -> get_columnIndex(This,columnIndex) )
+
+#define IAccessibleTableCell_get_rowExtent(This,nRowsSpanned) \
+ ( (This)->lpVtbl -> get_rowExtent(This,nRowsSpanned) )
+
+#define IAccessibleTableCell_get_rowHeaderCells(This,cellAccessibles,nRowHeaderCells) \
+ ( (This)->lpVtbl -> get_rowHeaderCells(This,cellAccessibles,nRowHeaderCells) )
+
+#define IAccessibleTableCell_get_rowIndex(This,rowIndex) \
+ ( (This)->lpVtbl -> get_rowIndex(This,rowIndex) )
+
+#define IAccessibleTableCell_get_isSelected(This,isSelected) \
+ ( (This)->lpVtbl -> get_isSelected(This,isSelected) )
+
+#define IAccessibleTableCell_get_rowColumnExtents(This,row,column,rowExtents,columnExtents,isSelected) \
+ ( (This)->lpVtbl -> get_rowColumnExtents(This,row,column,rowExtents,columnExtents,isSelected) )
+
+#define IAccessibleTableCell_get_table(This,table) \
+ ( (This)->lpVtbl -> get_table(This,table) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleTableCell_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleImage_INTERFACE_DEFINED__
+#define __IAccessibleImage_INTERFACE_DEFINED__
+
+/* interface IAccessibleImage */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleImage;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("FE5ABB3D-615E-4f7b-909F-5F0EDA9E8DDE")
+ IAccessibleImage : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_description(
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_imagePosition(
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_imageSize(
+ /* [out] */ long *height,
+ /* [retval][out] */ long *width) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleImageVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleImage * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleImage * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleImage * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
+ IAccessibleImage * This,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imagePosition )(
+ IAccessibleImage * This,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageSize )(
+ IAccessibleImage * This,
+ /* [out] */ long *height,
+ /* [retval][out] */ long *width);
+
+ END_INTERFACE
+ } IAccessibleImageVtbl;
+
+ interface IAccessibleImage
+ {
+ CONST_VTBL struct IAccessibleImageVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleImage_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleImage_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleImage_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleImage_get_description(This,description) \
+ ( (This)->lpVtbl -> get_description(This,description) )
+
+#define IAccessibleImage_get_imagePosition(This,coordinateType,x,y) \
+ ( (This)->lpVtbl -> get_imagePosition(This,coordinateType,x,y) )
+
+#define IAccessibleImage_get_imageSize(This,height,width) \
+ ( (This)->lpVtbl -> get_imageSize(This,height,width) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleImage_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0016 */
+/* [local] */
+
+
+enum IA2EventID
+ {
+ IA2_EVENT_ACTION_CHANGED = 0x101,
+ IA2_EVENT_ACTIVE_DECENDENT_CHANGED = ( IA2_EVENT_ACTION_CHANGED + 1 ) ,
+ IA2_EVENT_ACTIVE_DESCENDANT_CHANGED = IA2_EVENT_ACTIVE_DECENDENT_CHANGED,
+ IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED = ( IA2_EVENT_ACTIVE_DESCENDANT_CHANGED + 1 ) ,
+ IA2_EVENT_DOCUMENT_CONTENT_CHANGED = ( IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED + 1 ) ,
+ IA2_EVENT_DOCUMENT_LOAD_COMPLETE = ( IA2_EVENT_DOCUMENT_CONTENT_CHANGED + 1 ) ,
+ IA2_EVENT_DOCUMENT_LOAD_STOPPED = ( IA2_EVENT_DOCUMENT_LOAD_COMPLETE + 1 ) ,
+ IA2_EVENT_DOCUMENT_RELOAD = ( IA2_EVENT_DOCUMENT_LOAD_STOPPED + 1 ) ,
+ IA2_EVENT_HYPERLINK_END_INDEX_CHANGED = ( IA2_EVENT_DOCUMENT_RELOAD + 1 ) ,
+ IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED = ( IA2_EVENT_HYPERLINK_END_INDEX_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED = ( IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_LINK_ACTIVATED = ( IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_LINK_SELECTED = ( IA2_EVENT_HYPERTEXT_LINK_ACTIVATED + 1 ) ,
+ IA2_EVENT_HYPERLINK_START_INDEX_CHANGED = ( IA2_EVENT_HYPERTEXT_LINK_SELECTED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_CHANGED = ( IA2_EVENT_HYPERLINK_START_INDEX_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_NLINKS_CHANGED = ( IA2_EVENT_HYPERTEXT_CHANGED + 1 ) ,
+ IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED = ( IA2_EVENT_HYPERTEXT_NLINKS_CHANGED + 1 ) ,
+ IA2_EVENT_PAGE_CHANGED = ( IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED + 1 ) ,
+ IA2_EVENT_SECTION_CHANGED = ( IA2_EVENT_PAGE_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_CAPTION_CHANGED = ( IA2_EVENT_SECTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED = ( IA2_EVENT_TABLE_CAPTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED = ( IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_MODEL_CHANGED = ( IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED = ( IA2_EVENT_TABLE_MODEL_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_ROW_HEADER_CHANGED = ( IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_SUMMARY_CHANGED = ( IA2_EVENT_TABLE_ROW_HEADER_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_ATTRIBUTE_CHANGED = ( IA2_EVENT_TABLE_SUMMARY_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_CARET_MOVED = ( IA2_EVENT_TEXT_ATTRIBUTE_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_CHANGED = ( IA2_EVENT_TEXT_CARET_MOVED + 1 ) ,
+ IA2_EVENT_TEXT_COLUMN_CHANGED = ( IA2_EVENT_TEXT_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_INSERTED = ( IA2_EVENT_TEXT_COLUMN_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_REMOVED = ( IA2_EVENT_TEXT_INSERTED + 1 ) ,
+ IA2_EVENT_TEXT_UPDATED = ( IA2_EVENT_TEXT_REMOVED + 1 ) ,
+ IA2_EVENT_TEXT_SELECTION_CHANGED = ( IA2_EVENT_TEXT_UPDATED + 1 ) ,
+ IA2_EVENT_VISIBLE_DATA_CHANGED = ( IA2_EVENT_TEXT_SELECTION_CHANGED + 1 )
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0016_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0016_v0_0_s_ifspec;
+
+#ifndef __IAccessibleApplication_INTERFACE_DEFINED__
+#define __IAccessibleApplication_INTERFACE_DEFINED__
+
+/* interface IAccessibleApplication */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleApplication;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("D49DED83-5B25-43F4-9B95-93B44595979E")
+ IAccessibleApplication : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appName(
+ /* [retval][out] */ BSTR *name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appVersion(
+ /* [retval][out] */ BSTR *version) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_toolkitName(
+ /* [retval][out] */ BSTR *name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_toolkitVersion(
+ /* [retval][out] */ BSTR *version) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleApplicationVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleApplication * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleApplication * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleApplication * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appName )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appVersion )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *version);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitName )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitVersion )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *version);
+
+ END_INTERFACE
+ } IAccessibleApplicationVtbl;
+
+ interface IAccessibleApplication
+ {
+ CONST_VTBL struct IAccessibleApplicationVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleApplication_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleApplication_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleApplication_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleApplication_get_appName(This,name) \
+ ( (This)->lpVtbl -> get_appName(This,name) )
+
+#define IAccessibleApplication_get_appVersion(This,version) \
+ ( (This)->lpVtbl -> get_appVersion(This,version) )
+
+#define IAccessibleApplication_get_toolkitName(This,name) \
+ ( (This)->lpVtbl -> get_toolkitName(This,name) )
+
+#define IAccessibleApplication_get_toolkitVersion(This,version) \
+ ( (This)->lpVtbl -> get_toolkitVersion(This,version) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleApplication_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleDocument_INTERFACE_DEFINED__
+#define __IAccessibleDocument_INTERFACE_DEFINED__
+
+/* interface IAccessibleDocument */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleDocument;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("C48C7FCF-4AB5-4056-AFA6-902D6E1D1149")
+ IAccessibleDocument : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchorTarget(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IAccessibleDocumentVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleDocument * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleDocument * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleDocument * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )(
+ IAccessibleDocument * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ END_INTERFACE
+ } IAccessibleDocumentVtbl;
+
+ interface IAccessibleDocument
+ {
+ CONST_VTBL struct IAccessibleDocumentVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleDocument_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleDocument_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleDocument_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleDocument_get_anchorTarget(This,accessible) \
+ ( (This)->lpVtbl -> get_anchorTarget(This,accessible) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleDocument_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0018 */
+/* [local] */
+
+
+// Type Library Definitions
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0018_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0018_v0_0_s_ifspec;
+
+
+#ifndef __IAccessible2Lib_LIBRARY_DEFINED__
+#define __IAccessible2Lib_LIBRARY_DEFINED__
+
+/* library IAccessible2Lib */
+/* [hidden][version][helpstring][uuid] */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+EXTERN_C const IID LIBID_IAccessible2Lib;
+#endif /* __IAccessible2Lib_LIBRARY_DEFINED__ */
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+unsigned long __RPC_USER HWND_UserSize( unsigned long *, unsigned long , HWND * );
+unsigned char * __RPC_USER HWND_UserMarshal( unsigned long *, unsigned char *, HWND * );
+unsigned char * __RPC_USER HWND_UserUnmarshal(unsigned long *, unsigned char *, HWND * );
+void __RPC_USER HWND_UserFree( unsigned long *, HWND * );
+
+unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
+void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.tlb b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.tlb
new file mode 100644
index 00000000000..e8cb50a4fbc
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.tlb
Binary files differ
diff --git a/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all_i.c b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all_i.c
new file mode 100644
index 00000000000..678e81c10f8
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all_i.c
@@ -0,0 +1,133 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/iaccessible2/ia2_api_all.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif // !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleRelation,0x7CDF86EE,0xC3DA,0x496a,0xBD,0xA4,0x28,0x1B,0x33,0x6E,0x1F,0xDC);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleAction,0xB70D9F59,0x3B5A,0x4dba,0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessible2,0xE89F726E,0xC4F4,0x4c19,0xBB,0x19,0xB6,0x47,0xD7,0xFA,0x84,0x78);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessible2_2,0x6C9430E9,0x299D,0x4E6F,0xBD,0x01,0xA8,0x2A,0x1E,0x88,0xD3,0xFF);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleComponent,0x1546D4B0,0x4C98,0x4bda,0x89,0xAE,0x9A,0x64,0x74,0x8B,0xDD,0xE4);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleValue,0x35855B5B,0xC566,0x4fd0,0xA7,0xB1,0xE6,0x54,0x65,0x60,0x03,0x94);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleText,0x24FD2FFB,0x3AAD,0x4a08,0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleText2,0x9690A9CC,0x5C80,0x4DF5,0x85,0x2E,0x2D,0x5A,0xE4,0x18,0x9A,0x54);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleEditableText,0xA59AA09A,0x7011,0x4b65,0x93,0x9D,0x32,0xB1,0xFB,0x55,0x47,0xE3);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleHyperlink,0x01C20F2B,0x3DD2,0x400f,0x94,0x9F,0xAD,0x00,0xBD,0xAB,0x1D,0x41);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleHypertext,0x6B4F8BBF,0xF1F2,0x418a,0xB3,0x5E,0xA1,0x95,0xBC,0x41,0x03,0xB9);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleHypertext2,0xCF64D89F,0x8287,0x4B44,0x85,0x01,0xA8,0x27,0x45,0x3A,0x60,0x77);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleTable,0x35AD8070,0xC20C,0x4fb4,0xB0,0x94,0xF4,0xF7,0x27,0x5D,0xD4,0x69);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleTable2,0x6167f295,0x06f0,0x4cdd,0xa1,0xfa,0x02,0xe2,0x51,0x53,0xd8,0x69);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleTableCell,0x594116B1,0xC99F,0x4847,0xAD,0x06,0x0A,0x7A,0x86,0xEC,0xE6,0x45);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleImage,0xFE5ABB3D,0x615E,0x4f7b,0x90,0x9F,0x5F,0x0E,0xDA,0x9E,0x8D,0xDE);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleApplication,0xD49DED83,0x5B25,0x43F4,0x9B,0x95,0x93,0xB4,0x45,0x95,0x97,0x9E);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleDocument,0xC48C7FCF,0x4AB5,0x4056,0xAF,0xA6,0x90,0x2D,0x6E,0x1D,0x11,0x49);
+
+
+MIDL_DEFINE_GUID(IID, LIBID_IAccessible2Lib,0xCE3F726E,0xD1D3,0x44FE,0xB9,0x95,0xFF,0x1D,0xB3,0xB4,0x8B,0x2B);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all_p.c b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all_p.c
new file mode 100644
index 00000000000..243d78fe601
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all_p.c
@@ -0,0 +1,7822 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/iaccessible2/ia2_api_all.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64) && !defined(_ARM_)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "ia2_api_all.h"
+
+#define TYPE_FORMAT_STRING_SIZE 1513
+#define PROC_FORMAT_STRING_SIZE 5197
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 3
+
+typedef struct _ia2_api_all_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } ia2_api_all_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _ia2_api_all_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } ia2_api_all_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _ia2_api_all_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } ia2_api_all_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const ia2_api_all_MIDL_TYPE_FORMAT_STRING ia2_api_all__MIDL_TypeFormatString;
+extern const ia2_api_all_MIDL_PROC_FORMAT_STRING ia2_api_all__MIDL_ProcFormatString;
+extern const ia2_api_all_MIDL_EXPR_FORMAT_STRING ia2_api_all__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleRelation_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleRelation_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleAction_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleAction_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessible2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessible2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessible2_2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessible2_2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleComponent_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleComponent_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleValue_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleValue_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleText_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleText_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleText2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleText2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleEditableText_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleEditableText_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleHyperlink_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHyperlink_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleHypertext_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleHypertext2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleTable_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTable_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleTable2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTable2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleTableCell_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTableCell_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleImage_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleImage_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleApplication_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleApplication_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleDocument_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleDocument_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const ia2_api_all_MIDL_PROC_FORMAT_STRING ia2_api_all__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_appName */
+
+
+ /* Procedure get_description */
+
+
+ /* Procedure get_relationType */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter name */
+
+
+ /* Parameter description */
+
+
+ /* Parameter relationType */
+
+/* 24 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_appVersion */
+
+
+ /* Procedure get_localizedRelationType */
+
+/* 36 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 38 */ NdrFcLong( 0x0 ), /* 0 */
+/* 42 */ NdrFcShort( 0x4 ), /* 4 */
+/* 44 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 46 */ NdrFcShort( 0x0 ), /* 0 */
+/* 48 */ NdrFcShort( 0x8 ), /* 8 */
+/* 50 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 52 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 54 */ NdrFcShort( 0x1 ), /* 1 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter version */
+
+
+ /* Parameter localizedRelationType */
+
+/* 60 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 64 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 66 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 70 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnIndex */
+
+
+ /* Procedure get_caretOffset */
+
+
+ /* Procedure get_background */
+
+
+ /* Procedure get_nTargets */
+
+/* 72 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 74 */ NdrFcLong( 0x0 ), /* 0 */
+/* 78 */ NdrFcShort( 0x5 ), /* 5 */
+/* 80 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 82 */ NdrFcShort( 0x0 ), /* 0 */
+/* 84 */ NdrFcShort( 0x24 ), /* 36 */
+/* 86 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 88 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 90 */ NdrFcShort( 0x0 ), /* 0 */
+/* 92 */ NdrFcShort( 0x0 ), /* 0 */
+/* 94 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnIndex */
+
+
+ /* Parameter offset */
+
+
+ /* Parameter background */
+
+
+ /* Parameter nTargets */
+
+/* 96 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 98 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 100 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 102 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 104 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_target */
+
+/* 108 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 110 */ NdrFcLong( 0x0 ), /* 0 */
+/* 114 */ NdrFcShort( 0x6 ), /* 6 */
+/* 116 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 118 */ NdrFcShort( 0x8 ), /* 8 */
+/* 120 */ NdrFcShort( 0x8 ), /* 8 */
+/* 122 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 124 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 126 */ NdrFcShort( 0x0 ), /* 0 */
+/* 128 */ NdrFcShort( 0x0 ), /* 0 */
+/* 130 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter targetIndex */
+
+/* 132 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 134 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 136 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter target */
+
+/* 138 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 140 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 142 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 144 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 146 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 148 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_targets */
+
+/* 150 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 152 */ NdrFcLong( 0x0 ), /* 0 */
+/* 156 */ NdrFcShort( 0x7 ), /* 7 */
+/* 158 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 160 */ NdrFcShort( 0x8 ), /* 8 */
+/* 162 */ NdrFcShort( 0x24 ), /* 36 */
+/* 164 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 166 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 168 */ NdrFcShort( 0x1 ), /* 1 */
+/* 170 */ NdrFcShort( 0x0 ), /* 0 */
+/* 172 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxTargets */
+
+/* 174 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 176 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 178 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter targets */
+
+/* 180 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 182 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 184 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter nTargets */
+
+/* 186 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 188 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 190 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 192 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 194 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 196 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnExtent */
+
+
+ /* Procedure nActions */
+
+/* 198 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 200 */ NdrFcLong( 0x0 ), /* 0 */
+/* 204 */ NdrFcShort( 0x3 ), /* 3 */
+/* 206 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 208 */ NdrFcShort( 0x0 ), /* 0 */
+/* 210 */ NdrFcShort( 0x24 ), /* 36 */
+/* 212 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 214 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 216 */ NdrFcShort( 0x0 ), /* 0 */
+/* 218 */ NdrFcShort( 0x0 ), /* 0 */
+/* 220 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nColumnsSpanned */
+
+
+ /* Parameter nActions */
+
+/* 222 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 224 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 226 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 228 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 230 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 232 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure doAction */
+
+/* 234 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 236 */ NdrFcLong( 0x0 ), /* 0 */
+/* 240 */ NdrFcShort( 0x4 ), /* 4 */
+/* 242 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 244 */ NdrFcShort( 0x8 ), /* 8 */
+/* 246 */ NdrFcShort( 0x8 ), /* 8 */
+/* 248 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 250 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 252 */ NdrFcShort( 0x0 ), /* 0 */
+/* 254 */ NdrFcShort( 0x0 ), /* 0 */
+/* 256 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 258 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 260 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 262 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 264 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 266 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 268 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnDescription */
+
+
+ /* Procedure get_description */
+
+/* 270 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 272 */ NdrFcLong( 0x0 ), /* 0 */
+/* 276 */ NdrFcShort( 0x5 ), /* 5 */
+/* 278 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 280 */ NdrFcShort( 0x8 ), /* 8 */
+/* 282 */ NdrFcShort( 0x8 ), /* 8 */
+/* 284 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 286 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 288 */ NdrFcShort( 0x1 ), /* 1 */
+/* 290 */ NdrFcShort( 0x0 ), /* 0 */
+/* 292 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+
+ /* Parameter actionIndex */
+
+/* 294 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 296 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 298 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+
+ /* Parameter description */
+
+/* 300 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 302 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 304 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 306 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 308 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 310 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_keyBinding */
+
+/* 312 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 314 */ NdrFcLong( 0x0 ), /* 0 */
+/* 318 */ NdrFcShort( 0x6 ), /* 6 */
+/* 320 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 322 */ NdrFcShort( 0x10 ), /* 16 */
+/* 324 */ NdrFcShort( 0x24 ), /* 36 */
+/* 326 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 328 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 330 */ NdrFcShort( 0x1 ), /* 1 */
+/* 332 */ NdrFcShort( 0x0 ), /* 0 */
+/* 334 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 336 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 338 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 340 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nMaxBindings */
+
+/* 342 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 344 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 346 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter keyBindings */
+
+/* 348 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 350 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 352 */ NdrFcShort( 0x5e ), /* Type Offset=94 */
+
+ /* Parameter nBindings */
+
+/* 354 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 356 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 358 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 360 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 362 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 364 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_name */
+
+/* 366 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 368 */ NdrFcLong( 0x0 ), /* 0 */
+/* 372 */ NdrFcShort( 0x7 ), /* 7 */
+/* 374 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 376 */ NdrFcShort( 0x8 ), /* 8 */
+/* 378 */ NdrFcShort( 0x8 ), /* 8 */
+/* 380 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 382 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 384 */ NdrFcShort( 0x1 ), /* 1 */
+/* 386 */ NdrFcShort( 0x0 ), /* 0 */
+/* 388 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 390 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 392 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 394 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter name */
+
+/* 396 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 398 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 400 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 402 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 404 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 406 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedName */
+
+/* 408 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 410 */ NdrFcLong( 0x0 ), /* 0 */
+/* 414 */ NdrFcShort( 0x8 ), /* 8 */
+/* 416 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 418 */ NdrFcShort( 0x8 ), /* 8 */
+/* 420 */ NdrFcShort( 0x8 ), /* 8 */
+/* 422 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 424 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 426 */ NdrFcShort( 0x1 ), /* 1 */
+/* 428 */ NdrFcShort( 0x0 ), /* 0 */
+/* 430 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 432 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 434 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 436 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter localizedName */
+
+/* 438 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 440 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 442 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 444 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 446 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 448 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nRelations */
+
+/* 450 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 452 */ NdrFcLong( 0x0 ), /* 0 */
+/* 456 */ NdrFcShort( 0x1c ), /* 28 */
+/* 458 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 460 */ NdrFcShort( 0x0 ), /* 0 */
+/* 462 */ NdrFcShort( 0x24 ), /* 36 */
+/* 464 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 466 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 468 */ NdrFcShort( 0x0 ), /* 0 */
+/* 470 */ NdrFcShort( 0x0 ), /* 0 */
+/* 472 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nRelations */
+
+/* 474 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 476 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 478 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 480 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 482 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 484 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_relation */
+
+/* 486 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 488 */ NdrFcLong( 0x0 ), /* 0 */
+/* 492 */ NdrFcShort( 0x1d ), /* 29 */
+/* 494 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 496 */ NdrFcShort( 0x8 ), /* 8 */
+/* 498 */ NdrFcShort( 0x8 ), /* 8 */
+/* 500 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 502 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 504 */ NdrFcShort( 0x0 ), /* 0 */
+/* 506 */ NdrFcShort( 0x0 ), /* 0 */
+/* 508 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter relationIndex */
+
+/* 510 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 512 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 514 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter relation */
+
+/* 516 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 518 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 520 */ NdrFcShort( 0x7c ), /* Type Offset=124 */
+
+ /* Return value */
+
+/* 522 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 524 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 526 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_relations */
+
+/* 528 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 530 */ NdrFcLong( 0x0 ), /* 0 */
+/* 534 */ NdrFcShort( 0x1e ), /* 30 */
+/* 536 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 538 */ NdrFcShort( 0x8 ), /* 8 */
+/* 540 */ NdrFcShort( 0x24 ), /* 36 */
+/* 542 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 544 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 546 */ NdrFcShort( 0x1 ), /* 1 */
+/* 548 */ NdrFcShort( 0x0 ), /* 0 */
+/* 550 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxRelations */
+
+/* 552 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 554 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 556 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter relations */
+
+/* 558 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 560 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 562 */ NdrFcShort( 0x96 ), /* Type Offset=150 */
+
+ /* Parameter nRelations */
+
+/* 564 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 566 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 568 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 570 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 572 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 574 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure role */
+
+/* 576 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 578 */ NdrFcLong( 0x0 ), /* 0 */
+/* 582 */ NdrFcShort( 0x1f ), /* 31 */
+/* 584 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 586 */ NdrFcShort( 0x0 ), /* 0 */
+/* 588 */ NdrFcShort( 0x24 ), /* 36 */
+/* 590 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 592 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 594 */ NdrFcShort( 0x0 ), /* 0 */
+/* 596 */ NdrFcShort( 0x0 ), /* 0 */
+/* 598 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter role */
+
+/* 600 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 602 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 604 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 606 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 608 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 610 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollTo */
+
+/* 612 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 614 */ NdrFcLong( 0x0 ), /* 0 */
+/* 618 */ NdrFcShort( 0x20 ), /* 32 */
+/* 620 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 622 */ NdrFcShort( 0x6 ), /* 6 */
+/* 624 */ NdrFcShort( 0x8 ), /* 8 */
+/* 626 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 628 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 630 */ NdrFcShort( 0x0 ), /* 0 */
+/* 632 */ NdrFcShort( 0x0 ), /* 0 */
+/* 634 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter scrollType */
+
+/* 636 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 638 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 640 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 642 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 644 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 646 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollToPoint */
+
+/* 648 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 650 */ NdrFcLong( 0x0 ), /* 0 */
+/* 654 */ NdrFcShort( 0x21 ), /* 33 */
+/* 656 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 658 */ NdrFcShort( 0x16 ), /* 22 */
+/* 660 */ NdrFcShort( 0x8 ), /* 8 */
+/* 662 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 664 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 666 */ NdrFcShort( 0x0 ), /* 0 */
+/* 668 */ NdrFcShort( 0x0 ), /* 0 */
+/* 670 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter coordinateType */
+
+/* 672 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 674 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 676 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 678 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 680 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 682 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 684 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 686 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 688 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 690 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 692 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 694 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_groupPosition */
+
+/* 696 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 698 */ NdrFcLong( 0x0 ), /* 0 */
+/* 702 */ NdrFcShort( 0x22 ), /* 34 */
+/* 704 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 706 */ NdrFcShort( 0x0 ), /* 0 */
+/* 708 */ NdrFcShort( 0x5c ), /* 92 */
+/* 710 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 712 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 714 */ NdrFcShort( 0x0 ), /* 0 */
+/* 716 */ NdrFcShort( 0x0 ), /* 0 */
+/* 718 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter groupLevel */
+
+/* 720 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 722 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 724 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter similarItemsInGroup */
+
+/* 726 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 728 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 730 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter positionInGroup */
+
+/* 732 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 734 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 736 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 738 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 740 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 742 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_states */
+
+/* 744 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 746 */ NdrFcLong( 0x0 ), /* 0 */
+/* 750 */ NdrFcShort( 0x23 ), /* 35 */
+/* 752 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 754 */ NdrFcShort( 0x0 ), /* 0 */
+/* 756 */ NdrFcShort( 0x24 ), /* 36 */
+/* 758 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 760 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 762 */ NdrFcShort( 0x0 ), /* 0 */
+/* 764 */ NdrFcShort( 0x0 ), /* 0 */
+/* 766 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter states */
+
+/* 768 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 770 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 772 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 774 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 776 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 778 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_extendedRole */
+
+/* 780 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 782 */ NdrFcLong( 0x0 ), /* 0 */
+/* 786 */ NdrFcShort( 0x24 ), /* 36 */
+/* 788 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 790 */ NdrFcShort( 0x0 ), /* 0 */
+/* 792 */ NdrFcShort( 0x8 ), /* 8 */
+/* 794 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 796 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 798 */ NdrFcShort( 0x1 ), /* 1 */
+/* 800 */ NdrFcShort( 0x0 ), /* 0 */
+/* 802 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter extendedRole */
+
+/* 804 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 806 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 808 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 810 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 812 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 814 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedExtendedRole */
+
+/* 816 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 818 */ NdrFcLong( 0x0 ), /* 0 */
+/* 822 */ NdrFcShort( 0x25 ), /* 37 */
+/* 824 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 826 */ NdrFcShort( 0x0 ), /* 0 */
+/* 828 */ NdrFcShort( 0x8 ), /* 8 */
+/* 830 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 832 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 834 */ NdrFcShort( 0x1 ), /* 1 */
+/* 836 */ NdrFcShort( 0x0 ), /* 0 */
+/* 838 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter localizedExtendedRole */
+
+/* 840 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 842 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 844 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 846 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 848 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 850 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nExtendedStates */
+
+/* 852 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 854 */ NdrFcLong( 0x0 ), /* 0 */
+/* 858 */ NdrFcShort( 0x26 ), /* 38 */
+/* 860 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 862 */ NdrFcShort( 0x0 ), /* 0 */
+/* 864 */ NdrFcShort( 0x24 ), /* 36 */
+/* 866 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 868 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 870 */ NdrFcShort( 0x0 ), /* 0 */
+/* 872 */ NdrFcShort( 0x0 ), /* 0 */
+/* 874 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nExtendedStates */
+
+/* 876 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 878 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 880 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 882 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 884 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 886 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_extendedStates */
+
+/* 888 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 890 */ NdrFcLong( 0x0 ), /* 0 */
+/* 894 */ NdrFcShort( 0x27 ), /* 39 */
+/* 896 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 898 */ NdrFcShort( 0x8 ), /* 8 */
+/* 900 */ NdrFcShort( 0x24 ), /* 36 */
+/* 902 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 904 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 906 */ NdrFcShort( 0x1 ), /* 1 */
+/* 908 */ NdrFcShort( 0x0 ), /* 0 */
+/* 910 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxExtendedStates */
+
+/* 912 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 914 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 916 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter extendedStates */
+
+/* 918 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 920 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 922 */ NdrFcShort( 0xac ), /* Type Offset=172 */
+
+ /* Parameter nExtendedStates */
+
+/* 924 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 926 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 928 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 930 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 932 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 934 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedExtendedStates */
+
+/* 936 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 938 */ NdrFcLong( 0x0 ), /* 0 */
+/* 942 */ NdrFcShort( 0x28 ), /* 40 */
+/* 944 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 946 */ NdrFcShort( 0x8 ), /* 8 */
+/* 948 */ NdrFcShort( 0x24 ), /* 36 */
+/* 950 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 952 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 954 */ NdrFcShort( 0x1 ), /* 1 */
+/* 956 */ NdrFcShort( 0x0 ), /* 0 */
+/* 958 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxLocalizedExtendedStates */
+
+/* 960 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 962 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 964 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter localizedExtendedStates */
+
+/* 966 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 968 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 970 */ NdrFcShort( 0xac ), /* Type Offset=172 */
+
+ /* Parameter nLocalizedExtendedStates */
+
+/* 972 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 974 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 976 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 978 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 980 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 982 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_uniqueID */
+
+/* 984 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 986 */ NdrFcLong( 0x0 ), /* 0 */
+/* 990 */ NdrFcShort( 0x29 ), /* 41 */
+/* 992 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 994 */ NdrFcShort( 0x0 ), /* 0 */
+/* 996 */ NdrFcShort( 0x24 ), /* 36 */
+/* 998 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1000 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1002 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1004 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1006 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter uniqueID */
+
+/* 1008 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1010 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1012 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1014 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1016 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1018 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_windowHandle */
+
+/* 1020 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1022 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1026 */ NdrFcShort( 0x2a ), /* 42 */
+/* 1028 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1030 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1032 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1034 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1036 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1038 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1040 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1042 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter windowHandle */
+
+/* 1044 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1046 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1048 */ NdrFcShort( 0xe6 ), /* Type Offset=230 */
+
+ /* Return value */
+
+/* 1050 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1052 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1054 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_indexInParent */
+
+/* 1056 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1058 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1062 */ NdrFcShort( 0x2b ), /* 43 */
+/* 1064 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1066 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1068 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1070 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1072 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1074 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1076 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1078 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter indexInParent */
+
+/* 1080 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1082 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1084 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1086 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1088 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1090 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_locale */
+
+/* 1092 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1094 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1098 */ NdrFcShort( 0x2c ), /* 44 */
+/* 1100 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1102 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1104 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1106 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1108 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1110 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1112 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1114 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter locale */
+
+/* 1116 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 1118 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1120 */ NdrFcShort( 0xf4 ), /* Type Offset=244 */
+
+ /* Return value */
+
+/* 1122 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1124 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1126 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributes */
+
+/* 1128 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1130 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1134 */ NdrFcShort( 0x2d ), /* 45 */
+/* 1136 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1138 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1140 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1142 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1144 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1146 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1148 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1150 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter attributes */
+
+/* 1152 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1154 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1156 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 1158 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1160 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1162 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attribute */
+
+/* 1164 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1166 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1170 */ NdrFcShort( 0x2e ), /* 46 */
+/* 1172 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1174 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1176 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1178 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 1180 */ 0x8, /* 8 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 1182 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1184 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1186 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter name */
+
+/* 1188 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1190 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1192 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Parameter attribute */
+
+/* 1194 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 1196 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1198 */ NdrFcShort( 0x4ee ), /* Type Offset=1262 */
+
+ /* Return value */
+
+/* 1200 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1202 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1204 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_accessibleWithCaret */
+
+/* 1206 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1208 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1212 */ NdrFcShort( 0x2f ), /* 47 */
+/* 1214 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1216 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1218 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1220 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 1222 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1224 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1226 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1228 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 1230 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 1232 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1234 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Parameter caretOffset */
+
+/* 1236 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1238 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1240 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1242 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1244 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1246 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_relationTargetsOfType */
+
+/* 1248 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1250 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1254 */ NdrFcShort( 0x30 ), /* 48 */
+/* 1256 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 1258 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1260 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1262 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 1264 */ 0x8, /* 8 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 1266 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1268 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1270 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter type */
+
+/* 1272 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1274 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1276 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Parameter maxTargets */
+
+/* 1278 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1280 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1282 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter targets */
+
+/* 1284 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 1286 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1288 */ NdrFcShort( 0x4f8 ), /* Type Offset=1272 */
+
+ /* Parameter nTargets */
+
+/* 1290 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1292 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1294 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1296 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1298 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1300 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_locationInParent */
+
+/* 1302 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1304 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1308 */ NdrFcShort( 0x3 ), /* 3 */
+/* 1310 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1312 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1314 */ NdrFcShort( 0x40 ), /* 64 */
+/* 1316 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 1318 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1320 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1322 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1324 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter x */
+
+/* 1326 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1328 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1330 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 1332 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1334 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1336 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1338 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1340 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1342 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_foreground */
+
+/* 1344 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1346 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1350 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1352 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1354 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1356 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1358 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1360 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1362 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1364 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1366 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter foreground */
+
+/* 1368 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1370 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1372 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1374 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1376 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1378 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_currentValue */
+
+/* 1380 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1382 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1386 */ NdrFcShort( 0x3 ), /* 3 */
+/* 1388 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1390 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1392 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1394 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1396 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1398 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1400 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1402 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter currentValue */
+
+/* 1404 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 1406 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1408 */ NdrFcShort( 0x4ee ), /* Type Offset=1262 */
+
+ /* Return value */
+
+/* 1410 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1412 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1414 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setCurrentValue */
+
+/* 1416 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1418 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1422 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1424 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 1426 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1428 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1430 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1432 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1434 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1436 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1438 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter value */
+
+/* 1440 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1442 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1444 */ NdrFcShort( 0x51a ), /* Type Offset=1306 */
+
+ /* Return value */
+
+/* 1446 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1448 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1450 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_maximumValue */
+
+/* 1452 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1454 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1458 */ NdrFcShort( 0x5 ), /* 5 */
+/* 1460 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1462 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1464 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1466 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1468 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1470 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1472 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1474 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maximumValue */
+
+/* 1476 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 1478 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1480 */ NdrFcShort( 0x4ee ), /* Type Offset=1262 */
+
+ /* Return value */
+
+/* 1482 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1484 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1486 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_minimumValue */
+
+/* 1488 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1490 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1494 */ NdrFcShort( 0x6 ), /* 6 */
+/* 1496 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1498 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1500 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1502 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1504 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1506 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1508 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1510 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter minimumValue */
+
+/* 1512 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 1514 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1516 */ NdrFcShort( 0x4ee ), /* Type Offset=1262 */
+
+ /* Return value */
+
+/* 1518 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1520 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1522 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure copyText */
+
+
+ /* Procedure addSelection */
+
+/* 1524 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1526 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1530 */ NdrFcShort( 0x3 ), /* 3 */
+/* 1532 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1534 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1536 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1538 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 1540 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1542 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1544 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1546 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+
+ /* Parameter startOffset */
+
+/* 1548 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1550 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1552 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+
+ /* Parameter endOffset */
+
+/* 1554 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1556 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1558 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1560 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1562 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1564 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributes */
+
+/* 1566 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1568 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1572 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1574 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 1576 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1578 */ NdrFcShort( 0x40 ), /* 64 */
+/* 1580 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 1582 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1584 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1586 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1588 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 1590 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1592 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1594 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 1596 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1598 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1600 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 1602 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1604 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1606 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter textAttributes */
+
+/* 1608 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1610 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1612 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 1614 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1616 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1618 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_characterExtents */
+
+/* 1620 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1622 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1626 */ NdrFcShort( 0x6 ), /* 6 */
+/* 1628 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */
+/* 1630 */ NdrFcShort( 0xe ), /* 14 */
+/* 1632 */ NdrFcShort( 0x78 ), /* 120 */
+/* 1634 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x7, /* 7 */
+/* 1636 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1638 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1640 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1642 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 1644 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1646 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1648 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter coordType */
+
+/* 1650 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1652 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1654 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 1656 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1658 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1660 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 1662 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1664 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1666 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter width */
+
+/* 1668 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1670 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1672 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter height */
+
+/* 1674 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1676 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 1678 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1680 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1682 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 1684 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nRows */
+
+
+ /* Procedure get_nSelections */
+
+/* 1686 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1688 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1692 */ NdrFcShort( 0x7 ), /* 7 */
+/* 1694 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1696 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1698 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1700 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1702 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1704 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1706 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1708 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+
+ /* Parameter nSelections */
+
+/* 1710 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1712 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1714 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1716 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1718 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1720 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_offsetAtPoint */
+
+/* 1722 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1724 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1728 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1730 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 1732 */ NdrFcShort( 0x16 ), /* 22 */
+/* 1734 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1736 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x5, /* 5 */
+/* 1738 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1740 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1742 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1744 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter x */
+
+/* 1746 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1748 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1750 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 1752 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1754 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1756 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter coordType */
+
+/* 1758 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1760 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1762 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter offset */
+
+/* 1764 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1766 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1768 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1770 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1772 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1774 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selection */
+
+/* 1776 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1778 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1782 */ NdrFcShort( 0x9 ), /* 9 */
+/* 1784 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1786 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1788 */ NdrFcShort( 0x40 ), /* 64 */
+/* 1790 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 1792 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1794 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1796 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1798 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectionIndex */
+
+/* 1800 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1802 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1804 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 1806 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1808 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1810 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 1812 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1814 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1816 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1818 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1820 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1822 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_text */
+
+/* 1824 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1826 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1830 */ NdrFcShort( 0xa ), /* 10 */
+/* 1832 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1834 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1836 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1838 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 1840 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1842 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1844 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1846 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 1848 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1850 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1852 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 1854 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1856 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1858 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 1860 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1862 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1864 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 1866 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1868 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1870 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_textBeforeOffset */
+
+/* 1872 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1874 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1878 */ NdrFcShort( 0xb ), /* 11 */
+/* 1880 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 1882 */ NdrFcShort( 0xe ), /* 14 */
+/* 1884 */ NdrFcShort( 0x40 ), /* 64 */
+/* 1886 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 1888 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1890 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1892 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1894 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 1896 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1898 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1900 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter boundaryType */
+
+/* 1902 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1904 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1906 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 1908 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1910 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1912 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 1914 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1916 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1918 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 1920 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1922 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1924 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 1926 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1928 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 1930 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_textAfterOffset */
+
+/* 1932 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1934 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1938 */ NdrFcShort( 0xc ), /* 12 */
+/* 1940 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 1942 */ NdrFcShort( 0xe ), /* 14 */
+/* 1944 */ NdrFcShort( 0x40 ), /* 64 */
+/* 1946 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 1948 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1950 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1952 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1954 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 1956 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1958 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1960 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter boundaryType */
+
+/* 1962 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1964 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1966 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 1968 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1970 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1972 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 1974 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1976 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1978 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 1980 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1982 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1984 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 1986 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1988 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 1990 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_textAtOffset */
+
+/* 1992 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1994 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1998 */ NdrFcShort( 0xd ), /* 13 */
+/* 2000 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 2002 */ NdrFcShort( 0xe ), /* 14 */
+/* 2004 */ NdrFcShort( 0x40 ), /* 64 */
+/* 2006 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 2008 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2010 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2012 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2014 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2016 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2018 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2020 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter boundaryType */
+
+/* 2022 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2024 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2026 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2028 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2030 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2032 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2034 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2036 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2038 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 2040 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2042 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 2044 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 2046 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2048 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 2050 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure removeSelection */
+
+/* 2052 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2054 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2058 */ NdrFcShort( 0xe ), /* 14 */
+/* 2060 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2062 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2064 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2066 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2068 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2070 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2072 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2074 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectionIndex */
+
+/* 2076 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2078 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2080 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2082 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2084 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2086 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setCaretOffset */
+
+/* 2088 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2090 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2094 */ NdrFcShort( 0xf ), /* 15 */
+/* 2096 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2098 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2100 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2102 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2104 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2106 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2108 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2110 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2112 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2114 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2116 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2118 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2120 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2122 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setSelection */
+
+/* 2124 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2126 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2130 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2132 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 2134 */ NdrFcShort( 0x18 ), /* 24 */
+/* 2136 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2138 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 2140 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2142 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2144 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2146 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectionIndex */
+
+/* 2148 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2150 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2152 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2154 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2156 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2158 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2160 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2162 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2164 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2166 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2168 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2170 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nCharacters */
+
+/* 2172 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2174 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2178 */ NdrFcShort( 0x11 ), /* 17 */
+/* 2180 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2182 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2184 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2186 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2188 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2190 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2192 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2194 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nCharacters */
+
+/* 2196 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2198 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2200 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2202 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2204 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2206 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollSubstringTo */
+
+/* 2208 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2210 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2214 */ NdrFcShort( 0x12 ), /* 18 */
+/* 2216 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 2218 */ NdrFcShort( 0x16 ), /* 22 */
+/* 2220 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2222 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 2224 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2226 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2228 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2230 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startIndex */
+
+/* 2232 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2234 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2236 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endIndex */
+
+/* 2238 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2240 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2242 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter scrollType */
+
+/* 2244 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2246 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2248 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2250 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2252 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2254 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollSubstringToPoint */
+
+/* 2256 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2258 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2262 */ NdrFcShort( 0x13 ), /* 19 */
+/* 2264 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 2266 */ NdrFcShort( 0x26 ), /* 38 */
+/* 2268 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2270 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x6, /* 6 */
+/* 2272 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2274 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2276 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2278 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startIndex */
+
+/* 2280 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2282 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2284 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endIndex */
+
+/* 2286 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2288 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2290 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter coordinateType */
+
+/* 2292 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2294 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2296 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 2298 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2300 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2302 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 2304 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2306 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 2308 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2310 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2312 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 2314 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_newText */
+
+/* 2316 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2318 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2322 */ NdrFcShort( 0x14 ), /* 20 */
+/* 2324 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2326 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2328 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2330 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2332 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2334 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2336 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2338 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter newText */
+
+/* 2340 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 2342 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2344 */ NdrFcShort( 0x528 ), /* Type Offset=1320 */
+
+ /* Return value */
+
+/* 2346 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2348 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2350 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_oldText */
+
+/* 2352 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2354 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2358 */ NdrFcShort( 0x15 ), /* 21 */
+/* 2360 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2362 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2364 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2366 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2368 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2370 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2372 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2374 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter oldText */
+
+/* 2376 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 2378 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2380 */ NdrFcShort( 0x528 ), /* Type Offset=1320 */
+
+ /* Return value */
+
+/* 2382 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2384 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2386 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributeRange */
+
+/* 2388 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2390 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2394 */ NdrFcShort( 0x16 ), /* 22 */
+/* 2396 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 2398 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2400 */ NdrFcShort( 0x40 ), /* 64 */
+/* 2402 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 2404 */ 0x8, /* 8 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 2406 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2408 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2410 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2412 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2414 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2416 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter filter */
+
+/* 2418 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2420 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2422 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Parameter startOffset */
+
+/* 2424 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2426 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2428 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2430 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2432 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2434 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter attributeValues */
+
+/* 2436 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2438 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 2440 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 2442 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2444 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 2446 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure deleteText */
+
+/* 2448 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2450 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2454 */ NdrFcShort( 0x4 ), /* 4 */
+/* 2456 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2458 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2460 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2462 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 2464 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2466 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2468 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2470 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2472 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2474 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2476 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2478 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2480 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2482 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2484 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2486 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2488 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure insertText */
+
+/* 2490 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2492 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2496 */ NdrFcShort( 0x5 ), /* 5 */
+/* 2498 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2500 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2502 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2504 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 2506 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2508 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2510 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2512 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2514 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2516 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2518 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 2520 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2522 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2524 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Return value */
+
+/* 2526 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2528 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2530 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure cutText */
+
+/* 2532 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2534 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2538 */ NdrFcShort( 0x6 ), /* 6 */
+/* 2540 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2542 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2544 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2546 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 2548 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2550 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2552 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2554 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2556 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2558 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2560 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2562 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2564 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2566 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2568 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2570 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2572 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure pasteText */
+
+/* 2574 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2576 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2580 */ NdrFcShort( 0x7 ), /* 7 */
+/* 2582 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2584 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2586 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2588 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2590 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2592 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2594 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2596 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2598 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2600 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2602 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2604 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2606 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2608 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure replaceText */
+
+/* 2610 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2612 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2616 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2618 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 2620 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2622 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2624 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 2626 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2628 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2630 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2632 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2634 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2636 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2638 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2640 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2642 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2644 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 2646 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2648 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2650 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Return value */
+
+/* 2652 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2654 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2656 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setAttributes */
+
+/* 2658 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2660 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2664 */ NdrFcShort( 0x9 ), /* 9 */
+/* 2666 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 2668 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2670 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2672 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 2674 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2676 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2678 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2680 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2682 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2684 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2686 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2688 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2690 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2692 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter attributes */
+
+/* 2694 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2696 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2698 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Return value */
+
+/* 2700 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2702 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2704 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_anchor */
+
+/* 2706 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2708 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2712 */ NdrFcShort( 0x9 ), /* 9 */
+/* 2714 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2716 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2718 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2720 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 2722 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2724 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2726 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2728 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 2730 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2732 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2734 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter anchor */
+
+/* 2736 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 2738 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2740 */ NdrFcShort( 0x4ee ), /* Type Offset=1262 */
+
+ /* Return value */
+
+/* 2742 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2744 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2746 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_anchorTarget */
+
+/* 2748 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2750 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2754 */ NdrFcShort( 0xa ), /* 10 */
+/* 2756 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2758 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2760 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2762 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 2764 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2766 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2768 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2770 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 2772 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2774 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2776 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter anchorTarget */
+
+/* 2778 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 2780 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2782 */ NdrFcShort( 0x4ee ), /* Type Offset=1262 */
+
+ /* Return value */
+
+/* 2784 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2786 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2788 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nRows */
+
+
+ /* Procedure get_startIndex */
+
+/* 2790 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2792 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2796 */ NdrFcShort( 0xb ), /* 11 */
+/* 2798 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2800 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2802 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2804 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2806 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2808 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2810 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2812 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+
+ /* Parameter index */
+
+/* 2814 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2816 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2818 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 2820 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2822 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2824 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedChildren */
+
+
+ /* Procedure get_endIndex */
+
+/* 2826 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2828 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2832 */ NdrFcShort( 0xc ), /* 12 */
+/* 2834 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2836 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2838 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2840 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2842 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2844 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2846 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2848 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellCount */
+
+
+ /* Parameter index */
+
+/* 2850 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2852 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2854 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 2856 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2858 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2860 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_valid */
+
+/* 2862 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2864 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2868 */ NdrFcShort( 0xd ), /* 13 */
+/* 2870 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2872 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2874 */ NdrFcShort( 0x21 ), /* 33 */
+/* 2876 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2878 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2880 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2882 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2884 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter valid */
+
+/* 2886 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2888 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2890 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2892 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2894 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2896 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nHyperlinks */
+
+/* 2898 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2900 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2904 */ NdrFcShort( 0x16 ), /* 22 */
+/* 2906 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2908 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2910 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2912 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2914 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2916 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2918 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2920 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter hyperlinkCount */
+
+/* 2922 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2924 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2926 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2928 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2930 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2932 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_hyperlink */
+
+/* 2934 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2936 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2940 */ NdrFcShort( 0x17 ), /* 23 */
+/* 2942 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2944 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2946 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2948 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 2950 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2952 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2954 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2956 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 2958 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2960 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2962 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter hyperlink */
+
+/* 2964 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 2966 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2968 */ NdrFcShort( 0x540 ), /* Type Offset=1344 */
+
+ /* Return value */
+
+/* 2970 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2972 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2974 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_hyperlinkIndex */
+
+/* 2976 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2978 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2982 */ NdrFcShort( 0x18 ), /* 24 */
+/* 2984 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2986 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2988 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2990 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 2992 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2994 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2996 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2998 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter charIndex */
+
+/* 3000 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3002 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3004 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter hyperlinkIndex */
+
+/* 3006 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3008 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3010 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3012 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3014 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3016 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_hyperlinks */
+
+/* 3018 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3020 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3024 */ NdrFcShort( 0x19 ), /* 25 */
+/* 3026 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3028 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3030 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3032 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3034 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3036 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3038 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3040 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter hyperlinks */
+
+/* 3042 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 3044 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3046 */ NdrFcShort( 0x556 ), /* Type Offset=1366 */
+
+ /* Parameter nHyperlinks */
+
+/* 3048 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3050 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3052 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3054 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3056 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3058 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_cellAt */
+
+
+ /* Procedure get_accessibleAt */
+
+/* 3060 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3062 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3066 */ NdrFcShort( 0x3 ), /* 3 */
+/* 3068 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 3070 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3072 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3074 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 3076 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3078 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3080 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3082 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+
+ /* Parameter row */
+
+/* 3084 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3086 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3088 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+
+ /* Parameter column */
+
+/* 3090 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3092 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3094 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter cell */
+
+
+ /* Parameter accessible */
+
+/* 3096 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3098 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3100 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 3102 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3104 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_caption */
+
+
+ /* Procedure get_caption */
+
+/* 3108 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3110 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3114 */ NdrFcShort( 0x4 ), /* 4 */
+/* 3116 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3118 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3120 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3122 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 3124 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3126 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3128 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3130 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+
+ /* Parameter accessible */
+
+/* 3132 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3134 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3136 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 3138 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3140 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3142 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_childIndex */
+
+/* 3144 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3146 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3150 */ NdrFcShort( 0x5 ), /* 5 */
+/* 3152 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 3154 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3156 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3158 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 3160 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3162 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3164 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3166 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowIndex */
+
+/* 3168 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3170 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3172 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnIndex */
+
+/* 3174 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3176 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3178 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter cellIndex */
+
+/* 3180 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3182 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3184 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3186 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3188 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3190 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnDescription */
+
+/* 3192 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3194 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3198 */ NdrFcShort( 0x6 ), /* 6 */
+/* 3200 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3202 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3204 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3206 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3208 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3210 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3212 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3214 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 3216 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3218 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3220 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 3222 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 3224 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3226 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 3228 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3230 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3232 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnExtentAt */
+
+/* 3234 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3236 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3240 */ NdrFcShort( 0x7 ), /* 7 */
+/* 3242 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 3244 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3246 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3248 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 3250 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3252 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3254 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3256 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 3258 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3260 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3262 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 3264 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3266 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3268 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nColumnsSpanned */
+
+/* 3270 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3272 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3274 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3276 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3278 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3280 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnHeader */
+
+/* 3282 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3284 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3288 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3290 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3292 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3294 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3296 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3298 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3300 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3302 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3304 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessibleTable */
+
+/* 3306 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3308 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3310 */ NdrFcShort( 0x574 ), /* Type Offset=1396 */
+
+ /* Parameter startingRowIndex */
+
+/* 3312 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3314 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3316 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3318 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3320 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3322 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnIndex */
+
+/* 3324 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3326 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3330 */ NdrFcShort( 0x9 ), /* 9 */
+/* 3332 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3334 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3336 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3338 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 3340 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3342 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3344 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3346 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellIndex */
+
+/* 3348 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3350 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3352 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnIndex */
+
+/* 3354 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3356 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3358 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3360 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3362 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3364 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedRows */
+
+
+ /* Procedure get_nColumns */
+
+/* 3366 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3368 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3372 */ NdrFcShort( 0xa ), /* 10 */
+/* 3374 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3376 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3378 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3380 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3382 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3384 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3386 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3388 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+
+ /* Parameter columnCount */
+
+/* 3390 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3392 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3394 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 3396 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3398 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3400 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedColumns */
+
+/* 3402 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3404 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3408 */ NdrFcShort( 0xd ), /* 13 */
+/* 3410 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3412 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3414 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3416 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3418 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3420 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3422 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3424 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnCount */
+
+/* 3426 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3428 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3430 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3432 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3434 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3436 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedRows */
+
+/* 3438 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3440 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3444 */ NdrFcShort( 0xe ), /* 14 */
+/* 3446 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3448 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3450 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3452 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3454 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3456 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3458 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3460 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+/* 3462 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3464 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3466 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3468 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3470 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3472 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowDescription */
+
+/* 3474 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3476 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3480 */ NdrFcShort( 0xf ), /* 15 */
+/* 3482 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3484 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3486 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3488 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3490 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3492 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3494 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3496 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 3498 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3500 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3502 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 3504 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 3506 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3508 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 3510 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3512 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3514 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowExtentAt */
+
+/* 3516 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3518 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3522 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3524 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 3526 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3528 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3530 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 3532 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3534 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3536 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3538 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 3540 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3542 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3544 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 3546 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3548 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3550 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nRowsSpanned */
+
+/* 3552 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3554 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3556 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3558 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3560 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3562 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowHeader */
+
+/* 3564 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3566 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3570 */ NdrFcShort( 0x11 ), /* 17 */
+/* 3572 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3574 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3576 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3578 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3580 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3582 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3584 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3586 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessibleTable */
+
+/* 3588 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3590 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3592 */ NdrFcShort( 0x574 ), /* Type Offset=1396 */
+
+ /* Parameter startingColumnIndex */
+
+/* 3594 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3596 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3598 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3600 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3602 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3604 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowIndex */
+
+/* 3606 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3608 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3612 */ NdrFcShort( 0x12 ), /* 18 */
+/* 3614 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3616 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3618 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3620 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 3622 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3624 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3626 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3628 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellIndex */
+
+/* 3630 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3632 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3634 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rowIndex */
+
+/* 3636 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3638 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3640 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3642 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3644 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3646 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedChildren */
+
+/* 3648 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3650 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3654 */ NdrFcShort( 0x13 ), /* 19 */
+/* 3656 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 3658 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3660 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3662 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 3664 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3666 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3668 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3670 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxChildren */
+
+/* 3672 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3674 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3676 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter children */
+
+/* 3678 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 3680 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3682 */ NdrFcShort( 0x58a ), /* Type Offset=1418 */
+
+ /* Parameter nChildren */
+
+/* 3684 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3686 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3688 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3690 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3692 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3694 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedColumns */
+
+/* 3696 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3698 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3702 */ NdrFcShort( 0x14 ), /* 20 */
+/* 3704 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 3706 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3708 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3710 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 3712 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3714 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3716 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3718 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxColumns */
+
+/* 3720 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3722 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3724 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columns */
+
+/* 3726 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 3728 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3730 */ NdrFcShort( 0x58a ), /* Type Offset=1418 */
+
+ /* Parameter nColumns */
+
+/* 3732 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3734 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3736 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3738 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3740 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3742 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedRows */
+
+/* 3744 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3746 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3750 */ NdrFcShort( 0x15 ), /* 21 */
+/* 3752 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 3754 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3756 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3758 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 3760 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3762 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3764 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3766 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxRows */
+
+/* 3768 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3770 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3772 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rows */
+
+/* 3774 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 3776 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3778 */ NdrFcShort( 0x58a ), /* Type Offset=1418 */
+
+ /* Parameter nRows */
+
+/* 3780 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3782 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3784 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3786 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3788 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3790 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_summary */
+
+/* 3792 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3794 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3798 */ NdrFcShort( 0x16 ), /* 22 */
+/* 3800 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3802 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3804 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3806 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 3808 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3810 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3812 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3814 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 3816 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3818 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3820 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 3822 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3824 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3826 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isColumnSelected */
+
+/* 3828 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3830 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3834 */ NdrFcShort( 0x17 ), /* 23 */
+/* 3836 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3838 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3840 */ NdrFcShort( 0x21 ), /* 33 */
+/* 3842 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 3844 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3846 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3848 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3850 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 3852 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3854 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3856 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 3858 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3860 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3862 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3864 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3866 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3868 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isRowSelected */
+
+/* 3870 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3872 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3876 */ NdrFcShort( 0x18 ), /* 24 */
+/* 3878 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3880 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3882 */ NdrFcShort( 0x21 ), /* 33 */
+/* 3884 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 3886 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3888 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3890 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3892 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 3894 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3896 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3898 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 3900 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3902 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3904 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3906 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3908 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3910 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isSelected */
+
+/* 3912 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3914 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3918 */ NdrFcShort( 0x19 ), /* 25 */
+/* 3920 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 3922 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3924 */ NdrFcShort( 0x21 ), /* 33 */
+/* 3926 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 3928 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3930 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3932 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3934 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 3936 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3938 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3940 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 3942 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3944 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3946 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 3948 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3950 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3952 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3954 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3956 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3958 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectRow */
+
+/* 3960 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3962 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3966 */ NdrFcShort( 0x1a ), /* 26 */
+/* 3968 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3970 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3972 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3974 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3976 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3978 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3980 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3982 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 3984 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3986 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3988 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3990 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3992 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3994 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectColumn */
+
+/* 3996 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3998 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4002 */ NdrFcShort( 0x1b ), /* 27 */
+/* 4004 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4006 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4008 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4010 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4012 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4014 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4016 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4018 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4020 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4022 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4024 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4026 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4028 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4030 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectRow */
+
+/* 4032 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4034 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4038 */ NdrFcShort( 0x1c ), /* 28 */
+/* 4040 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4042 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4044 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4046 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4048 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4050 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4052 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4054 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4056 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4058 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4060 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4062 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4064 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4066 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectColumn */
+
+/* 4068 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4070 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4074 */ NdrFcShort( 0x1d ), /* 29 */
+/* 4076 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4078 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4080 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4082 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4084 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4086 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4088 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4090 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4092 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4094 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4096 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4098 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4100 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4102 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowColumnExtentsAtIndex */
+
+/* 4104 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4106 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4110 */ NdrFcShort( 0x1e ), /* 30 */
+/* 4112 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */
+/* 4114 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4116 */ NdrFcShort( 0x91 ), /* 145 */
+/* 4118 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x7, /* 7 */
+/* 4120 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4122 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4124 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4126 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 4128 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4130 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4132 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter row */
+
+/* 4134 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4136 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4138 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 4140 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4142 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4144 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rowExtents */
+
+/* 4146 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4148 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4150 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnExtents */
+
+/* 4152 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4154 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 4156 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4158 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4160 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 4162 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4164 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4166 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 4168 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_modelChange */
+
+/* 4170 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4172 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4176 */ NdrFcShort( 0x1f ), /* 31 */
+/* 4178 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4180 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4182 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4184 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4186 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4188 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4190 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4192 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter modelChange */
+
+/* 4194 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 4196 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4198 */ NdrFcShort( 0x5a8 ), /* Type Offset=1448 */
+
+ /* Return value */
+
+/* 4200 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4202 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4204 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowExtent */
+
+
+ /* Procedure get_nColumns */
+
+/* 4206 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4208 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4212 */ NdrFcShort( 0x6 ), /* 6 */
+/* 4214 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4216 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4218 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4220 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4222 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4224 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4226 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4228 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nRowsSpanned */
+
+
+ /* Parameter columnCount */
+
+/* 4230 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4232 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4234 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 4236 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4238 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4240 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowIndex */
+
+
+ /* Procedure get_nSelectedCells */
+
+/* 4242 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4244 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4248 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4250 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4252 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4254 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4256 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4258 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4260 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4262 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4264 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowIndex */
+
+
+ /* Parameter cellCount */
+
+/* 4266 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4268 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4270 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 4272 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4274 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4276 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedColumns */
+
+/* 4278 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4280 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4284 */ NdrFcShort( 0x9 ), /* 9 */
+/* 4286 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4288 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4290 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4292 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4294 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4296 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4298 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4300 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnCount */
+
+/* 4302 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4304 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4306 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4308 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4310 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4312 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowDescription */
+
+/* 4314 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4316 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4320 */ NdrFcShort( 0xb ), /* 11 */
+/* 4322 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4324 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4326 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4328 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4330 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4332 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4334 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4336 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4338 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4340 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4342 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 4344 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 4346 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4348 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 4350 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4352 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4354 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedCells */
+
+/* 4356 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4358 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4362 */ NdrFcShort( 0xc ), /* 12 */
+/* 4364 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4366 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4368 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4370 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4372 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4374 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4376 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4378 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cells */
+
+/* 4380 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 4382 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4384 */ NdrFcShort( 0x5b6 ), /* Type Offset=1462 */
+
+ /* Parameter nSelectedCells */
+
+/* 4386 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4388 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4390 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4392 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4394 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4396 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedColumns */
+
+/* 4398 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4400 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4404 */ NdrFcShort( 0xd ), /* 13 */
+/* 4406 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4408 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4410 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4412 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4414 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4416 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4418 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4420 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectedColumns */
+
+/* 4422 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 4424 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4426 */ NdrFcShort( 0x5d4 ), /* Type Offset=1492 */
+
+ /* Parameter nColumns */
+
+/* 4428 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4430 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4432 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4434 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4436 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4438 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedRows */
+
+/* 4440 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4442 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4446 */ NdrFcShort( 0xe ), /* 14 */
+/* 4448 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4450 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4452 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4454 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4456 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4458 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4460 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4462 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectedRows */
+
+/* 4464 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 4466 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4468 */ NdrFcShort( 0x5d4 ), /* Type Offset=1492 */
+
+ /* Parameter nRows */
+
+/* 4470 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4472 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4474 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4476 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4478 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4480 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_summary */
+
+/* 4482 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4484 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4488 */ NdrFcShort( 0xf ), /* 15 */
+/* 4490 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4492 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4494 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4496 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4498 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4500 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4502 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4504 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 4506 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 4508 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4510 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 4512 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4514 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4516 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isColumnSelected */
+
+/* 4518 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4520 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4524 */ NdrFcShort( 0x10 ), /* 16 */
+/* 4526 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4528 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4530 */ NdrFcShort( 0x21 ), /* 33 */
+/* 4532 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 4534 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4536 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4538 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4540 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4542 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4544 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4546 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4548 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4550 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4552 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4554 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4556 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4558 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isRowSelected */
+
+/* 4560 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4562 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4566 */ NdrFcShort( 0x11 ), /* 17 */
+/* 4568 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4570 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4572 */ NdrFcShort( 0x21 ), /* 33 */
+/* 4574 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 4576 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4578 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4580 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4582 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4584 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4586 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4588 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4590 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4592 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4594 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4596 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4598 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4600 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectRow */
+
+/* 4602 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4604 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4608 */ NdrFcShort( 0x12 ), /* 18 */
+/* 4610 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4612 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4614 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4616 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4618 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4620 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4622 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4624 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4626 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4628 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4630 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4632 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4634 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4636 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectColumn */
+
+/* 4638 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4640 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4644 */ NdrFcShort( 0x13 ), /* 19 */
+/* 4646 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4648 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4650 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4652 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4654 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4656 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4658 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4660 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4662 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4664 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4666 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4668 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4670 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4672 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectRow */
+
+/* 4674 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4676 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4680 */ NdrFcShort( 0x14 ), /* 20 */
+/* 4682 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4684 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4686 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4688 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4690 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4692 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4694 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4696 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4698 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4700 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4702 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4704 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4706 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4708 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectColumn */
+
+/* 4710 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4712 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4716 */ NdrFcShort( 0x15 ), /* 21 */
+/* 4718 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4720 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4722 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4724 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4726 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4728 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4730 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4732 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4734 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4736 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4738 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4740 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4742 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4744 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_modelChange */
+
+/* 4746 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4748 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4752 */ NdrFcShort( 0x16 ), /* 22 */
+/* 4754 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4756 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4758 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4760 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4762 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4764 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4766 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4768 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter modelChange */
+
+/* 4770 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 4772 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4774 */ NdrFcShort( 0x5a8 ), /* Type Offset=1448 */
+
+ /* Return value */
+
+/* 4776 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4778 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4780 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnHeaderCells */
+
+/* 4782 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4784 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4788 */ NdrFcShort( 0x4 ), /* 4 */
+/* 4790 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4792 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4794 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4796 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4798 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4800 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4802 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4804 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellAccessibles */
+
+/* 4806 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 4808 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4810 */ NdrFcShort( 0x5b6 ), /* Type Offset=1462 */
+
+ /* Parameter nColumnHeaderCells */
+
+/* 4812 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4814 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4816 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4818 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4820 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4822 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowHeaderCells */
+
+/* 4824 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4826 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4830 */ NdrFcShort( 0x7 ), /* 7 */
+/* 4832 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4834 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4836 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4838 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4840 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4842 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4844 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4846 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellAccessibles */
+
+/* 4848 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 4850 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4852 */ NdrFcShort( 0x5b6 ), /* Type Offset=1462 */
+
+ /* Parameter nRowHeaderCells */
+
+/* 4854 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4856 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4858 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4860 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4862 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4864 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isSelected */
+
+/* 4866 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4868 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4872 */ NdrFcShort( 0x9 ), /* 9 */
+/* 4874 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4876 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4878 */ NdrFcShort( 0x21 ), /* 33 */
+/* 4880 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4882 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4884 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4886 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4888 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4890 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4892 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4894 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4896 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4898 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4900 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowColumnExtents */
+
+/* 4902 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4904 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4908 */ NdrFcShort( 0xa ), /* 10 */
+/* 4910 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 4912 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4914 */ NdrFcShort( 0x91 ), /* 145 */
+/* 4916 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x6, /* 6 */
+/* 4918 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4920 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4922 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4924 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4926 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4928 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4930 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 4932 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4934 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4936 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rowExtents */
+
+/* 4938 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4940 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4942 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnExtents */
+
+/* 4944 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4946 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4948 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4950 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4952 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 4954 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4956 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4958 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 4960 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_table */
+
+/* 4962 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4964 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4968 */ NdrFcShort( 0xb ), /* 11 */
+/* 4970 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4972 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4974 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4976 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4978 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4980 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4982 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4984 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter table */
+
+/* 4986 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 4988 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4990 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 4992 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4994 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4996 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_imagePosition */
+
+/* 4998 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5000 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5004 */ NdrFcShort( 0x4 ), /* 4 */
+/* 5006 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 5008 */ NdrFcShort( 0x6 ), /* 6 */
+/* 5010 */ NdrFcShort( 0x40 ), /* 64 */
+/* 5012 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 5014 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5016 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5018 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5020 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter coordinateType */
+
+/* 5022 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 5024 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 5026 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 5028 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5030 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 5032 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 5034 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5036 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 5038 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 5040 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5042 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 5044 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_imageSize */
+
+/* 5046 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5048 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5052 */ NdrFcShort( 0x5 ), /* 5 */
+/* 5054 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 5056 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5058 */ NdrFcShort( 0x40 ), /* 64 */
+/* 5060 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 5062 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5064 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5066 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5068 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter height */
+
+/* 5070 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5072 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 5074 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter width */
+
+/* 5076 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5078 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 5080 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 5082 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5084 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 5086 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_toolkitName */
+
+/* 5088 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5090 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5094 */ NdrFcShort( 0x5 ), /* 5 */
+/* 5096 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 5098 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5100 */ NdrFcShort( 0x8 ), /* 8 */
+/* 5102 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 5104 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 5106 */ NdrFcShort( 0x1 ), /* 1 */
+/* 5108 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5110 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter name */
+
+/* 5112 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 5114 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 5116 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 5118 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5120 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 5122 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_toolkitVersion */
+
+/* 5124 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5126 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5130 */ NdrFcShort( 0x6 ), /* 6 */
+/* 5132 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 5134 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5136 */ NdrFcShort( 0x8 ), /* 8 */
+/* 5138 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 5140 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 5142 */ NdrFcShort( 0x1 ), /* 1 */
+/* 5144 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5146 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter version */
+
+/* 5148 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 5150 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 5152 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 5154 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5156 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 5158 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_anchorTarget */
+
+/* 5160 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5162 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5166 */ NdrFcShort( 0x3 ), /* 3 */
+/* 5168 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 5170 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5172 */ NdrFcShort( 0x8 ), /* 8 */
+/* 5174 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 5176 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5178 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5180 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5182 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 5184 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 5186 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 5188 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 5190 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5192 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 5194 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const ia2_api_all_MIDL_TYPE_FORMAT_STRING ia2_api_all__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
+/* 10 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 12 */ NdrFcShort( 0x2 ), /* 2 */
+/* 14 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 20 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 22 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 24 */ NdrFcShort( 0x8 ), /* 8 */
+/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 30 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 32 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x4 ), /* 4 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
+/* 42 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 44 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 46 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 48 */ NdrFcShort( 0x2 ), /* Offset= 2 (50) */
+/* 50 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 52 */ NdrFcLong( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 62 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 64 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 66 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 68 */
+ 0x11, 0x0, /* FC_RP */
+/* 70 */ NdrFcShort( 0x2 ), /* Offset= 2 (72) */
+/* 72 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 74 */ NdrFcShort( 0x0 ), /* 0 */
+/* 76 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 78 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 80 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 82 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 84 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 86 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 88 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 90 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (50) */
+/* 92 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 94 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 96 */ NdrFcShort( 0x2 ), /* Offset= 2 (98) */
+/* 98 */
+ 0x13, 0x0, /* FC_OP */
+/* 100 */ NdrFcShort( 0x2 ), /* Offset= 2 (102) */
+/* 102 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 106 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 108 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 110 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 112 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 114 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 116 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 118 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 120 */ NdrFcShort( 0xffa8 ), /* Offset= -88 (32) */
+/* 122 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 124 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 126 */ NdrFcShort( 0x2 ), /* Offset= 2 (128) */
+/* 128 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 130 */ NdrFcLong( 0x7cdf86ee ), /* 2095023854 */
+/* 134 */ NdrFcShort( 0xc3da ), /* -15398 */
+/* 136 */ NdrFcShort( 0x496a ), /* 18794 */
+/* 138 */ 0xbd, /* 189 */
+ 0xa4, /* 164 */
+/* 140 */ 0x28, /* 40 */
+ 0x1b, /* 27 */
+/* 142 */ 0x33, /* 51 */
+ 0x6e, /* 110 */
+/* 144 */ 0x1f, /* 31 */
+ 0xdc, /* 220 */
+/* 146 */
+ 0x11, 0x0, /* FC_RP */
+/* 148 */ NdrFcShort( 0x2 ), /* Offset= 2 (150) */
+/* 150 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 152 */ NdrFcShort( 0x0 ), /* 0 */
+/* 154 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 156 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 158 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 160 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 162 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 164 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 166 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 168 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (128) */
+/* 170 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 172 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 174 */ NdrFcShort( 0x2 ), /* Offset= 2 (176) */
+/* 176 */
+ 0x13, 0x0, /* FC_OP */
+/* 178 */ NdrFcShort( 0x2 ), /* Offset= 2 (180) */
+/* 180 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 182 */ NdrFcShort( 0x0 ), /* 0 */
+/* 184 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 186 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 188 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 190 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 192 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 194 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 196 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 198 */ NdrFcShort( 0xff5a ), /* Offset= -166 (32) */
+/* 200 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 202 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 204 */ NdrFcShort( 0x1a ), /* Offset= 26 (230) */
+/* 206 */
+ 0x13, 0x0, /* FC_OP */
+/* 208 */ NdrFcShort( 0x2 ), /* Offset= 2 (210) */
+/* 210 */
+ 0x2a, /* FC_ENCAPSULATED_UNION */
+ 0x48, /* 72 */
+/* 212 */ NdrFcShort( 0x4 ), /* 4 */
+/* 214 */ NdrFcShort( 0x2 ), /* 2 */
+/* 216 */ NdrFcLong( 0x48746457 ), /* 1215587415 */
+/* 220 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 222 */ NdrFcLong( 0x52746457 ), /* 1383359575 */
+/* 226 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 228 */ NdrFcShort( 0xffff ), /* Offset= -1 (227) */
+/* 230 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 232 */ NdrFcShort( 0x1 ), /* 1 */
+/* 234 */ NdrFcShort( 0x4 ), /* 4 */
+/* 236 */ NdrFcShort( 0x0 ), /* 0 */
+/* 238 */ NdrFcShort( 0xffe0 ), /* Offset= -32 (206) */
+/* 240 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 242 */ NdrFcShort( 0x2 ), /* Offset= 2 (244) */
+/* 244 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 246 */ NdrFcShort( 0xc ), /* 12 */
+/* 248 */ NdrFcShort( 0x0 ), /* 0 */
+/* 250 */ NdrFcShort( 0x0 ), /* Offset= 0 (250) */
+/* 252 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 254 */ NdrFcShort( 0xff22 ), /* Offset= -222 (32) */
+/* 256 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 258 */ NdrFcShort( 0xff1e ), /* Offset= -226 (32) */
+/* 260 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 262 */ NdrFcShort( 0xff1a ), /* Offset= -230 (32) */
+/* 264 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 266 */
+ 0x12, 0x0, /* FC_UP */
+/* 268 */ NdrFcShort( 0xff0a ), /* Offset= -246 (22) */
+/* 270 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 272 */ NdrFcShort( 0x0 ), /* 0 */
+/* 274 */ NdrFcShort( 0x4 ), /* 4 */
+/* 276 */ NdrFcShort( 0x0 ), /* 0 */
+/* 278 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (266) */
+/* 280 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 282 */ NdrFcShort( 0x3d4 ), /* Offset= 980 (1262) */
+/* 284 */
+ 0x13, 0x0, /* FC_OP */
+/* 286 */ NdrFcShort( 0x3bc ), /* Offset= 956 (1242) */
+/* 288 */
+ 0x2b, /* FC_NON_ENCAPSULATED_UNION */
+ 0x9, /* FC_ULONG */
+/* 290 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 292 */ NdrFcShort( 0xfff8 ), /* -8 */
+/* 294 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 296 */ NdrFcShort( 0x2 ), /* Offset= 2 (298) */
+/* 298 */ NdrFcShort( 0x10 ), /* 16 */
+/* 300 */ NdrFcShort( 0x2f ), /* 47 */
+/* 302 */ NdrFcLong( 0x14 ), /* 20 */
+/* 306 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 308 */ NdrFcLong( 0x3 ), /* 3 */
+/* 312 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 314 */ NdrFcLong( 0x11 ), /* 17 */
+/* 318 */ NdrFcShort( 0x8001 ), /* Simple arm type: FC_BYTE */
+/* 320 */ NdrFcLong( 0x2 ), /* 2 */
+/* 324 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 326 */ NdrFcLong( 0x4 ), /* 4 */
+/* 330 */ NdrFcShort( 0x800a ), /* Simple arm type: FC_FLOAT */
+/* 332 */ NdrFcLong( 0x5 ), /* 5 */
+/* 336 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 338 */ NdrFcLong( 0xb ), /* 11 */
+/* 342 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 344 */ NdrFcLong( 0xa ), /* 10 */
+/* 348 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 350 */ NdrFcLong( 0x6 ), /* 6 */
+/* 354 */ NdrFcShort( 0xe8 ), /* Offset= 232 (586) */
+/* 356 */ NdrFcLong( 0x7 ), /* 7 */
+/* 360 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 362 */ NdrFcLong( 0x8 ), /* 8 */
+/* 366 */ NdrFcShort( 0xfe98 ), /* Offset= -360 (6) */
+/* 368 */ NdrFcLong( 0xd ), /* 13 */
+/* 372 */ NdrFcShort( 0xfebe ), /* Offset= -322 (50) */
+/* 374 */ NdrFcLong( 0x9 ), /* 9 */
+/* 378 */ NdrFcShort( 0xd6 ), /* Offset= 214 (592) */
+/* 380 */ NdrFcLong( 0x2000 ), /* 8192 */
+/* 384 */ NdrFcShort( 0xe2 ), /* Offset= 226 (610) */
+/* 386 */ NdrFcLong( 0x24 ), /* 36 */
+/* 390 */ NdrFcShort( 0x30a ), /* Offset= 778 (1168) */
+/* 392 */ NdrFcLong( 0x4024 ), /* 16420 */
+/* 396 */ NdrFcShort( 0x304 ), /* Offset= 772 (1168) */
+/* 398 */ NdrFcLong( 0x4011 ), /* 16401 */
+/* 402 */ NdrFcShort( 0x302 ), /* Offset= 770 (1172) */
+/* 404 */ NdrFcLong( 0x4002 ), /* 16386 */
+/* 408 */ NdrFcShort( 0x300 ), /* Offset= 768 (1176) */
+/* 410 */ NdrFcLong( 0x4003 ), /* 16387 */
+/* 414 */ NdrFcShort( 0x2fe ), /* Offset= 766 (1180) */
+/* 416 */ NdrFcLong( 0x4014 ), /* 16404 */
+/* 420 */ NdrFcShort( 0x2fc ), /* Offset= 764 (1184) */
+/* 422 */ NdrFcLong( 0x4004 ), /* 16388 */
+/* 426 */ NdrFcShort( 0x2fa ), /* Offset= 762 (1188) */
+/* 428 */ NdrFcLong( 0x4005 ), /* 16389 */
+/* 432 */ NdrFcShort( 0x2f8 ), /* Offset= 760 (1192) */
+/* 434 */ NdrFcLong( 0x400b ), /* 16395 */
+/* 438 */ NdrFcShort( 0x2e2 ), /* Offset= 738 (1176) */
+/* 440 */ NdrFcLong( 0x400a ), /* 16394 */
+/* 444 */ NdrFcShort( 0x2e0 ), /* Offset= 736 (1180) */
+/* 446 */ NdrFcLong( 0x4006 ), /* 16390 */
+/* 450 */ NdrFcShort( 0x2ea ), /* Offset= 746 (1196) */
+/* 452 */ NdrFcLong( 0x4007 ), /* 16391 */
+/* 456 */ NdrFcShort( 0x2e0 ), /* Offset= 736 (1192) */
+/* 458 */ NdrFcLong( 0x4008 ), /* 16392 */
+/* 462 */ NdrFcShort( 0x2e2 ), /* Offset= 738 (1200) */
+/* 464 */ NdrFcLong( 0x400d ), /* 16397 */
+/* 468 */ NdrFcShort( 0x2e0 ), /* Offset= 736 (1204) */
+/* 470 */ NdrFcLong( 0x4009 ), /* 16393 */
+/* 474 */ NdrFcShort( 0x2de ), /* Offset= 734 (1208) */
+/* 476 */ NdrFcLong( 0x6000 ), /* 24576 */
+/* 480 */ NdrFcShort( 0x2dc ), /* Offset= 732 (1212) */
+/* 482 */ NdrFcLong( 0x400c ), /* 16396 */
+/* 486 */ NdrFcShort( 0x2da ), /* Offset= 730 (1216) */
+/* 488 */ NdrFcLong( 0x10 ), /* 16 */
+/* 492 */ NdrFcShort( 0x8002 ), /* Simple arm type: FC_CHAR */
+/* 494 */ NdrFcLong( 0x12 ), /* 18 */
+/* 498 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 500 */ NdrFcLong( 0x13 ), /* 19 */
+/* 504 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 506 */ NdrFcLong( 0x15 ), /* 21 */
+/* 510 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 512 */ NdrFcLong( 0x16 ), /* 22 */
+/* 516 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 518 */ NdrFcLong( 0x17 ), /* 23 */
+/* 522 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 524 */ NdrFcLong( 0xe ), /* 14 */
+/* 528 */ NdrFcShort( 0x2b8 ), /* Offset= 696 (1224) */
+/* 530 */ NdrFcLong( 0x400e ), /* 16398 */
+/* 534 */ NdrFcShort( 0x2bc ), /* Offset= 700 (1234) */
+/* 536 */ NdrFcLong( 0x4010 ), /* 16400 */
+/* 540 */ NdrFcShort( 0x2ba ), /* Offset= 698 (1238) */
+/* 542 */ NdrFcLong( 0x4012 ), /* 16402 */
+/* 546 */ NdrFcShort( 0x276 ), /* Offset= 630 (1176) */
+/* 548 */ NdrFcLong( 0x4013 ), /* 16403 */
+/* 552 */ NdrFcShort( 0x274 ), /* Offset= 628 (1180) */
+/* 554 */ NdrFcLong( 0x4015 ), /* 16405 */
+/* 558 */ NdrFcShort( 0x272 ), /* Offset= 626 (1184) */
+/* 560 */ NdrFcLong( 0x4016 ), /* 16406 */
+/* 564 */ NdrFcShort( 0x268 ), /* Offset= 616 (1180) */
+/* 566 */ NdrFcLong( 0x4017 ), /* 16407 */
+/* 570 */ NdrFcShort( 0x262 ), /* Offset= 610 (1180) */
+/* 572 */ NdrFcLong( 0x0 ), /* 0 */
+/* 576 */ NdrFcShort( 0x0 ), /* Offset= 0 (576) */
+/* 578 */ NdrFcLong( 0x1 ), /* 1 */
+/* 582 */ NdrFcShort( 0x0 ), /* Offset= 0 (582) */
+/* 584 */ NdrFcShort( 0xffff ), /* Offset= -1 (583) */
+/* 586 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 588 */ NdrFcShort( 0x8 ), /* 8 */
+/* 590 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 592 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 594 */ NdrFcLong( 0x20400 ), /* 132096 */
+/* 598 */ NdrFcShort( 0x0 ), /* 0 */
+/* 600 */ NdrFcShort( 0x0 ), /* 0 */
+/* 602 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 604 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 606 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 608 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 610 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 612 */ NdrFcShort( 0x2 ), /* Offset= 2 (614) */
+/* 614 */
+ 0x13, 0x0, /* FC_OP */
+/* 616 */ NdrFcShort( 0x216 ), /* Offset= 534 (1150) */
+/* 618 */
+ 0x2a, /* FC_ENCAPSULATED_UNION */
+ 0x49, /* 73 */
+/* 620 */ NdrFcShort( 0x18 ), /* 24 */
+/* 622 */ NdrFcShort( 0xa ), /* 10 */
+/* 624 */ NdrFcLong( 0x8 ), /* 8 */
+/* 628 */ NdrFcShort( 0x5a ), /* Offset= 90 (718) */
+/* 630 */ NdrFcLong( 0xd ), /* 13 */
+/* 634 */ NdrFcShort( 0x7e ), /* Offset= 126 (760) */
+/* 636 */ NdrFcLong( 0x9 ), /* 9 */
+/* 640 */ NdrFcShort( 0x9e ), /* Offset= 158 (798) */
+/* 642 */ NdrFcLong( 0xc ), /* 12 */
+/* 646 */ NdrFcShort( 0xc8 ), /* Offset= 200 (846) */
+/* 648 */ NdrFcLong( 0x24 ), /* 36 */
+/* 652 */ NdrFcShort( 0x124 ), /* Offset= 292 (944) */
+/* 654 */ NdrFcLong( 0x800d ), /* 32781 */
+/* 658 */ NdrFcShort( 0x140 ), /* Offset= 320 (978) */
+/* 660 */ NdrFcLong( 0x10 ), /* 16 */
+/* 664 */ NdrFcShort( 0x15a ), /* Offset= 346 (1010) */
+/* 666 */ NdrFcLong( 0x2 ), /* 2 */
+/* 670 */ NdrFcShort( 0x174 ), /* Offset= 372 (1042) */
+/* 672 */ NdrFcLong( 0x3 ), /* 3 */
+/* 676 */ NdrFcShort( 0x18e ), /* Offset= 398 (1074) */
+/* 678 */ NdrFcLong( 0x14 ), /* 20 */
+/* 682 */ NdrFcShort( 0x1a8 ), /* Offset= 424 (1106) */
+/* 684 */ NdrFcShort( 0xffff ), /* Offset= -1 (683) */
+/* 686 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 688 */ NdrFcShort( 0x4 ), /* 4 */
+/* 690 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 692 */ NdrFcShort( 0x0 ), /* 0 */
+/* 694 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 696 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 698 */
+ 0x48, /* FC_VARIABLE_REPEAT */
+ 0x49, /* FC_FIXED_OFFSET */
+/* 700 */ NdrFcShort( 0x4 ), /* 4 */
+/* 702 */ NdrFcShort( 0x0 ), /* 0 */
+/* 704 */ NdrFcShort( 0x1 ), /* 1 */
+/* 706 */ NdrFcShort( 0x0 ), /* 0 */
+/* 708 */ NdrFcShort( 0x0 ), /* 0 */
+/* 710 */ 0x13, 0x0, /* FC_OP */
+/* 712 */ NdrFcShort( 0xfd4e ), /* Offset= -690 (22) */
+/* 714 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 716 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 718 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 720 */ NdrFcShort( 0x8 ), /* 8 */
+/* 722 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 724 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 726 */ NdrFcShort( 0x4 ), /* 4 */
+/* 728 */ NdrFcShort( 0x4 ), /* 4 */
+/* 730 */ 0x11, 0x0, /* FC_RP */
+/* 732 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (686) */
+/* 734 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 736 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 738 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 740 */ NdrFcShort( 0x0 ), /* 0 */
+/* 742 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 744 */ NdrFcShort( 0x0 ), /* 0 */
+/* 746 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 748 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 752 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 754 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 756 */ NdrFcShort( 0xfd3e ), /* Offset= -706 (50) */
+/* 758 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 760 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 762 */ NdrFcShort( 0x8 ), /* 8 */
+/* 764 */ NdrFcShort( 0x0 ), /* 0 */
+/* 766 */ NdrFcShort( 0x6 ), /* Offset= 6 (772) */
+/* 768 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 770 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 772 */
+ 0x11, 0x0, /* FC_RP */
+/* 774 */ NdrFcShort( 0xffdc ), /* Offset= -36 (738) */
+/* 776 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 778 */ NdrFcShort( 0x0 ), /* 0 */
+/* 780 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 782 */ NdrFcShort( 0x0 ), /* 0 */
+/* 784 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 786 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 790 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 792 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 794 */ NdrFcShort( 0xff36 ), /* Offset= -202 (592) */
+/* 796 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 798 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 800 */ NdrFcShort( 0x8 ), /* 8 */
+/* 802 */ NdrFcShort( 0x0 ), /* 0 */
+/* 804 */ NdrFcShort( 0x6 ), /* Offset= 6 (810) */
+/* 806 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 808 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 810 */
+ 0x11, 0x0, /* FC_RP */
+/* 812 */ NdrFcShort( 0xffdc ), /* Offset= -36 (776) */
+/* 814 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 816 */ NdrFcShort( 0x4 ), /* 4 */
+/* 818 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 820 */ NdrFcShort( 0x0 ), /* 0 */
+/* 822 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 824 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 826 */
+ 0x48, /* FC_VARIABLE_REPEAT */
+ 0x49, /* FC_FIXED_OFFSET */
+/* 828 */ NdrFcShort( 0x4 ), /* 4 */
+/* 830 */ NdrFcShort( 0x0 ), /* 0 */
+/* 832 */ NdrFcShort( 0x1 ), /* 1 */
+/* 834 */ NdrFcShort( 0x0 ), /* 0 */
+/* 836 */ NdrFcShort( 0x0 ), /* 0 */
+/* 838 */ 0x13, 0x0, /* FC_OP */
+/* 840 */ NdrFcShort( 0x192 ), /* Offset= 402 (1242) */
+/* 842 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 844 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 846 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 848 */ NdrFcShort( 0x8 ), /* 8 */
+/* 850 */ NdrFcShort( 0x0 ), /* 0 */
+/* 852 */ NdrFcShort( 0x6 ), /* Offset= 6 (858) */
+/* 854 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 856 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 858 */
+ 0x11, 0x0, /* FC_RP */
+/* 860 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (814) */
+/* 862 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 864 */ NdrFcLong( 0x2f ), /* 47 */
+/* 868 */ NdrFcShort( 0x0 ), /* 0 */
+/* 870 */ NdrFcShort( 0x0 ), /* 0 */
+/* 872 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 874 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 876 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 878 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 880 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 882 */ NdrFcShort( 0x1 ), /* 1 */
+/* 884 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 886 */ NdrFcShort( 0x4 ), /* 4 */
+/* 888 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 890 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 892 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 894 */ NdrFcShort( 0x10 ), /* 16 */
+/* 896 */ NdrFcShort( 0x0 ), /* 0 */
+/* 898 */ NdrFcShort( 0xa ), /* Offset= 10 (908) */
+/* 900 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 902 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 904 */ NdrFcShort( 0xffd6 ), /* Offset= -42 (862) */
+/* 906 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 908 */
+ 0x13, 0x0, /* FC_OP */
+/* 910 */ NdrFcShort( 0xffe2 ), /* Offset= -30 (880) */
+/* 912 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 914 */ NdrFcShort( 0x4 ), /* 4 */
+/* 916 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 918 */ NdrFcShort( 0x0 ), /* 0 */
+/* 920 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 922 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 924 */
+ 0x48, /* FC_VARIABLE_REPEAT */
+ 0x49, /* FC_FIXED_OFFSET */
+/* 926 */ NdrFcShort( 0x4 ), /* 4 */
+/* 928 */ NdrFcShort( 0x0 ), /* 0 */
+/* 930 */ NdrFcShort( 0x1 ), /* 1 */
+/* 932 */ NdrFcShort( 0x0 ), /* 0 */
+/* 934 */ NdrFcShort( 0x0 ), /* 0 */
+/* 936 */ 0x13, 0x0, /* FC_OP */
+/* 938 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (892) */
+/* 940 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 942 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 944 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 946 */ NdrFcShort( 0x8 ), /* 8 */
+/* 948 */ NdrFcShort( 0x0 ), /* 0 */
+/* 950 */ NdrFcShort( 0x6 ), /* Offset= 6 (956) */
+/* 952 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 954 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 956 */
+ 0x11, 0x0, /* FC_RP */
+/* 958 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (912) */
+/* 960 */
+ 0x1d, /* FC_SMFARRAY */
+ 0x0, /* 0 */
+/* 962 */ NdrFcShort( 0x8 ), /* 8 */
+/* 964 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 966 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 968 */ NdrFcShort( 0x10 ), /* 16 */
+/* 970 */ 0x8, /* FC_LONG */
+ 0x6, /* FC_SHORT */
+/* 972 */ 0x6, /* FC_SHORT */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 974 */ 0x0, /* 0 */
+ NdrFcShort( 0xfff1 ), /* Offset= -15 (960) */
+ 0x5b, /* FC_END */
+/* 978 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 980 */ NdrFcShort( 0x18 ), /* 24 */
+/* 982 */ NdrFcShort( 0x0 ), /* 0 */
+/* 984 */ NdrFcShort( 0xa ), /* Offset= 10 (994) */
+/* 986 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 988 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 990 */ NdrFcShort( 0xffe8 ), /* Offset= -24 (966) */
+/* 992 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 994 */
+ 0x11, 0x0, /* FC_RP */
+/* 996 */ NdrFcShort( 0xfefe ), /* Offset= -258 (738) */
+/* 998 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 1000 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1002 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 1004 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1006 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1008 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 1010 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 1012 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1014 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 1016 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 1018 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1020 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1022 */ 0x13, 0x0, /* FC_OP */
+/* 1024 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (998) */
+/* 1026 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 1028 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1030 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 1032 */ NdrFcShort( 0x2 ), /* 2 */
+/* 1034 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 1036 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1038 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1040 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 1042 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 1044 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1046 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 1048 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 1050 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1052 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1054 */ 0x13, 0x0, /* FC_OP */
+/* 1056 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (1030) */
+/* 1058 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 1060 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1062 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 1064 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1066 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 1068 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1070 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1072 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1074 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 1076 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1078 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 1080 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 1082 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1084 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1086 */ 0x13, 0x0, /* FC_OP */
+/* 1088 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (1062) */
+/* 1090 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 1092 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1094 */
+ 0x1b, /* FC_CARRAY */
+ 0x7, /* 7 */
+/* 1096 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1098 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 1100 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1102 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1104 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 1106 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 1108 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1110 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 1112 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 1114 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1116 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1118 */ 0x13, 0x0, /* FC_OP */
+/* 1120 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (1094) */
+/* 1122 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 1124 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1126 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 1128 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1130 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1132 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1134 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 1136 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1138 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 1140 */ NdrFcShort( 0xffd8 ), /* -40 */
+/* 1142 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1144 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1146 */ NdrFcShort( 0xffec ), /* Offset= -20 (1126) */
+/* 1148 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1150 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 1152 */ NdrFcShort( 0x28 ), /* 40 */
+/* 1154 */ NdrFcShort( 0xffec ), /* Offset= -20 (1134) */
+/* 1156 */ NdrFcShort( 0x0 ), /* Offset= 0 (1156) */
+/* 1158 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1160 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1162 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1164 */ NdrFcShort( 0xfdde ), /* Offset= -546 (618) */
+/* 1166 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1168 */
+ 0x13, 0x0, /* FC_OP */
+/* 1170 */ NdrFcShort( 0xfeea ), /* Offset= -278 (892) */
+/* 1172 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1174 */ 0x1, /* FC_BYTE */
+ 0x5c, /* FC_PAD */
+/* 1176 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1178 */ 0x6, /* FC_SHORT */
+ 0x5c, /* FC_PAD */
+/* 1180 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1182 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 1184 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1186 */ 0xb, /* FC_HYPER */
+ 0x5c, /* FC_PAD */
+/* 1188 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1190 */ 0xa, /* FC_FLOAT */
+ 0x5c, /* FC_PAD */
+/* 1192 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1194 */ 0xc, /* FC_DOUBLE */
+ 0x5c, /* FC_PAD */
+/* 1196 */
+ 0x13, 0x0, /* FC_OP */
+/* 1198 */ NdrFcShort( 0xfd9c ), /* Offset= -612 (586) */
+/* 1200 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1202 */ NdrFcShort( 0xfb54 ), /* Offset= -1196 (6) */
+/* 1204 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1206 */ NdrFcShort( 0xfb7c ), /* Offset= -1156 (50) */
+/* 1208 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1210 */ NdrFcShort( 0xfd96 ), /* Offset= -618 (592) */
+/* 1212 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1214 */ NdrFcShort( 0xfda4 ), /* Offset= -604 (610) */
+/* 1216 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1218 */ NdrFcShort( 0x2 ), /* Offset= 2 (1220) */
+/* 1220 */
+ 0x13, 0x0, /* FC_OP */
+/* 1222 */ NdrFcShort( 0x14 ), /* Offset= 20 (1242) */
+/* 1224 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 1226 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1228 */ 0x6, /* FC_SHORT */
+ 0x1, /* FC_BYTE */
+/* 1230 */ 0x1, /* FC_BYTE */
+ 0x8, /* FC_LONG */
+/* 1232 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 1234 */
+ 0x13, 0x0, /* FC_OP */
+/* 1236 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (1224) */
+/* 1238 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1240 */ 0x2, /* FC_CHAR */
+ 0x5c, /* FC_PAD */
+/* 1242 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x7, /* 7 */
+/* 1244 */ NdrFcShort( 0x20 ), /* 32 */
+/* 1246 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1248 */ NdrFcShort( 0x0 ), /* Offset= 0 (1248) */
+/* 1250 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1252 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1254 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1256 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1258 */ NdrFcShort( 0xfc36 ), /* Offset= -970 (288) */
+/* 1260 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1262 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 1264 */ NdrFcShort( 0x2 ), /* 2 */
+/* 1266 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1268 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1270 */ NdrFcShort( 0xfc26 ), /* Offset= -986 (284) */
+/* 1272 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1274 */ NdrFcShort( 0x2 ), /* Offset= 2 (1276) */
+/* 1276 */
+ 0x13, 0x0, /* FC_OP */
+/* 1278 */ NdrFcShort( 0x2 ), /* Offset= 2 (1280) */
+/* 1280 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 1282 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1284 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1286 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1288 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1290 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 1294 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1296 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1298 */ NdrFcShort( 0xfb20 ), /* Offset= -1248 (50) */
+/* 1300 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1302 */
+ 0x12, 0x0, /* FC_UP */
+/* 1304 */ NdrFcShort( 0xffc2 ), /* Offset= -62 (1242) */
+/* 1306 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 1308 */ NdrFcShort( 0x2 ), /* 2 */
+/* 1310 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1312 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1314 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (1302) */
+/* 1316 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 1318 */ NdrFcShort( 0x2 ), /* Offset= 2 (1320) */
+/* 1320 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 1322 */ NdrFcShort( 0xc ), /* 12 */
+/* 1324 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1326 */ NdrFcShort( 0x0 ), /* Offset= 0 (1326) */
+/* 1328 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1330 */ NdrFcShort( 0xfaee ), /* Offset= -1298 (32) */
+/* 1332 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1334 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1336 */
+ 0x11, 0x0, /* FC_RP */
+/* 1338 */ NdrFcShort( 0xfbd4 ), /* Offset= -1068 (270) */
+/* 1340 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 1342 */ 0x3, /* FC_SMALL */
+ 0x5c, /* FC_PAD */
+/* 1344 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 1346 */ NdrFcShort( 0x2 ), /* Offset= 2 (1348) */
+/* 1348 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 1350 */ NdrFcLong( 0x1c20f2b ), /* 29495083 */
+/* 1354 */ NdrFcShort( 0x3dd2 ), /* 15826 */
+/* 1356 */ NdrFcShort( 0x400f ), /* 16399 */
+/* 1358 */ 0x94, /* 148 */
+ 0x9f, /* 159 */
+/* 1360 */ 0xad, /* 173 */
+ 0x0, /* 0 */
+/* 1362 */ 0xbd, /* 189 */
+ 0xab, /* 171 */
+/* 1364 */ 0x1d, /* 29 */
+ 0x41, /* 65 */
+/* 1366 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1368 */ NdrFcShort( 0x2 ), /* Offset= 2 (1370) */
+/* 1370 */
+ 0x13, 0x0, /* FC_OP */
+/* 1372 */ NdrFcShort( 0x2 ), /* Offset= 2 (1374) */
+/* 1374 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 1376 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1378 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1380 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1382 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1384 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 1388 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1390 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1392 */ NdrFcShort( 0xffd4 ), /* Offset= -44 (1348) */
+/* 1394 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1396 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 1398 */ NdrFcShort( 0x2 ), /* Offset= 2 (1400) */
+/* 1400 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 1402 */ NdrFcLong( 0x35ad8070 ), /* 900563056 */
+/* 1406 */ NdrFcShort( 0xc20c ), /* -15860 */
+/* 1408 */ NdrFcShort( 0x4fb4 ), /* 20404 */
+/* 1410 */ 0xb0, /* 176 */
+ 0x94, /* 148 */
+/* 1412 */ 0xf4, /* 244 */
+ 0xf7, /* 247 */
+/* 1414 */ 0x27, /* 39 */
+ 0x5d, /* 93 */
+/* 1416 */ 0xd4, /* 212 */
+ 0x69, /* 105 */
+/* 1418 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1420 */ NdrFcShort( 0x2 ), /* Offset= 2 (1422) */
+/* 1422 */
+ 0x13, 0x0, /* FC_OP */
+/* 1424 */ NdrFcShort( 0x2 ), /* Offset= 2 (1426) */
+/* 1426 */
+ 0x1c, /* FC_CVARRAY */
+ 0x3, /* 3 */
+/* 1428 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1430 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 1432 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1434 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1436 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1438 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1440 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1442 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1444 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 1446 */ NdrFcShort( 0x2 ), /* Offset= 2 (1448) */
+/* 1448 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 1450 */ NdrFcShort( 0x14 ), /* 20 */
+/* 1452 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1454 */ NdrFcShort( 0x0 ), /* Offset= 0 (1454) */
+/* 1456 */ 0xd, /* FC_ENUM16 */
+ 0x8, /* FC_LONG */
+/* 1458 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1460 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1462 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1464 */ NdrFcShort( 0x2 ), /* Offset= 2 (1466) */
+/* 1466 */
+ 0x13, 0x0, /* FC_OP */
+/* 1468 */ NdrFcShort( 0x2 ), /* Offset= 2 (1470) */
+/* 1470 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 1472 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1474 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1476 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1478 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1480 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 1484 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1486 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1488 */ NdrFcShort( 0xfa62 ), /* Offset= -1438 (50) */
+/* 1490 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1492 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1494 */ NdrFcShort( 0x2 ), /* Offset= 2 (1496) */
+/* 1496 */
+ 0x13, 0x0, /* FC_OP */
+/* 1498 */ NdrFcShort( 0x2 ), /* Offset= 2 (1500) */
+/* 1500 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 1502 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1504 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1506 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1508 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1510 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ },
+ {
+ HWND_UserSize
+ ,HWND_UserMarshal
+ ,HWND_UserUnmarshal
+ ,HWND_UserFree
+ },
+ {
+ VARIANT_UserSize
+ ,VARIANT_UserMarshal
+ ,VARIANT_UserUnmarshal
+ ,VARIANT_UserFree
+ }
+
+ };
+
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleRelation, ver. 0.0,
+ GUID={0x7CDF86EE,0xC3DA,0x496a,{0xBD,0xA4,0x28,0x1B,0x33,0x6E,0x1F,0xDC}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleRelation_FormatStringOffsetTable[] =
+ {
+ 0,
+ 36,
+ 72,
+ 108,
+ 150
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleRelation_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleRelation_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleRelation_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleRelation_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(8) _IAccessibleRelationProxyVtbl =
+{
+ &IAccessibleRelation_ProxyInfo,
+ &IID_IAccessibleRelation,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_relationType */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_localizedRelationType */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_nTargets */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_target */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_targets */
+};
+
+const CInterfaceStubVtbl _IAccessibleRelationStubVtbl =
+{
+ &IID_IAccessibleRelation,
+ &IAccessibleRelation_ServerInfo,
+ 8,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0001, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IAccessibleAction, ver. 0.0,
+ GUID={0xB70D9F59,0x3B5A,0x4dba,{0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleAction_FormatStringOffsetTable[] =
+ {
+ 198,
+ 234,
+ 270,
+ 312,
+ 366,
+ 408
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleAction_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleAction_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleAction_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleAction_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(9) _IAccessibleActionProxyVtbl =
+{
+ &IAccessibleAction_ProxyInfo,
+ &IID_IAccessibleAction,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::nActions */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::doAction */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_description */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_keyBinding */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_name */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_localizedName */
+};
+
+const CInterfaceStubVtbl _IAccessibleActionStubVtbl =
+{
+ &IID_IAccessibleAction,
+ &IAccessibleAction_ServerInfo,
+ 9,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0002, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IDispatch, ver. 0.0,
+ GUID={0x00020400,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessible, ver. 0.0,
+ GUID={0x618736e0,0x3c3d,0x11cf,{0x81,0x0c,0x00,0xaa,0x00,0x38,0x9b,0x71}} */
+
+
+/* Object interface: IAccessible2, ver. 0.0,
+ GUID={0xE89F726E,0xC4F4,0x4c19,{0xBB,0x19,0xB6,0x47,0xD7,0xFA,0x84,0x78}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessible2_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 450,
+ 486,
+ 528,
+ 576,
+ 612,
+ 648,
+ 696,
+ 744,
+ 780,
+ 816,
+ 852,
+ 888,
+ 936,
+ 984,
+ 1020,
+ 1056,
+ 1092,
+ 1128
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessible2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessible2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessible2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessible2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(46) _IAccessible2ProxyVtbl =
+{
+ &IAccessible2_ProxyInfo,
+ &IID_IAccessible2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ 0 /* IAccessible::get_accParent */ ,
+ 0 /* IAccessible::get_accChildCount */ ,
+ 0 /* IAccessible::get_accChild */ ,
+ 0 /* IAccessible::get_accName */ ,
+ 0 /* IAccessible::get_accValue */ ,
+ 0 /* IAccessible::get_accDescription */ ,
+ 0 /* IAccessible::get_accRole */ ,
+ 0 /* IAccessible::get_accState */ ,
+ 0 /* IAccessible::get_accHelp */ ,
+ 0 /* IAccessible::get_accHelpTopic */ ,
+ 0 /* IAccessible::get_accKeyboardShortcut */ ,
+ 0 /* IAccessible::get_accFocus */ ,
+ 0 /* IAccessible::get_accSelection */ ,
+ 0 /* IAccessible::get_accDefaultAction */ ,
+ 0 /* IAccessible::accSelect */ ,
+ 0 /* IAccessible::accLocation */ ,
+ 0 /* IAccessible::accNavigate */ ,
+ 0 /* IAccessible::accHitTest */ ,
+ 0 /* IAccessible::accDoDefaultAction */ ,
+ 0 /* IAccessible::put_accName */ ,
+ 0 /* IAccessible::put_accValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nRelations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relation */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::role */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_groupPosition */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_states */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_uniqueID */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_windowHandle */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_indexInParent */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_locale */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_attributes */
+};
+
+
+static const PRPC_STUB_FUNCTION IAccessible2_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAccessible2StubVtbl =
+{
+ &IID_IAccessible2,
+ &IAccessible2_ServerInfo,
+ 46,
+ &IAccessible2_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IAccessible2_2, ver. 0.0,
+ GUID={0x6C9430E9,0x299D,0x4E6F,{0xBD,0x01,0xA8,0x2A,0x1E,0x88,0xD3,0xFF}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessible2_2_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 450,
+ 486,
+ 528,
+ 576,
+ 612,
+ 648,
+ 696,
+ 744,
+ 780,
+ 816,
+ 852,
+ 888,
+ 936,
+ 984,
+ 1020,
+ 1056,
+ 1092,
+ 1128,
+ 1164,
+ 1206,
+ 1248
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessible2_2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessible2_2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessible2_2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessible2_2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(49) _IAccessible2_2ProxyVtbl =
+{
+ &IAccessible2_2_ProxyInfo,
+ &IID_IAccessible2_2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ 0 /* IAccessible::get_accParent */ ,
+ 0 /* IAccessible::get_accChildCount */ ,
+ 0 /* IAccessible::get_accChild */ ,
+ 0 /* IAccessible::get_accName */ ,
+ 0 /* IAccessible::get_accValue */ ,
+ 0 /* IAccessible::get_accDescription */ ,
+ 0 /* IAccessible::get_accRole */ ,
+ 0 /* IAccessible::get_accState */ ,
+ 0 /* IAccessible::get_accHelp */ ,
+ 0 /* IAccessible::get_accHelpTopic */ ,
+ 0 /* IAccessible::get_accKeyboardShortcut */ ,
+ 0 /* IAccessible::get_accFocus */ ,
+ 0 /* IAccessible::get_accSelection */ ,
+ 0 /* IAccessible::get_accDefaultAction */ ,
+ 0 /* IAccessible::accSelect */ ,
+ 0 /* IAccessible::accLocation */ ,
+ 0 /* IAccessible::accNavigate */ ,
+ 0 /* IAccessible::accHitTest */ ,
+ 0 /* IAccessible::accDoDefaultAction */ ,
+ 0 /* IAccessible::put_accName */ ,
+ 0 /* IAccessible::put_accValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nRelations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relation */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::role */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_groupPosition */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_states */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_uniqueID */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_windowHandle */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_indexInParent */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_locale */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2_2::get_attribute */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2_2::get_accessibleWithCaret */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2_2::get_relationTargetsOfType */
+};
+
+
+static const PRPC_STUB_FUNCTION IAccessible2_2_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAccessible2_2StubVtbl =
+{
+ &IID_IAccessible2_2,
+ &IAccessible2_2_ServerInfo,
+ 49,
+ &IAccessible2_2_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0004, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IAccessibleComponent, ver. 0.0,
+ GUID={0x1546D4B0,0x4C98,0x4bda,{0x89,0xAE,0x9A,0x64,0x74,0x8B,0xDD,0xE4}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleComponent_FormatStringOffsetTable[] =
+ {
+ 1302,
+ 1344,
+ 72
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleComponent_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleComponent_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleComponent_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleComponent_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(6) _IAccessibleComponentProxyVtbl =
+{
+ &IAccessibleComponent_ProxyInfo,
+ &IID_IAccessibleComponent,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleComponent::get_locationInParent */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleComponent::get_foreground */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleComponent::get_background */
+};
+
+const CInterfaceStubVtbl _IAccessibleComponentStubVtbl =
+{
+ &IID_IAccessibleComponent,
+ &IAccessibleComponent_ServerInfo,
+ 6,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleValue, ver. 0.0,
+ GUID={0x35855B5B,0xC566,0x4fd0,{0xA7,0xB1,0xE6,0x54,0x65,0x60,0x03,0x94}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleValue_FormatStringOffsetTable[] =
+ {
+ 1380,
+ 1416,
+ 1452,
+ 1488
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleValue_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleValue_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleValue_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleValue_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(7) _IAccessibleValueProxyVtbl =
+{
+ &IAccessibleValue_ProxyInfo,
+ &IID_IAccessibleValue,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::get_currentValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::setCurrentValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::get_maximumValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::get_minimumValue */
+};
+
+const CInterfaceStubVtbl _IAccessibleValueStubVtbl =
+{
+ &IID_IAccessibleValue,
+ &IAccessibleValue_ServerInfo,
+ 7,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0006, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IAccessibleText, ver. 0.0,
+ GUID={0x24FD2FFB,0x3AAD,0x4a08,{0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleText_FormatStringOffsetTable[] =
+ {
+ 1524,
+ 1566,
+ 72,
+ 1620,
+ 1686,
+ 1722,
+ 1776,
+ 1824,
+ 1872,
+ 1932,
+ 1992,
+ 2052,
+ 2088,
+ 2124,
+ 2172,
+ 2208,
+ 2256,
+ 2316,
+ 2352
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleText_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleText_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(22) _IAccessibleTextProxyVtbl =
+{
+ &IAccessibleText_ProxyInfo,
+ &IID_IAccessibleText,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */
+};
+
+const CInterfaceStubVtbl _IAccessibleTextStubVtbl =
+{
+ &IID_IAccessibleText,
+ &IAccessibleText_ServerInfo,
+ 22,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleText2, ver. 0.0,
+ GUID={0x9690A9CC,0x5C80,0x4DF5,{0x85,0x2E,0x2D,0x5A,0xE4,0x18,0x9A,0x54}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleText2_FormatStringOffsetTable[] =
+ {
+ 1524,
+ 1566,
+ 72,
+ 1620,
+ 1686,
+ 1722,
+ 1776,
+ 1824,
+ 1872,
+ 1932,
+ 1992,
+ 2052,
+ 2088,
+ 2124,
+ 2172,
+ 2208,
+ 2256,
+ 2316,
+ 2352,
+ 2388
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleText2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleText2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleText2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleText2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(23) _IAccessibleText2ProxyVtbl =
+{
+ &IAccessibleText2_ProxyInfo,
+ &IID_IAccessibleText2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText2::get_attributeRange */
+};
+
+const CInterfaceStubVtbl _IAccessibleText2StubVtbl =
+{
+ &IID_IAccessibleText2,
+ &IAccessibleText2_ServerInfo,
+ 23,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleEditableText, ver. 0.0,
+ GUID={0xA59AA09A,0x7011,0x4b65,{0x93,0x9D,0x32,0xB1,0xFB,0x55,0x47,0xE3}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleEditableText_FormatStringOffsetTable[] =
+ {
+ 1524,
+ 2448,
+ 2490,
+ 2532,
+ 2574,
+ 2610,
+ 2658
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleEditableText_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleEditableText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleEditableText_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleEditableText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(10) _IAccessibleEditableTextProxyVtbl =
+{
+ &IAccessibleEditableText_ProxyInfo,
+ &IID_IAccessibleEditableText,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::copyText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::deleteText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::insertText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::cutText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::pasteText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::replaceText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::setAttributes */
+};
+
+const CInterfaceStubVtbl _IAccessibleEditableTextStubVtbl =
+{
+ &IID_IAccessibleEditableText,
+ &IAccessibleEditableText_ServerInfo,
+ 10,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleHyperlink, ver. 0.0,
+ GUID={0x01C20F2B,0x3DD2,0x400f,{0x94,0x9F,0xAD,0x00,0xBD,0xAB,0x1D,0x41}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleHyperlink_FormatStringOffsetTable[] =
+ {
+ 198,
+ 234,
+ 270,
+ 312,
+ 366,
+ 408,
+ 2706,
+ 2748,
+ 2790,
+ 2826,
+ 2862
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleHyperlink_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHyperlink_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleHyperlink_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHyperlink_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(14) _IAccessibleHyperlinkProxyVtbl =
+{
+ &IAccessibleHyperlink_ProxyInfo,
+ &IID_IAccessibleHyperlink,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::nActions */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::doAction */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_description */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_keyBinding */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_name */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_localizedName */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_anchor */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_anchorTarget */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_startIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_endIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_valid */
+};
+
+const CInterfaceStubVtbl _IAccessibleHyperlinkStubVtbl =
+{
+ &IID_IAccessibleHyperlink,
+ &IAccessibleHyperlink_ServerInfo,
+ 14,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleHypertext, ver. 0.0,
+ GUID={0x6B4F8BBF,0xF1F2,0x418a,{0xB3,0x5E,0xA1,0x95,0xBC,0x41,0x03,0xB9}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleHypertext_FormatStringOffsetTable[] =
+ {
+ 1524,
+ 1566,
+ 72,
+ 1620,
+ 1686,
+ 1722,
+ 1776,
+ 1824,
+ 1872,
+ 1932,
+ 1992,
+ 2052,
+ 2088,
+ 2124,
+ 2172,
+ 2208,
+ 2256,
+ 2316,
+ 2352,
+ 2898,
+ 2934,
+ 2976
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleHypertext_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(25) _IAccessibleHypertextProxyVtbl =
+{
+ &IAccessibleHypertext_ProxyInfo,
+ &IID_IAccessibleHypertext,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_nHyperlinks */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlink */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlinkIndex */
+};
+
+const CInterfaceStubVtbl _IAccessibleHypertextStubVtbl =
+{
+ &IID_IAccessibleHypertext,
+ &IAccessibleHypertext_ServerInfo,
+ 25,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleHypertext2, ver. 0.0,
+ GUID={0xCF64D89F,0x8287,0x4B44,{0x85,0x01,0xA8,0x27,0x45,0x3A,0x60,0x77}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleHypertext2_FormatStringOffsetTable[] =
+ {
+ 1524,
+ 1566,
+ 72,
+ 1620,
+ 1686,
+ 1722,
+ 1776,
+ 1824,
+ 1872,
+ 1932,
+ 1992,
+ 2052,
+ 2088,
+ 2124,
+ 2172,
+ 2208,
+ 2256,
+ 2316,
+ 2352,
+ 2898,
+ 2934,
+ 2976,
+ 3018
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleHypertext2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(26) _IAccessibleHypertext2ProxyVtbl =
+{
+ &IAccessibleHypertext2_ProxyInfo,
+ &IID_IAccessibleHypertext2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_nHyperlinks */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlink */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlinkIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext2::get_hyperlinks */
+};
+
+const CInterfaceStubVtbl _IAccessibleHypertext2StubVtbl =
+{
+ &IID_IAccessibleHypertext2,
+ &IAccessibleHypertext2_ServerInfo,
+ 26,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleTable, ver. 0.0,
+ GUID={0x35AD8070,0xC20C,0x4fb4,{0xB0,0x94,0xF4,0xF7,0x27,0x5D,0xD4,0x69}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleTable_FormatStringOffsetTable[] =
+ {
+ 3060,
+ 3108,
+ 3144,
+ 3192,
+ 3234,
+ 3282,
+ 3324,
+ 3366,
+ 2790,
+ 2826,
+ 3402,
+ 3438,
+ 3474,
+ 3516,
+ 3564,
+ 3606,
+ 3648,
+ 3696,
+ 3744,
+ 3792,
+ 3828,
+ 3870,
+ 3912,
+ 3960,
+ 3996,
+ 4032,
+ 4068,
+ 4104,
+ 4170
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleTable_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTable_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleTable_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTable_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(32) _IAccessibleTableProxyVtbl =
+{
+ &IAccessibleTable_ProxyInfo,
+ &IID_IAccessibleTable,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_accessibleAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_caption */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_childIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnExtentAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnHeader */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedChildren */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowExtentAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowHeader */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedChildren */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_summary */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_isColumnSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_isRowSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_isSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::selectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::selectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::unselectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::unselectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowColumnExtentsAtIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_modelChange */
+};
+
+const CInterfaceStubVtbl _IAccessibleTableStubVtbl =
+{
+ &IID_IAccessibleTable,
+ &IAccessibleTable_ServerInfo,
+ 32,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleTable2, ver. 0.0,
+ GUID={0x6167f295,0x06f0,0x4cdd,{0xa1,0xfa,0x02,0xe2,0x51,0x53,0xd8,0x69}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleTable2_FormatStringOffsetTable[] =
+ {
+ 3060,
+ 3108,
+ 270,
+ 4206,
+ 1686,
+ 4242,
+ 4278,
+ 3366,
+ 4314,
+ 4356,
+ 4398,
+ 4440,
+ 4482,
+ 4518,
+ 4560,
+ 4602,
+ 4638,
+ 4674,
+ 4710,
+ 4746
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleTable2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTable2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleTable2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTable2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(23) _IAccessibleTable2ProxyVtbl =
+{
+ &IAccessibleTable2_ProxyInfo,
+ &IID_IAccessibleTable2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_cellAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_caption */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_columnDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_rowDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_summary */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_isColumnSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_isRowSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::selectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::selectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::unselectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::unselectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_modelChange */
+};
+
+const CInterfaceStubVtbl _IAccessibleTable2StubVtbl =
+{
+ &IID_IAccessibleTable2,
+ &IAccessibleTable2_ServerInfo,
+ 23,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleTableCell, ver. 0.0,
+ GUID={0x594116B1,0xC99F,0x4847,{0xAD,0x06,0x0A,0x7A,0x86,0xEC,0xE6,0x45}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleTableCell_FormatStringOffsetTable[] =
+ {
+ 198,
+ 4782,
+ 72,
+ 4206,
+ 4824,
+ 4242,
+ 4866,
+ 4902,
+ 4962
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleTableCell_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTableCell_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleTableCell_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTableCell_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(12) _IAccessibleTableCellProxyVtbl =
+{
+ &IAccessibleTableCell_ProxyInfo,
+ &IID_IAccessibleTableCell,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnExtent */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnHeaderCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowExtent */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowHeaderCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_isSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowColumnExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_table */
+};
+
+const CInterfaceStubVtbl _IAccessibleTableCellStubVtbl =
+{
+ &IID_IAccessibleTableCell,
+ &IAccessibleTableCell_ServerInfo,
+ 12,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleImage, ver. 0.0,
+ GUID={0xFE5ABB3D,0x615E,0x4f7b,{0x90,0x9F,0x5F,0x0E,0xDA,0x9E,0x8D,0xDE}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleImage_FormatStringOffsetTable[] =
+ {
+ 0,
+ 4998,
+ 5046
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleImage_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleImage_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleImage_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleImage_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(6) _IAccessibleImageProxyVtbl =
+{
+ &IAccessibleImage_ProxyInfo,
+ &IID_IAccessibleImage,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleImage::get_description */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleImage::get_imagePosition */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleImage::get_imageSize */
+};
+
+const CInterfaceStubVtbl _IAccessibleImageStubVtbl =
+{
+ &IID_IAccessibleImage,
+ &IAccessibleImage_ServerInfo,
+ 6,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0016, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IAccessibleApplication, ver. 0.0,
+ GUID={0xD49DED83,0x5B25,0x43F4,{0x9B,0x95,0x93,0xB4,0x45,0x95,0x97,0x9E}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleApplication_FormatStringOffsetTable[] =
+ {
+ 0,
+ 36,
+ 5088,
+ 5124
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleApplication_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleApplication_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleApplication_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleApplication_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(7) _IAccessibleApplicationProxyVtbl =
+{
+ &IAccessibleApplication_ProxyInfo,
+ &IID_IAccessibleApplication,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_appName */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_appVersion */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_toolkitName */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_toolkitVersion */
+};
+
+const CInterfaceStubVtbl _IAccessibleApplicationStubVtbl =
+{
+ &IID_IAccessibleApplication,
+ &IAccessibleApplication_ServerInfo,
+ 7,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleDocument, ver. 0.0,
+ GUID={0xC48C7FCF,0x4AB5,0x4056,{0xAF,0xA6,0x90,0x2D,0x6E,0x1D,0x11,0x49}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleDocument_FormatStringOffsetTable[] =
+ {
+ 5160
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleDocument_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleDocument_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleDocument_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleDocument_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(4) _IAccessibleDocumentProxyVtbl =
+{
+ &IAccessibleDocument_ProxyInfo,
+ &IID_IAccessibleDocument,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleDocument::get_anchorTarget */
+};
+
+const CInterfaceStubVtbl _IAccessibleDocumentStubVtbl =
+{
+ &IID_IAccessibleDocument,
+ &IAccessibleDocument_ServerInfo,
+ 4,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0018, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ ia2_api_all__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x801026e, /* MIDL Version 8.1.622 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _ia2_api_all_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleHyperlinkProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleImageProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleActionProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleValueProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessible2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleTableProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleApplicationProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleTable2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleEditableTextProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleHypertext2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleComponentProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleTableCellProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleHypertextProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleText2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleDocumentProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessible2_2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleRelationProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleTextProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _ia2_api_all_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleHyperlinkStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleImageStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleActionStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleValueStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessible2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleTableStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleApplicationStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleTable2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleEditableTextStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleHypertext2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleComponentStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleTableCellStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleHypertextStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleText2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleDocumentStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessible2_2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleRelationStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleTextStubVtbl,
+ 0
+};
+
+PCInterfaceName const _ia2_api_all_InterfaceNamesList[] =
+{
+ "IAccessibleHyperlink",
+ "IAccessibleImage",
+ "IAccessibleAction",
+ "IAccessibleValue",
+ "IAccessible2",
+ "IAccessibleTable",
+ "IAccessibleApplication",
+ "IAccessibleTable2",
+ "IAccessibleEditableText",
+ "IAccessibleHypertext2",
+ "IAccessibleComponent",
+ "IAccessibleTableCell",
+ "IAccessibleHypertext",
+ "IAccessibleText2",
+ "IAccessibleDocument",
+ "IAccessible2_2",
+ "IAccessibleRelation",
+ "IAccessibleText",
+ 0
+};
+
+const IID * const _ia2_api_all_BaseIIDList[] =
+{
+ 0,
+ 0,
+ 0,
+ 0,
+ &IID_IAccessible,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ &IID_IAccessible,
+ 0,
+ 0,
+ 0
+};
+
+
+#define _ia2_api_all_CHECK_IID(n) IID_GENERIC_CHECK_IID( _ia2_api_all, pIID, n)
+
+int __stdcall _ia2_api_all_IID_Lookup( const IID * pIID, int * pIndex )
+{
+ IID_BS_LOOKUP_SETUP
+
+ IID_BS_LOOKUP_INITIAL_TEST( _ia2_api_all, 18, 16 )
+ IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 8 )
+ IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 4 )
+ IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 2 )
+ IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 1 )
+ IID_BS_LOOKUP_RETURN_RESULT( _ia2_api_all, 18, *pIndex )
+
+}
+
+const ExtendedProxyFileInfo ia2_api_all_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _ia2_api_all_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _ia2_api_all_StubVtblList,
+ (const PCInterfaceName * ) & _ia2_api_all_InterfaceNamesList,
+ (const IID ** ) & _ia2_api_all_BaseIIDList,
+ & _ia2_api_all_IID_Lookup,
+ 18,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64) && !defined(_ARM_) */
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument.dlldata.c b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument.dlldata.c
new file mode 100644
index 00000000000..75f0e3165e7
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument.dlldata.c
@@ -0,0 +1,37 @@
+/*********************************************************
+ DllData file -- generated by MIDL compiler
+
+ DO NOT ALTER THIS FILE
+
+ This file is regenerated by MIDL on every IDL file compile.
+
+ To completely reconstruct this file, delete it and rerun MIDL
+ on all the IDL files in this DLL, specifying this file for the
+ /dlldata command line option
+
+*********************************************************/
+
+
+#include <rpcproxy.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_PROXY_FILE( ISimpleDOMDocument )
+
+
+PROXYFILE_LIST_START
+/* Start of list */
+ REFERENCE_PROXY_FILE( ISimpleDOMDocument ),
+/* End of list */
+PROXYFILE_LIST_END
+
+
+DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID )
+
+#ifdef __cplusplus
+} /*extern "C" */
+#endif
+
+/* end of generated dlldata file */
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument.h b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument.h
new file mode 100644
index 00000000000..9248417be45
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument.h
@@ -0,0 +1,284 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/isimpledom/ISimpleDOMDocument.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif /* __RPCNDR_H_VERSION__ */
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __ISimpleDOMDocument_h__
+#define __ISimpleDOMDocument_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __ISimpleDOMDocument_FWD_DEFINED__
+#define __ISimpleDOMDocument_FWD_DEFINED__
+typedef interface ISimpleDOMDocument ISimpleDOMDocument;
+
+#endif /* __ISimpleDOMDocument_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_ISimpleDOMDocument_0000_0000 */
+/* [local] */
+
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// ISimpleDOMDocument
+//
+// @STATUS UNDER_REVIEW
+// ---------------------------------------------------------------------------------------------------=
+//
+// get_URL(out] BSTR *url)
+// ---------------------------------------------------------------------------------------------------=
+// Get the internet URL associated with this document.
+//
+// get_title([out BSTR *title
+// ---------------------------------------------------------------------------------------------------=
+// Get the document's title from the <TITLE> element
+//
+// get_mimeType([out BSTR *mimeType
+// ---------------------------------------------------------------------------------------------------=
+// Get the registered mime type, such as text/html
+//
+// get_docType([out] BSTR *docType
+// ---------------------------------------------------------------------------------------------------=
+// Get doctype associated with the <!DOCTYPE ..> element
+//
+// get_nameSpaceURIForID([in] short nameSpaceID, [out] BSTR *nameSpaceURI)
+// ---------------------------------------------------------------------------------------------------=
+// Some of the methods for ISimpleDOMNode return a nameSpaceID (-1,0,1,2,3,....)
+// This method returns the associated namespace URI for each ID.
+//
+// set_alternateViewMediaTypes([in] BSTR *commaSeparatedMediaType)
+// ---------------------------------------------------------------------------------------------------=
+// For style property retrieval on nsISimpleDOMNode elements,
+// set the additional alternate media types that properties are available for.
+// [in] BSTR *commaSeparatedMediaTypes is a comma separate list, for example "aural, braille".
+// The alternate media properties are requested with nsISimpleDOMNode::get_computedStyle.
+// Note: setting this value on a document will increase memory overhead, and may create a small delay.
+//
+// W3C media Types:
+// * all: Suitable for all devices.
+// * aural: Intended for speech synthesizers. See the section on aural style sheets for details.
+// * braille: Intended for braille tactile feedback devices.
+// * embossed: Intended for paged braille printers.
+// * handheld: Intended for handheld devices - typically small screen, monochrome, limited bandwidth.
+// * print: Intended for paged, opaque material and for documents viewed on screen in print preview mode. Please consult the section on paged media for information about formatting issues that are specific to paged media.
+// * projection: Intended for projected presentations, for example projectors or print to transparencies. Please consult the section on paged media for information about formatting issues that are specific to paged media.
+// * screen: Intended primarily for color computer screens.
+// * tty: intended for media using a fixed-pitch character grid, such as teletypes, terminals, or portable devices with limited display capabilities. Authors should not use pixel units with the tty media type.
+// * tv: Intended for television-type devices - low resolution, color, limited-scrollability screens, sound
+// * See latest W3C CSS specs for complete list of media types
+//
+//
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+#define DISPID_DOC_URL ( -5904 )
+
+#define DISPID_DOC_TITLE ( -5905 )
+
+#define DISPID_DOC_MIMETYPE ( -5906 )
+
+#define DISPID_DOC_DOCTYPE ( -5907 )
+
+#define DISPID_DOC_NAMESPACE ( -5908 )
+
+#define DISPID_DOC_MEDIATYPES ( -5909 )
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ISimpleDOMDocument_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ISimpleDOMDocument_0000_0000_v0_0_s_ifspec;
+
+#ifndef __ISimpleDOMDocument_INTERFACE_DEFINED__
+#define __ISimpleDOMDocument_INTERFACE_DEFINED__
+
+/* interface ISimpleDOMDocument */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_ISimpleDOMDocument;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("0D68D6D0-D93D-4d08-A30D-F00DD1F45B24")
+ ISimpleDOMDocument : public IUnknown
+ {
+ public:
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_URL(
+ /* [retval][out] */ BSTR *url) = 0;
+
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_title(
+ /* [retval][out] */ BSTR *title) = 0;
+
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_mimeType(
+ /* [retval][out] */ BSTR *mimeType) = 0;
+
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_docType(
+ /* [retval][out] */ BSTR *docType) = 0;
+
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_nameSpaceURIForID(
+ /* [in] */ short nameSpaceID,
+ /* [retval][out] */ BSTR *nameSpaceURI) = 0;
+
+ virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_alternateViewMediaTypes(
+ /* [in] */ BSTR *commaSeparatedMediaTypes) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ISimpleDOMDocumentVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISimpleDOMDocument * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISimpleDOMDocument * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISimpleDOMDocument * This);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_URL )(
+ ISimpleDOMDocument * This,
+ /* [retval][out] */ BSTR *url);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_title )(
+ ISimpleDOMDocument * This,
+ /* [retval][out] */ BSTR *title);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_mimeType )(
+ ISimpleDOMDocument * This,
+ /* [retval][out] */ BSTR *mimeType);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_docType )(
+ ISimpleDOMDocument * This,
+ /* [retval][out] */ BSTR *docType);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nameSpaceURIForID )(
+ ISimpleDOMDocument * This,
+ /* [in] */ short nameSpaceID,
+ /* [retval][out] */ BSTR *nameSpaceURI);
+
+ /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_alternateViewMediaTypes )(
+ ISimpleDOMDocument * This,
+ /* [in] */ BSTR *commaSeparatedMediaTypes);
+
+ END_INTERFACE
+ } ISimpleDOMDocumentVtbl;
+
+ interface ISimpleDOMDocument
+ {
+ CONST_VTBL struct ISimpleDOMDocumentVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISimpleDOMDocument_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ISimpleDOMDocument_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ISimpleDOMDocument_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ISimpleDOMDocument_get_URL(This,url) \
+ ( (This)->lpVtbl -> get_URL(This,url) )
+
+#define ISimpleDOMDocument_get_title(This,title) \
+ ( (This)->lpVtbl -> get_title(This,title) )
+
+#define ISimpleDOMDocument_get_mimeType(This,mimeType) \
+ ( (This)->lpVtbl -> get_mimeType(This,mimeType) )
+
+#define ISimpleDOMDocument_get_docType(This,docType) \
+ ( (This)->lpVtbl -> get_docType(This,docType) )
+
+#define ISimpleDOMDocument_get_nameSpaceURIForID(This,nameSpaceID,nameSpaceURI) \
+ ( (This)->lpVtbl -> get_nameSpaceURIForID(This,nameSpaceID,nameSpaceURI) )
+
+#define ISimpleDOMDocument_put_alternateViewMediaTypes(This,commaSeparatedMediaTypes) \
+ ( (This)->lpVtbl -> put_alternateViewMediaTypes(This,commaSeparatedMediaTypes) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ISimpleDOMDocument_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument_i.c b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument_i.c
new file mode 100644
index 00000000000..746af609916
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/isimpledom/ISimpleDOMDocument.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif // !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_ISimpleDOMDocument,0x0D68D6D0,0xD93D,0x4d08,0xA3,0x0D,0xF0,0x0D,0xD1,0xF4,0x5B,0x24);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument_p.c b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument_p.c
new file mode 100644
index 00000000000..fb71de31403
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument_p.c
@@ -0,0 +1,509 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/isimpledom/ISimpleDOMDocument.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "ISimpleDOMDocument.h"
+
+#define TYPE_FORMAT_STRING_SIZE 61
+#define PROC_FORMAT_STRING_SIZE 235
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _ISimpleDOMDocument_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } ISimpleDOMDocument_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _ISimpleDOMDocument_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } ISimpleDOMDocument_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _ISimpleDOMDocument_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } ISimpleDOMDocument_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const ISimpleDOMDocument_MIDL_TYPE_FORMAT_STRING ISimpleDOMDocument__MIDL_TypeFormatString;
+extern const ISimpleDOMDocument_MIDL_PROC_FORMAT_STRING ISimpleDOMDocument__MIDL_ProcFormatString;
+extern const ISimpleDOMDocument_MIDL_EXPR_FORMAT_STRING ISimpleDOMDocument__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO ISimpleDOMDocument_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO ISimpleDOMDocument_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const ISimpleDOMDocument_MIDL_PROC_FORMAT_STRING ISimpleDOMDocument__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_URL */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter url */
+
+/* 26 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_title */
+
+/* 38 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 40 */ NdrFcLong( 0x0 ), /* 0 */
+/* 44 */ NdrFcShort( 0x4 ), /* 4 */
+/* 46 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 48 */ NdrFcShort( 0x0 ), /* 0 */
+/* 50 */ NdrFcShort( 0x8 ), /* 8 */
+/* 52 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 54 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 56 */ NdrFcShort( 0x1 ), /* 1 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter title */
+
+/* 64 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 68 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 70 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 74 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_mimeType */
+
+/* 76 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 78 */ NdrFcLong( 0x0 ), /* 0 */
+/* 82 */ NdrFcShort( 0x5 ), /* 5 */
+/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 86 */ NdrFcShort( 0x0 ), /* 0 */
+/* 88 */ NdrFcShort( 0x8 ), /* 8 */
+/* 90 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 92 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 94 */ NdrFcShort( 0x1 ), /* 1 */
+/* 96 */ NdrFcShort( 0x0 ), /* 0 */
+/* 98 */ NdrFcShort( 0x0 ), /* 0 */
+/* 100 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter mimeType */
+
+/* 102 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 104 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 106 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 110 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_docType */
+
+/* 114 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 116 */ NdrFcLong( 0x0 ), /* 0 */
+/* 120 */ NdrFcShort( 0x6 ), /* 6 */
+/* 122 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 124 */ NdrFcShort( 0x0 ), /* 0 */
+/* 126 */ NdrFcShort( 0x8 ), /* 8 */
+/* 128 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 130 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 132 */ NdrFcShort( 0x1 ), /* 1 */
+/* 134 */ NdrFcShort( 0x0 ), /* 0 */
+/* 136 */ NdrFcShort( 0x0 ), /* 0 */
+/* 138 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter docType */
+
+/* 140 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 142 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 144 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 146 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 148 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 150 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nameSpaceURIForID */
+
+/* 152 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 154 */ NdrFcLong( 0x0 ), /* 0 */
+/* 158 */ NdrFcShort( 0x7 ), /* 7 */
+/* 160 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 162 */ NdrFcShort( 0x6 ), /* 6 */
+/* 164 */ NdrFcShort( 0x8 ), /* 8 */
+/* 166 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 168 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 170 */ NdrFcShort( 0x1 ), /* 1 */
+/* 172 */ NdrFcShort( 0x0 ), /* 0 */
+/* 174 */ NdrFcShort( 0x0 ), /* 0 */
+/* 176 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nameSpaceID */
+
+/* 178 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 180 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 182 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Parameter nameSpaceURI */
+
+/* 184 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 186 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 188 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 190 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 192 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 194 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_alternateViewMediaTypes */
+
+/* 196 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 198 */ NdrFcLong( 0x0 ), /* 0 */
+/* 202 */ NdrFcShort( 0x8 ), /* 8 */
+/* 204 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 206 */ NdrFcShort( 0x0 ), /* 0 */
+/* 208 */ NdrFcShort( 0x8 ), /* 8 */
+/* 210 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 212 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 214 */ NdrFcShort( 0x0 ), /* 0 */
+/* 216 */ NdrFcShort( 0x1 ), /* 1 */
+/* 218 */ NdrFcShort( 0x0 ), /* 0 */
+/* 220 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter commaSeparatedMediaTypes */
+
+/* 222 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 224 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 226 */ NdrFcShort( 0x32 ), /* Type Offset=50 */
+
+ /* Return value */
+
+/* 228 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 230 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 232 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const ISimpleDOMDocument_MIDL_TYPE_FORMAT_STRING ISimpleDOMDocument__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
+/* 10 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 12 */ NdrFcShort( 0x2 ), /* 2 */
+/* 14 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 20 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 22 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 24 */ NdrFcShort( 0x8 ), /* 8 */
+/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 30 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 32 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x8 ), /* 8 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
+/* 42 */
+ 0x11, 0x0, /* FC_RP */
+/* 44 */ NdrFcShort( 0x6 ), /* Offset= 6 (50) */
+/* 46 */
+ 0x12, 0x0, /* FC_UP */
+/* 48 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (22) */
+/* 50 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 52 */ NdrFcShort( 0x0 ), /* 0 */
+/* 54 */ NdrFcShort( 0x8 ), /* 8 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (46) */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Standard interface: __MIDL_itf_ISimpleDOMDocument_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: ISimpleDOMDocument, ver. 0.0,
+ GUID={0x0D68D6D0,0xD93D,0x4d08,{0xA3,0x0D,0xF0,0x0D,0xD1,0xF4,0x5B,0x24}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short ISimpleDOMDocument_FormatStringOffsetTable[] =
+ {
+ 0,
+ 38,
+ 76,
+ 114,
+ 152,
+ 196
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO ISimpleDOMDocument_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ISimpleDOMDocument__MIDL_ProcFormatString.Format,
+ &ISimpleDOMDocument_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO ISimpleDOMDocument_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ISimpleDOMDocument__MIDL_ProcFormatString.Format,
+ &ISimpleDOMDocument_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(9) _ISimpleDOMDocumentProxyVtbl =
+{
+ &ISimpleDOMDocument_ProxyInfo,
+ &IID_ISimpleDOMDocument,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMDocument::get_URL */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMDocument::get_title */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMDocument::get_mimeType */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMDocument::get_docType */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMDocument::get_nameSpaceURIForID */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMDocument::put_alternateViewMediaTypes */
+};
+
+const CInterfaceStubVtbl _ISimpleDOMDocumentStubVtbl =
+{
+ &IID_ISimpleDOMDocument,
+ &ISimpleDOMDocument_ServerInfo,
+ 9,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ ISimpleDOMDocument__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x801026e, /* MIDL Version 8.1.622 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _ISimpleDOMDocument_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_ISimpleDOMDocumentProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _ISimpleDOMDocument_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_ISimpleDOMDocumentStubVtbl,
+ 0
+};
+
+PCInterfaceName const _ISimpleDOMDocument_InterfaceNamesList[] =
+{
+ "ISimpleDOMDocument",
+ 0
+};
+
+
+#define _ISimpleDOMDocument_CHECK_IID(n) IID_GENERIC_CHECK_IID( _ISimpleDOMDocument, pIID, n)
+
+int __stdcall _ISimpleDOMDocument_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_ISimpleDOMDocument_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo ISimpleDOMDocument_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _ISimpleDOMDocument_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _ISimpleDOMDocument_StubVtblList,
+ (const PCInterfaceName * ) & _ISimpleDOMDocument_InterfaceNamesList,
+ 0, /* no delegation */
+ & _ISimpleDOMDocument_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument.dlldata.c b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument.dlldata.c
new file mode 100644
index 00000000000..75f0e3165e7
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument.dlldata.c
@@ -0,0 +1,37 @@
+/*********************************************************
+ DllData file -- generated by MIDL compiler
+
+ DO NOT ALTER THIS FILE
+
+ This file is regenerated by MIDL on every IDL file compile.
+
+ To completely reconstruct this file, delete it and rerun MIDL
+ on all the IDL files in this DLL, specifying this file for the
+ /dlldata command line option
+
+*********************************************************/
+
+
+#include <rpcproxy.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_PROXY_FILE( ISimpleDOMDocument )
+
+
+PROXYFILE_LIST_START
+/* Start of list */
+ REFERENCE_PROXY_FILE( ISimpleDOMDocument ),
+/* End of list */
+PROXYFILE_LIST_END
+
+
+DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID )
+
+#ifdef __cplusplus
+} /*extern "C" */
+#endif
+
+/* end of generated dlldata file */
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument.h b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument.h
new file mode 100644
index 00000000000..31d6137dea0
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument.h
@@ -0,0 +1,284 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/isimpledom/ISimpleDOMDocument.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif /* __RPCNDR_H_VERSION__ */
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __ISimpleDOMDocument_h__
+#define __ISimpleDOMDocument_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __ISimpleDOMDocument_FWD_DEFINED__
+#define __ISimpleDOMDocument_FWD_DEFINED__
+typedef interface ISimpleDOMDocument ISimpleDOMDocument;
+
+#endif /* __ISimpleDOMDocument_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_ISimpleDOMDocument_0000_0000 */
+/* [local] */
+
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// ISimpleDOMDocument
+//
+// @STATUS UNDER_REVIEW
+// ---------------------------------------------------------------------------------------------------=
+//
+// get_URL(out] BSTR *url)
+// ---------------------------------------------------------------------------------------------------=
+// Get the internet URL associated with this document.
+//
+// get_title([out BSTR *title
+// ---------------------------------------------------------------------------------------------------=
+// Get the document's title from the <TITLE> element
+//
+// get_mimeType([out BSTR *mimeType
+// ---------------------------------------------------------------------------------------------------=
+// Get the registered mime type, such as text/html
+//
+// get_docType([out] BSTR *docType
+// ---------------------------------------------------------------------------------------------------=
+// Get doctype associated with the <!DOCTYPE ..> element
+//
+// get_nameSpaceURIForID([in] short nameSpaceID, [out] BSTR *nameSpaceURI)
+// ---------------------------------------------------------------------------------------------------=
+// Some of the methods for ISimpleDOMNode return a nameSpaceID (-1,0,1,2,3,....)
+// This method returns the associated namespace URI for each ID.
+//
+// set_alternateViewMediaTypes([in] BSTR *commaSeparatedMediaType)
+// ---------------------------------------------------------------------------------------------------=
+// For style property retrieval on nsISimpleDOMNode elements,
+// set the additional alternate media types that properties are available for.
+// [in] BSTR *commaSeparatedMediaTypes is a comma separate list, for example "aural, braille".
+// The alternate media properties are requested with nsISimpleDOMNode::get_computedStyle.
+// Note: setting this value on a document will increase memory overhead, and may create a small delay.
+//
+// W3C media Types:
+// * all: Suitable for all devices.
+// * aural: Intended for speech synthesizers. See the section on aural style sheets for details.
+// * braille: Intended for braille tactile feedback devices.
+// * embossed: Intended for paged braille printers.
+// * handheld: Intended for handheld devices - typically small screen, monochrome, limited bandwidth.
+// * print: Intended for paged, opaque material and for documents viewed on screen in print preview mode. Please consult the section on paged media for information about formatting issues that are specific to paged media.
+// * projection: Intended for projected presentations, for example projectors or print to transparencies. Please consult the section on paged media for information about formatting issues that are specific to paged media.
+// * screen: Intended primarily for color computer screens.
+// * tty: intended for media using a fixed-pitch character grid, such as teletypes, terminals, or portable devices with limited display capabilities. Authors should not use pixel units with the tty media type.
+// * tv: Intended for television-type devices - low resolution, color, limited-scrollability screens, sound
+// * See latest W3C CSS specs for complete list of media types
+//
+//
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+#define DISPID_DOC_URL ( -5904 )
+
+#define DISPID_DOC_TITLE ( -5905 )
+
+#define DISPID_DOC_MIMETYPE ( -5906 )
+
+#define DISPID_DOC_DOCTYPE ( -5907 )
+
+#define DISPID_DOC_NAMESPACE ( -5908 )
+
+#define DISPID_DOC_MEDIATYPES ( -5909 )
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ISimpleDOMDocument_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ISimpleDOMDocument_0000_0000_v0_0_s_ifspec;
+
+#ifndef __ISimpleDOMDocument_INTERFACE_DEFINED__
+#define __ISimpleDOMDocument_INTERFACE_DEFINED__
+
+/* interface ISimpleDOMDocument */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_ISimpleDOMDocument;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("0D68D6D0-D93D-4d08-A30D-F00DD1F45B24")
+ ISimpleDOMDocument : public IUnknown
+ {
+ public:
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_URL(
+ /* [retval][out] */ BSTR *url) = 0;
+
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_title(
+ /* [retval][out] */ BSTR *title) = 0;
+
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_mimeType(
+ /* [retval][out] */ BSTR *mimeType) = 0;
+
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_docType(
+ /* [retval][out] */ BSTR *docType) = 0;
+
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_nameSpaceURIForID(
+ /* [in] */ short nameSpaceID,
+ /* [retval][out] */ BSTR *nameSpaceURI) = 0;
+
+ virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_alternateViewMediaTypes(
+ /* [in] */ BSTR *commaSeparatedMediaTypes) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ISimpleDOMDocumentVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISimpleDOMDocument * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISimpleDOMDocument * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISimpleDOMDocument * This);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_URL )(
+ ISimpleDOMDocument * This,
+ /* [retval][out] */ BSTR *url);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_title )(
+ ISimpleDOMDocument * This,
+ /* [retval][out] */ BSTR *title);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_mimeType )(
+ ISimpleDOMDocument * This,
+ /* [retval][out] */ BSTR *mimeType);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_docType )(
+ ISimpleDOMDocument * This,
+ /* [retval][out] */ BSTR *docType);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nameSpaceURIForID )(
+ ISimpleDOMDocument * This,
+ /* [in] */ short nameSpaceID,
+ /* [retval][out] */ BSTR *nameSpaceURI);
+
+ /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_alternateViewMediaTypes )(
+ ISimpleDOMDocument * This,
+ /* [in] */ BSTR *commaSeparatedMediaTypes);
+
+ END_INTERFACE
+ } ISimpleDOMDocumentVtbl;
+
+ interface ISimpleDOMDocument
+ {
+ CONST_VTBL struct ISimpleDOMDocumentVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISimpleDOMDocument_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ISimpleDOMDocument_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ISimpleDOMDocument_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ISimpleDOMDocument_get_URL(This,url) \
+ ( (This)->lpVtbl -> get_URL(This,url) )
+
+#define ISimpleDOMDocument_get_title(This,title) \
+ ( (This)->lpVtbl -> get_title(This,title) )
+
+#define ISimpleDOMDocument_get_mimeType(This,mimeType) \
+ ( (This)->lpVtbl -> get_mimeType(This,mimeType) )
+
+#define ISimpleDOMDocument_get_docType(This,docType) \
+ ( (This)->lpVtbl -> get_docType(This,docType) )
+
+#define ISimpleDOMDocument_get_nameSpaceURIForID(This,nameSpaceID,nameSpaceURI) \
+ ( (This)->lpVtbl -> get_nameSpaceURIForID(This,nameSpaceID,nameSpaceURI) )
+
+#define ISimpleDOMDocument_put_alternateViewMediaTypes(This,commaSeparatedMediaTypes) \
+ ( (This)->lpVtbl -> put_alternateViewMediaTypes(This,commaSeparatedMediaTypes) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ISimpleDOMDocument_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument_i.c b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument_i.c
new file mode 100644
index 00000000000..fbfbec2d0c1
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/isimpledom/ISimpleDOMDocument.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif // !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_ISimpleDOMDocument,0x0D68D6D0,0xD93D,0x4d08,0xA3,0x0D,0xF0,0x0D,0xD1,0xF4,0x5B,0x24);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument_p.c b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument_p.c
new file mode 100644
index 00000000000..b33071ca717
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument_p.c
@@ -0,0 +1,514 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/isimpledom/ISimpleDOMDocument.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64) && !defined(_ARM_)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "ISimpleDOMDocument.h"
+
+#define TYPE_FORMAT_STRING_SIZE 61
+#define PROC_FORMAT_STRING_SIZE 223
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _ISimpleDOMDocument_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } ISimpleDOMDocument_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _ISimpleDOMDocument_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } ISimpleDOMDocument_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _ISimpleDOMDocument_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } ISimpleDOMDocument_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const ISimpleDOMDocument_MIDL_TYPE_FORMAT_STRING ISimpleDOMDocument__MIDL_TypeFormatString;
+extern const ISimpleDOMDocument_MIDL_PROC_FORMAT_STRING ISimpleDOMDocument__MIDL_ProcFormatString;
+extern const ISimpleDOMDocument_MIDL_EXPR_FORMAT_STRING ISimpleDOMDocument__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO ISimpleDOMDocument_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO ISimpleDOMDocument_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const ISimpleDOMDocument_MIDL_PROC_FORMAT_STRING ISimpleDOMDocument__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_URL */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter url */
+
+/* 24 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_title */
+
+/* 36 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 38 */ NdrFcLong( 0x0 ), /* 0 */
+/* 42 */ NdrFcShort( 0x4 ), /* 4 */
+/* 44 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 46 */ NdrFcShort( 0x0 ), /* 0 */
+/* 48 */ NdrFcShort( 0x8 ), /* 8 */
+/* 50 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 52 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 54 */ NdrFcShort( 0x1 ), /* 1 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter title */
+
+/* 60 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 64 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 66 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 70 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_mimeType */
+
+/* 72 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 74 */ NdrFcLong( 0x0 ), /* 0 */
+/* 78 */ NdrFcShort( 0x5 ), /* 5 */
+/* 80 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 82 */ NdrFcShort( 0x0 ), /* 0 */
+/* 84 */ NdrFcShort( 0x8 ), /* 8 */
+/* 86 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 88 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 90 */ NdrFcShort( 0x1 ), /* 1 */
+/* 92 */ NdrFcShort( 0x0 ), /* 0 */
+/* 94 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter mimeType */
+
+/* 96 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 98 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 100 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 102 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 104 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_docType */
+
+/* 108 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 110 */ NdrFcLong( 0x0 ), /* 0 */
+/* 114 */ NdrFcShort( 0x6 ), /* 6 */
+/* 116 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 118 */ NdrFcShort( 0x0 ), /* 0 */
+/* 120 */ NdrFcShort( 0x8 ), /* 8 */
+/* 122 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 124 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 126 */ NdrFcShort( 0x1 ), /* 1 */
+/* 128 */ NdrFcShort( 0x0 ), /* 0 */
+/* 130 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter docType */
+
+/* 132 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 134 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 136 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 138 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 140 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 142 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nameSpaceURIForID */
+
+/* 144 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 146 */ NdrFcLong( 0x0 ), /* 0 */
+/* 150 */ NdrFcShort( 0x7 ), /* 7 */
+/* 152 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 154 */ NdrFcShort( 0x6 ), /* 6 */
+/* 156 */ NdrFcShort( 0x8 ), /* 8 */
+/* 158 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 160 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 162 */ NdrFcShort( 0x1 ), /* 1 */
+/* 164 */ NdrFcShort( 0x0 ), /* 0 */
+/* 166 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nameSpaceID */
+
+/* 168 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 170 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 172 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Parameter nameSpaceURI */
+
+/* 174 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 176 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 178 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 180 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 182 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 184 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure put_alternateViewMediaTypes */
+
+/* 186 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 188 */ NdrFcLong( 0x0 ), /* 0 */
+/* 192 */ NdrFcShort( 0x8 ), /* 8 */
+/* 194 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 196 */ NdrFcShort( 0x0 ), /* 0 */
+/* 198 */ NdrFcShort( 0x8 ), /* 8 */
+/* 200 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 202 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 204 */ NdrFcShort( 0x0 ), /* 0 */
+/* 206 */ NdrFcShort( 0x1 ), /* 1 */
+/* 208 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter commaSeparatedMediaTypes */
+
+/* 210 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 212 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 214 */ NdrFcShort( 0x32 ), /* Type Offset=50 */
+
+ /* Return value */
+
+/* 216 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 218 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 220 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const ISimpleDOMDocument_MIDL_TYPE_FORMAT_STRING ISimpleDOMDocument__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
+/* 10 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 12 */ NdrFcShort( 0x2 ), /* 2 */
+/* 14 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 20 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 22 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 24 */ NdrFcShort( 0x8 ), /* 8 */
+/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 30 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 32 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x4 ), /* 4 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
+/* 42 */
+ 0x11, 0x0, /* FC_RP */
+/* 44 */ NdrFcShort( 0x6 ), /* Offset= 6 (50) */
+/* 46 */
+ 0x12, 0x0, /* FC_UP */
+/* 48 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (22) */
+/* 50 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 52 */ NdrFcShort( 0x0 ), /* 0 */
+/* 54 */ NdrFcShort( 0x4 ), /* 4 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (46) */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Standard interface: __MIDL_itf_ISimpleDOMDocument_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: ISimpleDOMDocument, ver. 0.0,
+ GUID={0x0D68D6D0,0xD93D,0x4d08,{0xA3,0x0D,0xF0,0x0D,0xD1,0xF4,0x5B,0x24}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short ISimpleDOMDocument_FormatStringOffsetTable[] =
+ {
+ 0,
+ 36,
+ 72,
+ 108,
+ 144,
+ 186
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO ISimpleDOMDocument_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ISimpleDOMDocument__MIDL_ProcFormatString.Format,
+ &ISimpleDOMDocument_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO ISimpleDOMDocument_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ISimpleDOMDocument__MIDL_ProcFormatString.Format,
+ &ISimpleDOMDocument_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(9) _ISimpleDOMDocumentProxyVtbl =
+{
+ &ISimpleDOMDocument_ProxyInfo,
+ &IID_ISimpleDOMDocument,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMDocument::get_URL */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMDocument::get_title */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMDocument::get_mimeType */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMDocument::get_docType */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMDocument::get_nameSpaceURIForID */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMDocument::put_alternateViewMediaTypes */
+};
+
+const CInterfaceStubVtbl _ISimpleDOMDocumentStubVtbl =
+{
+ &IID_ISimpleDOMDocument,
+ &ISimpleDOMDocument_ServerInfo,
+ 9,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ ISimpleDOMDocument__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x801026e, /* MIDL Version 8.1.622 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _ISimpleDOMDocument_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_ISimpleDOMDocumentProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _ISimpleDOMDocument_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_ISimpleDOMDocumentStubVtbl,
+ 0
+};
+
+PCInterfaceName const _ISimpleDOMDocument_InterfaceNamesList[] =
+{
+ "ISimpleDOMDocument",
+ 0
+};
+
+
+#define _ISimpleDOMDocument_CHECK_IID(n) IID_GENERIC_CHECK_IID( _ISimpleDOMDocument, pIID, n)
+
+int __stdcall _ISimpleDOMDocument_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_ISimpleDOMDocument_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo ISimpleDOMDocument_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _ISimpleDOMDocument_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _ISimpleDOMDocument_StubVtblList,
+ (const PCInterfaceName * ) & _ISimpleDOMDocument_InterfaceNamesList,
+ 0, /* no delegation */
+ & _ISimpleDOMDocument_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64) && !defined(_ARM_) */
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode.dlldata.c b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode.dlldata.c
new file mode 100644
index 00000000000..579be3be5d8
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode.dlldata.c
@@ -0,0 +1,37 @@
+/*********************************************************
+ DllData file -- generated by MIDL compiler
+
+ DO NOT ALTER THIS FILE
+
+ This file is regenerated by MIDL on every IDL file compile.
+
+ To completely reconstruct this file, delete it and rerun MIDL
+ on all the IDL files in this DLL, specifying this file for the
+ /dlldata command line option
+
+*********************************************************/
+
+
+#include <rpcproxy.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_PROXY_FILE( ISimpleDOMNode )
+
+
+PROXYFILE_LIST_START
+/* Start of list */
+ REFERENCE_PROXY_FILE( ISimpleDOMNode ),
+/* End of list */
+PROXYFILE_LIST_END
+
+
+DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID )
+
+#ifdef __cplusplus
+} /*extern "C" */
+#endif
+
+/* end of generated dlldata file */
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode.h b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode.h
new file mode 100644
index 00000000000..711a7443211
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode.h
@@ -0,0 +1,477 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/isimpledom/ISimpleDOMNode.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif /* __RPCNDR_H_VERSION__ */
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __ISimpleDOMNode_h__
+#define __ISimpleDOMNode_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __ISimpleDOMNode_FWD_DEFINED__
+#define __ISimpleDOMNode_FWD_DEFINED__
+typedef interface ISimpleDOMNode ISimpleDOMNode;
+
+#endif /* __ISimpleDOMNode_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_ISimpleDOMNode_0000_0000 */
+/* [local] */
+
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// ISimpleDOMNode
+// ---------------------------------------------------------------------------------------------------=
+// An interface that extends MSAA's IAccessible to provide readonly DOM node information via cross-process COM.
+//
+// @STATUS UNDER_REVIEW
+//
+// get_nodeInfo(
+// /* [out] */ BSTR *nodeName, // For elements, this is the tag name
+// /* [out] */ short *nameSpaceID,
+// /* [out] */ BSTR *nodeValue,
+// /* [out] */ unsigned int *numChildren);
+// /* [out] */ unsigned int *uniqueID; // In Win32 accessible events we generate, the target's childID matches to this
+// /* [out] */ unsigned short *nodeType,
+// ---------------------------------------------------------------------------------------------------=
+// Get the basic information about a node.
+// The namespace ID can be mapped to an URI using nsISimpleDOMDocument::get_nameSpaceURIForID()
+//
+// get_attributes(
+// /* [in] */ unsigned short maxAttribs,
+// /* [out] */ unsigned short *numAttribs,
+// /* [out] */ BSTR *attribNames,
+// /* [out] */ short *nameSpaceID,
+// /* [out] */ BSTR *attribValues);
+// ---------------------------------------------------------------------------------------------------=
+// Returns 3 arrays - the attribute names and values, and a namespace ID for each
+// If the namespace ID is 0, it's the same namespace as the node's namespace
+//
+// get_attributesForNames(
+// /* [in] */ unsigned short numAttribs,
+// /* [in] */ BSTR *attribNames,
+// /* [in] */ short *nameSpaceID,
+// /* [out] */ BSTR *attribValues);
+// ---------------------------------------------------------------------------------------------------=
+// Takes 2 arrays - the attribute names and namespace IDs, and returns an array of corresponding values
+// If the namespace ID is 0, it's the same namespace as the node's namespace
+//
+// computedStyle(
+// /* [in] */ unsigned short maxStyleProperties,
+// /* [out] */ unsigned short *numStyleProperties,
+// /* [in] */ boolean useAlternateView, // If TRUE, returns properites for media as set in nsIDOMDocument::set_alternateViewMediaTypes
+// /* [out] */ BSTR *styleProperties,
+// /* [out] */ BSTR *styleValues);
+// ---------------------------------------------------------------------------------------------------=
+// Returns 2 arrays -- the style properties and their values
+// useAlternateView=FALSE: gets properties for the default media type (usually screen)
+// useAlternateView=TRUE: properties for media types set w/ nsIDOMSimpleDocument::set_alternateViewMediaTypes()
+//
+// computedStyleForProperties(
+// /* [in] */ unsigned short numStyleProperties,
+// /* [in] */ boolean useAlternateView, // If TRUE, returns properites for media as set in nsIDOMDocument::set_alternateViewMediaTypes
+// /* [in] */ BSTR *styleProperties,
+// /* [out] */ BSTR *styleValues);
+// ---------------------------------------------------------------------------------------------------=
+// Scroll the current view so that this dom node is visible.
+// placeTopLeft=TRUE: scroll until the top left corner of the dom node is at the top left corner of the view.
+// placeTopLeft=FALSE: scroll minimally to make the dom node visible. Don't scroll at all if already visible.
+//
+// scrollTo(
+// /* [in] */ boolean placeTopLeft);
+// ---------------------------------------------------------------------------------------------------=
+// Returns style property values for those properties in the styleProperties [in] array
+// Returns 2 arrays -- the style properties and their values
+// useAlternateView=FALSE: gets properties for the default media type (usually screen)
+// useAlternateView=TRUE: properties for media types set w/ nsIDOMSimpleDocument::set_alternateViewMediaTypes()
+//
+// get_parentNode (/* [out] */ ISimpleDOMNode **newNodePtr);
+// get_firstChild (/* [out] */ ISimpleDOMNode **newNodePtr);
+// get_lastChild (/* [out] */ ISimpleDOMNode **newNodePtr);
+// get_previousSibling(/* [out] */ ISimpleDOMNode **newNodePtr);
+// get_nextSibling (/* [out] */ ISimpleDOMNode **newNodePtr);
+// get_childAt (/* [in] */ unsigned childIndex, /* [out] */ ISimpleDOMNode **newNodePtr);
+// ---------------------------------------------------------------------------------------------------=
+// DOM navigation - get a different node.
+//
+// get_innerHTML(/* [out] */ BSTR *htmlText);
+// ---------------------------------------------------------------------------------------------------=
+// Returns HTML of this DOM node's subtree. Does not include the start and end tag for this node/element.
+//
+//
+// get_localInterface(/* [out] */ void **localInterface);
+// ---------------------------------------------------------------------------------------------------=
+// Only available in Gecko's process - casts to an XPCOM nsIAccessNode interface pointer
+//
+//
+// get_language(/* [out] */ BSTR *htmlText);
+// ---------------------------------------------------------------------------------------------------=
+// Returns the computed language for this node, or empty string if unknown.
+//
+//
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+#define DISPID_NODE_NODEINFO ( -5900 )
+
+#define DISPID_NODE_ATTRIBUTES ( -5901 )
+
+#define DISPID_NODE_ATTRIBUTESFORNAMES ( -5902 )
+
+#define DISPID_NODE_COMPSTYLE ( -5903 )
+
+#define DISPID_NODE_COMPSTYLEFORPROPS ( -5904 )
+
+#define DISPID_NODE_LANGUAGE ( -5905 )
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ISimpleDOMNode_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ISimpleDOMNode_0000_0000_v0_0_s_ifspec;
+
+#ifndef __ISimpleDOMNode_INTERFACE_DEFINED__
+#define __ISimpleDOMNode_INTERFACE_DEFINED__
+
+/* interface ISimpleDOMNode */
+/* [uuid][object] */
+
+#define NODETYPE_ELEMENT ( 1 )
+
+#define NODETYPE_ATTRIBUTE ( 2 )
+
+#define NODETYPE_TEXT ( 3 )
+
+#define NODETYPE_CDATA_SECTION ( 4 )
+
+#define NODETYPE_ENTITY_REFERENCE ( 5 )
+
+#define NODETYPE_ENTITY ( 6 )
+
+#define NODETYPE_PROCESSING_INSTRUCTION ( 7 )
+
+#define NODETYPE_COMMENT ( 8 )
+
+#define NODETYPE_DOCUMENT ( 9 )
+
+#define NODETYPE_DOCUMENT_TYPE ( 10 )
+
+#define NODETYPE_DOCUMENT_FRAGMENT ( 11 )
+
+#define NODETYPE_NOTATION ( 12 )
+
+
+EXTERN_C const IID IID_ISimpleDOMNode;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("1814ceeb-49e2-407f-af99-fa755a7d2607")
+ ISimpleDOMNode : public IUnknown
+ {
+ public:
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_nodeInfo(
+ /* [out] */ BSTR *nodeName,
+ /* [out] */ short *nameSpaceID,
+ /* [out] */ BSTR *nodeValue,
+ /* [out] */ unsigned int *numChildren,
+ /* [out] */ unsigned int *uniqueID,
+ /* [retval][out] */ unsigned short *nodeType) = 0;
+
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_attributes(
+ /* [in] */ unsigned short maxAttribs,
+ /* [length_is][size_is][out] */ BSTR *attribNames,
+ /* [length_is][size_is][out] */ short *nameSpaceID,
+ /* [length_is][size_is][out] */ BSTR *attribValues,
+ /* [retval][out] */ unsigned short *numAttribs) = 0;
+
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_attributesForNames(
+ /* [in] */ unsigned short numAttribs,
+ /* [length_is][size_is][in] */ BSTR *attribNames,
+ /* [length_is][size_is][in] */ short *nameSpaceID,
+ /* [length_is][size_is][retval][out] */ BSTR *attribValues) = 0;
+
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_computedStyle(
+ /* [in] */ unsigned short maxStyleProperties,
+ /* [in] */ boolean useAlternateView,
+ /* [length_is][size_is][out] */ BSTR *styleProperties,
+ /* [length_is][size_is][out] */ BSTR *styleValues,
+ /* [retval][out] */ unsigned short *numStyleProperties) = 0;
+
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_computedStyleForProperties(
+ /* [in] */ unsigned short numStyleProperties,
+ /* [in] */ boolean useAlternateView,
+ /* [length_is][size_is][in] */ BSTR *styleProperties,
+ /* [length_is][size_is][retval][out] */ BSTR *styleValues) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollTo(
+ /* [in] */ boolean placeTopLeft) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_parentNode(
+ /* [retval][out] */ ISimpleDOMNode **node) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_firstChild(
+ /* [retval][out] */ ISimpleDOMNode **node) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_lastChild(
+ /* [retval][out] */ ISimpleDOMNode **node) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_previousSibling(
+ /* [retval][out] */ ISimpleDOMNode **node) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nextSibling(
+ /* [retval][out] */ ISimpleDOMNode **node) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_childAt(
+ /* [in] */ unsigned int childIndex,
+ /* [retval][out] */ ISimpleDOMNode **node) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_innerHTML(
+ /* [retval][out] */ BSTR *innerHTML) = 0;
+
+ virtual /* [local][propget] */ HRESULT STDMETHODCALLTYPE get_localInterface(
+ /* [retval][out] */ void **localInterface) = 0;
+
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_language(
+ /* [retval][out] */ BSTR *language) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ISimpleDOMNodeVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISimpleDOMNode * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISimpleDOMNode * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISimpleDOMNode * This);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeInfo )(
+ ISimpleDOMNode * This,
+ /* [out] */ BSTR *nodeName,
+ /* [out] */ short *nameSpaceID,
+ /* [out] */ BSTR *nodeValue,
+ /* [out] */ unsigned int *numChildren,
+ /* [out] */ unsigned int *uniqueID,
+ /* [retval][out] */ unsigned short *nodeType);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ ISimpleDOMNode * This,
+ /* [in] */ unsigned short maxAttribs,
+ /* [length_is][size_is][out] */ BSTR *attribNames,
+ /* [length_is][size_is][out] */ short *nameSpaceID,
+ /* [length_is][size_is][out] */ BSTR *attribValues,
+ /* [retval][out] */ unsigned short *numAttribs);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributesForNames )(
+ ISimpleDOMNode * This,
+ /* [in] */ unsigned short numAttribs,
+ /* [length_is][size_is][in] */ BSTR *attribNames,
+ /* [length_is][size_is][in] */ short *nameSpaceID,
+ /* [length_is][size_is][retval][out] */ BSTR *attribValues);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_computedStyle )(
+ ISimpleDOMNode * This,
+ /* [in] */ unsigned short maxStyleProperties,
+ /* [in] */ boolean useAlternateView,
+ /* [length_is][size_is][out] */ BSTR *styleProperties,
+ /* [length_is][size_is][out] */ BSTR *styleValues,
+ /* [retval][out] */ unsigned short *numStyleProperties);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_computedStyleForProperties )(
+ ISimpleDOMNode * This,
+ /* [in] */ unsigned short numStyleProperties,
+ /* [in] */ boolean useAlternateView,
+ /* [length_is][size_is][in] */ BSTR *styleProperties,
+ /* [length_is][size_is][retval][out] */ BSTR *styleValues);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollTo )(
+ ISimpleDOMNode * This,
+ /* [in] */ boolean placeTopLeft);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )(
+ ISimpleDOMNode * This,
+ /* [retval][out] */ ISimpleDOMNode **node);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )(
+ ISimpleDOMNode * This,
+ /* [retval][out] */ ISimpleDOMNode **node);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )(
+ ISimpleDOMNode * This,
+ /* [retval][out] */ ISimpleDOMNode **node);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )(
+ ISimpleDOMNode * This,
+ /* [retval][out] */ ISimpleDOMNode **node);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )(
+ ISimpleDOMNode * This,
+ /* [retval][out] */ ISimpleDOMNode **node);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_childAt )(
+ ISimpleDOMNode * This,
+ /* [in] */ unsigned int childIndex,
+ /* [retval][out] */ ISimpleDOMNode **node);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_innerHTML )(
+ ISimpleDOMNode * This,
+ /* [retval][out] */ BSTR *innerHTML);
+
+ /* [local][propget] */ HRESULT ( STDMETHODCALLTYPE *get_localInterface )(
+ ISimpleDOMNode * This,
+ /* [retval][out] */ void **localInterface);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )(
+ ISimpleDOMNode * This,
+ /* [retval][out] */ BSTR *language);
+
+ END_INTERFACE
+ } ISimpleDOMNodeVtbl;
+
+ interface ISimpleDOMNode
+ {
+ CONST_VTBL struct ISimpleDOMNodeVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISimpleDOMNode_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ISimpleDOMNode_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ISimpleDOMNode_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ISimpleDOMNode_get_nodeInfo(This,nodeName,nameSpaceID,nodeValue,numChildren,uniqueID,nodeType) \
+ ( (This)->lpVtbl -> get_nodeInfo(This,nodeName,nameSpaceID,nodeValue,numChildren,uniqueID,nodeType) )
+
+#define ISimpleDOMNode_get_attributes(This,maxAttribs,attribNames,nameSpaceID,attribValues,numAttribs) \
+ ( (This)->lpVtbl -> get_attributes(This,maxAttribs,attribNames,nameSpaceID,attribValues,numAttribs) )
+
+#define ISimpleDOMNode_get_attributesForNames(This,numAttribs,attribNames,nameSpaceID,attribValues) \
+ ( (This)->lpVtbl -> get_attributesForNames(This,numAttribs,attribNames,nameSpaceID,attribValues) )
+
+#define ISimpleDOMNode_get_computedStyle(This,maxStyleProperties,useAlternateView,styleProperties,styleValues,numStyleProperties) \
+ ( (This)->lpVtbl -> get_computedStyle(This,maxStyleProperties,useAlternateView,styleProperties,styleValues,numStyleProperties) )
+
+#define ISimpleDOMNode_get_computedStyleForProperties(This,numStyleProperties,useAlternateView,styleProperties,styleValues) \
+ ( (This)->lpVtbl -> get_computedStyleForProperties(This,numStyleProperties,useAlternateView,styleProperties,styleValues) )
+
+#define ISimpleDOMNode_scrollTo(This,placeTopLeft) \
+ ( (This)->lpVtbl -> scrollTo(This,placeTopLeft) )
+
+#define ISimpleDOMNode_get_parentNode(This,node) \
+ ( (This)->lpVtbl -> get_parentNode(This,node) )
+
+#define ISimpleDOMNode_get_firstChild(This,node) \
+ ( (This)->lpVtbl -> get_firstChild(This,node) )
+
+#define ISimpleDOMNode_get_lastChild(This,node) \
+ ( (This)->lpVtbl -> get_lastChild(This,node) )
+
+#define ISimpleDOMNode_get_previousSibling(This,node) \
+ ( (This)->lpVtbl -> get_previousSibling(This,node) )
+
+#define ISimpleDOMNode_get_nextSibling(This,node) \
+ ( (This)->lpVtbl -> get_nextSibling(This,node) )
+
+#define ISimpleDOMNode_get_childAt(This,childIndex,node) \
+ ( (This)->lpVtbl -> get_childAt(This,childIndex,node) )
+
+#define ISimpleDOMNode_get_innerHTML(This,innerHTML) \
+ ( (This)->lpVtbl -> get_innerHTML(This,innerHTML) )
+
+#define ISimpleDOMNode_get_localInterface(This,localInterface) \
+ ( (This)->lpVtbl -> get_localInterface(This,localInterface) )
+
+#define ISimpleDOMNode_get_language(This,language) \
+ ( (This)->lpVtbl -> get_language(This,language) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ISimpleDOMNode_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode_i.c b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode_i.c
new file mode 100644
index 00000000000..08578a91c1a
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/isimpledom/ISimpleDOMNode.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif // !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_ISimpleDOMNode,0x1814ceeb,0x49e2,0x407f,0xaf,0x99,0xfa,0x75,0x5a,0x7d,0x26,0x07);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode_p.c b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode_p.c
new file mode 100644
index 00000000000..855413df2cf
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode_p.c
@@ -0,0 +1,1018 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/isimpledom/ISimpleDOMNode.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "ISimpleDOMNode.h"
+
+#define TYPE_FORMAT_STRING_SIZE 209
+#define PROC_FORMAT_STRING_SIZE 653
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _ISimpleDOMNode_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } ISimpleDOMNode_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _ISimpleDOMNode_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } ISimpleDOMNode_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _ISimpleDOMNode_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } ISimpleDOMNode_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const ISimpleDOMNode_MIDL_TYPE_FORMAT_STRING ISimpleDOMNode__MIDL_TypeFormatString;
+extern const ISimpleDOMNode_MIDL_PROC_FORMAT_STRING ISimpleDOMNode__MIDL_ProcFormatString;
+extern const ISimpleDOMNode_MIDL_EXPR_FORMAT_STRING ISimpleDOMNode__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO ISimpleDOMNode_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO ISimpleDOMNode_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const ISimpleDOMNode_MIDL_PROC_FORMAT_STRING ISimpleDOMNode__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_nodeInfo */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x40 ), /* X64 Stack size/offset = 64 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x74 ), /* 116 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x7, /* 7 */
+/* 16 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nodeName */
+
+/* 26 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Parameter nameSpaceID */
+
+/* 32 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Parameter nodeValue */
+
+/* 38 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 40 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 42 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Parameter numChildren */
+
+/* 44 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 46 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 48 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter uniqueID */
+
+/* 50 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 52 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 54 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nodeType */
+
+/* 56 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 58 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 60 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 62 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 64 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 66 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributes */
+
+/* 68 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 70 */ NdrFcLong( 0x0 ), /* 0 */
+/* 74 */ NdrFcShort( 0x4 ), /* 4 */
+/* 76 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 78 */ NdrFcShort( 0x6 ), /* 6 */
+/* 80 */ NdrFcShort( 0x22 ), /* 34 */
+/* 82 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 84 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 86 */ NdrFcShort( 0x1 ), /* 1 */
+/* 88 */ NdrFcShort( 0x0 ), /* 0 */
+/* 90 */ NdrFcShort( 0x0 ), /* 0 */
+/* 92 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxAttribs */
+
+/* 94 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 96 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 98 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Parameter attribNames */
+
+/* 100 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 102 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 104 */ NdrFcShort( 0x36 ), /* Type Offset=54 */
+
+ /* Parameter nameSpaceID */
+
+/* 106 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 108 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 110 */ NdrFcShort( 0x50 ), /* Type Offset=80 */
+
+ /* Parameter attribValues */
+
+/* 112 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 114 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 116 */ NdrFcShort( 0x36 ), /* Type Offset=54 */
+
+ /* Parameter numAttribs */
+
+/* 118 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 120 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 122 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 124 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 126 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 128 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributesForNames */
+
+/* 130 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 132 */ NdrFcLong( 0x0 ), /* 0 */
+/* 136 */ NdrFcShort( 0x5 ), /* 5 */
+/* 138 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 140 */ NdrFcShort( 0x6 ), /* 6 */
+/* 142 */ NdrFcShort( 0x8 ), /* 8 */
+/* 144 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 146 */ 0xa, /* 10 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 148 */ NdrFcShort( 0x1 ), /* 1 */
+/* 150 */ NdrFcShort( 0x1 ), /* 1 */
+/* 152 */ NdrFcShort( 0x0 ), /* 0 */
+/* 154 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter numAttribs */
+
+/* 156 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 158 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 160 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Parameter attribNames */
+
+/* 162 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 164 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 166 */ NdrFcShort( 0x74 ), /* Type Offset=116 */
+
+ /* Parameter nameSpaceID */
+
+/* 168 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 170 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 172 */ NdrFcShort( 0x8e ), /* Type Offset=142 */
+
+ /* Parameter attribValues */
+
+/* 174 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 176 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 178 */ NdrFcShort( 0xa4 ), /* Type Offset=164 */
+
+ /* Return value */
+
+/* 180 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 182 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 184 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_computedStyle */
+
+/* 186 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 188 */ NdrFcLong( 0x0 ), /* 0 */
+/* 192 */ NdrFcShort( 0x6 ), /* 6 */
+/* 194 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 196 */ NdrFcShort( 0xb ), /* 11 */
+/* 198 */ NdrFcShort( 0x22 ), /* 34 */
+/* 200 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 202 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 204 */ NdrFcShort( 0x1 ), /* 1 */
+/* 206 */ NdrFcShort( 0x0 ), /* 0 */
+/* 208 */ NdrFcShort( 0x0 ), /* 0 */
+/* 210 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxStyleProperties */
+
+/* 212 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 214 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 216 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Parameter useAlternateView */
+
+/* 218 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 220 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 222 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Parameter styleProperties */
+
+/* 224 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 226 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 228 */ NdrFcShort( 0x36 ), /* Type Offset=54 */
+
+ /* Parameter styleValues */
+
+/* 230 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 232 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 234 */ NdrFcShort( 0x36 ), /* Type Offset=54 */
+
+ /* Parameter numStyleProperties */
+
+/* 236 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 238 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 240 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 242 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 244 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 246 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_computedStyleForProperties */
+
+/* 248 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 250 */ NdrFcLong( 0x0 ), /* 0 */
+/* 254 */ NdrFcShort( 0x7 ), /* 7 */
+/* 256 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 258 */ NdrFcShort( 0xb ), /* 11 */
+/* 260 */ NdrFcShort( 0x8 ), /* 8 */
+/* 262 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 264 */ 0xa, /* 10 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 266 */ NdrFcShort( 0x1 ), /* 1 */
+/* 268 */ NdrFcShort( 0x1 ), /* 1 */
+/* 270 */ NdrFcShort( 0x0 ), /* 0 */
+/* 272 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter numStyleProperties */
+
+/* 274 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 276 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 278 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Parameter useAlternateView */
+
+/* 280 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 282 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 284 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Parameter styleProperties */
+
+/* 286 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 288 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 290 */ NdrFcShort( 0x74 ), /* Type Offset=116 */
+
+ /* Parameter styleValues */
+
+/* 292 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 294 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 296 */ NdrFcShort( 0xa4 ), /* Type Offset=164 */
+
+ /* Return value */
+
+/* 298 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 300 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 302 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollTo */
+
+/* 304 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 306 */ NdrFcLong( 0x0 ), /* 0 */
+/* 310 */ NdrFcShort( 0x8 ), /* 8 */
+/* 312 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 314 */ NdrFcShort( 0x5 ), /* 5 */
+/* 316 */ NdrFcShort( 0x8 ), /* 8 */
+/* 318 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 320 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 322 */ NdrFcShort( 0x0 ), /* 0 */
+/* 324 */ NdrFcShort( 0x0 ), /* 0 */
+/* 326 */ NdrFcShort( 0x0 ), /* 0 */
+/* 328 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter placeTopLeft */
+
+/* 330 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 332 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 334 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 336 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 338 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 340 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_parentNode */
+
+/* 342 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 344 */ NdrFcLong( 0x0 ), /* 0 */
+/* 348 */ NdrFcShort( 0x9 ), /* 9 */
+/* 350 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 352 */ NdrFcShort( 0x0 ), /* 0 */
+/* 354 */ NdrFcShort( 0x8 ), /* 8 */
+/* 356 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 358 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 360 */ NdrFcShort( 0x0 ), /* 0 */
+/* 362 */ NdrFcShort( 0x0 ), /* 0 */
+/* 364 */ NdrFcShort( 0x0 ), /* 0 */
+/* 366 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter node */
+
+/* 368 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 370 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 372 */ NdrFcShort( 0xba ), /* Type Offset=186 */
+
+ /* Return value */
+
+/* 374 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 376 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 378 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_firstChild */
+
+/* 380 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 382 */ NdrFcLong( 0x0 ), /* 0 */
+/* 386 */ NdrFcShort( 0xa ), /* 10 */
+/* 388 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 390 */ NdrFcShort( 0x0 ), /* 0 */
+/* 392 */ NdrFcShort( 0x8 ), /* 8 */
+/* 394 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 396 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 398 */ NdrFcShort( 0x0 ), /* 0 */
+/* 400 */ NdrFcShort( 0x0 ), /* 0 */
+/* 402 */ NdrFcShort( 0x0 ), /* 0 */
+/* 404 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter node */
+
+/* 406 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 408 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 410 */ NdrFcShort( 0xba ), /* Type Offset=186 */
+
+ /* Return value */
+
+/* 412 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 414 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 416 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_lastChild */
+
+/* 418 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 420 */ NdrFcLong( 0x0 ), /* 0 */
+/* 424 */ NdrFcShort( 0xb ), /* 11 */
+/* 426 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 428 */ NdrFcShort( 0x0 ), /* 0 */
+/* 430 */ NdrFcShort( 0x8 ), /* 8 */
+/* 432 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 434 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 436 */ NdrFcShort( 0x0 ), /* 0 */
+/* 438 */ NdrFcShort( 0x0 ), /* 0 */
+/* 440 */ NdrFcShort( 0x0 ), /* 0 */
+/* 442 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter node */
+
+/* 444 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 446 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 448 */ NdrFcShort( 0xba ), /* Type Offset=186 */
+
+ /* Return value */
+
+/* 450 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 452 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 454 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_previousSibling */
+
+/* 456 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 458 */ NdrFcLong( 0x0 ), /* 0 */
+/* 462 */ NdrFcShort( 0xc ), /* 12 */
+/* 464 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 466 */ NdrFcShort( 0x0 ), /* 0 */
+/* 468 */ NdrFcShort( 0x8 ), /* 8 */
+/* 470 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 472 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 474 */ NdrFcShort( 0x0 ), /* 0 */
+/* 476 */ NdrFcShort( 0x0 ), /* 0 */
+/* 478 */ NdrFcShort( 0x0 ), /* 0 */
+/* 480 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter node */
+
+/* 482 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 484 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 486 */ NdrFcShort( 0xba ), /* Type Offset=186 */
+
+ /* Return value */
+
+/* 488 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 490 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 492 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nextSibling */
+
+/* 494 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 496 */ NdrFcLong( 0x0 ), /* 0 */
+/* 500 */ NdrFcShort( 0xd ), /* 13 */
+/* 502 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 504 */ NdrFcShort( 0x0 ), /* 0 */
+/* 506 */ NdrFcShort( 0x8 ), /* 8 */
+/* 508 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 510 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 512 */ NdrFcShort( 0x0 ), /* 0 */
+/* 514 */ NdrFcShort( 0x0 ), /* 0 */
+/* 516 */ NdrFcShort( 0x0 ), /* 0 */
+/* 518 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter node */
+
+/* 520 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 522 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 524 */ NdrFcShort( 0xba ), /* Type Offset=186 */
+
+ /* Return value */
+
+/* 526 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 528 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 530 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_childAt */
+
+/* 532 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 534 */ NdrFcLong( 0x0 ), /* 0 */
+/* 538 */ NdrFcShort( 0xe ), /* 14 */
+/* 540 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 542 */ NdrFcShort( 0x8 ), /* 8 */
+/* 544 */ NdrFcShort( 0x8 ), /* 8 */
+/* 546 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 548 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 550 */ NdrFcShort( 0x0 ), /* 0 */
+/* 552 */ NdrFcShort( 0x0 ), /* 0 */
+/* 554 */ NdrFcShort( 0x0 ), /* 0 */
+/* 556 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter childIndex */
+
+/* 558 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 560 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 562 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter node */
+
+/* 564 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 566 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 568 */ NdrFcShort( 0xba ), /* Type Offset=186 */
+
+ /* Return value */
+
+/* 570 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 572 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 574 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_innerHTML */
+
+/* 576 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 578 */ NdrFcLong( 0x0 ), /* 0 */
+/* 582 */ NdrFcShort( 0xf ), /* 15 */
+/* 584 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 586 */ NdrFcShort( 0x0 ), /* 0 */
+/* 588 */ NdrFcShort( 0x8 ), /* 8 */
+/* 590 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 592 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 594 */ NdrFcShort( 0x1 ), /* 1 */
+/* 596 */ NdrFcShort( 0x0 ), /* 0 */
+/* 598 */ NdrFcShort( 0x0 ), /* 0 */
+/* 600 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter innerHTML */
+
+/* 602 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 604 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 606 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 608 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 610 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 612 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_language */
+
+/* 614 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 616 */ NdrFcLong( 0x0 ), /* 0 */
+/* 620 */ NdrFcShort( 0x11 ), /* 17 */
+/* 622 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 624 */ NdrFcShort( 0x0 ), /* 0 */
+/* 626 */ NdrFcShort( 0x8 ), /* 8 */
+/* 628 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 630 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 632 */ NdrFcShort( 0x1 ), /* 1 */
+/* 634 */ NdrFcShort( 0x0 ), /* 0 */
+/* 636 */ NdrFcShort( 0x0 ), /* 0 */
+/* 638 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter language */
+
+/* 640 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 642 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 644 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 646 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 648 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 650 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const ISimpleDOMNode_MIDL_TYPE_FORMAT_STRING ISimpleDOMNode__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
+/* 10 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 12 */ NdrFcShort( 0x2 ), /* 2 */
+/* 14 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 20 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 22 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 24 */ NdrFcShort( 0x8 ), /* 8 */
+/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 30 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 32 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x8 ), /* 8 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
+/* 42 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 44 */ 0x6, /* FC_SHORT */
+ 0x5c, /* FC_PAD */
+/* 46 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 48 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 50 */
+ 0x11, 0x0, /* FC_RP */
+/* 52 */ NdrFcShort( 0x2 ), /* Offset= 2 (54) */
+/* 54 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x0, /* */
+/* 60 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 62 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 64 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x54, /* FC_DEREFERENCE */
+/* 66 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 68 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 70 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 72 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (32) */
+/* 74 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 76 */
+ 0x11, 0x0, /* FC_RP */
+/* 78 */ NdrFcShort( 0x2 ), /* Offset= 2 (80) */
+/* 80 */
+ 0x1c, /* FC_CVARRAY */
+ 0x1, /* 1 */
+/* 82 */ NdrFcShort( 0x2 ), /* 2 */
+/* 84 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x0, /* */
+/* 86 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 88 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 90 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x54, /* FC_DEREFERENCE */
+/* 92 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 94 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 96 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 98 */
+ 0x11, 0x0, /* FC_RP */
+/* 100 */ NdrFcShort( 0x10 ), /* Offset= 16 (116) */
+/* 102 */
+ 0x12, 0x0, /* FC_UP */
+/* 104 */ NdrFcShort( 0xffae ), /* Offset= -82 (22) */
+/* 106 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 108 */ NdrFcShort( 0x0 ), /* 0 */
+/* 110 */ NdrFcShort( 0x8 ), /* 8 */
+/* 112 */ NdrFcShort( 0x0 ), /* 0 */
+/* 114 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (102) */
+/* 116 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 118 */ NdrFcShort( 0x0 ), /* 0 */
+/* 120 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x0, /* */
+/* 122 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 124 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 126 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x0, /* */
+/* 128 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 130 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 132 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 134 */ NdrFcShort( 0xffe4 ), /* Offset= -28 (106) */
+/* 136 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 138 */
+ 0x11, 0x0, /* FC_RP */
+/* 140 */ NdrFcShort( 0x2 ), /* Offset= 2 (142) */
+/* 142 */
+ 0x1c, /* FC_CVARRAY */
+ 0x1, /* 1 */
+/* 144 */ NdrFcShort( 0x2 ), /* 2 */
+/* 146 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x0, /* */
+/* 148 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 150 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 152 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x0, /* */
+/* 154 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 156 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 158 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 160 */
+ 0x11, 0x0, /* FC_RP */
+/* 162 */ NdrFcShort( 0x2 ), /* Offset= 2 (164) */
+/* 164 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 166 */ NdrFcShort( 0x0 ), /* 0 */
+/* 168 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x0, /* */
+/* 170 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 172 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 174 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x0, /* */
+/* 176 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 178 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 180 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 182 */ NdrFcShort( 0xff6a ), /* Offset= -150 (32) */
+/* 184 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 186 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 188 */ NdrFcShort( 0x2 ), /* Offset= 2 (190) */
+/* 190 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 192 */ NdrFcLong( 0x1814ceeb ), /* 404016875 */
+/* 196 */ NdrFcShort( 0x49e2 ), /* 18914 */
+/* 198 */ NdrFcShort( 0x407f ), /* 16511 */
+/* 200 */ 0xaf, /* 175 */
+ 0x99, /* 153 */
+/* 202 */ 0xfa, /* 250 */
+ 0x75, /* 117 */
+/* 204 */ 0x5a, /* 90 */
+ 0x7d, /* 125 */
+/* 206 */ 0x26, /* 38 */
+ 0x7, /* 7 */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Standard interface: __MIDL_itf_ISimpleDOMNode_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: ISimpleDOMNode, ver. 0.0,
+ GUID={0x1814ceeb,0x49e2,0x407f,{0xaf,0x99,0xfa,0x75,0x5a,0x7d,0x26,0x07}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short ISimpleDOMNode_FormatStringOffsetTable[] =
+ {
+ 0,
+ 68,
+ 130,
+ 186,
+ 248,
+ 304,
+ 342,
+ 380,
+ 418,
+ 456,
+ 494,
+ 532,
+ 576,
+ (unsigned short) -1,
+ 614
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO ISimpleDOMNode_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ISimpleDOMNode__MIDL_ProcFormatString.Format,
+ &ISimpleDOMNode_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO ISimpleDOMNode_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ISimpleDOMNode__MIDL_ProcFormatString.Format,
+ &ISimpleDOMNode_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(18) _ISimpleDOMNodeProxyVtbl =
+{
+ &ISimpleDOMNode_ProxyInfo,
+ &IID_ISimpleDOMNode,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_nodeInfo */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_attributesForNames */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_computedStyle */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_computedStyleForProperties */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::scrollTo */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_parentNode */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_firstChild */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_lastChild */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_previousSibling */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_nextSibling */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_childAt */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_innerHTML */ ,
+ 0 /* ISimpleDOMNode::get_localInterface */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_language */
+};
+
+const CInterfaceStubVtbl _ISimpleDOMNodeStubVtbl =
+{
+ &IID_ISimpleDOMNode,
+ &ISimpleDOMNode_ServerInfo,
+ 18,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ ISimpleDOMNode__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x801026e, /* MIDL Version 8.1.622 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _ISimpleDOMNode_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_ISimpleDOMNodeProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _ISimpleDOMNode_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_ISimpleDOMNodeStubVtbl,
+ 0
+};
+
+PCInterfaceName const _ISimpleDOMNode_InterfaceNamesList[] =
+{
+ "ISimpleDOMNode",
+ 0
+};
+
+
+#define _ISimpleDOMNode_CHECK_IID(n) IID_GENERIC_CHECK_IID( _ISimpleDOMNode, pIID, n)
+
+int __stdcall _ISimpleDOMNode_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_ISimpleDOMNode_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo ISimpleDOMNode_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _ISimpleDOMNode_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _ISimpleDOMNode_StubVtblList,
+ (const PCInterfaceName * ) & _ISimpleDOMNode_InterfaceNamesList,
+ 0, /* no delegation */
+ & _ISimpleDOMNode_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode.dlldata.c b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode.dlldata.c
new file mode 100644
index 00000000000..579be3be5d8
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode.dlldata.c
@@ -0,0 +1,37 @@
+/*********************************************************
+ DllData file -- generated by MIDL compiler
+
+ DO NOT ALTER THIS FILE
+
+ This file is regenerated by MIDL on every IDL file compile.
+
+ To completely reconstruct this file, delete it and rerun MIDL
+ on all the IDL files in this DLL, specifying this file for the
+ /dlldata command line option
+
+*********************************************************/
+
+
+#include <rpcproxy.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_PROXY_FILE( ISimpleDOMNode )
+
+
+PROXYFILE_LIST_START
+/* Start of list */
+ REFERENCE_PROXY_FILE( ISimpleDOMNode ),
+/* End of list */
+PROXYFILE_LIST_END
+
+
+DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID )
+
+#ifdef __cplusplus
+} /*extern "C" */
+#endif
+
+/* end of generated dlldata file */
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode.h b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode.h
new file mode 100644
index 00000000000..30239bf8f0a
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode.h
@@ -0,0 +1,477 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/isimpledom/ISimpleDOMNode.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif /* __RPCNDR_H_VERSION__ */
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __ISimpleDOMNode_h__
+#define __ISimpleDOMNode_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __ISimpleDOMNode_FWD_DEFINED__
+#define __ISimpleDOMNode_FWD_DEFINED__
+typedef interface ISimpleDOMNode ISimpleDOMNode;
+
+#endif /* __ISimpleDOMNode_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_ISimpleDOMNode_0000_0000 */
+/* [local] */
+
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// ISimpleDOMNode
+// ---------------------------------------------------------------------------------------------------=
+// An interface that extends MSAA's IAccessible to provide readonly DOM node information via cross-process COM.
+//
+// @STATUS UNDER_REVIEW
+//
+// get_nodeInfo(
+// /* [out] */ BSTR *nodeName, // For elements, this is the tag name
+// /* [out] */ short *nameSpaceID,
+// /* [out] */ BSTR *nodeValue,
+// /* [out] */ unsigned int *numChildren);
+// /* [out] */ unsigned int *uniqueID; // In Win32 accessible events we generate, the target's childID matches to this
+// /* [out] */ unsigned short *nodeType,
+// ---------------------------------------------------------------------------------------------------=
+// Get the basic information about a node.
+// The namespace ID can be mapped to an URI using nsISimpleDOMDocument::get_nameSpaceURIForID()
+//
+// get_attributes(
+// /* [in] */ unsigned short maxAttribs,
+// /* [out] */ unsigned short *numAttribs,
+// /* [out] */ BSTR *attribNames,
+// /* [out] */ short *nameSpaceID,
+// /* [out] */ BSTR *attribValues);
+// ---------------------------------------------------------------------------------------------------=
+// Returns 3 arrays - the attribute names and values, and a namespace ID for each
+// If the namespace ID is 0, it's the same namespace as the node's namespace
+//
+// get_attributesForNames(
+// /* [in] */ unsigned short numAttribs,
+// /* [in] */ BSTR *attribNames,
+// /* [in] */ short *nameSpaceID,
+// /* [out] */ BSTR *attribValues);
+// ---------------------------------------------------------------------------------------------------=
+// Takes 2 arrays - the attribute names and namespace IDs, and returns an array of corresponding values
+// If the namespace ID is 0, it's the same namespace as the node's namespace
+//
+// computedStyle(
+// /* [in] */ unsigned short maxStyleProperties,
+// /* [out] */ unsigned short *numStyleProperties,
+// /* [in] */ boolean useAlternateView, // If TRUE, returns properites for media as set in nsIDOMDocument::set_alternateViewMediaTypes
+// /* [out] */ BSTR *styleProperties,
+// /* [out] */ BSTR *styleValues);
+// ---------------------------------------------------------------------------------------------------=
+// Returns 2 arrays -- the style properties and their values
+// useAlternateView=FALSE: gets properties for the default media type (usually screen)
+// useAlternateView=TRUE: properties for media types set w/ nsIDOMSimpleDocument::set_alternateViewMediaTypes()
+//
+// computedStyleForProperties(
+// /* [in] */ unsigned short numStyleProperties,
+// /* [in] */ boolean useAlternateView, // If TRUE, returns properites for media as set in nsIDOMDocument::set_alternateViewMediaTypes
+// /* [in] */ BSTR *styleProperties,
+// /* [out] */ BSTR *styleValues);
+// ---------------------------------------------------------------------------------------------------=
+// Scroll the current view so that this dom node is visible.
+// placeTopLeft=TRUE: scroll until the top left corner of the dom node is at the top left corner of the view.
+// placeTopLeft=FALSE: scroll minimally to make the dom node visible. Don't scroll at all if already visible.
+//
+// scrollTo(
+// /* [in] */ boolean placeTopLeft);
+// ---------------------------------------------------------------------------------------------------=
+// Returns style property values for those properties in the styleProperties [in] array
+// Returns 2 arrays -- the style properties and their values
+// useAlternateView=FALSE: gets properties for the default media type (usually screen)
+// useAlternateView=TRUE: properties for media types set w/ nsIDOMSimpleDocument::set_alternateViewMediaTypes()
+//
+// get_parentNode (/* [out] */ ISimpleDOMNode **newNodePtr);
+// get_firstChild (/* [out] */ ISimpleDOMNode **newNodePtr);
+// get_lastChild (/* [out] */ ISimpleDOMNode **newNodePtr);
+// get_previousSibling(/* [out] */ ISimpleDOMNode **newNodePtr);
+// get_nextSibling (/* [out] */ ISimpleDOMNode **newNodePtr);
+// get_childAt (/* [in] */ unsigned childIndex, /* [out] */ ISimpleDOMNode **newNodePtr);
+// ---------------------------------------------------------------------------------------------------=
+// DOM navigation - get a different node.
+//
+// get_innerHTML(/* [out] */ BSTR *htmlText);
+// ---------------------------------------------------------------------------------------------------=
+// Returns HTML of this DOM node's subtree. Does not include the start and end tag for this node/element.
+//
+//
+// get_localInterface(/* [out] */ void **localInterface);
+// ---------------------------------------------------------------------------------------------------=
+// Only available in Gecko's process - casts to an XPCOM nsIAccessNode interface pointer
+//
+//
+// get_language(/* [out] */ BSTR *htmlText);
+// ---------------------------------------------------------------------------------------------------=
+// Returns the computed language for this node, or empty string if unknown.
+//
+//
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+#define DISPID_NODE_NODEINFO ( -5900 )
+
+#define DISPID_NODE_ATTRIBUTES ( -5901 )
+
+#define DISPID_NODE_ATTRIBUTESFORNAMES ( -5902 )
+
+#define DISPID_NODE_COMPSTYLE ( -5903 )
+
+#define DISPID_NODE_COMPSTYLEFORPROPS ( -5904 )
+
+#define DISPID_NODE_LANGUAGE ( -5905 )
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ISimpleDOMNode_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ISimpleDOMNode_0000_0000_v0_0_s_ifspec;
+
+#ifndef __ISimpleDOMNode_INTERFACE_DEFINED__
+#define __ISimpleDOMNode_INTERFACE_DEFINED__
+
+/* interface ISimpleDOMNode */
+/* [uuid][object] */
+
+#define NODETYPE_ELEMENT ( 1 )
+
+#define NODETYPE_ATTRIBUTE ( 2 )
+
+#define NODETYPE_TEXT ( 3 )
+
+#define NODETYPE_CDATA_SECTION ( 4 )
+
+#define NODETYPE_ENTITY_REFERENCE ( 5 )
+
+#define NODETYPE_ENTITY ( 6 )
+
+#define NODETYPE_PROCESSING_INSTRUCTION ( 7 )
+
+#define NODETYPE_COMMENT ( 8 )
+
+#define NODETYPE_DOCUMENT ( 9 )
+
+#define NODETYPE_DOCUMENT_TYPE ( 10 )
+
+#define NODETYPE_DOCUMENT_FRAGMENT ( 11 )
+
+#define NODETYPE_NOTATION ( 12 )
+
+
+EXTERN_C const IID IID_ISimpleDOMNode;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("1814ceeb-49e2-407f-af99-fa755a7d2607")
+ ISimpleDOMNode : public IUnknown
+ {
+ public:
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_nodeInfo(
+ /* [out] */ BSTR *nodeName,
+ /* [out] */ short *nameSpaceID,
+ /* [out] */ BSTR *nodeValue,
+ /* [out] */ unsigned int *numChildren,
+ /* [out] */ unsigned int *uniqueID,
+ /* [retval][out] */ unsigned short *nodeType) = 0;
+
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_attributes(
+ /* [in] */ unsigned short maxAttribs,
+ /* [length_is][size_is][out] */ BSTR *attribNames,
+ /* [length_is][size_is][out] */ short *nameSpaceID,
+ /* [length_is][size_is][out] */ BSTR *attribValues,
+ /* [retval][out] */ unsigned short *numAttribs) = 0;
+
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_attributesForNames(
+ /* [in] */ unsigned short numAttribs,
+ /* [length_is][size_is][in] */ BSTR *attribNames,
+ /* [length_is][size_is][in] */ short *nameSpaceID,
+ /* [length_is][size_is][retval][out] */ BSTR *attribValues) = 0;
+
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_computedStyle(
+ /* [in] */ unsigned short maxStyleProperties,
+ /* [in] */ boolean useAlternateView,
+ /* [length_is][size_is][out] */ BSTR *styleProperties,
+ /* [length_is][size_is][out] */ BSTR *styleValues,
+ /* [retval][out] */ unsigned short *numStyleProperties) = 0;
+
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_computedStyleForProperties(
+ /* [in] */ unsigned short numStyleProperties,
+ /* [in] */ boolean useAlternateView,
+ /* [length_is][size_is][in] */ BSTR *styleProperties,
+ /* [length_is][size_is][retval][out] */ BSTR *styleValues) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollTo(
+ /* [in] */ boolean placeTopLeft) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_parentNode(
+ /* [retval][out] */ ISimpleDOMNode **node) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_firstChild(
+ /* [retval][out] */ ISimpleDOMNode **node) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_lastChild(
+ /* [retval][out] */ ISimpleDOMNode **node) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_previousSibling(
+ /* [retval][out] */ ISimpleDOMNode **node) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nextSibling(
+ /* [retval][out] */ ISimpleDOMNode **node) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_childAt(
+ /* [in] */ unsigned int childIndex,
+ /* [retval][out] */ ISimpleDOMNode **node) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_innerHTML(
+ /* [retval][out] */ BSTR *innerHTML) = 0;
+
+ virtual /* [local][propget] */ HRESULT STDMETHODCALLTYPE get_localInterface(
+ /* [retval][out] */ void **localInterface) = 0;
+
+ virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_language(
+ /* [retval][out] */ BSTR *language) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ISimpleDOMNodeVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISimpleDOMNode * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISimpleDOMNode * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISimpleDOMNode * This);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeInfo )(
+ ISimpleDOMNode * This,
+ /* [out] */ BSTR *nodeName,
+ /* [out] */ short *nameSpaceID,
+ /* [out] */ BSTR *nodeValue,
+ /* [out] */ unsigned int *numChildren,
+ /* [out] */ unsigned int *uniqueID,
+ /* [retval][out] */ unsigned short *nodeType);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ ISimpleDOMNode * This,
+ /* [in] */ unsigned short maxAttribs,
+ /* [length_is][size_is][out] */ BSTR *attribNames,
+ /* [length_is][size_is][out] */ short *nameSpaceID,
+ /* [length_is][size_is][out] */ BSTR *attribValues,
+ /* [retval][out] */ unsigned short *numAttribs);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributesForNames )(
+ ISimpleDOMNode * This,
+ /* [in] */ unsigned short numAttribs,
+ /* [length_is][size_is][in] */ BSTR *attribNames,
+ /* [length_is][size_is][in] */ short *nameSpaceID,
+ /* [length_is][size_is][retval][out] */ BSTR *attribValues);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_computedStyle )(
+ ISimpleDOMNode * This,
+ /* [in] */ unsigned short maxStyleProperties,
+ /* [in] */ boolean useAlternateView,
+ /* [length_is][size_is][out] */ BSTR *styleProperties,
+ /* [length_is][size_is][out] */ BSTR *styleValues,
+ /* [retval][out] */ unsigned short *numStyleProperties);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_computedStyleForProperties )(
+ ISimpleDOMNode * This,
+ /* [in] */ unsigned short numStyleProperties,
+ /* [in] */ boolean useAlternateView,
+ /* [length_is][size_is][in] */ BSTR *styleProperties,
+ /* [length_is][size_is][retval][out] */ BSTR *styleValues);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollTo )(
+ ISimpleDOMNode * This,
+ /* [in] */ boolean placeTopLeft);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )(
+ ISimpleDOMNode * This,
+ /* [retval][out] */ ISimpleDOMNode **node);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )(
+ ISimpleDOMNode * This,
+ /* [retval][out] */ ISimpleDOMNode **node);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )(
+ ISimpleDOMNode * This,
+ /* [retval][out] */ ISimpleDOMNode **node);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )(
+ ISimpleDOMNode * This,
+ /* [retval][out] */ ISimpleDOMNode **node);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )(
+ ISimpleDOMNode * This,
+ /* [retval][out] */ ISimpleDOMNode **node);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_childAt )(
+ ISimpleDOMNode * This,
+ /* [in] */ unsigned int childIndex,
+ /* [retval][out] */ ISimpleDOMNode **node);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_innerHTML )(
+ ISimpleDOMNode * This,
+ /* [retval][out] */ BSTR *innerHTML);
+
+ /* [local][propget] */ HRESULT ( STDMETHODCALLTYPE *get_localInterface )(
+ ISimpleDOMNode * This,
+ /* [retval][out] */ void **localInterface);
+
+ /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )(
+ ISimpleDOMNode * This,
+ /* [retval][out] */ BSTR *language);
+
+ END_INTERFACE
+ } ISimpleDOMNodeVtbl;
+
+ interface ISimpleDOMNode
+ {
+ CONST_VTBL struct ISimpleDOMNodeVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISimpleDOMNode_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ISimpleDOMNode_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ISimpleDOMNode_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ISimpleDOMNode_get_nodeInfo(This,nodeName,nameSpaceID,nodeValue,numChildren,uniqueID,nodeType) \
+ ( (This)->lpVtbl -> get_nodeInfo(This,nodeName,nameSpaceID,nodeValue,numChildren,uniqueID,nodeType) )
+
+#define ISimpleDOMNode_get_attributes(This,maxAttribs,attribNames,nameSpaceID,attribValues,numAttribs) \
+ ( (This)->lpVtbl -> get_attributes(This,maxAttribs,attribNames,nameSpaceID,attribValues,numAttribs) )
+
+#define ISimpleDOMNode_get_attributesForNames(This,numAttribs,attribNames,nameSpaceID,attribValues) \
+ ( (This)->lpVtbl -> get_attributesForNames(This,numAttribs,attribNames,nameSpaceID,attribValues) )
+
+#define ISimpleDOMNode_get_computedStyle(This,maxStyleProperties,useAlternateView,styleProperties,styleValues,numStyleProperties) \
+ ( (This)->lpVtbl -> get_computedStyle(This,maxStyleProperties,useAlternateView,styleProperties,styleValues,numStyleProperties) )
+
+#define ISimpleDOMNode_get_computedStyleForProperties(This,numStyleProperties,useAlternateView,styleProperties,styleValues) \
+ ( (This)->lpVtbl -> get_computedStyleForProperties(This,numStyleProperties,useAlternateView,styleProperties,styleValues) )
+
+#define ISimpleDOMNode_scrollTo(This,placeTopLeft) \
+ ( (This)->lpVtbl -> scrollTo(This,placeTopLeft) )
+
+#define ISimpleDOMNode_get_parentNode(This,node) \
+ ( (This)->lpVtbl -> get_parentNode(This,node) )
+
+#define ISimpleDOMNode_get_firstChild(This,node) \
+ ( (This)->lpVtbl -> get_firstChild(This,node) )
+
+#define ISimpleDOMNode_get_lastChild(This,node) \
+ ( (This)->lpVtbl -> get_lastChild(This,node) )
+
+#define ISimpleDOMNode_get_previousSibling(This,node) \
+ ( (This)->lpVtbl -> get_previousSibling(This,node) )
+
+#define ISimpleDOMNode_get_nextSibling(This,node) \
+ ( (This)->lpVtbl -> get_nextSibling(This,node) )
+
+#define ISimpleDOMNode_get_childAt(This,childIndex,node) \
+ ( (This)->lpVtbl -> get_childAt(This,childIndex,node) )
+
+#define ISimpleDOMNode_get_innerHTML(This,innerHTML) \
+ ( (This)->lpVtbl -> get_innerHTML(This,innerHTML) )
+
+#define ISimpleDOMNode_get_localInterface(This,localInterface) \
+ ( (This)->lpVtbl -> get_localInterface(This,localInterface) )
+
+#define ISimpleDOMNode_get_language(This,language) \
+ ( (This)->lpVtbl -> get_language(This,language) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ISimpleDOMNode_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode_i.c b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode_i.c
new file mode 100644
index 00000000000..6dfa2f12e20
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/isimpledom/ISimpleDOMNode.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif // !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_ISimpleDOMNode,0x1814ceeb,0x49e2,0x407f,0xaf,0x99,0xfa,0x75,0x5a,0x7d,0x26,0x07);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode_p.c b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode_p.c
new file mode 100644
index 00000000000..4ad7afac78a
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode_p.c
@@ -0,0 +1,1015 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/isimpledom/ISimpleDOMNode.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64) && !defined(_ARM_)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "ISimpleDOMNode.h"
+
+#define TYPE_FORMAT_STRING_SIZE 209
+#define PROC_FORMAT_STRING_SIZE 625
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _ISimpleDOMNode_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } ISimpleDOMNode_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _ISimpleDOMNode_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } ISimpleDOMNode_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _ISimpleDOMNode_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } ISimpleDOMNode_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const ISimpleDOMNode_MIDL_TYPE_FORMAT_STRING ISimpleDOMNode__MIDL_TypeFormatString;
+extern const ISimpleDOMNode_MIDL_PROC_FORMAT_STRING ISimpleDOMNode__MIDL_ProcFormatString;
+extern const ISimpleDOMNode_MIDL_EXPR_FORMAT_STRING ISimpleDOMNode__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO ISimpleDOMNode_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO ISimpleDOMNode_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const ISimpleDOMNode_MIDL_PROC_FORMAT_STRING ISimpleDOMNode__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_nodeInfo */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x74 ), /* 116 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x7, /* 7 */
+/* 16 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nodeName */
+
+/* 24 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Parameter nameSpaceID */
+
+/* 30 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Parameter nodeValue */
+
+/* 36 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 38 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 40 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Parameter numChildren */
+
+/* 42 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 44 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 46 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter uniqueID */
+
+/* 48 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 50 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 52 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nodeType */
+
+/* 54 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 56 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 58 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 60 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 62 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 64 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributes */
+
+/* 66 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 68 */ NdrFcLong( 0x0 ), /* 0 */
+/* 72 */ NdrFcShort( 0x4 ), /* 4 */
+/* 74 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 76 */ NdrFcShort( 0x6 ), /* 6 */
+/* 78 */ NdrFcShort( 0x22 ), /* 34 */
+/* 80 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 82 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 84 */ NdrFcShort( 0x1 ), /* 1 */
+/* 86 */ NdrFcShort( 0x0 ), /* 0 */
+/* 88 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxAttribs */
+
+/* 90 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 92 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 94 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Parameter attribNames */
+
+/* 96 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 98 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 100 */ NdrFcShort( 0x36 ), /* Type Offset=54 */
+
+ /* Parameter nameSpaceID */
+
+/* 102 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 104 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 106 */ NdrFcShort( 0x50 ), /* Type Offset=80 */
+
+ /* Parameter attribValues */
+
+/* 108 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 110 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 112 */ NdrFcShort( 0x36 ), /* Type Offset=54 */
+
+ /* Parameter numAttribs */
+
+/* 114 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 116 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 118 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 120 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 122 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 124 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributesForNames */
+
+/* 126 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 128 */ NdrFcLong( 0x0 ), /* 0 */
+/* 132 */ NdrFcShort( 0x5 ), /* 5 */
+/* 134 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 136 */ NdrFcShort( 0x6 ), /* 6 */
+/* 138 */ NdrFcShort( 0x8 ), /* 8 */
+/* 140 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 142 */ 0x8, /* 8 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 144 */ NdrFcShort( 0x1 ), /* 1 */
+/* 146 */ NdrFcShort( 0x1 ), /* 1 */
+/* 148 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter numAttribs */
+
+/* 150 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 152 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 154 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Parameter attribNames */
+
+/* 156 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 158 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 160 */ NdrFcShort( 0x74 ), /* Type Offset=116 */
+
+ /* Parameter nameSpaceID */
+
+/* 162 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 164 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 166 */ NdrFcShort( 0x8e ), /* Type Offset=142 */
+
+ /* Parameter attribValues */
+
+/* 168 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 170 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 172 */ NdrFcShort( 0xa4 ), /* Type Offset=164 */
+
+ /* Return value */
+
+/* 174 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 176 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 178 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_computedStyle */
+
+/* 180 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 182 */ NdrFcLong( 0x0 ), /* 0 */
+/* 186 */ NdrFcShort( 0x6 ), /* 6 */
+/* 188 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 190 */ NdrFcShort( 0xb ), /* 11 */
+/* 192 */ NdrFcShort( 0x22 ), /* 34 */
+/* 194 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 196 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 198 */ NdrFcShort( 0x1 ), /* 1 */
+/* 200 */ NdrFcShort( 0x0 ), /* 0 */
+/* 202 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxStyleProperties */
+
+/* 204 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 206 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 208 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Parameter useAlternateView */
+
+/* 210 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 212 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 214 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Parameter styleProperties */
+
+/* 216 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 218 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 220 */ NdrFcShort( 0x36 ), /* Type Offset=54 */
+
+ /* Parameter styleValues */
+
+/* 222 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 224 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 226 */ NdrFcShort( 0x36 ), /* Type Offset=54 */
+
+ /* Parameter numStyleProperties */
+
+/* 228 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 230 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 232 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 234 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 236 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 238 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_computedStyleForProperties */
+
+/* 240 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 242 */ NdrFcLong( 0x0 ), /* 0 */
+/* 246 */ NdrFcShort( 0x7 ), /* 7 */
+/* 248 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 250 */ NdrFcShort( 0xb ), /* 11 */
+/* 252 */ NdrFcShort( 0x8 ), /* 8 */
+/* 254 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 256 */ 0x8, /* 8 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 258 */ NdrFcShort( 0x1 ), /* 1 */
+/* 260 */ NdrFcShort( 0x1 ), /* 1 */
+/* 262 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter numStyleProperties */
+
+/* 264 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 266 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 268 */ 0x6, /* FC_SHORT */
+ 0x0, /* 0 */
+
+ /* Parameter useAlternateView */
+
+/* 270 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 272 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 274 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Parameter styleProperties */
+
+/* 276 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 278 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 280 */ NdrFcShort( 0x74 ), /* Type Offset=116 */
+
+ /* Parameter styleValues */
+
+/* 282 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 284 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 286 */ NdrFcShort( 0xa4 ), /* Type Offset=164 */
+
+ /* Return value */
+
+/* 288 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 290 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 292 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollTo */
+
+/* 294 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 296 */ NdrFcLong( 0x0 ), /* 0 */
+/* 300 */ NdrFcShort( 0x8 ), /* 8 */
+/* 302 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 304 */ NdrFcShort( 0x5 ), /* 5 */
+/* 306 */ NdrFcShort( 0x8 ), /* 8 */
+/* 308 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 310 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 312 */ NdrFcShort( 0x0 ), /* 0 */
+/* 314 */ NdrFcShort( 0x0 ), /* 0 */
+/* 316 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter placeTopLeft */
+
+/* 318 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 320 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 322 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 324 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 326 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 328 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_parentNode */
+
+/* 330 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 332 */ NdrFcLong( 0x0 ), /* 0 */
+/* 336 */ NdrFcShort( 0x9 ), /* 9 */
+/* 338 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 340 */ NdrFcShort( 0x0 ), /* 0 */
+/* 342 */ NdrFcShort( 0x8 ), /* 8 */
+/* 344 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 346 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 348 */ NdrFcShort( 0x0 ), /* 0 */
+/* 350 */ NdrFcShort( 0x0 ), /* 0 */
+/* 352 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter node */
+
+/* 354 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 356 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 358 */ NdrFcShort( 0xba ), /* Type Offset=186 */
+
+ /* Return value */
+
+/* 360 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 362 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 364 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_firstChild */
+
+/* 366 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 368 */ NdrFcLong( 0x0 ), /* 0 */
+/* 372 */ NdrFcShort( 0xa ), /* 10 */
+/* 374 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 376 */ NdrFcShort( 0x0 ), /* 0 */
+/* 378 */ NdrFcShort( 0x8 ), /* 8 */
+/* 380 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 382 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 384 */ NdrFcShort( 0x0 ), /* 0 */
+/* 386 */ NdrFcShort( 0x0 ), /* 0 */
+/* 388 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter node */
+
+/* 390 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 392 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 394 */ NdrFcShort( 0xba ), /* Type Offset=186 */
+
+ /* Return value */
+
+/* 396 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 398 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 400 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_lastChild */
+
+/* 402 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 404 */ NdrFcLong( 0x0 ), /* 0 */
+/* 408 */ NdrFcShort( 0xb ), /* 11 */
+/* 410 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 412 */ NdrFcShort( 0x0 ), /* 0 */
+/* 414 */ NdrFcShort( 0x8 ), /* 8 */
+/* 416 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 418 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 420 */ NdrFcShort( 0x0 ), /* 0 */
+/* 422 */ NdrFcShort( 0x0 ), /* 0 */
+/* 424 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter node */
+
+/* 426 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 428 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 430 */ NdrFcShort( 0xba ), /* Type Offset=186 */
+
+ /* Return value */
+
+/* 432 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 434 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 436 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_previousSibling */
+
+/* 438 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 440 */ NdrFcLong( 0x0 ), /* 0 */
+/* 444 */ NdrFcShort( 0xc ), /* 12 */
+/* 446 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 448 */ NdrFcShort( 0x0 ), /* 0 */
+/* 450 */ NdrFcShort( 0x8 ), /* 8 */
+/* 452 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 454 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 456 */ NdrFcShort( 0x0 ), /* 0 */
+/* 458 */ NdrFcShort( 0x0 ), /* 0 */
+/* 460 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter node */
+
+/* 462 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 464 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 466 */ NdrFcShort( 0xba ), /* Type Offset=186 */
+
+ /* Return value */
+
+/* 468 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 470 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 472 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nextSibling */
+
+/* 474 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 476 */ NdrFcLong( 0x0 ), /* 0 */
+/* 480 */ NdrFcShort( 0xd ), /* 13 */
+/* 482 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 484 */ NdrFcShort( 0x0 ), /* 0 */
+/* 486 */ NdrFcShort( 0x8 ), /* 8 */
+/* 488 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 490 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 492 */ NdrFcShort( 0x0 ), /* 0 */
+/* 494 */ NdrFcShort( 0x0 ), /* 0 */
+/* 496 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter node */
+
+/* 498 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 500 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 502 */ NdrFcShort( 0xba ), /* Type Offset=186 */
+
+ /* Return value */
+
+/* 504 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 506 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 508 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_childAt */
+
+/* 510 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 512 */ NdrFcLong( 0x0 ), /* 0 */
+/* 516 */ NdrFcShort( 0xe ), /* 14 */
+/* 518 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 520 */ NdrFcShort( 0x8 ), /* 8 */
+/* 522 */ NdrFcShort( 0x8 ), /* 8 */
+/* 524 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 526 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 528 */ NdrFcShort( 0x0 ), /* 0 */
+/* 530 */ NdrFcShort( 0x0 ), /* 0 */
+/* 532 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter childIndex */
+
+/* 534 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 536 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 538 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter node */
+
+/* 540 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 542 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 544 */ NdrFcShort( 0xba ), /* Type Offset=186 */
+
+ /* Return value */
+
+/* 546 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 548 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 550 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_innerHTML */
+
+/* 552 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 554 */ NdrFcLong( 0x0 ), /* 0 */
+/* 558 */ NdrFcShort( 0xf ), /* 15 */
+/* 560 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 562 */ NdrFcShort( 0x0 ), /* 0 */
+/* 564 */ NdrFcShort( 0x8 ), /* 8 */
+/* 566 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 568 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 570 */ NdrFcShort( 0x1 ), /* 1 */
+/* 572 */ NdrFcShort( 0x0 ), /* 0 */
+/* 574 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter innerHTML */
+
+/* 576 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 578 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 580 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 582 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 584 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 586 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_language */
+
+/* 588 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 590 */ NdrFcLong( 0x0 ), /* 0 */
+/* 594 */ NdrFcShort( 0x11 ), /* 17 */
+/* 596 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 598 */ NdrFcShort( 0x0 ), /* 0 */
+/* 600 */ NdrFcShort( 0x8 ), /* 8 */
+/* 602 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 604 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 606 */ NdrFcShort( 0x1 ), /* 1 */
+/* 608 */ NdrFcShort( 0x0 ), /* 0 */
+/* 610 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter language */
+
+/* 612 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 614 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 616 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 618 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 620 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 622 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const ISimpleDOMNode_MIDL_TYPE_FORMAT_STRING ISimpleDOMNode__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
+/* 10 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 12 */ NdrFcShort( 0x2 ), /* 2 */
+/* 14 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 20 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 22 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 24 */ NdrFcShort( 0x8 ), /* 8 */
+/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 30 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 32 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x4 ), /* 4 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
+/* 42 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 44 */ 0x6, /* FC_SHORT */
+ 0x5c, /* FC_PAD */
+/* 46 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 48 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 50 */
+ 0x11, 0x0, /* FC_RP */
+/* 52 */ NdrFcShort( 0x2 ), /* Offset= 2 (54) */
+/* 54 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x0, /* */
+/* 60 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 62 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 64 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x54, /* FC_DEREFERENCE */
+/* 66 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 68 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 70 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 72 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (32) */
+/* 74 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 76 */
+ 0x11, 0x0, /* FC_RP */
+/* 78 */ NdrFcShort( 0x2 ), /* Offset= 2 (80) */
+/* 80 */
+ 0x1c, /* FC_CVARRAY */
+ 0x1, /* 1 */
+/* 82 */ NdrFcShort( 0x2 ), /* 2 */
+/* 84 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x0, /* */
+/* 86 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 88 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 90 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x54, /* FC_DEREFERENCE */
+/* 92 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 94 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 96 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 98 */
+ 0x11, 0x0, /* FC_RP */
+/* 100 */ NdrFcShort( 0x10 ), /* Offset= 16 (116) */
+/* 102 */
+ 0x12, 0x0, /* FC_UP */
+/* 104 */ NdrFcShort( 0xffae ), /* Offset= -82 (22) */
+/* 106 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 108 */ NdrFcShort( 0x0 ), /* 0 */
+/* 110 */ NdrFcShort( 0x4 ), /* 4 */
+/* 112 */ NdrFcShort( 0x0 ), /* 0 */
+/* 114 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (102) */
+/* 116 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 118 */ NdrFcShort( 0x0 ), /* 0 */
+/* 120 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x0, /* */
+/* 122 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 124 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 126 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x0, /* */
+/* 128 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 130 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 132 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 134 */ NdrFcShort( 0xffe4 ), /* Offset= -28 (106) */
+/* 136 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 138 */
+ 0x11, 0x0, /* FC_RP */
+/* 140 */ NdrFcShort( 0x2 ), /* Offset= 2 (142) */
+/* 142 */
+ 0x1c, /* FC_CVARRAY */
+ 0x1, /* 1 */
+/* 144 */ NdrFcShort( 0x2 ), /* 2 */
+/* 146 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x0, /* */
+/* 148 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 150 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 152 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x0, /* */
+/* 154 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 156 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 158 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 160 */
+ 0x11, 0x0, /* FC_RP */
+/* 162 */ NdrFcShort( 0x2 ), /* Offset= 2 (164) */
+/* 164 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 166 */ NdrFcShort( 0x0 ), /* 0 */
+/* 168 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x0, /* */
+/* 170 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 172 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 174 */ 0x27, /* Corr desc: parameter, FC_USHORT */
+ 0x0, /* */
+/* 176 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 178 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 180 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 182 */ NdrFcShort( 0xff6a ), /* Offset= -150 (32) */
+/* 184 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 186 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 188 */ NdrFcShort( 0x2 ), /* Offset= 2 (190) */
+/* 190 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 192 */ NdrFcLong( 0x1814ceeb ), /* 404016875 */
+/* 196 */ NdrFcShort( 0x49e2 ), /* 18914 */
+/* 198 */ NdrFcShort( 0x407f ), /* 16511 */
+/* 200 */ 0xaf, /* 175 */
+ 0x99, /* 153 */
+/* 202 */ 0xfa, /* 250 */
+ 0x75, /* 117 */
+/* 204 */ 0x5a, /* 90 */
+ 0x7d, /* 125 */
+/* 206 */ 0x26, /* 38 */
+ 0x7, /* 7 */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Standard interface: __MIDL_itf_ISimpleDOMNode_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: ISimpleDOMNode, ver. 0.0,
+ GUID={0x1814ceeb,0x49e2,0x407f,{0xaf,0x99,0xfa,0x75,0x5a,0x7d,0x26,0x07}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short ISimpleDOMNode_FormatStringOffsetTable[] =
+ {
+ 0,
+ 66,
+ 126,
+ 180,
+ 240,
+ 294,
+ 330,
+ 366,
+ 402,
+ 438,
+ 474,
+ 510,
+ 552,
+ (unsigned short) -1,
+ 588
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO ISimpleDOMNode_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ISimpleDOMNode__MIDL_ProcFormatString.Format,
+ &ISimpleDOMNode_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO ISimpleDOMNode_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ISimpleDOMNode__MIDL_ProcFormatString.Format,
+ &ISimpleDOMNode_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(18) _ISimpleDOMNodeProxyVtbl =
+{
+ &ISimpleDOMNode_ProxyInfo,
+ &IID_ISimpleDOMNode,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_nodeInfo */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_attributesForNames */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_computedStyle */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_computedStyleForProperties */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::scrollTo */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_parentNode */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_firstChild */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_lastChild */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_previousSibling */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_nextSibling */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_childAt */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_innerHTML */ ,
+ 0 /* ISimpleDOMNode::get_localInterface */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMNode::get_language */
+};
+
+const CInterfaceStubVtbl _ISimpleDOMNodeStubVtbl =
+{
+ &IID_ISimpleDOMNode,
+ &ISimpleDOMNode_ServerInfo,
+ 18,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ ISimpleDOMNode__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x801026e, /* MIDL Version 8.1.622 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _ISimpleDOMNode_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_ISimpleDOMNodeProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _ISimpleDOMNode_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_ISimpleDOMNodeStubVtbl,
+ 0
+};
+
+PCInterfaceName const _ISimpleDOMNode_InterfaceNamesList[] =
+{
+ "ISimpleDOMNode",
+ 0
+};
+
+
+#define _ISimpleDOMNode_CHECK_IID(n) IID_GENERIC_CHECK_IID( _ISimpleDOMNode, pIID, n)
+
+int __stdcall _ISimpleDOMNode_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_ISimpleDOMNode_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo ISimpleDOMNode_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _ISimpleDOMNode_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _ISimpleDOMNode_StubVtblList,
+ (const PCInterfaceName * ) & _ISimpleDOMNode_InterfaceNamesList,
+ 0, /* no delegation */
+ & _ISimpleDOMNode_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64) && !defined(_ARM_) */
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText.dlldata.c b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText.dlldata.c
new file mode 100644
index 00000000000..1a37b353294
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText.dlldata.c
@@ -0,0 +1,37 @@
+/*********************************************************
+ DllData file -- generated by MIDL compiler
+
+ DO NOT ALTER THIS FILE
+
+ This file is regenerated by MIDL on every IDL file compile.
+
+ To completely reconstruct this file, delete it and rerun MIDL
+ on all the IDL files in this DLL, specifying this file for the
+ /dlldata command line option
+
+*********************************************************/
+
+
+#include <rpcproxy.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_PROXY_FILE( ISimpleDOMText )
+
+
+PROXYFILE_LIST_START
+/* Start of list */
+ REFERENCE_PROXY_FILE( ISimpleDOMText ),
+/* End of list */
+PROXYFILE_LIST_END
+
+
+DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID )
+
+#ifdef __cplusplus
+} /*extern "C" */
+#endif
+
+/* end of generated dlldata file */
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText.h b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText.h
new file mode 100644
index 00000000000..96bde361a93
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText.h
@@ -0,0 +1,274 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/isimpledom/ISimpleDOMText.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif /* __RPCNDR_H_VERSION__ */
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __ISimpleDOMText_h__
+#define __ISimpleDOMText_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __ISimpleDOMText_FWD_DEFINED__
+#define __ISimpleDOMText_FWD_DEFINED__
+typedef interface ISimpleDOMText ISimpleDOMText;
+
+#endif /* __ISimpleDOMText_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_ISimpleDOMText_0000_0000 */
+/* [local] */
+
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// ISimpleDOMText
+// ---------------------------------------------------------------------------------------------------=
+// An interface that extends MSAA's IAccessible to provide important additional capabilities on text nodes
+//
+// @STATUS UNDER_REVIEW
+//
+// [propget] domText(/* out,retval */ BSTR *domText
+// ---------------------------------------------------------------------------------------------------=
+// Similar to IAccessible::get_accName, but does not strip out whitespace characters.
+// Important for retrieving the correct start/end substring indices to use with other
+// methods in ISimpleDOMText.
+//
+//
+// get_[un]clippedSubstringBounds(
+// /* [in] */ unsigned int startIndex,
+// /* [in] */ unsigned int endIndex,
+// /* [out] */ int *x,
+// /* [out] */ int *y,
+// /* [out] */ int *width,
+// /* [out] */ int *height);
+// ---------------------------------------------------------------------------------------------------=
+// Both methods get_clippedSubstringBounds and get_unclippedSubstringBounds return the screen pixel
+// coordinates of the given text substring. The in parameters for start and end indices refer
+// to the string returned by ISimpleDOMText::get_domText().
+//
+//
+// scrollToSubstring(
+// /* [in] */ unsigned int startIndex,
+// /* [in] */ unsigned int endIndex);
+// ---------------------------------------------------------------------------------------------------=
+// In scrollable views, scrolls to ensure that the specified substring is visible onscreen.
+// The in parameters for start and end indices refer to the string returned
+// by ISimpleDOMText::get_domText().
+//
+//
+// [propget] fontFamily(/* out,retval */ BSTR *fontFamily);
+// ---------------------------------------------------------------------------------------------------=
+// Return a single computed font family name, which is better than the comma delineated list
+// that is returned by the ISimpleDOMNode computed style methods for font-family.
+// In other words, return something like 'Arial' instead of 'Arial, Helvetica, Sans-serif'.
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ISimpleDOMText_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ISimpleDOMText_0000_0000_v0_0_s_ifspec;
+
+#ifndef __ISimpleDOMText_INTERFACE_DEFINED__
+#define __ISimpleDOMText_INTERFACE_DEFINED__
+
+/* interface ISimpleDOMText */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_ISimpleDOMText;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("4e747be5-2052-4265-8af0-8ecad7aad1c0")
+ ISimpleDOMText : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_domText(
+ /* [retval][out] */ BSTR *domText) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE get_clippedSubstringBounds(
+ /* [in] */ unsigned int startIndex,
+ /* [in] */ unsigned int endIndex,
+ /* [out] */ int *x,
+ /* [out] */ int *y,
+ /* [out] */ int *width,
+ /* [out] */ int *height) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE get_unclippedSubstringBounds(
+ /* [in] */ unsigned int startIndex,
+ /* [in] */ unsigned int endIndex,
+ /* [out] */ int *x,
+ /* [out] */ int *y,
+ /* [out] */ int *width,
+ /* [out] */ int *height) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollToSubstring(
+ /* [in] */ unsigned int startIndex,
+ /* [in] */ unsigned int endIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_fontFamily(
+ /* [retval][out] */ BSTR *fontFamily) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ISimpleDOMTextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISimpleDOMText * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISimpleDOMText * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISimpleDOMText * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_domText )(
+ ISimpleDOMText * This,
+ /* [retval][out] */ BSTR *domText);
+
+ HRESULT ( STDMETHODCALLTYPE *get_clippedSubstringBounds )(
+ ISimpleDOMText * This,
+ /* [in] */ unsigned int startIndex,
+ /* [in] */ unsigned int endIndex,
+ /* [out] */ int *x,
+ /* [out] */ int *y,
+ /* [out] */ int *width,
+ /* [out] */ int *height);
+
+ HRESULT ( STDMETHODCALLTYPE *get_unclippedSubstringBounds )(
+ ISimpleDOMText * This,
+ /* [in] */ unsigned int startIndex,
+ /* [in] */ unsigned int endIndex,
+ /* [out] */ int *x,
+ /* [out] */ int *y,
+ /* [out] */ int *width,
+ /* [out] */ int *height);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollToSubstring )(
+ ISimpleDOMText * This,
+ /* [in] */ unsigned int startIndex,
+ /* [in] */ unsigned int endIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_fontFamily )(
+ ISimpleDOMText * This,
+ /* [retval][out] */ BSTR *fontFamily);
+
+ END_INTERFACE
+ } ISimpleDOMTextVtbl;
+
+ interface ISimpleDOMText
+ {
+ CONST_VTBL struct ISimpleDOMTextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISimpleDOMText_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ISimpleDOMText_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ISimpleDOMText_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ISimpleDOMText_get_domText(This,domText) \
+ ( (This)->lpVtbl -> get_domText(This,domText) )
+
+#define ISimpleDOMText_get_clippedSubstringBounds(This,startIndex,endIndex,x,y,width,height) \
+ ( (This)->lpVtbl -> get_clippedSubstringBounds(This,startIndex,endIndex,x,y,width,height) )
+
+#define ISimpleDOMText_get_unclippedSubstringBounds(This,startIndex,endIndex,x,y,width,height) \
+ ( (This)->lpVtbl -> get_unclippedSubstringBounds(This,startIndex,endIndex,x,y,width,height) )
+
+#define ISimpleDOMText_scrollToSubstring(This,startIndex,endIndex) \
+ ( (This)->lpVtbl -> scrollToSubstring(This,startIndex,endIndex) )
+
+#define ISimpleDOMText_get_fontFamily(This,fontFamily) \
+ ( (This)->lpVtbl -> get_fontFamily(This,fontFamily) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ISimpleDOMText_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText_i.c b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText_i.c
new file mode 100644
index 00000000000..19a9e00fc76
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/isimpledom/ISimpleDOMText.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif // !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_ISimpleDOMText,0x4e747be5,0x2052,0x4265,0x8a,0xf0,0x8e,0xca,0xd7,0xaa,0xd1,0xc0);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText_p.c b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText_p.c
new file mode 100644
index 00000000000..766c101e7f0
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText_p.c
@@ -0,0 +1,541 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/isimpledom/ISimpleDOMText.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "ISimpleDOMText.h"
+
+#define TYPE_FORMAT_STRING_SIZE 47
+#define PROC_FORMAT_STRING_SIZE 257
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _ISimpleDOMText_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } ISimpleDOMText_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _ISimpleDOMText_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } ISimpleDOMText_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _ISimpleDOMText_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } ISimpleDOMText_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const ISimpleDOMText_MIDL_TYPE_FORMAT_STRING ISimpleDOMText__MIDL_TypeFormatString;
+extern const ISimpleDOMText_MIDL_PROC_FORMAT_STRING ISimpleDOMText__MIDL_ProcFormatString;
+extern const ISimpleDOMText_MIDL_EXPR_FORMAT_STRING ISimpleDOMText__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO ISimpleDOMText_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO ISimpleDOMText_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const ISimpleDOMText_MIDL_PROC_FORMAT_STRING ISimpleDOMText__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_domText */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter domText */
+
+/* 26 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_clippedSubstringBounds */
+
+/* 38 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 40 */ NdrFcLong( 0x0 ), /* 0 */
+/* 44 */ NdrFcShort( 0x4 ), /* 4 */
+/* 46 */ NdrFcShort( 0x40 ), /* X64 Stack size/offset = 64 */
+/* 48 */ NdrFcShort( 0x10 ), /* 16 */
+/* 50 */ NdrFcShort( 0x78 ), /* 120 */
+/* 52 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x7, /* 7 */
+/* 54 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startIndex */
+
+/* 64 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 68 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endIndex */
+
+/* 70 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 74 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 76 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 78 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 80 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 82 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 84 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 86 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter width */
+
+/* 88 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 90 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 92 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter height */
+
+/* 94 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 96 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 98 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 100 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 102 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 104 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_unclippedSubstringBounds */
+
+/* 106 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 108 */ NdrFcLong( 0x0 ), /* 0 */
+/* 112 */ NdrFcShort( 0x5 ), /* 5 */
+/* 114 */ NdrFcShort( 0x40 ), /* X64 Stack size/offset = 64 */
+/* 116 */ NdrFcShort( 0x10 ), /* 16 */
+/* 118 */ NdrFcShort( 0x78 ), /* 120 */
+/* 120 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x7, /* 7 */
+/* 122 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 124 */ NdrFcShort( 0x0 ), /* 0 */
+/* 126 */ NdrFcShort( 0x0 ), /* 0 */
+/* 128 */ NdrFcShort( 0x0 ), /* 0 */
+/* 130 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startIndex */
+
+/* 132 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 134 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 136 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endIndex */
+
+/* 138 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 140 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 142 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 144 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 146 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 148 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 150 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 152 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 154 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter width */
+
+/* 156 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 158 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 160 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter height */
+
+/* 162 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 164 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 166 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 168 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 170 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 172 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollToSubstring */
+
+/* 174 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 176 */ NdrFcLong( 0x0 ), /* 0 */
+/* 180 */ NdrFcShort( 0x6 ), /* 6 */
+/* 182 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 184 */ NdrFcShort( 0x10 ), /* 16 */
+/* 186 */ NdrFcShort( 0x8 ), /* 8 */
+/* 188 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 190 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 192 */ NdrFcShort( 0x0 ), /* 0 */
+/* 194 */ NdrFcShort( 0x0 ), /* 0 */
+/* 196 */ NdrFcShort( 0x0 ), /* 0 */
+/* 198 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startIndex */
+
+/* 200 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 202 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 204 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endIndex */
+
+/* 206 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 208 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 210 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 212 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 214 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 216 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_fontFamily */
+
+/* 218 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 220 */ NdrFcLong( 0x0 ), /* 0 */
+/* 224 */ NdrFcShort( 0x7 ), /* 7 */
+/* 226 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 228 */ NdrFcShort( 0x0 ), /* 0 */
+/* 230 */ NdrFcShort( 0x8 ), /* 8 */
+/* 232 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 234 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 236 */ NdrFcShort( 0x1 ), /* 1 */
+/* 238 */ NdrFcShort( 0x0 ), /* 0 */
+/* 240 */ NdrFcShort( 0x0 ), /* 0 */
+/* 242 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter fontFamily */
+
+/* 244 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 246 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 248 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 250 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 252 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 254 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const ISimpleDOMText_MIDL_TYPE_FORMAT_STRING ISimpleDOMText__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
+/* 10 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 12 */ NdrFcShort( 0x2 ), /* 2 */
+/* 14 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 20 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 22 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 24 */ NdrFcShort( 0x8 ), /* 8 */
+/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 30 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 32 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x8 ), /* 8 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
+/* 42 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 44 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Standard interface: __MIDL_itf_ISimpleDOMText_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: ISimpleDOMText, ver. 0.0,
+ GUID={0x4e747be5,0x2052,0x4265,{0x8a,0xf0,0x8e,0xca,0xd7,0xaa,0xd1,0xc0}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short ISimpleDOMText_FormatStringOffsetTable[] =
+ {
+ 0,
+ 38,
+ 106,
+ 174,
+ 218
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO ISimpleDOMText_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ISimpleDOMText__MIDL_ProcFormatString.Format,
+ &ISimpleDOMText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO ISimpleDOMText_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ISimpleDOMText__MIDL_ProcFormatString.Format,
+ &ISimpleDOMText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(8) _ISimpleDOMTextProxyVtbl =
+{
+ &ISimpleDOMText_ProxyInfo,
+ &IID_ISimpleDOMText,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMText::get_domText */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMText::get_clippedSubstringBounds */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMText::get_unclippedSubstringBounds */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMText::scrollToSubstring */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMText::get_fontFamily */
+};
+
+const CInterfaceStubVtbl _ISimpleDOMTextStubVtbl =
+{
+ &IID_ISimpleDOMText,
+ &ISimpleDOMText_ServerInfo,
+ 8,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ ISimpleDOMText__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x801026e, /* MIDL Version 8.1.622 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _ISimpleDOMText_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_ISimpleDOMTextProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _ISimpleDOMText_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_ISimpleDOMTextStubVtbl,
+ 0
+};
+
+PCInterfaceName const _ISimpleDOMText_InterfaceNamesList[] =
+{
+ "ISimpleDOMText",
+ 0
+};
+
+
+#define _ISimpleDOMText_CHECK_IID(n) IID_GENERIC_CHECK_IID( _ISimpleDOMText, pIID, n)
+
+int __stdcall _ISimpleDOMText_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_ISimpleDOMText_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo ISimpleDOMText_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _ISimpleDOMText_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _ISimpleDOMText_StubVtblList,
+ (const PCInterfaceName * ) & _ISimpleDOMText_InterfaceNamesList,
+ 0, /* no delegation */
+ & _ISimpleDOMText_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText.dlldata.c b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText.dlldata.c
new file mode 100644
index 00000000000..1a37b353294
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText.dlldata.c
@@ -0,0 +1,37 @@
+/*********************************************************
+ DllData file -- generated by MIDL compiler
+
+ DO NOT ALTER THIS FILE
+
+ This file is regenerated by MIDL on every IDL file compile.
+
+ To completely reconstruct this file, delete it and rerun MIDL
+ on all the IDL files in this DLL, specifying this file for the
+ /dlldata command line option
+
+*********************************************************/
+
+
+#include <rpcproxy.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EXTERN_PROXY_FILE( ISimpleDOMText )
+
+
+PROXYFILE_LIST_START
+/* Start of list */
+ REFERENCE_PROXY_FILE( ISimpleDOMText ),
+/* End of list */
+PROXYFILE_LIST_END
+
+
+DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID )
+
+#ifdef __cplusplus
+} /*extern "C" */
+#endif
+
+/* end of generated dlldata file */
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText.h b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText.h
new file mode 100644
index 00000000000..fc773e45c6a
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText.h
@@ -0,0 +1,274 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/isimpledom/ISimpleDOMText.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif /* __RPCNDR_H_VERSION__ */
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __ISimpleDOMText_h__
+#define __ISimpleDOMText_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __ISimpleDOMText_FWD_DEFINED__
+#define __ISimpleDOMText_FWD_DEFINED__
+typedef interface ISimpleDOMText ISimpleDOMText;
+
+#endif /* __ISimpleDOMText_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_ISimpleDOMText_0000_0000 */
+/* [local] */
+
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// ISimpleDOMText
+// ---------------------------------------------------------------------------------------------------=
+// An interface that extends MSAA's IAccessible to provide important additional capabilities on text nodes
+//
+// @STATUS UNDER_REVIEW
+//
+// [propget] domText(/* out,retval */ BSTR *domText
+// ---------------------------------------------------------------------------------------------------=
+// Similar to IAccessible::get_accName, but does not strip out whitespace characters.
+// Important for retrieving the correct start/end substring indices to use with other
+// methods in ISimpleDOMText.
+//
+//
+// get_[un]clippedSubstringBounds(
+// /* [in] */ unsigned int startIndex,
+// /* [in] */ unsigned int endIndex,
+// /* [out] */ int *x,
+// /* [out] */ int *y,
+// /* [out] */ int *width,
+// /* [out] */ int *height);
+// ---------------------------------------------------------------------------------------------------=
+// Both methods get_clippedSubstringBounds and get_unclippedSubstringBounds return the screen pixel
+// coordinates of the given text substring. The in parameters for start and end indices refer
+// to the string returned by ISimpleDOMText::get_domText().
+//
+//
+// scrollToSubstring(
+// /* [in] */ unsigned int startIndex,
+// /* [in] */ unsigned int endIndex);
+// ---------------------------------------------------------------------------------------------------=
+// In scrollable views, scrolls to ensure that the specified substring is visible onscreen.
+// The in parameters for start and end indices refer to the string returned
+// by ISimpleDOMText::get_domText().
+//
+//
+// [propget] fontFamily(/* out,retval */ BSTR *fontFamily);
+// ---------------------------------------------------------------------------------------------------=
+// Return a single computed font family name, which is better than the comma delineated list
+// that is returned by the ISimpleDOMNode computed style methods for font-family.
+// In other words, return something like 'Arial' instead of 'Arial, Helvetica, Sans-serif'.
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ISimpleDOMText_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ISimpleDOMText_0000_0000_v0_0_s_ifspec;
+
+#ifndef __ISimpleDOMText_INTERFACE_DEFINED__
+#define __ISimpleDOMText_INTERFACE_DEFINED__
+
+/* interface ISimpleDOMText */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_ISimpleDOMText;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("4e747be5-2052-4265-8af0-8ecad7aad1c0")
+ ISimpleDOMText : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_domText(
+ /* [retval][out] */ BSTR *domText) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE get_clippedSubstringBounds(
+ /* [in] */ unsigned int startIndex,
+ /* [in] */ unsigned int endIndex,
+ /* [out] */ int *x,
+ /* [out] */ int *y,
+ /* [out] */ int *width,
+ /* [out] */ int *height) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE get_unclippedSubstringBounds(
+ /* [in] */ unsigned int startIndex,
+ /* [in] */ unsigned int endIndex,
+ /* [out] */ int *x,
+ /* [out] */ int *y,
+ /* [out] */ int *width,
+ /* [out] */ int *height) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollToSubstring(
+ /* [in] */ unsigned int startIndex,
+ /* [in] */ unsigned int endIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_fontFamily(
+ /* [retval][out] */ BSTR *fontFamily) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ISimpleDOMTextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISimpleDOMText * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISimpleDOMText * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISimpleDOMText * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_domText )(
+ ISimpleDOMText * This,
+ /* [retval][out] */ BSTR *domText);
+
+ HRESULT ( STDMETHODCALLTYPE *get_clippedSubstringBounds )(
+ ISimpleDOMText * This,
+ /* [in] */ unsigned int startIndex,
+ /* [in] */ unsigned int endIndex,
+ /* [out] */ int *x,
+ /* [out] */ int *y,
+ /* [out] */ int *width,
+ /* [out] */ int *height);
+
+ HRESULT ( STDMETHODCALLTYPE *get_unclippedSubstringBounds )(
+ ISimpleDOMText * This,
+ /* [in] */ unsigned int startIndex,
+ /* [in] */ unsigned int endIndex,
+ /* [out] */ int *x,
+ /* [out] */ int *y,
+ /* [out] */ int *width,
+ /* [out] */ int *height);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollToSubstring )(
+ ISimpleDOMText * This,
+ /* [in] */ unsigned int startIndex,
+ /* [in] */ unsigned int endIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_fontFamily )(
+ ISimpleDOMText * This,
+ /* [retval][out] */ BSTR *fontFamily);
+
+ END_INTERFACE
+ } ISimpleDOMTextVtbl;
+
+ interface ISimpleDOMText
+ {
+ CONST_VTBL struct ISimpleDOMTextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISimpleDOMText_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ISimpleDOMText_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ISimpleDOMText_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ISimpleDOMText_get_domText(This,domText) \
+ ( (This)->lpVtbl -> get_domText(This,domText) )
+
+#define ISimpleDOMText_get_clippedSubstringBounds(This,startIndex,endIndex,x,y,width,height) \
+ ( (This)->lpVtbl -> get_clippedSubstringBounds(This,startIndex,endIndex,x,y,width,height) )
+
+#define ISimpleDOMText_get_unclippedSubstringBounds(This,startIndex,endIndex,x,y,width,height) \
+ ( (This)->lpVtbl -> get_unclippedSubstringBounds(This,startIndex,endIndex,x,y,width,height) )
+
+#define ISimpleDOMText_scrollToSubstring(This,startIndex,endIndex) \
+ ( (This)->lpVtbl -> scrollToSubstring(This,startIndex,endIndex) )
+
+#define ISimpleDOMText_get_fontFamily(This,fontFamily) \
+ ( (This)->lpVtbl -> get_fontFamily(This,fontFamily) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ISimpleDOMText_INTERFACE_DEFINED__ */
+
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText_i.c b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText_i.c
new file mode 100644
index 00000000000..216c45caccd
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText_i.c
@@ -0,0 +1,79 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/isimpledom/ISimpleDOMText.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif // !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_ISimpleDOMText,0x4e747be5,0x2052,0x4265,0x8a,0xf0,0x8e,0xca,0xd7,0xaa,0xd1,0xc0);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText_p.c b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText_p.c
new file mode 100644
index 00000000000..4c1bdc8582b
--- /dev/null
+++ b/chromium/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText_p.c
@@ -0,0 +1,547 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 8.xx.xxxx */
+/* at a redacted point in time
+ */
+/* Compiler settings for ../../third_party/isimpledom/ISimpleDOMText.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.xx.xxxx
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64) && !defined(_ARM_)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "ISimpleDOMText.h"
+
+#define TYPE_FORMAT_STRING_SIZE 47
+#define PROC_FORMAT_STRING_SIZE 247
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 1
+
+typedef struct _ISimpleDOMText_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } ISimpleDOMText_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _ISimpleDOMText_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } ISimpleDOMText_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _ISimpleDOMText_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } ISimpleDOMText_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const ISimpleDOMText_MIDL_TYPE_FORMAT_STRING ISimpleDOMText__MIDL_TypeFormatString;
+extern const ISimpleDOMText_MIDL_PROC_FORMAT_STRING ISimpleDOMText__MIDL_ProcFormatString;
+extern const ISimpleDOMText_MIDL_EXPR_FORMAT_STRING ISimpleDOMText__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO ISimpleDOMText_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO ISimpleDOMText_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const ISimpleDOMText_MIDL_PROC_FORMAT_STRING ISimpleDOMText__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_domText */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter domText */
+
+/* 24 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_clippedSubstringBounds */
+
+/* 36 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 38 */ NdrFcLong( 0x0 ), /* 0 */
+/* 42 */ NdrFcShort( 0x4 ), /* 4 */
+/* 44 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */
+/* 46 */ NdrFcShort( 0x10 ), /* 16 */
+/* 48 */ NdrFcShort( 0x78 ), /* 120 */
+/* 50 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x7, /* 7 */
+/* 52 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 54 */ NdrFcShort( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startIndex */
+
+/* 60 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 64 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endIndex */
+
+/* 66 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 70 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 72 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 74 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 76 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 78 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 80 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 82 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter width */
+
+/* 84 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 86 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 88 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter height */
+
+/* 90 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 92 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 94 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 96 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 98 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 100 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_unclippedSubstringBounds */
+
+/* 102 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 104 */ NdrFcLong( 0x0 ), /* 0 */
+/* 108 */ NdrFcShort( 0x5 ), /* 5 */
+/* 110 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */
+/* 112 */ NdrFcShort( 0x10 ), /* 16 */
+/* 114 */ NdrFcShort( 0x78 ), /* 120 */
+/* 116 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x7, /* 7 */
+/* 118 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 120 */ NdrFcShort( 0x0 ), /* 0 */
+/* 122 */ NdrFcShort( 0x0 ), /* 0 */
+/* 124 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startIndex */
+
+/* 126 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 128 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 130 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endIndex */
+
+/* 132 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 134 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 136 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 138 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 140 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 142 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 144 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 146 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 148 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter width */
+
+/* 150 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 152 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 154 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter height */
+
+/* 156 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 158 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 160 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 162 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 164 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 166 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollToSubstring */
+
+/* 168 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 170 */ NdrFcLong( 0x0 ), /* 0 */
+/* 174 */ NdrFcShort( 0x6 ), /* 6 */
+/* 176 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 178 */ NdrFcShort( 0x10 ), /* 16 */
+/* 180 */ NdrFcShort( 0x8 ), /* 8 */
+/* 182 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 184 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 186 */ NdrFcShort( 0x0 ), /* 0 */
+/* 188 */ NdrFcShort( 0x0 ), /* 0 */
+/* 190 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startIndex */
+
+/* 192 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 194 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 196 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endIndex */
+
+/* 198 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 200 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 202 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 204 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 206 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 208 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_fontFamily */
+
+/* 210 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 212 */ NdrFcLong( 0x0 ), /* 0 */
+/* 216 */ NdrFcShort( 0x7 ), /* 7 */
+/* 218 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 220 */ NdrFcShort( 0x0 ), /* 0 */
+/* 222 */ NdrFcShort( 0x8 ), /* 8 */
+/* 224 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 226 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 228 */ NdrFcShort( 0x1 ), /* 1 */
+/* 230 */ NdrFcShort( 0x0 ), /* 0 */
+/* 232 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter fontFamily */
+
+/* 234 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 236 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 238 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 240 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 242 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 244 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const ISimpleDOMText_MIDL_TYPE_FORMAT_STRING ISimpleDOMText__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
+/* 10 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 12 */ NdrFcShort( 0x2 ), /* 2 */
+/* 14 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 20 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 22 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 24 */ NdrFcShort( 0x8 ), /* 8 */
+/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 30 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 32 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x4 ), /* 4 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
+/* 42 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 44 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ }
+
+ };
+
+
+
+/* Standard interface: __MIDL_itf_ISimpleDOMText_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: ISimpleDOMText, ver. 0.0,
+ GUID={0x4e747be5,0x2052,0x4265,{0x8a,0xf0,0x8e,0xca,0xd7,0xaa,0xd1,0xc0}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short ISimpleDOMText_FormatStringOffsetTable[] =
+ {
+ 0,
+ 36,
+ 102,
+ 168,
+ 210
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO ISimpleDOMText_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ISimpleDOMText__MIDL_ProcFormatString.Format,
+ &ISimpleDOMText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO ISimpleDOMText_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ISimpleDOMText__MIDL_ProcFormatString.Format,
+ &ISimpleDOMText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(8) _ISimpleDOMTextProxyVtbl =
+{
+ &ISimpleDOMText_ProxyInfo,
+ &IID_ISimpleDOMText,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMText::get_domText */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMText::get_clippedSubstringBounds */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMText::get_unclippedSubstringBounds */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMText::scrollToSubstring */ ,
+ (void *) (INT_PTR) -1 /* ISimpleDOMText::get_fontFamily */
+};
+
+const CInterfaceStubVtbl _ISimpleDOMTextStubVtbl =
+{
+ &IID_ISimpleDOMText,
+ &ISimpleDOMText_ServerInfo,
+ 8,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ ISimpleDOMText__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x801026e, /* MIDL Version 8.1.622 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _ISimpleDOMText_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_ISimpleDOMTextProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _ISimpleDOMText_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_ISimpleDOMTextStubVtbl,
+ 0
+};
+
+PCInterfaceName const _ISimpleDOMText_InterfaceNamesList[] =
+{
+ "ISimpleDOMText",
+ 0
+};
+
+
+#define _ISimpleDOMText_CHECK_IID(n) IID_GENERIC_CHECK_IID( _ISimpleDOMText, pIID, n)
+
+int __stdcall _ISimpleDOMText_IID_Lookup( const IID * pIID, int * pIndex )
+{
+
+ if(!_ISimpleDOMText_CHECK_IID(0))
+ {
+ *pIndex = 0;
+ return 1;
+ }
+
+ return 0;
+}
+
+const ExtendedProxyFileInfo ISimpleDOMText_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _ISimpleDOMText_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _ISimpleDOMText_StubVtblList,
+ (const PCInterfaceName * ) & _ISimpleDOMText_InterfaceNamesList,
+ 0, /* no delegation */
+ & _ISimpleDOMText_IID_Lookup,
+ 1,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64) && !defined(_ARM_) */
+
diff --git a/chromium/ui/accessibility/ax_tree.cc b/chromium/ui/accessibility/ax_tree.cc
index 81584ab35bf..f8827172a6a 100644
--- a/chromium/ui/accessibility/ax_tree.cc
+++ b/chromium/ui/accessibility/ax_tree.cc
@@ -231,37 +231,6 @@ gfx::RectF AXTree::RelativeToTreeBounds(const AXNode* node,
bounds.Offset(-scroll_x, -scroll_y);
}
- // If this is the root web area, make sure we clip the node to fit.
- if (container->data().role == ui::AX_ROLE_ROOT_WEB_AREA) {
- gfx::RectF clipped = bounds;
- clipped.Intersect(container_bounds);
- if (!clipped.IsEmpty()) {
- // We can simply clip it to the container.
- bounds = clipped;
- // No need to update |offscreen| if it is set, because it should be
- // false by default.
- } else {
- // Totally offscreen. Find the nearest edge or corner.
- // Make the minimum dimension 1 instead of 0.
- if (bounds.x() >= container_bounds.width()) {
- bounds.set_x(container_bounds.width() - 1);
- bounds.set_width(1);
- } else if (bounds.x() + bounds.width() <= 0) {
- bounds.set_x(0);
- bounds.set_width(1);
- }
- if (bounds.y() >= container_bounds.height()) {
- bounds.set_y(container_bounds.height() - 1);
- bounds.set_height(1);
- } else if (bounds.y() + bounds.height() <= 0) {
- bounds.set_y(0);
- bounds.set_height(1);
- }
- if (offscreen != nullptr)
- *offscreen |= true;
- }
- }
-
node = container;
}
diff --git a/chromium/ui/accessibility/ax_tree_unittest.cc b/chromium/ui/accessibility/ax_tree_unittest.cc
index 8bf0d1f0390..d637ef0fd7b 100644
--- a/chromium/ui/accessibility/ax_tree_unittest.cc
+++ b/chromium/ui/accessibility/ax_tree_unittest.cc
@@ -947,7 +947,7 @@ TEST(AXTreeTest, GetBoundsEmptyBoundsInheritsFromParent) {
EXPECT_EQ("(300, 200) size (100 x 100)", GetBoundsAsString(tree, 3));
}
-TEST(AXTreeTest, GetBoundsCropsChildToRoot) {
+TEST(AXTreeTest, DISABLED_GetBoundsCropsChildToRoot) {
AXTreeUpdate tree_update;
tree_update.root_id = 1;
tree_update.nodes.resize(5);
diff --git a/chromium/ui/strings/translations/ui_strings_da.xtb b/chromium/ui/strings/translations/ui_strings_da.xtb
index 40a757ddf47..de456a37499 100644
--- a/chromium/ui/strings/translations/ui_strings_da.xtb
+++ b/chromium/ui/strings/translations/ui_strings_da.xtb
@@ -133,7 +133,7 @@
<translation id="7781829728241885113">I går</translation>
<translation id="7814458197256864873">&amp;Kopier</translation>
<translation id="7907591526440419938">Ã…bn fil</translation>
-<translation id="8106081041558092062">{HOURS,plural, =1{for 1 time siden}one{for # timer siden}other{for # timer siden}}</translation>
+<translation id="8106081041558092062">{HOURS,plural, =1{for 1 time siden}one{for # time siden}other{for # timer siden}}</translation>
<translation id="8131263257437993507">{SECONDS,plural, =1{1 sek. tilbage}one{# sek. tilbage}other{# sek. tilbage}}</translation>
<translation id="815598010540052116">Scroll Down</translation>
<translation id="8179976553408161302">Enter</translation>
diff --git a/chromium/ui/strings/translations/ui_strings_sw.xtb b/chromium/ui/strings/translations/ui_strings_sw.xtb
index ed95069c0e1..59512484c40 100644
--- a/chromium/ui/strings/translations/ui_strings_sw.xtb
+++ b/chromium/ui/strings/translations/ui_strings_sw.xtb
@@ -30,7 +30,7 @@
<translation id="2168039046890040389">Ukurasa mmoja juu</translation>
<translation id="2190355936436201913">(tupu)</translation>
<translation id="219905428774326614">Kifungua Programu, programu zote</translation>
-<translation id="2289052229480071835">Gonga viashirio vya kugusa kwenye skrini yako.</translation>
+<translation id="2289052229480071835">Gusa viashirio vya kugusa kwenye skrini yako.</translation>
<translation id="2295140143284145483">Utafiti</translation>
<translation id="2297836609126180313"><ph name="QUANTITY" /> TB/s</translation>
<translation id="24452542372838207">Panua arifa</translation>
@@ -74,7 +74,7 @@
<translation id="4968171027979920686">{SECONDS,plural, =1{Sekunde 1}other{Sekunde #}}</translation>
<translation id="4971687151119236543">Wimbo wa Awali wa Media</translation>
<translation id="4999762576397546063">Ctrl+<ph name="KEY_COMBO_NAME" /></translation>
-<translation id="5046499563572181734">Gonga hapa</translation>
+<translation id="5046499563572181734">Gusa hapa</translation>
<translation id="5076340679995252485">&amp;Bandika</translation>
<translation id="5120799197269191491">Utafutaji+<ph name="KEY_COMBO_NAME" /></translation>
<translation id="520299402983819650">PB <ph name="QUANTITY" /></translation>
diff --git a/chromium/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_camera.js b/chromium/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_camera.js
index 8aa5711083a..3cf81741476 100644
--- a/chromium/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_camera.js
+++ b/chromium/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_camera.js
@@ -84,6 +84,12 @@ Polymer({
this.stopCamera();
},
+ /** Only focuses the button if it's not disabled. */
+ focusTakePhotoButton: function() {
+ if (this.cameraOnline_)
+ this.$.takePhoto.focus();
+ },
+
/**
* Performs photo capture from the live camera stream. A 'photo-taken' event
* will be fired as soon as captured photo is available, with the
diff --git a/chromium/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_picture_list.js b/chromium/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_picture_list.js
index 285e937dbc6..04e3c806486 100644
--- a/chromium/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_picture_list.js
+++ b/chromium/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_picture_list.js
@@ -230,10 +230,15 @@ Polymer({
this.cameraSelected_ =
selected.dataset.type == CrPicture.SelectionTypes.CAMERA;
this.selectedItem = selected;
- if (activate && selected.dataset.type == CrPicture.SelectionTypes.OLD)
- this.fire('discard-image');
- else if (activate || selected.dataset.type != CrPicture.SelectionTypes.FILE)
+
+ if (selected.dataset.type == CrPicture.SelectionTypes.OLD ||
+ selected.dataset.type == CrPicture.SelectionTypes.CAMERA) {
+ if (activate)
+ this.fire('focus-action', selected);
+ } else if (
+ activate || selected.dataset.type != CrPicture.SelectionTypes.FILE) {
this.fire('image-activate', selected);
+ }
},
/**
@@ -242,8 +247,9 @@ Polymer({
*/
onIronActivate_: function(event) {
var type = event.detail.item.dataset.type;
- // When clicking on the 'old' (current) image, do not activate (discard) it.
- var activate = type != CrPicture.SelectionTypes.OLD;
+ // Don't change focus when activating the camera or current image via mouse.
+ var activate = type != CrPicture.SelectionTypes.OLD &&
+ type != CrPicture.SelectionTypes.CAMERA;
this.selectImage_(event.detail.item, activate);
},
diff --git a/chromium/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_picture_pane.js b/chromium/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_picture_pane.js
index d8a830cfd35..38b64b6bf64 100644
--- a/chromium/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_picture_pane.js
+++ b/chromium/ui/webui/resources/cr_elements/chromeos/cr_picture/cr_picture_pane.js
@@ -63,11 +63,19 @@ Polymer({
camera.takePhoto();
},
+ /** Tells the pane to focus the main action button. */
+ focusActionButton: function() {
+ if (this.showDiscard_())
+ this.$.discardImage.focus();
+ else if (this.cameraActive_)
+ this.$$('#camera').focusTakePhotoButton();
+ },
+
/**
* @return {boolean}
* @private
*/
- getCameraActive_() {
+ getCameraActive_: function() {
return this.cameraPresent &&
this.imageType == CrPicture.SelectionTypes.CAMERA;
},
diff --git a/chromium/url/origin.cc b/chromium/url/origin.cc
index 66bd23d15b7..384c5c75457 100644
--- a/chromium/url/origin.cc
+++ b/chromium/url/origin.cc
@@ -36,6 +36,10 @@ GURL AddSuboriginToUrl(const GURL& url, const std::string& suborigin) {
Origin::Origin() : unique_(true), suborigin_(std::string()) {}
+Origin Origin::Create(const GURL& url) {
+ return Origin(url);
+}
+
Origin::Origin(const GURL& url) : unique_(true), suborigin_(std::string()) {
if (!url.is_valid() || (!url.IsStandard() && !url.SchemeIsBlob()))
return;
diff --git a/chromium/url/origin.h b/chromium/url/origin.h
index 346b197b4a9..a7a62dc1695 100644
--- a/chromium/url/origin.h
+++ b/chromium/url/origin.h
@@ -87,6 +87,9 @@ class URL_EXPORT Origin {
// 2. 'filesystem' URLs behave as 'blob' URLs (that is, the origin is parsed
// out of everything in the URL which follows the scheme).
// 3. 'file' URLs all parse as ("file", "", 0).
+ static Origin Create(const GURL& url);
+
+ // TODO(dcheng): Deprecated. Please use the factory helper above.
explicit Origin(const GURL& url);
// Copyable and movable.
diff --git a/chromium/v8/AUTHORS b/chromium/v8/AUTHORS
index 6ac0491aba0..be50e6e4996 100644
--- a/chromium/v8/AUTHORS
+++ b/chromium/v8/AUTHORS
@@ -43,7 +43,7 @@ Alexis Campailla <alexis@janeasystems.com>
Andreas Anyuru <andreas.anyuru@gmail.com>
Andrew Paprocki <andrew@ishiboo.com>
Andrei Kashcha <anvaka@gmail.com>
-Anna Henningsen <addaleax@gmail.com>
+Anna Henningsen <anna@addaleax.net>
Bangfu Tao <bangfu.tao@samsung.com>
Ben Noordhuis <info@bnoordhuis.nl>
Benjamin Tan <demoneaux@gmail.com>
diff --git a/chromium/v8/BUILD.gn b/chromium/v8/BUILD.gn
index e5aecd31afe..d7d559fba47 100644
--- a/chromium/v8/BUILD.gn
+++ b/chromium/v8/BUILD.gn
@@ -56,7 +56,7 @@ declare_args() {
v8_enable_vtunejit = false
# Sets -dENABLE_HANDLE_ZAPPING.
- v8_enable_handle_zapping = true
+ v8_enable_handle_zapping = is_debug
# Enable slow dchecks.
v8_enable_slow_dchecks = false
@@ -84,7 +84,7 @@ declare_args() {
v8_enable_trace_ignition = false
# Sets -dV8_CONCURRENT_MARKING
- v8_enable_concurrent_marking = true
+ v8_enable_concurrent_marking = false
# Sets -dV8_CSA_WRITE_BARRIER
v8_enable_csa_write_barrier = true
@@ -838,7 +838,6 @@ action("v8_dump_build_config") {
is_gcov_coverage = v8_code_coverage && !is_clang
args = [
rebase_path("$root_out_dir/v8_build_config.json", root_build_dir),
- "current_cpu=\"$current_cpu\"",
"dcheck_always_on=$dcheck_always_on",
"is_asan=$is_asan",
"is_cfi=$is_cfi",
@@ -849,7 +848,6 @@ action("v8_dump_build_config") {
"is_tsan=$is_tsan",
"is_ubsan_vptr=$is_ubsan_vptr",
"target_cpu=\"$target_cpu\"",
- "v8_current_cpu=\"$v8_current_cpu\"",
"v8_enable_i18n_support=$v8_enable_i18n_support",
"v8_target_cpu=\"$v8_target_cpu\"",
"v8_use_snapshot=$v8_use_snapshot",
diff --git a/chromium/v8/DEPS b/chromium/v8/DEPS
index 2fb83e97861..b675dd830ef 100644
--- a/chromium/v8/DEPS
+++ b/chromium/v8/DEPS
@@ -12,7 +12,7 @@ deps = {
'v8/tools/gyp':
Var('chromium_url') + '/external/gyp.git' + '@' + 'd61a9397e668fa9843c4aa7da9e79460fe590bfb',
'v8/third_party/icu':
- Var('chromium_url') + '/chromium/deps/icu.git' + '@' + '08cb956852a5ccdba7f9c941728bb833529ba3c6',
+ Var('chromium_url') + '/chromium/deps/icu.git' + '@' + '21d33b1a09a77f033478ea4ffffb61e6970f83bd',
'v8/third_party/instrumented_libraries':
Var('chromium_url') + '/chromium/src/third_party/instrumented_libraries.git' + '@' + '644afd349826cb68204226a16c38bde13abe9c3c',
'v8/buildtools':
diff --git a/chromium/v8/Makefile b/chromium/v8/Makefile
index eb146ac2447..167ebf8c082 100644
--- a/chromium/v8/Makefile
+++ b/chromium/v8/Makefile
@@ -338,32 +338,32 @@ $(ANDROID_BUILDS): $(GYPFILES) $(ENVFILE) Makefile.android
# Test targets.
check: all
- @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \
+ @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch=$(shell echo $(DEFAULT_ARCHES) | sed -e 's/ /,/g') \
$(TESTFLAGS)
$(addsuffix .check,$(MODES)): $$(basename $$@)
- @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \
+ @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--mode=$(basename $@) $(TESTFLAGS)
$(addsuffix .check,$(ARCHES)): $$(basename $$@)
- @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \
+ @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch=$(basename $@) $(TESTFLAGS)
$(CHECKS): $$(basename $$@)
- @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \
+ @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch-and-mode=$(basename $@) $(TESTFLAGS)
$(addsuffix .quickcheck,$(MODES)): $$(basename $$@)
- @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \
+ @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--mode=$(basename $@) $(TESTFLAGS) --quickcheck
$(addsuffix .quickcheck,$(ARCHES)): $$(basename $$@)
- @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \
+ @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch=$(basename $@) $(TESTFLAGS) --quickcheck
$(QUICKCHECKS): $$(basename $$@)
- @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \
+ @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch-and-mode=$(basename $@) $(TESTFLAGS) --quickcheck
$(addsuffix .sync, $(ANDROID_BUILDS)): $$(basename $$@)
@@ -371,7 +371,7 @@ $(addsuffix .sync, $(ANDROID_BUILDS)): $$(basename $$@)
$(shell pwd) $(ANDROID_V8)
$(addsuffix .check, $(ANDROID_BUILDS)): $$(basename $$@).sync
- @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \
+ @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch-and-mode=$(basename $@) \
--timeout=600 \
--command-prefix="tools/android-run.py" $(TESTFLAGS)
@@ -380,7 +380,7 @@ $(addsuffix .check, $(ANDROID_ARCHES)): \
$(addprefix $$(basename $$@).,$(MODES)).check
native.check: native
- @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR)/native \
+ @gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR)/native \
--arch-and-mode=. $(TESTFLAGS)
SUPERFASTTESTMODES = ia32.release
@@ -391,18 +391,18 @@ COMMA = ,
EMPTY =
SPACE = $(EMPTY) $(EMPTY)
quickcheck: $(subst $(COMMA),$(SPACE),$(FASTCOMPILEMODES))
- tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \
+ gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch-and-mode=$(SUPERFASTTESTMODES) $(TESTFLAGS) --quickcheck \
--download-data mozilla webkit
- tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \
+ gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch-and-mode=$(FASTTESTMODES) $(TESTFLAGS) --quickcheck
qc: quickcheck
turbocheck: $(subst $(COMMA),$(SPACE),$(FASTCOMPILEMODES))
- tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \
+ gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch-and-mode=$(SUPERFASTTESTMODES) $(TESTFLAGS) \
--quickcheck --variants=turbofan --download-data mozilla webkit
- tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \
+ gypfiles/run-tests-legacy.py $(TESTJOBS) --outdir=$(OUTDIR) \
--arch-and-mode=$(FASTTESTMODES) $(TESTFLAGS) \
--quickcheck --variants=turbofan
tc: turbocheck
diff --git a/chromium/v8/gni/isolate.gni b/chromium/v8/gni/isolate.gni
index 4b0ffdc413e..4bdf0c0fad2 100644
--- a/chromium/v8/gni/isolate.gni
+++ b/chromium/v8/gni/isolate.gni
@@ -156,8 +156,6 @@ template("v8_isolate_run") {
"--config-variable",
"icu_use_data_file_flag=$icu_use_data_file_flag",
"--config-variable",
- "is_gn=1",
- "--config-variable",
"msan=$msan",
"--config-variable",
"tsan=$tsan",
diff --git a/chromium/v8/gypfiles/features.gypi b/chromium/v8/gypfiles/features.gypi
index 964e81f46cc..1d3f67daee3 100644
--- a/chromium/v8/gypfiles/features.gypi
+++ b/chromium/v8/gypfiles/features.gypi
@@ -85,7 +85,7 @@
'v8_check_microtasks_scopes_consistency%': 'false',
# Enable concurrent marking.
- 'v8_enable_concurrent_marking%': 1,
+ 'v8_enable_concurrent_marking%': 0,
# Controls the threshold for on-heap/off-heap Typed Arrays.
'v8_typed_array_max_size_in_heap%': 64,
@@ -158,7 +158,7 @@
}, # Debug
'Release': {
'variables': {
- 'v8_enable_handle_zapping%': 1,
+ 'v8_enable_handle_zapping%': 0,
},
'conditions': [
['v8_enable_handle_zapping==1', {
diff --git a/chromium/v8/gypfiles/isolate.gypi b/chromium/v8/gypfiles/isolate.gypi
index 11b05705307..149818c8d06 100644
--- a/chromium/v8/gypfiles/isolate.gypi
+++ b/chromium/v8/gypfiles/isolate.gypi
@@ -74,7 +74,6 @@
'--config-variable', 'gcmole=<(gcmole)',
'--config-variable', 'has_valgrind=<(has_valgrind)',
'--config-variable', 'icu_use_data_file_flag=<(icu_use_data_file_flag)',
- '--config-variable', 'is_gn=0',
'--config-variable', 'msan=<(msan)',
'--config-variable', 'tsan=<(tsan)',
'--config-variable', 'coverage=<(coverage)',
diff --git a/chromium/v8/gypfiles/run-tests-legacy.py b/chromium/v8/gypfiles/run-tests-legacy.py
new file mode 100755
index 00000000000..f1ea478c62d
--- /dev/null
+++ b/chromium/v8/gypfiles/run-tests-legacy.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python
+# Copyright 2017 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.
+
+"""
+Legacy test-runner wrapper supporting a product of multiple architectures and
+modes.
+"""
+
+import argparse
+import itertools
+from os.path import abspath, dirname, join
+import subprocess
+import sys
+
+BASE_DIR = dirname(dirname(abspath(__file__)))
+RUN_TESTS = join(BASE_DIR, 'tools', 'run-tests.py')
+
+def main():
+ parser = argparse.ArgumentParser(description='Legacy test-runner wrapper')
+ parser.add_argument(
+ '--arch', help='Comma-separated architectures to run tests on')
+ parser.add_argument(
+ '--mode', help='Comma-separated modes to run tests on')
+ parser.add_argument(
+ '--arch-and-mode',
+ help='Architecture and mode in the format \'arch.mode\'',
+ )
+
+ args, remaining_args = parser.parse_known_args(sys.argv)
+ if (args.arch or args.mode) and args.arch_and_mode:
+ parser.error('The flags --arch-and-mode and --arch/--mode are exclusive.')
+ arch = (args.arch or 'ia32,x64,arm').split(',')
+ mode = (args.mode or 'release,debug').split(',')
+ if args.arch_and_mode:
+ arch_and_mode = map(
+ lambda am: am.split('.'),
+ args.arch_and_mode.split(','))
+ arch = map(lambda am: am[0], arch_and_mode)
+ mode = map(lambda am: am[1], arch_and_mode)
+
+ ret_code = 0
+ for a, m in itertools.product(arch, mode):
+ ret_code |= subprocess.check_call(
+ [RUN_TESTS] + remaining_args[1:] + ['--arch', a, '--mode', m])
+ return ret_code
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/chromium/v8/gypfiles/toolchain.gypi b/chromium/v8/gypfiles/toolchain.gypi
index 5733d2d54ca..80844cecc67 100644
--- a/chromium/v8/gypfiles/toolchain.gypi
+++ b/chromium/v8/gypfiles/toolchain.gypi
@@ -32,6 +32,7 @@
'msvs_use_common_release': 0,
'clang%': 0,
'asan%': 0,
+ 'cfi_vptr%': 0,
'lsan%': 0,
'msan%': 0,
'tsan%': 0,
diff --git a/chromium/v8/include/v8-inspector.h b/chromium/v8/include/v8-inspector.h
index 43bf3b4f60b..d0bb9b47fe4 100644
--- a/chromium/v8/include/v8-inspector.h
+++ b/chromium/v8/include/v8-inspector.h
@@ -211,6 +211,8 @@ class V8_EXPORT V8InspectorClient {
// TODO(dgozman): this was added to support service worker shadow page. We
// should not connect at all.
virtual bool canExecuteScripts(int contextGroupId) { return true; }
+
+ virtual void maxAsyncCallStackDepthChanged(int depth) {}
};
class V8_EXPORT V8Inspector {
diff --git a/chromium/v8/include/v8-version.h b/chromium/v8/include/v8-version.h
index 4a42e6b48d7..46bb92f6506 100644
--- a/chromium/v8/include/v8-version.h
+++ b/chromium/v8/include/v8-version.h
@@ -11,7 +11,7 @@
#define V8_MAJOR_VERSION 6
#define V8_MINOR_VERSION 3
#define V8_BUILD_NUMBER 292
-#define V8_PATCH_LEVEL 0
+#define V8_PATCH_LEVEL 46
// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
diff --git a/chromium/v8/include/v8.h b/chromium/v8/include/v8.h
index 5d6b04ad1a4..f1001533649 100644
--- a/chromium/v8/include/v8.h
+++ b/chromium/v8/include/v8.h
@@ -7976,9 +7976,8 @@ class V8_EXPORT V8 {
* This function removes callback which was installed by
* AddGCPrologueCallback function.
*/
- V8_INLINE static V8_DEPRECATED(
- "Use isolate version",
- void RemoveGCPrologueCallback(GCCallback callback));
+ static V8_DEPRECATED("Use isolate version",
+ void RemoveGCPrologueCallback(GCCallback callback));
/**
* Enables the host application to receive a notification after a
@@ -7999,9 +7998,8 @@ class V8_EXPORT V8 {
* This function removes callback which was installed by
* AddGCEpilogueCallback function.
*/
- V8_INLINE static V8_DEPRECATED(
- "Use isolate version",
- void RemoveGCEpilogueCallback(GCCallback callback));
+ static V8_DEPRECATED("Use isolate version",
+ void RemoveGCEpilogueCallback(GCCallback callback));
/**
* Initializes V8. This function needs to be called before the first Isolate
@@ -10385,19 +10383,6 @@ void V8::SetFatalErrorHandler(FatalErrorCallback callback) {
isolate->SetFatalErrorHandler(callback);
}
-void V8::RemoveGCPrologueCallback(GCCallback callback) {
- Isolate* isolate = Isolate::GetCurrent();
- isolate->RemoveGCPrologueCallback(
- reinterpret_cast<Isolate::GCCallback>(callback));
-}
-
-
-void V8::RemoveGCEpilogueCallback(GCCallback callback) {
- Isolate* isolate = Isolate::GetCurrent();
- isolate->RemoveGCEpilogueCallback(
- reinterpret_cast<Isolate::GCCallback>(callback));
-}
-
void V8::TerminateExecution(Isolate* isolate) { isolate->TerminateExecution(); }
diff --git a/chromium/v8/src/api-natives.cc b/chromium/v8/src/api-natives.cc
index a685d4e0fda..35759459c69 100644
--- a/chromium/v8/src/api-natives.cc
+++ b/chromium/v8/src/api-natives.cc
@@ -556,7 +556,7 @@ MaybeHandle<JSObject> ApiNatives::InstantiateRemoteObject(
Handle<Map> object_map = isolate->factory()->NewMap(
JS_SPECIAL_API_OBJECT_TYPE,
JSObject::kHeaderSize + data->embedder_field_count() * kPointerSize,
- HOLEY_SMI_ELEMENTS);
+ TERMINAL_FAST_ELEMENTS_KIND);
object_map->SetConstructor(*constructor);
object_map->set_is_access_check_needed(true);
object_map->set_may_have_interesting_symbols(true);
@@ -692,8 +692,8 @@ Handle<JSFunction> ApiNatives::CreateApiFunction(
break;
}
- Handle<Map> map =
- isolate->factory()->NewMap(type, instance_size, HOLEY_SMI_ELEMENTS);
+ Handle<Map> map = isolate->factory()->NewMap(type, instance_size,
+ TERMINAL_FAST_ELEMENTS_KIND);
JSFunction::SetInitialMap(result, map, Handle<JSObject>::cast(prototype));
// Mark as undetectable if needed.
diff --git a/chromium/v8/src/api.cc b/chromium/v8/src/api.cc
index 9cbe3462a5e..300b88f70eb 100644
--- a/chromium/v8/src/api.cc
+++ b/chromium/v8/src/api.cc
@@ -8585,6 +8585,18 @@ void V8::AddGCEpilogueCallback(v8::GCCallback callback, GCType gc_type) {
data, gc_type);
}
+void V8::RemoveGCPrologueCallback(GCCallback callback) {
+ void* data = reinterpret_cast<void*>(callback);
+ Isolate::GetCurrent()->RemoveGCPrologueCallback(CallGCCallbackWithoutIsolate,
+ data);
+}
+
+void V8::RemoveGCEpilogueCallback(GCCallback callback) {
+ void* data = reinterpret_cast<void*>(callback);
+ Isolate::GetCurrent()->RemoveGCEpilogueCallback(CallGCCallbackWithoutIsolate,
+ data);
+}
+
void Isolate::SetEmbedderHeapTracer(EmbedderHeapTracer* tracer) {
i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this);
isolate->heap()->SetEmbedderHeapTracer(tracer);
diff --git a/chromium/v8/src/arm/assembler-arm.cc b/chromium/v8/src/arm/assembler-arm.cc
index 9799950728d..c9aa9ef015c 100644
--- a/chromium/v8/src/arm/assembler-arm.cc
+++ b/chromium/v8/src/arm/assembler-arm.cc
@@ -2131,6 +2131,8 @@ void Assembler::strd(Register src1, Register src2,
void Assembler::ldrex(Register dst, Register src, Condition cond) {
// Instruction details available in ARM DDI 0406C.b, A8.8.75.
// cond(31-28) | 00011001(27-20) | Rn(19-16) | Rt(15-12) | 111110011111(11-0)
+ DCHECK(dst != pc);
+ DCHECK(src != pc);
emit(cond | B24 | B23 | B20 | src.code() * B16 | dst.code() * B12 | 0xf9f);
}
@@ -2139,6 +2141,11 @@ void Assembler::strex(Register src1, Register src2, Register dst,
// Instruction details available in ARM DDI 0406C.b, A8.8.212.
// cond(31-28) | 00011000(27-20) | Rn(19-16) | Rd(15-12) | 11111001(11-4) |
// Rt(3-0)
+ DCHECK(dst != pc);
+ DCHECK(src1 != pc);
+ DCHECK(src2 != pc);
+ DCHECK(src1 != dst);
+ DCHECK(src1 != src2);
emit(cond | B24 | B23 | dst.code() * B16 | src1.code() * B12 | 0xf9 * B4 |
src2.code());
}
@@ -2146,6 +2153,8 @@ void Assembler::strex(Register src1, Register src2, Register dst,
void Assembler::ldrexb(Register dst, Register src, Condition cond) {
// Instruction details available in ARM DDI 0406C.b, A8.8.76.
// cond(31-28) | 00011101(27-20) | Rn(19-16) | Rt(15-12) | 111110011111(11-0)
+ DCHECK(dst != pc);
+ DCHECK(src != pc);
emit(cond | B24 | B23 | B22 | B20 | src.code() * B16 | dst.code() * B12 |
0xf9f);
}
@@ -2155,6 +2164,11 @@ void Assembler::strexb(Register src1, Register src2, Register dst,
// Instruction details available in ARM DDI 0406C.b, A8.8.213.
// cond(31-28) | 00011100(27-20) | Rn(19-16) | Rd(15-12) | 11111001(11-4) |
// Rt(3-0)
+ DCHECK(dst != pc);
+ DCHECK(src1 != pc);
+ DCHECK(src2 != pc);
+ DCHECK(src1 != dst);
+ DCHECK(src1 != src2);
emit(cond | B24 | B23 | B22 | dst.code() * B16 | src1.code() * B12 |
0xf9 * B4 | src2.code());
}
@@ -2162,6 +2176,8 @@ void Assembler::strexb(Register src1, Register src2, Register dst,
void Assembler::ldrexh(Register dst, Register src, Condition cond) {
// Instruction details available in ARM DDI 0406C.b, A8.8.78.
// cond(31-28) | 00011111(27-20) | Rn(19-16) | Rt(15-12) | 111110011111(11-0)
+ DCHECK(dst != pc);
+ DCHECK(src != pc);
emit(cond | B24 | B23 | B22 | B21 | B20 | src.code() * B16 |
dst.code() * B12 | 0xf9f);
}
@@ -2171,6 +2187,11 @@ void Assembler::strexh(Register src1, Register src2, Register dst,
// Instruction details available in ARM DDI 0406C.b, A8.8.215.
// cond(31-28) | 00011110(27-20) | Rn(19-16) | Rd(15-12) | 11111001(11-4) |
// Rt(3-0)
+ DCHECK(dst != pc);
+ DCHECK(src1 != pc);
+ DCHECK(src2 != pc);
+ DCHECK(src1 != dst);
+ DCHECK(src1 != src2);
emit(cond | B24 | B23 | B22 | B21 | dst.code() * B16 | src1.code() * B12 |
0xf9 * B4 | src2.code());
}
diff --git a/chromium/v8/src/arm/simulator-arm.cc b/chromium/v8/src/arm/simulator-arm.cc
index c5b9b00adac..f83d6f2a2af 100644
--- a/chromium/v8/src/arm/simulator-arm.cc
+++ b/chromium/v8/src/arm/simulator-arm.cc
@@ -2176,6 +2176,8 @@ void Simulator::DecodeType01(Instruction* instr) {
int rd = instr->RdValue();
int rt = instr->RmValue();
int rn = instr->RnValue();
+ DCHECK_NE(rd, rn);
+ DCHECK_NE(rd, rt);
int32_t addr = get_register(rn);
switch (instr->Bits(22, 21)) {
case 0: {
diff --git a/chromium/v8/src/asmjs/asm-js.cc b/chromium/v8/src/asmjs/asm-js.cc
index 583163e4086..97da2c2af2f 100644
--- a/chromium/v8/src/asmjs/asm-js.cc
+++ b/chromium/v8/src/asmjs/asm-js.cc
@@ -371,6 +371,7 @@ MaybeHandle<Object> AsmJs::InstantiateAsmWasm(Isolate* isolate,
ReportInstantiationFailure(script, position, "Requires heap buffer");
return MaybeHandle<Object>();
}
+ memory->set_is_growable(false);
size_t size = NumberToSize(memory->byte_length());
// TODO(mstarzinger): We currently only limit byte length of the buffer to
// be a multiple of 8, we should enforce the stricter spec limits here.
diff --git a/chromium/v8/src/asmjs/asm-parser.cc b/chromium/v8/src/asmjs/asm-parser.cc
index 033e9bc3b35..d0eb1050f65 100644
--- a/chromium/v8/src/asmjs/asm-parser.cc
+++ b/chromium/v8/src/asmjs/asm-parser.cc
@@ -14,6 +14,7 @@
#include "src/base/optional.h"
#include "src/flags.h"
#include "src/parsing/scanner.h"
+#include "src/wasm/wasm-limits.h"
#include "src/wasm/wasm-opcodes.h"
namespace v8 {
@@ -781,6 +782,11 @@ void AsmJsParser::ValidateFunction() {
current_function_builder_->AddLocal(kWasmI32);
}
+ // Check against limit on number of local variables.
+ if (locals.size() + function_temp_locals_used_ > kV8MaxWasmFunctionLocals) {
+ FAIL("Number of local variables exceeds internal limit");
+ }
+
// End function
current_function_builder_->Emit(kExprEnd);
@@ -866,6 +872,7 @@ void AsmJsParser::ValidateFunctionParams(ZoneVector<AsmType*>* params) {
// 6.4 ValidateFunction - locals
void AsmJsParser::ValidateFunctionLocals(size_t param_count,
ZoneVector<ValueType>* locals) {
+ DCHECK(locals->empty());
// Local Variables.
while (Peek(TOK(var))) {
scanner_.EnterLocalScope();
diff --git a/chromium/v8/src/assembler.cc b/chromium/v8/src/assembler.cc
index 8fb315234fc..b36c4941294 100644
--- a/chromium/v8/src/assembler.cc
+++ b/chromium/v8/src/assembler.cc
@@ -52,6 +52,7 @@
#include "src/debug/debug.h"
#include "src/deoptimizer.h"
#include "src/disassembler.h"
+#include "src/elements.h"
#include "src/execution.h"
#include "src/ic/ic.h"
#include "src/ic/stub-cache.h"
@@ -1414,6 +1415,19 @@ ExternalReference ExternalReference::get_or_create_hash_raw(Isolate* isolate) {
return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f)));
}
+ExternalReference
+ExternalReference::copy_fast_number_jsarray_elements_to_typed_array(
+ Isolate* isolate) {
+ return ExternalReference(Redirect(
+ isolate, FUNCTION_ADDR(CopyFastNumberJSArrayElementsToTypedArray)));
+}
+
+ExternalReference ExternalReference::copy_typed_array_elements_to_typed_array(
+ Isolate* isolate) {
+ return ExternalReference(
+ Redirect(isolate, FUNCTION_ADDR(CopyTypedArrayElementsToTypedArray)));
+}
+
ExternalReference ExternalReference::try_internalize_string_function(
Isolate* isolate) {
return ExternalReference(Redirect(
diff --git a/chromium/v8/src/assembler.h b/chromium/v8/src/assembler.h
index 2eae2d543f5..2ebe88d534d 100644
--- a/chromium/v8/src/assembler.h
+++ b/chromium/v8/src/assembler.h
@@ -985,6 +985,11 @@ class ExternalReference BASE_EMBEDDED {
static ExternalReference get_or_create_hash_raw(Isolate* isolate);
+ static ExternalReference copy_fast_number_jsarray_elements_to_typed_array(
+ Isolate* isolate);
+ static ExternalReference copy_typed_array_elements_to_typed_array(
+ Isolate* isolate);
+
static ExternalReference page_flags(Page* page);
static ExternalReference ForDeoptEntry(Address entry);
diff --git a/chromium/v8/src/ast/scopes.cc b/chromium/v8/src/ast/scopes.cc
index 189c22f0284..07eacd3fe97 100644
--- a/chromium/v8/src/ast/scopes.cc
+++ b/chromium/v8/src/ast/scopes.cc
@@ -1741,8 +1741,8 @@ void Scope::Print(int n) {
if (is_declaration_scope() && AsDeclarationScope()->calls_sloppy_eval()) {
Indent(n1, "// scope calls sloppy 'eval'\n");
}
- if (is_declaration_scope() && AsDeclarationScope()->uses_super_property()) {
- Indent(n1, "// scope uses 'super' property\n");
+ if (is_declaration_scope() && AsDeclarationScope()->NeedsHomeObject()) {
+ Indent(n1, "// scope needs home object\n");
}
if (inner_scope_calls_eval_) Indent(n1, "// inner scope calls 'eval'\n");
if (is_declaration_scope()) {
diff --git a/chromium/v8/src/ast/scopes.h b/chromium/v8/src/ast/scopes.h
index 9bd24ba1cce..fe155080276 100644
--- a/chromium/v8/src/ast/scopes.h
+++ b/chromium/v8/src/ast/scopes.h
@@ -666,14 +666,13 @@ class V8_EXPORT_PRIVATE DeclarationScope : public Scope {
// Inform the scope that the corresponding code uses "super".
void RecordSuperPropertyUsage() {
- DCHECK((IsConciseMethod(function_kind()) ||
- IsAccessorFunction(function_kind()) ||
- IsClassConstructor(function_kind())));
+ DCHECK(IsConciseMethod(function_kind()) ||
+ IsAccessorFunction(function_kind()) ||
+ IsClassConstructor(function_kind()));
scope_uses_super_property_ = true;
}
- // Does this scope access "super" property (super.foo).
- bool uses_super_property() const { return scope_uses_super_property_; }
+ // Does this scope access "super" property (super.foo).
bool NeedsHomeObject() const {
return scope_uses_super_property_ ||
(inner_scope_calls_eval_ && (IsConciseMethod(function_kind()) ||
diff --git a/chromium/v8/src/base/platform/platform-aix.cc b/chromium/v8/src/base/platform/platform-aix.cc
index dfc926ea981..6c1bde7b859 100644
--- a/chromium/v8/src/base/platform/platform-aix.cc
+++ b/chromium/v8/src/base/platform/platform-aix.cc
@@ -126,9 +126,6 @@ void* OS::ReserveAlignedRegion(size_t size, size_t alignment, void* hint,
DCHECK(aligned_size == request_size);
- address_ = static_cast<void*>(aligned_base);
- size_ = aligned_size;
-
*allocated = aligned_size;
return static_cast<void*>(aligned_base);
}
diff --git a/chromium/v8/src/bootstrapper.cc b/chromium/v8/src/bootstrapper.cc
index a0c91f4fef1..fe7d63fa956 100644
--- a/chromium/v8/src/bootstrapper.cc
+++ b/chromium/v8/src/bootstrapper.cc
@@ -1034,8 +1034,8 @@ void Genesis::CreateJSProxyMaps() {
// Allocate maps for all Proxy types.
// Next to the default proxy, we need maps indicating callable and
// constructable proxies.
- Handle<Map> proxy_map =
- factory()->NewMap(JS_PROXY_TYPE, JSProxy::kSize, PACKED_ELEMENTS);
+ Handle<Map> proxy_map = factory()->NewMap(JS_PROXY_TYPE, JSProxy::kSize,
+ TERMINAL_FAST_ELEMENTS_KIND);
proxy_map->set_dictionary_map(true);
proxy_map->set_may_have_interesting_symbols(true);
native_context()->set_proxy_map(*proxy_map);
@@ -1624,9 +1624,11 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
array_function->shared()->SetConstructStub(*code);
// Set up %ArrayPrototype%.
+ // The %ArrayPrototype% has TERMINAL_FAST_ELEMENTS_KIND in order to ensure
+ // that constant functions stay constant after turning prototype to setup
+ // mode and back when constant field tracking is enabled.
Handle<JSArray> proto =
- Handle<JSArray>::cast(factory->NewJSObject(array_function, TENURED));
- JSArray::Initialize(proto, 0);
+ factory->NewJSArray(0, TERMINAL_FAST_ELEMENTS_KIND, TENURED);
JSFunction::SetPrototype(array_function, proto);
native_context()->set_initial_array_prototype(*proto);
@@ -5482,7 +5484,7 @@ Genesis::Genesis(Isolate* isolate,
DCHECK_EQ(global_proxy_data->embedder_field_count(),
global_proxy_template->InternalFieldCount());
Handle<Map> global_proxy_map = isolate->factory()->NewMap(
- JS_GLOBAL_PROXY_TYPE, proxy_size, HOLEY_SMI_ELEMENTS);
+ JS_GLOBAL_PROXY_TYPE, proxy_size, TERMINAL_FAST_ELEMENTS_KIND);
global_proxy_map->set_is_access_check_needed(true);
global_proxy_map->set_has_hidden_prototype(true);
global_proxy_map->set_may_have_interesting_symbols(true);
diff --git a/chromium/v8/src/builtins/builtins-collections-gen.cc b/chromium/v8/src/builtins/builtins-collections-gen.cc
index a1928632abd..4aa7fa310b1 100644
--- a/chromium/v8/src/builtins/builtins-collections-gen.cc
+++ b/chromium/v8/src/builtins/builtins-collections-gen.cc
@@ -314,10 +314,11 @@ TF_BUILTIN(MapConstructor, CollectionsBuiltinsAssembler) {
BIND(&if_notobject);
{
- Node* const exception = MakeTypeError(
- MessageTemplate::kIteratorValueNotAnObject, context, next_value);
- var_exception.Bind(exception);
- Goto(&if_exception);
+ Node* ret = CallRuntime(
+ Runtime::kThrowTypeError, context,
+ SmiConstant(MessageTemplate::kIteratorValueNotAnObject), next_value);
+ GotoIfException(ret, &if_exception, &var_exception);
+ Unreachable();
}
}
diff --git a/chromium/v8/src/builtins/builtins-definitions.h b/chromium/v8/src/builtins/builtins-definitions.h
index 746051b6cd9..cc89c4e3650 100644
--- a/chromium/v8/src/builtins/builtins-definitions.h
+++ b/chromium/v8/src/builtins/builtins-definitions.h
@@ -1024,7 +1024,7 @@ namespace internal {
/* ES6 #sec-%typedarray%.prototype.reverse */ \
CPP(TypedArrayPrototypeReverse) \
/* ES6 %TypedArray%.prototype.set */ \
- CPP(TypedArrayPrototypeSet) \
+ TFJ(TypedArrayPrototypeSet, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-%typedarray%.prototype.slice */ \
CPP(TypedArrayPrototypeSlice) \
/* ES6 #sec-get-%typedarray%.prototype-@@tostringtag */ \
diff --git a/chromium/v8/src/builtins/builtins-proxy-gen.cc b/chromium/v8/src/builtins/builtins-proxy-gen.cc
index c4fd34290a8..29c5a4eaeb3 100644
--- a/chromium/v8/src/builtins/builtins-proxy-gen.cc
+++ b/chromium/v8/src/builtins/builtins-proxy-gen.cc
@@ -491,7 +491,7 @@ void ProxiesCodeStubAssembler::CheckGetSetTrapResult(
Node* instance_type = LoadInstanceType(target);
TryGetOwnProperty(context, target, target, map, instance_type, name,
&if_found_value, &var_value, &var_details, &var_raw_value,
- check_passed, &check_in_runtime);
+ check_passed, &check_in_runtime, kReturnAccessorPair);
BIND(&if_found_value);
{
@@ -589,7 +589,7 @@ void ProxiesCodeStubAssembler::CheckHasTrapResult(Node* context, Node* target,
Node* instance_type = LoadInstanceType(target);
TryGetOwnProperty(context, target, target, target_map, instance_type, name,
&if_found_value, &var_value, &var_details, &var_raw_value,
- check_passed, if_bailout);
+ check_passed, if_bailout, kReturnAccessorPair);
// 9.b. If targetDesc is not undefined, then (see 9.b.i. below).
BIND(&if_found_value);
diff --git a/chromium/v8/src/builtins/builtins-string-gen.cc b/chromium/v8/src/builtins/builtins-string-gen.cc
index 9cb0e474e21..8d407b35e61 100644
--- a/chromium/v8/src/builtins/builtins-string-gen.cc
+++ b/chromium/v8/src/builtins/builtins-string-gen.cc
@@ -1052,9 +1052,9 @@ void StringBuiltinsAssembler::RequireObjectCoercible(Node* const context,
}
void StringBuiltinsAssembler::MaybeCallFunctionAtSymbol(
- Node* const context, Node* const object, Handle<Symbol> symbol,
- const NodeFunction0& regexp_call, const NodeFunction1& generic_call,
- CodeStubArguments* args) {
+ Node* const context, Node* const object, Node* const maybe_string,
+ Handle<Symbol> symbol, const NodeFunction0& regexp_call,
+ const NodeFunction1& generic_call, CodeStubArguments* args) {
Label out(this);
// Smis definitely don't have an attached symbol.
@@ -1084,14 +1084,21 @@ void StringBuiltinsAssembler::MaybeCallFunctionAtSymbol(
}
// Take the fast path for RegExps.
+ // There's two conditions: {object} needs to be a fast regexp, and
+ // {maybe_string} must be a string (we can't call ToString on the fast path
+ // since it may mutate {object}).
{
Label stub_call(this), slow_lookup(this);
+ GotoIf(TaggedIsSmi(maybe_string), &slow_lookup);
+ GotoIfNot(IsString(maybe_string), &slow_lookup);
+
RegExpBuiltinsAssembler regexp_asm(state());
regexp_asm.BranchIfFastRegExp(context, object, object_map, &stub_call,
&slow_lookup);
BIND(&stub_call);
+ // TODO(jgruber): Add a no-JS scope once it exists.
Node* const result = regexp_call();
if (args == nullptr) {
Return(result);
@@ -1307,12 +1314,10 @@ TF_BUILTIN(StringPrototypeReplace, StringBuiltinsAssembler) {
// Redirect to replacer method if {search[@@replace]} is not undefined.
MaybeCallFunctionAtSymbol(
- context, search, isolate()->factory()->replace_symbol(),
+ context, search, receiver, isolate()->factory()->replace_symbol(),
[=]() {
- Node* const subject_string = ToString_Inline(context, receiver);
-
- return CallBuiltin(Builtins::kRegExpReplace, context, search,
- subject_string, replace);
+ return CallBuiltin(Builtins::kRegExpReplace, context, search, receiver,
+ replace);
},
[=](Node* fn) {
Callable call_callable = CodeFactory::Call(isolate());
@@ -1550,12 +1555,10 @@ TF_BUILTIN(StringPrototypeSplit, StringBuiltinsAssembler) {
// Redirect to splitter method if {separator[@@split]} is not undefined.
MaybeCallFunctionAtSymbol(
- context, separator, isolate()->factory()->split_symbol(),
+ context, separator, receiver, isolate()->factory()->split_symbol(),
[=]() {
- Node* const subject_string = ToString_Inline(context, receiver);
-
- return CallBuiltin(Builtins::kRegExpSplit, context, separator,
- subject_string, limit);
+ return CallBuiltin(Builtins::kRegExpSplit, context, separator, receiver,
+ limit);
},
[=](Node* fn) {
Callable call_callable = CodeFactory::Call(isolate());
diff --git a/chromium/v8/src/builtins/builtins-string-gen.h b/chromium/v8/src/builtins/builtins-string-gen.h
index 607f7b6acb2..c9af3802707 100644
--- a/chromium/v8/src/builtins/builtins-string-gen.h
+++ b/chromium/v8/src/builtins/builtins-string-gen.h
@@ -82,9 +82,11 @@ class StringBuiltinsAssembler : public CodeStubAssembler {
// }
//
// Contains fast paths for Smi and RegExp objects.
+ // Important: {regexp_call} may not contain any code that can call into JS.
typedef std::function<Node*()> NodeFunction0;
typedef std::function<Node*(Node* fn)> NodeFunction1;
void MaybeCallFunctionAtSymbol(Node* const context, Node* const object,
+ Node* const maybe_string,
Handle<Symbol> symbol,
const NodeFunction0& regexp_call,
const NodeFunction1& generic_call,
diff --git a/chromium/v8/src/builtins/builtins-typedarray-gen.cc b/chromium/v8/src/builtins/builtins-typedarray-gen.cc
index a58f3a4093f..07f122b9098 100644
--- a/chromium/v8/src/builtins/builtins-typedarray-gen.cc
+++ b/chromium/v8/src/builtins/builtins-typedarray-gen.cc
@@ -10,6 +10,10 @@
namespace v8 {
namespace internal {
+using compiler::Node;
+template <class T>
+using TNode = compiler::TNode<T>;
+
// This is needed for gc_mole which will compile this file without the full set
// of GN defined macros.
#ifndef V8_TYPED_ARRAY_MAX_SIZE_IN_HEAP
@@ -41,9 +45,37 @@ class TypedArrayBuiltinsAssembler : public CodeStubAssembler {
Node* CalculateExternalPointer(Node* backing_store, Node* byte_offset);
Node* LoadDataPtr(Node* typed_array);
Node* ByteLengthIsValid(Node* byte_length);
+
+ // Loads the element kind of TypedArray instance.
+ TNode<Word32T> LoadElementsKind(TNode<Object> typed_array);
+
+ // Returns the byte size of an element for a TypedArray elements kind.
+ TNode<IntPtrT> GetTypedArrayElementSize(TNode<Word32T> elements_kind);
+
+ // Fast path for setting a TypedArray (source) onto another TypedArray
+ // (target) at an element offset.
+ void SetTypedArraySource(TNode<Context> context, TNode<JSTypedArray> source,
+ TNode<JSTypedArray> target, TNode<IntPtrT> offset,
+ Label* call_runtime, Label* if_source_too_large);
+
+ void SetJSArraySource(TNode<Context> context, TNode<JSArray> source,
+ TNode<JSTypedArray> target, TNode<IntPtrT> offset,
+ Label* call_runtime, Label* if_source_too_large);
+
+ void CallCMemmove(TNode<IntPtrT> dest_ptr, TNode<IntPtrT> src_ptr,
+ TNode<IntPtrT> byte_length);
+
+ void CallCCopyFastNumberJSArrayElementsToTypedArray(
+ TNode<Context> context, TNode<JSArray> source, TNode<JSTypedArray> dest,
+ TNode<IntPtrT> source_length, TNode<IntPtrT> offset);
+
+ void CallCCopyTypedArrayElementsToTypedArray(TNode<JSTypedArray> source,
+ TNode<JSTypedArray> dest,
+ TNode<IntPtrT> source_length,
+ TNode<IntPtrT> offset);
};
-compiler::Node* TypedArrayBuiltinsAssembler::LoadMapForType(Node* array) {
+Node* TypedArrayBuiltinsAssembler::LoadMapForType(Node* array) {
CSA_ASSERT(this, IsJSTypedArray(array));
Label unreachable(this), done(this);
@@ -96,8 +128,8 @@ compiler::Node* TypedArrayBuiltinsAssembler::LoadMapForType(Node* array) {
// can't allocate an array bigger than our 32-bit arithmetic range anyway. 64
// bit platforms could theoretically have an offset up to 2^35 - 1, so we may
// need to convert the float heap number to an intptr.
-compiler::Node* TypedArrayBuiltinsAssembler::CalculateExternalPointer(
- Node* backing_store, Node* byte_offset) {
+Node* TypedArrayBuiltinsAssembler::CalculateExternalPointer(Node* backing_store,
+ Node* byte_offset) {
return IntPtrAdd(backing_store, ChangeNumberToIntPtr(byte_offset));
}
@@ -518,7 +550,7 @@ TF_BUILTIN(TypedArrayConstructByArrayBuffer, TypedArrayBuiltinsAssembler) {
}
}
-compiler::Node* TypedArrayBuiltinsAssembler::LoadDataPtr(Node* typed_array) {
+Node* TypedArrayBuiltinsAssembler::LoadDataPtr(Node* typed_array) {
CSA_ASSERT(this, IsJSTypedArray(typed_array));
Node* elements = LoadElements(typed_array);
CSA_ASSERT(this, IsFixedTypedArray(elements));
@@ -529,8 +561,7 @@ compiler::Node* TypedArrayBuiltinsAssembler::LoadDataPtr(Node* typed_array) {
return IntPtrAdd(base_pointer, external_pointer);
}
-compiler::Node* TypedArrayBuiltinsAssembler::ByteLengthIsValid(
- Node* byte_length) {
+Node* TypedArrayBuiltinsAssembler::ByteLengthIsValid(Node* byte_length) {
Label smi(this), done(this);
VARIABLE(is_valid, MachineRepresentation::kWord32);
GotoIf(TaggedIsSmi(byte_length), &smi);
@@ -674,6 +705,309 @@ TF_BUILTIN(TypedArrayPrototypeLength, TypedArrayBuiltinsAssembler) {
JSTypedArray::kLengthOffset);
}
+TNode<Word32T> TypedArrayBuiltinsAssembler::LoadElementsKind(
+ TNode<Object> typed_array) {
+ CSA_ASSERT(this, IsJSTypedArray(typed_array));
+ return Int32Sub(LoadMapElementsKind(LoadMap(CAST(typed_array))),
+ Int32Constant(FIRST_FIXED_TYPED_ARRAY_ELEMENTS_KIND));
+}
+
+TNode<IntPtrT> TypedArrayBuiltinsAssembler::GetTypedArrayElementSize(
+ TNode<Word32T> elements_kind) {
+ TVARIABLE(IntPtrT, element_size);
+ Label next(this), if_unknown_type(this, Label::kDeferred);
+
+ size_t const kTypedElementsKindCount = LAST_FIXED_TYPED_ARRAY_ELEMENTS_KIND -
+ FIRST_FIXED_TYPED_ARRAY_ELEMENTS_KIND +
+ 1;
+
+ int32_t elements_kinds[kTypedElementsKindCount] = {
+#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
+ TYPE##_ELEMENTS - FIRST_FIXED_TYPED_ARRAY_ELEMENTS_KIND,
+ TYPED_ARRAYS(TYPED_ARRAY_CASE)
+#undef TYPED_ARRAY_CASE
+ };
+
+#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
+ Label if_##type##array(this);
+ TYPED_ARRAYS(TYPED_ARRAY_CASE)
+#undef TYPED_ARRAY_CASE
+
+ Label* elements_kind_labels[kTypedElementsKindCount] = {
+#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) &if_##type##array,
+ TYPED_ARRAYS(TYPED_ARRAY_CASE)
+#undef TYPED_ARRAY_CASE
+ };
+
+ Switch(elements_kind, &if_unknown_type, elements_kinds, elements_kind_labels,
+ kTypedElementsKindCount);
+
+#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
+ BIND(&if_##type##array); \
+ { \
+ element_size = IntPtrConstant(size); \
+ Goto(&next); \
+ }
+ TYPED_ARRAYS(TYPED_ARRAY_CASE)
+#undef TYPED_ARRAY_CASE
+
+ BIND(&if_unknown_type);
+ {
+ element_size = IntPtrConstant(0);
+ Goto(&next);
+ }
+ BIND(&next);
+ return element_size;
+}
+
+void TypedArrayBuiltinsAssembler::SetTypedArraySource(
+ TNode<Context> context, TNode<JSTypedArray> source,
+ TNode<JSTypedArray> target, TNode<IntPtrT> offset, Label* call_runtime,
+ Label* if_source_too_large) {
+ CSA_ASSERT(this, Word32BinaryNot(IsDetachedBuffer(
+ LoadObjectField(source, JSTypedArray::kBufferOffset))));
+ CSA_ASSERT(this, Word32BinaryNot(IsDetachedBuffer(
+ LoadObjectField(target, JSTypedArray::kBufferOffset))));
+ CSA_ASSERT(this, IntPtrGreaterThanOrEqual(offset, IntPtrConstant(0)));
+ CSA_ASSERT(this,
+ IntPtrLessThanOrEqual(offset, IntPtrConstant(Smi::kMaxValue)));
+
+ // Check for possible range errors.
+
+ TNode<IntPtrT> source_length =
+ LoadAndUntagObjectField(source, JSTypedArray::kLengthOffset);
+ TNode<IntPtrT> target_length =
+ LoadAndUntagObjectField(target, JSTypedArray::kLengthOffset);
+ TNode<IntPtrT> required_target_length = IntPtrAdd(source_length, offset);
+
+ GotoIf(IntPtrGreaterThan(required_target_length, target_length),
+ if_source_too_large);
+
+ // Grab pointers and byte lengths we need later on.
+
+ TNode<IntPtrT> target_data_ptr = UncheckedCast<IntPtrT>(LoadDataPtr(target));
+ TNode<IntPtrT> source_data_ptr = UncheckedCast<IntPtrT>(LoadDataPtr(source));
+
+ TNode<Word32T> source_el_kind = LoadElementsKind(source);
+ TNode<Word32T> target_el_kind = LoadElementsKind(target);
+
+ TNode<IntPtrT> source_el_size = GetTypedArrayElementSize(source_el_kind);
+ TNode<IntPtrT> target_el_size = GetTypedArrayElementSize(target_el_kind);
+
+ // A note on byte lengths: both source- and target byte lengths must be valid,
+ // i.e. it must be possible to allocate an array of the given length. That
+ // means we're safe from overflows in the following multiplication.
+ TNode<IntPtrT> source_byte_length = IntPtrMul(source_length, source_el_size);
+ CSA_ASSERT(this,
+ IntPtrGreaterThanOrEqual(source_byte_length, IntPtrConstant(0)));
+
+ Label call_memmove(this), fast_c_call(this), out(this);
+ Branch(Word32Equal(source_el_kind, target_el_kind), &call_memmove,
+ &fast_c_call);
+
+ BIND(&call_memmove);
+ {
+ TNode<IntPtrT> target_start =
+ IntPtrAdd(target_data_ptr, IntPtrMul(offset, target_el_size));
+ CallCMemmove(target_start, source_data_ptr, source_byte_length);
+ Goto(&out);
+ }
+
+ BIND(&fast_c_call);
+ {
+ // Overlapping backing stores of different element kinds are handled in
+ // runtime. We're a bit conservative here and bail to runtime if ranges
+ // overlap and element kinds differ.
+
+ TNode<IntPtrT> target_byte_length =
+ IntPtrMul(target_length, target_el_size);
+ CSA_ASSERT(this,
+ IntPtrGreaterThanOrEqual(target_byte_length, IntPtrConstant(0)));
+
+ TNode<IntPtrT> target_data_end_ptr =
+ IntPtrAdd(target_data_ptr, target_byte_length);
+ TNode<IntPtrT> source_data_end_ptr =
+ IntPtrAdd(source_data_ptr, source_byte_length);
+
+ GotoIfNot(
+ Word32Or(IntPtrLessThanOrEqual(target_data_end_ptr, source_data_ptr),
+ IntPtrLessThanOrEqual(source_data_end_ptr, target_data_ptr)),
+ call_runtime);
+
+ TNode<IntPtrT> source_length =
+ LoadAndUntagObjectField(source, JSTypedArray::kLengthOffset);
+ CallCCopyTypedArrayElementsToTypedArray(source, target, source_length,
+ offset);
+ Goto(&out);
+ }
+
+ BIND(&out);
+}
+
+void TypedArrayBuiltinsAssembler::SetJSArraySource(
+ TNode<Context> context, TNode<JSArray> source, TNode<JSTypedArray> target,
+ TNode<IntPtrT> offset, Label* call_runtime, Label* if_source_too_large) {
+ CSA_ASSERT(this, IntPtrGreaterThanOrEqual(offset, IntPtrConstant(0)));
+ CSA_ASSERT(this,
+ IntPtrLessThanOrEqual(offset, IntPtrConstant(Smi::kMaxValue)));
+
+ TNode<IntPtrT> source_length = SmiUntag(LoadFastJSArrayLength(source));
+ TNode<IntPtrT> target_length =
+ LoadAndUntagObjectField(target, JSTypedArray::kLengthOffset);
+
+ // Maybe out of bounds?
+ GotoIf(IntPtrGreaterThan(IntPtrAdd(source_length, offset), target_length),
+ if_source_too_large);
+
+ // Nothing to do if {source} is empty.
+ Label out(this), fast_c_call(this);
+ GotoIf(IntPtrEqual(source_length, IntPtrConstant(0)), &out);
+
+ // Dispatch based on the source elements kind.
+ {
+ // These are the supported elements kinds in TryCopyElementsFastNumber.
+ int32_t values[] = {
+ PACKED_SMI_ELEMENTS, HOLEY_SMI_ELEMENTS, PACKED_DOUBLE_ELEMENTS,
+ HOLEY_DOUBLE_ELEMENTS,
+ };
+ Label* labels[] = {
+ &fast_c_call, &fast_c_call, &fast_c_call, &fast_c_call,
+ };
+ STATIC_ASSERT(arraysize(values) == arraysize(labels));
+
+ TNode<Int32T> source_elements_kind = LoadMapElementsKind(LoadMap(source));
+ Switch(source_elements_kind, call_runtime, values, labels,
+ arraysize(values));
+ }
+
+ BIND(&fast_c_call);
+ CallCCopyFastNumberJSArrayElementsToTypedArray(context, source, target,
+ source_length, offset);
+ Goto(&out);
+ BIND(&out);
+}
+
+void TypedArrayBuiltinsAssembler::CallCMemmove(TNode<IntPtrT> dest_ptr,
+ TNode<IntPtrT> src_ptr,
+ TNode<IntPtrT> byte_length) {
+ TNode<ExternalReference> memmove =
+ ExternalConstant(ExternalReference::libc_memmove_function(isolate()));
+ CallCFunction3(MachineType::AnyTagged(), MachineType::Pointer(),
+ MachineType::Pointer(), MachineType::UintPtr(), memmove,
+ dest_ptr, src_ptr, byte_length);
+}
+
+void TypedArrayBuiltinsAssembler::
+ CallCCopyFastNumberJSArrayElementsToTypedArray(TNode<Context> context,
+ TNode<JSArray> source,
+ TNode<JSTypedArray> dest,
+ TNode<IntPtrT> source_length,
+ TNode<IntPtrT> offset) {
+ TNode<ExternalReference> f = ExternalConstant(
+ ExternalReference::copy_fast_number_jsarray_elements_to_typed_array(
+ isolate()));
+ CallCFunction5(MachineType::AnyTagged(), MachineType::AnyTagged(),
+ MachineType::AnyTagged(), MachineType::AnyTagged(),
+ MachineType::UintPtr(), MachineType::UintPtr(), f, context,
+ source, dest, source_length, offset);
+}
+
+void TypedArrayBuiltinsAssembler::CallCCopyTypedArrayElementsToTypedArray(
+ TNode<JSTypedArray> source, TNode<JSTypedArray> dest,
+ TNode<IntPtrT> source_length, TNode<IntPtrT> offset) {
+ TNode<ExternalReference> f = ExternalConstant(
+ ExternalReference::copy_typed_array_elements_to_typed_array(isolate()));
+ CallCFunction4(MachineType::AnyTagged(), MachineType::AnyTagged(),
+ MachineType::AnyTagged(), MachineType::UintPtr(),
+ MachineType::UintPtr(), f, source, dest, source_length,
+ offset);
+}
+
+// ES #sec-get-%typedarray%.prototype.set
+TF_BUILTIN(TypedArrayPrototypeSet, TypedArrayBuiltinsAssembler) {
+ TNode<Context> context = CAST(Parameter(BuiltinDescriptor::kContext));
+ CodeStubArguments args(
+ this, ChangeInt32ToIntPtr(Parameter(BuiltinDescriptor::kArgumentsCount)));
+
+ Label if_source_is_typed_array(this), if_source_is_fast_jsarray(this),
+ if_offset_is_out_of_bounds(this, Label::kDeferred),
+ if_source_too_large(this, Label::kDeferred),
+ if_typed_array_is_neutered(this, Label::kDeferred),
+ if_receiver_is_not_typedarray(this, Label::kDeferred);
+
+ // Check the receiver is a typed array.
+ TNode<Object> receiver = args.GetReceiver();
+ GotoIf(TaggedIsSmi(receiver), &if_receiver_is_not_typedarray);
+ GotoIfNot(IsJSTypedArray(receiver), &if_receiver_is_not_typedarray);
+
+ // Normalize offset argument (using ToInteger) and handle heap number cases.
+ TNode<Object> offset = args.GetOptionalArgumentValue(1, SmiConstant(0));
+ TNode<Object> offset_num = ToInteger(context, offset, kTruncateMinusZero);
+ CSA_ASSERT(this, IsNumberNormalized(offset_num));
+
+ // Since ToInteger always returns a Smi if the given value is within Smi
+ // range, and the only corner case of -0.0 has already been truncated to 0.0,
+ // we can simply throw unless the offset is a non-negative Smi.
+ // TODO(jgruber): It's an observable spec violation to throw here if
+ // {offset_num} is a positive number outside the Smi range. Per spec, we need
+ // to check for detached buffers and call the observable ToObject/ToLength
+ // operations first.
+ GotoIfNot(TaggedIsPositiveSmi(offset_num), &if_offset_is_out_of_bounds);
+ TNode<Smi> offset_smi = CAST(offset_num);
+
+ // Check the receiver is not neutered.
+ TNode<Object> receiver_buffer =
+ LoadObjectField(CAST(receiver), JSTypedArray::kBufferOffset);
+ GotoIf(IsDetachedBuffer(receiver_buffer), &if_typed_array_is_neutered);
+
+ // Check the source argument is valid and whether a fast path can be taken.
+ Label call_runtime(this);
+ TNode<Object> source = args.GetOptionalArgumentValue(0);
+ GotoIf(TaggedIsSmi(source), &call_runtime);
+ GotoIf(IsJSTypedArray(source), &if_source_is_typed_array);
+ BranchIfFastJSArray(source, context, &if_source_is_fast_jsarray,
+ &call_runtime);
+
+ // Fast path for a typed array source argument.
+ BIND(&if_source_is_typed_array);
+ {
+ // Check the source argument is not neutered.
+ TNode<Object> source_buffer =
+ LoadObjectField(CAST(source), JSTypedArray::kBufferOffset);
+ GotoIf(IsDetachedBuffer(source_buffer), &if_typed_array_is_neutered);
+
+ SetTypedArraySource(context, CAST(source), CAST(receiver),
+ SmiUntag(offset_smi), &call_runtime,
+ &if_source_too_large);
+ args.PopAndReturn(UndefinedConstant());
+ }
+
+ // Fast path for a fast JSArray source argument.
+ BIND(&if_source_is_fast_jsarray);
+ {
+ SetJSArraySource(context, CAST(source), CAST(receiver),
+ SmiUntag(offset_smi), &call_runtime, &if_source_too_large);
+ args.PopAndReturn(UndefinedConstant());
+ }
+
+ BIND(&call_runtime);
+ args.PopAndReturn(CallRuntime(Runtime::kTypedArraySet, context, receiver,
+ source, offset_smi));
+
+ BIND(&if_offset_is_out_of_bounds);
+ ThrowRangeError(context, MessageTemplate::kTypedArraySetOffsetOutOfBounds);
+
+ BIND(&if_source_too_large);
+ ThrowRangeError(context, MessageTemplate::kTypedArraySetSourceTooLarge);
+
+ BIND(&if_typed_array_is_neutered);
+ ThrowTypeError(context, MessageTemplate::kDetachedOperation,
+ "%TypedArray%.prototype.set");
+
+ BIND(&if_receiver_is_not_typedarray);
+ ThrowTypeError(context, MessageTemplate::kNotTypedArray);
+}
+
// ES #sec-get-%typedarray%.prototype-@@tostringtag
TF_BUILTIN(TypedArrayPrototypeToStringTag, TypedArrayBuiltinsAssembler) {
Node* receiver = Parameter(Descriptor::kReceiver);
diff --git a/chromium/v8/src/builtins/builtins-typedarray.cc b/chromium/v8/src/builtins/builtins-typedarray.cc
index 3d40d3755f8..176a79965b2 100644
--- a/chromium/v8/src/builtins/builtins-typedarray.cc
+++ b/chromium/v8/src/builtins/builtins-typedarray.cc
@@ -277,302 +277,6 @@ BUILTIN(TypedArrayPrototypeReverse) {
return *array;
}
-namespace {
-Object* TypedArrayCopyElements(Handle<JSTypedArray> target,
- Handle<JSReceiver> source, Object* length_obj) {
- size_t length;
- CHECK(TryNumberToSize(length_obj, &length));
-
- ElementsAccessor* accessor = target->GetElementsAccessor();
- return accessor->CopyElements(source, target, length);
-}
-
-enum class TypedArraySetResultCodes {
- // Set from typed array of the same type.
- // This is processed by TypedArraySetFastCases
- SAME_TYPE,
- // Set from typed array of the different type, overlapping in memory.
- OVERLAPPING,
- // Set from typed array of the different type, non-overlapping.
- NONOVERLAPPING,
- // Set from non-typed array.
- NON_TYPED_ARRAY
-};
-
-MaybeHandle<Object> TypedArraySetFromArrayLike(Isolate* isolate,
- Handle<JSTypedArray> target,
- Handle<Object> source,
- int source_length, int offset) {
- DCHECK_GE(source_length, 0);
- DCHECK_GE(offset, 0);
-
- for (int i = 0; i < source_length; i++) {
- Handle<Object> value;
- ASSIGN_RETURN_ON_EXCEPTION(isolate, value,
- Object::GetElement(isolate, source, i), Object);
- ASSIGN_RETURN_ON_EXCEPTION(isolate, value,
- Object::SetElement(isolate, target, offset + i,
- value, LanguageMode::STRICT),
- Object);
- }
-
- return target;
-}
-
-MaybeHandle<Object> TypedArraySetFromOverlapping(Isolate* isolate,
- Handle<JSTypedArray> target,
- Handle<JSTypedArray> source,
- int offset) {
- DCHECK_GE(offset, 0);
-
- size_t sourceElementSize = source->element_size();
- size_t targetElementSize = target->element_size();
-
- uint32_t source_length = source->length_value();
- if (source_length == 0) return target;
-
- // Copy left part.
-
- // First un-mutated byte after the next write
- uint32_t target_ptr = 0;
- CHECK(target->byte_offset()->ToUint32(&target_ptr));
- target_ptr += (offset + 1) * targetElementSize;
-
- // Next read at sourcePtr. We do not care for memory changing before
- // sourcePtr - we have already copied it.
- uint32_t source_ptr = 0;
- CHECK(source->byte_offset()->ToUint32(&source_ptr));
-
- uint32_t left_index;
- for (left_index = 0; left_index < source_length && target_ptr <= source_ptr;
- left_index++) {
- Handle<Object> value;
- ASSIGN_RETURN_ON_EXCEPTION(isolate, value,
- Object::GetElement(isolate, source, left_index),
- Object);
- ASSIGN_RETURN_ON_EXCEPTION(
- isolate, value,
- Object::SetElement(isolate, target, offset + left_index, value,
- LanguageMode::STRICT),
- Object);
-
- target_ptr += targetElementSize;
- source_ptr += sourceElementSize;
- }
-
- // Copy right part;
- // First unmutated byte before the next write
- CHECK(target->byte_offset()->ToUint32(&target_ptr));
- target_ptr += (offset + source_length - 1) * targetElementSize;
-
- // Next read before sourcePtr. We do not care for memory changing after
- // sourcePtr - we have already copied it.
- CHECK(target->byte_offset()->ToUint32(&source_ptr));
- source_ptr += source_length * sourceElementSize;
-
- uint32_t right_index;
- DCHECK_GE(source_length, 1);
- for (right_index = source_length - 1;
- right_index > left_index && target_ptr >= source_ptr; right_index--) {
- Handle<Object> value;
- ASSIGN_RETURN_ON_EXCEPTION(isolate, value,
- Object::GetElement(isolate, source, right_index),
- Object);
- ASSIGN_RETURN_ON_EXCEPTION(
- isolate, value,
- Object::SetElement(isolate, target, offset + right_index, value,
- LanguageMode::STRICT),
- Object);
-
- target_ptr -= targetElementSize;
- source_ptr -= sourceElementSize;
- }
-
- std::vector<Handle<Object>> temp(right_index + 1 - left_index);
-
- for (uint32_t i = left_index; i <= right_index; i++) {
- Handle<Object> value;
- ASSIGN_RETURN_ON_EXCEPTION(isolate, value,
- Object::GetElement(isolate, source, i), Object);
- temp[i - left_index] = value;
- }
-
- for (uint32_t i = left_index; i <= right_index; i++) {
- Handle<Object> value;
-
- ASSIGN_RETURN_ON_EXCEPTION(
- isolate, value,
- Object::SetElement(isolate, target, offset + i, temp[i - left_index],
- LanguageMode::STRICT),
- Object);
- }
-
- return target;
-}
-
-MaybeHandle<Smi> TypedArraySetFastCases(Isolate* isolate,
- Handle<JSTypedArray> target,
- Handle<Object> source_obj,
- Handle<Object> offset_obj) {
- if (!source_obj->IsJSTypedArray()) {
- return MaybeHandle<Smi>(
- Smi::FromEnum(TypedArraySetResultCodes::NON_TYPED_ARRAY), isolate);
- }
-
- Handle<JSTypedArray> source = Handle<JSTypedArray>::cast(source_obj);
-
- size_t offset = 0;
- CHECK(TryNumberToSize(*offset_obj, &offset));
- size_t target_length = target->length_value();
- size_t source_length = source->length_value();
- size_t target_byte_length = NumberToSize(target->byte_length());
- size_t source_byte_length = NumberToSize(source->byte_length());
- if (offset > target_length || offset + source_length > target_length ||
- offset + source_length < offset) { // overflow
- THROW_NEW_ERROR(
- isolate, NewRangeError(MessageTemplate::kTypedArraySetSourceTooLarge),
- Smi);
- }
-
- size_t target_offset = NumberToSize(target->byte_offset());
- size_t source_offset = NumberToSize(source->byte_offset());
- uint8_t* target_base =
- static_cast<uint8_t*>(target->GetBuffer()->backing_store()) +
- target_offset;
- uint8_t* source_base =
- static_cast<uint8_t*>(source->GetBuffer()->backing_store()) +
- source_offset;
-
- // Typed arrays of the same type: use memmove.
- if (target->type() == source->type()) {
- memmove(target_base + offset * target->element_size(), source_base,
- source_byte_length);
- return MaybeHandle<Smi>(Smi::FromEnum(TypedArraySetResultCodes::SAME_TYPE),
- isolate);
- }
-
- // Typed arrays of different types over the same backing store
- if ((source_base <= target_base &&
- source_base + source_byte_length > target_base) ||
- (target_base <= source_base &&
- target_base + target_byte_length > source_base)) {
- // We do not support overlapping ArrayBuffers
- DCHECK(target->GetBuffer()->backing_store() ==
- source->GetBuffer()->backing_store());
- return MaybeHandle<Smi>(
- Smi::FromEnum(TypedArraySetResultCodes::OVERLAPPING), isolate);
- } else { // Non-overlapping typed arrays
- return MaybeHandle<Smi>(
- Smi::FromEnum(TypedArraySetResultCodes::NONOVERLAPPING), isolate);
- }
-}
-
-} // anonymous namespace
-
-// 22.2.3.23%TypedArray%.prototype.set ( overloaded [ , offset ] )
-BUILTIN(TypedArrayPrototypeSet) {
- HandleScope scope(isolate);
-
- Handle<Object> target = args.receiver();
- Handle<Object> obj = args.atOrUndefined(isolate, 1);
- Handle<Object> offset = args.atOrUndefined(isolate, 2);
-
- if (offset->IsUndefined(isolate)) {
- offset = Handle<Object>(Smi::kZero, isolate);
- } else {
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, offset,
- Object::ToInteger(isolate, offset));
- }
-
- if (offset->Number() < 0) {
- THROW_NEW_ERROR_RETURN_FAILURE(
- isolate, NewRangeError(MessageTemplate::kTypedArraySetNegativeOffset));
- }
-
- if (offset->Number() > Smi::kMaxValue) {
- THROW_NEW_ERROR_RETURN_FAILURE(
- isolate, NewRangeError(MessageTemplate::kTypedArraySetSourceTooLarge));
- }
-
- if (!target->IsJSTypedArray()) {
- THROW_NEW_ERROR_RETURN_FAILURE(
- isolate, NewTypeError(MessageTemplate::kNotTypedArray));
- }
- auto int_offset = static_cast<int>(offset->Number());
-
- Handle<Smi> result_code;
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
- isolate, result_code,
- TypedArraySetFastCases(isolate, Handle<JSTypedArray>::cast(target), obj,
- offset));
-
- switch (static_cast<TypedArraySetResultCodes>(result_code->value())) {
- case TypedArraySetResultCodes::SAME_TYPE: {
- break;
- }
- case TypedArraySetResultCodes::OVERLAPPING: {
- RETURN_FAILURE_ON_EXCEPTION(
- isolate, TypedArraySetFromOverlapping(
- isolate, Handle<JSTypedArray>::cast(target),
- Handle<JSTypedArray>::cast(obj), int_offset));
- break;
- }
- case TypedArraySetResultCodes::NONOVERLAPPING: {
- if (int_offset == 0) {
- TypedArrayCopyElements(Handle<JSTypedArray>::cast(target),
- Handle<JSTypedArray>::cast(obj),
- Handle<JSTypedArray>::cast(obj)->length());
- } else {
- RETURN_FAILURE_ON_EXCEPTION(
- isolate,
- TypedArraySetFromArrayLike(
- isolate, Handle<JSTypedArray>::cast(target), obj,
- Handle<JSTypedArray>::cast(obj)->length_value(), int_offset));
- }
- break;
- }
- case TypedArraySetResultCodes::NON_TYPED_ARRAY: {
- if (obj->IsNumber()) {
- // For number as a first argument, throw TypeError
- // instead of silently ignoring the call, so that
- // users know they did something wrong.
- // (Consistent with Firefox and Blink/WebKit)
- THROW_NEW_ERROR_RETURN_FAILURE(
- isolate, NewTypeError(MessageTemplate::kInvalidArgument));
- }
-
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, obj,
- Object::ToObject(isolate, obj));
-
- Handle<Object> len;
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
- isolate, len,
- Object::GetProperty(obj, isolate->factory()->length_string()));
- if (len->IsUndefined(isolate)) {
- break;
- }
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, len,
- Object::ToLength(isolate, len));
-
- DCHECK_GE(int_offset, 0);
- if (int_offset + len->Number() >
- Handle<JSTypedArray>::cast(target)->length_value()) {
- THROW_NEW_ERROR_RETURN_FAILURE(
- isolate,
- NewRangeError(MessageTemplate::kTypedArraySetSourceTooLarge));
- }
- uint32_t int_l;
- CHECK(DoubleToUint32IfEqualToSelf(len->Number(), &int_l));
- RETURN_FAILURE_ON_EXCEPTION(
- isolate, TypedArraySetFromArrayLike(
- isolate, Handle<JSTypedArray>::cast(target), obj, int_l,
- int_offset));
- } break;
- }
-
- return *isolate->factory()->undefined_value();
-}
-
BUILTIN(TypedArrayPrototypeSlice) {
HandleScope scope(isolate);
diff --git a/chromium/v8/src/code-stub-assembler.cc b/chromium/v8/src/code-stub-assembler.cc
index 612d9b76af7..0c64d011d41 100644
--- a/chromium/v8/src/code-stub-assembler.cc
+++ b/chromium/v8/src/code-stub-assembler.cc
@@ -1253,8 +1253,8 @@ TNode<Int32T> CodeStubAssembler::LoadHashForJSObject(
{
Node* length_and_hash_int32 = LoadAndUntagToWord32ObjectField(
properties_or_hash, PropertyArray::kLengthAndHashOffset);
- var_hash.Bind(Word32And(length_and_hash_int32,
- Int32Constant(PropertyArray::kHashMask)));
+ var_hash.Bind(
+ DecodeWord32<PropertyArray::HashField>(length_and_hash_int32));
Goto(&done);
}
@@ -2322,6 +2322,7 @@ Node* CodeStubAssembler::AllocateNameDictionary(Node* at_least_space_for) {
Node* CodeStubAssembler::AllocateNameDictionaryWithCapacity(Node* capacity) {
CSA_ASSERT(this, WordIsPowerOfTwo(capacity));
+ CSA_ASSERT(this, IntPtrGreaterThan(capacity, IntPtrConstant(0)));
Node* length = EntryToIndex<NameDictionary>(capacity);
Node* store_size = IntPtrAdd(TimesPointerSize(length),
IntPtrConstant(NameDictionary::kHeaderSize));
@@ -2644,7 +2645,8 @@ void CodeStubAssembler::InitializePropertyArrayLength(Node* property_array,
CSA_ASSERT(
this,
IntPtrOrSmiLessThanOrEqual(
- length, IntPtrOrSmiConstant(PropertyArray::kMaxLength, mode), mode));
+ length, IntPtrOrSmiConstant(PropertyArray::LengthField::kMax, mode),
+ mode));
StoreObjectFieldNoWriteBarrier(
property_array, PropertyArray::kLengthAndHashOffset,
ParameterToTagged(length, mode), MachineRepresentation::kTaggedSigned);
@@ -3539,6 +3541,23 @@ Node* CodeStubAssembler::ThrowIfNotInstanceType(Node* context, Node* value,
return var_value_map.value();
}
+void CodeStubAssembler::ThrowRangeError(Node* context,
+ MessageTemplate::Template message,
+ Node* arg0, Node* arg1, Node* arg2) {
+ Node* template_index = SmiConstant(message);
+ if (arg0 == nullptr) {
+ CallRuntime(Runtime::kThrowRangeError, context, template_index);
+ } else if (arg1 == nullptr) {
+ CallRuntime(Runtime::kThrowRangeError, context, template_index, arg0);
+ } else if (arg2 == nullptr) {
+ CallRuntime(Runtime::kThrowRangeError, context, template_index, arg0, arg1);
+ } else {
+ CallRuntime(Runtime::kThrowRangeError, context, template_index, arg0, arg1,
+ arg2);
+ }
+ Unreachable();
+}
+
void CodeStubAssembler::ThrowTypeError(Node* context,
MessageTemplate::Template message,
char const* arg0, char const* arg1) {
@@ -6166,7 +6185,8 @@ void CodeStubAssembler::LoadPropertyFromGlobalDictionary(Node* dictionary,
// Returns either the original value, or the result of the getter call.
Node* CodeStubAssembler::CallGetterIfAccessor(Node* value, Node* details,
Node* context, Node* receiver,
- Label* if_bailout) {
+ Label* if_bailout,
+ GetOwnPropertyMode mode) {
VARIABLE(var_value, MachineRepresentation::kTagged, value);
Label done(this), if_accessor_info(this, Label::kDeferred);
@@ -6178,23 +6198,26 @@ Node* CodeStubAssembler::CallGetterIfAccessor(Node* value, Node* details,
// AccessorPair case.
{
- Node* accessor_pair = value;
- Node* getter = LoadObjectField(accessor_pair, AccessorPair::kGetterOffset);
- Node* getter_map = LoadMap(getter);
- Node* instance_type = LoadMapInstanceType(getter_map);
- // FunctionTemplateInfo getters are not supported yet.
- GotoIf(
- Word32Equal(instance_type, Int32Constant(FUNCTION_TEMPLATE_INFO_TYPE)),
- if_bailout);
-
- // Return undefined if the {getter} is not callable.
- var_value.Bind(UndefinedConstant());
- GotoIfNot(IsCallableMap(getter_map), &done);
-
- // Call the accessor.
- Callable callable = CodeFactory::Call(isolate());
- Node* result = CallJS(callable, context, getter, receiver);
- var_value.Bind(result);
+ if (mode == kCallJSGetter) {
+ Node* accessor_pair = value;
+ Node* getter =
+ LoadObjectField(accessor_pair, AccessorPair::kGetterOffset);
+ Node* getter_map = LoadMap(getter);
+ Node* instance_type = LoadMapInstanceType(getter_map);
+ // FunctionTemplateInfo getters are not supported yet.
+ GotoIf(Word32Equal(instance_type,
+ Int32Constant(FUNCTION_TEMPLATE_INFO_TYPE)),
+ if_bailout);
+
+ // Return undefined if the {getter} is not callable.
+ var_value.Bind(UndefinedConstant());
+ GotoIfNot(IsCallableMap(getter_map), &done);
+
+ // Call the accessor.
+ Callable callable = CodeFactory::Call(isolate());
+ Node* result = CallJS(callable, context, getter, receiver);
+ var_value.Bind(result);
+ }
Goto(&done);
}
@@ -6264,14 +6287,14 @@ void CodeStubAssembler::TryGetOwnProperty(
Label* if_not_found, Label* if_bailout) {
TryGetOwnProperty(context, receiver, object, map, instance_type, unique_name,
if_found_value, var_value, nullptr, nullptr, if_not_found,
- if_bailout);
+ if_bailout, kCallJSGetter);
}
void CodeStubAssembler::TryGetOwnProperty(
Node* context, Node* receiver, Node* object, Node* map, Node* instance_type,
Node* unique_name, Label* if_found_value, Variable* var_value,
Variable* var_details, Variable* var_raw_value, Label* if_not_found,
- Label* if_bailout) {
+ Label* if_bailout, GetOwnPropertyMode mode) {
DCHECK_EQ(MachineRepresentation::kTagged, var_value->rep());
Comment("TryGetOwnProperty");
@@ -6322,7 +6345,7 @@ void CodeStubAssembler::TryGetOwnProperty(
var_raw_value->Bind(var_value->value());
}
Node* value = CallGetterIfAccessor(var_value->value(), var_details->value(),
- context, receiver, if_bailout);
+ context, receiver, if_bailout, mode);
var_value->Bind(value);
Goto(if_found_value);
}
diff --git a/chromium/v8/src/code-stub-assembler.h b/chromium/v8/src/code-stub-assembler.h
index 7c7777e1acc..a2d5e800156 100644
--- a/chromium/v8/src/code-stub-assembler.h
+++ b/chromium/v8/src/code-stub-assembler.h
@@ -867,6 +867,10 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
Node* ThrowIfNotInstanceType(Node* context, Node* value,
InstanceType instance_type,
char const* method_name);
+
+ void ThrowRangeError(Node* context, MessageTemplate::Template message,
+ Node* arg0 = nullptr, Node* arg1 = nullptr,
+ Node* arg2 = nullptr);
void ThrowTypeError(Node* context, MessageTemplate::Template message,
char const* arg0 = nullptr, char const* arg1 = nullptr);
void ThrowTypeError(Node* context, MessageTemplate::Template message,
@@ -1321,6 +1325,9 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
Node* unique_name, Label* if_found,
Label* if_not_found, Label* if_bailout);
+ // Operating mode for TryGetOwnProperty and CallGetterIfAccessor
+ // kReturnAccessorPair is used when we're only getting the property descriptor
+ enum GetOwnPropertyMode { kCallJSGetter, kReturnAccessorPair };
// Tries to get {object}'s own {unique_name} property value. If the property
// is an accessor then it also calls a getter. If the property is a double
// field it re-wraps value in an immutable heap number.
@@ -1332,7 +1339,8 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
Node* instance_type, Node* unique_name,
Label* if_found, Variable* var_value,
Variable* var_details, Variable* var_raw_value,
- Label* if_not_found, Label* if_bailout);
+ Label* if_not_found, Label* if_bailout,
+ GetOwnPropertyMode mode);
Node* GetProperty(Node* context, Node* receiver, Handle<Name> name) {
return GetProperty(context, receiver, HeapConstant(name));
@@ -1669,7 +1677,8 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
Node* DescriptorArrayGetKey(Node* descriptors, Node* descriptor_number);
Node* CallGetterIfAccessor(Node* value, Node* details, Node* context,
- Node* receiver, Label* if_bailout);
+ Node* receiver, Label* if_bailout,
+ GetOwnPropertyMode mode = kCallJSGetter);
Node* TryToIntptr(Node* key, Label* miss);
diff --git a/chromium/v8/src/compiler/arm/code-generator-arm.cc b/chromium/v8/src/compiler/arm/code-generator-arm.cc
index c2de64467fd..fa9f6a027e6 100644
--- a/chromium/v8/src/compiler/arm/code-generator-arm.cc
+++ b/chromium/v8/src/compiler/arm/code-generator-arm.cc
@@ -424,51 +424,51 @@ Condition FlagsConditionToCondition(FlagsCondition condition) {
__ dmb(ISH); \
} while (0)
-#define ASSEMBLE_ATOMIC_EXCHANGE_INTEGER(load_instr, store_instr) \
- do { \
- Label exchange; \
- __ dmb(ISH); \
- __ bind(&exchange); \
- __ add(i.TempRegister(0), i.InputRegister(0), i.InputRegister(1)); \
- __ load_instr(i.OutputRegister(0), i.TempRegister(0)); \
- __ store_instr(i.TempRegister(0), i.InputRegister(2), i.TempRegister(0)); \
- __ teq(i.TempRegister(0), Operand(0)); \
- __ b(ne, &exchange); \
- __ dmb(ISH); \
+#define ASSEMBLE_ATOMIC_EXCHANGE_INTEGER(load_instr, store_instr) \
+ do { \
+ Label exchange; \
+ __ add(i.InputRegister(0), i.InputRegister(0), i.InputRegister(1)); \
+ __ dmb(ISH); \
+ __ bind(&exchange); \
+ __ load_instr(i.OutputRegister(0), i.InputRegister(0)); \
+ __ store_instr(i.TempRegister(0), i.InputRegister(2), i.InputRegister(0)); \
+ __ teq(i.TempRegister(0), Operand(0)); \
+ __ b(ne, &exchange); \
+ __ dmb(ISH); \
} while (0)
-#define ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER(load_instr, store_instr) \
+#define ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER(load_instr, store_instr) \
+ do { \
+ Label compareExchange; \
+ Label exit; \
+ __ add(i.InputRegister(0), i.InputRegister(0), i.InputRegister(1)); \
+ __ dmb(ISH); \
+ __ bind(&compareExchange); \
+ __ load_instr(i.OutputRegister(0), i.InputRegister(0)); \
+ __ teq(i.InputRegister(2), Operand(i.OutputRegister(0))); \
+ __ b(ne, &exit); \
+ __ store_instr(i.TempRegister(0), i.InputRegister(3), i.InputRegister(0)); \
+ __ teq(i.TempRegister(0), Operand(0)); \
+ __ b(ne, &compareExchange); \
+ __ bind(&exit); \
+ __ dmb(ISH); \
+ } while (0)
+
+#define ASSEMBLE_ATOMIC_BINOP(load_instr, store_instr, bin_instr) \
do { \
- Label compareExchange; \
- Label exit; \
+ Label binop; \
+ __ add(i.InputRegister(0), i.InputRegister(0), i.InputRegister(1)); \
__ dmb(ISH); \
- __ bind(&compareExchange); \
- __ add(i.TempRegister(0), i.InputRegister(0), i.InputRegister(1)); \
- __ load_instr(i.OutputRegister(0), i.TempRegister(0)); \
- __ teq(i.TempRegister(1), Operand(i.OutputRegister(0))); \
- __ b(ne, &exit); \
- __ store_instr(i.TempRegister(0), i.InputRegister(3), i.TempRegister(0)); \
- __ teq(i.TempRegister(0), Operand(0)); \
- __ b(ne, &compareExchange); \
- __ bind(&exit); \
+ __ bind(&binop); \
+ __ load_instr(i.OutputRegister(0), i.InputRegister(0)); \
+ __ bin_instr(i.TempRegister(0), i.OutputRegister(0), \
+ Operand(i.InputRegister(2))); \
+ __ store_instr(i.TempRegister(1), i.TempRegister(0), i.InputRegister(0)); \
+ __ teq(i.TempRegister(1), Operand(0)); \
+ __ b(ne, &binop); \
__ dmb(ISH); \
} while (0)
-#define ASSEMBLE_ATOMIC_BINOP(load_instr, store_instr, bin_instr) \
- do { \
- Label binop; \
- __ add(i.TempRegister(0), i.InputRegister(0), i.InputRegister(1)); \
- __ dmb(ISH); \
- __ bind(&binop); \
- __ load_instr(i.OutputRegister(0), i.TempRegister(0)); \
- __ bin_instr(i.TempRegister(1), i.OutputRegister(0), \
- Operand(i.InputRegister(2))); \
- __ store_instr(i.TempRegister(1), i.TempRegister(1), i.TempRegister(0)); \
- __ teq(i.TempRegister(1), Operand(0)); \
- __ b(ne, &binop); \
- __ dmb(ISH); \
- } while (0)
-
#define ASSEMBLE_IEEE754_BINOP(name) \
do { \
/* TODO(bmeurer): We should really get rid of this special instruction, */ \
@@ -2588,25 +2588,24 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
ASSEMBLE_ATOMIC_EXCHANGE_INTEGER(ldrex, strex);
break;
case kAtomicCompareExchangeInt8:
- __ uxtb(i.TempRegister(1), i.InputRegister(2));
+ __ uxtb(i.InputRegister(2), i.InputRegister(2));
ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER(ldrexb, strexb);
__ sxtb(i.OutputRegister(0), i.OutputRegister(0));
break;
case kAtomicCompareExchangeUint8:
- __ uxtb(i.TempRegister(1), i.InputRegister(2));
+ __ uxtb(i.InputRegister(2), i.InputRegister(2));
ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER(ldrexb, strexb);
break;
case kAtomicCompareExchangeInt16:
- __ uxth(i.TempRegister(1), i.InputRegister(2));
+ __ uxth(i.InputRegister(2), i.InputRegister(2));
ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER(ldrexh, strexh);
__ sxth(i.OutputRegister(0), i.OutputRegister(0));
break;
case kAtomicCompareExchangeUint16:
- __ uxth(i.TempRegister(1), i.InputRegister(2));
+ __ uxth(i.InputRegister(2), i.InputRegister(2));
ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER(ldrexh, strexh);
break;
case kAtomicCompareExchangeWord32:
- __ mov(i.TempRegister(1), i.InputRegister(2));
ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER(ldrex, strex);
break;
#define ATOMIC_BINOP_CASE(op, inst) \
@@ -2633,6 +2632,19 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
ATOMIC_BINOP_CASE(Or, orr)
ATOMIC_BINOP_CASE(Xor, eor)
#undef ATOMIC_BINOP_CASE
+#undef ASSEMBLE_CHECKED_LOAD_FP
+#undef ASSEMBLE_CHECKED_LOAD_INTEGER
+#undef ASSEMBLE_CHECKED_STORE_FP
+#undef ASSEMBLE_CHECKED_STORE_INTEGER
+#undef ASSEMBLE_ATOMIC_LOAD_INTEGER
+#undef ASSEMBLE_ATOMIC_STORE_INTEGER
+#undef ASSEMBLE_ATOMIC_EXCHANGE_INTEGER
+#undef ASSEMBLE_ATOMIC_COMPARE_EXCHANGE_INTEGER
+#undef ASSEMBLE_ATOMIC_BINOP
+#undef ASSEMBLE_IEEE754_BINOP
+#undef ASSEMBLE_IEEE754_UNOP
+#undef ASSEMBLE_NEON_NARROWING_OP
+#undef ASSEMBLE_NEON_PAIRWISE_OP
}
return kSuccess;
} // NOLINT(readability/fn_size)
@@ -3226,6 +3238,7 @@ void CodeGenerator::AssembleJumpTable(Label** targets, size_t target_count) {
}
#undef __
+#undef kScratchReg
} // namespace compiler
} // namespace internal
diff --git a/chromium/v8/src/compiler/arm/instruction-selector-arm.cc b/chromium/v8/src/compiler/arm/instruction-selector-arm.cc
index 75021eb9d31..391356e960b 100644
--- a/chromium/v8/src/compiler/arm/instruction-selector-arm.cc
+++ b/chromium/v8/src/compiler/arm/instruction-selector-arm.cc
@@ -2275,10 +2275,10 @@ void InstructionSelector::VisitAtomicExchange(Node* node) {
InstructionOperand inputs[3];
size_t input_count = 0;
inputs[input_count++] = g.UseUniqueRegister(base);
- inputs[input_count++] = g.UseUniqueRegister(index);
+ inputs[input_count++] = g.UseRegister(index);
inputs[input_count++] = g.UseUniqueRegister(value);
InstructionOperand outputs[1];
- outputs[0] = g.UseUniqueRegister(node);
+ outputs[0] = g.DefineAsRegister(node);
InstructionOperand temp[1];
temp[0] = g.TempRegister();
InstructionCode code = opcode | AddressingModeField::encode(addressing_mode);
@@ -2312,16 +2312,15 @@ void InstructionSelector::VisitAtomicCompareExchange(Node* node) {
InstructionOperand inputs[4];
size_t input_count = 0;
inputs[input_count++] = g.UseUniqueRegister(base);
- inputs[input_count++] = g.UseUniqueRegister(index);
+ inputs[input_count++] = g.UseRegister(index);
inputs[input_count++] = g.UseUniqueRegister(old_value);
inputs[input_count++] = g.UseUniqueRegister(new_value);
InstructionOperand outputs[1];
- outputs[0] = g.UseUniqueRegister(node);
- InstructionOperand temp[2];
+ outputs[0] = g.DefineAsRegister(node);
+ InstructionOperand temp[1];
temp[0] = g.TempRegister();
- temp[1] = g.TempRegister();
InstructionCode code = opcode | AddressingModeField::encode(addressing_mode);
- Emit(code, 1, outputs, input_count, inputs, 2, temp);
+ Emit(code, 1, outputs, input_count, inputs, 1, temp);
}
void InstructionSelector::VisitAtomicBinaryOperation(
@@ -2352,15 +2351,16 @@ void InstructionSelector::VisitAtomicBinaryOperation(
InstructionOperand inputs[3];
size_t input_count = 0;
inputs[input_count++] = g.UseUniqueRegister(base);
- inputs[input_count++] = g.UseUniqueRegister(index);
+ inputs[input_count++] = g.UseRegister(index);
inputs[input_count++] = g.UseUniqueRegister(value);
InstructionOperand outputs[1];
- outputs[0] = g.UseUniqueRegister(node);
+ outputs[0] = g.DefineAsRegister(node);
InstructionOperand temps[2];
- temps[0] = g.TempRegister();
- temps[1] = g.TempRegister();
+ size_t temp_count = 0;
+ temps[temp_count++] = g.TempRegister();
+ temps[temp_count++] = g.TempRegister();
InstructionCode code = opcode | AddressingModeField::encode(addressing_mode);
- Emit(code, 1, outputs, input_count, inputs, 2, temps);
+ Emit(code, 1, outputs, input_count, inputs, temp_count, temps);
}
#define VISIT_ATOMIC_BINOP(op) \
diff --git a/chromium/v8/src/compiler/code-assembler.cc b/chromium/v8/src/compiler/code-assembler.cc
index aa3ba471973..a0ed0af93db 100644
--- a/chromium/v8/src/compiler/code-assembler.cc
+++ b/chromium/v8/src/compiler/code-assembler.cc
@@ -1150,6 +1150,25 @@ Node* CodeAssembler::CallCFunction3WithCallerSavedRegisters(
mode);
}
+Node* CodeAssembler::CallCFunction4(
+ MachineType return_type, MachineType arg0_type, MachineType arg1_type,
+ MachineType arg2_type, MachineType arg3_type, Node* function, Node* arg0,
+ Node* arg1, Node* arg2, Node* arg3) {
+ return raw_assembler()->CallCFunction4(return_type, arg0_type, arg1_type,
+ arg2_type, arg3_type, function, arg0,
+ arg1, arg2, arg3);
+}
+
+Node* CodeAssembler::CallCFunction5(
+ MachineType return_type, MachineType arg0_type, MachineType arg1_type,
+ MachineType arg2_type, MachineType arg3_type, MachineType arg4_type,
+ Node* function, Node* arg0, Node* arg1, Node* arg2, Node* arg3,
+ Node* arg4) {
+ return raw_assembler()->CallCFunction5(
+ return_type, arg0_type, arg1_type, arg2_type, arg3_type, arg4_type,
+ function, arg0, arg1, arg2, arg3, arg4);
+}
+
Node* CodeAssembler::CallCFunction6(
MachineType return_type, MachineType arg0_type, MachineType arg1_type,
MachineType arg2_type, MachineType arg3_type, MachineType arg4_type,
diff --git a/chromium/v8/src/compiler/code-assembler.h b/chromium/v8/src/compiler/code-assembler.h
index 159d4d7c12b..64e959a1c09 100644
--- a/chromium/v8/src/compiler/code-assembler.h
+++ b/chromium/v8/src/compiler/code-assembler.h
@@ -805,6 +805,19 @@ class V8_EXPORT_PRIVATE CodeAssembler {
MachineType arg2_type, Node* function, Node* arg0, Node* arg1, Node* arg2,
SaveFPRegsMode mode);
+ // Call to a C function with four arguments.
+ Node* CallCFunction4(MachineType return_type, MachineType arg0_type,
+ MachineType arg1_type, MachineType arg2_type,
+ MachineType arg3_type, Node* function, Node* arg0,
+ Node* arg1, Node* arg2, Node* arg3);
+
+ // Call to a C function with five arguments.
+ Node* CallCFunction5(MachineType return_type, MachineType arg0_type,
+ MachineType arg1_type, MachineType arg2_type,
+ MachineType arg3_type, MachineType arg4_type,
+ Node* function, Node* arg0, Node* arg1, Node* arg2,
+ Node* arg3, Node* arg4);
+
// Call to a C function with six arguments.
Node* CallCFunction6(MachineType return_type, MachineType arg0_type,
MachineType arg1_type, MachineType arg2_type,
diff --git a/chromium/v8/src/compiler/common-operator.cc b/chromium/v8/src/compiler/common-operator.cc
index bda0e20ed58..1693e90ec24 100644
--- a/chromium/v8/src/compiler/common-operator.cc
+++ b/chromium/v8/src/compiler/common-operator.cc
@@ -1258,7 +1258,7 @@ ArgumentsStateType ArgumentsStateTypeOf(Operator const* op) {
return OpParameter<ArgumentsStateType>(op);
}
-const Operator* CommonOperatorBuilder::ObjectState(int object_id,
+const Operator* CommonOperatorBuilder::ObjectState(uint32_t object_id,
int pointer_slots) {
return new (zone()) Operator1<ObjectStateInfo>( // --
IrOpcode::kObjectState, Operator::kPure, // opcode
@@ -1268,7 +1268,7 @@ const Operator* CommonOperatorBuilder::ObjectState(int object_id,
}
const Operator* CommonOperatorBuilder::TypedObjectState(
- int object_id, const ZoneVector<MachineType>* types) {
+ uint32_t object_id, const ZoneVector<MachineType>* types) {
return new (zone()) Operator1<TypedObjectStateInfo>( // --
IrOpcode::kTypedObjectState, Operator::kPure, // opcode
"TypedObjectState", // name
diff --git a/chromium/v8/src/compiler/common-operator.h b/chromium/v8/src/compiler/common-operator.h
index 33ddaf96646..4f722676178 100644
--- a/chromium/v8/src/compiler/common-operator.h
+++ b/chromium/v8/src/compiler/common-operator.h
@@ -125,7 +125,8 @@ V8_EXPORT_PRIVATE int ParameterIndexOf(const Operator* const);
const ParameterInfo& ParameterInfoOf(const Operator* const);
struct ObjectStateInfo final : std::pair<uint32_t, int> {
- using std::pair<uint32_t, int>::pair;
+ ObjectStateInfo(uint32_t object_id, int size)
+ : std::pair<uint32_t, int>(object_id, size) {}
uint32_t object_id() const { return first; }
int size() const { return second; }
};
@@ -134,7 +135,10 @@ size_t hash_value(ObjectStateInfo const& p);
struct TypedObjectStateInfo final
: std::pair<uint32_t, const ZoneVector<MachineType>*> {
- using std::pair<uint32_t, const ZoneVector<MachineType>*>::pair;
+ TypedObjectStateInfo(uint32_t object_id,
+ const ZoneVector<MachineType>* machine_types)
+ : std::pair<uint32_t, const ZoneVector<MachineType>*>(object_id,
+ machine_types) {}
uint32_t object_id() const { return first; }
const ZoneVector<MachineType>* machine_types() const { return second; }
};
@@ -403,8 +407,8 @@ class V8_EXPORT_PRIVATE CommonOperatorBuilder final
SparseInputMask bitmask);
const Operator* ArgumentsElementsState(ArgumentsStateType type);
const Operator* ArgumentsLengthState(ArgumentsStateType type);
- const Operator* ObjectState(int object_id, int pointer_slots);
- const Operator* TypedObjectState(int object_id,
+ const Operator* ObjectState(uint32_t object_id, int pointer_slots);
+ const Operator* TypedObjectState(uint32_t object_id,
const ZoneVector<MachineType>* types);
const Operator* FrameState(BailoutId bailout_id,
OutputFrameStateCombine state_combine,
diff --git a/chromium/v8/src/compiler/effect-control-linearizer.cc b/chromium/v8/src/compiler/effect-control-linearizer.cc
index 3e0ac820dd3..d886fda97a8 100644
--- a/chromium/v8/src/compiler/effect-control-linearizer.cc
+++ b/chromium/v8/src/compiler/effect-control-linearizer.cc
@@ -718,6 +718,9 @@ bool EffectControlLinearizer::TryWireInStateEffect(Node* node,
case IrOpcode::kObjectIsCallable:
result = LowerObjectIsCallable(node);
break;
+ case IrOpcode::kObjectIsConstructor:
+ result = LowerObjectIsConstructor(node);
+ break;
case IrOpcode::kObjectIsDetectableCallable:
result = LowerObjectIsDetectableCallable(node);
break;
@@ -1931,6 +1934,31 @@ Node* EffectControlLinearizer::LowerObjectIsCallable(Node* node) {
return done.PhiAt(0);
}
+Node* EffectControlLinearizer::LowerObjectIsConstructor(Node* node) {
+ Node* value = node->InputAt(0);
+
+ auto if_smi = __ MakeDeferredLabel();
+ auto done = __ MakeLabel(MachineRepresentation::kBit);
+
+ Node* check = ObjectIsSmi(value);
+ __ GotoIf(check, &if_smi);
+
+ Node* value_map = __ LoadField(AccessBuilder::ForMap(), value);
+ Node* value_bit_field =
+ __ LoadField(AccessBuilder::ForMapBitField(), value_map);
+ Node* vfalse =
+ __ Word32Equal(__ Int32Constant(1 << Map::kIsConstructor),
+ __ Word32And(value_bit_field,
+ __ Int32Constant(1 << Map::kIsConstructor)));
+ __ Goto(&done, vfalse);
+
+ __ Bind(&if_smi);
+ __ Goto(&done, __ Int32Constant(0));
+
+ __ Bind(&done);
+ return done.PhiAt(0);
+}
+
Node* EffectControlLinearizer::LowerObjectIsDetectableCallable(Node* node) {
Node* value = node->InputAt(0);
diff --git a/chromium/v8/src/compiler/effect-control-linearizer.h b/chromium/v8/src/compiler/effect-control-linearizer.h
index 46ef687d601..e17f097e9e6 100644
--- a/chromium/v8/src/compiler/effect-control-linearizer.h
+++ b/chromium/v8/src/compiler/effect-control-linearizer.h
@@ -86,6 +86,7 @@ class V8_EXPORT_PRIVATE EffectControlLinearizer {
Node* LowerCheckedTruncateTaggedToWord32(Node* node, Node* frame_state);
Node* LowerObjectIsArrayBufferView(Node* node);
Node* LowerObjectIsCallable(Node* node);
+ Node* LowerObjectIsConstructor(Node* node);
Node* LowerObjectIsDetectableCallable(Node* node);
Node* LowerObjectIsMinusZero(Node* node);
Node* LowerObjectIsNaN(Node* node);
diff --git a/chromium/v8/src/compiler/escape-analysis.cc b/chromium/v8/src/compiler/escape-analysis.cc
index 45829734c5d..ab2b06a9528 100644
--- a/chromium/v8/src/compiler/escape-analysis.cc
+++ b/chromium/v8/src/compiler/escape-analysis.cc
@@ -125,7 +125,18 @@ class VariableTracker {
public:
Scope(VariableTracker* tracker, Node* node, Reduction* reduction);
~Scope();
- Node* Get(Variable var) { return current_state_.Get(var); }
+ Maybe<Node*> Get(Variable var) {
+ Node* node = current_state_.Get(var);
+ if (node && node->opcode() == IrOpcode::kDead) {
+ // TODO(tebbi): We use {Dead} as a sentinel for uninitialized memory.
+ // Reading uninitialized memory can only happen in unreachable code. In
+ // this case, we have to mark the object as escaping to avoid dead nodes
+ // in the graph. This is a workaround that should be removed once we can
+ // handle dead nodes everywhere.
+ return Nothing<Node*>();
+ }
+ return Just(node);
+ }
void Set(Variable var, Node* node) { current_state_.Set(var, node); }
private:
@@ -585,14 +596,12 @@ void ReduceNode(const Operator* op, EscapeAnalysisTracker::Scope* current,
Node* object = current->ValueInput(0);
const VirtualObject* vobject = current->GetVirtualObject(object);
Variable var;
+ Node* value;
if (vobject && !vobject->HasEscaped() &&
- vobject->FieldAt(OffsetOfFieldAccess(op)).To(&var)) {
- current->SetReplacement(current->Get(var));
+ vobject->FieldAt(OffsetOfFieldAccess(op)).To(&var) &&
+ current->Get(var).To(&value)) {
+ current->SetReplacement(value);
} else {
- // TODO(tebbi): At the moment, we mark objects as escaping if there
- // is a load from an invalid location to avoid dead nodes. This is a
- // workaround that should be removed once we can handle dead nodes
- // everywhere.
current->SetEscaped(object);
}
break;
@@ -603,10 +612,11 @@ void ReduceNode(const Operator* op, EscapeAnalysisTracker::Scope* current,
const VirtualObject* vobject = current->GetVirtualObject(object);
int offset;
Variable var;
+ Node* value;
if (vobject && !vobject->HasEscaped() &&
OffsetOfElementsAccess(op, index).To(&offset) &&
- vobject->FieldAt(offset).To(&var)) {
- current->SetReplacement(current->Get(var));
+ vobject->FieldAt(offset).To(&var) && current->Get(var).To(&value)) {
+ current->SetReplacement(value);
} else {
current->SetEscaped(object);
}
@@ -656,9 +666,11 @@ void ReduceNode(const Operator* op, EscapeAnalysisTracker::Scope* current,
Node* checked = current->ValueInput(0);
const VirtualObject* vobject = current->GetVirtualObject(checked);
Variable map_field;
+ Node* map;
if (vobject && !vobject->HasEscaped() &&
- vobject->FieldAt(HeapObject::kMapOffset).To(&map_field)) {
- if (Node* map = current->Get(map_field)) {
+ vobject->FieldAt(HeapObject::kMapOffset).To(&map_field) &&
+ current->Get(map_field).To(&map)) {
+ if (map) {
Type* const map_type = NodeProperties::GetType(map);
if (map_type->IsHeapConstant() &&
params.maps().contains(ZoneHandleSet<Map>(bit_cast<Handle<Map>>(
@@ -679,9 +691,11 @@ void ReduceNode(const Operator* op, EscapeAnalysisTracker::Scope* current,
Node* object = current->ValueInput(0);
const VirtualObject* vobject = current->GetVirtualObject(object);
Variable map_field;
+ Node* object_map;
if (vobject && !vobject->HasEscaped() &&
- vobject->FieldAt(HeapObject::kMapOffset).To(&map_field)) {
- if (Node* object_map = current->Get(map_field)) {
+ vobject->FieldAt(HeapObject::kMapOffset).To(&map_field) &&
+ current->Get(map_field).To(&object_map)) {
+ if (object_map) {
current->SetReplacement(LowerCompareMapsWithoutLoad(
object_map, CompareMapsParametersOf(op), jsgraph));
break;
diff --git a/chromium/v8/src/compiler/escape-analysis.h b/chromium/v8/src/compiler/escape-analysis.h
index e0d65cfacc1..504729bc811 100644
--- a/chromium/v8/src/compiler/escape-analysis.h
+++ b/chromium/v8/src/compiler/escape-analysis.h
@@ -130,7 +130,10 @@ class VirtualObject : public Dependable {
}
CHECK(!HasEscaped());
if (offset >= size()) {
- // This can only happen in unreachable code.
+ // TODO(tebbi): Reading out-of-bounds can only happen in unreachable
+ // code. In this case, we have to mark the object as escaping to avoid
+ // dead nodes in the graph. This is a workaround that should be removed
+ // once we can handle dead nodes everywhere.
return Nothing<Variable>();
}
return Just(fields_.at(offset / kPointerSize));
diff --git a/chromium/v8/src/compiler/js-call-reducer.cc b/chromium/v8/src/compiler/js-call-reducer.cc
index c8f2c9789df..d8fcf4553af 100644
--- a/chromium/v8/src/compiler/js-call-reducer.cc
+++ b/chromium/v8/src/compiler/js-call-reducer.cc
@@ -1298,6 +1298,56 @@ Reduction JSCallReducer::ReduceCallOrConstructWithArrayLikeOrSpread(
} else {
NodeProperties::ChangeOp(
node, javascript()->Construct(arity + 2, frequency, feedback));
+ Node* new_target = NodeProperties::GetValueInput(node, arity + 1);
+ Node* frame_state = NodeProperties::GetFrameStateInput(node);
+ Node* context = NodeProperties::GetContextInput(node);
+ Node* effect = NodeProperties::GetEffectInput(node);
+ Node* control = NodeProperties::GetControlInput(node);
+
+ // Check whether the given new target value is a constructor function. The
+ // replacement {JSConstruct} operator only checks the passed target value
+ // but relies on the new target value to be implicitly valid.
+ Node* check =
+ graph()->NewNode(simplified()->ObjectIsConstructor(), new_target);
+ Node* check_branch =
+ graph()->NewNode(common()->Branch(BranchHint::kTrue), check, control);
+ Node* check_fail = graph()->NewNode(common()->IfFalse(), check_branch);
+ Node* check_throw = check_fail =
+ graph()->NewNode(javascript()->CallRuntime(Runtime::kThrowTypeError, 2),
+ jsgraph()->Constant(MessageTemplate::kNotConstructor),
+ new_target, context, frame_state, effect, check_fail);
+ control = graph()->NewNode(common()->IfTrue(), check_branch);
+ NodeProperties::ReplaceControlInput(node, control);
+
+ // Rewire potential exception edges.
+ Node* on_exception = nullptr;
+ if (NodeProperties::IsExceptionalCall(node, &on_exception)) {
+ // Create appropriate {IfException} and {IfSuccess} nodes.
+ Node* if_exception =
+ graph()->NewNode(common()->IfException(), check_throw, check_fail);
+ check_fail = graph()->NewNode(common()->IfSuccess(), check_fail);
+
+ // Join the exception edges.
+ Node* merge =
+ graph()->NewNode(common()->Merge(2), if_exception, on_exception);
+ Node* ephi = graph()->NewNode(common()->EffectPhi(2), if_exception,
+ on_exception, merge);
+ Node* phi =
+ graph()->NewNode(common()->Phi(MachineRepresentation::kTagged, 2),
+ if_exception, on_exception, merge);
+ ReplaceWithValue(on_exception, phi, ephi, merge);
+ merge->ReplaceInput(1, on_exception);
+ ephi->ReplaceInput(1, on_exception);
+ phi->ReplaceInput(1, on_exception);
+ }
+
+ // The above %ThrowTypeError runtime call is an unconditional throw, making
+ // it impossible to return a successful completion in this case. We simply
+ // connect the successful completion to the graph end.
+ Node* terminate =
+ graph()->NewNode(common()->Throw(), check_throw, check_fail);
+ NodeProperties::MergeControlToEnd(graph(), common(), terminate);
+
Reduction const reduction = ReduceJSConstruct(node);
return reduction.Changed() ? reduction : Changed(node);
}
diff --git a/chromium/v8/src/compiler/js-create-lowering.cc b/chromium/v8/src/compiler/js-create-lowering.cc
index d740f7681cb..bd4f1069abb 100644
--- a/chromium/v8/src/compiler/js-create-lowering.cc
+++ b/chromium/v8/src/compiler/js-create-lowering.cc
@@ -255,13 +255,14 @@ Reduction JSCreateLowering::ReduceJSCreate(Node* node) {
Node* const control = NodeProperties::GetControlInput(node);
// Extract constructor and original constructor function.
if (target_type->IsHeapConstant() && new_target_type->IsHeapConstant() &&
+ target_type->AsHeapConstant()->Value()->IsJSFunction() &&
new_target_type->AsHeapConstant()->Value()->IsJSFunction()) {
Handle<JSFunction> constructor =
Handle<JSFunction>::cast(target_type->AsHeapConstant()->Value());
+ if (!constructor->IsConstructor()) return NoChange();
Handle<JSFunction> original_constructor =
Handle<JSFunction>::cast(new_target_type->AsHeapConstant()->Value());
- DCHECK(constructor->IsConstructor());
- DCHECK(original_constructor->IsConstructor());
+ if (!original_constructor->IsConstructor()) return NoChange();
// Check if we can inline the allocation.
if (IsAllocationInlineable(constructor, original_constructor)) {
diff --git a/chromium/v8/src/compiler/js-native-context-specialization.cc b/chromium/v8/src/compiler/js-native-context-specialization.cc
index 18093ec9e7e..06f059e24ea 100644
--- a/chromium/v8/src/compiler/js-native-context-specialization.cc
+++ b/chromium/v8/src/compiler/js-native-context-specialization.cc
@@ -2438,14 +2438,18 @@ Node* JSNativeContextSpecialization::BuildExtendPropertiesBackingStore(
jsgraph()->SmiConstant(PropertyArray::kNoHashSentinel));
hash = graph()->NewNode(common()->TypeGuard(Type::SignedSmall()), hash,
control);
+ hash =
+ graph()->NewNode(simplified()->NumberShiftLeft(), hash,
+ jsgraph()->Constant(PropertyArray::HashField::kShift));
} else {
hash = effect = graph()->NewNode(
simplified()->LoadField(AccessBuilder::ForPropertyArrayLengthAndHash()),
properties, effect, control);
effect = graph()->NewNode(
common()->BeginRegion(RegionObservability::kNotObservable), effect);
- hash = graph()->NewNode(simplified()->NumberBitwiseAnd(), hash,
- jsgraph()->Constant(JSReceiver::kHashMask));
+ hash =
+ graph()->NewNode(simplified()->NumberBitwiseAnd(), hash,
+ jsgraph()->Constant(PropertyArray::HashField::kMask));
}
Node* new_length_and_hash = graph()->NewNode(
diff --git a/chromium/v8/src/compiler/js-typed-lowering.cc b/chromium/v8/src/compiler/js-typed-lowering.cc
index 73db9790015..6f50ba15a3c 100644
--- a/chromium/v8/src/compiler/js-typed-lowering.cc
+++ b/chromium/v8/src/compiler/js-typed-lowering.cc
@@ -668,6 +668,7 @@ Reduction JSTypedLowering::ReduceCreateConsString(Node* node) {
// Morph the {node} into a {FinishRegion}.
ReplaceWithValue(node, node, node, control);
+ NodeProperties::SetType(value, NodeProperties::GetType(node));
node->ReplaceInput(0, value);
node->ReplaceInput(1, effect);
node->TrimInputCount(2);
diff --git a/chromium/v8/src/compiler/opcodes.h b/chromium/v8/src/compiler/opcodes.h
index ef0a517001e..97f91b8cacc 100644
--- a/chromium/v8/src/compiler/opcodes.h
+++ b/chromium/v8/src/compiler/opcodes.h
@@ -355,6 +355,7 @@
V(TransitionAndStoreElement) \
V(ObjectIsArrayBufferView) \
V(ObjectIsCallable) \
+ V(ObjectIsConstructor) \
V(ObjectIsDetectableCallable) \
V(ObjectIsMinusZero) \
V(ObjectIsNaN) \
diff --git a/chromium/v8/src/compiler/raw-machine-assembler.cc b/chromium/v8/src/compiler/raw-machine-assembler.cc
index 89190f40a7d..b685fc5d66f 100644
--- a/chromium/v8/src/compiler/raw-machine-assembler.cc
+++ b/chromium/v8/src/compiler/raw-machine-assembler.cc
@@ -301,6 +301,41 @@ Node* RawMachineAssembler::CallCFunction3WithCallerSavedRegisters(
arg0, arg1, arg2);
}
+Node* RawMachineAssembler::CallCFunction4(
+ MachineType return_type, MachineType arg0_type, MachineType arg1_type,
+ MachineType arg2_type, MachineType arg3_type, Node* function, Node* arg0,
+ Node* arg1, Node* arg2, Node* arg3) {
+ MachineSignature::Builder builder(zone(), 1, 4);
+ builder.AddReturn(return_type);
+ builder.AddParam(arg0_type);
+ builder.AddParam(arg1_type);
+ builder.AddParam(arg2_type);
+ builder.AddParam(arg3_type);
+ const CallDescriptor* descriptor =
+ Linkage::GetSimplifiedCDescriptor(zone(), builder.Build());
+
+ return AddNode(common()->Call(descriptor), function, arg0, arg1, arg2, arg3);
+}
+
+Node* RawMachineAssembler::CallCFunction5(
+ MachineType return_type, MachineType arg0_type, MachineType arg1_type,
+ MachineType arg2_type, MachineType arg3_type, MachineType arg4_type,
+ Node* function, Node* arg0, Node* arg1, Node* arg2, Node* arg3,
+ Node* arg4) {
+ MachineSignature::Builder builder(zone(), 1, 5);
+ builder.AddReturn(return_type);
+ builder.AddParam(arg0_type);
+ builder.AddParam(arg1_type);
+ builder.AddParam(arg2_type);
+ builder.AddParam(arg3_type);
+ builder.AddParam(arg4_type);
+ const CallDescriptor* descriptor =
+ Linkage::GetSimplifiedCDescriptor(zone(), builder.Build());
+
+ return AddNode(common()->Call(descriptor), function, arg0, arg1, arg2, arg3,
+ arg4);
+}
+
Node* RawMachineAssembler::CallCFunction6(
MachineType return_type, MachineType arg0_type, MachineType arg1_type,
MachineType arg2_type, MachineType arg3_type, MachineType arg4_type,
diff --git a/chromium/v8/src/compiler/raw-machine-assembler.h b/chromium/v8/src/compiler/raw-machine-assembler.h
index 8eaaf256239..3ee91a1ff9f 100644
--- a/chromium/v8/src/compiler/raw-machine-assembler.h
+++ b/chromium/v8/src/compiler/raw-machine-assembler.h
@@ -778,6 +778,17 @@ class V8_EXPORT_PRIVATE RawMachineAssembler {
MachineType return_type, MachineType arg0_type, MachineType arg1_type,
MachineType arg2_type, Node* function, Node* arg0, Node* arg1, Node* arg2,
SaveFPRegsMode mode = kSaveFPRegs);
+ // Call to a C function with four arguments.
+ Node* CallCFunction4(MachineType return_type, MachineType arg0_type,
+ MachineType arg1_type, MachineType arg2_type,
+ MachineType arg3_type, Node* function, Node* arg0,
+ Node* arg1, Node* arg2, Node* arg3);
+ // Call to a C function with five arguments.
+ Node* CallCFunction5(MachineType return_type, MachineType arg0_type,
+ MachineType arg1_type, MachineType arg2_type,
+ MachineType arg3_type, MachineType arg4_type,
+ Node* function, Node* arg0, Node* arg1, Node* arg2,
+ Node* arg3, Node* arg4);
// Call to a C function with six arguments.
Node* CallCFunction6(MachineType return_type, MachineType arg0_type,
MachineType arg1_type, MachineType arg2_type,
diff --git a/chromium/v8/src/compiler/simplified-lowering.cc b/chromium/v8/src/compiler/simplified-lowering.cc
index b11ce164e10..28634b8c9f3 100644
--- a/chromium/v8/src/compiler/simplified-lowering.cc
+++ b/chromium/v8/src/compiler/simplified-lowering.cc
@@ -2683,6 +2683,11 @@ class RepresentationSelector {
VisitObjectIs(node, Type::Callable(), lowering);
return;
}
+ case IrOpcode::kObjectIsConstructor: {
+ // TODO(turbofan): Introduce a Type::Constructor?
+ VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kBit);
+ return;
+ }
case IrOpcode::kObjectIsDetectableCallable: {
VisitObjectIs(node, Type::DetectableCallable(), lowering);
return;
@@ -2928,19 +2933,8 @@ class RepresentationSelector {
return SetOutput(node, MachineRepresentation::kTagged);
case IrOpcode::kFindOrderedHashMapEntry: {
- Type* const key_type = TypeOf(node->InputAt(1));
- if (key_type->Is(Type::Signed32())) {
- VisitBinop(node, UseInfo::AnyTagged(), UseInfo::TruncatingWord32(),
- MachineRepresentation::kWord32);
- if (lower()) {
- NodeProperties::ChangeOp(
- node,
- lowering->simplified()->FindOrderedHashMapEntryForInt32Key());
- }
- } else {
- VisitBinop(node, UseInfo::AnyTagged(),
- MachineRepresentation::kTaggedSigned);
- }
+ VisitBinop(node, UseInfo::AnyTagged(),
+ MachineRepresentation::kTaggedSigned);
return;
}
diff --git a/chromium/v8/src/compiler/simplified-operator.cc b/chromium/v8/src/compiler/simplified-operator.cc
index 45eca8ddf15..0d2333e126c 100644
--- a/chromium/v8/src/compiler/simplified-operator.cc
+++ b/chromium/v8/src/compiler/simplified-operator.cc
@@ -501,6 +501,7 @@ BailoutReason BailoutReasonOf(const Operator* op) {
V(TruncateTaggedToFloat64, Operator::kNoProperties, 1, 0) \
V(ObjectIsArrayBufferView, Operator::kNoProperties, 1, 0) \
V(ObjectIsCallable, Operator::kNoProperties, 1, 0) \
+ V(ObjectIsConstructor, Operator::kNoProperties, 1, 0) \
V(ObjectIsDetectableCallable, Operator::kNoProperties, 1, 0) \
V(ObjectIsMinusZero, Operator::kNoProperties, 1, 0) \
V(ObjectIsNaN, Operator::kNoProperties, 1, 0) \
diff --git a/chromium/v8/src/compiler/simplified-operator.h b/chromium/v8/src/compiler/simplified-operator.h
index 5a237a1f54c..6d43bcac505 100644
--- a/chromium/v8/src/compiler/simplified-operator.h
+++ b/chromium/v8/src/compiler/simplified-operator.h
@@ -437,6 +437,7 @@ class V8_EXPORT_PRIVATE SimplifiedOperatorBuilder final
const Operator* ObjectIsArrayBufferView();
const Operator* ObjectIsCallable();
+ const Operator* ObjectIsConstructor();
const Operator* ObjectIsDetectableCallable();
const Operator* ObjectIsMinusZero();
const Operator* ObjectIsNaN();
diff --git a/chromium/v8/src/compiler/typer.cc b/chromium/v8/src/compiler/typer.cc
index 9ea962b8659..2590342d2e4 100644
--- a/chromium/v8/src/compiler/typer.cc
+++ b/chromium/v8/src/compiler/typer.cc
@@ -289,6 +289,7 @@ class Typer::Visitor : public Reducer {
static Type* ObjectIsArrayBufferView(Type*, Typer*);
static Type* ObjectIsCallable(Type*, Typer*);
+ static Type* ObjectIsConstructor(Type*, Typer*);
static Type* ObjectIsDetectableCallable(Type*, Typer*);
static Type* ObjectIsMinusZero(Type*, Typer*);
static Type* ObjectIsNaN(Type*, Typer*);
@@ -523,6 +524,12 @@ Type* Typer::Visitor::ObjectIsCallable(Type* type, Typer* t) {
return Type::Boolean();
}
+Type* Typer::Visitor::ObjectIsConstructor(Type* type, Typer* t) {
+ // TODO(turbofan): Introduce a Type::Constructor?
+ if (!type->Maybe(Type::Callable())) return t->singleton_false_;
+ return Type::Boolean();
+}
+
Type* Typer::Visitor::ObjectIsDetectableCallable(Type* type, Typer* t) {
if (type->Is(Type::DetectableCallable())) return t->singleton_true_;
if (!type->Maybe(Type::DetectableCallable())) return t->singleton_false_;
@@ -1986,6 +1993,10 @@ Type* Typer::Visitor::TypeObjectIsCallable(Node* node) {
return TypeUnaryOp(node, ObjectIsCallable);
}
+Type* Typer::Visitor::TypeObjectIsConstructor(Node* node) {
+ return TypeUnaryOp(node, ObjectIsConstructor);
+}
+
Type* Typer::Visitor::TypeObjectIsDetectableCallable(Node* node) {
return TypeUnaryOp(node, ObjectIsDetectableCallable);
}
diff --git a/chromium/v8/src/compiler/verifier.cc b/chromium/v8/src/compiler/verifier.cc
index 541818c3d8f..5869a0d491c 100644
--- a/chromium/v8/src/compiler/verifier.cc
+++ b/chromium/v8/src/compiler/verifier.cc
@@ -1007,6 +1007,7 @@ void Verifier::Visitor::Check(Node* node) {
case IrOpcode::kObjectIsArrayBufferView:
case IrOpcode::kObjectIsCallable:
+ case IrOpcode::kObjectIsConstructor:
case IrOpcode::kObjectIsDetectableCallable:
case IrOpcode::kObjectIsMinusZero:
case IrOpcode::kObjectIsNaN:
diff --git a/chromium/v8/src/compiler/wasm-compiler.cc b/chromium/v8/src/compiler/wasm-compiler.cc
index 7bcdb5092a4..bc731b2bb8f 100644
--- a/chromium/v8/src/compiler/wasm-compiler.cc
+++ b/chromium/v8/src/compiler/wasm-compiler.cc
@@ -3221,6 +3221,10 @@ Node* WasmGraphBuilder::LoadMemSize() {
static_cast<int32_t>(offsetof(WasmContext, mem_size))),
*effect_, *control_);
*effect_ = mem_size;
+ if (jsgraph()->machine()->Is64()) {
+ mem_size = graph()->NewNode(jsgraph()->machine()->ChangeUint32ToUint64(),
+ mem_size);
+ }
return mem_size;
}
@@ -3235,8 +3239,13 @@ Node* WasmGraphBuilder::CurrentMemoryPages() {
// CurrentMemoryPages can not be called from asm.js.
DCHECK_EQ(wasm::kWasmOrigin, env_->module->origin());
DCHECK_NOT_NULL(*mem_size_);
+ Node* mem_size = *mem_size_;
+ if (jsgraph()->machine()->Is64()) {
+ mem_size = graph()->NewNode(jsgraph()->machine()->TruncateInt64ToInt32(),
+ mem_size);
+ }
return graph()->NewNode(
- jsgraph()->machine()->Word32Shr(), *mem_size_,
+ jsgraph()->machine()->Word32Shr(), mem_size,
jsgraph()->Int32Constant(WhichPowerOf2(wasm::WasmModule::kPageSize)));
}
@@ -3397,15 +3406,21 @@ void WasmGraphBuilder::BoundsCheckMem(MachineType memtype, Node* index,
// The end offset is larger than the smallest memory.
// Dynamically check the end offset against the actual memory size, which
// is not known at compile time.
- Node* cond = graph()->NewNode(
- jsgraph()->machine()->Uint32LessThanOrEqual(),
- jsgraph()->IntPtrConstant(static_cast<uintptr_t>(end_offset)),
- *mem_size_);
+ Node* cond;
+ if (jsgraph()->machine()->Is32()) {
+ cond = graph()->NewNode(jsgraph()->machine()->Uint32LessThanOrEqual(),
+ jsgraph()->Int32Constant(end_offset), *mem_size_);
+ } else {
+ cond = graph()->NewNode(
+ jsgraph()->machine()->Uint64LessThanOrEqual(),
+ jsgraph()->Int64Constant(static_cast<int64_t>(end_offset)),
+ *mem_size_);
+ }
TrapIfFalse(wasm::kTrapMemOutOfBounds, cond, position);
} else {
// The end offset is within the bounds of the smallest memory, so only
// one check is required. Check to see if the index is also a constant.
- Uint32Matcher m(index);
+ UintPtrMatcher m(index);
if (m.HasValue()) {
uint64_t index_val = m.Value();
if ((index_val + offset + access_size) <= min_size) {
@@ -3416,12 +3431,22 @@ void WasmGraphBuilder::BoundsCheckMem(MachineType memtype, Node* index,
}
}
- Node* effective_size =
- graph()->NewNode(jsgraph()->machine()->Int32Sub(), *mem_size_,
- jsgraph()->Int32Constant(end_offset - 1));
+ Node* effective_size;
+ if (jsgraph()->machine()->Is32()) {
+ effective_size =
+ graph()->NewNode(jsgraph()->machine()->Int32Sub(), *mem_size_,
+ jsgraph()->Int32Constant(end_offset - 1));
+ } else {
+ effective_size = graph()->NewNode(
+ jsgraph()->machine()->Int64Sub(), *mem_size_,
+ jsgraph()->Int64Constant(static_cast<int64_t>(end_offset - 1)));
+ }
+
+ const Operator* less = jsgraph()->machine()->Is32()
+ ? jsgraph()->machine()->Uint32LessThan()
+ : jsgraph()->machine()->Uint64LessThan();
- Node* cond = graph()->NewNode(jsgraph()->machine()->Uint32LessThan(), index,
- effective_size);
+ Node* cond = graph()->NewNode(less, index, effective_size);
TrapIfFalse(wasm::kTrapMemOutOfBounds, cond, position);
}
@@ -3475,6 +3500,10 @@ Node* WasmGraphBuilder::LoadMem(wasm::ValueType type, MachineType memtype,
wasm::WasmCodePosition position) {
Node* load;
+ if (jsgraph()->machine()->Is64()) {
+ index =
+ graph()->NewNode(jsgraph()->machine()->ChangeUint32ToUint64(), index);
+ }
// Wasm semantics throw on OOB. Introduce explicit bounds check.
if (!FLAG_wasm_trap_handler || !V8_TRAP_HANDLER_SUPPORTED) {
BoundsCheckMem(memtype, index, offset, position);
@@ -3530,6 +3559,10 @@ Node* WasmGraphBuilder::StoreMem(MachineType memtype, Node* index,
wasm::ValueType type) {
Node* store;
+ if (jsgraph()->machine()->Is64()) {
+ index =
+ graph()->NewNode(jsgraph()->machine()->ChangeUint32ToUint64(), index);
+ }
// Wasm semantics throw on OOB. Introduce explicit bounds check.
if (!FLAG_wasm_trap_handler || !V8_TRAP_HANDLER_SUPPORTED) {
BoundsCheckMem(memtype, index, offset, position);
@@ -3576,6 +3609,10 @@ Node* WasmGraphBuilder::BuildAsmjsLoadMem(MachineType type, Node* index) {
// asm.js semantics use CheckedLoad (i.e. OOB reads return 0ish).
DCHECK_NOT_NULL(*mem_size_);
DCHECK_NOT_NULL(*mem_start_);
+ if (jsgraph()->machine()->Is64()) {
+ index =
+ graph()->NewNode(jsgraph()->machine()->ChangeUint32ToUint64(), index);
+ }
const Operator* op = jsgraph()->machine()->CheckedLoad(type);
Node* load =
graph()->NewNode(op, *mem_start_, index, *mem_size_, *effect_, *control_);
@@ -3589,6 +3626,10 @@ Node* WasmGraphBuilder::BuildAsmjsStoreMem(MachineType type, Node* index,
// asm.js semantics use CheckedStore (i.e. ignore OOB writes).
DCHECK_NOT_NULL(*mem_size_);
DCHECK_NOT_NULL(*mem_start_);
+ if (jsgraph()->machine()->Is64()) {
+ index =
+ graph()->NewNode(jsgraph()->machine()->ChangeUint32ToUint64(), index);
+ }
const Operator* op =
jsgraph()->machine()->CheckedStore(type.representation());
Node* store = graph()->NewNode(op, *mem_start_, index, *mem_size_, val,
@@ -3609,7 +3650,7 @@ Node* WasmGraphBuilder::String(const char* string) {
Graph* WasmGraphBuilder::graph() { return jsgraph()->graph(); }
void WasmGraphBuilder::LowerInt64() {
- if (!jsgraph()->machine()->Is32()) return;
+ if (jsgraph()->machine()->Is64()) return;
Int64Lowering r(jsgraph()->graph(), jsgraph()->machine(), jsgraph()->common(),
jsgraph()->zone(), sig_);
r.LowerGraph();
diff --git a/chromium/v8/src/debug/debug-scope-iterator.cc b/chromium/v8/src/debug/debug-scope-iterator.cc
index 5dc377375ee..2e06dccab68 100644
--- a/chromium/v8/src/debug/debug-scope-iterator.cc
+++ b/chromium/v8/src/debug/debug-scope-iterator.cc
@@ -15,13 +15,22 @@ namespace v8 {
std::unique_ptr<debug::ScopeIterator> debug::ScopeIterator::CreateForFunction(
v8::Isolate* v8_isolate, v8::Local<v8::Function> v8_func) {
- internal::Handle<internal::JSFunction> func =
- internal::Handle<internal::JSFunction>::cast(Utils::OpenHandle(*v8_func));
+ internal::Handle<internal::JSReceiver> receiver =
+ internal::Handle<internal::JSReceiver>::cast(Utils::OpenHandle(*v8_func));
+
+ // Besides JSFunction and JSBoundFunction, {v8_func} could be an
+ // ObjectTemplate with a CallAsFunctionHandler. We only handle plain
+ // JSFunctions.
+ if (!receiver->IsJSFunction()) return nullptr;
+
+ internal::Handle<internal::JSFunction> function =
+ internal::Handle<internal::JSFunction>::cast(receiver);
+
// Blink has function objects with callable map, JS_SPECIAL_API_OBJECT_TYPE
// but without context on heap.
- if (!func->has_context()) return nullptr;
+ if (!function->has_context()) return nullptr;
return std::unique_ptr<debug::ScopeIterator>(new internal::DebugScopeIterator(
- reinterpret_cast<internal::Isolate*>(v8_isolate), func));
+ reinterpret_cast<internal::Isolate*>(v8_isolate), function));
}
std::unique_ptr<debug::ScopeIterator>
diff --git a/chromium/v8/src/deoptimizer.cc b/chromium/v8/src/deoptimizer.cc
index b5d77803ab1..125ca932f70 100644
--- a/chromium/v8/src/deoptimizer.cc
+++ b/chromium/v8/src/deoptimizer.cc
@@ -2759,8 +2759,7 @@ void TranslatedValue::Handlify() {
TranslatedFrame TranslatedFrame::InterpretedFrame(
BailoutId bytecode_offset, SharedFunctionInfo* shared_info, int height) {
- TranslatedFrame frame(kInterpretedFunction, shared_info->GetIsolate(),
- shared_info, height);
+ TranslatedFrame frame(kInterpretedFunction, shared_info, height);
frame.node_id_ = bytecode_offset;
return frame;
}
@@ -2769,36 +2768,32 @@ TranslatedFrame TranslatedFrame::InterpretedFrame(
TranslatedFrame TranslatedFrame::AccessorFrame(
Kind kind, SharedFunctionInfo* shared_info) {
DCHECK(kind == kSetter || kind == kGetter);
- return TranslatedFrame(kind, shared_info->GetIsolate(), shared_info);
+ return TranslatedFrame(kind, shared_info);
}
TranslatedFrame TranslatedFrame::ArgumentsAdaptorFrame(
SharedFunctionInfo* shared_info, int height) {
- return TranslatedFrame(kArgumentsAdaptor, shared_info->GetIsolate(),
- shared_info, height);
+ return TranslatedFrame(kArgumentsAdaptor, shared_info, height);
}
TranslatedFrame TranslatedFrame::ConstructStubFrame(
BailoutId bailout_id, SharedFunctionInfo* shared_info, int height) {
- TranslatedFrame frame(kConstructStub, shared_info->GetIsolate(), shared_info,
- height);
+ TranslatedFrame frame(kConstructStub, shared_info, height);
frame.node_id_ = bailout_id;
return frame;
}
TranslatedFrame TranslatedFrame::BuiltinContinuationFrame(
BailoutId bailout_id, SharedFunctionInfo* shared_info, int height) {
- TranslatedFrame frame(kBuiltinContinuation, shared_info->GetIsolate(),
- shared_info, height);
+ TranslatedFrame frame(kBuiltinContinuation, shared_info, height);
frame.node_id_ = bailout_id;
return frame;
}
TranslatedFrame TranslatedFrame::JavaScriptBuiltinContinuationFrame(
BailoutId bailout_id, SharedFunctionInfo* shared_info, int height) {
- TranslatedFrame frame(kJavaScriptBuiltinContinuation,
- shared_info->GetIsolate(), shared_info, height);
+ TranslatedFrame frame(kJavaScriptBuiltinContinuation, shared_info, height);
frame.node_id_ = bailout_id;
return frame;
}
@@ -3462,10 +3457,32 @@ class TranslatedState::CapturedObjectMaterializer {
int field_count)
: state_(state), frame_index_(frame_index), field_count_(field_count) {}
+ // Ensure the properties never contain mutable heap numbers. This is necessary
+ // because the deoptimizer generalizes all maps to tagged representation
+ // fields (so mutable heap numbers are not allowed).
+ static void EnsurePropertiesGeneralized(Handle<Object> properties_or_hash) {
+ if (properties_or_hash->IsPropertyArray()) {
+ Handle<PropertyArray> properties =
+ Handle<PropertyArray>::cast(properties_or_hash);
+ int length = properties->length();
+ for (int i = 0; i < length; i++) {
+ if (properties->get(i)->IsMutableHeapNumber()) {
+ Handle<HeapObject> box(HeapObject::cast(properties->get(i)));
+ box->set_map(properties->GetIsolate()->heap()->heap_number_map());
+ }
+ }
+ }
+ }
+
Handle<Object> FieldAt(int* value_index) {
CHECK(field_count_ > 0);
--field_count_;
- return state_->MaterializeAt(frame_index_, value_index);
+ Handle<Object> object = state_->MaterializeAt(frame_index_, value_index);
+ // This is a big hammer to make sure that the materialized objects do not
+ // have property arrays with mutable heap numbers (mutable heap numbers are
+ // bad because we generalize maps for all materialized objects).
+ EnsurePropertiesGeneralized(object);
+ return object;
}
~CapturedObjectMaterializer() { CHECK_EQ(0, field_count_); }
diff --git a/chromium/v8/src/deoptimizer.h b/chromium/v8/src/deoptimizer.h
index a60c40db571..dcc56198124 100644
--- a/chromium/v8/src/deoptimizer.h
+++ b/chromium/v8/src/deoptimizer.h
@@ -205,14 +205,12 @@ class TranslatedFrame {
static void AdvanceIterator(std::deque<TranslatedValue>::iterator* iter);
- TranslatedFrame(Kind kind, Isolate* isolate,
- SharedFunctionInfo* shared_info = nullptr, int height = 0)
+ TranslatedFrame(Kind kind, SharedFunctionInfo* shared_info = nullptr,
+ int height = 0)
: kind_(kind),
node_id_(BailoutId::None()),
raw_shared_info_(shared_info),
- height_(height),
- isolate_(isolate) {}
-
+ height_(height) {}
void Add(const TranslatedValue& value) { values_.push_back(value); }
void Handlify();
@@ -222,7 +220,6 @@ class TranslatedFrame {
SharedFunctionInfo* raw_shared_info_;
Handle<SharedFunctionInfo> shared_info_;
int height_;
- Isolate* isolate_;
typedef std::deque<TranslatedValue> ValuesContainer;
diff --git a/chromium/v8/src/elements.cc b/chromium/v8/src/elements.cc
index 577f77ddc84..8c692ecab82 100644
--- a/chromium/v8/src/elements.cc
+++ b/chromium/v8/src/elements.cc
@@ -1020,13 +1020,14 @@ class ElementsAccessorBase : public ElementsAccessor {
}
Object* CopyElements(Handle<JSReceiver> source, Handle<JSObject> destination,
- size_t length) final {
- return Subclass::CopyElementsHandleImpl(source, destination, length);
+ size_t length, uint32_t offset) final {
+ return Subclass::CopyElementsHandleImpl(source, destination, length,
+ offset);
}
static Object* CopyElementsHandleImpl(Handle<JSReceiver> source,
Handle<JSObject> destination,
- size_t length) {
+ size_t length, uint32_t offset) {
UNREACHABLE();
}
@@ -3168,28 +3169,30 @@ class TypedElementsAccessor
template <typename SourceTraits>
static void CopyBetweenBackingStores(FixedTypedArrayBase* source,
- BackingStore* dest, size_t length) {
+ BackingStore* dest, size_t length,
+ uint32_t offset) {
FixedTypedArray<SourceTraits>* source_fta =
FixedTypedArray<SourceTraits>::cast(source);
for (uint32_t i = 0; i < length; i++) {
typename SourceTraits::ElementType elem = source_fta->get_scalar(i);
- dest->set(i, dest->from(elem));
+ dest->set(offset + i, dest->from(elem));
}
}
- static void CopyElementsHandleFromTypedArray(Handle<JSTypedArray> source,
- Handle<JSTypedArray> destination,
- size_t length) {
+ static void CopyElementsFromTypedArray(JSTypedArray* source,
+ JSTypedArray* destination,
+ size_t length, uint32_t offset) {
// The source is a typed array, so we know we don't need to do ToNumber
// side-effects, as the source elements will always be a number or
// undefined.
DisallowHeapAllocation no_gc;
- Handle<FixedTypedArrayBase> source_elements(
- FixedTypedArrayBase::cast(source->elements()));
- Handle<BackingStore> destination_elements(
- BackingStore::cast(destination->elements()));
+ FixedTypedArrayBase* source_elements =
+ FixedTypedArrayBase::cast(source->elements());
+ BackingStore* destination_elements =
+ BackingStore::cast(destination->elements());
+ DCHECK_LE(offset + source->length(), destination->length());
DCHECK_GE(destination->length(), source->length());
DCHECK(source->length()->IsSmi());
DCHECK_EQ(Smi::FromInt(static_cast<int>(length)), source->length());
@@ -3219,15 +3222,16 @@ class TypedElementsAccessor
// which have special conversion operations.
if (same_type || (same_size && both_are_simple)) {
size_t element_size = source->element_size();
- std::memcpy(dest_data, source_data, length * element_size);
+ std::memcpy(dest_data + offset * element_size, source_data,
+ length * element_size);
} else {
// We use scalar accessors below to avoid boxing/unboxing, so there are
// no allocations.
switch (source->GetElementsKind()) {
-#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
- case TYPE##_ELEMENTS: \
- CopyBetweenBackingStores<Type##ArrayTraits>( \
- *source_elements, *destination_elements, length); \
+#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
+ case TYPE##_ELEMENTS: \
+ CopyBetweenBackingStores<Type##ArrayTraits>( \
+ source_elements, destination_elements, length, offset); \
break;
TYPED_ARRAYS(TYPED_ARRAY_CASE)
default:
@@ -3238,23 +3242,27 @@ class TypedElementsAccessor
}
}
- static bool HoleyPrototypeLookupRequired(Isolate* isolate,
- Handle<JSArray> source) {
+ static bool HoleyPrototypeLookupRequired(Isolate* isolate, Context* context,
+ JSArray* source) {
+ DisallowHeapAllocation no_gc;
+ DisallowJavascriptExecution no_js(isolate);
+
Object* source_proto = source->map()->prototype();
+
// Null prototypes are OK - we don't need to do prototype chain lookups on
// them.
if (source_proto->IsNull(isolate)) return false;
if (source_proto->IsJSProxy()) return true;
- DCHECK(source_proto->IsJSObject());
- if (!isolate->is_initial_array_prototype(JSObject::cast(source_proto))) {
+ if (!context->is_initial_array_prototype(JSObject::cast(source_proto))) {
return true;
}
- return !isolate->IsFastArrayConstructorPrototypeChainIntact();
+
+ return !isolate->IsFastArrayConstructorPrototypeChainIntact(context);
}
- static bool TryCopyElementsHandleFastNumber(Handle<JSArray> source,
- Handle<JSTypedArray> destination,
- size_t length) {
+ static bool TryCopyElementsFastNumber(Context* context, JSArray* source,
+ JSTypedArray* destination,
+ size_t length, uint32_t offset) {
Isolate* isolate = source->GetIsolate();
DisallowHeapAllocation no_gc;
DisallowJavascriptExecution no_js(isolate);
@@ -3267,7 +3275,7 @@ class TypedElementsAccessor
// When the array has the original array prototype, and that prototype has
// not been changed in a way that would affect lookups, we can just convert
// the hole into undefined.
- if (HoleyPrototypeLookupRequired(isolate, source)) return false;
+ if (HoleyPrototypeLookupRequired(isolate, context, source)) return false;
Object* undefined = isolate->heap()->undefined_value();
@@ -3279,19 +3287,19 @@ class TypedElementsAccessor
Object* elem = source_store->get(i);
DCHECK(elem->IsSmi());
int int_value = Smi::ToInt(elem);
- dest->set(i, dest->from(int_value));
+ dest->set(offset + i, dest->from(int_value));
}
return true;
} else if (kind == HOLEY_SMI_ELEMENTS) {
FixedArray* source_store = FixedArray::cast(source->elements());
for (uint32_t i = 0; i < length; i++) {
if (source_store->is_the_hole(isolate, i)) {
- dest->SetValue(i, undefined);
+ dest->SetValue(offset + i, undefined);
} else {
Object* elem = source_store->get(i);
DCHECK(elem->IsSmi());
int int_value = Smi::ToInt(elem);
- dest->set(i, dest->from(int_value));
+ dest->set(offset + i, dest->from(int_value));
}
}
return true;
@@ -3305,7 +3313,7 @@ class TypedElementsAccessor
// Use the from_double conversion for this specific TypedArray type,
// rather than relying on C++ to convert elem.
double elem = source_store->get_scalar(i);
- dest->set(i, dest->from(elem));
+ dest->set(offset + i, dest->from(elem));
}
return true;
} else if (kind == HOLEY_DOUBLE_ELEMENTS) {
@@ -3313,10 +3321,10 @@ class TypedElementsAccessor
FixedDoubleArray::cast(source->elements());
for (uint32_t i = 0; i < length; i++) {
if (source_store->is_the_hole(i)) {
- dest->SetValue(i, undefined);
+ dest->SetValue(offset + i, undefined);
} else {
double elem = source_store->get_scalar(i);
- dest->set(i, dest->from(elem));
+ dest->set(offset + i, dest->from(elem));
}
}
return true;
@@ -3326,7 +3334,7 @@ class TypedElementsAccessor
static Object* CopyElementsHandleSlow(Handle<JSReceiver> source,
Handle<JSTypedArray> destination,
- size_t length) {
+ size_t length, uint32_t offset) {
Isolate* isolate = source->GetIsolate();
Handle<BackingStore> destination_elements(
BackingStore::cast(destination->elements()));
@@ -3336,13 +3344,21 @@ class TypedElementsAccessor
ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, elem,
Object::GetProperty(&it));
ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, elem, Object::ToNumber(elem));
- // We don't need to check for buffer neutering here, because the
- // source cannot be a TypedArray.
+
+ if (V8_UNLIKELY(destination->WasNeutered())) {
+ const char* op = "set";
+ const MessageTemplate::Template message =
+ MessageTemplate::kDetachedOperation;
+ Handle<String> operation =
+ isolate->factory()->NewStringFromAsciiChecked(op);
+ THROW_NEW_ERROR_RETURN_FAILURE(isolate,
+ NewTypeError(message, operation));
+ }
// The spec says we store the length, then get each element, so we don't
// need to check changes to length.
- destination_elements->SetValue(i, *elem);
+ destination_elements->SetValue(offset + i, *elem);
}
- return Smi::kZero;
+ return *isolate->factory()->undefined_value();
}
// This doesn't guarantee that the destination array will be completely
@@ -3350,28 +3366,32 @@ class TypedElementsAccessor
// that is required.
static Object* CopyElementsHandleImpl(Handle<JSReceiver> source,
Handle<JSObject> destination,
- size_t length) {
+ size_t length, uint32_t offset) {
+ Isolate* isolate = destination->GetIsolate();
Handle<JSTypedArray> destination_ta =
Handle<JSTypedArray>::cast(destination);
+ DCHECK_LE(offset + length, destination_ta->length_value());
+
+ if (length == 0) return *isolate->factory()->undefined_value();
// All conversions from TypedArrays can be done without allocation.
if (source->IsJSTypedArray()) {
Handle<JSTypedArray> source_ta = Handle<JSTypedArray>::cast(source);
- CopyElementsHandleFromTypedArray(source_ta, destination_ta, length);
- return Smi::kZero;
+ CopyElementsFromTypedArray(*source_ta, *destination_ta, length, offset);
+ return *isolate->factory()->undefined_value();
}
// Fast cases for packed numbers kinds where we don't need to allocate.
if (source->IsJSArray()) {
Handle<JSArray> source_array = Handle<JSArray>::cast(source);
- if (TryCopyElementsHandleFastNumber(source_array, destination_ta,
- length)) {
- return Smi::kZero;
+ if (TryCopyElementsFastNumber(isolate->context(), *source_array,
+ *destination_ta, length, offset)) {
+ return *isolate->factory()->undefined_value();
}
}
// Final generic case that handles prototype chain lookups, getters, proxies
// and observable side effects via valueOf, etc.
- return CopyElementsHandleSlow(source, destination_ta, length);
+ return CopyElementsHandleSlow(source, destination_ta, length, offset);
}
};
@@ -4307,6 +4327,43 @@ MaybeHandle<Object> ArrayConstructInitializeElements(Handle<JSArray> array,
return array;
}
+void CopyFastNumberJSArrayElementsToTypedArray(Context* context,
+ JSArray* source,
+ JSTypedArray* destination,
+ uintptr_t length,
+ uintptr_t offset) {
+ DCHECK(context->IsContext());
+ DCHECK(source->IsJSArray());
+ DCHECK(destination->IsJSTypedArray());
+
+ switch (destination->GetElementsKind()) {
+#define TYPED_ARRAYS_CASE(Type, type, TYPE, ctype, size) \
+ case TYPE##_ELEMENTS: \
+ CHECK(Fixed##Type##ElementsAccessor::TryCopyElementsFastNumber( \
+ context, source, destination, length, static_cast<uint32_t>(offset))); \
+ break;
+ TYPED_ARRAYS(TYPED_ARRAYS_CASE)
+#undef TYPED_ARRAYS_CASE
+ default:
+ UNREACHABLE();
+ }
+}
+
+void CopyTypedArrayElementsToTypedArray(JSTypedArray* source,
+ JSTypedArray* destination,
+ uintptr_t length, uintptr_t offset) {
+ switch (destination->GetElementsKind()) {
+#define TYPED_ARRAYS_CASE(Type, type, TYPE, ctype, size) \
+ case TYPE##_ELEMENTS: \
+ Fixed##Type##ElementsAccessor::CopyElementsFromTypedArray( \
+ source, destination, length, static_cast<uint32_t>(offset)); \
+ break;
+ TYPED_ARRAYS(TYPED_ARRAYS_CASE)
+#undef TYPED_ARRAYS_CASE
+ default:
+ UNREACHABLE();
+ }
+}
void ElementsAccessor::InitializeOncePerProcess() {
static ElementsAccessor* accessor_array[] = {
diff --git a/chromium/v8/src/elements.h b/chromium/v8/src/elements.h
index a43b6f73ad4..3f81be0c51b 100644
--- a/chromium/v8/src/elements.h
+++ b/chromium/v8/src/elements.h
@@ -192,7 +192,8 @@ class ElementsAccessor {
Handle<FixedArrayBase> destination, int size) = 0;
virtual Object* CopyElements(Handle<JSReceiver> source,
- Handle<JSObject> destination, size_t length) = 0;
+ Handle<JSObject> destination, size_t length,
+ uint32_t offset = 0) = 0;
virtual Handle<FixedArray> CreateListFromArrayLike(Isolate* isolate,
Handle<JSObject> object,
@@ -236,6 +237,17 @@ MUST_USE_RESULT MaybeHandle<Object> ArrayConstructInitializeElements(
Handle<JSArray> array,
Arguments* args);
+// Called directly from CSA.
+class JSTypedArray;
+void CopyFastNumberJSArrayElementsToTypedArray(Context* context,
+ JSArray* source,
+ JSTypedArray* destination,
+ uintptr_t length,
+ uintptr_t offset);
+void CopyTypedArrayElementsToTypedArray(JSTypedArray* source,
+ JSTypedArray* destination,
+ uintptr_t length, uintptr_t offset);
+
} // namespace internal
} // namespace v8
diff --git a/chromium/v8/src/external-reference-table.cc b/chromium/v8/src/external-reference-table.cc
index 5d3d0728eda..eeb668a25f2 100644
--- a/chromium/v8/src/external-reference-table.cc
+++ b/chromium/v8/src/external-reference-table.cc
@@ -268,6 +268,13 @@ void ExternalReferenceTable::AddReferences(Isolate* isolate) {
"orderedhashmap_gethash_raw");
Add(ExternalReference::get_or_create_hash_raw(isolate).address(),
"get_or_create_hash_raw");
+ Add(ExternalReference::copy_fast_number_jsarray_elements_to_typed_array(
+ isolate)
+ .address(),
+ "copy_fast_number_jsarray_elements_to_typed_array");
+ Add(ExternalReference::copy_typed_array_elements_to_typed_array(isolate)
+ .address(),
+ "copy_typed_array_elements_to_typed_array");
Add(ExternalReference::log_enter_external_function(isolate).address(),
"Logger::EnterExternal");
Add(ExternalReference::log_leave_external_function(isolate).address(),
diff --git a/chromium/v8/src/factory.cc b/chromium/v8/src/factory.cc
index 6e8369fdd1b..7710b0c7883 100644
--- a/chromium/v8/src/factory.cc
+++ b/chromium/v8/src/factory.cc
@@ -181,6 +181,7 @@ Handle<FixedArray> Factory::NewFixedArray(int size, PretenureFlag pretenure) {
Handle<PropertyArray> Factory::NewPropertyArray(int size,
PretenureFlag pretenure) {
DCHECK_LE(0, size);
+ if (size == 0) return empty_property_array();
CALL_HEAP_FUNCTION(isolate(),
isolate()->heap()->AllocatePropertyArray(size, pretenure),
PropertyArray);
@@ -1331,6 +1332,7 @@ Handle<FixedArray> Factory::CopyFixedArrayAndGrow(Handle<FixedArray> array,
Handle<PropertyArray> Factory::CopyPropertyArrayAndGrow(
Handle<PropertyArray> array, int grow_by, PretenureFlag pretenure) {
+ DCHECK_LE(0, grow_by);
CALL_HEAP_FUNCTION(
isolate(),
isolate()->heap()->CopyArrayAndGrow(*array, grow_by, pretenure),
@@ -1621,7 +1623,7 @@ Handle<JSFunction> Factory::NewFunction(Handle<String> name, Handle<Code> code,
NewFunction(name, code, prototype, language_mode, prototype_mutability);
ElementsKind elements_kind =
- type == JS_ARRAY_TYPE ? PACKED_SMI_ELEMENTS : HOLEY_SMI_ELEMENTS;
+ type == JS_ARRAY_TYPE ? PACKED_SMI_ELEMENTS : TERMINAL_FAST_ELEMENTS_KIND;
Handle<Map> initial_map = NewMap(type, instance_size, elements_kind);
// TODO(littledan): Why do we have this is_generator test when
// NewFunctionPrototype already handles finding an appropriately
diff --git a/chromium/v8/src/flag-definitions.h b/chromium/v8/src/flag-definitions.h
index c9d87fb5f1e..50a1e660c0f 100644
--- a/chromium/v8/src/flag-definitions.h
+++ b/chromium/v8/src/flag-definitions.h
@@ -266,7 +266,8 @@ HARMONY_SHIPPING(FLAG_SHIPPING_FEATURES)
#undef FLAG_SHIPPING_FEATURES
#ifdef V8_INTL_SUPPORT
-DEFINE_BOOL(icu_timezone_data, true, "get information about timezones from ICU")
+DEFINE_BOOL(icu_timezone_data, false,
+ "get information about timezones from ICU")
#endif
#ifdef V8_ENABLE_FUTURE
diff --git a/chromium/v8/src/frames.cc b/chromium/v8/src/frames.cc
index f33dba8ba29..d578a64ed3d 100644
--- a/chromium/v8/src/frames.cc
+++ b/chromium/v8/src/frames.cc
@@ -1886,10 +1886,10 @@ void JavaScriptFrame::Print(StringStream* accumulator,
Context* context = NULL;
if (this->context() != NULL && this->context()->IsContext()) {
context = Context::cast(this->context());
- }
- while (context->IsWithContext()) {
- context = context->previous();
- DCHECK(context != NULL);
+ while (context->IsWithContext()) {
+ context = context->previous();
+ DCHECK(context != NULL);
+ }
}
// Print heap-allocated local variables.
diff --git a/chromium/v8/src/global-handles.cc b/chromium/v8/src/global-handles.cc
index 504a92702a2..9ae13d59f43 100644
--- a/chromium/v8/src/global-handles.cc
+++ b/chromium/v8/src/global-handles.cc
@@ -160,14 +160,21 @@ class GlobalHandles::Node {
bool IsInUse() const { return state() != FREE; }
+ bool IsPhantomCallback() const {
+ return weakness_type() == PHANTOM_WEAK ||
+ weakness_type() == PHANTOM_WEAK_2_EMBEDDER_FIELDS;
+ }
+
+ bool IsPhantomResetHandle() const {
+ return weakness_type() == PHANTOM_WEAK_RESET_HANDLE;
+ }
+
bool IsPendingPhantomCallback() const {
- return state() == PENDING &&
- (weakness_type() == PHANTOM_WEAK ||
- weakness_type() == PHANTOM_WEAK_2_EMBEDDER_FIELDS);
+ return state() == PENDING && IsPhantomCallback();
}
bool IsPendingPhantomResetHandle() const {
- return state() == PENDING && weakness_type() == PHANTOM_WEAK_RESET_HANDLE;
+ return state() == PENDING && IsPhantomResetHandle();
}
bool IsRetainer() const {
@@ -613,29 +620,44 @@ bool GlobalHandles::IsWeak(Object** location) {
}
DISABLE_CFI_PERF
-void GlobalHandles::IterateWeakRoots(RootVisitor* v) {
+void GlobalHandles::IterateWeakRootsForFinalizers(RootVisitor* v) {
for (NodeIterator it(this); !it.done(); it.Advance()) {
Node* node = it.node();
- if (node->IsWeakRetainer()) {
- // Pending weak phantom handles die immediately. Everything else survives.
- if (node->IsPendingPhantomResetHandle()) {
+ if (node->IsWeakRetainer() && node->state() == Node::PENDING) {
+ DCHECK(!node->IsPhantomCallback());
+ DCHECK(!node->IsPhantomResetHandle());
+ // Finalizers need to survive.
+ v->VisitRootPointer(Root::kGlobalHandles, node->location());
+ }
+ }
+}
+
+DISABLE_CFI_PERF
+void GlobalHandles::IterateWeakRootsForPhantomHandles(
+ WeakSlotCallback should_reset_handle) {
+ for (NodeIterator it(this); !it.done(); it.Advance()) {
+ Node* node = it.node();
+ if (node->IsWeakRetainer() && should_reset_handle(node->location())) {
+ if (node->IsPhantomResetHandle()) {
+ node->MarkPending();
node->ResetPhantomHandle();
++number_of_phantom_handle_resets_;
- } else if (node->IsPendingPhantomCallback()) {
+ } else if (node->IsPhantomCallback()) {
+ node->MarkPending();
node->CollectPhantomCallbackData(isolate(),
&pending_phantom_callbacks_);
- } else {
- v->VisitRootPointer(Root::kGlobalHandles, node->location());
}
}
}
}
-
-void GlobalHandles::IdentifyWeakHandles(WeakSlotCallback f) {
+void GlobalHandles::IdentifyWeakHandles(WeakSlotCallback should_reset_handle) {
for (NodeIterator it(this); !it.done(); it.Advance()) {
- if (it.node()->IsWeak() && f(it.node()->location())) {
- it.node()->MarkPending();
+ Node* node = it.node();
+ if (node->IsWeak() && should_reset_handle(node->location())) {
+ if (!node->IsPhantomCallback() && !node->IsPhantomResetHandle()) {
+ node->MarkPending();
+ }
}
}
}
diff --git a/chromium/v8/src/global-handles.h b/chromium/v8/src/global-handles.h
index 4e3d8161b8d..b5c3b2191d7 100644
--- a/chromium/v8/src/global-handles.h
+++ b/chromium/v8/src/global-handles.h
@@ -133,12 +133,13 @@ class GlobalHandles {
// and have class IDs
void IterateWeakRootsInNewSpaceWithClassIds(v8::PersistentHandleVisitor* v);
- // Iterates over all weak roots in heap.
- void IterateWeakRoots(RootVisitor* v);
+ // Iterates over weak roots on the heap.
+ void IterateWeakRootsForFinalizers(RootVisitor* v);
+ void IterateWeakRootsForPhantomHandles(WeakSlotCallback should_reset_handle);
- // Find all weak handles satisfying the callback predicate, mark
- // them as pending.
- void IdentifyWeakHandles(WeakSlotCallback f);
+ // Marks all handles that should be finalized based on the predicate
+ // |should_reset_handle| as pending.
+ void IdentifyWeakHandles(WeakSlotCallback should_reset_handle);
// NOTE: Five ...NewSpace... functions below are used during
// scavenge collections and iterate over sets of handles that are
diff --git a/chromium/v8/src/heap/concurrent-marking.cc b/chromium/v8/src/heap/concurrent-marking.cc
index 5a282e7f9cd..60bcbe9bab1 100644
--- a/chromium/v8/src/heap/concurrent-marking.cc
+++ b/chromium/v8/src/heap/concurrent-marking.cc
@@ -121,12 +121,6 @@ class ConcurrentMarkingVisitor final
int VisitJSApiObject(Map* map, JSObject* object) {
if (marking_state_.IsGrey(object)) {
- int size = JSObject::BodyDescriptor::SizeOf(map, object);
- VisitMapPointer(object, object->map_slot());
- // It is OK to iterate body of JS API object here because they do not have
- // unboxed double fields.
- DCHECK_IMPLIES(FLAG_unbox_double_fields, map->HasFastPointerLayout());
- JSObject::BodyDescriptor::IterateBody(object, size, this);
// The main thread will do wrapper tracing in Blink.
bailout_.Push(object);
}
diff --git a/chromium/v8/src/heap/heap.cc b/chromium/v8/src/heap/heap.cc
index c5c0a7c54ea..458c6c7e094 100644
--- a/chromium/v8/src/heap/heap.cc
+++ b/chromium/v8/src/heap/heap.cc
@@ -2381,6 +2381,7 @@ AllocationResult Heap::AllocatePartialMap(InstanceType instance_type,
Map::ConstructionCounter::encode(Map::kNoSlackTracking);
map->set_bit_field3(bit_field3);
map->set_weak_cell_cache(Smi::kZero);
+ map->set_elements_kind(TERMINAL_FAST_ELEMENTS_KIND);
return map;
}
@@ -2388,6 +2389,11 @@ AllocationResult Heap::AllocatePartialMap(InstanceType instance_type,
AllocationResult Heap::AllocateMap(InstanceType instance_type,
int instance_size,
ElementsKind elements_kind) {
+ STATIC_ASSERT(LAST_JS_OBJECT_TYPE == LAST_TYPE);
+ DCHECK_IMPLIES(instance_type >= FIRST_JS_OBJECT_TYPE &&
+ !Map::CanHaveFastTransitionableElementsKind(instance_type),
+ IsDictionaryElementsKind(elements_kind) ||
+ IsTerminalElementsKind(elements_kind));
HeapObject* result = nullptr;
AllocationResult allocation = AllocateRaw(Map::kSize, MAP_SPACE);
if (!allocation.To(&result)) return allocation;
@@ -3760,7 +3766,10 @@ AllocationResult Heap::AllocateFixedArrayWithFiller(int length,
AllocationResult Heap::AllocatePropertyArray(int length,
PretenureFlag pretenure) {
+ // Allow length = 0 for the empty_property_array singleton.
DCHECK_LE(0, length);
+ DCHECK_IMPLIES(length == 0, pretenure == TENURED);
+
DCHECK(!InNewSpace(undefined_value()));
HeapObject* result = nullptr;
{
diff --git a/chromium/v8/src/heap/mark-compact.cc b/chromium/v8/src/heap/mark-compact.cc
index 37bce9162b9..3d28a18c7af 100644
--- a/chromium/v8/src/heap/mark-compact.cc
+++ b/chromium/v8/src/heap/mark-compact.cc
@@ -2568,6 +2568,7 @@ void MarkCompactCollector::MarkLiveObjects() {
TRACE_GC(heap()->tracer(),
GCTracer::Scope::MC_MARK_WEAK_CLOSURE_EPHEMERAL);
ProcessEphemeralMarking(false);
+ DCHECK(marking_worklist()->IsEmpty());
}
// The objects reachable from the roots, weak maps or object groups
@@ -2584,12 +2585,12 @@ void MarkCompactCollector::MarkLiveObjects() {
&IsUnmarkedHeapObject);
ProcessMarkingWorklist();
}
- // Then we mark the objects.
{
TRACE_GC(heap()->tracer(),
GCTracer::Scope::MC_MARK_WEAK_CLOSURE_WEAK_ROOTS);
- heap()->isolate()->global_handles()->IterateWeakRoots(&root_visitor);
+ heap()->isolate()->global_handles()->IterateWeakRootsForFinalizers(
+ &root_visitor);
ProcessMarkingWorklist();
}
@@ -2605,6 +2606,12 @@ void MarkCompactCollector::MarkLiveObjects() {
TRACE_GC(heap()->tracer(), GCTracer::Scope::MC_MARK_WRAPPER_EPILOGUE);
heap()->local_embedder_heap_tracer()->TraceEpilogue();
}
+ DCHECK(marking_worklist()->IsEmpty());
+ }
+
+ {
+ heap()->isolate()->global_handles()->IterateWeakRootsForPhantomHandles(
+ &IsUnmarkedHeapObject);
}
}
diff --git a/chromium/v8/src/heap/setup-heap-internal.cc b/chromium/v8/src/heap/setup-heap-internal.cc
index 25bb5d01b03..592fb53a7fd 100644
--- a/chromium/v8/src/heap/setup-heap-internal.cc
+++ b/chromium/v8/src/heap/setup-heap-internal.cc
@@ -103,10 +103,8 @@ bool Heap::CreateInitialMaps() {
}
ALLOCATE_PARTIAL_MAP(FIXED_ARRAY_TYPE, kVariableSizeSentinel, fixed_array);
- fixed_array_map()->set_elements_kind(HOLEY_ELEMENTS);
ALLOCATE_PARTIAL_MAP(FIXED_ARRAY_TYPE, kVariableSizeSentinel,
fixed_cow_array)
- fixed_cow_array_map()->set_elements_kind(HOLEY_ELEMENTS);
DCHECK_NE(fixed_array_map(), fixed_cow_array_map());
ALLOCATE_PARTIAL_MAP(ODDBALL_TYPE, Oddball::kSize, undefined);
diff --git a/chromium/v8/src/ic/accessor-assembler.cc b/chromium/v8/src/ic/accessor-assembler.cc
index 5e269963201..2472febd032 100644
--- a/chromium/v8/src/ic/accessor-assembler.cc
+++ b/chromium/v8/src/ic/accessor-assembler.cc
@@ -537,43 +537,51 @@ void AccessorAssembler::HandleLoadICProtoHandlerCase(
}
}
+void AccessorAssembler::EmitAccessCheck(Node* expected_native_context,
+ Node* context, Node* receiver,
+ Label* can_access, Label* miss) {
+ CSA_ASSERT(this, IsNativeContext(expected_native_context));
+
+ Node* native_context = LoadNativeContext(context);
+ GotoIf(WordEqual(expected_native_context, native_context), can_access);
+ // If the receiver is not a JSGlobalProxy then we miss.
+ GotoIfNot(IsJSGlobalProxy(receiver), miss);
+ // For JSGlobalProxy receiver try to compare security tokens of current
+ // and expected native contexts.
+ Node* expected_token = LoadContextElement(expected_native_context,
+ Context::SECURITY_TOKEN_INDEX);
+ Node* current_token =
+ LoadContextElement(native_context, Context::SECURITY_TOKEN_INDEX);
+ Branch(WordEqual(expected_token, current_token), can_access, miss);
+}
+
Node* AccessorAssembler::EmitLoadICProtoArrayCheck(const LoadICParameters* p,
Node* handler,
Node* handler_length,
Node* handler_flags,
Label* miss) {
- VARIABLE(start_index, MachineType::PointerRepresentation());
- start_index.Bind(IntPtrConstant(LoadHandler::kFirstPrototypeIndex));
+ VARIABLE(var_start_index, MachineType::PointerRepresentation(),
+ IntPtrConstant(LoadHandler::kFirstPrototypeIndex));
Label can_access(this);
GotoIfNot(IsSetWord<LoadHandler::DoAccessCheckOnReceiverBits>(handler_flags),
&can_access);
{
// Skip this entry of a handler.
- start_index.Bind(IntPtrConstant(LoadHandler::kFirstPrototypeIndex + 1));
+ var_start_index.Bind(IntPtrConstant(LoadHandler::kFirstPrototypeIndex + 1));
int offset =
FixedArray::OffsetOfElementAt(LoadHandler::kFirstPrototypeIndex);
Node* expected_native_context =
LoadWeakCellValue(LoadObjectField(handler, offset), miss);
- CSA_ASSERT(this, IsNativeContext(expected_native_context));
-
- Node* native_context = LoadNativeContext(p->context);
- GotoIf(WordEqual(expected_native_context, native_context), &can_access);
- // If the receiver is not a JSGlobalProxy then we miss.
- GotoIfNot(IsJSGlobalProxy(p->receiver), miss);
- // For JSGlobalProxy receiver try to compare security tokens of current
- // and expected native contexts.
- Node* expected_token = LoadContextElement(expected_native_context,
- Context::SECURITY_TOKEN_INDEX);
- Node* current_token =
- LoadContextElement(native_context, Context::SECURITY_TOKEN_INDEX);
- Branch(WordEqual(expected_token, current_token), &can_access, miss);
+
+ EmitAccessCheck(expected_native_context, p->context, p->receiver,
+ &can_access, miss);
}
BIND(&can_access);
- BuildFastLoop(start_index.value(), handler_length,
- [this, p, handler, miss](Node* current) {
+ BuildFastLoop(var_start_index.value(), handler_length,
+ [=](Node* current) {
Node* prototype_cell =
LoadFixedArrayElement(handler, current);
CheckPrototype(prototype_cell, p->name, miss);
@@ -649,16 +657,19 @@ void AccessorAssembler::HandleStoreICHandlerCase(
Label if_fast_smi(this), if_proxy(this);
+ STATIC_ASSERT(StoreHandler::kStoreGlobalProxy + 1 ==
+ StoreHandler::kStoreNormal);
STATIC_ASSERT(StoreHandler::kStoreNormal + 1 == StoreHandler::kProxy);
STATIC_ASSERT(StoreHandler::kProxy + 1 == StoreHandler::kKindsNumber);
Node* handler_kind = DecodeWord<StoreHandler::KindBits>(handler_word);
GotoIf(IntPtrLessThan(handler_kind,
- IntPtrConstant(StoreHandler::kStoreNormal)),
+ IntPtrConstant(StoreHandler::kStoreGlobalProxy)),
&if_fast_smi);
GotoIf(WordEqual(handler_kind, IntPtrConstant(StoreHandler::kProxy)),
&if_proxy);
-
+ CSA_ASSERT(this, WordEqual(handler_kind,
+ IntPtrConstant(StoreHandler::kStoreNormal)));
Node* properties = LoadSlowProperties(holder);
VARIABLE(var_name_index, MachineType::PointerRepresentation());
@@ -716,62 +727,11 @@ void AccessorAssembler::HandleStoreICHandlerCase(
BIND(&store_global);
{
+ // Load value or miss if the {handler} weak cell is cleared.
Node* cell = LoadWeakCellValue(handler, miss);
- CSA_ASSERT(this, IsPropertyCell(cell));
-
- // Load the payload of the global parameter cell. A hole indicates that
- // the cell has been invalidated and that the store must be handled by the
- // runtime.
- Node* cell_contents = LoadObjectField(cell, PropertyCell::kValueOffset);
- Node* details =
- LoadAndUntagToWord32ObjectField(cell, PropertyCell::kDetailsOffset);
- Node* type = DecodeWord32<PropertyDetails::PropertyCellTypeField>(details);
-
- Label constant(this), store(this), not_smi(this);
-
- GotoIf(
- Word32Equal(
- type, Int32Constant(static_cast<int>(PropertyCellType::kConstant))),
- &constant);
-
- GotoIf(IsTheHole(cell_contents), miss);
-
- GotoIf(
- Word32Equal(
- type, Int32Constant(static_cast<int>(PropertyCellType::kMutable))),
- &store);
- CSA_ASSERT(this,
- Word32Or(Word32Equal(type,
- Int32Constant(static_cast<int>(
- PropertyCellType::kConstantType))),
- Word32Equal(type,
- Int32Constant(static_cast<int>(
- PropertyCellType::kUndefined)))));
-
- GotoIfNot(TaggedIsSmi(cell_contents), &not_smi);
- GotoIfNot(TaggedIsSmi(p->value), miss);
- Goto(&store);
-
- BIND(&not_smi);
- {
- GotoIf(TaggedIsSmi(p->value), miss);
- Node* expected_map = LoadMap(cell_contents);
- Node* map = LoadMap(p->value);
- GotoIfNot(WordEqual(expected_map, map), miss);
- Goto(&store);
- }
-
- BIND(&store);
- {
- StoreObjectField(cell, PropertyCell::kValueOffset, p->value);
- Return(p->value);
- }
- BIND(&constant);
- {
- GotoIfNot(WordEqual(cell_contents, p->value), miss);
- Return(p->value);
- }
+ ExitPoint direct_exit(this);
+ StoreGlobalIC_PropertyCellCase(cell, p->value, &direct_exit, miss);
}
}
@@ -794,9 +754,11 @@ void AccessorAssembler::HandleStoreICElementHandlerCase(
void AccessorAssembler::HandleStoreICProtoHandler(
const StoreICParameters* p, Node* handler, Label* miss,
ElementSupport support_elements) {
+ Comment("HandleStoreICProtoHandler");
+
// IC dispatchers rely on these assumptions to be held.
STATIC_ASSERT(FixedArray::kLengthOffset ==
- StoreHandler::kTransitionCellOffset);
+ StoreHandler::kTransitionOrHolderCellOffset);
DCHECK_EQ(FixedArray::OffsetOfElementAt(StoreHandler::kSmiHandlerIndex),
StoreHandler::kSmiHandlerOffset);
DCHECK_EQ(FixedArray::OffsetOfElementAt(StoreHandler::kValidityCellIndex),
@@ -817,56 +779,77 @@ void AccessorAssembler::HandleStoreICProtoHandler(
Node* smi_or_code = LoadObjectField(handler, StoreHandler::kSmiHandlerOffset);
Node* maybe_transition_cell =
- LoadObjectField(handler, StoreHandler::kTransitionCellOffset);
+ LoadObjectField(handler, StoreHandler::kTransitionOrHolderCellOffset);
Label array_handler(this), tuple_handler(this);
Branch(TaggedIsSmi(maybe_transition_cell), &array_handler, &tuple_handler);
- VARIABLE(var_transition, MachineRepresentation::kTagged);
- Label if_transition(this), if_transition_to_constant(this),
- if_store_normal(this), if_proxy(this), do_store(this);
+ VARIABLE(var_transition_map_or_holder, MachineRepresentation::kTagged);
+ Label do_store(this), if_transition_map(this), if_holder_object(this);
BIND(&tuple_handler);
{
Node* transition = LoadWeakCellValue(maybe_transition_cell, miss);
- var_transition.Bind(transition);
+ var_transition_map_or_holder.Bind(transition);
Goto(&do_store);
}
BIND(&array_handler);
{
+ VARIABLE(var_start_index, MachineType::PointerRepresentation(),
+ IntPtrConstant(StoreHandler::kFirstPrototypeIndex));
+
+ Comment("array_handler");
+ Label can_access(this);
+ // Only Tuple3 handlers are allowed to have code handlers.
+ CSA_ASSERT(this, TaggedIsSmi(smi_or_code));
+ GotoIfNot(
+ IsSetSmi(smi_or_code, StoreHandler::DoAccessCheckOnReceiverBits::kMask),
+ &can_access);
+
+ {
+ // Skip this entry of a handler.
+ var_start_index.Bind(
+ IntPtrConstant(StoreHandler::kFirstPrototypeIndex + 1));
+
+ int offset =
+ FixedArray::OffsetOfElementAt(StoreHandler::kFirstPrototypeIndex);
+ Node* expected_native_context =
+ LoadWeakCellValue(LoadObjectField(handler, offset), miss);
+
+ EmitAccessCheck(expected_native_context, p->context, p->receiver,
+ &can_access, miss);
+ }
+ BIND(&can_access);
+
Node* length = SmiUntag(maybe_transition_cell);
- BuildFastLoop(IntPtrConstant(StoreHandler::kFirstPrototypeIndex), length,
- [this, p, handler, miss](Node* current) {
+ BuildFastLoop(var_start_index.value(), length,
+ [=](Node* current) {
Node* prototype_cell =
LoadFixedArrayElement(handler, current);
CheckPrototype(prototype_cell, p->name, miss);
},
1, INTPTR_PARAMETERS, IndexAdvanceMode::kPost);
- Node* maybe_transition_cell =
- LoadFixedArrayElement(handler, StoreHandler::kTransitionCellIndex);
+ Node* maybe_transition_cell = LoadFixedArrayElement(
+ handler, StoreHandler::kTransitionMapOrHolderCellIndex);
Node* transition = LoadWeakCellValue(maybe_transition_cell, miss);
- var_transition.Bind(transition);
+ var_transition_map_or_holder.Bind(transition);
Goto(&do_store);
}
BIND(&do_store);
{
- Branch(SmiEqual(smi_or_code, SmiConstant(StoreHandler::kProxy)), &if_proxy,
- &if_transition);
+ Node* transition = var_transition_map_or_holder.value();
+ Branch(IsMap(transition), &if_transition_map, &if_holder_object);
}
- BIND(&if_proxy);
+ BIND(&if_transition_map);
{
- Node* proxy = var_transition.value();
- HandleStoreToProxy(p, proxy, miss, support_elements);
- }
+ Label if_transition_to_constant(this), if_store_normal(this);
- BIND(&if_transition);
- {
Node* holder = p->receiver;
- Node* transition = var_transition.value();
+ Node* transition_map = var_transition_map_or_holder.value();
- GotoIf(IsDeprecatedMap(transition), miss);
+ GotoIf(IsDeprecatedMap(transition_map), miss);
if (support_elements == kSupportElements) {
Label if_smi_handler(this);
@@ -877,7 +860,7 @@ void AccessorAssembler::HandleStoreICProtoHandler(
StoreTransitionDescriptor descriptor(isolate());
TailCallStub(descriptor, code_handler, p->context, p->receiver, p->name,
- transition, p->value, p->slot, p->vector);
+ transition_map, p->value, p->slot, p->vector);
BIND(&if_smi_handler);
}
@@ -892,9 +875,12 @@ void AccessorAssembler::HandleStoreICProtoHandler(
GotoIf(WordEqual(handler_kind,
IntPtrConstant(StoreHandler::kTransitionToConstant)),
&if_transition_to_constant);
+ CSA_ASSERT(this,
+ WordEqual(handler_kind,
+ IntPtrConstant(StoreHandler::kTransitionToField)));
// Handle transitioning field stores.
- HandleStoreICSmiHandlerCase(handler_word, holder, p->value, transition,
+ HandleStoreICSmiHandlerCase(handler_word, holder, p->value, transition_map,
miss);
BIND(&if_transition_to_constant);
@@ -907,7 +893,7 @@ void AccessorAssembler::HandleStoreICProtoHandler(
IntPtrAdd(scaled_descriptor,
IntPtrConstant(DescriptorArray::kFirstIndex +
DescriptorArray::kEntryValueIndex));
- Node* descriptors = LoadMapDescriptors(transition);
+ Node* descriptors = LoadMapDescriptors(transition_map);
CSA_ASSERT(
this, UintPtrLessThan(descriptor,
LoadAndUntagFixedArrayBaseLength(descriptors)));
@@ -915,7 +901,7 @@ void AccessorAssembler::HandleStoreICProtoHandler(
Node* constant = LoadFixedArrayElement(descriptors, value_index);
GotoIf(WordNotEqual(p->value, constant), miss);
- StoreMap(p->receiver, transition);
+ StoreMap(p->receiver, transition_map);
Return(p->value);
}
@@ -955,6 +941,29 @@ void AccessorAssembler::HandleStoreICProtoHandler(
}
}
}
+ BIND(&if_holder_object);
+ {
+ Label if_store_global_proxy(this);
+ Node* holder = var_transition_map_or_holder.value();
+
+ Node* smi_handler = smi_or_code;
+ CSA_ASSERT(this, TaggedIsSmi(smi_handler));
+ Node* handler_word = SmiUntag(smi_handler);
+
+ Node* handler_kind = DecodeWord<StoreHandler::KindBits>(handler_word);
+ GotoIf(WordEqual(handler_kind,
+ IntPtrConstant(StoreHandler::kStoreGlobalProxy)),
+ &if_store_global_proxy);
+ CSA_ASSERT(this,
+ WordEqual(handler_kind, IntPtrConstant(StoreHandler::kProxy)));
+ HandleStoreToProxy(p, holder, miss, support_elements);
+
+ BIND(&if_store_global_proxy);
+ {
+ ExitPoint direct_exit(this);
+ StoreGlobalIC_PropertyCellCase(holder, p->value, &direct_exit, miss);
+ }
+ }
}
void AccessorAssembler::HandleStoreToProxy(const StoreICParameters* p,
@@ -1174,7 +1183,7 @@ void AccessorAssembler::ExtendPropertiesBackingStore(Node* object,
// TODO(gsathya): Clean up the type conversions by creating smarter
// helpers that do the correct op based on the mode.
VARIABLE(var_properties, MachineRepresentation::kTaggedPointer);
- VARIABLE(var_hash, MachineRepresentation::kWord32);
+ VARIABLE(var_encoded_hash, MachineRepresentation::kWord32);
VARIABLE(var_length, ParameterRepresentation(mode));
Node* properties = LoadObjectField(object, JSObject::kPropertiesOrHashOffset);
@@ -1185,7 +1194,10 @@ void AccessorAssembler::ExtendPropertiesBackingStore(Node* object,
BIND(&if_smi_hash);
{
- var_hash.Bind(SmiToWord32(properties));
+ Node* hash = SmiToWord32(properties);
+ Node* encoded_hash =
+ Word32Shl(hash, Int32Constant(PropertyArray::HashField::kShift));
+ var_encoded_hash.Bind(encoded_hash);
var_length.Bind(IntPtrOrSmiConstant(0, mode));
var_properties.Bind(EmptyFixedArrayConstant());
Goto(&extend_store);
@@ -1195,10 +1207,11 @@ void AccessorAssembler::ExtendPropertiesBackingStore(Node* object,
{
Node* length_and_hash_int32 = LoadAndUntagToWord32ObjectField(
var_properties.value(), PropertyArray::kLengthAndHashOffset);
- var_hash.Bind(Word32And(length_and_hash_int32,
- Int32Constant(PropertyArray::kHashMask)));
- Node* length_intptr = ChangeInt32ToIntPtr(Word32And(
- length_and_hash_int32, Int32Constant(PropertyArray::kLengthMask)));
+ var_encoded_hash.Bind(Word32And(
+ length_and_hash_int32, Int32Constant(PropertyArray::HashField::kMask)));
+ Node* length_intptr = ChangeInt32ToIntPtr(
+ Word32And(length_and_hash_int32,
+ Int32Constant(PropertyArray::LengthField::kMask)));
Node* length = WordToParameter(length_intptr, mode);
var_length.Bind(length);
Goto(&extend_store);
@@ -1244,7 +1257,7 @@ void AccessorAssembler::ExtendPropertiesBackingStore(Node* object,
Node* new_capacity_int32 =
TruncateWordToWord32(ParameterToWord(new_capacity, mode));
Node* new_length_and_hash_int32 =
- Word32Or(var_hash.value(), new_capacity_int32);
+ Word32Or(var_encoded_hash.value(), new_capacity_int32);
StoreObjectField(new_properties, PropertyArray::kLengthAndHashOffset,
SmiFromWord32(new_length_and_hash_int32));
StoreObjectField(object, JSObject::kPropertiesOrHashOffset, new_properties);
@@ -2392,6 +2405,65 @@ void AccessorAssembler::StoreIC(const StoreICParameters* p) {
}
}
+void AccessorAssembler::StoreGlobalIC_PropertyCellCase(Node* property_cell,
+ Node* value,
+ ExitPoint* exit_point,
+ Label* miss) {
+ Comment("StoreGlobalIC_TryPropertyCellCase");
+ CSA_ASSERT(this, IsPropertyCell(property_cell));
+
+ // Load the payload of the global parameter cell. A hole indicates that
+ // the cell has been invalidated and that the store must be handled by the
+ // runtime.
+ Node* cell_contents =
+ LoadObjectField(property_cell, PropertyCell::kValueOffset);
+ Node* details = LoadAndUntagToWord32ObjectField(property_cell,
+ PropertyCell::kDetailsOffset);
+ Node* type = DecodeWord32<PropertyDetails::PropertyCellTypeField>(details);
+
+ Label constant(this), store(this), not_smi(this);
+
+ GotoIf(Word32Equal(type, Int32Constant(
+ static_cast<int>(PropertyCellType::kConstant))),
+ &constant);
+
+ GotoIf(IsTheHole(cell_contents), miss);
+
+ GotoIf(Word32Equal(
+ type, Int32Constant(static_cast<int>(PropertyCellType::kMutable))),
+ &store);
+ CSA_ASSERT(this,
+ Word32Or(Word32Equal(type, Int32Constant(static_cast<int>(
+ PropertyCellType::kConstantType))),
+ Word32Equal(type, Int32Constant(static_cast<int>(
+ PropertyCellType::kUndefined)))));
+
+ GotoIfNot(TaggedIsSmi(cell_contents), &not_smi);
+ GotoIfNot(TaggedIsSmi(value), miss);
+ Goto(&store);
+
+ BIND(&not_smi);
+ {
+ GotoIf(TaggedIsSmi(value), miss);
+ Node* expected_map = LoadMap(cell_contents);
+ Node* map = LoadMap(value);
+ GotoIfNot(WordEqual(expected_map, map), miss);
+ Goto(&store);
+ }
+
+ BIND(&store);
+ {
+ StoreObjectField(property_cell, PropertyCell::kValueOffset, value);
+ exit_point->Return(value);
+ }
+
+ BIND(&constant);
+ {
+ GotoIfNot(WordEqual(cell_contents, value), miss);
+ exit_point->Return(value);
+ }
+}
+
void AccessorAssembler::KeyedStoreIC(const StoreICParameters* p) {
Label miss(this, Label::kDeferred);
{
diff --git a/chromium/v8/src/ic/accessor-assembler.h b/chromium/v8/src/ic/accessor-assembler.h
index 1f330e58a4f..4fe1c0bbf99 100644
--- a/chromium/v8/src/ic/accessor-assembler.h
+++ b/chromium/v8/src/ic/accessor-assembler.h
@@ -115,6 +115,8 @@ class AccessorAssembler : public CodeStubAssembler {
void KeyedLoadIC(const LoadICParameters* p);
void KeyedLoadICGeneric(const LoadICParameters* p);
void StoreIC(const StoreICParameters* p);
+ void StoreGlobalIC_PropertyCellCase(Node* property_cell, Node* value,
+ ExitPoint* exit_point, Label* miss);
void KeyedStoreIC(const StoreICParameters* p);
// IC dispatcher behavior.
@@ -150,6 +152,9 @@ class AccessorAssembler : public CodeStubAssembler {
Variable* var_double_value, Label* rebox_double,
ExitPoint* exit_point);
+ void EmitAccessCheck(Node* expected_native_context, Node* context,
+ Node* receiver, Label* can_access, Label* miss);
+
Node* EmitLoadICProtoArrayCheck(const LoadICParameters* p, Node* handler,
Node* handler_length, Node* handler_flags,
Label* miss);
diff --git a/chromium/v8/src/ic/handler-configuration-inl.h b/chromium/v8/src/ic/handler-configuration-inl.h
index 26586141d77..dc1d5957239 100644
--- a/chromium/v8/src/ic/handler-configuration-inl.h
+++ b/chromium/v8/src/ic/handler-configuration-inl.h
@@ -108,6 +108,11 @@ Handle<Smi> LoadHandler::LoadElement(Isolate* isolate,
return handle(Smi::FromInt(config), isolate);
}
+Handle<Smi> StoreHandler::StoreGlobalProxy(Isolate* isolate) {
+ int config = KindBits::encode(kStoreGlobalProxy);
+ return handle(Smi::FromInt(config), isolate);
+}
+
Handle<Smi> StoreHandler::StoreNormal(Isolate* isolate) {
int config = KindBits::encode(kStoreNormal);
return handle(Smi::FromInt(config), isolate);
@@ -118,6 +123,13 @@ Handle<Smi> StoreHandler::StoreProxy(Isolate* isolate) {
return handle(Smi::FromInt(config), isolate);
}
+Handle<Smi> StoreHandler::EnableAccessCheckOnReceiver(Isolate* isolate,
+ Handle<Smi> smi_handler) {
+ int config = smi_handler->value();
+ config = DoAccessCheckOnReceiverBits::update(config, true);
+ return handle(Smi::FromInt(config), isolate);
+}
+
Handle<Smi> StoreHandler::StoreField(Isolate* isolate, Kind kind,
int descriptor, FieldIndex field_index,
Representation representation,
@@ -184,15 +196,15 @@ Handle<Smi> StoreHandler::TransitionToConstant(Isolate* isolate,
// static
WeakCell* StoreHandler::GetTransitionCell(Object* handler) {
if (handler->IsTuple3()) {
- STATIC_ASSERT(kTransitionCellOffset == Tuple3::kValue1Offset);
+ STATIC_ASSERT(kTransitionOrHolderCellOffset == Tuple3::kValue1Offset);
WeakCell* cell = WeakCell::cast(Tuple3::cast(handler)->value1());
DCHECK(!cell->cleared());
return cell;
}
DCHECK(handler->IsFixedArray());
- WeakCell* cell =
- WeakCell::cast(FixedArray::cast(handler)->get(kTransitionCellIndex));
+ WeakCell* cell = WeakCell::cast(
+ FixedArray::cast(handler)->get(kTransitionMapOrHolderCellIndex));
DCHECK(!cell->cleared());
return cell;
}
diff --git a/chromium/v8/src/ic/handler-configuration.cc b/chromium/v8/src/ic/handler-configuration.cc
index e5ddf06d64a..b294c864a94 100644
--- a/chromium/v8/src/ic/handler-configuration.cc
+++ b/chromium/v8/src/ic/handler-configuration.cc
@@ -232,41 +232,59 @@ Handle<Object> StoreHandler::StoreElementTransition(
Handle<Object> StoreHandler::StoreTransition(Isolate* isolate,
Handle<Map> receiver_map,
Handle<JSObject> holder,
- Handle<Map> transition,
+ Handle<HeapObject> transition,
Handle<Name> name) {
- Handle<Object> smi_handler;
- if (transition->is_dictionary_map()) {
- smi_handler = StoreNormal(isolate);
- } else {
- int descriptor = transition->LastAdded();
- Handle<DescriptorArray> descriptors(transition->instance_descriptors());
- PropertyDetails details = descriptors->GetDetails(descriptor);
- Representation representation = details.representation();
- DCHECK(!representation.IsNone());
+ Handle<Smi> smi_handler;
+ Handle<WeakCell> transition_cell;
+
+ if (transition->IsMap()) {
+ Handle<Map> transition_map = Handle<Map>::cast(transition);
+ if (transition_map->is_dictionary_map()) {
+ smi_handler = StoreNormal(isolate);
+ } else {
+ int descriptor = transition_map->LastAdded();
+ Handle<DescriptorArray> descriptors(
+ transition_map->instance_descriptors());
+ PropertyDetails details = descriptors->GetDetails(descriptor);
+ Representation representation = details.representation();
+ DCHECK(!representation.IsNone());
- // Declarative handlers don't support access checks.
- DCHECK(!transition->is_access_check_needed());
+ // Declarative handlers don't support access checks.
+ DCHECK(!transition_map->is_access_check_needed());
- DCHECK_EQ(kData, details.kind());
- if (details.location() == kDescriptor) {
- smi_handler = TransitionToConstant(isolate, descriptor);
+ DCHECK_EQ(kData, details.kind());
+ if (details.location() == kDescriptor) {
+ smi_handler = TransitionToConstant(isolate, descriptor);
+ } else {
+ DCHECK_EQ(kField, details.location());
+ bool extend_storage = Map::cast(transition_map->GetBackPointer())
+ ->unused_property_fields() == 0;
+
+ FieldIndex index =
+ FieldIndex::ForDescriptor(*transition_map, descriptor);
+ smi_handler = TransitionToField(isolate, descriptor, index,
+ representation, extend_storage);
+ }
+ }
+ // |holder| is either a receiver if the property is non-existent or
+ // one of the prototypes.
+ DCHECK(!holder.is_null());
+ bool is_nonexistent = holder->map() == transition_map->GetBackPointer();
+ if (is_nonexistent) holder = Handle<JSObject>::null();
+ transition_cell = Map::WeakCellForMap(transition_map);
+
+ } else {
+ DCHECK(transition->IsPropertyCell());
+ if (receiver_map->IsJSGlobalObjectMap()) {
+ // TODO(ishell): this must be handled by StoreGlobalIC once it's finished.
+ return StoreGlobal(isolate, Handle<PropertyCell>::cast(transition));
} else {
- DCHECK_EQ(kField, details.location());
- bool extend_storage =
- Map::cast(transition->GetBackPointer())->unused_property_fields() ==
- 0;
-
- FieldIndex index = FieldIndex::ForDescriptor(*transition, descriptor);
- smi_handler = TransitionToField(isolate, descriptor, index,
- representation, extend_storage);
+ DCHECK(receiver_map->IsJSGlobalProxyMap());
+ smi_handler = StoreGlobalProxy(isolate);
+ transition_cell = isolate->factory()->NewWeakCell(transition);
}
}
- // |holder| is either a receiver if the property is non-existent or
- // one of the prototypes.
- DCHECK(!holder.is_null());
- bool is_nonexistent = holder->map() == transition->GetBackPointer();
- if (is_nonexistent) holder = Handle<JSObject>::null();
int checks_count =
GetPrototypeCheckCount(isolate, receiver_map, holder, name);
@@ -274,6 +292,12 @@ Handle<Object> StoreHandler::StoreTransition(Isolate* isolate,
DCHECK_LE(0, checks_count);
DCHECK(!receiver_map->IsJSGlobalObjectMap());
+ if (receiver_map->is_access_check_needed()) {
+ DCHECK(!receiver_map->is_dictionary_map());
+ DCHECK_LE(1, checks_count); // For native context.
+ smi_handler = EnableAccessCheckOnReceiver(isolate, smi_handler);
+ }
+
Handle<Object> validity_cell =
Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate);
if (validity_cell.is_null()) {
@@ -281,8 +305,6 @@ Handle<Object> StoreHandler::StoreTransition(Isolate* isolate,
validity_cell = handle(Smi::kZero, isolate);
}
- Handle<WeakCell> transition_cell = Map::WeakCellForMap(transition);
-
Factory* factory = isolate->factory();
if (checks_count == 0) {
return factory->NewTuple3(transition_cell, smi_handler, validity_cell,
@@ -292,19 +314,25 @@ Handle<Object> StoreHandler::StoreTransition(Isolate* isolate,
factory->NewFixedArray(kFirstPrototypeIndex + checks_count, TENURED));
handler_array->set(kSmiHandlerIndex, *smi_handler);
handler_array->set(kValidityCellIndex, *validity_cell);
- handler_array->set(kTransitionCellIndex, *transition_cell);
+ handler_array->set(kTransitionMapOrHolderCellIndex, *transition_cell);
InitPrototypeChecks(isolate, receiver_map, holder, name, handler_array,
kFirstPrototypeIndex);
return handler_array;
}
// static
+Handle<Object> StoreHandler::StoreGlobal(Isolate* isolate,
+ Handle<PropertyCell> cell) {
+ return isolate->factory()->NewWeakCell(cell);
+}
+
+// static
Handle<Object> StoreHandler::StoreProxy(Isolate* isolate,
Handle<Map> receiver_map,
Handle<JSProxy> proxy,
Handle<JSReceiver> receiver,
Handle<Name> name) {
- Handle<Object> smi_handler = StoreProxy(isolate);
+ Handle<Smi> smi_handler = StoreProxy(isolate);
if (receiver.is_identical_to(proxy)) return smi_handler;
@@ -312,6 +340,12 @@ Handle<Object> StoreHandler::StoreProxy(Isolate* isolate,
DCHECK_LE(0, checks_count);
+ if (receiver_map->is_access_check_needed()) {
+ DCHECK(!receiver_map->is_dictionary_map());
+ DCHECK_LE(1, checks_count); // For native context.
+ smi_handler = EnableAccessCheckOnReceiver(isolate, smi_handler);
+ }
+
Handle<Object> validity_cell =
Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate);
if (validity_cell.is_null()) {
@@ -329,7 +363,7 @@ Handle<Object> StoreHandler::StoreProxy(Isolate* isolate,
factory->NewFixedArray(kFirstPrototypeIndex + checks_count, TENURED));
handler_array->set(kSmiHandlerIndex, *smi_handler);
handler_array->set(kValidityCellIndex, *validity_cell);
- handler_array->set(kTransitionCellIndex, *holder_cell);
+ handler_array->set(kTransitionMapOrHolderCellIndex, *holder_cell);
InitPrototypeChecks(isolate, receiver_map, proxy, name, handler_array,
kFirstPrototypeIndex);
return handler_array;
diff --git a/chromium/v8/src/ic/handler-configuration.h b/chromium/v8/src/ic/handler-configuration.h
index a4c83b1220b..87ff45a46ae 100644
--- a/chromium/v8/src/ic/handler-configuration.h
+++ b/chromium/v8/src/ic/handler-configuration.h
@@ -178,12 +178,13 @@ class StoreHandler {
kStoreElement,
kStoreField,
kStoreConstField,
+ // TODO(ishell): remove once constant field tracking is done.
+ kTransitionToConstant = kStoreConstField,
kTransitionToField,
+ kStoreGlobalProxy,
kStoreNormal,
kProxy,
- kKindsNumber, // Keep last
- // TODO(ishell): remove once constant field tracking is done.
- kTransitionToConstant = kStoreConstField
+ kKindsNumber // Keep last
};
class KindBits : public BitField<Kind, 0, 3> {};
@@ -191,12 +192,19 @@ class StoreHandler {
static inline bool IsHandler(Object* maybe_handler);
+ // Applicable to kStoreGlobalProxy, kProxy kinds.
+
+ // Defines whether access rights check should be done on receiver object.
+ class DoAccessCheckOnReceiverBits
+ : public BitField<bool, KindBits::kNext, 1> {};
+
// Applicable to kStoreField, kTransitionToField and kTransitionToConstant
// kinds.
// Index of a value entry in the descriptor array.
class DescriptorBits
- : public BitField<unsigned, KindBits::kNext, kDescriptorIndexBitCount> {};
+ : public BitField<unsigned, DoAccessCheckOnReceiverBits::kNext,
+ kDescriptorIndexBitCount> {};
//
// Encoding when KindBits contains kTransitionToConstant.
//
@@ -221,7 +229,7 @@ class StoreHandler {
// The layout of an Tuple3 handler representing a transitioning store
// when prototype chain checks do not include non-existing lookups or access
// checks.
- static const int kTransitionCellOffset = Tuple3::kValue1Offset;
+ static const int kTransitionOrHolderCellOffset = Tuple3::kValue1Offset;
static const int kSmiHandlerOffset = Tuple3::kValue2Offset;
static const int kValidityCellOffset = Tuple3::kValue3Offset;
@@ -233,7 +241,7 @@ class StoreHandler {
// when prototype chain checks include non-existing lookups and access checks.
static const int kSmiHandlerIndex = 0;
static const int kValidityCellIndex = 1;
- static const int kTransitionCellIndex = 2;
+ static const int kTransitionMapOrHolderCellIndex = 2;
static const int kFirstPrototypeIndex = 3;
// Creates a Smi-handler for storing a field to fast object.
@@ -245,7 +253,7 @@ class StoreHandler {
static Handle<Object> StoreTransition(Isolate* isolate,
Handle<Map> receiver_map,
Handle<JSObject> holder,
- Handle<Map> transition,
+ Handle<HeapObject> transition,
Handle<Name> name);
static Handle<Object> StoreElementTransition(Isolate* isolate,
@@ -258,6 +266,14 @@ class StoreHandler {
Handle<JSReceiver> receiver,
Handle<Name> name);
+ // Creates a handler for storing a property to the property cell of a global
+ // object.
+ static Handle<Object> StoreGlobal(Isolate* isolate,
+ Handle<PropertyCell> cell);
+
+ // Creates a Smi-handler for storing a property to a global proxy object.
+ static inline Handle<Smi> StoreGlobalProxy(Isolate* isolate);
+
// Creates a Smi-handler for storing a property to a slow object.
static inline Handle<Smi> StoreNormal(Isolate* isolate);
@@ -265,6 +281,11 @@ class StoreHandler {
static inline Handle<Smi> StoreProxy(Isolate* isolate);
private:
+ // Sets DoAccessCheckOnReceiverBits in given Smi-handler. The receiver
+ // check is a part of a prototype chain check.
+ static inline Handle<Smi> EnableAccessCheckOnReceiver(
+ Isolate* isolate, Handle<Smi> smi_handler);
+
static inline Handle<Smi> StoreField(Isolate* isolate, Kind kind,
int descriptor, FieldIndex field_index,
Representation representation,
diff --git a/chromium/v8/src/ic/ic.cc b/chromium/v8/src/ic/ic.cc
index fe7e372c6bb..09920241eec 100644
--- a/chromium/v8/src/ic/ic.cc
+++ b/chromium/v8/src/ic/ic.cc
@@ -1366,23 +1366,19 @@ void StoreIC::UpdateCaches(LookupIterator* lookup, Handle<Object> value,
TRACE_IC("StoreIC", lookup->name());
}
-namespace {
-
-Handle<Object> StoreGlobal(Isolate* isolate, Handle<PropertyCell> cell) {
- return isolate->factory()->NewWeakCell(cell);
-}
-
-} // namespace
-
Handle<Object> StoreIC::GetMapIndependentHandler(LookupIterator* lookup) {
switch (lookup->state()) {
case LookupIterator::TRANSITION: {
Handle<JSObject> holder = lookup->GetHolder<JSObject>();
- auto store_target = lookup->GetStoreTarget();
+ Handle<JSObject> store_target = lookup->GetStoreTarget();
if (store_target->IsJSGlobalObject()) {
TRACE_HANDLER_STATS(isolate(), StoreIC_StoreGlobalTransitionDH);
- return StoreGlobal(isolate(), lookup->transition_cell());
+
+ Handle<Object> handler = StoreHandler::StoreTransition(
+ isolate(), receiver_map(), store_target, lookup->transition_cell(),
+ lookup->name());
+ return handler;
}
// Currently not handled by CompileStoreTransition.
if (!holder->HasFastProperties()) {
@@ -1477,7 +1473,8 @@ Handle<Object> StoreIC::GetMapIndependentHandler(LookupIterator* lookup) {
if (lookup->is_dictionary_holder()) {
if (holder->IsJSGlobalObject()) {
TRACE_HANDLER_STATS(isolate(), StoreIC_StoreGlobalDH);
- return StoreGlobal(isolate(), lookup->GetPropertyCell());
+ return StoreHandler::StoreGlobal(isolate(),
+ lookup->GetPropertyCell());
}
TRACE_HANDLER_STATS(isolate(), StoreIC_StoreNormalDH);
DCHECK(holder.is_identical_to(receiver));
diff --git a/chromium/v8/src/ic/keyed-store-generic.cc b/chromium/v8/src/ic/keyed-store-generic.cc
index 0f4b3eee466..7ff72bb72fd 100644
--- a/chromium/v8/src/ic/keyed-store-generic.cc
+++ b/chromium/v8/src/ic/keyed-store-generic.cc
@@ -811,14 +811,14 @@ void KeyedStoreGenericAssembler::EmitGenericPropertyStore(
BIND(&tuple3);
{
var_transition_cell.Bind(LoadObjectField(
- maybe_handler, StoreHandler::kTransitionCellOffset));
+ maybe_handler, StoreHandler::kTransitionOrHolderCellOffset));
Goto(&check_key);
}
BIND(&fixedarray);
{
var_transition_cell.Bind(LoadFixedArrayElement(
- maybe_handler, StoreHandler::kTransitionCellIndex));
+ maybe_handler, StoreHandler::kTransitionMapOrHolderCellIndex));
Goto(&check_key);
}
diff --git a/chromium/v8/src/inspector/inspector.gypi b/chromium/v8/src/inspector/inspector.gypi
index 96614e692a8..d6443283f5a 100644
--- a/chromium/v8/src/inspector/inspector.gypi
+++ b/chromium/v8/src/inspector/inspector.gypi
@@ -31,8 +31,8 @@
'inspector_all_sources': [
'<@(inspector_generated_sources)',
'<(inspector_generated_injected_script)',
- '../../include/v8-inspector.h',
- '../../include/v8-inspector-protocol.h',
+ '../include/v8-inspector.h',
+ '../include/v8-inspector-protocol.h',
'inspector/injected-script.cc',
'inspector/injected-script.h',
'inspector/inspected-context.cc',
diff --git a/chromium/v8/src/inspector/v8-debugger.cc b/chromium/v8/src/inspector/v8-debugger.cc
index 981a622b62d..3e321a42757 100644
--- a/chromium/v8/src/inspector/v8-debugger.cc
+++ b/chromium/v8/src/inspector/v8-debugger.cc
@@ -669,10 +669,8 @@ v8::MaybeLocal<v8::Array> V8Debugger::internalProperties(
}
if (value->IsFunction()) {
v8::Local<v8::Function> function = value.As<v8::Function>();
- v8::Local<v8::Value> boundFunction = function->GetBoundFunction();
v8::Local<v8::Value> scopes;
- if (boundFunction->IsUndefined() &&
- functionScopes(context, function).ToLocal(&scopes)) {
+ if (functionScopes(context, function).ToLocal(&scopes)) {
createDataProperty(context, properties, properties->Length(),
toV8StringInternalized(m_isolate, "[[Scopes]]"));
createDataProperty(context, properties, properties->Length(), scopes);
@@ -720,6 +718,8 @@ void V8Debugger::setAsyncCallStackDepth(V8DebuggerAgentImpl* agent, int depth) {
if (m_maxAsyncCallStackDepth == maxAsyncCallStackDepth) return;
// TODO(dgozman): ideally, this should be per context group.
m_maxAsyncCallStackDepth = maxAsyncCallStackDepth;
+ m_inspector->client()->maxAsyncCallStackDepthChanged(
+ m_maxAsyncCallStackDepth);
if (!maxAsyncCallStackDepth) allAsyncTasksCanceled();
}
diff --git a/chromium/v8/src/isolate.cc b/chromium/v8/src/isolate.cc
index 942938eded2..9312432763c 100644
--- a/chromium/v8/src/isolate.cc
+++ b/chromium/v8/src/isolate.cc
@@ -3055,16 +3055,17 @@ bool Isolate::IsInAnyContext(Object* object, uint32_t index) {
return false;
}
-bool Isolate::IsFastArrayConstructorPrototypeChainIntact() {
+bool Isolate::IsFastArrayConstructorPrototypeChainIntact(Context* context) {
PropertyCell* no_elements_cell = heap()->array_protector();
bool cell_reports_intact =
no_elements_cell->value()->IsSmi() &&
Smi::ToInt(no_elements_cell->value()) == kProtectorValid;
#ifdef DEBUG
+ Context* native_context = context->native_context();
+
Map* root_array_map =
- raw_native_context()->GetInitialJSArrayMap(GetInitialFastElementsKind());
- Context* native_context = context()->native_context();
+ native_context->GetInitialJSArrayMap(GetInitialFastElementsKind());
JSObject* initial_array_proto = JSObject::cast(
native_context->get(Context::INITIAL_ARRAY_PROTOTYPE_INDEX));
JSObject* initial_object_proto = JSObject::cast(
@@ -3093,8 +3094,11 @@ bool Isolate::IsFastArrayConstructorPrototypeChainIntact() {
PrototypeIterator iter(this, initial_array_proto);
if (iter.IsAtEnd() || iter.GetCurrent() != initial_object_proto) {
DCHECK_EQ(false, cell_reports_intact);
+ DCHECK(!has_pending_exception());
return cell_reports_intact;
}
+ DCHECK(!has_pending_exception());
+ DCHECK(!has_pending_exception());
elements = initial_object_proto->elements();
if (elements != heap()->empty_fixed_array() &&
@@ -3108,12 +3112,15 @@ bool Isolate::IsFastArrayConstructorPrototypeChainIntact() {
DCHECK_EQ(false, cell_reports_intact);
return cell_reports_intact;
}
-
#endif
return cell_reports_intact;
}
+bool Isolate::IsFastArrayConstructorPrototypeChainIntact() {
+ return Isolate::IsFastArrayConstructorPrototypeChainIntact(context());
+}
+
bool Isolate::IsIsConcatSpreadableLookupChainIntact() {
Cell* is_concat_spreadable_cell = heap()->is_concat_spreadable_protector();
bool is_is_concat_spreadable_set =
diff --git a/chromium/v8/src/isolate.h b/chromium/v8/src/isolate.h
index 43ffb8ce000..44a52508086 100644
--- a/chromium/v8/src/isolate.h
+++ b/chromium/v8/src/isolate.h
@@ -1070,7 +1070,13 @@ class Isolate {
static const int kProtectorInvalid = 0;
inline bool IsArrayConstructorIntact();
+
+ // The version with an explicit context parameter can be used when
+ // Isolate::context is not set up, e.g. when calling directly into C++ from
+ // CSA.
+ bool IsFastArrayConstructorPrototypeChainIntact(Context* context);
bool IsFastArrayConstructorPrototypeChainIntact();
+
inline bool IsArraySpeciesLookupChainIntact();
bool IsIsConcatSpreadableLookupChainIntact();
bool IsIsConcatSpreadableLookupChainIntact(JSReceiver* receiver);
diff --git a/chromium/v8/src/log.cc b/chromium/v8/src/log.cc
index 0eb9b250089..006acf71b95 100644
--- a/chromium/v8/src/log.cc
+++ b/chromium/v8/src/log.cc
@@ -1547,7 +1547,10 @@ static int EnumerateCompiledFunctions(Heap* heap,
!Script::cast(maybe_script)->HasValidSource()) {
continue;
}
- if (function->HasOptimizedCode()) {
+ // TODO(jarin) This leaves out deoptimized code that might still be on the
+ // stack. Also note that we will not log optimized code objects that are
+ // only on a type feedback vector. We should make this mroe precise.
+ if (function->IsOptimized()) {
AddFunctionAndCode(sfi, AbstractCode::cast(function->code()), sfis,
code_objects, compiled_funcs_count);
++compiled_funcs_count;
diff --git a/chromium/v8/src/lookup.cc b/chromium/v8/src/lookup.cc
index 75f008f105d..91d87ebbff9 100644
--- a/chromium/v8/src/lookup.cc
+++ b/chromium/v8/src/lookup.cc
@@ -94,21 +94,9 @@ LookupIterator LookupIterator::ForTransitionHandler(
has_property);
if (!transition_map->is_dictionary_map()) {
- PropertyConstness new_constness = kConst;
- if (FLAG_track_constant_fields) {
- if (it.constness() == kConst) {
- DCHECK_EQ(kData, it.property_details_.kind());
- // Check that current value matches new value otherwise we should make
- // the property mutable.
- if (!it.IsConstFieldValueEqualTo(*value)) new_constness = kMutable;
- }
- } else {
- new_constness = kMutable;
- }
-
int descriptor_number = transition_map->LastAdded();
Handle<Map> new_map = Map::PrepareForDataProperty(
- transition_map, descriptor_number, new_constness, value);
+ transition_map, descriptor_number, kConst, value);
// Reload information; this is no-op if nothing changed.
it.property_details_ =
new_map->instance_descriptors()->GetDetails(descriptor_number);
diff --git a/chromium/v8/src/map-updater.cc b/chromium/v8/src/map-updater.cc
index 05ef5fd3e21..3a9a9caf14c 100644
--- a/chromium/v8/src/map-updater.cc
+++ b/chromium/v8/src/map-updater.cc
@@ -123,8 +123,9 @@ Handle<Map> MapUpdater::ReconfigureToDataField(int descriptor,
new_field_type_ = field_type;
}
- GeneralizeIfTransitionableFastElementsKind(
- &new_constness_, &new_representation_, &new_field_type_);
+ Map::GeneralizeIfCanHaveTransitionableFastElementsKind(
+ isolate_, old_map_->instance_type(), &new_constness_,
+ &new_representation_, &new_field_type_);
if (TryRecofigureToDataFieldInplace() == kEnd) return result_map_;
if (FindRootMap() == kEnd) return result_map_;
@@ -158,28 +159,6 @@ Handle<Map> MapUpdater::Update() {
return result_map_;
}
-void MapUpdater::GeneralizeIfTransitionableFastElementsKind(
- PropertyConstness* constness, Representation* representation,
- Handle<FieldType>* field_type) {
- DCHECK_EQ(is_transitionable_fast_elements_kind_,
- IsTransitionableFastElementsKind(new_elements_kind_));
- if (is_transitionable_fast_elements_kind_ &&
- Map::IsInplaceGeneralizableField(*constness, *representation,
- **field_type)) {
- // We don't support propagation of field generalization through elements
- // kind transitions because they are inserted into the transition tree
- // before field transitions. In order to avoid complexity of handling
- // such a case we ensure that all maps with transitionable elements kinds
- // do not have fields that can be generalized in-place (without creation
- // of a new map).
- if (FLAG_track_constant_fields && FLAG_modify_map_inplace) {
- *constness = kMutable;
- }
- DCHECK(representation->IsHeapObject());
- *field_type = FieldType::Any(isolate_);
- }
-}
-
void MapUpdater::GeneralizeField(Handle<Map> map, int modify_index,
PropertyConstness new_constness,
Representation new_representation,
@@ -437,6 +416,7 @@ MapUpdater::State MapUpdater::FindTargetMap() {
}
Handle<DescriptorArray> MapUpdater::BuildDescriptorArray() {
+ InstanceType instance_type = old_map_->instance_type();
int target_nof = target_map_->NumberOfOwnDescriptors();
Handle<DescriptorArray> target_descriptors(
target_map_->instance_descriptors(), isolate_);
@@ -518,8 +498,9 @@ Handle<DescriptorArray> MapUpdater::BuildDescriptorArray() {
old_details.representation(), old_field_type, next_representation,
target_field_type, isolate_);
- GeneralizeIfTransitionableFastElementsKind(
- &next_constness, &next_representation, &next_field_type);
+ Map::GeneralizeIfCanHaveTransitionableFastElementsKind(
+ isolate_, instance_type, &next_constness, &next_representation,
+ &next_field_type);
Handle<Object> wrapped_type(Map::WrapFieldType(next_field_type));
Descriptor d;
diff --git a/chromium/v8/src/map-updater.h b/chromium/v8/src/map-updater.h
index a1d052261c0..7c5e92f2bf2 100644
--- a/chromium/v8/src/map-updater.h
+++ b/chromium/v8/src/map-updater.h
@@ -148,10 +148,6 @@ class MapUpdater {
Handle<DescriptorArray> descriptors, int descriptor,
PropertyLocation location, Representation representation);
- inline void GeneralizeIfTransitionableFastElementsKind(
- PropertyConstness* constness, Representation* representation,
- Handle<FieldType>* field_type);
-
void GeneralizeField(Handle<Map> map, int modify_index,
PropertyConstness new_constness,
Representation new_representation,
diff --git a/chromium/v8/src/messages.cc b/chromium/v8/src/messages.cc
index c1f08739dca..ddc5124cfcf 100644
--- a/chromium/v8/src/messages.cc
+++ b/chromium/v8/src/messages.cc
@@ -113,6 +113,9 @@ void MessageHandler::ReportMessage(Isolate* isolate, const MessageLocation* loc,
}
if (!maybe_stringified.ToHandle(&stringified)) {
+ DCHECK(isolate->has_pending_exception());
+ isolate->clear_pending_exception();
+ isolate->set_external_caught_exception(false);
stringified =
isolate->factory()->NewStringFromAsciiChecked("exception");
}
diff --git a/chromium/v8/src/messages.h b/chromium/v8/src/messages.h
index 51a62582157..9237f7a231e 100644
--- a/chromium/v8/src/messages.h
+++ b/chromium/v8/src/messages.h
@@ -543,7 +543,7 @@ class ErrorUtils : public AllStatic {
T(ToPrecisionFormatRange, \
"toPrecision() argument must be between 1 and 100") \
T(ToRadixFormatRange, "toString() radix argument must be between 2 and 36") \
- T(TypedArraySetNegativeOffset, "Start offset is negative") \
+ T(TypedArraySetOffsetOutOfBounds, "offset is out of bounds") \
T(TypedArraySetSourceTooLarge, "Source is too large") \
T(UnsupportedTimeZone, "Unsupported time zone specified %") \
T(ValueOutOfRange, "Value % out of range for % options property %") \
diff --git a/chromium/v8/src/objects-debug.cc b/chromium/v8/src/objects-debug.cc
index 98ccfc74682..e403fe9b25d 100644
--- a/chromium/v8/src/objects-debug.cc
+++ b/chromium/v8/src/objects-debug.cc
@@ -424,6 +424,9 @@ void Map::MapVerify() {
CHECK_IMPLIES(has_named_interceptor(), may_have_interesting_symbols());
CHECK_IMPLIES(is_dictionary_map(), may_have_interesting_symbols());
CHECK_IMPLIES(is_access_check_needed(), may_have_interesting_symbols());
+ CHECK_IMPLIES(IsJSObjectMap() && !CanHaveFastTransitionableElementsKind(),
+ IsDictionaryElementsKind(elements_kind()) ||
+ IsTerminalElementsKind(elements_kind()));
}
@@ -456,6 +459,12 @@ void FixedArray::FixedArrayVerify() {
}
void PropertyArray::PropertyArrayVerify() {
+ if (length() == 0) {
+ CHECK_EQ(this, this->GetHeap()->empty_property_array());
+ return;
+ }
+ // There are no empty PropertyArrays.
+ CHECK_LT(0, length());
for (int i = 0; i < length(); i++) {
Object* e = get(i);
VerifyPointer(e);
diff --git a/chromium/v8/src/objects-inl.h b/chromium/v8/src/objects-inl.h
index 7212a43d27a..f29c4d8c492 100644
--- a/chromium/v8/src/objects-inl.h
+++ b/chromium/v8/src/objects-inl.h
@@ -2654,33 +2654,31 @@ SYNCHRONIZED_SMI_ACCESSORS(FixedArrayBase, length, kLengthOffset)
int PropertyArray::length() const {
Object* value_obj = READ_FIELD(this, kLengthAndHashOffset);
int value = Smi::ToInt(value_obj);
- return value & kLengthMask;
+ return LengthField::decode(value);
}
void PropertyArray::initialize_length(int len) {
SLOW_DCHECK(len >= 0);
- SLOW_DCHECK(len < kMaxLength);
+ SLOW_DCHECK(len < LengthField::kMax);
WRITE_FIELD(this, kLengthAndHashOffset, Smi::FromInt(len));
}
int PropertyArray::synchronized_length() const {
Object* value_obj = ACQUIRE_READ_FIELD(this, kLengthAndHashOffset);
int value = Smi::ToInt(value_obj);
- return value & kLengthMask;
+ return LengthField::decode(value);
}
int PropertyArray::Hash() const {
Object* value_obj = READ_FIELD(this, kLengthAndHashOffset);
int value = Smi::ToInt(value_obj);
- int hash = value & kHashMask;
- return hash;
+ return HashField::decode(value);
}
-void PropertyArray::SetHash(int masked_hash) {
- DCHECK_EQ(masked_hash & JSReceiver::kHashMask, masked_hash);
+void PropertyArray::SetHash(int hash) {
Object* value_obj = READ_FIELD(this, kLengthAndHashOffset);
int value = Smi::ToInt(value_obj);
- value = (value & kLengthMask) | masked_hash;
+ value = HashField::update(value, hash);
WRITE_FIELD(this, kLengthAndHashOffset, Smi::FromInt(value));
}
@@ -5039,12 +5037,12 @@ void JSArrayBuffer::set_has_guard_region(bool value) {
set_bit_field(HasGuardRegion::update(bit_field(), value));
}
-bool JSArrayBuffer::is_wasm_buffer() {
- return IsWasmBuffer::decode(bit_field());
+bool JSArrayBuffer::is_growable() {
+ return IsGrowable::decode(bit_field());
}
-void JSArrayBuffer::set_is_wasm_buffer(bool value) {
- set_bit_field(IsWasmBuffer::update(bit_field(), value));
+void JSArrayBuffer::set_is_growable(bool value) {
+ set_bit_field(IsGrowable::update(bit_field(), value));
}
Object* JSArrayBufferView::byte_offset() const {
diff --git a/chromium/v8/src/objects-printer.cc b/chromium/v8/src/objects-printer.cc
index 7dbbdc5a627..33928a5aa71 100644
--- a/chromium/v8/src/objects-printer.cc
+++ b/chromium/v8/src/objects-printer.cc
@@ -495,7 +495,12 @@ static void JSObjectPrintHeader(std::ostream& os, JSObject* obj,
static void JSObjectPrintBody(std::ostream& os, JSObject* obj, // NOLINT
bool print_elements = true) {
- os << "\n - properties = " << Brief(obj->raw_properties_or_hash()) << " {";
+ os << "\n - properties = ";
+ Object* properties_or_hash = obj->raw_properties_or_hash();
+ if (!properties_or_hash->IsSmi()) {
+ os << Brief(properties_or_hash);
+ }
+ os << " {";
if (obj->PrintProperties(os)) os << "\n ";
os << "}\n";
if (print_elements && obj->elements()->length() > 0) {
@@ -972,7 +977,7 @@ void JSArrayBuffer::JSArrayBufferPrint(std::ostream& os) { // NOLINT
if (was_neutered()) os << "\n - neutered";
if (is_shared()) os << "\n - shared";
if (has_guard_region()) os << "\n - has_guard_region";
- if (is_wasm_buffer()) os << "\n - wasm_buffer";
+ if (is_growable()) os << "\n - growable";
JSObjectPrintBody(os, this, !was_neutered());
}
diff --git a/chromium/v8/src/objects.cc b/chromium/v8/src/objects.cc
index 7b7728c3014..b61d1eca324 100644
--- a/chromium/v8/src/objects.cc
+++ b/chromium/v8/src/objects.cc
@@ -3664,18 +3664,12 @@ MaybeHandle<Map> Map::CopyWithField(Handle<Map> map, Handle<Name> name,
int index = map->NextFreePropertyIndex();
if (map->instance_type() == JS_CONTEXT_EXTENSION_OBJECT_TYPE) {
+ constness = kMutable;
representation = Representation::Tagged();
type = FieldType::Any(isolate);
- } else if (IsTransitionableFastElementsKind(map->elements_kind()) &&
- IsInplaceGeneralizableField(constness, representation, *type)) {
- // We don't support propagation of field generalization through elements
- // kind transitions because they are inserted into the transition tree
- // before field transitions. In order to avoid complexity of handling
- // such a case we ensure that all maps with transitionable elements kinds
- // do not have fields that can be generalized in-place (without creation
- // of a new map).
- DCHECK(representation.IsHeapObject());
- type = FieldType::Any(isolate);
+ } else {
+ Map::GeneralizeIfCanHaveTransitionableFastElementsKind(
+ isolate, map->instance_type(), &constness, &representation, &type);
}
Handle<Object> wrapped_type(WrapFieldType(type));
@@ -4051,9 +4045,7 @@ void MigrateFastToFast(Handle<JSObject> object, Handle<Map> new_map) {
}
}
- if (external > 0) {
- object->SetProperties(*array);
- }
+ object->SetProperties(*array);
// Create filler object past the new instance size.
int new_instance_size = new_map->instance_size();
@@ -4257,6 +4249,10 @@ int Map::NumberOfFields() const {
return result;
}
+bool Map::HasOutOfObjectProperties() const {
+ return GetInObjectProperties() < NumberOfFields();
+}
+
void DescriptorArray::GeneralizeAllFields() {
int length = number_of_descriptors();
for (int i = 0; i < length; i++) {
@@ -5843,10 +5839,8 @@ void JSObject::AllocateStorageForMap(Handle<JSObject> object, Handle<Map> map) {
storage = isolate->factory()->NewFixedArray(inobject);
}
- Handle<PropertyArray> array;
- if (external > 0) {
- array = isolate->factory()->NewPropertyArray(external);
- }
+ Handle<PropertyArray> array =
+ isolate->factory()->NewPropertyArray(external);
for (int i = 0; i < map->NumberOfOwnDescriptors(); i++) {
PropertyDetails details = descriptors->GetDetails(i);
@@ -5862,9 +5856,7 @@ void JSObject::AllocateStorageForMap(Handle<JSObject> object, Handle<Map> map) {
}
}
- if (external > 0) {
- object->SetProperties(*array);
- }
+ object->SetProperties(*array);
if (!FLAG_unbox_double_fields) {
for (int i = 0; i < inobject; i++) {
@@ -6231,6 +6223,9 @@ void JSObject::MigrateSlowToFast(Handle<JSObject> object,
Handle<PropertyArray> fields =
factory->NewPropertyArray(number_of_allocated_fields);
+ bool is_transitionable_elements_kind =
+ IsTransitionableFastElementsKind(old_map->elements_kind());
+
// Fill in the instance descriptor and the fields.
int current_offset = 0;
for (int i = 0; i < instance_descriptor_length; i++) {
@@ -6258,8 +6253,14 @@ void JSObject::MigrateSlowToFast(Handle<JSObject> object,
d = Descriptor::DataConstant(key, handle(value, isolate),
details.attributes());
} else {
+ // Ensure that we make constant field only when elements kind is not
+ // transitionable.
+ PropertyConstness constness =
+ FLAG_track_constant_fields && !is_transitionable_elements_kind
+ ? kConst
+ : kMutable;
d = Descriptor::DataField(
- key, current_offset, details.attributes(), kDefaultFieldConstness,
+ key, current_offset, details.attributes(), constness,
// TODO(verwaest): value->OptimalRepresentation();
Representation::Tagged(), FieldType::Any(isolate));
}
@@ -6373,22 +6374,25 @@ Handle<SeededNumberDictionary> JSObject::NormalizeElements(
namespace {
-Object* SetHashAndUpdateProperties(HeapObject* properties, int masked_hash) {
- DCHECK_NE(PropertyArray::kNoHashSentinel, masked_hash);
- DCHECK_EQ(masked_hash & JSReceiver::kHashMask, masked_hash);
+Object* SetHashAndUpdateProperties(HeapObject* properties, int hash) {
+ DCHECK_NE(PropertyArray::kNoHashSentinel, hash);
+ DCHECK(PropertyArray::HashField::is_valid(hash));
- if (properties == properties->GetHeap()->empty_fixed_array() ||
- properties == properties->GetHeap()->empty_property_dictionary()) {
- return Smi::FromInt(masked_hash);
+ Heap* heap = properties->GetHeap();
+ if (properties == heap->empty_fixed_array() ||
+ properties == heap->empty_property_array() ||
+ properties == heap->empty_property_dictionary()) {
+ return Smi::FromInt(hash);
}
if (properties->IsPropertyArray()) {
- PropertyArray::cast(properties)->SetHash(masked_hash);
+ PropertyArray::cast(properties)->SetHash(hash);
+ DCHECK_LT(0, PropertyArray::cast(properties)->length());
return properties;
}
DCHECK(properties->IsDictionary());
- NameDictionary::cast(properties)->SetHash(masked_hash);
+ NameDictionary::cast(properties)->SetHash(hash);
return properties;
}
@@ -6419,18 +6423,21 @@ int GetIdentityHashHelper(Isolate* isolate, JSReceiver* object) {
}
} // namespace
-void JSReceiver::SetIdentityHash(int masked_hash) {
+void JSReceiver::SetIdentityHash(int hash) {
DisallowHeapAllocation no_gc;
- DCHECK_NE(PropertyArray::kNoHashSentinel, masked_hash);
- DCHECK_EQ(masked_hash & JSReceiver::kHashMask, masked_hash);
+ DCHECK_NE(PropertyArray::kNoHashSentinel, hash);
+ DCHECK(PropertyArray::HashField::is_valid(hash));
HeapObject* existing_properties = HeapObject::cast(raw_properties_or_hash());
Object* new_properties =
- SetHashAndUpdateProperties(existing_properties, masked_hash);
+ SetHashAndUpdateProperties(existing_properties, hash);
set_raw_properties_or_hash(new_properties);
}
void JSReceiver::SetProperties(HeapObject* properties) {
+ DCHECK_IMPLIES(properties->IsPropertyArray() &&
+ PropertyArray::cast(properties)->length() == 0,
+ properties == properties->GetHeap()->empty_property_array());
DisallowHeapAllocation no_gc;
Isolate* isolate = properties->GetIsolate();
int hash = GetIdentityHashHelper(isolate, this);
@@ -6481,11 +6488,11 @@ Smi* JSObject::GetOrCreateIdentityHash(Isolate* isolate) {
return Smi::cast(hash_obj);
}
- int masked_hash = isolate->GenerateIdentityHash(JSReceiver::kHashMask);
- DCHECK_NE(PropertyArray::kNoHashSentinel, masked_hash);
+ int hash = isolate->GenerateIdentityHash(PropertyArray::HashField::kMax);
+ DCHECK_NE(PropertyArray::kNoHashSentinel, hash);
- SetIdentityHash(masked_hash);
- return Smi::FromInt(masked_hash);
+ SetIdentityHash(hash);
+ return Smi::FromInt(hash);
}
Object* JSProxy::GetIdentityHash() { return hash(); }
@@ -9397,6 +9404,13 @@ void Map::InstallDescriptors(Handle<Map> parent, Handle<Map> child,
Handle<Map> Map::CopyAsElementsKind(Handle<Map> map, ElementsKind kind,
TransitionFlag flag) {
+ // Only certain objects are allowed to have non-terminal fast transitional
+ // elements kinds.
+ DCHECK(map->IsJSObjectMap());
+ DCHECK_IMPLIES(
+ !map->CanHaveFastTransitionableElementsKind(),
+ IsDictionaryElementsKind(kind) || IsTerminalElementsKind(kind));
+
Map* maybe_elements_transition_map = NULL;
if (flag == INSERT_TRANSITION) {
// Ensure we are requested to add elements kind transition "near the root".
@@ -12779,6 +12793,10 @@ bool CanSubclassHaveInobjectProperties(InstanceType instance_type) {
case JS_VALUE_TYPE:
case JS_WEAK_MAP_TYPE:
case JS_WEAK_SET_TYPE:
+ case WASM_INSTANCE_TYPE:
+ case WASM_MEMORY_TYPE:
+ case WASM_MODULE_TYPE:
+ case WASM_TABLE_TYPE:
return true;
case BIGINT_TYPE:
@@ -15170,6 +15188,9 @@ bool JSObject::WouldConvertToSlowElements(uint32_t index) {
static ElementsKind BestFittingFastElementsKind(JSObject* object) {
+ if (!object->map()->CanHaveFastTransitionableElementsKind()) {
+ return HOLEY_ELEMENTS;
+ }
if (object->HasSloppyArgumentsElements()) {
return FAST_SLOPPY_ARGUMENTS_ELEMENTS;
}
diff --git a/chromium/v8/src/objects.h b/chromium/v8/src/objects.h
index 18911a77fa3..895d92ba319 100644
--- a/chromium/v8/src/objects.h
+++ b/chromium/v8/src/objects.h
@@ -1950,17 +1950,10 @@ class PropertyArray : public HeapObject {
// No weak fields.
typedef BodyDescriptor BodyDescriptorWeak;
- static const int kLengthMask = 0x3ff;
-#if V8_TARGET_ARCH_64_BIT
- static const int kHashMask = 0x7ffffc00;
- STATIC_ASSERT(kLengthMask + kHashMask == 0x7fffffff);
-#else
- static const int kHashMask = 0x3ffffc00;
- STATIC_ASSERT(kLengthMask + kHashMask == 0x3fffffff);
-#endif
-
- static const int kMaxLength = kLengthMask;
- STATIC_ASSERT(kMaxLength > kMaxNumberOfDescriptors);
+ static const int kLengthFieldSize = 10;
+ class LengthField : public BitField<int, 0, kLengthFieldSize> {};
+ class HashField : public BitField<int, kLengthFieldSize,
+ kSmiValueSize - kLengthFieldSize - 1> {};
static const int kNoHashSentinel = 0;
@@ -1984,6 +1977,9 @@ class JSReceiver: public HeapObject {
// Gets slow properties for non-global objects.
inline NameDictionary* property_dictionary() const;
+ // Sets the properties backing store and makes sure any existing hash is moved
+ // to the new properties store. To clear out the properties store, pass in the
+ // empty_fixed_array(), the hash will be maintained in this case as well.
void SetProperties(HeapObject* properties);
// There are five possible values for the properties offset.
@@ -2187,7 +2183,7 @@ class JSReceiver: public HeapObject {
MUST_USE_RESULT static MaybeHandle<FixedArray> GetOwnEntries(
Handle<JSReceiver> object, PropertyFilter filter);
- static const int kHashMask = PropertyArray::kHashMask;
+ static const int kHashMask = PropertyArray::HashField::kMask;
// Layout description.
static const int kPropertiesOrHashOffset = HeapObject::kHeaderSize;
@@ -6249,10 +6245,8 @@ class JSArrayBuffer: public JSObject {
inline bool has_guard_region() const;
inline void set_has_guard_region(bool value);
- // TODO(gdeepti): This flag is introduced to disable asm.js optimizations in
- // js-typer-lowering.cc, remove when the asm.js case is fixed.
- inline bool is_wasm_buffer();
- inline void set_is_wasm_buffer(bool value);
+ inline bool is_growable();
+ inline void set_is_growable(bool value);
DECL_CAST(JSArrayBuffer)
@@ -6312,7 +6306,7 @@ class JSArrayBuffer: public JSObject {
class WasNeutered : public BitField<bool, 3, 1> {};
class IsShared : public BitField<bool, 4, 1> {};
class HasGuardRegion : public BitField<bool, 5, 1> {};
- class IsWasmBuffer : public BitField<bool, 6, 1> {};
+ class IsGrowable : public BitField<bool, 6, 1> {};
private:
DISALLOW_IMPLICIT_CONSTRUCTORS(JSArrayBuffer);
@@ -6387,7 +6381,7 @@ class JSTypedArray: public JSArrayBufferView {
DECL_PRINTER(JSTypedArray)
DECL_VERIFIER(JSTypedArray)
- static const int kLengthOffset = kViewSize + kPointerSize;
+ static const int kLengthOffset = kViewSize;
static const int kSize = kLengthOffset + kPointerSize;
static const int kSizeWithEmbedderFields =
diff --git a/chromium/v8/src/objects/dictionary.h b/chromium/v8/src/objects/dictionary.h
index 0297a7f28b3..11cf8b11639 100644
--- a/chromium/v8/src/objects/dictionary.h
+++ b/chromium/v8/src/objects/dictionary.h
@@ -138,14 +138,16 @@ class BaseNameDictionary : public Dictionary<Derived, Shape> {
return Smi::ToInt(this->get(kNextEnumerationIndexIndex));
}
- void SetHash(int masked_hash) {
- DCHECK_EQ(masked_hash & JSReceiver::kHashMask, masked_hash);
- this->set(kObjectHashIndex, Smi::FromInt(masked_hash));
+ void SetHash(int hash) {
+ DCHECK(PropertyArray::HashField::is_valid(hash));
+ this->set(kObjectHashIndex, Smi::FromInt(hash));
}
int Hash() const {
Object* hash_obj = this->get(kObjectHashIndex);
- return Smi::ToInt(hash_obj);
+ int hash = Smi::ToInt(hash_obj);
+ DCHECK(PropertyArray::HashField::is_valid(hash));
+ return hash;
}
// Creates a new dictionary.
diff --git a/chromium/v8/src/objects/map-inl.h b/chromium/v8/src/objects/map-inl.h
index aab6e786689..a5421a32cad 100644
--- a/chromium/v8/src/objects/map-inl.h
+++ b/chromium/v8/src/objects/map-inl.h
@@ -42,6 +42,39 @@ bool Map::IsInplaceGeneralizableField(PropertyConstness constness,
return false;
}
+bool Map::CanHaveFastTransitionableElementsKind(InstanceType instance_type) {
+ return instance_type == JS_ARRAY_TYPE || instance_type == JS_VALUE_TYPE ||
+ instance_type == JS_ARGUMENTS_TYPE;
+}
+
+bool Map::CanHaveFastTransitionableElementsKind() const {
+ return CanHaveFastTransitionableElementsKind(instance_type());
+}
+
+// static
+void Map::GeneralizeIfCanHaveTransitionableFastElementsKind(
+ Isolate* isolate, InstanceType instance_type, PropertyConstness* constness,
+ Representation* representation, Handle<FieldType>* field_type) {
+ if (CanHaveFastTransitionableElementsKind(instance_type)) {
+ // We don't support propagation of field generalization through elements
+ // kind transitions because they are inserted into the transition tree
+ // before field transitions. In order to avoid complexity of handling
+ // such a case we ensure that all maps with transitionable elements kinds
+ // do not have fields that can be generalized in-place (without creation
+ // of a new map).
+ if (FLAG_track_constant_fields && FLAG_modify_map_inplace) {
+ // The constness is either already kMutable or should become kMutable if
+ // it was kConst.
+ *constness = kMutable;
+ }
+ if (representation->IsHeapObject()) {
+ // The field type is either already Any or should become Any if it was
+ // something else.
+ *field_type = FieldType::Any(isolate);
+ }
+ }
+}
+
int NormalizedMapCache::GetIndex(Handle<Map> map) {
return map->Hash() % NormalizedMapCache::kEntries;
}
diff --git a/chromium/v8/src/objects/map.h b/chromium/v8/src/objects/map.h
index 2bbf7ac1ce9..5806a24ae0f 100644
--- a/chromium/v8/src/objects/map.h
+++ b/chromium/v8/src/objects/map.h
@@ -406,6 +406,8 @@ class Map : public HeapObject {
int NumberOfFields() const;
+ bool HasOutOfObjectProperties() const;
+
// Returns true if transition to the given map requires special
// synchronization with the concurrent marker.
bool TransitionRequiresSynchronizationWithGC(Map* target) const;
@@ -436,6 +438,18 @@ class Map : public HeapObject {
Representation representation,
FieldType* field_type);
+ // Generalizes constness, representation and field_type if objects with given
+ // instance type can have fast elements that can be transitioned by stubs or
+ // optimized code to more general elements kind.
+ // This generalization is necessary in order to ensure that elements kind
+ // transitions performed by stubs / optimized code don't silently transition
+ // kMutable fields back to kConst state or fields with HeapObject
+ // representation and "Any" type back to "Class" type.
+ static inline void GeneralizeIfCanHaveTransitionableFastElementsKind(
+ Isolate* isolate, InstanceType instance_type,
+ PropertyConstness* constness, Representation* representation,
+ Handle<FieldType>* field_type);
+
static Handle<Map> ReconfigureProperty(Handle<Map> map, int modify_index,
PropertyKind new_kind,
PropertyAttributes new_attributes,
@@ -823,6 +837,16 @@ class Map : public HeapObject {
static VisitorId GetVisitorId(Map* map);
+ // Returns true if objects with given instance type are allowed to have
+ // fast transitionable elements kinds. This predicate is used to ensure
+ // that objects that can have transitionable fast elements kind will not
+ // get in-place generalizable fields because the elements kind transition
+ // performed by stubs or optimized code can't properly generalize such
+ // fields.
+ static inline bool CanHaveFastTransitionableElementsKind(
+ InstanceType instance_type);
+ inline bool CanHaveFastTransitionableElementsKind() const;
+
private:
// Returns the map that this (root) map transitions to if its elements_kind
// is changed to |elements_kind|, or |nullptr| if no such map is cached yet.
diff --git a/chromium/v8/src/parsing/parser.cc b/chromium/v8/src/parsing/parser.cc
index 7eebfbdafce..a554d7d2423 100644
--- a/chromium/v8/src/parsing/parser.cc
+++ b/chromium/v8/src/parsing/parser.cc
@@ -2790,7 +2790,7 @@ Parser::LazyParsingResult Parser::SkipFunction(
DCHECK(log_);
log_->LogFunction(function_scope->start_position(),
function_scope->end_position(), *num_parameters,
- language_mode(), function_scope->uses_super_property(),
+ language_mode(), function_scope->NeedsHomeObject(),
logger->num_inner_functions());
}
return kLazyParsingComplete;
@@ -3383,8 +3383,9 @@ void Parser::ParseOnBackground(ParseInfo* info) {
if (result != NULL) *info->cached_data() = logger.GetScriptData();
log_ = NULL;
}
- if (FLAG_runtime_stats &
- v8::tracing::TracingCategoryObserver::ENABLED_BY_TRACING) {
+ if (runtime_call_stats_ &&
+ (FLAG_runtime_stats &
+ v8::tracing::TracingCategoryObserver::ENABLED_BY_TRACING)) {
auto value = v8::tracing::TracedValue::Create();
runtime_call_stats_->Dump(value.get());
TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats"),
diff --git a/chromium/v8/src/parsing/preparsed-scope-data.cc b/chromium/v8/src/parsing/preparsed-scope-data.cc
index f73a61bfb6b..8d2ce2d1a55 100644
--- a/chromium/v8/src/parsing/preparsed-scope-data.cc
+++ b/chromium/v8/src/parsing/preparsed-scope-data.cc
@@ -101,16 +101,16 @@ void ProducedPreParsedScopeData::ByteData::WriteUint32(uint32_t data) {
}
void ProducedPreParsedScopeData::ByteData::OverwriteFirstUint32(uint32_t data) {
- size_t position = 0;
+ auto it = backing_store_.begin();
#ifdef DEBUG
// Check that that position already holds an item of the expected size.
DCHECK_GE(backing_store_.size(), kUint32Size);
- DCHECK_EQ(backing_store_[0], kUint32Size);
- ++position;
+ DCHECK_EQ(*it, kUint32Size);
+ ++it;
#endif
const uint8_t* d = reinterpret_cast<uint8_t*>(&data);
for (size_t i = 0; i < 4; ++i) {
- backing_store_[position + i] = *d++;
+ *it++ = *d++;
}
}
@@ -123,7 +123,7 @@ void ProducedPreParsedScopeData::ByteData::WriteUint8(uint8_t data) {
}
Handle<PodArray<uint8_t>> ProducedPreParsedScopeData::ByteData::Serialize(
- Isolate* isolate) const {
+ Isolate* isolate) {
Handle<PodArray<uint8_t>> array = PodArray<uint8_t>::New(
isolate, static_cast<int>(backing_store_.size()), TENURED);
@@ -193,7 +193,7 @@ void ProducedPreParsedScopeData::DataGatheringScope::MarkFunctionAsSkippable(
produced_preparsed_scope_data_->parent_->AddSkippableFunction(
function_scope_->start_position(), end_position,
function_scope_->num_parameters(), num_inner_functions,
- function_scope_->language_mode(), function_scope_->uses_super_property());
+ function_scope_->language_mode(), function_scope_->NeedsHomeObject());
}
void ProducedPreParsedScopeData::AddSkippableFunction(
@@ -251,7 +251,7 @@ void ProducedPreParsedScopeData::SaveScopeAllocationData(
}
MaybeHandle<PreParsedScopeData> ProducedPreParsedScopeData::Serialize(
- Isolate* isolate) const {
+ Isolate* isolate) {
if (!previously_produced_preparsed_scope_data_.is_null()) {
DCHECK(!bailed_out_);
DCHECK_EQ(data_for_inner_functions_.size(), 0);
@@ -336,12 +336,6 @@ bool ProducedPreParsedScopeData::ScopeIsSkippableFunctionScope(Scope* scope) {
void ProducedPreParsedScopeData::SaveDataForScope(Scope* scope) {
DCHECK_NE(scope->end_position(), kNoSourcePosition);
- // We're not trying to save data for default constructors because the
- // PreParser doesn't construct them.
- DCHECK_IMPLIES(scope->scope_type() == ScopeType::FUNCTION_SCOPE,
- (scope->AsDeclarationScope()->function_kind() &
- kDefaultConstructor) == 0);
-
if (!ScopeNeedsData(scope)) {
return;
}
diff --git a/chromium/v8/src/parsing/preparsed-scope-data.h b/chromium/v8/src/parsing/preparsed-scope-data.h
index 205de42207a..290bfba2fd4 100644
--- a/chromium/v8/src/parsing/preparsed-scope-data.h
+++ b/chromium/v8/src/parsing/preparsed-scope-data.h
@@ -13,7 +13,7 @@
#include "src/handles.h"
#include "src/objects/shared-function-info.h"
#include "src/parsing/preparse-data.h"
-#include "src/zone/zone-containers.h"
+#include "src/zone/zone-chunk-list.h"
namespace v8 {
namespace internal {
@@ -77,12 +77,12 @@ class ProducedPreParsedScopeData : public ZoneObject {
// For overwriting previously written data at position 0.
void OverwriteFirstUint32(uint32_t data);
- Handle<PodArray<uint8_t>> Serialize(Isolate* isolate) const;
+ Handle<PodArray<uint8_t>> Serialize(Isolate* isolate);
size_t size() const { return backing_store_.size(); }
private:
- ZoneDeque<uint8_t> backing_store_;
+ ZoneChunkList<uint8_t> backing_store_;
};
// Create a ProducedPreParsedScopeData object which will collect data as we
@@ -145,7 +145,7 @@ class ProducedPreParsedScopeData : public ZoneObject {
// If there is data (if the Scope contains skippable inner functions), move
// the data into the heap and return a Handle to it; otherwise return a null
// MaybeHandle.
- MaybeHandle<PreParsedScopeData> Serialize(Isolate* isolate) const;
+ MaybeHandle<PreParsedScopeData> Serialize(Isolate* isolate);
static bool ScopeNeedsData(Scope* scope);
static bool ScopeIsSkippableFunctionScope(Scope* scope);
@@ -163,7 +163,7 @@ class ProducedPreParsedScopeData : public ZoneObject {
ProducedPreParsedScopeData* parent_;
ByteData* byte_data_;
- ZoneDeque<ProducedPreParsedScopeData*> data_for_inner_functions_;
+ ZoneChunkList<ProducedPreParsedScopeData*> data_for_inner_functions_;
// Whether we've given up producing the data for this function.
bool bailed_out_;
diff --git a/chromium/v8/src/parsing/preparser.cc b/chromium/v8/src/parsing/preparser.cc
index 289059bc7f3..c31fd4af8e9 100644
--- a/chromium/v8/src/parsing/preparser.cc
+++ b/chromium/v8/src/parsing/preparser.cc
@@ -206,7 +206,8 @@ PreParser::PreParseResult PreParser::PreParseFunction(
}
}
- if (!IsArrowFunction(kind) && track_unresolved_variables_) {
+ if (!IsArrowFunction(kind) && track_unresolved_variables_ &&
+ result == kLazyParsingComplete) {
CreateFunctionNameAssignment(function_name, function_type, function_scope);
// Declare arguments after parsing the function since lexical 'arguments'
diff --git a/chromium/v8/src/parsing/preparser.h b/chromium/v8/src/parsing/preparser.h
index 0403bcdec61..275c5e9e0bd 100644
--- a/chromium/v8/src/parsing/preparser.h
+++ b/chromium/v8/src/parsing/preparser.h
@@ -1124,7 +1124,22 @@ class PreParser : public ParserBase<PreParser> {
ClassInfo* class_info, int pos, int end_pos, bool* ok) {
bool has_default_constructor = !class_info->has_seen_constructor;
// Account for the default constructor.
- if (has_default_constructor) GetNextFunctionLiteralId();
+ if (has_default_constructor) {
+ // Creating and disposing of a FunctionState makes tracking of
+ // next_function_is_likely_called match what Parser does. TODO(marja):
+ // Make the lazy function + next_function_is_likely_called + default ctor
+ // logic less surprising. Default ctors shouldn't affect the laziness of
+ // functions.
+ bool has_extends = class_info->extends.IsNull();
+ FunctionKind kind = has_extends ? FunctionKind::kDefaultDerivedConstructor
+ : FunctionKind::kDefaultBaseConstructor;
+ DeclarationScope* function_scope = NewFunctionScope(kind);
+ SetLanguageMode(function_scope, STRICT);
+ function_scope->set_start_position(pos);
+ function_scope->set_end_position(pos);
+ FunctionState function_state(&function_state_, &scope_, function_scope);
+ GetNextFunctionLiteralId();
+ }
return PreParserExpression::Default();
}
diff --git a/chromium/v8/src/ppc/simulator-ppc.cc b/chromium/v8/src/ppc/simulator-ppc.cc
index ef6e64a9f36..0f90700c81c 100644
--- a/chromium/v8/src/ppc/simulator-ppc.cc
+++ b/chromium/v8/src/ppc/simulator-ppc.cc
@@ -1334,7 +1334,6 @@ void Simulator::SoftwareInterrupt(Instruction* instr) {
int arg0_regnum = 3;
intptr_t result_buffer = 0;
bool uses_result_buffer =
- redirection->type() == ExternalReference::BUILTIN_CALL_TRIPLE ||
(redirection->type() == ExternalReference::BUILTIN_CALL_PAIR &&
!ABI_RETURNS_OBJECT_PAIRS_IN_REGS);
if (uses_result_buffer) {
diff --git a/chromium/v8/src/regexp/jsregexp.cc b/chromium/v8/src/regexp/jsregexp.cc
index 399c6153c5a..52ed47cf533 100644
--- a/chromium/v8/src/regexp/jsregexp.cc
+++ b/chromium/v8/src/regexp/jsregexp.cc
@@ -5905,7 +5905,7 @@ Vector<const int> CharacterRange::GetWordBounds() {
return Vector<const int>(kWordRanges, kWordRangeCount - 1);
}
-
+// static
void CharacterRange::AddCaseEquivalents(Isolate* isolate, Zone* zone,
ZoneList<CharacterRange>* ranges,
bool is_one_byte) {
@@ -5914,12 +5914,12 @@ void CharacterRange::AddCaseEquivalents(Isolate* isolate, Zone* zone,
for (int i = 0; i < range_count; i++) {
CharacterRange range = ranges->at(i);
uc32 bottom = range.from();
- if (bottom > String::kMaxUtf16CodeUnit) return;
+ if (bottom > String::kMaxUtf16CodeUnit) continue;
uc32 top = Min(range.to(), String::kMaxUtf16CodeUnit);
// Nothing to be done for surrogates.
- if (bottom >= kLeadSurrogateStart && top <= kTrailSurrogateEnd) return;
+ if (bottom >= kLeadSurrogateStart && top <= kTrailSurrogateEnd) continue;
if (is_one_byte && !RangeContainsLatin1Equivalents(range)) {
- if (bottom > String::kMaxOneByteCharCode) return;
+ if (bottom > String::kMaxOneByteCharCode) continue;
if (top > String::kMaxOneByteCharCode) top = String::kMaxOneByteCharCode;
}
unibrow::uchar chars[unibrow::Ecma262UnCanonicalize::kMaxWidth];
diff --git a/chromium/v8/src/runtime/runtime-intl.cc b/chromium/v8/src/runtime/runtime-intl.cc
index 22acba28cd1..783450c8ef1 100644
--- a/chromium/v8/src/runtime/runtime-intl.cc
+++ b/chromium/v8/src/runtime/runtime-intl.cc
@@ -68,18 +68,21 @@ RUNTIME_FUNCTION(Runtime_CanonicalizeLanguageTag) {
v8::String::Utf8Value locale_id(v8_isolate,
v8::Utils::ToLocal(locale_id_str));
+ // TODO(jshin): uloc_{for,to}TanguageTag can fail even for a structually valid
+ // language tag if it's too long (much longer than 100 chars). Even if we
+ // allocate a longer buffer, ICU will still fail if it's too long. Either
+ // propose to Ecma 402 to put a limit on the locale length or change ICU to
+ // handle long locale names better. See
+ // https://ssl.icu-project.org/trac/ticket/13417 .
+
// Return value which denotes invalid language tag.
- // TODO(jshin): Can uloc_{for,to}TanguageTag fail even for structually valid
- // language tags? If not, just add CHECK instead of returning 'invalid-tag'.
const char* const kInvalidTag = "invalid-tag";
UErrorCode error = U_ZERO_ERROR;
char icu_result[ULOC_FULLNAME_CAPACITY];
- int icu_length = 0;
-
- uloc_forLanguageTag(*locale_id, icu_result, ULOC_FULLNAME_CAPACITY,
- &icu_length, &error);
- if (U_FAILURE(error) || icu_length == 0) {
+ uloc_forLanguageTag(*locale_id, icu_result, ULOC_FULLNAME_CAPACITY, nullptr,
+ &error);
+ if (U_FAILURE(error) || error == U_STRING_NOT_TERMINATED_WARNING) {
return *factory->NewStringFromAsciiChecked(kInvalidTag);
}
@@ -88,7 +91,7 @@ RUNTIME_FUNCTION(Runtime_CanonicalizeLanguageTag) {
// Force strict BCP47 rules.
uloc_toLanguageTag(icu_result, result, ULOC_FULLNAME_CAPACITY, TRUE, &error);
- if (U_FAILURE(error)) {
+ if (U_FAILURE(error) || error == U_STRING_NOT_TERMINATED_WARNING) {
return *factory->NewStringFromAsciiChecked(kInvalidTag);
}
@@ -134,7 +137,7 @@ RUNTIME_FUNCTION(Runtime_AvailableLocalesOf) {
error = U_ZERO_ERROR;
// No need to force strict BCP47 rules.
uloc_toLanguageTag(icu_name, result, ULOC_FULLNAME_CAPACITY, FALSE, &error);
- if (U_FAILURE(error)) {
+ if (U_FAILURE(error) || error == U_STRING_NOT_TERMINATED_WARNING) {
// This shouldn't happen, but lets not break the user.
continue;
}
@@ -173,91 +176,6 @@ RUNTIME_FUNCTION(Runtime_GetDefaultICULocale) {
return *factory->NewStringFromStaticChars("und");
}
-RUNTIME_FUNCTION(Runtime_GetLanguageTagVariants) {
- HandleScope scope(isolate);
- v8::Isolate* v8_isolate = reinterpret_cast<v8::Isolate*>(isolate);
- Factory* factory = isolate->factory();
-
- DCHECK_EQ(1, args.length());
-
- CONVERT_ARG_HANDLE_CHECKED(JSArray, input, 0);
-
- uint32_t length = static_cast<uint32_t>(input->length()->Number());
- // Set some limit to prevent fuzz tests from going OOM.
- // Can be bumped when callers' requirements change.
- if (length >= 100) return isolate->ThrowIllegalOperation();
- Handle<FixedArray> output = factory->NewFixedArray(length);
- Handle<Name> maximized = factory->NewStringFromStaticChars("maximized");
- Handle<Name> base = factory->NewStringFromStaticChars("base");
- for (unsigned int i = 0; i < length; ++i) {
- Handle<Object> locale_id;
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
- isolate, locale_id, JSReceiver::GetElement(isolate, input, i));
- if (!locale_id->IsString()) {
- return isolate->Throw(*factory->illegal_argument_string());
- }
-
- v8::String::Utf8Value utf8_locale_id(
- v8_isolate, v8::Utils::ToLocal(Handle<String>::cast(locale_id)));
-
- UErrorCode error = U_ZERO_ERROR;
-
- // Convert from BCP47 to ICU format.
- // de-DE-u-co-phonebk -> de_DE@collation=phonebook
- char icu_locale[ULOC_FULLNAME_CAPACITY];
- int icu_locale_length = 0;
- uloc_forLanguageTag(*utf8_locale_id, icu_locale, ULOC_FULLNAME_CAPACITY,
- &icu_locale_length, &error);
- if (U_FAILURE(error) || icu_locale_length == 0) {
- return isolate->Throw(*factory->illegal_argument_string());
- }
-
- // Maximize the locale.
- // de_DE@collation=phonebook -> de_Latn_DE@collation=phonebook
- char icu_max_locale[ULOC_FULLNAME_CAPACITY];
- uloc_addLikelySubtags(icu_locale, icu_max_locale, ULOC_FULLNAME_CAPACITY,
- &error);
-
- // Remove extensions from maximized locale.
- // de_Latn_DE@collation=phonebook -> de_Latn_DE
- char icu_base_max_locale[ULOC_FULLNAME_CAPACITY];
- uloc_getBaseName(icu_max_locale, icu_base_max_locale,
- ULOC_FULLNAME_CAPACITY, &error);
-
- // Get original name without extensions.
- // de_DE@collation=phonebook -> de_DE
- char icu_base_locale[ULOC_FULLNAME_CAPACITY];
- uloc_getBaseName(icu_locale, icu_base_locale, ULOC_FULLNAME_CAPACITY,
- &error);
-
- // Convert from ICU locale format to BCP47 format.
- // de_Latn_DE -> de-Latn-DE
- char base_max_locale[ULOC_FULLNAME_CAPACITY];
- uloc_toLanguageTag(icu_base_max_locale, base_max_locale,
- ULOC_FULLNAME_CAPACITY, FALSE, &error);
-
- // de_DE -> de-DE
- char base_locale[ULOC_FULLNAME_CAPACITY];
- uloc_toLanguageTag(icu_base_locale, base_locale, ULOC_FULLNAME_CAPACITY,
- FALSE, &error);
-
- if (U_FAILURE(error)) {
- return isolate->Throw(*factory->illegal_argument_string());
- }
-
- Handle<JSObject> result = factory->NewJSObject(isolate->object_function());
- Handle<String> value = factory->NewStringFromAsciiChecked(base_max_locale);
- JSObject::AddProperty(result, maximized, value, NONE);
- value = factory->NewStringFromAsciiChecked(base_locale);
- JSObject::AddProperty(result, base, value, NONE);
- output->set(i, *result);
- }
-
- Handle<JSArray> result = factory->NewJSArrayWithElements(output);
- result->set_length(Smi::FromInt(length));
- return *result;
-}
-
RUNTIME_FUNCTION(Runtime_IsInitializedIntlObject) {
HandleScope scope(isolate);
diff --git a/chromium/v8/src/runtime/runtime-object.cc b/chromium/v8/src/runtime/runtime-object.cc
index 711a55e2ff7..4c8805eb254 100644
--- a/chromium/v8/src/runtime/runtime-object.cc
+++ b/chromium/v8/src/runtime/runtime-object.cc
@@ -163,16 +163,23 @@ bool DeleteObjectPropertyFast(Isolate* isolate, Handle<JSReceiver> receiver,
if (details.location() == kField) {
isolate->heap()->NotifyObjectLayoutChange(*receiver, map->instance_size(),
no_allocation);
- Object* filler = isolate->heap()->one_pointer_filler_map();
FieldIndex index = FieldIndex::ForPropertyIndex(map, details.field_index());
- JSObject::cast(*receiver)->RawFastPropertyAtPut(index, filler);
- // We must clear any recorded slot for the deleted property, because
- // subsequent object modifications might put a raw double there.
- // Slot clearing is the reason why this entire function cannot currently
- // be implemented in the DeleteProperty stub.
- if (index.is_inobject() && !map->IsUnboxedDoubleField(index)) {
- isolate->heap()->ClearRecordedSlot(
- *receiver, HeapObject::RawField(*receiver, index.offset()));
+ // Special case deleting the last out-of object property.
+ if (!index.is_inobject() && index.outobject_array_index() == 0) {
+ DCHECK(!Map::cast(backpointer)->HasOutOfObjectProperties());
+ // Clear out the properties backing store.
+ receiver->SetProperties(isolate->heap()->empty_fixed_array());
+ } else {
+ Object* filler = isolate->heap()->one_pointer_filler_map();
+ JSObject::cast(*receiver)->RawFastPropertyAtPut(index, filler);
+ // We must clear any recorded slot for the deleted property, because
+ // subsequent object modifications might put a raw double there.
+ // Slot clearing is the reason why this entire function cannot currently
+ // be implemented in the DeleteProperty stub.
+ if (index.is_inobject() && !map->IsUnboxedDoubleField(index)) {
+ isolate->heap()->ClearRecordedSlot(
+ *receiver, HeapObject::RawField(*receiver, index.offset()));
+ }
}
}
// If the map was marked stable before, then there could be optimized code
@@ -182,6 +189,10 @@ bool DeleteObjectPropertyFast(Isolate* isolate, Handle<JSReceiver> receiver,
map->NotifyLeafMapLayoutChange();
// Finally, perform the map rollback.
receiver->synchronized_set_map(Map::cast(backpointer));
+#if VERIFY_HEAP
+ receiver->HeapObjectVerify();
+ receiver->property_array()->PropertyArrayVerify();
+#endif
return true;
}
diff --git a/chromium/v8/src/runtime/runtime-proxy.cc b/chromium/v8/src/runtime/runtime-proxy.cc
index 028f3e2046c..472cbdf79d6 100644
--- a/chromium/v8/src/runtime/runtime-proxy.cc
+++ b/chromium/v8/src/runtime/runtime-proxy.cc
@@ -51,11 +51,11 @@ RUNTIME_FUNCTION(Runtime_GetPropertyWithReceiver) {
DCHECK_EQ(3, args.length());
CONVERT_ARG_HANDLE_CHECKED(JSReceiver, holder, 0);
- CONVERT_ARG_HANDLE_CHECKED(Object, name, 1);
+ CONVERT_ARG_HANDLE_CHECKED(Object, key, 1);
CONVERT_ARG_HANDLE_CHECKED(Object, receiver, 2);
- bool success;
- LookupIterator it = LookupIterator::PropertyOrElement(isolate, receiver, name,
+ bool success = false;
+ LookupIterator it = LookupIterator::PropertyOrElement(isolate, receiver, key,
&success, holder);
if (!success) {
DCHECK(isolate->has_pending_exception());
@@ -69,15 +69,18 @@ RUNTIME_FUNCTION(Runtime_SetPropertyWithReceiver) {
DCHECK_EQ(5, args.length());
CONVERT_ARG_HANDLE_CHECKED(JSReceiver, holder, 0);
- CONVERT_ARG_HANDLE_CHECKED(Object, name, 1);
+ CONVERT_ARG_HANDLE_CHECKED(Object, key, 1);
CONVERT_ARG_HANDLE_CHECKED(Object, value, 2);
CONVERT_ARG_HANDLE_CHECKED(Object, receiver, 3);
CONVERT_LANGUAGE_MODE_ARG_CHECKED(language_mode, 4);
- bool success;
- LookupIterator it = LookupIterator::PropertyOrElement(isolate, receiver, name,
+ bool success = false;
+ LookupIterator it = LookupIterator::PropertyOrElement(isolate, receiver, key,
&success, holder);
-
+ if (!success) {
+ DCHECK(isolate->has_pending_exception());
+ return isolate->heap()->exception();
+ }
Maybe<bool> result = Object::SetSuperProperty(
&it, value, language_mode, Object::MAY_BE_STORE_FROM_KEYED);
MAYBE_RETURN(result, isolate->heap()->exception());
diff --git a/chromium/v8/src/runtime/runtime-test.cc b/chromium/v8/src/runtime/runtime-test.cc
index 587c1dc251e..19a4af50d1c 100644
--- a/chromium/v8/src/runtime/runtime-test.cc
+++ b/chromium/v8/src/runtime/runtime-test.cc
@@ -892,6 +892,7 @@ RUNTIME_FUNCTION(Runtime_GetWasmRecoveredTrapCount) {
return isolate->heap()->ToBoolean(obj->Has##Name()); \
}
+ELEMENTS_KIND_CHECK_RUNTIME_FUNCTION(FastElements)
ELEMENTS_KIND_CHECK_RUNTIME_FUNCTION(SmiElements)
ELEMENTS_KIND_CHECK_RUNTIME_FUNCTION(ObjectElements)
ELEMENTS_KIND_CHECK_RUNTIME_FUNCTION(SmiOrObjectElements)
@@ -1070,5 +1071,16 @@ RUNTIME_FUNCTION(Runtime_WasmTraceMemory) {
return isolate->heap()->undefined_value();
}
+RUNTIME_FUNCTION(Runtime_CompleteInobjectSlackTracking) {
+ HandleScope scope(isolate);
+ DCHECK_EQ(1, args.length());
+
+ CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0);
+ object->map()->CompleteInobjectSlackTracking();
+
+ return isolate->heap()->undefined_value();
+}
+
+
} // namespace internal
} // namespace v8
diff --git a/chromium/v8/src/runtime/runtime-typedarray.cc b/chromium/v8/src/runtime/runtime-typedarray.cc
index 58a2bbdcfc8..8dfa8f166c2 100644
--- a/chromium/v8/src/runtime/runtime-typedarray.cc
+++ b/chromium/v8/src/runtime/runtime-typedarray.cc
@@ -214,5 +214,148 @@ RUNTIME_FUNCTION(Runtime_TypedArraySpeciesCreateByLength) {
return *result_array;
}
+namespace {
+
+Object* TypedArraySetFromOverlapping(Isolate* isolate,
+ Handle<JSTypedArray> target,
+ Handle<JSTypedArray> source,
+ uint32_t offset) {
+#ifdef DEBUG
+ Handle<FixedTypedArrayBase> source_elements(
+ FixedTypedArrayBase::cast(source->elements()));
+ Handle<FixedTypedArrayBase> target_elements(
+ FixedTypedArrayBase::cast(target->elements()));
+ uint8_t* source_data = static_cast<uint8_t*>(source_elements->DataPtr());
+ uint8_t* target_data = static_cast<uint8_t*>(target_elements->DataPtr());
+ size_t source_byte_length = NumberToSize(source->byte_length());
+ size_t target_byte_length = NumberToSize(target->byte_length());
+
+ CHECK_LE(offset + source->length(), target->length());
+ CHECK_GE(target->length(), source->length());
+ CHECK(source->length()->IsSmi());
+
+ CHECK(!target->WasNeutered());
+ CHECK(!source->WasNeutered());
+
+ // Assert that target and source in fact overlapping.
+ CHECK(target_data + target_byte_length > source_data &&
+ source_data + source_byte_length > target_data);
+#endif
+
+ size_t sourceElementSize = source->element_size();
+ size_t targetElementSize = target->element_size();
+
+ uint32_t source_length = source->length_value();
+ if (source_length == 0) return isolate->heap()->undefined_value();
+
+ // Copy left part.
+
+ // First un-mutated byte after the next write
+ uint32_t target_ptr = 0;
+ CHECK(target->byte_offset()->ToUint32(&target_ptr));
+ target_ptr += (offset + 1) * targetElementSize;
+
+ // Next read at sourcePtr. We do not care for memory changing before
+ // sourcePtr - we have already copied it.
+ uint32_t source_ptr = 0;
+ CHECK(source->byte_offset()->ToUint32(&source_ptr));
+
+ ElementsAccessor* source_accessor = source->GetElementsAccessor();
+ ElementsAccessor* target_accessor = target->GetElementsAccessor();
+
+ uint32_t left_index;
+ for (left_index = 0; left_index < source_length && target_ptr <= source_ptr;
+ left_index++) {
+ Handle<Object> value = source_accessor->Get(source, left_index);
+ target_accessor->Set(target, offset + left_index, *value);
+
+ target_ptr += targetElementSize;
+ source_ptr += sourceElementSize;
+ }
+
+ // Copy right part;
+ // First unmutated byte before the next write
+ CHECK(target->byte_offset()->ToUint32(&target_ptr));
+ target_ptr += (offset + source_length - 1) * targetElementSize;
+
+ // Next read before sourcePtr. We do not care for memory changing after
+ // sourcePtr - we have already copied it.
+ CHECK(target->byte_offset()->ToUint32(&source_ptr));
+ source_ptr += source_length * sourceElementSize;
+
+ uint32_t right_index;
+ DCHECK_GE(source_length, 1);
+ for (right_index = source_length - 1;
+ right_index > left_index && target_ptr >= source_ptr; right_index--) {
+ Handle<Object> value = source_accessor->Get(source, right_index);
+ target_accessor->Set(target, offset + right_index, *value);
+
+ target_ptr -= targetElementSize;
+ source_ptr -= sourceElementSize;
+ }
+
+ std::vector<Handle<Object>> temp(right_index + 1 - left_index);
+
+ for (uint32_t i = left_index; i <= right_index; i++) {
+ temp[i - left_index] = source_accessor->Get(source, i);
+ }
+
+ for (uint32_t i = left_index; i <= right_index; i++) {
+ target_accessor->Set(target, offset + i, *temp[i - left_index]);
+ }
+
+ return isolate->heap()->undefined_value();
+}
+
+} // namespace
+
+// 22.2.3.23 %TypedArray%.prototype.set ( overloaded [ , offset ] )
+RUNTIME_FUNCTION(Runtime_TypedArraySet) {
+ HandleScope scope(isolate);
+ Handle<JSTypedArray> target = args.at<JSTypedArray>(0);
+ Handle<Object> obj = args.at(1);
+ Handle<Smi> offset = args.at<Smi>(2);
+
+ DCHECK(!target->WasNeutered()); // Checked in TypedArrayPrototypeSet.
+ DCHECK_LE(0, offset->value());
+
+ const uint32_t uint_offset = static_cast<uint32_t>(offset->value());
+
+ if (obj->IsNumber()) {
+ // For number as a first argument, throw TypeError
+ // instead of silently ignoring the call, so that
+ // users know they did something wrong.
+ // (Consistent with Firefox and Blink/WebKit)
+ THROW_NEW_ERROR_RETURN_FAILURE(
+ isolate, NewTypeError(MessageTemplate::kInvalidArgument));
+ } else if (obj->IsJSTypedArray()) {
+ // The non-overlapping case is handled in CSA.
+ Handle<JSTypedArray> source = Handle<JSTypedArray>::cast(obj);
+ return TypedArraySetFromOverlapping(isolate, target, source, uint_offset);
+ }
+
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, obj,
+ Object::ToObject(isolate, obj));
+
+ Handle<Object> len;
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+ isolate, len,
+ Object::GetProperty(obj, isolate->factory()->length_string()));
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, len,
+ Object::ToLength(isolate, len));
+
+ if (uint_offset + len->Number() > target->length_value()) {
+ THROW_NEW_ERROR_RETURN_FAILURE(
+ isolate, NewRangeError(MessageTemplate::kTypedArraySetSourceTooLarge));
+ }
+
+ uint32_t int_l;
+ CHECK(DoubleToUint32IfEqualToSelf(len->Number(), &int_l));
+
+ Handle<JSReceiver> source = Handle<JSReceiver>::cast(obj);
+ ElementsAccessor* accessor = target->GetElementsAccessor();
+ return accessor->CopyElements(source, target, int_l, uint_offset);
+}
+
} // namespace internal
} // namespace v8
diff --git a/chromium/v8/src/runtime/runtime.h b/chromium/v8/src/runtime/runtime.h
index a84efc10328..e7084a8ccaa 100644
--- a/chromium/v8/src/runtime/runtime.h
+++ b/chromium/v8/src/runtime/runtime.h
@@ -252,7 +252,6 @@ namespace internal {
F(CanonicalizeLanguageTag, 1, 1) \
F(AvailableLocalesOf, 1, 1) \
F(GetDefaultICULocale, 0, 1) \
- F(GetLanguageTagVariants, 1, 1) \
F(IsInitializedIntlObject, 1, 1) \
F(IsInitializedIntlObjectOfType, 2, 1) \
F(MarkAsInitializedIntlObjectOfType, 2, 1) \
@@ -588,6 +587,7 @@ namespace internal {
F(TraceExit, 1, 1) \
F(HaveSameMap, 2, 1) \
F(InNewSpace, 1, 1) \
+ F(HasFastElements, 1, 1) \
F(HasSmiElements, 1, 1) \
F(HasObjectElements, 1, 1) \
F(HasSmiOrObjectElements, 1, 1) \
@@ -622,7 +622,8 @@ namespace internal {
F(HeapObjectVerify, 1, 1) \
F(WasmNumInterpretedCalls, 1, 1) \
F(RedirectToWasmInterpreter, 2, 1) \
- F(WasmTraceMemory, 4, 1)
+ F(WasmTraceMemory, 4, 1) \
+ F(CompleteInobjectSlackTracking, 1, 1)
#define FOR_EACH_INTRINSIC_TYPEDARRAY(F) \
F(ArrayBufferGetByteLength, 1, 1) \
@@ -634,6 +635,7 @@ namespace internal {
F(TypedArrayGetLength, 1, 1) \
F(TypedArrayGetBuffer, 1, 1) \
F(TypedArraySortFast, 1, 1) \
+ F(TypedArraySet, 2, 1) \
F(IsTypedArray, 1, 1) \
F(IsSharedTypedArray, 1, 1) \
F(IsSharedIntegerTypedArray, 1, 1) \
diff --git a/chromium/v8/src/v8.gyp b/chromium/v8/src/v8.gyp
index b4f1dfefd3a..89eb271f618 100644
--- a/chromium/v8/src/v8.gyp
+++ b/chromium/v8/src/v8.gyp
@@ -42,7 +42,7 @@
{
'target_name': 'v8',
'dependencies_traverse': 1,
- 'dependencies': ['v8_maybe_snapshot'],
+ 'dependencies': ['v8_maybe_snapshot', 'v8_dump_build_config#target'],
'conditions': [
['want_separate_host_toolset==1', {
'toolsets': ['host', 'target'],
@@ -2510,5 +2510,42 @@
}],
],
},
+ {
+ 'target_name': 'v8_dump_build_config',
+ 'type': 'none',
+ 'variables': {
+ },
+ 'actions': [
+ {
+ 'action_name': 'v8_dump_build_config',
+ 'inputs': [
+ '../tools/testrunner/utils/dump_build_config_gyp.py',
+ ],
+ 'outputs': [
+ '<(PRODUCT_DIR)/v8_build_config.json',
+ ],
+ 'action': [
+ 'python',
+ '../tools/testrunner/utils/dump_build_config_gyp.py',
+ '<(PRODUCT_DIR)/v8_build_config.json',
+ 'dcheck_always_on=<(dcheck_always_on)',
+ 'is_asan=<(asan)',
+ 'is_cfi=<(cfi_vptr)',
+ 'is_component_build=<(component)',
+ 'is_debug=<(CONFIGURATION_NAME)',
+ # Not available in gyp.
+ 'is_gcov_coverage=0',
+ 'is_msan=<(msan)',
+ 'is_tsan=<(tsan)',
+ # Not available in gyp.
+ 'is_ubsan_vptr=0',
+ 'target_cpu=<(target_arch)',
+ 'v8_enable_i18n_support=<(v8_enable_i18n_support)',
+ 'v8_target_cpu=<(v8_target_arch)',
+ 'v8_use_snapshot=<(v8_use_snapshot)',
+ ],
+ },
+ ],
+ },
],
}
diff --git a/chromium/v8/src/wasm/module-compiler.cc b/chromium/v8/src/wasm/module-compiler.cc
index bc4945b923e..e42c139ce1c 100644
--- a/chromium/v8/src/wasm/module-compiler.cc
+++ b/chromium/v8/src/wasm/module-compiler.cc
@@ -1798,7 +1798,6 @@ MaybeHandle<WasmInstanceObject> InstanceBuilder::Build() {
Handle<JSArrayBuffer> memory = memory_.ToHandleChecked();
// Set externally passed ArrayBuffer non neuterable.
memory->set_is_neuterable(false);
- memory->set_is_wasm_buffer(true);
DCHECK_IMPLIES(trap_handler::UseTrapHandler(),
module_->is_asm_js() || memory->has_guard_region());
diff --git a/chromium/v8/src/wasm/wasm-js.cc b/chromium/v8/src/wasm/wasm-js.cc
index 5e624d48f1f..6a017365aad 100644
--- a/chromium/v8/src/wasm/wasm-js.cc
+++ b/chromium/v8/src/wasm/wasm-js.cc
@@ -752,6 +752,10 @@ void WebAssemblyMemoryGrow(const v8::FunctionCallbackInfo<v8::Value>& args) {
max_size64 = i::FLAG_wasm_max_mem_pages;
}
i::Handle<i::JSArrayBuffer> old_buffer(receiver->array_buffer());
+ if (!old_buffer->is_growable()) {
+ thrower.RangeError("This memory cannot be grown");
+ return;
+ }
uint32_t old_size =
old_buffer->byte_length()->Number() / i::wasm::kSpecMaxWasmMemoryPages;
int64_t new_size64 = old_size + delta_size;
diff --git a/chromium/v8/src/wasm/wasm-memory.cc b/chromium/v8/src/wasm/wasm-memory.cc
index 2b5ae0052d9..4ddda981895 100644
--- a/chromium/v8/src/wasm/wasm-memory.cc
+++ b/chromium/v8/src/wasm/wasm-memory.cc
@@ -67,7 +67,7 @@ Handle<JSArrayBuffer> SetupArrayBuffer(Isolate* isolate, void* allocation_base,
allocation_length, backing_store, static_cast<int>(size),
shared);
buffer->set_is_neuterable(false);
- buffer->set_is_wasm_buffer(true);
+ buffer->set_is_growable(true);
buffer->set_has_guard_region(enable_guard_regions);
return buffer;
}
diff --git a/chromium/v8/src/wasm/wasm-objects.cc b/chromium/v8/src/wasm/wasm-objects.cc
index 8d47293a630..012aa6644bb 100644
--- a/chromium/v8/src/wasm/wasm-objects.cc
+++ b/chromium/v8/src/wasm/wasm-objects.cc
@@ -315,6 +315,7 @@ namespace {
Handle<JSArrayBuffer> GrowMemoryBuffer(Isolate* isolate,
Handle<JSArrayBuffer> old_buffer,
uint32_t pages, uint32_t maximum_pages) {
+ if (!old_buffer->is_growable()) return Handle<JSArrayBuffer>::null();
Address old_mem_start = nullptr;
uint32_t old_size = 0;
if (!old_buffer.is_null()) {
@@ -459,6 +460,7 @@ int32_t WasmMemoryObject::Grow(Isolate* isolate,
Handle<WasmMemoryObject> memory_object,
uint32_t pages) {
Handle<JSArrayBuffer> old_buffer(memory_object->array_buffer());
+ if (!old_buffer->is_growable()) return -1;
uint32_t old_size = 0;
CHECK(old_buffer->byte_length()->ToUint32(&old_size));
Handle<JSArrayBuffer> new_buffer;
diff --git a/chromium/v8/tools/foozzie/v8_foozzie.py b/chromium/v8/tools/foozzie/v8_foozzie.py
index 0c6d65d1e89..21781786526 100755
--- a/chromium/v8/tools/foozzie/v8_foozzie.py
+++ b/chromium/v8/tools/foozzie/v8_foozzie.py
@@ -127,7 +127,7 @@ def infer_arch(d8):
executable.
"""
with open(os.path.join(os.path.dirname(d8), 'v8_build_config.json')) as f:
- arch = json.load(f)['v8_current_cpu']
+ arch = json.load(f)['v8_target_cpu']
return 'ia32' if arch == 'x86' else arch
diff --git a/chromium/v8/tools/mb/docs/design_spec.md b/chromium/v8/tools/mb/docs/design_spec.md
index 33fda806e8a..fb202da74e9 100644
--- a/chromium/v8/tools/mb/docs/design_spec.md
+++ b/chromium/v8/tools/mb/docs/design_spec.md
@@ -411,9 +411,9 @@ config file change, however.
### Non-goals
* MB is not intended to replace direct invocation of GN or GYP for
- complicated build scenarios (aka ChromeOS), where multiple flags need
+ complicated build scenarios (a.k.a. Chrome OS), where multiple flags need
to be set to user-defined paths for specific toolchains (e.g., where
- ChromeOS needs to specify specific board types and compilers).
+ Chrome OS needs to specify specific board types and compilers).
* MB is not intended at this time to be something developers use frequently,
or to add a lot of features to. We hope to be able to get rid of it once
diff --git a/chromium/v8/tools/mb/docs/user_guide.md b/chromium/v8/tools/mb/docs/user_guide.md
index b897fa4d671..a7d72c88395 100644
--- a/chromium/v8/tools/mb/docs/user_guide.md
+++ b/chromium/v8/tools/mb/docs/user_guide.md
@@ -20,7 +20,7 @@ For more discussion of MB, see also [the design spec](design_spec.md).
### `mb analyze`
-`mb analyze` is responsible for determining what targets are affected by
+`mb analyze` is reponsible for determining what targets are affected by
a list of files (e.g., the list of files in a patch on a trybot):
```
@@ -45,12 +45,12 @@ a single object with the following fields:
reflect the stuff we might want to build *in addition to* the list
passed in `test_targets`. Targets in this list will be treated
specially, in the following way: if a given target is a "meta"
- (GN: group, GYP: none) target like 'blink_tests' or
- 'chromium_builder_tests', or even the ninja-specific 'all' target,
- then only the *dependencies* of the target that are affected by
- the modified files will be rebuilt (not the target itself, which
- might also cause unaffected dependencies to be rebuilt). An empty
- list will be treated as if there are no additional targets to build.
+ (GN: group, GYP: none) target like 'blink_tests' or or even the
+ ninja-specific 'all' target, then only the *dependencies* of the
+ target that are affected by the modified files will be rebuilt
+ (not the target itself, which might also cause unaffected dependencies
+ to be rebuilt). An empty list will be treated as if there are no additional
+ targets to build.
Empty lists for both `test_targets` and `additional_compile_targets`
would cause no work to be done, so will result in an error.
* `targets`: a legacy field that resembled a union of `compile_targets`
@@ -167,6 +167,21 @@ The `-f/--config-file` and `-q/--quiet` flags work as documented for
This is mostly useful as a presubmit check and for verifying changes to
the config file.
+### `mb gerrit-buildbucket-config`
+
+Generates a gerrit buildbucket configuration file and prints it to
+stdout. This file contains the list of trybots shown in gerrit's UI.
+
+The master copy of the buildbucket.config file lives
+in a separate branch of the chromium repository. Run `mb
+gerrit-buildbucket-config > buildbucket.config.new && git fetch origin
+refs/meta/config:refs/remotes/origin/meta/config && git checkout
+-t -b meta_config origin/meta/config && mv buildbucket.config.new
+buildbucket.config` to update the file.
+
+Note that after committing, `git cl upload` will not work. Instead, use `git
+push origin HEAD:refs/for/refs/meta/config` to upload the CL for review.
+
## Isolates and Swarming
`mb gen` is also responsible for generating the `.isolate` and
diff --git a/chromium/v8/tools/mb/mb.py b/chromium/v8/tools/mb/mb.py
index 86a5e575fd2..9a6600225b8 100755
--- a/chromium/v8/tools/mb/mb.py
+++ b/chromium/v8/tools/mb/mb.py
@@ -10,6 +10,10 @@ MB is a wrapper script for GYP and GN that can be used to generate build files
for sets of canned configurations and analyze them.
"""
+# TODO(thomasanderson): Remove this comment. It is added to
+# workaround https://crbug.com/736215 for CL
+# https://codereview.chromium.org/2974603002/
+
from __future__ import print_function
import argparse
@@ -46,11 +50,14 @@ class MetaBuildWrapper(object):
self.chromium_src_dir = CHROMIUM_SRC_DIR
self.default_config = os.path.join(self.chromium_src_dir, 'infra', 'mb',
'mb_config.pyl')
+ self.default_isolate_map = os.path.join(self.chromium_src_dir, 'infra',
+ 'mb', 'gn_isolate_map.pyl')
self.executable = sys.executable
self.platform = sys.platform
self.sep = os.sep
self.args = argparse.Namespace()
self.configs = {}
+ self.luci_tryservers = {}
self.masters = {}
self.mixins = {}
@@ -62,7 +69,7 @@ class MetaBuildWrapper(object):
self.DumpInputFiles()
return ret
except KeyboardInterrupt:
- self.Print('interrupted, exiting', stream=sys.stderr)
+ self.Print('interrupted, exiting')
return 130
except Exception:
self.DumpInputFiles()
@@ -79,13 +86,18 @@ class MetaBuildWrapper(object):
help='master name to look up config from')
subp.add_argument('-c', '--config',
help='configuration to analyze')
- subp.add_argument('--phase', type=int,
- help=('build phase for a given build '
- '(int in [1, 2, ...))'))
+ subp.add_argument('--phase',
+ help='optional phase name (used when builders '
+ 'do multiple compiles with different '
+ 'arguments in a single build)')
subp.add_argument('-f', '--config-file', metavar='PATH',
default=self.default_config,
help='path to config file '
- '(default is //tools/mb/mb_config.pyl)')
+ '(default is %(default)s)')
+ subp.add_argument('-i', '--isolate-map-file', metavar='PATH',
+ default=self.default_isolate_map,
+ help='path to isolate map file '
+ '(default is %(default)s)')
subp.add_argument('-g', '--goma-dir',
help='path to goma directory')
subp.add_argument('--gyp-script', metavar='PATH',
@@ -121,6 +133,16 @@ class MetaBuildWrapper(object):
'as a JSON object.')
subp.set_defaults(func=self.CmdAnalyze)
+ subp = subps.add_parser('export',
+ help='print out the expanded configuration for'
+ 'each builder as a JSON object')
+ subp.add_argument('-f', '--config-file', metavar='PATH',
+ default=self.default_config,
+ help='path to config file (default is %(default)s)')
+ subp.add_argument('-g', '--goma-dir',
+ help='path to goma directory')
+ subp.set_defaults(func=self.CmdExport)
+
subp = subps.add_parser('gen',
help='generate a new set of build files')
AddCommonOptions(subp)
@@ -192,16 +214,14 @@ class MetaBuildWrapper(object):
help='validate the config file')
subp.add_argument('-f', '--config-file', metavar='PATH',
default=self.default_config,
- help='path to config file '
- '(default is //infra/mb/mb_config.pyl)')
+ help='path to config file (default is %(default)s)')
subp.set_defaults(func=self.CmdValidate)
subp = subps.add_parser('audit',
help='Audit the config file to track progress')
subp.add_argument('-f', '--config-file', metavar='PATH',
default=self.default_config,
- help='path to config file '
- '(default is //infra/mb/mb_config.pyl)')
+ help='path to config file (default is %(default)s)')
subp.add_argument('-i', '--internal', action='store_true',
help='check internal masters also')
subp.add_argument('-m', '--master', action='append',
@@ -217,6 +237,14 @@ class MetaBuildWrapper(object):
' do compiles')
subp.set_defaults(func=self.CmdAudit)
+ subp = subps.add_parser('gerrit-buildbucket-config',
+ help='Print buildbucket.config for gerrit '
+ '(see MB user guide)')
+ subp.add_argument('-f', '--config-file', metavar='PATH',
+ default=self.default_config,
+ help='path to config file (default is %(default)s)')
+ subp.set_defaults(func=self.CmdBuildbucket)
+
subp = subps.add_parser('help',
help='Get help on a subcommand.')
subp.add_argument(nargs='?', action='store', dest='subcommand',
@@ -225,12 +253,16 @@ class MetaBuildWrapper(object):
self.args = parser.parse_args(argv)
+ # TODO(machenbach): This prepares passing swarming targets to isolate on the
+ # infra side.
+ self.args.swarming_targets_file = None
+
def DumpInputFiles(self):
def DumpContentsOfFilePassedTo(arg_name, path):
if path and self.Exists(path):
self.Print("\n# To recreate the file passed to %s:" % arg_name)
- self.Print("%% cat > %s <<EOF)" % path)
+ self.Print("%% cat > %s <<EOF" % path)
contents = self.ReadFile(path)
self.Print(contents)
self.Print("EOF\n%\n")
@@ -250,6 +282,34 @@ class MetaBuildWrapper(object):
else:
return self.RunGYPAnalyze(vals)
+ def CmdExport(self):
+ self.ReadConfigFile()
+ obj = {}
+ for master, builders in self.masters.items():
+ obj[master] = {}
+ for builder in builders:
+ config = self.masters[master][builder]
+ if not config:
+ continue
+
+ if isinstance(config, dict):
+ args = {k: self.FlattenConfig(v)['gn_args']
+ for k, v in config.items()}
+ elif config.startswith('//'):
+ args = config
+ else:
+ args = self.FlattenConfig(config)['gn_args']
+ if 'error' in args:
+ continue
+
+ obj[master][builder] = args
+
+ # Dump object and trim trailing whitespace.
+ s = '\n'.join(l.rstrip() for l in
+ json.dumps(obj, sort_keys=True, indent=2).splitlines())
+ self.Print(s)
+ return 0
+
def CmdGen(self):
vals = self.Lookup()
self.ClobberIfNeeded(vals)
@@ -270,7 +330,7 @@ class MetaBuildWrapper(object):
return 1
if vals['type'] == 'gn':
- return self.RunGNIsolate(vals)
+ return self.RunGNIsolate()
else:
return self.Build('%s_run' % self.args.target[0])
@@ -300,7 +360,7 @@ class MetaBuildWrapper(object):
ret = self.Build(target)
if ret:
return ret
- ret = self.RunGNIsolate(vals)
+ ret = self.RunGNIsolate()
if ret:
return ret
else:
@@ -322,6 +382,25 @@ class MetaBuildWrapper(object):
return ret
+ def CmdBuildbucket(self):
+ self.ReadConfigFile()
+
+ self.Print('# This file was generated using '
+ '"tools/mb/mb.py gerrit-buildbucket-config".')
+
+ for luci_tryserver in sorted(self.luci_tryservers):
+ self.Print('[bucket "luci.%s"]' % luci_tryserver)
+ for bot in sorted(self.luci_tryservers[luci_tryserver]):
+ self.Print('\tbuilder = %s' % bot)
+
+ for master in sorted(self.masters):
+ if master.startswith('tryserver.'):
+ self.Print('[bucket "master.%s"]' % master)
+ for bot in sorted(self.masters[master]):
+ self.Print('\tbuilder = %s' % bot)
+
+ return 0
+
def CmdValidate(self, print_ok=True):
errs = []
@@ -332,8 +411,8 @@ class MetaBuildWrapper(object):
all_configs = {}
for master in self.masters:
for config in self.masters[master].values():
- if isinstance(config, list):
- for c in config:
+ if isinstance(config, dict):
+ for c in config.values():
all_configs[c] = master
else:
all_configs[config] = master
@@ -461,8 +540,8 @@ class MetaBuildWrapper(object):
config = self.masters[master][builder]
if config == 'tbd':
tbd.add(builder)
- elif isinstance(config, list):
- vals = self.FlattenConfig(config[0])
+ elif isinstance(config, dict):
+ vals = self.FlattenConfig(config.values()[0])
if vals['type'] == 'gyp':
gyp.add(builder)
else:
@@ -504,7 +583,7 @@ class MetaBuildWrapper(object):
def GetConfig(self):
build_dir = self.args.path[0]
- vals = {}
+ vals = self.DefaultVals()
if self.args.builder or self.args.master or self.args.config:
vals = self.Lookup()
if vals['type'] == 'gn':
@@ -528,14 +607,12 @@ class MetaBuildWrapper(object):
mb_type = self.ReadFile(mb_type_path).strip()
if mb_type == 'gn':
- vals = self.GNValsFromDir(build_dir)
- else:
- vals = {}
+ vals['gn_args'] = self.GNArgsFromDir(build_dir)
vals['type'] = mb_type
return vals
- def GNValsFromDir(self, build_dir):
+ def GNArgsFromDir(self, build_dir):
args_contents = ""
gn_args_path = self.PathJoin(self.ToAbsPath(build_dir), 'args.gn')
if self.Exists(gn_args_path):
@@ -547,27 +624,18 @@ class MetaBuildWrapper(object):
val = ' '.join(fields[2:])
gn_args.append('%s=%s' % (name, val))
- return {
- 'gn_args': ' '.join(gn_args),
- 'type': 'gn',
- }
+ return ' '.join(gn_args)
def Lookup(self):
- vals = self.ReadBotConfig()
+ vals = self.ReadIOSBotConfig()
if not vals:
self.ReadConfigFile()
config = self.ConfigFromArgs()
if config.startswith('//'):
if not self.Exists(self.ToAbsPath(config)):
raise MBErr('args file "%s" not found' % config)
- vals = {
- 'args_file': config,
- 'cros_passthrough': False,
- 'gn_args': '',
- 'gyp_crosscompile': False,
- 'gyp_defines': '',
- 'type': 'gn',
- }
+ vals = self.DefaultVals()
+ vals['args_file'] = config
else:
if not config in self.configs:
raise MBErr('Config "%s" not found in %s' %
@@ -576,13 +644,14 @@ class MetaBuildWrapper(object):
# Do some basic sanity checking on the config so that we
# don't have to do this in every caller.
- assert 'type' in vals, 'No meta-build type specified in the config'
+ if 'type' not in vals:
+ vals['type'] = 'gn'
assert vals['type'] in ('gn', 'gyp'), (
'Unknown meta-build type "%s"' % vals['gn_args'])
return vals
- def ReadBotConfig(self):
+ def ReadIOSBotConfig(self):
if not self.args.master or not self.args.builder:
return {}
path = self.PathJoin(self.chromium_src_dir, 'ios', 'build', 'bots',
@@ -598,14 +667,11 @@ class MetaBuildWrapper(object):
gyp_defines = ' '.join(gyp_vals)
gn_args = ' '.join(contents.get('gn_args', []))
- return {
- 'args_file': '',
- 'cros_passthrough': False,
- 'gn_args': gn_args,
- 'gyp_crosscompile': False,
- 'gyp_defines': gyp_defines,
- 'type': contents.get('mb_type', ''),
- }
+ vals = self.DefaultVals()
+ vals['gn_args'] = gn_args
+ vals['gyp_defines'] = gyp_defines
+ vals['type'] = contents.get('mb_type', 'gn')
+ return vals
def ReadConfigFile(self):
if not self.Exists(self.args.config_file):
@@ -618,9 +684,20 @@ class MetaBuildWrapper(object):
(self.args.config_file, e))
self.configs = contents['configs']
+ self.luci_tryservers = contents.get('luci_tryservers', {})
self.masters = contents['masters']
self.mixins = contents['mixins']
+ def ReadIsolateMap(self):
+ if not self.Exists(self.args.isolate_map_file):
+ raise MBErr('isolate map file not found at %s' %
+ self.args.isolate_map_file)
+ try:
+ return ast.literal_eval(self.ReadFile(self.args.isolate_map_file))
+ except SyntaxError as e:
+ raise MBErr('Failed to parse isolate map file "%s": %s' %
+ (self.args.isolate_map_file, e))
+
def ConfigFromArgs(self):
if self.args.config:
if self.args.master or self.args.builder:
@@ -642,15 +719,15 @@ class MetaBuildWrapper(object):
(self.args.builder, self.args.master, self.args.config_file))
config = self.masters[self.args.master][self.args.builder]
- if isinstance(config, list):
+ if isinstance(config, dict):
if self.args.phase is None:
raise MBErr('Must specify a build --phase for %s on %s' %
(self.args.builder, self.args.master))
- phase = int(self.args.phase)
- if phase < 1 or phase > len(config):
- raise MBErr('Phase %d out of bounds for %s on %s' %
+ phase = str(self.args.phase)
+ if phase not in config:
+ raise MBErr('Phase %s doesn\'t exist for %s on %s' %
(phase, self.args.builder, self.args.master))
- return config[phase-1]
+ return config[phase]
if self.args.phase is not None:
raise MBErr('Must not specify a build --phase for %s on %s' %
@@ -659,19 +736,22 @@ class MetaBuildWrapper(object):
def FlattenConfig(self, config):
mixins = self.configs[config]
- vals = {
+ vals = self.DefaultVals()
+
+ visited = []
+ self.FlattenMixins(mixins, vals, visited)
+ return vals
+
+ def DefaultVals(self):
+ return {
'args_file': '',
'cros_passthrough': False,
- 'gn_args': [],
+ 'gn_args': '',
'gyp_defines': '',
'gyp_crosscompile': False,
- 'type': None,
+ 'type': 'gn',
}
- visited = []
- self.FlattenMixins(mixins, vals, visited)
- return vals
-
def FlattenMixins(self, mixins, vals, visited):
for m in mixins:
if m not in self.mixins:
@@ -683,6 +763,11 @@ class MetaBuildWrapper(object):
if 'cros_passthrough' in mixin_vals:
vals['cros_passthrough'] = mixin_vals['cros_passthrough']
+ if 'args_file' in mixin_vals:
+ if vals['args_file']:
+ raise MBErr('args_file specified multiple times in mixins '
+ 'for %s on %s' % (self.args.builder, self.args.master))
+ vals['args_file'] = mixin_vals['args_file']
if 'gn_args' in mixin_vals:
if vals['gn_args']:
vals['gn_args'] += ' ' + mixin_vals['gn_args']
@@ -732,11 +817,13 @@ class MetaBuildWrapper(object):
self.MaybeMakeDirectory(build_dir)
self.WriteFile(mb_type_path, new_mb_type)
- def RunGNGen(self, vals):
+ def RunGNGen(self, vals, compute_grit_inputs_for_analyze=False):
build_dir = self.args.path[0]
cmd = self.GNCmd('gen', build_dir, '--check')
gn_args = self.GNArgs(vals)
+ if compute_grit_inputs_for_analyze:
+ gn_args += ' compute_grit_inputs_for_analyze=true'
# Since GN hasn't run yet, the build directory may not even exist.
self.MaybeMakeDirectory(self.ToAbsPath(build_dir))
@@ -748,7 +835,7 @@ class MetaBuildWrapper(object):
if getattr(self.args, 'swarming_targets_file', None):
# We need GN to generate the list of runtime dependencies for
# the compile targets listed (one per line) in the file so
- # we can run them via swarming. We use ninja_to_gn.pyl to convert
+ # we can run them via swarming. We use gn_isolate_map.pyl to convert
# the compile targets to the matching GN labels.
path = self.args.swarming_targets_file
if not self.Exists(path):
@@ -756,34 +843,17 @@ class MetaBuildWrapper(object):
output_path=None)
contents = self.ReadFile(path)
swarming_targets = set(contents.splitlines())
- gn_isolate_map = ast.literal_eval(self.ReadFile(self.PathJoin(
- self.chromium_src_dir, 'testing', 'buildbot', 'gn_isolate_map.pyl')))
- gn_labels = []
- err = ''
- for target in swarming_targets:
- target_name = self.GNTargetName(target)
- if not target_name in gn_isolate_map:
- err += ('test target "%s" not found\n' % target_name)
- elif gn_isolate_map[target_name]['type'] == 'unknown':
- err += ('test target "%s" type is unknown\n' % target_name)
- else:
- gn_labels.append(gn_isolate_map[target_name]['label'])
+ isolate_map = self.ReadIsolateMap()
+ err, labels = self.MapTargetsToLabels(isolate_map, swarming_targets)
if err:
- raise MBErr('Error: Failed to match swarming targets to %s:\n%s' %
- ('//testing/buildbot/gn_isolate_map.pyl', err))
+ raise MBErr(err)
gn_runtime_deps_path = self.ToAbsPath(build_dir, 'runtime_deps')
- self.WriteFile(gn_runtime_deps_path, '\n'.join(gn_labels) + '\n')
+ self.WriteFile(gn_runtime_deps_path, '\n'.join(labels) + '\n')
cmd.append('--runtime-deps-list-file=%s' % gn_runtime_deps_path)
- # Override msvs infra environment variables.
- # TODO(machenbach): Remove after GYP_MSVS_VERSION is removed on infra side.
- env = {}
- env.update(os.environ)
- env['GYP_MSVS_VERSION'] = '2017'
-
- ret, _, _ = self.Run(cmd, env=env)
+ ret, _, _ = self.Run(cmd)
if ret:
# If `gn gen` failed, we should exit early rather than trying to
# generate isolates. Run() will have already logged any error output.
@@ -796,24 +866,23 @@ class MetaBuildWrapper(object):
# Android targets may be either android_apk or executable. The former
# will result in runtime_deps associated with the stamp file, while the
# latter will result in runtime_deps associated with the executable.
- target_name = self.GNTargetName(target)
- label = gn_isolate_map[target_name]['label']
+ label = isolate_map[target]['label']
runtime_deps_targets = [
- target_name + '.runtime_deps',
+ target + '.runtime_deps',
'obj/%s.stamp.runtime_deps' % label.replace(':', '/')]
- elif gn_isolate_map[target]['type'] == 'gpu_browser_test':
- if self.platform == 'win32':
- runtime_deps_targets = ['browser_tests.exe.runtime_deps']
- else:
- runtime_deps_targets = ['browser_tests.runtime_deps']
- elif (gn_isolate_map[target]['type'] == 'script' or
- gn_isolate_map[target].get('label_type') == 'group'):
+ elif (isolate_map[target]['type'] == 'script' or
+ isolate_map[target].get('label_type') == 'group'):
# For script targets, the build target is usually a group,
# for which gn generates the runtime_deps next to the stamp file
- # for the label, which lives under the obj/ directory.
- label = gn_isolate_map[target]['label']
+ # for the label, which lives under the obj/ directory, but it may
+ # also be an executable.
+ label = isolate_map[target]['label']
runtime_deps_targets = [
'obj/%s.stamp.runtime_deps' % label.replace(':', '/')]
+ if self.platform == 'win32':
+ runtime_deps_targets += [ target + '.exe.runtime_deps' ]
+ else:
+ runtime_deps_targets += [ target + '.runtime_deps' ]
elif self.platform == 'win32':
runtime_deps_targets = [target + '.exe.runtime_deps']
else:
@@ -827,26 +896,22 @@ class MetaBuildWrapper(object):
raise MBErr('did not generate any of %s' %
', '.join(runtime_deps_targets))
- command, extra_files = self.GetIsolateCommand(target, vals,
- gn_isolate_map)
-
runtime_deps = self.ReadFile(runtime_deps_path).splitlines()
- self.WriteIsolateFiles(build_dir, command, target, runtime_deps,
- extra_files)
+ self.WriteIsolateFiles(build_dir, target, runtime_deps)
return 0
- def RunGNIsolate(self, vals):
- gn_isolate_map = ast.literal_eval(self.ReadFile(self.PathJoin(
- self.chromium_src_dir, 'testing', 'buildbot', 'gn_isolate_map.pyl')))
+ def RunGNIsolate(self):
+ target = self.args.target[0]
+ isolate_map = self.ReadIsolateMap()
+ err, labels = self.MapTargetsToLabels(isolate_map, [target])
+ if err:
+ raise MBErr(err)
+ label = labels[0]
build_dir = self.args.path[0]
- target = self.args.target[0]
- target_name = self.GNTargetName(target)
- command, extra_files = self.GetIsolateCommand(target, vals, gn_isolate_map)
- label = gn_isolate_map[target_name]['label']
cmd = self.GNCmd('desc', build_dir, label, 'runtime_deps')
ret, out, _ = self.Call(cmd)
if ret:
@@ -856,8 +921,7 @@ class MetaBuildWrapper(object):
runtime_deps = out.splitlines()
- self.WriteIsolateFiles(build_dir, command, target, runtime_deps,
- extra_files)
+ self.WriteIsolateFiles(build_dir, target, runtime_deps)
ret, _, _ = self.Run([
self.executable,
@@ -871,14 +935,12 @@ class MetaBuildWrapper(object):
return ret
- def WriteIsolateFiles(self, build_dir, command, target, runtime_deps,
- extra_files):
+ def WriteIsolateFiles(self, build_dir, target, runtime_deps):
isolate_path = self.ToAbsPath(build_dir, target + '.isolate')
self.WriteFile(isolate_path,
pprint.pformat({
'variables': {
- 'command': command,
- 'files': sorted(runtime_deps + extra_files),
+ 'files': sorted(runtime_deps),
}
}) + '\n')
@@ -896,6 +958,27 @@ class MetaBuildWrapper(object):
isolate_path + 'd.gen.json',
)
+ def MapTargetsToLabels(self, isolate_map, targets):
+ labels = []
+ err = ''
+
+ for target in targets:
+ if target == 'all':
+ labels.append(target)
+ elif target.startswith('//'):
+ labels.append(target)
+ else:
+ if target in isolate_map:
+ if isolate_map[target]['type'] == 'unknown':
+ err += ('test target "%s" type is unknown\n' % target)
+ else:
+ labels.append(isolate_map[target]['label'])
+ else:
+ err += ('target "%s" not found in '
+ '//infra/mb/gn_isolate_map.pyl\n' % target)
+
+ return err, labels
+
def GNCmd(self, subcommand, path, *args):
if self.platform == 'linux2':
subdir, exe = 'linux64', 'gn'
@@ -905,9 +988,9 @@ class MetaBuildWrapper(object):
subdir, exe = 'win', 'gn.exe'
gn_path = self.PathJoin(self.chromium_src_dir, 'buildtools', subdir, exe)
-
return [gn_path, subcommand, path] + list(args)
+
def GNArgs(self, vals):
if vals['cros_passthrough']:
if not 'GN_ARGS' in os.environ:
@@ -972,109 +1055,6 @@ class MetaBuildWrapper(object):
return ret
- def GetIsolateCommand(self, target, vals, gn_isolate_map):
- android = 'target_os="android"' in vals['gn_args']
-
- # This needs to mirror the settings in //build/config/ui.gni:
- # use_x11 = is_linux && !use_ozone.
- use_x11 = (self.platform == 'linux2' and
- not android and
- not 'use_ozone=true' in vals['gn_args'])
-
- asan = 'is_asan=true' in vals['gn_args']
- msan = 'is_msan=true' in vals['gn_args']
- tsan = 'is_tsan=true' in vals['gn_args']
-
- target_name = self.GNTargetName(target)
- test_type = gn_isolate_map[target_name]['type']
-
- executable = gn_isolate_map[target_name].get('executable', target_name)
- executable_suffix = '.exe' if self.platform == 'win32' else ''
-
- cmdline = []
- extra_files = []
-
- if android and test_type != "script":
- logdog_command = [
- '--logdog-bin-cmd', './../../bin/logdog_butler',
- '--project', 'chromium',
- '--service-account-json',
- '/creds/service_accounts/service-account-luci-logdog-publisher.json',
- '--prefix', 'android/swarming/logcats/${SWARMING_TASK_ID}',
- '--source', '${ISOLATED_OUTDIR}/logcats',
- '--name', 'unified_logcats',
- ]
- test_cmdline = [
- self.PathJoin('bin', 'run_%s' % target_name),
- '--logcat-output-file', '${ISOLATED_OUTDIR}/logcats',
- '--target-devices-file', '${SWARMING_BOT_FILE}',
- '-v'
- ]
- cmdline = (['./../../build/android/test_wrapper/logdog_wrapper.py']
- + logdog_command + test_cmdline)
- elif use_x11 and test_type == 'windowed_test_launcher':
- extra_files = [
- '../../testing/test_env.py',
- '../../testing/xvfb.py',
- ]
- cmdline = [
- '../../testing/xvfb.py',
- '.',
- './' + str(executable) + executable_suffix,
- '--brave-new-test-launcher',
- '--test-launcher-bot-mode',
- '--asan=%d' % asan,
- '--msan=%d' % msan,
- '--tsan=%d' % tsan,
- ]
- elif test_type in ('windowed_test_launcher', 'console_test_launcher'):
- extra_files = [
- '../../testing/test_env.py'
- ]
- cmdline = [
- '../../testing/test_env.py',
- './' + str(executable) + executable_suffix,
- '--brave-new-test-launcher',
- '--test-launcher-bot-mode',
- '--asan=%d' % asan,
- '--msan=%d' % msan,
- '--tsan=%d' % tsan,
- ]
- elif test_type == 'gpu_browser_test':
- extra_files = [
- '../../testing/test_env.py'
- ]
- gtest_filter = gn_isolate_map[target]['gtest_filter']
- cmdline = [
- '../../testing/test_env.py',
- './browser_tests' + executable_suffix,
- '--test-launcher-bot-mode',
- '--enable-gpu',
- '--test-launcher-jobs=1',
- '--gtest_filter=%s' % gtest_filter,
- ]
- elif test_type == 'script':
- extra_files = [
- '../../testing/test_env.py'
- ]
- cmdline = [
- '../../testing/test_env.py',
- '../../' + self.ToSrcRelPath(gn_isolate_map[target]['script'])
- ]
- elif test_type in ('raw'):
- extra_files = []
- cmdline = [
- './' + str(target) + executable_suffix,
- ]
-
- else:
- self.WriteFailureAndRaise('No command line for %s found (test type %s).'
- % (target, test_type), output_path=None)
-
- cmdline += gn_isolate_map[target_name].get('args', [])
-
- return cmdline, extra_files
-
def ToAbsPath(self, build_path, *comps):
return self.PathJoin(self.chromium_src_dir,
self.ToSrcRelPath(build_path),
@@ -1167,12 +1147,18 @@ class MetaBuildWrapper(object):
return cmd, env
def RunGNAnalyze(self, vals):
- # analyze runs before 'gn gen' now, so we need to run gn gen
+ # Analyze runs before 'gn gen' now, so we need to run gn gen
# in order to ensure that we have a build directory.
- ret = self.RunGNGen(vals)
+ ret = self.RunGNGen(vals, compute_grit_inputs_for_analyze=True)
if ret:
return ret
+ build_path = self.args.path[0]
+ input_path = self.args.input_path[0]
+ gn_input_path = input_path + '.gn'
+ output_path = self.args.output_path[0]
+ gn_output_path = output_path + '.gn'
+
inp = self.ReadInputJSON(['files', 'test_targets',
'additional_compile_targets'])
if self.args.verbose:
@@ -1181,26 +1167,6 @@ class MetaBuildWrapper(object):
self.PrintJSON(inp)
self.Print()
- # TODO(crbug.com/555273) - currently GN treats targets and
- # additional_compile_targets identically since we can't tell the
- # difference between a target that is a group in GN and one that isn't.
- # We should eventually fix this and treat the two types differently.
- targets = (set(inp['test_targets']) |
- set(inp['additional_compile_targets']))
-
- output_path = self.args.output_path[0]
-
- # Bail out early if a GN file was modified, since 'gn refs' won't know
- # what to do about it. Also, bail out early if 'all' was asked for,
- # since we can't deal with it yet.
- if (any(f.endswith('.gn') or f.endswith('.gni') for f in inp['files']) or
- 'all' in targets):
- self.WriteJSON({
- 'status': 'Found dependency (all)',
- 'compile_targets': sorted(targets),
- 'test_targets': sorted(targets & set(inp['test_targets'])),
- }, output_path)
- return 0
# This shouldn't normally happen, but could due to unusual race conditions,
# like a try job that gets scheduled before a patch lands but runs after
@@ -1214,68 +1180,103 @@ class MetaBuildWrapper(object):
}, output_path)
return 0
- ret = 0
- response_file = self.TempFile()
- response_file.write('\n'.join(inp['files']) + '\n')
- response_file.close()
+ gn_inp = {}
+ gn_inp['files'] = ['//' + f for f in inp['files'] if not f.startswith('//')]
+
+ isolate_map = self.ReadIsolateMap()
+ err, gn_inp['additional_compile_targets'] = self.MapTargetsToLabels(
+ isolate_map, inp['additional_compile_targets'])
+ if err:
+ raise MBErr(err)
+
+ err, gn_inp['test_targets'] = self.MapTargetsToLabels(
+ isolate_map, inp['test_targets'])
+ if err:
+ raise MBErr(err)
+ labels_to_targets = {}
+ for i, label in enumerate(gn_inp['test_targets']):
+ labels_to_targets[label] = inp['test_targets'][i]
- matching_targets = set()
try:
- cmd = self.GNCmd('refs',
- self.args.path[0],
- '@%s' % response_file.name,
- '--all',
- '--as=output')
- ret, out, _ = self.Run(cmd, force_verbose=False)
- if ret and not 'The input matches no targets' in out:
- self.WriteFailureAndRaise('gn refs returned %d: %s' % (ret, out),
- output_path)
- build_dir = self.ToSrcRelPath(self.args.path[0]) + self.sep
- for output in out.splitlines():
- build_output = output.replace(build_dir, '')
- if build_output in targets:
- matching_targets.add(build_output)
-
- cmd = self.GNCmd('refs',
- self.args.path[0],
- '@%s' % response_file.name,
- '--all')
- ret, out, _ = self.Run(cmd, force_verbose=False)
- if ret and not 'The input matches no targets' in out:
- self.WriteFailureAndRaise('gn refs returned %d: %s' % (ret, out),
- output_path)
- for label in out.splitlines():
- build_target = label[2:]
- # We want to accept 'chrome/android:chrome_public_apk' and
- # just 'chrome_public_apk'. This may result in too many targets
- # getting built, but we can adjust that later if need be.
- for input_target in targets:
- if (input_target == build_target or
- build_target.endswith(':' + input_target)):
- matching_targets.add(input_target)
- finally:
- self.RemoveFile(response_file.name)
+ self.WriteJSON(gn_inp, gn_input_path)
+ cmd = self.GNCmd('analyze', build_path, gn_input_path, gn_output_path)
+ ret, _, _ = self.Run(cmd, force_verbose=True)
+ if ret:
+ return ret
- if matching_targets:
- self.WriteJSON({
- 'status': 'Found dependency',
- 'compile_targets': sorted(matching_targets),
- 'test_targets': sorted(matching_targets &
- set(inp['test_targets'])),
- }, output_path)
- else:
- self.WriteJSON({
- 'status': 'No dependency',
- 'compile_targets': [],
- 'test_targets': [],
- }, output_path)
+ gn_outp_str = self.ReadFile(gn_output_path)
+ try:
+ gn_outp = json.loads(gn_outp_str)
+ except Exception as e:
+ self.Print("Failed to parse the JSON string GN returned: %s\n%s"
+ % (repr(gn_outp_str), str(e)))
+ raise
- if self.args.verbose:
- outp = json.loads(self.ReadFile(output_path))
- self.Print()
- self.Print('analyze output:')
- self.PrintJSON(outp)
- self.Print()
+ outp = {}
+ if 'status' in gn_outp:
+ outp['status'] = gn_outp['status']
+ if 'error' in gn_outp:
+ outp['error'] = gn_outp['error']
+ if 'invalid_targets' in gn_outp:
+ outp['invalid_targets'] = gn_outp['invalid_targets']
+ if 'compile_targets' in gn_outp:
+ all_input_compile_targets = sorted(
+ set(inp['test_targets'] + inp['additional_compile_targets']))
+
+ # If we're building 'all', we can throw away the rest of the targets
+ # since they're redundant.
+ if 'all' in gn_outp['compile_targets']:
+ outp['compile_targets'] = ['all']
+ else:
+ outp['compile_targets'] = gn_outp['compile_targets']
+
+ # crbug.com/736215: When GN returns targets back, for targets in
+ # the default toolchain, GN will have generated a phony ninja
+ # target matching the label, and so we can safely (and easily)
+ # transform any GN label into the matching ninja target. For
+ # targets in other toolchains, though, GN doesn't generate the
+ # phony targets, and we don't know how to turn the labels into
+ # compile targets. In this case, we also conservatively give up
+ # and build everything. Probably the right thing to do here is
+ # to have GN return the compile targets directly.
+ if any("(" in target for target in outp['compile_targets']):
+ self.Print('WARNING: targets with non-default toolchains were '
+ 'found, building everything instead.')
+ outp['compile_targets'] = all_input_compile_targets
+ else:
+ outp['compile_targets'] = [
+ label.replace('//', '') for label in outp['compile_targets']]
+
+ # Windows has a maximum command line length of 8k; even Linux
+ # maxes out at 128k; if analyze returns a *really long* list of
+ # targets, we just give up and conservatively build everything instead.
+ # Probably the right thing here is for ninja to support response
+ # files as input on the command line
+ # (see https://github.com/ninja-build/ninja/issues/1355).
+ if len(' '.join(outp['compile_targets'])) > 7*1024:
+ self.Print('WARNING: Too many compile targets were affected.')
+ self.Print('WARNING: Building everything instead to avoid '
+ 'command-line length issues.')
+ outp['compile_targets'] = all_input_compile_targets
+
+
+ if 'test_targets' in gn_outp:
+ outp['test_targets'] = [
+ labels_to_targets[label] for label in gn_outp['test_targets']]
+
+ if self.args.verbose:
+ self.Print()
+ self.Print('analyze output:')
+ self.PrintJSON(outp)
+ self.Print()
+
+ self.WriteJSON(outp, output_path)
+
+ finally:
+ if self.Exists(gn_input_path):
+ self.RemoveFile(gn_input_path)
+ if self.Exists(gn_output_path):
+ self.RemoveFile(gn_output_path)
return 0
@@ -1358,9 +1359,6 @@ class MetaBuildWrapper(object):
def PrintJSON(self, obj):
self.Print(json.dumps(obj, indent=2, sort_keys=True))
- def GNTargetName(self, target):
- return target
-
def Build(self, target):
build_dir = self.ToSrcRelPath(self.args.path[0])
ninja_cmd = ['ninja', '-C', build_dir]
diff --git a/chromium/v8/tools/mb/mb_unittest.py b/chromium/v8/tools/mb/mb_unittest.py
index ac58c0284f9..15763750da5 100755
--- a/chromium/v8/tools/mb/mb_unittest.py
+++ b/chromium/v8/tools/mb/mb_unittest.py
@@ -23,12 +23,15 @@ class FakeMBW(mb.MetaBuildWrapper):
if win32:
self.chromium_src_dir = 'c:\\fake_src'
self.default_config = 'c:\\fake_src\\tools\\mb\\mb_config.pyl'
+ self.default_isolate_map = ('c:\\fake_src\\testing\\buildbot\\'
+ 'gn_isolate_map.pyl')
self.platform = 'win32'
self.executable = 'c:\\python\\python.exe'
self.sep = '\\'
else:
self.chromium_src_dir = '/fake_src'
self.default_config = '/fake_src/tools/mb/mb_config.pyl'
+ self.default_isolate_map = '/fake_src/testing/buildbot/gn_isolate_map.pyl'
self.executable = '/usr/bin/python'
self.platform = 'linux2'
self.sep = '/'
@@ -115,10 +118,14 @@ TEST_CONFIG = """\
'fake_gn_debug_builder': 'gn_debug_goma',
'fake_gyp_builder': 'gyp_debug',
'fake_gn_args_bot': '//build/args/bots/fake_master/fake_gn_args_bot.gn',
- 'fake_multi_phase': ['gn_phase_1', 'gn_phase_2'],
+ 'fake_multi_phase': { 'phase_1': 'gn_phase_1', 'phase_2': 'gn_phase_2'},
+ 'fake_args_file': 'args_file_goma',
+ 'fake_args_file_twice': 'args_file_twice',
},
},
'configs': {
+ 'args_file_goma': ['args_file', 'goma'],
+ 'args_file_twice': ['args_file', 'args_file'],
'gyp_rel_bot': ['gyp', 'rel', 'goma'],
'gn_debug_goma': ['gn', 'debug', 'goma'],
'gyp_debug': ['gyp', 'debug', 'fake_feature1'],
@@ -141,6 +148,9 @@ TEST_CONFIG = """\
'gn_args': 'use_goma=true',
'gyp_defines': 'goma=1',
},
+ 'args_file': {
+ 'args_file': '//build/args/fake.gn',
+ },
'phase_1': {
'gn_args': 'phase=1',
'gyp_args': 'phase=1',
@@ -159,35 +169,6 @@ TEST_CONFIG = """\
}
"""
-
-TEST_BAD_CONFIG = """\
-{
- 'configs': {
- 'gn_rel_bot_1': ['gn', 'rel', 'chrome_with_codecs'],
- 'gn_rel_bot_2': ['gn', 'rel', 'bad_nested_config'],
- },
- 'masters': {
- 'chromium': {
- 'a': 'gn_rel_bot_1',
- 'b': 'gn_rel_bot_2',
- },
- },
- 'mixins': {
- 'gn': {'type': 'gn'},
- 'chrome_with_codecs': {
- 'gn_args': 'proprietary_codecs=true',
- },
- 'bad_nested_config': {
- 'mixins': ['chrome_with_codecs'],
- },
- 'rel': {
- 'gn_args': 'is_debug=false',
- },
- },
-}
-"""
-
-
GYP_HACKS_CONFIG = """\
{
'masters': {
@@ -211,12 +192,43 @@ GYP_HACKS_CONFIG = """\
}
"""
+TRYSERVER_CONFIG = """\
+{
+ 'masters': {
+ 'not_a_tryserver': {
+ 'fake_builder': 'fake_config',
+ },
+ 'tryserver.chromium.linux': {
+ 'try_builder': 'fake_config',
+ },
+ 'tryserver.chromium.mac': {
+ 'try_builder2': 'fake_config',
+ },
+ },
+ 'luci_tryservers': {
+ 'luci_tryserver1': ['luci_builder1'],
+ 'luci_tryserver2': ['luci_builder2'],
+ },
+ 'configs': {},
+ 'mixins': {},
+}
+"""
+
class UnitTest(unittest.TestCase):
def fake_mbw(self, files=None, win32=False):
mbw = FakeMBW(win32=win32)
mbw.files.setdefault(mbw.default_config, TEST_CONFIG)
mbw.files.setdefault(
+ mbw.ToAbsPath('//testing/buildbot/gn_isolate_map.pyl'),
+ '''{
+ "foo_unittests": {
+ "label": "//foo:foo_unittests",
+ "type": "console_test_launcher",
+ "args": [],
+ },
+ }''')
+ mbw.files.setdefault(
mbw.ToAbsPath('//build/args/bots/fake_master/fake_gn_args_bot.gn'),
'is_debug = false\n')
if files:
@@ -268,78 +280,104 @@ class UnitTest(unittest.TestCase):
['/fake_src/out/Debug', '/fake_src/out/Debug'])
self.assertEqual(mbw.files['/fake_src/out/Debug/mb_type'], 'gyp')
- def test_gn_analyze(self):
- files = {'/tmp/in.json': """{\
+ def test_analyze(self):
+ files = {'/tmp/in.json': '''{\
"files": ["foo/foo_unittest.cc"],
- "test_targets": ["foo_unittests", "bar_unittests"],
- "additional_compile_targets": []
- }"""}
+ "test_targets": ["foo_unittests"],
+ "additional_compile_targets": ["all"]
+ }''',
+ '/tmp/out.json.gn': '''{\
+ "status": "Found dependency",
+ "compile_targets": ["//foo:foo_unittests"],
+ "test_targets": ["//foo:foo_unittests"]
+ }'''}
mbw = self.fake_mbw(files)
- mbw.Call = lambda cmd, env=None, buffer_output=True: (
- 0, 'out/Default/foo_unittests\n', '')
+ mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '')
self.check(['analyze', '-c', 'gn_debug_goma', '//out/Default',
'/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0)
out = json.loads(mbw.files['/tmp/out.json'])
self.assertEqual(out, {
'status': 'Found dependency',
- 'compile_targets': ['foo_unittests'],
+ 'compile_targets': ['foo:foo_unittests'],
'test_targets': ['foo_unittests']
})
- def test_gn_analyze_fails(self):
- files = {'/tmp/in.json': """{\
+ def test_analyze_optimizes_compile_for_all(self):
+ files = {'/tmp/in.json': '''{\
"files": ["foo/foo_unittest.cc"],
- "test_targets": ["foo_unittests", "bar_unittests"],
- "additional_compile_targets": []
- }"""}
+ "test_targets": ["foo_unittests"],
+ "additional_compile_targets": ["all"]
+ }''',
+ '/tmp/out.json.gn': '''{\
+ "status": "Found dependency",
+ "compile_targets": ["//foo:foo_unittests", "all"],
+ "test_targets": ["//foo:foo_unittests"]
+ }'''}
mbw = self.fake_mbw(files)
- mbw.Call = lambda cmd, env=None, buffer_output=True: (1, '', '')
+ mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '')
self.check(['analyze', '-c', 'gn_debug_goma', '//out/Default',
- '/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=1)
+ '/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0)
+ out = json.loads(mbw.files['/tmp/out.json'])
+
+ # check that 'foo_unittests' is not in the compile_targets
+ self.assertEqual(['all'], out['compile_targets'])
- def test_gn_analyze_all(self):
- files = {'/tmp/in.json': """{\
+ def test_analyze_handles_other_toolchains(self):
+ files = {'/tmp/in.json': '''{\
"files": ["foo/foo_unittest.cc"],
- "test_targets": ["bar_unittests"],
+ "test_targets": ["foo_unittests"],
"additional_compile_targets": ["all"]
- }"""}
+ }''',
+ '/tmp/out.json.gn': '''{\
+ "status": "Found dependency",
+ "compile_targets": ["//foo:foo_unittests",
+ "//foo:foo_unittests(bar)"],
+ "test_targets": ["//foo:foo_unittests"]
+ }'''}
+
mbw = self.fake_mbw(files)
- mbw.Call = lambda cmd, env=None, buffer_output=True: (
- 0, 'out/Default/foo_unittests\n', '')
+ mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '')
+
self.check(['analyze', '-c', 'gn_debug_goma', '//out/Default',
'/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0)
out = json.loads(mbw.files['/tmp/out.json'])
- self.assertEqual(out, {
- 'status': 'Found dependency (all)',
- 'compile_targets': ['all', 'bar_unittests'],
- 'test_targets': ['bar_unittests'],
- })
- def test_gn_analyze_missing_file(self):
- files = {'/tmp/in.json': """{\
+ # crbug.com/736215: If GN returns a label containing a toolchain,
+ # MB (and Ninja) don't know how to handle it; to work around this,
+ # we give up and just build everything we were asked to build. The
+ # output compile_targets should include all of the input test_targets and
+ # additional_compile_targets.
+ self.assertEqual(['all', 'foo_unittests'], out['compile_targets'])
+
+ def test_analyze_handles_way_too_many_results(self):
+ too_many_files = ', '.join(['"//foo:foo%d"' % i for i in xrange(4 * 1024)])
+ files = {'/tmp/in.json': '''{\
"files": ["foo/foo_unittest.cc"],
- "test_targets": ["bar_unittests"],
- "additional_compile_targets": []
- }"""}
+ "test_targets": ["foo_unittests"],
+ "additional_compile_targets": ["all"]
+ }''',
+ '/tmp/out.json.gn': '''{\
+ "status": "Found dependency",
+ "compile_targets": [''' + too_many_files + '''],
+ "test_targets": ["//foo:foo_unittests"]
+ }'''}
+
mbw = self.fake_mbw(files)
- mbw.cmds = [
- (0, '', ''),
- (1, 'The input matches no targets, configs, or files\n', ''),
- (1, 'The input matches no targets, configs, or files\n', ''),
- ]
+ mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '')
self.check(['analyze', '-c', 'gn_debug_goma', '//out/Default',
'/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0)
out = json.loads(mbw.files['/tmp/out.json'])
- self.assertEqual(out, {
- 'status': 'No dependency',
- 'compile_targets': [],
- 'test_targets': [],
- })
+
+ # If GN returns so many compile targets that we might have command-line
+ # issues, we should give up and just build everything we were asked to
+ # build. The output compile_targets should include all of the input
+ # test_targets and additional_compile_targets.
+ self.assertEqual(['all', 'foo_unittests'], out['compile_targets'])
def test_gn_gen(self):
mbw = self.fake_mbw()
@@ -373,12 +411,27 @@ class UnitTest(unittest.TestCase):
mbw.files['/fake_src/out/Debug/args.gn'],
'import("//build/args/bots/fake_master/fake_gn_args_bot.gn")\n')
+ def test_gn_gen_args_file_mixins(self):
+ mbw = self.fake_mbw()
+ self.check(['gen', '-m', 'fake_master', '-b', 'fake_args_file',
+ '//out/Debug'], mbw=mbw, ret=0)
+
+ self.assertEqual(
+ mbw.files['/fake_src/out/Debug/args.gn'],
+ ('import("//build/args/fake.gn")\n'
+ 'use_goma = true\n'))
+
+ mbw = self.fake_mbw()
+ self.check(['gen', '-m', 'fake_master', '-b', 'fake_args_file_twice',
+ '//out/Debug'], mbw=mbw, ret=1)
def test_gn_gen_fails(self):
mbw = self.fake_mbw()
mbw.Call = lambda cmd, env=None, buffer_output=True: (1, '', '')
self.check(['gen', '-c', 'gn_debug_goma', '//out/Default'], mbw=mbw, ret=1)
+ # TODO(machenbach): Comment back in after swarming file parameter is used.
+ """
def test_gn_gen_swarming(self):
files = {
'/tmp/swarming_targets': 'base_unittests\n',
@@ -403,6 +456,34 @@ class UnitTest(unittest.TestCase):
self.assertIn('/fake_src/out/Default/base_unittests.isolated.gen.json',
mbw.files)
+ def test_gn_gen_swarming_script(self):
+ files = {
+ '/tmp/swarming_targets': 'cc_perftests\n',
+ '/fake_src/testing/buildbot/gn_isolate_map.pyl': (
+ "{'cc_perftests': {"
+ " 'label': '//cc:cc_perftests',"
+ " 'type': 'script',"
+ " 'script': '/fake_src/out/Default/test_script.py',"
+ " 'args': [],"
+ "}}\n"
+ ),
+ 'c:\\fake_src\out\Default\cc_perftests.exe.runtime_deps': (
+ "cc_perftests\n"
+ ),
+ }
+ mbw = self.fake_mbw(files=files, win32=True)
+ self.check(['gen',
+ '-c', 'gn_debug_goma',
+ '--swarming-targets-file', '/tmp/swarming_targets',
+ '--isolate-map-file',
+ '/fake_src/testing/buildbot/gn_isolate_map.pyl',
+ '//out/Default'], mbw=mbw, ret=0)
+ self.assertIn('c:\\fake_src\\out\\Default\\cc_perftests.isolate',
+ mbw.files)
+ self.assertIn('c:\\fake_src\\out\\Default\\cc_perftests.isolated.gen.json',
+ mbw.files)
+ """ # pylint: disable=pointless-string-statement
+
def test_gn_isolate(self):
files = {
'/fake_src/out/Default/toolchain.ninja': "",
@@ -509,27 +590,23 @@ class UnitTest(unittest.TestCase):
# Check that passing a --phase to a single-phase builder fails.
mbw = self.check(['lookup', '-m', 'fake_master', '-b', 'fake_gn_builder',
- '--phase', '1'],
- ret=1)
+ '--phase', 'phase_1'], ret=1)
self.assertIn('Must not specify a build --phase', mbw.out)
- # Check different ranges; 0 and 3 are out of bounds, 1 and 2 should work.
+ # Check that passing a wrong phase key to a multi-phase builder fails.
mbw = self.check(['lookup', '-m', 'fake_master', '-b', 'fake_multi_phase',
- '--phase', '0'], ret=1)
- self.assertIn('Phase 0 out of bounds', mbw.out)
+ '--phase', 'wrong_phase'], ret=1)
+ self.assertIn('Phase wrong_phase doesn\'t exist', mbw.out)
+ # Check that passing a correct phase key to a multi-phase builder passes.
mbw = self.check(['lookup', '-m', 'fake_master', '-b', 'fake_multi_phase',
- '--phase', '1'], ret=0)
+ '--phase', 'phase_1'], ret=0)
self.assertIn('phase = 1', mbw.out)
mbw = self.check(['lookup', '-m', 'fake_master', '-b', 'fake_multi_phase',
- '--phase', '2'], ret=0)
+ '--phase', 'phase_2'], ret=0)
self.assertIn('phase = 2', mbw.out)
- mbw = self.check(['lookup', '-m', 'fake_master', '-b', 'fake_multi_phase',
- '--phase', '3'], ret=1)
- self.assertIn('Phase 3 out of bounds', mbw.out)
-
def test_validate(self):
mbw = self.fake_mbw()
self.check(['validate'], mbw=mbw, ret=0)
@@ -544,28 +621,21 @@ class UnitTest(unittest.TestCase):
"LLVM_FORCE_HEAD_REVISION=1\n"
"python build/gyp_chromium -G output_dir=_path_\n"))
-
-if __name__ == '__main__':
- unittest.main()
-
- def test_validate(self):
- mbw = self.fake_mbw()
- self.check(['validate'], mbw=mbw, ret=0)
-
- def test_bad_validate(self):
- mbw = self.fake_mbw()
- mbw.files[mbw.default_config] = TEST_BAD_CONFIG
- self.check(['validate'], mbw=mbw, ret=1)
-
- def test_gyp_env_hacks(self):
+ def test_buildbucket(self):
mbw = self.fake_mbw()
- mbw.files[mbw.default_config] = GYP_HACKS_CONFIG
- self.check(['lookup', '-c', 'fake_config'], mbw=mbw,
+ mbw.files[mbw.default_config] = TRYSERVER_CONFIG
+ self.check(['gerrit-buildbucket-config'], mbw=mbw,
ret=0,
- out=("GYP_DEFINES='foo=bar baz=1'\n"
- "GYP_LINK_CONCURRENCY=1\n"
- "LLVM_FORCE_HEAD_REVISION=1\n"
- "python build/gyp_chromium -G output_dir=_path_\n"))
+ out=('# This file was generated using '
+ '"tools/mb/mb.py gerrit-buildbucket-config".\n'
+ '[bucket "luci.luci_tryserver1"]\n'
+ '\tbuilder = luci_builder1\n'
+ '[bucket "luci.luci_tryserver2"]\n'
+ '\tbuilder = luci_builder2\n'
+ '[bucket "master.tryserver.chromium.linux"]\n'
+ '\tbuilder = try_builder\n'
+ '[bucket "master.tryserver.chromium.mac"]\n'
+ '\tbuilder = try_builder2\n'))
if __name__ == '__main__':
diff --git a/chromium/v8/tools/testrunner/testrunner.isolate b/chromium/v8/tools/testrunner/testrunner.isolate
index e29f1df98df..56667c20215 100644
--- a/chromium/v8/tools/testrunner/testrunner.isolate
+++ b/chromium/v8/tools/testrunner/testrunner.isolate
@@ -7,6 +7,7 @@
'../run-tests.py',
],
'files': [
+ '<(PRODUCT_DIR)/v8_build_config.json',
'../run-tests.py',
'./'
],
@@ -20,12 +21,5 @@
],
},
}],
- ['is_gn==1', {
- 'variables': {
- 'files': [
- '<(PRODUCT_DIR)/v8_build_config.json',
- ],
- },
- }],
],
}
diff --git a/chromium/v8/tools/testrunner/utils/dump_build_config.py b/chromium/v8/tools/testrunner/utils/dump_build_config.py
index bd57b5f34e2..b691bb3dc8d 100644
--- a/chromium/v8/tools/testrunner/utils/dump_build_config.py
+++ b/chromium/v8/tools/testrunner/utils/dump_build_config.py
@@ -15,7 +15,7 @@ import json
import os
import sys
-assert len(sys.argv) > 1
+assert len(sys.argv) > 2
def as_json(kv):
assert '=' in kv
@@ -23,4 +23,4 @@ def as_json(kv):
return k, json.loads(v)
with open(sys.argv[1], 'w') as f:
- json.dump(dict(as_json(kv) for kv in sys.argv[2:]), f)
+ json.dump(dict(map(as_json, sys.argv[2:])), f)
diff --git a/chromium/v8/tools/testrunner/utils/dump_build_config_gyp.py b/chromium/v8/tools/testrunner/utils/dump_build_config_gyp.py
new file mode 100644
index 00000000000..7f726271314
--- /dev/null
+++ b/chromium/v8/tools/testrunner/utils/dump_build_config_gyp.py
@@ -0,0 +1,54 @@
+# Copyright 2017 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.
+
+"""The same as dump_build_config.py but for gyp legacy.
+
+Expected to be called like:
+dump_build_config.py path/to/file.json [key1=value1 ...]
+
+Raw gyp values are supported - they will be tranformed into valid json.
+"""
+# TODO(machenbach): Remove this when gyp is deprecated.
+
+import json
+import os
+import sys
+
+assert len(sys.argv) > 2
+
+
+GYP_GN_CONVERSION = {
+ 'is_component_build': {
+ 'shared_library': 'true',
+ 'static_library': 'false',
+ },
+ 'is_debug': {
+ 'Debug': 'true',
+ 'Release': 'false',
+ },
+}
+
+DEFAULT_CONVERSION ={
+ '0': 'false',
+ '1': 'true',
+ 'ia32': 'x86',
+}
+
+def gyp_to_gn(key, value):
+ value = GYP_GN_CONVERSION.get(key, DEFAULT_CONVERSION).get(value, value)
+ value = value if value in ['true', 'false'] else '"{0}"'.format(value)
+ return value
+
+def as_json(kv):
+ assert '=' in kv
+ k, v = kv.split('=', 1)
+ v2 = gyp_to_gn(k, v)
+ try:
+ return k, json.loads(v2)
+ except ValueError as e:
+ print(k, v, v2)
+ raise e
+
+with open(sys.argv[1], 'w') as f:
+ json.dump(dict(map(as_json, sys.argv[2:])), f)
diff --git a/chromium/v8/tools/whitespace.txt b/chromium/v8/tools/whitespace.txt
index 83c467a908f..37b1d825531 100644
--- a/chromium/v8/tools/whitespace.txt
+++ b/chromium/v8/tools/whitespace.txt
@@ -8,3 +8,4 @@ The doubles heard this and started to unbox.
The Smi looked at them when a crazy v8-autoroll account showed up......
The autoroller bought a round of Himbeerbrause. Suddenly.....
The bartender starts to shake the bottles..........
+.