<?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>231008</bug_id>
          
          <creation_ts>2021-09-30 00:46:26 -0700</creation_ts>
          <short_desc>Add support for ServiceWorkerGlobalScope push event handler</short_desc>
          <delta_ts>2021-12-24 12:36:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          <dependson>231007</dependson>
          <blocked>182566</blocked>
    
    <blocked>231070</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>adieulot</cc>
    
    <cc>annulen</cc>
    
    <cc>augus.dupin</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>bhomoki</cc>
    
    <cc>bill</cc>
    
    <cc>brian</cc>
    
    <cc>brunow</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>collimarco91</cc>
    
    <cc>deminetix</cc>
    
    <cc>dvpdiner2</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fink.christoph</cc>
    
    <cc>fweber</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ik</cc>
    
    <cc>jacek.wozniak</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>kostas.eleftheriou</cc>
    
    <cc>nham</cc>
    
    <cc>nicolas</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>tomac</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yg</cc>
    
    <cc>yuriy.chaikovsky</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1798777</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-09-30 00:46:26 -0700</bug_when>
    <thetext>Add support for ServiceWorkerGlobalScope push event handler</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798793</commentid>
    <comment_count>1</comment_count>
    <who name="Thomas Steiner">tomac</who>
    <bug_when>2021-09-30 02:12:29 -0700</bug_when>
    <thetext>*** Bug 182566 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798806</commentid>
    <comment_count>2</comment_count>
      <attachid>439712</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-09-30 02:46:13 -0700</bug_when>
    <thetext>Created attachment 439712
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798808</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-30 02:46:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/83710760&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798875</commentid>
    <comment_count>4</comment_count>
      <attachid>439712</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-30 08:35:41 -0700</bug_when>
    <thetext>Comment on attachment 439712
Patch

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

&gt; Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.cpp:305
&gt; +    if (m_ongoingPushTasks.isEmpty())

It seems like we might be able to get away with just storing the number of ongoing tasks in a size_t instead of a HashMap of the CompletionHandlers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799208</commentid>
    <comment_count>5</comment_count>
      <attachid>439833</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-01 01:59:38 -0700</bug_when>
    <thetext>Created attachment 439833
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799556</commentid>
    <comment_count>6</comment_count>
      <attachid>439833</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-01 14:33:54 -0700</bug_when>
    <thetext>Comment on attachment 439833
Patch

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

r=me with fixes.

&gt; Source/WebCore/testing/ServiceWorkerInternals.cpp:60
&gt; +void ServiceWorkerInternals::schedulePushEvent(const std::optional&lt;String&gt;&amp; message, RefPtr&lt;DeferredPromise&gt;&amp;&amp; promise)

We never use std::optional&lt;String&gt; because String already has a null state (different than empty string).

The generated bindings code will pass you a null string if the parameter was omitted in JS, not std::nullopt, so this is wrong.

