<?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>173770</bug_id>
          
          <creation_ts>2017-06-23 09:19:20 -0700</creation_ts>
          <short_desc>[WPE] Add env var WPE_USE_HEADLESS_VIEW_BACKEND</short_desc>
          <delta_ts>2017-11-20 01:48:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WPE WebKit</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>178655</dependson>
          <blocked>173772</blocked>
    
    <blocked>179817</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>buildbot</cc>
    
    <cc>clopez</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1322304</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-23 09:19:20 -0700</bug_when>
    <thetext>To automatically create the views with the headless view backend. Right now the headless view backend is only used by WTR using WKViewCreateWithViewBackend. However, we want to use the headless backend to run the unit tests too. We still don&apos;t have glib API to create a WebKitWebView with a custom WPE view backend, and even in that case, using a different webkit_web_view_new function in the tests would require adding ifdefs in every single case since GTK+ doesn&apos;t have such AI, of course. Also, we would need to find a place to share the headless view backend implementation. Using an environment variable we can simply add a headless driver to webkitpy, used by default, that ensures the WPE_USE_HEADLESS_VIEW_BACKEND variable is present in the environment. Then, we can move the headless view backend to WKWPE and use it in the View constructor when no backend is given and the variable WPE_USE_HEADLESS_VIEW_BACKEND is present and enabled. This will make unit tests work automatically once we add run-wpe-tests scripts, and also allows to run the layout tests in X11 without having to unset environment variables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322306</commentid>
    <comment_count>1</comment_count>
      <attachid>313722</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-23 09:24:14 -0700</bug_when>
    <thetext>Created attachment 313722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322309</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-06-23 09:26:11 -0700</bug_when>
    <thetext>Attachment 313722 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/wpe/HeadlessViewBackend.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322315</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-23 09:33:56 -0700</bug_when>
    <thetext>It failed to build in EWS, it works here, maybe it needs a clean build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322778</commentid>
    <comment_count>4</comment_count>
      <attachid>313722</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-06-26 02:46:51 -0700</bug_when>
    <thetext>Comment on attachment 313722
Patch

We can&apos;t add a WPEBackend-mesa dependency to libWPEWebKit. I didn&apos;t account for that.

Same approach should be taken as with WKTR, creating a custom headless view backend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322779</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-26 02:50:24 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #4)
&gt; Comment on attachment 313722 [details]
&gt; Patch
&gt; 
&gt; We can&apos;t add a WPEBackend-mesa dependency to libWPEWebKit. I didn&apos;t account
&gt; for that.

