<?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>231285</bug_id>
          
          <creation_ts>2021-10-06 03:15:38 -0700</creation_ts>
          <short_desc>Add support for processing push events without service worker clients</short_desc>
          <delta_ts>2021-10-08 03:03:17 -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>Service Workers</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>nham</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1801014</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-06 03:15:38 -0700</bug_when>
    <thetext>Add support for processing push events without service worker clients</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801015</commentid>
    <comment_count>1</comment_count>
      <attachid>440351</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-06 04:00:28 -0700</bug_when>
    <thetext>Created attachment 440351
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801036</commentid>
    <comment_count>2</comment_count>
      <attachid>440359</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-06 06:38:58 -0700</bug_when>
    <thetext>Created attachment 440359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801041</commentid>
    <comment_count>3</comment_count>
      <attachid>440361</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-06 06:59:29 -0700</bug_when>
    <thetext>Created attachment 440361
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801093</commentid>
    <comment_count>4</comment_count>
      <attachid>440372</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-06 08:32:56 -0700</bug_when>
    <thetext>Created attachment 440372
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801590</commentid>
    <comment_count>5</comment_count>
      <attachid>440372</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-07 07:16:29 -0700</bug_when>
    <thetext>Comment on attachment 440372
Patch

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

&gt; Source/WebCore/workers/service/server/SWServer.cpp:1218
&gt; +            terminateWorkerTimer-&gt;startOneShot(weakThis &amp;&amp; weakThis-&gt;m_isProcessTerminationDelayEnabled ? defaultTerminationDelay : 1_s);

Does this mean that we have one second to:
1. IPC the SW process
2. Dispatch to the SW thread
3. Dispatch and handle the push event in JS
4. Dispatch back to the main thread
5. IPC back to the network process

If so, doesn&apos;t it seem a bit low? Seems like this could cause flakiness on some slower / overloaded machines.

I think our UIProcess responsiveness timer uses 3 seconds and even then, is only enabled on release builds (No debug builds, no ASAN, not under debugger).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801609</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-07 08:17:21 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; Comment on attachment 440372 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=440372&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/workers/service/server/SWServer.cpp:1218
&gt; &gt; +            terminateWorkerTimer-&gt;startOneShot(weakThis &amp;&amp; weakThis-&gt;m_isProcessTerminationDelayEnabled ? defaultTerminationDelay : 1_s);
&gt; 
&gt; Does this mean that we have one second to:
&gt; 1. IPC the SW process
&gt; 2. Dispatch to the SW thread
&gt; 3. Dispatch and handle the push event in JS
&gt; 4. Dispatch back to the main thread
&gt; 5. IPC back to the network process
&gt; 
&gt; If so, doesn&apos;t it seem a bit low? Seems like this could cause flakiness on
&gt; some slower / overloaded machines.

Maybe, this is for testing, and this should only kick in for API tests since otherwise we will have a service worker client.
Also, the only test is actually trying to trigger the timeout, so even in case we are slow and it takes more than 1 second, we should be good for that particular test.

I can increase it to 3 seconds, but then the test will run for longer.
Let&apos;s try it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801957</commentid>
    <comment_count>7</comment_count>
      <attachid>440581</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-08 00:48:09 -0700</bug_when>
    <thetext>Created attachment 440581
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801959</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-08 00:48:32 -0700</bug_when>
    <thetext>Went with 2 seconds for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801975</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-08 03:02:57 -0700</bug_when>
    <thetext>Committed r283796 (242689@main): &lt;https://commits.webkit.org/242689@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440581.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801976</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-08 03:03:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/84020871&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440351</attachid>
            <date>2021-10-06 04:00:28 -0700</date>
            <delta_ts>2021-10-06 06:59:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231285-20211006130025.patch</filename>
            <type>text/plain</type>
            <size>25230</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA1NWJmNzFmZjJmZjRm
MzYwNmEzMmU1NDZjODNkM2Y4YzE4ZjMwYy4uNjc2ZDRjZDBlMDY2OTQxNWY4NzkyZWVkNGJhMGVh
MGI0YTNkYTRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEwLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
cHJvY2Vzc2luZyBwdXNoIGV2ZW50cyB3aXRob3V0IHNlcnZpY2Ugd29ya2VyIGNsaWVudHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTI4NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkg
QVBJIHRlc3QuCisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNw
cDoKKyAgICAgICAgQWRkIGEgdGltZXIgdG8gdGVybWluYXRlIHNlcnZpY2Ugd29ya2VyIGlmIGEg
cHVzaCBtZXNzYWdlIGlzIG5vdCBwcm9jZXNzZWQgd2l0aCBhIGdpdmVuIG51bWJlciBvZiBzZWNv
bmRzLgorICAgICAgICBUaGUgdGltZXIgdmFsdWUgaXMgdGhlIGRlZmF1bHQgdGVybWluYXRpb24g
ZGVsYXkgb3IgMSBzZWNvbmQgZm9yIHRlc3RpbmcuCisKIDIwMjEtMTAtMDYgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBodHRwczovL3czYy5n
aXRodWIuaW8vcHVzaC1hcGkvI3JlY2VpdmluZy1hLXB1c2gtbWVzc2FnZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBl
MzZhMTMyMTE1NTVmYTUyNjc0YWY1Mzc2ZTI1NGQ2MjM2NTE5ZTA3Li4xYzM3ZGZmZWRjZDQ0MzNh
MjNkNzljY2IyYWQ3MzVkMTFlNTYwNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIx
LTEwLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgcHJvY2Vzc2luZyBwdXNoIGV2ZW50cyB3aXRob3V0IHNlcnZpY2Ugd29ya2Vy
IGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTI4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdoZW4gZmlyaW5nIGEgcHVzaCBldmVudCwgYXNrIFVJUHJvY2VzcyB0byB0YWtlIGEgYmFja2dy
b3VuZCBhc3NlcnRpb24gZm9yIHRoZSBwcm9jZXNzIHJ1bm5pbmcgdGhlIHNlcnZpY2Ugd29ya2Vy
LgorICAgICAgICBXZSB1c2UgYSBjb3VudGVyIGJhc2VkIGFwcHJvYWNoIHRvIHRha2UvZGlzcG9z
ZSBvZiB0aGUgYmFja2dvcnVuZCBhc3NlcnRpb24uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisKIDIwMjEtMTAtMDYgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBodHRwczovL3czYy5naXRo
dWIuaW8vcHVzaC1hcGkvI3JlY2VpdmluZy1hLXB1c2gtbWVzc2FnZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAppbmRleCA2YmNiZjcw
NDFhZjg0OTQwZTAxMjMwMzBhYTZkY2Y3Y2QzOWI4ZDkzLi5iZDIxYTVkNDhjZmZhZTA4ZmE1MGIy
M2VlYjRkNTE4YzYzYWUxNzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcApAQCAtMTIwNCwxMiArMTIwNCwyNCBAQCB2b2lkIFNX
U2VydmVyOjpwcm9jZXNzUHVzaE1lc3NhZ2Uoc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+
JiYgZGF0YSwgVVJMJiYgcgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAg
ICAgZmlyZUZ1bmN0aW9uYWxFdmVudCgqcmVnaXN0cmF0aW9uLCBbc2VydmljZVdvcmtlcklkZW50
aWZpZXIgPSB3b3JrZXItPmlkZW50aWZpZXIoKSwgZGF0YSA9IFdURk1vdmUoZGF0YSksIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiBjb25uZWN0aW9uT3JTdGF0dXMpIG11dGFi
bGUgeworICAgICAgICBmaXJlRnVuY3Rpb25hbEV2ZW50KCpyZWdpc3RyYXRpb24sIFt3b3JrZXIg
PSBSZWYgeyAqd29ya2VyIH0sIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGRhdGEgPSBX
VEZNb3ZlKGRhdGEpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgY29ubmVj
dGlvbk9yU3RhdHVzKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghY29ubmVjdGlvbk9yU3Rh
dHVzLmhhc192YWx1ZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FsbGJhY2soY29ubmVjdGlvbk9y
U3RhdHVzLmVycm9yKCkgPT0gU2hvdWxkU2tpcEV2ZW50OjpZZXMpOwogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbm5lY3Rpb25PclN0YXR1cy52
YWx1ZSgpLT5maXJlUHVzaEV2ZW50KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBkYXRhLCBXVEZN
b3ZlKGNhbGxiYWNrKSk7CisKKyAgICAgICAgICAgIGF1dG8gc2VydmljZVdvcmtlcklkZW50aWZp
ZXIgPSB3b3JrZXItPmlkZW50aWZpZXIoKTsKKyAgICAgICAgICAgIGF1dG8gdGVybWluYXRlV29y
a2VyVGltZXIgPSBtYWtlVW5pcXVlPFRpbWVyPihbd29ya2VyID0gV1RGTW92ZSh3b3JrZXIpXSB7
CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoU2VydmljZVdvcmtlciwgIlRlcm1p
bmF0aW5nIHNlcnZpY2Ugd29ya2VyIGFzIHByb2Nlc3NpbmcgcHVzaCBldmVudCB0b29rIHRvbyBt
dWNoIHRpbWUiKTsKKyAgICAgICAgICAgICAgICB3b3JrZXItPnRlcm1pbmF0ZSgpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0ZXJtaW5hdGVXb3JrZXJUaW1lci0+c3RhcnRPbmVTaG90
KHdlYWtUaGlzICYmIHdlYWtUaGlzLT5tX2lzUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVk
ID8gZGVmYXVsdFRlcm1pbmF0aW9uRGVsYXkgOiAxX3MpOworICAgICAgICAgICAgY29ubmVjdGlv
bk9yU3RhdHVzLnZhbHVlKCktPmZpcmVQdXNoRXZlbnQoc2VydmljZVdvcmtlcklkZW50aWZpZXIs
IGRhdGEsIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0ZXJtaW5hdGVXb3JrZXJUaW1l
ciA9IFdURk1vdmUodGVybWluYXRlV29ya2VyVGltZXIpXShib29sIHN1Y2NlZWRlZCkgbXV0YWJs
ZSB7CisgICAgICAgICAgICAgICAgaWYgKHRlcm1pbmF0ZVdvcmtlclRpbWVyLT5pc0FjdGl2ZSgp
KQorICAgICAgICAgICAgICAgICAgICB0ZXJtaW5hdGVXb3JrZXJUaW1lci0+c3RvcCgpOworCisg
ICAgICAgICAgICAgICAgY2FsbGJhY2soc3VjY2VlZGVkKTsKKyAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXggZjJjMjdhYTRhNGU2YWVhODRjNTc0ZGRhYzc0MTkx
Yjc0YzU4NjA3Zi4uMjVlYzFhY2E4ZjQ4Y2Q0MjA1MTBmMzZhNDAyOGJkMmQ0Y2ViOTYwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAK
QEAgLTEwOSwxMCArMTA5LDE3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
OjpmaXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzCiAKIHZvaWQgV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpmaXJlUHVzaEV2ZW50KFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBzdGQ6Om9w
dGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4mIGRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYgY2FsbGJhY2spCiB7CisgICAgaWYgKCFtX3Byb2Nlc3NpbmdQdXNoRXZlbnRzQ291bnQr
KykKKyAgICAgICAgbV9jb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6U3RhcnRTZXJ2
aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcgeyB3ZWJQcm9jZXNzSWRlbnRpZmllcigpIH0s
IDApOworCiAgICAgc3RkOjpvcHRpb25hbDxJUEM6OkRhdGFSZWZlcmVuY2U+IGlwY0RhdGE7CiAg
ICAgaWYgKGRhdGEpCiAgICAgICAgIGlwY0RhdGEgPSBJUEM6OkRhdGFSZWZlcmVuY2UgeyBkYXRh
LT5kYXRhKCksIGRhdGEtPnNpemUoKSB9OwotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkZpcmVQdXNoRXZlbnQoc2VydmljZVdv
cmtlcklkZW50aWZpZXIsIGlwY0RhdGEpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Rmly
ZVB1c2hFdmVudChzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgaXBjRGF0YSksIFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKHRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIHdh
c1Byb2Nlc3NlZCkgbXV0YWJsZSB7CisgICAgICAgIGlmICh3ZWFrVGhpcyAmJiAhLS13ZWFrVGhp
cy0+bV9wcm9jZXNzaW5nUHVzaEV2ZW50c0NvdW50KQorICAgICAgICAgICAgd2Vha1RoaXMtPm1f
Y29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkVuZFNlcnZpY2VXb3JrZXJCYWNrZ3Jv
dW5kUHJvY2Vzc2luZyB7IHdlYWtUaGlzLT53ZWJQcm9jZXNzSWRlbnRpZmllcigpIH0sIDApOwor
ICAgICAgICBjYWxsYmFjayh3YXNQcm9jZXNzZWQpOworICAgIH0pOwogfQogCiB2b2lkIFdlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCmluZGV4IDlhZWE3NjdmNTJiODMwMTc5MzNj
Zjk0ZmIzODQ5MDA5MDY2MDI4NTQuLjk4NDA1YzdiODhmYmE0NjI4ODkzNWEzY2MyNjE1ZTNmOWYz
MmFiN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmgKQEAgLTEwNSw2ICsxMDUsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6
RmV0Y2hJZGVudGlmaWVyLCBXZWFrUHRyPFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s+PiBtX29uZ29p
bmdGZXRjaGVzOwogICAgIGJvb2wgbV9pc1Rocm90dGxlYWJsZSB7IHRydWUgfTsKICAgICBXZWJQ
YWdlUHJveHlJZGVudGlmaWVyIG1fd2ViUGFnZVByb3h5SUQ7CisgICAgc2l6ZV90IG1fcHJvY2Vz
c2luZ1B1c2hFdmVudHNDb3VudCB7IDAgfTsKIH07IC8vIGNsYXNzIFdlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4
IDk4NjA4YjlmMzI5ZTFlYzdlNzJhZjk0M2M3NmI2YzIxNDViOTY2MzQuLjA5MWZmMWU3YTFhZmZj
NWYwOWNlYjUyMzM4NzFhNzc3MjgyNDY3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNzQ4LDYgKzc0
OCwxMSBAQCBzdGF0aWMgVmVjdG9yPFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0
ZURhdGFSZWNvcmRzKE5TQXJyYXkgKmRhdGFSZWNvcgogICAgIH0pOwogfQogCistKGJvb2wpX2hh
c1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0aXZpdHlGb3JUZXN0aW5nCit7CisgICAgcmV0dXJu
IF93ZWJzaXRlRGF0YVN0b3JlLT5oYXNTZXJ2aWNlV29ya2VyQmFja2dyb3VuZEFjdGl2aXR5Rm9y
VGVzdGluZygpOworfQorCiAtKHZvaWQpX3Byb2Nlc3NQdXNoTWVzc2FnZTooTlNEYXRhKikgbWVz
c2FnZSByZWdpc3RyYXRpb246KE5TVVJMICopcmVnaXN0cmF0aW9uIGNvbXBsZXRpb25IYW5kbGVy
Oih2b2lkKF4pKGJvb2wgd2FzUHJvY2Vzc2VkKSljb21wbGV0aW9uSGFuZGxlcgogewogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCmluZGV4IDY1NDFi
OGQ0NDRhZjJkYjA5N2UxZDRiZmRiOWEyZGUzODczMjM0NmUuLmY1ZGU2NzYwMjE5NTNmMjRhMDc4
Mzc3NGZjNzk1MWM0NTNjMWY5NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaApAQCAtMTA1
LDYgKzEwNSw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0
YVN0b3JlRmV0Y2hPcHRpb25zKSB7CiArIChCT09MKV9kZWZhdWx0TmV0d29ya1Byb2Nlc3NFeGlz
dHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKHZvaWQpX2Nv
dW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzOih2b2lkKF4pKHNpemVfdCkpY29tcGxldGlvbkhhbmRs
ZXI7CiAKKy0oYm9vbClfaGFzU2VydmljZVdvcmtlckJhY2tncm91bmRBY3Rpdml0eUZvclRlc3Rp
bmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IC0odm9pZClfcHJvY2Vzc1B1c2hNZXNzYWdlOihOU0RhdGEqKWRhdGEgcmVnaXN0cmF0aW9uOihO
U1VSTCAqKXJlZ2lzdHJhdGlvbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShib29sKSljb21w
bGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBjNGI4MDBiZTM3OTI0ZDQwOTc0
Y2JkYWRlOTdlMGY3MjRlNzk1MTgzLi4yNDc3Y2FjNzRiZjEwZjVjOTlmMWZkMzQ3NzJmMTY3ZTIw
OTQxODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTEzOTYsNiArMTM5NiwxOCBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50UHJvY2VzcyhXZWJD
b3JlOjpQcm9jZXNzSQogCiAgICAgc2VydmljZVdvcmtlclByb2Nlc3MtPnVucmVnaXN0ZXJTZXJ2
aWNlV29ya2VyQ2xpZW50UHJvY2Vzcygqd2ViUHJvY2Vzcyk7CiB9CisKK3ZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6c3RhcnRTZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcoV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtlclByb2Nlc3NJZGVudGlmaWVyKQorewor
ICAgIGlmIChhdXRvKiBzZXJ2aWNlV29ya2VyUHJvY2VzcyA9IFdlYlByb2Nlc3NQcm94eTo6cHJv
Y2Vzc0ZvcklkZW50aWZpZXIoc2VydmljZVdvcmtlclByb2Nlc3NJZGVudGlmaWVyKSkKKyAgICAg
ICAgc2VydmljZVdvcmtlclByb2Nlc3MtPnN0YXJ0U2VydmljZVdvcmtlckJhY2tncm91bmRQcm9j
ZXNzaW5nKCk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZW5kU2VydmljZVdvcmtl
ckJhY2tncm91bmRQcm9jZXNzaW5nKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHNlcnZpY2VX
b3JrZXJQcm9jZXNzSWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byogc2VydmljZVdvcmtlclBy
b2Nlc3MgPSBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NGb3JJZGVudGlmaWVyKHNlcnZpY2VXb3Jr
ZXJQcm9jZXNzSWRlbnRpZmllcikpCisgICAgICAgIHNlcnZpY2VXb3JrZXJQcm9jZXNzLT5lbmRT
ZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcoKTsKK30KICNlbmRpZgogCiB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlU3BhY2UoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgdWludDY0X3QgY3Vy
cmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50U2l6ZSwgdWludDY0X3Qgc3BhY2VSZXF1aXJlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBxdW90YSk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDY3N2UxMGNjN2EzYjhlMTBjNjg0NmNi
ODQ3YmIwZTk4MTBkOTBlYmUuLmRmZjNhMmVkNTAyZjRhMGU0NzE3YjQyNWYzMTQ3NWJiMDg1ZjY5
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oCkBAIC0zMjMsNiArMzIzLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHdv
cmtlckNvbnRleHRDb25uZWN0aW9uTm9Mb25nZXJOZWVkZWQoV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aWZpZXIpOwogICAgIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50UHJvY2VzcyhXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllciwgV2ViQ29yZTo6UHJv
Y2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtlclByb2Nlc3NJZGVudGlmaWVyKTsKICAgICB2b2lk
IHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50UHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllciwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIg
c2VydmljZVdvcmtlclByb2Nlc3NJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0YXJ0U2VydmljZVdv
cmtlckJhY2tncm91bmRQcm9jZXNzaW5nKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHNlcnZp
Y2VXb3JrZXJQcm9jZXNzSWRlbnRpZmllcik7CisgICAgdm9pZCBlbmRTZXJ2aWNlV29ya2VyQmFj
a2dyb3VuZFByb2Nlc3NpbmcoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtl
clByb2Nlc3NJZGVudGlmaWVyKTsKICNlbmRpZgogCiAgICAgdm9pZCB0ZXJtaW5hdGVXZWJQcm9j
ZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbgppbmRleCAzYWUwMWVhMmRkN2E2YzBhNjY2YWVhOWYwZGE5YmFlOTJkODc4NDM2Li4yNTIw
MDgzY2NhZDI0MjlkOGFkMjJmNzdmNGY3MGI4MDMyYWNmYjA2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCkBAIC01Nyw2ICs1Nyw4IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNz
UHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIFdvcmtlckNvbnRleHRDb25uZWN0aW9uTm9Mb25n
ZXJOZWVkZWQoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBSZWdp
c3RlclNlcnZpY2VXb3JrZXJDbGllbnRQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
IHdlYlByb2Nlc3NJZGVudGlmaWVyLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBzZXJ2aWNl
V29ya2VyUHJvY2Vzc0lkZW50aWZpZXIpCiAgICAgVW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGll
bnRQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVy
LCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUHJvY2Vzc0lkZW50aWZp
ZXIpCisgICAgU3RhcnRTZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcoV2ViQ29yZTo6
UHJvY2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtlclByb2Nlc3NJZGVudGlmaWVyKQorICAgIEVu
ZFNlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kUHJvY2Vzc2luZyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
ZmllciBzZXJ2aWNlV29ya2VyUHJvY2Vzc0lkZW50aWZpZXIpCiAjZW5kaWYKIAogICAgIFNldFdl
YlByb2Nlc3NIYXNVcGxvYWRzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJRCwg
Ym9vbCBoYXNVcGxvYWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcAppbmRleCBkMDU1YmFmMTllMTc0MDNhMTRiM2M1Njc1YTc4MDE5NWQ2ODk1ZTkwLi4zYjAx
NmUzNjliOTA2NzM3YTBmNTZkMTlmNTQ1OGU2NzEyOTlkMjZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE5MzgsNiArMTkzOCwxNCBAQCB2b2lk
IFdlYlByb2Nlc3NQcm94eTo6dXBkYXRlU2VydmljZVdvcmtlclByb2Nlc3NBc3NlcnRpb24oKQog
ICAgICAgICAgICAgbV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24tPmFjdGl2aXR5ID0gbV90aHJv
dHRsZXIuYmFja2dyb3VuZEFjdGl2aXR5KCJTZXJ2aWNlIFdvcmtlciBmb3IgYmFja2dyb3VuZCB2
aWV3KHMpIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKworICAgIGlmIChtX2hhc1NlcnZp
Y2VXb3JrZXJCYWNrZ3JvdW5kUHJvY2Vzc2luZykgeworICAgICAgICBXRUJQUk9DRVNTUFJPWFlf
UkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJTZXJ2aWNlIFdvcmtlciBmb3IgYmFja2dy
b3VuZCBwcm9jZXNzaW5nIik7CisgICAgICAgIGlmICghUHJvY2Vzc1Rocm90dGxlcjo6aXNWYWxp
ZEJhY2tncm91bmRBY3Rpdml0eShtX3NlcnZpY2VXb3JrZXJJbmZvcm1hdGlvbi0+YWN0aXZpdHkp
KQorICAgICAgICAgICAgbV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24tPmFjdGl2aXR5ID0gbV90
aHJvdHRsZXIuYmFja2dyb3VuZEFjdGl2aXR5KCJTZXJ2aWNlIFdvcmtlciBmb3IgYmFja2dyb3Vu
ZCBwcm9jZXNzaW5nIl9zKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIG1fc2Vydmlj
ZVdvcmtlckluZm9ybWF0aW9uLT5hY3Rpdml0eSA9IG51bGxwdHI7CiB9CiAKQEAgLTE5NzAsNiAr
MTk3OCwyNiBAQCBib29sIFdlYlByb2Nlc3NQcm94eTo6aGFzU2VydmljZVdvcmtlckJhY2tncm91
bmRBY3Rpdml0eUZvclRlc3RpbmcoKSBjb25zdAogewogICAgIHJldHVybiBtX3NlcnZpY2VXb3Jr
ZXJJbmZvcm1hdGlvbiA/IFByb2Nlc3NUaHJvdHRsZXI6OmlzVmFsaWRCYWNrZ3JvdW5kQWN0aXZp
dHkobV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24tPmFjdGl2aXR5KSA6IGZhbHNlOwogfQorCit2
b2lkIFdlYlByb2Nlc3NQcm94eTo6c3RhcnRTZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3Np
bmcoKQoreworICAgIGlmICghbV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24pCisgICAgICAgIHJl
dHVybjsKKworICAgIFdFQlBST0NFU1NQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lv
biwgInN0YXJ0U2VydmljZVdvcmtlckJhY2tncm91bmRQcm9jZXNzaW5nIik7CisgICAgbV9oYXNT
ZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcgPSB0cnVlOworICAgIHVwZGF0ZVNlcnZp
Y2VXb3JrZXJQcm9jZXNzQXNzZXJ0aW9uKCk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpl
bmRTZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcoKQoreworICAgIGlmICghbV9zZXJ2
aWNlV29ya2VySW5mb3JtYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIFdFQlBST0NFU1NQ
Uk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgImVuZFNlcnZpY2VXb3JrZXJCYWNr
Z3JvdW5kUHJvY2Vzc2luZyIpOworICAgIG1faGFzU2VydmljZVdvcmtlckJhY2tncm91bmRQcm9j
ZXNzaW5nID0gZmFsc2U7CisgICAgdXBkYXRlU2VydmljZVdvcmtlclByb2Nlc3NBc3NlcnRpb24o
KTsKK30KICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpkaXNhYmxlU2VydmljZVdvcmtlcnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaAppbmRleCA2ZGNlNDJlODJhZDIzODEzMjA2ZGM3ZmUyNTA5ODVhZmU4
MThhNDU1Li5kNGJiMmZjZmM2MWUwYjhjZTgzNGIyYzgwNzc4ODA4ZjcxNWU1ZjYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzY2LDYgKzM2Niw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50UHJvY2VzcyhX
ZWJQcm9jZXNzUHJveHkmKTsKICAgICBib29sIGhhc1NlcnZpY2VXb3JrZXJGb3JlZ3JvdW5kQWN0
aXZpdHlGb3JUZXN0aW5nKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNTZXJ2aWNlV29ya2VyQmFja2dy
b3VuZEFjdGl2aXR5Rm9yVGVzdGluZygpIGNvbnN0OworICAgIHZvaWQgc3RhcnRTZXJ2aWNlV29y
a2VyQmFja2dyb3VuZFByb2Nlc3NpbmcoKTsKKyAgICB2b2lkIGVuZFNlcnZpY2VXb3JrZXJCYWNr
Z3JvdW5kUHJvY2Vzc2luZygpOwogI2VuZGlmCiAgICAgdm9pZCBzZXRBc3NlcnRpb25UeXBlRm9y
VGVzdGluZyhQcm9jZXNzQXNzZXJ0aW9uVHlwZSB0eXBlKSB7IGRpZFNldEFzc2VydGlvblR5cGUo
dHlwZSk7IH0KIApAQCAtNjU3LDYgKzY1OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIFdlYWtIYXNo
U2V0PFdlYlByb2Nlc3NQcm94eT4gY2xpZW50UHJvY2Vzc2VzOwogICAgIH07CiAgICAgc3RkOjpv
cHRpb25hbDxTZXJ2aWNlV29ya2VySW5mb3JtYXRpb24+IG1fc2VydmljZVdvcmtlckluZm9ybWF0
aW9uOworICAgIGJvb2wgbV9oYXNTZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcgeyBm
YWxzZSB9OwogCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciwg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI+PiBtX3NsZWVwRGlzYWJsZXJz
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDdiNmE1OGU3OTJiZTVhNjNiZTc1OTU0ODcyMmE0M2Zi
OGIxMTM0NjkuLjU2NTY1MjlmMWFkMzdlM2E3N2I0MjA4OWRmYmU5ZTI0MzNmNjc2M2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwCkBAIC0xMDA3LDYgKzEwMDcsMTEgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3Jl
OjpyZXNldFNlcnZpY2VXb3JrZXJUaW1lb3V0Rm9yVGVzdGluZygpCiAgICAgbmV0d29ya1Byb2Nl
c3MoKS5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlJlc2V0U2VydmljZVdvcmtl
ckZldGNoVGltZW91dEZvclRlc3RpbmcoKSwgTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpSZXNl
dFNlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5nOjpSZXBseSgpLCAwKTsKIH0KIAor
Ym9vbCBXZWJzaXRlRGF0YVN0b3JlOjpoYXNTZXJ2aWNlV29ya2VyQmFja2dyb3VuZEFjdGl2aXR5
Rm9yVGVzdGluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6YW55T2YoV2ViUHJvY2Vzc1Bv
b2w6OmFsbFByb2Nlc3NQb29scygpLCBbXShhdXRvJiBwb29sKSB7IHJldHVybiBwb29sLT5oYXNT
ZXJ2aWNlV29ya2VyQmFja2dyb3VuZEFjdGl2aXR5Rm9yVGVzdGluZygpOyB9KTsKK30KKwogI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBXZWJzaXRlRGF0
YVN0b3JlOjpzZXRNYXhTdGF0aXN0aWNzRW50cmllcyhzaXplX3QgbWF4aW11bUVudHJ5Q291bnQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaAppbmRleCA0MDhjN2RhN2NlN2ZlYmMwODNjZGU3MGU2YjVhMDkyNzEzMTQwNzgzLi45NWQy
ZDAwZjBhYjA3NzA4MjIzNGM2NTRjMTAxZjAzNzg0ODlhMGVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0x
NzMsNiArMTczLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbFN5bmNocm9ub3Vz
bHlGb3JUZXN0aW5nKENhY2hlTW9kZWwpOwogICAgIHZvaWQgc2V0U2VydmljZVdvcmtlclRpbWVv
dXRGb3JUZXN0aW5nKFNlY29uZHMpOwogICAgIHZvaWQgcmVzZXRTZXJ2aWNlV29ya2VyVGltZW91
dEZvclRlc3RpbmcoKTsKKyAgICBib29sIGhhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0aXZp
dHlGb3JUZXN0aW5nKCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKICAgICB2b2lkIGZldGNoRGF0YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhPcHRp
b25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+
LCBWZWN0b3I8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+JiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVmVjdG9yPFdlYnNpdGVEYXRhUmVjb3JkPiYmLCBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluPiYmKT4mJik7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggZTY3MmZkZmZhNmE4NDIxMGJmNzVlYzI2NDEwMDNjY2MwNTY5OGNi
YS4uYzE2ZTljN2UyM2VhMTAxMzMxNDNlYzFiOTYxMWMwODMyZjc5MTI4OCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDIxLTEwLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgcHJvY2Vzc2luZyBwdXNoIGV2ZW50cyB3aXRob3V0IHNlcnZpY2Ugd29y
a2VyIGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMTI4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QdXNoQVBJLm1tOgorCiAyMDIx
LTEwLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBs
ZW1lbnQgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3B1c2gtYXBpLyNyZWNlaXZpbmctYS1wdXNoLW1l
c3NhZ2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHVzaEFQSS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHVzaEFQ
SS5tbQppbmRleCA1MzI2MmE3ODA2NjJhNDc2YWMwZDFlMzQ2ZWQ0Y2JmNDAwY2NmNzU3Li5mMWFk
OTY3MDJmYzdiMjA4MDljYWJlZWFiMTk1OWY2MTExNGYwNTg5IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1B1c2hBUEkubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QdXNoQVBJLm1tCkBAIC0yOSw3ICsyOSw5IEBA
CiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGVzdC5oIgogI2ltcG9y
dCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4K
ICNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg+CisjaW1wb3J0IDxX
ZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaD4KIAogc3RhdGljIGJvb2wg
ZG9uZTsKIHN0YXRpYyBTdHJpbmcgZXhwZWN0ZWRNZXNzYWdlOwpAQCAtOTYsNiArOTgsMTggQEAg
c2VsZi5hZGRFdmVudExpc3RlbmVyKCJwdXNoIiwgKGV2ZW50KSA9PiB7CiAKIHN0YXRpYyBib29s
IHB1c2hNZXNzYWdlUHJvY2Vzc2VkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBwdXNoTWVzc2FnZVN1
Y2Nlc3NmdWwgPSBmYWxzZTsKKworc3RhdGljIGJvb2wgd2FpdFVudGlsRXZhbHVhdGVzVG9UcnVl
KGNvbnN0IEZ1bmN0aW9uPGJvb2woKT4mIGYpCit7CisgICAgdW5zaWduZWQgdGltZW91dCA9IDA7
CisgICAgZG8geworICAgICAgICBpZiAoZigpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuMSk7CisgICAgfSB3aGlsZSAoKyt0
aW1lb3V0IDwgMTAwKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFRFU1QoUHVzaEFQSSwgZmly
ZVB1c2hFdmVudCkKIHsKICAgICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7CkBA
IC0xNTAsMyArMTY0LDE0MSBAQCBURVNUKFB1c2hBUEksIGZpcmVQdXNoRXZlbnQpCiAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZwdXNoTWVzc2FnZVByb2Nlc3NlZCk7CiAgICAgRVhQRUNU
X0ZBTFNFKHB1c2hNZXNzYWdlU3VjY2Vzc2Z1bCk7CiB9CisKK3N0YXRpYyBjb25zdCBjaGFyKiB3
YWl0T25lU2Vjb25kU2NyaXB0Qnl0ZXMgPSBSIlNXUkVTT1VSQ0UoCitsZXQgcG9ydDsKK3NlbGYu
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChldmVudCkgPT4geworICAgIHBvcnQgPSBldmVu
dC5kYXRhLnBvcnQ7CisgICAgcG9ydC5wb3N0TWVzc2FnZSgiUmVhZHkiKTsKK30pOworc2VsZi5h
ZGRFdmVudExpc3RlbmVyKCJwdXNoIiwgKGV2ZW50KSA9PiB7CisgICAgaWYgKCFldmVudC5kYXRh
KQorICAgICAgICByZXR1cm47CisgICAgY29uc3QgdmFsdWUgPSBldmVudC5kYXRhLnRleHQoKTsK
KyAgICBpZiAodmFsdWUgPT09ICdTd2VldCBQb3RhdG9lcycpCisgICAgICAgIGV2ZW50LndhaXRV
bnRpbChuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkpKTsK
KyAgICBlbHNlIGlmICh2YWx1ZSA9PT0gJ1JvdHRlbiBQb3RhdG9lcycpCisgICAgICAgIGV2ZW50
LndhaXRVbnRpbChuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiBzZXRUaW1lb3V0KHJl
amVjdCwgMTAwMCkpKTsKKyAgICBlbHNlIGlmICh2YWx1ZSA9PT0gJ1RpbWVsZXNzIFBvdGF0b2Vz
JykKKyAgICAgICAgZXZlbnQud2FpdFVudGlsKG5ldyBQcm9taXNlKHJlc29sdmUgPT4geyB9KSk7
Cit9KTsKKylTV1JFU09VUkNFIjsKKworVEVTVChQdXNoQVBJLCBmaXJlUHVzaEV2ZW50V2l0aE5v
UGFnZXMpCit7CisgICAgVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAg
ICB7ICIvIiwgeyBtYWluQnl0ZXMgfSB9LAorICAgICAgICB7ICIvc3cuanMiLCB7IHt7ICJDb250
ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIgfX0sIHdhaXRPbmVTZWNvbmRTY3Jp
cHRCeXRlcyB9IH0KKyAgICB9LCBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyOjpQcm90b2NvbDo6
SHR0cCk7CisKKyAgICBbV0tXZWJzaXRlRGF0YVN0b3JlIF9hbGxvd1dlYnNpdGVEYXRhUmVjb3Jk
c0ZvckFsbE9yaWdpbnNdOworCisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKworICAgIGF1dG8gbWVzc2FnZUhh
bmRsZXIgPSBhZG9wdE5TKFtbUHVzaEFQSU1lc3NhZ2VIYW5kbGVyV2l0aEV4cGVjdGVkTWVzc2Fn
ZSBhbGxvY10gaW5pdF0pOworICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xs
ZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJz
dyJdOworCisgICAgW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIHJlbW92ZURhdGFP
ZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRT
aW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgeworICAgICAg
ICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIGV4cGVjdGVkTWVzc2FnZSA9ICJSZWFkeSI7
CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsK
KworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBbd2ViVmlldyBf
Y2xvc2VdOworICAgIHdlYlZpZXcgPSBudWxscHRyOworICAgIFtjb25maWd1cmF0aW9uLmdldCgp
LndlYnNpdGVEYXRhU3RvcmUgX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzXTsKKworICAgIC8vIFB1
c2ggZXZlbnQgZm9yIHNlcnZpY2Ugd29ya2VyIHdpdGhvdXQgYW55IHJlbGF0ZWQgcGFnZSwgc2hv
dWxkIHN1Y2NlZWQuCisgICAgcHVzaE1lc3NhZ2VQcm9jZXNzZWQgPSBmYWxzZTsKKyAgICBwdXNo
TWVzc2FnZVN1Y2Nlc3NmdWwgPSBmYWxzZTsKKyAgICBOU1N0cmluZyAqbWVzc2FnZSA9IEAiU3dl
ZXQgUG90YXRvZXMiOworICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfcHJv
Y2Vzc1B1c2hNZXNzYWdlOlttZXNzYWdlIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0Vu
Y29kaW5nXSByZWdpc3RyYXRpb246W3NlcnZlci5yZXF1ZXN0KCkgVVJMXSBjb21wbGV0aW9uSGFu
ZGxlcjpeKGJvb2wgcmVzdWx0KSB7CisgICAgICAgIHB1c2hNZXNzYWdlU3VjY2Vzc2Z1bCA9IHJl
c3VsdDsKKyAgICAgICAgcHVzaE1lc3NhZ2VQcm9jZXNzZWQgPSB0cnVlOworICAgIH1dOworCisg
ICAgRVhQRUNUX1RSVUUod2FpdFVudGlsRXZhbHVhdGVzVG9UcnVlKFsmXSB7IHJldHVybiBbW2Nv
bmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gX2hhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5k
QWN0aXZpdHlGb3JUZXN0aW5nXTsgfSkpOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZwdXNoTWVzc2FnZVByb2Nlc3NlZCk7CisgICAgRVhQRUNUX1RSVUUocHVzaE1lc3NhZ2VTdWNj
ZXNzZnVsKTsKKworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbEV2YWx1YXRlc1RvVHJ1ZShbJl0g
eyByZXR1cm4gIVtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfaGFzU2VydmljZVdv
cmtlckJhY2tncm91bmRBY3Rpdml0eUZvclRlc3RpbmddOyB9KSk7CisKKyAgICAvLyBQdXNoIGV2
ZW50IGZvciBzZXJ2aWNlIHdvcmtlciB3aXRob3V0IGFueSByZWxhdGVkIHBhZ2UsIHNob3VsZCBm
YWlsLgorICAgIHB1c2hNZXNzYWdlUHJvY2Vzc2VkID0gZmFsc2U7CisgICAgcHVzaE1lc3NhZ2VT
dWNjZXNzZnVsID0gZmFsc2U7CisgICAgbWVzc2FnZSA9IEAiUm90dGVuIFBvdGF0b2VzIjsKKyAg
ICBbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gX3Byb2Nlc3NQdXNoTWVzc2FnZTpb
bWVzc2FnZSBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10gcmVnaXN0cmF0
aW9uOltzZXJ2ZXIucmVxdWVzdCgpIFVSTF0gY29tcGxldGlvbkhhbmRsZXI6Xihib29sIHJlc3Vs
dCkgeworICAgICAgICBwdXNoTWVzc2FnZVN1Y2Nlc3NmdWwgPSByZXN1bHQ7CisgICAgICAgIHB1
c2hNZXNzYWdlUHJvY2Vzc2VkID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIEVYUEVDVF9UUlVFKHdh
aXRVbnRpbEV2YWx1YXRlc1RvVHJ1ZShbJl0geyByZXR1cm4gW1tjb25maWd1cmF0aW9uIHdlYnNp
dGVEYXRhU3RvcmVdIF9oYXNTZXJ2aWNlV29ya2VyQmFja2dyb3VuZEFjdGl2aXR5Rm9yVGVzdGlu
Z107IH0pKTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcHVzaE1lc3NhZ2VQcm9j
ZXNzZWQpOworICAgIEVYUEVDVF9GQUxTRShwdXNoTWVzc2FnZVN1Y2Nlc3NmdWwpOworICAgIEVY
UEVDVF9UUlVFKHdhaXRVbnRpbEV2YWx1YXRlc1RvVHJ1ZShbJl0geyByZXR1cm4gIVtbY29uZmln
dXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfaGFzU2VydmljZVdvcmtlckJhY2tncm91bmRBY3Rp
dml0eUZvclRlc3RpbmddOyB9KSk7Cit9CisKK1RFU1QoUHVzaEFQSSwgZmlyZVB1c2hFdmVudFdp
dGhOb1BhZ2VzVGltZW91dEV2ZW50KQoreworICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIg
c2VydmVyKHsKKyAgICAgICAgeyAiLyIsIHsgbWFpbkJ5dGVzIH0gfSwKKyAgICAgICAgeyAiL3N3
LmpzIiwgeyB7eyAiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH19LCB3
YWl0T25lU2Vjb25kU2NyaXB0Qnl0ZXMgfSB9CisgICAgfSwgVGVzdFdlYktpdEFQSTo6SFRUUFNl
cnZlcjo6UHJvdG9jb2w6Okh0dHApOworCisgICAgW1dLV2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dX
ZWJzaXRlRGF0YVJlY29yZHNGb3JBbGxPcmlnaW5zXTsKKworICAgIC8vIERpc2FibGUgc2Vydmlj
ZSB3b3JrZXIgZGVsYXkgZm9yIHRoZSBwdXJwb3NlIG9mIHRlc3RpbmcsIHB1c2ggZXZlbnQgc2hv
dWxkIHRpbWVvdXQgYWZ0ZXIgMSBzZWNvbmQuCisgICAgYXV0byBkYXRhU3RvcmVDb25maWd1cmF0
aW9uID0gYWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7CisgICAgYXV0byBkYXRhU3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3Jl
IGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0
KCldKTsKKworICAgIC8vIFN0YXJ0IHdpdGggYSBjbGVhbiBzbGF0ZSBkYXRhIHN0b3JlCisgICAg
W2RhdGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNp
dGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlv
bkhhbmRsZXI6XigpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAgICBhdXRv
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IGRhdGFT
dG9yZS5nZXQoKTsKKworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbUHVzaEFQ
SU1lc3NhZ2VIYW5kbGVyV2l0aEV4cGVjdGVkTWVzc2FnZSBhbGxvY10gaW5pdF0pOworICAgIFtb
Y29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5k
bGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJzdyJdOworCisgICAgZXhwZWN0ZWRNZXNz
YWdlID0gIlJlYWR5IjsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZl
ci5yZXF1ZXN0KCldOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKwor
ICAgIFt3ZWJWaWV3IF9jbG9zZV07CisgICAgd2ViVmlldyA9IG51bGxwdHI7CisKKyAgICBbZGF0
YVN0b3JlQ29uZmlndXJhdGlvbiBzZXRTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVs
YXlFbmFibGVkOk5PXTsKKyAgICBkYXRhU3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0
b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
Z2V0KCldKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBkYXRh
U3RvcmUuZ2V0KCk7CisKKyAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3Jl
IF90ZXJtaW5hdGVOZXR3b3JrUHJvY2Vzc107CisKKyAgICAvLyBQdXNoIGV2ZW50IGZvciBzZXJ2
aWNlIHdvcmtlciB3aXRob3V0IGFueSByZWxhdGVkIHBhZ2UsIHNob3VsZCB0aW1lb3V0IHNvIGZh
aWwuCisgICAgcHVzaE1lc3NhZ2VQcm9jZXNzZWQgPSBmYWxzZTsKKyAgICBwdXNoTWVzc2FnZVN1
Y2Nlc3NmdWwgPSBmYWxzZTsKKyAgICBOU1N0cmluZyAqbWVzc2FnZSA9IEAiVGltZWxlc3MgUG90
YXRvZXMiOworICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfcHJvY2Vzc1B1
c2hNZXNzYWdlOlttZXNzYWdlIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5n
XSByZWdpc3RyYXRpb246W3NlcnZlci5yZXF1ZXN0KCkgVVJMXSBjb21wbGV0aW9uSGFuZGxlcjpe
KGJvb2wgcmVzdWx0KSB7CisgICAgICAgIHB1c2hNZXNzYWdlU3VjY2Vzc2Z1bCA9IHJlc3VsdDsK
KyAgICAgICAgcHVzaE1lc3NhZ2VQcm9jZXNzZWQgPSB0cnVlOworICAgIH1dOworCisgICAgRVhQ
RUNUX1RSVUUod2FpdFVudGlsRXZhbHVhdGVzVG9UcnVlKFsmXSB7IHJldHVybiBbW2NvbmZpZ3Vy
YXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gX2hhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0aXZp
dHlGb3JUZXN0aW5nXTsgfSkpOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZwdXNo
TWVzc2FnZVByb2Nlc3NlZCk7CisgICAgRVhQRUNUX0ZBTFNFKHB1c2hNZXNzYWdlU3VjY2Vzc2Z1
bCk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsRXZhbHVhdGVzVG9UcnVlKFsmXSB7IHJldHVy
biAhW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIF9oYXNTZXJ2aWNlV29ya2VyQmFj
a2dyb3VuZEFjdGl2aXR5Rm9yVGVzdGluZ107IH0pKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440359</attachid>
            <date>2021-10-06 06:38:58 -0700</date>
            <delta_ts>2021-10-06 06:39:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231285-20211006153857.patch</filename>
            <type>text/plain</type>
            <size>11479</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc2ZDRjZDBlMDY2OTQx
