<?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>94471</bug_id>
          
          <creation_ts>2012-08-20 05:35:23 -0700</creation_ts>
          <short_desc>[GTK] Replace webkit_web_view_replace_content with webkit_web_view_load_alternate_html</short_desc>
          <delta_ts>2012-08-20 08:11:18 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>699428</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-08-20 05:35:23 -0700</bug_when>
    <thetext>In WebKit1 there&apos;s code to prevent that load signals are emitted when loading internal custom error pages. We added webkit_web_view_replace_content() with the same idea, but it has ended up being problematic, because it allows to add any HTML content (in WebKit1 we assumed internal error pages never fails and always load) and it&apos;s impossible to know when the load has finished. It also required a lot of logic to handle replace_content as an especial case, in order to hide the fact that it loads content. So, let&apos;s rename it to webkit_web_view_load_alternate_html() and emit load events normally. Clients can easily ignore load signals when loading alternate content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699432</commentid>
    <comment_count>1</comment_count>
      <attachid>159403</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-08-20 05:40:26 -0700</bug_when>
    <thetext>Created attachment 159403
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699433</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-20 05:42:14 -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>699481</commentid>
    <comment_count>3</comment_count>
      <attachid>159403</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-08-20 07:22:50 -0700</bug_when>
    <thetext>Comment on attachment 159403
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=159403&amp;action=review

Thanks!

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:1554
&gt; + * error page, the the back-forward list is maintained appropriately.

Hrm. Would it make sense to just say outright something like, &quot;When this method is called, a new entry is added to the back-forward list.&quot; ?

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:1555
&gt; + * For everything else this method works the same way than webkit_web_view_load_html().

Nit: same way than -&gt; same way as</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699521</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-08-20 08:07:10 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 159403 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=159403&amp;action=review
&gt; 
&gt; Thanks!
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:1554
&gt; &gt; + * error page, the the back-forward list is maintained appropriately.
&gt; 
&gt; Hrm. Would it make sense to just say outright something like, &quot;When this method is called, a new entry is added to the back-forward list.&quot; ?

It&apos;s more complicated than that, when alternate string is called from a load error callback, going back/forward from a load error page convert the load into a reload to avoid a new time to be added to the back forward list. See this bug:

https://bugs.webkit.org/show_bug.cgi?id=94476

Because it&apos;s currently broken in wk2, and see the implementation here:

http://trac.webkit.org/browser/trunk/Source/WebCore/loader/FrameLoader.cpp

So, I copied the description from the wk1 mac docs:

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/WebKit/ObjC_classic/_index.html

I plan to add a unit test for that case, skipped until bug #94476 is fixed.

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:1555
&gt; &gt; + * For everything else this method works the same way than webkit_web_view_load_html().
&gt; 
&gt; Nit: same way than -&gt; same way as

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699529</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-08-20 08:11:18 -0700</bug_when>
    <thetext>Committed r126030: &lt;http://trac.webkit.org/changeset/126030&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159403</attachid>
            <date>2012-08-20 05:40:26 -0700</date>
            <delta_ts>2012-08-20 07:22:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-load-alternate-html.diff</filename>
            <type>text/plain</type>
            <size>24189</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmMGNkOTNmLi41ZmMwZTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDgg
QEAKIDIwMTItMDgtMjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFtHVEtdIFJlcGxhY2Ugd2Via2l0X3dlYl92aWV3X3JlcGxhY2VfY29udGVu
dCB3aXRoIHdlYmtpdF93ZWJfdmlld19sb2FkX2FsdGVybmF0ZV9odG1sCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDQ3MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIFdlYktpdDEgdGhlcmUncyBjb2Rl
IHRvIHByZXZlbnQgdGhhdCBsb2FkIHNpZ25hbHMgYXJlIGVtaXR0ZWQKKyAgICAgICAgd2hlbiBs
b2FkaW5nIGludGVybmFsIGN1c3RvbSBlcnJvciBwYWdlcy4gV2UgYWRkZWQKKyAgICAgICAgd2Vi
a2l0X3dlYl92aWV3X3JlcGxhY2VfY29udGVudCgpIHdpdGggdGhlIHNhbWUgaWRlYSwgYnV0IGl0
IGhhcworICAgICAgICBlbmRlZCB1cCBiZWluZyBwcm9ibGVtYXRpYywgYmVjYXVzZSBpdCBhbGxv
d3MgdG8gYWRkIGFueSBIVE1MCisgICAgICAgIGNvbnRlbnQgKGluIFdlYktpdDEgd2UgYXNzdW1l
ZCBpbnRlcm5hbCBlcnJvciBwYWdlcyBuZXZlciBmYWlsZWQKKyAgICAgICAgYW5kIGFsd2F5cyBs
b2FkZWQpIGFuZCBpdCdzIGltcG9zc2libGUgdG8ga25vdyB3aGVuIHRoZSBsb2FkIGhhcworICAg
ICAgICBmaW5pc2hlZC4gSXQgYWxzbyByZXF1aXJlZCBhIGxvdCBvZiBsb2dpYyB0byBoYW5kbGUK
KyAgICAgICAgcmVwbGFjZV9jb250ZW50IGFzIGFuIGVzcGVjaWFsIGNhc2UsIGluIG9yZGVyIHRv
IGhpZGUgdGhlIGZhY3QKKyAgICAgICAgdGhhdCBpdCBsb2FkcyBjb250ZW50LiBUaGlzIHBhdGNo
IHJlbmFtZXMKKyAgICAgICAgd2Via2l0X3dlYl92aWV3X3JlcGxhY2VfY29udGVudCgpIGFzCisg
ICAgICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX2FsdGVybmF0ZV9odG1sKCkgYW5kIGVtaXQgbG9h
ZCBldmVudHMKKyAgICAgICAgbm9ybWFsbHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAgKF9XZWJLaXRXZWJWaWV3UHJpdmF0ZSk6Cisg
ICAgICAgICh3ZWJraXRXZWJWaWV3TG9hZENoYW5nZWQpOgorICAgICAgICAod2Via2l0V2ViVmll
d0xvYWRGYWlsZWQpOgorICAgICAgICAod2Via2l0V2ViVmlld1NldEVzdGltYXRlZExvYWRQcm9n
cmVzcyk6CisgICAgICAgICh3ZWJraXRXZWJWaWV3UmVzb3VyY2VMb2FkU3RhcnRlZCk6CisgICAg
ICAgICh3ZWJraXRXZWJWaWV3R2V0TG9hZGluZ1dlYlJlc291cmNlKToKKyAgICAgICAgKHdlYmtp
dFdlYlZpZXdSZW1vdmVMb2FkaW5nV2ViUmVzb3VyY2UpOgorICAgICAgICAod2Via2l0V2ViVmll
d1Jlc291cmNlTG9hZEZpbmlzaGVkKToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19sb2FkX2Fs
dGVybmF0ZV9odG1sKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25z
LnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0TG9hZGVyQ2xpZW50
LmNwcDoKKyAgICAgICAgKHRlc3RMb2FkQWx0ZXJuYXRlSFRNTCk6CisgICAgICAgIChiZWZvcmVB
bGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RSZXNvdXJjZXMuY3Bw
OgorICAgICAgICAoYmVmb3JlQWxsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay90ZXN0
cy9UZXN0V2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgIChiZWZvcmVBbGwpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYlZpZXdUZXN0LmNwcDoKKyAgICAgICAgKFdlYlZp
ZXdUZXN0Ojpsb2FkQWx0ZXJuYXRlSFRNTCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
dGVzdHMvV2ViVmlld1Rlc3QuaDoKKworMjAxMi0wOC0yMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKICAgICAgICAgW0dUS10gQWRkIEFQSSB0byBzZXQgcHJl
ZmVycmVkIGxhbmd1YWdlcyB0byBXZWJLaXQyIEdUSysKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwODc4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggYWU5MWIxYS4uZDAyYjNl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlldy5jcHAKQEAgLTEwNiwxMyArMTA2LDYgQEAgZW51bSB7CiAgICAgUFJPUF9aT09NX0xFVkVM
CiB9OwogCi10eXBlZGVmIGVudW0gewotICAgIE5vdFJlcGxhY2luZ0NvbnRlbnQsCi0gICAgV2ls
bFJlcGxhY2VDb250ZW50LAotICAgIFJlcGxhY2luZ0NvbnRlbnQsCi0gICAgRGlkUmVwbGFjZUNv
bnRlbnQKLX0gUmVwbGFjZUNvbnRlbnRTdGF0dXM7Ci0KIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRf
dCwgR1JlZlB0cjxXZWJLaXRXZWJSZXNvdXJjZT4gPiBMb2FkaW5nUmVzb3VyY2VzTWFwOwogdHlw
ZWRlZiBIYXNoTWFwPFN0cmluZywgR1JlZlB0cjxXZWJLaXRXZWJSZXNvdXJjZT4gPiBSZXNvdXJj
ZXNNYXA7CiAKQEAgLTEyMiw3ICsxMTUsNiBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdQcml2YXRl
IHsKICAgICBDU3RyaW5nIGN1c3RvbVRleHRFbmNvZGluZzsKICAgICBkb3VibGUgZXN0aW1hdGVk
TG9hZFByb2dyZXNzOwogICAgIENTdHJpbmcgYWN0aXZlVVJJOwotICAgIFJlcGxhY2VDb250ZW50
U3RhdHVzIHJlcGxhY2VDb250ZW50U3RhdHVzOwogCiAgICAgYm9vbCB3YWl0aW5nRm9yTWFpblJl
c291cmNlOwogICAgIGd1bG9uZyBtYWluUmVzb3VyY2VSZXNwb25zZUhhbmRsZXJJRDsKQEAgLTE1
OSw3ICsxNTEsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0V2ViVmlld0xvYWRGYWlsKFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdExvYWRFdmVudCwgYwogICAgICAgICByZXR1cm4gRkFM
U0U7CiAKICAgICBHT3duUHRyPGNoYXI+IGh0bWxTdHJpbmcoZ19zdHJkdXBfcHJpbnRmKCI8aHRt
bD48Ym9keT4lczwvYm9keT48L2h0bWw+IiwgZXJyb3ItPm1lc3NhZ2UpKTsKLSAgICB3ZWJraXRf
d2ViX3ZpZXdfcmVwbGFjZV9jb250ZW50KHdlYlZpZXcsIGh0bWxTdHJpbmcuZ2V0KCksIGZhaWxp
bmdVUkksIDApOworICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX2FsdGVybmF0ZV9odG1sKHdlYlZp
ZXcsIGh0bWxTdHJpbmcuZ2V0KCksIGZhaWxpbmdVUkksIDApOwogCiAgICAgcmV0dXJuIFRSVUU7
CiB9CkBAIC0xMTA3LDI1ICsxMDk5LDYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2Ns
YXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICAgICAgICAg
ICAgICAgICBXRUJLSVRfVFlQRV9GT1JNX1NVQk1JU1NJT05fUkVRVUVTVCk7CiB9CiAKLXN0YXRp
YyBib29sIHVwZGF0ZVJlcGxhY2VDb250ZW50U3RhdHVzKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcs
IFdlYktpdExvYWRFdmVudCBsb2FkRXZlbnQpCi17Ci0gICAgaWYgKHdlYlZpZXctPnByaXYtPnJl
cGxhY2VDb250ZW50U3RhdHVzID09IFJlcGxhY2luZ0NvbnRlbnQpIHsKLSAgICAgICAgaWYgKGxv
YWRFdmVudCA9PSBXRUJLSVRfTE9BRF9GSU5JU0hFRCkKLSAgICAgICAgICAgIHdlYlZpZXctPnBy
aXYtPnJlcGxhY2VDb250ZW50U3RhdHVzID0gRGlkUmVwbGFjZUNvbnRlbnQ7Ci0gICAgICAgIHJl
dHVybiB0cnVlOwotICAgIH0KLQotICAgIGlmIChsb2FkRXZlbnQgPT0gV0VCS0lUX0xPQURfU1RB
UlRFRCkgewotICAgICAgICBpZiAod2ViVmlldy0+cHJpdi0+cmVwbGFjZUNvbnRlbnRTdGF0dXMg
PT0gV2lsbFJlcGxhY2VDb250ZW50KSB7Ci0gICAgICAgICAgICB3ZWJWaWV3LT5wcml2LT5yZXBs
YWNlQ29udGVudFN0YXR1cyA9IFJlcGxhY2luZ0NvbnRlbnQ7Ci0gICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICAgICAgfQotICAgICAgICB3ZWJWaWV3LT5wcml2LT5yZXBsYWNlQ29udGVudFN0
YXR1cyA9IE5vdFJlcGxhY2luZ0NvbnRlbnQ7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNlOwot
fQotCiBzdGF0aWMgdm9pZCBzZXRDZXJ0aWZpY2F0ZVRvTWFpblJlc291cmNlKFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcpCiB7CiAgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSB3ZWJWaWV3
LT5wcml2OwpAQCAtMTE2OSwyMSArMTE0MiwxNiBAQCB2b2lkIHdlYmtpdFdlYlZpZXdMb2FkQ2hh
bmdlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRMb2FkRXZlbnQgbG9hZEV2ZW50KQog
ICAgICAgICB3ZWJWaWV3LT5wcml2LT53YWl0aW5nRm9yTWFpblJlc291cmNlID0gZmFsc2U7CiAg
ICAgfSBlbHNlIGlmIChsb2FkRXZlbnQgPT0gV0VCS0lUX0xPQURfQ09NTUlUVEVEKSB7CiAgICAg
ICAgIHdlYlZpZXctPnByaXYtPnN1YnJlc291cmNlc01hcC5jbGVhcigpOwotICAgICAgICBpZiAo
d2ViVmlldy0+cHJpdi0+cmVwbGFjZUNvbnRlbnRTdGF0dXMgIT0gUmVwbGFjaW5nQ29udGVudCkg
ewotICAgICAgICAgICAgaWYgKCF3ZWJWaWV3LT5wcml2LT5tYWluUmVzb3VyY2UpIHsKLSAgICAg
ICAgICAgICAgICAvLyBXaGVuIGEgcGFnZSBpcyBsb2FkZWQgZnJvbSB0aGUgaGlzdG9yeSBjYWNo
ZSwgdGhlIG1haW4gcmVzb3VyY2UgbG9hZCBjYWxsYmFja3MKLSAgICAgICAgICAgICAgICAvLyBh
cmUgY2FsbGVkIHdoZW4gdGhlIG1haW4gZnJhbWUgbG9hZCBpcyBmaW5pc2hlZC4gV2Ugd2FudCB0
byBtYWtlIHN1cmUgdGhlcmUncyBhCi0gICAgICAgICAgICAgICAgLy8gbWFpbiByZXNvdXJjZSBh
dmFpbGFibGUgd2hlbiBsb2FkIGhhcyBiZWVuIGNvbW1pdHRlZCwgc28gd2UgZGVsYXkgdGhlIGVt
aXNzaW9uIG9mCi0gICAgICAgICAgICAgICAgLy8gbG9hZC1jaGFuZ2VkIHNpZ25hbCB1bnRpbCBt
YWluIHJlc291cmNlIG9iamVjdCBoYXMgYmVlbiBjcmVhdGVkLgotICAgICAgICAgICAgICAgIHdl
YlZpZXctPnByaXYtPndhaXRpbmdGb3JNYWluUmVzb3VyY2UgPSB0cnVlOwotICAgICAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICAgICAgc2V0Q2VydGlmaWNhdGVUb01haW5SZXNvdXJjZSh3ZWJW
aWV3KTsKLSAgICAgICAgfQorICAgICAgICBpZiAoIXdlYlZpZXctPnByaXYtPm1haW5SZXNvdXJj
ZSkgeworICAgICAgICAgICAgLy8gV2hlbiBhIHBhZ2UgaXMgbG9hZGVkIGZyb20gdGhlIGhpc3Rv
cnkgY2FjaGUsIHRoZSBtYWluIHJlc291cmNlIGxvYWQgY2FsbGJhY2tzCisgICAgICAgICAgICAv
LyBhcmUgY2FsbGVkIHdoZW4gdGhlIG1haW4gZnJhbWUgbG9hZCBpcyBmaW5pc2hlZC4gV2Ugd2Fu
dCB0byBtYWtlIHN1cmUgdGhlcmUncyBhCisgICAgICAgICAgICAvLyBtYWluIHJlc291cmNlIGF2
YWlsYWJsZSB3aGVuIGxvYWQgaGFzIGJlZW4gY29tbWl0dGVkLCBzbyB3ZSBkZWxheSB0aGUgZW1p
c3Npb24gb2YKKyAgICAgICAgICAgIC8vIGxvYWQtY2hhbmdlZCBzaWduYWwgdW50aWwgbWFpbiBy
ZXNvdXJjZSBvYmplY3QgaGFzIGJlZW4gY3JlYXRlZC4KKyAgICAgICAgICAgIHdlYlZpZXctPnBy
aXYtPndhaXRpbmdGb3JNYWluUmVzb3VyY2UgPSB0cnVlOworICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgIHNldENlcnRpZmljYXRlVG9NYWluUmVzb3VyY2Uod2ViVmlldyk7CiAgICAgfQogCi0g
ICAgaWYgKHVwZGF0ZVJlcGxhY2VDb250ZW50U3RhdHVzKHdlYlZpZXcsIGxvYWRFdmVudCkpCi0g
ICAgICAgIHJldHVybjsKLQogICAgIGlmICh3ZWJWaWV3LT5wcml2LT53YWl0aW5nRm9yTWFpblJl
c291cmNlKQogICAgICAgICB3ZWJWaWV3LT5wcml2LT5sYXN0RGVsYXllZEV2ZW50ID0gbG9hZEV2
ZW50OwogICAgIGVsc2UKQEAgLTExOTIsOSArMTE2MCw2IEBAIHZvaWQgd2Via2l0V2ViVmlld0xv
YWRDaGFuZ2VkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdExvYWRFdmVudCBsb2FkRXZl
bnQpCiAKIHZvaWQgd2Via2l0V2ViVmlld0xvYWRGYWlsZWQoV2ViS2l0V2ViVmlldyogd2ViVmll
dywgV2ViS2l0TG9hZEV2ZW50IGxvYWRFdmVudCwgY29uc3QgY2hhciogZmFpbGluZ1VSSSwgR0Vy
cm9yICplcnJvcikKIHsKLSAgICBpZiAod2ViVmlldy0+cHJpdi0+cmVwbGFjZUNvbnRlbnRTdGF0
dXMgPT0gUmVwbGFjaW5nQ29udGVudCkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgZ2Jvb2xlYW4g
cmV0dXJuVmFsdWU7CiAgICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCBzaWduYWxzW0xPQURfRkFJ
TEVEXSwgMCwgbG9hZEV2ZW50LCBmYWlsaW5nVVJJLCBlcnJvciwgJnJldHVyblZhbHVlKTsKICAg
ICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHNpZ25hbHNbTE9BRF9DSEFOR0VEXSwgMCwgV0VCS0lU
X0xPQURfRklOSVNIRUQpOwpAQCAtMTIxMiw5ICsxMTc3LDYgQEAgdm9pZCB3ZWJraXRXZWJWaWV3
U2V0VGl0bGUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgQ1N0cmluZyYgdGl0bGUpCiAK
IHZvaWQgd2Via2l0V2ViVmlld1NldEVzdGltYXRlZExvYWRQcm9ncmVzcyhXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3LCBkb3VibGUgZXN0aW1hdGVkTG9hZFByb2dyZXNzKQogewotICAgIGlmICh3ZWJW
aWV3LT5wcml2LT5yZXBsYWNlQ29udGVudFN0YXR1cyAhPSBOb3RSZXBsYWNpbmdDb250ZW50KQot
ICAgICAgICByZXR1cm47Ci0KICAgICBpZiAod2ViVmlldy0+cHJpdi0+ZXN0aW1hdGVkTG9hZFBy
b2dyZXNzID09IGVzdGltYXRlZExvYWRQcm9ncmVzcykKICAgICAgICAgcmV0dXJuOwogCkBAIC0x
MzQ5LDE2ICsxMzExLDggQEAgc3RhdGljIHZvaWQgd2FpdEZvck1haW5SZXNvdXJjZVJlc3BvbnNl
SWZXYWl0aW5nRm9yUmVzb3VyY2UoV2ViS2l0V2ViVmlldyogd2ViVmkKICAgICAgICAgZ19zaWdu
YWxfY29ubmVjdChwcml2LT5tYWluUmVzb3VyY2UuZ2V0KCksICJub3RpZnk6OnJlc3BvbnNlIiwg
R19DQUxMQkFDSyhtYWluUmVzb3VyY2VSZXNwb25zZUNoYW5nZWRDYWxsYmFjayksIHdlYlZpZXcp
OwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgd2Via2l0V2ViVmlld0lzUmVwbGFjaW5nQ29udGVu
dE9yRGlkUmVwbGFjZUNvbnRlbnQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKLXsKLSAgICByZXR1
cm4gKHdlYlZpZXctPnByaXYtPnJlcGxhY2VDb250ZW50U3RhdHVzID09IFJlcGxhY2luZ0NvbnRl
bnQgfHwgd2ViVmlldy0+cHJpdi0+cmVwbGFjZUNvbnRlbnRTdGF0dXMgPT0gRGlkUmVwbGFjZUNv
bnRlbnQpOwotfQotCiB2b2lkIHdlYmtpdFdlYlZpZXdSZXNvdXJjZUxvYWRTdGFydGVkKFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcsIFdLRnJhbWVSZWYgd2tGcmFtZSwgdWludDY0X3QgcmVzb3VyY2VJ
ZGVudGlmaWVyLCBXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBib29sIGlzTWFpblJlc291cmNl
KQogewotICAgIGlmICh3ZWJraXRXZWJWaWV3SXNSZXBsYWNpbmdDb250ZW50T3JEaWRSZXBsYWNl
Q29udGVudCh3ZWJWaWV3KSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgV2ViS2l0V2ViVmlld1By
aXZhdGUqIHByaXYgPSB3ZWJWaWV3LT5wcml2OwogICAgIFdlYktpdFdlYlJlc291cmNlKiByZXNv
dXJjZSA9IHdlYmtpdFdlYlJlc291cmNlQ3JlYXRlKHdrRnJhbWUsIHJlcXVlc3QsIGlzTWFpblJl
c291cmNlKTsKICAgICBpZiAoV0tGcmFtZUlzTWFpbkZyYW1lKHdrRnJhbWUpICYmIChpc01haW5S
ZXNvdXJjZSB8fCAhcHJpdi0+bWFpblJlc291cmNlKSkgewpAQCAtMTM3MSw5ICsxMzI1LDYgQEAg
dm9pZCB3ZWJraXRXZWJWaWV3UmVzb3VyY2VMb2FkU3RhcnRlZChXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3LCBXS0ZyYW1lUmVmIHdrRnJhbWUKIAogV2ViS2l0V2ViUmVzb3VyY2UqIHdlYmtpdFdlYlZp
ZXdHZXRMb2FkaW5nV2ViUmVzb3VyY2UoV2ViS2l0V2ViVmlldyogd2ViVmlldywgdWludDY0X3Qg
cmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIGlmICh3ZWJraXRXZWJWaWV3SXNSZXBsYWNpbmdD
b250ZW50T3JEaWRSZXBsYWNlQ29udGVudCh3ZWJWaWV3KSkKLSAgICAgICAgcmV0dXJuIDA7Ci0K
ICAgICBHUmVmUHRyPFdlYktpdFdlYlJlc291cmNlPiByZXNvdXJjZSA9IHdlYlZpZXctPnByaXYt
PmxvYWRpbmdSZXNvdXJjZXNNYXAuZ2V0KHJlc291cmNlSWRlbnRpZmllcik7CiAgICAgQVNTRVJU
KHJlc291cmNlLmdldCgpKTsKICAgICByZXR1cm4gcmVzb3VyY2UuZ2V0KCk7CkBAIC0xMzgxLDkg
KzEzMzIsNiBAQCBXZWJLaXRXZWJSZXNvdXJjZSogd2Via2l0V2ViVmlld0dldExvYWRpbmdXZWJS
ZXNvdXJjZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCB1aQogCiB2b2lkIHdlYmtpdFdlYlZpZXdS
ZW1vdmVMb2FkaW5nV2ViUmVzb3VyY2UoV2ViS2l0V2ViVmlldyogd2ViVmlldywgdWludDY0X3Qg
cmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIGlmICh3ZWJraXRXZWJWaWV3SXNSZXBsYWNpbmdD
b250ZW50T3JEaWRSZXBsYWNlQ29udGVudCh3ZWJWaWV3KSkKLSAgICAgICAgcmV0dXJuOwotCiAg
ICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSB3ZWJWaWV3LT5wcml2OwogICAgIEFTU0VS
VChwcml2LT5sb2FkaW5nUmVzb3VyY2VzTWFwLmNvbnRhaW5zKHJlc291cmNlSWRlbnRpZmllcikp
OwogICAgIHByaXYtPmxvYWRpbmdSZXNvdXJjZXNNYXAucmVtb3ZlKHJlc291cmNlSWRlbnRpZmll
cik7CkBAIC0xMzkxLDkgKzEzMzksNiBAQCB2b2lkIHdlYmtpdFdlYlZpZXdSZW1vdmVMb2FkaW5n
V2ViUmVzb3VyY2UoV2ViS2l0V2ViVmlldyogd2ViVmlldywgdWludDY0X3QgcmVzbwogCiBXZWJL
aXRXZWJSZXNvdXJjZSogd2Via2l0V2ViVmlld1Jlc291cmNlTG9hZEZpbmlzaGVkKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllcikKIHsKLSAgICBpZiAo
d2Via2l0V2ViVmlld0lzUmVwbGFjaW5nQ29udGVudE9yRGlkUmVwbGFjZUNvbnRlbnQod2ViVmll
dykpCi0gICAgICAgIHJldHVybiAwOwotCiAgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYg
PSB3ZWJWaWV3LT5wcml2OwogICAgIFdlYktpdFdlYlJlc291cmNlKiByZXNvdXJjZSA9IHdlYmtp
dFdlYlZpZXdHZXRMb2FkaW5nV2ViUmVzb3VyY2Uod2ViVmlldywgcmVzb3VyY2VJZGVudGlmaWVy
KTsKICAgICBpZiAocmVzb3VyY2UgIT0gcHJpdi0+bWFpblJlc291cmNlKQpAQCAtMTU5Nyw2ICsx
NTQyLDMzIEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X2xvYWRfaHRtbChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBjb25zdCBnY2hhciogY29udGVudCwgY29uCiB9CiAKIC8qKgorICogd2Via2l0X3dl
Yl92aWV3X2xvYWRfYWx0ZXJuYXRlX2h0bWw6CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZp
ZXcKKyAqIEBjb250ZW50OiB0aGUgbmV3IGNvbnRlbnQgdG8gZGlzcGxheSBhcyB0aGUgbWFpbiBw
YWdlIG9mIHRoZSBAd2ViX3ZpZXcKKyAqIEBjb250ZW50X3VyaTogdGhlIFVSSSBmb3IgdGhlIGFs
dGVybmF0ZSBwYWdlIGNvbnRlbnQKKyAqIEBiYXNlX3VyaTogKGFsbG93LW5vbmUpOiB0aGUgYmFz
ZSBVUkkgZm9yIHJlbGF0aXZlIGxvY2F0aW9ucyBvciAlTlVMTAorICoKKyAqIExvYWQgdGhlIGdp
dmVuIEBjb250ZW50IHN0cmluZyBmb3IgdGhlIFVSSSBAY29udGVudF91cmkuCisgKiBUaGlzIGFs
bG93cyBjbGllbnRzIHRvIGRpc3BsYXkgcGFnZS1sb2FkaW5nIGVycm9ycyBpbiB0aGUgI1dlYktp
dFdlYlZpZXcgaXRzZWxmLgorICogV2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgZnJvbSAjV2Vi
S2l0V2ViVmlldzo6bG9hZC1mYWlsZWQgc2lnbmFsIHRvIHNob3cgYW4KKyAqIGVycm9yIHBhZ2Us
IHRoZSB0aGUgYmFjay1mb3J3YXJkIGxpc3QgaXMgbWFpbnRhaW5lZCBhcHByb3ByaWF0ZWx5Lgor
ICogRm9yIGV2ZXJ5dGhpbmcgZWxzZSB0aGlzIG1ldGhvZCB3b3JrcyB0aGUgc2FtZSB3YXkgdGhh
biB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9odG1sKCkuCisgKi8KK3ZvaWQgd2Via2l0X3dlYl92aWV3
X2xvYWRfYWx0ZXJuYXRlX2h0bWwoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgZ2NoYXIq
IGNvbnRlbnQsIGNvbnN0IGdjaGFyKiBjb250ZW50VVJJLCBjb25zdCBnY2hhciogYmFzZVVSSSkK
K3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7Cisg
ICAgZ19yZXR1cm5faWZfZmFpbChjb250ZW50KTsKKyAgICBnX3JldHVybl9pZl9mYWlsKGNvbnRl
bnRVUkkpOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGh0bWxTdHJpbmcoQWRvcHRX
SywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoY29udGVudCkpOworICAgIFdLUmV0YWlu
UHRyPFdLVVJMUmVmPiBjb250ZW50VVJMKEFkb3B0V0ssIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKGNvbnRlbnRVUkkpKTsKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gYmFzZVVSTCA9IGJh
c2VVUkkgPyBhZG9wdFdLKFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGJhc2VVUkkpKSA6IDA7
CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2Via2l0V2ViVmlld0Jhc2VHZXRQYWdlKFdFQktJ
VF9XRUJfVklFV19CQVNFKHdlYlZpZXcpKTsKKyAgICBXS1BhZ2VMb2FkQWx0ZXJuYXRlSFRNTFN0
cmluZyh0b0FQSShwYWdlKSwgaHRtbFN0cmluZy5nZXQoKSwgYmFzZVVSTC5nZXQoKSwgY29udGVu
dFVSTC5nZXQoKSk7CisgICAgd2Via2l0V2ViVmlld1VwZGF0ZVVSSSh3ZWJWaWV3KTsKK30KKwor
LyoqCiAgKiB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9wbGFpbl90ZXh0OgogICogQHdlYl92aWV3OiBh
ICNXZWJLaXRXZWJWaWV3CiAgKiBAcGxhaW5fdGV4dDogVGhlIHBsYWluIHRleHQgdG8gbG9hZApA
QCAtMTYzNywzNiArMTYwOSw2IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X2xvYWRfcmVxdWVzdChX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRVUklSZXF1ZXN0KiByZXF1CiB9CiAKIC8qKgot
ICogd2Via2l0X3dlYl92aWV3X3JlcGxhY2VfY29udGVudDoKLSAqIEB3ZWJfdmlldzogYSAjV2Vi
S2l0V2ViVmlldwotICogQGNvbnRlbnQ6IHRoZSBuZXcgY29udGVudCB0byBkaXNwbGF5IGFzIHRo
ZSBtYWluIHBhZ2Ugb2YgdGhlIEB3ZWJfdmlldwotICogQGNvbnRlbnRfdXJpOiB0aGUgVVJJIGZv
ciB0aGUgcGFnZSBjb250ZW50Ci0gKiBAYmFzZV91cmk6IChhbGxvdy1ub25lKTogdGhlIGJhc2Ug
VVJJIGZvciByZWxhdGl2ZSBsb2NhdGlvbnMgb3IgJU5VTEwKLSAqCi0gKiBSZXBsYWNlIHRoZSBj
b250ZW50IG9mIEB3ZWJfdmlldyB3aXRoIEBjb250ZW50IHVzaW5nIEBjb250ZW50X3VyaSBhcyBw
YWdlIFVSSS4KLSAqIFRoaXMgYWxsb3dzIGNsaWVudHMgdG8gZGlzcGxheSBwYWdlLWxvYWRpbmcg
ZXJyb3JzIGluIHRoZSAjV2ViS2l0V2ViVmlldyBpdHNlbGYuCi0gKiBUaGlzIGlzIHR5cGljYWxs
eSBjYWxsZWQgZnJvbSAjV2ViS2l0V2ViVmlldzo6bG9hZC1mYWlsZWQgc2lnbmFsLiBUaGUgVVJJ
IHBhc3NlZCBpbgotICogQGJhc2VfdXJpIGhhcyB0byBiZSBhbiBhYnNvbHV0ZSBVUkkuIFRoZSBt
aW1lIHR5cGUgb2YgdGhlIGRvY3VtZW50IHdpbGwgYmUgInRleHQvaHRtbCIuCi0gKiBTaWduYWxz
ICNXZWJLaXRXZWJWaWV3Ojpsb2FkLWNoYW5nZWQgYW5kICNXZWJLaXRXZWJWaWV3Ojpsb2FkLWZh
aWxlZCBhcmUgbm90IGVtaXR0ZWQKLSAqIHdoZW4gcmVwbGFjaW5nIGNvbnRlbnQgb2YgYSAjV2Vi
S2l0V2ViVmlldyB1c2luZyB0aGlzIG1ldGhvZC4KLSAqLwotdm9pZCB3ZWJraXRfd2ViX3ZpZXdf
cmVwbGFjZV9jb250ZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiBjb250
ZW50LCBjb25zdCBnY2hhciogY29udGVudFVSSSwgY29uc3QgZ2NoYXIqIGJhc2VVUkkpCi17Ci0g
ICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwotICAgIGdf
cmV0dXJuX2lmX2ZhaWwoY29udGVudCk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChjb250ZW50VVJJ
KTsKLQotICAgIHdlYlZpZXctPnByaXYtPnJlcGxhY2VDb250ZW50U3RhdHVzID0gV2lsbFJlcGxh
Y2VDb250ZW50OwotCi0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGh0bWxTdHJpbmcoQWRv
cHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoY29udGVudCkpOwotICAgIFdLUmV0
YWluUHRyPFdLVVJMUmVmPiBjb250ZW50VVJMKEFkb3B0V0ssIFdLVVJMQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKGNvbnRlbnRVUkkpKTsKLSAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gYmFzZVVSTCA9
IGJhc2VVUkkgPyBhZG9wdFdLKFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGJhc2VVUkkpKSA6
IDA7Ci0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2Via2l0V2ViVmlld0Jhc2VHZXRQYWdlKFdF
QktJVF9XRUJfVklFV19CQVNFKHdlYlZpZXcpKTsKLSAgICBXS1BhZ2VMb2FkQWx0ZXJuYXRlSFRN
TFN0cmluZyh0b0FQSShwYWdlKSwgaHRtbFN0cmluZy5nZXQoKSwgYmFzZVVSTC5nZXQoKSwgY29u
dGVudFVSTC5nZXQoKSk7Ci0gICAgd2Via2l0V2ViVmlld1VwZGF0ZVVSSSh3ZWJWaWV3KTsKLX0K
LQotLyoqCiAgKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3RpdGxlOgogICogQHdlYl92aWV3OiBhICNX
ZWJLaXRXZWJWaWV3CiAgKgpAQCAtMTgxNSw2ICsxNzU3LDEwIEBAIGdib29sZWFuIHdlYmtpdF93
ZWJfdmlld19jYW5fZ29fZm9yd2FyZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICogICAgIHRo
ZSByZXF1ZXN0ZWQgVVJJIGlzICJhYm91dDpibGFuayIuCiAgKiAgIDwvcGFyYT48L2xpc3RpdGVt
PgogICogICA8bGlzdGl0ZW0+PHBhcmE+CisgKiAgICAgSWYgdGhlIGxvYWQgb3BlcmF0aW9uIHdh
cyBzdGFydGVkIGJ5IHdlYmtpdF93ZWJfdmlld19sb2FkX2FsdGVybmF0ZV9odG1sKCksCisgKiAg
ICAgdGhlIHJlcXVlc3RlZCBVUkkgaXMgY29udGVudCBVUkkgcHJvdmlkZWQuCisgKiAgIDwvcGFy
YT48L2xpc3RpdGVtPgorICogICA8bGlzdGl0ZW0+PHBhcmE+CiAgKiAgICAgSWYgdGhlIGxvYWQg
b3BlcmF0aW9uIHdhcyBzdGFydGVkIGJ5IHdlYmtpdF93ZWJfdmlld19nb19iYWNrKCkgb3IKICAq
ICAgICB3ZWJraXRfd2ViX3ZpZXdfZ29fZm9yd2FyZCgpLCB0aGUgcmVxdWVzdGVkIFVSSSBpcyB0
aGUgb3JpZ2luYWwgVVJJCiAgKiAgICAgb2YgdGhlIHByZXZpb3VzL25leHQgaXRlbSBpbiB0aGUg
I1dlYktpdEJhY2tGb3J3YXJkTGlzdCBvZiBAd2ViX3ZpZXcuCkBAIC0xODM4LDEwICsxNzg0LDYg
QEAgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2Nhbl9nb19mb3J3YXJkKFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcpCiAgKiAgIG9uZSBhbmQgaXQgd2lsbCBub3QgY2hhbmdlIHVubGVzcyBhIG5ldyBs
b2FkIG9wZXJhdGlvbiBpcyBzdGFydGVkCiAgKiAgIG9yIGEgbmF2aWdhdGlvbiBhY3Rpb24gd2l0
aGluIHRoZSBzYW1lIHBhZ2UgaXMgcGVyZm9ybWVkLgogICogPC9wYXJhPjwvbGlzdGl0ZW0+Ci0g
KiA8bGlzdGl0ZW0+PHBhcmE+Ci0gKiAgIFdoZW4gdGhlIHBhZ2UgY29udGVudCBpcyByZXBsYWNl
ZCB1c2luZyB3ZWJraXRfd2ViX3ZpZXdfcmVwbGFjZV9jb250ZW50KCksCi0gKiAgIHRoZSBhY3Rp
dmUgVVJJIGlzIHRoZSBjb250ZW50X3VyaSBwcm92aWRlZC4KLSAqIDwvcGFyYT48L2xpc3RpdGVt
PgogICogPC9vcmRlcmVkbGlzdD4KICAqCiAgKiBZb3UgY2FuIG1vbml0b3IgdGhlIGFjdGl2ZSBV
UkkgYnkgY29ubmVjdGluZyB0byB0aGUgbm90aWZ5Ojp1cmkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAppbmRleCA2MzI4ZTI3Li41NDAwMTRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJW
aWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
dy5oCkBAIC0yMTAsNyArMjEwLDExIEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3dlYl92aWV3
X2xvYWRfaHRtbCAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAg
ICAgICAgKndlYl92aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgKmNvbnRlbnQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIg
ICAgICAgICAgICAgICAqYmFzZV91cmkpOwotCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJf
dmlld19sb2FkX2FsdGVybmF0ZV9odG1sICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAg
ICAgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAgICpjb250ZW50LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdj
aGFyICAgICAgICAgICAgICAgKmNvbnRlbnRfdXJpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgKmJh
c2VfdXJpKTsKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3dlYl92aWV3X2xvYWRfcGxhaW5fdGV4
dCAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGdjaGFyICAgICAgICAgICAgICAgKnBsYWluX3RleHQpOwpAQCAtMjIyLDEyICsyMjYsNiBA
QCB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9yZXF1ZXN0ICAgICAgICAgICAgICAgICAgICAgICAoV2Vi
S2l0V2ViVmlldyAgICAgICAgICAgICAqdwogV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfd2ViX3Zp
ZXdfc3RvcF9sb2FkaW5nICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAg
ICAgICAgICAqd2ViX3ZpZXcpOwogCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfdmlld19y
ZXBsYWNlX2NvbnRlbnQgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAg
ICAgICp3ZWJfdmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAgICpjb250ZW50LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAg
ICAgICAgICAgICAgKmNvbnRlbnRfdXJpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAgICAgKmJhc2VfdXJp
KTsKLQogV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3RpdGxl
ICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2Vi
X3ZpZXcpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9k
b2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAppbmRleCAyZWNmY2RhLi41OTY0OThj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtp
dDJndGstc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKQEAgLTc2LDkgKzc2LDkgQEAgd2Via2l0X3dl
Yl92aWV3X25ld193aXRoX2NvbnRleHQKIHdlYmtpdF93ZWJfdmlld19nZXRfY29udGV4dAogd2Vi
a2l0X3dlYl92aWV3X2xvYWRfdXJpCiB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9odG1sCit3ZWJraXRf
d2ViX3ZpZXdfbG9hZF9hbHRlcm5hdGVfaHRtbAogd2Via2l0X3dlYl92aWV3X2xvYWRfcGxhaW5f
dGV4dAogd2Via2l0X3dlYl92aWV3X2xvYWRfcmVxdWVzdAotd2Via2l0X3dlYl92aWV3X3JlcGxh
Y2VfY29udGVudAogd2Via2l0X3dlYl92aWV3X2Nhbl9nb19iYWNrCiB3ZWJraXRfd2ViX3ZpZXdf
Z29fYmFjawogd2Via2l0X3dlYl92aWV3X2Nhbl9nb19mb3J3YXJkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0TG9hZGVyQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RMb2FkZXJDbGllbnQu
Y3BwCmluZGV4IDU5ZWVkNzYuLmRhYmYwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RMb2FkZXJDbGllbnQuY3BwCkBAIC03
MCw2ICs3MCwxMyBAQCBzdGF0aWMgdm9pZCB0ZXN0TG9hZEh0bWwoTG9hZFRyYWNraW5nVGVzdCog
dGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBhc3NlcnROb3JtYWxMb2FkSGFwcGVuZWQodGVzdC0+
bV9sb2FkRXZlbnRzKTsKIH0KIAorc3RhdGljIHZvaWQgdGVzdExvYWRBbHRlcm5hdGVIVE1MKExv
YWRUcmFja2luZ1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgdGVzdC0+bG9hZEFs
dGVybmF0ZUhUTUwoIjxodG1sPjxib2R5PkFsdGVybmF0ZSBwYWdlPC9ib2R5PjwvaHRtbD4iLCAi
aHR0cDovL2Vycm9yLXBhZ2UuZm9vLyIsIDApOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5p
c2hlZCgpOworICAgIGFzc2VydE5vcm1hbExvYWRIYXBwZW5lZCh0ZXN0LT5tX2xvYWRFdmVudHMp
OworfQorCiBzdGF0aWMgdm9pZCB0ZXN0TG9hZFBsYWluVGV4dChMb2FkVHJhY2tpbmdUZXN0KiB0
ZXN0LCBnY29uc3Rwb2ludGVyKQogewogICAgIHRlc3QtPmxvYWRQbGFpblRleHQoIkhlbGxvIFdl
YktpdC1HVEsrIik7CkBAIC0yNjIsNiArMjY5LDcgQEAgdm9pZCBiZWZvcmVBbGwoKQogICAgIExv
YWRUcmFja2luZ1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJsb2FkaW5nLXN0YXR1cyIsIHRl
c3RMb2FkaW5nU3RhdHVzKTsKICAgICBMb2FkVHJhY2tpbmdUZXN0OjphZGQoIldlYktpdFdlYlZp
ZXciLCAibG9hZGluZy1lcnJvciIsIHRlc3RMb2FkaW5nRXJyb3IpOwogICAgIExvYWRUcmFja2lu
Z1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJsb2FkLWh0bWwiLCB0ZXN0TG9hZEh0bWwpOwor
ICAgIExvYWRUcmFja2luZ1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJsb2FkLWFsdGVybmF0
ZS1odG1sIiwgdGVzdExvYWRBbHRlcm5hdGVIVE1MKTsKICAgICBMb2FkVHJhY2tpbmdUZXN0Ojph
ZGQoIldlYktpdFdlYlZpZXciLCAibG9hZC1wbGFpbi10ZXh0IiwgdGVzdExvYWRQbGFpblRleHQp
OwogICAgIExvYWRUcmFja2luZ1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJsb2FkLXJlcXVl
c3QiLCB0ZXN0TG9hZFJlcXVlc3QpOwogICAgIExvYWRTdG9wVHJhY2tpbmdUZXN0OjphZGQoIldl
YktpdFdlYlZpZXciLCAic3RvcC1sb2FkaW5nIiwgdGVzdExvYWRDYW5jZWxsZWQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFJlc291cmNl
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0UmVzb3Vy
Y2VzLmNwcAppbmRleCAzZDFlNjAwLi43ZTJlNWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0UmVzb3VyY2VzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0UmVzb3VyY2VzLmNwcApAQCAtNTA1
LDMyICs1MDUsNiBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViUmVzb3VyY2VHZXREYXRhKFJlc291cmNl
c1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgICAgIHRlc3QtPmNoZWNrUmVzb3VyY2VE
YXRhKFdFQktJVF9XRUJfUkVTT1VSQ0UoaXRlbS0+ZGF0YSkpOwogfQogCi1zdGF0aWMgdm9pZCBy
ZXBsYWNlZENvbnRlbnRSZXNvdXJjZUxvYWRTdGFydGVkQ2FsbGJhY2soKQotewotICAgIGdfYXNz
ZXJ0X25vdF9yZWFjaGVkKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3UmVzb3VyY2Vz
UmVwbGFjZWRDb250ZW50KFJlc291cmNlc1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCi17Ci0g
ICAgdGVzdC0+bG9hZFVSSShrU2VydmVyLT5nZXRVUklGb3JQYXRoKCIvIikuZGF0YSgpKTsKLSAg
ICAvLyBGSVhNRTogdGhpcyBzaG91bGQgYmUgNCBpbnN0ZWFkIG9mIDMsIGJ1dCB3ZSBkb24ndCBn
ZXQgdGhlIGNzcyBpbWFnZSByZXNvdXJjZQotICAgIC8vIGR1ZSB0byBidWcgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NTEwLgotICAgIHRlc3QtPndhaXRVbnRpbFJl
c291cmNlc0xvYWRlZCgzKTsKLQotICAgIHN0YXRpYyBjb25zdCBjaGFyKiByZXBsYWNlZEh0bWwg
PQotICAgICAgICAiPGh0bWw+PGhlYWQ+IgotICAgICAgICAiIDx0aXRsZT5Db250ZW50IFJlcGxh
Y2VkPC90aXRsZT4iCi0gICAgICAgICIgPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSdkYXRh
OnRleHQvY3NzLGJvZHkgeyBtYXJnaW46IDBweDsgcGFkZGluZzogMHB4OyB9JyB0eXBlPSd0ZXh0
L2Nzcyc+IgotICAgICAgICAiIDxzY3JpcHQgbGFuZ3VhZ2U9J2phdmFzY3JpcHQnIHNyYz0nZGF0
YTphcHBsaWNhdGlvbi9qYXZhc2NyaXB0LGZ1bmN0aW9uIGZvbyAoKSB7IHZhciBhID0gMTsgfSc+
PC9zY3JpcHQ+IgotICAgICAgICAiPC9oZWFkPjxib2R5IG9ubG9hZD0nZG9jdW1lbnQudGl0bGU9
XCJMb2FkZWRcIic+V2ViS2l0R1RLKyByZXNvdXJjZXMgb24gcmVwbGFjZWQgY29udGVudCB0ZXN0
PC9ib2R5PjwvaHRtbD4iOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QodGVzdC0+bV93ZWJWaWV3LCAi
cmVzb3VyY2UtbG9hZC1zdGFydGVkIiwgR19DQUxMQkFDSyhyZXBsYWNlZENvbnRlbnRSZXNvdXJj
ZUxvYWRTdGFydGVkQ2FsbGJhY2spLCB0ZXN0KTsKLSAgICB0ZXN0LT5yZXBsYWNlQ29udGVudChy
ZXBsYWNlZEh0bWwsICJodHRwOi8vZXJyb3ItcGFnZS5mb28iLCAwKTsKLSAgICB0ZXN0LT53YWl0
VW50aWxUaXRsZUNoYW5nZWRUbygiTG9hZGVkIik7Ci0KLSAgICBnX2Fzc2VydCghd2Via2l0X3dl
Yl92aWV3X2dldF9tYWluX3Jlc291cmNlKHRlc3QtPm1fd2ViVmlldykpOwotICAgIGdfYXNzZXJ0
KCF3ZWJraXRfd2ViX3ZpZXdfZ2V0X3N1YnJlc291cmNlcyh0ZXN0LT5tX3dlYlZpZXcpKTsKLX0K
LQogc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdSZXNvdXJjZXNIaXN0b3J5Q2FjaGUoU2luZ2xlUmVz
b3VyY2VMb2FkVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKICAgICB0ZXN0LT5sb2FkVVJJ
KGtTZXJ2ZXItPmdldFVSSUZvclBhdGgoIi8iKS5kYXRhKCkpOwpAQCAtNjM1LDcgKzYwOSw2IEBA
IHZvaWQgYmVmb3JlQWxsKCkKICAgICBTaW5nbGVSZXNvdXJjZUxvYWRUZXN0OjphZGQoIldlYktp
dFdlYlJlc291cmNlIiwgInN1Z2dlc3RlZC1maWxlbmFtZSIsIHRlc3RXZWJSZXNvdXJjZVN1Z2dl
c3RlZEZpbGVuYW1lKTsKICAgICBSZXNvdXJjZVVSSVRyYWNraW5nVGVzdDo6YWRkKCJXZWJLaXRX
ZWJSZXNvdXJjZSIsICJhY3RpdmUtdXJpIiwgdGVzdFdlYlJlc291cmNlQWN0aXZlVVJJKTsKICAg
ICBSZXNvdXJjZXNUZXN0OjphZGQoIldlYktpdFdlYlJlc291cmNlIiwgImdldC1kYXRhIiwgdGVz
dFdlYlJlc291cmNlR2V0RGF0YSk7Ci0gICAgUmVzb3VyY2VzVGVzdDo6YWRkKCJXZWJLaXRXZWJW
aWV3IiwgInJlcGxhY2VkLWNvbnRlbnQiLCB0ZXN0V2ViVmlld1Jlc291cmNlc1JlcGxhY2VkQ29u
dGVudCk7CiAgICAgU2luZ2xlUmVzb3VyY2VMb2FkVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3Iiwg
Imhpc3RvcnktY2FjaGUiLCB0ZXN0V2ViVmlld1Jlc291cmNlc0hpc3RvcnlDYWNoZSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RX
ZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3Rz
L1Rlc3RXZWJLaXRXZWJWaWV3LmNwcAppbmRleCAyMjc5NmJmLi5jYzY3YzVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdl
YktpdFdlYlZpZXcuY3BwCkBAIC03NCwyNCArNzQsNiBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmll
d1NldHRpbmdzKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0
KHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX2phdmFzY3JpcHQoc2V0dGluZ3MpKTsKIH0KIAot
c3RhdGljIHZvaWQgcmVwbGFjZUNvbnRlbnRMb2FkQ2FsbGJhY2soV2ViS2l0V2ViVmlldyogd2Vi
VmlldywgV2ViS2l0TG9hZEV2ZW50IGxvYWRFdmVudCwgV2ViVmlld1Rlc3QqIHRlc3QpCi17Ci0g
ICAgLy8gVGhlcmUgbWlnaHQgYmUgYW4gZXZlbnQgZnJvbSBhIHByZXZpb3VzIGxvYWQsCi0gICAg
Ly8gYnV0IG5ldmVyIGEgV0VCS0lUX0xPQURfU1RBUlRFRCBhZnRlciB3ZWJraXRfd2ViX3ZpZXdf
cmVwbGFjZV9jb250ZW50KCkuCi0gICAgZ19hc3NlcnRfY21waW50KGxvYWRFdmVudCwgIT0sIFdF
QktJVF9MT0FEX1NUQVJURUQpOwotfQotCi1zdGF0aWMgdm9pZCB0ZXN0V2ViVmlld1JlcGxhY2VD
b250ZW50KFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQotewotICAgIHRlc3QtPmxv
YWRIdG1sKCI8aHRtbD48aGVhZD48dGl0bGU+UmVwbGFjZSBDb250ZW50IFRlc3Q8L3RpdGxlPjwv
aGVhZD48Ym9keT5Db250ZW50IHRvIHJlcGxhY2U8L2JvZHk+PC9odG1sPiIsIDApOwotICAgIHRl
c3QtPndhaXRVbnRpbFRpdGxlQ2hhbmdlZFRvKCJSZXBsYWNlIENvbnRlbnQgVGVzdCIpOwotCi0g
ICAgZ19zaWduYWxfY29ubmVjdCh0ZXN0LT5tX3dlYlZpZXcsICJsb2FkLWNoYW5nZWQiLCBHX0NB
TExCQUNLKHJlcGxhY2VDb250ZW50TG9hZENhbGxiYWNrKSwgdGVzdCk7Ci0gICAgdGVzdC0+cmVw
bGFjZUNvbnRlbnQoIjxodG1sPjxib2R5IG9ubG9hZD0nZG9jdW1lbnQudGl0bGU9XCJDb250ZW50
IFJlcGxhY2VkXCInPk5ldyBDb250ZW50PC9ib2R5PjwvaHRtbD4iLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICJodHRwOi8vZm9vLmNvbS9iYXIiLCAwKTsKLSAgICB0ZXN0LT53YWl0VW50aWxU
aXRsZUNoYW5nZWRUbygiQ29udGVudCBSZXBsYWNlZCIpOwotfQotCiBzdGF0aWMgY29uc3QgY2hh
cioga0FsZXJ0RGlhbG9nTWVzc2FnZSA9ICJXZWJLaXRHVEsrIGFsZXJ0IGRpYWxvZyBtZXNzYWdl
IjsKIHN0YXRpYyBjb25zdCBjaGFyKiBrQ29uZmlybURpYWxvZ01lc3NhZ2UgPSAiV2ViS2l0R1RL
KyBjb25maXJtIGRpYWxvZyBtZXNzYWdlIjsKIHN0YXRpYyBjb25zdCBjaGFyKiBrUHJvbXB0RGlh
bG9nTWVzc2FnZSA9ICJXZWJLaXRHVEsrIHByb21wdCBkaWFsb2cgbWVzc2FnZSI7CkBAIC0xMDQ4
LDcgKzEwMzAsNiBAQCB2b2lkIGJlZm9yZUFsbCgpCiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2Vi
S2l0V2ViVmlldyIsICJkZWZhdWx0LWNvbnRleHQiLCB0ZXN0V2ViVmlld0RlZmF1bHRDb250ZXh0
KTsKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImN1c3RvbS1jaGFyc2V0
IiwgdGVzdFdlYlZpZXdDdXN0b21DaGFyc2V0KTsKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJL
aXRXZWJWaWV3IiwgInNldHRpbmdzIiwgdGVzdFdlYlZpZXdTZXR0aW5ncyk7Ci0gICAgV2ViVmll
d1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJyZXBsYWNlLWNvbnRlbnQiLCB0ZXN0V2ViVmll
d1JlcGxhY2VDb250ZW50KTsKICAgICBVSUNsaWVudFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIs
ICJjcmVhdGUtcmVhZHktY2xvc2UiLCB0ZXN0V2ViVmlld0NyZWF0ZVJlYWR5Q2xvc2UpOwogICAg
IE1vZGFsRGlhbG9nc1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJhbGxvdy1tb2RhbC1kaWFs
b2dzIiwgdGVzdFdlYlZpZXdBbGxvd01vZGFsRGlhbG9ncyk7CiAgICAgTW9kYWxEaWFsb2dzVGVz
dDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImRpc2FsbG93LW1vZGFsLWRpYWxvZ3MiLCB0ZXN0V2Vi
Vmlld0Rpc2FsbG93TW9kYWxEaWFsb2dzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYlZpZXdUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYlZpZXdUZXN0LmNwcAppbmRleCAxNmU4MWY4NS4uYThk
MjBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMv
V2ViVmlld1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rl
c3RzL1dlYlZpZXdUZXN0LmNwcApAQCAtNzEsMTAgKzcxLDEwIEBAIHZvaWQgV2ViVmlld1Rlc3Q6
OmxvYWRSZXF1ZXN0KFdlYktpdFVSSVJlcXVlc3QqIHJlcXVlc3QpCiAgICAgd2Via2l0X3dlYl92
aWV3X2xvYWRfcmVxdWVzdChtX3dlYlZpZXcsIHJlcXVlc3QpOwogfQogCi12b2lkIFdlYlZpZXdU
ZXN0OjpyZXBsYWNlQ29udGVudChjb25zdCBjaGFyKiBodG1sLCBjb25zdCBjaGFyKiBjb250ZW50
VVJJLCBjb25zdCBjaGFyKiBiYXNlVVJJKQordm9pZCBXZWJWaWV3VGVzdDo6bG9hZEFsdGVybmF0
ZUhUTUwoY29uc3QgY2hhciogaHRtbCwgY29uc3QgY2hhciogY29udGVudFVSSSwgY29uc3QgY2hh
ciogYmFzZVVSSSkKIHsKICAgICBtX2FjdGl2ZVVSSSA9IGNvbnRlbnRVUkk7Ci0gICAgd2Via2l0
X3dlYl92aWV3X3JlcGxhY2VfY29udGVudChtX3dlYlZpZXcsIGh0bWwsIGNvbnRlbnRVUkksIGJh
c2VVUkkpOworICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX2FsdGVybmF0ZV9odG1sKG1fd2ViVmll
dywgaHRtbCwgY29udGVudFVSSSwgYmFzZVVSSSk7CiB9CiAKIHZvaWQgV2ViVmlld1Rlc3Q6Omdv
QmFjaygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0
cy9XZWJWaWV3VGVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMv
V2ViVmlld1Rlc3QuaAppbmRleCBjYTI2NDllLi4yNTIwOWNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJWaWV3VGVzdC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYlZpZXdUZXN0LmgKQEAgLTM1LDcg
KzM1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2FkSHRtbChjb25zdCBjaGFyKiBo
dG1sLCBjb25zdCBjaGFyKiBiYXNlVVJJKTsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZFBsYWluVGV4
dChjb25zdCBjaGFyKiBwbGFpblRleHQpOwogICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVxdWVzdChX
ZWJLaXRVUklSZXF1ZXN0Kik7Ci0gICAgdm9pZCByZXBsYWNlQ29udGVudChjb25zdCBjaGFyKiBo
dG1sLCBjb25zdCBjaGFyKiBjb250ZW50VVJJLCBjb25zdCBjaGFyKiBiYXNlVVJJKTsKKyAgICB2
b2lkIGxvYWRBbHRlcm5hdGVIVE1MKGNvbnN0IGNoYXIqIGh0bWwsIGNvbnN0IGNoYXIqIGNvbnRl
bnRVUkksIGNvbnN0IGNoYXIqIGJhc2VVUkkpOwogICAgIHZvaWQgZ29CYWNrKCk7CiAgICAgdm9p
ZCBnb0ZvcndhcmQoKTsKICAgICB2b2lkIGdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYktpdEJh
Y2tGb3J3YXJkTGlzdEl0ZW0qKTsK
</data>
<flag name="review"
          id="169698"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>