<?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>201642</bug_id>
          
          <creation_ts>2019-09-10 06:38:55 -0700</creation_ts>
          <short_desc>[GTK][WPE] Add WebKitWebView:page-id property</short_desc>
          <delta_ts>2019-10-03 01:24:23 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>201636</dependson>
          <blocked>200967</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1569518</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-09-10 06:38:55 -0700</bug_when>
    <thetext>The page ID of a WebKitWebView can now change, so we need a way to get notified when it changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569519</commentid>
    <comment_count>1</comment_count>
      <attachid>378459</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-09-10 06:43:32 -0700</bug_when>
    <thetext>Created attachment 378459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569560</commentid>
    <comment_count>2</comment_count>
      <attachid>378459</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-10 09:09:37 -0700</bug_when>
    <thetext>Comment on attachment 378459
Patch

I&apos;m assuming this allows you to fix the gtk applications that were broken by Chris&apos;s change.  This isn&apos;t so bad, but could we instead work towards not exposing identifiers at all?  They&apos;re an internal implementation detail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569864</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-09-11 00:54:46 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #2)
&gt; Comment on attachment 378459 [details]
&gt; Patch
&gt; 
&gt; I&apos;m assuming this allows you to fix the gtk applications that were broken by
&gt; Chris&apos;s change.

Exactly. because now the page ID can change. Unfortunately, apps will have to adapt to the new behavior.

&gt;  This isn&apos;t so bad, but could we instead work towards not
&gt; exposing identifiers at all?  They&apos;re an internal implementation detail.

It&apos;s too late for that, they are already part of our public stable API. But I&apos;m open to find a different solution instead of adding this property, and deprecate the existing APIs exposing IDs. We basically need a way to identify the web process attached to a web view to be able to start a communication channel with the injected bundle.

Whatever we decide to do, we need to do it as soon as possible to give applications time to adapt to it before the next stable release (in ~6 months)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570521</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-09-13 00:59:11 -0700</bug_when>
    <thetext>When we designed the WebKit2 API we decided not to expose any API to share user messages between the UI process and the injected bundle in the web process. I don&apos;t remember exactly why (I think we wanted to make sure user messages don&apos;t affect the internal IPC traffic), but I see Apple ports don&apos;t expose it either. We might reconsider it and expose it now (users can still use their own way). With API for that, users no longer need to worry about what process to talk too, webkit_web_view_send_message() and webkit_web_page_send_message() (or whatever they are called) will always do the right thing. We would need a message-received signal in both WebKitWebView and WebKitWebPage too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574385</commentid>
    <comment_count>5</comment_count>
      <attachid>379625</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-09-26 01:44:18 -0700</bug_when>
    <thetext>Created attachment 379625
Rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574386</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-09-26 01:44:55 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574835</commentid>
    <comment_count>7</comment_count>
      <attachid>379625</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-09-27 09:13:31 -0700</bug_when>
    <thetext>Comment on attachment 379625
Rebased patch

Exposing the messaging APIs sounds like a good idea to me, since using page IDs feels fragile now that we have PSON.

Still, removing page IDs completely from the API is not possible unless we totally give up on any pretense of backwards-compatibility and bump the API version. Deprecating these APIs and making them return, say, 0 would break too many apps. Having changing page IDs is risky enough as it is.

Anyway, hopefully we never have to do that. Even if we somebody have to, adding it as a property until then has no downsides. So r=me, except owner approval is required for PageClient.h and WebPageProxy.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574895</commentid>
    <comment_count>8</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2019-09-27 11:14:30 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #7)
&gt; Comment on attachment 379625 [details]
&gt; Rebased patch
&gt; 
&gt; Exposing the messaging APIs sounds like a good idea to me, since using page
&gt; IDs feels fragile now that we have PSON.
&gt; 
&gt; Still, removing page IDs completely from the API is not possible unless we
&gt; totally give up on any pretense of backwards-compatibility and bump the API
&gt; version. Deprecating these APIs and making them return, say, 0 would break
&gt; too many apps. Having changing page IDs is risky enough as it is.
&gt;
&gt; […]

I think for the WPE port we could afford an API bump for 2.28, provided
that it&apos;s limited to a few selected changes (like this one), and that
the rest of the API remains backwards compatible. For the GTK port…
well, as you point out it&apos;s definitely trickier and I would not push
for it until a more suitable moment. I have been hoping that at some
point we are able make an API for GTK4. True, we will have to maintain
the existing code paths working as long as GTK3 remains supported, but
at least we will have a path sunsetting usage of page IDs.

Anyway, that is just a bit of a braindump which deserves more planning
and discussion. If something is clear is that we cannot afford to break
GTK applications anytime soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575207</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-09-30 01:33:09 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #7)
&gt; Comment on attachment 379625 [details]
&gt; Rebased patch
&gt; 
&gt; Exposing the messaging APIs sounds like a good idea to me, since using page
&gt; IDs feels fragile now that we have PSON.
&gt;
&gt; Still, removing page IDs completely from the API is not possible unless we
&gt; totally give up on any pretense of backwards-compatibility and bump the API
&gt; version. Deprecating these APIs and making them return, say, 0 would break
&gt; too many apps. Having changing page IDs is risky enough as it is.
&gt; 
&gt; Anyway, hopefully we never have to do that. Even if we somebody have to,
&gt; adding it as a property until then has no downsides. So r=me, except owner
&gt; approval is required for PageClient.h and WebPageProxy.cpp.

Alex?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575898</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-10-02 00:56:57 -0700</bug_when>
    <thetext>Ping owners</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576032</commentid>
    <comment_count>11</comment_count>
      <attachid>379625</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-02 09:48:22 -0700</bug_when>
    <thetext>Comment on attachment 379625
Rebased patch

Cross-platform WK2 bits LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576329</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-10-03 01:24:23 -0700</bug_when>
    <thetext>Committed r250645: &lt;https://trac.webkit.org/changeset/250645&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378459</attachid>
            <date>2019-09-10 06:43:32 -0700</date>
            <delta_ts>2019-09-26 01:44:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-page-id-property.diff</filename>
            <type>text/plain</type>
            <size>15014</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYjRkM2IzYTgxODMuLjc5YTc4OGRlMGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM0IEBACisyMDE5LTA5LTEwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIEFkZCBXZWJLaXRXZWJWaWV3OnBhZ2UtaWQgcHJv
cGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
MTY0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
ZSBwYWdlIElEIG9mIGEgV2ViS2l0V2ViVmlldyBjYW4gbm93IGNoYW5nZSwgc28gd2UgbmVlZCBh
IHdheSB0byBnZXQgbm90aWZpZWQgd2hlbiBpdCBjaGFuZ2VzLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwOgorICAgICAgICAod2Via2l0V2ViVmlld0dl
dFByb3BlcnR5KTogQWRkIGdldHRlciBmb3IgcGFnZS1pZC4KKyAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19jbGFzc19pbml0KTogQWRkIHBhZ2UtaWQgcHJvcGVydHkKKyAgICAgICAgKHdlYmtpdFdl
YlZpZXdEaWRDaGFuZ2VQYWdlSUQpOiBFbWl0IG5vdGlmeTo6cGFnZS1pZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpkaWRDaGFuZ2VXZWJQYWdlSUQgY29uc3QpOiBDYWxsIHdlYmtpdFdlYlZpZXdE
aWRDaGFuZ2VQYWdlSUQoKS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50
SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2Nz
LnNnbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvQVBJVmlld0NsaWVudC5oOgorICAg
ICAgICAoQVBJOjpWaWV3Q2xpZW50OjpkaWRDaGFuZ2VQYWdlSUQpOiBBZGRlZCB2aXJ0dWFsIG1l
dGhvZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VXZWJQYWdlSUQgY29uc3Qp
OiBDYWxsIFdLV1BFOjpWaWV3OjpkaWRDaGFuZ2VQYWdlSUQoKS4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3Bl
L1dQRVZpZXcuY3BwOgorICAgICAgICAoV0tXUEU6OlZpZXc6OmRpZENoYW5nZVBhZ2VJRCk6IENh
bGwgQVBJOjpWaWV3Q2xpZW50OjpkaWRDaGFuZ2VQYWdlSUQoKS4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3dwZS9XUEVWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoK
KyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6ZGlkQ2hhbmdlV2ViUGFnZUlEIGNvbnN0KTog
QWRkZWQgdmlydHVhbCBtZXRob2QuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3dhcFRvV2ViUHJvY2Vzcyk6IENh
bGwgUGFnZUNsaWVudDo6ZGlkQ2hhbmdlV2ViUGFnZUlEKCkuCisKIDIwMTktMDktMDkgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBXZWJQcm9jZXNzIHBy
b2Nlc3NJZGVudGlmaWVyIHRvIGlkZW50aWZ5IElEQiBjb25uZWN0aW9ucyBiZXR3ZWVuIFdlYlBy
b2Nlc3MgYW5kIE5ldHdvcmtQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IDFlNWViZTczYjc0Li4yMjFiNWQzYmRi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vi
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vi
Vmlldy5jcHAKQEAgLTE5MCw3ICsxOTAsOCBAQCBlbnVtIHsKICAgICBQUk9QX0lTX1BMQVlJTkdf
QVVESU8sCiAgICAgUFJPUF9JU19FUEhFTUVSQUwsCiAgICAgUFJPUF9JU19DT05UUk9MTEVEX0JZ
X0FVVE9NQVRJT04sCi0gICAgUFJPUF9FRElUQUJMRQorICAgIFBST1BfRURJVEFCTEUsCisgICAg
UFJPUF9QQUdFX0lECiB9OwogCiB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIEdSZWZQdHI8V2Vi
S2l0V2ViUmVzb3VyY2U+ID4gTG9hZGluZ1Jlc291cmNlc01hcDsKQEAgLTQzOCw2ICs0MzksMTEg
QEAgcHJpdmF0ZToKICAgICAgICAgd2Via2l0V2ViVmlld1dpbGxTdGFydExvYWQobV93ZWJWaWV3
KTsKICAgICB9CiAKKyAgICB2b2lkIGRpZENoYW5nZVBhZ2VJRChXS1dQRTo6VmlldyYpIG92ZXJy
aWRlCisgICAgeworICAgICAgICB3ZWJraXRXZWJWaWV3RGlkQ2hhbmdlUGFnZUlEKG1fd2ViVmll
dyk7CisgICAgfQorCiAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwogfTsKICNlbmRpZgpA
QCAtODU2LDYgKzg2Miw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdHZXRQcm9wZXJ0eShH
T2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgR1ZhbHVlKiB2YWx1CiAgICAgY2FzZSBQUk9Q
X0VESVRBQkxFOgogICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfd2Vi
X3ZpZXdfaXNfZWRpdGFibGUod2ViVmlldykpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBS
T1BfUEFHRV9JRDoKKyAgICAgICAgZ192YWx1ZV9zZXRfdWludDY0KHZhbHVlLCB3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X3BhZ2VfaWQod2ViVmlldykpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0
OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9w
SWQsIHBhcmFtU3BlYyk7CiAgICAgfQpAQCAtMTE4Nyw2ICsxMTk2LDIzIEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0Ns
YXNzKQogICAgICAgICAgICAgRkFMU0UsCiAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdS
SVRFKSk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJWaWV3OnBhZ2UtaWQ6CisgICAgICoK
KyAgICAgKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgI1dlYktpdFdlYlBhZ2UgY29ycmVzcG9uZGlu
ZyB0byB0aGUgI1dlYktpdFdlYlZpZXcuCisgICAgICoKKyAgICAgKiBTaW5jZTogMi4yOAorICAg
ICAqLworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdPYmpl
Y3RDbGFzcywKKyAgICAgICAgUFJPUF9QQUdFX0lELAorICAgICAgICBnX3BhcmFtX3NwZWNfdWlu
dDY0KAorICAgICAgICAgICAgInBhZ2UtaWQiLAorICAgICAgICAgICAgXygiUGFnZSBJZGVudGlm
aWVyIiksCisgICAgICAgICAgICBfKCJUaGUgcGFnZSBpZGVudGlmaWVyLiIpLAorICAgICAgICAg
ICAgMCwgR19NQVhVSU5UNjQsIDAsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUp
KTsKKwogICAgIC8qKgogICAgICAqIFdlYktpdFdlYlZpZXc6OmxvYWQtY2hhbmdlZDoKICAgICAg
KiBAd2ViX3ZpZXc6IHRoZSAjV2ViS2l0V2ViVmlldyBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVt
aXR0ZWQKQEAgLTI1NTAsNiArMjU3NiwxMSBAQCBib29sIHdlYmtpdFdlYlZpZXdTaG93T3B0aW9u
TWVudShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBJbnRSZWN0JiByZWN0LCBXZQogfQog
I2VuZGlmCiAKK3ZvaWQgd2Via2l0V2ViVmlld0RpZENoYW5nZVBhZ2VJRChXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3KQoreworICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVCh3ZWJWaWV3KSwgInBh
Z2UtaWQiKTsKK30KKwogI2lmIFBMQVRGT1JNKFdQRSkKIC8qKgogICogd2Via2l0X3dlYl92aWV3
X2dldF9iYWNrZW5kOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0V2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFdlYlZpZXdQcml2YXRlLmgKaW5kZXggZTA4NjY4M2FjYzguLjhjNDUwNTVjZTc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJW
aWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYlZpZXdQcml2YXRlLmgKQEAgLTEwMCwzICsxMDAsNCBAQCBib29sIHdlYmtpdFdlYlZpZXdT
aG93T3B0aW9uTWVudShXZWJLaXRXZWJWaWV3KiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFdl
YktpdAogZ2Jvb2xlYW4gd2Via2l0V2ViVmlld0F1dGhlbnRpY2F0ZShXZWJLaXRXZWJWaWV3Kiwg
V2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0Kik7CiBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3U2Ny
aXB0RGlhbG9nKFdlYktpdFdlYlZpZXcqLCBXZWJLaXRTY3JpcHREaWFsb2cqKTsKIGdib29sZWFu
IHdlYmtpdFdlYlZpZXdSdW5GaWxlQ2hvb3NlcihXZWJLaXRXZWJWaWV3KiwgV2ViS2l0RmlsZUNo
b29zZXJSZXF1ZXN0Kik7Cit2b2lkIHdlYmtpdFdlYlZpZXdEaWRDaGFuZ2VQYWdlSUQoV2ViS2l0
V2ViVmlldyopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9Q
YWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VD
bGllbnRJbXBsLmNwcAppbmRleCAwNmIzYjgzNjA2NS4uNTVhNzE5Mjc0MTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCkBAIC01
NzksNCArNTc5LDEwIEBAIElQQzo6QXR0YWNobWVudCBQYWdlQ2xpZW50SW1wbDo6aG9zdEZpbGVE
ZXNjcmlwdG9yKCkKIH0KICNlbmRpZgogCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VX
ZWJQYWdlSUQoKSBjb25zdAoreworICAgIGlmIChXRUJLSVRfSVNfV0VCX1ZJRVcobV92aWV3V2lk
Z2V0KSkKKyAgICAgICAgd2Via2l0V2ViVmlld0RpZENoYW5nZVBhZ2VJRChXRUJLSVRfV0VCX1ZJ
RVcobV92aWV3V2lkZ2V0KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IDNjNmM1
MTU5NTVlLi5kN2M5MDRhNTEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvUGFnZUNsaWVudEltcGwuaApAQCAtMTcyLDYgKzE3Miw4IEBAIHByaXZhdGU6CiAgICAg
SVBDOjpBdHRhY2htZW50IGhvc3RGaWxlRGVzY3JpcHRvcigpIG92ZXJyaWRlOwogI2VuZGlmCiAK
KyAgICB2b2lkIGRpZENoYW5nZVdlYlBhZ2VJRCgpIGNvbnN0IG92ZXJyaWRlOworCiAgICAgLy8g
TWVtYmVycyBvZiBQYWdlQ2xpZW50SW1wbCBjbGFzcwogICAgIEd0a1dpZGdldCogbV92aWV3V2lk
Z2V0OwogICAgIERlZmF1bHRVbmRvQ29udHJvbGxlciBtX3VuZG9Db250cm9sbGVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9j
cy5zZ21sIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGst
ZG9jcy5zZ21sCmluZGV4IDlkM2EyYmQ0NDhhLi5jNDUzMTFkZGZiZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Mu
c2dtbApAQCAtMTU1LDUgKzE1NSwxMCBAQAogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hcGkt
aW5kZXgtMi4yNi54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6aW5jbHVkZT4KICAgPC9pbmRleD4K
IAorICA8aW5kZXggaWQ9ImFwaS1pbmRleC0yLTI4IiByb2xlPSIyLjI4Ij4KKyAgICA8dGl0bGU+
SW5kZXggb2YgbmV3IHN5bWJvbHMgaW4gMi4yODwvdGl0bGU+CisgICAgPHhpOmluY2x1ZGUgaHJl
Zj0ieG1sL2FwaS1pbmRleC0yLjI4LnhtbCI+PHhpOmZhbGxiYWNrIC8+PC94aTppbmNsdWRlPgor
ICA8L2luZGV4PgorCiAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hbm5vdGF0aW9uLWdsb3NzYXJ5
LnhtbCI+PHhpOmZhbGxiYWNrIC8+PC94aTppbmNsdWRlPgogPC9ib29rPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9BUElWaWV3Q2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL0FQSVZpZXdDbGllbnQuaAppbmRleCA2NGNhMmZjYjVh
OC4uMDU4OWJiMTM4NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvQVBJVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
QVBJVmlld0NsaWVudC5oCkBAIC00NSw2ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZnJhbWVEaXNwbGF5ZWQoV0tXUEU6OlZpZXcmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgaGFu
ZGxlRG93bmxvYWRSZXF1ZXN0KFdLV1BFOjpWaWV3JiwgV2ViS2l0OjpEb3dubG9hZFByb3h5Jikg
eyB9CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTdGFydExvYWQoV0tXUEU6OlZpZXcmKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlUGFnZUlEKFdLV1BFOjpWaWV3JikgeyB9CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggZTIwOGE1YzU1ZDcuLmM4YjRlNzlkMTc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNw
cApAQCAtNDIwLDQgKzQyMCw5IEBAIEF0a09iamVjdCogUGFnZUNsaWVudEltcGw6OmFjY2Vzc2li
bGUoKQogfQogI2VuZGlmCiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENoYW5nZVdlYlBhZ2VJ
RCgpIGNvbnN0Cit7CisgICAgbV92aWV3LmRpZENoYW5nZVBhZ2VJRCgpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93
cGUvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFn
ZUNsaWVudEltcGwuaAppbmRleCAxNjgyMDM3NzMxNS4uODdiN2JiOTIyMzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTE2MCw2
ICsxNjAsOCBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERp
cmVjdGlvbiB1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkgb3ZlcnJpZGU7CiAKKyAgICB2
b2lkIGRpZENoYW5nZVdlYlBhZ2VJRCgpIGNvbnN0IG92ZXJyaWRlOworCiAgICAgV0tXUEU6OlZp
ZXcmIG1fdmlldzsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxHZXN0dXJlQ29udHJvbGxl
cj4gbV9zY3JvbGxHZXN0dXJlQ29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1dQRVZpZXcuY3BwCmluZGV4IDEyZTMyZmFkNDAwLi5iZjY1NmI4MzU1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwCkBAIC0yMDQsNiArMjA0
LDExIEBAIHZvaWQgVmlldzo6d2lsbFN0YXJ0TG9hZCgpCiAgICAgbV9jbGllbnQtPndpbGxTdGFy
dExvYWQoKnRoaXMpOwogfQogCit2b2lkIFZpZXc6OmRpZENoYW5nZVBhZ2VJRCgpCit7CisgICAg
bV9jbGllbnQtPmRpZENoYW5nZVBhZ2VJRCgqdGhpcyk7Cit9CisKIHZvaWQgVmlldzo6c2V0U2l6
ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQogewogICAgIG1fc2l6ZSA9IHNpemU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5oCmluZGV4IDI0NDU4NjE3NDI2
Li45YmM2YjlmMTlhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9XUEVWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3
LmgKQEAgLTY3LDYgKzY3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZnJhbWVEaXNwbGF5ZWQoKTsK
ICAgICB2b2lkIGhhbmRsZURvd25sb2FkUmVxdWVzdChXZWJLaXQ6OkRvd25sb2FkUHJveHkmKTsK
ICAgICB2b2lkIHdpbGxTdGFydExvYWQoKTsKKyAgICB2b2lkIGRpZENoYW5nZVBhZ2VJRCgpOwog
CiAgICAgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UoKSB7IHJldHVybiAqbV9wYWdlUHJveHk7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IGU4MjdiYjQyNTEzLi43
N2FkOWQ2ZWYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtNTEwLDYg
KzUxMCw4IEBAIHB1YmxpYzoKICNpZiBVU0UoV1BFX1JFTkRFUkVSKQogICAgIHZpcnR1YWwgSVBD
OjpBdHRhY2htZW50IGhvc3RGaWxlRGVzY3JpcHRvcigpID0gMDsKICNlbmRpZgorCisgICAgdmly
dHVhbCB2b2lkIGRpZENoYW5nZVdlYlBhZ2VJRCgpIGNvbnN0IHsgfQogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCBmYTc1ODgxYmU2ZC4uMGFjYjc2ODNiMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtODA0LDYgKzgwNCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpzd2Fw
VG9XZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZp
CiAKICAgICBtX3Byb2Nlc3MgPSBXVEZNb3ZlKHByb2Nlc3MpOwogICAgIG1fd2ViUGFnZUlEID0g
d2ViUGFnZUlEOworICAgIHBhZ2VDbGllbnQoKS5kaWRDaGFuZ2VXZWJQYWdlSUQoKTsKICAgICBt
X3dlYnNpdGVEYXRhU3RvcmUgPSBtX3Byb2Nlc3MtPndlYnNpdGVEYXRhU3RvcmUoKTsKIAogICAg
IGlmIChtX2xvZ2dlcikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCA5Mzc0NGQzMzlkYy4uNDZhZTdhMjNkODYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxOS0wOS0x
MCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0dUS11bV1BFXSBBZGQgV2ViS2l0V2ViVmlldzpwYWdlLWlkIHByb3BlcnR5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE2NDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0IGNhc2UgdG8g
Y2hlY2sgdGhlIG5ldyBwcm9wZXJ0eS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHA6CisgICAgICAgIChjaGVja1RpdGxlKToK
KyAgICAgICAgKHRlc3RXZWJFeHRlbnNpb25HZXRUaXRsZSk6CisgICAgICAgICh3ZWJWaWV3UGFn
ZUlEQ2hhbmdlZCk6CisgICAgICAgICh0ZXN0V2ViRXh0ZW5zaW9uUGFnZUlEKToKKyAgICAgICAg
KGJlZm9yZUFsbCk6CisKIDIwMTktMDktMTAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gU3RvcCB1c2luZyB0aGUgc2Vzc2lv
biBidXMgaW4gdGhlIHVuaXQgdGVzdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCmluZGV4IDdmMTY4MWEz
ODgzLi5hYzJmOTkxMjYyMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RXZWJFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCkBAIC0zMCwxNCArMzAsMTAg
QEAgc3RhdGljIEdVbmlxdWVQdHI8Y2hhcj4gc2NyaXB0RGlhbG9nUmVzdWx0OwogCiAjZGVmaW5l
IEZPUk1fU1VCTUlTU0lPTl9URVNUX0lEICJmb3JtLXN1Ym1pc3Npb24tdGVzdC1pZCIKIAotc3Rh
dGljIHZvaWQgdGVzdFdlYkV4dGVuc2lvbkdldFRpdGxlKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29u
c3Rwb2ludGVyKQorc3RhdGljIHZvaWQgY2hlY2tUaXRsZShXZWJWaWV3VGVzdCogdGVzdCwgR0RC
dXNQcm94eSogcHJveHksIGNvbnN0IGNoYXIqIGV4cGVjdGVkVGl0bGUpCiB7Ci0gICAgdGVzdC0+
bG9hZEh0bWwoIjxodG1sPjxoZWFkPjx0aXRsZT5XZWJLaXRHVEsgV2ViIEV4dGVuc2lvbnMgVGVz
dDwvdGl0bGU+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+IiwgImh0dHA6Ly9iYXIuY29tIik7
Ci0gICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7Ci0KLSAgICBhdXRvIHByb3h5ID0g
dGVzdC0+ZXh0ZW5zaW9uUHJveHkoKTsKICAgICBHUmVmUHRyPEdWYXJpYW50PiByZXN1bHQgPSBh
ZG9wdEdSZWYoZ19kYnVzX3Byb3h5X2NhbGxfc3luYygKLSAgICAgICAgcHJveHkuZ2V0KCksCisg
ICAgICAgIHByb3h5LAogICAgICAgICAiR2V0VGl0bGUiLAogICAgICAgICBnX3ZhcmlhbnRfbmV3
KCIodCkiLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2VfaWQodGVzdC0+bV93ZWJWaWV3KSksCiAg
ICAgICAgIEdfREJVU19DQUxMX0ZMQUdTX05PTkUsCkBAIC00Niw3ICs0MiwxNiBAQCBzdGF0aWMg
dm9pZCB0ZXN0V2ViRXh0ZW5zaW9uR2V0VGl0bGUoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBv
aW50ZXIpCiAKICAgICBjb25zdCBjaGFyKiB0aXRsZTsKICAgICBnX3ZhcmlhbnRfZ2V0KHJlc3Vs
dC5nZXQoKSwgIigmcykiLCAmdGl0bGUpOwotICAgIGdfYXNzZXJ0X2NtcHN0cih0aXRsZSwgPT0s
ICJXZWJLaXRHVEsgV2ViIEV4dGVuc2lvbnMgVGVzdCIpOworICAgIGdfYXNzZXJ0X2NtcHN0cih0
aXRsZSwgPT0sIGV4cGVjdGVkVGl0bGUpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0V2ViRXh0ZW5z
aW9uR2V0VGl0bGUoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgdGVz
dC0+bG9hZEh0bWwoIjxodG1sPjxoZWFkPjx0aXRsZT5XZWJLaXRHVEsgV2ViIEV4dGVuc2lvbnMg
VGVzdDwvdGl0bGU+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+IiwgImh0dHA6Ly9iYXIuY29t
Iik7CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisKKyAgICBhdXRvIHByb3h5
ID0gdGVzdC0+ZXh0ZW5zaW9uUHJveHkoKTsKKyAgICBjaGVja1RpdGxlKHRlc3QsIHByb3h5Lmdl
dCgpLCAiV2ViS2l0R1RLIFdlYiBFeHRlbnNpb25zIFRlc3QiKTsKIH0KIAogI2lmIFBMQVRGT1JN
KEdUSykKQEAgLTQ0Miw2ICs0NDcsNDkgQEAgc3RhdGljIHZvaWQgdGVzdFdlYkV4dGVuc2lvbkZv
cm1TdWJtaXNzaW9uU3RlcHMoRm9ybVN1Ym1pc3Npb25UZXN0KiB0ZXN0LCBnY29uc3QKICAgICB0
ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKIH0KIAorc3RhdGljIHZvaWQgd2ViVmlld1Bh
Z2VJRENoYW5nZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR1BhcmFtU3BlYyosIGJvb2wqIHBh
Z2VJRENoYW5nZWRFbWl0dGVkKQoreworICAgICpwYWdlSURDaGFuZ2VkRW1pdHRlZCA9IHRydWU7
CisgICAgZ19hc3NlcnRfbm9ubnVsbChUZXN0OjpzX2RidXNDb25uZWN0aW9uUGFnZU1hcC5nZXQo
d2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKHdlYlZpZXcpKSk7Cit9CisKK3N0YXRpYyB2b2lk
IHRlc3RXZWJFeHRlbnNpb25QYWdlSUQoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIp
Cit7CisgICAgYXV0byBwYWdlSUQgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2VfaWQodGVzdC0+
bV93ZWJWaWV3KTsKKyAgICBnX2Fzc2VydF9jbXB1aW50KHBhZ2VJRCwgPj0sIDEpOworCisgICAg
Ym9vbCBwYWdlSURDaGFuZ2VkRW1pdHRlZCA9IGZhbHNlOworICAgIGdfc2lnbmFsX2Nvbm5lY3Qo
dGVzdC0+bV93ZWJWaWV3LCAibm90aWZ5OjpwYWdlLWlkIiwgR19DQUxMQkFDSyh3ZWJWaWV3UGFn
ZUlEQ2hhbmdlZCksICZwYWdlSURDaGFuZ2VkRW1pdHRlZCk7CisKKyAgICB0ZXN0LT5sb2FkSHRt
bCgiPGh0bWw+PGhlYWQ+PHRpdGxlPlRpdGxlMTwvdGl0bGU+PC9oZWFkPjxib2R5PjwvYm9keT48
L2h0bWw+IiwgImh0dHA6Ly9mb28uY29tIik7CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlz
aGVkKCk7CisgICAgZ19hc3NlcnRfZmFsc2UocGFnZUlEQ2hhbmdlZEVtaXR0ZWQpOworICAgIGdf
YXNzZXJ0X2NtcHVpbnQocGFnZUlELCA9PSwgd2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKHRl
c3QtPm1fd2ViVmlldykpOworICAgIGF1dG8gcHJveHkgPSB0ZXN0LT5leHRlbnNpb25Qcm94eSgp
OworICAgIGNoZWNrVGl0bGUodGVzdCwgcHJveHkuZ2V0KCksICJUaXRsZTEiKTsKKworICAgIHRl
c3QtPmxvYWRIdG1sKCI8aHRtbD48aGVhZD48dGl0bGU+VGl0bGUyPC90aXRsZT48L2hlYWQ+PGJv
ZHk+PC9ib2R5PjwvaHRtbD4iLCAiaHR0cDovL2Zvby5jb20vYmFyIik7CisgICAgdGVzdC0+d2Fp
dFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnRfZmFsc2UocGFnZUlEQ2hhbmdlZEVt
aXR0ZWQpOworICAgIGdfYXNzZXJ0X2NtcHVpbnQocGFnZUlELCA9PSwgd2Via2l0X3dlYl92aWV3
X2dldF9wYWdlX2lkKHRlc3QtPm1fd2ViVmlldykpOworICAgIGNoZWNrVGl0bGUodGVzdCwgcHJv
eHkuZ2V0KCksICJUaXRsZTIiKTsKKworICAgIHRlc3QtPmxvYWRIdG1sKCI8aHRtbD48aGVhZD48
dGl0bGU+VGl0bGUzPC90aXRsZT48L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4iLCAiaHR0cDov
L2Jhci5jb20iKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKyAgICBnX2Fz
c2VydF90cnVlKHBhZ2VJRENoYW5nZWRFbWl0dGVkKTsKKyAgICBwYWdlSURDaGFuZ2VkRW1pdHRl
ZCA9IGZhbHNlOworICAgIGdfYXNzZXJ0X2NtcHVpbnQocGFnZUlELCA8LCB3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X3BhZ2VfaWQodGVzdC0+bV93ZWJWaWV3KSk7CisgICAgcGFnZUlEID0gd2Via2l0X3dl
Yl92aWV3X2dldF9wYWdlX2lkKHRlc3QtPm1fd2ViVmlldyk7CisgICAgcHJveHkgPSB0ZXN0LT5l
eHRlbnNpb25Qcm94eSgpOworICAgIGNoZWNrVGl0bGUodGVzdCwgcHJveHkuZ2V0KCksICJUaXRs
ZTMiKTsKKworICAgIHRlc3QtPmxvYWRIdG1sKCI8aHRtbD48aGVhZD48dGl0bGU+VGl0bGU0PC90
aXRsZT48L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4iLCAiaHR0cDovL2Jhci5jb20vZm9vIik7
CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnRfZmFsc2Uo
cGFnZUlEQ2hhbmdlZEVtaXR0ZWQpOworICAgIGdfYXNzZXJ0X2NtcHVpbnQocGFnZUlELCA9PSwg
d2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKHRlc3QtPm1fd2ViVmlldykpOworICAgIGNoZWNr
VGl0bGUodGVzdCwgcHJveHkuZ2V0KCksICJUaXRsZTQiKTsKK30KKwogdm9pZCBiZWZvcmVBbGwo
KQogewogICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYkV4dGVuc2lvbiIsICJkb20tZG9j
dW1lbnQtdGl0bGUiLCB0ZXN0V2ViRXh0ZW5zaW9uR2V0VGl0bGUpOwpAQCAtNDU3LDYgKzUwNSw3
IEBAIHZvaWQgYmVmb3JlQWxsKCkKICNlbmRpZgogICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktp
dFdlYkV4dGVuc2lvbiIsICJmb3JtLWNvbnRyb2xzLWFzc29jaWF0ZWQtc2lnbmFsIiwgdGVzdFdl
YkV4dGVuc2lvbkZvcm1Db250cm9sc0Fzc29jaWF0ZWQpOwogICAgIEZvcm1TdWJtaXNzaW9uVGVz
dDo6YWRkKCJXZWJLaXRXZWJFeHRlbnNpb24iLCAiZm9ybS1zdWJtaXNzaW9uLXN0ZXBzIiwgdGVz
dFdlYkV4dGVuc2lvbkZvcm1TdWJtaXNzaW9uU3RlcHMpOworICAgIFdlYlZpZXdUZXN0OjphZGQo
IldlYktpdFdlYkV4dGVuc2lvbiIsICJwYWdlLWlkIiwgdGVzdFdlYkV4dGVuc2lvblBhZ2VJRCk7
CiB9CiAKIHZvaWQgYWZ0ZXJBbGwoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379625</attachid>
            <date>2019-09-26 01:44:18 -0700</date>
            <delta_ts>2019-09-27 09:13:31 -0700</delta_ts>
            <desc>Rebased patch</desc>
            <filename>wk2-page-id.diff</filename>
            <type>text/plain</type>
            <size>15140</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggODY1ZWJjZWI4MGEuLjMwYzBjNGZjMzQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM0IEBACisyMDE5LTA5LTI2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIEFkZCBXZWJLaXRXZWJWaWV3OnBhZ2UtaWQgcHJv
cGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
MTY0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
ZSBwYWdlIElEIG9mIGEgV2ViS2l0V2ViVmlldyBjYW4gbm93IGNoYW5nZSwgc28gd2UgbmVlZCBh
IHdheSB0byBnZXQgbm90aWZpZWQgd2hlbiBpdCBjaGFuZ2VzLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwOgorICAgICAgICAod2Via2l0V2ViVmlld0dl
dFByb3BlcnR5KTogQWRkIGdldHRlciBmb3IgcGFnZS1pZC4KKyAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19jbGFzc19pbml0KTogQWRkIHBhZ2UtaWQgcHJvcGVydHkKKyAgICAgICAgKHdlYmtpdFdl
YlZpZXdEaWRDaGFuZ2VQYWdlSUQpOiBFbWl0IG5vdGlmeTo6cGFnZS1pZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpkaWRDaGFuZ2VXZWJQYWdlSUQgY29uc3QpOiBDYWxsIHdlYmtpdFdlYlZpZXdE
aWRDaGFuZ2VQYWdlSUQoKS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50
SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2Nz
LnNnbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvQVBJVmlld0NsaWVudC5oOgorICAg
ICAgICAoQVBJOjpWaWV3Q2xpZW50OjpkaWRDaGFuZ2VQYWdlSUQpOiBBZGRlZCB2aXJ0dWFsIG1l
dGhvZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VXZWJQYWdlSUQgY29uc3Qp
OiBDYWxsIFdLV1BFOjpWaWV3OjpkaWRDaGFuZ2VQYWdlSUQoKS4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3Bl
L1dQRVZpZXcuY3BwOgorICAgICAgICAoV0tXUEU6OlZpZXc6OmRpZENoYW5nZVBhZ2VJRCk6IENh
bGwgQVBJOjpWaWV3Q2xpZW50OjpkaWRDaGFuZ2VQYWdlSUQoKS4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3dwZS9XUEVWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoK
KyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6ZGlkQ2hhbmdlV2ViUGFnZUlEIGNvbnN0KTog
QWRkZWQgdmlydHVhbCBtZXRob2QuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3dhcFRvV2ViUHJvY2Vzcyk6IENh
bGwgUGFnZUNsaWVudDo6ZGlkQ2hhbmdlV2ViUGFnZUlEKCkuCisKIDIwMTktMDktMjUgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgcmVw
bGFjZW1lbnQgU1BJIG9uIF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGZvciBlbmFi
bGluZyBzcGVjdWxhdGl2ZSBjYWNoZSB2YWxpZGF0aW9uIGFuZCBJUEMtZnJlZSBzZXJ2ZXIgdHJ1
c3QgZXZhbHVhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJWaWV3LmNwcAppbmRleCAxZTVlYmU3M2I3NC4uMjIxYjVkM2JkYjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCkBA
IC0xOTAsNyArMTkwLDggQEAgZW51bSB7CiAgICAgUFJPUF9JU19QTEFZSU5HX0FVRElPLAogICAg
IFBST1BfSVNfRVBIRU1FUkFMLAogICAgIFBST1BfSVNfQ09OVFJPTExFRF9CWV9BVVRPTUFUSU9O
LAotICAgIFBST1BfRURJVEFCTEUKKyAgICBQUk9QX0VESVRBQkxFLAorICAgIFBST1BfUEFHRV9J
RAogfTsKIAogdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBHUmVmUHRyPFdlYktpdFdlYlJlc291
cmNlPiA+IExvYWRpbmdSZXNvdXJjZXNNYXA7CkBAIC00MzgsNiArNDM5LDExIEBAIHByaXZhdGU6
CiAgICAgICAgIHdlYmtpdFdlYlZpZXdXaWxsU3RhcnRMb2FkKG1fd2ViVmlldyk7CiAgICAgfQog
CisgICAgdm9pZCBkaWRDaGFuZ2VQYWdlSUQoV0tXUEU6OlZpZXcmKSBvdmVycmlkZQorICAgIHsK
KyAgICAgICAgd2Via2l0V2ViVmlld0RpZENoYW5nZVBhZ2VJRChtX3dlYlZpZXcpOworICAgIH0K
KwogICAgIFdlYktpdFdlYlZpZXcqIG1fd2ViVmlldzsKIH07CiAjZW5kaWYKQEAgLTg1Niw2ICs4
NjIsOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3R2V0UHJvcGVydHkoR09iamVjdCogb2Jq
ZWN0LCBndWludCBwcm9wSWQsIEdWYWx1ZSogdmFsdQogICAgIGNhc2UgUFJPUF9FRElUQUJMRToK
ICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2lzX2Vk
aXRhYmxlKHdlYlZpZXcpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX1BBR0VfSUQ6
CisgICAgICAgIGdfdmFsdWVfc2V0X3VpbnQ2NCh2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF9w
YWdlX2lkKHdlYlZpZXcpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
R19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJhbVNw
ZWMpOwogICAgIH0KQEAgLTExODcsNiArMTE5NiwyMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2Vi
X3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAg
ICAgICAgIEZBTFNFLAogICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOwogCisg
ICAgLyoqCisgICAgICogV2ViS2l0V2ViVmlldzpwYWdlLWlkOgorICAgICAqCisgICAgICogVGhl
IGlkZW50aWZpZXIgb2YgdGhlICNXZWJLaXRXZWJQYWdlIGNvcnJlc3BvbmRpbmcgdG8gdGhlICNX
ZWJLaXRXZWJWaWV3LgorICAgICAqCisgICAgICogU2luY2U6IDIuMjgKKyAgICAgKi8KKyAgICBn
X29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnT2JqZWN0Q2xhc3MsCisg
ICAgICAgIFBST1BfUEFHRV9JRCwKKyAgICAgICAgZ19wYXJhbV9zcGVjX3VpbnQ2NCgKKyAgICAg
ICAgICAgICJwYWdlLWlkIiwKKyAgICAgICAgICAgIF8oIlBhZ2UgSWRlbnRpZmllciIpLAorICAg
ICAgICAgICAgXygiVGhlIHBhZ2UgaWRlbnRpZmllci4iKSwKKyAgICAgICAgICAgIDAsIEdfTUFY
VUlOVDY0LCAwLAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKICAgICAv
KioKICAgICAgKiBXZWJLaXRXZWJWaWV3Ojpsb2FkLWNoYW5nZWQ6CiAgICAgICogQHdlYl92aWV3
OiB0aGUgI1dlYktpdFdlYlZpZXcgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCkBAIC0y
NTUwLDYgKzI1NzYsMTEgQEAgYm9vbCB3ZWJraXRXZWJWaWV3U2hvd09wdGlvbk1lbnUoV2ViS2l0
V2ViVmlldyogd2ViVmlldywgY29uc3QgSW50UmVjdCYgcmVjdCwgV2UKIH0KICNlbmRpZgogCit2
b2lkIHdlYmtpdFdlYlZpZXdEaWRDaGFuZ2VQYWdlSUQoV2ViS2l0V2ViVmlldyogd2ViVmlldykK
K3sKKyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViVmlldyksICJwYWdlLWlkIik7Cit9
CisKICNpZiBQTEFURk9STShXUEUpCiAvKioKICAqIHdlYmtpdF93ZWJfdmlld19nZXRfYmFja2Vu
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdl
YlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRX
ZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGUwODY2ODNhY2M4Li44YzQ1MDU1Y2U3OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3UHJp
dmF0ZS5oCkBAIC0xMDAsMyArMTAwLDQgQEAgYm9vbCB3ZWJraXRXZWJWaWV3U2hvd09wdGlvbk1l
bnUoV2ViS2l0V2ViVmlldyosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBXZWJLaXQKIGdib29s
ZWFuIHdlYmtpdFdlYlZpZXdBdXRoZW50aWNhdGUoV2ViS2l0V2ViVmlldyosIFdlYktpdEF1dGhl
bnRpY2F0aW9uUmVxdWVzdCopOwogZ2Jvb2xlYW4gd2Via2l0V2ViVmlld1NjcmlwdERpYWxvZyhX
ZWJLaXRXZWJWaWV3KiwgV2ViS2l0U2NyaXB0RGlhbG9nKik7CiBnYm9vbGVhbiB3ZWJraXRXZWJW
aWV3UnVuRmlsZUNob29zZXIoV2ViS2l0V2ViVmlldyosIFdlYktpdEZpbGVDaG9vc2VyUmVxdWVz
dCopOwordm9pZCB3ZWJraXRXZWJWaWV3RGlkQ2hhbmdlUGFnZUlEKFdlYktpdFdlYlZpZXcqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudElt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5j
cHAKaW5kZXggMDZiM2I4MzYwNjUuLjU1YTcxOTI3NDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtNTc5LDQgKzU3OSwx
MCBAQCBJUEM6OkF0dGFjaG1lbnQgUGFnZUNsaWVudEltcGw6Omhvc3RGaWxlRGVzY3JpcHRvcigp
CiB9CiAjZW5kaWYKIAordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlV2ViUGFnZUlEKCkg
Y29uc3QKK3sKKyAgICBpZiAoV0VCS0lUX0lTX1dFQl9WSUVXKG1fdmlld1dpZGdldCkpCisgICAg
ICAgIHdlYmtpdFdlYlZpZXdEaWRDaGFuZ2VQYWdlSUQoV0VCS0lUX1dFQl9WSUVXKG1fdmlld1dp
ZGdldCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaAppbmRleCAzYzZjNTE1OTU1ZS4uZDdj
OTA0YTUxMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFn
ZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VD
bGllbnRJbXBsLmgKQEAgLTE3Miw2ICsxNzIsOCBAQCBwcml2YXRlOgogICAgIElQQzo6QXR0YWNo
bWVudCBob3N0RmlsZURlc2NyaXB0b3IoKSBvdmVycmlkZTsKICNlbmRpZgogCisgICAgdm9pZCBk
aWRDaGFuZ2VXZWJQYWdlSUQoKSBjb25zdCBvdmVycmlkZTsKKwogICAgIC8vIE1lbWJlcnMgb2Yg
UGFnZUNsaWVudEltcGwgY2xhc3MKICAgICBHdGtXaWRnZXQqIG1fdmlld1dpZGdldDsKICAgICBE
ZWZhdWx0VW5kb0NvbnRyb2xsZXIgbV91bmRvQ29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbApp
bmRleCA5ZDNhMmJkNDQ4YS4uYzQ1MzExZGRmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKQEAgLTE1
NSw1ICsxNTUsMTAgQEAKICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYXBpLWluZGV4LTIuMjYu
eG1sIj48eGk6ZmFsbGJhY2sgLz48L3hpOmluY2x1ZGU+CiAgIDwvaW5kZXg+CiAKKyAgPGluZGV4
IGlkPSJhcGktaW5kZXgtMi0yOCIgcm9sZT0iMi4yOCI+CisgICAgPHRpdGxlPkluZGV4IG9mIG5l
dyBzeW1ib2xzIGluIDIuMjg8L3RpdGxlPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hcGkt
aW5kZXgtMi4yOC54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6aW5jbHVkZT4KKyAgPC9pbmRleD4K
KwogICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYW5ub3RhdGlvbi1nbG9zc2FyeS54bWwiPjx4aTpm
YWxsYmFjayAvPjwveGk6aW5jbHVkZT4KIDwvYm9vaz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvQVBJVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9BUElWaWV3Q2xpZW50LmgKaW5kZXggNjRjYTJmY2I1YTguLjA1ODliYjEz
ODViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL0FQSVZpZXdD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL0FQSVZpZXdDbGll
bnQuaApAQCAtNDUsNiArNDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGZyYW1lRGlz
cGxheWVkKFdLV1BFOjpWaWV3JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZURvd25sb2Fk
UmVxdWVzdChXS1dQRTo6VmlldyYsIFdlYktpdDo6RG93bmxvYWRQcm94eSYpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCB3aWxsU3RhcnRMb2FkKFdLV1BFOjpWaWV3JikgeyB9CisgICAgdmlydHVhbCB2
b2lkIGRpZENoYW5nZVBhZ2VJRChXS1dQRTo6VmlldyYpIHsgfQogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VD
bGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVu
dEltcGwuY3BwCmluZGV4IGUyMDhhNWM1NWQ3Li5jOGI0ZTc5ZDE3NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTQyMCw0
ICs0MjAsOSBAQCBBdGtPYmplY3QqIFBhZ2VDbGllbnRJbXBsOjphY2Nlc3NpYmxlKCkKIH0KICNl
bmRpZgogCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VXZWJQYWdlSUQoKSBjb25zdAor
eworICAgIG1fdmlldy5kaWRDaGFuZ2VQYWdlSUQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGll
bnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBs
LmgKaW5kZXggMTY4MjAzNzczMTUuLjg3YjdiYjkyMjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5oCkBAIC0xNjAsNiArMTYwLDggQEAg
cHJpdmF0ZToKIAogICAgIFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gdXNl
ckludGVyZmFjZUxheW91dERpcmVjdGlvbigpIG92ZXJyaWRlOwogCisgICAgdm9pZCBkaWRDaGFu
Z2VXZWJQYWdlSUQoKSBjb25zdCBvdmVycmlkZTsKKwogICAgIFdLV1BFOjpWaWV3JiBtX3ZpZXc7
CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXI+IG1fc2Nyb2xs
R2VzdHVyZUNvbnRyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1dQRVZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XUEVW
aWV3LmNwcAppbmRleCAxMmUzMmZhZDQwMC4uYmY2NTZiODM1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApAQCAtMjA0LDYgKzIwNCwxMSBAQCB2b2lk
IFZpZXc6OndpbGxTdGFydExvYWQoKQogICAgIG1fY2xpZW50LT53aWxsU3RhcnRMb2FkKCp0aGlz
KTsKIH0KIAordm9pZCBWaWV3OjpkaWRDaGFuZ2VQYWdlSUQoKQoreworICAgIG1fY2xpZW50LT5k
aWRDaGFuZ2VQYWdlSUQoKnRoaXMpOworfQorCiB2b2lkIFZpZXc6OnNldFNpemUoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgc2l6ZSkKIHsKICAgICBtX3NpemUgPSBzaXplOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaAppbmRleCAyNDQ1ODYxNzQyNi4uOWJjNmI5ZjE5
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5oCkBAIC02Nyw2
ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGZyYW1lRGlzcGxheWVkKCk7CiAgICAgdm9pZCBo
YW5kbGVEb3dubG9hZFJlcXVlc3QoV2ViS2l0OjpEb3dubG9hZFByb3h5Jik7CiAgICAgdm9pZCB3
aWxsU3RhcnRMb2FkKCk7CisgICAgdm9pZCBkaWRDaGFuZ2VQYWdlSUQoKTsKIAogICAgIFdlYktp
dDo6V2ViUGFnZVByb3h5JiBwYWdlKCkgeyByZXR1cm4gKm1fcGFnZVByb3h5OyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBlODI3YmI0MjUxMy4uNzdhZDlkNmVmMmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTUxMCw2ICs1MTAsOCBAQCBw
dWJsaWM6CiAjaWYgVVNFKFdQRV9SRU5ERVJFUikKICAgICB2aXJ0dWFsIElQQzo6QXR0YWNobWVu
dCBob3N0RmlsZURlc2NyaXB0b3IoKSA9IDA7CiAjZW5kaWYKKworICAgIHZpcnR1YWwgdm9pZCBk
aWRDaGFuZ2VXZWJQYWdlSUQoKSBjb25zdCB7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNjMwMzFjM2M4
YjMuLmIyNjkyZWNkMzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTgwNCw2ICs4MDQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c3dhcFRvV2ViUHJvY2Vz
cyhSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFBhZ2VJZGVudGlmaQogCiAgICAgbV9w
cm9jZXNzID0gV1RGTW92ZShwcm9jZXNzKTsKICAgICBtX3dlYlBhZ2VJRCA9IHdlYlBhZ2VJRDsK
KyAgICBwYWdlQ2xpZW50KCkuZGlkQ2hhbmdlV2ViUGFnZUlEKCk7CiAgICAgbV93ZWJzaXRlRGF0
YVN0b3JlID0gbV9wcm9jZXNzLT53ZWJzaXRlRGF0YVN0b3JlKCk7CiAKICAgICBpZiAobV9sb2dn
ZXIpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
MzIzNDg1NjQxMTYuLjdiNmJjZjBiOTkwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMDktMjYgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0g
QWRkIFdlYktpdFdlYlZpZXc6cGFnZS1pZCBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgdGVzdCBjYXNlIHRvIGNoZWNrIHRoZSBu
ZXcgcHJvcGVydHkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
VGVzdFdlYkV4dGVuc2lvbnMuY3BwOgorICAgICAgICAoY2hlY2tUaXRsZSk6CisgICAgICAgICh0
ZXN0V2ViRXh0ZW5zaW9uR2V0VGl0bGUpOgorICAgICAgICAod2ViVmlld1BhZ2VJRENoYW5nZWQp
OgorICAgICAgICAodGVzdFdlYkV4dGVuc2lvblBhZ2VJRCk6CisgICAgICAgIChiZWZvcmVBbGwp
OgorCiAyMDE5LTA5LTI1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQWRkIHJlcGxhY2VtZW50IFNQSSBvbiBfV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbiBmb3IgZW5hYmxpbmcgc3BlY3VsYXRpdmUgY2FjaGUgdmFsaWRhdGlvbiBh
bmQgSVBDLWZyZWUgc2VydmVyIHRydXN0IGV2YWx1YXRpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCmlu
ZGV4IDdmMTY4MWEzODgzLi5hYzJmOTkxMjYyMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCkBAIC0z
MCwxNCArMzAsMTAgQEAgc3RhdGljIEdVbmlxdWVQdHI8Y2hhcj4gc2NyaXB0RGlhbG9nUmVzdWx0
OwogCiAjZGVmaW5lIEZPUk1fU1VCTUlTU0lPTl9URVNUX0lEICJmb3JtLXN1Ym1pc3Npb24tdGVz
dC1pZCIKIAotc3RhdGljIHZvaWQgdGVzdFdlYkV4dGVuc2lvbkdldFRpdGxlKFdlYlZpZXdUZXN0
KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQorc3RhdGljIHZvaWQgY2hlY2tUaXRsZShXZWJWaWV3VGVz
dCogdGVzdCwgR0RCdXNQcm94eSogcHJveHksIGNvbnN0IGNoYXIqIGV4cGVjdGVkVGl0bGUpCiB7
Ci0gICAgdGVzdC0+bG9hZEh0bWwoIjxodG1sPjxoZWFkPjx0aXRsZT5XZWJLaXRHVEsgV2ViIEV4
dGVuc2lvbnMgVGVzdDwvdGl0bGU+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+IiwgImh0dHA6
Ly9iYXIuY29tIik7Ci0gICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7Ci0KLSAgICBh
dXRvIHByb3h5ID0gdGVzdC0+ZXh0ZW5zaW9uUHJveHkoKTsKICAgICBHUmVmUHRyPEdWYXJpYW50
PiByZXN1bHQgPSBhZG9wdEdSZWYoZ19kYnVzX3Byb3h5X2NhbGxfc3luYygKLSAgICAgICAgcHJv
eHkuZ2V0KCksCisgICAgICAgIHByb3h5LAogICAgICAgICAiR2V0VGl0bGUiLAogICAgICAgICBn
X3ZhcmlhbnRfbmV3KCIodCkiLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2VfaWQodGVzdC0+bV93
ZWJWaWV3KSksCiAgICAgICAgIEdfREJVU19DQUxMX0ZMQUdTX05PTkUsCkBAIC00Niw3ICs0Miwx
NiBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViRXh0ZW5zaW9uR2V0VGl0bGUoV2ViVmlld1Rlc3QqIHRl
c3QsIGdjb25zdHBvaW50ZXIpCiAKICAgICBjb25zdCBjaGFyKiB0aXRsZTsKICAgICBnX3Zhcmlh
bnRfZ2V0KHJlc3VsdC5nZXQoKSwgIigmcykiLCAmdGl0bGUpOwotICAgIGdfYXNzZXJ0X2NtcHN0
cih0aXRsZSwgPT0sICJXZWJLaXRHVEsgV2ViIEV4dGVuc2lvbnMgVGVzdCIpOworICAgIGdfYXNz
ZXJ0X2NtcHN0cih0aXRsZSwgPT0sIGV4cGVjdGVkVGl0bGUpOworfQorCitzdGF0aWMgdm9pZCB0
ZXN0V2ViRXh0ZW5zaW9uR2V0VGl0bGUoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIp
Cit7CisgICAgdGVzdC0+bG9hZEh0bWwoIjxodG1sPjxoZWFkPjx0aXRsZT5XZWJLaXRHVEsgV2Vi
IEV4dGVuc2lvbnMgVGVzdDwvdGl0bGU+PC9oZWFkPjxib2R5PjwvYm9keT48L2h0bWw+IiwgImh0
dHA6Ly9iYXIuY29tIik7CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisKKyAg
ICBhdXRvIHByb3h5ID0gdGVzdC0+ZXh0ZW5zaW9uUHJveHkoKTsKKyAgICBjaGVja1RpdGxlKHRl
c3QsIHByb3h5LmdldCgpLCAiV2ViS2l0R1RLIFdlYiBFeHRlbnNpb25zIFRlc3QiKTsKIH0KIAog
I2lmIFBMQVRGT1JNKEdUSykKQEAgLTQ0Miw2ICs0NDcsNDkgQEAgc3RhdGljIHZvaWQgdGVzdFdl
YkV4dGVuc2lvbkZvcm1TdWJtaXNzaW9uU3RlcHMoRm9ybVN1Ym1pc3Npb25UZXN0KiB0ZXN0LCBn
Y29uc3QKICAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKIH0KIAorc3RhdGljIHZv
aWQgd2ViVmlld1BhZ2VJRENoYW5nZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR1BhcmFtU3Bl
YyosIGJvb2wqIHBhZ2VJRENoYW5nZWRFbWl0dGVkKQoreworICAgICpwYWdlSURDaGFuZ2VkRW1p
dHRlZCA9IHRydWU7CisgICAgZ19hc3NlcnRfbm9ubnVsbChUZXN0OjpzX2RidXNDb25uZWN0aW9u
UGFnZU1hcC5nZXQod2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKHdlYlZpZXcpKSk7Cit9CisK
K3N0YXRpYyB2b2lkIHRlc3RXZWJFeHRlbnNpb25QYWdlSUQoV2ViVmlld1Rlc3QqIHRlc3QsIGdj
b25zdHBvaW50ZXIpCit7CisgICAgYXV0byBwYWdlSUQgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Bh
Z2VfaWQodGVzdC0+bV93ZWJWaWV3KTsKKyAgICBnX2Fzc2VydF9jbXB1aW50KHBhZ2VJRCwgPj0s
IDEpOworCisgICAgYm9vbCBwYWdlSURDaGFuZ2VkRW1pdHRlZCA9IGZhbHNlOworICAgIGdfc2ln
bmFsX2Nvbm5lY3QodGVzdC0+bV93ZWJWaWV3LCAibm90aWZ5OjpwYWdlLWlkIiwgR19DQUxMQkFD
Syh3ZWJWaWV3UGFnZUlEQ2hhbmdlZCksICZwYWdlSURDaGFuZ2VkRW1pdHRlZCk7CisKKyAgICB0
ZXN0LT5sb2FkSHRtbCgiPGh0bWw+PGhlYWQ+PHRpdGxlPlRpdGxlMTwvdGl0bGU+PC9oZWFkPjxi
b2R5PjwvYm9keT48L2h0bWw+IiwgImh0dHA6Ly9mb28uY29tIik7CisgICAgdGVzdC0+d2FpdFVu
dGlsTG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnRfZmFsc2UocGFnZUlEQ2hhbmdlZEVtaXR0
ZWQpOworICAgIGdfYXNzZXJ0X2NtcHVpbnQocGFnZUlELCA9PSwgd2Via2l0X3dlYl92aWV3X2dl
dF9wYWdlX2lkKHRlc3QtPm1fd2ViVmlldykpOworICAgIGF1dG8gcHJveHkgPSB0ZXN0LT5leHRl
bnNpb25Qcm94eSgpOworICAgIGNoZWNrVGl0bGUodGVzdCwgcHJveHkuZ2V0KCksICJUaXRsZTEi
KTsKKworICAgIHRlc3QtPmxvYWRIdG1sKCI8aHRtbD48aGVhZD48dGl0bGU+VGl0bGUyPC90aXRs
ZT48L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4iLCAiaHR0cDovL2Zvby5jb20vYmFyIik7Cisg
ICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnRfZmFsc2UocGFn
ZUlEQ2hhbmdlZEVtaXR0ZWQpOworICAgIGdfYXNzZXJ0X2NtcHVpbnQocGFnZUlELCA9PSwgd2Vi
a2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKHRlc3QtPm1fd2ViVmlldykpOworICAgIGNoZWNrVGl0
bGUodGVzdCwgcHJveHkuZ2V0KCksICJUaXRsZTIiKTsKKworICAgIHRlc3QtPmxvYWRIdG1sKCI8
aHRtbD48aGVhZD48dGl0bGU+VGl0bGUzPC90aXRsZT48L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRt
bD4iLCAiaHR0cDovL2Jhci5jb20iKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQo
KTsKKyAgICBnX2Fzc2VydF90cnVlKHBhZ2VJRENoYW5nZWRFbWl0dGVkKTsKKyAgICBwYWdlSURD
aGFuZ2VkRW1pdHRlZCA9IGZhbHNlOworICAgIGdfYXNzZXJ0X2NtcHVpbnQocGFnZUlELCA8LCB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2VfaWQodGVzdC0+bV93ZWJWaWV3KSk7CisgICAgcGFnZUlE
ID0gd2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKHRlc3QtPm1fd2ViVmlldyk7CisgICAgcHJv
eHkgPSB0ZXN0LT5leHRlbnNpb25Qcm94eSgpOworICAgIGNoZWNrVGl0bGUodGVzdCwgcHJveHku
Z2V0KCksICJUaXRsZTMiKTsKKworICAgIHRlc3QtPmxvYWRIdG1sKCI8aHRtbD48aGVhZD48dGl0
bGU+VGl0bGU0PC90aXRsZT48L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4iLCAiaHR0cDovL2Jh
ci5jb20vZm9vIik7CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgZ19h
c3NlcnRfZmFsc2UocGFnZUlEQ2hhbmdlZEVtaXR0ZWQpOworICAgIGdfYXNzZXJ0X2NtcHVpbnQo
cGFnZUlELCA9PSwgd2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKHRlc3QtPm1fd2ViVmlldykp
OworICAgIGNoZWNrVGl0bGUodGVzdCwgcHJveHkuZ2V0KCksICJUaXRsZTQiKTsKK30KKwogdm9p
ZCBiZWZvcmVBbGwoKQogewogICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYkV4dGVuc2lv
biIsICJkb20tZG9jdW1lbnQtdGl0bGUiLCB0ZXN0V2ViRXh0ZW5zaW9uR2V0VGl0bGUpOwpAQCAt
NDU3LDYgKzUwNSw3IEBAIHZvaWQgYmVmb3JlQWxsKCkKICNlbmRpZgogICAgIFdlYlZpZXdUZXN0
OjphZGQoIldlYktpdFdlYkV4dGVuc2lvbiIsICJmb3JtLWNvbnRyb2xzLWFzc29jaWF0ZWQtc2ln
bmFsIiwgdGVzdFdlYkV4dGVuc2lvbkZvcm1Db250cm9sc0Fzc29jaWF0ZWQpOwogICAgIEZvcm1T
dWJtaXNzaW9uVGVzdDo6YWRkKCJXZWJLaXRXZWJFeHRlbnNpb24iLCAiZm9ybS1zdWJtaXNzaW9u
LXN0ZXBzIiwgdGVzdFdlYkV4dGVuc2lvbkZvcm1TdWJtaXNzaW9uU3RlcHMpOworICAgIFdlYlZp
ZXdUZXN0OjphZGQoIldlYktpdFdlYkV4dGVuc2lvbiIsICJwYWdlLWlkIiwgdGVzdFdlYkV4dGVu
c2lvblBhZ2VJRCk7CiB9CiAKIHZvaWQgYWZ0ZXJBbGwoKQo=
</data>
<flag name="review"
          id="395355"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>