NWY4NzkyZWVkNGJhMGVhMGI0YTNkYTRjNS4uNzEzYTk2MjFjOTVmMGI2YWM2ZmE3MTI2OWI0YjA1
OWI4ZmEyZTRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTEwLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
cHJvY2Vzc2luZyBwdXNoIGV2ZW50cyB3aXRob3V0IHNlcnZpY2Ugd29ya2VyIGNsaWVudHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTI4NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYWx0aW1lVmlk
ZW9DYXB0dXJlU291cmNlIHdhcyBvbmx5IGV4cGVjdGluZyBzb3VyY2VzIHdpdGggcHJlc2V0cywg
d2hpY2ggZGlzcGxheSBjYXB0dXJlIGlzIG5vdC4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNv
dXJjZXMgd2l0aCBubyBwcmVzZXRzIHRoYXQgY2FuIHNjYWxlIHRvIHdoYXRldmVyIHJlc29sdXRp
b24uCisgICAgICAgIFVwZGF0ZSBtb2NrIHNvdXJjZSB0byBiZSBjbG9zZXIgdG8gZGlzcGxheSBj
YXB0dXJlIHNvdXJjZS8KKworICAgICAgICBUZXN0OiBmYXN0L21lZGlhc3RyZWFtL2dldERpc3Bs
YXlNZWRpYS1zaXplLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW06CisKIDIwMjEtMTAt
MDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBwcm9jZXNzaW5nIHB1c2ggZXZlbnRzIHdpdGhvdXQgc2VydmljZSB3b3JrZXIgY2xp
ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCAxYzM3ZGZmZWRjZDQ0MzNhMjNkNzljY2IyYWQ3MzVkMTFlNTYwNzM4
Li5lYTA5ZmM5OTcyYTkyYzBkNjY4NTc0YWU4NzlmZTk0NGVhZjk3OWVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDIxLTEwLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcHJvY2Vzc2luZyBwdXNoIGV2ZW50cyB3aXRo
b3V0IHNlcnZpY2Ugd29ya2VyIGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMTI4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwOgorICAgICAgICBNYWtlIHN1cmUgdG8gc2VuZCBiYWNrIHNpemUgYW5kIGZy
YW1lUmF0ZSBmb3IgYWxsIHNvdXJjZXMuCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgRG8gbm90IHNldCBhIGZyYW1lUmF0
ZSBjb25zdHJhaW50IGluIGNhc2UgZnJhbWVSYXRlIGlzIG51bGwuCisKIDIwMjEtMTAtMDYgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciBwcm9jZXNzaW5nIHB1c2ggZXZlbnRzIHdpdGhvdXQgc2VydmljZSB3b3JrZXIgY2xpZW50cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVW
aWRlb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDg2ODZiYWM0ZjE2MTI2NjA4
YzlmMTUyYTYyZTEwNGUzZGI3MjU3NDUuLjYwOWY2MjgxOGI2MjRhOWUwODYyOGMxNmRkOGY1ZDUx
ZDQzNDQzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTYyLDcg
KzYyLDYgQEAgY29uc3QgVmVjdG9yPFJlZjxWaWRlb1ByZXNldD4+JiBSZWFsdGltZVZpZGVvQ2Fw
dHVyZVNvdXJjZTo6cHJlc2V0cygpCiAgICAgaWYgKG1fcHJlc2V0cy5pc0VtcHR5KCkpCiAgICAg
ICAgIGdlbmVyYXRlUHJlc2V0cygpOwogCi0gICAgQVNTRVJUKCFtX3ByZXNldHMuaXNFbXB0eSgp
KTsKICAgICByZXR1cm4gbV9wcmVzZXRzOwogfQogCkBAIC0yNTYsNiArMjU1LDIyIEBAIHN0ZDo6
b3B0aW9uYWw8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OkNhcHR1cmVTaXplQW5kRnJhbWVS
YXRlPiBSZWFsdGltZVZpZGVvCiAgICAgICAgIHJlcXVlc3RlZEhlaWdodCA9IHNpemUoKS5oZWln
aHQoKTsKICAgICB9CiAKKyAgICBpZiAocHJlc2V0cygpLmlzRW1wdHkoKSkgeworICAgICAgICAv
LyBUaGUgc291cmNlIGlzIGFibGUgdG8gcmVzaXplIGF0IHdpbGwsIGxldCdzIHVzZSBpdC4KKyAg
ICAgICAgaWYgKCFyZXF1ZXN0ZWRXaWR0aCAmJiAgcmVxdWVzdGVkSGVpZ2h0ICYmIHNpemUoKS5p
c0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4geyB9OworCisgICAgICAgIEludFNpemUgY2Fw
dHVyZVNpemU7CisgICAgICAgIGlmICghcmVxdWVzdGVkV2lkdGgpIHsKKyAgICAgICAgICAgIGNh
cHR1cmVTaXplLnNldFdpZHRoKCpyZXF1ZXN0ZWRXaWR0aCk7CisgICAgICAgICAgICBjYXB0dXJl
U2l6ZS5zZXRIZWlnaHQocmVxdWVzdGVkSGVpZ2h0ID8gKnJlcXVlc3RlZEhlaWdodCA6ICpyZXF1
ZXN0ZWRXaWR0aCAqIHNpemUoKS5oZWlnaHQoKSAvIHNpemUoKS53aWR0aCgpKTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIGNhcHR1cmVTaXplLnNldEhlaWdodCgqcmVxdWVzdGVkSGVp
Z2h0KTsKKyAgICAgICAgICAgIGNhcHR1cmVTaXplLnNldFdpZHRoKHJlcXVlc3RlZFdpZHRoID8g
KnJlcXVlc3RlZFdpZHRoIDogKnJlcXVlc3RlZEhlaWdodCAqIHNpemUoKS53aWR0aCgpIC8gc2l6
ZSgpLmhlaWdodCgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gQ2FwdHVyZVNpemVBbmRG
cmFtZVJhdGUgeyBWaWRlb1ByZXNldDo6Y3JlYXRlKFZpZGVvUHJlc2V0RGF0YSB7IGNhcHR1cmVT
aXplLCB7IH0gfSksIGNhcHR1cmVTaXplLCByZXF1ZXN0ZWRGcmFtZVJhdGUudmFsdWVfb3IoZnJh
bWVSYXRlKCkpIH07CisgICAgfQorCiAgICAgUmVmUHRyPFZpZGVvUHJlc2V0PiBleGFjdFNpemVQ
cmVzZXQ7CiAgICAgUmVmUHRyPFZpZGVvUHJlc2V0PiBhc3BlY3RSYXRpb1ByZXNldDsKICAgICBJ
bnRTaXplIGFzcGVjdFJhdGlvTWF0Y2hTaXplOwpAQCAtMzgzLDcgKzM5OCw4IEBAIHZvaWQgUmVh
bHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OnNldFNpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25h
bDxpbnQ+IHdpZHRoLCBzCiAKICAgICBpZiAoIW1hdGNoLT5yZXF1ZXN0ZWRTaXplLmlzRW1wdHko
KSkKICAgICAgICAgc2V0U2l6ZShtYXRjaC0+cmVxdWVzdGVkU2l6ZSk7Ci0gICAgc2V0RnJhbWVS
YXRlKG1hdGNoLT5yZXF1ZXN0ZWRGcmFtZVJhdGUpOworICAgIGlmIChtYXRjaC0+cmVxdWVzdGVk
RnJhbWVSYXRlKQorICAgICAgICBzZXRGcmFtZVJhdGUobWF0Y2gtPnJlcXVlc3RlZEZyYW1lUmF0
ZSk7CiB9CiAKIHZvaWQgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OmRpc3BhdGNoTWVkaWFT
YW1wbGVUb09ic2VydmVycyhNZWRpYVNhbXBsZSYgc2FtcGxlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2VNYWMuaAppbmRleCA5NWNmMzVjZDRlYjEzMThkODY4MzI3M2E1ZDA5NmM3
MzY0NDYwOGIwLi44M2VhOTFjZWMwMWJiZTEwZWE3YzAyMGQ1MjIwNTQ1ZWE5YmM4MzRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2VNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaApAQCAtNTgsMTAgKzU4LDEzIEBA
IHByaXZhdGU6CiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0OwogICAg
IHZvaWQgdXBkYXRlU2FtcGxlQnVmZmVyKCkgZmluYWw7CiAgICAgYm9vbCBjYW5SZXNpemVWaWRl
b0ZyYW1lcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICAvLyBXZSBtb2NrIG1h
YyBpbXBsZW1lbnRhdGlvbiBmb3Igd2hpY2ggZGlzcGxheSBzb3VyY2UgaXMgbm90IGEgUmVhbHRp
bWVWaWRlb1NvdXJjZS4KKyAgICBib29sIGlzVmlkZW9Tb3VyY2UoKSBjb25zdCB7IHJldHVybiAh
bV9pc0Rpc3BsYXk7IH0KIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZVRyYW5zZmVyU2Vzc2lv
blZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwogICAgIEludFNpemUgbV9wcmVzZXRTaXplOwog
ICAgIFJlZjxXb3JrUXVldWU+IG1fd29ya1F1ZXVlOworICAgIGJvb2wgbV9pc0Rpc3BsYXkgeyBm
YWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFs
dGltZVZpZGVvU291cmNlTWFjLm1tCmluZGV4IGYwMzk4NzcxNzE2NDc3YTE4OWU4NmEzMThjMDc2
MGI5MzNjNDkwYTcuLjA4NDg3ZjI1NTYwMDE1NTQwNTU1ZWY3NTRjZTRmMzJhMmY4M2Q5YWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KQEAgLTcyLDcgKzcyLDkg
QEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShT
dHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYKIAogUmVmPE1vY2tSZWFsdGltZVZpZGVvU291cmNl
PiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6Y3JlYXRlRm9yTW9ja0Rpc3BsYXlDYXB0dXJl
cihTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoV1RG
TW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSk7CisgICAg
YXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKFdU
Rk1vdmUoZGV2aWNlSUQpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkpOworICAg
IHNvdXJjZS0+bV9pc0Rpc3BsYXkgPSB0cnVlOworICAgIHJldHVybiBzb3VyY2U7CiB9CiAKIE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyhTdHJp
bmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGM4MTBmMTBkMDljYzA4ODgwM2YzM2MwNmMwN2FmNjYx
ZDdhNzg0M2EuLjdiMjUyZTQzNzc1NjZjYzMyOTQ4MWUxZjI0Njg2YzhhYTdlNjIxMDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0zMTgsOSArMzE4LDkgQEAgdm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VX
aXRoQ29uc3RyYWkKICAgICAgICAgaWYgKHNvdXJjZS0+aXNWaWRlb1NvdXJjZSgpKSB7CiAgICAg
ICAgICAgICBhdXRvJiB2aWRlb1NvdXJjZSA9IHN0YXRpY19jYXN0PFJlYWx0aW1lVmlkZW9Tb3Vy
Y2UmPihzb3VyY2UuZ2V0KCkpOwogICAgICAgICAgICAgcHJlc2V0cyA9IHZpZGVvU291cmNlLnBy
ZXNldHNEYXRhKCk7Ci0gICAgICAgICAgICBzaXplID0gdmlkZW9Tb3VyY2Uuc2l6ZSgpOwotICAg
ICAgICAgICAgZnJhbWVSYXRlID0gdmlkZW9Tb3VyY2UuZnJhbWVSYXRlKCk7CiAgICAgICAgIH0K
KyAgICAgICAgc2l6ZSA9IHNvdXJjZS0+c2l6ZSgpOworICAgICAgICBmcmFtZVJhdGUgPSBzb3Vy
Y2UtPmZyYW1lUmF0ZSgpOwogCiAgICAgICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKGlk
KSk7CiAgICAgICAgIGF1dG8gcHJveHkgPSBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwgbV9j
b25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgV1RGTW92ZShzb3VyY2UpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlLmNwcAppbmRleCAxY2IwMDA3NDcxZTQyMmJkZTc0MmQyMDI0ZjY1ZDJhYWU4MGE0
YzRjLi5hZmZjNGMwNTQ5MzE5ZjNlY2IwMmQyODJiOGNjMjliZjUzODNjYjY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
VmlkZW9Tb3VyY2UuY3BwCkBAIC0xNzQsMTAgKzE3NCwxMSBAQCB2b2lkIFJlbW90ZVJlYWx0aW1l
VmlkZW9Tb3VyY2U6OnNldEZyYW1lUmF0ZVdpdGhQcmVzZXQoZG91YmxlIGZyYW1lUmF0ZSwgUmVm
UHRyPAogICAgIE1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHM7CiAKICAgICBjb25zdHJhaW50
cy5pc1ZhbGlkID0gdHJ1ZTsKLSAgICBEb3VibGVDb25zdHJhaW50IGZyYW1lUmF0ZUNvbnN0cmFp
bnQoImZyYW1lUmF0ZSJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVSYXRlKTsKLSAgICBm
cmFtZVJhdGVDb25zdHJhaW50LnNldElkZWFsKGZyYW1lUmF0ZSk7Ci0gICAgY29uc3RyYWludHMu
bWFuZGF0b3J5Q29uc3RyYWludHMuc2V0KE1lZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZSwg
ZnJhbWVSYXRlQ29uc3RyYWludCk7Ci0KKyAgICBpZiAoZnJhbWVSYXRlKSB7CisgICAgICAgIERv
dWJsZUNvbnN0cmFpbnQgZnJhbWVSYXRlQ29uc3RyYWludCgiZnJhbWVSYXRlIl9zLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpGcmFtZVJhdGUpOworICAgICAgICBmcmFtZVJhdGVDb25zdHJhaW50LnNl
dElkZWFsKGZyYW1lUmF0ZSk7CisgICAgICAgIGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFp
bnRzLnNldChNZWRpYUNvbnN0cmFpbnRUeXBlOjpGcmFtZVJhdGUsIGZyYW1lUmF0ZUNvbnN0cmFp
bnQpOworICAgIH0KICAgICBpZiAocHJlc2V0KSB7CiAgICAgICAgIEludENvbnN0cmFpbnQgd2lk
dGhDb25zdHJhaW50KCJ3aWR0aCJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgpOwogICAg
ICAgICB3aWR0aENvbnN0cmFpbnQuc2V0SWRlYWwocHJlc2V0LT5zaXplLndpZHRoKCkpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGJmMDAzNjNmODVhZjU5ZDY5NDgyMzIzYzZlOTU1ZTZkOThkMTJlZmYuLmM3MzRhMWFhNjI2
ZjQwNTNjNDc5ODYwZDVhOWM3OTQ4MmI1NmMzMGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAy
MS0xMC0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIHByb2Nlc3NpbmcgcHVzaCBldmVudHMgd2l0aG91dCBzZXJ2aWNlIHdvcmtl
ciBjbGllbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzEyODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLXNpemUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLmh0
bWw6IEFkZGVkLgorCiAyMDIxLTEwLTA0ICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW2Nzcy1ncmlkXSBSZXN5bmMgd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3Jp
ZCB0ZXN0cyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLXNpemUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdlNDA0YjQzY2Y1MDA4NmIyZTRmZTE3NDY3MWE3NjVhMDk2NmNhMzQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXpl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworCitQQVNTIEVuc3VyZSBnZXREaXNwbGF5
TWVkaWEgc2l6ZSBjYW4gYmUgcmVkdWNlZCB3aXRoIGFwcGx5Q29uc3RyYWludHMKK1BBU1MgRW5z
dXJlIGdldERpc3BsYXlNZWRpYSBzaXplIGNhbiBiZSBpbmNyZWFzZWQgd2l0aCBhcHBseUNvbnN0
cmFpbnRzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0RGlz
cGxheU1lZGlhLXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0RGlz
cGxheU1lZGlhLXNpemUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNWU5ZDk0YTE0N2YwZDYzODVlMGVhYjY3
NWRhMDUyYWMzMDRmZTcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtc2l6ZS5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhZG9j
dHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKyAgICAgICAgPHRpdGxlPmdldERpc3BsYXlNZWRpYSBhbmQgc2l6ZTwvdGl0bGU+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9nZXREaXNw
bGF5TWVkaWEtdXRpbHMuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAg
ICAgICAgPHZpZGVvIGlkPSJ2aWRlbzEiIGF1dG9wbGF5PjwvdmlkZW8+CisgICAgICAgIDx2aWRl
byBpZD0idmlkZW8yIiBhdXRvcGxheT48L3ZpZGVvPgorICAgICAgICA8c2NyaXB0PgorcHJvbWlz
ZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgICBjb25zdCBzdHJlYW0xID0gYXdhaXQgY2FsbEdldERp
c3BsYXlNZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiA2NDAsIGhlaWdodDo0ODAgfSB9KTsKKyAgICBj
b25zdCBzdHJlYW0yID0gc3RyZWFtMS5jbG9uZSgpOworCisgICAgYXdhaXQgc3RyZWFtMi5nZXRW
aWRlb1RyYWNrcygpWzBdLmFwcGx5Q29uc3RyYWludHMoeyB3aWR0aDogMzIwLCBoZWlnaHQ6IDI0
MCB9KTsKKworICAgIHZpZGVvMS5zcmNPYmplY3QgPSBzdHJlYW0xOworICAgIHZpZGVvMi5zcmNP
YmplY3QgPSBzdHJlYW0yOworCisgICAgYXdhaXQgdmlkZW8xLnBsYXkoKTsKKyAgICBhd2FpdCB2
aWRlbzIucGxheSgpOworCisgICAgYXNzZXJ0X2VxdWFscyh2aWRlbzEudmlkZW9XaWR0aCwgNjQw
KTsKKyAgICBhc3NlcnRfZXF1YWxzKHZpZGVvMS52aWRlb0hlaWdodCwgNDgwKTsKKworICAgIGFz
c2VydF9lcXVhbHModmlkZW8yLnZpZGVvV2lkdGgsIDMyMCk7CisgICAgYXNzZXJ0X2VxdWFscyh2
aWRlbzIudmlkZW9IZWlnaHQsIDI0MCk7Cit9LCAiRW5zdXJlIGdldERpc3BsYXlNZWRpYSBzaXpl
IGNhbiBiZSByZWR1Y2VkIHdpdGggYXBwbHlDb25zdHJhaW50cyIpOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgKCkgPT4geworICAgIGNvbnN0IHN0cmVhbTEgPSBhd2FpdCBjYWxsR2V0RGlzcGxheU1l
ZGlhKHsgdmlkZW86IHsgd2lkdGg6IDY0MCwgaGVpZ2h0OjQ4MCB9IH0pOworICAgIGNvbnN0IHN0
cmVhbTIgPSBzdHJlYW0xLmNsb25lKCk7CisKKyAgICBhd2FpdCBzdHJlYW0yLmdldFZpZGVvVHJh
Y2tzKClbMF0uYXBwbHlDb25zdHJhaW50cyh7IHdpZHRoOiAxMjgwLCBoZWlnaHQ6IDk2MCB9KTsK
KworICAgIHZpZGVvMS5zcmNPYmplY3QgPSBzdHJlYW0xOworICAgIHZpZGVvMi5zcmNPYmplY3Qg
PSBzdHJlYW0yOworCisgICAgYXdhaXQgdmlkZW8xLnBsYXkoKTsKKyAgICBhd2FpdCB2aWRlbzIu
cGxheSgpOworCisgICAgYXNzZXJ0X2VxdWFscyh2aWRlbzEudmlkZW9XaWR0aCwgNjQwKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKHZpZGVvMS52aWRlb0hlaWdodCwgNDgwKTsKKworICAgIGFzc2VydF9l
cXVhbHModmlkZW8yLnZpZGVvV2lkdGgsIDEyODApOworICAgIGFzc2VydF9lcXVhbHModmlkZW8y
LnZpZGVvSGVpZ2h0LCA5NjApOworfSwgIkVuc3VyZSBnZXREaXNwbGF5TWVkaWEgc2l6ZSBjYW4g
YmUgaW5jcmVhc2VkIHdpdGggYXBwbHlDb25zdHJhaW50cyIpOworICAgICAgICA8L3NjcmlwdD4K
KyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440361</attachid>
            <date>2021-10-06 06:59:29 -0700</date>
            <delta_ts>2021-10-06 08:32:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231285-20211006155927.patch</filename>
            <type>text/plain</type>
            <size>27231</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA1NWJmNzFmZjJmZjRm
