<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>238598</bug_id>
          
          <creation_ts>2022-03-31 02:18:10 -0700</creation_ts>
          <short_desc>[WPE][GTK] Missing API to pass client-side messages to new pages on the web extension side</short_desc>
          <delta_ts>2022-05-24 07:02:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WPE WebKit</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Claudio Saavedra">csaavedra</reporter>
          <assigned_to name="Pablo Saavedra">psaavedra</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>psaavedra</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1856751</commentid>
    <comment_count>0</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2022-03-31 02:18:10 -0700</bug_when>
    <thetext>While it is possible to pass client-side messages to a web page right after a view has been created (with the webkit_web_view_send_message_to_page() API), there&apos;s no way for the WebView to know if the web process has created a new page (due to navigation, for example), in order to send a message to that new page, for cases when data should be available to a specific page and not to all via web extension data.

There could be two independent approaches to do this, both would require some new API in WebKit:

1. For data that is immutable, one could mimic webkit_web_context_set_web_extensions_initialization_user_data() and add a webkit_web_view_set_web_page_initialization_data() method that would allow passing of initialization data to pages. Then on the web extension side, one could call a webkit_web_page_get_initialization_data() method (for example, in the &quot;page-created&quot; signal handler), in order to get that data. This would not allow to pass arbitrary messages any time that a new page is created, though.

2. For the latter, an alternative would be to have a WebKitWebView:page-created signal that can be used to send a new message via the existing webkit_web_view_send_message_to_page() method, if needed.

These approaches are complementary and both could be implemented, for our use-case either would work, so the idea is to discuss here possible drawbacks and a course of action before starting any implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863622</commentid>
    <comment_count>1</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-04-22 04:09:41 -0700</bug_when>
    <thetext>This proposal that comes after a conversation with  aperez (igalia.com):


We could add a new signal in the webview. There is a `didReceiveSynchronousMessageFromInjectedBundle()`, when the webprocess sends a sync message to the uiprocess it will pause waiting for a reply. We could send a sync message whenever a new page is created (new page in webprocess = new page load). It would be like this:

1. When a WebKitWebPage is going to be created (which happens for every new load), send a sync message to the UIProcess.
2. In the UIProcess, receive the message, emit signal WebKitWebView::configure-web-extension-page (maybe not the best name) that it runs once per WebKitWebPage
3. If a signal handler for the signal returns a GVariant, send it back as response to the sync message.
4. Back in the WebProcess, if a GVariant is received, assign it to the WebKitWebPage.initialization-data property.
5. Emit WebKitWebExtension::page-created normally. Signal handlers in webprocess extensions can read the data returned in (2.) using the WebKitPage.initialization-data property at this point, before the load starts, or even later when WebKitScriptWorld::window-object-cleared is emitted (because signal handlers for this signal receive the WebKitWebPage, too)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864785</commentid>
    <comment_count>2</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-04-27 06:41:38 -0700</bug_when>
    <thetext>Unfortunately the `WKBundlePostSynchronousMessage()` is a deprecated method of the C API nowadays:

Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundle.h:WK_EXPORT void WKBundlePostSynchronousMessage(WKBundleRef bundle, WKStringRef messageName, WKTypeRef messageBody, WKTypeRef* returnRetainedData) WK_C_API_DEPRECATED;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868695</commentid>
    <comment_count>3</comment_count>
      <attachid>459285</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-05-13 02:26:16 -0700</bug_when>
    <thetext>Created attachment 459285
1st tentative patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868700</commentid>
    <comment_count>4</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-05-13 02:34:36 -0700</bug_when>
    <thetext>I just uploaded a 1st tentative but functional patch that in some how could establish the ground for this change.

Example of use:


- UI-process:

  ```
  g_signal_connect(webView, &quot;initialize-web-extensions&quot;, G_CALLBACK(onInitializeWebExtensions), nullptr);

  void View::onInitializeWebExtensions(WebKitWebView* webView, gpointer*)
  {
    webkit_web_view_set_web_extensions_initialization_user_data(webView, g_variant_ref_sink(g_variant_new(&quot;(s)&quot;, &quot;foo&quot;)));
  }
  ```

- WebProcess extension:

  ```
  g_signal_connect(
    webExtension,
    &quot;initialize-web-extensions&quot;,
    G_CALLBACK(+[](WebKitWebExtension*, GVariant* userData, WebProcessExtension* self)
    {
        // Callback
    }),
    this);
  ```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870370</commentid>
    <comment_count>5</comment_count>
      <attachid>459586</attachid>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-05-19 07:55:23 -0700</bug_when>
    <thetext>Created attachment 459586
2st tentative patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870995</commentid>
    <comment_count>6</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2022-05-22 00:19:36 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/891</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459285</attachid>
            <date>2022-05-13 02:26:16 -0700</date>
            <delta_ts>2022-05-19 07:55:19 -0700</delta_ts>
            <desc>1st tentative patch</desc>
            <filename>bug-238598-20220513112615.patch</filename>
            <type>text/plain</type>
            <size>17432</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI5Zjk2NWMzMzljMWNjYTI1