&gt; Source/WebCore/testing/ServiceWorkerInternals.cpp:66
&gt; +    if (message) {

if (!message.isNull())

&gt; Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:220
&gt; +        RELEASE_LOG(ServiceWorker, &quot;ServiceWorkerThread::queueTaskToFirePushEvent firing event for worker %llu&quot;, serviceWorkerGlobalScope-&gt;thread().identifier().toUInt64());

PRIu64 not %llu

&gt; Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.cpp:311
&gt; +            callOnMainRunLoop([this, protectedThis = WTFMove(protectedThis), identifier, result]() mutable {

We&apos;re in WebCore so we should use callOnMainThread() or postTaskToLoader().
ServiceWorkers are WebKit2 only but I remember we used to get tasks out of order by mixing callOnMainThread and callOnMainRunLoop (not sure if this is still the case nowadays).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799725</commentid>
    <comment_count>7</comment_count>
      <attachid>439961</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-02 03:45:00 -0700</bug_when>
    <thetext>Created attachment 439961
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799728</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-02 04:57:55 -0700</bug_when>
    <thetext>Committed r283438 (242425@main): &lt;https://commits.webkit.org/242425@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439961.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799732</commentid>
    <comment_count>9</comment_count>
    <who name="">collimarco91</who>
    <bug_when>2021-10-02 05:30:24 -0700</bug_when>
    <thetext>&quot;Status: RESOLVED FIXED&quot; ... Does this mean that Web Push Notifications will be finally available in Safari?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439712</attachid>
            <date>2021-09-30 02:46:13 -0700</date>
            <delta_ts>2021-10-01 01:59:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231008-20210930114611.patch</filename>
            <type>text/plain</type>
            <size>27405</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA1NGIzMWRjMmE1Mjgx
YzA5MzBkNTk0MWMxNDkwNzlkNTYxZTU2YS4uYWRlZjVmMjI2YmYwODY1YzVmZDE4YTQ5MzI4ODcz
NDFkMTU2Mzg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTA5LTMwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlIHB1c2ggZXZlbnQgaGFuZGxlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMDA4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGh0dHBzOi8vdzNj
LmdpdGh1Yi5pby9wdXNoLWFwaS8jcmVjZWl2aW5nLWEtcHVzaC1tZXNzYWdlIHN0ZXAgNi4KKyAg
ICAgICAgSW4gcGFydGljdWxhciB3ZSBlbnN1cmUgdGhhdCBpZiBhbnkgd2FpdFVudGlsIHByb21p
c2UgcmVqZWN0cywgdGhlIHB1c2ggZXZlbnQgaXMgY29uc2lkZXJlZCB0byBmYWlsLgorICAgICAg
ICBUaGlzIHN0YXR1cyBzaG91bGQgdGhlbiBiZSBzZW50IGJhY2sgdG8gdGhlIGVtaXRlciBvZiB0
aGUgcHVzaCBtZXNzYWdlIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGFja25vd2xlZGdlIHRoZSBtZXNz
YWdlLCByZXRyeSBpdCBvciBkaXNjYXJkIGl0LgorCisgICAgICAgIEFkZCBuZWNlc3NhcnkgaW50
ZXJuYWxzIEFQSSB0byBlbmFibGUgdGVzdGluZyB3aXRoaW4gdGhlIHNlcnZpY2Ugd29ya2VyIGl0
c2VsZi4KKworICAgICAgICBDb3ZlcmVkIGJ5IGFkZGVkIHN1YnRlc3RzIGluIGh0dHAvd3B0L3Nl
cnZpY2Utd29ya2Vycy9wdXNoRXZlbnQuYW55LnNlcnZpY2V3b3JrZXIuaHRtbC4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoK
KyAgICAgICAgKiB0ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuY3BwOgorICAgICAgICAq
IHRlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvU2Vy
dmljZVdvcmtlckludGVybmFscy5pZGw6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1B1c2hF
dmVudElkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZS5pZGw6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU1dDb250ZXh0TWFuYWdlci5jcHA6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU1dDb250ZXh0TWFuYWdlci5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oOgorCiAyMDIxLTA5LTMwICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgUHVzaEV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggN2YyZjNmMTRjYzA0MjEwNzI5NjY3ZjJmYzhkOGM2ZjJiMjA2ZGYw
MS4uMTQ0YWQwODRmMzkwZTg5NzA0ZjFhMjUzNmYyYzE5MTYyMGNhNDdiMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE3OSw2
ICsxMTc5LDcgQEAKIAkJNDE4Rjg4MDUwRkY5NTdBRjAwODBGMDQ1IC8qIEpTQWJzdHJhY3RXb3Jr
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOEY4
ODAzMEZGOTU3QUUwMDgwRjA0NSAvKiBKU0Fic3RyYWN0V29ya2VyLmggKi87IH07CiAJCTQxOEZD
QkE4MjcwNEQwMjEwMEY5NkVDQSAvKiBQdXNoRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOEZDQkE1MjcwNEI3OTAwMEY5NkVDQSAvKiBQdXNo
RXZlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0MThGQ0JBOTI3MDREMDI5MDBGOTZFQ0EgLyogUHVzaEV2ZW50SW5pdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4RkNCQTMyNzA0Qjc4RjAwRjk2
RUNBIC8qIFB1c2hFdmVudEluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk0MThGQ0JBQjI3MDUwNzE2MDBGOTZFQ0EgLyogUHVzaEV2ZW50SWRl
bnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE4RkNCQUEyNzA1MDI3RjAwRjk2RUNBIC8qIFB1c2hFdmVudElkZW50aWZpZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTkwRjNBNTI0QTBC
NEVFMDA1MzFDNTcgLyogRnJhbWVSYXRlTW9uaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5MEYzQTMyNDlEMTUyODAwNTMxQzU3IC8qIEZyYW1l
UmF0ZU1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0MTkyNDI0OTIxMjdCOTNFMDA2MzRGQ0YgLyogUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTkyNDI0NzIxMjdCN0NDMDA2MzRGQ0YgLyogUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlQ29jb2EubW0gKi87IH07CiAJCTQxOUFDRjkyMUY5N0U3REEwMDlGMUE4MyAvKiBTZXJ2aWNl
V29ya2VyRmV0Y2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxOUFDRjhFMUY5N0U3RDUwMDlGMUE4MyAvKiBTZXJ2aWNlV29ya2VyRmV0Y2guaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODExMCw2ICs4
MTExLDcgQEAKIAkJNDE4RkNCQTUyNzA0Qjc5MDAwRjk2RUNBIC8qIFB1c2hFdmVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQdXNoRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4
RkNCQTYyNzA0Qjg5QjAwRjk2RUNBIC8qIFB1c2hNZXNzYWdlRGF0YS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQdXNoTWVzc2FnZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4RkNC
QTcyNzA0Qjg5QjAwRjk2RUNBIC8qIFB1c2hNZXNzYWdlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBQdXNoTWVzc2FnZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MThGQ0JBQTI3MDUwMjdGMDBGOTZFQ0EgLyogUHVzaEV2ZW50SWRlbnRpZmllci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQdXNoRXZlbnRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxOTBGM0ExMjQ5RDE1MjcwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYW1lUmF0ZU1vbml0b3IuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTkwRjNBMzI0OUQxNTI4MDA1MzFDNTcgLyog
RnJhbWVSYXRlTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFt
ZVJhdGVNb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOTI0MjQ3MjEy
N0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA5NTAsNiAr
MjA5NTIsNyBAQAogCQkJCTQxOEZDQkE0MjcwNEI3OEYwMEY5NkVDQSAvKiBQdXNoRXZlbnQuY3Bw
ICovLAogCQkJCTQxOEZDQkE1MjcwNEI3OTAwMEY5NkVDQSAvKiBQdXNoRXZlbnQuaCAqLywKIAkJ
CQk0MThGQ0I5RjI3MDRCNkFFMDBGOTZFQ0EgLyogUHVzaEV2ZW50LmlkbCAqLywKKwkJCQk0MThG
Q0JBQTI3MDUwMjdGMDBGOTZFQ0EgLyogUHVzaEV2ZW50SWRlbnRpZmllci5oICovLAogCQkJCTQx
OEZDQkEzMjcwNEI3OEYwMEY5NkVDQSAvKiBQdXNoRXZlbnRJbml0LmggKi8sCiAJCQkJNDE4RkNC
QTIyNzA0QjZGMTAwRjk2RUNBIC8qIFB1c2hFdmVudEluaXQuaWRsICovLAogCQkJCTQxOEZDQkE3
MjcwNEI4OUIwMEY5NkVDQSAvKiBQdXNoTWVzc2FnZURhdGEuY3BwICovLApAQCAtMzI5MjcsNiAr
MzI5MzAsNyBAQAogCQkJCUNEM0UyMUREMjE4MzQ0NEEwMEU2NkY1NSAvKiBJbWFnZUJ1ZmZlclV0
aWxpdGllc0NHLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzc5NzkxQTBENkI5RDBDMDAzODUxQjkg
LyogSW1hZ2VEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0EwODhGNTI2NEUxQzA4MDAzRTJB
NkMgLyogSW1hZ2VEYXRhU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxOEZDQkFCMjcw
NTA3MTYwMEY5NkVDQSAvKiBQdXNoRXZlbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRDE5RkVBODFGNTczOTcyMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDRDE5RkVBRTFGNTc0QjZEMDAwQzQyRkIgLyogSW1hZ2VEZWNvZGVyQVZGT2JqQy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTU1Qjg3RUQxQ0FBRjBBQjAwMzQ5NDI1IC8qIEltYWdlRGVj
b2RlckNHLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCAwOWIyM2U1MzE5YjM1MTM5Nzk4NGY5NWY5M2Ez
YTliMzRlYzM5N2RkLi5lODM1ZGY3ZmYwYjIyMGRlYmEwNThmZDNhODRkZjVkMmMyNTEzOTVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5o
CkBAIC00MDIsNyArNDAyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKG1ha2VU
aGlzVHlwZUVycm9yKSBcCiAgICAgbWFjcm8obWF0Y2hpbmdFbGVtZW50SW5GbGF0VHJlZSkgXAog
ICAgIG1hY3JvKG1lZGlhU3RyZWFtVHJhY2tDb25zdHJhaW50cykgXAotICAgIG1hY3JvKG9wZW5E
YXRhYmFzZSkgXAorICAgIG1hY3JvKG9ucHVzaCkgXAogICAgIG1hY3JvKG9ucnRjdHJhbnNmb3Jt
KSBcCiAgICAgbWFjcm8ob250b3VjaGNhbmNlbCkgXAogICAgIG1hY3JvKG9udG91Y2hlbmQpIFwK
QEAgLTQxNyw2ICs0MTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8ob252cmRp
c3BsYXlkaXNjb25uZWN0KSBcCiAgICAgbWFjcm8ob252cmRpc3BsYXlmb2N1cykgXAogICAgIG1h
Y3JvKG9udnJkaXNwbGF5cHJlc2VudGNoYW5nZSkgXAorICAgIG1hY3JvKG9wZW5EYXRhYmFzZSkg
XAogICAgIG1hY3JvKG9wZW5lcikgXAogICAgIG1hY3JvKG9wZXJhdGlvbnMpIFwKICAgICBtYWNy
byhvd25lclJlYWRhYmxlU3RyZWFtKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCAxNjFl
MTZmMmVkZTA4MDE1OGZjYjNhNDIzMjhkOWI3MWI1OWMzOWIyLi5lMWZhNGQzOWMxYzdjNTliNTAw
MzZmNjBlYTQ4ZmIxYTAxZTk5ZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTIyMSw2
ICsyMjEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8ocHJldmlvdXN0cmFjaykg
XAogICAgIG1hY3JvKHByb2Nlc3NvcmVycm9yKSBcCiAgICAgbWFjcm8ocHJvZ3Jlc3MpIFwKKyAg
ICBtYWNybyhwdXNoKSBcCiAgICAgbWFjcm8ocmF0ZWNoYW5nZSkgXAogICAgIG1hY3JvKHJlYWR5
c3RhdGVjaGFuZ2UpIFwKICAgICBtYWNybyhyZWplY3Rpb25oYW5kbGVkKSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmNwcAppbmRleCAzNWVk
YjYyYzY5MzM0YThjOTI3YzUxY2ZhZTE1NjEwMGMzODM0NTRkLi45MWQ4ZjQ0ZjI2OWMyNDRjMThj
NzBjZmNjNjU4ZTViOGE3Yzg0NWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
U2VydmljZVdvcmtlckludGVybmFscy5jcHAKQEAgLTU3LDYgKzU3LDMwIEBAIHZvaWQgU2Vydmlj
ZVdvcmtlckludGVybmFsczo6dGVybWluYXRlKCkKICAgICB9KTsKIH0KIAordm9pZCBTZXJ2aWNl
V29ya2VySW50ZXJuYWxzOjpzY2hlZHVsZVB1c2hFdmVudChjb25zdCBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4mIG1lc3NhZ2UsIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3sKKyAg
ICBhdXRvIGNvdW50ZXIgPSArK21fcHVzaEV2ZW50Q291bnRlcjsKKyAgICBtX3B1c2hFdmVudFBy
b21pc2VzLmFkZChjb3VudGVyLCBXVEZNb3ZlKHByb21pc2UpKTsKKworICAgIHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPHVpbnQ4X3Q+PiBkYXRhOworICAgIGlmIChtZXNzYWdlKSB7CisgICAgICAgIGF1
dG8gdXRmOCA9IG1lc3NhZ2UtPnV0ZjgoKTsKKyAgICAgICAgZGF0YSA9IFZlY3Rvcjx1aW50OF90
PiB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHV0ZjguZGF0YSgpKSwgdXRmOC5s
ZW5ndGgoKX07CisgICAgfQorICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBtX2lk
ZW50aWZpZXIsIGRhdGEgPSBXVEZNb3ZlKGRhdGEpLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRo
aXMpLCBjb3VudGVyXSgpIG11dGFibGUgeworICAgICAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5n
bGV0b24oKS5maXJlUHVzaEV2ZW50KGlkZW50aWZpZXIsIFB1c2hFdmVudElkZW50aWZpZXI6Omdl
bmVyYXRlKCksIFdURk1vdmUoZGF0YSksIFtpZGVudGlmaWVyLCB3ZWFrVGhpcyA9IFdURk1vdmUo
d2Vha1RoaXMpLCBjb3VudGVyXShib29sIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICBp
ZiAoYXV0byogcHJveHkgPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS53b3JrZXJCeUlE
KGlkZW50aWZpZXIpKSB7CisgICAgICAgICAgICAgICAgcHJveHktPnRocmVhZCgpLnJ1bkxvb3Ao
KS5wb3N0VGFza0Zvck1vZGUoW3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGNvdW50ZXIs
IHJlc3VsdF0oYXV0byYpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1
dG8gcHJvbWlzZSA9IHdlYWtUaGlzLT5tX3B1c2hFdmVudFByb21pc2VzLnRha2UoY291bnRlcikp
CisgICAgICAgICAgICAgICAgICAgICAgICBwcm9taXNlLT5yZXNvbHZlPElETEJvb2xlYW4+KHJl
c3VsdCk7CisgICAgICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0pOworfQorCiB2b2lkIFNlcnZpY2VX
b3JrZXJJbnRlcm5hbHM6OndhaXRGb3JGZXRjaEV2ZW50VG9GaW5pc2goRmV0Y2hFdmVudCYgZXZl
bnQsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmV0Y2hSZXNwb25zZT4+JiYgcHJv
bWlzZSkKIHsKICAgICBldmVudC5vblJlc3BvbnNlKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KSwgZXZlbnQgPSBSZWYgeyBldmVudCB9XSAoYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuaCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5oCmluZGV4IDMz
N2U2YTdkMzkzZTMwMGI2YmRmZjYwZjk2OWI4ZmY1ZDgxZDgzMDkuLmZmZjcyMGQ3NzUyMjgzMTIx
NTRhMmM1ODk0OGI4N2E2OTlkOGY1ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvU2VydmljZVdvcmtlckludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
U2VydmljZVdvcmtlckludGVybmFscy5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICBS
ZWY8RmV0Y2hFdmVudD4gY3JlYXRlQmVpbmdEaXNwYXRjaGVkRmV0Y2hFdmVudChTY3JpcHRFeGVj
dXRpb25Db250ZXh0Jik7CiAgICAgUmVmPEZldGNoUmVzcG9uc2U+IGNyZWF0ZU9wYXF1ZVdpdGhC
bG9iQm9keVJlc3BvbnNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIAorICAgIHZvaWQgc2No
ZWR1bGVQdXNoRXZlbnQoY29uc3Qgc3RkOjpvcHRpb25hbDxTdHJpbmc+JiwgUmVmUHRyPERlZmVy
cmVkUHJvbWlzZT4mJik7CiAgICAgVmVjdG9yPFN0cmluZz4gZmV0Y2hSZXNwb25zZUhlYWRlckxp
c3QoRmV0Y2hSZXNwb25zZSYpOwogCiAgICAgU3RyaW5nIHByb2Nlc3NOYW1lKCkgY29uc3Q7CkBA
IC02Nyw2ICs2OCw4IEBAIHByaXZhdGU6CiAKICAgICBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBt
X2lkZW50aWZpZXI7CiAgICAgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4gbV9sYXN0TmF2aWdhdGlv
bldhc0FwcEluaXRpYXRlZFByb21pc2U7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPERl
ZmVycmVkUHJvbWlzZT4+IG1fcHVzaEV2ZW50UHJvbWlzZXM7CisgICAgdWludDY0X3QgbV9wdXNo
RXZlbnRDb3VudGVyIHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5pZGwKaW5kZXgg
OTQ4NGI3NjIxZmNmMWZhZWNmZDVjNTM5NDZhNmU1ODRlMjk1NzUzOS4uOGQxOTE0YjNhNTg5MGE0
NmVhZDQ0ZWQ2OTY4YTdmNGJkNmRiNGY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuaWRsCkBAIC0zOCw2ICszOCw4IEBACiAKICAgICBz
ZXF1ZW5jZTxCeXRlU3RyaW5nPiBmZXRjaFJlc3BvbnNlSGVhZGVyTGlzdChGZXRjaFJlc3BvbnNl
IHJlc3BvbnNlKTsKIAorICAgIFByb21pc2U8Ym9vbGVhbj4gc2NoZWR1bGVQdXNoRXZlbnQob3B0
aW9uYWwgRE9NU3RyaW5nIGRhdGEpOworCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBwcm9jZXNzTmFtZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc1Rocm90dGxl
YWJsZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1B1c2hF
dmVudElkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9QdXNoRXZl
bnRJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGUxMmJjMjJjMDU0ZDcxYTBkMWJjMGQxMWZmMDUy
YjkzMTQ1ODc1YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9QdXNoRXZlbnRJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSA8
d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFB1
c2hFdmVudElkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFB1c2hFdmVudElkZW50aWZpZXIgPSBP
YmplY3RJZGVudGlmaWVyPFB1c2hFdmVudElkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlLmlkbAppbmRleCA0ZjkxN2M3NzdjMWVmODhlMDRhYzg0Yzc1YzI4ZjQyYWI3NmRhZmUw
Li4yOTE1NDc1ZTEzYjdlZTYwNGViODhjNGU2MDM1MTM0ZjZlZDc2ZjE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlLmlkbApAQCAtNDEsNiArNDEsNyBAQAogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIg
b25pbnN0YWxsOwogICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25hY3RpdmF0ZTsKICAgICBh
dHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9uZmV0Y2g7CisgICAgW0VuYWJsZWRBdFJ1bnRpbWU9U2Vy
dmljZVdvcmtlclB1c2hBUEldIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25wdXNoOwogCiAgICAg
Ly8gZXZlbnQKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ubWVzc2FnZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0
TWFuYWdlci5jcHAKaW5kZXggOGI1NDBjNTc3YjZiZDhmMjFmN2UxNDI1NmQzMGM4MDgyZjFlY2Q1
Ny4uMDAyMTFkOGQyOGUyYWY5YmE2ZTUwYTEwNDE4MzE1NzQ2Zjg4ODBiZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0
TWFuYWdlci5jcHAKQEAgLTEwOSw2ICsxMDksMTYgQEAgdm9pZCBTV0NvbnRleHRNYW5hZ2VyOjpm
aXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQogICAg
IHNlcnZpY2VXb3JrZXItPmZpcmVBY3RpdmF0ZUV2ZW50KCk7CiB9CiAKK3ZvaWQgU1dDb250ZXh0
TWFuYWdlcjo6ZmlyZVB1c2hFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVy
LCBQdXNoRXZlbnRJZGVudGlmaWVyIGV2ZW50SWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxWZWN0
b3I8dWludDhfdD4+JiYgZGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxs
YmFjaykKK3sKKyAgICBhdXRvKiBzZXJ2aWNlV29ya2VyID0gbV93b3JrZXJNYXAuZ2V0KGlkZW50
aWZpZXIpOworICAgIGlmICghc2VydmljZVdvcmtlcikKKyAgICAgICAgcmV0dXJuOworCisgICAg
c2VydmljZVdvcmtlci0+ZmlyZVB1c2hFdmVudChldmVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0
YSksIFdURk1vdmUoY2FsbGJhY2spKTsKK30KKworCiB2b2lkIFNXQ29udGV4dE1hbmFnZXI6OnRl
cm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBTZWNvbmRz
IHRpbWVvdXQsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBh
dXRvIHNlcnZpY2VXb3JrZXIgPSBtX3dvcmtlck1hcC50YWtlKGlkZW50aWZpZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFu
YWdlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0
TWFuYWdlci5oCmluZGV4IDE5MTA1MjdhY2QwOTJiNjIzOGUwYjkwZWE4MjAzOGYyMjJkZDMyYTku
LmYxYzNiYWUzMGFjZjU0M2QwZDg3ZDg4ZjM1MWYzMTQ1MDZkNDY1YjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5h
Z2VyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNp
bmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIlB1c2hFdmVudElkZW50aWZpZXIuaCIK
ICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VX
b3JrZXJDbGllbnRRdWVyeU9wdGlvbnMuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySWRlbnRp
Zmllci5oIgpAQCAtOTAsNiArOTEsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0
aW5hdGlvbiwgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgU2VydmljZVdvcmtlck9yQ2xpZW50
RGF0YSYmIHNvdXJjZURhdGEpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmlyZUluc3RhbGxF
dmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBm
aXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBmaXJlUHVzaEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBQdXNoRXZl
bnRJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4mJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJik7CisKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHRlcm1p
bmF0ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2Vjb25kcyB0aW1lb3V0LCBGdW5j
dGlvbjx2b2lkKCk+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkU2F2ZVNjcmlwdHNU
b0Rpc2soU2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNjcmlwdEJ1ZmZlciYmLCBIYXNoTWFwPFVS
TCwgU2NyaXB0QnVmZmVyPiYmIGltcG9ydGVkU2NyaXB0cyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZC5jcHAKaW5kZXggZTcxNDYwM2YzNTY0MDkxOGFlMDZhOWFmYTkxZjgxOTc3ZDU3YTM2YS4u
ZjM5NTNiMWUwZDU2ZDQ3MTM2MWM3MGZjMTdhNjY2MjNjNDJjMTc1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJMb2FkZXJTdHJhdGVn
eS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aCIKKyNpbmNsdWRlICJQdXNoRXZlbnQuaCIKICNpbmNsdWRlICJTV0NvbnRleHRNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0
Y2guaCIKQEAgLTIxMiw2ICsyMTMsMjggQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpxdWV1
ZVRhc2tUb0ZpcmVBY3RpdmF0ZUV2ZW50KCkKICAgICB9KTsKIH0KIAordm9pZCBTZXJ2aWNlV29y
a2VyVGhyZWFkOjpxdWV1ZVRhc2tUb0ZpcmVQdXNoRXZlbnQoc3RkOjpvcHRpb25hbDxWZWN0b3I8
dWludDhfdD4+JiYgZGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFj
aykKK3sKKyAgICBSZWYgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8U2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlPigqZ2xvYmFsU2NvcGUoKSk7CisgICAgc2VydmljZVdvcmtlckds
b2JhbFNjb3BlLT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0
aW9uLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgc2VydmljZVdvcmtlckdsb2JhbFNj
b3BlLCBkYXRhID0gV1RGTW92ZShkYXRhKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0o
KSBtdXRhYmxlIHsKKyAgICAgICAgUkVMRUFTRV9MT0coU2VydmljZVdvcmtlciwgIlNlcnZpY2VX
b3JrZXJUaHJlYWQ6OnF1ZXVlVGFza1RvRmlyZVB1c2hFdmVudCBmaXJpbmcgZXZlbnQgZm9yIHdv
cmtlciAlbGx1Iiwgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLT50aHJlYWQoKS5pZGVudGlmaWVy
KCkudG9VSW50NjQoKSk7CisKKyAgICAgICAgYXV0byBwdXNoRXZlbnQgPSBQdXNoRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkucHVzaEV2ZW50LCB7IH0sIFdURk1vdmUoZGF0YSksIEV4dGVuZGFi
bGVFdmVudDo6SXNUcnVzdGVkOjpZZXMpOworICAgICAgICBzZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUtPmRpc3BhdGNoRXZlbnQocHVzaEV2ZW50KTsKKworICAgICAgICBwdXNoRXZlbnQtPndoZW5B
bGxFeHRlbmRMaWZldGltZVByb21pc2VzQXJlU2V0dGxlZChbd2Vha1RoaXMgPSBXVEZNb3ZlKHdl
YWtUaGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIGV4dGVuZExpZmV0
aW1lUHJvbWlzZXMpIG11dGFibGUgeworICAgICAgICAgICAgYm9vbCBoYXNSZWplY3RlZEFueVBy
b21pc2UgPSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoYXV0byYgcHJvbWlzZSA6IGV4dGVuZExp
ZmV0aW1lUHJvbWlzZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAocHJvbWlzZS0+c3RhdHVzKCkg
PT0gRE9NUHJvbWlzZTo6U3RhdHVzOjpSZWplY3RlZCkgeworICAgICAgICAgICAgICAgICAgICBo
YXNSZWplY3RlZEFueVByb21pc2UgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYWxsYmFjaygh
aGFzUmVqZWN0ZWRBbnlQcm9taXNlKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKIHZvaWQg
U2VydmljZVdvcmtlclRocmVhZDo6ZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCkKIHsKICAgICBB
U1NFUlQoZ2xvYmFsU2NvcGUoKS0+aXNDb250ZXh0VGhyZWFkKCkpOwpAQCAtMjQ0LDYgKzI2Nywx
MiBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnN0YXJ0RmV0Y2hFdmVudE1vbml0b3Jpbmco
KQogICAgIHN0YXJ0SGVhcnRCZWF0VGltZXIoKTsKIH0KIAordm9pZCBTZXJ2aWNlV29ya2VyVGhy
ZWFkOjpzdGFydFB1c2hFdmVudE1vbml0b3JpbmcoKQoreworICAgIG1faXNIYW5kbGluZ1B1c2hF
dmVudCA9IHRydWU7CisgICAgc3RhcnRIZWFydEJlYXRUaW1lcigpOworfQorCiB2b2lkIFNlcnZp
Y2VXb3JrZXJUaHJlYWQ6OnN0YXJ0SGVhcnRCZWF0VGltZXIoKQogewogICAgIC8vIFdlIGNhbm5v
dCBkZXRlY3QgcmVzcG9uc2l2ZW5lc3MgZm9yIHNlcnZpY2Ugd29ya2VycyBydW5uaW5nIG9uIHRo
ZSBtYWluIHRocmVhZCBieSB1c2luZyBhIG1haW4gdGhyZWFkIHRpbWVyLgpAQCAtMjY2LDcgKzI5
NSw3IEBAIHZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6c3RhcnRIZWFydEJlYXRUaW1lcigpCiB2
b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OmhlYXJ0QmVhdFRpbWVyRmlyZWQoKQogewogICAgIGlm
ICghbV9vbmdvaW5nSGVhcnRCZWF0Q2hlY2spIHsKLSAgICAgICAgaWYgKG1fc3RhdGUgPT0gU3Rh
dGU6Okluc3RhbGxpbmcgfHwgbV9zdGF0ZSA9PSBTdGF0ZTo6QWN0aXZhdGluZyB8fCBtX2lzSGFu
ZGxpbmdGZXRjaEV2ZW50IHx8IG1fbWVzc2FnZUV2ZW50Q291bnQpCisgICAgICAgIGlmIChtX3N0
YXRlID09IFN0YXRlOjpJbnN0YWxsaW5nIHx8IG1fc3RhdGUgPT0gU3RhdGU6OkFjdGl2YXRpbmcg
fHwgbV9pc0hhbmRsaW5nRmV0Y2hFdmVudCB8fCBtX2lzSGFuZGxpbmdQdXNoRXZlbnQgfHwgbV9t
ZXNzYWdlRXZlbnRDb3VudCkKICAgICAgICAgICAgIHN0YXJ0SGVhcnRCZWF0VGltZXIoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaAppbmRleCAyMTgyOTU1
N2MwNjQ0YjQ3MGFmMGI3MTg5YTBkNWZiYjQ2Zjg3MGViLi4yZjkyMDNjYWFhYzJmY2E2NWYxOWM3
NmQ2YThhMzU3Mzk1MjcxNDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCkBAIC02Niw2ICs2
Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHF1ZXVlVGFza1RvUG9zdE1lc3NhZ2UoTWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHMmJiwgU2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEp
OwogICAgIHZvaWQgcXVldWVUYXNrVG9GaXJlSW5zdGFsbEV2ZW50KCk7CiAgICAgdm9pZCBxdWV1
ZVRhc2tUb0ZpcmVBY3RpdmF0ZUV2ZW50KCk7CisgICAgdm9pZCBxdWV1ZVRhc2tUb0ZpcmVQdXNo
RXZlbnQoc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+JiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOwogCiAgICAgU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXI7IH0KICAgICBzdGQ6
Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4gam9iRGF0YUlkZW50aWZp
ZXIoKSBjb25zdCB7IHJldHVybiBtX2pvYkRhdGFJZGVudGlmaWVyOyB9CkBAIC03Myw2ICs3NCw4
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3RhcnRGZXRjaEV2ZW50TW9uaXRvcmluZygpOwogICAg
IHZvaWQgc3RvcEZldGNoRXZlbnRNb25pdG9yaW5nKCkgeyBtX2lzSGFuZGxpbmdGZXRjaEV2ZW50
ID0gZmFsc2U7IH0KKyAgICB2b2lkIHN0YXJ0UHVzaEV2ZW50TW9uaXRvcmluZygpOworICAgIHZv
aWQgc3RvcFB1c2hFdmVudE1vbml0b3JpbmcoKSB7IG1faXNIYW5kbGluZ1B1c2hFdmVudCA9IGZh
bHNlOyB9CiAKIHByb3RlY3RlZDoKICAgICBSZWY8V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdv
cmtlckdsb2JhbFNjb3BlKGNvbnN0IFdvcmtlclBhcmFtZXRlcnMmLCBSZWY8U2VjdXJpdHlPcmln
aW4+JiYsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4pIGZpbmFsOwpAQCAtMTAxLDYg
KzEwNCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RvZXNIYW5kbGVGZXRjaCB7IGZhbHNlIH07
CiAKICAgICBib29sIG1faXNIYW5kbGluZ0ZldGNoRXZlbnQgeyBmYWxzZSB9OworICAgIGJvb2wg
bV9pc0hhbmRsaW5nUHVzaEV2ZW50IHsgZmFsc2UgfTsKICAgICB1aW50NjRfdCBtX21lc3NhZ2VF
dmVudENvdW50IHsgMCB9OwogICAgIGVudW0gY2xhc3MgU3RhdGUgeyBJZGxlLCBTdGFydGluZywg
SW5zdGFsbGluZywgQWN0aXZhdGluZyB9OwogICAgIFN0YXRlIG1fc3RhdGUgeyBTdGF0ZTo6SWRs
ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKaW5kZXggNDFiNmYyNTFm
NTQyNDY0YjU1ZTRlYTU1ODY1NTdkZTExMDU1MWRiNy4uN2IyOWZhYzgxZGM2ODk4MTUwODZmMTRi
N2Y4YjQ5NzE5YjQwYTBjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3Bw
CkBAIC0xMjIsNiArMTIyLDEwIEBAIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6flNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eSgpCiB7CiAgICAgQVNTRVJUKGFsbFNlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94aWVzKCkuY29udGFpbnModGhpcykpOwogICAgIGFsbFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94
aWVzKCkucmVtb3ZlKHRoaXMpOworCisgICAgYXV0byBwdXNoVGFza3MgPSBXVEZNb3ZlKG1fb25n
b2luZ1B1c2hUYXNrcyk7CisgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IHB1c2hUYXNrcy52YWx1
ZXMoKSkKKyAgICAgICAgY2FsbGJhY2soZmFsc2UpOwogfQogCiB2b2lkIFNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eTo6c2V0TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoYm9vbCB3YXNBcHBJ
bml0aWF0ZWQpCkBAIC0yOTQsNiArMjk4LDI5IEBAIHZvaWQgU2VydmljZVdvcmtlclRocmVhZFBy
b3h5OjpkaWRTYXZlU2NyaXB0c1RvRGlzayhTY3JpcHRCdWZmZXImJiBzY3JpcHQsIEhhc2hNCiAg
ICAgfSk7CiB9CiAKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpmaXJlUHVzaEV2ZW50
KFB1c2hFdmVudElkZW50aWZpZXIgcHVzaEV2ZW50SWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8dWludDhfdD4+JiYgZGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
YWxsYmFjaykKK3sKKyAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAiU2VydmljZVdvcmtl
clRocmVhZFByb3h5OjpmaXJlUHVzaEV2ZW50ICVsbHUiLCBwdXNoRXZlbnRJZGVudGlmaWVyLnRv
VUludDY0KCkpOworCisgICAgaWYgKG1fb25nb2luZ1B1c2hUYXNrcy5pc0VtcHR5KCkpCisgICAg
ICAgIHRocmVhZCgpLnN0YXJ0UHVzaEV2ZW50TW9uaXRvcmluZygpOworCisgICAgQVNTRVJUKCFt
X29uZ29pbmdQdXNoVGFza3MuY29udGFpbnMocHVzaEV2ZW50SWRlbnRpZmllcikpOworICAgIG1f
b25nb2luZ1B1c2hUYXNrcy5hZGQocHVzaEV2ZW50SWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFj
aykpOworICAgIGJvb2wgaXNQb3N0ZWQgPSBwb3N0VGFza0Zvck1vZGVUb1dvcmtlck9yV29ya2xl
dEdsb2JhbFNjb3BlKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcHVzaEV2
ZW50SWRlbnRpZmllciwgZGF0YSA9IFdURk1vdmUoZGF0YSldKGF1dG8mKSBtdXRhYmxlIHsKKyAg
ICAgICAgdGhyZWFkKCkucXVldWVUYXNrVG9GaXJlUHVzaEV2ZW50KFdURk1vdmUoZGF0YSksIFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgcHVzaEV2ZW50SWRl
bnRpZmllcl0oYm9vbCByZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgY2FsbE9uTWFpblJ1
bkxvb3AoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBwdXNo
RXZlbnRJZGVudGlmaWVyLCByZXN1bHRdKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYg
KGF1dG8gY2FsbGJhY2sgPSBtX29uZ29pbmdQdXNoVGFza3MudGFrZShwdXNoRXZlbnRJZGVudGlm
aWVyKSkKKyAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2socmVzdWx0KTsKKyAgICAgICAgICAg
ICAgICBpZiAobV9vbmdvaW5nUHVzaFRhc2tzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAg
ICAgdGhyZWFkKCkuc3RvcFB1c2hFdmVudE1vbml0b3JpbmcoKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9KTsKKyAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICBp
ZiAoIWlzUG9zdGVkKQorICAgICAgICBtX29uZ29pbmdQdXNoVGFza3MudGFrZShwdXNoRXZlbnRJ
ZGVudGlmaWVyKShmYWxzZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5
LmgKaW5kZXggMzA0M2RiMTNmMDY3NWI5YmNkYjViNjM4MmY0ZDgyOTkwYzZlMzMwYy4uNTNkMzI0
MTg4NDhlZjY1Y2RhOTk2NWU5NzM3ODY3ODVhMDNjNzJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZFByb3h5LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkZldGNoSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRl
ICJQdXNoRXZlbnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckRlYnVnZ2Fi
bGUuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5oIgpAQCAtODAsNiArODEsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0
cyYmLCBTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJiYpOwogICAgIHZvaWQgZmlyZUluc3RhbGxF
dmVudCgpOwogICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoKTsKKyAgICB2b2lkIGZpcmVQdXNo
RXZlbnQoUHVzaEV2ZW50SWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworCiAgICAgdm9pZCBkaWRTYXZl
U2NyaXB0c1RvRGlzayhTY3JpcHRCdWZmZXImJiwgSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4m
JiBpbXBvcnRlZFNjcmlwdHMpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRMYXN0TmF2
aWdhdGlvbldhc0FwcEluaXRpYXRlZChib29sKTsKQEAgLTExMiw2ICsxMTUsNyBAQCBwcml2YXRl
OgogCiAgICAgU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5IG1faW5zcGVjdG9yUHJveHk7CiAg
ICAgSGFzaE1hcDxzdGQ6OnBhaXI8U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJ
ZGVudGlmaWVyPiwgUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50Pj4gbV9vbmdvaW5nRmV0
Y2hUYXNrczsKKyAgICBIYXNoTWFwPFB1c2hFdmVudElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+PiBtX29uZ29pbmdQdXNoVGFza3M7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBlMmEzZTdlNTJjYTU4YWM3YWQyMzdlZGFkYWUzNDU1ZDI2ZTU2MmI3
Li43MWEwOWZiYjU2YTIyNzQ1OGUyZTQ4Yjk4MTYzMDI3YWY3NzljYWQ4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMjEtMDktMzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgcHVzaCBl
dmVudCBoYW5kbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzEwMDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wdXNoRXZlbnQuYW55LmpzOgorICAgICAg
ICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wdXNoRXZlbnQuYW55LnNlcnZpY2V3b3JrZXIt
ZXhwZWN0ZWQudHh0OgorCiAyMDIxLTA5LTMwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgUHVzaEV2ZW50CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcHVzaEV2ZW50LmFueS5qcyBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wdXNoRXZlbnQuYW55LmpzCmluZGV4
IDgzZDNhNDQzYmJlMTA5NjI3MzI0YjQ4MGEwM2QzMGI1YjQ3YTc0YzcuLjBiZTU3ZWZkNzZjYzhk
YWNiOGQ3Mjc2ZGRmN2RhZWU2N2Y4Yzc0YmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9wdXNoRXZlbnQuYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wdXNoRXZlbnQuYW55LmpzCkBAIC00MCwzICs0MCw1MyBA
QCB0ZXN0KCgpID0+IHsKICAgICBjb25zdCBldmVudCA9IG5ldyBQdXNoRXZlbnQoInB1c2giLCB7
IGRhdGEgOiAie3Rlc3QgOiAxfSIgfSk7CiAgICAgYXNzZXJ0X3Rocm93c19kb20oIlN5bnRheEVy
cm9yIiwgKCkgPT4gZXZlbnQuZGF0YS5qc29uKCkpOwogfSwgIlB1c2hFdmVudCB3aXRoIGJhZCBq
c29uIik7CisKK2xldCBhY3RpdmF0ZVByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNl
bGYub25hY3RpdmF0ZSA9IHJlc29sdmUpOworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAg
IHJldHVybiBhY3RpdmF0ZVByb21pc2U7Cit9LCAiV2FpdCBmb3IgYWN0aXZhdGUgcHJvbWlzZSIp
OworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAgIGNvbnN0IHByb21pc2UgPSBzZWxm
LmludGVybmFscy5zY2hlZHVsZVB1c2hFdmVudCgidGVzdCIpOworICAgIGNvbnN0IGV2ZW50ID0g
YXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZWxmLm9ucHVzaCA9IHJlc29sdmUpOworICAg
IGFzc2VydF9lcXVhbHMoZXZlbnQuZGF0YS50ZXh0KCksICJ0ZXN0Iik7CisgICAgYXNzZXJ0X3Ry
dWUoYXdhaXQgcHJvbWlzZSk7Cit9LCAiU2ltdWxhdGluZyBmaXJpbmcgb2YgYSBwdXNoIGV2ZW50
Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAgaWYgKCFzZWxmLmludGVybmFs
cykKKyAgICAgICAgcmV0dXJuOworCisgICAgbGV0IHJlc29sdmVXYWl0VW50aWxQcm9taXNlOwor
ICAgIGNvbnN0IHdhaXRVbnRpbFByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHJlc29s
dmVXYWl0VW50aWxQcm9taXNlID0gcmVzb2x2ZSk7CisKKyAgICBsZXQgaXNQdXNoRXZlbnRQcm9t
aXNlUmVzb2x2ZWQgPSBmYWxzZTsKKyAgICBjb25zdCBwcm9taXNlID0gaW50ZXJuYWxzLnNjaGVk
dWxlUHVzaEV2ZW50KCJ0ZXN0Iik7CisgICAgcHJvbWlzZS50aGVuKCgpID0+IGlzUHVzaEV2ZW50
UHJvbWlzZVJlc29sdmVkID0gdHJ1ZSk7CisKKyAgICBjb25zdCBldmVudCA9IGF3YWl0IG5ldyBQ
cm9taXNlKHJlc29sdmUgPT4gc2VsZi5vbnB1c2ggPSAoZXZlbnQpID0+IHsKKyAgICAgICAgZXZl
bnQud2FpdFVudGlsKHdhaXRVbnRpbFByb21pc2UpOworICAgICAgICByZXNvbHZlKGV2ZW50KTsK
KyAgICB9KTsKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LmRhdGEudGV4dCgpLCAidGVzdCIpOwor
CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZWxmLnNldFRpbWVvdXQocmVzb2x2
ZSwgMTAwKSk7CisgICAgYXNzZXJ0X2ZhbHNlKGlzUHVzaEV2ZW50UHJvbWlzZVJlc29sdmVkKTsK
KworICAgIHJlc29sdmVXYWl0VW50aWxQcm9taXNlKCk7CisgICAgYXNzZXJ0X3RydWUoYXdhaXQg
cHJvbWlzZSk7Cit9LCAiU2ltdWxhdGluZyBmaXJpbmcgb2YgYSBwdXNoIGV2ZW50IC0gc3VjY2Vz
c2Z1bCB3YWl0VW50aWwiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgICBpZiAo
IXNlbGYuaW50ZXJuYWxzKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBwcm9taXNlID0g
aW50ZXJuYWxzLnNjaGVkdWxlUHVzaEV2ZW50KCJ0ZXN0Iik7CisgICAgY29uc3QgZXZlbnQgPSBh
d2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNlbGYub25wdXNoID0gKGV2ZW50KSA9PiB7Cisg
ICAgICAgIGV2ZW50LndhaXRVbnRpbChQcm9taXNlLnJlc29sdmUoKSk7CisgICAgICAgIGV2ZW50
LndhaXRVbnRpbChQcm9taXNlLnJlamVjdCgnZXJyb3InKSk7CisgICAgICAgIHJlc29sdmUoZXZl
bnQpOworICAgIH0pOworICAgIGFzc2VydF9lcXVhbHMoZXZlbnQuZGF0YS50ZXh0KCksICJ0ZXN0
Iik7CisgICAgYXNzZXJ0X2ZhbHNlKGF3YWl0IHByb21pc2UpOworfSwgIlNpbXVsYXRpbmcgZmly
aW5nIG9mIGEgcHVzaCBldmVudCAtIHVuc3VjY2Vzc2Z1bCB3YWl0VW50aWwiKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9wdXNoRXZlbnQuYW55LnNl
cnZpY2V3b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL3B1c2hFdmVudC5hbnkuc2VydmljZXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggNDJi
NmI2Zjg0Njc1NjY1OTAwYmIyZDVmZjg4NjU3ZDJlNDUzNzNjZS4uNThmOTA0YTVmMmIzYTZjNjQ1
ZDgwNjc5ZWYwZWZiMDM1NjkxMzAwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL3B1c2hFdmVudC5hbnkuc2VydmljZXdvcmtlci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3B1c2hFdmVudC5hbnku
c2VydmljZXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTIsNCArMiw4IEBACiBQQVNTIFB1c2hFdmVu
dCB3aXRob3V0IGRhdGEKIFBBU1MgUHVzaEV2ZW50IHdpdGggZGF0YQogUEFTUyBQdXNoRXZlbnQg
d2l0aCBiYWQganNvbgorUEFTUyBXYWl0IGZvciBhY3RpdmF0ZSBwcm9taXNlCitQQVNTIFNpbXVs
YXRpbmcgZmlyaW5nIG9mIGEgcHVzaCBldmVudAorUEFTUyBTaW11bGF0aW5nIGZpcmluZyBvZiBh
IHB1c2ggZXZlbnQgLSBzdWNjZXNzZnVsIHdhaXRVbnRpbAorUEFTUyBTaW11bGF0aW5nIGZpcmlu
ZyBvZiBhIHB1c2ggZXZlbnQgLSB1bnN1Y2Nlc3NmdWwgd2FpdFVudGlsCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439833</attachid>
            <date>2021-10-01 01:59:38 -0700</date>
            <delta_ts>2021-10-02 03:44:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231008-20211001105936.patch</filename>
            <type>text/plain</type>
            <size>31069</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQxYmU3OTAwMjRiOTJi
OGYyMDQ1YjY0MDc0MjQ2Mjk3N2YxNGI5ZS4uMjRlNzNhN2VhYmY5OGI1ODE4ZTA0NzlkNDRiZWY0
NDk3MmRmMDQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTEwLTAxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlIHB1c2ggZXZlbnQgaGFuZGxlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMDA4CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84MzcxMDc2MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbXBsZW1lbnQgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3B1c2gtYXBpLyNy
ZWNlaXZpbmctYS1wdXNoLW1lc3NhZ2Ugc3RlcCA2LgorICAgICAgICBJbiBwYXJ0aWN1bGFyIHdl
IGVuc3VyZSB0aGF0IGlmIGFueSB3YWl0VW50aWwgcHJvbWlzZSByZWplY3RzLCB0aGUgcHVzaCBl
dmVudCBpcyBjb25zaWRlcmVkIHRvIGZhaWwuCisgICAgICAgIFRoaXMgc3RhdHVzIHNob3VsZCB0
aGVuIGJlIHNlbnQgYmFjayB0byB0aGUgZW1pdGVyIG9mIHRoZSBwdXNoIG1lc3NhZ2UgdG8gZGVj
aWRlIHdoZXRoZXIgdG8gYWNrbm93bGVkZ2UgdGhlIG1lc3NhZ2UsIHJldHJ5IGl0IG9yIGRpc2Nh
cmQgaXQuCisKKyAgICAgICAgV2Uga2VlcCBwdXNoIEFQSSBjb21wbGV0aW9uIGhhbmRsZXIgaW4g
YSBtYXAgdG8gZW5zdXJlIHdlIHJlc3BvbmQgdG8gdGhlbSBldmVuIGlmIHRoZSBzZXJ2aWNlIHdv
cmtlciBnZXRzIHRlcm1pbmF0ZWQgd2hpbGUgcHJvY2Vzc2luZyB0aGUgcHVzaCBldmVudC4KKwor
ICAgICAgICBBZGQgbmVjZXNzYXJ5IGludGVybmFscyBBUEkgdG8gZW5hYmxlIHRlc3Rpbmcgd2l0
aGluIHRoZSBzZXJ2aWNlIHdvcmtlciBpdHNlbGYuCisKKyAgICAgICAgQ292ZXJlZCBieSBhZGRl
ZCBzdWJ0ZXN0cyBpbiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcHVzaEV2ZW50LmFueS5zZXJ2
aWNld29ya2VyLmh0bWwuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAg
ICAgICogTW9kdWxlcy9wdXNoLWFwaS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUrUHVzaEFQSS5p
ZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICog
ZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5h
bHMuY3BwOgorICAgICAgICAqIHRlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5oOgorICAg
ICAgICAqIHRlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5pZGw6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5jcHA6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5o
OgorCiAyMDIxLTEwLTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgc3VwcG9ydCBmb3IgUHVzaEV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDkw
OGQ4ZTJmYzAzMWE4MmVjMjk3ZjNiY2NjYjI4ZTc3OWRiNDllOGUuLjBhYzQyODgyMGZhNWY4OTA0
ZTc2NGIxMzAyYTc0ZDEwNmQxMjljYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MDEsNiAr
NTAxLDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3B1c2gt
YXBpL1B1c2hFdmVudC5pZGwKICAgICBNb2R1bGVzL3B1c2gtYXBpL1B1c2hFdmVudEluaXQuaWRs
CiAgICAgTW9kdWxlcy9wdXNoLWFwaS9QdXNoTWVzc2FnZURhdGEuaWRsCisgICAgTW9kdWxlcy9w
dXNoLWFwaS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUrUHVzaEFQSS5pZGwKIAogICAgIE1vZHVs
ZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaWRsCiAgICAgTW9kdWxlcy9yZW1vdGVw
bGF5YmFjay9SZW1vdGVQbGF5YmFja0F2YWlsYWJpbGl0eUNhbGxiYWNrLmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNDIyZWFhMGNl
YjY1NDU1OTZlNjI4N2NiYWM3YjdmYzNmNWZjNTZmMC4uOTgyZGZhNjM1ZTU2YWUyYmE5MzU1MjE5
ZDU4NmYyNzcwY2MzOWQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CkBAIC00MjQsNiArNDI0LDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmpzCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL3B1c2gtYXBpL1B1c2hFdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcHVz
aC1hcGkvUHVzaEV2ZW50SW5pdC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcHVzaC1hcGkv
UHVzaE1lc3NhZ2VEYXRhLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9wdXNoLWFwaS9TZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUrUHVzaEFQSS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
cmVtb3RlcGxheWJhY2svSFRNTE1lZGlhRWxlbWVudCtSZW1vdGVQbGF5YmFjay5pZGwKICQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaWRsCiAkKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrQXZhaWxhYmls
aXR5Q2FsbGJhY2suaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CmluZGV4IGEwODc0NTU4NDNiM2ZiN2ExMWNhMDdhODc4M2ZlZDBjOTM1OTFi
ZjQuLjI2Y2FmNTg2NDA1ODhlZjUzZmEzNDRiOTQxYTJhM2Q0YzQzNTJiNzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yMjI5LDYg
KzIyMjksOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNTZXJ2aWNlV29ya2VyQ2xpZW50cy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NlcnZpY2VX
b3JrZXJDb250YWluZXIuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUrUHVzaEFQSS5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlK1B1c2hBUEkuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NlcnZpY2VXb3JrZXJJ
bnRlcm5hbHMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA3YjJlZDQwOGM2
ZTQ5MWIwZmJlMTVkNDhkMmViNmViZTA5MmY0NmE1Li40MzE5MWI2YmU3NDNlNzY4ZWY1NTYyYTg3
YTMxODYzMThhMGNlMDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM0OSw2
ICszNDksNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9w
dXNoLWFwaS9QdXNoRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvcHVzaC1hcGkv
UHVzaEV2ZW50SW5pdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9wdXNoLWFwaS9QdXNo
TWVzc2FnZURhdGEuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvcHVzaC1hcGkvU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlK1B1c2hBUEkuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
cmVtb3RlcGxheWJhY2svSFRNTE1lZGlhRWxlbWVudCtSZW1vdGVQbGF5YmFjay5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFja0F2YWls
YWJpbGl0eUNhbGxiYWNrLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3B1c2gtYXBpL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZStQdXNoQVBJLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlK1B1c2hBUEku
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg0YWM1ZmMzOGMyZTAzZmQwYmE0OGVjNGE5YTAxM2JkMGI0NzhmMjUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZStQdXNoQVBJLmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9U2VydmljZVdvcmtlciwKKyAgICBJbXBsZW1l
bnRlZEJ5PVNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZVB1c2hBUEkKK10gcGFydGlhbCBpbnRlcmZh
Y2UgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIHsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVy
IG9ucHVzaDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggN2Q3NDFlYTZjYTIyODIwY2YyMmZhZjUyY2M0N2EyZWQyYzY2NThl
MS4uYjM1YjM0ODQ1Y2Q3ZmMwNjdjZjM2ODM0YjNjYjE5MTAxODIxZjRjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODExMCw2
ICs4MTEwLDkgQEAKIAkJNDE4RkNCQkYyNzA2RTRGODAwRjk2RUNBIC8qIFB1c2hFdmVudEluaXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUHVzaEV2ZW50SW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MThGQ0JDMDI3MDZFNEY4MDBGOTZFQ0EgLyogUHVzaEV2ZW50LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQ
dXNoRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MThGQ0JDMzI3MDZF
NjJDMDBGOTZFQ0EgLyogUHVzaEV2ZW50SW5pdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUHVzaEV2ZW50SW5pdC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxOEZDQkNCMjcwNkYzQ0QwMEY5NkVDQSAv
KiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUrUHVzaEFQSS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gIlNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZStQdXNoQVBJLmlkbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxOEZDQkNDMjcwNkY0MzQwMEY5NkVDQSAvKiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVQdXNo
QVBJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZVB1c2hBUEkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4RkNCQ0QyNzA2RjQzNDAwRjk2RUNBIC8q
IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZVB1c2hBUEkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlUHVzaEFQSS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxOTBGM0ExMjQ5RDE1MjcwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYW1lUmF0ZU1vbml0b3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTkwRjNBMzI0OUQxNTI4MDA1MzFD
NTcgLyogRnJhbWVSYXRlTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBGcmFtZVJhdGVNb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOTI0
MjQ3MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk4
NzQsNiArMTk4NzcsOSBAQAogCQkJCTQxOEZDQkJFMjcwNkU0RjcwMEY5NkVDQSAvKiBQdXNoTWVz
c2FnZURhdGEuY3BwICovLAogCQkJCTQxOEZDQkJDMjcwNkU0RjYwMEY5NkVDQSAvKiBQdXNoTWVz
c2FnZURhdGEuaCAqLywKIAkJCQk0MThGQ0JCQTI3MDZFNEY1MDBGOTZFQ0EgLyogUHVzaE1lc3Nh
Z2VEYXRhLmlkbCAqLywKKwkJCQk0MThGQ0JDQjI3MDZGM0NEMDBGOTZFQ0EgLyogU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlK1B1c2hBUEkuaWRsICovLAorCQkJCTQxOEZDQkNEMjcwNkY0MzQwMEY5
NkVDQSAvKiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVQdXNoQVBJLmNwcCAqLywKKwkJCQk0MThG
Q0JDQzI3MDZGNDM0MDBGOTZFQ0EgLyogU2VydmljZVdvcmtlckdsb2JhbFNjb3BlUHVzaEFQSS5o
ICovLAogCQkJKTsKIAkJCXBhdGggPSAicHVzaC1hcGkiOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaAppbmRleCAwOWIyM2U1MzE5YjM1MTM5Nzk4NGY5NWY5M2EzYTliMzRlYzM5N2RkLi5lODM1
ZGY3ZmYwYjIyMGRlYmEwNThmZDNhODRkZjVkMmMyNTEzOTVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC00MDIsNyArNDAyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKG1ha2VUaGlzVHlwZUVycm9yKSBcCiAg
ICAgbWFjcm8obWF0Y2hpbmdFbGVtZW50SW5GbGF0VHJlZSkgXAogICAgIG1hY3JvKG1lZGlhU3Ry
ZWFtVHJhY2tDb25zdHJhaW50cykgXAotICAgIG1hY3JvKG9wZW5EYXRhYmFzZSkgXAorICAgIG1h
Y3JvKG9ucHVzaCkgXAogICAgIG1hY3JvKG9ucnRjdHJhbnNmb3JtKSBcCiAgICAgbWFjcm8ob250
b3VjaGNhbmNlbCkgXAogICAgIG1hY3JvKG9udG91Y2hlbmQpIFwKQEAgLTQxNyw2ICs0MTcsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8ob252cmRpc3BsYXlkaXNjb25uZWN0KSBc
CiAgICAgbWFjcm8ob252cmRpc3BsYXlmb2N1cykgXAogICAgIG1hY3JvKG9udnJkaXNwbGF5cHJl
c2VudGNoYW5nZSkgXAorICAgIG1hY3JvKG9wZW5EYXRhYmFzZSkgXAogICAgIG1hY3JvKG9wZW5l
cikgXAogICAgIG1hY3JvKG9wZXJhdGlvbnMpIFwKICAgICBtYWNybyhvd25lclJlYWRhYmxlU3Ry
ZWFtKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCAxNjFlMTZmMmVkZTA4MDE1OGZjYjNh
NDIzMjhkOWI3MWI1OWMzOWIyLi5lMWZhNGQzOWMxYzdjNTliNTAwMzZmNjBlYTQ4ZmIxYTAxZTk5
ZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTIyMSw2ICsyMjEsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgbWFjcm8ocHJldmlvdXN0cmFjaykgXAogICAgIG1hY3JvKHByb2Nl
c3NvcmVycm9yKSBcCiAgICAgbWFjcm8ocHJvZ3Jlc3MpIFwKKyAgICBtYWNybyhwdXNoKSBcCiAg
ICAgbWFjcm8ocmF0ZWNoYW5nZSkgXAogICAgIG1hY3JvKHJlYWR5c3RhdGVjaGFuZ2UpIFwKICAg
ICBtYWNybyhyZWplY3Rpb25oYW5kbGVkKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmNwcAppbmRleCAzNWVkYjYyYzY5MzM0YThjOTI3YzUx
Y2ZhZTE1NjEwMGMzODM0NTRkLi5jMmZkNzk4Mjk5YTUyODIwOTM0NjRjNWVjOTcyZDg3NjAzOTc3
OGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRl
cm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvU2VydmljZVdvcmtlckludGVy
bmFscy5jcHAKQEAgLTU3LDYgKzU3LDMwIEBAIHZvaWQgU2VydmljZVdvcmtlckludGVybmFsczo6
dGVybWluYXRlKCkKICAgICB9KTsKIH0KIAordm9pZCBTZXJ2aWNlV29ya2VySW50ZXJuYWxzOjpz
Y2hlZHVsZVB1c2hFdmVudChjb25zdCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4mIG1lc3NhZ2UsIFJl
ZlB0cjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvIGNvdW50ZXIgPSAr
K21fcHVzaEV2ZW50Q291bnRlcjsKKyAgICBtX3B1c2hFdmVudFByb21pc2VzLmFkZChjb3VudGVy
LCBXVEZNb3ZlKHByb21pc2UpKTsKKworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+
PiBkYXRhOworICAgIGlmIChtZXNzYWdlKSB7CisgICAgICAgIGF1dG8gdXRmOCA9IG1lc3NhZ2Ut
PnV0ZjgoKTsKKyAgICAgICAgZGF0YSA9IFZlY3Rvcjx1aW50OF90PiB7IHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgdWludDhfdCo+KHV0ZjguZGF0YSgpKSwgdXRmOC5sZW5ndGgoKX07CisgICAgfQor
ICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBtX2lkZW50aWZpZXIsIGRhdGEgPSBX
VEZNb3ZlKGRhdGEpLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBjb3VudGVyXSgpIG11
dGFibGUgeworICAgICAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5maXJlUHVzaEV2
ZW50KGlkZW50aWZpZXIsIFdURk1vdmUoZGF0YSksIFtpZGVudGlmaWVyLCB3ZWFrVGhpcyA9IFdU
Rk1vdmUod2Vha1RoaXMpLCBjb3VudGVyXShib29sIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAg
ICAgICBpZiAoYXV0byogcHJveHkgPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS53b3Jr
ZXJCeUlEKGlkZW50aWZpZXIpKSB7CisgICAgICAgICAgICAgICAgcHJveHktPnRocmVhZCgpLnJ1
bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGNv
dW50ZXIsIHJlc3VsdF0oYXV0byYpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGF1dG8gcHJvbWlzZSA9IHdlYWtUaGlzLT5tX3B1c2hFdmVudFByb21pc2VzLnRha2UoY291
bnRlcikpCisgICAgICAgICAgICAgICAgICAgICAgICBwcm9taXNlLT5yZXNvbHZlPElETEJvb2xl
YW4+KHJlc3VsdCk7CisgICAgICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1v
ZGUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0pOworfQorCiB2b2lkIFNl
cnZpY2VXb3JrZXJJbnRlcm5hbHM6OndhaXRGb3JGZXRjaEV2ZW50VG9GaW5pc2goRmV0Y2hFdmVu
dCYgZXZlbnQsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmV0Y2hSZXNwb25zZT4+
JiYgcHJvbWlzZSkKIHsKICAgICBldmVudC5vblJlc3BvbnNlKFtwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKSwgZXZlbnQgPSBSZWYgeyBldmVudCB9XSAoYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5h
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5oCmlu
ZGV4IDMzN2U2YTdkMzkzZTMwMGI2YmRmZjYwZjk2OWI4ZmY1ZDgxZDgzMDkuLmZmZjcyMGQ3NzUy
MjgzMTIxNTRhMmM1ODk0OGI4N2E2OTlkOGY1ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoK
ICAgICBSZWY8RmV0Y2hFdmVudD4gY3JlYXRlQmVpbmdEaXNwYXRjaGVkRmV0Y2hFdmVudChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Jik7CiAgICAgUmVmPEZldGNoUmVzcG9uc2U+IGNyZWF0ZU9wYXF1
ZVdpdGhCbG9iQm9keVJlc3BvbnNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIAorICAgIHZv
aWQgc2NoZWR1bGVQdXNoRXZlbnQoY29uc3Qgc3RkOjpvcHRpb25hbDxTdHJpbmc+JiwgUmVmUHRy
PERlZmVycmVkUHJvbWlzZT4mJik7CiAgICAgVmVjdG9yPFN0cmluZz4gZmV0Y2hSZXNwb25zZUhl
YWRlckxpc3QoRmV0Y2hSZXNwb25zZSYpOwogCiAgICAgU3RyaW5nIHByb2Nlc3NOYW1lKCkgY29u
c3Q7CkBAIC02Nyw2ICs2OCw4IEBAIHByaXZhdGU6CiAKICAgICBTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBtX2lkZW50aWZpZXI7CiAgICAgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4gbV9sYXN0TmF2
aWdhdGlvbldhc0FwcEluaXRpYXRlZFByb21pc2U7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPERlZmVycmVkUHJvbWlzZT4+IG1fcHVzaEV2ZW50UHJvbWlzZXM7CisgICAgdWludDY0X3Qg
bV9wdXNoRXZlbnRDb3VudGVyIHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxz
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5pZGwK
aW5kZXggOTQ4NGI3NjIxZmNmMWZhZWNmZDVjNTM5NDZhNmU1ODRlMjk1NzUzOS4uOGQxOTE0YjNh
NTg5MGE0NmVhZDQ0ZWQ2OTY4YTdmNGJkNmRiNGY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuaWRsCkBAIC0zOCw2ICszOCw4IEBACiAK
ICAgICBzZXF1ZW5jZTxCeXRlU3RyaW5nPiBmZXRjaFJlc3BvbnNlSGVhZGVyTGlzdChGZXRjaFJl
c3BvbnNlIHJlc3BvbnNlKTsKIAorICAgIFByb21pc2U8Ym9vbGVhbj4gc2NoZWR1bGVQdXNoRXZl
bnQob3B0aW9uYWwgRE9NU3RyaW5nIGRhdGEpOworCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBwcm9jZXNzTmFtZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc1Ro
cm90dGxlYWJsZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcAppbmRleCA4YjU0MGM1NzdiNmJkOGYy
MWY3ZTE0MjU2ZDMwYzgwODJmMWVjZDU3Li4yNzQ0NWI1YmQ3MzhmMzY5MWUzYTgwZGI4MTc1NjJk
MDE3MzFlNDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcApAQCAtMTA5LDYgKzEwOSwxOCBAQCB2
b2lkIFNXQ29udGV4dE1hbmFnZXI6OmZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCiAgICAgc2VydmljZVdvcmtlci0+ZmlyZUFjdGl2YXRlRXZlbnQo
KTsKIH0KIAordm9pZCBTV0NvbnRleHRNYW5hZ2VyOjpmaXJlUHVzaEV2ZW50KFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiYm
IGRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCit7CisgICAg
YXV0byogc2VydmljZVdvcmtlciA9IG1fd29ya2VyTWFwLmdldChpZGVudGlmaWVyKTsKKyAgICBp
ZiAoIXNlcnZpY2VXb3JrZXIpIHsKKyAgICAgICAgY2FsbGJhY2soZmFsc2UpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgc2VydmljZVdvcmtlci0+ZmlyZVB1c2hFdmVudChXVEZNb3Zl
KGRhdGEpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisKKwogdm9pZCBTV0NvbnRleHRNYW5hZ2Vy
Ojp0ZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllciwgU2Vj
b25kcyB0aW1lb3V0LCBGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgYXV0byBzZXJ2aWNlV29ya2VyID0gbV93b3JrZXJNYXAudGFrZShpZGVudGlmaWVyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4
dE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29u
dGV4dE1hbmFnZXIuaAppbmRleCAxOTEwNTI3YWNkMDkyYjYyMzhlMGI5MGVhODIwMzhmMjIyZGQz
MmE5Li5lYTM3MGI5N2FjN2Q3NjE4YjAxMWE0YmNjN2YxMjNiN2E5MzYyN2I3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0
TWFuYWdlci5oCkBAIC05MCw2ICs5MCw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRl
c3RpbmF0aW9uLCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBTZXJ2aWNlV29ya2VyT3JDbGll
bnREYXRhJiYgc291cmNlRGF0YSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaXJlSW5zdGFs
bEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGZpcmVQdXNoRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKTsKKwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdGVybWluYXRlV29ya2VyKFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBTZWNvbmRzIHRpbWVvdXQsIEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRTYXZlU2NyaXB0c1RvRGlzayhTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgU2NyaXB0QnVmZmVyJiYsIEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+JiYg
aW1wb3J0ZWRTY3JpcHRzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAppbmRleCBlNzE0
NjAzZjM1NjQwOTE4YWUwNmE5YWZhOTFmODE5NzdkNTdhMzZhLi4yYTI3MjgzMTkxMDU5ODYwNDA1
MDhjOGI2ZWMyMTIyYTYyNGMxYWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApAQCAt
MzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkxvYWRlclN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorI2luY2x1ZGUgIlB1c2hF
dmVudC5oIgogI2luY2x1ZGUgIlNXQ29udGV4dE1hbmFnZXIuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaC5oIgpAQCAtMjEyLDYgKzIx
MywyOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnF1ZXVlVGFza1RvRmlyZUFjdGl2YXRl
RXZlbnQoKQogICAgIH0pOwogfQogCit2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnF1ZXVlVGFz
a1RvRmlyZVB1c2hFdmVudChzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4mJiBkYXRhLCBG
dW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQoreworICAgIGF1dG8mIHNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSA9IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oKmdsb2Jh
bFNjb3BlKCkpOworICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5ldmVudExvb3AoKS5xdWV1
ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cih0aGlzKSwgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlID0gUmVmIHsgc2VydmljZVdvcmtlckds
b2JhbFNjb3BlIH0sIGRhdGEgPSBXVEZNb3ZlKGRhdGEpLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXSgpIG11dGFibGUgeworICAgICAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAi
U2VydmljZVdvcmtlclRocmVhZDo6cXVldWVUYXNrVG9GaXJlUHVzaEV2ZW50IGZpcmluZyBldmVu
dCBmb3Igd29ya2VyICVsbHUiLCBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUtPnRocmVhZCgpLmlk
ZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKworICAgICAgICBhdXRvIHB1c2hFdmVudCA9IFB1c2hF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wdXNoRXZlbnQsIHsgfSwgV1RGTW92ZShkYXRhKSwg
RXh0ZW5kYWJsZUV2ZW50OjpJc1RydXN0ZWQ6Olllcyk7CisgICAgICAgIHNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZS0+ZGlzcGF0Y2hFdmVudChwdXNoRXZlbnQpOworCisgICAgICAgIHB1c2hFdmVu
dC0+d2hlbkFsbEV4dGVuZExpZmV0aW1lUHJvbWlzZXNBcmVTZXR0bGVkKFt3ZWFrVGhpcyA9IFdU
Rk1vdmUod2Vha1RoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgZXh0
ZW5kTGlmZXRpbWVQcm9taXNlcykgbXV0YWJsZSB7CisgICAgICAgICAgICBib29sIGhhc1JlamVj
dGVkQW55UHJvbWlzZSA9IGZhbHNlOworICAgICAgICAgICAgZm9yIChhdXRvJiBwcm9taXNlIDog
ZXh0ZW5kTGlmZXRpbWVQcm9taXNlcykgeworICAgICAgICAgICAgICAgIGlmIChwcm9taXNlLT5z
dGF0dXMoKSA9PSBET01Qcm9taXNlOjpTdGF0dXM6OlJlamVjdGVkKSB7CisgICAgICAgICAgICAg
ICAgICAgIGhhc1JlamVjdGVkQW55UHJvbWlzZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNh
bGxiYWNrKCFoYXNSZWplY3RlZEFueVByb21pc2UpOworICAgICAgICB9KTsKKyAgICB9KTsKK30K
Kwogdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpmaW5pc2hlZEV2YWx1YXRpbmdTY3JpcHQoKQog
ewogICAgIEFTU0VSVChnbG9iYWxTY29wZSgpLT5pc0NvbnRleHRUaHJlYWQoKSk7CkBAIC0yNDQs
NiArMjY3LDEyIEBAIHZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6c3RhcnRGZXRjaEV2ZW50TW9u
aXRvcmluZygpCiAgICAgc3RhcnRIZWFydEJlYXRUaW1lcigpOwogfQogCit2b2lkIFNlcnZpY2VX
b3JrZXJUaHJlYWQ6OnN0YXJ0UHVzaEV2ZW50TW9uaXRvcmluZygpCit7CisgICAgbV9pc0hhbmRs
aW5nUHVzaEV2ZW50ID0gdHJ1ZTsKKyAgICBzdGFydEhlYXJ0QmVhdFRpbWVyKCk7Cit9CisKIHZv
aWQgU2VydmljZVdvcmtlclRocmVhZDo6c3RhcnRIZWFydEJlYXRUaW1lcigpCiB7CiAgICAgLy8g
V2UgY2Fubm90IGRldGVjdCByZXNwb25zaXZlbmVzcyBmb3Igc2VydmljZSB3b3JrZXJzIHJ1bm5p
bmcgb24gdGhlIG1haW4gdGhyZWFkIGJ5IHVzaW5nIGEgbWFpbiB0aHJlYWQgdGltZXIuCkBAIC0y
NjYsNyArMjk1LDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpzdGFydEhlYXJ0QmVhdFRp
bWVyKCkKIHZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6aGVhcnRCZWF0VGltZXJGaXJlZCgpCiB7
CiAgICAgaWYgKCFtX29uZ29pbmdIZWFydEJlYXRDaGVjaykgewotICAgICAgICBpZiAobV9zdGF0
ZSA9PSBTdGF0ZTo6SW5zdGFsbGluZyB8fCBtX3N0YXRlID09IFN0YXRlOjpBY3RpdmF0aW5nIHx8
IG1faXNIYW5kbGluZ0ZldGNoRXZlbnQgfHwgbV9tZXNzYWdlRXZlbnRDb3VudCkKKyAgICAgICAg
aWYgKG1fc3RhdGUgPT0gU3RhdGU6Okluc3RhbGxpbmcgfHwgbV9zdGF0ZSA9PSBTdGF0ZTo6QWN0
aXZhdGluZyB8fCBtX2lzSGFuZGxpbmdGZXRjaEV2ZW50IHx8IG1faXNIYW5kbGluZ1B1c2hFdmVu
dCB8fCBtX21lc3NhZ2VFdmVudENvdW50KQogICAgICAgICAgICAgc3RhcnRIZWFydEJlYXRUaW1l
cigpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCmluZGV4
IDIxODI5NTU3YzA2NDRiNDcwYWYwYjcxODlhMGQ1ZmJiNDZmODcwZWIuLjA2ODFiMzNjZmNjYWJm
MzkwMGE3NDdmNzBlMTE1ODcyMTA4YzAwYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKQEAg
LTY2LDYgKzY2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcXVldWVUYXNrVG9Qb3N0TWVzc2FnZShN
ZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJiYgc291
cmNlRGF0YSk7CiAgICAgdm9pZCBxdWV1ZVRhc2tUb0ZpcmVJbnN0YWxsRXZlbnQoKTsKICAgICB2
b2lkIHF1ZXVlVGFza1RvRmlyZUFjdGl2YXRlRXZlbnQoKTsKKyAgICB2b2lkIHF1ZXVlVGFza1Rv
RmlyZVB1c2hFdmVudChzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4mJiwgRnVuY3Rpb248
dm9pZChib29sKT4mJik7CiAKICAgICBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2aWNlV29ya2VySWRlbnRpZmllcjsgfQogICAgIHN0ZDo6
b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiBqb2JEYXRhSWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIG1fam9iRGF0YUlkZW50aWZpZXI7IH0KQEAgLTczLDYgKzc0LDgg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzdGFydEZldGNoRXZlbnRNb25pdG9yaW5nKCk7CiAgICAg
dm9pZCBzdG9wRmV0Y2hFdmVudE1vbml0b3JpbmcoKSB7IG1faXNIYW5kbGluZ0ZldGNoRXZlbnQg
PSBmYWxzZTsgfQorICAgIHZvaWQgc3RhcnRQdXNoRXZlbnRNb25pdG9yaW5nKCk7CisgICAgdm9p
ZCBzdG9wUHVzaEV2ZW50TW9uaXRvcmluZygpIHsgbV9pc0hhbmRsaW5nUHVzaEV2ZW50ID0gZmFs
c2U7IH0KIAogcHJvdGVjdGVkOgogICAgIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29y
a2VyR2xvYmFsU2NvcGUoY29uc3QgV29ya2VyUGFyYW1ldGVycyYsIFJlZjxTZWN1cml0eU9yaWdp
bj4mJiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbikgZmluYWw7CkBAIC0xMDEsNiAr
MTA0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZG9lc0hhbmRsZUZldGNoIHsgZmFsc2UgfTsK
IAogICAgIGJvb2wgbV9pc0hhbmRsaW5nRmV0Y2hFdmVudCB7IGZhbHNlIH07CisgICAgYm9vbCBt
X2lzSGFuZGxpbmdQdXNoRXZlbnQgeyBmYWxzZSB9OwogICAgIHVpbnQ2NF90IG1fbWVzc2FnZUV2
ZW50Q291bnQgeyAwIH07CiAgICAgZW51bSBjbGFzcyBTdGF0ZSB7IElkbGUsIFN0YXJ0aW5nLCBJ
bnN0YWxsaW5nLCBBY3RpdmF0aW5nIH07CiAgICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpJZGxl
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAppbmRleCA0MWI2ZjI1MWY1
NDI0NjRiNTVlNGVhNTU4NjU1N2RlMTEwNTUxZGI3Li45YjhkYzUxYjBkMmY0YWFhZmYwYTQxMTRm
OGNhOWI2ODY3MWZlM2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAK
QEAgLTEyMiw2ICsxMjIsMTAgQEAgU2VydmljZVdvcmtlclRocmVhZFByb3h5Ojp+U2VydmljZVdv
cmtlclRocmVhZFByb3h5KCkKIHsKICAgICBBU1NFUlQoYWxsU2VydmljZVdvcmtlclRocmVhZFBy
b3hpZXMoKS5jb250YWlucyh0aGlzKSk7CiAgICAgYWxsU2VydmljZVdvcmtlclRocmVhZFByb3hp
ZXMoKS5yZW1vdmUodGhpcyk7CisKKyAgICBhdXRvIHB1c2hUYXNrcyA9IFdURk1vdmUobV9vbmdv
aW5nUHVzaFRhc2tzKTsKKyAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogcHVzaFRhc2tzLnZhbHVl
cygpKQorICAgICAgICBjYWxsYmFjayhmYWxzZSk7CiB9CiAKIHZvaWQgU2VydmljZVdvcmtlclRo
cmVhZFByb3h5OjpzZXRMYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZChib29sIHdhc0FwcElu
aXRpYXRlZCkKQEAgLTI5NCw2ICsyOTgsMjggQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHk6OmRpZFNhdmVTY3JpcHRzVG9EaXNrKFNjcmlwdEJ1ZmZlciYmIHNjcmlwdCwgSGFzaE0KICAg
ICB9KTsKIH0KIAordm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmZpcmVQdXNoRXZlbnQo
c3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+JiYgZGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjYWxsYmFjaykKK3sKKyAgICBpZiAobV9vbmdvaW5nUHVzaFRhc2tzLmlz
RW1wdHkoKSkKKyAgICAgICAgdGhyZWFkKCkuc3RhcnRQdXNoRXZlbnRNb25pdG9yaW5nKCk7CisK
KyAgICBhdXRvIGlkZW50aWZpZXIgPSArK21fcHVzaFRhc2tzQ291bnRlcjsKKyAgICBBU1NFUlQo
IW1fb25nb2luZ1B1c2hUYXNrcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9vbmdvaW5n
UHVzaFRhc2tzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgYm9vbCBp
c1Bvc3RlZCA9IHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBpZGVudGlmaWVyLCBkYXRhID0gV1RG
TW92ZShkYXRhKV0oYXV0byYpIG11dGFibGUgeworICAgICAgICB0aHJlYWQoKS5xdWV1ZVRhc2tU
b0ZpcmVQdXNoRXZlbnQoV1RGTW92ZShkYXRhKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZN
b3ZlKHByb3RlY3RlZFRoaXMpLCBpZGVudGlmaWVyXShib29sIHJlc3VsdCkgbXV0YWJsZSB7Cisg
ICAgICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1v
dmUocHJvdGVjdGVkVGhpcyksIGlkZW50aWZpZXIsIHJlc3VsdF0oKSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fb25nb2luZ1B1c2hUYXNrcy50YWtlKGlk
ZW50aWZpZXIpKQorICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQpOworICAgICAg
ICAgICAgICAgIGlmIChtX29uZ29pbmdQdXNoVGFza3MuaXNFbXB0eSgpKQorICAgICAgICAgICAg
ICAgICAgICB0aHJlYWQoKS5zdG9wUHVzaEV2ZW50TW9uaXRvcmluZygpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0pOworICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwor
ICAgIGlmICghaXNQb3N0ZWQpCisgICAgICAgIG1fb25nb2luZ1B1c2hUYXNrcy50YWtlKGlkZW50
aWZpZXIpKGZhbHNlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaApp
bmRleCAzMDQzZGIxM2YwNjc1YjliY2RiNWI2MzgyZjRkODI5OTBjNmUzMzBjLi5jZWZiYzVlMTYz
NjhjMzhhODNhN2UxMTVmZDU3NDcyY2FmNWM1Yjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHkuaApAQCAtODAsNiArODAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0TWVzc2Fn
ZVRvU2VydmljZVdvcmtlcihNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBTZXJ2aWNlV29ya2Vy
T3JDbGllbnREYXRhJiYpOwogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVudCgpOwogICAgIHZvaWQg
ZmlyZUFjdGl2YXRlRXZlbnQoKTsKKyAgICB2b2lkIGZpcmVQdXNoRXZlbnQoc3RkOjpvcHRpb25h
bDxWZWN0b3I8dWludDhfdD4+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwor
CiAgICAgdm9pZCBkaWRTYXZlU2NyaXB0c1RvRGlzayhTY3JpcHRCdWZmZXImJiwgSGFzaE1hcDxV
UkwsIFNjcmlwdEJ1ZmZlcj4mJiBpbXBvcnRlZFNjcmlwdHMpOwogCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRMYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZChib29sKTsKQEAgLTExMiw2
ICsxMTQsOCBAQCBwcml2YXRlOgogCiAgICAgU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5IG1f
aW5zcGVjdG9yUHJveHk7CiAgICAgSGFzaE1hcDxzdGQ6OnBhaXI8U1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyPiwgUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xp
ZW50Pj4gbV9vbmdvaW5nRmV0Y2hUYXNrczsKKyAgICB1aW50NjRfdCBtX3B1c2hUYXNrc0NvdW50
ZXIgeyAwIH07CisgICAgSGFzaE1hcDx1aW50NjRfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4+IG1fb25nb2luZ1B1c2hUYXNrczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGEzOGQwYTQ5OWE3NmIzNzQ0MzU1ODgyODc0ZDc1YTBlMmRjMDA5MzMuLmEwYmE2Nzgw
YTNmNTQ3NTk5NmNhN2UzM2RkYjE2Y2U1ZTI0ZjhiYTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAyMS0xMC0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBwdXNoIGV2ZW50IGhhbmRs
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTAw
OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM3MTA3NjA+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3dwdC9wdXNoLWFwaS9wdXNoRXZl
bnQuYW55LmpzOgorICAgICAgICAqIGh0dHAvd3B0L3B1c2gtYXBpL3B1c2hFdmVudC5hbnkuc2Vy
dmljZXdvcmtlci1leHBlY3RlZC50eHQ6CisKIDIwMjEtMTAtMDEgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBQdXNoRXZlbnQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDU4NjI1ODlhNDc4ZWM3ZjNmNzMyYWUyMThk
YjFiOWYxYzRmOTBmYTkuLjQxNjVjNzNlMjkwM2Y1ZTcxNGVlZDdhZTVhZmI0MGRmN2JmY2YwZTEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTEw
LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIHB1c2ggZXZlbnQgaGFuZGxlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMDA4CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS84MzcxMDc2MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wdXNoLWFwaS9pZGxo
YXJuZXNzLmh0dHBzLmFueS5zZXJ2aWNld29ya2VyLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0xMC0w
MSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIFB1c2hFdmVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvcHVzaC1h
cGkvcHVzaEV2ZW50LmFueS5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3B1c2gtYXBpL3B1c2hF
dmVudC5hbnkuanMKaW5kZXggMzBkNjg5ZmYwYzM5YTA0NTA1MWYzMmQwNTY5ZTZiZDgwNGFkYTRl
YS4uZjk2NGI5YmU0ZTBjNTQwMTU4ZGRlNTJmYjg4Y2ZhYjkwNzljYWIxNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvcHVzaC1hcGkvcHVzaEV2ZW50LmFueS5qcworKysgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9wdXNoLWFwaS9wdXNoRXZlbnQuYW55LmpzCkBAIC01MiwzICs1Miw1
MyBAQCB0ZXN0KCgpID0+IHsKICAgICBjb25zdCBldmVudCA9IG5ldyBQdXNoRXZlbnQoInB1c2gi
LCB7IGRhdGEgOiAie3Rlc3QgOiAxfSIgfSk7CiAgICAgYXNzZXJ0X3Rocm93c19kb20oIlN5bnRh
eEVycm9yIiwgKCkgPT4gZXZlbnQuZGF0YS5qc29uKCkpOwogfSwgIlB1c2hFdmVudCB3aXRoIGJh
ZCBqc29uIik7CisKK2xldCBhY3RpdmF0ZVByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+
IHNlbGYub25hY3RpdmF0ZSA9IHJlc29sdmUpOworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsK
KyAgIHJldHVybiBhY3RpdmF0ZVByb21pc2U7Cit9LCAiV2FpdCBmb3IgYWN0aXZhdGUgcHJvbWlz
ZSIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAgIGNvbnN0IHByb21pc2UgPSBz
ZWxmLmludGVybmFscy5zY2hlZHVsZVB1c2hFdmVudCgidGVzdCIpOworICAgIGNvbnN0IGV2ZW50
ID0gYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZWxmLm9ucHVzaCA9IHJlc29sdmUpOwor
ICAgIGFzc2VydF9lcXVhbHMoZXZlbnQuZGF0YS50ZXh0KCksICJ0ZXN0Iik7CisgICAgYXNzZXJ0
X3RydWUoYXdhaXQgcHJvbWlzZSk7Cit9LCAiU2ltdWxhdGluZyBmaXJpbmcgb2YgYSBwdXNoIGV2
ZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAgaWYgKCFzZWxmLmludGVy
bmFscykKKyAgICAgICAgcmV0dXJuOworCisgICAgbGV0IHJlc29sdmVXYWl0VW50aWxQcm9taXNl
OworICAgIGNvbnN0IHdhaXRVbnRpbFByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHJl
c29sdmVXYWl0VW50aWxQcm9taXNlID0gcmVzb2x2ZSk7CisKKyAgICBsZXQgaXNQdXNoRXZlbnRQ
cm9taXNlUmVzb2x2ZWQgPSBmYWxzZTsKKyAgICBjb25zdCBwcm9taXNlID0gaW50ZXJuYWxzLnNj
aGVkdWxlUHVzaEV2ZW50KCJ0ZXN0Iik7CisgICAgcHJvbWlzZS50aGVuKCgpID0+IGlzUHVzaEV2
ZW50UHJvbWlzZVJlc29sdmVkID0gdHJ1ZSk7CisKKyAgICBjb25zdCBldmVudCA9IGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gc2VsZi5vbnB1c2ggPSAoZXZlbnQpID0+IHsKKyAgICAgICAg
ZXZlbnQud2FpdFVudGlsKHdhaXRVbnRpbFByb21pc2UpOworICAgICAgICByZXNvbHZlKGV2ZW50
KTsKKyAgICB9KTsKKyAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LmRhdGEudGV4dCgpLCAidGVzdCIp
OworCisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZWxmLnNldFRpbWVvdXQocmVz
b2x2ZSwgMTAwKSk7CisgICAgYXNzZXJ0X2ZhbHNlKGlzUHVzaEV2ZW50UHJvbWlzZVJlc29sdmVk
KTsKKworICAgIHJlc29sdmVXYWl0VW50aWxQcm9taXNlKCk7CisgICAgYXNzZXJ0X3RydWUoYXdh
aXQgcHJvbWlzZSk7Cit9LCAiU2ltdWxhdGluZyBmaXJpbmcgb2YgYSBwdXNoIGV2ZW50IC0gc3Vj
Y2Vzc2Z1bCB3YWl0VW50aWwiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgICBp
ZiAoIXNlbGYuaW50ZXJuYWxzKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBwcm9taXNl
ID0gaW50ZXJuYWxzLnNjaGVkdWxlUHVzaEV2ZW50KCJ0ZXN0Iik7CisgICAgY29uc3QgZXZlbnQg
PSBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNlbGYub25wdXNoID0gKGV2ZW50KSA9PiB7
CisgICAgICAgIGV2ZW50LndhaXRVbnRpbChQcm9taXNlLnJlc29sdmUoKSk7CisgICAgICAgIGV2
ZW50LndhaXRVbnRpbChQcm9taXNlLnJlamVjdCgnZXJyb3InKSk7CisgICAgICAgIHJlc29sdmUo
ZXZlbnQpOworICAgIH0pOworICAgIGFzc2VydF9lcXVhbHMoZXZlbnQuZGF0YS50ZXh0KCksICJ0
ZXN0Iik7CisgICAgYXNzZXJ0X2ZhbHNlKGF3YWl0IHByb21pc2UpOworfSwgIlNpbXVsYXRpbmcg
ZmlyaW5nIG9mIGEgcHVzaCBldmVudCAtIHVuc3VjY2Vzc2Z1bCB3YWl0VW50aWwiKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3B1c2gtYXBpL3B1c2hFdmVudC5hbnkuc2Vydmlj
ZXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9wdXNoLWFwaS9wdXNo
RXZlbnQuYW55LnNlcnZpY2V3b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDNiNjFhZWRhMDY0YTk1
M2JmM2RhNWM5YTZiMzM2ZTBmZTAwM2MzMjYuLjNmY2Q0NmUzOWYzN2NiYzlkMzYwM2RlMzQ0YTEz
YTQ4YjdiZWUyYzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3B1c2gtYXBpL3B1
c2hFdmVudC5hbnkuc2VydmljZXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvcHVzaC1hcGkvcHVzaEV2ZW50LmFueS5zZXJ2aWNld29ya2VyLWV4cGVjdGVkLnR4
dApAQCAtMyw0ICszLDggQEAgUEFTUyBQdXNoRXZlbnQgd2l0aG91dCBkYXRhCiBQQVNTIFB1c2hF
dmVudCB3aXRoIGRhdGEKIFBBU1MgUHVzaEV2ZW50IGFycmF5QnVmZmVyIGhhbmRsaW5nCiBQQVNT
IFB1c2hFdmVudCB3aXRoIGJhZCBqc29uCitQQVNTIFdhaXQgZm9yIGFjdGl2YXRlIHByb21pc2UK
K1BBU1MgU2ltdWxhdGluZyBmaXJpbmcgb2YgYSBwdXNoIGV2ZW50CitQQVNTIFNpbXVsYXRpbmcg
ZmlyaW5nIG9mIGEgcHVzaCBldmVudCAtIHN1Y2Nlc3NmdWwgd2FpdFVudGlsCitQQVNTIFNpbXVs
YXRpbmcgZmlyaW5nIG9mIGEgcHVzaCBldmVudCAtIHVuc3VjY2Vzc2Z1bCB3YWl0VW50aWwKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
dXNoLWFwaS9pZGxoYXJuZXNzLmh0dHBzLmFueS5zZXJ2aWNld29ya2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcHVzaC1hcGkvaWRs
aGFybmVzcy5odHRwcy5hbnkuc2VydmljZXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggYTc1Zjdm
Y2JkNDA2Y2NiNzQ1OWEyNDQ5YThjNjM0YmJkMWE1NTNiYy4uODY4OWEyNjY3NDQ2ZDAzYzIyZjk5
MTNhMmFlN2JhZDQxN2JkYjQwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wdXNoLWFwaS9pZGxoYXJuZXNzLmh0dHBzLmFueS5zZXJ2aWNl
d29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3B1c2gtYXBpL2lkbGhhcm5lc3MuaHR0cHMuYW55LnNlcnZpY2V3b3JrZXIt
ZXhwZWN0ZWQudHh0CkBAIC03OSw4ICs3OSw4IEBAIEZBSUwgUHVzaFN1YnNjcmlwdGlvbkNoYW5n
ZUV2ZW50IGludGVyZmFjZTogbmV3IFB1c2hTdWJzY3JpcHRpb25DaGFuZ2VFdmVudCgicHVzCiBG
QUlMIFB1c2hTdWJzY3JpcHRpb25DaGFuZ2VFdmVudCBpbnRlcmZhY2U6IG5ldyBQdXNoU3Vic2Ny
aXB0aW9uQ2hhbmdlRXZlbnQoInB1c2hzdWJzY3JpcHRpb25jaGFuZ2UiKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgIm9sZFN1YnNjcmlwdGlvbiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2Vx
dWFsczogVW5leHBlY3RlZCBleGNlcHRpb24gd2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3Rl
ZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJs
ZTogUHVzaFN1YnNjcmlwdGlvbkNoYW5nZUV2ZW50IgogRkFJTCBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIHB1c2hNYW5hZ2VyIGFzc2VydF90cnVlOiBUaGUg
cHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAicHVzaE1hbmFnZXIiIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJm
YWNlOiByZWdpc3RyYXRpb24gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJwdXNoTWFuYWdlciIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAicHVzaE1hbmFnZXIi
IG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KLUZBSUwgU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlIGludGVyZmFjZTogYXR0cmlidXRlIG9ucHVzaCBhc3NlcnRfb3duX3Byb3BlcnR5OiBUaGUg
Z2xvYmFsIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAib25wdXNoIiBleHBlY3RlZCBwcm9w
ZXJ0eSAib25wdXNoIiBtaXNzaW5nCitQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBvbnB1c2gKIEZBSUwgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGlu
dGVyZmFjZTogYXR0cmlidXRlIG9ucHVzaHN1YnNjcmlwdGlvbmNoYW5nZSBhc3NlcnRfb3duX3By
b3BlcnR5OiBUaGUgZ2xvYmFsIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAib25wdXNoc3Vi
c2NyaXB0aW9uY2hhbmdlIiBleHBlY3RlZCBwcm9wZXJ0eSAib25wdXNoc3Vic2NyaXB0aW9uY2hh
bmdlIiBtaXNzaW5nCi1GQUlMIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNl
bGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbnB1c2giIHdpdGggdGhlIHByb3BlciB0eXBlIGFz
c2VydF9vd25fcHJvcGVydHk6IGV4cGVjdGVkIHByb3BlcnR5ICJvbnB1c2giIG1pc3NpbmcKK1BB
U1MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVyaXQg
cHJvcGVydHkgIm9ucHVzaCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIEZBSUwgU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9ucHVz
aHN1YnNjcmlwdGlvbmNoYW5nZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogZXhwZWN0ZWQgcHJvcGVydHkgIm9ucHVzaHN1YnNjcmlwdGlvbmNoYW5nZSIgbWlzc2lu
ZwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439961</attachid>
            <date>2021-10-02 03:45:00 -0700</date>
            <delta_ts>2021-10-02 04:58:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231008-20211002124459.patch</filename>
            <type>text/plain</type>
            <size>31042</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTk5NWVhOGFhYzU5Y2Nj
NGU3ZDc1YjczYWM3NTU5NjI5OTllNTQxOS4uNDhjYjBlODRiM2QzOGU5MzQ5ZWJlYTUwODA5OTgw
NjM2ZGMwZWJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTEwLTAxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlIHB1c2ggZXZlbnQgaGFuZGxlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMDA4CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84MzcxMDc2MD4KKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4K
KworICAgICAgICBJbXBsZW1lbnQgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3B1c2gtYXBpLyNyZWNl
aXZpbmctYS1wdXNoLW1lc3NhZ2Ugc3RlcCA2LgorICAgICAgICBJbiBwYXJ0aWN1bGFyIHdlIGVu
c3VyZSB0aGF0IGlmIGFueSB3YWl0VW50aWwgcHJvbWlzZSByZWplY3RzLCB0aGUgcHVzaCBldmVu
dCBpcyBjb25zaWRlcmVkIHRvIGZhaWwuCisgICAgICAgIFRoaXMgc3RhdHVzIHNob3VsZCB0aGVu
IGJlIHNlbnQgYmFjayB0byB0aGUgZW1pdGVyIG9mIHRoZSBwdXNoIG1lc3NhZ2UgdG8gZGVjaWRl
IHdoZXRoZXIgdG8gYWNrbm93bGVkZ2UgdGhlIG1lc3NhZ2UsIHJldHJ5IGl0IG9yIGRpc2NhcmQg
aXQuCisKKyAgICAgICAgV2Uga2VlcCBwdXNoIEFQSSBjb21wbGV0aW9uIGhhbmRsZXIgaW4gYSBt
YXAgdG8gZW5zdXJlIHdlIHJlc3BvbmQgdG8gdGhlbSBldmVuIGlmIHRoZSBzZXJ2aWNlIHdvcmtl
ciBnZXRzIHRlcm1pbmF0ZWQgd2hpbGUgcHJvY2Vzc2luZyB0aGUgcHVzaCBldmVudC4KKworICAg
ICAgICBBZGQgbmVjZXNzYXJ5IGludGVybmFscyBBUEkgdG8gZW5hYmxlIHRlc3Rpbmcgd2l0aGlu
IHRoZSBzZXJ2aWNlIHdvcmtlciBpdHNlbGYuCisKKyAgICAgICAgQ292ZXJlZCBieSBhZGRlZCBz
dWJ0ZXN0cyBpbiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcHVzaEV2ZW50LmFueS5zZXJ2aWNl
d29ya2VyLmh0bWwuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogTW9kdWxlcy9wdXNoLWFwaS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUrUHVzaEFQSS5pZGw6
IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogZG9t
L0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMu
Y3BwOgorICAgICAgICAqIHRlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5oOgorICAgICAg
ICAqIHRlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5pZGw6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5jcHA6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oOgor
CiAyMDIxLTEwLTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgUHVzaEV2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDkwOGQ4
ZTJmYzAzMWE4MmVjMjk3ZjNiY2NjYjI4ZTc3OWRiNDllOGUuLjBhYzQyODgyMGZhNWY4OTA0ZTc2
NGIxMzAyYTc0ZDEwNmQxMjljYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MDEsNiArNTAx
LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL3B1c2gtYXBp
L1B1c2hFdmVudC5pZGwKICAgICBNb2R1bGVzL3B1c2gtYXBpL1B1c2hFdmVudEluaXQuaWRsCiAg
ICAgTW9kdWxlcy9wdXNoLWFwaS9QdXNoTWVzc2FnZURhdGEuaWRsCisgICAgTW9kdWxlcy9wdXNo
LWFwaS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUrUHVzaEFQSS5pZGwKIAogICAgIE1vZHVsZXMv
cmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaWRsCiAgICAgTW9kdWxlcy9yZW1vdGVwbGF5
YmFjay9SZW1vdGVQbGF5YmFja0F2YWlsYWJpbGl0eUNhbGxiYWNrLmlkbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggNDIyZWFhMGNlYjY1
NDU1OTZlNjI4N2NiYWM3YjdmYzNmNWZjNTZmMC4uOTgyZGZhNjM1ZTU2YWUyYmE5MzU1MjE5ZDU4
NmYyNzcwY2MzOWQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CkBAIC00MjQsNiArNDI0LDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy9w
bHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmpzCiAkKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL3B1c2gtYXBpL1B1c2hFdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcHVzaC1h
cGkvUHVzaEV2ZW50SW5pdC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcHVzaC1hcGkvUHVz
aE1lc3NhZ2VEYXRhLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9wdXNoLWFwaS9TZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUrUHVzaEFQSS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcmVt
b3RlcGxheWJhY2svSFRNTE1lZGlhRWxlbWVudCtSZW1vdGVQbGF5YmFjay5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suaWRsCiAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrQXZhaWxhYmlsaXR5
Q2FsbGJhY2suaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CmluZGV4IGEwODc0NTU4NDNiM2ZiN2ExMWNhMDdhODc4M2ZlZDBjOTM1OTFiZjQu
LjI2Y2FmNTg2NDA1ODhlZjUzZmEzNDRiOTQxYTJhM2Q0YzQzNTJiNzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0yMjI5LDYgKzIy
MjksOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Nl
cnZpY2VXb3JrZXJDbGllbnRzLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNTZXJ2aWNlV29ya2VyQ2xpZW50cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NlcnZpY2VXb3Jr
ZXJDb250YWluZXIuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUrUHVzaEFQSS5jcHAKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
K1B1c2hBUEkuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NlcnZpY2VXb3JrZXJJbnRl
cm5hbHMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA3YjJlZDQwOGM2ZTQ5
MWIwZmJlMTVkNDhkMmViNmViZTA5MmY0NmE1Li40MzE5MWI2YmU3NDNlNzY4ZWY1NTYyYTg3YTMx
ODYzMThhMGNlMDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTM0OSw2ICsz
NDksNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9wdXNo
LWFwaS9QdXNoRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvcHVzaC1hcGkvUHVz
aEV2ZW50SW5pdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9wdXNoLWFwaS9QdXNoTWVz
c2FnZURhdGEuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvcHVzaC1hcGkvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlK1B1c2hBUEkuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvcmVt
b3RlcGxheWJhY2svSFRNTE1lZGlhRWxlbWVudCtSZW1vdGVQbGF5YmFjay5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFjay5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQbGF5YmFja0F2YWlsYWJp
bGl0eUNhbGxiYWNrLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1
c2gtYXBpL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZStQdXNoQVBJLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcHVzaC1hcGkvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlK1B1c2hBUEkuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjg0YWM1ZmMzOGMyZTAzZmQwYmE0OGVjNGE5YTAxM2JkMGI0NzhmMjUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZStQdXNoQVBJLmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9U2VydmljZVdvcmtlciwKKyAgICBJbXBsZW1lbnRl
ZEJ5PVNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZVB1c2hBUEkKK10gcGFydGlhbCBpbnRlcmZhY2Ug
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlIHsKKyAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
cHVzaDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggN2Q3NDFlYTZjYTIyODIwY2YyMmZhZjUyY2M0N2EyZWQyYzY2NThlMS4u
YjM1YjM0ODQ1Y2Q3ZmMwNjdjZjM2ODM0YjNjYjE5MTAxODIxZjRjZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODExMCw2ICs4
MTEwLDkgQEAKIAkJNDE4RkNCQkYyNzA2RTRGODAwRjk2RUNBIC8qIFB1c2hFdmVudEluaXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUHVzaEV2ZW50SW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MThGQ0JDMDI3MDZFNEY4MDBGOTZFQ0EgLyogUHVzaEV2ZW50LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQdXNo
RXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MThGQ0JDMzI3MDZFNjJD
MDBGOTZFQ0EgLyogUHVzaEV2ZW50SW5pdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUHVzaEV2ZW50SW5pdC5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxOEZDQkNCMjcwNkYzQ0QwMEY5NkVDQSAvKiBT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUrUHVzaEFQSS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gIlNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZStQdXNoQVBJLmlkbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
OEZDQkNDMjcwNkY0MzQwMEY5NkVDQSAvKiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVQdXNoQVBJ
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZVB1c2hBUEkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4RkNCQ0QyNzA2RjQzNDAwRjk2RUNBIC8qIFNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZVB1c2hBUEkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlUHVzaEFQSS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxOTBGM0ExMjQ5RDE1MjcwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYW1lUmF0ZU1vbml0b3IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTkwRjNBMzI0OUQxNTI4MDA1MzFDNTcg
LyogRnJhbWVSYXRlTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
cmFtZVJhdGVNb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOTI0MjQ3
MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdW
aWRlb1NvdXJjZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk4NzQs
NiArMTk4NzcsOSBAQAogCQkJCTQxOEZDQkJFMjcwNkU0RjcwMEY5NkVDQSAvKiBQdXNoTWVzc2Fn
ZURhdGEuY3BwICovLAogCQkJCTQxOEZDQkJDMjcwNkU0RjYwMEY5NkVDQSAvKiBQdXNoTWVzc2Fn
ZURhdGEuaCAqLywKIAkJCQk0MThGQ0JCQTI3MDZFNEY1MDBGOTZFQ0EgLyogUHVzaE1lc3NhZ2VE
YXRhLmlkbCAqLywKKwkJCQk0MThGQ0JDQjI3MDZGM0NEMDBGOTZFQ0EgLyogU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlK1B1c2hBUEkuaWRsICovLAorCQkJCTQxOEZDQkNEMjcwNkY0MzQwMEY5NkVD
QSAvKiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVQdXNoQVBJLmNwcCAqLywKKwkJCQk0MThGQ0JD
QzI3MDZGNDM0MDBGOTZFQ0EgLyogU2VydmljZVdvcmtlckdsb2JhbFNjb3BlUHVzaEFQSS5oICov
LAogCQkJKTsKIAkJCXBhdGggPSAicHVzaC1hcGkiOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGlu
TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMu
aAppbmRleCAwOWIyM2U1MzE5YjM1MTM5Nzk4NGY5NWY5M2EzYTliMzRlYzM5N2RkLi5lODM1ZGY3
ZmYwYjIyMGRlYmEwNThmZDNhODRkZjVkMmMyNTEzOTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC00MDIsNyArNDAyLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKG1ha2VUaGlzVHlwZUVycm9yKSBcCiAgICAg
bWFjcm8obWF0Y2hpbmdFbGVtZW50SW5GbGF0VHJlZSkgXAogICAgIG1hY3JvKG1lZGlhU3RyZWFt
VHJhY2tDb25zdHJhaW50cykgXAotICAgIG1hY3JvKG9wZW5EYXRhYmFzZSkgXAorICAgIG1hY3Jv
KG9ucHVzaCkgXAogICAgIG1hY3JvKG9ucnRjdHJhbnNmb3JtKSBcCiAgICAgbWFjcm8ob250b3Vj
aGNhbmNlbCkgXAogICAgIG1hY3JvKG9udG91Y2hlbmQpIFwKQEAgLTQxNyw2ICs0MTcsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8ob252cmRpc3BsYXlkaXNjb25uZWN0KSBcCiAg
ICAgbWFjcm8ob252cmRpc3BsYXlmb2N1cykgXAogICAgIG1hY3JvKG9udnJkaXNwbGF5cHJlc2Vu
dGNoYW5nZSkgXAorICAgIG1hY3JvKG9wZW5EYXRhYmFzZSkgXAogICAgIG1hY3JvKG9wZW5lcikg
XAogICAgIG1hY3JvKG9wZXJhdGlvbnMpIFwKICAgICBtYWNybyhvd25lclJlYWRhYmxlU3RyZWFt
KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCAxNjFlMTZmMmVkZTA4MDE1OGZjYjNhNDIz
MjhkOWI3MWI1OWMzOWIyLi5lMWZhNGQzOWMxYzdjNTliNTAwMzZmNjBlYTQ4ZmIxYTAxZTk5ZDc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKQEAgLTIyMSw2ICsyMjEsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgbWFjcm8ocHJldmlvdXN0cmFjaykgXAogICAgIG1hY3JvKHByb2Nlc3Nv
cmVycm9yKSBcCiAgICAgbWFjcm8ocHJvZ3Jlc3MpIFwKKyAgICBtYWNybyhwdXNoKSBcCiAgICAg
bWFjcm8ocmF0ZWNoYW5nZSkgXAogICAgIG1hY3JvKHJlYWR5c3RhdGVjaGFuZ2UpIFwKICAgICBt
YWNybyhyZWplY3Rpb25oYW5kbGVkKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9T
ZXJ2aWNlV29ya2VySW50ZXJuYWxzLmNwcAppbmRleCAzNWVkYjYyYzY5MzM0YThjOTI3YzUxY2Zh
ZTE1NjEwMGMzODM0NTRkLi5jMjI2MDYwMTkwZmMyYTkzMGY1MDI2MjM3OTUwY2JhNmJiMGIzNWIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5h
bHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFs
cy5jcHAKQEAgLTU3LDYgKzU3LDMwIEBAIHZvaWQgU2VydmljZVdvcmtlckludGVybmFsczo6dGVy
bWluYXRlKCkKICAgICB9KTsKIH0KIAordm9pZCBTZXJ2aWNlV29ya2VySW50ZXJuYWxzOjpzY2hl
ZHVsZVB1c2hFdmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJlZlB0cjxEZWZlcnJlZFByb21p
c2U+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvIGNvdW50ZXIgPSArK21fcHVzaEV2ZW50Q291bnRl
cjsKKyAgICBtX3B1c2hFdmVudFByb21pc2VzLmFkZChjb3VudGVyLCBXVEZNb3ZlKHByb21pc2Up
KTsKKworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiBkYXRhOworICAgIGlmICgh
bWVzc2FnZS5pc051bGwoKSkgeworICAgICAgICBhdXRvIHV0ZjggPSBtZXNzYWdlLnV0ZjgoKTsK
KyAgICAgICAgZGF0YSA9IFZlY3Rvcjx1aW50OF90PiB7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
dWludDhfdCo+KHV0ZjguZGF0YSgpKSwgdXRmOC5sZW5ndGgoKX07CisgICAgfQorICAgIGNhbGxP
bk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBtX2lkZW50aWZpZXIsIGRhdGEgPSBXVEZNb3ZlKGRh
dGEpLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBjb3VudGVyXSgpIG11dGFibGUgewor
ICAgICAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5maXJlUHVzaEV2ZW50KGlkZW50
aWZpZXIsIFdURk1vdmUoZGF0YSksIFtpZGVudGlmaWVyLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vh
a1RoaXMpLCBjb3VudGVyXShib29sIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICBpZiAo
YXV0byogcHJveHkgPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS53b3JrZXJCeUlEKGlk
ZW50aWZpZXIpKSB7CisgICAgICAgICAgICAgICAgcHJveHktPnRocmVhZCgpLnJ1bkxvb3AoKS5w
b3N0VGFza0Zvck1vZGUoW3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGNvdW50ZXIsIHJl
c3VsdF0oYXV0byYpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8g
cHJvbWlzZSA9IHdlYWtUaGlzLT5tX3B1c2hFdmVudFByb21pc2VzLnRha2UoY291bnRlcikpCisg
ICAgICAgICAgICAgICAgICAgICAgICBwcm9taXNlLT5yZXNvbHZlPElETEJvb2xlYW4+KHJlc3Vs
dCk7CisgICAgICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0pOworfQorCiB2b2lkIFNlcnZpY2VXb3Jr
ZXJJbnRlcm5hbHM6OndhaXRGb3JGZXRjaEV2ZW50VG9GaW5pc2goRmV0Y2hFdmVudCYgZXZlbnQs
IERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmV0Y2hSZXNwb25zZT4+JiYgcHJvbWlz
ZSkKIHsKICAgICBldmVudC5vblJlc3BvbnNlKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwg
ZXZlbnQgPSBSZWYgeyBldmVudCB9XSAoYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5oCmluZGV4IDMzN2U2
YTdkMzkzZTMwMGI2YmRmZjYwZjk2OWI4ZmY1ZDgxZDgzMDkuLmQ1MTUwNGY0Mzc4ZmRiNDVlODUz
NTFmNzRmMTEyYzk4NWJjZjgzODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
U2VydmljZVdvcmtlckludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvU2Vy
dmljZVdvcmtlckludGVybmFscy5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICBSZWY8
RmV0Y2hFdmVudD4gY3JlYXRlQmVpbmdEaXNwYXRjaGVkRmV0Y2hFdmVudChTY3JpcHRFeGVjdXRp
b25Db250ZXh0Jik7CiAgICAgUmVmPEZldGNoUmVzcG9uc2U+IGNyZWF0ZU9wYXF1ZVdpdGhCbG9i
Qm9keVJlc3BvbnNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIAorICAgIHZvaWQgc2NoZWR1
bGVQdXNoRXZlbnQoY29uc3QgU3RyaW5nJiwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4mJik7CiAg
ICAgVmVjdG9yPFN0cmluZz4gZmV0Y2hSZXNwb25zZUhlYWRlckxpc3QoRmV0Y2hSZXNwb25zZSYp
OwogCiAgICAgU3RyaW5nIHByb2Nlc3NOYW1lKCkgY29uc3Q7CkBAIC02Nyw2ICs2OCw4IEBAIHBy
aXZhdGU6CiAKICAgICBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAg
UmVmUHRyPERlZmVycmVkUHJvbWlzZT4gbV9sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZFBy
b21pc2U7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4+IG1f
cHVzaEV2ZW50UHJvbWlzZXM7CisgICAgdWludDY0X3QgbV9wdXNoRXZlbnRDb3VudGVyIHsgMCB9
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5pZGwKaW5kZXggOTQ4NGI3NjIxZmNmMWZhZWNm
ZDVjNTM5NDZhNmU1ODRlMjk1NzUzOS4uOGQxOTE0YjNhNTg5MGE0NmVhZDQ0ZWQ2OTY4YTdmNGJk
NmRiNGY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9TZXJ2aWNlV29ya2Vy
SW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1NlcnZpY2VXb3JrZXJJ
bnRlcm5hbHMuaWRsCkBAIC0zOCw2ICszOCw4IEBACiAKICAgICBzZXF1ZW5jZTxCeXRlU3RyaW5n
PiBmZXRjaFJlc3BvbnNlSGVhZGVyTGlzdChGZXRjaFJlc3BvbnNlIHJlc3BvbnNlKTsKIAorICAg
IFByb21pc2U8Ym9vbGVhbj4gc2NoZWR1bGVQdXNoRXZlbnQob3B0aW9uYWwgRE9NU3RyaW5nIGRh
dGEpOworCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBwcm9jZXNzTmFtZTsKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc1Rocm90dGxlYWJsZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRN
YW5hZ2VyLmNwcAppbmRleCA4YjU0MGM1NzdiNmJkOGYyMWY3ZTE0MjU2ZDMwYzgwODJmMWVjZDU3
Li4yNzQ0NWI1YmQ3MzhmMzY5MWUzYTgwZGI4MTc1NjJkMDE3MzFlNDkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRN
YW5hZ2VyLmNwcApAQCAtMTA5LDYgKzEwOSwxOCBAQCB2b2lkIFNXQ29udGV4dE1hbmFnZXI6OmZp
cmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAg
c2VydmljZVdvcmtlci0+ZmlyZUFjdGl2YXRlRXZlbnQoKTsKIH0KIAordm9pZCBTV0NvbnRleHRN
YW5hZ2VyOjpmaXJlUHVzaEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIs
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiYmIGRhdGEsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spCit7CisgICAgYXV0byogc2VydmljZVdvcmtlciA9IG1f
d29ya2VyTWFwLmdldChpZGVudGlmaWVyKTsKKyAgICBpZiAoIXNlcnZpY2VXb3JrZXIpIHsKKyAg
ICAgICAgY2FsbGJhY2soZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc2Vy
dmljZVdvcmtlci0+ZmlyZVB1c2hFdmVudChXVEZNb3ZlKGRhdGEpLCBXVEZNb3ZlKGNhbGxiYWNr
KSk7Cit9CisKKwogdm9pZCBTV0NvbnRleHRNYW5hZ2VyOjp0ZXJtaW5hdGVXb3JrZXIoU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllciwgU2Vjb25kcyB0aW1lb3V0LCBGdW5jdGlvbjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byBzZXJ2aWNlV29ya2VyID0g
bV93b3JrZXJNYXAudGFrZShpZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaAppbmRleCAxOTEw
NTI3YWNkMDkyYjYyMzhlMGI5MGVhODIwMzhmMjIyZGQzMmE5Li5lYTM3MGI5N2FjN2Q3NjE4YjAx
MWE0YmNjN2YxMjNiN2E5MzYyN2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCkBAIC05MCw2ICs5MCw4
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNl
V29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBNZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cyYmLCBTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJiYgc291cmNlRGF0YSk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZpcmVQdXNoRXZl
bnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+
PiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgdGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTZWNvbmRz
IHRpbWVvdXQsIEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
aWRTYXZlU2NyaXB0c1RvRGlzayhTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2NyaXB0QnVmZmVy
JiYsIEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+JiYgaW1wb3J0ZWRTY3JpcHRzKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAppbmRleCBlNzE0NjAzZjM1NjQwOTE4YWUwNmE5YWZhOTFm
ODE5NzdkNTdhMzZhLi5iZGMyYTYzY2ZhMjUwNDM5NTBmMTI2OGJiMzU0NzZmYmM3MTJiNDE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUg
IkxvYWRlclN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyYXRlZ2llcy5oIgorI2luY2x1ZGUgIlB1c2hFdmVudC5oIgogI2luY2x1ZGUgIlNXQ29u
dGV4dE1hbmFnZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJGZXRjaC5oIgpAQCAtMjEyLDYgKzIxMywyOCBAQCB2b2lkIFNlcnZpY2VXb3Jr
ZXJUaHJlYWQ6OnF1ZXVlVGFza1RvRmlyZUFjdGl2YXRlRXZlbnQoKQogICAgIH0pOwogfQogCit2
b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnF1ZXVlVGFza1RvRmlyZVB1c2hFdmVudChzdGQ6Om9w
dGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4mJiBkYXRhLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNh
bGxiYWNrKQoreworICAgIGF1dG8mIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSA9IGRvd25jYXN0
PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oKmdsb2JhbFNjb3BlKCkpOworICAgIHNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZS5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFu
aXB1bGF0aW9uLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgc2VydmljZVdvcmtlckds
b2JhbFNjb3BlID0gUmVmIHsgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlIH0sIGRhdGEgPSBXVEZN
b3ZlKGRhdGEpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgeworICAg
ICAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAiU2VydmljZVdvcmtlclRocmVhZDo6cXVl
dWVUYXNrVG9GaXJlUHVzaEV2ZW50IGZpcmluZyBldmVudCBmb3Igd29ya2VyICUiIFBSSXU2NCwg
c2VydmljZVdvcmtlckdsb2JhbFNjb3BlLT50aHJlYWQoKS5pZGVudGlmaWVyKCkudG9VSW50NjQo
KSk7CisKKyAgICAgICAgYXV0byBwdXNoRXZlbnQgPSBQdXNoRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkucHVzaEV2ZW50LCB7IH0sIFdURk1vdmUoZGF0YSksIEV4dGVuZGFibGVFdmVudDo6SXNU
cnVzdGVkOjpZZXMpOworICAgICAgICBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUtPmRpc3BhdGNo
RXZlbnQocHVzaEV2ZW50KTsKKworICAgICAgICBwdXNoRXZlbnQtPndoZW5BbGxFeHRlbmRMaWZl
dGltZVByb21pc2VzQXJlU2V0dGxlZChbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIGV4dGVuZExpZmV0aW1lUHJvbWlzZXMp
IG11dGFibGUgeworICAgICAgICAgICAgYm9vbCBoYXNSZWplY3RlZEFueVByb21pc2UgPSBmYWxz
ZTsKKyAgICAgICAgICAgIGZvciAoYXV0byYgcHJvbWlzZSA6IGV4dGVuZExpZmV0aW1lUHJvbWlz
ZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAocHJvbWlzZS0+c3RhdHVzKCkgPT0gRE9NUHJvbWlz
ZTo6U3RhdHVzOjpSZWplY3RlZCkgeworICAgICAgICAgICAgICAgICAgICBoYXNSZWplY3RlZEFu
eVByb21pc2UgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYWxsYmFjayghaGFzUmVqZWN0ZWRB
bnlQcm9taXNlKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKIHZvaWQgU2VydmljZVdvcmtl
clRocmVhZDo6ZmluaXNoZWRFdmFsdWF0aW5nU2NyaXB0KCkKIHsKICAgICBBU1NFUlQoZ2xvYmFs
U2NvcGUoKS0+aXNDb250ZXh0VGhyZWFkKCkpOwpAQCAtMjQ0LDYgKzI2NywxMiBAQCB2b2lkIFNl
cnZpY2VXb3JrZXJUaHJlYWQ6OnN0YXJ0RmV0Y2hFdmVudE1vbml0b3JpbmcoKQogICAgIHN0YXJ0
SGVhcnRCZWF0VGltZXIoKTsKIH0KIAordm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpzdGFydFB1
c2hFdmVudE1vbml0b3JpbmcoKQoreworICAgIG1faXNIYW5kbGluZ1B1c2hFdmVudCA9IHRydWU7
CisgICAgc3RhcnRIZWFydEJlYXRUaW1lcigpOworfQorCiB2b2lkIFNlcnZpY2VXb3JrZXJUaHJl
YWQ6OnN0YXJ0SGVhcnRCZWF0VGltZXIoKQogewogICAgIC8vIFdlIGNhbm5vdCBkZXRlY3QgcmVz
cG9uc2l2ZW5lc3MgZm9yIHNlcnZpY2Ugd29ya2VycyBydW5uaW5nIG9uIHRoZSBtYWluIHRocmVh
ZCBieSB1c2luZyBhIG1haW4gdGhyZWFkIHRpbWVyLgpAQCAtMjY2LDcgKzI5NSw3IEBAIHZvaWQg
U2VydmljZVdvcmtlclRocmVhZDo6c3RhcnRIZWFydEJlYXRUaW1lcigpCiB2b2lkIFNlcnZpY2VX
b3JrZXJUaHJlYWQ6OmhlYXJ0QmVhdFRpbWVyRmlyZWQoKQogewogICAgIGlmICghbV9vbmdvaW5n
SGVhcnRCZWF0Q2hlY2spIHsKLSAgICAgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6Okluc3RhbGxp
bmcgfHwgbV9zdGF0ZSA9PSBTdGF0ZTo6QWN0aXZhdGluZyB8fCBtX2lzSGFuZGxpbmdGZXRjaEV2
ZW50IHx8IG1fbWVzc2FnZUV2ZW50Q291bnQpCisgICAgICAgIGlmIChtX3N0YXRlID09IFN0YXRl
OjpJbnN0YWxsaW5nIHx8IG1fc3RhdGUgPT0gU3RhdGU6OkFjdGl2YXRpbmcgfHwgbV9pc0hhbmRs
aW5nRmV0Y2hFdmVudCB8fCBtX2lzSGFuZGxpbmdQdXNoRXZlbnQgfHwgbV9tZXNzYWdlRXZlbnRD
b3VudCkKICAgICAgICAgICAgIHN0YXJ0SGVhcnRCZWF0VGltZXIoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaAppbmRleCAyMTgyOTU1N2MwNjQ0YjQ3MGFm
MGI3MTg5YTBkNWZiYjQ2Zjg3MGViLi4wNjgxYjMzY2ZjY2FiZjM5MDBhNzQ3ZjcwZTExNTg3MjEw
OGMwMGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCkBAIC02Niw2ICs2Niw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHF1ZXVlVGFza1RvUG9zdE1lc3NhZ2UoTWVzc2FnZVdpdGhNZXNzYWdlUG9y
dHMmJiwgU2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpOwogICAgIHZvaWQg
cXVldWVUYXNrVG9GaXJlSW5zdGFsbEV2ZW50KCk7CiAgICAgdm9pZCBxdWV1ZVRhc2tUb0ZpcmVB
Y3RpdmF0ZUV2ZW50KCk7CisgICAgdm9pZCBxdWV1ZVRhc2tUb0ZpcmVQdXNoRXZlbnQoc3RkOjpv
cHRpb25hbDxWZWN0b3I8dWludDhfdD4+JiYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYpOwogCiAg
ICAgU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
c2VydmljZVdvcmtlcklkZW50aWZpZXI7IH0KICAgICBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3Jr
ZXJKb2JEYXRhSWRlbnRpZmllcj4gam9iRGF0YUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X2pvYkRhdGFJZGVudGlmaWVyOyB9CkBAIC03Myw2ICs3NCw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc3RhcnRGZXRjaEV2ZW50TW9uaXRvcmluZygpOwogICAgIHZvaWQgc3RvcEZldGNoRXZlbnRN
b25pdG9yaW5nKCkgeyBtX2lzSGFuZGxpbmdGZXRjaEV2ZW50ID0gZmFsc2U7IH0KKyAgICB2b2lk
IHN0YXJ0UHVzaEV2ZW50TW9uaXRvcmluZygpOworICAgIHZvaWQgc3RvcFB1c2hFdmVudE1vbml0
b3JpbmcoKSB7IG1faXNIYW5kbGluZ1B1c2hFdmVudCA9IGZhbHNlOyB9CiAKIHByb3RlY3RlZDoK
ICAgICBSZWY8V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0
IFdvcmtlclBhcmFtZXRlcnMmLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYsIFJlZjxTZWN1cml0eU9y
aWdpbj4mJiB0b3BPcmlnaW4pIGZpbmFsOwpAQCAtMTAxLDYgKzEwNCw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2RvZXNIYW5kbGVGZXRjaCB7IGZhbHNlIH07CiAKICAgICBib29sIG1faXNIYW5k
bGluZ0ZldGNoRXZlbnQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0hhbmRsaW5nUHVzaEV2ZW50
IHsgZmFsc2UgfTsKICAgICB1aW50NjRfdCBtX21lc3NhZ2VFdmVudENvdW50IHsgMCB9OwogICAg
IGVudW0gY2xhc3MgU3RhdGUgeyBJZGxlLCBTdGFydGluZywgSW5zdGFsbGluZywgQWN0aXZhdGlu
ZyB9OwogICAgIFN0YXRlIG1fc3RhdGUgeyBTdGF0ZTo6SWRsZSB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eS5jcHAKaW5kZXggNDFiNmYyNTFmNTQyNDY0YjU1ZTRlYTU1ODY1NTdk
ZTExMDU1MWRiNy4uMDczYjQyZTkzNmViZmRlMTliOTVlYWY1MTA1ODUwZTI0YTliOTRjZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCkBAIC0xMjIsNiArMTIyLDEwIEBA
IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6flNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSgpCiB7
CiAgICAgQVNTRVJUKGFsbFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94aWVzKCkuY29udGFpbnModGhp
cykpOwogICAgIGFsbFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94aWVzKCkucmVtb3ZlKHRoaXMpOwor
CisgICAgYXV0byBwdXNoVGFza3MgPSBXVEZNb3ZlKG1fb25nb2luZ1B1c2hUYXNrcyk7CisgICAg
Zm9yIChhdXRvJiBjYWxsYmFjayA6IHB1c2hUYXNrcy52YWx1ZXMoKSkKKyAgICAgICAgY2FsbGJh
Y2soZmFsc2UpOwogfQogCiB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2V0TGFzdE5h
dmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoYm9vbCB3YXNBcHBJbml0aWF0ZWQpCkBAIC0yOTQsNiAr
Mjk4LDI4IEBAIHZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpkaWRTYXZlU2NyaXB0c1Rv
RGlzayhTY3JpcHRCdWZmZXImJiBzY3JpcHQsIEhhc2hNCiAgICAgfSk7CiB9CiAKK3ZvaWQgU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5OjpmaXJlUHVzaEV2ZW50KHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PHVpbnQ4X3Q+PiYmIGRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJh
Y2spCit7CisgICAgaWYgKG1fb25nb2luZ1B1c2hUYXNrcy5pc0VtcHR5KCkpCisgICAgICAgIHRo
cmVhZCgpLnN0YXJ0UHVzaEV2ZW50TW9uaXRvcmluZygpOworCisgICAgYXV0byBpZGVudGlmaWVy
ID0gKyttX3B1c2hUYXNrc0NvdW50ZXI7CisgICAgQVNTRVJUKCFtX29uZ29pbmdQdXNoVGFza3Mu
Y29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fb25nb2luZ1B1c2hUYXNrcy5hZGQoaWRlbnRp
ZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIGJvb2wgaXNQb3N0ZWQgPSBwb3N0VGFza0Zv
ck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
UmVmIHsgKnRoaXMgfSwgaWRlbnRpZmllciwgZGF0YSA9IFdURk1vdmUoZGF0YSldKGF1dG8mKSBt
dXRhYmxlIHsKKyAgICAgICAgdGhyZWFkKCkucXVldWVUYXNrVG9GaXJlUHVzaEV2ZW50KFdURk1v
dmUoZGF0YSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwg
aWRlbnRpZmllcl0oYm9vbCByZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgY2FsbE9uTWFp
blRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGlk
ZW50aWZpZXIsIHJlc3VsdF0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBj
YWxsYmFjayA9IG1fb25nb2luZ1B1c2hUYXNrcy50YWtlKGlkZW50aWZpZXIpKQorICAgICAgICAg
ICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQpOworICAgICAgICAgICAgICAgIGlmIChtX29uZ29p
bmdQdXNoVGFza3MuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICB0aHJlYWQoKS5zdG9w
UHVzaEV2ZW50TW9uaXRvcmluZygpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAg
IH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgIGlmICghaXNQb3N0ZWQpCisg
ICAgICAgIG1fb25nb2luZ1B1c2hUYXNrcy50YWtlKGlkZW50aWZpZXIpKGZhbHNlKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAppbmRleCAzMDQzZGIxM2YwNjc1Yjli
Y2RiNWI2MzgyZjRkODI5OTBjNmUzMzBjLi5jZWZiYzVlMTYzNjhjMzhhODNhN2UxMTVmZDU3NDcy
Y2FmNWM1Yjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaApAQCAtODAsNiAr
ODAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihNZXNz
YWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJiYpOwogICAg
IHZvaWQgZmlyZUluc3RhbGxFdmVudCgpOwogICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoKTsK
KyAgICB2b2lkIGZpcmVQdXNoRXZlbnQoc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+JiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworCiAgICAgdm9pZCBkaWRTYXZlU2Ny
aXB0c1RvRGlzayhTY3JpcHRCdWZmZXImJiwgSGFzaE1hcDxVUkwsIFNjcmlwdEJ1ZmZlcj4mJiBp
bXBvcnRlZFNjcmlwdHMpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRMYXN0TmF2aWdh
dGlvbldhc0FwcEluaXRpYXRlZChib29sKTsKQEAgLTExMiw2ICsxMTQsOCBAQCBwcml2YXRlOgog
CiAgICAgU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5IG1faW5zcGVjdG9yUHJveHk7CiAgICAg
SGFzaE1hcDxzdGQ6OnBhaXI8U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVu
dGlmaWVyPiwgUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50Pj4gbV9vbmdvaW5nRmV0Y2hU
YXNrczsKKyAgICB1aW50NjRfdCBtX3B1c2hUYXNrc0NvdW50ZXIgeyAwIH07CisgICAgSGFzaE1h
cDx1aW50NjRfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4+IG1fb25nb2luZ1B1c2hU
YXNrczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk5NGRkOWU1NDgyNTE1
MzI3NTdhZjA2ZTVmNGM0NjQ5NWM1OTBiOWIuLjMwZjM2ZGZkNGUzNzMyOTM2YmZkOGUzNTFiYTEy
YmE4ZTljM2EwODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMC0wMSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZSBwdXNoIGV2ZW50IGhhbmRsZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTAwOAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vODM3MTA3NjA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAg
ICAgICAgKiBodHRwL3dwdC9wdXNoLWFwaS9wdXNoRXZlbnQuYW55LmpzOgorICAgICAgICAqIGh0
dHAvd3B0L3B1c2gtYXBpL3B1c2hFdmVudC5hbnkuc2VydmljZXdvcmtlci1leHBlY3RlZC50eHQ6
CisKIDIwMjEtMTAtMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBQdXNoRXZlbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CmluZGV4IDM0ZWUzZDkwNzI5N2ViODBhNzRiYWU0ZTllNzc1N2VlZmQ3NmRiZjQuLjMwMTc1NWQ2
NTJkYjcxMjMwYjc2OTg5OWJjNWY1MzVlNmQxZTMyYWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTEwLTAxICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgU2VydmljZVdvcmtlckds
b2JhbFNjb3BlIHB1c2ggZXZlbnQgaGFuZGxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMDA4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84Mzcx
MDc2MD4KKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9wdXNoLWFwaS9pZGxoYXJuZXNzLmh0dHBzLmFueS5zZXJ2aWNld29y
a2VyLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0xMC0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFB1c2hFdmVudApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvcHVzaC1hcGkvcHVzaEV2ZW50LmFueS5qcyBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3B1c2gtYXBpL3B1c2hFdmVudC5hbnkuanMKaW5kZXggMjcwZDJjMDMy
ZDQ5NDhjNzhhOGU0YjJlYzRjZTQ1YWFhZGFiOTA0NC4uMzFjODExMDEzYzU1YTk5YTE4ZjI2YzU5
NGYzNjQ2Y2Y2OGRjOTkwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvcHVzaC1h
cGkvcHVzaEV2ZW50LmFueS5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9wdXNoLWFwaS9w
dXNoRXZlbnQuYW55LmpzCkBAIC01MiwzICs1Miw1MyBAQCB0ZXN0KCgpID0+IHsKICAgICBjb25z
dCBldmVudCA9IG5ldyBQdXNoRXZlbnQoInB1c2giLCB7IGRhdGEgOiAie3Rlc3QgOiAxfSIgfSk7
CiAgICAgYXNzZXJ0X3Rocm93c19kb20oIlN5bnRheEVycm9yIiwgKCkgPT4gZXZlbnQuZGF0YS5q
c29uKCkpOwogfSwgIlB1c2hFdmVudCB3aXRoIGJhZCBqc29uIik7CisKK2xldCBhY3RpdmF0ZVBy
b21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNlbGYub25hY3RpdmF0ZSA9IHJlc29sdmUp
OworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgIHJldHVybiBhY3RpdmF0ZVByb21pc2U7
Cit9LCAiV2FpdCBmb3IgYWN0aXZhdGUgcHJvbWlzZSIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMg
KCkgPT4geworICAgIGNvbnN0IHByb21pc2UgPSBzZWxmLmludGVybmFscy5zY2hlZHVsZVB1c2hF
dmVudCgidGVzdCIpOworICAgIGNvbnN0IGV2ZW50ID0gYXdhaXQgbmV3IFByb21pc2UocmVzb2x2
ZSA9PiBzZWxmLm9ucHVzaCA9IHJlc29sdmUpOworICAgIGFzc2VydF9lcXVhbHMoZXZlbnQuZGF0
YS50ZXh0KCksICJ0ZXN0Iik7CisgICAgYXNzZXJ0X3RydWUoYXdhaXQgcHJvbWlzZSk7Cit9LCAi
U2ltdWxhdGluZyBmaXJpbmcgb2YgYSBwdXNoIGV2ZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3lu
YyAoKSA9PiB7CisgICAgaWYgKCFzZWxmLmludGVybmFscykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbGV0IHJlc29sdmVXYWl0VW50aWxQcm9taXNlOworICAgIGNvbnN0IHdhaXRVbnRpbFByb21p
c2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHJlc29sdmVXYWl0VW50aWxQcm9taXNlID0gcmVz
b2x2ZSk7CisKKyAgICBsZXQgaXNQdXNoRXZlbnRQcm9taXNlUmVzb2x2ZWQgPSBmYWxzZTsKKyAg
ICBjb25zdCBwcm9taXNlID0gaW50ZXJuYWxzLnNjaGVkdWxlUHVzaEV2ZW50KCJ0ZXN0Iik7Cisg
ICAgcHJvbWlzZS50aGVuKCgpID0+IGlzUHVzaEV2ZW50UHJvbWlzZVJlc29sdmVkID0gdHJ1ZSk7
CisKKyAgICBjb25zdCBldmVudCA9IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2VsZi5v
bnB1c2ggPSAoZXZlbnQpID0+IHsKKyAgICAgICAgZXZlbnQud2FpdFVudGlsKHdhaXRVbnRpbFBy
b21pc2UpOworICAgICAgICByZXNvbHZlKGV2ZW50KTsKKyAgICB9KTsKKyAgICBhc3NlcnRfZXF1
YWxzKGV2ZW50LmRhdGEudGV4dCgpLCAidGVzdCIpOworCisgICAgYXdhaXQgbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiBzZWxmLnNldFRpbWVvdXQocmVzb2x2ZSwgMTAwKSk7CisgICAgYXNzZXJ0X2Zh
bHNlKGlzUHVzaEV2ZW50UHJvbWlzZVJlc29sdmVkKTsKKworICAgIHJlc29sdmVXYWl0VW50aWxQ
cm9taXNlKCk7CisgICAgYXNzZXJ0X3RydWUoYXdhaXQgcHJvbWlzZSk7Cit9LCAiU2ltdWxhdGlu
ZyBmaXJpbmcgb2YgYSBwdXNoIGV2ZW50IC0gc3VjY2Vzc2Z1bCB3YWl0VW50aWwiKTsKKworcHJv
bWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgICBpZiAoIXNlbGYuaW50ZXJuYWxzKQorICAgICAg
ICByZXR1cm47CisKKyAgICBjb25zdCBwcm9taXNlID0gaW50ZXJuYWxzLnNjaGVkdWxlUHVzaEV2
ZW50KCJ0ZXN0Iik7CisgICAgY29uc3QgZXZlbnQgPSBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IHNlbGYub25wdXNoID0gKGV2ZW50KSA9PiB7CisgICAgICAgIGV2ZW50LndhaXRVbnRpbChQ
cm9taXNlLnJlc29sdmUoKSk7CisgICAgICAgIGV2ZW50LndhaXRVbnRpbChQcm9taXNlLnJlamVj
dCgnZXJyb3InKSk7CisgICAgICAgIHJlc29sdmUoZXZlbnQpOworICAgIH0pOworICAgIGFzc2Vy
dF9lcXVhbHMoZXZlbnQuZGF0YS50ZXh0KCksICJ0ZXN0Iik7CisgICAgYXNzZXJ0X2ZhbHNlKGF3
YWl0IHByb21pc2UpOworfSwgIlNpbXVsYXRpbmcgZmlyaW5nIG9mIGEgcHVzaCBldmVudCAtIHVu
c3VjY2Vzc2Z1bCB3YWl0VW50aWwiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L3B1c2gtYXBpL3B1c2hFdmVudC5hbnkuc2VydmljZXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9wdXNoLWFwaS9wdXNoRXZlbnQuYW55LnNlcnZpY2V3b3JrZXItZXhw
ZWN0ZWQudHh0CmluZGV4IDNiNjFhZWRhMDY0YTk1M2JmM2RhNWM5YTZiMzM2ZTBmZTAwM2MzMjYu
LjNmY2Q0NmUzOWYzN2NiYzlkMzYwM2RlMzQ0YTEzYTQ4YjdiZWUyYzYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3B1c2gtYXBpL3B1c2hFdmVudC5hbnkuc2VydmljZXdvcmtlci1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvcHVzaC1hcGkvcHVzaEV2ZW50
LmFueS5zZXJ2aWNld29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMyw0ICszLDggQEAgUEFTUyBQdXNo
RXZlbnQgd2l0aG91dCBkYXRhCiBQQVNTIFB1c2hFdmVudCB3aXRoIGRhdGEKIFBBU1MgUHVzaEV2
ZW50IGFycmF5QnVmZmVyIGhhbmRsaW5nCiBQQVNTIFB1c2hFdmVudCB3aXRoIGJhZCBqc29uCitQ
QVNTIFdhaXQgZm9yIGFjdGl2YXRlIHByb21pc2UKK1BBU1MgU2ltdWxhdGluZyBmaXJpbmcgb2Yg
YSBwdXNoIGV2ZW50CitQQVNTIFNpbXVsYXRpbmcgZmlyaW5nIG9mIGEgcHVzaCBldmVudCAtIHN1
Y2Nlc3NmdWwgd2FpdFVudGlsCitQQVNTIFNpbXVsYXRpbmcgZmlyaW5nIG9mIGEgcHVzaCBldmVu
dCAtIHVuc3VjY2Vzc2Z1bCB3YWl0VW50aWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wdXNoLWFwaS9pZGxoYXJuZXNzLmh0dHBzLmFu
eS5zZXJ2aWNld29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcHVzaC1hcGkvaWRsaGFybmVzcy5odHRwcy5hbnkuc2VydmljZXdv
cmtlci1leHBlY3RlZC50eHQKaW5kZXggYTc1ZjdmY2JkNDA2Y2NiNzQ1OWEyNDQ5YThjNjM0YmJk
MWE1NTNiYy4uODY4OWEyNjY3NDQ2ZDAzYzIyZjk5MTNhMmFlN2JhZDQxN2JkYjQwZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wdXNoLWFw
aS9pZGxoYXJuZXNzLmh0dHBzLmFueS5zZXJ2aWNld29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3B1c2gtYXBpL2lkbGhh
cm5lc3MuaHR0cHMuYW55LnNlcnZpY2V3b3JrZXItZXhwZWN0ZWQudHh0CkBAIC03OSw4ICs3OSw4
IEBAIEZBSUwgUHVzaFN1YnNjcmlwdGlvbkNoYW5nZUV2ZW50IGludGVyZmFjZTogbmV3IFB1c2hT
dWJzY3JpcHRpb25DaGFuZ2VFdmVudCgicHVzCiBGQUlMIFB1c2hTdWJzY3JpcHRpb25DaGFuZ2VF
dmVudCBpbnRlcmZhY2U6IG5ldyBQdXNoU3Vic2NyaXB0aW9uQ2hhbmdlRXZlbnQoInB1c2hzdWJz
Y3JpcHRpb25jaGFuZ2UiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9sZFN1YnNjcmlwdGlvbiIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2VxdWFsczogVW5leHBlY3RlZCBleGNlcHRpb24g
d2hlbiBldmFsdWF0aW5nIG9iamVjdCBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJSZWZl
cmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogUHVzaFN1YnNjcmlwdGlvbkNoYW5nZUV2
ZW50IgogRkFJTCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRl
IHB1c2hNYW5hZ2VyIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhhdmUg
YSBwcm9wZXJ0eSAicHVzaE1hbmFnZXIiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiByZWdpc3RyYXRpb24gbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJwdXNoTWFuYWdlciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2lu
aGVyaXRzOiBwcm9wZXJ0eSAicHVzaE1hbmFnZXIiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hh
aW4KLUZBSUwgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogYXR0cmlidXRlIG9u
cHVzaCBhc3NlcnRfb3duX3Byb3BlcnR5OiBUaGUgZ2xvYmFsIG9iamVjdCBtdXN0IGhhdmUgYSBw
cm9wZXJ0eSAib25wdXNoIiBleHBlY3RlZCBwcm9wZXJ0eSAib25wdXNoIiBtaXNzaW5nCitQQVNT
IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvbnB1c2gKIEZB
SUwgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogYXR0cmlidXRlIG9ucHVzaHN1
YnNjcmlwdGlvbmNoYW5nZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBUaGUgZ2xvYmFsIG9iamVjdCBt
dXN0IGhhdmUgYSBwcm9wZXJ0eSAib25wdXNoc3Vic2NyaXB0aW9uY2hhbmdlIiBleHBlY3RlZCBw
cm9wZXJ0eSAib25wdXNoc3Vic2NyaXB0aW9uY2hhbmdlIiBtaXNzaW5nCi1GQUlMIFNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZSBpbnRlcmZhY2U6IHNlbGYgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJv
bnB1c2giIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9vd25fcHJvcGVydHk6IGV4cGVjdGVk
IHByb3BlcnR5ICJvbnB1c2giIG1pc3NpbmcKK1BBU1MgU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
IGludGVyZmFjZTogc2VsZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9ucHVzaCIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUKIEZBSUwgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogc2Vs
ZiBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9ucHVzaHN1YnNjcmlwdGlvbmNoYW5nZSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X293bl9wcm9wZXJ0eTogZXhwZWN0ZWQgcHJvcGVydHkgIm9u
cHVzaHN1YnNjcmlwdGlvbmNoYW5nZSIgbWlzc2luZwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>