MzYwNmEzMmU1NDZjODNkM2Y4YzE4ZjMwYy4uNjc2ZDRjZDBlMDY2OTQxNWY4NzkyZWVkNGJhMGVh
MGI0YTNkYTRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEwLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
cHJvY2Vzc2luZyBwdXNoIGV2ZW50cyB3aXRob3V0IHNlcnZpY2Ugd29ya2VyIGNsaWVudHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTI4NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkg
QVBJIHRlc3QuCisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNw
cDoKKyAgICAgICAgQWRkIGEgdGltZXIgdG8gdGVybWluYXRlIHNlcnZpY2Ugd29ya2VyIGlmIGEg
cHVzaCBtZXNzYWdlIGlzIG5vdCBwcm9jZXNzZWQgd2l0aCBhIGdpdmVuIG51bWJlciBvZiBzZWNv
bmRzLgorICAgICAgICBUaGUgdGltZXIgdmFsdWUgaXMgdGhlIGRlZmF1bHQgdGVybWluYXRpb24g
ZGVsYXkgb3IgMSBzZWNvbmQgZm9yIHRlc3RpbmcuCisKIDIwMjEtMTAtMDYgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBodHRwczovL3czYy5n
aXRodWIuaW8vcHVzaC1hcGkvI3JlY2VpdmluZy1hLXB1c2gtbWVzc2FnZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBl
MzZhMTMyMTE1NTVmYTUyNjc0YWY1Mzc2ZTI1NGQ2MjM2NTE5ZTA3Li4xYzM3ZGZmZWRjZDQ0MzNh
MjNkNzljY2IyYWQ3MzVkMTFlNTYwNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIx
LTEwLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgcHJvY2Vzc2luZyBwdXNoIGV2ZW50cyB3aXRob3V0IHNlcnZpY2Ugd29ya2Vy
IGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTI4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdoZW4gZmlyaW5nIGEgcHVzaCBldmVudCwgYXNrIFVJUHJvY2VzcyB0byB0YWtlIGEgYmFja2dy
b3VuZCBhc3NlcnRpb24gZm9yIHRoZSBwcm9jZXNzIHJ1bm5pbmcgdGhlIHNlcnZpY2Ugd29ya2Vy
LgorICAgICAgICBXZSB1c2UgYSBjb3VudGVyIGJhc2VkIGFwcHJvYWNoIHRvIHRha2UvZGlzcG9z
ZSBvZiB0aGUgYmFja2dvcnVuZCBhc3NlcnRpb24uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisKIDIwMjEtMTAtMDYgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBodHRwczovL3czYy5naXRo
dWIuaW8vcHVzaC1hcGkvI3JlY2VpdmluZy1hLXB1c2gtbWVzc2FnZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAppbmRleCA2YmNiZjcw
NDFhZjg0OTQwZTAxMjMwMzBhYTZkY2Y3Y2QzOWI4ZDkzLi5iZDIxYTVkNDhjZmZhZTA4ZmE1MGIy
M2VlYjRkNTE4YzYzYWUxNzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcApAQCAtMTIwNCwxMiArMTIwNCwyNCBAQCB2b2lkIFNX
U2VydmVyOjpwcm9jZXNzUHVzaE1lc3NhZ2Uoc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+
JiYgZGF0YSwgVVJMJiYgcgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAg
ICAgZmlyZUZ1bmN0aW9uYWxFdmVudCgqcmVnaXN0cmF0aW9uLCBbc2VydmljZVdvcmtlcklkZW50
aWZpZXIgPSB3b3JrZXItPmlkZW50aWZpZXIoKSwgZGF0YSA9IFdURk1vdmUoZGF0YSksIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiBjb25uZWN0aW9uT3JTdGF0dXMpIG11dGFi
bGUgeworICAgICAgICBmaXJlRnVuY3Rpb25hbEV2ZW50KCpyZWdpc3RyYXRpb24sIFt3b3JrZXIg
PSBSZWYgeyAqd29ya2VyIH0sIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGRhdGEgPSBX
VEZNb3ZlKGRhdGEpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgY29ubmVj
dGlvbk9yU3RhdHVzKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghY29ubmVjdGlvbk9yU3Rh
dHVzLmhhc192YWx1ZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FsbGJhY2soY29ubmVjdGlvbk9y
U3RhdHVzLmVycm9yKCkgPT0gU2hvdWxkU2tpcEV2ZW50OjpZZXMpOwogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbm5lY3Rpb25PclN0YXR1cy52
YWx1ZSgpLT5maXJlUHVzaEV2ZW50KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBkYXRhLCBXVEZN
b3ZlKGNhbGxiYWNrKSk7CisKKyAgICAgICAgICAgIGF1dG8gc2VydmljZVdvcmtlcklkZW50aWZp
ZXIgPSB3b3JrZXItPmlkZW50aWZpZXIoKTsKKyAgICAgICAgICAgIGF1dG8gdGVybWluYXRlV29y
a2VyVGltZXIgPSBtYWtlVW5pcXVlPFRpbWVyPihbd29ya2VyID0gV1RGTW92ZSh3b3JrZXIpXSB7
CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoU2VydmljZVdvcmtlciwgIlRlcm1p
bmF0aW5nIHNlcnZpY2Ugd29ya2VyIGFzIHByb2Nlc3NpbmcgcHVzaCBldmVudCB0b29rIHRvbyBt
dWNoIHRpbWUiKTsKKyAgICAgICAgICAgICAgICB3b3JrZXItPnRlcm1pbmF0ZSgpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0ZXJtaW5hdGVXb3JrZXJUaW1lci0+c3RhcnRPbmVTaG90
KHdlYWtUaGlzICYmIHdlYWtUaGlzLT5tX2lzUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVk
ID8gZGVmYXVsdFRlcm1pbmF0aW9uRGVsYXkgOiAxX3MpOworICAgICAgICAgICAgY29ubmVjdGlv
bk9yU3RhdHVzLnZhbHVlKCktPmZpcmVQdXNoRXZlbnQoc2VydmljZVdvcmtlcklkZW50aWZpZXIs
IGRhdGEsIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0ZXJtaW5hdGVXb3JrZXJUaW1l
ciA9IFdURk1vdmUodGVybWluYXRlV29ya2VyVGltZXIpXShib29sIHN1Y2NlZWRlZCkgbXV0YWJs
ZSB7CisgICAgICAgICAgICAgICAgaWYgKHRlcm1pbmF0ZVdvcmtlclRpbWVyLT5pc0FjdGl2ZSgp
KQorICAgICAgICAgICAgICAgICAgICB0ZXJtaW5hdGVXb3JrZXJUaW1lci0+c3RvcCgpOworCisg
ICAgICAgICAgICAgICAgY2FsbGJhY2soc3VjY2VlZGVkKTsKKyAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXggZjJjMjdhYTRhNGU2YWVhODRjNTc0ZGRhYzc0MTkx
Yjc0YzU4NjA3Zi4uMjVlYzFhY2E4ZjQ4Y2Q0MjA1MTBmMzZhNDAyOGJkMmQ0Y2ViOTYwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAK
QEAgLTEwOSwxMCArMTA5LDE3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
OjpmaXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzCiAKIHZvaWQgV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpmaXJlUHVzaEV2ZW50KFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBzdGQ6Om9w
dGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4mIGRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYgY2FsbGJhY2spCiB7CisgICAgaWYgKCFtX3Byb2Nlc3NpbmdQdXNoRXZlbnRzQ291bnQr
KykKKyAgICAgICAgbV9jb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6U3RhcnRTZXJ2
aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcgeyB3ZWJQcm9jZXNzSWRlbnRpZmllcigpIH0s
IDApOworCiAgICAgc3RkOjpvcHRpb25hbDxJUEM6OkRhdGFSZWZlcmVuY2U+IGlwY0RhdGE7CiAg
ICAgaWYgKGRhdGEpCiAgICAgICAgIGlwY0RhdGEgPSBJUEM6OkRhdGFSZWZlcmVuY2UgeyBkYXRh
LT5kYXRhKCksIGRhdGEtPnNpemUoKSB9OwotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkZpcmVQdXNoRXZlbnQoc2VydmljZVdv
cmtlcklkZW50aWZpZXIsIGlwY0RhdGEpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Rmly
ZVB1c2hFdmVudChzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgaXBjRGF0YSksIFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKHRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIHdh
c1Byb2Nlc3NlZCkgbXV0YWJsZSB7CisgICAgICAgIGlmICh3ZWFrVGhpcyAmJiAhLS13ZWFrVGhp
cy0+bV9wcm9jZXNzaW5nUHVzaEV2ZW50c0NvdW50KQorICAgICAgICAgICAgd2Vha1RoaXMtPm1f
Y29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkVuZFNlcnZpY2VXb3JrZXJCYWNrZ3Jv
dW5kUHJvY2Vzc2luZyB7IHdlYWtUaGlzLT53ZWJQcm9jZXNzSWRlbnRpZmllcigpIH0sIDApOwor
ICAgICAgICBjYWxsYmFjayh3YXNQcm9jZXNzZWQpOworICAgIH0pOwogfQogCiB2b2lkIFdlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCmluZGV4IDlhZWE3NjdmNTJiODMwMTc5MzNj
Zjk0ZmIzODQ5MDA5MDY2MDI4NTQuLjk4NDA1YzdiODhmYmE0NjI4ODkzNWEzY2MyNjE1ZTNmOWYz
MmFiN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmgKQEAgLTEwNSw2ICsxMDUsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6
RmV0Y2hJZGVudGlmaWVyLCBXZWFrUHRyPFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s+PiBtX29uZ29p
bmdGZXRjaGVzOwogICAgIGJvb2wgbV9pc1Rocm90dGxlYWJsZSB7IHRydWUgfTsKICAgICBXZWJQ
YWdlUHJveHlJZGVudGlmaWVyIG1fd2ViUGFnZVByb3h5SUQ7CisgICAgc2l6ZV90IG1fcHJvY2Vz
c2luZ1B1c2hFdmVudHNDb3VudCB7IDAgfTsKIH07IC8vIGNsYXNzIFdlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4
IDk4NjA4YjlmMzI5ZTFlYzdlNzJhZjk0M2M3NmI2YzIxNDViOTY2MzQuLjA5MWZmMWU3YTFhZmZj
NWYwOWNlYjUyMzM4NzFhNzc3MjgyNDY3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNzQ4LDYgKzc0
OCwxMSBAQCBzdGF0aWMgVmVjdG9yPFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0
ZURhdGFSZWNvcmRzKE5TQXJyYXkgKmRhdGFSZWNvcgogICAgIH0pOwogfQogCistKGJvb2wpX2hh
c1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0aXZpdHlGb3JUZXN0aW5nCit7CisgICAgcmV0dXJu
IF93ZWJzaXRlRGF0YVN0b3JlLT5oYXNTZXJ2aWNlV29ya2VyQmFja2dyb3VuZEFjdGl2aXR5Rm9y
VGVzdGluZygpOworfQorCiAtKHZvaWQpX3Byb2Nlc3NQdXNoTWVzc2FnZTooTlNEYXRhKikgbWVz
c2FnZSByZWdpc3RyYXRpb246KE5TVVJMICopcmVnaXN0cmF0aW9uIGNvbXBsZXRpb25IYW5kbGVy
Oih2b2lkKF4pKGJvb2wgd2FzUHJvY2Vzc2VkKSljb21wbGV0aW9uSGFuZGxlcgogewogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCmluZGV4IDY1NDFi
OGQ0NDRhZjJkYjA5N2UxZDRiZmRiOWEyZGUzODczMjM0NmUuLmY1ZGU2NzYwMjE5NTNmMjRhMDc4
Mzc3NGZjNzk1MWM0NTNjMWY5NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaApAQCAtMTA1
LDYgKzEwNSw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0
YVN0b3JlRmV0Y2hPcHRpb25zKSB7CiArIChCT09MKV9kZWZhdWx0TmV0d29ya1Byb2Nlc3NFeGlz
dHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKHZvaWQpX2Nv
dW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzOih2b2lkKF4pKHNpemVfdCkpY29tcGxldGlvbkhhbmRs
ZXI7CiAKKy0oYm9vbClfaGFzU2VydmljZVdvcmtlckJhY2tncm91bmRBY3Rpdml0eUZvclRlc3Rp
bmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IC0odm9pZClfcHJvY2Vzc1B1c2hNZXNzYWdlOihOU0RhdGEqKWRhdGEgcmVnaXN0cmF0aW9uOihO
U1VSTCAqKXJlZ2lzdHJhdGlvbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShib29sKSljb21w
bGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBjNGI4MDBiZTM3OTI0ZDQwOTc0
Y2JkYWRlOTdlMGY3MjRlNzk1MTgzLi4yNDc3Y2FjNzRiZjEwZjVjOTlmMWZkMzQ3NzJmMTY3ZTIw
OTQxODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTEzOTYsNiArMTM5NiwxOCBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50UHJvY2VzcyhXZWJD
b3JlOjpQcm9jZXNzSQogCiAgICAgc2VydmljZVdvcmtlclByb2Nlc3MtPnVucmVnaXN0ZXJTZXJ2
aWNlV29ya2VyQ2xpZW50UHJvY2Vzcygqd2ViUHJvY2Vzcyk7CiB9CisKK3ZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6c3RhcnRTZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcoV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtlclByb2Nlc3NJZGVudGlmaWVyKQorewor
ICAgIGlmIChhdXRvKiBzZXJ2aWNlV29ya2VyUHJvY2VzcyA9IFdlYlByb2Nlc3NQcm94eTo6cHJv
Y2Vzc0ZvcklkZW50aWZpZXIoc2VydmljZVdvcmtlclByb2Nlc3NJZGVudGlmaWVyKSkKKyAgICAg
ICAgc2VydmljZVdvcmtlclByb2Nlc3MtPnN0YXJ0U2VydmljZVdvcmtlckJhY2tncm91bmRQcm9j
ZXNzaW5nKCk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZW5kU2VydmljZVdvcmtl
ckJhY2tncm91bmRQcm9jZXNzaW5nKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHNlcnZpY2VX
b3JrZXJQcm9jZXNzSWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byogc2VydmljZVdvcmtlclBy
b2Nlc3MgPSBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NGb3JJZGVudGlmaWVyKHNlcnZpY2VXb3Jr
ZXJQcm9jZXNzSWRlbnRpZmllcikpCisgICAgICAgIHNlcnZpY2VXb3JrZXJQcm9jZXNzLT5lbmRT
ZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcoKTsKK30KICNlbmRpZgogCiB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlU3BhY2UoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgdWludDY0X3QgY3Vy
cmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50U2l6ZSwgdWludDY0X3Qgc3BhY2VSZXF1aXJlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBxdW90YSk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDY3N2UxMGNjN2EzYjhlMTBjNjg0NmNi
ODQ3YmIwZTk4MTBkOTBlYmUuLmRmZjNhMmVkNTAyZjRhMGU0NzE3YjQyNWYzMTQ3NWJiMDg1ZjY5
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oCkBAIC0zMjMsNiArMzIzLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHdv
cmtlckNvbnRleHRDb25uZWN0aW9uTm9Mb25nZXJOZWVkZWQoV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aWZpZXIpOwogICAgIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50UHJvY2VzcyhXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllciwgV2ViQ29yZTo6UHJv
Y2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtlclByb2Nlc3NJZGVudGlmaWVyKTsKICAgICB2b2lk
IHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50UHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllciwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIg
c2VydmljZVdvcmtlclByb2Nlc3NJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0YXJ0U2VydmljZVdv
cmtlckJhY2tncm91bmRQcm9jZXNzaW5nKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHNlcnZp
Y2VXb3JrZXJQcm9jZXNzSWRlbnRpZmllcik7CisgICAgdm9pZCBlbmRTZXJ2aWNlV29ya2VyQmFj
a2dyb3VuZFByb2Nlc3NpbmcoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtl
clByb2Nlc3NJZGVudGlmaWVyKTsKICNlbmRpZgogCiAgICAgdm9pZCB0ZXJtaW5hdGVXZWJQcm9j
ZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbgppbmRleCAzYWUwMWVhMmRkN2E2YzBhNjY2YWVhOWYwZGE5YmFlOTJkODc4NDM2Li4yNTIw
MDgzY2NhZDI0MjlkOGFkMjJmNzdmNGY3MGI4MDMyYWNmYjA2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCkBAIC01Nyw2ICs1Nyw4IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNz
UHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIFdvcmtlckNvbnRleHRDb25uZWN0aW9uTm9Mb25n
ZXJOZWVkZWQoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBSZWdp
c3RlclNlcnZpY2VXb3JrZXJDbGllbnRQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
IHdlYlByb2Nlc3NJZGVudGlmaWVyLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBzZXJ2aWNl
V29ya2VyUHJvY2Vzc0lkZW50aWZpZXIpCiAgICAgVW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGll
bnRQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVy
LCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUHJvY2Vzc0lkZW50aWZp
ZXIpCisgICAgU3RhcnRTZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcoV2ViQ29yZTo6
UHJvY2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtlclByb2Nlc3NJZGVudGlmaWVyKQorICAgIEVu
ZFNlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kUHJvY2Vzc2luZyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
ZmllciBzZXJ2aWNlV29ya2VyUHJvY2Vzc0lkZW50aWZpZXIpCiAjZW5kaWYKIAogICAgIFNldFdl
YlByb2Nlc3NIYXNVcGxvYWRzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJRCwg
Ym9vbCBoYXNVcGxvYWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcAppbmRleCBkMDU1YmFmMTllMTc0MDNhMTRiM2M1Njc1YTc4MDE5NWQ2ODk1ZTkwLi4zYjAx
NmUzNjliOTA2NzM3YTBmNTZkMTlmNTQ1OGU2NzEyOTlkMjZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE5MzgsNiArMTkzOCwxNCBAQCB2b2lk
IFdlYlByb2Nlc3NQcm94eTo6dXBkYXRlU2VydmljZVdvcmtlclByb2Nlc3NBc3NlcnRpb24oKQog
ICAgICAgICAgICAgbV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24tPmFjdGl2aXR5ID0gbV90aHJv
dHRsZXIuYmFja2dyb3VuZEFjdGl2aXR5KCJTZXJ2aWNlIFdvcmtlciBmb3IgYmFja2dyb3VuZCB2
aWV3KHMpIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKworICAgIGlmIChtX2hhc1NlcnZp
Y2VXb3JrZXJCYWNrZ3JvdW5kUHJvY2Vzc2luZykgeworICAgICAgICBXRUJQUk9DRVNTUFJPWFlf
UkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJTZXJ2aWNlIFdvcmtlciBmb3IgYmFja2dy
b3VuZCBwcm9jZXNzaW5nIik7CisgICAgICAgIGlmICghUHJvY2Vzc1Rocm90dGxlcjo6aXNWYWxp
ZEJhY2tncm91bmRBY3Rpdml0eShtX3NlcnZpY2VXb3JrZXJJbmZvcm1hdGlvbi0+YWN0aXZpdHkp
KQorICAgICAgICAgICAgbV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24tPmFjdGl2aXR5ID0gbV90
aHJvdHRsZXIuYmFja2dyb3VuZEFjdGl2aXR5KCJTZXJ2aWNlIFdvcmtlciBmb3IgYmFja2dyb3Vu
ZCBwcm9jZXNzaW5nIl9zKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIG1fc2Vydmlj
ZVdvcmtlckluZm9ybWF0aW9uLT5hY3Rpdml0eSA9IG51bGxwdHI7CiB9CiAKQEAgLTE5NzAsNiAr
MTk3OCwyNiBAQCBib29sIFdlYlByb2Nlc3NQcm94eTo6aGFzU2VydmljZVdvcmtlckJhY2tncm91
bmRBY3Rpdml0eUZvclRlc3RpbmcoKSBjb25zdAogewogICAgIHJldHVybiBtX3NlcnZpY2VXb3Jr
ZXJJbmZvcm1hdGlvbiA/IFByb2Nlc3NUaHJvdHRsZXI6OmlzVmFsaWRCYWNrZ3JvdW5kQWN0aXZp
dHkobV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24tPmFjdGl2aXR5KSA6IGZhbHNlOwogfQorCit2
b2lkIFdlYlByb2Nlc3NQcm94eTo6c3RhcnRTZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3Np
bmcoKQoreworICAgIGlmICghbV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24pCisgICAgICAgIHJl
dHVybjsKKworICAgIFdFQlBST0NFU1NQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lv
biwgInN0YXJ0U2VydmljZVdvcmtlckJhY2tncm91bmRQcm9jZXNzaW5nIik7CisgICAgbV9oYXNT
ZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcgPSB0cnVlOworICAgIHVwZGF0ZVNlcnZp
Y2VXb3JrZXJQcm9jZXNzQXNzZXJ0aW9uKCk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpl
bmRTZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcoKQoreworICAgIGlmICghbV9zZXJ2
aWNlV29ya2VySW5mb3JtYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIFdFQlBST0NFU1NQ
Uk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgImVuZFNlcnZpY2VXb3JrZXJCYWNr
Z3JvdW5kUHJvY2Vzc2luZyIpOworICAgIG1faGFzU2VydmljZVdvcmtlckJhY2tncm91bmRQcm9j
ZXNzaW5nID0gZmFsc2U7CisgICAgdXBkYXRlU2VydmljZVdvcmtlclByb2Nlc3NBc3NlcnRpb24o
KTsKK30KICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpkaXNhYmxlU2VydmljZVdvcmtlcnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaAppbmRleCA2ZGNlNDJlODJhZDIzODEzMjA2ZGM3ZmUyNTA5ODVhZmU4
MThhNDU1Li5kNGJiMmZjZmM2MWUwYjhjZTgzNGIyYzgwNzc4ODA4ZjcxNWU1ZjYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzY2LDYgKzM2Niw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50UHJvY2VzcyhX
ZWJQcm9jZXNzUHJveHkmKTsKICAgICBib29sIGhhc1NlcnZpY2VXb3JrZXJGb3JlZ3JvdW5kQWN0
aXZpdHlGb3JUZXN0aW5nKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNTZXJ2aWNlV29ya2VyQmFja2dy
b3VuZEFjdGl2aXR5Rm9yVGVzdGluZygpIGNvbnN0OworICAgIHZvaWQgc3RhcnRTZXJ2aWNlV29y
a2VyQmFja2dyb3VuZFByb2Nlc3NpbmcoKTsKKyAgICB2b2lkIGVuZFNlcnZpY2VXb3JrZXJCYWNr
Z3JvdW5kUHJvY2Vzc2luZygpOwogI2VuZGlmCiAgICAgdm9pZCBzZXRBc3NlcnRpb25UeXBlRm9y
VGVzdGluZyhQcm9jZXNzQXNzZXJ0aW9uVHlwZSB0eXBlKSB7IGRpZFNldEFzc2VydGlvblR5cGUo
dHlwZSk7IH0KIApAQCAtNjU3LDYgKzY1OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIFdlYWtIYXNo
U2V0PFdlYlByb2Nlc3NQcm94eT4gY2xpZW50UHJvY2Vzc2VzOwogICAgIH07CiAgICAgc3RkOjpv
cHRpb25hbDxTZXJ2aWNlV29ya2VySW5mb3JtYXRpb24+IG1fc2VydmljZVdvcmtlckluZm9ybWF0
aW9uOworICAgIGJvb2wgbV9oYXNTZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcgeyBm
YWxzZSB9OwogCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciwg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI+PiBtX3NsZWVwRGlzYWJsZXJz
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDdiNmE1OGU3OTJiZTVhNjNiZTc1OTU0ODcyMmE0M2Zi
OGIxMTM0NjkuLjU2NTY1MjlmMWFkMzdlM2E3N2I0MjA4OWRmYmU5ZTI0MzNmNjc2M2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwCkBAIC0xMDA3LDYgKzEwMDcsMTEgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3Jl
OjpyZXNldFNlcnZpY2VXb3JrZXJUaW1lb3V0Rm9yVGVzdGluZygpCiAgICAgbmV0d29ya1Byb2Nl
c3MoKS5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlJlc2V0U2VydmljZVdvcmtl
ckZldGNoVGltZW91dEZvclRlc3RpbmcoKSwgTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpSZXNl
dFNlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5nOjpSZXBseSgpLCAwKTsKIH0KIAor
Ym9vbCBXZWJzaXRlRGF0YVN0b3JlOjpoYXNTZXJ2aWNlV29ya2VyQmFja2dyb3VuZEFjdGl2aXR5
Rm9yVGVzdGluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6YW55T2YoV2ViUHJvY2Vzc1Bv
b2w6OmFsbFByb2Nlc3NQb29scygpLCBbXShhdXRvJiBwb29sKSB7IHJldHVybiBwb29sLT5oYXNT
ZXJ2aWNlV29ya2VyQmFja2dyb3VuZEFjdGl2aXR5Rm9yVGVzdGluZygpOyB9KTsKK30KKwogI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBXZWJzaXRlRGF0
YVN0b3JlOjpzZXRNYXhTdGF0aXN0aWNzRW50cmllcyhzaXplX3QgbWF4aW11bUVudHJ5Q291bnQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaAppbmRleCA0MDhjN2RhN2NlN2ZlYmMwODNjZGU3MGU2YjVhMDkyNzEzMTQwNzgzLi45NWQy
ZDAwZjBhYjA3NzA4MjIzNGM2NTRjMTAxZjAzNzg0ODlhMGVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0x
NzMsNiArMTczLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbFN5bmNocm9ub3Vz
bHlGb3JUZXN0aW5nKENhY2hlTW9kZWwpOwogICAgIHZvaWQgc2V0U2VydmljZVdvcmtlclRpbWVv
dXRGb3JUZXN0aW5nKFNlY29uZHMpOwogICAgIHZvaWQgcmVzZXRTZXJ2aWNlV29ya2VyVGltZW91
dEZvclRlc3RpbmcoKTsKKyAgICBib29sIGhhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0aXZp
dHlGb3JUZXN0aW5nKCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKICAgICB2b2lkIGZldGNoRGF0YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhPcHRp
b25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+
LCBWZWN0b3I8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+JiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVmVjdG9yPFdlYnNpdGVEYXRhUmVjb3JkPiYmLCBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluPiYmKT4mJik7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggZTY3MmZkZmZhNmE4NDIxMGJmNzVlYzI2NDEwMDNjY2MwNTY5OGNi
YS4uYzE2ZTljN2UyM2VhMTAxMzMxNDNlYzFiOTYxMWMwODMyZjc5MTI4OCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDIxLTEwLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgcHJvY2Vzc2luZyBwdXNoIGV2ZW50cyB3aXRob3V0IHNlcnZpY2Ugd29y
a2VyIGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMTI4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QdXNoQVBJLm1tOgorCiAyMDIx
LTEwLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBs
ZW1lbnQgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3B1c2gtYXBpLyNyZWNlaXZpbmctYS1wdXNoLW1l
c3NhZ2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHVzaEFQSS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHVzaEFQ
SS5tbQppbmRleCA1MzI2MmE3ODA2NjJhNDc2YWMwZDFlMzQ2ZWQ0Y2JmNDAwY2NmNzU3Li5jNDI3
YjZhYjJkODI4OTNhMDVjMzczNTllZGYwOWMzYjM1ZmZkYTE3IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1B1c2hBUEkubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QdXNoQVBJLm1tCkBAIC0yOSw3ICsyOSw5IEBA
CiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGVzdC5oIgogI2ltcG9y
dCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4K
ICNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg+CisjaW1wb3J0IDxX
ZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaD4KIAogc3RhdGljIGJvb2wg
ZG9uZTsKIHN0YXRpYyBTdHJpbmcgZXhwZWN0ZWRNZXNzYWdlOwpAQCAtOTYsNiArOTgsMTggQEAg
c2VsZi5hZGRFdmVudExpc3RlbmVyKCJwdXNoIiwgKGV2ZW50KSA9PiB7CiAKIHN0YXRpYyBib29s
IHB1c2hNZXNzYWdlUHJvY2Vzc2VkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBwdXNoTWVzc2FnZVN1
Y2Nlc3NmdWwgPSBmYWxzZTsKKworc3RhdGljIGJvb2wgd2FpdFVudGlsRXZhbHVhdGVzVG9UcnVl
KGNvbnN0IEZ1bmN0aW9uPGJvb2woKT4mIGYpCit7CisgICAgdW5zaWduZWQgdGltZW91dCA9IDA7
CisgICAgZG8geworICAgICAgICBpZiAoZigpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuMSk7CisgICAgfSB3aGlsZSAoKyt0
aW1lb3V0IDwgMTAwKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFRFU1QoUHVzaEFQSSwgZmly
ZVB1c2hFdmVudCkKIHsKICAgICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7CkBA
IC0xNTAsMyArMTY0LDE4NyBAQCBURVNUKFB1c2hBUEksIGZpcmVQdXNoRXZlbnQpCiAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZwdXNoTWVzc2FnZVByb2Nlc3NlZCk7CiAgICAgRVhQRUNU
X0ZBTFNFKHB1c2hNZXNzYWdlU3VjY2Vzc2Z1bCk7CiB9CisKK3N0YXRpYyBjb25zdCBjaGFyKiB3
YWl0T25lU2Vjb25kU2NyaXB0Qnl0ZXMgPSBSIlNXUkVTT1VSQ0UoCitsZXQgcG9ydDsKK3NlbGYu
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChldmVudCkgPT4geworICAgIHBvcnQgPSBldmVu
dC5kYXRhLnBvcnQ7CisgICAgcG9ydC5wb3N0TWVzc2FnZSgiUmVhZHkiKTsKK30pOworc2VsZi5h
ZGRFdmVudExpc3RlbmVyKCJwdXNoIiwgKGV2ZW50KSA9PiB7CisgICAgaWYgKCFldmVudC5kYXRh
KQorICAgICAgICByZXR1cm47CisgICAgY29uc3QgdmFsdWUgPSBldmVudC5kYXRhLnRleHQoKTsK
KyAgICBpZiAodmFsdWUgPT09ICdTd2VldCBQb3RhdG9lcycpCisgICAgICAgIGV2ZW50LndhaXRV
bnRpbChuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkpKTsK
KyAgICBlbHNlIGlmICh2YWx1ZSA9PT0gJ1JvdHRlbiBQb3RhdG9lcycpCisgICAgICAgIGV2ZW50
LndhaXRVbnRpbChuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiBzZXRUaW1lb3V0KHJl
amVjdCwgMTAwMCkpKTsKKyAgICBlbHNlIGlmICh2YWx1ZSA9PT0gJ1RpbWVsZXNzIFBvdGF0b2Vz
JykKKyAgICAgICAgZXZlbnQud2FpdFVudGlsKG5ldyBQcm9taXNlKHJlc29sdmUgPT4geyB9KSk7
Cit9KTsKKylTV1JFU09VUkNFIjsKKworc3RhdGljIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nl
c3NXaGlsZVJlZ2lzdHJhdGlvbklzU3RvcmVkKFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZp
Z3VyYXRpb24pCit7CisgICAgYXV0byBwYXRoID0gY29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0
b3JlLl9jb25maWd1cmF0aW9uLl9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5LnBh
dGg7CisgICAgTlNVUkwqIGRpcmVjdG9yeSA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6cGF0aCBp
c0RpcmVjdG9yeTpZRVNdOworICAgIE5TVVJMICpzd0RCUGF0aCA9IFtkaXJlY3RvcnkgVVJMQnlB
cHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMtNy5zcWxp
dGUzIl07CisgICAgdW5zaWduZWQgdGltZW91dCA9IDA7CisgICAgd2hpbGUgKCFbW05TRmlsZU1h
bmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6c3dEQlBhdGgucGF0aF0gJiYg
Kyt0aW1lb3V0IDwgMTAwKQorICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjEp
OworICAgIC8vIExldCdzIGNsb3NlIHRoZSBTUUwgZGF0YWJhc2UuCisgICAgW2NvbmZpZ3VyYXRp
b24ud2Vic2l0ZURhdGFTdG9yZSBfc2VuZE5ldHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVu
dGx5XTsKKyAgICBbY29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlIF90ZXJtaW5hdGVOZXR3
b3JrUHJvY2Vzc107Cit9CisKK1RFU1QoUHVzaEFQSSwgZmlyZVB1c2hFdmVudFdpdGhOb1BhZ2Vz
U3VjY2Vzc2Z1bCkKK3sKKyAgICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7Cisg
ICAgICAgIHsgIi8iLCB7IG1haW5CeXRlcyB9IH0sCisgICAgICAgIHsgIi9zdy5qcyIsIHsge3sg
IkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiB9fSwgd2FpdE9uZVNlY29u
ZFNjcmlwdEJ5dGVzIH0gfQorICAgIH0sIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OlByb3Rv
Y29sOjpIdHRwKTsKKworICAgIFtXS1dlYnNpdGVEYXRhU3RvcmUgX2FsbG93V2Vic2l0ZURhdGFS
ZWNvcmRzRm9yQWxsT3JpZ2luc107CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5T
KFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworCisgICAgYXV0byBtZXNz
YWdlSGFuZGxlciA9IGFkb3B0TlMoW1tQdXNoQVBJTWVzc2FnZUhhbmRsZXJXaXRoRXhwZWN0ZWRN
ZXNzYWdlIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29u
dHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFt
ZTpAInN3Il07CisKKyAgICBbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gcmVtb3Zl
RGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2Rp
ZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7Cisg
ICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgZXhwZWN0ZWRNZXNzYWdlID0gIlJl
YWR5IjsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0
KCldOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIFt3ZWJW
aWV3IF9jbG9zZV07CisgICAgd2ViVmlldyA9IG51bGxwdHI7CisKKyAgICB0ZXJtaW5hdGVOZXR3
b3JrUHJvY2Vzc1doaWxlUmVnaXN0cmF0aW9uSXNTdG9yZWQoY29uZmlndXJhdGlvbi5nZXQoKSk7
CisKKyAgICAvLyBQdXNoIGV2ZW50IGZvciBzZXJ2aWNlIHdvcmtlciB3aXRob3V0IGFueSByZWxh
dGVkIHBhZ2UsIHNob3VsZCBzdWNjZWVkLgorICAgIHB1c2hNZXNzYWdlUHJvY2Vzc2VkID0gZmFs
c2U7CisgICAgcHVzaE1lc3NhZ2VTdWNjZXNzZnVsID0gZmFsc2U7CisgICAgTlNTdHJpbmcgKm1l
c3NhZ2UgPSBAIlN3ZWV0IFBvdGF0b2VzIjsKKyAgICBbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURh
dGFTdG9yZV0gX3Byb2Nlc3NQdXNoTWVzc2FnZTpbbWVzc2FnZSBkYXRhVXNpbmdFbmNvZGluZzpO
U1VURjhTdHJpbmdFbmNvZGluZ10gcmVnaXN0cmF0aW9uOltzZXJ2ZXIucmVxdWVzdCgpIFVSTF0g
Y29tcGxldGlvbkhhbmRsZXI6Xihib29sIHJlc3VsdCkgeworICAgICAgICBwdXNoTWVzc2FnZVN1
Y2Nlc3NmdWwgPSByZXN1bHQ7CisgICAgICAgIHB1c2hNZXNzYWdlUHJvY2Vzc2VkID0gdHJ1ZTsK
KyAgICB9XTsKKworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbEV2YWx1YXRlc1RvVHJ1ZShbJl0g
eyByZXR1cm4gW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIF9oYXNTZXJ2aWNlV29y
a2VyQmFja2dyb3VuZEFjdGl2aXR5Rm9yVGVzdGluZ107IH0pKTsKKworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmcHVzaE1lc3NhZ2VQcm9jZXNzZWQpOworICAgIEVYUEVDVF9UUlVFKHB1
c2hNZXNzYWdlU3VjY2Vzc2Z1bCk7CisKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxFdmFsdWF0
ZXNUb1RydWUoWyZdIHsgcmV0dXJuICFbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0g
X2hhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0aXZpdHlGb3JUZXN0aW5nXTsgfSkpOworfQor
CitURVNUKFB1c2hBUEksIGZpcmVQdXNoRXZlbnRXaXRoTm9QYWdlc0ZhaWwpCit7CisgICAgVGVz
dFdlYktpdEFQSTo6SFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyBtYWluQnl0
ZXMgfSB9LAorICAgICAgICB7ICIvc3cuanMiLCB7IHt7ICJDb250ZW50LVR5cGUiLCAiYXBwbGlj
YXRpb24vamF2YXNjcmlwdCIgfX0sIHdhaXRPbmVTZWNvbmRTY3JpcHRCeXRlcyB9IH0KKyAgICB9
LCBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cCk7CisKKyAgICBbV0tX
ZWJzaXRlRGF0YVN0b3JlIF9hbGxvd1dlYnNpdGVEYXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnNdOwor
CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKKworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtb
UHVzaEFQSU1lc3NhZ2VIYW5kbGVyV2l0aEV4cGVjdGVkTWVzc2FnZSBhbGxvY10gaW5pdF0pOwor
ICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3Nh
Z2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJzdyJdOworCisgICAgW1tjb25m
aWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVE
YXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3Rh
bnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgeworICAgICAgICBkb25lID0gdHJ1ZTsKKyAg
ICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBm
YWxzZTsKKworICAgIGV4cGVjdGVkTWVzc2FnZSA9ICJSZWFkeSI7CisgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBbd2ViVmlldyBfY2xvc2VdOworICAgIHdlYlZp
ZXcgPSBudWxscHRyOworCisgICAgdGVybWluYXRlTmV0d29ya1Byb2Nlc3NXaGlsZVJlZ2lzdHJh
dGlvbklzU3RvcmVkKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOworCisgICAgLy8gUHVzaCBldmVudCBm
b3Igc2VydmljZSB3b3JrZXIgd2l0aG91dCBhbnkgcmVsYXRlZCBwYWdlLCBzaG91bGQgZmFpbC4K
KyAgICBwdXNoTWVzc2FnZVByb2Nlc3NlZCA9IGZhbHNlOworICAgIHB1c2hNZXNzYWdlU3VjY2Vz
c2Z1bCA9IGZhbHNlOworICAgIE5TU3RyaW5nICptZXNzYWdlID0gQCJSb3R0ZW4gUG90YXRvZXMi
OworICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfcHJvY2Vzc1B1c2hNZXNz
YWdlOlttZXNzYWdlIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSByZWdp
c3RyYXRpb246W3NlcnZlci5yZXF1ZXN0KCkgVVJMXSBjb21wbGV0aW9uSGFuZGxlcjpeKGJvb2wg
cmVzdWx0KSB7CisgICAgICAgIHB1c2hNZXNzYWdlU3VjY2Vzc2Z1bCA9IHJlc3VsdDsKKyAgICAg
ICAgcHVzaE1lc3NhZ2VQcm9jZXNzZWQgPSB0cnVlOworICAgIH1dOworCisgICAgRVhQRUNUX1RS
VUUod2FpdFVudGlsRXZhbHVhdGVzVG9UcnVlKFsmXSB7IHJldHVybiBbW2NvbmZpZ3VyYXRpb24g
d2Vic2l0ZURhdGFTdG9yZV0gX2hhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0aXZpdHlGb3JU
ZXN0aW5nXTsgfSkpOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZwdXNoTWVzc2Fn
ZVByb2Nlc3NlZCk7CisgICAgRVhQRUNUX0ZBTFNFKHB1c2hNZXNzYWdlU3VjY2Vzc2Z1bCk7Cisg
ICAgRVhQRUNUX1RSVUUod2FpdFVudGlsRXZhbHVhdGVzVG9UcnVlKFsmXSB7IHJldHVybiAhW1tj
b25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIF9oYXNTZXJ2aWNlV29ya2VyQmFja2dyb3Vu
ZEFjdGl2aXR5Rm9yVGVzdGluZ107IH0pKTsKK30KKworVEVTVChQdXNoQVBJLCBmaXJlUHVzaEV2
ZW50V2l0aE5vUGFnZXNUaW1lb3V0KQoreworICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIg
c2VydmVyKHsKKyAgICAgICAgeyAiLyIsIHsgbWFpbkJ5dGVzIH0gfSwKKyAgICAgICAgeyAiL3N3
LmpzIiwgeyB7eyAiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH19LCB3
YWl0T25lU2Vjb25kU2NyaXB0Qnl0ZXMgfSB9CisgICAgfSwgVGVzdFdlYktpdEFQSTo6SFRUUFNl
cnZlcjo6UHJvdG9jb2w6Okh0dHApOworCisgICAgW1dLV2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dX
ZWJzaXRlRGF0YVJlY29yZHNGb3JBbGxPcmlnaW5zXTsKKworICAgIC8vIERpc2FibGUgc2Vydmlj
ZSB3b3JrZXIgZGVsYXkgZm9yIHRoZSBwdXJwb3NlIG9mIHRlc3RpbmcsIHB1c2ggZXZlbnQgc2hv
dWxkIHRpbWVvdXQgYWZ0ZXIgMSBzZWNvbmQuCisgICAgYXV0byBkYXRhU3RvcmVDb25maWd1cmF0
aW9uID0gYWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7CisgICAgYXV0byBkYXRhU3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3Jl
IGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0
KCldKTsKKworICAgIC8vIFN0YXJ0IHdpdGggYSBjbGVhbiBzbGF0ZSBkYXRhIHN0b3JlCisgICAg
W2RhdGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNp
dGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlv
bkhhbmRsZXI6XigpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAgICBhdXRv
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IGRhdGFT
dG9yZS5nZXQoKTsKKworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbUHVzaEFQ
SU1lc3NhZ2VIYW5kbGVyV2l0aEV4cGVjdGVkTWVzc2FnZSBhbGxvY10gaW5pdF0pOworICAgIFtb
Y29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5k
bGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJzdyJdOworCisgICAgZXhwZWN0ZWRNZXNz
YWdlID0gIlJlYWR5IjsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZl
ci5yZXF1ZXN0KCldOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKwor
ICAgIFt3ZWJWaWV3IF9jbG9zZV07CisgICAgd2ViVmlldyA9IG51bGxwdHI7CisKKyAgICBbZGF0
YVN0b3JlQ29uZmlndXJhdGlvbiBzZXRTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVs
YXlFbmFibGVkOk5PXTsKKyAgICBkYXRhU3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0
b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
Z2V0KCldKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBkYXRh
U3RvcmUuZ2V0KCk7CisKKyAgICB0ZXJtaW5hdGVOZXR3b3JrUHJvY2Vzc1doaWxlUmVnaXN0cmF0
aW9uSXNTdG9yZWQoY29uZmlndXJhdGlvbi5nZXQoKSk7CisKKyAgICAvLyBQdXNoIGV2ZW50IGZv
ciBzZXJ2aWNlIHdvcmtlciB3aXRob3V0IGFueSByZWxhdGVkIHBhZ2UsIHNob3VsZCB0aW1lb3V0
IHNvIGZhaWwuCisgICAgcHVzaE1lc3NhZ2VQcm9jZXNzZWQgPSBmYWxzZTsKKyAgICBwdXNoTWVz
c2FnZVN1Y2Nlc3NmdWwgPSBmYWxzZTsKKyAgICBOU1N0cmluZyAqbWVzc2FnZSA9IEAiVGltZWxl
c3MgUG90YXRvZXMiOworICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfcHJv
Y2Vzc1B1c2hNZXNzYWdlOlttZXNzYWdlIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0Vu
Y29kaW5nXSByZWdpc3RyYXRpb246W3NlcnZlci5yZXF1ZXN0KCkgVVJMXSBjb21wbGV0aW9uSGFu
ZGxlcjpeKGJvb2wgcmVzdWx0KSB7CisgICAgICAgIHB1c2hNZXNzYWdlU3VjY2Vzc2Z1bCA9IHJl
c3VsdDsKKyAgICAgICAgcHVzaE1lc3NhZ2VQcm9jZXNzZWQgPSB0cnVlOworICAgIH1dOworCisg
ICAgRVhQRUNUX1RSVUUod2FpdFVudGlsRXZhbHVhdGVzVG9UcnVlKFsmXSB7IHJldHVybiBbW2Nv
bmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gX2hhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5k
QWN0aXZpdHlGb3JUZXN0aW5nXTsgfSkpOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZwdXNoTWVzc2FnZVByb2Nlc3NlZCk7CisgICAgRVhQRUNUX0ZBTFNFKHB1c2hNZXNzYWdlU3Vj
Y2Vzc2Z1bCk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsRXZhbHVhdGVzVG9UcnVlKFsmXSB7
IHJldHVybiAhW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIF9oYXNTZXJ2aWNlV29y
a2VyQmFja2dyb3VuZEFjdGl2aXR5Rm9yVGVzdGluZ107IH0pKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440372</attachid>
            <date>2021-10-06 08:32:56 -0700</date>
            <delta_ts>2021-10-08 00:48:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231285-20211006173254.patch</filename>
            <type>text/plain</type>
            <size>27231</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA1NWJmNzFmZjJmZjRm