OGMzODBhODI5YmNlMDIzNDQ1MjUzMTAuLjA3YTY5MGRiZjBiYmVhMDUzMDlhZGM2ZDhjYjc1NDFj
ZTE1NWNjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjItMDUtMTMgIFBhYmxvIFNh
YXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dQRV1bR1RLXSBNaXNz
aW5nIEFQSSB0byBwYXNzIGNsaWVudC1zaWRlIG1lc3NhZ2VzIHRvIG5ldyBwYWdlcyBvbiB0aGUg
d2ViIGV4dGVuc2lvbiBzaWRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzg1OTgKKworICAgICAgICBUaGUgV2ViUHJvY2Vzc1Bvb2wgc2VuZHMgYSBN
ZXNzYWdlczo6V2ViUHJvY2Vzczo6SW5pdGlhbGl6ZVdlYkV4dGVuc2lvbnMKKyAgICAgICAgd2l0
aCBzZXJpYWxpemVkIFVzZXJEYXRhIGluZm9ybWF0aW9uIGV2ZXJ5IHRpbWUgdGhhdCBhCisgICAg
ICAgIERpZEluaXRpYXRlTG9hZEZvclJlc291cmNlIG1lc3NhZ2UgaXMgYmVpbmcgcmVjZWl2ZWQg
ZnJvbSBhCisgICAgICAgIFdlYlByb2Nlc3MgZm9yIGEgV2ViS2l0V2ViVmlldyB3aGF0IHN0aWxs
IGRvZXNuJ3QgaGF2ZSBhIG1haW4KKyAgICAgICAgcmVzb3VyY2UgbG9hZGVkLgorCisgICAgICAg
IFRoZSBXZWJQcm9jZXNzUG9vbCBjb250cnVjdHMgdGhlIFVzZXJEYXRhIG1lc3NhZ2UgdXNpbmcg
dGhlIGRhdGEgZnJvbSB0aGUKKyAgICAgICAgcHJpdi0+d2ViRXh0ZW5zaW9uc0luaXRpYWxpemF0
aW9uVXNlckRhdGEgaW4gdGhlIFdlYktpdFdlYlZpZXcuCisgICAgICAgIEl0IHJlcXVpcmVzIG9m
IGEgbmV3IGdldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUJ5UGFnZSgpCisg
ICAgICAgIG1ldGhvZCBpbiB0aGUgSW5qZWN0ZWRCdW5kbGUgQVBJLgorCisgICAgICAgIEEgV2Vi
S2l0V2ViVmlldyBjYW4gdXBkYXRlIHRoZSBwcml2LT53ZWJFeHRlbnNpb25zSW5pdGlhbGl6YXRp
b25Vc2VyRGF0YSBieQorICAgICAgICBsaXN0ZW5pbmcgdGhlICJpbml0aWFsaXplLXdlYi1leHRl
bnNpb25zIiBzaWduYWwgYW5kIHVzZSB0aGUKKyAgICAgICAgd2Via2l0X3dlYl92aWV3X3NldF93
ZWJfZXh0ZW5zaW9uc19pbml0aWFsaXphdGlvbl91c2VyX2RhdGEoKQorCisgICAgICAgIFRoZSBX
ZWJQcm9jZXNzIHJlY2VpdmVzIHRoZSBJbml0aWFsaXplV2ViRXh0ZW5zaW9ucyBtZXNzYWdlIGFu
ZAorICAgICAgICB0cmlnZ2VycyBhbiAiaW5pdGlhbGl6ZS13ZWItZXh0ZW5zaW9ucyIgc2lnbmFs
IGZvciB0aGUKKyAgICAgICAgV2ViS2l0V2ViRXh0ZW5zaW9uLgorCisgICAgICAgIEEgV2ViS2l0
V2ViRXh0ZW5zaW9uIGNhbiBnZXQgdGhlIFVzZXJEYXRhIG1lc3NhZ2UgYnkgbGlzdGVuaW5nIHRo
ZQorICAgICAgICAiaW5pdGlhbGl6ZS13ZWItZXh0ZW5zaW9ucyIgc2lnbmFsLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElJbmplY3RlZEJ1bmRsZUNsaWVudC5oOgorICAgICAgICAoQVBJOjpJbmplY3RlZEJ1bmRsZUNs
aWVudDo6Z2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQnlQYWdlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3Bw
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19zZXRfd2ViX2V4dGVuc2lvbnNfaW5pdGlhbGl6YXRpb25fdXNlcl9kYXRhKToKKyAgICAgICAg
KHdlYmtpdFdlYlZpZXdIYXNNYWluUmVzb3VyY2UpOgorICAgICAgICAod2Via2l0V2ViVmlld0lu
aXRpYWxpemVXZWJFeHRlbnNpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRX
ZWJWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmhhbmRsZU1lc3NhZ2UpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViRXh0ZW5zaW9uLmNwcDoK
KyAgICAgICAgKHBhcnNlVXNlckRhdGEpOgorICAgICAgICAod2Via2l0V2ViRXh0ZW5zaW9uRGlk
SW5pdGlhbGl6ZVdlYkV4dGVuc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJFeHRlbnNpb25Qcml2YXRlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5p
dGlhbGl6ZVdlYkV4dGVuc2lvbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKwogMjAyMi0w
NS0xMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBT
aW1wbGlmeSB0aGUgdXNhZ2Ugb2YgRHJhd0dseXBoc1JlY29yZGVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbmplY3RlZEJ1bmRsZUNsaWVudC5oCmluZGV4IDlk
NDM0ODlhMmQ2MjU3Y2IwY2FmOTIyYjNmYjA5MzI5NWNlOWJiOTQuLjk3NWEzYTU2ZGUyZTFkN2Zi
MWY1MTExMjczMWE0YjgzZWY0MWI3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElJbmplY3RlZEJ1bmRsZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElJbmplY3RlZEJ1bmRsZUNsaWVudC5oCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBh
Z2VQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogfQogCkBAIC00NCw2ICs0NSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCYsIGNvbnN0IFdURjo6U3RyaW5nJiwgQVBJOjpPYmpl
Y3QqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZy
b21JbmplY3RlZEJ1bmRsZShXZWJLaXQ6OldlYlByb2Nlc3NQb29sJiwgY29uc3QgV1RGOjpTdHJp
bmcmLCBBUEk6Ok9iamVjdCosIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPEFQSTo6T2Jq
ZWN0Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7
IH0KICAgICB2aXJ0dWFsIFJlZlB0cjxBUEk6Ok9iamVjdD4gZ2V0SW5qZWN0ZWRCdW5kbGVJbml0
aWFsaXphdGlvblVzZXJEYXRhKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmKSB7IHJldHVybiBudWxs
cHRyOyB9CisgICAgdmlydHVhbCBSZWZQdHI8QVBJOjpPYmplY3Q+IGdldEluamVjdGVkQnVuZGxl
SW5pdGlhbGl6YXRpb25Vc2VyRGF0YUJ5UGFnZShXZWJLaXQ6OldlYlByb2Nlc3NQb29sJiwgV2Vi
S2l0OjpXZWJQYWdlUHJveHkqKSB7IHJldHVybiBudWxscHRyOyB9CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcAppbmRleCAzZmZmYzhmYjllMjdi
NjZiYjI2MGM5MGY0MTFmZGI0N2NhMzIxODVlLi5kNDQ5OWRjZWZmZTkzZGZjNTI5YTBhYzg3MmFj
MTM2MDg4ZjhiNTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwCkBAIC0xNzQsNiAr
MTc0LDE4IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBBUEk6OlN0cmluZzo6Y3JlYXRlKFN0
cmluZzo6ZnJvbVVURjgoZGF0YVN0cmluZy5nZXQoKSkpOwogICAgIH0KIAorICAgIFJlZlB0cjxB
UEk6Ok9iamVjdD4gZ2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQnlQYWdl
KFdlYlByb2Nlc3NQb29sJiwgV2ViUGFnZVByb3h5KiBwYWdlKSBvdmVycmlkZQorICAgIHsKKyAg
ICAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IHdlYmtpdFdlYkNvbnRleHRHZXRXZWJWaWV3
Rm9yUGFnZShtX3dlYkNvbnRleHQsIHBhZ2UpOworICAgICAgICBib29sIGhhc01haW5SZXNvdXJj
ZSA9IHdlYmtpdFdlYlZpZXdIYXNNYWluUmVzb3VyY2Uod2ViVmlldyk7CisgICAgICAgIGlmICh3
ZWJWaWV3ICYmICFoYXNNYWluUmVzb3VyY2UpIHsKKyAgICAgICAgICAgIEdSZWZQdHI8R1Zhcmlh
bnQ+IGRhdGEgPSB3ZWJraXRXZWJWaWV3SW5pdGlhbGl6ZVdlYkV4dGVuc2lvbnMod2ViVmlldyk7
CisgICAgICAgICAgICBHVW5pcXVlUHRyPGdjaGFyPiBkYXRhU3RyaW5nKGdfdmFyaWFudF9wcmlu
dChkYXRhLmdldCgpLCBUUlVFKSk7CisgICAgICAgICAgICByZXR1cm4gQVBJOjpTdHJpbmc6OmNy
ZWF0ZShTdHJpbmc6OmZyb21VVEY4KGRhdGFTdHJpbmcuZ2V0KCkpKTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBXZWJLaXRXZWJDb250ZXh0KiBtX3dl
YkNvbnRleHQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IDQ4NDIzOTE2NWI2ZGQ1MzUyOTA2ZTc3NDFkMTdmZDUw
OGI0NjViYzkuLmRjMzA5M2Y4YWQ2NTNiYWYwYTdiNTIwZjAzNjFlZGJmMDZkMjgxNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3Bw
CkBAIC0xNzMsNiArMTczLDggQEAgZW51bSB7CiAKICAgICBVU0VSX01FU1NBR0VfUkVDRUlWRUQs
CiAKKyAgICBJTklUSUFMSVpFX1dFQl9FWFRFTlNJT05TLAorCiAgICAgTEFTVF9TSUdOQUwKIH07
CiAKQEAgLTMyMCw2ICszMjIsOCBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdQcml2YXRlIHsKICAg
ICBkb3VibGUgdGV4dFNjYWxlRmFjdG9yOwogCiAgICAgYm9vbCBpc1dlYlByb2Nlc3NSZXNwb25z
aXZlOworCisgICAgR1JlZlB0cjxHVmFyaWFudD4gd2ViRXh0ZW5zaW9uc0luaXRpYWxpemF0aW9u
VXNlckRhdGE7CiB9OwogCiBzdGF0aWMgZ3VpbnQgc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAs
IH07CkBAIC0yMzE2LDYgKzIzMjAsMTUgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2Ns
YXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICAgIGdfY2Ns
b3N1cmVfbWFyc2hhbF9nZW5lcmljLAogICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMSwKICAgICAg
ICAgV0VCS0lUX1RZUEVfVVNFUl9NRVNTQUdFKTsKKworICAgIHNpZ25hbHNbSU5JVElBTElaRV9X
RUJfRVhURU5TSU9OU10gPQorICAgICAgICBnX3NpZ25hbF9uZXcoImluaXRpYWxpemUtd2ViLWV4
dGVuc2lvbnMiLAorICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAorICAg
ICAgICBHX1NJR05BTF9SVU5fTEFTVCwKKyAgICAgICAgR19TVFJVQ1RfT0ZGU0VUKFdlYktpdFdl
YlZpZXdDbGFzcywgaW5pdGlhbGl6ZV93ZWJfZXh0ZW5zaW9ucyksCisgICAgICAgIDAsIDAsCisg
ICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19WT0lELAorICAgICAgICBHX1RZUEVfTk9O
RSwgMCk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdDb21wbGV0ZUF1dGhlbnRpY2F0
aW9uUmVxdWVzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQpAQCAtMjM0OCw2ICsyMzYxLDE0IEBA
IHZvaWQgd2Via2l0V2ViVmlld0NyZWF0ZVBhZ2UoV2ViS2l0V2ViVmlldyogd2ViVmlldywgUmVm
PEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+CiAjZW5kaWYKIH0KIAordm9pZCB3ZWJraXRfd2ViX3Zp
ZXdfc2V0X3dlYl9leHRlbnNpb25zX2luaXRpYWxpemF0aW9uX3VzZXJfZGF0YShXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3LCBHVmFyaWFudCogdXNlckRhdGEpCit7CisgICAgZ19yZXR1cm5faWZfZmFp
bChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodXNl
ckRhdGEpOworCisgICAgd2ViVmlldy0+cHJpdi0+d2ViRXh0ZW5zaW9uc0luaXRpYWxpemF0aW9u
VXNlckRhdGEgPSB1c2VyRGF0YTsKK30KKwogV2ViUGFnZVByb3h5JiB3ZWJraXRXZWJWaWV3R2V0
UGFnZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewogICAgIHJldHVybiBnZXRQYWdlKHdlYlZp
ZXcpOwpAQCAtMjUwMSw2ICsyNTIyLDIxIEBAIHZvaWQgd2Via2l0V2ViVmlld1J1bkFzTW9kYWwo
V2ViS2l0V2ViVmlldyogd2ViVmlldykKICNlbmRpZgogfQogCitib29sIHdlYmtpdFdlYlZpZXdI
YXNNYWluUmVzb3VyY2UoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBBU1NFUlQod2Vi
VmlldyAhPSBudWxscHRyKTsKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZp
ZXctPnByaXY7CisgICAgcmV0dXJuIChwcml2LT5tYWluUmVzb3VyY2UgIT0gbnVsbHB0cik7Cit9
CisKK0dWYXJpYW50KiB3ZWJraXRXZWJWaWV3SW5pdGlhbGl6ZVdlYkV4dGVuc2lvbnMoV2ViS2l0
V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBBU1NFUlQod2ViVmlldyAhPSBudWxscHRyKTsKKyAg
ICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHNpZ25hbHNbSU5JVElBTElaRV9XRUJfRVhURU5TSU9O
U10sIDAsIE5VTEwpOworICAgIEFTU0VSVCh3ZWJWaWV3LT5wcml2KTsKKyAgICByZXR1cm4gZ192
YXJpYW50X25ldygiKG12KSIsCisgICAgICAgIHdlYlZpZXctPnByaXYtPndlYkV4dGVuc2lvbnNJ
bml0aWFsaXphdGlvblVzZXJEYXRhLmdldCgpKTsKK30KIHZvaWQgd2Via2l0V2ViVmlld0Nsb3Nl
UGFnZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewogICAgIGdfc2lnbmFsX2VtaXQod2ViVmll
dywgc2lnbmFsc1tDTE9TRV0sIDAsIE5VTEwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdQcml2YXRlLmgKaW5kZXggZmJhYjFhZmU5
Y2EwOWY1ZTZhNjc5M2Y1MDY1ZjA4ZmM3NmJmZWRhZi4uZmU0YmU1OWJiN2QzMTgwZDA0OTE0MGE1
MDhhYzk4YTYzMmYxZWM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0V2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5oCkBAIC0xMjQsMyArMTI0LDYgQEAgdm9p
ZCB3ZWJraXRXZWJWaWV3RGVsZXRlU3Vycm91bmRpbmcoV2ViS2l0V2ViVmlldyosIGludCBvZmZz
ZXQsIHVuc2lnbmVkIGNoYXJhY3QKIHZvaWQgd2Via2l0V2ViVmlld1NldElzV2ViUHJvY2Vzc1Jl
c3BvbnNpdmUoV2ViS2l0V2ViVmlldyosIGJvb2wpOwogCiBndWludCBjcmVhdGVTaG93T3B0aW9u
TWVudVNpZ25hbChXZWJLaXRXZWJWaWV3Q2xhc3MqKTsKKworR1ZhcmlhbnQqIHdlYmtpdFdlYlZp
ZXdJbml0aWFsaXplV2ViRXh0ZW5zaW9ucyhXZWJLaXRXZWJWaWV3Kik7Citib29sIHdlYmtpdFdl
YlZpZXdIYXNNYWluUmVzb3VyY2UoV2ViS2l0V2ViVmlldyopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaAppbmRleCBhOTBmYmFkMjk3MDM5MTgw
NjQ4ZjY2ZjFhNDVhMjdhMGVhYTk1YmQ3Li45NjBiZmNiNjExMzk2M2IwNjVlNGVjMTUxZjBkOTE3
ZjE3Mzc4ZDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dl
YktpdFdlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktp
dFdlYlZpZXcuaApAQCAtMjcwLDYgKzI3MCw3IEBAIHN0cnVjdCBfV2ViS2l0V2ViVmlld0NsYXNz
IHsKICAgICBnYm9vbGVhbiAgICAgICAoKiBzaG93X29wdGlvbl9tZW51KSAgICAgICAgICAgIChX
ZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICAgKndlYl92aWV3LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdE9wdGlvbk1lbnUgICAgICAg
ICAgICAqbWVudSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXZWJLaXRSZWN0YW5nbGUgICAgICAgICAgICAgKnJlY3RhbmdsZSk7CisgICAgdm9p
ZCAgICAgICAgICAgKCogaW5pdGlhbGl6ZV93ZWJfZXh0ZW5zaW9ucykgICAoV2ViS2l0V2ViVmll
dyAgICAgICAgICAgICAgICp3ZWJfdmlldyk7CiAKICAgICAvKjwgcHJpdmF0ZSA+Ki8KICAgICB2
b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKQEAgLTYxNSw2ICs2MTYsMTAgQEAgd2Vi
a2l0X3dlYl92aWV3X2dldF9kaXNwbGF5X2NhcHR1cmVfc3RhdGUgICAgICAgICAgICAoV2ViS2l0
V2ViVmlldwogV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfd2ViX3ZpZXdfc2V0X2Rpc3BsYXlfY2Fw
dHVyZV9zdGF0ZSAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmll
dywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdlYktpdE1lZGlhQ2FwdHVyZVN0YXRlICAgIHN0YXRlKTsKK1dFQktJVF9BUEkgdm9pZAord2Vi
a2l0X3dlYl92aWV3X3NldF93ZWJfZXh0ZW5zaW9uc19pbml0aWFsaXphdGlvbl91c2VyX2RhdGEK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2Vi
S2l0V2ViVmlldyAgICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFudCAgICAgICAgICAgICAgICAg
ICAqdXNlcl9kYXRhKTsKIAogR19FTkRfREVDTFMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDQ1ZTM1NmYxNjViMDc4N2M1MWQxNjRhZGVhZjBjODNl
OTYxZmE3YmEuLjk1ZmI5NGIxNzRjZTRkMzUwNTIzNWQ2ZjEwYzQ4OTZkODI5OTVmOGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTE2MzUsNyArMTYz
NSwyMSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpoYW5kbGVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBtZQogICAgIGF1dG8qIHdlYlByb2Nlc3NQcm94
eSA9IHdlYlByb2Nlc3NQcm94eUZyb21Db25uZWN0aW9uKGNvbm5lY3Rpb24sIG1fcHJvY2Vzc2Vz
KTsKICAgICBpZiAoIXdlYlByb2Nlc3NQcm94eSkKICAgICAgICAgcmV0dXJuOwotICAgIG1faW5q
ZWN0ZWRCdW5kbGVDbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKCp0
aGlzLCBtZXNzYWdlTmFtZSwgd2ViUHJvY2Vzc1Byb3h5LT50cmFuc2Zvcm1IYW5kbGVzVG9PYmpl
Y3RzKG1lc3NhZ2VCb2R5Lm9iamVjdCgpKS5nZXQoKSk7CisKKyAgICBSZWZQdHI8QVBJOjpPYmpl
Y3Q+IG1lc3NhZ2VCb2R5T2JqZWN0ID0gd2ViUHJvY2Vzc1Byb3h5LT50cmFuc2Zvcm1IYW5kbGVz
VG9PYmplY3RzKG1lc3NhZ2VCb2R5Lm9iamVjdCgpKTsKKworICAgIEFQSTo6RGljdGlvbmFyeSYg
bWVzc2FnZURpY3QgPSAqc3RhdGljX2Nhc3Q8QVBJOjpEaWN0aW9uYXJ5Kj4obWVzc2FnZUJvZHlP
YmplY3QuZ2V0KCkpOworICAgIENTdHJpbmcgbWVzc2FnZU5hbWVVVEY4ID0gbWVzc2FnZU5hbWUu
dXRmOCgpOworICAgIGlmIChnX3N0cl9lcXVhbChtZXNzYWdlTmFtZVVURjguZGF0YSgpICsgc3Ry
bGVuKCJXZWJQYWdlLiIpLCAiRGlkSW5pdGlhdGVMb2FkRm9yUmVzb3VyY2UiKSkgeworICAgICAg
ICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBzdGF0aWNfY2FzdDxXZWJQYWdlUHJveHkqPihtZXNzYWdl
RGljdC5nZXQoU3RyaW5nOjpmcm9tVVRGOCgiUGFnZSIpKSk7CisgICAgICAgIFJlZlB0cjxBUEk6
Ok9iamVjdD4gaW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhID0gbV9pbmplY3Rl
ZEJ1bmRsZUNsaWVudC0+Z2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQnlQ
YWdlKCp0aGlzLCBwYWdlKTsKKyAgICAgICAgaWYgKGluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRp
b25Vc2VyRGF0YSkgeworICAgICAgICAgICAgVXNlckRhdGEgdXNlckRhdGEgPSBVc2VyRGF0YSh3
ZWJQcm9jZXNzUHJveHktPnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXMoaW5qZWN0ZWRCdW5kbGVJ
bml0aWFsaXphdGlvblVzZXJEYXRhLmdldCgpKSk7CisgICAgICAgICAgICB3ZWJQcm9jZXNzUHJv
eHktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkluaXRpYWxpemVXZWJFeHRlbnNpb25zKHVz
ZXJEYXRhKSwgMCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtX2luamVjdGVkQnVuZGxlQ2xp
ZW50LT5kaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSgqdGhpcywgbWVzc2FnZU5h
bWUsIG1lc3NhZ2VCb2R5T2JqZWN0LmdldCgpKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6
aGFuZGxlU3luY2hyb25vdXNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgY29uc3QgVXNlckRhdGEmIG1lc3NhZ2VCb2R5LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFVzZXJEYXRhJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGli
L1dlYktpdFdlYkV4dGVuc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViRXh0ZW5zaW9uLmNwcAppbmRleCAzZmUwNTIxMGJh
YmYyNTcxZWEwMzQyMDhiNDFkYmU3NTQzZTQ5NWNjLi42YTFjODg2NmM5ZTI0MmMzMDQ4NzNmZGJh
NGE2YWM3MTkzMDUzNTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViRXh0ZW5zaW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViRXh0ZW5z
aW9uLmNwcApAQCAtMjAsNiArMjAsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IldlYktpdFdlYkV4dGVuc2lvbi5oIgogCisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlQVBJQ2Fz
dC5oPgorCiAjaW5jbHVkZSAiQVBJRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkFQSUluamVjdGVk
QnVuZGxlQnVuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJU3RyaW5nLmgiCkBAIC0xMTUsNiAr
MTE3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIGVudW0gewogICAgIFBBR0VfQ1JFQVRF
RCwKICAgICBVU0VSX01FU1NBR0VfUkVDRUlWRUQsCisgICAgSU5JVElBTElaRV9XRUJfRVhURU5T
SU9OUywKIAogICAgIExBU1RfU0lHTkFMCiB9OwpAQCAtMTcyLDYgKzE3NSwxOCBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX2V4dGVuc2lvbl9jbGFzc19pbml0KFdlYktpdFdlYkV4dGVuc2lvbkNs
YXNzKiBrbGFzcykKICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX2dlbmVyaWMsCiAgICAgICAg
IEdfVFlQRV9OT05FLCAxLAogICAgICAgICBXRUJLSVRfVFlQRV9VU0VSX01FU1NBR0UpOworCisK
KyAgICBzaWduYWxzW0lOSVRJQUxJWkVfV0VCX0VYVEVOU0lPTlNdID0gZ19zaWduYWxfbmV3KAor
ICAgICAgICAiaW5pdGlhbGl6ZS13ZWItZXh0ZW5zaW9ucyIsCisgICAgICAgIEdfVFlQRV9GUk9N
X0NMQVNTKGtsYXNzKSwKKyAgICAgICAgR19TSUdOQUxfUlVOX0xBU1QsCisgICAgICAgIDAsCisg
ICAgICAgIG51bGxwdHIsIG51bGxwdHIsCisgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lE
X19WQVJJQU5ULAorICAgICAgICBHX1RZUEVfTk9ORSwgMSwKKyAgICAgICAgR19UWVBFX1ZBUklB
TlQgfCBHX1NJR05BTF9UWVBFX1NUQVRJQ19TQ09QRSk7CisKIH0KIAogY2xhc3MgV2ViRXh0ZW5z
aW9uSW5qZWN0ZWRCdW5kbGVDbGllbnQgZmluYWwgOiBwdWJsaWMgQVBJOjpJbmplY3RlZEJ1bmRs
ZTo6Q2xpZW50IHsKQEAgLTIyMiw2ICsyMzcsMzAgQEAgdm9pZCB3ZWJraXRXZWJFeHRlbnNpb25E
aWRSZWNlaXZlVXNlck1lc3NhZ2UoV2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24sIFVzZXIK
ICAgICBnX3NpZ25hbF9lbWl0KGV4dGVuc2lvbiwgc2lnbmFsc1tVU0VSX01FU1NBR0VfUkVDRUlW
RURdLCAwLCB1c2VyTWVzc2FnZS5nZXQoKSk7CiB9CiAKKworc3RhdGljIHZvaWQgcGFyc2VVc2Vy
RGF0YShBUEk6Ok9iamVjdCogdXNlckRhdGEsIEdSZWZQdHI8R1ZhcmlhbnQ+JiBpbml0aWFsaXph
dGlvblVzZXJEYXRhKQoreworICAgIEFTU0VSVCh1c2VyRGF0YS0+dHlwZSgpID09IEFQSTo6T2Jq
ZWN0OjpUeXBlOjpTdHJpbmcpOworCisgICAgQ1N0cmluZyB1c2VyRGF0YVN0cmluZyA9IHN0YXRp
Y19jYXN0PEFQSTo6U3RyaW5nKj4odXNlckRhdGEpLT5zdHJpbmcoKS51dGY4KCk7CisgICAgR1Jl
ZlB0cjxHVmFyaWFudD4gdmFyaWFudCA9IGdfdmFyaWFudF9wYXJzZShudWxscHRyLCB1c2VyRGF0
YVN0cmluZy5kYXRhKCksCisgICAgICAgIHVzZXJEYXRhU3RyaW5nLmRhdGEoKSArIHVzZXJEYXRh
U3RyaW5nLmxlbmd0aCgpLCBudWxscHRyLCBudWxscHRyKTsKKworICAgIEFTU0VSVCh2YXJpYW50
KTsKKworICAgIEdWYXJpYW50KiBkYXRhID0gbnVsbHB0cjsKKyAgICBnX3ZhcmlhbnRfZ2V0KHZh
cmlhbnQuZ2V0KCksICIobXYpIiwgJmRhdGEpOworCisgICAgaW5pdGlhbGl6YXRpb25Vc2VyRGF0
YSA9IGFkb3B0R1JlZihkYXRhKTsKK30KKwordm9pZCB3ZWJraXRXZWJFeHRlbnNpb25EaWRJbml0
aWFsaXplV2ViRXh0ZW5zaW9uKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uLCBBUEk6Ok9i
amVjdCogdXNlckRhdGFPYmplY3QpCit7CisgICAgR1JlZlB0cjxHVmFyaWFudD4gdXNlckRhdGE7
CisgICAgcGFyc2VVc2VyRGF0YSh1c2VyRGF0YU9iamVjdCwgdXNlckRhdGEpOworICAgIGdfc2ln
bmFsX2VtaXQoZXh0ZW5zaW9uLCBzaWduYWxzW0lOSVRJQUxJWkVfV0VCX0VYVEVOU0lPTlNdLCAw
LCB1c2VyRGF0YS5nZXQoKSk7Cit9CisKIHZvaWQgd2Via2l0V2ViRXh0ZW5zaW9uU2V0R2FyYmFn
ZUNvbGxlY3RPblBhZ2VEZXN0cm95KFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uKQogewog
I2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJFeHRlbnNpb25Qcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2Vi
S2l0V2ViRXh0ZW5zaW9uUHJpdmF0ZS5oCmluZGV4IGZkNTEzYTAzMjZjZDdmNmVmM2I4ZTU0YzUx
ZGVlYWQwNDJhZDRjM2UuLjVjNzU4YTZmNzlmNDE4Y2U3Mjc2M2ZjNTA0YjI2NzkwZjI1ZjJmZGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z2xpYi9XZWJLaXRXZWJFeHRlbnNpb25Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYkV4dGVuc2lvblByaXZhdGUu
aApAQCAtMjYsNCArMjYsNSBAQAogCiBXZWJLaXRXZWJFeHRlbnNpb24qIHdlYmtpdFdlYkV4dGVu
c2lvbkNyZWF0ZShXZWJLaXQ6OkluamVjdGVkQnVuZGxlKik7CiB2b2lkIHdlYmtpdFdlYkV4dGVu
c2lvbkRpZFJlY2VpdmVVc2VyTWVzc2FnZShXZWJLaXRXZWJFeHRlbnNpb24qLCBXZWJLaXQ6OlVz
ZXJNZXNzYWdlJiYpOwordm9pZCB3ZWJraXRXZWJFeHRlbnNpb25EaWRJbml0aWFsaXplV2ViRXh0
ZW5zaW9uKFdlYktpdFdlYkV4dGVuc2lvbiosIEFQSTo6T2JqZWN0Kik7CiBXS19FWFBPUlQgdm9p
ZCB3ZWJraXRXZWJFeHRlbnNpb25TZXRHYXJiYWdlQ29sbGVjdE9uUGFnZURlc3Ryb3koV2ViS2l0
V2ViRXh0ZW5zaW9uKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggMWNhODJiMTYxOTgzZjI4ODljNGRlN2YyMTZmZDUwYWU0OTc5NWQyMy4uYTdjZmU2ZDUzOGE5
ZDllZmUxYTc0MDYzMjQ5OWQ1ZjEzNjYwY2I3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcApAQCAtNjUsNiArNjUsOCBAQAogI2luY2x1ZGUgIldlYkdhbWVwYWRQcm92
aWRlci5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIldl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIgorI2luY2x1ZGUgIldlYktpdEV4dGVuc2lvbk1hbmFn
ZXIuaCIKKyNpbmNsdWRlICJXZWJLaXRXZWJFeHRlbnNpb25Qcml2YXRlLmgiCiAjaW5jbHVkZSAi
V2ViTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiV2ViTWVtb3J5U2FtcGxlci5oIgpAQCAtMTEwNSw2ICsxMTA3LDEyIEBA
IHZvaWQgV2ViUHJvY2Vzczo6c2V0SmF2YVNjcmlwdEdhcmJhZ2VDb2xsZWN0b3JUaW1lckVuYWJs
ZWQoYm9vbCBmbGFnKQogICAgIEdDQ29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0SmF2YVNjcmlw
dEdhcmJhZ2VDb2xsZWN0b3JUaW1lckVuYWJsZWQoZmxhZyk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vz
czo6aW5pdGlhbGl6ZVdlYkV4dGVuc2lvbnMoY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQorewor
ICAgIGlmIChhdXRvKiBleHRlbnNpb24gPSBXZWJLaXRFeHRlbnNpb25NYW5hZ2VyOjpzaW5nbGV0
b24oKS5leHRlbnNpb24oKSkKKyAgICAgICAgd2Via2l0V2ViRXh0ZW5zaW9uRGlkSW5pdGlhbGl6
ZVdlYkV4dGVuc2lvbihleHRlbnNpb24sIHRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRh
dGEub2JqZWN0KCkpLmdldCgpKTsKK30KKwogdm9pZCBXZWJQcm9jZXNzOjpoYW5kbGVJbmplY3Rl
ZEJ1bmRsZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgY29uc3QgVXNlckRhdGEm
IG1lc3NhZ2VCb2R5KQogewogICAgIEluamVjdGVkQnVuZGxlKiBpbmplY3RlZEJ1bmRsZSA9IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmluamVjdGVkQnVuZGxlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAppbmRleCBjYTA2NjQ0ZTk2MzQ5Mzk3NTliZjljMTY3ODA3MmUwYzlm
MDE5MzFjLi5iN2E0YmVmY2VjYzNiZjc0M2I5ZGQxZTc4Y2Q5ODIyNjg4NmFmNzk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTQ4Miw2ICs0ODIsOCBAQCBwcml2YXRl
OgogICAgIHZvaWQgc2V0RW5hYmxlZFNlcnZpY2VzKGJvb2wgaGFzSW1hZ2VTZXJ2aWNlcywgYm9v
bCBoYXNTZWxlY3Rpb25TZXJ2aWNlcywgYm9vbCBoYXNSaWNoQ29udGVudFNlcnZpY2VzKTsKICNl
bmRpZgogCisgICAgdm9pZCBpbml0aWFsaXplV2ViRXh0ZW5zaW9ucyhjb25zdCBVc2VyRGF0YSYp
OworCiAgICAgdm9pZCBoYW5kbGVJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlTmFtZSwgY29uc3QgVXNlckRhdGEmIG1lc3NhZ2VCb2R5KTsKICAgICB2b2lkIHNldElu
amVjdGVkQnVuZGxlUGFyYW1ldGVyKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmKTsKICAgICB2b2lkIHNldEluamVjdGVkQnVuZGxlUGFyYW1ldGVycyhjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggODBhN2E0OGY0OWRkMjY3ZDE4MDhlODU5MjU4ZWM5ZDg5
N2VmNWM1Yy4uYTVhNmQ4MzgyNzJmOGMwMmJhOWYzMWU2ZTljNDAyNmFkNDNiZTlmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTIx
LDYgKzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdh
Y3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKKyAgICBJbml0aWFsaXplV2ViRXh0ZW5zaW9ucyhX
ZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKTsKICAgICBJbml0aWFsaXplV2ViUHJvY2VzcyhzdHJ1
Y3QgV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMpCiAgICAgU2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoc3RydWN0IFdlYktp
dDo6V2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMgcGFyYW1ldGVycykKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459586</attachid>
            <date>2022-05-19 07:55:23 -0700</date>
            <delta_ts>2022-05-24 07:02:52 -0700</delta_ts>
            <desc>2st tentative patch</desc>
            <filename>bug-238598-20220519165522.patch</filename>
            <type>text/plain</type>
            <size>20681</size>
            <attacher name="Pablo Saavedra">psaavedra</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI5Zjk2NWMzMzljMWNjYTI1