Ah :-( Could you elaborate? what&apos;s the problem of making libWPEWebKit link to WPEBackend-mesa?

&gt; Same approach should be taken as with WKTR, creating a custom headless view
&gt; backend.

What do you mean? Using a different headless view backend that doesn&apos;t need WPEBackend-mesa?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322781</commentid>
    <comment_count>6</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-06-26 02:59:48 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #5)
&gt; (In reply to Zan Dobersek from comment #4)
&gt; &gt; Comment on attachment 313722 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; We can&apos;t add a WPEBackend-mesa dependency to libWPEWebKit. I didn&apos;t account
&gt; &gt; for that.
&gt; 
&gt; Ah :-( Could you elaborate? what&apos;s the problem of making libWPEWebKit link
&gt; to WPEBackend-mesa?
&gt; 

Because other platforms can&apos;t use that, so it can&apos;t be depended on universally.

&gt; &gt; Same approach should be taken as with WKTR, creating a custom headless view
&gt; &gt; backend.
&gt; 
&gt; What do you mean? Using a different headless view backend that doesn&apos;t need
&gt; WPEBackend-mesa?

We still use WPEBackend-mesa as a reference backend implementation, and depend on it for testing. There&apos;s no generic exportable interface, but it might make sense to look into creating one. But for now we have to leverage WPEBackend-mesa, just not as a hard-coded dependency of the main libWPEWebKit.so library.

What could be used for unit tests is basically a pass-through wpe_mesa_view_backend_exportable_dma_buf_client implementation. The export_dma_buf callback would only call wpe_mesa_view_backend_exportable_dma_buf_dispatch_frame_complete() and wpe_mesa_view_backend_exportable_dma_buf_dispatch_release_buffer(), and not bother with any other operation like we do in the WKTR HeadlessViewBackend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322782</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-26 03:05:12 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #6)
&gt; (In reply to Carlos Garcia Campos from comment #5)
&gt; &gt; (In reply to Zan Dobersek from comment #4)
&gt; &gt; &gt; Comment on attachment 313722 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; We can&apos;t add a WPEBackend-mesa dependency to libWPEWebKit. I didn&apos;t account
&gt; &gt; &gt; for that.
&gt; &gt; 
&gt; &gt; Ah :-( Could you elaborate? what&apos;s the problem of making libWPEWebKit link
&gt; &gt; to WPEBackend-mesa?
&gt; &gt; 
&gt; 
&gt; Because other platforms can&apos;t use that, so it can&apos;t be depended on
&gt; universally.

I see.

&gt; &gt; &gt; Same approach should be taken as with WKTR, creating a custom headless view
&gt; &gt; &gt; backend.
&gt; &gt; 
&gt; &gt; What do you mean? Using a different headless view backend that doesn&apos;t need
&gt; &gt; WPEBackend-mesa?
&gt; 
&gt; We still use WPEBackend-mesa as a reference backend implementation, and
&gt; depend on it for testing. There&apos;s no generic exportable interface, but it
&gt; might make sense to look into creating one. But for now we have to leverage
&gt; WPEBackend-mesa, just not as a hard-coded dependency of the main
&gt; libWPEWebKit.so library.

Understood.

&gt; What could be used for unit tests is basically a pass-through
&gt; wpe_mesa_view_backend_exportable_dma_buf_client implementation. The
&gt; export_dma_buf callback would only call
&gt; wpe_mesa_view_backend_exportable_dma_buf_dispatch_frame_complete() and
&gt; wpe_mesa_view_backend_exportable_dma_buf_dispatch_release_buffer(), and not
&gt; bother with any other operation like we do in the WKTR HeadlessViewBackend.

I&apos;m not familiar enough with WPE yet to understand this, thought :-P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1355721</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-10-03 00:32:45 -0700</bug_when>
    <thetext>Oops, sorry, yusuke and Caio I added you to the wrong bug :-P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373018</commentid>
    <comment_count>9</comment_count>
      <attachid>327162</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-11-17 03:22:23 -0800</bug_when>
    <thetext>Created attachment 327162
New patch

This won&apos;t apply because it depends on the patch adding the new API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373082</commentid>
    <comment_count>10</comment_count>
      <attachid>327162</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-11-17 08:51:20 -0800</bug_when>
    <thetext>Comment on attachment 327162
New patch

Looks good to me, but maybe you should wait for Zan as this obviously does not implement his suggestion regarding the wpe_mesa_view_backend_exportable_dma_buf_client... thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373751</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-11-20 01:48:04 -0800</bug_when>
    <thetext>Committed r225045: &lt;https://trac.webkit.org/changeset/225045&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>313722</attachid>
            <date>2017-06-23 09:24:14 -0700</date>
            <delta_ts>2017-11-17 03:22:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wpe-headless-driver.diff</filename>
            <type>text/plain</type>
            <size>20721</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAxM2E3YzkxOTE4Zi4uNGUyYTk4NjU3OTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzNSBAQAogMjAxNy0wNi0yMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKKyAgICAgICAgW1dQRV0gQWRkIGVudiB2YXIgV1BFX1VTRV9IRUFETEVTU19W
SUVXX0JBQ0tFTkQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3Mzc3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIHRoZSB2aWV3cyB3aXRoIHRoZSBoZWFkbGVzcyB2
aWV3IGJhY2tlbmQuIFJpZ2h0IG5vdywgdGhlIGhlYWRsZXNzIHZpZXcgYmFja2VuZCBpcyBvbmx5
CisgICAgICAgIHVzZWQgYnkgV1RSIHVzaW5nIFdLVmlld0NyZWF0ZVdpdGhWaWV3QmFja2VuZC4g
SG93ZXZlciwgd2Ugd2FudCB0byB1c2UgdGhlIGhlYWRsZXNzIGJhY2tlbmQgdG8gcnVuIHRoZSB1
bml0CisgICAgICAgIHRlc3RzIHRvby4gV2Ugc3RpbGwgZG9uJ3QgaGF2ZSBnbGliIEFQSSB0byBj
cmVhdGUgYSBXZWJLaXRXZWJWaWV3IHdpdGggYSBjdXN0b20gV1BFIHZpZXcgYmFja2VuZCwgYW5k
IGV2ZW4gaW4KKyAgICAgICAgdGhhdCBjYXNlLCB1c2luZyBhIGRpZmZlcmVudCB3ZWJraXRfd2Vi
X3ZpZXdfbmV3IGZ1bmN0aW9uIGluIHRoZSB0ZXN0cyB3b3VsZCByZXF1aXJlIGFkZGluZyBpZmRl
ZnMgaW4gZXZlcnkKKyAgICAgICAgc2luZ2xlIGNhc2Ugc2luY2UgR1RLKyBkb2Vzbid0IGhhdmUg
c3VjaCBBUEksIG9mIGNvdXJzZS4gQWxzbywgd2Ugd291bGQgbmVlZCB0byBmaW5kIGEgcGxhY2Ug
dG8gc2hhcmUgdGhlCisgICAgICAgIGhlYWRsZXNzIHZpZXcgYmFja2VuZCBpbXBsZW1lbnRhdGlv
bi4gVXNpbmcgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgd2UgY2FuIHNpbXBseSBhZGQgYSBoZWFk
bGVzcyBkcml2ZXIgdG8KKyAgICAgICAgd2Via2l0cHksIHVzZWQgYnkgZGVmYXVsdCwgdGhhdCBl
bnN1cmVzIHRoZSBXUEVfVVNFX0hFQURMRVNTX1ZJRVdfQkFDS0VORCB2YXJpYWJsZSBpcyBwcmVz
ZW50IGluIHRoZQorICAgICAgICBlbnZpcm9ubWVudC4gVGhlbiwgd2UgY2FuIG1vdmUgdGhlIGhl
YWRsZXNzIHZpZXcgYmFja2VuZCB0byBXS1dQRSBhbmQgdXNlIGl0IGluIHRoZSBWaWV3IGNvbnN0
cnVjdG9yIHdoZW4gbm8KKyAgICAgICAgYmFja2VuZCBpcyBnaXZlbiBhbmQgdGhlIHZhcmlhYmxl
IFdQRV9VU0VfSEVBRExFU1NfVklFV19CQUNLRU5EIGlzIHByZXNlbnQgYW5kIGVuYWJsZWQuIFRo
aXMgd2lsbCBtYWtlIHVuaXQKKyAgICAgICAgdGVzdHMgd29yayBhdXRvbWF0aWNhbGx5IG9uY2Ug
d2UgYWRkIHJ1bi13cGUtdGVzdHMgc2NyaXB0LCBhbmQgYWxzbyBhbGxvd3MgdG8gcnVuIHRoZSBs
YXlvdXQgdGVzdHMgaW4gWDExCisgICAgICAgIHdpdGhvdXQgaGF2aW5nIHRvIHVuc2V0IGVudmly
b25tZW50IHZhcmlhYmxlcy4KKworICAgICAgICAqIFBsYXRmb3JtV1BFLmNtYWtlOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmNwcDoKKyAgICAgICAgKFdLVmlld0NyZWF0
ZVNuYXBzaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwOiBSZW5hbWVk
IGZyb20gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5jcHAu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5oOiBSZW5h
bWVkIGZyb20gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5o
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwOgorICAgICAgICAoV0tX
UEU6Om1fY29tcG9zaXRpbmdNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV0tXUEU6OlZpZXc6OnNu
YXBzaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Lmg6CisKKzIwMTct
MDYtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCiAgICAg
ICAgIFtXUEVdIENyYXNoIGluIHdwZV92aWV3X2JhY2tlbmRfZ2V0X3JlbmRlcmVyX2hvc3RfZmQK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzc2MAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybVdQRS5jbWFrZSBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtV1BFLmNtYWtlCmluZGV4IGI2NTY0ZTliYzFiLi4yNTMwNzEwNzBkOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTE4OSw2ICsxODksNyBAQCBsaXN0KEFQUEVO
RCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2luZG93UHJv
cGVydGllcy5jcHAKIAogICAgIFVJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclBy
b3h5LmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwCiAgICAgVUlQcm9jZXNzL0FQ
SS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS93cGUv
V2ViS2l0V2ViVmlld1dQRS5jcHAKQEAgLTQxOCw4ICs0MTksMTAgQEAgbGlzdChBUFBFTkQgV2Vi
S2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgJHtHTElCX0lOQ0xVREVfRElSU30KICAgICAk
e0dTVFJFQU1FUl9JTkNMVURFX0RJUlN9CiAgICAgJHtIQVJGQlVaWl9JTkNMVURFX0RJUlN9Cisg
ICAgJHtMSUJHQk1fSU5DTFVERV9ESVJTfQogICAgICR7TElCU09VUF9JTkNMVURFX0RJUlN9CiAg
ICAgJHtXUEVfSU5DTFVERV9ESVJTfQorICAgICR7V1BFX01FU0FfSU5DTFVERV9ESVJTfQogKQog
CiBsaXN0KEFQUEVORCBXZWJLaXQyX0xJQlJBUklFUwpAQCAtNDI5LDggKzQzMiwxMCBAQCBsaXN0
KEFQUEVORCBXZWJLaXQyX0xJQlJBUklFUwogICAgICR7R0xJQl9MSUJSQVJJRVN9CiAgICAgJHtH
U1RSRUFNRVJfTElCUkFSSUVTfQogICAgICR7SEFSRkJVWlpfTElCUkFSSUVTfQorICAgICR7TElC
R0JNX0xJQlJBUklFU30KICAgICAke0xJQlNPVVBfTElCUkFSSUVTfQogICAgICR7V1BFX0xJQlJB
UklFU30KKyAgICAke1dQRV9NRVNBX0xJQlJBUklFU30KICkKIAogc2V0KEluc3BlY3RvckZpbGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHAKaW5kZXgg
YWRjM2RlMDllNGMuLjQzMDFmYTJmZjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL3dwZS9XS1ZpZXcuY3BwCkBAIC04MCwzICs4MCw4IEBAIHZvaWQgV0tWaWV3U2V0Vmll
d0NsaWVudChXS1ZpZXdSZWYgdmlldywgY29uc3QgV0tWaWV3Q2xpZW50QmFzZSogY2xpZW50KQog
CiAgICAgdG9JbXBsKHZpZXcpLT5zZXRDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxWaWV3Q2xpZW50
PihjbGllbnQpKTsKIH0KKworY2Fpcm9fc3VyZmFjZV90KiBXS1ZpZXdDcmVhdGVTbmFwc2hvdChX
S1ZpZXdSZWYgdmlldykKK3sKKyAgICByZXR1cm4gdG9JbXBsKHZpZXcpLT5zbmFwc2hvdCgpOwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmgKaW5kZXggNTU5
ZWMyYjQ1YjUuLjJlM2UwN2IwYjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0Mvd3BlL1dLVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy93cGUvV0tWaWV3LmgKQEAgLTY0LDYgKzY0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgV0tWaWV3Q2xp
ZW50VjAgewogCiBXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRWaWV3Q2xpZW50KFdLVmlld1JlZiwg
Y29uc3QgV0tWaWV3Q2xpZW50QmFzZSopOwogCitXS19FWFBPUlQgY2Fpcm9fc3VyZmFjZV90KiBX
S1ZpZXdDcmVhdGVTbmFwc2hvdChXS1ZpZXdSZWYpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NW
aWV3QmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9IZWFkbGVz
c1ZpZXdCYWNrZW5kLmNwcApzaW1pbGFyaXR5IGluZGV4IDk5JQpyZW5hbWUgZnJvbSBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcApyZW5hbWUgdG8gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5jcHAKaW5k
ZXggNTYwYjQwYTNlZmIuLjM2ZThiNzIwNzExIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcApAQCAtMzAsNiArMzAsOCBA
QAogI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAKK25hbWVzcGFjZSBX
S1dQRSB7CisKIC8vIEZJWE1FOiBEZXBsb3kgZ29vZCBwcmFjdGljZXMgYW5kIGNsZWFuIHVwIEdC
TSByZXNvdXJjZXMgYXQgcHJvY2VzcyBleGl0Lgogc3RhdGljIEVHTERpc3BsYXkgZ2V0RUdMRGlz
cGxheSgpCiB7CkBAIC0yNDgsMyArMjUwLDUgQEAgc3RydWN0IHdwZV9tZXNhX3ZpZXdfYmFja2Vu
ZF9leHBvcnRhYmxlX2RtYV9idWZfY2xpZW50IEhlYWRsZXNzVmlld0JhY2tlbmQ6OnNfZXgKICAg
ICAgICAgYmFja2VuZC5tX3BlbmRpbmdJbWFnZSA9IHsgaW1hZ2VEYXRhLT5oYW5kbGUsIHN0ZDo6
bWFrZV90dXBsZShpbWFnZSwgaW1hZ2VEYXRhLT53aWR0aCwgaW1hZ2VEYXRhLT5oZWlnaHQpIH07
CiAgICAgfSwKIH07CisKK30gLy8gbmFtZXNwYWNlIFdLV1BFCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmgKc2ltaWxhcml0eSBpbmRl
eCA5OCUKcmVuYW1lIGZyb20gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NWaWV3
QmFja2VuZC5oCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9IZWFk
bGVzc1ZpZXdCYWNrZW5kLmgKaW5kZXggNjIxODYxMjFhOGMuLjliOTQyZTliOTY4IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5o
CkBAIC0zNSw2ICszNSw4IEBACiAjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KICNpbmNsdWRlIDx3
cGUtbWVzYS92aWV3LWJhY2tlbmQtZXhwb3J0YWJsZS1kbWEtYnVmLmg+CiAKK25hbWVzcGFjZSBX
S1dQRSB7CisKIGNsYXNzIEhlYWRsZXNzVmlld0JhY2tlbmQgewogcHVibGljOgogICAgIEhlYWRs
ZXNzVmlld0JhY2tlbmQoKTsKQEAgLTY5LDMgKzcxLDUgQEAgcHJpdmF0ZToKICAgICBHU291cmNl
KiBtX3VwZGF0ZVNvdXJjZTsKICAgICBnaW50NjQgbV9mcmFtZVJhdGUgeyBHX1VTRUNfUEVSX1NF
QyAvIDYwIH07CiB9OworCit9IC8vIG5hbWVzcGFjZSBXS1dQRQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcAppbmRleCA1NTY1NjQ1MDZlNC4uNzkwMzgxYjZm
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwCkBA
IC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNs
dWRlICJBUElWaWV3Q2xpZW50LmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgorI2lu
Y2x1ZGUgIkhlYWRsZXNzVmlld0JhY2tlbmQuaCIKICNpbmNsdWRlICJOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk5h
dGl2ZVdlYlRvdWNoRXZlbnQuaCIKQEAgLTY3LDYgKzY4LDE1IEBAIFZpZXc6OlZpZXcoc3RydWN0
IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQsIGNvbnN0IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24m
IGJhc2VDCiAgICAgbV9wYWdlUHJveHkgPSBwb29sLT5jcmVhdGVXZWJQYWdlKCptX3BhZ2VDbGll
bnQsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOwogCiAgICAgbV9iYWNrZW5kID0gYmFja2VuZDsK
KyNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpCisgICAgaWYgKCFtX2JhY2tlbmQpIHsKKyAgICAg
ICAgY29uc3QgY2hhciogdXNlSGVhZGxlc3NWaWV3QmFja2VuZCA9IHN0ZDo6Z2V0ZW52KCJXUEVf
VVNFX0hFQURMRVNTX1ZJRVdfQkFDS0VORCIpOworICAgICAgICBpZiAodXNlSGVhZGxlc3NWaWV3
QmFja2VuZCAmJiBzdHJjbXAodXNlSGVhZGxlc3NWaWV3QmFja2VuZCwgIjAiKSkgeworICAgICAg
ICAgICAgbV93aW5kb3cgPSBzdGQ6Om1ha2VfdW5pcXVlPEhlYWRsZXNzVmlld0JhY2tlbmQ+KCk7
CisgICAgICAgICAgICBtX2JhY2tlbmQgPSBtX3dpbmRvdy0+YmFja2VuZCgpOworICAgICAgICB9
CisgICAgfQorI2VuZGlmCiAgICAgaWYgKCFtX2JhY2tlbmQpCiAgICAgICAgIG1fYmFja2VuZCA9
IHdwZV92aWV3X2JhY2tlbmRfY3JlYXRlKCk7CiAgICAgbV9jb21wb3NpdGluZ01hbmFnZXJQcm94
eS5pbml0aWFsaXplKCk7CkBAIC0xODAsNCArMTkwLDkgQEAgdm9pZCBWaWV3OjpjbG9zZSgpCiAg
ICAgbV9wYWdlUHJveHktPmNsb3NlKCk7CiB9CiAKK2NhaXJvX3N1cmZhY2VfdCogVmlldzo6c25h
cHNob3QoKQoreworICAgIHJldHVybiBtX3dpbmRvdyA/IG1fd2luZG93LT5jcmVhdGVTbmFwc2hv
dCgpIDogbnVsbHB0cjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV0tXUEUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaAppbmRleCBmZjgyZmJlN2VlMy4uNzdkOTI5MDFi
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmgKQEAgLTQ4
LDYgKzQ4LDggQEAgY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiAKIG5hbWVzcGFjZSBXS1dQRSB7CiAK
K2NsYXNzIEhlYWRsZXNzVmlld0JhY2tlbmQ7CisKIGNsYXNzIFZpZXcgOiBwdWJsaWMgQVBJOjpP
YmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpWaWV3PiB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFZpZXcqIGNyZWF0ZShzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCwgY29uc3QgQVBJ
OjpQYWdlQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKQEAgLTczLDYgKzc1LDggQEAgcHVi
bGljOgogCiAgICAgdm9pZCBjbG9zZSgpOwogCisgICAgY2Fpcm9fc3VyZmFjZV90KiBzbmFwc2hv
dCgpOworCiBwcml2YXRlOgogICAgIFZpZXcoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqLCBjb25z
dCBBUEk6OlBhZ2VDb25maWd1cmF0aW9uJik7CiAKQEAgLTg2LDYgKzkwLDcgQEAgcHJpdmF0ZToK
ICAgICBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFncyBtX3ZpZXdTdGF0ZUZsYWdzOwogCiAg
ICAgV2ViS2l0OjpDb21wb3NpdGluZ01hbmFnZXJQcm94eSBtX2NvbXBvc2l0aW5nTWFuYWdlclBy
b3h5OworICAgIHN0ZDo6dW5pcXVlX3B0cjxIZWFkbGVzc1ZpZXdCYWNrZW5kPiBtX3dpbmRvdzsK
ICAgICBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogbV9iYWNrZW5kOwogfTsKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDExZTVhZjEyOTcxLi43
OWZjZTQ3YjMxNCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDE3LTA2LTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAorICAgICAgICBbV1BFXSBBZGQgZW52IHZhciBXUEVfVVNF
X0hFQURMRVNTX1ZJRVdfQkFDS0VORAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTczNzcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvaGVhZGxlc3Nkcml2ZXIucHk6
IEFkZGVkLgorICAgICAgICAoSGVhZGxlc3NEcml2ZXIpOgorICAgICAgICAoSGVhZGxlc3NEcml2
ZXIuX3NldHVwX2Vudmlyb25fZm9yX3Rlc3QpOgorICAgICAgICAoSGVhZGxlc3NEcml2ZXIuX3N0
YXJ0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvaGVhZGxlc3Nkcml2ZXJfdW5p
dHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoSGVhZGxlc3NEcml2ZXJUZXN0KToKKyAgICAgICAg
KEhlYWRsZXNzRHJpdmVyVGVzdC5tYWtlX2RyaXZlcik6CisgICAgICAgIChIZWFkbGVzc0RyaXZl
clRlc3QubWFrZV9lbnZpcm9ubWVudCk6CisgICAgICAgIChIZWFkbGVzc0RyaXZlclRlc3QudGVz
dF9lbnZpcm9ubWVudF9uZWVkZWRfdmFyaWFibGVzKToKKyAgICAgICAgKEhlYWRsZXNzRHJpdmVy
VGVzdC50ZXN0X2Vudmlyb25tZW50X2ZvcmJpZGRlbl92YXJpYWJsZXMpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvcG9ydC93cGUucHk6CisgICAgICAgIChXUEVQb3J0KToKKyAgICAgICAg
KFdQRVBvcnQuX2RyaXZlcl9jbGFzcyk6IFVzZSBhbHdheXMgSGVhZGxlc3NEcml2ZXIuCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdQRS5jbWFrZToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHA6CisgICAgICAgIChXVFI6OlBsYXRmb3JtV2Vi
Vmlldzo6UGxhdGZvcm1XZWJWaWV3KTogVXNlIFdLVmlld0NyZWF0ZS4KKyAgICAgICAgKFdUUjo6
UGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJWaWV3KTogUmVsZWFzZSB0aGUgdmlldy4KKyAg
ICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dTbmFwc2hvdEltYWdlKTogVXNlIFdL
Vmlld0NyZWF0ZVNuYXBzaG90LgorCisyMDE3LTA2LTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBbV1BFXSBVc2UgSlNDIEFQSSB0byBzZW5k
IHNjcmlwdCBtZXNzYWdlcyBmcm9tIHdlYiBleHRlbnNpb24gaW4gdGVzdHMKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzc1NwogCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaGVhZGxlc3Nkcml2ZXIucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvaGVhZGxlc3Nkcml2ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjljZTU3YzI4MzFjCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2hlYWRsZXNzZHJpdmVyLnB5CkBAIC0wLDAgKzEsNTQg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIworIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjCisjICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCisKK2Zyb20gd2Via2l0
cHkucG9ydC5kcml2ZXIgaW1wb3J0IERyaXZlcgorCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIo
X19uYW1lX18pCisKKworY2xhc3MgSGVhZGxlc3NEcml2ZXIoRHJpdmVyKToKKyAgICBkZWYgX3Nl
dHVwX2Vudmlyb25fZm9yX3Rlc3Qoc2VsZik6CisgICAgICAgIGRyaXZlcl9lbnZpcm9ubWVudCA9
IHNlbGYuX3BvcnQuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlbGYuX3NlcnZlcl9uYW1lKQor
ICAgICAgICBkcml2ZXJfZW52aXJvbm1lbnRbJ1dQRV9VU0VfSEVBRExFU1NfVklFV19CQUNLRU5E
J10gPSAiMSIKKyAgICAgICAgZHJpdmVyX2Vudmlyb25tZW50WydMT0NBTF9SRVNPVVJDRV9ST09U
J10gPSBzZWxmLl9wb3J0LmxheW91dF90ZXN0c19kaXIoKQorICAgICAgICBkcml2ZXJfZW52aXJv
bm1lbnRbJ0RVTVBSRU5ERVJUUkVFX1RFTVAnXSA9IHN0cihzZWxmLl9kcml2ZXJfdGVtcGRpcikK
KyAgICAgICAgZHJpdmVyX2Vudmlyb25tZW50WydYREdfQ0FDSEVfSE9NRSddID0gc2VsZi5fcG9y
dC5ob3N0LmZpbGVzeXN0ZW0uam9pbihzdHIoc2VsZi5fZHJpdmVyX3RlbXBkaXIpLCAnYXBwY2Fj
aGUnKQorICAgICAgICByZXR1cm4gZHJpdmVyX2Vudmlyb25tZW50CisKKyAgICBkZWYgX3N0YXJ0
KHNlbGYsIHBpeGVsX3Rlc3RzLCBwZXJfdGVzdF9hcmdzKToKKyAgICAgICAgc3VwZXIoSGVhZGxl
c3NEcml2ZXIsIHNlbGYpLnN0b3AoKQorICAgICAgICBzZWxmLl9kcml2ZXJfdGVtcGRpciA9IHNl
bGYuX3BvcnQuaG9zdC5maWxlc3lzdGVtLm1rZHRlbXAocHJlZml4PSclcy0nICUgc2VsZi5fc2Vy
dmVyX25hbWUpCisgICAgICAgIHNlbGYuX2NyYXNoZWRfcHJvY2Vzc19uYW1lID0gTm9uZQorICAg
ICAgICBzZWxmLl9jcmFzaGVkX3BpZCA9IE5vbmUKKyAgICAgICAgc2VsZi5fc2VydmVyX3Byb2Nl
c3MgPSBzZWxmLl9wb3J0Ll9zZXJ2ZXJfcHJvY2Vzc19jb25zdHJ1Y3RvcihzZWxmLl9wb3J0LCBz
ZWxmLl9zZXJ2ZXJfbmFtZSwgc2VsZi5jbWRfbGluZShwaXhlbF90ZXN0cywgcGVyX3Rlc3RfYXJn
cyksIHNlbGYuX3NldHVwX2Vudmlyb25fZm9yX3Rlc3QoKSkKKyAgICAgICAgc2VsZi5fc2VydmVy
X3Byb2Nlc3Muc3RhcnQoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L2hlYWRsZXNzZHJpdmVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L2hlYWRsZXNzZHJpdmVyX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi41MWU4NzBiZWEwYgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9oZWFkbGVzc2RyaXZlcl91bml0dGVzdC5weQpAQCAtMCwwICsxLDc1IEBA
CisjIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisj
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
IyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHdlYmtpdHB5LmNv
bW1vbi5zeXN0ZW0uc3lzdGVtaG9zdF9tb2NrIGltcG9ydCBNb2NrU3lzdGVtSG9zdAorZnJvbSB3
ZWJraXRweS5wb3J0IGltcG9ydCBQb3J0Citmcm9tIHdlYmtpdHB5LnBvcnQuc2VydmVyX3Byb2Nl
c3NfbW9jayBpbXBvcnQgTW9ja1NlcnZlclByb2Nlc3MKK2Zyb20gd2Via2l0cHkucG9ydC5oZWFk
bGVzc2RyaXZlciBpbXBvcnQgSGVhZGxlc3NEcml2ZXIKK2Zyb20gd2Via2l0cHkudGhpcmRwYXJ0
eS5tb2NrIGltcG9ydCBwYXRjaAorZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBN
b2NrT3B0aW9ucworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xh
c3MgSGVhZGxlc3NEcml2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgbWFrZV9k
cml2ZXIoc2VsZiwgd29ya2VyX251bWJlcj0wLCB4b3JnX3J1bm5pbmc9RmFsc2UsIGV4ZWN1dGl2
ZT1Ob25lKToKKyAgICAgICAgcG9ydCA9IFBvcnQoTW9ja1N5c3RlbUhvc3QobG9nX2V4ZWN1dGl2
ZT1UcnVlLCBleGVjdXRpdmU9ZXhlY3V0aXZlKSwgJ2hlYWRsZXNzZHJpdmVydGVzdHBvcnQnLCBv
cHRpb25zPU1vY2tPcHRpb25zKGNvbmZpZ3VyYXRpb249J1JlbGVhc2UnKSkKKyAgICAgICAgcG9y
dC5fY29uZmlnLmJ1aWxkX2RpcmVjdG9yeSA9IGxhbWJkYSBjb25maWd1cmF0aW9uOiAnL21vY2st
YnVpbGQnCisgICAgICAgIHBvcnQuX3NlcnZlcl9wcm9jZXNzX2NvbnN0cnVjdG9yID0gTW9ja1Nl
cnZlclByb2Nlc3MKKyAgICAgICAgZHJpdmVyID0gSGVhZGxlc3NEcml2ZXIocG9ydCwgd29ya2Vy
X251bWJlcj13b3JrZXJfbnVtYmVyLCBwaXhlbF90ZXN0cz1UcnVlKQorICAgICAgICBkcml2ZXIu
X3N0YXJ0dXBfZGVsYXlfc2VjcyA9IDAKKyAgICAgICAgZHJpdmVyLl9lbnZpcm9ubWVudCA9IHBv
cnQuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHBvcnQuZHJpdmVyX25hbWUoKSkKKyAgICAgICAg
cmV0dXJuIGRyaXZlcgorCisgICAgZGVmIG1ha2VfZW52aXJvbm1lbnQoc2VsZik6CisgICAgICAg
IGVudmlyb25tZW50X3VzZXIgPSB7J0RJU1BMQVknOiAnOjAuMCcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnWEFVVEhPUklUWSc6ICcvaG9tZS9pZ2FsaWEvLlhhdXRob3JpdHknLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ1dBWUxBTkRfRElTUExBWSc6ICd3YXlsYW5kLTAnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1dBWUxBTkRfU09DS0VUJzogJ3dheWxhbmQtMCd9
CisgICAgICAgIHJldHVybiBlbnZpcm9ubWVudF91c2VyCisKKyAgICBkZWYgdGVzdF9lbnZpcm9u
bWVudF9uZWVkZWRfdmFyaWFibGVzKHNlbGYpOgorICAgICAgICBkcml2ZXIgPSBzZWxmLm1ha2Vf
ZHJpdmVyKCkKKyAgICAgICAgZW52aXJvbm1lbnRfdXNlciA9IHNlbGYubWFrZV9lbnZpcm9ubWVu
dCgpCisgICAgICAgIHdpdGggcGF0Y2goJ29zLmVudmlyb24nLCBlbnZpcm9ubWVudF91c2VyKToK
KyAgICAgICAgICAgIGRyaXZlcl9lbnZpcm9ubWVudCA9IGRyaXZlci5fc2V0dXBfZW52aXJvbl9m
b3JfdGVzdCgpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCdXUEVfVVNFX0hFQURMRVNTX1ZJ
RVdfQkFDS0VORCcsIGRyaXZlcl9lbnZpcm9ubWVudCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZHJpdmVyX2Vudmlyb25tZW50WydXUEVfVVNFX0hFQURMRVNTX1ZJRVdfQkFDS0VORCdd
LCAnMScsICkKKworICAgIGRlZiB0ZXN0X2Vudmlyb25tZW50X2ZvcmJpZGRlbl92YXJpYWJsZXMo
c2VsZik6CisgICAgICAgIGRyaXZlciA9IHNlbGYubWFrZV9kcml2ZXIoKQorICAgICAgICBlbnZp
cm9ubWVudF91c2VyID0gc2VsZi5tYWtlX2Vudmlyb25tZW50KCkKKyAgICAgICAgd2l0aCBwYXRj
aCgnb3MuZW52aXJvbicsIGVudmlyb25tZW50X3VzZXIpOgorICAgICAgICAgICAgZHJpdmVyX2Vu
dmlyb25tZW50ID0gZHJpdmVyLl9zZXR1cF9lbnZpcm9uX2Zvcl90ZXN0KCkKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0Tm90SW4oJ0RJU1BMQVknLCBkcml2ZXJfZW52aXJvbm1lbnQpCisgICAgICAg
ICAgICBzZWxmLmFzc2VydE5vdEluKCdYQVVUSE9SSVRZJywgZHJpdmVyX2Vudmlyb25tZW50KQor
ICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbignV0FZTEFORF9ESVNQTEFZJywgZHJpdmVyX2Vu
dmlyb25tZW50KQorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbignV0FZTEFORF9TT0NLRVQn
LCBkcml2ZXJfZW52aXJvbm1lbnQpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvd3BlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5weQppbmRleCAw
MzAyMjE2OTFiYi4uMzQ5NmMxYTU5NjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC93cGUucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5weQpA
QCAtMjksNiArMjksNyBAQAogZnJvbSB3ZWJraXRweS5jb21tb24ubWVtb2l6ZWQgaW1wb3J0IG1l
bW9pemVkCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMudGVzdF9jb25maWd1cmF0
aW9uIGltcG9ydCBUZXN0Q29uZmlndXJhdGlvbgogZnJvbSB3ZWJraXRweS5wb3J0LmJhc2UgaW1w
b3J0IFBvcnQKK2Zyb20gd2Via2l0cHkucG9ydC5oZWFkbGVzc2RyaXZlciBpbXBvcnQgSGVhZGxl
c3NEcml2ZXIKIGZyb20gd2Via2l0cHkucG9ydC5saW51eF9nZXRfY3Jhc2hfbG9nIGltcG9ydCBH
REJDcmFzaExvZ0dlbmVyYXRvcgogCiAKQEAgLTQyLDYgKzQzLDEwIEBAIGNsYXNzIFdQRVBvcnQo
UG9ydCk6CiAgICAgICAgICAgICBzZWxmLl9qaGJ1aWxkX3dyYXBwZXIgPSBbc2VsZi5wYXRoX2Zy
b21fd2Via2l0X2Jhc2UoJ1Rvb2xzJywgJ2poYnVpbGQnLCAnamhidWlsZC13cmFwcGVyJyksICct
LXdwZScsICdydW4nXQogICAgICAgICAgICAgc2VsZi5zZXRfb3B0aW9uX2RlZmF1bHQoJ3dyYXBw
ZXInLCAnICcuam9pbihzZWxmLl9qaGJ1aWxkX3dyYXBwZXIpKQogCisgICAgQG1lbW9pemVkCisg
ICAgZGVmIF9kcml2ZXJfY2xhc3Moc2VsZik6CisgICAgICAgIHJldHVybiBIZWFkbGVzc0RyaXZl
cgorCiAgICAgZGVmIGRlZmF1bHRfdGltZW91dF9tcyhzZWxmKToKICAgICAgICAgZGVmYXVsdF90
aW1lb3V0ID0gMTUwMDAKICAgICAgICAgIyBTdGFydGluZyBhbiBhcHBsaWNhdGlvbiB1bmRlciBW
YWxncmluZCB0YWtlcyBhIGxvdCBsb25nZXIgdGhhbiBub3JtYWwKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2UgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1BsYXRmb3JtV1BFLmNtYWtlCmluZGV4IDRhODYyZDY5YWZjLi4yNzYzOTgyMDIzMyAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdQRS5jbWFrZQorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0xMSw3ICsxMSw2IEBA
IGxpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfU09VUkNFUwogICAgICR7V0VCS0lUX1RFU1RS
VU5ORVJfRElSfS9jYWlyby9UZXN0SW52b2NhdGlvbkNhaXJvLmNwcAogCiAgICAgJHtXRUJLSVRf
VEVTVFJVTk5FUl9ESVJ9L3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcAotICAgICR7V0VCS0lU
X1RFU1RSVU5ORVJfRElSfS93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5jcHAKICAgICAke1dFQktJ
VF9URVNUUlVOTkVSX0RJUn0vd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAKICAgICAke1dFQktJ
VF9URVNUUlVOTkVSX0RJUn0vd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcAogICAgICR7V0VCS0lU
X1RFU1RSVU5ORVJfRElSfS93cGUvbWFpbi5jcHAKQEAgLTIyLDE1ICsyMSwxMSBAQCBsaXN0KEFQ
UEVORCBXZWJLaXRUZXN0UnVubmVyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAke0ZPUldBUkRJ
TkdfSEVBREVSU19ESVJ9CiAgICAgJHtDQUlST19JTkNMVURFX0RJUlN9CiAgICAgJHtHTElCX0lO
Q0xVREVfRElSU30KLSAgICAke0xJQkdCTV9JTkNMVURFX0RJUlN9Ci0gICAgJHtXUEVfTUVTQV9J
TkNMVURFX0RJUlN9CiApCiAKIGxpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfTElCUkFSSUVT
CiAgICAgJHtDQUlST19MSUJSQVJJRVN9CiAgICAgJHtHTElCX0xJQlJBUklFU30KLSAgICAke0xJ
QkdCTV9MSUJSQVJJRVN9Ci0gICAgJHtXUEVfTUVTQV9MSUJSQVJJRVN9CiApCiAKIGxpc3QoQVBQ
RU5EIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZV9TT1VSQ0VTCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAppbmRleCAzOTcxNWUwMWYzMy4uOGZlM2UyNmVmNzUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaApAQCAtNTEsOSArNTEs
OCBAQCB0eXBlZGVmIFdLVmlld1JlZiBQbGF0Zm9ybVdLVmlldzsKIHR5cGVkZWYgR3RrV2lkZ2V0
KiBQbGF0Zm9ybVdpbmRvdzsKIHR5cGVkZWYgY2Fpcm9fc3VyZmFjZV90ICpQbGF0Zm9ybUltYWdl
OwogI2VsaWYgUExBVEZPUk0oV1BFKQotY2xhc3MgSGVhZGxlc3NWaWV3QmFja2VuZDsKIHR5cGVk
ZWYgV0tWaWV3UmVmIFBsYXRmb3JtV0tWaWV3OwotdHlwZWRlZiBIZWFkbGVzc1ZpZXdCYWNrZW5k
KiBQbGF0Zm9ybVdpbmRvdzsKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1XaW5kb3c7CiB0eXBlZGVm
IGNhaXJvX3N1cmZhY2VfdCogUGxhdGZvcm1JbWFnZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci93cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcAppbmRleCBjMmRiYjg4
ODMxYy4uNDZiNGJhMzhmNjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3Bl
L1BsYXRmb3JtV2ViVmlld1dQRS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUv
UGxhdGZvcm1XZWJWaWV3V1BFLmNwcApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgogCi0jaW5jbHVkZSAiSGVhZGxlc3NW
aWV3QmFja2VuZC5oIgogI2luY2x1ZGUgPFdlYktpdC9XS0ltYWdlQ2Fpcm8uaD4KICNpbmNsdWRl
IDxjYWlyby5oPgogI2luY2x1ZGUgPGNzdGRpbz4KQEAgLTM5LDEzICszOCwxMiBAQCBQbGF0Zm9y
bVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3Vy
YXRpb24sIGNvbnN0IFRlcwogICAgIDogbV93aW5kb3dJc0tleSh0cnVlKQogICAgICwgbV9vcHRp
b25zKG9wdGlvbnMpCiB7Ci0gICAgbV93aW5kb3cgPSBuZXcgSGVhZGxlc3NWaWV3QmFja2VuZDsK
LSAgICBtX3ZpZXcgPSBXS1ZpZXdDcmVhdGVXaXRoVmlld0JhY2tlbmQobV93aW5kb3ctPmJhY2tl
bmQoKSwgY29uZmlndXJhdGlvbik7CisgICAgbV92aWV3ID0gV0tWaWV3Q3JlYXRlKGNvbmZpZ3Vy
YXRpb24pOwogfQogCiBQbGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcoKQogewotICAg
IGRlbGV0ZSBtX3dpbmRvdzsKKyAgICBXS1JlbGVhc2UobV92aWV3KTsKIH0KIAogdm9pZCBQbGF0
Zm9ybVdlYlZpZXc6OnJlc2l6ZVRvKHVuc2lnbmVkLCB1bnNpZ25lZCwgV2ViVmlld1NpemluZ01v
ZGUpCkBAIC0xMTYsOCArMTE0LDcgQEAgY2Fpcm9fc3VyZmFjZV90KiBQbGF0Zm9ybVdlYlZpZXc6
OndpbmRvd1NuYXBzaG90SW1hZ2UoKQogICAgICAgICBSdW5Mb29wOjptYWluKCkucnVuKCk7CiAg
ICAgfQogCi0gICAgY2Fpcm9fc3VyZmFjZV90KiBpbWFnZVN1cmZhY2UgPSBtX3dpbmRvdy0+Y3Jl
YXRlU25hcHNob3QoKTsKLSAgICByZXR1cm4gaW1hZ2VTdXJmYWNlOworICAgIHJldHVybiBXS1Zp
ZXdDcmVhdGVTbmFwc2hvdChtX3ZpZXcpOwogfQogCiB2b2lkIFBsYXRmb3JtV2ViVmlldzo6Y2hh
bmdlV2luZG93U2NhbGVJZk5lZWRlZChmbG9hdCkK
</data>
<flag name="review"
          id="334602"
          type_id="1"
          status="-"
          setter="zan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327162</attachid>
            <date>2017-11-17 03:22:23 -0800</date>
            <delta_ts>2017-11-17 08:51:20 -0800</delta_ts>
            <desc>New patch</desc>
            <filename>wpe-headless-tests.diff</filename>
            <type>text/plain</type>
            <size>16525</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvQ01ha2VMaXN0cy50eHQK
aW5kZXggNmE4Mjc3ZjE3MDQuLmQyYmQ5NTIzMGQwIDEwMDY0NAotLS0gYS9Ub29scy9DTWFrZUxp
c3RzLnR4dAorKysgYi9Ub29scy9DTWFrZUxpc3RzLnR4dApAQCAtMjcsNiArMjcsNyBAQCBlbHNl
aWYgKCIke1BPUlR9IiBTVFJFUVVBTCAiV1BFIikKICAgICBpZiAoREVWRUxPUEVSX01PREUpCiAg
ICAgICAgIGFkZF9zdWJkaXJlY3RvcnkoSW1hZ2VEaWZmKQogICAgICAgICBhZGRfc3ViZGlyZWN0
b3J5KFdlYktpdFRlc3RSdW5uZXIpCisgICAgICAgIGFkZF9zdWJkaXJlY3Rvcnkod3BlL0hlYWRs
ZXNzVmlld0JhY2tlbmQpCiAgICAgICAgIGlmIChFTkFCTEVfQVBJX1RFU1RTKQogICAgICAgICAg
ICAgYWRkX3N1YmRpcmVjdG9yeShUZXN0V2ViS2l0QVBJL2dsaWIpCiAgICAgICAgIGVuZGlmICgp
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDI5
NGZlZTg4MzYuLmUyMTc4YjE4NWFkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTctMTEtMTcgIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdIEFkZCBlbnYg
dmFyIFdQRV9VU0VfSEVBRExFU1NfVklFV19CQUNLRU5ECisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzM3NzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIEhlYWRsZXNzVmlld0JhY2tlbmQgaW1wbGVt
ZW50YXRpb24gdG8gYSBjb21tb24gcGxhY2UgYW5kIGJ1aWxkIGl0IGFzIGEgcHJpdmF0ZSBzdGF0
aWMgbGlicmFyeSB0byBiZSB1c2VkIGJ5CisgICAgICAgIFdUUiwgR0xpYiBBUEkgdGVzdHMgYW5k
IGV2ZW50dWFsbHkgQyBBUEkgdGVzdHMgdG9vLiBXVFIgdXNlcyB0aGUgSGVhZGxlc3NWaWV3QmFj
a2VuZCB1bmNvbmRpdGlvbmFsbHksIGJ1dCBHTGliCisgICAgICAgIEFQSSB0ZXN0cyB1c2UgaXQg
b25seSB3aGVuIFdQRV9VU0VfSEVBRExFU1NfVklFV19CQUNLRU5EIGVudmlyb25tZW50IHZhcmlh
YmxlIGlzIHByZXNlbnQgYW5kIG5vdCAiMCIuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDog
SW5jbHVkZSB3cGUvSGVhZGxlc3NWaWV3QmFja2VuZCBkaXJlY3RvcnkgZm9yIGRldmVsb3BlciBi
dWlsZHMuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RBdXRv
bWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgICh0ZXN0QXV0b21hdGlvblNlc3Npb25SZXF1ZXN0
U2Vzc2lvbik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RD
b29raWVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKHRlc3RDb29raWVNYW5hZ2VyRXBoZW1lcmFsKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdEZhdmlj
b25EYXRhYmFzZS5jcHA6CisgICAgICAgICh0ZXN0UHJpdmF0ZUJyb3dzaW5nKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3Bw
OgorICAgICAgICAodGVzdFdlYkNvbnRleHRQcm94eVNldHRpbmdzKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwOgorICAgICAg
ICAodGVzdFdlYlZpZXdXZWJDb250ZXh0KToKKyAgICAgICAgKHRlc3RXZWJWaWV3RXBoZW1lcmFs
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZvcm1XUEUuY21ha2U6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvVGVzdE1haW4uaDoKKyAgICAgICAg
KFRlc3Q6OmNyZWF0ZVdlYlZpZXdCYWNrZW5kKToKKyAgICAgICAgKFRlc3Q6OmNyZWF0ZVdlYlZp
ZXcpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0
LmNwcDoKKyAgICAgICAgKFdlYlZpZXdUZXN0Ojppbml0aWFsaXplV2ViVmlldyk6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdQRS5jbWFrZToKKyAgICAgICAgKiB3cGUvSGVh
ZGxlc3NWaWV3QmFja2VuZC9DTWFrZUxpc3RzLnR4dDogQWRkZWQuCisgICAgICAgICogd3BlL0hl
YWRsZXNzVmlld0JhY2tlbmQvSGVhZGxlc3NWaWV3QmFja2VuZC5jcHA6IFJlbmFtZWQgZnJvbSBU
b29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcC4KKyAgICAg
ICAgKEhlYWRsZXNzVmlld0JhY2tlbmQ6OkhlYWRsZXNzVmlld0JhY2tlbmQpOgorICAgICAgICAq
IHdwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kL0hlYWRsZXNzVmlld0JhY2tlbmQuaDogUmVuYW1lZCBm
cm9tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaC4KKwog
MjAxNy0xMS0xNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW1dQRV0gd2Via2l0X3dlYl92aWV3X25ldygpIHNob3VsZCBlbmFibGUgc3BlY2lm
eWluZyB3cGVfdmlld19iYWNrZW5kIG9iamVjdApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEF1dG9tYXRpb25TZXNzaW9uLmNwcApp
bmRleCA0MjczMDRmNmY3Ni4uMjZjMzc0ZTZkMDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0QXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0QXV0b21hdGlvblNlc3Npb24u
Y3BwCkBAIC0zMTMsNyArMzEzLDEzIEBAIHN0YXRpYyB2b2lkIHRlc3RBdXRvbWF0aW9uU2Vzc2lv
blJlcXVlc3RTZXNzaW9uKEF1dG9tYXRpb25UZXN0KiB0ZXN0LCBnY29uc3Rwb2luCiAgICAgZ19h
c3NlcnQoIXRlc3QtPmNyZWF0ZVRvcExldmVsQnJvd3NpbmdDb250ZXh0KHdlYlZpZXcuZ2V0KCkp
KTsKIAogICAgIC8vIEFuZCB3aWxsIHdvcmsgd2l0aCBhIHByb3BlciB3ZWIgdmlldy4KLSAgICB3
ZWJWaWV3ID0gVGVzdDo6YWRvcHRWaWV3KGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9XRUJfVklF
VywgIndlYi1jb250ZXh0IiwgdGVzdC0+bV93ZWJDb250ZXh0LmdldCgpLCAiaXMtY29udHJvbGxl
ZC1ieS1hdXRvbWF0aW9uIiwgVFJVRSwgbnVsbHB0cikpOworICAgIHdlYlZpZXcgPSBUZXN0Ojph
ZG9wdFZpZXcoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1dFQl9WSUVXLAorI2lmIFBMQVRGT1JN
KFdQRSkKKyAgICAgICAgImJhY2tlbmQiLCBUZXN0OjpjcmVhdGVXZWJWaWV3QmFja2VuZCgpLAor
I2VuZGlmCisgICAgICAgICJ3ZWItY29udGV4dCIsIHRlc3QtPm1fd2ViQ29udGV4dC5nZXQoKSwK
KyAgICAgICAgImlzLWNvbnRyb2xsZWQtYnktYXV0b21hdGlvbiIsIFRSVUUsCisgICAgICAgIG51
bGxwdHIpKTsKICAgICBnX2Fzc2VydCh3ZWJraXRfd2ViX3ZpZXdfaXNfY29udHJvbGxlZF9ieV9h
dXRvbWF0aW9uKHdlYlZpZXcuZ2V0KCkpKTsKICAgICBnX2Fzc2VydCh0ZXN0LT5jcmVhdGVUb3BM
ZXZlbEJyb3dzaW5nQ29udGV4dCh3ZWJWaWV3LmdldCgpKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0Q29va2llTWFuYWdlci5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdENvb2tpZU1hbmFnZXIuY3Bw
CmluZGV4IDE2MzM3MGRhYjczLi5lMWMwYTQwZTg5NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RDb29raWVNYW5hZ2VyLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdENvb2tpZU1hbmFnZXIuY3BwCkBA
IC0zNDAsNiArMzQwLDkgQEAgc3RhdGljIHZvaWQgdGVzdENvb2tpZU1hbmFnZXJFcGhlbWVyYWwo
Q29va2llTWFuYWdlclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgZ19hc3NlcnRfY21w
aW50KGdfc3Rydl9sZW5ndGgoZG9tYWlucyksID09LCAwKTsKIAogICAgIGF1dG8gd2ViVmlldyA9
IFRlc3Q6OmFkb3B0VmlldyhnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VCX1ZJRVcsCisjaWYg
UExBVEZPUk0oV1BFKQorICAgICAgICAiYmFja2VuZCIsIFRlc3Q6OmNyZWF0ZVdlYlZpZXdCYWNr
ZW5kKCksCisjZW5kaWYKICAgICAgICAgIndlYi1jb250ZXh0Iiwgd2Via2l0X3dlYl92aWV3X2dl
dF9jb250ZXh0KHRlc3QtPm1fd2ViVmlldyksCiAgICAgICAgICJpcy1lcGhlbWVyYWwiLCBUUlVF
LAogICAgICAgICBudWxscHRyKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdEZhdmljb25EYXRhYmFzZS5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdEZhdmljb25EYXRhYmFzZS5jcHAK
aW5kZXggOGY0MTQ4Yzc3OTEuLmMxMGZmNmRjODg3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdEZhdmljb25EYXRhYmFzZS5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRGYXZpY29u
RGF0YWJhc2UuY3BwCkBAIC0xODQsNiArMTg0LDkgQEAgc3RhdGljIHZvaWQgZXBoZW1lcmFsVmll
d0xvYWRDaGFuZ2VkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdExvYWRFdmVudCBsb2EK
IHN0YXRpYyB2b2lkIHRlc3RQcml2YXRlQnJvd3NpbmcoRmF2aWNvbkRhdGFiYXNlVGVzdCogdGVz
dCkKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBUZXN0OjphZG9wdFZpZXcoZ19vYmplY3RfbmV3KFdF
QktJVF9UWVBFX1dFQl9WSUVXLAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgImJhY2tlbmQi
LCBUZXN0OjpjcmVhdGVXZWJWaWV3QmFja2VuZCgpLAorI2VuZGlmCiAgICAgICAgICJ3ZWItY29u
dGV4dCIsIHRlc3QtPm1fd2ViQ29udGV4dC5nZXQoKSwKICAgICAgICAgImlzLWVwaGVtZXJhbCIs
IFRSVUUsCiAgICAgICAgIG51bGxwdHIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4
IDAwNmZjMjY4ODVmLi43OWI3ZDZjZjBhZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJDb250ZXh0LmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCkBA
IC03MDgsNiArNzA4LDkgQEAgc3RhdGljIHZvaWQgdGVzdFdlYkNvbnRleHRQcm94eVNldHRpbmdz
KFByb3h5VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIAogICAgIC8vIFByb3h5IHNldHRpbmdz
IGFsc28gYWZmZWN0IGVwaGVtZXJhbCB3ZWIgdmlld3MuCiAgICAgYXV0byB3ZWJWaWV3ID0gVGVz
dDo6YWRvcHRWaWV3KGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9XRUJfVklFVywKKyNpZiBQTEFU
Rk9STShXUEUpCisgICAgICAgICJiYWNrZW5kIiwgVGVzdDo6Y3JlYXRlV2ViVmlld0JhY2tlbmQo
KSwKKyNlbmRpZgogICAgICAgICAid2ViLWNvbnRleHQiLCB0ZXN0LT5tX3dlYkNvbnRleHQuZ2V0
KCksCiAgICAgICAgICJpcy1lcGhlbWVyYWwiLCBUUlVFLAogICAgICAgICBudWxscHRyKSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktp
dFdlYlZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RX
ZWJLaXRXZWJWaWV3LmNwcAppbmRleCA5NDAyZjAxNDZhMS4uZjVlZmQ3NDhmMjggMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmll
dy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJL
aXRXZWJWaWV3LmNwcApAQCAtNTEsNyArNTEsMTEgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdX
ZWJDb250ZXh0KFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0
KHdlYmtpdF93ZWJfY29udGV4dF9nZXRfZGVmYXVsdCgpICE9IHRlc3QtPm1fd2ViQ29udGV4dC5n
ZXQoKSk7CiAKICAgICAvLyBDaGVjayB0aGF0IGEgd2ViIHZpZXcgY3JlYXRlZCB3aXRoIGdfb2Jq
ZWN0X25ldyBoYXMgdGhlIGRlZmF1bHQgY29udGV4dC4KLSAgICBhdXRvIHdlYlZpZXcgPSBUZXN0
OjphZG9wdFZpZXcoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1dFQl9WSUVXLCBudWxscHRyKSk7
CisgICAgYXV0byB3ZWJWaWV3ID0gVGVzdDo6YWRvcHRWaWV3KGdfb2JqZWN0X25ldyhXRUJLSVRf
VFlQRV9XRUJfVklFVywKKyNpZiBQTEFURk9STShXUEUpCisgICAgICAgICJiYWNrZW5kIiwgVGVz
dDo6Y3JlYXRlV2ViVmlld0JhY2tlbmQoKSwKKyNlbmRpZgorICAgICAgICBudWxscHRyKSk7CiAg
ICAgZ19hc3NlcnQod2Via2l0X3dlYl92aWV3X2dldF9jb250ZXh0KHdlYlZpZXcuZ2V0KCkpID09
IHdlYmtpdF93ZWJfY29udGV4dF9nZXRfZGVmYXVsdCgpKTsKIAogICAgIC8vIENoZWNrIHRoYXQg
YSB3ZWIgdmlldyBjcmVhdGVkIHdpdGggYSByZWxhdGVkIHZpZXcgaGFzIHRoZSByZWxhdGVkIHZp
ZXcgY29udGV4dC4KQEAgLTYwLDcgKzY0LDEyIEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3V2Vi
Q29udGV4dChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIAogICAgIC8vIENoZWNr
IHRoYXQgYSB3ZWIgY29udGV4dCBnaXZlbiBhcyBjb25zdHJ1Y3QgcGFyYW1ldGVyIGlzIGlnbm9y
ZWQgaWYgYSByZWxhdGVkIHZpZXcgaXMgYWxzbyBwcm92aWRlZC4KICAgICB3ZWJWaWV3ID0gVGVz
dDo6YWRvcHRWaWV3KGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9XRUJfVklFVywKLSAgICAgICAg
IndlYi1jb250ZXh0Iiwgd2Via2l0X3dlYl9jb250ZXh0X2dldF9kZWZhdWx0KCksICJyZWxhdGVk
LXZpZXciLCB0ZXN0LT5tX3dlYlZpZXcsIG51bGxwdHIpKTsKKyNpZiBQTEFURk9STShXUEUpCisg
ICAgICAgICJiYWNrZW5kIiwgVGVzdDo6Y3JlYXRlV2ViVmlld0JhY2tlbmQoKSwKKyNlbmRpZgor
ICAgICAgICAid2ViLWNvbnRleHQiLCB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2RlZmF1bHQoKSwK
KyAgICAgICAgInJlbGF0ZWQtdmlldyIsIHRlc3QtPm1fd2ViVmlldywKKyAgICAgICAgbnVsbHB0
cikpOwogICAgIGdfYXNzZXJ0KHdlYmtpdF93ZWJfdmlld19nZXRfY29udGV4dCh3ZWJWaWV3Lmdl
dCgpKSA9PSB0ZXN0LT5tX3dlYkNvbnRleHQuZ2V0KCkpOwogfQogCkBAIC0xODIsNiArMTkxLDkg
QEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdFcGhlbWVyYWwoV2ViVmlld1Rlc3QqIHRlc3QsIGdj
b25zdHBvaW50ZXIpCiAKICAgICAvLyBBIFdlYlZpZXcgb24gYSBub24gZXBoZW1lcmFsIGNvbnRl
eHQgY2FuIGJlIGVwaGVtZXJhbC4KICAgICBhdXRvIHdlYlZpZXcgPSBUZXN0OjphZG9wdFZpZXco
Z19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1dFQl9WSUVXLAorI2lmIFBMQVRGT1JNKFdQRSkKKyAg
ICAgICAgImJhY2tlbmQiLCBUZXN0OjpjcmVhdGVXZWJWaWV3QmFja2VuZCgpLAorI2VuZGlmCiAg
ICAgICAgICJ3ZWItY29udGV4dCIsIHdlYmtpdF93ZWJfdmlld19nZXRfY29udGV4dCh0ZXN0LT5t
X3dlYlZpZXcpLAogICAgICAgICAiaXMtZXBoZW1lcmFsIiwgVFJVRSwKICAgICAgICAgbnVsbHB0
cikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1BsYXRmb3JtV1BFLmNt
YWtlIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1BsYXRmb3JtV1BFLmNtYWtlCmluZGV4IDdm
MGRiNWEwN2I1Li5iNWQ1YmQzZjE2MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9n
bGliL1BsYXRmb3JtV1BFLmNtYWtlCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9QbGF0
Zm9ybVdQRS5jbWFrZQpAQCAtOSw2ICs5LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0R0xpYkFQSVRl
c3RzX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAke0RFUklWRURfU09VUkNFU19XUEVfQVBJX0RJ
Un0KICAgICAke0ZPUldBUkRJTkdfSEVBREVSU19XUEVfRElSfQogICAgICR7Rk9SV0FSRElOR19I
RUFERVJTX1dQRV9FWFRFTlNJT05fRElSfQorICAgICR7VE9PTFNfRElSfS93cGUvSGVhZGxlc3NW
aWV3QmFja2VuZAogKQogCiBsaXN0KEFQUEVORCBXZWJLaXRHTGliQVBJVGVzdHNfU1lTVEVNX0lO
Q0xVREVfRElSRUNUT1JJRVMKQEAgLTE3LDQgKzE4LDUgQEAgbGlzdChBUFBFTkQgV2ViS2l0R0xp
YkFQSVRlc3RzX1NZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTCiAKIGxpc3QoQVBQRU5EIFdlYktp
dEdMaWJBUElUZXN0X0xJQlJBUklFUwogICAgICR7V1BFX0xJQlJBUklFU30KKyAgICBXUEVIZWFk
bGVzc1ZpZXdCYWNrZW5kCiApCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIv
V2ViS2l0R0xpYi9UZXN0TWFpbi5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdM
aWIvVGVzdE1haW4uaAppbmRleCA4OTUwZjEwNjkxMC4uN2RiMTQyYzc1ZWIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1Rlc3RNYWluLmgKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvVGVzdE1haW4uaApAQCAtMjksNiArMjks
NyBAQAogI2lmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlIDx3ZWJraXQyL3dlYmtpdDIuaD4KICNl
bGlmIFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRlICJIZWFkbGVzc1ZpZXdCYWNrZW5kLmgiCiAjaW5j
bHVkZSA8d3BlL3dlYmtpdC5oPgogI2VuZGlmCiAKQEAgLTE0MywxMiArMTQ0LDI1IEBAIHB1Ymxp
YzoKICAgICAgICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF93ZWJfZXh0ZW5zaW9uc19pbml0aWFs
aXphdGlvbl91c2VyX2RhdGEobV93ZWJDb250ZXh0LmdldCgpLCBnX3ZhcmlhbnRfbmV3X3VpbnQz
MigrK3Nfd2ViRXh0ZW5zaW9uSUQpKTsKICAgICB9CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAg
c3RhdGljIFdlYktpdFdlYlZpZXdCYWNrZW5kKiBjcmVhdGVXZWJWaWV3QmFja2VuZCgpCisgICAg
eworICAgICAgICBjb25zdCBjaGFyKiB1c2VIZWFkbGVzc1ZpZXdCYWNrZW5kID0gZ19nZXRlbnYo
IldQRV9VU0VfSEVBRExFU1NfVklFV19CQUNLRU5EIik7CisgICAgICAgIGlmICghdXNlSGVhZGxl
c3NWaWV3QmFja2VuZCB8fCAhc3RyY21wKHVzZUhlYWRsZXNzVmlld0JhY2tlbmQsICIwIikpCisg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgYXV0byogaGVhZGxlc3NCYWNrZW5k
ID0gbmV3IEhlYWRsZXNzVmlld0JhY2tlbmQ7CisgICAgICAgIHJldHVybiB3ZWJraXRfd2ViX3Zp
ZXdfYmFja2VuZF9uZXcoaGVhZGxlc3NCYWNrZW5kLT5iYWNrZW5kKCksIFtdKGdwb2ludGVyIHVz
ZXJEYXRhKSB7CisgICAgICAgICAgICBkZWxldGUgc3RhdGljX2Nhc3Q8SGVhZGxlc3NWaWV3QmFj
a2VuZCo+KHVzZXJEYXRhKTsKKyAgICAgICAgfSwgaGVhZGxlc3NCYWNrZW5kKTsKKyAgICB9Cisj
ZW5kaWYKKwogICAgIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiBjcmVhdGVXZWJWaWV3KCkKICAgICB7
CiAjaWYgUExBVEZPUk0oR1RLKQogICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9WSUVXKHdlYmtp
dF93ZWJfdmlld19uZXcoKSk7CiAjZWxpZiBQTEFURk9STShXUEUpCi0gICAgICAgIHJldHVybiB3
ZWJraXRfd2ViX3ZpZXdfbmV3KG51bGxwdHIpOworICAgICAgICByZXR1cm4gd2Via2l0X3dlYl92
aWV3X25ldyhjcmVhdGVXZWJWaWV3QmFja2VuZCgpKTsKICNlbmRpZgogICAgIH0KIApAQCAtMTU3
LDcgKzE3MSw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShHVEspCiAgICAgICAgIHJldHVybiBX
RUJLSVRfV0VCX1ZJRVcod2Via2l0X3dlYl92aWV3X25ld193aXRoX2NvbnRleHQoY29udGV4dCkp
OwogI2VsaWYgUExBVEZPUk0oV1BFKQotICAgICAgICByZXR1cm4gd2Via2l0X3dlYl92aWV3X25l
d193aXRoX2NvbnRleHQobnVsbHB0ciwgY29udGV4dCk7CisgICAgICAgIHJldHVybiB3ZWJraXRf
d2ViX3ZpZXdfbmV3X3dpdGhfY29udGV4dChjcmVhdGVXZWJWaWV3QmFja2VuZCgpLCBjb250ZXh0
KTsKICNlbmRpZgogICAgIH0KIApAQCAtMTY2LDcgKzE4MCw3IEBAIHB1YmxpYzoKICNpZiBQTEFU
Rk9STShHVEspCiAgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVcod2Via2l0X3dlYl92aWV3
X25ld193aXRoX3JlbGF0ZWRfdmlldyhyZWxhdGVkVmlldykpOwogI2VsaWYgUExBVEZPUk0oV1BF
KQotICAgICAgICByZXR1cm4gd2Via2l0X3dlYl92aWV3X25ld193aXRoX3JlbGF0ZWRfdmlldyhu
dWxscHRyLCByZWxhdGVkVmlldyk7CisgICAgICAgIHJldHVybiB3ZWJraXRfd2ViX3ZpZXdfbmV3
X3dpdGhfcmVsYXRlZF92aWV3KGNyZWF0ZVdlYlZpZXdCYWNrZW5kKCksIHJlbGF0ZWRWaWV3KTsK
ICNlbmRpZgogICAgIH0KIApAQCAtMTc1LDcgKzE4OSw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9S
TShHVEspCiAgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVcod2Via2l0X3dlYl92aWV3X25l
d193aXRoX3VzZXJfY29udGVudF9tYW5hZ2VyKGNvbnRlbnRNYW5hZ2VyKSk7CiAjZWxpZiBQTEFU
Rk9STShXUEUpCi0gICAgICAgIHJldHVybiB3ZWJraXRfd2ViX3ZpZXdfbmV3X3dpdGhfdXNlcl9j
b250ZW50X21hbmFnZXIobnVsbHB0ciwgY29udGVudE1hbmFnZXIpOworICAgICAgICByZXR1cm4g
d2Via2l0X3dlYl92aWV3X25ld193aXRoX3VzZXJfY29udGVudF9tYW5hZ2VyKGNyZWF0ZVdlYlZp
ZXdCYWNrZW5kKCksIGNvbnRlbnRNYW5hZ2VyKTsKICNlbmRpZgogICAgIH0KIApAQCAtMTg0LDcg
KzE5OCw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShHVEspCiAgICAgICAgIHJldHVybiBXRUJL
SVRfV0VCX1ZJRVcod2Via2l0X3dlYl92aWV3X25ld193aXRoX3NldHRpbmdzKHNldHRpbmdzKSk7
CiAjZWxpZiBQTEFURk9STShXUEUpCi0gICAgICAgIHJldHVybiB3ZWJraXRfd2ViX3ZpZXdfbmV3
X3dpdGhfc2V0dGluZ3MobnVsbHB0ciwgc2V0dGluZ3MpOworICAgICAgICByZXR1cm4gd2Via2l0
X3dlYl92aWV3X25ld193aXRoX3NldHRpbmdzKGNyZWF0ZVdlYlZpZXdCYWNrZW5kKCksIHNldHRp
bmdzKTsKICNlbmRpZgogICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9n
bGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGli
L1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuY3BwCmluZGV4IDU2NzA0YjM2NzJjLi5kZTI5NjQwOThl
MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmll
d1Rlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZp
ZXdUZXN0LmNwcApAQCAtNDgsNyArNDgsMTMgQEAgV2ViVmlld1Rlc3Q6On5XZWJWaWV3VGVzdCgp
CiB2b2lkIFdlYlZpZXdUZXN0Ojppbml0aWFsaXplV2ViVmlldygpCiB7CiAgICAgZ19hc3NlcnQo
IW1fd2ViVmlldyk7Ci0gICAgbV93ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKGdfb2JqZWN0X25l
dyhXRUJLSVRfVFlQRV9XRUJfVklFVywgIndlYi1jb250ZXh0IiwgbV93ZWJDb250ZXh0LmdldCgp
LCAidXNlci1jb250ZW50LW1hbmFnZXIiLCBtX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgbnVs
bHB0cikpOworICAgIG1fd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyhnX29iamVjdF9uZXcoV0VC
S0lUX1RZUEVfV0VCX1ZJRVcsCisjaWYgUExBVEZPUk0oV1BFKQorICAgICAgICAiYmFja2VuZCIs
IFRlc3Q6OmNyZWF0ZVdlYlZpZXdCYWNrZW5kKCksCisjZW5kaWYKKyAgICAgICAgIndlYi1jb250
ZXh0IiwgbV93ZWJDb250ZXh0LmdldCgpLAorICAgICAgICAidXNlci1jb250ZW50LW1hbmFnZXIi
LCBtX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwKKyAgICAgICAgbnVsbHB0cikpOwogICAgIHBs
YXRmb3JtSW5pdGlhbGl6ZVdlYlZpZXcoKTsKICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVu
VGVzdEZpbmlzaGVzKEdfT0JKRUNUKG1fd2ViVmlldykpOwogCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV1BFLmNtYWtlIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9QbGF0Zm9ybVdQRS5jbWFrZQppbmRleCA2NGEzZDE3ZDcwYS4uOGQyODA1Y2EyMzAgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMSw1ICsxLDMgQEAKLWZp
bmRfcGFja2FnZShMaWJHQk0gUkVRVUlSRUQpCi1maW5kX3BhY2thZ2UoV1BFQmFja2VuZC1tZXNh
IFJFUVVJUkVEKQogZmluZF9wYWNrYWdlKExpYnhrYmNvbW1vbiAwLjQuMCBSRVFVSVJFRCkKIAog
YWRkX2N1c3RvbV90YXJnZXQoV2ViS2l0VGVzdFJ1bm5lci1mb3J3YXJkaW5nLWhlYWRlcnMKQEAg
LTEyLDcgKzEwLDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTCiAgICAg
JHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L2NhaXJvL1Rlc3RJbnZvY2F0aW9uQ2Fpcm8uY3BwCiAK
ICAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vd3BlL0V2ZW50U2VuZGVyUHJveHlXUEUuY3Bw
Ci0gICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNw
cAogICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNw
cAogICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3Bw
CiAgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dwZS9tYWluLmNwcApAQCAtMjEsMjIgKzE4
LDIwIEBAIGxpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfU09VUkNFUwogbGlzdChBUFBFTkQg
V2ViS2l0VGVzdFJ1bm5lcl9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgJHtXRUJLSVRfVEVTVFJV
Tk5FUl9ESVJ9L0luamVjdGVkQnVuZGxlL3dwZQogICAgICR7Rk9SV0FSRElOR19IRUFERVJTX0RJ
Un0KKyAgICAke1RPT0xTX0RJUn0vd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQKICkKIAogbGlzdChB
UFBFTkQgV2ViS2l0VGVzdFJ1bm5lcl9TWVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7
Q0FJUk9fSU5DTFVERV9ESVJTfQogICAgICR7R0xJQl9JTkNMVURFX0RJUlN9Ci0gICAgJHtMSUJH
Qk1fSU5DTFVERV9ESVJTfQogICAgICR7TElCWEtCQ09NTU9OX0lOQ0xVREVfRElSU30KLSAgICAk
e1dQRV9NRVNBX0lOQ0xVREVfRElSU30KICkKIAogbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5l
cl9MSUJSQVJJRVMKICAgICAke0NBSVJPX0xJQlJBUklFU30KICAgICAke0dMSUJfTElCUkFSSUVT
fQotICAgICR7TElCR0JNX0xJQlJBUklFU30KICAgICAke0xJQlhLQkNPTU1PTl9MSUJSQVJJRVN9
Ci0gICAgJHtXUEVfTUVTQV9MSUJSQVJJRVN9CisgICAgV1BFSGVhZGxlc3NWaWV3QmFja2VuZAog
KQogCiBsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVfU09VUkNFUwpk
aWZmIC0tZ2l0IGEvVG9vbHMvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQvQ01ha2VMaXN0cy50eHQg
Yi9Ub29scy93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC9DTWFrZUxpc3RzLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzI0YzZkOWM4ZTYKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC9DTWFrZUxpc3RzLnR4dApAQCAtMCww
ICsxLDI0IEBACitmaW5kX3BhY2thZ2UoTGliR0JNIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFdQ
RUJhY2tlbmQtbWVzYSBSRVFVSVJFRCkKKworc2V0KFdQRUhlYWRsZXNzVmlld0JhY2tlbmRfU09V
UkNFUworICAgICR7VE9PTFNfRElSfS93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC9IZWFkbGVzc1Zp
ZXdCYWNrZW5kLmNwcAorKQorCitzZXQoV1BFSGVhZGxlc3NWaWV3QmFja2VuZF9TWVNURU1fSU5D
TFVERV9ESVJFQ1RPUklFUworICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQorICAgICR7R0xJQl9J
TkNMVURFX0RJUlN9CisgICAgJHtMSUJHQk1fSU5DTFVERV9ESVJTfQorICAgICR7V1BFX01FU0Ff
SU5DTFVERV9ESVJTfQorKQorCitzZXQoV1BFSGVhZGxlc3NWaWV3QmFja2VuZF9MSUJSQVJJRVMK
KyAgICAke0NBSVJPX0xJQlJBUklFU30KKyAgICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7TElC
R0JNX0xJQlJBUklFU30KKyAgICAke1dQRV9NRVNBX0xJQlJBUklFU30KKykKKworYWRkX2xpYnJh
cnkoV1BFSGVhZGxlc3NWaWV3QmFja2VuZCAke1dQRUhlYWRsZXNzVmlld0JhY2tlbmRfU09VUkNF
U30pCitpbmNsdWRlX2RpcmVjdG9yaWVzKFNZU1RFTSAke1dQRUhlYWRsZXNzVmlld0JhY2tlbmRf
U1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVN9KQordGFyZ2V0X2xpbmtfbGlicmFyaWVzKFdQRUhl
YWRsZXNzVmlld0JhY2tlbmQgJHtXUEVIZWFkbGVzc1ZpZXdCYWNrZW5kX0xJQlJBUklFU30pCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5k
LmNwcCBiL1Rvb2xzL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kL0hlYWRsZXNzVmlld0JhY2tlbmQu
Y3BwCnNpbWlsYXJpdHkgaW5kZXggOTglCnJlbmFtZSBmcm9tIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCnJlbmFtZSB0byBUb29scy93cGUvSGVhZGxl
c3NWaWV3QmFja2VuZC9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcAppbmRleCBlMjlmZmVlYWRiOS4u
ODM5MTg0YzY1NDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRs
ZXNzVmlld0JhY2tlbmQuY3BwCisrKyBiL1Rvb2xzL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kL0hl
YWRsZXNzVmlld0JhY2tlbmQuY3BwCkBAIC0yMywxOSArMjMsMjAgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiSGVhZGxlc3NWaWV3QmFja2VuZC5oIgogCiAjaW5jbHVkZSA8Y2Fzc2VydD4KICNpbmNsdWRl
IDxmY250bC5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2luY2x1ZGUgPHd0Zi9nbGliL1J1bkxv
b3BTb3VyY2VQcmlvcml0eS5oPgogCiAvLyBNYW51YWxseSBwcm92aWRlIHRoZSBFR0xfQ0FTVCBD
KysgZGVmaW5pdGlvbiBpbiBjYXNlIGVnbHBsYXRmb3JtLmggZG9lc24ndCBwcm92aWRlIGl0Lgog
I2lmbmRlZiBFR0xfQ0FTVAogI2RlZmluZSBFR0xfQ0FTVCh0eXBlLCB2YWx1ZSkgKHN0YXRpY19j
YXN0PHR5cGU+KHZhbHVlKSkKICNlbmRpZgogCisvLyBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHd0
Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oLgorc3RhdGljIGludCBrUnVuTG9vcFNvdXJj
ZVByaW9yaXR5RGlzcGF0Y2hlciA9IC03MDsKKwogLy8gRklYTUU6IERlcGxveSBnb29kIHByYWN0
aWNlcyBhbmQgY2xlYW4gdXAgR0JNIHJlc291cmNlcyBhdCBwcm9jZXNzIGV4aXQuCiBzdGF0aWMg
RUdMRGlzcGxheSBnZXRFR0xEaXNwbGF5KCkKIHsKQEAgLTEwOSw3ICsxMTAsNyBAQCBIZWFkbGVz
c1ZpZXdCYWNrZW5kOjpIZWFkbGVzc1ZpZXdCYWNrZW5kKCkKICAgICAgICAgICAgIGJhY2tlbmQu
cGVyZm9ybVVwZGF0ZSgpOwogICAgICAgICAgICAgcmV0dXJuIFRSVUU7CiAgICAgICAgIH0sIHRo
aXMsIG51bGxwdHIpOwotICAgIGdfc291cmNlX3NldF9wcmlvcml0eShtX3VwZGF0ZVNvdXJjZSwg
UnVuTG9vcFNvdXJjZVByaW9yaXR5OjpSdW5Mb29wRGlzcGF0Y2hlcik7CisgICAgZ19zb3VyY2Vf
c2V0X3ByaW9yaXR5KG1fdXBkYXRlU291cmNlLCBrUnVuTG9vcFNvdXJjZVByaW9yaXR5RGlzcGF0
Y2hlcik7CiAgICAgZ19zb3VyY2VfYXR0YWNoKG1fdXBkYXRlU291cmNlLCBnX21haW5fY29udGV4
dF9kZWZhdWx0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dw
ZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmggYi9Ub29scy93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC9I
ZWFkbGVzc1ZpZXdCYWNrZW5kLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaApyZW5hbWUgdG8g
VG9vbHMvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQvSGVhZGxlc3NWaWV3QmFja2VuZC5oCg==
</data>
<flag name="review"
          id="346407"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>