MzYwNmEzMmU1NDZjODNkM2Y4YzE4ZjMwYy4uNjc2ZDRjZDBlMDY2OTQxNWY4NzkyZWVkNGJhMGVh
MGI0YTNkYTRjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEwLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
cHJvY2Vzc2luZyBwdXNoIGV2ZW50cyB3aXRob3V0IHNlcnZpY2Ugd29ya2VyIGNsaWVudHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTI4NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkg
QVBJIHRlc3QuCisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNw
cDoKKyAgICAgICAgQWRkIGEgdGltZXIgdG8gdGVybWluYXRlIHNlcnZpY2Ugd29ya2VyIGlmIGEg
cHVzaCBtZXNzYWdlIGlzIG5vdCBwcm9jZXNzZWQgd2l0aCBhIGdpdmVuIG51bWJlciBvZiBzZWNv
bmRzLgorICAgICAgICBUaGUgdGltZXIgdmFsdWUgaXMgdGhlIGRlZmF1bHQgdGVybWluYXRpb24g
ZGVsYXkgb3IgMSBzZWNvbmQgZm9yIHRlc3RpbmcuCisKIDIwMjEtMTAtMDYgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBodHRwczovL3czYy5n
aXRodWIuaW8vcHVzaC1hcGkvI3JlY2VpdmluZy1hLXB1c2gtbWVzc2FnZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBl
MzZhMTMyMTE1NTVmYTUyNjc0YWY1Mzc2ZTI1NGQ2MjM2NTE5ZTA3Li4xYzM3ZGZmZWRjZDQ0MzNh
MjNkNzljY2IyYWQ3MzVkMTFlNTYwNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIx
LTEwLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgcHJvY2Vzc2luZyBwdXNoIGV2ZW50cyB3aXRob3V0IHNlcnZpY2Ugd29ya2Vy
IGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTI4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdoZW4gZmlyaW5nIGEgcHVzaCBldmVudCwgYXNrIFVJUHJvY2VzcyB0byB0YWtlIGEgYmFja2dy
b3VuZCBhc3NlcnRpb24gZm9yIHRoZSBwcm9jZXNzIHJ1bm5pbmcgdGhlIHNlcnZpY2Ugd29ya2Vy
LgorICAgICAgICBXZSB1c2UgYSBjb3VudGVyIGJhc2VkIGFwcHJvYWNoIHRvIHRha2UvZGlzcG9z
ZSBvZiB0aGUgYmFja2dvcnVuZCBhc3NlcnRpb24uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisKIDIwMjEtMTAtMDYgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBodHRwczovL3czYy5naXRo
dWIuaW8vcHVzaC1hcGkvI3JlY2VpdmluZy1hLXB1c2gtbWVzc2FnZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAppbmRleCA2YmNiZjcw
NDFhZjg0OTQwZTAxMjMwMzBhYTZkY2Y3Y2QzOWI4ZDkzLi5jODJiZmY3MTlhODNhMjhiODJkOTRm
OTliZDYwM2ViYzY3OTVhMGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcApAQCAtMTIwNCwxMiArMTIwNCwyNCBAQCB2b2lkIFNX
U2VydmVyOjpwcm9jZXNzUHVzaE1lc3NhZ2Uoc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+
JiYgZGF0YSwgVVJMJiYgcgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAg
ICAgZmlyZUZ1bmN0aW9uYWxFdmVudCgqcmVnaXN0cmF0aW9uLCBbc2VydmljZVdvcmtlcklkZW50
aWZpZXIgPSB3b3JrZXItPmlkZW50aWZpZXIoKSwgZGF0YSA9IFdURk1vdmUoZGF0YSksIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiBjb25uZWN0aW9uT3JTdGF0dXMpIG11dGFi
bGUgeworICAgICAgICBmaXJlRnVuY3Rpb25hbEV2ZW50KCpyZWdpc3RyYXRpb24sIFt3b3JrZXIg
PSBSZWYgeyAqd29ya2VyIH0sIHdlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGRhdGEgPSBX
VEZNb3ZlKGRhdGEpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgY29ubmVj
dGlvbk9yU3RhdHVzKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghY29ubmVjdGlvbk9yU3Rh
dHVzLmhhc192YWx1ZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FsbGJhY2soY29ubmVjdGlvbk9y
U3RhdHVzLmVycm9yKCkgPT0gU2hvdWxkU2tpcEV2ZW50OjpZZXMpOwogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbm5lY3Rpb25PclN0YXR1cy52
YWx1ZSgpLT5maXJlUHVzaEV2ZW50KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBkYXRhLCBXVEZN
b3ZlKGNhbGxiYWNrKSk7CisKKyAgICAgICAgICAgIGF1dG8gc2VydmljZVdvcmtlcklkZW50aWZp
ZXIgPSB3b3JrZXItPmlkZW50aWZpZXIoKTsKKyAgICAgICAgICAgIGF1dG8gdGVybWluYXRlV29y
a2VyVGltZXIgPSBtYWtlVW5pcXVlPFRpbWVyPihbd29ya2VyID0gV1RGTW92ZSh3b3JrZXIpXSB7
CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoU2VydmljZVdvcmtlciwgIlRlcm1p
bmF0aW5nIHNlcnZpY2Ugd29ya2VyIGFzIHByb2Nlc3NpbmcgcHVzaCBldmVudCB0b29rIHRvbyBt
dWNoIHRpbWUiKTsKKyAgICAgICAgICAgICAgICB3b3JrZXItPnRlcm1pbmF0ZSgpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB0ZXJtaW5hdGVXb3JrZXJUaW1lci0+c3RhcnRPbmVTaG90
KHdlYWtUaGlzICYmIHdlYWtUaGlzLT5tX2lzUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVk
ID8gZGVmYXVsdFRlcm1pbmF0aW9uRGVsYXkgOiAxX3MpOworICAgICAgICAgICAgY29ubmVjdGlv
bk9yU3RhdHVzLnZhbHVlKCktPmZpcmVQdXNoRXZlbnQoc2VydmljZVdvcmtlcklkZW50aWZpZXIs
IGRhdGEsIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0ZXJtaW5hdGVXb3JrZXJUaW1l
ciA9IFdURk1vdmUodGVybWluYXRlV29ya2VyVGltZXIpXShib29sIHN1Y2NlZWRlZCkgbXV0YWJs
ZSB7CisgICAgICAgICAgICAgICAgaWYgKHRlcm1pbmF0ZVdvcmtlclRpbWVyLT5pc0FjdGl2ZSgp
KQorICAgICAgICAgICAgICAgICAgICB0ZXJtaW5hdGVXb3JrZXJUaW1lci0+c3RvcCgpOworCisg
ICAgICAgICAgICAgICAgY2FsbGJhY2soc3VjY2VlZGVkKTsKKyAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXggZjJjMjdhYTRhNGU2YWVhODRjNTc0ZGRhYzc0MTkx
Yjc0YzU4NjA3Zi4uMjVlYzFhY2E4ZjQ4Y2Q0MjA1MTBmMzZhNDAyOGJkMmQ0Y2ViOTYwMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAK
QEAgLTEwOSwxMCArMTA5LDE3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
OjpmaXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzCiAKIHZvaWQgV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpmaXJlUHVzaEV2ZW50KFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBzdGQ6Om9w
dGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4mIGRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYgY2FsbGJhY2spCiB7CisgICAgaWYgKCFtX3Byb2Nlc3NpbmdQdXNoRXZlbnRzQ291bnQr
KykKKyAgICAgICAgbV9jb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6U3RhcnRTZXJ2
aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcgeyB3ZWJQcm9jZXNzSWRlbnRpZmllcigpIH0s
IDApOworCiAgICAgc3RkOjpvcHRpb25hbDxJUEM6OkRhdGFSZWZlcmVuY2U+IGlwY0RhdGE7CiAg
ICAgaWYgKGRhdGEpCiAgICAgICAgIGlwY0RhdGEgPSBJUEM6OkRhdGFSZWZlcmVuY2UgeyBkYXRh
LT5kYXRhKCksIGRhdGEtPnNpemUoKSB9OwotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkZpcmVQdXNoRXZlbnQoc2VydmljZVdv
cmtlcklkZW50aWZpZXIsIGlwY0RhdGEpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Rmly
ZVB1c2hFdmVudChzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgaXBjRGF0YSksIFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKHRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIHdh
c1Byb2Nlc3NlZCkgbXV0YWJsZSB7CisgICAgICAgIGlmICh3ZWFrVGhpcyAmJiAhLS13ZWFrVGhp
cy0+bV9wcm9jZXNzaW5nUHVzaEV2ZW50c0NvdW50KQorICAgICAgICAgICAgd2Vha1RoaXMtPm1f
Y29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkVuZFNlcnZpY2VXb3JrZXJCYWNrZ3Jv
dW5kUHJvY2Vzc2luZyB7IHdlYWtUaGlzLT53ZWJQcm9jZXNzSWRlbnRpZmllcigpIH0sIDApOwor
ICAgICAgICBjYWxsYmFjayh3YXNQcm9jZXNzZWQpOworICAgIH0pOwogfQogCiB2b2lkIFdlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCmluZGV4IDlhZWE3NjdmNTJiODMwMTc5MzNj
Zjk0ZmIzODQ5MDA5MDY2MDI4NTQuLjk4NDA1YzdiODhmYmE0NjI4ODkzNWEzY2MyNjE1ZTNmOWYz
MmFiN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmgKQEAgLTEwNSw2ICsxMDUsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6
RmV0Y2hJZGVudGlmaWVyLCBXZWFrUHRyPFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s+PiBtX29uZ29p
bmdGZXRjaGVzOwogICAgIGJvb2wgbV9pc1Rocm90dGxlYWJsZSB7IHRydWUgfTsKICAgICBXZWJQ
YWdlUHJveHlJZGVudGlmaWVyIG1fd2ViUGFnZVByb3h5SUQ7CisgICAgc2l6ZV90IG1fcHJvY2Vz
c2luZ1B1c2hFdmVudHNDb3VudCB7IDAgfTsKIH07IC8vIGNsYXNzIFdlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4
IDk4NjA4YjlmMzI5ZTFlYzdlNzJhZjk0M2M3NmI2YzIxNDViOTY2MzQuLjA5MWZmMWU3YTFhZmZj
NWYwOWNlYjUyMzM4NzFhNzc3MjgyNDY3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNzQ4LDYgKzc0
OCwxMSBAQCBzdGF0aWMgVmVjdG9yPFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0
ZURhdGFSZWNvcmRzKE5TQXJyYXkgKmRhdGFSZWNvcgogICAgIH0pOwogfQogCistKGJvb2wpX2hh
c1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0aXZpdHlGb3JUZXN0aW5nCit7CisgICAgcmV0dXJu
IF93ZWJzaXRlRGF0YVN0b3JlLT5oYXNTZXJ2aWNlV29ya2VyQmFja2dyb3VuZEFjdGl2aXR5Rm9y
VGVzdGluZygpOworfQorCiAtKHZvaWQpX3Byb2Nlc3NQdXNoTWVzc2FnZTooTlNEYXRhKikgbWVz
c2FnZSByZWdpc3RyYXRpb246KE5TVVJMICopcmVnaXN0cmF0aW9uIGNvbXBsZXRpb25IYW5kbGVy
Oih2b2lkKF4pKGJvb2wgd2FzUHJvY2Vzc2VkKSljb21wbGV0aW9uSGFuZGxlcgogewogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCmluZGV4IDY1NDFi
OGQ0NDRhZjJkYjA5N2UxZDRiZmRiOWEyZGUzODczMjM0NmUuLmY1ZGU2NzYwMjE5NTNmMjRhMDc4
Mzc3NGZjNzk1MWM0NTNjMWY5NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaApAQCAtMTA1
LDYgKzEwNSw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0
YVN0b3JlRmV0Y2hPcHRpb25zKSB7CiArIChCT09MKV9kZWZhdWx0TmV0d29ya1Byb2Nlc3NFeGlz
dHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKHZvaWQpX2Nv
dW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzOih2b2lkKF4pKHNpemVfdCkpY29tcGxldGlvbkhhbmRs
ZXI7CiAKKy0oYm9vbClfaGFzU2VydmljZVdvcmtlckJhY2tncm91bmRBY3Rpdml0eUZvclRlc3Rp
bmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IC0odm9pZClfcHJvY2Vzc1B1c2hNZXNzYWdlOihOU0RhdGEqKWRhdGEgcmVnaXN0cmF0aW9uOihO
U1VSTCAqKXJlZ2lzdHJhdGlvbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShib29sKSljb21w
bGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBjNGI4MDBiZTM3OTI0ZDQwOTc0
Y2JkYWRlOTdlMGY3MjRlNzk1MTgzLi4yNDc3Y2FjNzRiZjEwZjVjOTlmMWZkMzQ3NzJmMTY3ZTIw
OTQxODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTEzOTYsNiArMTM5NiwxOCBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50UHJvY2VzcyhXZWJD
b3JlOjpQcm9jZXNzSQogCiAgICAgc2VydmljZVdvcmtlclByb2Nlc3MtPnVucmVnaXN0ZXJTZXJ2
aWNlV29ya2VyQ2xpZW50UHJvY2Vzcygqd2ViUHJvY2Vzcyk7CiB9CisKK3ZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6c3RhcnRTZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcoV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtlclByb2Nlc3NJZGVudGlmaWVyKQorewor
ICAgIGlmIChhdXRvKiBzZXJ2aWNlV29ya2VyUHJvY2VzcyA9IFdlYlByb2Nlc3NQcm94eTo6cHJv
Y2Vzc0ZvcklkZW50aWZpZXIoc2VydmljZVdvcmtlclByb2Nlc3NJZGVudGlmaWVyKSkKKyAgICAg
ICAgc2VydmljZVdvcmtlclByb2Nlc3MtPnN0YXJ0U2VydmljZVdvcmtlckJhY2tncm91bmRQcm9j
ZXNzaW5nKCk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZW5kU2VydmljZVdvcmtl
ckJhY2tncm91bmRQcm9jZXNzaW5nKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHNlcnZpY2VX
b3JrZXJQcm9jZXNzSWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byogc2VydmljZVdvcmtlclBy
b2Nlc3MgPSBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NGb3JJZGVudGlmaWVyKHNlcnZpY2VXb3Jr
ZXJQcm9jZXNzSWRlbnRpZmllcikpCisgICAgICAgIHNlcnZpY2VXb3JrZXJQcm9jZXNzLT5lbmRT
ZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcoKTsKK30KICNlbmRpZgogCiB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlU3BhY2UoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgdWludDY0X3QgY3Vy
cmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50U2l6ZSwgdWludDY0X3Qgc3BhY2VSZXF1aXJlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBxdW90YSk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDY3N2UxMGNjN2EzYjhlMTBjNjg0NmNi
ODQ3YmIwZTk4MTBkOTBlYmUuLmRmZjNhMmVkNTAyZjRhMGU0NzE3YjQyNWYzMTQ3NWJiMDg1ZjY5
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oCkBAIC0zMjMsNiArMzIzLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHdv
cmtlckNvbnRleHRDb25uZWN0aW9uTm9Mb25nZXJOZWVkZWQoV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aWZpZXIpOwogICAgIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50UHJvY2VzcyhXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllciwgV2ViQ29yZTo6UHJv
Y2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtlclByb2Nlc3NJZGVudGlmaWVyKTsKICAgICB2b2lk
IHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50UHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllciwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIg
c2VydmljZVdvcmtlclByb2Nlc3NJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0YXJ0U2VydmljZVdv
cmtlckJhY2tncm91bmRQcm9jZXNzaW5nKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHNlcnZp
Y2VXb3JrZXJQcm9jZXNzSWRlbnRpZmllcik7CisgICAgdm9pZCBlbmRTZXJ2aWNlV29ya2VyQmFj
a2dyb3VuZFByb2Nlc3NpbmcoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtl
clByb2Nlc3NJZGVudGlmaWVyKTsKICNlbmRpZgogCiAgICAgdm9pZCB0ZXJtaW5hdGVXZWJQcm9j
ZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbgppbmRleCAzYWUwMWVhMmRkN2E2YzBhNjY2YWVhOWYwZGE5YmFlOTJkODc4NDM2Li4yNTIw
MDgzY2NhZDI0MjlkOGFkMjJmNzdmNGY3MGI4MDMyYWNmYjA2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCkBAIC01Nyw2ICs1Nyw4IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNz
UHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIFdvcmtlckNvbnRleHRDb25uZWN0aW9uTm9Mb25n
ZXJOZWVkZWQoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBSZWdp
c3RlclNlcnZpY2VXb3JrZXJDbGllbnRQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
IHdlYlByb2Nlc3NJZGVudGlmaWVyLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBzZXJ2aWNl
V29ya2VyUHJvY2Vzc0lkZW50aWZpZXIpCiAgICAgVW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGll
bnRQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVy
LCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUHJvY2Vzc0lkZW50aWZp
ZXIpCisgICAgU3RhcnRTZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcoV2ViQ29yZTo6
UHJvY2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtlclByb2Nlc3NJZGVudGlmaWVyKQorICAgIEVu
ZFNlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kUHJvY2Vzc2luZyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
ZmllciBzZXJ2aWNlV29ya2VyUHJvY2Vzc0lkZW50aWZpZXIpCiAjZW5kaWYKIAogICAgIFNldFdl
YlByb2Nlc3NIYXNVcGxvYWRzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJRCwg
Ym9vbCBoYXNVcGxvYWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcAppbmRleCBkMDU1YmFmMTllMTc0MDNhMTRiM2M1Njc1YTc4MDE5NWQ2ODk1ZTkwLi4zYjAx
NmUzNjliOTA2NzM3YTBmNTZkMTlmNTQ1OGU2NzEyOTlkMjZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE5MzgsNiArMTkzOCwxNCBAQCB2b2lk
IFdlYlByb2Nlc3NQcm94eTo6dXBkYXRlU2VydmljZVdvcmtlclByb2Nlc3NBc3NlcnRpb24oKQog
ICAgICAgICAgICAgbV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24tPmFjdGl2aXR5ID0gbV90aHJv
dHRsZXIuYmFja2dyb3VuZEFjdGl2aXR5KCJTZXJ2aWNlIFdvcmtlciBmb3IgYmFja2dyb3VuZCB2
aWV3KHMpIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKworICAgIGlmIChtX2hhc1NlcnZp
Y2VXb3JrZXJCYWNrZ3JvdW5kUHJvY2Vzc2luZykgeworICAgICAgICBXRUJQUk9DRVNTUFJPWFlf
UkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJTZXJ2aWNlIFdvcmtlciBmb3IgYmFja2dy
b3VuZCBwcm9jZXNzaW5nIik7CisgICAgICAgIGlmICghUHJvY2Vzc1Rocm90dGxlcjo6aXNWYWxp
ZEJhY2tncm91bmRBY3Rpdml0eShtX3NlcnZpY2VXb3JrZXJJbmZvcm1hdGlvbi0+YWN0aXZpdHkp
KQorICAgICAgICAgICAgbV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24tPmFjdGl2aXR5ID0gbV90
aHJvdHRsZXIuYmFja2dyb3VuZEFjdGl2aXR5KCJTZXJ2aWNlIFdvcmtlciBmb3IgYmFja2dyb3Vu
ZCBwcm9jZXNzaW5nIl9zKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIG1fc2Vydmlj
ZVdvcmtlckluZm9ybWF0aW9uLT5hY3Rpdml0eSA9IG51bGxwdHI7CiB9CiAKQEAgLTE5NzAsNiAr
MTk3OCwyNiBAQCBib29sIFdlYlByb2Nlc3NQcm94eTo6aGFzU2VydmljZVdvcmtlckJhY2tncm91
bmRBY3Rpdml0eUZvclRlc3RpbmcoKSBjb25zdAogewogICAgIHJldHVybiBtX3NlcnZpY2VXb3Jr
ZXJJbmZvcm1hdGlvbiA/IFByb2Nlc3NUaHJvdHRsZXI6OmlzVmFsaWRCYWNrZ3JvdW5kQWN0aXZp
dHkobV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24tPmFjdGl2aXR5KSA6IGZhbHNlOwogfQorCit2
b2lkIFdlYlByb2Nlc3NQcm94eTo6c3RhcnRTZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3Np
bmcoKQoreworICAgIGlmICghbV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24pCisgICAgICAgIHJl
dHVybjsKKworICAgIFdFQlBST0NFU1NQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lv
biwgInN0YXJ0U2VydmljZVdvcmtlckJhY2tncm91bmRQcm9jZXNzaW5nIik7CisgICAgbV9oYXNT
ZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcgPSB0cnVlOworICAgIHVwZGF0ZVNlcnZp
Y2VXb3JrZXJQcm9jZXNzQXNzZXJ0aW9uKCk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpl
bmRTZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcoKQoreworICAgIGlmICghbV9zZXJ2
aWNlV29ya2VySW5mb3JtYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIFdFQlBST0NFU1NQ
Uk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgImVuZFNlcnZpY2VXb3JrZXJCYWNr
Z3JvdW5kUHJvY2Vzc2luZyIpOworICAgIG1faGFzU2VydmljZVdvcmtlckJhY2tncm91bmRQcm9j
ZXNzaW5nID0gZmFsc2U7CisgICAgdXBkYXRlU2VydmljZVdvcmtlclByb2Nlc3NBc3NlcnRpb24o
KTsKK30KICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpkaXNhYmxlU2VydmljZVdvcmtlcnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaAppbmRleCA2ZGNlNDJlODJhZDIzODEzMjA2ZGM3ZmUyNTA5ODVhZmU4
MThhNDU1Li5kNGJiMmZjZmM2MWUwYjhjZTgzNGIyYzgwNzc4ODA4ZjcxNWU1ZjYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzY2LDYgKzM2Niw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50UHJvY2VzcyhX
ZWJQcm9jZXNzUHJveHkmKTsKICAgICBib29sIGhhc1NlcnZpY2VXb3JrZXJGb3JlZ3JvdW5kQWN0
aXZpdHlGb3JUZXN0aW5nKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNTZXJ2aWNlV29ya2VyQmFja2dy
b3VuZEFjdGl2aXR5Rm9yVGVzdGluZygpIGNvbnN0OworICAgIHZvaWQgc3RhcnRTZXJ2aWNlV29y
a2VyQmFja2dyb3VuZFByb2Nlc3NpbmcoKTsKKyAgICB2b2lkIGVuZFNlcnZpY2VXb3JrZXJCYWNr
Z3JvdW5kUHJvY2Vzc2luZygpOwogI2VuZGlmCiAgICAgdm9pZCBzZXRBc3NlcnRpb25UeXBlRm9y
VGVzdGluZyhQcm9jZXNzQXNzZXJ0aW9uVHlwZSB0eXBlKSB7IGRpZFNldEFzc2VydGlvblR5cGUo
dHlwZSk7IH0KIApAQCAtNjU3LDYgKzY1OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIFdlYWtIYXNo
U2V0PFdlYlByb2Nlc3NQcm94eT4gY2xpZW50UHJvY2Vzc2VzOwogICAgIH07CiAgICAgc3RkOjpv
cHRpb25hbDxTZXJ2aWNlV29ya2VySW5mb3JtYXRpb24+IG1fc2VydmljZVdvcmtlckluZm9ybWF0
aW9uOworICAgIGJvb2wgbV9oYXNTZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmcgeyBm
YWxzZSB9OwogCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciwg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI+PiBtX3NsZWVwRGlzYWJsZXJz
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDdiNmE1OGU3OTJiZTVhNjNiZTc1OTU0ODcyMmE0M2Zi
OGIxMTM0NjkuLjU2NTY1MjlmMWFkMzdlM2E3N2I0MjA4OWRmYmU5ZTI0MzNmNjc2M2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwCkBAIC0xMDA3LDYgKzEwMDcsMTEgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3Jl
OjpyZXNldFNlcnZpY2VXb3JrZXJUaW1lb3V0Rm9yVGVzdGluZygpCiAgICAgbmV0d29ya1Byb2Nl
c3MoKS5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlJlc2V0U2VydmljZVdvcmtl
ckZldGNoVGltZW91dEZvclRlc3RpbmcoKSwgTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpSZXNl
dFNlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5nOjpSZXBseSgpLCAwKTsKIH0KIAor
Ym9vbCBXZWJzaXRlRGF0YVN0b3JlOjpoYXNTZXJ2aWNlV29ya2VyQmFja2dyb3VuZEFjdGl2aXR5
Rm9yVGVzdGluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6YW55T2YoV2ViUHJvY2Vzc1Bv
b2w6OmFsbFByb2Nlc3NQb29scygpLCBbXShhdXRvJiBwb29sKSB7IHJldHVybiBwb29sLT5oYXNT
ZXJ2aWNlV29ya2VyQmFja2dyb3VuZEFjdGl2aXR5Rm9yVGVzdGluZygpOyB9KTsKK30KKwogI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogdm9pZCBXZWJzaXRlRGF0
YVN0b3JlOjpzZXRNYXhTdGF0aXN0aWNzRW50cmllcyhzaXplX3QgbWF4aW11bUVudHJ5Q291bnQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaAppbmRleCA0MDhjN2RhN2NlN2ZlYmMwODNjZGU3MGU2YjVhMDkyNzEzMTQwNzgzLi45NWQy
ZDAwZjBhYjA3NzA4MjIzNGM2NTRjMTAxZjAzNzg0ODlhMGVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0x
NzMsNiArMTczLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbFN5bmNocm9ub3Vz
bHlGb3JUZXN0aW5nKENhY2hlTW9kZWwpOwogICAgIHZvaWQgc2V0U2VydmljZVdvcmtlclRpbWVv
dXRGb3JUZXN0aW5nKFNlY29uZHMpOwogICAgIHZvaWQgcmVzZXRTZXJ2aWNlV29ya2VyVGltZW91
dEZvclRlc3RpbmcoKTsKKyAgICBib29sIGhhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0aXZp
dHlGb3JUZXN0aW5nKCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKICAgICB2b2lkIGZldGNoRGF0YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhPcHRp
b25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+
LCBWZWN0b3I8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+JiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVmVjdG9yPFdlYnNpdGVEYXRhUmVjb3JkPiYmLCBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluPiYmKT4mJik7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggZTY3MmZkZmZhNmE4NDIxMGJmNzVlYzI2NDEwMDNjY2MwNTY5OGNi
YS4uYzE2ZTljN2UyM2VhMTAxMzMxNDNlYzFiOTYxMWMwODMyZjc5MTI4OCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDIxLTEwLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgcHJvY2Vzc2luZyBwdXNoIGV2ZW50cyB3aXRob3V0IHNlcnZpY2Ugd29y
a2VyIGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMTI4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QdXNoQVBJLm1tOgorCiAyMDIx
LTEwLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBs
ZW1lbnQgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3B1c2gtYXBpLyNyZWNlaXZpbmctYS1wdXNoLW1l
c3NhZ2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHVzaEFQSS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHVzaEFQ
SS5tbQppbmRleCA1MzI2MmE3ODA2NjJhNDc2YWMwZDFlMzQ2ZWQ0Y2JmNDAwY2NmNzU3Li5jNDI3
YjZhYjJkODI4OTNhMDVjMzczNTllZGYwOWMzYjM1ZmZkYTE3IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1B1c2hBUEkubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QdXNoQVBJLm1tCkBAIC0yOSw3ICsyOSw5IEBA
CiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGVzdC5oIgogI2ltcG9y
dCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4K
ICNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg+CisjaW1wb3J0IDxX
ZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaD4KIAogc3RhdGljIGJvb2wg
ZG9uZTsKIHN0YXRpYyBTdHJpbmcgZXhwZWN0ZWRNZXNzYWdlOwpAQCAtOTYsNiArOTgsMTggQEAg
c2VsZi5hZGRFdmVudExpc3RlbmVyKCJwdXNoIiwgKGV2ZW50KSA9PiB7CiAKIHN0YXRpYyBib29s
IHB1c2hNZXNzYWdlUHJvY2Vzc2VkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBwdXNoTWVzc2FnZVN1
Y2Nlc3NmdWwgPSBmYWxzZTsKKworc3RhdGljIGJvb2wgd2FpdFVudGlsRXZhbHVhdGVzVG9UcnVl
KGNvbnN0IEZ1bmN0aW9uPGJvb2woKT4mIGYpCit7CisgICAgdW5zaWduZWQgdGltZW91dCA9IDA7
CisgICAgZG8geworICAgICAgICBpZiAoZigpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuMSk7CisgICAgfSB3aGlsZSAoKyt0
aW1lb3V0IDwgMTAwKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFRFU1QoUHVzaEFQSSwgZmly
ZVB1c2hFdmVudCkKIHsKICAgICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7CkBA
IC0xNTAsMyArMTY0LDE4NyBAQCBURVNUKFB1c2hBUEksIGZpcmVQdXNoRXZlbnQpCiAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZwdXNoTWVzc2FnZVByb2Nlc3NlZCk7CiAgICAgRVhQRUNU
X0ZBTFNFKHB1c2hNZXNzYWdlU3VjY2Vzc2Z1bCk7CiB9CisKK3N0YXRpYyBjb25zdCBjaGFyKiB3
YWl0T25lU2Vjb25kU2NyaXB0Qnl0ZXMgPSBSIlNXUkVTT1VSQ0UoCitsZXQgcG9ydDsKK3NlbGYu
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChldmVudCkgPT4geworICAgIHBvcnQgPSBldmVu
dC5kYXRhLnBvcnQ7CisgICAgcG9ydC5wb3N0TWVzc2FnZSgiUmVhZHkiKTsKK30pOworc2VsZi5h
ZGRFdmVudExpc3RlbmVyKCJwdXNoIiwgKGV2ZW50KSA9PiB7CisgICAgaWYgKCFldmVudC5kYXRh
KQorICAgICAgICByZXR1cm47CisgICAgY29uc3QgdmFsdWUgPSBldmVudC5kYXRhLnRleHQoKTsK
KyAgICBpZiAodmFsdWUgPT09ICdTd2VldCBQb3RhdG9lcycpCisgICAgICAgIGV2ZW50LndhaXRV
bnRpbChuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkpKTsK
KyAgICBlbHNlIGlmICh2YWx1ZSA9PT0gJ1JvdHRlbiBQb3RhdG9lcycpCisgICAgICAgIGV2ZW50
LndhaXRVbnRpbChuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiBzZXRUaW1lb3V0KHJl
amVjdCwgMTAwMCkpKTsKKyAgICBlbHNlIGlmICh2YWx1ZSA9PT0gJ1RpbWVsZXNzIFBvdGF0b2Vz
JykKKyAgICAgICAgZXZlbnQud2FpdFVudGlsKG5ldyBQcm9taXNlKHJlc29sdmUgPT4geyB9KSk7
Cit9KTsKKylTV1JFU09VUkNFIjsKKworc3RhdGljIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nl
c3NXaGlsZVJlZ2lzdHJhdGlvbklzU3RvcmVkKFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZp
Z3VyYXRpb24pCit7CisgICAgYXV0byBwYXRoID0gY29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0
b3JlLl9jb25maWd1cmF0aW9uLl9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5LnBh
dGg7CisgICAgTlNVUkwqIGRpcmVjdG9yeSA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6cGF0aCBp
c0RpcmVjdG9yeTpZRVNdOworICAgIE5TVVJMICpzd0RCUGF0aCA9IFtkaXJlY3RvcnkgVVJMQnlB
cHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMtNy5zcWxp
dGUzIl07CisgICAgdW5zaWduZWQgdGltZW91dCA9IDA7CisgICAgd2hpbGUgKCFbW05TRmlsZU1h
bmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6c3dEQlBhdGgucGF0aF0gJiYg
Kyt0aW1lb3V0IDwgMTAwKQorICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjEp
OworICAgIC8vIExldCdzIGNsb3NlIHRoZSBTUUwgZGF0YWJhc2UuCisgICAgW2NvbmZpZ3VyYXRp
b24ud2Vic2l0ZURhdGFTdG9yZSBfc2VuZE5ldHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVu
dGx5XTsKKyAgICBbY29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlIF90ZXJtaW5hdGVOZXR3
b3JrUHJvY2Vzc107Cit9CisKK1RFU1QoUHVzaEFQSSwgZmlyZVB1c2hFdmVudFdpdGhOb1BhZ2Vz
U3VjY2Vzc2Z1bCkKK3sKKyAgICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7Cisg
ICAgICAgIHsgIi8iLCB7IG1haW5CeXRlcyB9IH0sCisgICAgICAgIHsgIi9zdy5qcyIsIHsge3sg
IkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiB9fSwgd2FpdE9uZVNlY29u
ZFNjcmlwdEJ5dGVzIH0gfQorICAgIH0sIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OlByb3Rv
Y29sOjpIdHRwKTsKKworICAgIFtXS1dlYnNpdGVEYXRhU3RvcmUgX2FsbG93V2Vic2l0ZURhdGFS
ZWNvcmRzRm9yQWxsT3JpZ2luc107CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5T
KFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworCisgICAgYXV0byBtZXNz
YWdlSGFuZGxlciA9IGFkb3B0TlMoW1tQdXNoQVBJTWVzc2FnZUhhbmRsZXJXaXRoRXhwZWN0ZWRN
ZXNzYWdlIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29u
dHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFt
ZTpAInN3Il07CisKKyAgICBbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gcmVtb3Zl
RGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2Rp
ZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7Cisg
ICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgZXhwZWN0ZWRNZXNzYWdlID0gIlJl
YWR5IjsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0
KCldOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIFt3ZWJW
aWV3IF9jbG9zZV07CisgICAgd2ViVmlldyA9IG51bGxwdHI7CisKKyAgICB0ZXJtaW5hdGVOZXR3
b3JrUHJvY2Vzc1doaWxlUmVnaXN0cmF0aW9uSXNTdG9yZWQoY29uZmlndXJhdGlvbi5nZXQoKSk7
CisKKyAgICAvLyBQdXNoIGV2ZW50IGZvciBzZXJ2aWNlIHdvcmtlciB3aXRob3V0IGFueSByZWxh
dGVkIHBhZ2UsIHNob3VsZCBzdWNjZWVkLgorICAgIHB1c2hNZXNzYWdlUHJvY2Vzc2VkID0gZmFs
c2U7CisgICAgcHVzaE1lc3NhZ2VTdWNjZXNzZnVsID0gZmFsc2U7CisgICAgTlNTdHJpbmcgKm1l
c3NhZ2UgPSBAIlN3ZWV0IFBvdGF0b2VzIjsKKyAgICBbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURh
dGFTdG9yZV0gX3Byb2Nlc3NQdXNoTWVzc2FnZTpbbWVzc2FnZSBkYXRhVXNpbmdFbmNvZGluZzpO
U1VURjhTdHJpbmdFbmNvZGluZ10gcmVnaXN0cmF0aW9uOltzZXJ2ZXIucmVxdWVzdCgpIFVSTF0g
Y29tcGxldGlvbkhhbmRsZXI6Xihib29sIHJlc3VsdCkgeworICAgICAgICBwdXNoTWVzc2FnZVN1
Y2Nlc3NmdWwgPSByZXN1bHQ7CisgICAgICAgIHB1c2hNZXNzYWdlUHJvY2Vzc2VkID0gdHJ1ZTsK
KyAgICB9XTsKKworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbEV2YWx1YXRlc1RvVHJ1ZShbJl0g
eyByZXR1cm4gW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIF9oYXNTZXJ2aWNlV29y
a2VyQmFja2dyb3VuZEFjdGl2aXR5Rm9yVGVzdGluZ107IH0pKTsKKworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmcHVzaE1lc3NhZ2VQcm9jZXNzZWQpOworICAgIEVYUEVDVF9UUlVFKHB1
c2hNZXNzYWdlU3VjY2Vzc2Z1bCk7CisKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxFdmFsdWF0
ZXNUb1RydWUoWyZdIHsgcmV0dXJuICFbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0g
X2hhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0aXZpdHlGb3JUZXN0aW5nXTsgfSkpOworfQor
CitURVNUKFB1c2hBUEksIGZpcmVQdXNoRXZlbnRXaXRoTm9QYWdlc0ZhaWwpCit7CisgICAgVGVz
dFdlYktpdEFQSTo6SFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyBtYWluQnl0
ZXMgfSB9LAorICAgICAgICB7ICIvc3cuanMiLCB7IHt7ICJDb250ZW50LVR5cGUiLCAiYXBwbGlj
YXRpb24vamF2YXNjcmlwdCIgfX0sIHdhaXRPbmVTZWNvbmRTY3JpcHRCeXRlcyB9IH0KKyAgICB9
LCBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cCk7CisKKyAgICBbV0tX
ZWJzaXRlRGF0YVN0b3JlIF9hbGxvd1dlYnNpdGVEYXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnNdOwor
CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKKworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtb
UHVzaEFQSU1lc3NhZ2VIYW5kbGVyV2l0aEV4cGVjdGVkTWVzc2FnZSBhbGxvY10gaW5pdF0pOwor
ICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3Nh
Z2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJzdyJdOworCisgICAgW1tjb25m
aWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVE
YXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3Rh
bnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgeworICAgICAgICBkb25lID0gdHJ1ZTsKKyAg
ICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBm
YWxzZTsKKworICAgIGV4cGVjdGVkTWVzc2FnZSA9ICJSZWFkeSI7CisgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBbd2ViVmlldyBfY2xvc2VdOworICAgIHdlYlZp
ZXcgPSBudWxscHRyOworCisgICAgdGVybWluYXRlTmV0d29ya1Byb2Nlc3NXaGlsZVJlZ2lzdHJh
dGlvbklzU3RvcmVkKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOworCisgICAgLy8gUHVzaCBldmVudCBm
b3Igc2VydmljZSB3b3JrZXIgd2l0aG91dCBhbnkgcmVsYXRlZCBwYWdlLCBzaG91bGQgZmFpbC4K
KyAgICBwdXNoTWVzc2FnZVByb2Nlc3NlZCA9IGZhbHNlOworICAgIHB1c2hNZXNzYWdlU3VjY2Vz
c2Z1bCA9IGZhbHNlOworICAgIE5TU3RyaW5nICptZXNzYWdlID0gQCJSb3R0ZW4gUG90YXRvZXMi
OworICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfcHJvY2Vzc1B1c2hNZXNz
YWdlOlttZXNzYWdlIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSByZWdp
c3RyYXRpb246W3NlcnZlci5yZXF1ZXN0KCkgVVJMXSBjb21wbGV0aW9uSGFuZGxlcjpeKGJvb2wg
cmVzdWx0KSB7CisgICAgICAgIHB1c2hNZXNzYWdlU3VjY2Vzc2Z1bCA9IHJlc3VsdDsKKyAgICAg
ICAgcHVzaE1lc3NhZ2VQcm9jZXNzZWQgPSB0cnVlOworICAgIH1dOworCisgICAgRVhQRUNUX1RS
VUUod2FpdFVudGlsRXZhbHVhdGVzVG9UcnVlKFsmXSB7IHJldHVybiBbW2NvbmZpZ3VyYXRpb24g
d2Vic2l0ZURhdGFTdG9yZV0gX2hhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0aXZpdHlGb3JU
ZXN0aW5nXTsgfSkpOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZwdXNoTWVzc2Fn
ZVByb2Nlc3NlZCk7CisgICAgRVhQRUNUX0ZBTFNFKHB1c2hNZXNzYWdlU3VjY2Vzc2Z1bCk7Cisg
ICAgRVhQRUNUX1RSVUUod2FpdFVudGlsRXZhbHVhdGVzVG9UcnVlKFsmXSB7IHJldHVybiAhW1tj
b25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIF9oYXNTZXJ2aWNlV29ya2VyQmFja2dyb3Vu
ZEFjdGl2aXR5Rm9yVGVzdGluZ107IH0pKTsKK30KKworVEVTVChQdXNoQVBJLCBmaXJlUHVzaEV2
ZW50V2l0aE5vUGFnZXNUaW1lb3V0KQoreworICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIg
c2VydmVyKHsKKyAgICAgICAgeyAiLyIsIHsgbWFpbkJ5dGVzIH0gfSwKKyAgICAgICAgeyAiL3N3
LmpzIiwgeyB7eyAiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH19LCB3
YWl0T25lU2Vjb25kU2NyaXB0Qnl0ZXMgfSB9CisgICAgfSwgVGVzdFdlYktpdEFQSTo6SFRUUFNl
cnZlcjo6UHJvdG9jb2w6Okh0dHApOworCisgICAgW1dLV2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dX
ZWJzaXRlRGF0YVJlY29yZHNGb3JBbGxPcmlnaW5zXTsKKworICAgIC8vIERpc2FibGUgc2Vydmlj
ZSB3b3JrZXIgZGVsYXkgZm9yIHRoZSBwdXJwb3NlIG9mIHRlc3RpbmcsIHB1c2ggZXZlbnQgc2hv
dWxkIHRpbWVvdXQgYWZ0ZXIgMSBzZWNvbmQuCisgICAgYXV0byBkYXRhU3RvcmVDb25maWd1cmF0
aW9uID0gYWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7CisgICAgYXV0byBkYXRhU3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3Jl
IGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0
KCldKTsKKworICAgIC8vIFN0YXJ0IHdpdGggYSBjbGVhbiBzbGF0ZSBkYXRhIHN0b3JlCisgICAg
W2RhdGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNp
dGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlv
bkhhbmRsZXI6XigpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAgICBhdXRv
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IGRhdGFT
dG9yZS5nZXQoKTsKKworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbUHVzaEFQ
SU1lc3NhZ2VIYW5kbGVyV2l0aEV4cGVjdGVkTWVzc2FnZSBhbGxvY10gaW5pdF0pOworICAgIFtb
Y29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5k
bGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJzdyJdOworCisgICAgZXhwZWN0ZWRNZXNz
YWdlID0gIlJlYWR5IjsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZl
ci5yZXF1ZXN0KCldOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKwor
ICAgIFt3ZWJWaWV3IF9jbG9zZV07CisgICAgd2ViVmlldyA9IG51bGxwdHI7CisKKyAgICBbZGF0
YVN0b3JlQ29uZmlndXJhdGlvbiBzZXRTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVs
YXlFbmFibGVkOk5PXTsKKyAgICBkYXRhU3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0
b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOmRhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
Z2V0KCldKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBkYXRh
U3RvcmUuZ2V0KCk7CisKKyAgICB0ZXJtaW5hdGVOZXR3b3JrUHJvY2Vzc1doaWxlUmVnaXN0cmF0
aW9uSXNTdG9yZWQoY29uZmlndXJhdGlvbi5nZXQoKSk7CisKKyAgICAvLyBQdXNoIGV2ZW50IGZv
ciBzZXJ2aWNlIHdvcmtlciB3aXRob3V0IGFueSByZWxhdGVkIHBhZ2UsIHNob3VsZCB0aW1lb3V0
IHNvIGZhaWwuCisgICAgcHVzaE1lc3NhZ2VQcm9jZXNzZWQgPSBmYWxzZTsKKyAgICBwdXNoTWVz
c2FnZVN1Y2Nlc3NmdWwgPSBmYWxzZTsKKyAgICBOU1N0cmluZyAqbWVzc2FnZSA9IEAiVGltZWxl
c3MgUG90YXRvZXMiOworICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfcHJv
Y2Vzc1B1c2hNZXNzYWdlOlttZXNzYWdlIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0Vu
Y29kaW5nXSByZWdpc3RyYXRpb246W3NlcnZlci5yZXF1ZXN0KCkgVVJMXSBjb21wbGV0aW9uSGFu
ZGxlcjpeKGJvb2wgcmVzdWx0KSB7CisgICAgICAgIHB1c2hNZXNzYWdlU3VjY2Vzc2Z1bCA9IHJl
c3VsdDsKKyAgICAgICAgcHVzaE1lc3NhZ2VQcm9jZXNzZWQgPSB0cnVlOworICAgIH1dOworCisg
ICAgRVhQRUNUX1RSVUUod2FpdFVudGlsRXZhbHVhdGVzVG9UcnVlKFsmXSB7IHJldHVybiBbW2Nv
bmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gX2hhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5k
QWN0aXZpdHlGb3JUZXN0aW5nXTsgfSkpOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZwdXNoTWVzc2FnZVByb2Nlc3NlZCk7CisgICAgRVhQRUNUX0ZBTFNFKHB1c2hNZXNzYWdlU3Vj
Y2Vzc2Z1bCk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsRXZhbHVhdGVzVG9UcnVlKFsmXSB7
IHJldHVybiAhW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIF9oYXNTZXJ2aWNlV29y
a2VyQmFja2dyb3VuZEFjdGl2aXR5Rm9yVGVzdGluZ107IH0pKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440581</attachid>
            <date>2021-10-08 00:48:09 -0700</date>
            <delta_ts>2021-10-08 03:02:58 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231285-20211008094807.patch</filename>
            <type>text/plain</type>
            <size>26877</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmRlMGQ5NzA3ZTMzNzI2