OGMzODBhODI5YmNlMDIzNDQ1MjUzMTAuLjA3YTY5MGRiZjBiYmVhMDUzMDlhZGM2ZDhjYjc1NDFj
ZTE1NWNjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjItMDUtMTMgIFBhYmxvIFNh
YXZlZHJhICA8cHNhYXZlZHJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dQRV1bR1RLXSBNaXNz
aW5nIEFQSSB0byBwYXNzIGNsaWVudC1zaWRlIG1lc3NhZ2VzIHRvIG5ldyBwYWdlcyBvbiB0aGUg
d2ViIGV4dGVuc2lvbiBzaWRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzg1OTgKKworICAgICAgICBUaGUgV2ViUHJvY2Vzc1Bvb2wgc2VuZHMgYSBN
ZXNzYWdlczo6V2ViUHJvY2Vzczo6SW5pdGlhbGl6ZVdlYkV4dGVuc2lvbnMKKyAgICAgICAgd2l0
aCBzZXJpYWxpemVkIFVzZXJEYXRhIGluZm9ybWF0aW9uIGV2ZXJ5IHRpbWUgdGhhdCBhCisgICAg
ICAgIERpZEluaXRpYXRlTG9hZEZvclJlc291cmNlIG1lc3NhZ2UgaXMgYmVpbmcgcmVjZWl2ZWQg
ZnJvbSBhCisgICAgICAgIFdlYlByb2Nlc3MgZm9yIGEgV2ViS2l0V2ViVmlldyB3aGF0IHN0aWxs
IGRvZXNuJ3QgaGF2ZSBhIG1haW4KKyAgICAgICAgcmVzb3VyY2UgbG9hZGVkLgorCisgICAgICAg
IFRoZSBXZWJQcm9jZXNzUG9vbCBjb250cnVjdHMgdGhlIFVzZXJEYXRhIG1lc3NhZ2UgdXNpbmcg
dGhlIGRhdGEgZnJvbSB0aGUKKyAgICAgICAgcHJpdi0+d2ViRXh0ZW5zaW9uc0luaXRpYWxpemF0
aW9uVXNlckRhdGEgaW4gdGhlIFdlYktpdFdlYlZpZXcuCisgICAgICAgIEl0IHJlcXVpcmVzIG9m
IGEgbmV3IGdldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUJ5UGFnZSgpCisg
ICAgICAgIG1ldGhvZCBpbiB0aGUgSW5qZWN0ZWRCdW5kbGUgQVBJLgorCisgICAgICAgIEEgV2Vi
S2l0V2ViVmlldyBjYW4gdXBkYXRlIHRoZSBwcml2LT53ZWJFeHRlbnNpb25zSW5pdGlhbGl6YXRp
b25Vc2VyRGF0YSBieQorICAgICAgICBsaXN0ZW5pbmcgdGhlICJpbml0aWFsaXplLXdlYi1leHRl
bnNpb25zIiBzaWduYWwgYW5kIHVzZSB0aGUKKyAgICAgICAgd2Via2l0X3dlYl92aWV3X3NldF93
ZWJfZXh0ZW5zaW9uc19pbml0aWFsaXphdGlvbl91c2VyX2RhdGEoKQorCisgICAgICAgIFRoZSBX
ZWJQcm9jZXNzIHJlY2VpdmVzIHRoZSBJbml0aWFsaXplV2ViRXh0ZW5zaW9ucyBtZXNzYWdlIGFu
ZAorICAgICAgICB0cmlnZ2VycyBhbiAiaW5pdGlhbGl6ZS13ZWItZXh0ZW5zaW9ucyIgc2lnbmFs
IGZvciB0aGUKKyAgICAgICAgV2ViS2l0V2ViRXh0ZW5zaW9uLgorCisgICAgICAgIEEgV2ViS2l0
V2ViRXh0ZW5zaW9uIGNhbiBnZXQgdGhlIFVzZXJEYXRhIG1lc3NhZ2UgYnkgbGlzdGVuaW5nIHRo
ZQorICAgICAgICAiaW5pdGlhbGl6ZS13ZWItZXh0ZW5zaW9ucyIgc2lnbmFsLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElJbmplY3RlZEJ1bmRsZUNsaWVudC5oOgorICAgICAgICAoQVBJOjpJbmplY3RlZEJ1bmRsZUNs
aWVudDo6Z2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQnlQYWdlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3Bw
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19zZXRfd2ViX2V4dGVuc2lvbnNfaW5pdGlhbGl6YXRpb25fdXNlcl9kYXRhKToKKyAgICAgICAg
KHdlYmtpdFdlYlZpZXdIYXNNYWluUmVzb3VyY2UpOgorICAgICAgICAod2Via2l0V2ViVmlld0lu
aXRpYWxpemVXZWJFeHRlbnNpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRX
ZWJWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmhhbmRsZU1lc3NhZ2UpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViRXh0ZW5zaW9uLmNwcDoK
KyAgICAgICAgKHBhcnNlVXNlckRhdGEpOgorICAgICAgICAod2Via2l0V2ViRXh0ZW5zaW9uRGlk
SW5pdGlhbGl6ZVdlYkV4dGVuc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJFeHRlbnNpb25Qcml2YXRlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5p
dGlhbGl6ZVdlYkV4dGVuc2lvbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKwogMjAyMi0w
NS0xMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBT
aW1wbGlmeSB0aGUgdXNhZ2Ugb2YgRHJhd0dseXBoc1JlY29yZGVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbmplY3RlZEJ1bmRsZUNsaWVudC5oCmluZGV4IDlk
NDM0ODlhMmQ2MjU3Y2IwY2FmOTIyYjNmYjA5MzI5NWNlOWJiOTQuLjM2NTQyYmU0NTIyMTgwYmUx
MjA4N2NlZWQ3MDc3OTZlNDRkOWU4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElJbmplY3RlZEJ1bmRsZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElJbmplY3RlZEJ1bmRsZUNsaWVudC5oCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBh
Z2VQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogfQogCkBAIC00NCw2ICs0NSw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCYsIGNvbnN0IFdURjo6U3RyaW5nJiwgQVBJOjpPYmpl
Y3QqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZy
b21JbmplY3RlZEJ1bmRsZShXZWJLaXQ6OldlYlByb2Nlc3NQb29sJiwgY29uc3QgV1RGOjpTdHJp
bmcmLCBBUEk6Ok9iamVjdCosIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPEFQSTo6T2Jq
ZWN0Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7
IH0KICAgICB2aXJ0dWFsIFJlZlB0cjxBUEk6Ok9iamVjdD4gZ2V0SW5qZWN0ZWRCdW5kbGVJbml0
aWFsaXphdGlvblVzZXJEYXRhKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmKSB7IHJldHVybiBudWxs
cHRyOyB9CisjaWYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKKyAgICB2aXJ0dWFs
IFJlZlB0cjxBUEk6Ok9iamVjdD4gZ2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJE
YXRhQnlQYWdlKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmLCBXZWJLaXQ6OldlYlBhZ2VQcm94eSop
IHsgcmV0dXJuIG51bGxwdHI7IH0KKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbmplY3Rl
ZEJ1bmRsZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKaW5kZXggM2ZmZmM4ZmI5ZTI3YjY2YmIyNjBjOTBm
NDExZmRiNDdjYTMyMTg1ZS4uNzJjOWYwNDlmODdlN2UyODViZDNkZjU5NzFiYWUxZTEzZGYxOTE2
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5q
ZWN0ZWRCdW5kbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcApAQCAtMTc0LDYgKzE3NCwyMCBAQCBw
cml2YXRlOgogICAgICAgICByZXR1cm4gQVBJOjpTdHJpbmc6OmNyZWF0ZShTdHJpbmc6OmZyb21V
VEY4KGRhdGFTdHJpbmcuZ2V0KCkpKTsKICAgICB9CiAKKyNpZiAoUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShXUEUpKQorICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gZ2V0SW5qZWN0ZWRCdW5kbGVJ
bml0aWFsaXphdGlvblVzZXJEYXRhQnlQYWdlKFdlYlByb2Nlc3NQb29sJiwgV2ViUGFnZVByb3h5
KiBwYWdlKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9
IHdlYmtpdFdlYkNvbnRleHRHZXRXZWJWaWV3Rm9yUGFnZShtX3dlYkNvbnRleHQsIHBhZ2UpOwor
ICAgICAgICBib29sIGhhc01haW5SZXNvdXJjZSA9IHdlYmtpdFdlYlZpZXdIYXNNYWluUmVzb3Vy
Y2Uod2ViVmlldyk7CisgICAgICAgIGlmICh3ZWJWaWV3ICYmICFoYXNNYWluUmVzb3VyY2UpIHsK
KyAgICAgICAgICAgIEdSZWZQdHI8R1ZhcmlhbnQ+IGRhdGEgPSB3ZWJraXRXZWJWaWV3SW5pdGlh
bGl6ZVdlYkV4dGVuc2lvbnMod2ViVmlldyk7CisgICAgICAgICAgICBHVW5pcXVlUHRyPGdjaGFy
PiBkYXRhU3RyaW5nKGdfdmFyaWFudF9wcmludChkYXRhLmdldCgpLCBUUlVFKSk7CisgICAgICAg
ICAgICByZXR1cm4gQVBJOjpTdHJpbmc6OmNyZWF0ZShTdHJpbmc6OmZyb21VVEY4KGRhdGFTdHJp
bmcuZ2V0KCkpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cisj
ZW5kaWYKKwogICAgIFdlYktpdFdlYkNvbnRleHQqIG1fd2ViQ29udGV4dDsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKaW5k
ZXggNDg0MjM5MTY1YjZkZDUzNTI5MDZlNzc0MWQxN2ZkNTA4YjQ2NWJjOS4uMTMwMzY2NmViY2Y2
NGFlZDRkZWIyZDczZTZjZjhjMGE0OWMxZjY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTE3Myw2ICsxNzMsOCBAQCBl
bnVtIHsKIAogICAgIFVTRVJfTUVTU0FHRV9SRUNFSVZFRCwKIAorICAgIElOSVRJQUxJWkVfV0VC
X0VYVEVOU0lPTlMsCisKICAgICBMQVNUX1NJR05BTAogfTsKIApAQCAtMzIwLDYgKzMyMiw4IEBA
IHN0cnVjdCBfV2ViS2l0V2ViVmlld1ByaXZhdGUgewogICAgIGRvdWJsZSB0ZXh0U2NhbGVGYWN0
b3I7CiAKICAgICBib29sIGlzV2ViUHJvY2Vzc1Jlc3BvbnNpdmU7CisKKyAgICBHUmVmUHRyPEdW
YXJpYW50PiB3ZWJFeHRlbnNpb25zSW5pdGlhbGl6YXRpb25Vc2VyRGF0YTsKIH07CiAKIHN0YXRp
YyBndWludCBzaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKQEAgLTIzMTYsNiArMjMyMCwy
NyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3
Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX2dlbmVyaWMs
CiAgICAgICAgIEdfVFlQRV9CT09MRUFOLCAxLAogICAgICAgICBXRUJLSVRfVFlQRV9VU0VSX01F
U1NBR0UpOworCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmlldzo6aW5pdGlhbGl6ZS13ZWIt
ZXh0ZW5zaW9uczoKKyAgICAgKiBAd2ViX3ZpZXc6IHRoZSAjV2ViS2l0V2ViVmlldyBvbiB3aGlj
aCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKKyAgICAgKgorICAgICAqIFRoaXMgc2lnbmFsIGlzIGVt
aXR0ZWQgd2hlbiBhIG1haW4gcmVzb3VyY2UgbG9hZCByZXF1ZXN0IGlzIHJlY2VpdmVkIGZyb20g
YQorICAgICAqICNXZWJLaXRXZWJQYWdlIGNvcnJlc3BvbmRpbmcgdG8gQHdlYl92aWV3LgorICAg
ICAqCisgICAgICogVGhpcyBpcyBhIGdvb2QgcGxhY2UgdG8gaW5pdGlhbGl6ZSB0aGUgI1dlYktp
dEV4dGVuc2lvbiB3aXRoIHNvbWUgdXNlciBkYXRhCisgICAgICogdXNpbmcgdGhlIHdlYmtpdF93
ZWJfdmlld19zZXRfd2ViX2V4dGVuc2lvbnNfaW5pdGlhbGl6YXRpb25fdXNlcl9kYXRhKCkuCisg
ICAgICoKKyAgICAgKiBTaW5jZTogMi4zOAorICAgICAqLworICAgIHNpZ25hbHNbSU5JVElBTEla
RV9XRUJfRVhURU5TSU9OU10gPQorICAgICAgICBnX3NpZ25hbF9uZXcoImluaXRpYWxpemUtd2Vi
LWV4dGVuc2lvbnMiLAorICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAor
ICAgICAgICBHX1NJR05BTF9SVU5fTEFTVCwKKyAgICAgICAgR19TVFJVQ1RfT0ZGU0VUKFdlYktp
dFdlYlZpZXdDbGFzcywgaW5pdGlhbGl6ZV93ZWJfZXh0ZW5zaW9ucyksCisgICAgICAgIDAsIDAs
CisgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19WT0lELAorICAgICAgICBHX1RZUEVf
Tk9ORSwgMCk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdDb21wbGV0ZUF1dGhlbnRp
Y2F0aW9uUmVxdWVzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQpAQCAtMjM0OCw2ICsyMzczLDE0
IEBAIHZvaWQgd2Via2l0V2ViVmlld0NyZWF0ZVBhZ2UoV2ViS2l0V2ViVmlldyogd2ViVmlldywg
UmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+CiAjZW5kaWYKIH0KIAordm9pZCB3ZWJraXRfd2Vi
X3ZpZXdfc2V0X3dlYl9leHRlbnNpb25zX2luaXRpYWxpemF0aW9uX3VzZXJfZGF0YShXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3LCBHVmFyaWFudCogdXNlckRhdGEpCit7CisgICAgZ19yZXR1cm5faWZf
ZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwo
dXNlckRhdGEpOworCisgICAgd2ViVmlldy0+cHJpdi0+d2ViRXh0ZW5zaW9uc0luaXRpYWxpemF0
aW9uVXNlckRhdGEgPSB1c2VyRGF0YTsKK30KKwogV2ViUGFnZVByb3h5JiB3ZWJraXRXZWJWaWV3
R2V0UGFnZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewogICAgIHJldHVybiBnZXRQYWdlKHdl
YlZpZXcpOwpAQCAtMjUwMSw2ICsyNTM0LDIyIEBAIHZvaWQgd2Via2l0V2ViVmlld1J1bkFzTW9k
YWwoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICNlbmRpZgogfQogCitib29sIHdlYmtpdFdlYlZp
ZXdIYXNNYWluUmVzb3VyY2UoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBBU1NFUlQo
d2ViVmlldyAhPSBudWxscHRyKTsKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdl
YlZpZXctPnByaXY7CisgICAgcmV0dXJuIChwcml2LT5tYWluUmVzb3VyY2UgIT0gbnVsbHB0cik7
Cit9CisKK0dWYXJpYW50KiB3ZWJraXRXZWJWaWV3SW5pdGlhbGl6ZVdlYkV4dGVuc2lvbnMoV2Vi
S2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBBU1NFUlQod2ViVmlldyAhPSBudWxscHRyKTsK
KyAgICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHNpZ25hbHNbSU5JVElBTElaRV9XRUJfRVhURU5T
SU9OU10sIDAsIE5VTEwpOworICAgIEFTU0VSVCh3ZWJWaWV3LT5wcml2KTsKKyAgICByZXR1cm4g
Z192YXJpYW50X25ldygiKG12KSIsCisgICAgICAgIHdlYlZpZXctPnByaXYtPndlYkV4dGVuc2lv
bnNJbml0aWFsaXphdGlvblVzZXJEYXRhLmdldCgpKTsKK30KKwogdm9pZCB3ZWJraXRXZWJWaWV3
Q2xvc2VQYWdlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB7CiAgICAgZ19zaWduYWxfZW1pdCh3
ZWJWaWV3LCBzaWduYWxzW0NMT1NFXSwgMCwgTlVMTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1ByaXZhdGUuaAppbmRleCBmYmFi
MWFmZTljYTA5ZjVlNmE2NzkzZjUwNjVmMDhmYzc2YmZlZGFmLi5mZTRiZTU5YmI3ZDMxODBkMDQ5
MTQwYTUwOGFjOThhNjMyZjFlYzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdQcml2YXRlLmgKQEAgLTEyNCwzICsxMjQsNiBA
QCB2b2lkIHdlYmtpdFdlYlZpZXdEZWxldGVTdXJyb3VuZGluZyhXZWJLaXRXZWJWaWV3KiwgaW50
IG9mZnNldCwgdW5zaWduZWQgY2hhcmFjdAogdm9pZCB3ZWJraXRXZWJWaWV3U2V0SXNXZWJQcm9j
ZXNzUmVzcG9uc2l2ZShXZWJLaXRXZWJWaWV3KiwgYm9vbCk7CiAKIGd1aW50IGNyZWF0ZVNob3dP
cHRpb25NZW51U2lnbmFsKFdlYktpdFdlYlZpZXdDbGFzcyopOworCitHVmFyaWFudCogd2Via2l0
V2ViVmlld0luaXRpYWxpemVXZWJFeHRlbnNpb25zKFdlYktpdFdlYlZpZXcqKTsKK2Jvb2wgd2Vi
a2l0V2ViVmlld0hhc01haW5SZXNvdXJjZShXZWJLaXRXZWJWaWV3Kik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCmluZGV4IDk4MjQ0OGM1NmFi
MTUxZTViM2I4MmJiOTI3NTMzZDFkNTM5N2JiZDYuLmVkMTAyNzBmMzU3MDEwZTc1NTdkYmM1ZGQ2
YzUxMzk0MDhjODE2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViVmlldy5oCkBAIC0yOTMsNiArMjkzLDcgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3
Q2xhc3MgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V2ViS2l0V2ViUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbik7CiAgICAgZ2Jvb2xlYW4g
ICAoKiB1c2VyX21lc3NhZ2VfcmVjZWl2ZWQpICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAg
ICAgICAgKndlYl92aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViS2l0VXNlck1lc3NhZ2UgICAgICAgICAgICptZXNzYWdlKTsKKyAgICB2b2lk
ICAgICAgICgqIGluaXRpYWxpemVfd2ViX2V4dGVuc2lvbnMpICAgKFdlYktpdFdlYlZpZXcgICAg
ICAgICAgICAgICAqd2ViX3ZpZXcpOwogCiAgICAgLyo8IHByaXZhdGUgPiovCiAgICAgdm9pZCAo
Kl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CkBAIC02MzksNiArNjQwLDExIEBAIFdFQktJVF9B
UEkgdm9pZAogd2Via2l0X3dlYl92aWV3X3NldF9kaXNwbGF5X2NhcHR1cmVfc3RhdGUgICAgICAg
ICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRNZWRpYUNhcHR1
cmVTdGF0ZSAgICBzdGF0ZSk7CiAKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X3Nl
dF93ZWJfZXh0ZW5zaW9uc19pbml0aWFsaXphdGlvbl91c2VyX2RhdGEKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAg
ICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHVmFyaWFudCAgICAgICAgICAgICAgICAgICAqdXNlcl9kYXRhKTsK
KwogR19FTkRfREVDTFMKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvV2ViS2l0V2ViVmlldy5oCmluZGV4IGE5MGZiYWQyOTcwMzkxODA2NDhmNjZmMWE0NWEy
N2EwZWFhOTViZDcuLjk2MGJmY2I2MTEzOTYzYjA2NWU0ZWMxNTFmMGQ5MTdmMTczNzhkNmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oCkBA
IC0yNzAsNiArMjcwLDcgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3Q2xhc3MgewogICAgIGdib29s
ZWFuICAgICAgICgqIHNob3dfb3B0aW9uX21lbnUpICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcg
ICAgICAgICAgICAgICAqd2ViX3ZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViS2l0T3B0aW9uTWVudSAgICAgICAgICAgICptZW51LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktp
dFJlY3RhbmdsZSAgICAgICAgICAgICAqcmVjdGFuZ2xlKTsKKyAgICB2b2lkICAgICAgICAgICAo
KiBpbml0aWFsaXplX3dlYl9leHRlbnNpb25zKSAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAg
ICAgKndlYl92aWV3KTsKIAogICAgIC8qPCBwcml2YXRlID4qLwogICAgIHZvaWQgKCpfd2Via2l0
X3Jlc2VydmVkMCkgKHZvaWQpOwpAQCAtNjE1LDYgKzYxNiwxMCBAQCB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X2Rpc3BsYXlfY2FwdHVyZV9zdGF0ZSAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3CiBXRUJL
SVRfQVBJIHZvaWQKIHdlYmtpdF93ZWJfdmlld19zZXRfZGlzcGxheV9jYXB0dXJlX3N0YXRlICAg
ICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0TWVkaWFD
YXB0dXJlU3RhdGUgICAgc3RhdGUpOworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdf
c2V0X3dlYl9leHRlbnNpb25zX2luaXRpYWxpemF0aW9uX3VzZXJfZGF0YQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAg
ICAgICAgICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICAgICAgICAgICAgICAgICAgICp1c2VyX2RhdGEp
OwogCiBHX0VORF9ERUNMUwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKaW5kZXggNDVlMzU2ZjE2NWIwNzg3YzUxZDE2NGFkZWFmMGM4M2U5NjFmYTdiYS4uODgy
OGIyYjhiZTE5MWYzMGVhZTZkZjQwMWRhNWZiYWJiYzRjM2VkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMTYzNSw3ICsxNjM1LDIxIEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OmhhbmRsZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBjb25zdCBTdHJpbmcmIG1lCiAgICAgYXV0byogd2ViUHJvY2Vzc1Byb3h5ID0gd2ViUHJvY2Vz
c1Byb3h5RnJvbUNvbm5lY3Rpb24oY29ubmVjdGlvbiwgbV9wcm9jZXNzZXMpOwogICAgIGlmICgh
d2ViUHJvY2Vzc1Byb3h5KQogICAgICAgICByZXR1cm47Ci0gICAgbV9pbmplY3RlZEJ1bmRsZUNs
aWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoKnRoaXMsIG1lc3NhZ2VO
YW1lLCB3ZWJQcm9jZXNzUHJveHktPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHMobWVzc2FnZUJv
ZHkub2JqZWN0KCkpLmdldCgpKTsKKworICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gbWVzc2FnZUJv
ZHlPYmplY3QgPSB3ZWJQcm9jZXNzUHJveHktPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHMobWVz
c2FnZUJvZHkub2JqZWN0KCkpOworI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQor
ICAgIEFQSTo6RGljdGlvbmFyeSYgbWVzc2FnZURpY3QgPSAqc3RhdGljX2Nhc3Q8QVBJOjpEaWN0
aW9uYXJ5Kj4obWVzc2FnZUJvZHlPYmplY3QuZ2V0KCkpOworICAgIENTdHJpbmcgbWVzc2FnZU5h
bWVVVEY4ID0gbWVzc2FnZU5hbWUudXRmOCgpOworICAgIGlmIChnX3N0cl9lcXVhbChtZXNzYWdl
TmFtZVVURjguZGF0YSgpICsgc3RybGVuKCJXZWJQYWdlLiIpLCAiRGlkSW5pdGlhdGVMb2FkRm9y
UmVzb3VyY2UiKSkgeworICAgICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBzdGF0aWNfY2FzdDxX
ZWJQYWdlUHJveHkqPihtZXNzYWdlRGljdC5nZXQoU3RyaW5nOjpmcm9tVVRGOCgiUGFnZSIpKSk7
CisgICAgICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gaW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlv
blVzZXJEYXRhID0gbV9pbmplY3RlZEJ1bmRsZUNsaWVudC0+Z2V0SW5qZWN0ZWRCdW5kbGVJbml0
aWFsaXphdGlvblVzZXJEYXRhQnlQYWdlKCp0aGlzLCBwYWdlKTsKKyAgICAgICAgaWYgKGluamVj
dGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YSkgeworICAgICAgICAgICAgVXNlckRhdGEg
dXNlckRhdGEgPSBVc2VyRGF0YSh3ZWJQcm9jZXNzUHJveHktPnRyYW5zZm9ybU9iamVjdHNUb0hh
bmRsZXMoaW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhLmdldCgpKSk7CisgICAg
ICAgICAgICB3ZWJQcm9jZXNzUHJveHktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkluaXRp
YWxpemVXZWJFeHRlbnNpb25zKHVzZXJEYXRhKSwgMCk7CisgICAgICAgIH0KKyAgICB9CisjZW5k
aWYKKyAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUZyb21Jbmpl
Y3RlZEJ1bmRsZSgqdGhpcywgbWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5T2JqZWN0LmdldCgpKTsK
IH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6aGFuZGxlU3luY2hyb25vdXNNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgY29uc3Qg
VXNlckRhdGEmIG1lc3NhZ2VCb2R5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFVzZXJEYXRhJiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYkV4dGVuc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViRXh0
ZW5zaW9uLmNwcAppbmRleCAzZmUwNTIxMGJhYmYyNTcxZWEwMzQyMDhiNDFkYmU3NTQzZTQ5NWNj
Li4zYzY1ZWQzOTYwMzYzMjEwZTE3ZjhhNGRkNjBmYWIzYjJlYjY5YzUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2Vi
RXh0ZW5zaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2dsaWIvV2ViS2l0V2ViRXh0ZW5zaW9uLmNwcApAQCAtMjAsNiArMjAsOCBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdFdlYkV4dGVuc2lvbi5oIgogCisjaW5j
bHVkZSA8V2ViS2l0L1dLQnVuZGxlQVBJQ2FzdC5oPgorCiAjaW5jbHVkZSAiQVBJRGljdGlvbmFy
eS5oIgogI2luY2x1ZGUgIkFQSUluamVjdGVkQnVuZGxlQnVuZGxlQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiQVBJU3RyaW5nLmgiCkBAIC0xMTAsMTEgKzExMiw0NyBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OwogICogICAvLyAuLi4KICAqIH0KICAqIGBgYAorICoKKyAqIFRvIHNlbmQgdXNlciBkYXRh
IHJlbGF0ZWQgdG8gYSBwYXJ0aWN1bGFyICNXZWJLaXRXZWJWaWV3LCB5b3UgaGF2ZSBhbHNvIHRo
ZSBwb3NzaWJpbGl0eSBvZiB1c2luZworICogdGhlICNXZWJLaXRXZWJWaWV3Ojppbml0aWFsaXpl
LXdlYi1leHRlbnNpb25zIHNpZ25hbCBpbiBjb21iaW5hdGlvbiB3aXRoIHRoZQorICogd2Via2l0
X3dlYl92aWV3X3NldF93ZWJfZXh0ZW5zaW9uc19pbml0aWFsaXphdGlvbl91c2VyX2RhdGEoKToK
KyAqCisgKiBgYGBjCisgKiBnX3NpZ25hbF9jb25uZWN0KHZpZXcsICJpbml0aWFsaXplLXdlYi1l
eHRlbnNpb25zIiwgR19DQUxMQkFDSyhpbml0aWFsaXplX3dlYl9leHRlbnNpb25zKSwgdGhpcyk7
CisgKgorICogc3RhdGljIHZvaWQKKyAqIGluaXRpYWxpemVfd2ViX2V4dGVuc2lvbnMgKFdlYktp
dFdlYlZpZXcqIHZpZXcsIGdwb2ludGVyKiB1c2VyX2RhdGEpCisgKiB7CisgKiAgICAgd2Via2l0
X3dlYl92aWV3X3NldF93ZWJfZXh0ZW5zaW9uc19pbml0aWFsaXphdGlvbl91c2VyX2RhdGEodmll
dywgZ192YXJpYW50X25ld191aW50MzIgKHVuaXF1ZV9pZCsrKSk7CisgKiB9CisgKiBgYGAKKyAq
CisgKiBUaGUgdXNlciBkYXRhIGNhbiBiZSByZWNvdmVyZWQgbGF0ZXIgYnkgdXNpbmcgdGhlICNX
ZWJLaXRXZWJFeHRlbnNpb246OmluaXRpYWxpemUtd2ViLWV4dGVuc2lvbnMgc2lnbmFsCisgKiBp
biB0aGUgZXh0ZW5zaW9uIGNvZGU6CisgKgorICogYGBgYworICogc3RhdGljIHZvaWQKKyAqIHdl
Yl9leHRlbnNpb25faW5pdGlhbGl6ZV9jYWxsYmFjayAoV2ViS2l0V2ViRXh0ZW5zaW9uICpleHRl
bnNpb24sCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICAg
ICAgICAgICAqaW5pdF9kYXRhLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBncG9pbnRlciAgICAgICAgICAgIHVzZXJfZGF0YSkKKyAqIHsKKyAqICAgICBnX3ByaW50ICgi
UGFnZSAlZCBjcmVhdGVkIGZvciAlc1xuIiwKKyAqICAgICAgICAgICAgICB3ZWJraXRfd2ViX3Bh
Z2VfZ2V0X2lkICh3ZWJfcGFnZSksCisgKiAgICAgICAgICAgICAgd2Via2l0X3dlYl9wYWdlX2dl
dF91cmkgKHdlYl9wYWdlKSk7CisgKiB9CisgKgorICogZ19zaWduYWxfY29ubmVjdCAoZXh0ZW5z
aW9uLCAiaW5pdGlhbGl6ZS13ZWItZXh0ZW5zaW9ucyIsCisgKiAgICAgICAgICAgICAgICAgICBH
X0NBTExCQUNLICh3ZWJfZXh0ZW5zaW9uX2luaXRpYWxpemVfY2FsbGJhY2spLAorICogICAgICAg
ICAgICAgICAgICAgTlVMTCk7CisgKgorICogYGBgCiAgKi8KIAorCiBlbnVtIHsKICAgICBQQUdF
X0NSRUFURUQsCiAgICAgVVNFUl9NRVNTQUdFX1JFQ0VJVkVELAorICAgIElOSVRJQUxJWkVfV0VC
X0VYVEVOU0lPTlMsCiAKICAgICBMQVNUX1NJR05BTAogfTsKQEAgLTE3Miw2ICsyMTAsMjcgQEAg
c3RhdGljIHZvaWQgd2Via2l0X3dlYl9leHRlbnNpb25fY2xhc3NfaW5pdChXZWJLaXRXZWJFeHRl
bnNpb25DbGFzcyoga2xhc3MpCiAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9nZW5lcmljLAog
ICAgICAgICBHX1RZUEVfTk9ORSwgMSwKICAgICAgICAgV0VCS0lUX1RZUEVfVVNFUl9NRVNTQUdF
KTsKKworICAgIC8qKgorICAgICAqIFdlYktpdFdlYkV4dGVuc2lvbjo6aW5pdGlhbGl6ZS13ZWIt
ZXh0ZW5zaW9uczoKKyAgICAgKiBAZXh0ZW5zaW9uOiB0aGUgI1dlYktpdFdlYkV4dGVuc2lvbiBv
biB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKKyAgICAgKiBAdXNlckRhdGE6IHRoZSAjR1Zh
cmlhbnQgb2JqZWN0IHJlY2VpdmVkCisgICAgICoKKyAgICAgKiBUaGlzIHNpZ25hbCBpcyBlbWl0
dGVkIHdoZW4gYSBtYWluIHJlc291cmNlIGxvYWQgaXMgaW5pdGlhdGVkLiBUaGUKKyAgICAgKiAj
R1ZhcmlhbnQgdXNlciBkYXRhIGNvbWVzIGZyb20gYSB3ZWJraXRfd2ViX3ZpZXdfc2V0X3dlYl9l
eHRlbnNpb25zX2luaXRpYWxpemF0aW9uX3VzZXJfZGF0YSgpCisgICAgICogY2FsbGVkIG92ZXIg
dGhlICNXZWJLaXRXZWJWaWV3IGNvcnJlc3BvbmRpbmcgdG8gQGV4dGVuc2lvbi4KKyAgICAgKgor
ICAgICAqIFNpbmNlOiAyLjM4CisgICAgICovCisgICAgc2lnbmFsc1tJTklUSUFMSVpFX1dFQl9F
WFRFTlNJT05TXSA9IGdfc2lnbmFsX25ldygKKyAgICAgICAgImluaXRpYWxpemUtd2ViLWV4dGVu
c2lvbnMiLAorICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhrbGFzcyksCisgICAgICAgIEdfU0lH
TkFMX1JVTl9MQVNULAorICAgICAgICAwLAorICAgICAgICBudWxscHRyLCBudWxscHRyLAorICAg
ICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVkFSSUFOVCwKKyAgICAgICAgR19UWVBFX05P
TkUsIDEsCisgICAgICAgIEdfVFlQRV9WQVJJQU5UIHwgR19TSUdOQUxfVFlQRV9TVEFUSUNfU0NP
UEUpOwogfQogCiBjbGFzcyBXZWJFeHRlbnNpb25JbmplY3RlZEJ1bmRsZUNsaWVudCBmaW5hbCA6
IHB1YmxpYyBBUEk6OkluamVjdGVkQnVuZGxlOjpDbGllbnQgewpAQCAtMjIyLDYgKzI4MSwyOSBA
QCB2b2lkIHdlYmtpdFdlYkV4dGVuc2lvbkRpZFJlY2VpdmVVc2VyTWVzc2FnZShXZWJLaXRXZWJF
eHRlbnNpb24qIGV4dGVuc2lvbiwgVXNlcgogICAgIGdfc2lnbmFsX2VtaXQoZXh0ZW5zaW9uLCBz
aWduYWxzW1VTRVJfTUVTU0FHRV9SRUNFSVZFRF0sIDAsIHVzZXJNZXNzYWdlLmdldCgpKTsKIH0K
IAorc3RhdGljIHZvaWQgcGFyc2VVc2VyRGF0YShBUEk6Ok9iamVjdCogdXNlckRhdGEsIEdSZWZQ
dHI8R1ZhcmlhbnQ+JiBpbml0aWFsaXphdGlvblVzZXJEYXRhKQoreworICAgIEFTU0VSVCh1c2Vy
RGF0YS0+dHlwZSgpID09IEFQSTo6T2JqZWN0OjpUeXBlOjpTdHJpbmcpOworCisgICAgQ1N0cmlu
ZyB1c2VyRGF0YVN0cmluZyA9IHN0YXRpY19jYXN0PEFQSTo6U3RyaW5nKj4odXNlckRhdGEpLT5z
dHJpbmcoKS51dGY4KCk7CisgICAgR1JlZlB0cjxHVmFyaWFudD4gdmFyaWFudCA9IGdfdmFyaWFu
dF9wYXJzZShudWxscHRyLCB1c2VyRGF0YVN0cmluZy5kYXRhKCksCisgICAgICAgIHVzZXJEYXRh
U3RyaW5nLmRhdGEoKSArIHVzZXJEYXRhU3RyaW5nLmxlbmd0aCgpLCBudWxscHRyLCBudWxscHRy
KTsKKworICAgIEFTU0VSVCh2YXJpYW50KTsKKworICAgIEdWYXJpYW50KiBkYXRhID0gbnVsbHB0
cjsKKyAgICBnX3ZhcmlhbnRfZ2V0KHZhcmlhbnQuZ2V0KCksICIobXYpIiwgJmRhdGEpOworCisg
ICAgaW5pdGlhbGl6YXRpb25Vc2VyRGF0YSA9IGFkb3B0R1JlZihkYXRhKTsKK30KKwordm9pZCB3
ZWJraXRXZWJFeHRlbnNpb25EaWRJbml0aWFsaXplV2ViRXh0ZW5zaW9uKFdlYktpdFdlYkV4dGVu
c2lvbiogZXh0ZW5zaW9uLCBBUEk6Ok9iamVjdCogdXNlckRhdGFPYmplY3QpCit7CisgICAgR1Jl
ZlB0cjxHVmFyaWFudD4gdXNlckRhdGE7CisgICAgcGFyc2VVc2VyRGF0YSh1c2VyRGF0YU9iamVj
dCwgdXNlckRhdGEpOworICAgIGdfc2lnbmFsX2VtaXQoZXh0ZW5zaW9uLCBzaWduYWxzW0lOSVRJ
QUxJWkVfV0VCX0VYVEVOU0lPTlNdLCAwLCB1c2VyRGF0YS5nZXQoKSk7Cit9CisKIHZvaWQgd2Vi
a2l0V2ViRXh0ZW5zaW9uU2V0R2FyYmFnZUNvbGxlY3RPblBhZ2VEZXN0cm95KFdlYktpdFdlYkV4
dGVuc2lvbiogZXh0ZW5zaW9uKQogewogI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9X
ZWJLaXRXZWJFeHRlbnNpb25Qcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViRXh0ZW5zaW9uUHJpdmF0ZS5oCmluZGV4IGZk
NTEzYTAzMjZjZDdmNmVmM2I4ZTU0YzUxZGVlYWQwNDJhZDRjM2UuLjVjNzU4YTZmNzlmNDE4Y2U3
Mjc2M2ZjNTA0YjI2NzkwZjI1ZjJmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJFeHRlbnNpb25Qcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dl
YktpdFdlYkV4dGVuc2lvblByaXZhdGUuaApAQCAtMjYsNCArMjYsNSBAQAogCiBXZWJLaXRXZWJF
eHRlbnNpb24qIHdlYmtpdFdlYkV4dGVuc2lvbkNyZWF0ZShXZWJLaXQ6OkluamVjdGVkQnVuZGxl
Kik7CiB2b2lkIHdlYmtpdFdlYkV4dGVuc2lvbkRpZFJlY2VpdmVVc2VyTWVzc2FnZShXZWJLaXRX
ZWJFeHRlbnNpb24qLCBXZWJLaXQ6OlVzZXJNZXNzYWdlJiYpOwordm9pZCB3ZWJraXRXZWJFeHRl
bnNpb25EaWRJbml0aWFsaXplV2ViRXh0ZW5zaW9uKFdlYktpdFdlYkV4dGVuc2lvbiosIEFQSTo6
T2JqZWN0Kik7CiBXS19FWFBPUlQgdm9pZCB3ZWJraXRXZWJFeHRlbnNpb25TZXRHYXJiYWdlQ29s
bGVjdE9uUGFnZURlc3Ryb3koV2ViS2l0V2ViRXh0ZW5zaW9uKik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAppbmRleCBjYTA2NjQ0ZTk2MzQ5Mzk3NTliZjljMTY3ODA3MmUwYzlm
MDE5MzFjLi40MjFlYTk4YTkzZmU4YzI4MjdiZmUxYmY2MWVlZmQyMzdiYzUyYzE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTQwMSw2ICs0MDEsOSBAQCBwcml2YXRl
OgogICAgIFdlYlByb2Nlc3MoKTsKICAgICB+V2ViUHJvY2VzcygpOwogCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpCisgICAgdm9pZCBpbml0aWFsaXplV2ViRXh0ZW5zaW9ucyhj
b25zdCBVc2VyRGF0YSYpOworI2VuZGlmCiAgICAgdm9pZCBpbml0aWFsaXplV2ViUHJvY2VzcyhX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFs
aXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdm9pZCBz
ZXRXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVy
cyYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4KaW5kZXggODBhN2E0OGY0OWRkMjY3ZDE4MDhlODU5MjU4ZWM5ZDg5N2VmNWM1Yy4uY2FkYjEx
YWNiNjBmNDMxYjA3NDUwM2YzZGQxODdjZDQ2MzU0ZGQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTIxLDYgKzIxLDkgQEAKICMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBOb3RS
ZWZDb3VudGVkIHsKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKKyAgICBJbml0
aWFsaXplV2ViRXh0ZW5zaW9ucyhXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKTsKKyNlbmRpZgog
ICAgIEluaXRpYWxpemVXZWJQcm9jZXNzKHN0cnVjdCBXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMgcHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycykKICAgICBTZXRXZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycyhzdHJ1Y3QgV2ViS2l0OjpXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1l
dGVycyBwYXJhbWV0ZXJzKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Z2xpYi9XZWJQcm9jZXNzR0xpYi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9X
ZWJQcm9jZXNzR0xpYi5jcHAKaW5kZXggM2NkNmVhNWZiOGUyMzI0NjRhZjM4ZWRkMzJhZTk4MTc2
ODkyZDZmOC4uNTU2YmI2YWIwOTJhOTdlOWJlNGQwZWI2ZTYzMzBiOTZlOWJmMDE3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNwcApAQCAt
NzcsNiArNzcsMTIgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCit2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJFeHRlbnNpb25zKGNvbnN0IFVz
ZXJEYXRhJiB1c2VyRGF0YSkKK3sKKyAgICBpZiAoYXV0byogZXh0ZW5zaW9uID0gV2ViS2l0RXh0
ZW5zaW9uTWFuYWdlcjo6c2luZ2xldG9uKCkuZXh0ZW5zaW9uKCkpCisgICAgICAgIHdlYmtpdFdl
YkV4dGVuc2lvbkRpZEluaXRpYWxpemVXZWJFeHRlbnNpb24oZXh0ZW5zaW9uLCB0cmFuc2Zvcm1I
YW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7Cit9CisKIHZvaWQgV2Vi
UHJvY2Vzczo6c3RvcFJ1bkxvb3AoKQogewogICAgIC8vIFBhZ2VzIGFyZSBub3JtYWxseSBjbG9z
ZWQgYWZ0ZXIgQ2xvc2UgbWVzc2FnZSBpcyByZWNlaXZlZCBmcm9tIHRoZSBVSQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>