NWY2YmMwZmJjMTE4YWU1MTljNGQ0NWZiOS4uYmMzMzc3MjJlNGRmZTNiZmVmYzQ0MDMyY2VjNDdh
ZmVkMzZjNzFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEwLTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
cHJvY2Vzc2luZyBwdXNoIGV2ZW50cyB3aXRob3V0IHNlcnZpY2Ugd29ya2VyIGNsaWVudHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTI4NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIENvdmVyZWQgYnkgQVBJ
IHRlc3QuCisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcDoK
KyAgICAgICAgQWRkIGEgdGltZXIgdG8gdGVybWluYXRlIHNlcnZpY2Ugd29ya2VyIGlmIGEgcHVz
aCBtZXNzYWdlIGlzIG5vdCBwcm9jZXNzZWQgd2l0aCBhIGdpdmVuIG51bWJlciBvZiBzZWNvbmRz
LgorICAgICAgICBUaGUgdGltZXIgdmFsdWUgaXMgdGhlIGRlZmF1bHQgdGVybWluYXRpb24gZGVs
YXkgb3IgMSBzZWNvbmQgZm9yIHRlc3RpbmcuCisKIDIwMjEtMTAtMDcgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHNvbWUgcGx1bWJpbmcgZm9y
IHJ1bm5pbmcgc21vb3RoIHNjcm9sbCBhbmltYXRpb25zIGluIHRoZSBzY3JvbGxpbmcgdGhyZWFk
L1VJIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOTg5YWFjZjQ1MDAwYjczN2VlM2Y3NzVlODAxZGJkNTNh
YmMwOGFlYS4uZjE2MGE2ZGMyMDQzOThmNmI5YWNlN2Q0NmNmYzI5MGQ1ZDU4MjE5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMS0xMC0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHByb2Nlc3NpbmcgcHVzaCBldmVu
dHMgd2l0aG91dCBzZXJ2aWNlIHdvcmtlciBjbGllbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEyODUKKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBXaGVuIGZpcmluZyBhIHB1c2ggZXZlbnQsIGFzayBVSVBy
b2Nlc3MgdG8gdGFrZSBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGZvciB0aGUgcHJvY2VzcyBydW5u
aW5nIHRoZSBzZXJ2aWNlIHdvcmtlci4KKyAgICAgICAgV2UgdXNlIGEgY291bnRlciBiYXNlZCBh
cHByb2FjaCB0byB0YWtlL2Rpc3Bvc2Ugb2YgdGhlIGJhY2tnb3J1bmQgYXNzZXJ0aW9uLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorCiAyMDIx
LTEwLTA3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBzb21lIHBsdW1iaW5nIGZvciBydW5uaW5nIHNtb290aCBzY3JvbGwgYW5pbWF0aW9ucyBp
biB0aGUgc2Nyb2xsaW5nIHRocmVhZC9VSSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IGM0ZjY4ZTRkZjY3OTE5
ZDBhMzI0ZTVkZTMxNDI2NDM2M2Q3ZDUxYTAuLmY1MDIwMzEwYThmMDQ5MWU1NDhiZmI1MmZlZDAx
ZmQ4OTI1ZDY4YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC0xMjE0LDEyICsxMjE0LDI0IEBAIHZvaWQgU1dTZXJ2ZXI6
OnByb2Nlc3NQdXNoTWVzc2FnZShzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4mJiBkYXRh
LCBVUkwmJiByCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBmaXJl
RnVuY3Rpb25hbEV2ZW50KCpyZWdpc3RyYXRpb24sIFtzZXJ2aWNlV29ya2VySWRlbnRpZmllciA9
IHdvcmtlci0+aWRlbnRpZmllcigpLCBkYXRhID0gV1RGTW92ZShkYXRhKSwgY2FsbGJhY2sgPSBX
VEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIGNvbm5lY3Rpb25PclN0YXR1cykgbXV0YWJsZSB7Cisg
ICAgICAgIGZpcmVGdW5jdGlvbmFsRXZlbnQoKnJlZ2lzdHJhdGlvbiwgW3dvcmtlciA9IFJlZiB7
ICp3b3JrZXIgfSwgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgZGF0YSA9IFdURk1vdmUo
ZGF0YSksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiBjb25uZWN0aW9uT3JT
dGF0dXMpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCFjb25uZWN0aW9uT3JTdGF0dXMuaGFz
X3ZhbHVlKCkpIHsKICAgICAgICAgICAgICAgICBjYWxsYmFjayhjb25uZWN0aW9uT3JTdGF0dXMu
ZXJyb3IoKSA9PSBTaG91bGRTa2lwRXZlbnQ6Olllcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgY29ubmVjdGlvbk9yU3RhdHVzLnZhbHVlKCkt
PmZpcmVQdXNoRXZlbnQoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGRhdGEsIFdURk1vdmUoY2Fs
bGJhY2spKTsKKworICAgICAgICAgICAgYXV0byBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA9IHdv
cmtlci0+aWRlbnRpZmllcigpOworICAgICAgICAgICAgYXV0byB0ZXJtaW5hdGVXb3JrZXJUaW1l
ciA9IG1ha2VVbmlxdWU8VGltZXI+KFt3b3JrZXIgPSBXVEZNb3ZlKHdvcmtlcildIHsKKyAgICAg
ICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihTZXJ2aWNlV29ya2VyLCAiVGVybWluYXRpbmcg
c2VydmljZSB3b3JrZXIgYXMgcHJvY2Vzc2luZyBwdXNoIGV2ZW50IHRvb2sgdG9vIG11Y2ggdGlt
ZSIpOworICAgICAgICAgICAgICAgIHdvcmtlci0+dGVybWluYXRlKCk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHRlcm1pbmF0ZVdvcmtlclRpbWVyLT5zdGFydE9uZVNob3Qod2Vha1Ro
aXMgJiYgd2Vha1RoaXMtPm1faXNQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQgPyBkZWZh
dWx0VGVybWluYXRpb25EZWxheSA6IDJfcyk7CisgICAgICAgICAgICBjb25uZWN0aW9uT3JTdGF0
dXMudmFsdWUoKS0+ZmlyZVB1c2hFdmVudChzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZGF0YSwg
W2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRlcm1pbmF0ZVdvcmtlclRpbWVyID0gV1RG
TW92ZSh0ZXJtaW5hdGVXb3JrZXJUaW1lcildKGJvb2wgc3VjY2VlZGVkKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgICAgICBpZiAodGVybWluYXRlV29ya2VyVGltZXItPmlzQWN0aXZlKCkpCisgICAg
ICAgICAgICAgICAgICAgIHRlcm1pbmF0ZVdvcmtlclRpbWVyLT5zdG9wKCk7CisKKyAgICAgICAg
ICAgICAgICBjYWxsYmFjayhzdWNjZWVkZWQpOworICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uLmNwcAppbmRleCBlMDg5NDRiYzMxYjNjM2ZjZTgwMTQ3Y2ZlZWZlMjljZTgwYzg1
MWNhLi5kYmIzNjRiZTRkZjgxN2VjMDc1MzM5ZDkzZDYxOTE0YzYyODI5NjQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtMTA5
LDEwICsxMDksMTcgQEAgdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmZpcmVB
Y3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHMKIAogdm9pZCBXZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb246OmZpcmVQdXNoRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPHVpbnQ4X3Q+PiYgZGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
YWxsYmFjaykKIHsKKyAgICBpZiAoIW1fcHJvY2Vzc2luZ1B1c2hFdmVudHNDb3VudCsrKQorICAg
ICAgICBtX2Nvbm5lY3Rpb24ubmV0d29ya1Byb2Nlc3MoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpTdGFydFNlcnZpY2VXb3Jr
ZXJCYWNrZ3JvdW5kUHJvY2Vzc2luZyB7IHdlYlByb2Nlc3NJZGVudGlmaWVyKCkgfSwgMCk7CisK
ICAgICBzdGQ6Om9wdGlvbmFsPElQQzo6RGF0YVJlZmVyZW5jZT4gaXBjRGF0YTsKICAgICBpZiAo
ZGF0YSkKICAgICAgICAgaXBjRGF0YSA9IElQQzo6RGF0YVJlZmVyZW5jZSB7IGRhdGEtPmRhdGEo
KSwgZGF0YS0+c2l6ZSgpIH07Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6RmlyZVB1c2hFdmVudChzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgaXBjRGF0YSksIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpGaXJlUHVzaEV2
ZW50KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBpcGNEYXRhKSwgW3dlYWtUaGlzID0gbWFrZVdl
YWtQdHIodGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgd2FzUHJvY2Vz
c2VkKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzICYmICEtLXdlYWtUaGlzLT5tX3By
b2Nlc3NpbmdQdXNoRXZlbnRzQ291bnQpCisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9jb25uZWN0
aW9uLm5ldHdvcmtQcm9jZXNzKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RW5kU2VydmljZVdvcmtlckJhY2tncm91bmRQcm9j
ZXNzaW5nIHsgd2Vha1RoaXMtPndlYlByb2Nlc3NJZGVudGlmaWVyKCkgfSwgMCk7CisgICAgICAg
IGNhbGxiYWNrKHdhc1Byb2Nlc3NlZCk7CisgICAgfSk7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uOjp0ZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZp
ZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggMDU3M2JmNjQ2MzNjNWJlNTAxNGE4ZGNiYjNk
NzgyMWM5NTcxOWJjMS4uZTM3NDA3ODZhZWRjZGY3MzRhNjcyZjM2YjEyNzk3MGQ0MTg1ZjZlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApA
QCAtMTA1LDYgKzEwNSw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpGZXRjaElk
ZW50aWZpZXIsIFdlYWtQdHI8U2VydmljZVdvcmtlckZldGNoVGFzaz4+IG1fb25nb2luZ0ZldGNo
ZXM7CiAgICAgYm9vbCBtX2lzVGhyb3R0bGVhYmxlIHsgdHJ1ZSB9OwogICAgIFdlYlBhZ2VQcm94
eUlkZW50aWZpZXIgbV93ZWJQYWdlUHJveHlJRDsKKyAgICBzaXplX3QgbV9wcm9jZXNzaW5nUHVz
aEV2ZW50c0NvdW50IHsgMCB9OwogfTsgLy8gY2xhc3MgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggZWM3Y2Q1
NWNlY2ZhYTc4MDc4ZDA1ODM3OWZjZjY5OTk5NDMyYTIwNC4uOWJhNjlmN2QwNmE1ZDY2YmIxYWFm
OGQ3NDcxYjA0NTVhZmVmZmJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC03NTMsNiArNzUzLDExIEBA
IHN0YXRpYyBWZWN0b3I8V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29yZD4gdG9XZWJzaXRlRGF0YVJl
Y29yZHMoTlNBcnJheSAqZGF0YVJlY29yCiAgICAgfSk7CiB9CiAKKy0oYm9vbClfaGFzU2Vydmlj
ZVdvcmtlckJhY2tncm91bmRBY3Rpdml0eUZvclRlc3RpbmcKK3sKKyAgICByZXR1cm4gX3dlYnNp
dGVEYXRhU3RvcmUtPmhhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0aXZpdHlGb3JUZXN0aW5n
KCk7Cit9CisKIC0odm9pZClfcHJvY2Vzc1B1c2hNZXNzYWdlOihOU0RhdGEqKSBtZXNzYWdlIHJl
Z2lzdHJhdGlvbjooTlNVUkwgKilyZWdpc3RyYXRpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQo
XikoYm9vbCB3YXNQcm9jZXNzZWQpKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKaW5kZXggZTNlNTU1OGQ1NWJj
ZDA2OGNhZjliN2I5OTMyN2JhNDY4Y2UyZGY1Yi4uOGZiNDg1MWViMDM4YzQ4NTE3N2ViZTkyN2Rj
OGU0MTM4NTE1ZGM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCkBAIC0xMDYsNiArMTA2
LDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVG
ZXRjaE9wdGlvbnMpIHsKICsgKEJPT0wpX2RlZmF1bHROZXR3b3JrUHJvY2Vzc0V4aXN0cyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAodm9pZClfY291bnROb25E
ZWZhdWx0U2Vzc2lvblNldHM6KHZvaWQoXikoc2l6ZV90KSljb21wbGV0aW9uSGFuZGxlcjsKIAor
LShib29sKV9oYXNTZXJ2aWNlV29ya2VyQmFja2dyb3VuZEFjdGl2aXR5Rm9yVGVzdGluZyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSh2b2lk
KV9wcm9jZXNzUHVzaE1lc3NhZ2U6KE5TRGF0YSopZGF0YSByZWdpc3RyYXRpb246KE5TVVJMICop
cmVnaXN0cmF0aW9uIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKGJvb2wpKWNvbXBsZXRpb25I
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQ0NmIzNDJlODg1MjMzYjIxZjc1OGU3ZjYz
MmQwMDNmNjZjZjg2ZjUuLjMxMGY2YWVjNTU0NDg5M2RkMzgwNjBiNWMwOTU5MjVlZDUzYzkxYTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcApAQCAtMTQwMCw2ICsxNDAwLDE4IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRQcm9jZXNzKFdlYkNvcmU6OlBy
b2Nlc3NJCiAKICAgICBzZXJ2aWNlV29ya2VyUHJvY2Vzcy0+dW5yZWdpc3RlclNlcnZpY2VXb3Jr
ZXJDbGllbnRQcm9jZXNzKCp3ZWJQcm9jZXNzKTsKIH0KKwordm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzdGFydFNlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kUHJvY2Vzc2luZyhXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUHJvY2Vzc0lkZW50aWZpZXIpCit7CisgICAgaWYg
KGF1dG8qIHNlcnZpY2VXb3JrZXJQcm9jZXNzID0gV2ViUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzRm9y
SWRlbnRpZmllcihzZXJ2aWNlV29ya2VyUHJvY2Vzc0lkZW50aWZpZXIpKQorICAgICAgICBzZXJ2
aWNlV29ya2VyUHJvY2Vzcy0+c3RhcnRTZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3Npbmco
KTsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjplbmRTZXJ2aWNlV29ya2VyQmFja2dy
b3VuZFByb2Nlc3NpbmcoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtlclBy
b2Nlc3NJZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvKiBzZXJ2aWNlV29ya2VyUHJvY2VzcyA9
IFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc0ZvcklkZW50aWZpZXIoc2VydmljZVdvcmtlclByb2Nl
c3NJZGVudGlmaWVyKSkKKyAgICAgICAgc2VydmljZVdvcmtlclByb2Nlc3MtPmVuZFNlcnZpY2VX
b3JrZXJCYWNrZ3JvdW5kUHJvY2Vzc2luZygpOworfQogI2VuZGlmCiAKIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCB1aW50NjRfdCBjdXJyZW50UXVv
dGEsIHVpbnQ2NF90IGN1cnJlbnRTaXplLCB1aW50NjRfdCBzcGFjZVJlcXVpcmVkLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHF1b3RhKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggNzgwNmI3MmMyODMyNmI1YWY2M2MxMGY1MWZhODlm
MzZkZGRkOTc5MS4uYTRiNTQ1NjA5MDRlYWNiMmQyYjBkZGZjODk2NGU2NDczMTJjMGUxMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmgKQEAgLTMyMyw2ICszMjMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgd29ya2VyQ29u
dGV4dENvbm5lY3Rpb25Ob0xvbmdlck5lZWRlZChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcik7
CiAgICAgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRQcm9jZXNzKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyLCBXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllciBzZXJ2aWNlV29ya2VyUHJvY2Vzc0lkZW50aWZpZXIpOwogICAgIHZvaWQgdW5yZWdp
c3RlclNlcnZpY2VXb3JrZXJDbGllbnRQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
IHdlYlByb2Nlc3NJZGVudGlmaWVyLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBzZXJ2aWNl
V29ya2VyUHJvY2Vzc0lkZW50aWZpZXIpOworICAgIHZvaWQgc3RhcnRTZXJ2aWNlV29ya2VyQmFj
a2dyb3VuZFByb2Nlc3NpbmcoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtl
clByb2Nlc3NJZGVudGlmaWVyKTsKKyAgICB2b2lkIGVuZFNlcnZpY2VXb3JrZXJCYWNrZ3JvdW5k
UHJvY2Vzc2luZyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUHJvY2Vz
c0lkZW50aWZpZXIpOwogI2VuZGlmCiAKICAgICB2b2lkIHRlcm1pbmF0ZVdlYlByb2Nlc3MoV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmlu
ZGV4IGZiYjMxZWY5YTIzNjFjYTc1ZDVjZDJhMTY2ZWU4MDk2OThiMzU2ZmUuLmI0YTRmMDIxYTQ4
YjhlZTM4NmQyYWQ1M2Y2NWQzYmRmOGExMTE5ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTU3LDYgKzU3LDggQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBM
ZWdhY3lSZWNlaXZlciB7CiAgICAgV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ob0xvbmdlck5lZWRl
ZChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIFJlZ2lzdGVyU2Vy
dmljZVdvcmtlckNsaWVudFByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJv
Y2Vzc0lkZW50aWZpZXIsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJQ
cm9jZXNzSWRlbnRpZmllcikKICAgICBVbnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudFByb2Nl
c3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIsIFdlYkNv
cmU6OlByb2Nlc3NJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJQcm9jZXNzSWRlbnRpZmllcikKKyAg
ICBTdGFydFNlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kUHJvY2Vzc2luZyhXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUHJvY2Vzc0lkZW50aWZpZXIpCisgICAgRW5kU2Vydmlj
ZVdvcmtlckJhY2tncm91bmRQcm9jZXNzaW5nKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHNl
cnZpY2VXb3JrZXJQcm9jZXNzSWRlbnRpZmllcikKICNlbmRpZgogCiAgICAgU2V0V2ViUHJvY2Vz
c0hhc1VwbG9hZHMoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lELCBib29sIGhh
c1VwbG9hZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmlu
ZGV4IDhkNDdhNjNmNmNhNzZiNDFlYzg2ZWE3YzQ0MTcyZDczMGEwNDJiYTkuLjBjMzhhNDcyMzZm
YjcyMGJmNjRlNDNiOTMyMDVjYzYwMzdkYTAzZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTkzOCw2ICsxOTM4LDE0IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Byb3h5Ojp1cGRhdGVTZXJ2aWNlV29ya2VyUHJvY2Vzc0Fzc2VydGlvbigpCiAgICAgICAg
ICAgICBtX3NlcnZpY2VXb3JrZXJJbmZvcm1hdGlvbi0+YWN0aXZpdHkgPSBtX3Rocm90dGxlci5i
YWNrZ3JvdW5kQWN0aXZpdHkoIlNlcnZpY2UgV29ya2VyIGZvciBiYWNrZ3JvdW5kIHZpZXcocyki
X3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQorCisgICAgaWYgKG1faGFzU2VydmljZVdvcmtl
ckJhY2tncm91bmRQcm9jZXNzaW5nKSB7CisgICAgICAgIFdFQlBST0NFU1NQUk9YWV9SRUxFQVNF
X0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIlNlcnZpY2UgV29ya2VyIGZvciBiYWNrZ3JvdW5kIHBy
b2Nlc3NpbmciKTsKKyAgICAgICAgaWYgKCFQcm9jZXNzVGhyb3R0bGVyOjppc1ZhbGlkQmFja2dy
b3VuZEFjdGl2aXR5KG1fc2VydmljZVdvcmtlckluZm9ybWF0aW9uLT5hY3Rpdml0eSkpCisgICAg
ICAgICAgICBtX3NlcnZpY2VXb3JrZXJJbmZvcm1hdGlvbi0+YWN0aXZpdHkgPSBtX3Rocm90dGxl
ci5iYWNrZ3JvdW5kQWN0aXZpdHkoIlNlcnZpY2UgV29ya2VyIGZvciBiYWNrZ3JvdW5kIHByb2Nl
c3NpbmciX3MpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9zZXJ2aWNlV29ya2Vy
SW5mb3JtYXRpb24tPmFjdGl2aXR5ID0gbnVsbHB0cjsKIH0KIApAQCAtMTk3MCw2ICsxOTc4LDI2
IEBAIGJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpoYXNTZXJ2aWNlV29ya2VyQmFja2dyb3VuZEFjdGl2
aXR5Rm9yVGVzdGluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2VydmljZVdvcmtlckluZm9y
bWF0aW9uID8gUHJvY2Vzc1Rocm90dGxlcjo6aXNWYWxpZEJhY2tncm91bmRBY3Rpdml0eShtX3Nl
cnZpY2VXb3JrZXJJbmZvcm1hdGlvbi0+YWN0aXZpdHkpIDogZmFsc2U7CiB9CisKK3ZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpzdGFydFNlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kUHJvY2Vzc2luZygpCit7
CisgICAgaWYgKCFtX3NlcnZpY2VXb3JrZXJJbmZvcm1hdGlvbikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgV0VCUFJPQ0VTU1BST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAic3Rh
cnRTZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3NpbmciKTsKKyAgICBtX2hhc1NlcnZpY2VX
b3JrZXJCYWNrZ3JvdW5kUHJvY2Vzc2luZyA9IHRydWU7CisgICAgdXBkYXRlU2VydmljZVdvcmtl
clByb2Nlc3NBc3NlcnRpb24oKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OmVuZFNlcnZp
Y2VXb3JrZXJCYWNrZ3JvdW5kUHJvY2Vzc2luZygpCit7CisgICAgaWYgKCFtX3NlcnZpY2VXb3Jr
ZXJJbmZvcm1hdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgV0VCUFJPQ0VTU1BST1hZX1JF
TEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiZW5kU2VydmljZVdvcmtlckJhY2tncm91bmRQ
cm9jZXNzaW5nIik7CisgICAgbV9oYXNTZXJ2aWNlV29ya2VyQmFja2dyb3VuZFByb2Nlc3Npbmcg
PSBmYWxzZTsKKyAgICB1cGRhdGVTZXJ2aWNlV29ya2VyUHJvY2Vzc0Fzc2VydGlvbigpOworfQog
I2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6
OmRpc2FibGVTZXJ2aWNlV29ya2VycygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCmluZGV4IDljZjIzYWQ4OTI5ZGJlOWE4MDNjMGFjMDA0YWEzM2RjMmYyYzY3MWUu
LmZlNGZiOGQ1Mjk5OGEwYjJkOTI4M2ZiYjZjYzVlYmVkMWI4NzhmYjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0zNjYsNiArMzY2LDggQEAgcHVibGlj
OgogICAgIHZvaWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRQcm9jZXNzKFdlYlByb2Nl
c3NQcm94eSYpOwogICAgIGJvb2wgaGFzU2VydmljZVdvcmtlckZvcmVncm91bmRBY3Rpdml0eUZv
clRlc3RpbmcoKSBjb25zdDsKICAgICBib29sIGhhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0
aXZpdHlGb3JUZXN0aW5nKCkgY29uc3Q7CisgICAgdm9pZCBzdGFydFNlcnZpY2VXb3JrZXJCYWNr
Z3JvdW5kUHJvY2Vzc2luZygpOworICAgIHZvaWQgZW5kU2VydmljZVdvcmtlckJhY2tncm91bmRQ
cm9jZXNzaW5nKCk7CiAjZW5kaWYKICAgICB2b2lkIHNldEFzc2VydGlvblR5cGVGb3JUZXN0aW5n
KFByb2Nlc3NBc3NlcnRpb25UeXBlIHR5cGUpIHsgZGlkU2V0QXNzZXJ0aW9uVHlwZSh0eXBlKTsg
fQogCkBAIC02NTcsNiArNjU5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgV2Vha0hhc2hTZXQ8V2Vi
UHJvY2Vzc1Byb3h5PiBjbGllbnRQcm9jZXNzZXM7CiAgICAgfTsKICAgICBzdGQ6Om9wdGlvbmFs
PFNlcnZpY2VXb3JrZXJJbmZvcm1hdGlvbj4gbV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb247Cisg
ICAgYm9vbCBtX2hhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kUHJvY2Vzc2luZyB7IGZhbHNlIH07
CiAKICAgICBIYXNoTWFwPFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLCBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6U2xlZXBEaXNhYmxlcj4+IG1fc2xlZXBEaXNhYmxlcnM7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAKaW5kZXggN2JlZmQ2MGUwZmY0MWFlNTk0NzdmZDUwMzhjMGY2M2Y0NTM2NzEw
MS4uYTljMjdlOTJiOGY3YjJkY2RjMzgzZjY4MzU3MTJiNmM3M2I5NzFkYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAKQEAgLTEwMDcsNiArMTAwNywxMSBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlc2V0
U2VydmljZVdvcmtlclRpbWVvdXRGb3JUZXN0aW5nKCkKICAgICBuZXR3b3JrUHJvY2VzcygpLnNl
bmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UmVzZXRTZXJ2aWNlV29ya2VyRmV0Y2hU
aW1lb3V0Rm9yVGVzdGluZygpLCBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlJlc2V0U2Vydmlj
ZVdvcmtlckZldGNoVGltZW91dEZvclRlc3Rpbmc6OlJlcGx5KCksIDApOwogfQogCitib29sIFdl
YnNpdGVEYXRhU3RvcmU6Omhhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0aXZpdHlGb3JUZXN0
aW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjphbnlPZihXZWJQcm9jZXNzUG9vbDo6YWxs
UHJvY2Vzc1Bvb2xzKCksIFtdKGF1dG8mIHBvb2wpIHsgcmV0dXJuIHBvb2wtPmhhc1NlcnZpY2VX
b3JrZXJCYWNrZ3JvdW5kQWN0aXZpdHlGb3JUZXN0aW5nKCk7IH0pOworfQorCiAjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6
OnNldE1heFN0YXRpc3RpY3NFbnRyaWVzKHNpemVfdCBtYXhpbXVtRW50cnlDb3VudCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmlu
ZGV4IDQwOGM3ZGE3Y2U3ZmViYzA4M2NkZTcwZTZiNWEwOTI3MTMxNDA3ODMuLjk1ZDJkMDBmMGFi
MDc3MDgyMjM0YzY1NGMxMDFmMDM3ODQ4OWEwZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE3Myw2ICsx
NzMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsU3luY2hyb25vdXNseUZvclRl
c3RpbmcoQ2FjaGVNb2RlbCk7CiAgICAgdm9pZCBzZXRTZXJ2aWNlV29ya2VyVGltZW91dEZvclRl
c3RpbmcoU2Vjb25kcyk7CiAgICAgdm9pZCByZXNldFNlcnZpY2VXb3JrZXJUaW1lb3V0Rm9yVGVz
dGluZygpOworICAgIGJvb2wgaGFzU2VydmljZVdvcmtlckJhY2tncm91bmRBY3Rpdml0eUZvclRl
c3RpbmcoKSBjb25zdDsKIAogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5U
SU9OKQogICAgIHZvaWQgZmV0Y2hEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4sIFZlY3Rv
cjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChW
ZWN0b3I8V2Vic2l0ZURhdGFSZWNvcmQ+JiYsIEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4+JiYpPiYmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBlYjY2YmM0MDM1MTYyZjc0N2YzNzg4YWVkMDlhNmM0Y2Y0MThjZTIyLi4xZTQ0
NDA3NDE1ZDJiOTlmNWE5NjhkYzFmNmIyODkyZDA5MTdlY2IyIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTAt
MDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBwcm9jZXNzaW5nIHB1c2ggZXZlbnRzIHdpdGhvdXQgc2VydmljZSB3b3JrZXIgY2xp
ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMx
Mjg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1B1c2hBUEkubW06CisKIDIwMjEtMTAtMDcgIEpv
bmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFt3ZWJraXRzY21w
eV0gTGlicmFyeSBzaG91bGQgb3duIGNvbnRyaWJ1dG9ycy5qc29uIGxvYWRpbmcKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHVzaEFQSS5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHVzaEFQSS5tbQppbmRleCBmODZj
ZTgzZTQyZjU5MWY2Y2Q3OTY2MDg0OGJlZmZjMzY0MDk5MDJlLi40ZWJkZTNmMTgzMTc1NWQwMTdh
ZTA0OWQ1YTRjNWYxNmEzM2E3ZDQzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1B1c2hBUEkubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9QdXNoQVBJLm1tCkBAIC0yOSw3ICsyOSw5IEBACiAjaW1wb3J0ICJQbGF0
Zm9ybVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGVzdC5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmll
dy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktp
dC9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaD4KIAogc3RhdGljIGJvb2wgZG9uZTsKIHN0YXRpYyBT
dHJpbmcgZXhwZWN0ZWRNZXNzYWdlOwpAQCAtMTA1LDYgKzEwNywxOCBAQCBzdGF0aWMgdm9pZCBj
bGVhcldlYnNpdGVEYXRhU3RvcmUoV0tXZWJzaXRlRGF0YVN0b3JlICpzdG9yZSkKIAogc3RhdGlj
IGJvb2wgcHVzaE1lc3NhZ2VQcm9jZXNzZWQgPSBmYWxzZTsKIHN0YXRpYyBib29sIHB1c2hNZXNz
YWdlU3VjY2Vzc2Z1bCA9IGZhbHNlOworCitzdGF0aWMgYm9vbCB3YWl0VW50aWxFdmFsdWF0ZXNU
b1RydWUoY29uc3QgRnVuY3Rpb248Ym9vbCgpPiYgZikKK3sKKyAgICB1bnNpZ25lZCB0aW1lb3V0
ID0gMDsKKyAgICBkbyB7CisgICAgICAgIGlmIChmKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMC4xKTsKKyAgICB9IHdoaWxl
ICgrK3RpbWVvdXQgPCAxMDApOworICAgIHJldHVybiBmYWxzZTsKK30KKwogVEVTVChQdXNoQVBJ
LCBmaXJlUHVzaEV2ZW50KQogewogICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIgc2VydmVy
KHsKQEAgLTE1NywzICsxNzEsMTc3IEBAIFRFU1QoUHVzaEFQSSwgZmlyZVB1c2hFdmVudCkKIAog
ICAgIGNsZWFyV2Vic2l0ZURhdGFTdG9yZShbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3Jl
XSk7CiB9CisKK3N0YXRpYyBjb25zdCBjaGFyKiB3YWl0T25lU2Vjb25kU2NyaXB0Qnl0ZXMgPSBS
IlNXUkVTT1VSQ0UoCitsZXQgcG9ydDsKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIs
IChldmVudCkgPT4geworICAgIHBvcnQgPSBldmVudC5kYXRhLnBvcnQ7CisgICAgcG9ydC5wb3N0
TWVzc2FnZSgiUmVhZHkiKTsKK30pOworc2VsZi5hZGRFdmVudExpc3RlbmVyKCJwdXNoIiwgKGV2
ZW50KSA9PiB7CisgICAgaWYgKCFldmVudC5kYXRhKQorICAgICAgICByZXR1cm47CisgICAgY29u
c3QgdmFsdWUgPSBldmVudC5kYXRhLnRleHQoKTsKKyAgICBpZiAodmFsdWUgPT09ICdTd2VldCBQ
b3RhdG9lcycpCisgICAgICAgIGV2ZW50LndhaXRVbnRpbChuZXcgUHJvbWlzZShyZXNvbHZlID0+
IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkpKTsKKyAgICBlbHNlIGlmICh2YWx1ZSA9PT0gJ1Jv
dHRlbiBQb3RhdG9lcycpCisgICAgICAgIGV2ZW50LndhaXRVbnRpbChuZXcgUHJvbWlzZSgocmVz
b2x2ZSwgcmVqZWN0KSA9PiBzZXRUaW1lb3V0KHJlamVjdCwgMTAwMCkpKTsKKyAgICBlbHNlIGlm
ICh2YWx1ZSA9PT0gJ1RpbWVsZXNzIFBvdGF0b2VzJykKKyAgICAgICAgZXZlbnQud2FpdFVudGls
KG5ldyBQcm9taXNlKHJlc29sdmUgPT4geyB9KSk7Cit9KTsKKylTV1JFU09VUkNFIjsKKworc3Rh
dGljIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nlc3NXaGlsZVJlZ2lzdHJhdGlvbklzU3RvcmVk
KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24pCit7CisgICAgYXV0byBwYXRo
ID0gY29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlLl9jb25maWd1cmF0aW9uLl9zZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5LnBhdGg7CisgICAgTlNVUkwqIGRpcmVjdG9yeSA9
IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6cGF0aCBpc0RpcmVjdG9yeTpZRVNdOworICAgIE5TVVJM
ICpzd0RCUGF0aCA9IFtkaXJlY3RvcnkgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbnMtNy5zcWxpdGUzIl07CisgICAgdW5zaWduZWQgdGltZW91
dCA9IDA7CisgICAgd2hpbGUgKCFbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVF
eGlzdHNBdFBhdGg6c3dEQlBhdGgucGF0aF0gJiYgKyt0aW1lb3V0IDwgMTAwKQorICAgICAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjEpOworICAgIC8vIExldCdzIGNsb3NlIHRoZSBT
UUwgZGF0YWJhc2UuCisgICAgW2NvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSBfc2VuZE5l
dHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5XTsKKyAgICBbY29uZmlndXJhdGlvbi53
ZWJzaXRlRGF0YVN0b3JlIF90ZXJtaW5hdGVOZXR3b3JrUHJvY2Vzc107Cit9CisKK1RFU1QoUHVz
aEFQSSwgZmlyZVB1c2hFdmVudFdpdGhOb1BhZ2VzU3VjY2Vzc2Z1bCkKK3sKKyAgICBUZXN0V2Vi
S2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAgIHsgIi8iLCB7IG1haW5CeXRlcyB9
IH0sCisgICAgICAgIHsgIi9zdy5qcyIsIHsge3sgIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlv
bi9qYXZhc2NyaXB0IiB9fSwgd2FpdE9uZVNlY29uZFNjcmlwdEJ5dGVzIH0gfQorICAgIH0sIFRl
c3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OlByb3RvY29sOjpIdHRwKTsKKworICAgIFtXS1dlYnNp
dGVEYXRhU3RvcmUgX2FsbG93V2Vic2l0ZURhdGFSZWNvcmRzRm9yQWxsT3JpZ2luc107CisKKyAg
ICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOworICAgIGNsZWFyV2Vic2l0ZURhdGFTdG9yZShbY29uZmlndXJhdGlvbiB3
ZWJzaXRlRGF0YVN0b3JlXSk7CisKKyAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhb
W1B1c2hBUElNZXNzYWdlSGFuZGxlcldpdGhFeHBlY3RlZE1lc3NhZ2UgYWxsb2NdIGluaXRdKTsK
KyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNz
YWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAic3ciXTsKKworICAgIGV4cGVj
dGVkTWVzc2FnZSA9ICJSZWFkeSI7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpzZXJ2ZXIucmVxdWVzdCgpXTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisKKyAgICBbd2ViVmlldyBfY2xvc2VdOworICAgIHdlYlZpZXcgPSBudWxscHRyOworCisg
ICAgdGVybWluYXRlTmV0d29ya1Byb2Nlc3NXaGlsZVJlZ2lzdHJhdGlvbklzU3RvcmVkKGNvbmZp
Z3VyYXRpb24uZ2V0KCkpOworCisgICAgLy8gUHVzaCBldmVudCBmb3Igc2VydmljZSB3b3JrZXIg
d2l0aG91dCBhbnkgcmVsYXRlZCBwYWdlLCBzaG91bGQgc3VjY2VlZC4KKyAgICBwdXNoTWVzc2Fn
ZVByb2Nlc3NlZCA9IGZhbHNlOworICAgIHB1c2hNZXNzYWdlU3VjY2Vzc2Z1bCA9IGZhbHNlOwor
ICAgIE5TU3RyaW5nICptZXNzYWdlID0gQCJTd2VldCBQb3RhdG9lcyI7CisgICAgW1tjb25maWd1
cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIF9wcm9jZXNzUHVzaE1lc3NhZ2U6W21lc3NhZ2UgZGF0
YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddIHJlZ2lzdHJhdGlvbjpbc2VydmVy
LnJlcXVlc3QoKSBVUkxdIGNvbXBsZXRpb25IYW5kbGVyOl4oYm9vbCByZXN1bHQpIHsKKyAgICAg
ICAgcHVzaE1lc3NhZ2VTdWNjZXNzZnVsID0gcmVzdWx0OworICAgICAgICBwdXNoTWVzc2FnZVBy
b2Nlc3NlZCA9IHRydWU7CisgICAgfV07CisKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxFdmFs
dWF0ZXNUb1RydWUoWyZdIHsgcmV0dXJuIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3Jl
XSBfaGFzU2VydmljZVdvcmtlckJhY2tncm91bmRBY3Rpdml0eUZvclRlc3RpbmddOyB9KSk7CisK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnB1c2hNZXNzYWdlUHJvY2Vzc2VkKTsKKyAg
ICBFWFBFQ1RfVFJVRShwdXNoTWVzc2FnZVN1Y2Nlc3NmdWwpOworCisgICAgRVhQRUNUX1RSVUUo
d2FpdFVudGlsRXZhbHVhdGVzVG9UcnVlKFsmXSB7IHJldHVybiAhW1tjb25maWd1cmF0aW9uIHdl
YnNpdGVEYXRhU3RvcmVdIF9oYXNTZXJ2aWNlV29ya2VyQmFja2dyb3VuZEFjdGl2aXR5Rm9yVGVz
dGluZ107IH0pKTsKKworICAgIGNsZWFyV2Vic2l0ZURhdGFTdG9yZShbY29uZmlndXJhdGlvbiB3
ZWJzaXRlRGF0YVN0b3JlXSk7Cit9CisKK1RFU1QoUHVzaEFQSSwgZmlyZVB1c2hFdmVudFdpdGhO
b1BhZ2VzRmFpbCkKK3sKKyAgICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7Cisg
ICAgICAgIHsgIi8iLCB7IG1haW5CeXRlcyB9IH0sCisgICAgICAgIHsgIi9zdy5qcyIsIHsge3sg
IkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiB9fSwgd2FpdE9uZVNlY29u
ZFNjcmlwdEJ5dGVzIH0gfQorICAgIH0sIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OlByb3Rv
Y29sOjpIdHRwKTsKKworICAgIFtXS1dlYnNpdGVEYXRhU3RvcmUgX2FsbG93V2Vic2l0ZURhdGFS
ZWNvcmRzRm9yQWxsT3JpZ2luc107CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5T
KFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGNsZWFyV2Vic2l0
ZURhdGFTdG9yZShbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSk7CisKKyAgICBhdXRv
IG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1B1c2hBUElNZXNzYWdlSGFuZGxlcldpdGhFeHBl
Y3RlZE1lc3NhZ2UgYWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRl
bnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQo
KSBuYW1lOkAic3ciXTsKKworICAgIGV4cGVjdGVkTWVzc2FnZSA9ICJSZWFkeSI7CisgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01h
a2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCld
KTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBbd2ViVmlldyBfY2xvc2VdOwor
ICAgIHdlYlZpZXcgPSBudWxscHRyOworCisgICAgdGVybWluYXRlTmV0d29ya1Byb2Nlc3NXaGls
ZVJlZ2lzdHJhdGlvbklzU3RvcmVkKGNvbmZpZ3VyYXRpb24uZ2V0KCkpOworCisgICAgLy8gUHVz
aCBldmVudCBmb3Igc2VydmljZSB3b3JrZXIgd2l0aG91dCBhbnkgcmVsYXRlZCBwYWdlLCBzaG91
bGQgZmFpbC4KKyAgICBwdXNoTWVzc2FnZVByb2Nlc3NlZCA9IGZhbHNlOworICAgIHB1c2hNZXNz
YWdlU3VjY2Vzc2Z1bCA9IGZhbHNlOworICAgIE5TU3RyaW5nICptZXNzYWdlID0gQCJSb3R0ZW4g
UG90YXRvZXMiOworICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfcHJvY2Vz
c1B1c2hNZXNzYWdlOlttZXNzYWdlIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29k
aW5nXSByZWdpc3RyYXRpb246W3NlcnZlci5yZXF1ZXN0KCkgVVJMXSBjb21wbGV0aW9uSGFuZGxl
cjpeKGJvb2wgcmVzdWx0KSB7CisgICAgICAgIHB1c2hNZXNzYWdlU3VjY2Vzc2Z1bCA9IHJlc3Vs
dDsKKyAgICAgICAgcHVzaE1lc3NhZ2VQcm9jZXNzZWQgPSB0cnVlOworICAgIH1dOworCisgICAg
RVhQRUNUX1RSVUUod2FpdFVudGlsRXZhbHVhdGVzVG9UcnVlKFsmXSB7IHJldHVybiBbW2NvbmZp
Z3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gX2hhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0
aXZpdHlGb3JUZXN0aW5nXTsgfSkpOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZw
dXNoTWVzc2FnZVByb2Nlc3NlZCk7CisgICAgRVhQRUNUX0ZBTFNFKHB1c2hNZXNzYWdlU3VjY2Vz
c2Z1bCk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsRXZhbHVhdGVzVG9UcnVlKFsmXSB7IHJl
dHVybiAhW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIF9oYXNTZXJ2aWNlV29ya2Vy
QmFja2dyb3VuZEFjdGl2aXR5Rm9yVGVzdGluZ107IH0pKTsKKworICAgIGNsZWFyV2Vic2l0ZURh
dGFTdG9yZShbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSk7Cit9CisKK1RFU1QoUHVz
aEFQSSwgZmlyZVB1c2hFdmVudFdpdGhOb1BhZ2VzVGltZW91dCkKK3sKKyAgICBUZXN0V2ViS2l0
QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAgIHsgIi8iLCB7IG1haW5CeXRlcyB9IH0s
CisgICAgICAgIHsgIi9zdy5qcyIsIHsge3sgIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9q
YXZhc2NyaXB0IiB9fSwgd2FpdE9uZVNlY29uZFNjcmlwdEJ5dGVzIH0gfQorICAgIH0sIFRlc3RX
ZWJLaXRBUEk6OkhUVFBTZXJ2ZXI6OlByb3RvY29sOjpIdHRwKTsKKworICAgIFtXS1dlYnNpdGVE
YXRhU3RvcmUgX2FsbG93V2Vic2l0ZURhdGFSZWNvcmRzRm9yQWxsT3JpZ2luc107CisKKyAgICAv
LyBEaXNhYmxlIHNlcnZpY2Ugd29ya2VyIGRlbGF5IGZvciB0aGUgcHVycG9zZSBvZiB0ZXN0aW5n
LCBwdXNoIGV2ZW50IHNob3VsZCB0aW1lb3V0IGFmdGVyIDEgc2Vjb25kLgorICAgIGF1dG8gZGF0
YVN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGF0YVN0b3JlID0gYWRvcHROUyhbW1dL
V2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpkYXRhU3RvcmVD
b25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5T
KFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGNvbmZpZ3VyYXRp
b24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IGRhdGFTdG9yZS5nZXQoKTsKKyAgICBjbGVhcldl
YnNpdGVEYXRhU3RvcmUoW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0pOworCisgICAg
YXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tQdXNoQVBJTWVzc2FnZUhhbmRsZXJXaXRo
RXhwZWN0ZWRNZXNzYWdlIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJD
b250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIu
Z2V0KCkgbmFtZTpAInN3Il07CisKKyAgICBleHBlY3RlZE1lc3NhZ2UgPSAiUmVhZHkiOworICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdl
dCgpXSk7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgW3dlYlZpZXcgX2Nsb3Nl
XTsKKyAgICB3ZWJWaWV3ID0gbnVsbHB0cjsKKworICAgIFtkYXRhU3RvcmVDb25maWd1cmF0aW9u
IHNldFNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQ6Tk9dOworICAg
IGRhdGFTdG9yZSA9IGFkb3B0TlMoW1tXS1dlYnNpdGVEYXRhU3RvcmUgYWxsb2NdIF9pbml0V2l0
aENvbmZpZ3VyYXRpb246ZGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGNvbmZp
Z3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IGRhdGFTdG9yZS5nZXQoKTsKKworICAg
IHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzV2hpbGVSZWdpc3RyYXRpb25Jc1N0b3JlZChjb25maWd1
cmF0aW9uLmdldCgpKTsKKworICAgIC8vIFB1c2ggZXZlbnQgZm9yIHNlcnZpY2Ugd29ya2VyIHdp
dGhvdXQgYW55IHJlbGF0ZWQgcGFnZSwgc2hvdWxkIHRpbWVvdXQgc28gZmFpbC4KKyAgICBwdXNo
TWVzc2FnZVByb2Nlc3NlZCA9IGZhbHNlOworICAgIHB1c2hNZXNzYWdlU3VjY2Vzc2Z1bCA9IGZh
bHNlOworICAgIE5TU3RyaW5nICptZXNzYWdlID0gQCJUaW1lbGVzcyBQb3RhdG9lcyI7CisgICAg
W1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIF9wcm9jZXNzUHVzaE1lc3NhZ2U6W21l
c3NhZ2UgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddIHJlZ2lzdHJhdGlv
bjpbc2VydmVyLnJlcXVlc3QoKSBVUkxdIGNvbXBsZXRpb25IYW5kbGVyOl4oYm9vbCByZXN1bHQp
IHsKKyAgICAgICAgcHVzaE1lc3NhZ2VTdWNjZXNzZnVsID0gcmVzdWx0OworICAgICAgICBwdXNo
TWVzc2FnZVByb2Nlc3NlZCA9IHRydWU7CisgICAgfV07CisKKyAgICBFWFBFQ1RfVFJVRSh3YWl0
VW50aWxFdmFsdWF0ZXNUb1RydWUoWyZdIHsgcmV0dXJuIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRl
RGF0YVN0b3JlXSBfaGFzU2VydmljZVdvcmtlckJhY2tncm91bmRBY3Rpdml0eUZvclRlc3Rpbmdd
OyB9KSk7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnB1c2hNZXNzYWdlUHJvY2Vz
c2VkKTsKKyAgICBFWFBFQ1RfRkFMU0UocHVzaE1lc3NhZ2VTdWNjZXNzZnVsKTsKKyAgICBFWFBF
Q1RfVFJVRSh3YWl0VW50aWxFdmFsdWF0ZXNUb1RydWUoWyZdIHsgcmV0dXJuICFbW2NvbmZpZ3Vy
YXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gX2hhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0aXZp
dHlGb3JUZXN0aW5nXTsgfSkpOworCisgICAgY2xlYXJXZWJzaXRlRGF0YVN0b3JlKFtjb25maWd1
cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdKTsKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>