<?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>202400</bug_id>
          
          <creation_ts>2019-10-01 05:20:16 -0700</creation_ts>
          <short_desc>Use strongly typed identifiers for webrtc sockets</short_desc>
          <delta_ts>2019-10-02 02:43:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</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>
          
          <blocked>202403</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1575502</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-01 05:20:16 -0700</bug_when>
    <thetext>Use strongly typed identifiers for webrtc sockets</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575507</commentid>
    <comment_count>1</comment_count>
      <attachid>379896</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-01 05:32:11 -0700</bug_when>
    <thetext>Created attachment 379896
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575510</commentid>
    <comment_count>2</comment_count>
      <attachid>379897</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-01 06:17:43 -0700</bug_when>
    <thetext>Created attachment 379897
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575513</commentid>
    <comment_count>3</comment_count>
      <attachid>379898</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-01 06:26:05 -0700</bug_when>
    <thetext>Created attachment 379898
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575570</commentid>
    <comment_count>4</comment_count>
      <attachid>379911</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-01 09:31:19 -0700</bug_when>
    <thetext>Created attachment 379911
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575594</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-01 10:36:15 -0700</bug_when>
    <thetext>Any idea why GTK bot has some issues?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575666</commentid>
    <comment_count>6</comment_count>
      <attachid>379934</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-01 12:51:55 -0700</bug_when>
    <thetext>Created attachment 379934
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575667</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-01 12:52:25 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #5)
&gt; Any idea why GTK bot has some issues?

Attempted to re-upload the patch to see if it fixes it. The error seems to refer to outdated code...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575674</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-10-01 13:04:34 -0700</bug_when>
    <thetext>I think the problem is with the `using namespace WebCore` statements being placed outside of the WebKit namespace. With unified sources, the modified source files get clobbered together with others, and the additional namespace leaks produce collisions with names coming from various X11 headers.

AFAIK in general the `using namespace` statements have to be limited to some other namespace for the unified sources build to avoid errors like these, so I&apos;d recommend shifting those statements a few lines downwards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575675</commentid>
    <comment_count>9</comment_count>
      <attachid>379934</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-01 13:08:13 -0700</bug_when>
    <thetext>Comment on attachment 379934
Patch

r=me but please make GTK port happy before landing. Zan is likely right about the naming conflict due to your new &quot;using namespace WebCore;&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575896</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-02 00:48:10 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #8)
&gt; I think the problem is with the `using namespace WebCore` statements being
&gt; placed outside of the WebKit namespace. With unified sources, the modified
&gt; source files get clobbered together with others, and the additional
&gt; namespace leaks produce collisions with names coming from various X11
&gt; headers.
&gt; 
&gt; AFAIK in general the `using namespace` statements have to be limited to some
&gt; other namespace for the unified sources build to avoid errors like these, so
&gt; I&apos;d recommend shifting those statements a few lines downwards.

Thanks, will do!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575900</commentid>
    <comment_count>11</comment_count>
      <attachid>379998</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-02 01:01:04 -0700</bug_when>
    <thetext>Created attachment 379998
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575903</commentid>
    <comment_count>12</comment_count>
      <attachid>379999</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-02 01:28:47 -0700</bug_when>
    <thetext>Created attachment 379999
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575907</commentid>
    <comment_count>13</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-10-02 01:39:14 -0700</bug_when>
    <thetext>Remaining WPE build failure is due to LibWebRTCSocketIdentifier being used in LibWebRTCSocketFactory.cpp without the using-namespace declaration for WebCore. Unclear to me why only WPE trips up on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575912</commentid>
    <comment_count>14</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-10-02 01:58:13 -0700</bug_when>
    <thetext>Latest wpe error is related to missing symbols:
[3210/3305] Linking CXX shared library lib/libWPEWebKit-1.0.so.3.6.0
WebKit::NetworkProcess::NetworkProcess(WebKit::AuxiliaryProcessInitializationParameters&amp;&amp;): error: undefined reference to &apos;WebKit::LegacyCustomProtocolManager::LegacyCustomProtocolManager(WebKit::NetworkProcess&amp;)&apos;
Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp.o:UnifiedSource-72468c22-2.cpp:function WebKit::NetworkProcess::NetworkProcess(WebKit::AuxiliaryProcessInitializationParameters&amp;&amp;): error: undefined reference to &apos;WebKit::LegacyCustomProtocolManager::supplementName()&apos;
Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-sources/UnifiedSource-88d1702b-20.cpp.o:UnifiedSource-88d1702b-20.cpp:function WebKit::NetworkProcessProxy::didClose(IPC::Connection&amp;): error: undefined reference to &apos;WebKit::LegacyCustomProtocolManagerProxy::invalidate()&apos;
Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-sources/UnifiedSource-88d1702b-20.cpp.o:UnifiedSource-88d1702b-20.cpp:function non-virtual thunk to WebKit::NetworkProcessProxy::didClose(IPC::Connection&amp;): error: undefined reference to &apos;WebKit::LegacyCustomProtocolManagerProxy::invalidate()&apos;
Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-sources/UnifiedSource-88d1702b-20.cpp.o:UnifiedSource-88d1702b-20.cpp:function WebKit::NetworkProcessProxy::NetworkProcessProxy(WebKit::WebProcessPool&amp;): error: undefined reference to &apos;WebKit::LegacyCustomProtocolManagerProxy::LegacyCustomProtocolManagerProxy(WebKit::NetworkProcessProxy&amp;)&apos;
Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-sources/UnifiedSource-88d1702b-20.cpp.o:UnifiedSource-88d1702b-20.cpp:function WebKit::NetworkProcessProxy::~NetworkProcessProxy(): error: undefined reference to &apos;WebKit::LegacyCustomProtocolManagerProxy::~LegacyCustomProtocolManagerProxy()&apos;
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

This seems related with https://trac.webkit.org/changeset/250597.
I&apos;ll land this patch and will see if it breaks WPE/GTK on webkit console.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575918</commentid>
    <comment_count>15</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-10-02 02:12:54 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #14)
&gt; Latest wpe error is related to missing symbols:
&gt; [3210/3305] Linking CXX shared library lib/libWPEWebKit-1.0.so.3.6.0
&gt; WebKit::NetworkProcess::NetworkProcess(WebKit::
&gt; AuxiliaryProcessInitializationParameters&amp;&amp;): error: undefined reference to
&gt; &apos;WebKit::LegacyCustomProtocolManager::LegacyCustomProtocolManager(WebKit::
&gt; NetworkProcess&amp;)&apos;
&gt; Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-
&gt; sources/UnifiedSource-72468c22-2.cpp.o:UnifiedSource-72468c22-2.cpp:function
&gt; WebKit::NetworkProcess::NetworkProcess(WebKit::
&gt; AuxiliaryProcessInitializationParameters&amp;&amp;): error: undefined reference to
&gt; &apos;WebKit::LegacyCustomProtocolManager::supplementName()&apos;
&gt; Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-
&gt; sources/UnifiedSource-88d1702b-20.cpp.o:UnifiedSource-88d1702b-20.cpp:
&gt; function WebKit::NetworkProcessProxy::didClose(IPC::Connection&amp;): error:
&gt; undefined reference to
&gt; &apos;WebKit::LegacyCustomProtocolManagerProxy::invalidate()&apos;
&gt; Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-
&gt; sources/UnifiedSource-88d1702b-20.cpp.o:UnifiedSource-88d1702b-20.cpp:
&gt; function non-virtual thunk to
&gt; WebKit::NetworkProcessProxy::didClose(IPC::Connection&amp;): error: undefined
&gt; reference to &apos;WebKit::LegacyCustomProtocolManagerProxy::invalidate()&apos;
&gt; Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-
&gt; sources/UnifiedSource-88d1702b-20.cpp.o:UnifiedSource-88d1702b-20.cpp:
&gt; function
&gt; WebKit::NetworkProcessProxy::NetworkProcessProxy(WebKit::WebProcessPool&amp;):
&gt; error: undefined reference to
&gt; &apos;WebKit::LegacyCustomProtocolManagerProxy::
&gt; LegacyCustomProtocolManagerProxy(WebKit::NetworkProcessProxy&amp;)&apos;
&gt; Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-
&gt; sources/UnifiedSource-88d1702b-20.cpp.o:UnifiedSource-88d1702b-20.cpp:
&gt; function WebKit::NetworkProcessProxy::~NetworkProcessProxy(): error:
&gt; undefined reference to
&gt; &apos;WebKit::LegacyCustomProtocolManagerProxy::
&gt; ~LegacyCustomProtocolManagerProxy()&apos;
&gt; collect2: error: ld returned 1 exit status
&gt; ninja: build stopped: subcommand failed.
&gt; 
&gt; This seems related with https://trac.webkit.org/changeset/250597.
&gt; I&apos;ll land this patch and will see if it breaks WPE/GTK on webkit console.

Those get fixed by doing a clean build. I don&apos;t think it&apos;s possible to trigger a clean build in EWS, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575922</commentid>
    <comment_count>16</comment_count>
      <attachid>379999</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-02 02:42:06 -0700</bug_when>
    <thetext>Comment on attachment 379999
Patch for landing

Clearing flags on attachment: 379999

Committed r250599: &lt;https://trac.webkit.org/changeset/250599&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575923</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-02 02:42:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575925</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-02 02:43:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/55904598&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379896</attachid>
            <date>2019-10-01 05:32:11 -0700</date>
            <delta_ts>2019-10-01 06:17:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202400-20191001143210.patch</filename>
            <type>text/plain</type>
            <size>44399</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk4MTRkZDQ0Y2VmMTJj
Y2YyNDU5YmRiZWY4Nzg4NjRjODFjNmViYS4uMzY3NGI4NmMwMWFmNjc0MDVmMzc2YzEzNTlkNTFj
MTdiYzVhNTcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTEwLTAxICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc3Ryb25nbHkgdHlw
ZWQgaWRlbnRpZmllcnMgZm9yIHdlYnJ0YyBzb2NrZXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MDAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGNoYW5nZSBvZiBiZWhhdmlv
ci4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaC4KKwogMjAxOS0xMC0w
MSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUXVldWUgZXZl
bnRzIGFuZCBwcm9taXNlIHJlc29sdXRpb24gaW4gUlRDUGVlckNvbm5lY3Rpb24gd2hlbiBzdXNw
ZW5kZWQgZm9yIHBhZ2UgY2FjaGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjYyYjZjZmNhYzlkMjQ0YjcwODcwMTU0
NmRlYmIzYzZjZWExNDA4My4uNDgzN2NkYTcxZjJmNGZhNTkzNDAxZTk4NTg2ZGFiNWNjMDBiMjQy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAxOS0xMC0wMSAgeW91ZW5uIGZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHN0cm9uZ2x5IHR5cGVkIGlkZW50aWZp
ZXJzIGZvciB3ZWJydGMgc29ja2V0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAyNDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVmYWN0b3JpbmcgdG8gdXNlIExpYldlYlJUQ1NvY2tldElkZW50aWZp
ZXIgaW5zdGVhZCBvZiB1aW50NjRfdC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENT
b2NrZXRDbGllbnQ6OkxpYldlYlJUQ1NvY2tldENsaWVudCk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1JUQ1Byb3ZpZGVyOjpjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6d3JhcE5ld1RDUENvbm5lY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmFkZFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtSVENQcm92aWRlcjo6dGFrZVNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSVENQcm92aWRlcjo6bmV3Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
VENQcm92aWRlcjo6ZGlkUmVjZWl2ZU5ldHdvcmtSVENTb2NrZXRNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjbG9zZUxpc3RlbmluZ1NvY2tldHMpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNhbGxTb2NrZXQpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1JUQ1NvY2tldDo6TmV0d29ya1JUQ1NvY2tldCk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaDoKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmg6CisgICAgICAgIChXZWJLaXQ6Okxp
YldlYlJUQ05ldHdvcms6OnNvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2Nr
ZXQ6OkxpYldlYlJUQ1NvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENT
b2NrZXRGYWN0b3J5OjpjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpM
aWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVVZHBTb2NrZXQpOgorICAgICAgICAoV2ViS2l0
OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQpOgorICAgICAg
ICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVOZXdDb25uZWN0aW9uU29j
a2V0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tl
dEZhY3RvcnkuaDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6c29j
a2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6cmVzb2x2ZXIp
OgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojp0YWtlUmVzb2x2ZXIp
OgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpkaXNhYmxlTm9uTG9j
YWxob3N0Q29ubmVjdGlvbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
V2ViUlRDU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU29ja2V0OjpzaWduYWxP
bk5ldHdvcmtUaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTb2NrZXQ6OldlYlJUQ1Nv
Y2tldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6c2lnbmFsU2VudFBhY2tldCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6c2lnbmFsQ29ubmVjdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6c2lnbmFsQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSVENTb2NrZXQ6OnNpZ25hbE5ld0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW46CisKIDIwMTktMTAtMDEgIHlvdWVu
biBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSByYWNlcyBjb25k
aXRpb24gd2hlbiB2YWxpZGF0aW5nIGNhcHR1cmUgc2FuZGJveCBleHRlbnNpb24gcmV2b2NhdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKaW5kZXggNTRhZjIyZGFkZTY1M2ZkM2FiYTc4NmMxNTlmZTAwZDJm
MGE4YmQ5NC4uZGRiMzU5ZTM5MTI0ODc3Zjg0MGNkODA2OTU1ZGVkMzExMDA2ZTM4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCkBAIC0xMTU5LDYgKzExNTksNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDTWFjcm9zLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUHJvdmlkZXIuaAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENTb2NrZXRJZGVudGlmaWVyLmgKIAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrLmgKICAgICBwbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRNb2Nr
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBhMTc2MWM2N2I0Yzk1ZDhlYWI0NzdhN2MwMGFlNTU0NWQyM2E3OWVlLi5lY2RiNzkw
NzhhOTM4ZDY1YmI5MDI5NzBhOWZlZmM1NjgwMWNkZmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDIzLDYgKzEwMjMsNyBA
QAogCQkzRkZGRjlBOTE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBNzE1
OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggKi87IH07CiAJCTNGRkZG
OUFFMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGRkZGOUFDMTU5RDlCMDYwMDIw
QkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCAqLzsgfTsKIAkJNDEwNzkwOEMxRkMzRjAz
MzAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDEwNzkwOEExRkMzRTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdp
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQx
MEU0NDYxMjM0MzczRTkwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTBFNDQ1RjIzNDM3
M0FEMDAwMTczRDQgLyogTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMTAzQUFDMUUzOTc5MTAwMDc2
OUYwMyAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUE4MUUzOTc5MEEwMDc2OUYwMyAvKiBS
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCAqLzsgfTsKIAkJNDExMDNBQUMxRTM5NzkxMDAw
NzY5RjE0IC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FBODFFMzk3OTBBMDA3NjlG
MTQgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuaCAqLzsgfTsKIAkJNDExMDNB
QUQxRTM5NzkxMDAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDNBQTkxRTM5Nzkw
QTAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oICovOyB9OwpAQCAtNzE3
Myw2ICs3MTc0LDcgQEAKIAkJNDEwNjI2QTcyMjgwQTIyQTAwNkQxQjU5IC8qIEpTQXVkaW9Ob2Rl
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXVkaW9O
b2RlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwNzkwOEExRkMz
RTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDbGllbnRPcmlnaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEw
QjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwRTQ0NUYyMzQzNzNBRDAwMDE3M0Q0IC8q
IExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oOyBwYXRoID0gbGlid2VicnRjL0xpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEx
MDNBQTcxRTM5NzkwQTAwNzY5RjAzIC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEwM0FBNzFFMzk3
OTBBMDA3NjlGMTQgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEwM0FBODFFMzk3
OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc3NjksNiArMTc3NzEsNyBAQAogCQkJCTQxNTc0
NzQ0MUUzODY5OUUwMEU5MTREOCAvKiBMaWJXZWJSVENQcm92aWRlci5oICovLAogCQkJCTQxQjI4
QjM4MUY4NjBCRDEwMEZCNTJBQyAvKiBMaWJXZWJSVENQcm92aWRlckNvY29hLmNwcCAqLywKIAkJ
CQk0MUIyOEIzNjFGODYwQkQwMDBGQjUyQUMgLyogTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5oICov
LAorCQkJCTQxMEU0NDVGMjM0MzczQUQwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IGxpYndlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC0yODkwMiw2ICsyODkwNSw3IEBACiAJCQkJQUEyMUVDQ0QwQUJGMEZDNjAw
MkI4MzRDIC8qIENTU0N1cnNvckltYWdlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk0NDRD
QkU0MUQ4ODYxOTkwMDczQTA3NCAvKiBDU1NDdXN0b21JZGVudFZhbHVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzc3OUUxNDFCQjIxNUJCMDBDQUE4QkYgLyogQ1NTQ3VzdG9tUHJvcGVydHlWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwRTQ0NjEyMzQzNzNFOTAwMDE3M0Q0IC8qIExpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBOUNDODE4MTZCQjlB
QzYwMEVDNjQ1QSAvKiBDU1NEZWZhdWx0U3R5bGVTaGVldHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk0NDc2QkRCMURGQ0FDMDMwMDY5MEUyMyAvKiBDU1NEZWZlcnJlZFBhcnNlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkJCMEM1QjgxN0JCRDYyOTAwM0QzNjc3IC8qIENTU0ZpbHRlckltYWdlVmFs
dWUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc0ZjEzNmU5MTQ2ZDM2MGQ3ZmYxZGY3MTg2NjhlMGVl
OWIwYTMxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwz
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlICwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJ
ZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBMaWJXZWJSVENTb2Nr
ZXRJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyID0g
T2JqZWN0SWRlbnRpZmllcjxMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyVHlwZT47CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuY3BwCmluZGV4IGM1OTk1YmM1
MzI1NWZlMmQzNzZmYzQ1ZmJmYjllZTYzMWVlNzNlNzEuLjBiNzQ3ZDg1MjM1YWQ3ZDE1MDY3OTdl
NGExN2RhYzU4NDZlYmQ2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmNwcApAQCAtMzUsOSAr
MzUsMTEgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0
Zi9GdW5jdGlvbi5oPgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLUxpYldlYlJUQ1NvY2tldENsaWVudDo6TGliV2ViUlRDU29ja2V0Q2xpZW50KHVp
bnQ2NF90IGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIsIHN0ZDo6
dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmIHNvY2tldCwgVHlwZSB0eXBlKQor
TGliV2ViUlRDU29ja2V0Q2xpZW50OjpMaWJXZWJSVENTb2NrZXRDbGllbnQoTGliV2ViUlRDU29j
a2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVy
LCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiBzb2NrZXQsIFR5cGUg
dHlwZSkKICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV90eXBlKHR5cGUp
CiAgICAgLCBtX3J0Y1Byb3ZpZGVyKHJ0Y1Byb3ZpZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaApp
bmRleCAyNWFhNTRhZmE3ZDc2ZmE5NDU2YWZiYjhjYzQxZDExNmFiYWZjODZkLi41YWYzOTMwNmMy
ZDUxN2EyZjU4Yzg3ODAzMTI0YWMyZjk3MzFhYjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaApA
QCAtNDEsMTAgKzQxLDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgTGliV2ViUlRDU29j
a2V0Q2xpZW50IGZpbmFsIDogcHVibGljIE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0LCBwdWJs
aWMgc2lnc2xvdDo6aGFzX3Nsb3RzPD4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIExpYldlYlJUQ1NvY2tldENsaWVudCh1aW50NjRfdCBpZGVudGlmaWVyLCBO
ZXR3b3JrUlRDUHJvdmlkZXImLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tl
dD4mJiwgVHlwZSk7CisgICAgTGliV2ViUlRDU29ja2V0Q2xpZW50KFdlYkNvcmU6OkxpYldlYlJU
Q1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYsIHN0ZDo6dW5pcXVlX3B0cjxy
dGM6OkFzeW5jUGFja2V0U29ja2V0PiYmLCBUeXBlKTsKIAogcHJpdmF0ZToKLSAgICB1aW50NjRf
dCBpZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAg
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAgICAgVHlwZSB0eXBlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV90eXBlOyB9CiAgICAgdm9pZCBjbG9zZSgpIGZpbmFsOwogCkBAIC02MCw3ICs2
MCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNpZ25hbEFkZHJlc3NSZWFkeSgpOwogCi0gICAg
dWludDY0X3QgbV9pZGVudGlmaWVyOworICAgIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFR5cGUgbV90eXBlOwogICAgIE5ldHdvcmtSVENQcm92
aWRlciYgbV9ydGNQcm92aWRlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tl
dFNvY2tldD4gbV9zb2NrZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAppbmRleCBmN2VlNGRiZDg2ZmZj
NzVkNTdlYjdiMzg2ZTYwMzhjNTdhMzUxZGI3Li4xZjlhNzRiYmVjNWNjZmJkN2I0YzQxNzBkZDc0
M2FkNTUxNWZmMzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKQEAgLTQ2LDYgKzQ2LDggQEAKICNp
bmNsdWRlICJOZXR3b3JrUlRDUmVzb2x2ZXJDb2NvYS5oIgogI2VuZGlmCiAKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIGlubGluZSBzdGQ6
OnVuaXF1ZV9wdHI8cnRjOjpUaHJlYWQ+IGNyZWF0ZVRocmVhZCgpCkBAIC05Niw3ICs5OCw3IEBA
IHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjbG9zZSgpCiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0
d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgc3RkOjp1
bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+JiYgc29ja2V0LCBTb2NrZXQ6OlR5cGUg
dHlwZSkKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXQoTGliV2ViUlRDU29j
a2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tl
dFNvY2tldD4mJiBzb2NrZXQsIFNvY2tldDo6VHlwZSB0eXBlKQogewogICAgIGlmICghc29ja2V0
KSB7CiAgICAgICAgIHNlbmRGcm9tTWFpblRocmVhZChbaWRlbnRpZmllciwgc2l6ZSA9IG1fc29j
a2V0cy5zaXplKCldKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgewpAQCAtMTA4LDcgKzEx
MCw3IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXQodWludDY0X3QgaWRl
bnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6CiAgICAgYWRkU29ja2V0KGlkZW50aWZpZXIs
IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0Q2xpZW50PihpZGVudGlmaWVyLCAqdGhpcywgV1RG
TW92ZShzb2NrZXQpLCB0eXBlKSk7CiB9CiAKLXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVh
dGVVRFBTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkKK3Zv
aWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVVRFBTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBhZGRy
ZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQogewogICAgIGNhbGxPblJU
Q05ldHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50aWZpZXIsIGFkZHJlc3MgPSBSVENOZXR3b3JrOjpp
c29sYXRlZENvcHkoYWRkcmVzcy52YWx1ZSksIG1pblBvcnQsIG1heFBvcnRdKCkgewogICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29ja2V0KG1fcGFja2V0
U29ja2V0RmFjdG9yeS0+Q3JlYXRlVWRwU29ja2V0KGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQp
KTsKQEAgLTExNiw3ICsxMTgsNyBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlVURQ
U29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OgogICAgIH0pOwog
fQogCi12b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlU2VydmVyVENQU29ja2V0KHVpbnQ2
NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3Ms
IHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKQordm9pZCBO
ZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNlcnZlclRDUFNvY2tldChMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGFk
ZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKQog
ewogICAgIGlmICghbV9pc0xpc3RlbmluZ1NvY2tldEF1dGhvcml6ZWQpIHsKICAgICAgICAgaWYg
KG1fY29ubmVjdGlvbikKQEAgLTEzNyw3ICsxMzksNyBAQCBydGM6OlByb3h5SW5mbyBOZXR3b3Jr
UlRDUHJvdmlkZXI6OnByb3h5SW5mb0Zyb21TZXNzaW9uKGNvbnN0IFJUQ05ldHdvcms6OlNvY2tl
dAogfQogI2VuZGlmCiAKLXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BT
b2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVz
cyYgbG9jYWxBZGRyZXNzLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVB
ZGRyZXNzLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCBvcHRpb25zKQordm9pZCBOZXR3b3JrUlRD
UHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVz
cywgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5n
JiYgdXNlckFnZW50LCBpbnQgb3B0aW9ucykKIHsKICAgICBhdXRvKiBzZXNzaW9uID0gbV9jb25u
ZWN0aW9uLT5uZXR3b3JrU2Vzc2lvbigpOwogICAgIGlmICghc2Vzc2lvbikgewpAQCAtMTUwLDcg
KzE1Miw3IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQo
dWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0CiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0
d29ya1JUQ1Byb3ZpZGVyOjp3cmFwTmV3VENQQ29ubmVjdGlvbih1aW50NjRfdCBpZGVudGlmaWVy
LCB1aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcikKK3ZvaWQgTmV0d29ya1JU
Q1Byb3ZpZGVyOjp3cmFwTmV3VENQQ29ubmVjdGlvbihMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
IGlkZW50aWZpZXIsIExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tl
dElkZW50aWZpZXIpCiB7CiAgICAgY2FsbE9uUlRDTmV0d29ya1RocmVhZChbdGhpcywgaWRlbnRp
ZmllciwgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXJdKCkgewogICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29ja2V0ID0gbV9wZW5kaW5nSW5jb21p
bmdTb2NrZXRzLnRha2UobmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIpOwpAQCAtMTU4LDI3
ICsxNjAsMjggQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OndyYXBOZXdUQ1BDb25uZWN0aW9u
KHVpbnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2NF90IG5ld0MKICAgICB9KTsKIH0KIAotdm9pZCBO
ZXR3b3JrUlRDUHJvdmlkZXI6OmFkZFNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBzdGQ6OnVu
aXF1ZV9wdHI8U29ja2V0PiYmIHNvY2tldCkKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjphZGRT
b2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9w
dHI8U29ja2V0PiYmIHNvY2tldCkKIHsKICAgICBtX3NvY2tldHMuYWRkKGlkZW50aWZpZXIsIFdU
Rk1vdmUoc29ja2V0KSk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUlRDUHJvdmlkZXI6
OlNvY2tldD4gTmV0d29ya1JUQ1Byb3ZpZGVyOjp0YWtlU29ja2V0KHVpbnQ2NF90IGlkZW50aWZp
ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQ+IE5ldHdvcmtS
VENQcm92aWRlcjo6dGFrZVNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCiB7CiAgICAgcmV0dXJuIG1fc29ja2V0cy50YWtlKGlkZW50aWZpZXIpOwogfQogCiB2b2lk
IE5ldHdvcmtSVENQcm92aWRlcjo6bmV3Q29ubmVjdGlvbihTb2NrZXQmIHNlcnZlclNvY2tldCwg
c3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+JiYgbmV3U29ja2V0KQogewot
ICAgIHNlbmRGcm9tTWFpblRocmVhZChbaWRlbnRpZmllciA9IHNlcnZlclNvY2tldC5pZGVudGlm
aWVyKCksIGluY29taW5nU29ja2V0SWRlbnRpZmllciA9ICsrbV9pbmNvbWluZ1NvY2tldElkZW50
aWZpZXIsIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENvcHkobmV3U29ja2V0
LT5HZXRSZW1vdGVBZGRyZXNzKCkpXShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pIHsKKyAg
ICBhdXRvIGluY29taW5nU29ja2V0SWRlbnRpZmllciA9IExpYldlYlJUQ1NvY2tldElkZW50aWZp
ZXI6OmdlbmVyYXRlKCk7CisgICAgc2VuZEZyb21NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc2Vy
dmVyU29ja2V0LmlkZW50aWZpZXIoKSwgaW5jb21pbmdTb2NrZXRJZGVudGlmaWVyLCByZW1vdGVB
ZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KG5ld1NvY2tldC0+R2V0UmVtb3RlQWRk
cmVzcygpKV0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rp
b24uc2VuZChNZXNzYWdlczo6V2ViUlRDU29ja2V0OjpTaWduYWxOZXdDb25uZWN0aW9uKGluY29t
aW5nU29ja2V0SWRlbnRpZmllciwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhyZW1vdGVBZGRy
ZXNzKSksIGlkZW50aWZpZXIpOwogICAgIH0pOwotICAgIG1fcGVuZGluZ0luY29taW5nU29ja2V0
cy5hZGQobV9pbmNvbWluZ1NvY2tldElkZW50aWZpZXIsIFdURk1vdmUobmV3U29ja2V0KSk7Cisg
ICAgbV9wZW5kaW5nSW5jb21pbmdTb2NrZXRzLmFkZChpbmNvbWluZ1NvY2tldElkZW50aWZpZXIs
IFdURk1vdmUobmV3U29ja2V0KSk7CiB9CiAKIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpkaWRS
ZWNlaXZlTmV0d29ya1JUQ1NvY2tldE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgTmV0d29ya1JUQ1NvY2tldChkZWNvZGVy
LmRlc3RpbmF0aW9uSUQoKSwgKnRoaXMpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRl
Y29kZXIpOworICAgIE5ldHdvcmtSVENTb2NrZXQobWFrZU9iamVjdElkZW50aWZpZXI8TGliV2Vi
UlRDU29ja2V0SWRlbnRpZmllclR5cGU+KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKSwgKnRoaXMp
LmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCkBAIC0yNDUsNyArMjQ4LDcgQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNs
b3NlTGlzdGVuaW5nU29ja2V0cyhGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmQKIAog
ICAgIG1faXNMaXN0ZW5pbmdTb2NrZXRBdXRob3JpemVkID0gZmFsc2U7CiAgICAgY2FsbE9uUlRD
TmV0d29ya1RocmVhZChbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgVmVjdG9yPHVpbnQ2NF90PiBsaXN0ZW5p
bmdTb2NrZXRJZGVudGlmaWVyczsKKyAgICAgICAgVmVjdG9yPExpYldlYlJUQ1NvY2tldElkZW50
aWZpZXI+IGxpc3RlbmluZ1NvY2tldElkZW50aWZpZXJzOwogICAgICAgICBmb3IgKGF1dG8mIGtl
eVZhbHVlIDogbV9zb2NrZXRzKSB7CiAgICAgICAgICAgICBpZiAoa2V5VmFsdWUudmFsdWUtPnR5
cGUoKSA9PSBTb2NrZXQ6OlR5cGU6OlNlcnZlclRDUCkKICAgICAgICAgICAgICAgICBsaXN0ZW5p
bmdTb2NrZXRJZGVudGlmaWVycy5hcHBlbmQoa2V5VmFsdWUua2V5KTsKQEAgLTI4NSw3ICsyODgs
NyBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y2FsbE9uUlRDTmV0d29ya1RocmVhZChGdW5j
dGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCiAgICAgbV9ydGNOZXR3b3JrVGhyZWFkLT5Qb3N0KFJU
Q19GUk9NX0hFUkUsIHRoaXMsIDEsIG5ldyBOZXR3b3JrTWVzc2FnZURhdGEoKnRoaXMsIFdURk1v
dmUoY2FsbGJhY2spKSk7CiB9CiAKLXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjYWxsU29ja2V0
KHVpbnQ2NF90IGlkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoU29ja2V0Jik+JiYgY2FsbGJhY2sp
Cit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y2FsbFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoU29ja2V0Jik+JiYgY2FsbGJhY2spCiB7
CiAgICAgY2FsbE9uUlRDTmV0d29ya1RocmVhZChbdGhpcywgaWRlbnRpZmllciwgY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSB7CiAgICAgICAgIGlmIChhdXRvKiBzb2NrZXQgPSBtX3Nv
Y2tldHMuZ2V0KGlkZW50aWZpZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAppbmRleCA2MzI2NWRhNDA2MDhm
MGNjOTM0OGZkMWE0N2VjZDJiMzVmOTYzYzI5Li4yNTEwNTBkMzYxMGE5NTU1ZDdjZDQ4NzMxODM1
OGY5ZTc4MDJhNjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIk5ldHdvcmtSVENNb25pdG9yLmgiCiAjaW5jbHVkZSAiUlRDTmV0d29yay5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJS
VENTb2NrZXRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d2VicnRjL3AycC9iYXNlL2Jhc2ljcGFj
a2V0c29ja2V0ZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS90aGlyZF9wYXJ0
eS9zaWdzbG90L3NpZ3Nsb3QuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNzIsMTkg
KzczLDE5IEBAIHB1YmxpYzoKIAogICAgICAgICBlbnVtIGNsYXNzIFR5cGUgOiB1aW50OF90IHsg
VURQLCBTZXJ2ZXJUQ1AsIENsaWVudFRDUCwgU2VydmVyQ29ubmVjdGlvblRDUCB9OwogICAgICAg
ICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0ICA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdWludDY0
X3QgaWRlbnRpZmllcigpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBXZWJDb3JlOjpMaWJX
ZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCA9IDA7CiAKICAgICAgICAg
dmlydHVhbCB2b2lkIGNsb3NlKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0T3B0aW9u
KGludCBvcHRpb24sIGludCB2YWx1ZSkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2VuZFRv
KGNvbnN0IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYs
IGNvbnN0IHJ0Yzo6UGFja2V0T3B0aW9ucyYpID0gMDsKICAgICB9OwogCi0gICAgc3RkOjp1bmlx
dWVfcHRyPFNvY2tldD4gdGFrZVNvY2tldCh1aW50NjRfdCk7CisgICAgc3RkOjp1bmlxdWVfcHRy
PFNvY2tldD4gdGFrZVNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHJlc29sdmVyRG9uZSh1aW50NjRfdCk7CiAKICAgICB2b2lkIGNsb3NlKCk7CiAK
LSAgICB2b2lkIGNhbGxTb2NrZXQodWludDY0X3QsIEZ1bmN0aW9uPHZvaWQoU29ja2V0Jik+JiYp
OworICAgIHZvaWQgY2FsbFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
LCBGdW5jdGlvbjx2b2lkKFNvY2tldCYpPiYmKTsKICAgICB2b2lkIGNhbGxPblJUQ05ldHdvcmtU
aHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICB2b2lkIHNlbmRGcm9tTWFpblRocmVhZChG
dW5jdGlvbjx2b2lkKElQQzo6Q29ubmVjdGlvbiYpPiYmKTsKIApAQCAtOTYsMjQgKzk3LDI0IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTmV0d29ya1JUQ1Byb3ZpZGVyKE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CiAKLSAgICB2b2lkIGNyZWF0ZVVEUFNvY2tldCh1
aW50NjRfdCwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90LCB1aW50
MTZfdCk7Ci0gICAgdm9pZCBjcmVhdGVDbGllbnRUQ1BTb2NrZXQodWludDY0X3QsIGNvbnN0IFJU
Q05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
JiwgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQpOwotICAgIHZvaWQgY3JlYXRlU2VydmVyVENQU29j
a2V0KHVpbnQ2NF90LCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3Qg
bWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50KTsKLSAgICB2b2lkIHdyYXBOZXdUQ1BDb25u
ZWN0aW9uKHVpbnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2NF90IG5ld0Nvbm5lY3Rpb25Tb2NrZXRJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENT
b2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2
X3QsIHVpbnQxNl90KTsKKyAgICB2b2lkIGNyZWF0ZUNsaWVudFRDUFNvY2tldChXZWJDb3JlOjpM
aWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
JiwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIFN0cmluZyYmIHVzZXJBZ2VudCwg
aW50KTsKKyAgICB2b2lkIGNyZWF0ZVNlcnZlclRDUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENT
b2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2
X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50KTsKKyAgICB2b2lkIHdyYXBOZXdUQ1BD
b25uZWN0aW9uKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwg
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRl
bnRpZmllcik7CiAKICAgICB2b2lkIGNyZWF0ZVJlc29sdmVyKHVpbnQ2NF90LCBjb25zdCBTdHJp
bmcmKTsKICAgICB2b2lkIHN0b3BSZXNvbHZlcih1aW50NjRfdCk7CiAKLSAgICB2b2lkIGFkZFNv
Y2tldCh1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFNvY2tldD4mJik7CisgICAgdm9pZCBhZGRT
b2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRy
PFNvY2tldD4mJik7CiAKLSAgICB2b2lkIGNyZWF0ZVNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVy
LCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiwgU29ja2V0OjpUeXBl
KTsKKyAgICB2b2lkIGNyZWF0ZVNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiwgU29ja2V0OjpU
eXBlKTsKIAogICAgIHZvaWQgT25NZXNzYWdlKHJ0Yzo6TWVzc2FnZSopOwogCiAgICAgc3RhdGlj
IHJ0Yzo6UHJveHlJbmZvIHByb3h5SW5mb0Zyb21TZXNzaW9uKGNvbnN0IFJUQ05ldHdvcms6OlNv
Y2tldEFkZHJlc3MmLCBOZXR3b3JrU2Vzc2lvbiYpOwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwg
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENSZXNvbHZlcj4+IG1fcmVzb2x2ZXJzOwotICAgIEhh
c2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxTb2NrZXQ+PiBtX3NvY2tldHM7CisgICAg
SGFzaE1hcDxXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9w
dHI8U29ja2V0Pj4gbV9zb2NrZXRzOwogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KiBtX2Nvbm5lY3Rpb247CiAgICAgYm9vbCBtX2lzU3RhcnRlZCB7IHRydWUgfTsKIApAQCAtMTIy
LDggKzEyMyw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6VGhyZWFkPiBt
X3J0Y05ldHdvcmtUaHJlYWQ7CiAgICAgVW5pcXVlUmVmPHJ0Yzo6QmFzaWNQYWNrZXRTb2NrZXRG
YWN0b3J5PiBtX3BhY2tldFNvY2tldEZhY3Rvcnk7CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBz
dGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4+IG1fcGVuZGluZ0luY29taW5n
U29ja2V0czsKLSAgICB1aW50NjRfdCBtX2luY29taW5nU29ja2V0SWRlbnRpZmllciB7IDAgfTsK
KyAgICBIYXNoTWFwPFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIHN0ZDo6dW5p
cXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0Pj4gbV9wZW5kaW5nSW5jb21pbmdTb2NrZXRz
OwogICAgIGJvb2wgbV9pc0xpc3RlbmluZ1NvY2tldEF1dGhvcml6ZWQgeyB0cnVlIH07CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3Jr
UlRDUHJvdmlkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KaW5kZXggMTIyMzZiM2M3MWQ3ZmYw
NmU2MTgzMjJmNjQ3MmZmYjEzODhiZDM4Ny4uOTIxZTU3MDRjMmQ5OTlmMDdlMTA4YzkyZjcxOWI2
MTcwOGE2MjM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbgpAQCAtMjMs
MTIgKzIzLDEzIEBACiAjaWYgVVNFKExJQldFQlJUQykKIAogbWVzc2FnZXMgLT4gTmV0d29ya1JU
Q1Byb3ZpZGVyIHsKLSAgICBDcmVhdGVVRFBTb2NrZXQoaW50IGlkZW50aWZpZXIsIFdlYktpdDo6
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQs
IHVpbnQxNl90IG1heFBvcnQpCi0gICAgQ3JlYXRlU2VydmVyVENQU29ja2V0KGludCBpZGVudGlm
aWVyLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCB1aW50
MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKLSAgICBDcmVhdGVD
bGllbnRUQ1BTb2NrZXQoaW50IGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyBsb2NhbEFkZHJlc3MsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBy
ZW1vdGVBZGRyZXNzLCBTdHJpbmcgdXNlckFnZW50LCBpbnQgb3B0aW9ucykKKyAgICBDcmVhdGVV
RFBTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCB1aW50MTZfdCBt
aW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQorICAgIENyZWF0ZVNlcnZlclRDUFNvY2tldChXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0
d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQx
Nl90IG1heFBvcnQsIGludCBvcHRpb25zKQorICAgIENyZWF0ZUNsaWVudFRDUFNvY2tldChXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0
d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIFdlYktpdDo6UlRDTmV0d29yazo6U29j
a2V0QWRkcmVzcyByZW1vdGVBZGRyZXNzLCBTdHJpbmcgdXNlckFnZW50LCBpbnQgb3B0aW9ucykK
KyAgICBXcmFwTmV3VENQQ29ubmVjdGlvbihXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29u
bmVjdGlvblNvY2tldElkZW50aWZpZXIpCisKICAgICBDcmVhdGVSZXNvbHZlcih1aW50NjRfdCBp
ZGVudGlmaWVyLCBTdHJpbmcgYWRkcmVzcykKICAgICBTdG9wUmVzb2x2ZXIodWludDY0X3QgaWRl
bnRpZmllcikKLSAgICBXcmFwTmV3VENQQ29ubmVjdGlvbih1aW50NjRfdCBpZGVudGlmaWVyLCB1
aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcikKIH0KIAogI2VuZGlmIC8vIFVT
RShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENTb2NrZXQuY3BwCmluZGV4IGE4YzcwYTNiMGQ2OTZmYjgxODRiNzEx
MmQ3M2RmMzRkOGZlN2YwNmUuLjgyMGQwN2JjMGU3Mjc0YjQ3OGI0ZTJhODZmYWE5NzI3ZGQyZGZj
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENTb2NrZXQuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi1OZXR3b3JrUlRDU29ja2V0OjpOZXR3b3JrUlRDU29ja2V0KHVpbnQ2NF90IGlkZW50
aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIpCitOZXR3b3JrUlRDU29ja2V0
OjpOZXR3b3JrUlRDU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRl
bnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlcikKICAgICA6IG1faWRlbnRp
ZmllcihpZGVudGlmaWVyKQogICAgICwgbV9ydGNQcm92aWRlcihydGNQcm92aWRlcikKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENT
b2NrZXQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENT
b2NrZXQuaAppbmRleCA2ZTRiZmUyYjE2NDE5Y2JiYzUxYjgwZDk1Zjc1OWVmZTJlZGQ5MmFmLi44
NGJiNGYxMzEyN2IzNjA2YmNlMDE5NzFlY2NiYWE5YzRiY2RkNGQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5oCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiUlRDTmV0d29yay5oIgogCiAjaW5jbHVkZSA8V2Vi
Q29yZS9MaWJXZWJSVENNYWNyb3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvYXN5bmNwYWNrZXRzb2Nr
ZXQuaD4KICNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvdGhpcmRfcGFydHkvc2lnc2xvdC9zaWdz
bG90Lmg+CiAKQEAgLTU4LDE0ICs1OSwxNCBAQCBzdHJ1Y3QgUlRDUGFja2V0T3B0aW9uczsKIAog
Y2xhc3MgTmV0d29ya1JUQ1NvY2tldCB7CiBwdWJsaWM6Ci0gICAgTmV0d29ya1JUQ1NvY2tldCh1
aW50NjRfdCwgTmV0d29ya1JUQ1Byb3ZpZGVyJik7CisgICAgTmV0d29ya1JUQ1NvY2tldChXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImKTsKICAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
OwogcHJpdmF0ZToKICAgICB2b2lkIHNlbmRUbyhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiYsIFJUQ1BhY2tldE9wdGlvbnMmJik7CiAgICAgdm9p
ZCBjbG9zZSgpOwogICAgIHZvaWQgc2V0T3B0aW9uKGludCBvcHRpb24sIGludCB2YWx1ZSk7CiAK
LSAgICB1aW50NjRfdCBtX2lkZW50aWZpZXI7CisgICAgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgTmV0d29ya1JUQ1Byb3ZpZGVyJiBtX3J0Y1By
b3ZpZGVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5k
ZXggZWM0MGQ0MzEzZWQzNDUwYzFlMTBmZmRkNzFiMjA2Yzg0MjZkZmM5Yi4uYTc4ZGEzMTQ0MzI1
OGMwODYxOTJmMjA1MjBiMzQwNjA5NGU0OThmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CkBAIC0yMDYsNiArMjA2LDcgQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRp
b25zX2FuZF9oZWFkZXJzKHJlY2VpdmVyKToKICAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50SWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpGZXRjaElkZW50aWZpZXInLAogICAgICAgICAn
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6UGFnZUlkZW50aWZpZXInLAogICAg
ICAgICAnV2ViQ29yZTo6UG9pbnRlcklEJywKICAgICAgICAgJ1dlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDJmMjFmNWU1MTkxMGViOTg1
MjhjOGRkNDY0NGZlNTMyOWZhNDFkMDEuLmYwYjRmZGZhNmEzMTE3MDQ5OTZkNzg1YTFjOTYyNzcz
NjAxMTk4MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMTA4LDcgKzEwOCw3IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQCiAKICNpZiBVU0UoTElCV0VCUlRDKQogICAgIGlmIChk
ZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUlRDU29ja2V0Ojpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKLSAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
bGliV2ViUlRDTmV0d29yaygpLnNvY2tldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkuZGlkUmVj
ZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXQobWFrZU9iamVjdElkZW50aWZpZXI8
TGliV2ViUlRDU29ja2V0SWRlbnRpZmllclR5cGU+KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKSku
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2Vz
OjpXZWJSVENNb25pdG9yOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29y
ay5oCmluZGV4IDdjNjQ4NGZlNzhkNzhkNzRjYjMyODMzMWY5NzZhZmFiNDIzYjcyZjUuLmY3ZTIx
Zjc3MGIwMzNiMTdjODU5NjkwNmE3MDEyMmVhYjY2MjY5YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsu
aApAQCAtMzMsNiArMzMsNyBAQAogI2VuZGlmCiAKICNpbmNsdWRlICJXZWJNRE5TUmVnaXN0ZXIu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQ3LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBk
aXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSB7IHNvY2tldEZhY3RvcnkoKS5kaXNhYmxl
Tm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKTsgfQogCi0gICAgV2ViUlRDU29ja2V0IHNvY2tldCh1
aW50NjRfdCBpZGVudGlmaWVyKSB7IHJldHVybiBXZWJSVENTb2NrZXQoc29ja2V0RmFjdG9yeSgp
LCBpZGVudGlmaWVyKTsgfQorICAgIFdlYlJUQ1NvY2tldCBzb2NrZXQoV2ViQ29yZTo6TGliV2Vi
UlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyKSB7IHJldHVybiBXZWJSVENTb2NrZXQoc29j
a2V0RmFjdG9yeSgpLCBpZGVudGlmaWVyKTsgfQogICAgIFdlYlJUQ1Jlc29sdmVyIHJlc29sdmVy
KHVpbnQ2NF90IGlkZW50aWZpZXIpIHsgcmV0dXJuIFdlYlJUQ1Jlc29sdmVyKHNvY2tldEZhY3Rv
cnkoKSwgaWRlbnRpZmllcik7IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCmluZGV4
IGUyYzVkZjU1N2M0MDExNWRkZjQ4ZmQ0MDc5YWZiOTQ5YTZjMjU1NjkuLmMyMTc3NTQ3ZWI4YTQy
NDcwZjBlNDRlNGZhOTQ4MTIwZmM5YmVlYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCkBAIC00
MCw5ICs0MCw5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1MaWJXZWJSVENTb2NrZXQ6Okxp
YldlYlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5LCB1aW50NjRfdCBp
ZGVudGlmaWVyLCBUeXBlIHR5cGUsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRy
ZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MpCitMaWJXZWJSVENT
b2NrZXQ6OkxpYldlYlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5LCBU
eXBlIHR5cGUsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MpCiAgICAgOiBtX2ZhY3RvcnkoZmFjdG9y
eSkKLSAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICwgbV9pZGVudGlmaWVyKExp
YldlYlJUQ1NvY2tldElkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBtX3R5cGUodHlwZSkK
ICAgICAsIG1fbG9jYWxBZGRyZXNzKGxvY2FsQWRkcmVzcykKICAgICAsIG1fcmVtb3RlQWRkcmVz
cyhyZW1vdGVBZGRyZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oCmluZGV4IGFmMWY0MjUzMDE2ZGUzZTE5
MzdlMTM2ZTNhOWQyOGUyMGMxMjQ0NjcuLjY0NGVlNWEwYmIxZjNmOThhZjY5ZWNkNDBjZWVlOWI5
YzIwMmI5MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBVU0Uo
TElCV0VCUlRDKQogCiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENQcm92aWRlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHdl
YnJ0Yy9ydGNfYmFzZS9hc3luY3BhY2tldHNvY2tldC5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5o
PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC01MSwxMCArNTIsMTAgQEAgY2xhc3MgTGli
V2ViUlRDU29ja2V0IGZpbmFsIDogcHVibGljIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQgewogcHVi
bGljOgogICAgIGVudW0gY2xhc3MgVHlwZSB7IFVEUCwgU2VydmVyVENQLCBDbGllbnRUQ1AsIFNl
cnZlckNvbm5lY3Rpb25UQ1AgfTsKIAotICAgIExpYldlYlJUQ1NvY2tldChMaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5JiwgdWludDY0X3QgaWRlbnRpZmllciwgVHlwZSwgY29uc3QgcnRjOjpTb2NrZXRB
ZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRk
cmVzcyk7CisgICAgTGliV2ViUlRDU29ja2V0KExpYldlYlJUQ1NvY2tldEZhY3RvcnkmLCBUeXBl
LCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKTsKICAgICB+TGliV2ViUlRDU29ja2V0KCk7CiAKLSAg
ICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Cisg
ICAgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAgICAgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBs
b2NhbEFkZHJlc3MoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsQWRkcmVzczsgfQogICAgIGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVt
b3RlQWRkcmVzczsgfQogCkBAIC04Nyw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZv
aWQgc2VuZE9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKElQQzo6Q29ubmVjdGlvbiYpPiYmKTsK
IAogICAgIExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIG1fZmFjdG9yeTsKLSAgICB1aW50NjRfdCBt
X2lkZW50aWZpZXIgeyAwIH07CisgICAgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmll
ciBtX2lkZW50aWZpZXI7CiAgICAgVHlwZSBtX3R5cGU7CiAgICAgcnRjOjpTb2NrZXRBZGRyZXNz
IG1fbG9jYWxBZGRyZXNzOwogICAgIHJ0Yzo6U29ja2V0QWRkcmVzcyBtX3JlbW90ZUFkZHJlc3M7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDU29ja2V0RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKaW5kZXggNmQzYzBiMWIwYTE5NWRh
NTUxNTc1ZjM4ZDZkYTg2NDFhNmMxMzM0OS4uMzAwMmU4Mzg4NmMzOTAyZmYzZDAzNTczYzMzNjFj
Y2M4MTVhMWNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcApAQCAtMzcs
NyArMzcsNiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdWludDY0X3QgTGliV2ViUlRDU29j
a2V0RmFjdG9yeTo6c191bmlxdWVTb2NrZXRJZGVudGlmaWVyID0gMDsKIHVpbnQ2NF90IExpYldl
YlJUQ1NvY2tldEZhY3Rvcnk6OnNfdW5pcXVlUmVzb2x2ZXJJZGVudGlmaWVyID0gMDsKIAogc3Rh
dGljIGlubGluZSBydGM6OlNvY2tldEFkZHJlc3MgcHJlcGFyZVNvY2tldEFkZHJlc3MoY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBib29sIGRpc2FibGVOb25Mb2NhbGhvc3RDb25u
ZWN0aW9ucykKQEAgLTUwLDcgKzQ5LDcgQEAgc3RhdGljIGlubGluZSBydGM6OlNvY2tldEFkZHJl
c3MgcHJlcGFyZVNvY2tldEFkZHJlc3MoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJgogCiBydGM6
OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVTZXJ2ZXJU
Y3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Q
b3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKIHsKLSAgICBhdXRvIHNvY2tldCA9
IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1ZVNvY2tldElkZW50
aWZpZXIsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2VydmVyVENQLCBhZGRyZXNzLCBydGM6OlNv
Y2tldEFkZHJlc3MoKSk7CisgICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1Nv
Y2tldD4oKnRoaXMsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2VydmVyVENQLCBhZGRyZXNzLCBy
dGM6OlNvY2tldEFkZHJlc3MoKSk7CiAgICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZp
ZXIoKSwgc29ja2V0LmdldCgpKTsKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIg
PSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGFk
ZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKSwgbWluUG9ydCwgbWF4UG9y
dCwgb3B0aW9uc10oKSB7CkBAIC02Niw3ICs2NSw3IEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQq
IExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6
CiAKIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0
ZVVkcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1p
blBvcnQsIHVpbnQxNl90IG1heFBvcnQpCiB7Ci0gICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVl
PExpYldlYlJUQ1NvY2tldD4oKnRoaXMsICsrc191bmlxdWVTb2NrZXRJZGVudGlmaWVyLCBMaWJX
ZWJSVENTb2NrZXQ6OlR5cGU6OlVEUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOwor
ICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBMaWJX
ZWJSVENTb2NrZXQ6OlR5cGU6OlVEUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOwog
ICAgIG1fc29ja2V0cy5zZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIHNvY2tldC5nZXQoKSk7CiAK
ICAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCks
IGFkZHJlc3MgPSBwcmVwYXJlU29ja2V0QWRkcmVzcyhhZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2Nh
bGhvc3RDb25uZWN0aW9ucyksIG1pblBvcnQsIG1heFBvcnRdKCkgewpAQCAtODAsNyArNzksNyBA
QCBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVV
ZHBTb2NrZXQoY29uc3QgcnRjOjpTb2NrZQogCiBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJX
ZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3Rl
QWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQgb3B0aW9ucykKIHsKLSAgICBhdXRvIHNv
Y2tldCA9IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1ZVNvY2tl
dElkZW50aWZpZXIsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6Q2xpZW50VENQLCBsb2NhbEFkZHJl
c3MsIHJlbW90ZUFkZHJlc3MpOworICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJS
VENTb2NrZXQ+KCp0aGlzLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OkNsaWVudFRDUCwgbG9jYWxB
ZGRyZXNzLCByZW1vdGVBZGRyZXNzKTsKICAgICBzb2NrZXQtPnNldFN0YXRlKExpYldlYlJUQ1Nv
Y2tldDo6U1RBVEVfQ09OTkVDVElORyk7CiAgICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50
aWZpZXIoKSwgc29ja2V0LmdldCgpKTsKIApAQCAtOTQsOSArOTMsOSBAQCBydGM6OkFzeW5jUGFj
a2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQo
Y29uc3QgcnRjOgogICAgIHJldHVybiBzb2NrZXQucmVsZWFzZSgpOwogfQogCi1ydGM6OkFzeW5j
UGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVOZXdDb25uZWN0aW9u
U29ja2V0KExpYldlYlJUQ1NvY2tldCYgc2VydmVyU29ja2V0LCB1aW50NjRfdCBuZXdDb25uZWN0
aW9uU29ja2V0SWRlbnRpZmllciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRy
ZXNzKQorcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3Jl
YXRlTmV3Q29ubmVjdGlvblNvY2tldChMaWJXZWJSVENTb2NrZXQmIHNlcnZlclNvY2tldCwgTGli
V2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllciwgY29u
c3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQogewotICAgIGF1dG8gc29ja2V0
ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRl
bnRpZmllciwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpTZXJ2ZXJDb25uZWN0aW9uVENQLCBzZXJ2
ZXJTb2NrZXQubG9jYWxBZGRyZXNzKCksIHJlbW90ZUFkZHJlc3MpOworICAgIGF1dG8gc29ja2V0
ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBMaWJXZWJSVENTb2NrZXQ6OlR5
cGU6OlNlcnZlckNvbm5lY3Rpb25UQ1AsIHNlcnZlclNvY2tldC5sb2NhbEFkZHJlc3MoKSwgcmVt
b3RlQWRkcmVzcyk7CiAgICAgc29ja2V0LT5zZXRTdGF0ZShMaWJXZWJSVENTb2NrZXQ6OlNUQVRF
X0NPTk5FQ1RFRCk7CiAgICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgc29j
a2V0LmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKaW5kZXggNDk0Zjlk
NDQ2Y2M2MTlhNmI2MzZhMDFiZjkyZTM0MDIwNTg1ZjcwNS4uYTk0NWIxMGRhYWRhYWY2YjQ1ZDRk
ODU2Yzg2YjY3YjE0MmI3NzNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDUmVzb2x2ZXIuaCIKICNpbmNsdWRl
ICJMaWJXZWJSVENTb2NrZXQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jvcy5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oPgogI2luY2x1
ZGUgPHdlYnJ0Yy9ydGNfYmFzZS9uZXRoZWxwZXJzLmg+CiAjaW5jbHVkZSA8d2VicnRjL3AycC9i
YXNlL3BhY2tldHNvY2tldGZhY3RvcnkuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAt
NDEsMjYgKzQyLDIyIEBAIHB1YmxpYzoKICAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5KCkgeyB9
CiAKICAgICB2b2lkIGRldGFjaChMaWJXZWJSVENTb2NrZXQmKTsKLQotICAgIExpYldlYlJUQ1Nv
Y2tldCogc29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIpIHsgcmV0dXJuIG1fc29ja2V0cy5nZXQo
aWRlbnRpZmllcik7IH0KLSAgICBMaWJXZWJSVENSZXNvbHZlciogcmVzb2x2ZXIodWludDY0X3Qg
aWRlbnRpZmllcikgeyByZXR1cm4gbV9yZXNvbHZlcnMuZ2V0KGlkZW50aWZpZXIpOyB9Ci0KLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUmVzb2x2ZXI+IHRha2VSZXNvbHZlcih1aW50NjRf
dCBpZGVudGlmaWVyKSB7IHJldHVybiBtX3Jlc29sdmVycy50YWtlKGlkZW50aWZpZXIpOyB9Ci0K
LSAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KExp
YldlYlJUQ1NvY2tldCYsIHVpbnQ2NF90IG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyLCBj
b25zdCBydGM6OlNvY2tldEFkZHJlc3MmKTsKLQotICAgIHZvaWQgZGlzYWJsZU5vbkxvY2FsaG9z
dENvbm5lY3Rpb25zKCkgeyBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyA9IHRydWU7
IH0KKyAgICBMaWJXZWJSVENTb2NrZXQqIHNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpIHsgcmV0dXJuIG1fc29ja2V0cy5nZXQoaWRlbnRpZmllcik7
IH0KIAogICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZVVkcFNvY2tldChjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KTsK
ICAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwg
aW50IG9wdGlvbnMpOwogICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZUNsaWVudFRj
cFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRj
OjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCBv
cHRpb25zKTsKKyAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVOZXdDb25uZWN0aW9u
U29ja2V0KExpYldlYlJUQ1NvY2tldCYsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZp
ZXIgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVz
cyYpOworCisgICAgTGliV2ViUlRDUmVzb2x2ZXIqIHJlc29sdmVyKHVpbnQ2NF90IGlkZW50aWZp
ZXIpIHsgcmV0dXJuIG1fcmVzb2x2ZXJzLmdldChpZGVudGlmaWVyKTsgfQorICAgIHN0ZDo6dW5p
cXVlX3B0cjxMaWJXZWJSVENSZXNvbHZlcj4gdGFrZVJlc29sdmVyKHVpbnQ2NF90IGlkZW50aWZp
ZXIpIHsgcmV0dXJuIG1fcmVzb2x2ZXJzLnRha2UoaWRlbnRpZmllcik7IH0KICAgICBydGM6OkFz
eW5jUmVzb2x2ZXJJbnRlcmZhY2UqIGNyZWF0ZUFzeW5jUmVzb2x2ZXIoKTsKKyAgICAKKyAgICB2
b2lkIGRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygpIHsgbV9kaXNhYmxlTm9uTG9jYWxo
b3N0Q29ubmVjdGlvbnMgPSB0cnVlOyB9CiAKIHByaXZhdGU6Ci0KICAgICAvLyBXZSBjYW5ub3Qg
b3duIHNvY2tldHMsIGNsaWVudHMgb2YgdGhlIGZhY3RvcnkgYXJlIHJlc3BvbnNpYmxlIHRvIGZy
ZWUgdGhlbS4KLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBMaWJXZWJSVENTb2NrZXQqPiBtX3NvY2tl
dHM7Ci0gICAgc3RhdGljIHVpbnQ2NF90IHNfdW5pcXVlU29ja2V0SWRlbnRpZmllcjsKKyAgICBI
YXNoTWFwPFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIExpYldlYlJUQ1NvY2tl
dCo+IG1fc29ja2V0czsKICAgICAKICAgICAvLyBXZSBjYW4gb3duIHJlc29sdmVycyBhcyB3ZSBj
b250cm9sIHRoZWlyIERlc3Ryb3kgbWV0aG9kLgogICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6
dW5pcXVlX3B0cjxMaWJXZWJSVENSZXNvbHZlcj4+IG1fcmVzb2x2ZXJzOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNw
cAppbmRleCBiYTM1ZDdmNzk3Y2IwNjUxYjRiNWRmMGZkMmNkNDAwMTZjOGYyZmM5Li4yOTYxZWI3
MWE1NzE0MWEwNmJmMmRmYWJhYzQ0NWEyNGJkODcwOTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcApAQCAt
MzUsOSArMzUsMTEgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1
ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLXZvaWQgV2ViUlRDU29ja2V0OjpzaWduYWxPbk5ldHdvcmtUaHJlYWQo
TGliV2ViUlRDU29ja2V0RmFjdG9yeSYgZmFjdG9yeSwgdWludDY0X3QgaWRlbnRpZmllciwgRnVu
Y3Rpb248dm9pZChMaWJXZWJSVENTb2NrZXQmKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViUlRDU29j
a2V0OjpzaWduYWxPbk5ldHdvcmtUaHJlYWQoTGliV2ViUlRDU29ja2V0RmFjdG9yeSYgZmFjdG9y
eSwgTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKExp
YldlYlJUQ1NvY2tldCYpPiYmIGNhbGxiYWNrKQogewogICAgIC8vIGZhY3RvcnkgaXMgc3RheWlu
ZyB2YWxpZCBkdXJpbmcgdGhlIHByb2Nlc3MgbGlmZXRpbWUuCiAgICAgV2ViQ29yZTo6TGliV2Vi
UlRDUHJvdmlkZXI6OmNhbGxPbldlYlJUQ05ldHdvcmtUaHJlYWQoWyZmYWN0b3J5LCBpZGVudGlm
aWVyLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIHsKQEAgLTQ4LDcgKzUwLDcgQEAg
dm9pZCBXZWJSVENTb2NrZXQ6OnNpZ25hbE9uTmV0d29ya1RocmVhZChMaWJXZWJSVENTb2NrZXRG
YWN0b3J5JiBmYWN0b3J5LCB1aW50NjQKICAgICB9KTsKIH0KIAotV2ViUlRDU29ja2V0OjpXZWJS
VENTb2NrZXQoTGliV2ViUlRDU29ja2V0RmFjdG9yeSYgZmFjdG9yeSwgdWludDY0X3QgaWRlbnRp
ZmllcikKK1dlYlJUQ1NvY2tldDo6V2ViUlRDU29ja2V0KExpYldlYlJUQ1NvY2tldEZhY3Rvcnkm
IGZhY3RvcnksIExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICA6IG1f
ZmFjdG9yeShmYWN0b3J5KQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiB7CkBAIC03
MSwyOCArNzMsMjggQEAgdm9pZCBXZWJSVENTb2NrZXQ6OnNpZ25hbFJlYWRQYWNrZXQoY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBjb25zdCBSVENOZXQKIAogdm9pZCBXZWJSVENTb2Nr
ZXQ6OnNpZ25hbFNlbnRQYWNrZXQoaW50IHJ0Y1BhY2tldElELCBpbnQ2NF90IHNlbmRUaW1lTXMp
CiB7Ci0gICAgc2lnbmFsT25OZXR3b3JrVGhyZWFkKG1fZmFjdG9yeSwgbV9pZGVudGlmaWVyLCBb
cnRjUGFja2V0SUQsIHNlbmRUaW1lTXNdKExpYldlYlJUQ1NvY2tldCYgc29ja2V0KSB7CisgICAg
c2lnbmFsT25OZXR3b3JrVGhyZWFkKG1fZmFjdG9yeSwgbV9pZGVudGlmaWVyLCBbcnRjUGFja2V0
SUQsIHNlbmRUaW1lTXNdKGF1dG8mIHNvY2tldCkgewogICAgICAgICBzb2NrZXQuc2lnbmFsU2Vu
dFBhY2tldChydGNQYWNrZXRJRCwgc2VuZFRpbWVNcyk7CiAgICAgfSk7CiB9CiAKIHZvaWQgV2Vi
UlRDU29ja2V0OjpzaWduYWxDb25uZWN0KCkKIHsKLSAgICBzaWduYWxPbk5ldHdvcmtUaHJlYWQo
bV9mYWN0b3J5LCBtX2lkZW50aWZpZXIsIFtdKExpYldlYlJUQ1NvY2tldCYgc29ja2V0KSB7Cisg
ICAgc2lnbmFsT25OZXR3b3JrVGhyZWFkKG1fZmFjdG9yeSwgbV9pZGVudGlmaWVyLCBbXShhdXRv
JiBzb2NrZXQpIHsKICAgICAgICAgc29ja2V0LnNpZ25hbENvbm5lY3QoKTsKICAgICB9KTsKIH0K
IAogdm9pZCBXZWJSVENTb2NrZXQ6OnNpZ25hbENsb3NlKGludCBlcnJvcikKIHsKLSAgICBzaWdu
YWxPbk5ldHdvcmtUaHJlYWQobV9mYWN0b3J5LCBtX2lkZW50aWZpZXIsIFtlcnJvcl0oTGliV2Vi
UlRDU29ja2V0JiBzb2NrZXQpIHsKKyAgICBzaWduYWxPbk5ldHdvcmtUaHJlYWQobV9mYWN0b3J5
LCBtX2lkZW50aWZpZXIsIFtlcnJvcl0oYXV0byYgc29ja2V0KSB7CiAgICAgICAgIHNvY2tldC5z
aWduYWxDbG9zZShlcnJvcik7CiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUlRDU29ja2V0OjpzaWdu
YWxOZXdDb25uZWN0aW9uKHVpbnQ2NF90IG5ld1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MpCit2b2lkIFdlYlJUQ1NvY2tldDo6
c2lnbmFsTmV3Q29ubmVjdGlvbihMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG5ld1NvY2tldElk
ZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3Mp
CiB7Ci0gICAgc2lnbmFsT25OZXR3b3JrVGhyZWFkKG1fZmFjdG9yeSwgbV9pZGVudGlmaWVyLCBb
bmV3U29ja2V0SWRlbnRpZmllciwgcmVtb3RlQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVk
Q29weShyZW1vdGVBZGRyZXNzLnZhbHVlKV0oTGliV2ViUlRDU29ja2V0JiBzb2NrZXQpIHsKKyAg
ICBzaWduYWxPbk5ldHdvcmtUaHJlYWQobV9mYWN0b3J5LCBtX2lkZW50aWZpZXIsIFtuZXdTb2Nr
ZXRJZGVudGlmaWVyLCByZW1vdGVBZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KHJl
bW90ZUFkZHJlc3MudmFsdWUpXShhdXRvJiBzb2NrZXQpIHsKICAgICAgICAgc29ja2V0LnNpZ25h
bE5ld0Nvbm5lY3Rpb24oc29ja2V0Lm1fZmFjdG9yeS5jcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0
KHNvY2tldCwgbmV3U29ja2V0SWRlbnRpZmllciwgcmVtb3RlQWRkcmVzcykpOwogICAgIH0pOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dl
YlJUQ1NvY2tldC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dl
YlJUQ1NvY2tldC5oCmluZGV4IDlmNGNiNzgwODY4NWRkNjc4NmMxZGQ1YjczNjFjMjcyMjQyMGU4
OWYuLjU3ZTE4ZGZlMzAzOGZjZTdlNzJhYjQ5ZWZlOGEyODcwYjRmOTgyZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0
LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBVU0UoTElCV0VCUlRDKQogCiAjaW5jbHVkZSAiUlRD
TmV0d29yay5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5o
PgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTQzLDEx
ICs0NCwxMSBAQCBjbGFzcyBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OwogCiBjbGFzcyBXZWJSVENT
b2NrZXQgewogcHVibGljOgotICAgIFdlYlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5
JiwgdWludDY0X3QpOworICAgIFdlYlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5Jiwg
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllcik7CiAKICAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogCi0gICAgc3RhdGlj
IHZvaWQgc2lnbmFsT25OZXR3b3JrVGhyZWFkKExpYldlYlJUQ1NvY2tldEZhY3RvcnkmLCB1aW50
NjRfdCwgRnVuY3Rpb248dm9pZChMaWJXZWJSVENTb2NrZXQmKT4mJik7CisgICAgc3RhdGljIHZv
aWQgc2lnbmFsT25OZXR3b3JrVGhyZWFkKExpYldlYlJUQ1NvY2tldEZhY3RvcnkmLCBXZWJDb3Jl
OjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKExpYldlYlJUQ1NvY2tl
dCYpPiYmKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHNpZ25hbFJlYWRQYWNrZXQoY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgUlRDTmV0d29yazo6SVBBZGRyZXNzJiwgdWludDE2X3Qg
cG9ydCwgaW50NjRfdCk7CkBAIC01NSwxMCArNTYsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNp
Z25hbEFkZHJlc3NSZWFkeShjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJik7CiAgICAg
dm9pZCBzaWduYWxDb25uZWN0KCk7CiAgICAgdm9pZCBzaWduYWxDbG9zZShpbnQpOwotICAgIHZv
aWQgc2lnbmFsTmV3Q29ubmVjdGlvbih1aW50NjRfdCBuZXdTb2NrZXRJZGVudGlmaWVyLCBjb25z
dCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmKTsKKyAgICB2b2lkIHNpZ25hbE5l
d0Nvbm5lY3Rpb24oV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdTb2NrZXRJ
ZGVudGlmaWVyLCBjb25zdCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmKTsKIAog
ICAgIExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIG1fZmFjdG9yeTsKLSAgICB1aW50NjRfdCBtX2lk
ZW50aWZpZXIgeyAwIH07CisgICAgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBt
X2lkZW50aWZpZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29j
a2V0Lm1lc3NhZ2VzLmluCmluZGV4IGY2MTEyODVhZmE3MzY1YWUxZGI3ODhiMjczODRhNWZlZmU4
ODZlN2YuLjhmODcyZWUyMTlhMmM3NzY4ZGE4NTNhYTQxZjI1N2ZmNDU3NGRjMzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L1dlYlJUQ1NvY2tldC5tZXNzYWdlcy5pbgpAQCAtMjgsNyArMjgsNyBAQCBtZXNzYWdlcyAtPiBX
ZWJSVENTb2NrZXQgewogICAgIFNpZ25hbEFkZHJlc3NSZWFkeShXZWJLaXQ6OlJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MgYWRkcmVzcykKICAgICBTaWduYWxDb25uZWN0KCkKICAgICBTaWduYWxD
bG9zZShpbnQgZXJyb3IpCi0gICAgU2lnbmFsTmV3Q29ubmVjdGlvbih1aW50NjRfdCBuZXdTb2Nr
ZXRJZGVudGlmaWVyLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgcmVtb3RlQWRk
cmVzcykKKyAgICBTaWduYWxOZXdDb25uZWN0aW9uKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElk
ZW50aWZpZXIgbmV3U29ja2V0SWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRB
ZGRyZXNzIHJlbW90ZUFkZHJlc3MpCiB9CiAKICNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379897</attachid>
            <date>2019-10-01 06:17:43 -0700</date>
            <delta_ts>2019-10-01 06:26:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202400-20191001151742.patch</filename>
            <type>text/plain</type>
            <size>44399</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk4MTRkZDQ0Y2VmMTJj
Y2YyNDU5YmRiZWY4Nzg4NjRjODFjNmViYS4uMzY3NGI4NmMwMWFmNjc0MDVmMzc2YzEzNTlkNTFj
MTdiYzVhNTcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTEwLTAxICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc3Ryb25nbHkgdHlw
ZWQgaWRlbnRpZmllcnMgZm9yIHdlYnJ0YyBzb2NrZXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MDAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGNoYW5nZSBvZiBiZWhhdmlv
ci4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaC4KKwogMjAxOS0xMC0w
MSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUXVldWUgZXZl
bnRzIGFuZCBwcm9taXNlIHJlc29sdXRpb24gaW4gUlRDUGVlckNvbm5lY3Rpb24gd2hlbiBzdXNw
ZW5kZWQgZm9yIHBhZ2UgY2FjaGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjYyYjZjZmNhYzlkMjQ0YjcwODcwMTU0
NmRlYmIzYzZjZWExNDA4My4uNDgzN2NkYTcxZjJmNGZhNTkzNDAxZTk4NTg2ZGFiNWNjMDBiMjQy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAxOS0xMC0wMSAgeW91ZW5uIGZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHN0cm9uZ2x5IHR5cGVkIGlkZW50aWZp
ZXJzIGZvciB3ZWJydGMgc29ja2V0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAyNDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVmYWN0b3JpbmcgdG8gdXNlIExpYldlYlJUQ1NvY2tldElkZW50aWZp
ZXIgaW5zdGVhZCBvZiB1aW50NjRfdC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENT
b2NrZXRDbGllbnQ6OkxpYldlYlJUQ1NvY2tldENsaWVudCk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1JUQ1Byb3ZpZGVyOjpjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6d3JhcE5ld1RDUENvbm5lY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmFkZFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtSVENQcm92aWRlcjo6dGFrZVNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSVENQcm92aWRlcjo6bmV3Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
VENQcm92aWRlcjo6ZGlkUmVjZWl2ZU5ldHdvcmtSVENTb2NrZXRNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjbG9zZUxpc3RlbmluZ1NvY2tldHMpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNhbGxTb2NrZXQpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1JUQ1NvY2tldDo6TmV0d29ya1JUQ1NvY2tldCk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaDoKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmg6CisgICAgICAgIChXZWJLaXQ6Okxp
YldlYlJUQ05ldHdvcms6OnNvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2Nr
ZXQ6OkxpYldlYlJUQ1NvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENT
b2NrZXRGYWN0b3J5OjpjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpM
aWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVVZHBTb2NrZXQpOgorICAgICAgICAoV2ViS2l0
OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQpOgorICAgICAg
ICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVOZXdDb25uZWN0aW9uU29j
a2V0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tl
dEZhY3RvcnkuaDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6c29j
a2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6cmVzb2x2ZXIp
OgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojp0YWtlUmVzb2x2ZXIp
OgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpkaXNhYmxlTm9uTG9j
YWxob3N0Q29ubmVjdGlvbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
V2ViUlRDU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU29ja2V0OjpzaWduYWxP
bk5ldHdvcmtUaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTb2NrZXQ6OldlYlJUQ1Nv
Y2tldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6c2lnbmFsU2VudFBhY2tldCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6c2lnbmFsQ29ubmVjdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6c2lnbmFsQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSVENTb2NrZXQ6OnNpZ25hbE5ld0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW46CisKIDIwMTktMTAtMDEgIHlvdWVu
biBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSByYWNlcyBjb25k
aXRpb24gd2hlbiB2YWxpZGF0aW5nIGNhcHR1cmUgc2FuZGJveCBleHRlbnNpb24gcmV2b2NhdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKaW5kZXggNTRhZjIyZGFkZTY1M2ZkM2FiYTc4NmMxNTlmZTAwZDJm
MGE4YmQ5NC4uZGRiMzU5ZTM5MTI0ODc3Zjg0MGNkODA2OTU1ZGVkMzExMDA2ZTM4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCkBAIC0xMTU5LDYgKzExNTksNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDTWFjcm9zLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUHJvdmlkZXIuaAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENTb2NrZXRJZGVudGlmaWVyLmgKIAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrLmgKICAgICBwbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRNb2Nr
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBhMTc2MWM2N2I0Yzk1ZDhlYWI0NzdhN2MwMGFlNTU0NWQyM2E3OWVlLi5lY2RiNzkw
NzhhOTM4ZDY1YmI5MDI5NzBhOWZlZmM1NjgwMWNkZmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDIzLDYgKzEwMjMsNyBA
QAogCQkzRkZGRjlBOTE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBNzE1
OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggKi87IH07CiAJCTNGRkZG
OUFFMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGRkZGOUFDMTU5RDlCMDYwMDIw
QkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCAqLzsgfTsKIAkJNDEwNzkwOEMxRkMzRjAz
MzAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDEwNzkwOEExRkMzRTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdp
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQx
MEU0NDYxMjM0MzczRTkwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTBFNDQ1RjIzNDM3
M0FEMDAwMTczRDQgLyogTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMTAzQUFDMUUzOTc5MTAwMDc2
OUYwMyAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUE4MUUzOTc5MEEwMDc2OUYwMyAvKiBS
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCAqLzsgfTsKIAkJNDExMDNBQUMxRTM5NzkxMDAw
NzY5RjE0IC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FBODFFMzk3OTBBMDA3NjlG
MTQgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuaCAqLzsgfTsKIAkJNDExMDNB
QUQxRTM5NzkxMDAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDNBQTkxRTM5Nzkw
QTAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oICovOyB9OwpAQCAtNzE3
Myw2ICs3MTc0LDcgQEAKIAkJNDEwNjI2QTcyMjgwQTIyQTAwNkQxQjU5IC8qIEpTQXVkaW9Ob2Rl
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXVkaW9O
b2RlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwNzkwOEExRkMz
RTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDbGllbnRPcmlnaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEw
QjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwRTQ0NUYyMzQzNzNBRDAwMDE3M0Q0IC8q
IExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oOyBwYXRoID0gbGlid2VicnRjL0xpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEx
MDNBQTcxRTM5NzkwQTAwNzY5RjAzIC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEwM0FBNzFFMzk3
OTBBMDA3NjlGMTQgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEwM0FBODFFMzk3
OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc3NjksNiArMTc3NzEsNyBAQAogCQkJCTQxNTc0
NzQ0MUUzODY5OUUwMEU5MTREOCAvKiBMaWJXZWJSVENQcm92aWRlci5oICovLAogCQkJCTQxQjI4
QjM4MUY4NjBCRDEwMEZCNTJBQyAvKiBMaWJXZWJSVENQcm92aWRlckNvY29hLmNwcCAqLywKIAkJ
CQk0MUIyOEIzNjFGODYwQkQwMDBGQjUyQUMgLyogTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5oICov
LAorCQkJCTQxMEU0NDVGMjM0MzczQUQwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IGxpYndlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC0yODkwMiw2ICsyODkwNSw3IEBACiAJCQkJQUEyMUVDQ0QwQUJGMEZDNjAw
MkI4MzRDIC8qIENTU0N1cnNvckltYWdlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk0NDRD
QkU0MUQ4ODYxOTkwMDczQTA3NCAvKiBDU1NDdXN0b21JZGVudFZhbHVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzc3OUUxNDFCQjIxNUJCMDBDQUE4QkYgLyogQ1NTQ3VzdG9tUHJvcGVydHlWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwRTQ0NjEyMzQzNzNFOTAwMDE3M0Q0IC8qIExpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBOUNDODE4MTZCQjlB
QzYwMEVDNjQ1QSAvKiBDU1NEZWZhdWx0U3R5bGVTaGVldHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk0NDc2QkRCMURGQ0FDMDMwMDY5MEUyMyAvKiBDU1NEZWZlcnJlZFBhcnNlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkJCMEM1QjgxN0JCRDYyOTAwM0QzNjc3IC8qIENTU0ZpbHRlckltYWdlVmFs
dWUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc0ZjEzNmU5MTQ2ZDM2MGQ3ZmYxZGY3MTg2NjhlMGVl
OWIwYTMxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwz
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlICwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJ
ZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBMaWJXZWJSVENTb2Nr
ZXRJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyID0g
T2JqZWN0SWRlbnRpZmllcjxMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyVHlwZT47CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuY3BwCmluZGV4IGM1OTk1YmM1
MzI1NWZlMmQzNzZmYzQ1ZmJmYjllZTYzMWVlNzNlNzEuLjBiNzQ3ZDg1MjM1YWQ3ZDE1MDY3OTdl
NGExN2RhYzU4NDZlYmQ2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmNwcApAQCAtMzUsOSAr
MzUsMTEgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0
Zi9GdW5jdGlvbi5oPgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLUxpYldlYlJUQ1NvY2tldENsaWVudDo6TGliV2ViUlRDU29ja2V0Q2xpZW50KHVp
bnQ2NF90IGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIsIHN0ZDo6
dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmIHNvY2tldCwgVHlwZSB0eXBlKQor
TGliV2ViUlRDU29ja2V0Q2xpZW50OjpMaWJXZWJSVENTb2NrZXRDbGllbnQoTGliV2ViUlRDU29j
a2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVy
LCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiBzb2NrZXQsIFR5cGUg
dHlwZSkKICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV90eXBlKHR5cGUp
CiAgICAgLCBtX3J0Y1Byb3ZpZGVyKHJ0Y1Byb3ZpZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaApp
bmRleCAyNWFhNTRhZmE3ZDc2ZmE5NDU2YWZiYjhjYzQxZDExNmFiYWZjODZkLi41YWYzOTMwNmMy
ZDUxN2EyZjU4Yzg3ODAzMTI0YWMyZjk3MzFhYjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaApA
QCAtNDEsMTAgKzQxLDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgTGliV2ViUlRDU29j
a2V0Q2xpZW50IGZpbmFsIDogcHVibGljIE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0LCBwdWJs
aWMgc2lnc2xvdDo6aGFzX3Nsb3RzPD4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIExpYldlYlJUQ1NvY2tldENsaWVudCh1aW50NjRfdCBpZGVudGlmaWVyLCBO
ZXR3b3JrUlRDUHJvdmlkZXImLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tl
dD4mJiwgVHlwZSk7CisgICAgTGliV2ViUlRDU29ja2V0Q2xpZW50KFdlYkNvcmU6OkxpYldlYlJU
Q1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYsIHN0ZDo6dW5pcXVlX3B0cjxy
dGM6OkFzeW5jUGFja2V0U29ja2V0PiYmLCBUeXBlKTsKIAogcHJpdmF0ZToKLSAgICB1aW50NjRf
dCBpZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAg
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAgICAgVHlwZSB0eXBlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV90eXBlOyB9CiAgICAgdm9pZCBjbG9zZSgpIGZpbmFsOwogCkBAIC02MCw3ICs2
MCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNpZ25hbEFkZHJlc3NSZWFkeSgpOwogCi0gICAg
dWludDY0X3QgbV9pZGVudGlmaWVyOworICAgIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFR5cGUgbV90eXBlOwogICAgIE5ldHdvcmtSVENQcm92
aWRlciYgbV9ydGNQcm92aWRlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tl
dFNvY2tldD4gbV9zb2NrZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAppbmRleCBmN2VlNGRiZDg2ZmZj
NzVkNTdlYjdiMzg2ZTYwMzhjNTdhMzUxZGI3Li4xZjlhNzRiYmVjNWNjZmJkN2I0YzQxNzBkZDc0
M2FkNTUxNWZmMzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKQEAgLTQ2LDYgKzQ2LDggQEAKICNp
bmNsdWRlICJOZXR3b3JrUlRDUmVzb2x2ZXJDb2NvYS5oIgogI2VuZGlmCiAKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIGlubGluZSBzdGQ6
OnVuaXF1ZV9wdHI8cnRjOjpUaHJlYWQ+IGNyZWF0ZVRocmVhZCgpCkBAIC05Niw3ICs5OCw3IEBA
IHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjbG9zZSgpCiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0
d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgc3RkOjp1
bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+JiYgc29ja2V0LCBTb2NrZXQ6OlR5cGUg
dHlwZSkKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXQoTGliV2ViUlRDU29j
a2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tl
dFNvY2tldD4mJiBzb2NrZXQsIFNvY2tldDo6VHlwZSB0eXBlKQogewogICAgIGlmICghc29ja2V0
KSB7CiAgICAgICAgIHNlbmRGcm9tTWFpblRocmVhZChbaWRlbnRpZmllciwgc2l6ZSA9IG1fc29j
a2V0cy5zaXplKCldKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgewpAQCAtMTA4LDcgKzEx
MCw3IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXQodWludDY0X3QgaWRl
bnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6CiAgICAgYWRkU29ja2V0KGlkZW50aWZpZXIs
IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0Q2xpZW50PihpZGVudGlmaWVyLCAqdGhpcywgV1RG
TW92ZShzb2NrZXQpLCB0eXBlKSk7CiB9CiAKLXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVh
dGVVRFBTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkKK3Zv
aWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVVRFBTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBhZGRy
ZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQogewogICAgIGNhbGxPblJU
Q05ldHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50aWZpZXIsIGFkZHJlc3MgPSBSVENOZXR3b3JrOjpp
c29sYXRlZENvcHkoYWRkcmVzcy52YWx1ZSksIG1pblBvcnQsIG1heFBvcnRdKCkgewogICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29ja2V0KG1fcGFja2V0
U29ja2V0RmFjdG9yeS0+Q3JlYXRlVWRwU29ja2V0KGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQp
KTsKQEAgLTExNiw3ICsxMTgsNyBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlVURQ
U29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OgogICAgIH0pOwog
fQogCi12b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlU2VydmVyVENQU29ja2V0KHVpbnQ2
NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3Ms
IHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKQordm9pZCBO
ZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNlcnZlclRDUFNvY2tldChMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGFk
ZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKQog
ewogICAgIGlmICghbV9pc0xpc3RlbmluZ1NvY2tldEF1dGhvcml6ZWQpIHsKICAgICAgICAgaWYg
KG1fY29ubmVjdGlvbikKQEAgLTEzNyw3ICsxMzksNyBAQCBydGM6OlByb3h5SW5mbyBOZXR3b3Jr
UlRDUHJvdmlkZXI6OnByb3h5SW5mb0Zyb21TZXNzaW9uKGNvbnN0IFJUQ05ldHdvcms6OlNvY2tl
dAogfQogI2VuZGlmCiAKLXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BT
b2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVz
cyYgbG9jYWxBZGRyZXNzLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVB
ZGRyZXNzLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCBvcHRpb25zKQordm9pZCBOZXR3b3JrUlRD
UHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVz
cywgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5n
JiYgdXNlckFnZW50LCBpbnQgb3B0aW9ucykKIHsKICAgICBhdXRvKiBzZXNzaW9uID0gbV9jb25u
ZWN0aW9uLT5uZXR3b3JrU2Vzc2lvbigpOwogICAgIGlmICghc2Vzc2lvbikgewpAQCAtMTUwLDcg
KzE1Miw3IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQo
dWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0CiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0
d29ya1JUQ1Byb3ZpZGVyOjp3cmFwTmV3VENQQ29ubmVjdGlvbih1aW50NjRfdCBpZGVudGlmaWVy
LCB1aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcikKK3ZvaWQgTmV0d29ya1JU
Q1Byb3ZpZGVyOjp3cmFwTmV3VENQQ29ubmVjdGlvbihMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
IGlkZW50aWZpZXIsIExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tl
dElkZW50aWZpZXIpCiB7CiAgICAgY2FsbE9uUlRDTmV0d29ya1RocmVhZChbdGhpcywgaWRlbnRp
ZmllciwgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXJdKCkgewogICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29ja2V0ID0gbV9wZW5kaW5nSW5jb21p
bmdTb2NrZXRzLnRha2UobmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIpOwpAQCAtMTU4LDI3
ICsxNjAsMjggQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OndyYXBOZXdUQ1BDb25uZWN0aW9u
KHVpbnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2NF90IG5ld0MKICAgICB9KTsKIH0KIAotdm9pZCBO
ZXR3b3JrUlRDUHJvdmlkZXI6OmFkZFNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBzdGQ6OnVu
aXF1ZV9wdHI8U29ja2V0PiYmIHNvY2tldCkKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjphZGRT
b2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9w
dHI8U29ja2V0PiYmIHNvY2tldCkKIHsKICAgICBtX3NvY2tldHMuYWRkKGlkZW50aWZpZXIsIFdU
Rk1vdmUoc29ja2V0KSk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUlRDUHJvdmlkZXI6
OlNvY2tldD4gTmV0d29ya1JUQ1Byb3ZpZGVyOjp0YWtlU29ja2V0KHVpbnQ2NF90IGlkZW50aWZp
ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQ+IE5ldHdvcmtS
VENQcm92aWRlcjo6dGFrZVNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCiB7CiAgICAgcmV0dXJuIG1fc29ja2V0cy50YWtlKGlkZW50aWZpZXIpOwogfQogCiB2b2lk
IE5ldHdvcmtSVENQcm92aWRlcjo6bmV3Q29ubmVjdGlvbihTb2NrZXQmIHNlcnZlclNvY2tldCwg
c3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+JiYgbmV3U29ja2V0KQogewot
ICAgIHNlbmRGcm9tTWFpblRocmVhZChbaWRlbnRpZmllciA9IHNlcnZlclNvY2tldC5pZGVudGlm
aWVyKCksIGluY29taW5nU29ja2V0SWRlbnRpZmllciA9ICsrbV9pbmNvbWluZ1NvY2tldElkZW50
aWZpZXIsIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENvcHkobmV3U29ja2V0
LT5HZXRSZW1vdGVBZGRyZXNzKCkpXShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pIHsKKyAg
ICBhdXRvIGluY29taW5nU29ja2V0SWRlbnRpZmllciA9IExpYldlYlJUQ1NvY2tldElkZW50aWZp
ZXI6OmdlbmVyYXRlKCk7CisgICAgc2VuZEZyb21NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc2Vy
dmVyU29ja2V0LmlkZW50aWZpZXIoKSwgaW5jb21pbmdTb2NrZXRJZGVudGlmaWVyLCByZW1vdGVB
ZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KG5ld1NvY2tldC0+R2V0UmVtb3RlQWRk
cmVzcygpKV0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rp
b24uc2VuZChNZXNzYWdlczo6V2ViUlRDU29ja2V0OjpTaWduYWxOZXdDb25uZWN0aW9uKGluY29t
aW5nU29ja2V0SWRlbnRpZmllciwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhyZW1vdGVBZGRy
ZXNzKSksIGlkZW50aWZpZXIpOwogICAgIH0pOwotICAgIG1fcGVuZGluZ0luY29taW5nU29ja2V0
cy5hZGQobV9pbmNvbWluZ1NvY2tldElkZW50aWZpZXIsIFdURk1vdmUobmV3U29ja2V0KSk7Cisg
ICAgbV9wZW5kaW5nSW5jb21pbmdTb2NrZXRzLmFkZChpbmNvbWluZ1NvY2tldElkZW50aWZpZXIs
IFdURk1vdmUobmV3U29ja2V0KSk7CiB9CiAKIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpkaWRS
ZWNlaXZlTmV0d29ya1JUQ1NvY2tldE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgTmV0d29ya1JUQ1NvY2tldChkZWNvZGVy
LmRlc3RpbmF0aW9uSUQoKSwgKnRoaXMpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRl
Y29kZXIpOworICAgIE5ldHdvcmtSVENTb2NrZXQobWFrZU9iamVjdElkZW50aWZpZXI8TGliV2Vi
UlRDU29ja2V0SWRlbnRpZmllclR5cGU+KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKSwgKnRoaXMp
LmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCkBAIC0yNDUsNyArMjQ4LDcgQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNs
b3NlTGlzdGVuaW5nU29ja2V0cyhGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmQKIAog
ICAgIG1faXNMaXN0ZW5pbmdTb2NrZXRBdXRob3JpemVkID0gZmFsc2U7CiAgICAgY2FsbE9uUlRD
TmV0d29ya1RocmVhZChbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgVmVjdG9yPHVpbnQ2NF90PiBsaXN0ZW5p
bmdTb2NrZXRJZGVudGlmaWVyczsKKyAgICAgICAgVmVjdG9yPExpYldlYlJUQ1NvY2tldElkZW50
aWZpZXI+IGxpc3RlbmluZ1NvY2tldElkZW50aWZpZXJzOwogICAgICAgICBmb3IgKGF1dG8mIGtl
eVZhbHVlIDogbV9zb2NrZXRzKSB7CiAgICAgICAgICAgICBpZiAoa2V5VmFsdWUudmFsdWUtPnR5
cGUoKSA9PSBTb2NrZXQ6OlR5cGU6OlNlcnZlclRDUCkKICAgICAgICAgICAgICAgICBsaXN0ZW5p
bmdTb2NrZXRJZGVudGlmaWVycy5hcHBlbmQoa2V5VmFsdWUua2V5KTsKQEAgLTI4NSw3ICsyODgs
NyBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y2FsbE9uUlRDTmV0d29ya1RocmVhZChGdW5j
dGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCiAgICAgbV9ydGNOZXR3b3JrVGhyZWFkLT5Qb3N0KFJU
Q19GUk9NX0hFUkUsIHRoaXMsIDEsIG5ldyBOZXR3b3JrTWVzc2FnZURhdGEoKnRoaXMsIFdURk1v
dmUoY2FsbGJhY2spKSk7CiB9CiAKLXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjYWxsU29ja2V0
KHVpbnQ2NF90IGlkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoU29ja2V0Jik+JiYgY2FsbGJhY2sp
Cit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y2FsbFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoU29ja2V0Jik+JiYgY2FsbGJhY2spCiB7
CiAgICAgY2FsbE9uUlRDTmV0d29ya1RocmVhZChbdGhpcywgaWRlbnRpZmllciwgY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSB7CiAgICAgICAgIGlmIChhdXRvKiBzb2NrZXQgPSBtX3Nv
Y2tldHMuZ2V0KGlkZW50aWZpZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAppbmRleCA2MzI2NWRhNDA2MDhm
MGNjOTM0OGZkMWE0N2VjZDJiMzVmOTYzYzI5Li4yNTEwNTBkMzYxMGE5NTU1ZDdjZDQ4NzMxODM1
OGY5ZTc4MDJhNjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIk5ldHdvcmtSVENNb25pdG9yLmgiCiAjaW5jbHVkZSAiUlRDTmV0d29yay5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJS
VENTb2NrZXRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d2VicnRjL3AycC9iYXNlL2Jhc2ljcGFj
a2V0c29ja2V0ZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS90aGlyZF9wYXJ0
eS9zaWdzbG90L3NpZ3Nsb3QuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNzIsMTkg
KzczLDE5IEBAIHB1YmxpYzoKIAogICAgICAgICBlbnVtIGNsYXNzIFR5cGUgOiB1aW50OF90IHsg
VURQLCBTZXJ2ZXJUQ1AsIENsaWVudFRDUCwgU2VydmVyQ29ubmVjdGlvblRDUCB9OwogICAgICAg
ICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0ICA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdWludDY0
X3QgaWRlbnRpZmllcigpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBXZWJDb3JlOjpMaWJX
ZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCA9IDA7CiAKICAgICAgICAg
dmlydHVhbCB2b2lkIGNsb3NlKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0T3B0aW9u
KGludCBvcHRpb24sIGludCB2YWx1ZSkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2VuZFRv
KGNvbnN0IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYs
IGNvbnN0IHJ0Yzo6UGFja2V0T3B0aW9ucyYpID0gMDsKICAgICB9OwogCi0gICAgc3RkOjp1bmlx
dWVfcHRyPFNvY2tldD4gdGFrZVNvY2tldCh1aW50NjRfdCk7CisgICAgc3RkOjp1bmlxdWVfcHRy
PFNvY2tldD4gdGFrZVNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHJlc29sdmVyRG9uZSh1aW50NjRfdCk7CiAKICAgICB2b2lkIGNsb3NlKCk7CiAK
LSAgICB2b2lkIGNhbGxTb2NrZXQodWludDY0X3QsIEZ1bmN0aW9uPHZvaWQoU29ja2V0Jik+JiYp
OworICAgIHZvaWQgY2FsbFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
LCBGdW5jdGlvbjx2b2lkKFNvY2tldCYpPiYmKTsKICAgICB2b2lkIGNhbGxPblJUQ05ldHdvcmtU
aHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICB2b2lkIHNlbmRGcm9tTWFpblRocmVhZChG
dW5jdGlvbjx2b2lkKElQQzo6Q29ubmVjdGlvbiYpPiYmKTsKIApAQCAtOTYsMjQgKzk3LDI0IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTmV0d29ya1JUQ1Byb3ZpZGVyKE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CiAKLSAgICB2b2lkIGNyZWF0ZVVEUFNvY2tldCh1
aW50NjRfdCwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90LCB1aW50
MTZfdCk7Ci0gICAgdm9pZCBjcmVhdGVDbGllbnRUQ1BTb2NrZXQodWludDY0X3QsIGNvbnN0IFJU
Q05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
JiwgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQpOwotICAgIHZvaWQgY3JlYXRlU2VydmVyVENQU29j
a2V0KHVpbnQ2NF90LCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3Qg
bWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50KTsKLSAgICB2b2lkIHdyYXBOZXdUQ1BDb25u
ZWN0aW9uKHVpbnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2NF90IG5ld0Nvbm5lY3Rpb25Tb2NrZXRJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENT
b2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2
X3QsIHVpbnQxNl90KTsKKyAgICB2b2lkIGNyZWF0ZUNsaWVudFRDUFNvY2tldChXZWJDb3JlOjpM
aWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
JiwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIFN0cmluZyYmIHVzZXJBZ2VudCwg
aW50KTsKKyAgICB2b2lkIGNyZWF0ZVNlcnZlclRDUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENT
b2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2
X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50KTsKKyAgICB2b2lkIHdyYXBOZXdUQ1BD
b25uZWN0aW9uKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwg
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRl
bnRpZmllcik7CiAKICAgICB2b2lkIGNyZWF0ZVJlc29sdmVyKHVpbnQ2NF90LCBjb25zdCBTdHJp
bmcmKTsKICAgICB2b2lkIHN0b3BSZXNvbHZlcih1aW50NjRfdCk7CiAKLSAgICB2b2lkIGFkZFNv
Y2tldCh1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFNvY2tldD4mJik7CisgICAgdm9pZCBhZGRT
b2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRy
PFNvY2tldD4mJik7CiAKLSAgICB2b2lkIGNyZWF0ZVNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVy
LCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiwgU29ja2V0OjpUeXBl
KTsKKyAgICB2b2lkIGNyZWF0ZVNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiwgU29ja2V0OjpU
eXBlKTsKIAogICAgIHZvaWQgT25NZXNzYWdlKHJ0Yzo6TWVzc2FnZSopOwogCiAgICAgc3RhdGlj
IHJ0Yzo6UHJveHlJbmZvIHByb3h5SW5mb0Zyb21TZXNzaW9uKGNvbnN0IFJUQ05ldHdvcms6OlNv
Y2tldEFkZHJlc3MmLCBOZXR3b3JrU2Vzc2lvbiYpOwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwg
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENSZXNvbHZlcj4+IG1fcmVzb2x2ZXJzOwotICAgIEhh
c2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxTb2NrZXQ+PiBtX3NvY2tldHM7CisgICAg
SGFzaE1hcDxXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9w
dHI8U29ja2V0Pj4gbV9zb2NrZXRzOwogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KiBtX2Nvbm5lY3Rpb247CiAgICAgYm9vbCBtX2lzU3RhcnRlZCB7IHRydWUgfTsKIApAQCAtMTIy
LDggKzEyMyw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6VGhyZWFkPiBt
X3J0Y05ldHdvcmtUaHJlYWQ7CiAgICAgVW5pcXVlUmVmPHJ0Yzo6QmFzaWNQYWNrZXRTb2NrZXRG
YWN0b3J5PiBtX3BhY2tldFNvY2tldEZhY3Rvcnk7CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBz
dGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4+IG1fcGVuZGluZ0luY29taW5n
U29ja2V0czsKLSAgICB1aW50NjRfdCBtX2luY29taW5nU29ja2V0SWRlbnRpZmllciB7IDAgfTsK
KyAgICBIYXNoTWFwPFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIHN0ZDo6dW5p
cXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0Pj4gbV9wZW5kaW5nSW5jb21pbmdTb2NrZXRz
OwogICAgIGJvb2wgbV9pc0xpc3RlbmluZ1NvY2tldEF1dGhvcml6ZWQgeyB0cnVlIH07CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3Jr
UlRDUHJvdmlkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KaW5kZXggMTIyMzZiM2M3MWQ3ZmYw
NmU2MTgzMjJmNjQ3MmZmYjEzODhiZDM4Ny4uOTIxZTU3MDRjMmQ5OTlmMDdlMTA4YzkyZjcxOWI2
MTcwOGE2MjM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbgpAQCAtMjMs
MTIgKzIzLDEzIEBACiAjaWYgVVNFKExJQldFQlJUQykKIAogbWVzc2FnZXMgLT4gTmV0d29ya1JU
Q1Byb3ZpZGVyIHsKLSAgICBDcmVhdGVVRFBTb2NrZXQoaW50IGlkZW50aWZpZXIsIFdlYktpdDo6
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQs
IHVpbnQxNl90IG1heFBvcnQpCi0gICAgQ3JlYXRlU2VydmVyVENQU29ja2V0KGludCBpZGVudGlm
aWVyLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCB1aW50
MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKLSAgICBDcmVhdGVD
bGllbnRUQ1BTb2NrZXQoaW50IGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyBsb2NhbEFkZHJlc3MsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBy
ZW1vdGVBZGRyZXNzLCBTdHJpbmcgdXNlckFnZW50LCBpbnQgb3B0aW9ucykKKyAgICBDcmVhdGVV
RFBTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCB1aW50MTZfdCBt
aW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQorICAgIENyZWF0ZVNlcnZlclRDUFNvY2tldChXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0
d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQx
Nl90IG1heFBvcnQsIGludCBvcHRpb25zKQorICAgIENyZWF0ZUNsaWVudFRDUFNvY2tldChXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0
d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIFdlYktpdDo6UlRDTmV0d29yazo6U29j
a2V0QWRkcmVzcyByZW1vdGVBZGRyZXNzLCBTdHJpbmcgdXNlckFnZW50LCBpbnQgb3B0aW9ucykK
KyAgICBXcmFwTmV3VENQQ29ubmVjdGlvbihXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29u
bmVjdGlvblNvY2tldElkZW50aWZpZXIpCisKICAgICBDcmVhdGVSZXNvbHZlcih1aW50NjRfdCBp
ZGVudGlmaWVyLCBTdHJpbmcgYWRkcmVzcykKICAgICBTdG9wUmVzb2x2ZXIodWludDY0X3QgaWRl
bnRpZmllcikKLSAgICBXcmFwTmV3VENQQ29ubmVjdGlvbih1aW50NjRfdCBpZGVudGlmaWVyLCB1
aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcikKIH0KIAogI2VuZGlmIC8vIFVT
RShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENTb2NrZXQuY3BwCmluZGV4IGE4YzcwYTNiMGQ2OTZmYjgxODRiNzEx
MmQ3M2RmMzRkOGZlN2YwNmUuLjgyMGQwN2JjMGU3Mjc0YjQ3OGI0ZTJhODZmYWE5NzI3ZGQyZGZj
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENTb2NrZXQuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi1OZXR3b3JrUlRDU29ja2V0OjpOZXR3b3JrUlRDU29ja2V0KHVpbnQ2NF90IGlkZW50
aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIpCitOZXR3b3JrUlRDU29ja2V0
OjpOZXR3b3JrUlRDU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRl
bnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlcikKICAgICA6IG1faWRlbnRp
ZmllcihpZGVudGlmaWVyKQogICAgICwgbV9ydGNQcm92aWRlcihydGNQcm92aWRlcikKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENT
b2NrZXQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENT
b2NrZXQuaAppbmRleCA2ZTRiZmUyYjE2NDE5Y2JiYzUxYjgwZDk1Zjc1OWVmZTJlZGQ5MmFmLi44
NGJiNGYxMzEyN2IzNjA2YmNlMDE5NzFlY2NiYWE5YzRiY2RkNGQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5oCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiUlRDTmV0d29yay5oIgogCiAjaW5jbHVkZSA8V2Vi
Q29yZS9MaWJXZWJSVENNYWNyb3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvYXN5bmNwYWNrZXRzb2Nr
ZXQuaD4KICNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvdGhpcmRfcGFydHkvc2lnc2xvdC9zaWdz
bG90Lmg+CiAKQEAgLTU4LDE0ICs1OSwxNCBAQCBzdHJ1Y3QgUlRDUGFja2V0T3B0aW9uczsKIAog
Y2xhc3MgTmV0d29ya1JUQ1NvY2tldCB7CiBwdWJsaWM6Ci0gICAgTmV0d29ya1JUQ1NvY2tldCh1
aW50NjRfdCwgTmV0d29ya1JUQ1Byb3ZpZGVyJik7CisgICAgTmV0d29ya1JUQ1NvY2tldChXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImKTsKICAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
OwogcHJpdmF0ZToKICAgICB2b2lkIHNlbmRUbyhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiYsIFJUQ1BhY2tldE9wdGlvbnMmJik7CiAgICAgdm9p
ZCBjbG9zZSgpOwogICAgIHZvaWQgc2V0T3B0aW9uKGludCBvcHRpb24sIGludCB2YWx1ZSk7CiAK
LSAgICB1aW50NjRfdCBtX2lkZW50aWZpZXI7CisgICAgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgTmV0d29ya1JUQ1Byb3ZpZGVyJiBtX3J0Y1By
b3ZpZGVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5k
ZXggZWM0MGQ0MzEzZWQzNDUwYzFlMTBmZmRkNzFiMjA2Yzg0MjZkZmM5Yi4uYTc4ZGEzMTQ0MzI1
OGMwODYxOTJmMjA1MjBiMzQwNjA5NGU0OThmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CkBAIC0yMDYsNiArMjA2LDcgQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRp
b25zX2FuZF9oZWFkZXJzKHJlY2VpdmVyKToKICAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50SWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpGZXRjaElkZW50aWZpZXInLAogICAgICAgICAn
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6UGFnZUlkZW50aWZpZXInLAogICAg
ICAgICAnV2ViQ29yZTo6UG9pbnRlcklEJywKICAgICAgICAgJ1dlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDJmMjFmNWU1MTkxMGViOTg1
MjhjOGRkNDY0NGZlNTMyOWZhNDFkMDEuLmYwYjRmZGZhNmEzMTE3MDQ5OTZkNzg1YTFjOTYyNzcz
NjAxMTk4MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMTA4LDcgKzEwOCw3IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQCiAKICNpZiBVU0UoTElCV0VCUlRDKQogICAgIGlmIChk
ZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUlRDU29ja2V0Ojpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKLSAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
bGliV2ViUlRDTmV0d29yaygpLnNvY2tldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkuZGlkUmVj
ZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXQobWFrZU9iamVjdElkZW50aWZpZXI8
TGliV2ViUlRDU29ja2V0SWRlbnRpZmllclR5cGU+KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKSku
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2Vz
OjpXZWJSVENNb25pdG9yOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29y
ay5oCmluZGV4IDdjNjQ4NGZlNzhkNzhkNzRjYjMyODMzMWY5NzZhZmFiNDIzYjcyZjUuLmY3ZTIx
Zjc3MGIwMzNiMTdjODU5NjkwNmE3MDEyMmVhYjY2MjY5YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsu
aApAQCAtMzMsNiArMzMsNyBAQAogI2VuZGlmCiAKICNpbmNsdWRlICJXZWJNRE5TUmVnaXN0ZXIu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQ3LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBk
aXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSB7IHNvY2tldEZhY3RvcnkoKS5kaXNhYmxl
Tm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKTsgfQogCi0gICAgV2ViUlRDU29ja2V0IHNvY2tldCh1
aW50NjRfdCBpZGVudGlmaWVyKSB7IHJldHVybiBXZWJSVENTb2NrZXQoc29ja2V0RmFjdG9yeSgp
LCBpZGVudGlmaWVyKTsgfQorICAgIFdlYlJUQ1NvY2tldCBzb2NrZXQoV2ViQ29yZTo6TGliV2Vi
UlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyKSB7IHJldHVybiBXZWJSVENTb2NrZXQoc29j
a2V0RmFjdG9yeSgpLCBpZGVudGlmaWVyKTsgfQogICAgIFdlYlJUQ1Jlc29sdmVyIHJlc29sdmVy
KHVpbnQ2NF90IGlkZW50aWZpZXIpIHsgcmV0dXJuIFdlYlJUQ1Jlc29sdmVyKHNvY2tldEZhY3Rv
cnkoKSwgaWRlbnRpZmllcik7IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCmluZGV4
IGUyYzVkZjU1N2M0MDExNWRkZjQ4ZmQ0MDc5YWZiOTQ5YTZjMjU1NjkuLmMyMTc3NTQ3ZWI4YTQy
NDcwZjBlNDRlNGZhOTQ4MTIwZmM5YmVlYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCkBAIC00
MCw5ICs0MCw5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1MaWJXZWJSVENTb2NrZXQ6Okxp
YldlYlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5LCB1aW50NjRfdCBp
ZGVudGlmaWVyLCBUeXBlIHR5cGUsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRy
ZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MpCitMaWJXZWJSVENT
b2NrZXQ6OkxpYldlYlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5LCBU
eXBlIHR5cGUsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MpCiAgICAgOiBtX2ZhY3RvcnkoZmFjdG9y
eSkKLSAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICwgbV9pZGVudGlmaWVyKExp
YldlYlJUQ1NvY2tldElkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBtX3R5cGUodHlwZSkK
ICAgICAsIG1fbG9jYWxBZGRyZXNzKGxvY2FsQWRkcmVzcykKICAgICAsIG1fcmVtb3RlQWRkcmVz
cyhyZW1vdGVBZGRyZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oCmluZGV4IGFmMWY0MjUzMDE2ZGUzZTE5
MzdlMTM2ZTNhOWQyOGUyMGMxMjQ0NjcuLjY0NGVlNWEwYmIxZjNmOThhZjY5ZWNkNDBjZWVlOWI5
YzIwMmI5MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBVU0Uo
TElCV0VCUlRDKQogCiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENQcm92aWRlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHdl
YnJ0Yy9ydGNfYmFzZS9hc3luY3BhY2tldHNvY2tldC5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5o
PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC01MSwxMCArNTIsMTAgQEAgY2xhc3MgTGli
V2ViUlRDU29ja2V0IGZpbmFsIDogcHVibGljIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQgewogcHVi
bGljOgogICAgIGVudW0gY2xhc3MgVHlwZSB7IFVEUCwgU2VydmVyVENQLCBDbGllbnRUQ1AsIFNl
cnZlckNvbm5lY3Rpb25UQ1AgfTsKIAotICAgIExpYldlYlJUQ1NvY2tldChMaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5JiwgdWludDY0X3QgaWRlbnRpZmllciwgVHlwZSwgY29uc3QgcnRjOjpTb2NrZXRB
ZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRk
cmVzcyk7CisgICAgTGliV2ViUlRDU29ja2V0KExpYldlYlJUQ1NvY2tldEZhY3RvcnkmLCBUeXBl
LCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKTsKICAgICB+TGliV2ViUlRDU29ja2V0KCk7CiAKLSAg
ICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Cisg
ICAgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAgICAgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBs
b2NhbEFkZHJlc3MoKSBjb25zdCB7IHJldHVybiBtX2xvY2FsQWRkcmVzczsgfQogICAgIGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVt
b3RlQWRkcmVzczsgfQogCkBAIC04Nyw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZv
aWQgc2VuZE9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKElQQzo6Q29ubmVjdGlvbiYpPiYmKTsK
IAogICAgIExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIG1fZmFjdG9yeTsKLSAgICB1aW50NjRfdCBt
X2lkZW50aWZpZXIgeyAwIH07CisgICAgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmll
ciBtX2lkZW50aWZpZXI7CiAgICAgVHlwZSBtX3R5cGU7CiAgICAgcnRjOjpTb2NrZXRBZGRyZXNz
IG1fbG9jYWxBZGRyZXNzOwogICAgIHJ0Yzo6U29ja2V0QWRkcmVzcyBtX3JlbW90ZUFkZHJlc3M7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDU29ja2V0RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKaW5kZXggNmQzYzBiMWIwYTE5NWRh
NTUxNTc1ZjM4ZDZkYTg2NDFhNmMxMzM0OS4uMzAwMmU4Mzg4NmMzOTAyZmYzZDAzNTczYzMzNjFj
Y2M4MTVhMWNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcApAQCAtMzcs
NyArMzcsNiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdWludDY0X3QgTGliV2ViUlRDU29j
a2V0RmFjdG9yeTo6c191bmlxdWVTb2NrZXRJZGVudGlmaWVyID0gMDsKIHVpbnQ2NF90IExpYldl
YlJUQ1NvY2tldEZhY3Rvcnk6OnNfdW5pcXVlUmVzb2x2ZXJJZGVudGlmaWVyID0gMDsKIAogc3Rh
dGljIGlubGluZSBydGM6OlNvY2tldEFkZHJlc3MgcHJlcGFyZVNvY2tldEFkZHJlc3MoY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBib29sIGRpc2FibGVOb25Mb2NhbGhvc3RDb25u
ZWN0aW9ucykKQEAgLTUwLDcgKzQ5LDcgQEAgc3RhdGljIGlubGluZSBydGM6OlNvY2tldEFkZHJl
c3MgcHJlcGFyZVNvY2tldEFkZHJlc3MoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJgogCiBydGM6
OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVTZXJ2ZXJU
Y3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Q
b3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKIHsKLSAgICBhdXRvIHNvY2tldCA9
IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1ZVNvY2tldElkZW50
aWZpZXIsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2VydmVyVENQLCBhZGRyZXNzLCBydGM6OlNv
Y2tldEFkZHJlc3MoKSk7CisgICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1Nv
Y2tldD4oKnRoaXMsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2VydmVyVENQLCBhZGRyZXNzLCBy
dGM6OlNvY2tldEFkZHJlc3MoKSk7CiAgICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZp
ZXIoKSwgc29ja2V0LmdldCgpKTsKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIg
PSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGFk
ZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKSwgbWluUG9ydCwgbWF4UG9y
dCwgb3B0aW9uc10oKSB7CkBAIC02Niw3ICs2NSw3IEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQq
IExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6
CiAKIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0
ZVVkcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1p
blBvcnQsIHVpbnQxNl90IG1heFBvcnQpCiB7Ci0gICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVl
PExpYldlYlJUQ1NvY2tldD4oKnRoaXMsICsrc191bmlxdWVTb2NrZXRJZGVudGlmaWVyLCBMaWJX
ZWJSVENTb2NrZXQ6OlR5cGU6OlVEUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOwor
ICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBMaWJX
ZWJSVENTb2NrZXQ6OlR5cGU6OlVEUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOwog
ICAgIG1fc29ja2V0cy5zZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIHNvY2tldC5nZXQoKSk7CiAK
ICAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCks
IGFkZHJlc3MgPSBwcmVwYXJlU29ja2V0QWRkcmVzcyhhZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2Nh
bGhvc3RDb25uZWN0aW9ucyksIG1pblBvcnQsIG1heFBvcnRdKCkgewpAQCAtODAsNyArNzksNyBA
QCBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVV
ZHBTb2NrZXQoY29uc3QgcnRjOjpTb2NrZQogCiBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJX
ZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3Rl
QWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQgb3B0aW9ucykKIHsKLSAgICBhdXRvIHNv
Y2tldCA9IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1ZVNvY2tl
dElkZW50aWZpZXIsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6Q2xpZW50VENQLCBsb2NhbEFkZHJl
c3MsIHJlbW90ZUFkZHJlc3MpOworICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJS
VENTb2NrZXQ+KCp0aGlzLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OkNsaWVudFRDUCwgbG9jYWxB
ZGRyZXNzLCByZW1vdGVBZGRyZXNzKTsKICAgICBzb2NrZXQtPnNldFN0YXRlKExpYldlYlJUQ1Nv
Y2tldDo6U1RBVEVfQ09OTkVDVElORyk7CiAgICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50
aWZpZXIoKSwgc29ja2V0LmdldCgpKTsKIApAQCAtOTQsOSArOTMsOSBAQCBydGM6OkFzeW5jUGFj
a2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQo
Y29uc3QgcnRjOgogICAgIHJldHVybiBzb2NrZXQucmVsZWFzZSgpOwogfQogCi1ydGM6OkFzeW5j
UGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVOZXdDb25uZWN0aW9u
U29ja2V0KExpYldlYlJUQ1NvY2tldCYgc2VydmVyU29ja2V0LCB1aW50NjRfdCBuZXdDb25uZWN0
aW9uU29ja2V0SWRlbnRpZmllciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRy
ZXNzKQorcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3Jl
YXRlTmV3Q29ubmVjdGlvblNvY2tldChMaWJXZWJSVENTb2NrZXQmIHNlcnZlclNvY2tldCwgTGli
V2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllciwgY29u
c3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQogewotICAgIGF1dG8gc29ja2V0
ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRl
bnRpZmllciwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpTZXJ2ZXJDb25uZWN0aW9uVENQLCBzZXJ2
ZXJTb2NrZXQubG9jYWxBZGRyZXNzKCksIHJlbW90ZUFkZHJlc3MpOworICAgIGF1dG8gc29ja2V0
ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBMaWJXZWJSVENTb2NrZXQ6OlR5
cGU6OlNlcnZlckNvbm5lY3Rpb25UQ1AsIHNlcnZlclNvY2tldC5sb2NhbEFkZHJlc3MoKSwgcmVt
b3RlQWRkcmVzcyk7CiAgICAgc29ja2V0LT5zZXRTdGF0ZShMaWJXZWJSVENTb2NrZXQ6OlNUQVRF
X0NPTk5FQ1RFRCk7CiAgICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgc29j
a2V0LmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKaW5kZXggNDk0Zjlk
NDQ2Y2M2MTlhNmI2MzZhMDFiZjkyZTM0MDIwNTg1ZjcwNS4uYTk0NWIxMGRhYWRhYWY2YjQ1ZDRk
ODU2Yzg2YjY3YjE0MmI3NzNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDUmVzb2x2ZXIuaCIKICNpbmNsdWRl
ICJMaWJXZWJSVENTb2NrZXQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jvcy5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oPgogI2luY2x1
ZGUgPHdlYnJ0Yy9ydGNfYmFzZS9uZXRoZWxwZXJzLmg+CiAjaW5jbHVkZSA8d2VicnRjL3AycC9i
YXNlL3BhY2tldHNvY2tldGZhY3RvcnkuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAt
NDEsMjYgKzQyLDIyIEBAIHB1YmxpYzoKICAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5KCkgeyB9
CiAKICAgICB2b2lkIGRldGFjaChMaWJXZWJSVENTb2NrZXQmKTsKLQotICAgIExpYldlYlJUQ1Nv
Y2tldCogc29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIpIHsgcmV0dXJuIG1fc29ja2V0cy5nZXQo
aWRlbnRpZmllcik7IH0KLSAgICBMaWJXZWJSVENSZXNvbHZlciogcmVzb2x2ZXIodWludDY0X3Qg
aWRlbnRpZmllcikgeyByZXR1cm4gbV9yZXNvbHZlcnMuZ2V0KGlkZW50aWZpZXIpOyB9Ci0KLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUmVzb2x2ZXI+IHRha2VSZXNvbHZlcih1aW50NjRf
dCBpZGVudGlmaWVyKSB7IHJldHVybiBtX3Jlc29sdmVycy50YWtlKGlkZW50aWZpZXIpOyB9Ci0K
LSAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KExp
YldlYlJUQ1NvY2tldCYsIHVpbnQ2NF90IG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyLCBj
b25zdCBydGM6OlNvY2tldEFkZHJlc3MmKTsKLQotICAgIHZvaWQgZGlzYWJsZU5vbkxvY2FsaG9z
dENvbm5lY3Rpb25zKCkgeyBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyA9IHRydWU7
IH0KKyAgICBMaWJXZWJSVENTb2NrZXQqIHNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpIHsgcmV0dXJuIG1fc29ja2V0cy5nZXQoaWRlbnRpZmllcik7
IH0KIAogICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZVVkcFNvY2tldChjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KTsK
ICAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwg
aW50IG9wdGlvbnMpOwogICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZUNsaWVudFRj
cFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRj
OjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCBv
cHRpb25zKTsKKyAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVOZXdDb25uZWN0aW9u
U29ja2V0KExpYldlYlJUQ1NvY2tldCYsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZp
ZXIgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVz
cyYpOworCisgICAgTGliV2ViUlRDUmVzb2x2ZXIqIHJlc29sdmVyKHVpbnQ2NF90IGlkZW50aWZp
ZXIpIHsgcmV0dXJuIG1fcmVzb2x2ZXJzLmdldChpZGVudGlmaWVyKTsgfQorICAgIHN0ZDo6dW5p
cXVlX3B0cjxMaWJXZWJSVENSZXNvbHZlcj4gdGFrZVJlc29sdmVyKHVpbnQ2NF90IGlkZW50aWZp
ZXIpIHsgcmV0dXJuIG1fcmVzb2x2ZXJzLnRha2UoaWRlbnRpZmllcik7IH0KICAgICBydGM6OkFz
eW5jUmVzb2x2ZXJJbnRlcmZhY2UqIGNyZWF0ZUFzeW5jUmVzb2x2ZXIoKTsKKyAgICAKKyAgICB2
b2lkIGRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygpIHsgbV9kaXNhYmxlTm9uTG9jYWxo
b3N0Q29ubmVjdGlvbnMgPSB0cnVlOyB9CiAKIHByaXZhdGU6Ci0KICAgICAvLyBXZSBjYW5ub3Qg
b3duIHNvY2tldHMsIGNsaWVudHMgb2YgdGhlIGZhY3RvcnkgYXJlIHJlc3BvbnNpYmxlIHRvIGZy
ZWUgdGhlbS4KLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBMaWJXZWJSVENTb2NrZXQqPiBtX3NvY2tl
dHM7Ci0gICAgc3RhdGljIHVpbnQ2NF90IHNfdW5pcXVlU29ja2V0SWRlbnRpZmllcjsKKyAgICBI
YXNoTWFwPFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIExpYldlYlJUQ1NvY2tl
dCo+IG1fc29ja2V0czsKICAgICAKICAgICAvLyBXZSBjYW4gb3duIHJlc29sdmVycyBhcyB3ZSBj
b250cm9sIHRoZWlyIERlc3Ryb3kgbWV0aG9kLgogICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6
dW5pcXVlX3B0cjxMaWJXZWJSVENSZXNvbHZlcj4+IG1fcmVzb2x2ZXJzOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNw
cAppbmRleCBiYTM1ZDdmNzk3Y2IwNjUxYjRiNWRmMGZkMmNkNDAwMTZjOGYyZmM5Li4yOTYxZWI3
MWE1NzE0MWEwNmJmMmRmYWJhYzQ0NWEyNGJkODcwOTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcApAQCAt
MzUsOSArMzUsMTEgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1
ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLXZvaWQgV2ViUlRDU29ja2V0OjpzaWduYWxPbk5ldHdvcmtUaHJlYWQo
TGliV2ViUlRDU29ja2V0RmFjdG9yeSYgZmFjdG9yeSwgdWludDY0X3QgaWRlbnRpZmllciwgRnVu
Y3Rpb248dm9pZChMaWJXZWJSVENTb2NrZXQmKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViUlRDU29j
a2V0OjpzaWduYWxPbk5ldHdvcmtUaHJlYWQoTGliV2ViUlRDU29ja2V0RmFjdG9yeSYgZmFjdG9y
eSwgTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKExp
YldlYlJUQ1NvY2tldCYpPiYmIGNhbGxiYWNrKQogewogICAgIC8vIGZhY3RvcnkgaXMgc3RheWlu
ZyB2YWxpZCBkdXJpbmcgdGhlIHByb2Nlc3MgbGlmZXRpbWUuCiAgICAgV2ViQ29yZTo6TGliV2Vi
UlRDUHJvdmlkZXI6OmNhbGxPbldlYlJUQ05ldHdvcmtUaHJlYWQoWyZmYWN0b3J5LCBpZGVudGlm
aWVyLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIHsKQEAgLTQ4LDcgKzUwLDcgQEAg
dm9pZCBXZWJSVENTb2NrZXQ6OnNpZ25hbE9uTmV0d29ya1RocmVhZChMaWJXZWJSVENTb2NrZXRG
YWN0b3J5JiBmYWN0b3J5LCB1aW50NjQKICAgICB9KTsKIH0KIAotV2ViUlRDU29ja2V0OjpXZWJS
VENTb2NrZXQoTGliV2ViUlRDU29ja2V0RmFjdG9yeSYgZmFjdG9yeSwgdWludDY0X3QgaWRlbnRp
ZmllcikKK1dlYlJUQ1NvY2tldDo6V2ViUlRDU29ja2V0KExpYldlYlJUQ1NvY2tldEZhY3Rvcnkm
IGZhY3RvcnksIExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICA6IG1f
ZmFjdG9yeShmYWN0b3J5KQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiB7CkBAIC03
MSwyOCArNzMsMjggQEAgdm9pZCBXZWJSVENTb2NrZXQ6OnNpZ25hbFJlYWRQYWNrZXQoY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBjb25zdCBSVENOZXQKIAogdm9pZCBXZWJSVENTb2Nr
ZXQ6OnNpZ25hbFNlbnRQYWNrZXQoaW50IHJ0Y1BhY2tldElELCBpbnQ2NF90IHNlbmRUaW1lTXMp
CiB7Ci0gICAgc2lnbmFsT25OZXR3b3JrVGhyZWFkKG1fZmFjdG9yeSwgbV9pZGVudGlmaWVyLCBb
cnRjUGFja2V0SUQsIHNlbmRUaW1lTXNdKExpYldlYlJUQ1NvY2tldCYgc29ja2V0KSB7CisgICAg
c2lnbmFsT25OZXR3b3JrVGhyZWFkKG1fZmFjdG9yeSwgbV9pZGVudGlmaWVyLCBbcnRjUGFja2V0
SUQsIHNlbmRUaW1lTXNdKGF1dG8mIHNvY2tldCkgewogICAgICAgICBzb2NrZXQuc2lnbmFsU2Vu
dFBhY2tldChydGNQYWNrZXRJRCwgc2VuZFRpbWVNcyk7CiAgICAgfSk7CiB9CiAKIHZvaWQgV2Vi
UlRDU29ja2V0OjpzaWduYWxDb25uZWN0KCkKIHsKLSAgICBzaWduYWxPbk5ldHdvcmtUaHJlYWQo
bV9mYWN0b3J5LCBtX2lkZW50aWZpZXIsIFtdKExpYldlYlJUQ1NvY2tldCYgc29ja2V0KSB7Cisg
ICAgc2lnbmFsT25OZXR3b3JrVGhyZWFkKG1fZmFjdG9yeSwgbV9pZGVudGlmaWVyLCBbXShhdXRv
JiBzb2NrZXQpIHsKICAgICAgICAgc29ja2V0LnNpZ25hbENvbm5lY3QoKTsKICAgICB9KTsKIH0K
IAogdm9pZCBXZWJSVENTb2NrZXQ6OnNpZ25hbENsb3NlKGludCBlcnJvcikKIHsKLSAgICBzaWdu
YWxPbk5ldHdvcmtUaHJlYWQobV9mYWN0b3J5LCBtX2lkZW50aWZpZXIsIFtlcnJvcl0oTGliV2Vi
UlRDU29ja2V0JiBzb2NrZXQpIHsKKyAgICBzaWduYWxPbk5ldHdvcmtUaHJlYWQobV9mYWN0b3J5
LCBtX2lkZW50aWZpZXIsIFtlcnJvcl0oYXV0byYgc29ja2V0KSB7CiAgICAgICAgIHNvY2tldC5z
aWduYWxDbG9zZShlcnJvcik7CiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUlRDU29ja2V0OjpzaWdu
YWxOZXdDb25uZWN0aW9uKHVpbnQ2NF90IG5ld1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MpCit2b2lkIFdlYlJUQ1NvY2tldDo6
c2lnbmFsTmV3Q29ubmVjdGlvbihMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG5ld1NvY2tldElk
ZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3Mp
CiB7Ci0gICAgc2lnbmFsT25OZXR3b3JrVGhyZWFkKG1fZmFjdG9yeSwgbV9pZGVudGlmaWVyLCBb
bmV3U29ja2V0SWRlbnRpZmllciwgcmVtb3RlQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVk
Q29weShyZW1vdGVBZGRyZXNzLnZhbHVlKV0oTGliV2ViUlRDU29ja2V0JiBzb2NrZXQpIHsKKyAg
ICBzaWduYWxPbk5ldHdvcmtUaHJlYWQobV9mYWN0b3J5LCBtX2lkZW50aWZpZXIsIFtuZXdTb2Nr
ZXRJZGVudGlmaWVyLCByZW1vdGVBZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KHJl
bW90ZUFkZHJlc3MudmFsdWUpXShhdXRvJiBzb2NrZXQpIHsKICAgICAgICAgc29ja2V0LnNpZ25h
bE5ld0Nvbm5lY3Rpb24oc29ja2V0Lm1fZmFjdG9yeS5jcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0
KHNvY2tldCwgbmV3U29ja2V0SWRlbnRpZmllciwgcmVtb3RlQWRkcmVzcykpOwogICAgIH0pOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dl
YlJUQ1NvY2tldC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dl
YlJUQ1NvY2tldC5oCmluZGV4IDlmNGNiNzgwODY4NWRkNjc4NmMxZGQ1YjczNjFjMjcyMjQyMGU4
OWYuLjU3ZTE4ZGZlMzAzOGZjZTdlNzJhYjQ5ZWZlOGEyODcwYjRmOTgyZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0
LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBVU0UoTElCV0VCUlRDKQogCiAjaW5jbHVkZSAiUlRD
TmV0d29yay5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5o
PgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTQzLDEx
ICs0NCwxMSBAQCBjbGFzcyBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OwogCiBjbGFzcyBXZWJSVENT
b2NrZXQgewogcHVibGljOgotICAgIFdlYlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5
JiwgdWludDY0X3QpOworICAgIFdlYlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5Jiwg
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllcik7CiAKICAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogCi0gICAgc3RhdGlj
IHZvaWQgc2lnbmFsT25OZXR3b3JrVGhyZWFkKExpYldlYlJUQ1NvY2tldEZhY3RvcnkmLCB1aW50
NjRfdCwgRnVuY3Rpb248dm9pZChMaWJXZWJSVENTb2NrZXQmKT4mJik7CisgICAgc3RhdGljIHZv
aWQgc2lnbmFsT25OZXR3b3JrVGhyZWFkKExpYldlYlJUQ1NvY2tldEZhY3RvcnkmLCBXZWJDb3Jl
OjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKExpYldlYlJUQ1NvY2tl
dCYpPiYmKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHNpZ25hbFJlYWRQYWNrZXQoY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgUlRDTmV0d29yazo6SVBBZGRyZXNzJiwgdWludDE2X3Qg
cG9ydCwgaW50NjRfdCk7CkBAIC01NSwxMCArNTYsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNp
Z25hbEFkZHJlc3NSZWFkeShjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJik7CiAgICAg
dm9pZCBzaWduYWxDb25uZWN0KCk7CiAgICAgdm9pZCBzaWduYWxDbG9zZShpbnQpOwotICAgIHZv
aWQgc2lnbmFsTmV3Q29ubmVjdGlvbih1aW50NjRfdCBuZXdTb2NrZXRJZGVudGlmaWVyLCBjb25z
dCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmKTsKKyAgICB2b2lkIHNpZ25hbE5l
d0Nvbm5lY3Rpb24oV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdTb2NrZXRJ
ZGVudGlmaWVyLCBjb25zdCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmKTsKIAog
ICAgIExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIG1fZmFjdG9yeTsKLSAgICB1aW50NjRfdCBtX2lk
ZW50aWZpZXIgeyAwIH07CisgICAgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBt
X2lkZW50aWZpZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29j
a2V0Lm1lc3NhZ2VzLmluCmluZGV4IGY2MTEyODVhZmE3MzY1YWUxZGI3ODhiMjczODRhNWZlZmU4
ODZlN2YuLjhmODcyZWUyMTlhMmM3NzY4ZGE4NTNhYTQxZjI1N2ZmNDU3NGRjMzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L1dlYlJUQ1NvY2tldC5tZXNzYWdlcy5pbgpAQCAtMjgsNyArMjgsNyBAQCBtZXNzYWdlcyAtPiBX
ZWJSVENTb2NrZXQgewogICAgIFNpZ25hbEFkZHJlc3NSZWFkeShXZWJLaXQ6OlJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MgYWRkcmVzcykKICAgICBTaWduYWxDb25uZWN0KCkKICAgICBTaWduYWxD
bG9zZShpbnQgZXJyb3IpCi0gICAgU2lnbmFsTmV3Q29ubmVjdGlvbih1aW50NjRfdCBuZXdTb2Nr
ZXRJZGVudGlmaWVyLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgcmVtb3RlQWRk
cmVzcykKKyAgICBTaWduYWxOZXdDb25uZWN0aW9uKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElk
ZW50aWZpZXIgbmV3U29ja2V0SWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRB
ZGRyZXNzIHJlbW90ZUFkZHJlc3MpCiB9CiAKICNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379898</attachid>
            <date>2019-10-01 06:26:05 -0700</date>
            <delta_ts>2019-10-01 09:31:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202400-20191001152603.patch</filename>
            <type>text/plain</type>
            <size>44635</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk4MTRkZDQ0Y2VmMTJj
Y2YyNDU5YmRiZWY4Nzg4NjRjODFjNmViYS4uMzY3NGI4NmMwMWFmNjc0MDVmMzc2YzEzNTlkNTFj
MTdiYzVhNTcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTEwLTAxICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc3Ryb25nbHkgdHlw
ZWQgaWRlbnRpZmllcnMgZm9yIHdlYnJ0YyBzb2NrZXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MDAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGNoYW5nZSBvZiBiZWhhdmlv
ci4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaC4KKwogMjAxOS0xMC0w
MSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUXVldWUgZXZl
bnRzIGFuZCBwcm9taXNlIHJlc29sdXRpb24gaW4gUlRDUGVlckNvbm5lY3Rpb24gd2hlbiBzdXNw
ZW5kZWQgZm9yIHBhZ2UgY2FjaGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjYyYjZjZmNhYzlkMjQ0YjcwODcwMTU0
NmRlYmIzYzZjZWExNDA4My4uNDgzN2NkYTcxZjJmNGZhNTkzNDAxZTk4NTg2ZGFiNWNjMDBiMjQy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAxOS0xMC0wMSAgeW91ZW5uIGZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHN0cm9uZ2x5IHR5cGVkIGlkZW50aWZp
ZXJzIGZvciB3ZWJydGMgc29ja2V0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAyNDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVmYWN0b3JpbmcgdG8gdXNlIExpYldlYlJUQ1NvY2tldElkZW50aWZp
ZXIgaW5zdGVhZCBvZiB1aW50NjRfdC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENT
b2NrZXRDbGllbnQ6OkxpYldlYlJUQ1NvY2tldENsaWVudCk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1JUQ1Byb3ZpZGVyOjpjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6d3JhcE5ld1RDUENvbm5lY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmFkZFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtSVENQcm92aWRlcjo6dGFrZVNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSVENQcm92aWRlcjo6bmV3Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
VENQcm92aWRlcjo6ZGlkUmVjZWl2ZU5ldHdvcmtSVENTb2NrZXRNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjbG9zZUxpc3RlbmluZ1NvY2tldHMpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNhbGxTb2NrZXQpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1JUQ1NvY2tldDo6TmV0d29ya1JUQ1NvY2tldCk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaDoKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmg6CisgICAgICAgIChXZWJLaXQ6Okxp
YldlYlJUQ05ldHdvcms6OnNvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2Nr
ZXQ6OkxpYldlYlJUQ1NvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENT
b2NrZXRGYWN0b3J5OjpjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpM
aWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVVZHBTb2NrZXQpOgorICAgICAgICAoV2ViS2l0
OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQpOgorICAgICAg
ICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVOZXdDb25uZWN0aW9uU29j
a2V0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tl
dEZhY3RvcnkuaDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6c29j
a2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6cmVzb2x2ZXIp
OgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojp0YWtlUmVzb2x2ZXIp
OgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpkaXNhYmxlTm9uTG9j
YWxob3N0Q29ubmVjdGlvbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
V2ViUlRDU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU29ja2V0OjpzaWduYWxP
bk5ldHdvcmtUaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTb2NrZXQ6OldlYlJUQ1Nv
Y2tldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6c2lnbmFsU2VudFBhY2tldCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6c2lnbmFsQ29ubmVjdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6c2lnbmFsQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSVENTb2NrZXQ6OnNpZ25hbE5ld0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW46CisKIDIwMTktMTAtMDEgIHlvdWVu
biBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSByYWNlcyBjb25k
aXRpb24gd2hlbiB2YWxpZGF0aW5nIGNhcHR1cmUgc2FuZGJveCBleHRlbnNpb24gcmV2b2NhdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKaW5kZXggNTRhZjIyZGFkZTY1M2ZkM2FiYTc4NmMxNTlmZTAwZDJm
MGE4YmQ5NC4uZGRiMzU5ZTM5MTI0ODc3Zjg0MGNkODA2OTU1ZGVkMzExMDA2ZTM4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCkBAIC0xMTU5LDYgKzExNTksNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDTWFjcm9zLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUHJvdmlkZXIuaAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENTb2NrZXRJZGVudGlmaWVyLmgKIAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrLmgKICAgICBwbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRNb2Nr
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBhMTc2MWM2N2I0Yzk1ZDhlYWI0NzdhN2MwMGFlNTU0NWQyM2E3OWVlLi5lY2RiNzkw
NzhhOTM4ZDY1YmI5MDI5NzBhOWZlZmM1NjgwMWNkZmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDIzLDYgKzEwMjMsNyBA
QAogCQkzRkZGRjlBOTE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBNzE1
OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggKi87IH07CiAJCTNGRkZG
OUFFMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGRkZGOUFDMTU5RDlCMDYwMDIw
QkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCAqLzsgfTsKIAkJNDEwNzkwOEMxRkMzRjAz
MzAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDEwNzkwOEExRkMzRTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdp
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQx
MEU0NDYxMjM0MzczRTkwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTBFNDQ1RjIzNDM3
M0FEMDAwMTczRDQgLyogTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMTAzQUFDMUUzOTc5MTAwMDc2
OUYwMyAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUE4MUUzOTc5MEEwMDc2OUYwMyAvKiBS
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCAqLzsgfTsKIAkJNDExMDNBQUMxRTM5NzkxMDAw
NzY5RjE0IC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FBODFFMzk3OTBBMDA3NjlG
MTQgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuaCAqLzsgfTsKIAkJNDExMDNB
QUQxRTM5NzkxMDAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDNBQTkxRTM5Nzkw
QTAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oICovOyB9OwpAQCAtNzE3
Myw2ICs3MTc0LDcgQEAKIAkJNDEwNjI2QTcyMjgwQTIyQTAwNkQxQjU5IC8qIEpTQXVkaW9Ob2Rl
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXVkaW9O
b2RlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwNzkwOEExRkMz
RTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDbGllbnRPcmlnaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEw
QjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwRTQ0NUYyMzQzNzNBRDAwMDE3M0Q0IC8q
IExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oOyBwYXRoID0gbGlid2VicnRjL0xpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEx
MDNBQTcxRTM5NzkwQTAwNzY5RjAzIC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEwM0FBNzFFMzk3
OTBBMDA3NjlGMTQgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEwM0FBODFFMzk3
OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc3NjksNiArMTc3NzEsNyBAQAogCQkJCTQxNTc0
NzQ0MUUzODY5OUUwMEU5MTREOCAvKiBMaWJXZWJSVENQcm92aWRlci5oICovLAogCQkJCTQxQjI4
QjM4MUY4NjBCRDEwMEZCNTJBQyAvKiBMaWJXZWJSVENQcm92aWRlckNvY29hLmNwcCAqLywKIAkJ
CQk0MUIyOEIzNjFGODYwQkQwMDBGQjUyQUMgLyogTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5oICov
LAorCQkJCTQxMEU0NDVGMjM0MzczQUQwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IGxpYndlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC0yODkwMiw2ICsyODkwNSw3IEBACiAJCQkJQUEyMUVDQ0QwQUJGMEZDNjAw
MkI4MzRDIC8qIENTU0N1cnNvckltYWdlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk0NDRD
QkU0MUQ4ODYxOTkwMDczQTA3NCAvKiBDU1NDdXN0b21JZGVudFZhbHVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzc3OUUxNDFCQjIxNUJCMDBDQUE4QkYgLyogQ1NTQ3VzdG9tUHJvcGVydHlWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwRTQ0NjEyMzQzNzNFOTAwMDE3M0Q0IC8qIExpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBOUNDODE4MTZCQjlB
QzYwMEVDNjQ1QSAvKiBDU1NEZWZhdWx0U3R5bGVTaGVldHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk0NDc2QkRCMURGQ0FDMDMwMDY5MEUyMyAvKiBDU1NEZWZlcnJlZFBhcnNlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkJCMEM1QjgxN0JCRDYyOTAwM0QzNjc3IC8qIENTU0ZpbHRlckltYWdlVmFs
dWUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc0ZjEzNmU5MTQ2ZDM2MGQ3ZmYxZGY3MTg2NjhlMGVl
OWIwYTMxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwz
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlICwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJ
ZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBMaWJXZWJSVENTb2Nr
ZXRJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyID0g
T2JqZWN0SWRlbnRpZmllcjxMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyVHlwZT47CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuY3BwCmluZGV4IGM1OTk1YmM1
MzI1NWZlMmQzNzZmYzQ1ZmJmYjllZTYzMWVlNzNlNzEuLjBiNzQ3ZDg1MjM1YWQ3ZDE1MDY3OTdl
NGExN2RhYzU4NDZlYmQ2OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmNwcApAQCAtMzUsOSAr
MzUsMTEgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0
Zi9GdW5jdGlvbi5oPgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLUxpYldlYlJUQ1NvY2tldENsaWVudDo6TGliV2ViUlRDU29ja2V0Q2xpZW50KHVp
bnQ2NF90IGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIsIHN0ZDo6
dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmIHNvY2tldCwgVHlwZSB0eXBlKQor
TGliV2ViUlRDU29ja2V0Q2xpZW50OjpMaWJXZWJSVENTb2NrZXRDbGllbnQoTGliV2ViUlRDU29j
a2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVy
LCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiBzb2NrZXQsIFR5cGUg
dHlwZSkKICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV90eXBlKHR5cGUp
CiAgICAgLCBtX3J0Y1Byb3ZpZGVyKHJ0Y1Byb3ZpZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaApp
bmRleCAyNWFhNTRhZmE3ZDc2ZmE5NDU2YWZiYjhjYzQxZDExNmFiYWZjODZkLi41YWYzOTMwNmMy
ZDUxN2EyZjU4Yzg3ODAzMTI0YWMyZjk3MzFhYjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaApA
QCAtNDEsMTAgKzQxLDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgTGliV2ViUlRDU29j
a2V0Q2xpZW50IGZpbmFsIDogcHVibGljIE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0LCBwdWJs
aWMgc2lnc2xvdDo6aGFzX3Nsb3RzPD4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIExpYldlYlJUQ1NvY2tldENsaWVudCh1aW50NjRfdCBpZGVudGlmaWVyLCBO
ZXR3b3JrUlRDUHJvdmlkZXImLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tl
dD4mJiwgVHlwZSk7CisgICAgTGliV2ViUlRDU29ja2V0Q2xpZW50KFdlYkNvcmU6OkxpYldlYlJU
Q1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYsIHN0ZDo6dW5pcXVlX3B0cjxy
dGM6OkFzeW5jUGFja2V0U29ja2V0PiYmLCBUeXBlKTsKIAogcHJpdmF0ZToKLSAgICB1aW50NjRf
dCBpZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAg
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAgICAgVHlwZSB0eXBlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV90eXBlOyB9CiAgICAgdm9pZCBjbG9zZSgpIGZpbmFsOwogCkBAIC02MCw3ICs2
MCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNpZ25hbEFkZHJlc3NSZWFkeSgpOwogCi0gICAg
dWludDY0X3QgbV9pZGVudGlmaWVyOworICAgIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFR5cGUgbV90eXBlOwogICAgIE5ldHdvcmtSVENQcm92
aWRlciYgbV9ydGNQcm92aWRlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tl
dFNvY2tldD4gbV9zb2NrZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAppbmRleCBmN2VlNGRiZDg2ZmZj
NzVkNTdlYjdiMzg2ZTYwMzhjNTdhMzUxZGI3Li4xZjlhNzRiYmVjNWNjZmJkN2I0YzQxNzBkZDc0
M2FkNTUxNWZmMzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKQEAgLTQ2LDYgKzQ2LDggQEAKICNp
bmNsdWRlICJOZXR3b3JrUlRDUmVzb2x2ZXJDb2NvYS5oIgogI2VuZGlmCiAKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIGlubGluZSBzdGQ6
OnVuaXF1ZV9wdHI8cnRjOjpUaHJlYWQ+IGNyZWF0ZVRocmVhZCgpCkBAIC05Niw3ICs5OCw3IEBA
IHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjbG9zZSgpCiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0
d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgc3RkOjp1
bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+JiYgc29ja2V0LCBTb2NrZXQ6OlR5cGUg
dHlwZSkKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXQoTGliV2ViUlRDU29j
a2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tl
dFNvY2tldD4mJiBzb2NrZXQsIFNvY2tldDo6VHlwZSB0eXBlKQogewogICAgIGlmICghc29ja2V0
KSB7CiAgICAgICAgIHNlbmRGcm9tTWFpblRocmVhZChbaWRlbnRpZmllciwgc2l6ZSA9IG1fc29j
a2V0cy5zaXplKCldKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgewpAQCAtMTA4LDcgKzEx
MCw3IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXQodWludDY0X3QgaWRl
bnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6CiAgICAgYWRkU29ja2V0KGlkZW50aWZpZXIs
IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0Q2xpZW50PihpZGVudGlmaWVyLCAqdGhpcywgV1RG
TW92ZShzb2NrZXQpLCB0eXBlKSk7CiB9CiAKLXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVh
dGVVRFBTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkKK3Zv
aWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVVRFBTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBhZGRy
ZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQogewogICAgIGNhbGxPblJU
Q05ldHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50aWZpZXIsIGFkZHJlc3MgPSBSVENOZXR3b3JrOjpp
c29sYXRlZENvcHkoYWRkcmVzcy52YWx1ZSksIG1pblBvcnQsIG1heFBvcnRdKCkgewogICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29ja2V0KG1fcGFja2V0
U29ja2V0RmFjdG9yeS0+Q3JlYXRlVWRwU29ja2V0KGFkZHJlc3MsIG1pblBvcnQsIG1heFBvcnQp
KTsKQEAgLTExNiw3ICsxMTgsNyBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlVURQ
U29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OgogICAgIH0pOwog
fQogCi12b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlU2VydmVyVENQU29ja2V0KHVpbnQ2
NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3Ms
IHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKQordm9pZCBO
ZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNlcnZlclRDUFNvY2tldChMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGFk
ZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKQog
ewogICAgIGlmICghbV9pc0xpc3RlbmluZ1NvY2tldEF1dGhvcml6ZWQpIHsKICAgICAgICAgaWYg
KG1fY29ubmVjdGlvbikKQEAgLTEzNyw3ICsxMzksNyBAQCBydGM6OlByb3h5SW5mbyBOZXR3b3Jr
UlRDUHJvdmlkZXI6OnByb3h5SW5mb0Zyb21TZXNzaW9uKGNvbnN0IFJUQ05ldHdvcms6OlNvY2tl
dAogfQogI2VuZGlmCiAKLXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BT
b2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVz
cyYgbG9jYWxBZGRyZXNzLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVB
ZGRyZXNzLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCBvcHRpb25zKQordm9pZCBOZXR3b3JrUlRD
UHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVz
cywgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5n
JiYgdXNlckFnZW50LCBpbnQgb3B0aW9ucykKIHsKICAgICBhdXRvKiBzZXNzaW9uID0gbV9jb25u
ZWN0aW9uLT5uZXR3b3JrU2Vzc2lvbigpOwogICAgIGlmICghc2Vzc2lvbikgewpAQCAtMTUwLDcg
KzE1Miw3IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQo
dWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0CiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0
d29ya1JUQ1Byb3ZpZGVyOjp3cmFwTmV3VENQQ29ubmVjdGlvbih1aW50NjRfdCBpZGVudGlmaWVy
LCB1aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcikKK3ZvaWQgTmV0d29ya1JU
Q1Byb3ZpZGVyOjp3cmFwTmV3VENQQ29ubmVjdGlvbihMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
IGlkZW50aWZpZXIsIExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tl
dElkZW50aWZpZXIpCiB7CiAgICAgY2FsbE9uUlRDTmV0d29ya1RocmVhZChbdGhpcywgaWRlbnRp
ZmllciwgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXJdKCkgewogICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gc29ja2V0ID0gbV9wZW5kaW5nSW5jb21p
bmdTb2NrZXRzLnRha2UobmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIpOwpAQCAtMTU4LDI3
ICsxNjAsMjggQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OndyYXBOZXdUQ1BDb25uZWN0aW9u
KHVpbnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2NF90IG5ld0MKICAgICB9KTsKIH0KIAotdm9pZCBO
ZXR3b3JrUlRDUHJvdmlkZXI6OmFkZFNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBzdGQ6OnVu
aXF1ZV9wdHI8U29ja2V0PiYmIHNvY2tldCkKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjphZGRT
b2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9w
dHI8U29ja2V0PiYmIHNvY2tldCkKIHsKICAgICBtX3NvY2tldHMuYWRkKGlkZW50aWZpZXIsIFdU
Rk1vdmUoc29ja2V0KSk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUlRDUHJvdmlkZXI6
OlNvY2tldD4gTmV0d29ya1JUQ1Byb3ZpZGVyOjp0YWtlU29ja2V0KHVpbnQ2NF90IGlkZW50aWZp
ZXIpCitzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQ+IE5ldHdvcmtS
VENQcm92aWRlcjo6dGFrZVNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCiB7CiAgICAgcmV0dXJuIG1fc29ja2V0cy50YWtlKGlkZW50aWZpZXIpOwogfQogCiB2b2lk
IE5ldHdvcmtSVENQcm92aWRlcjo6bmV3Q29ubmVjdGlvbihTb2NrZXQmIHNlcnZlclNvY2tldCwg
c3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+JiYgbmV3U29ja2V0KQogewot
ICAgIHNlbmRGcm9tTWFpblRocmVhZChbaWRlbnRpZmllciA9IHNlcnZlclNvY2tldC5pZGVudGlm
aWVyKCksIGluY29taW5nU29ja2V0SWRlbnRpZmllciA9ICsrbV9pbmNvbWluZ1NvY2tldElkZW50
aWZpZXIsIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRlZENvcHkobmV3U29ja2V0
LT5HZXRSZW1vdGVBZGRyZXNzKCkpXShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pIHsKKyAg
ICBhdXRvIGluY29taW5nU29ja2V0SWRlbnRpZmllciA9IExpYldlYlJUQ1NvY2tldElkZW50aWZp
ZXI6OmdlbmVyYXRlKCk7CisgICAgc2VuZEZyb21NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc2Vy
dmVyU29ja2V0LmlkZW50aWZpZXIoKSwgaW5jb21pbmdTb2NrZXRJZGVudGlmaWVyLCByZW1vdGVB
ZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KG5ld1NvY2tldC0+R2V0UmVtb3RlQWRk
cmVzcygpKV0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKSB7CiAgICAgICAgIGNvbm5lY3Rp
b24uc2VuZChNZXNzYWdlczo6V2ViUlRDU29ja2V0OjpTaWduYWxOZXdDb25uZWN0aW9uKGluY29t
aW5nU29ja2V0SWRlbnRpZmllciwgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhyZW1vdGVBZGRy
ZXNzKSksIGlkZW50aWZpZXIpOwogICAgIH0pOwotICAgIG1fcGVuZGluZ0luY29taW5nU29ja2V0
cy5hZGQobV9pbmNvbWluZ1NvY2tldElkZW50aWZpZXIsIFdURk1vdmUobmV3U29ja2V0KSk7Cisg
ICAgbV9wZW5kaW5nSW5jb21pbmdTb2NrZXRzLmFkZChpbmNvbWluZ1NvY2tldElkZW50aWZpZXIs
IFdURk1vdmUobmV3U29ja2V0KSk7CiB9CiAKIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpkaWRS
ZWNlaXZlTmV0d29ya1JUQ1NvY2tldE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgTmV0d29ya1JUQ1NvY2tldChkZWNvZGVy
LmRlc3RpbmF0aW9uSUQoKSwgKnRoaXMpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRl
Y29kZXIpOworICAgIE5ldHdvcmtSVENTb2NrZXQobWFrZU9iamVjdElkZW50aWZpZXI8TGliV2Vi
UlRDU29ja2V0SWRlbnRpZmllclR5cGU+KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKSwgKnRoaXMp
LmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCkBAIC0yNDUsNyArMjQ4LDcgQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNs
b3NlTGlzdGVuaW5nU29ja2V0cyhGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmQKIAog
ICAgIG1faXNMaXN0ZW5pbmdTb2NrZXRBdXRob3JpemVkID0gZmFsc2U7CiAgICAgY2FsbE9uUlRD
TmV0d29ya1RocmVhZChbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgVmVjdG9yPHVpbnQ2NF90PiBsaXN0ZW5p
bmdTb2NrZXRJZGVudGlmaWVyczsKKyAgICAgICAgVmVjdG9yPExpYldlYlJUQ1NvY2tldElkZW50
aWZpZXI+IGxpc3RlbmluZ1NvY2tldElkZW50aWZpZXJzOwogICAgICAgICBmb3IgKGF1dG8mIGtl
eVZhbHVlIDogbV9zb2NrZXRzKSB7CiAgICAgICAgICAgICBpZiAoa2V5VmFsdWUudmFsdWUtPnR5
cGUoKSA9PSBTb2NrZXQ6OlR5cGU6OlNlcnZlclRDUCkKICAgICAgICAgICAgICAgICBsaXN0ZW5p
bmdTb2NrZXRJZGVudGlmaWVycy5hcHBlbmQoa2V5VmFsdWUua2V5KTsKQEAgLTI4NSw3ICsyODgs
NyBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y2FsbE9uUlRDTmV0d29ya1RocmVhZChGdW5j
dGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCiAgICAgbV9ydGNOZXR3b3JrVGhyZWFkLT5Qb3N0KFJU
Q19GUk9NX0hFUkUsIHRoaXMsIDEsIG5ldyBOZXR3b3JrTWVzc2FnZURhdGEoKnRoaXMsIFdURk1v
dmUoY2FsbGJhY2spKSk7CiB9CiAKLXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjYWxsU29ja2V0
KHVpbnQ2NF90IGlkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoU29ja2V0Jik+JiYgY2FsbGJhY2sp
Cit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y2FsbFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoU29ja2V0Jik+JiYgY2FsbGJhY2spCiB7
CiAgICAgY2FsbE9uUlRDTmV0d29ya1RocmVhZChbdGhpcywgaWRlbnRpZmllciwgY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSB7CiAgICAgICAgIGlmIChhdXRvKiBzb2NrZXQgPSBtX3Nv
Y2tldHMuZ2V0KGlkZW50aWZpZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAppbmRleCA2MzI2NWRhNDA2MDhm
MGNjOTM0OGZkMWE0N2VjZDJiMzVmOTYzYzI5Li4yNTEwNTBkMzYxMGE5NTU1ZDdjZDQ4NzMxODM1
OGY5ZTc4MDJhNjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIk5ldHdvcmtSVENNb25pdG9yLmgiCiAjaW5jbHVkZSAiUlRDTmV0d29yay5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJS
VENTb2NrZXRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d2VicnRjL3AycC9iYXNlL2Jhc2ljcGFj
a2V0c29ja2V0ZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS90aGlyZF9wYXJ0
eS9zaWdzbG90L3NpZ3Nsb3QuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNzIsMTkg
KzczLDE5IEBAIHB1YmxpYzoKIAogICAgICAgICBlbnVtIGNsYXNzIFR5cGUgOiB1aW50OF90IHsg
VURQLCBTZXJ2ZXJUQ1AsIENsaWVudFRDUCwgU2VydmVyQ29ubmVjdGlvblRDUCB9OwogICAgICAg
ICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0ICA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdWludDY0
X3QgaWRlbnRpZmllcigpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBXZWJDb3JlOjpMaWJX
ZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCA9IDA7CiAKICAgICAgICAg
dmlydHVhbCB2b2lkIGNsb3NlKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0T3B0aW9u
KGludCBvcHRpb24sIGludCB2YWx1ZSkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2VuZFRv
KGNvbnN0IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYs
IGNvbnN0IHJ0Yzo6UGFja2V0T3B0aW9ucyYpID0gMDsKICAgICB9OwogCi0gICAgc3RkOjp1bmlx
dWVfcHRyPFNvY2tldD4gdGFrZVNvY2tldCh1aW50NjRfdCk7CisgICAgc3RkOjp1bmlxdWVfcHRy
PFNvY2tldD4gdGFrZVNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHJlc29sdmVyRG9uZSh1aW50NjRfdCk7CiAKICAgICB2b2lkIGNsb3NlKCk7CiAK
LSAgICB2b2lkIGNhbGxTb2NrZXQodWludDY0X3QsIEZ1bmN0aW9uPHZvaWQoU29ja2V0Jik+JiYp
OworICAgIHZvaWQgY2FsbFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
LCBGdW5jdGlvbjx2b2lkKFNvY2tldCYpPiYmKTsKICAgICB2b2lkIGNhbGxPblJUQ05ldHdvcmtU
aHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICB2b2lkIHNlbmRGcm9tTWFpblRocmVhZChG
dW5jdGlvbjx2b2lkKElQQzo6Q29ubmVjdGlvbiYpPiYmKTsKIApAQCAtOTYsMjQgKzk3LDI0IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTmV0d29ya1JUQ1Byb3ZpZGVyKE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CiAKLSAgICB2b2lkIGNyZWF0ZVVEUFNvY2tldCh1
aW50NjRfdCwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90LCB1aW50
MTZfdCk7Ci0gICAgdm9pZCBjcmVhdGVDbGllbnRUQ1BTb2NrZXQodWludDY0X3QsIGNvbnN0IFJU
Q05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
JiwgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQpOwotICAgIHZvaWQgY3JlYXRlU2VydmVyVENQU29j
a2V0KHVpbnQ2NF90LCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3Qg
bWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50KTsKLSAgICB2b2lkIHdyYXBOZXdUQ1BDb25u
ZWN0aW9uKHVpbnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2NF90IG5ld0Nvbm5lY3Rpb25Tb2NrZXRJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIGNyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENT
b2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2
X3QsIHVpbnQxNl90KTsKKyAgICB2b2lkIGNyZWF0ZUNsaWVudFRDUFNvY2tldChXZWJDb3JlOjpM
aWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
JiwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIFN0cmluZyYmIHVzZXJBZ2VudCwg
aW50KTsKKyAgICB2b2lkIGNyZWF0ZVNlcnZlclRDUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENT
b2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2
X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50KTsKKyAgICB2b2lkIHdyYXBOZXdUQ1BD
b25uZWN0aW9uKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwg
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRl
bnRpZmllcik7CiAKICAgICB2b2lkIGNyZWF0ZVJlc29sdmVyKHVpbnQ2NF90LCBjb25zdCBTdHJp
bmcmKTsKICAgICB2b2lkIHN0b3BSZXNvbHZlcih1aW50NjRfdCk7CiAKLSAgICB2b2lkIGFkZFNv
Y2tldCh1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFNvY2tldD4mJik7CisgICAgdm9pZCBhZGRT
b2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRy
PFNvY2tldD4mJik7CiAKLSAgICB2b2lkIGNyZWF0ZVNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVy
LCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiwgU29ja2V0OjpUeXBl
KTsKKyAgICB2b2lkIGNyZWF0ZVNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiwgU29ja2V0OjpU
eXBlKTsKIAogICAgIHZvaWQgT25NZXNzYWdlKHJ0Yzo6TWVzc2FnZSopOwogCiAgICAgc3RhdGlj
IHJ0Yzo6UHJveHlJbmZvIHByb3h5SW5mb0Zyb21TZXNzaW9uKGNvbnN0IFJUQ05ldHdvcms6OlNv
Y2tldEFkZHJlc3MmLCBOZXR3b3JrU2Vzc2lvbiYpOwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwg
c3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENSZXNvbHZlcj4+IG1fcmVzb2x2ZXJzOwotICAgIEhh
c2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxTb2NrZXQ+PiBtX3NvY2tldHM7CisgICAg
SGFzaE1hcDxXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9w
dHI8U29ja2V0Pj4gbV9zb2NrZXRzOwogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KiBtX2Nvbm5lY3Rpb247CiAgICAgYm9vbCBtX2lzU3RhcnRlZCB7IHRydWUgfTsKIApAQCAtMTIy
LDggKzEyMyw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6VGhyZWFkPiBt
X3J0Y05ldHdvcmtUaHJlYWQ7CiAgICAgVW5pcXVlUmVmPHJ0Yzo6QmFzaWNQYWNrZXRTb2NrZXRG
YWN0b3J5PiBtX3BhY2tldFNvY2tldEZhY3Rvcnk7CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBz
dGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4+IG1fcGVuZGluZ0luY29taW5n
U29ja2V0czsKLSAgICB1aW50NjRfdCBtX2luY29taW5nU29ja2V0SWRlbnRpZmllciB7IDAgfTsK
KyAgICBIYXNoTWFwPFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIHN0ZDo6dW5p
cXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0Pj4gbV9wZW5kaW5nSW5jb21pbmdTb2NrZXRz
OwogICAgIGJvb2wgbV9pc0xpc3RlbmluZ1NvY2tldEF1dGhvcml6ZWQgeyB0cnVlIH07CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3Jr
UlRDUHJvdmlkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KaW5kZXggMTIyMzZiM2M3MWQ3ZmYw
NmU2MTgzMjJmNjQ3MmZmYjEzODhiZDM4Ny4uOTIxZTU3MDRjMmQ5OTlmMDdlMTA4YzkyZjcxOWI2
MTcwOGE2MjM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbgpAQCAtMjMs
MTIgKzIzLDEzIEBACiAjaWYgVVNFKExJQldFQlJUQykKIAogbWVzc2FnZXMgLT4gTmV0d29ya1JU
Q1Byb3ZpZGVyIHsKLSAgICBDcmVhdGVVRFBTb2NrZXQoaW50IGlkZW50aWZpZXIsIFdlYktpdDo6
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQs
IHVpbnQxNl90IG1heFBvcnQpCi0gICAgQ3JlYXRlU2VydmVyVENQU29ja2V0KGludCBpZGVudGlm
aWVyLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCB1aW50
MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKLSAgICBDcmVhdGVD
bGllbnRUQ1BTb2NrZXQoaW50IGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyBsb2NhbEFkZHJlc3MsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBy
ZW1vdGVBZGRyZXNzLCBTdHJpbmcgdXNlckFnZW50LCBpbnQgb3B0aW9ucykKKyAgICBDcmVhdGVV
RFBTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCB1aW50MTZfdCBt
aW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQorICAgIENyZWF0ZVNlcnZlclRDUFNvY2tldChXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0
d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQx
Nl90IG1heFBvcnQsIGludCBvcHRpb25zKQorICAgIENyZWF0ZUNsaWVudFRDUFNvY2tldChXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0
d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIFdlYktpdDo6UlRDTmV0d29yazo6U29j
a2V0QWRkcmVzcyByZW1vdGVBZGRyZXNzLCBTdHJpbmcgdXNlckFnZW50LCBpbnQgb3B0aW9ucykK
KyAgICBXcmFwTmV3VENQQ29ubmVjdGlvbihXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29u
bmVjdGlvblNvY2tldElkZW50aWZpZXIpCisKICAgICBDcmVhdGVSZXNvbHZlcih1aW50NjRfdCBp
ZGVudGlmaWVyLCBTdHJpbmcgYWRkcmVzcykKICAgICBTdG9wUmVzb2x2ZXIodWludDY0X3QgaWRl
bnRpZmllcikKLSAgICBXcmFwTmV3VENQQ29ubmVjdGlvbih1aW50NjRfdCBpZGVudGlmaWVyLCB1
aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcikKIH0KIAogI2VuZGlmIC8vIFVT
RShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENTb2NrZXQuY3BwCmluZGV4IGE4YzcwYTNiMGQ2OTZmYjgxODRiNzEx
MmQ3M2RmMzRkOGZlN2YwNmUuLjgyMGQwN2JjMGU3Mjc0YjQ3OGI0ZTJhODZmYWE5NzI3ZGQyZGZj
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENTb2NrZXQuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi1OZXR3b3JrUlRDU29ja2V0OjpOZXR3b3JrUlRDU29ja2V0KHVpbnQ2NF90IGlkZW50
aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIpCitOZXR3b3JrUlRDU29ja2V0
OjpOZXR3b3JrUlRDU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRl
bnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlcikKICAgICA6IG1faWRlbnRp
ZmllcihpZGVudGlmaWVyKQogICAgICwgbV9ydGNQcm92aWRlcihydGNQcm92aWRlcikKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENT
b2NrZXQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENT
b2NrZXQuaAppbmRleCA2ZTRiZmUyYjE2NDE5Y2JiYzUxYjgwZDk1Zjc1OWVmZTJlZGQ5MmFmLi44
NGJiNGYxMzEyN2IzNjA2YmNlMDE5NzFlY2NiYWE5YzRiY2RkNGQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5oCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiUlRDTmV0d29yay5oIgogCiAjaW5jbHVkZSA8V2Vi
Q29yZS9MaWJXZWJSVENNYWNyb3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvYXN5bmNwYWNrZXRzb2Nr
ZXQuaD4KICNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvdGhpcmRfcGFydHkvc2lnc2xvdC9zaWdz
bG90Lmg+CiAKQEAgLTU4LDE0ICs1OSwxNCBAQCBzdHJ1Y3QgUlRDUGFja2V0T3B0aW9uczsKIAog
Y2xhc3MgTmV0d29ya1JUQ1NvY2tldCB7CiBwdWJsaWM6Ci0gICAgTmV0d29ya1JUQ1NvY2tldCh1
aW50NjRfdCwgTmV0d29ya1JUQ1Byb3ZpZGVyJik7CisgICAgTmV0d29ya1JUQ1NvY2tldChXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImKTsKICAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
OwogcHJpdmF0ZToKICAgICB2b2lkIHNlbmRUbyhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiYsIFJUQ1BhY2tldE9wdGlvbnMmJik7CiAgICAgdm9p
ZCBjbG9zZSgpOwogICAgIHZvaWQgc2V0T3B0aW9uKGludCBvcHRpb24sIGludCB2YWx1ZSk7CiAK
LSAgICB1aW50NjRfdCBtX2lkZW50aWZpZXI7CisgICAgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgTmV0d29ya1JUQ1Byb3ZpZGVyJiBtX3J0Y1By
b3ZpZGVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5k
ZXggZWM0MGQ0MzEzZWQzNDUwYzFlMTBmZmRkNzFiMjA2Yzg0MjZkZmM5Yi4uYTc4ZGEzMTQ0MzI1
OGMwODYxOTJmMjA1MjBiMzQwNjA5NGU0OThmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CkBAIC0yMDYsNiArMjA2LDcgQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRp
b25zX2FuZF9oZWFkZXJzKHJlY2VpdmVyKToKICAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50SWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpGZXRjaElkZW50aWZpZXInLAogICAgICAgICAn
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6UGFnZUlkZW50aWZpZXInLAogICAg
ICAgICAnV2ViQ29yZTo6UG9pbnRlcklEJywKICAgICAgICAgJ1dlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDJmMjFmNWU1MTkxMGViOTg1
MjhjOGRkNDY0NGZlNTMyOWZhNDFkMDEuLmYwYjRmZGZhNmEzMTE3MDQ5OTZkNzg1YTFjOTYyNzcz
NjAxMTk4MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMTA4LDcgKzEwOCw3IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQCiAKICNpZiBVU0UoTElCV0VCUlRDKQogICAgIGlmIChk
ZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUlRDU29ja2V0Ojpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKLSAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
bGliV2ViUlRDTmV0d29yaygpLnNvY2tldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkuZGlkUmVj
ZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXQobWFrZU9iamVjdElkZW50aWZpZXI8
TGliV2ViUlRDU29ja2V0SWRlbnRpZmllclR5cGU+KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKSku
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2Vz
OjpXZWJSVENNb25pdG9yOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29y
ay5oCmluZGV4IDdjNjQ4NGZlNzhkNzhkNzRjYjMyODMzMWY5NzZhZmFiNDIzYjcyZjUuLmY3ZTIx
Zjc3MGIwMzNiMTdjODU5NjkwNmE3MDEyMmVhYjY2MjY5YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsu
aApAQCAtMzMsNiArMzMsNyBAQAogI2VuZGlmCiAKICNpbmNsdWRlICJXZWJNRE5TUmVnaXN0ZXIu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQ3LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBk
aXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSB7IHNvY2tldEZhY3RvcnkoKS5kaXNhYmxl
Tm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKTsgfQogCi0gICAgV2ViUlRDU29ja2V0IHNvY2tldCh1
aW50NjRfdCBpZGVudGlmaWVyKSB7IHJldHVybiBXZWJSVENTb2NrZXQoc29ja2V0RmFjdG9yeSgp
LCBpZGVudGlmaWVyKTsgfQorICAgIFdlYlJUQ1NvY2tldCBzb2NrZXQoV2ViQ29yZTo6TGliV2Vi
UlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyKSB7IHJldHVybiBXZWJSVENTb2NrZXQoc29j
a2V0RmFjdG9yeSgpLCBpZGVudGlmaWVyKTsgfQogICAgIFdlYlJUQ1Jlc29sdmVyIHJlc29sdmVy
KHVpbnQ2NF90IGlkZW50aWZpZXIpIHsgcmV0dXJuIFdlYlJUQ1Jlc29sdmVyKHNvY2tldEZhY3Rv
cnkoKSwgaWRlbnRpZmllcik7IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCmluZGV4
IGUyYzVkZjU1N2M0MDExNWRkZjQ4ZmQ0MDc5YWZiOTQ5YTZjMjU1NjkuLmIyNjcxYzUxNjZlMjA3
NWNjOGM3Y2JiOTQwYTkwNTc2MmZkNWMwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwCkBAIC0z
NCwxNSArMzQsMTYgQEAKICNpbmNsdWRlICJOZXR3b3JrUlRDU29ja2V0TWVzc2FnZXMuaCIKICNp
bmNsdWRlICJSVENQYWNrZXRPcHRpb25zLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLUxpYldlYlJUQ1Nv
Y2tldDo6TGliV2ViUlRDU29ja2V0KExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIGZhY3RvcnksIHVp
bnQ2NF90IGlkZW50aWZpZXIsIFR5cGUgdHlwZSwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBs
b2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcykKK0xp
YldlYlJUQ1NvY2tldDo6TGliV2ViUlRDU29ja2V0KExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIGZh
Y3RvcnksIFR5cGUgdHlwZSwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3Ms
IGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcykKICAgICA6IG1fZmFjdG9y
eShmYWN0b3J5KQotICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2lkZW50
aWZpZXIoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKICAgICAsIG1fdHlw
ZSh0eXBlKQogICAgICwgbV9sb2NhbEFkZHJlc3MobG9jYWxBZGRyZXNzKQogICAgICwgbV9yZW1v
dGVBZGRyZXNzKHJlbW90ZUFkZHJlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmgKaW5kZXggYWYxZjQyNTMw
MTZkZTNlMTkzN2UxMzZlM2E5ZDI4ZTIwYzEyNDQ2Ny4uNjQ0ZWU1YTBiYjFmM2Y5OGFmNjllY2Q0
MGNlZWU5YjljMjAyYjkwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaApAQCAtMjgsNiArMjgsNyBAQAog
I2lmIFVTRShMSUJXRUJSVEMpCiAKICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1Byb3ZpZGVy
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8d2VicnRjL3J0Y19iYXNlL2FzeW5jcGFja2V0c29ja2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTUxLDEwICs1MiwxMCBAQCBj
bGFzcyBMaWJXZWJSVENTb2NrZXQgZmluYWwgOiBwdWJsaWMgcnRjOjpBc3luY1BhY2tldFNvY2tl
dCB7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBUeXBlIHsgVURQLCBTZXJ2ZXJUQ1AsIENsaWVu
dFRDUCwgU2VydmVyQ29ubmVjdGlvblRDUCB9OwogCi0gICAgTGliV2ViUlRDU29ja2V0KExpYldl
YlJUQ1NvY2tldEZhY3RvcnkmLCB1aW50NjRfdCBpZGVudGlmaWVyLCBUeXBlLCBjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBy
ZW1vdGVBZGRyZXNzKTsKKyAgICBMaWJXZWJSVENTb2NrZXQoTGliV2ViUlRDU29ja2V0RmFjdG9y
eSYsIFR5cGUsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MpOwogICAgIH5MaWJXZWJSVENTb2NrZXQo
KTsKIAotICAgIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZp
ZXI7IH0KKyAgICBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KICAgICBjb25zdCBydGM6OlNvY2tldEFk
ZHJlc3MmIGxvY2FsQWRkcmVzcygpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxBZGRyZXNzOyB9CiAg
ICAgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKCkgY29uc3QgeyByZXR1
cm4gbV9yZW1vdGVBZGRyZXNzOyB9CiAKQEAgLTg3LDcgKzg4LDcgQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgdm9pZCBzZW5kT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoSVBDOjpDb25uZWN0aW9u
Jik+JiYpOwogCiAgICAgTGliV2ViUlRDU29ja2V0RmFjdG9yeSYgbV9mYWN0b3J5OwotICAgIHVp
bnQ2NF90IG1faWRlbnRpZmllciB7IDAgfTsKKyAgICBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBUeXBlIG1fdHlwZTsKICAgICBydGM6OlNvY2tl
dEFkZHJlc3MgbV9sb2NhbEFkZHJlc3M7CiAgICAgcnRjOjpTb2NrZXRBZGRyZXNzIG1fcmVtb3Rl
QWRkcmVzczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAppbmRleCA2ZDNjMGIx
YjBhMTk1ZGE1NTE1NzVmMzhkNmRhODY0MWE2YzEzMzQ5Li4zMDAyZTgzODg2YzM5MDJmZjNkMDM1
NzNjMzM2MWNjYzgxNWExY2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3Bw
CkBAIC0zNyw3ICszNyw2IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi11aW50NjRfdCBMaWJX
ZWJSVENTb2NrZXRGYWN0b3J5OjpzX3VuaXF1ZVNvY2tldElkZW50aWZpZXIgPSAwOwogdWludDY0
X3QgTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6c191bmlxdWVSZXNvbHZlcklkZW50aWZpZXIgPSAw
OwogCiBzdGF0aWMgaW5saW5lIHJ0Yzo6U29ja2V0QWRkcmVzcyBwcmVwYXJlU29ja2V0QWRkcmVz
cyhjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIGJvb2wgZGlzYWJsZU5vbkxvY2Fs
aG9zdENvbm5lY3Rpb25zKQpAQCAtNTAsNyArNDksNyBAQCBzdGF0aWMgaW5saW5lIHJ0Yzo6U29j
a2V0QWRkcmVzcyBwcmVwYXJlU29ja2V0QWRkcmVzcyhjb25zdCBydGM6OlNvY2tldEFkZHJlc3Mm
CiAKIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0
ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQx
Nl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKQogewotICAgIGF1dG8g
c29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29j
a2V0SWRlbnRpZmllciwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpTZXJ2ZXJUQ1AsIGFkZHJlc3Ms
IHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKKyAgICBhdXRvIHNvY2tldCA9IG1ha2VVbmlxdWU8TGli
V2ViUlRDU29ja2V0PigqdGhpcywgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpTZXJ2ZXJUQ1AsIGFk
ZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsKICAgICBtX3NvY2tldHMuc2V0KHNvY2tldC0+
aWRlbnRpZmllcigpLCBzb2NrZXQuZ2V0KCkpOwogCiAgICAgY2FsbE9uTWFpblRocmVhZChbaWRl
bnRpZmllciA9IHNvY2tldC0+aWRlbnRpZmllcigpLCBhZGRyZXNzID0gcHJlcGFyZVNvY2tldEFk
ZHJlc3MoYWRkcmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCBtaW5Qb3J0
LCBtYXhQb3J0LCBvcHRpb25zXSgpIHsKQEAgLTY2LDcgKzY1LDcgQEAgcnRjOjpBc3luY1BhY2tl
dFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KGNv
bnN0IHJ0YzoKIAogcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9y
eTo6Y3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWlu
dDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkKIHsKLSAgICBhdXRvIHNvY2tldCA9IG1h
a2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1ZVNvY2tldElkZW50aWZp
ZXIsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6VURQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJl
c3MoKSk7CisgICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRo
aXMsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6VURQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJl
c3MoKSk7CiAgICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgc29ja2V0Lmdl
dCgpKTsKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50
aWZpZXIoKSwgYWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGFkZHJlc3MsIG1fZGlzYWJs
ZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKSwgbWluUG9ydCwgbWF4UG9ydF0oKSB7CkBAIC04MCw3
ICs3OSw3IEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6
OmNyZWF0ZVVkcFNvY2tldChjb25zdCBydGM6OlNvY2tlCiAKIHJ0Yzo6QXN5bmNQYWNrZXRTb2Nr
ZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVudFRjcFNvY2tldChjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNz
JiByZW1vdGVBZGRyZXNzLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCBvcHRpb25zKQogewotICAg
IGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5p
cXVlU29ja2V0SWRlbnRpZmllciwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpDbGllbnRUQ1AsIGxv
Y2FsQWRkcmVzcywgcmVtb3RlQWRkcmVzcyk7CisgICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVl
PExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6Q2xpZW50VENQ
LCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3MpOwogICAgIHNvY2tldC0+c2V0U3RhdGUoTGli
V2ViUlRDU29ja2V0OjpTVEFURV9DT05ORUNUSU5HKTsKICAgICBtX3NvY2tldHMuc2V0KHNvY2tl
dC0+aWRlbnRpZmllcigpLCBzb2NrZXQuZ2V0KCkpOwogCkBAIC05NCw5ICs5Myw5IEBAIHJ0Yzo6
QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVudFRj
cFNvY2tldChjb25zdCBydGM6CiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKLXJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZU5ld0Nv
bm5lY3Rpb25Tb2NrZXQoTGliV2ViUlRDU29ja2V0JiBzZXJ2ZXJTb2NrZXQsIHVpbnQ2NF90IG5l
d0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJl
bW90ZUFkZHJlc3MpCitydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0
b3J5OjpjcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KExpYldlYlJUQ1NvY2tldCYgc2VydmVyU29j
a2V0LCBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlm
aWVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MpCiB7Ci0gICAgYXV0
byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsICsrc191bmlxdWVT
b2NrZXRJZGVudGlmaWVyLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OlNlcnZlckNvbm5lY3Rpb25U
Q1AsIHNlcnZlclNvY2tldC5sb2NhbEFkZHJlc3MoKSwgcmVtb3RlQWRkcmVzcyk7CisgICAgYXV0
byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIExpYldlYlJUQ1Nv
Y2tldDo6VHlwZTo6U2VydmVyQ29ubmVjdGlvblRDUCwgc2VydmVyU29ja2V0LmxvY2FsQWRkcmVz
cygpLCByZW1vdGVBZGRyZXNzKTsKICAgICBzb2NrZXQtPnNldFN0YXRlKExpYldlYlJUQ1NvY2tl
dDo6U1RBVEVfQ09OTkVDVEVEKTsKICAgICBtX3NvY2tldHMuc2V0KHNvY2tldC0+aWRlbnRpZmll
cigpLCBzb2NrZXQuZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaAppbmRl
eCA0OTRmOWQ0NDZjYzYxOWE2YjYzNmEwMWJmOTJlMzQwMjA1ODVmNzA1Li5hOTQ1YjEwZGFhZGFh
ZjZiNDVkNGQ4NTZjODZiNjdiMTQyYjc3M2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0
b3J5LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENSZXNvbHZlci5oIgog
I2luY2x1ZGUgIkxpYldlYlJUQ1NvY2tldC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRD
TWFjcm9zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg+
CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL25ldGhlbHBlcnMuaD4KICNpbmNsdWRlIDx3ZWJy
dGMvcDJwL2Jhc2UvcGFja2V0c29ja2V0ZmFjdG9yeS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CkBAIC00MSwyNiArNDIsMjIgQEAgcHVibGljOgogICAgIExpYldlYlJUQ1NvY2tldEZhY3Rv
cnkoKSB7IH0KIAogICAgIHZvaWQgZGV0YWNoKExpYldlYlJUQ1NvY2tldCYpOwotCi0gICAgTGli
V2ViUlRDU29ja2V0KiBzb2NrZXQodWludDY0X3QgaWRlbnRpZmllcikgeyByZXR1cm4gbV9zb2Nr
ZXRzLmdldChpZGVudGlmaWVyKTsgfQotICAgIExpYldlYlJUQ1Jlc29sdmVyKiByZXNvbHZlcih1
aW50NjRfdCBpZGVudGlmaWVyKSB7IHJldHVybiBtX3Jlc29sdmVycy5nZXQoaWRlbnRpZmllcik7
IH0KLQotICAgIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENSZXNvbHZlcj4gdGFrZVJlc29sdmVy
KHVpbnQ2NF90IGlkZW50aWZpZXIpIHsgcmV0dXJuIG1fcmVzb2x2ZXJzLnRha2UoaWRlbnRpZmll
cik7IH0KLQotICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZU5ld0Nvbm5lY3Rpb25T
b2NrZXQoTGliV2ViUlRDU29ja2V0JiwgdWludDY0X3QgbmV3Q29ubmVjdGlvblNvY2tldElkZW50
aWZpZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYpOwotCi0gICAgdm9pZCBkaXNhYmxlTm9u
TG9jYWxob3N0Q29ubmVjdGlvbnMoKSB7IG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25z
ID0gdHJ1ZTsgfQorICAgIExpYldlYlJUQ1NvY2tldCogc29ja2V0KFdlYkNvcmU6OkxpYldlYlJU
Q1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1cm4gbV9zb2NrZXRzLmdldChpZGVu
dGlmaWVyKTsgfQogCiAgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlVWRwU29ja2V0
KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1h
eFBvcnQpOwogICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZVNlcnZlclRjcFNvY2tl
dChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBt
YXhQb3J0LCBpbnQgb3B0aW9ucyk7CiAgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRl
Q2xpZW50VGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBj
b25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2Vu
dCwgaW50IG9wdGlvbnMpOworICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZU5ld0Nv
bm5lY3Rpb25Tb2NrZXQoTGliV2ViUlRDU29ja2V0JiwgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllciwgY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJik7CisKKyAgICBMaWJXZWJSVENSZXNvbHZlciogcmVzb2x2ZXIodWludDY0X3Qg
aWRlbnRpZmllcikgeyByZXR1cm4gbV9yZXNvbHZlcnMuZ2V0KGlkZW50aWZpZXIpOyB9CisgICAg
c3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1Jlc29sdmVyPiB0YWtlUmVzb2x2ZXIodWludDY0X3Qg
aWRlbnRpZmllcikgeyByZXR1cm4gbV9yZXNvbHZlcnMudGFrZShpZGVudGlmaWVyKTsgfQogICAg
IHJ0Yzo6QXN5bmNSZXNvbHZlckludGVyZmFjZSogY3JlYXRlQXN5bmNSZXNvbHZlcigpOworICAg
IAorICAgIHZvaWQgZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKCkgeyBtX2Rpc2FibGVO
b25Mb2NhbGhvc3RDb25uZWN0aW9ucyA9IHRydWU7IH0KIAogcHJpdmF0ZToKLQogICAgIC8vIFdl
IGNhbm5vdCBvd24gc29ja2V0cywgY2xpZW50cyBvZiB0aGUgZmFjdG9yeSBhcmUgcmVzcG9uc2li
bGUgdG8gZnJlZSB0aGVtLgotICAgIEhhc2hNYXA8dWludDY0X3QsIExpYldlYlJUQ1NvY2tldCo+
IG1fc29ja2V0czsKLSAgICBzdGF0aWMgdWludDY0X3Qgc191bmlxdWVTb2NrZXRJZGVudGlmaWVy
OworICAgIEhhc2hNYXA8V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTGliV2Vi
UlRDU29ja2V0Kj4gbV9zb2NrZXRzOwogICAgIAogICAgIC8vIFdlIGNhbiBvd24gcmVzb2x2ZXJz
IGFzIHdlIGNvbnRyb2wgdGhlaXIgRGVzdHJveSBtZXRob2QuCiAgICAgSGFzaE1hcDx1aW50NjRf
dCwgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1Jlc29sdmVyPj4gbV9yZXNvbHZlcnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29j
a2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENT
b2NrZXQuY3BwCmluZGV4IGJhMzVkN2Y3OTdjYjA2NTFiNGI1ZGYwZmQyY2Q0MDAxNmM4ZjJmYzku
LjI5NjFlYjcxYTU3MTQxYTA2YmYyZGZhYmFjNDQ1YTI0YmQ4NzA5ODQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQu
Y3BwCkBAIC0zNSw5ICszNSwxMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+
CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJSVENTb2NrZXQ6OnNpZ25hbE9uTmV0d29y
a1RocmVhZChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5LCB1aW50NjRfdCBpZGVudGlm
aWVyLCBGdW5jdGlvbjx2b2lkKExpYldlYlJUQ1NvY2tldCYpPiYmIGNhbGxiYWNrKQordm9pZCBX
ZWJSVENTb2NrZXQ6OnNpZ25hbE9uTmV0d29ya1RocmVhZChMaWJXZWJSVENTb2NrZXRGYWN0b3J5
JiBmYWN0b3J5LCBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZ1bmN0aW9u
PHZvaWQoTGliV2ViUlRDU29ja2V0Jik+JiYgY2FsbGJhY2spCiB7CiAgICAgLy8gZmFjdG9yeSBp
cyBzdGF5aW5nIHZhbGlkIGR1cmluZyB0aGUgcHJvY2VzcyBsaWZldGltZS4KICAgICBXZWJDb3Jl
OjpMaWJXZWJSVENQcm92aWRlcjo6Y2FsbE9uV2ViUlRDTmV0d29ya1RocmVhZChbJmZhY3Rvcnks
IGlkZW50aWZpZXIsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgewpAQCAtNDgsNyAr
NTAsNyBAQCB2b2lkIFdlYlJUQ1NvY2tldDo6c2lnbmFsT25OZXR3b3JrVGhyZWFkKExpYldlYlJU
Q1NvY2tldEZhY3RvcnkmIGZhY3RvcnksIHVpbnQ2NAogICAgIH0pOwogfQogCi1XZWJSVENTb2Nr
ZXQ6OldlYlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5LCB1aW50NjRf
dCBpZGVudGlmaWVyKQorV2ViUlRDU29ja2V0OjpXZWJSVENTb2NrZXQoTGliV2ViUlRDU29ja2V0
RmFjdG9yeSYgZmFjdG9yeSwgTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyKQog
ICAgIDogbV9mYWN0b3J5KGZhY3RvcnkpCiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikK
IHsKQEAgLTcxLDI4ICs3MywyOCBAQCB2b2lkIFdlYlJUQ1NvY2tldDo6c2lnbmFsUmVhZFBhY2tl
dChjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGNvbnN0IFJUQ05ldAogCiB2b2lkIFdl
YlJUQ1NvY2tldDo6c2lnbmFsU2VudFBhY2tldChpbnQgcnRjUGFja2V0SUQsIGludDY0X3Qgc2Vu
ZFRpbWVNcykKIHsKLSAgICBzaWduYWxPbk5ldHdvcmtUaHJlYWQobV9mYWN0b3J5LCBtX2lkZW50
aWZpZXIsIFtydGNQYWNrZXRJRCwgc2VuZFRpbWVNc10oTGliV2ViUlRDU29ja2V0JiBzb2NrZXQp
IHsKKyAgICBzaWduYWxPbk5ldHdvcmtUaHJlYWQobV9mYWN0b3J5LCBtX2lkZW50aWZpZXIsIFty
dGNQYWNrZXRJRCwgc2VuZFRpbWVNc10oYXV0byYgc29ja2V0KSB7CiAgICAgICAgIHNvY2tldC5z
aWduYWxTZW50UGFja2V0KHJ0Y1BhY2tldElELCBzZW5kVGltZU1zKTsKICAgICB9KTsKIH0KIAog
dm9pZCBXZWJSVENTb2NrZXQ6OnNpZ25hbENvbm5lY3QoKQogewotICAgIHNpZ25hbE9uTmV0d29y
a1RocmVhZChtX2ZhY3RvcnksIG1faWRlbnRpZmllciwgW10oTGliV2ViUlRDU29ja2V0JiBzb2Nr
ZXQpIHsKKyAgICBzaWduYWxPbk5ldHdvcmtUaHJlYWQobV9mYWN0b3J5LCBtX2lkZW50aWZpZXIs
IFtdKGF1dG8mIHNvY2tldCkgewogICAgICAgICBzb2NrZXQuc2lnbmFsQ29ubmVjdCgpOwogICAg
IH0pOwogfQogCiB2b2lkIFdlYlJUQ1NvY2tldDo6c2lnbmFsQ2xvc2UoaW50IGVycm9yKQogewot
ICAgIHNpZ25hbE9uTmV0d29ya1RocmVhZChtX2ZhY3RvcnksIG1faWRlbnRpZmllciwgW2Vycm9y
XShMaWJXZWJSVENTb2NrZXQmIHNvY2tldCkgeworICAgIHNpZ25hbE9uTmV0d29ya1RocmVhZCht
X2ZhY3RvcnksIG1faWRlbnRpZmllciwgW2Vycm9yXShhdXRvJiBzb2NrZXQpIHsKICAgICAgICAg
c29ja2V0LnNpZ25hbENsb3NlKGVycm9yKTsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJSVENTb2Nr
ZXQ6OnNpZ25hbE5ld0Nvbm5lY3Rpb24odWludDY0X3QgbmV3U29ja2V0SWRlbnRpZmllciwgY29u
c3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcykKK3ZvaWQgV2ViUlRD
U29ja2V0OjpzaWduYWxOZXdDb25uZWN0aW9uKExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3
U29ja2V0SWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgcmVtb3Rl
QWRkcmVzcykKIHsKLSAgICBzaWduYWxPbk5ldHdvcmtUaHJlYWQobV9mYWN0b3J5LCBtX2lkZW50
aWZpZXIsIFtuZXdTb2NrZXRJZGVudGlmaWVyLCByZW1vdGVBZGRyZXNzID0gUlRDTmV0d29yazo6
aXNvbGF0ZWRDb3B5KHJlbW90ZUFkZHJlc3MudmFsdWUpXShMaWJXZWJSVENTb2NrZXQmIHNvY2tl
dCkgeworICAgIHNpZ25hbE9uTmV0d29ya1RocmVhZChtX2ZhY3RvcnksIG1faWRlbnRpZmllciwg
W25ld1NvY2tldElkZW50aWZpZXIsIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRl
ZENvcHkocmVtb3RlQWRkcmVzcy52YWx1ZSldKGF1dG8mIHNvY2tldCkgewogICAgICAgICBzb2Nr
ZXQuc2lnbmFsTmV3Q29ubmVjdGlvbihzb2NrZXQubV9mYWN0b3J5LmNyZWF0ZU5ld0Nvbm5lY3Rp
b25Tb2NrZXQoc29ja2V0LCBuZXdTb2NrZXRJZGVudGlmaWVyLCByZW1vdGVBZGRyZXNzKSk7CiAg
ICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvV2ViUlRDU29ja2V0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvV2ViUlRDU29ja2V0LmgKaW5kZXggOWY0Y2I3ODA4Njg1ZGQ2Nzg2YzFkZDViNzM2MWMy
NzIyNDIwZTg5Zi4uNTdlMThkZmUzMDM4ZmNlN2U3MmFiNDllZmU4YTI4NzBiNGY5ODJmYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Nv
Y2tldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJS
VENTb2NrZXQuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIFVTRShMSUJXRUJSVEMpCiAKICNpbmNs
dWRlICJSVENOZXR3b3JrLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENTb2NrZXRJZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpA
QCAtNDMsMTEgKzQ0LDExIEBAIGNsYXNzIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk7CiAKIGNsYXNz
IFdlYlJUQ1NvY2tldCB7CiBwdWJsaWM6Ci0gICAgV2ViUlRDU29ja2V0KExpYldlYlJUQ1NvY2tl
dEZhY3RvcnkmLCB1aW50NjRfdCk7CisgICAgV2ViUlRDU29ja2V0KExpYldlYlJUQ1NvY2tldEZh
Y3RvcnkmLCBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyKTsKIAogICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAKLSAg
ICBzdGF0aWMgdm9pZCBzaWduYWxPbk5ldHdvcmtUaHJlYWQoTGliV2ViUlRDU29ja2V0RmFjdG9y
eSYsIHVpbnQ2NF90LCBGdW5jdGlvbjx2b2lkKExpYldlYlJUQ1NvY2tldCYpPiYmKTsKKyAgICBz
dGF0aWMgdm9pZCBzaWduYWxPbk5ldHdvcmtUaHJlYWQoTGliV2ViUlRDU29ja2V0RmFjdG9yeSYs
IFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoTGliV2Vi
UlRDU29ja2V0Jik+JiYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgc2lnbmFsUmVhZFBhY2tldChj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBSVENOZXR3b3JrOjpJUEFkZHJlc3MmLCB1
aW50MTZfdCBwb3J0LCBpbnQ2NF90KTsKQEAgLTU1LDEwICs1NiwxMCBAQCBwcml2YXRlOgogICAg
IHZvaWQgc2lnbmFsQWRkcmVzc1JlYWR5KGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3Mm
KTsKICAgICB2b2lkIHNpZ25hbENvbm5lY3QoKTsKICAgICB2b2lkIHNpZ25hbENsb3NlKGludCk7
Ci0gICAgdm9pZCBzaWduYWxOZXdDb25uZWN0aW9uKHVpbnQ2NF90IG5ld1NvY2tldElkZW50aWZp
ZXIsIGNvbnN0IFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYpOworICAgIHZvaWQg
c2lnbmFsTmV3Q29ubmVjdGlvbihXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG5l
d1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVz
cyYpOwogCiAgICAgTGliV2ViUlRDU29ja2V0RmFjdG9yeSYgbV9mYWN0b3J5OwotICAgIHVpbnQ2
NF90IG1faWRlbnRpZmllciB7IDAgfTsKKyAgICBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVu
dGlmaWVyIG1faWRlbnRpZmllcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tl
dC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9X
ZWJSVENTb2NrZXQubWVzc2FnZXMuaW4KaW5kZXggZjYxMTI4NWFmYTczNjVhZTFkYjc4OGIyNzM4
NGE1ZmVmZTg4NmU3Zi4uOGY4NzJlZTIxOWEyYzc3NjhkYTg1M2FhNDFmMjU3ZmY0NTc0ZGMzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJU
Q1NvY2tldC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvV2ViUlRDU29ja2V0Lm1lc3NhZ2VzLmluCkBAIC0yOCw3ICsyOCw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlJUQ1NvY2tldCB7CiAgICAgU2lnbmFsQWRkcmVzc1JlYWR5KFdlYktpdDo6UlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyBhZGRyZXNzKQogICAgIFNpZ25hbENvbm5lY3QoKQogICAg
IFNpZ25hbENsb3NlKGludCBlcnJvcikKLSAgICBTaWduYWxOZXdDb25uZWN0aW9uKHVpbnQ2NF90
IG5ld1NvY2tldElkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBy
ZW1vdGVBZGRyZXNzKQorICAgIFNpZ25hbE5ld0Nvbm5lY3Rpb24oV2ViQ29yZTo6TGliV2ViUlRD
U29ja2V0SWRlbnRpZmllciBuZXdTb2NrZXRJZGVudGlmaWVyLCBXZWJLaXQ6OlJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MgcmVtb3RlQWRkcmVzcykKIH0KIAogI2VuZGlmIC8vIFVTRShMSUJXRUJS
VEMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379911</attachid>
            <date>2019-10-01 09:31:19 -0700</date>
            <delta_ts>2019-10-01 12:51:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202400-20191001183117.patch</filename>
            <type>text/plain</type>
            <size>44495</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk4MTRkZDQ0Y2VmMTJj
Y2YyNDU5YmRiZWY4Nzg4NjRjODFjNmViYS4uMzY3NGI4NmMwMWFmNjc0MDVmMzc2YzEzNTlkNTFj
MTdiYzVhNTcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTEwLTAxICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc3Ryb25nbHkgdHlw
ZWQgaWRlbnRpZmllcnMgZm9yIHdlYnJ0YyBzb2NrZXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MDAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGNoYW5nZSBvZiBiZWhhdmlv
ci4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaC4KKwogMjAxOS0xMC0w
MSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUXVldWUgZXZl
bnRzIGFuZCBwcm9taXNlIHJlc29sdXRpb24gaW4gUlRDUGVlckNvbm5lY3Rpb24gd2hlbiBzdXNw
ZW5kZWQgZm9yIHBhZ2UgY2FjaGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjYyYjZjZmNhYzlkMjQ0YjcwODcwMTU0
NmRlYmIzYzZjZWExNDA4My4uNDgzN2NkYTcxZjJmNGZhNTkzNDAxZTk4NTg2ZGFiNWNjMDBiMjQy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAxOS0xMC0wMSAgeW91ZW5uIGZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHN0cm9uZ2x5IHR5cGVkIGlkZW50aWZp
ZXJzIGZvciB3ZWJydGMgc29ja2V0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAyNDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVmYWN0b3JpbmcgdG8gdXNlIExpYldlYlJUQ1NvY2tldElkZW50aWZp
ZXIgaW5zdGVhZCBvZiB1aW50NjRfdC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENT
b2NrZXRDbGllbnQ6OkxpYldlYlJUQ1NvY2tldENsaWVudCk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1JUQ1Byb3ZpZGVyOjpjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6d3JhcE5ld1RDUENvbm5lY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmFkZFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtSVENQcm92aWRlcjo6dGFrZVNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSVENQcm92aWRlcjo6bmV3Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
VENQcm92aWRlcjo6ZGlkUmVjZWl2ZU5ldHdvcmtSVENTb2NrZXRNZXNzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjbG9zZUxpc3RlbmluZ1NvY2tldHMpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNhbGxTb2NrZXQpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1JUQ1NvY2tldDo6TmV0d29ya1JUQ1NvY2tldCk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaDoKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmg6CisgICAgICAgIChXZWJLaXQ6Okxp
YldlYlJUQ05ldHdvcms6OnNvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2Nr
ZXQ6OkxpYldlYlJUQ1NvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENT
b2NrZXRGYWN0b3J5OjpjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpM
aWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVVZHBTb2NrZXQpOgorICAgICAgICAoV2ViS2l0
OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQpOgorICAgICAg
ICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVOZXdDb25uZWN0aW9uU29j
a2V0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tl
dEZhY3RvcnkuaDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6c29j
a2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6cmVzb2x2ZXIp
OgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojp0YWtlUmVzb2x2ZXIp
OgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpkaXNhYmxlTm9uTG9j
YWxob3N0Q29ubmVjdGlvbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
V2ViUlRDU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU29ja2V0OjpzaWduYWxP
bk5ldHdvcmtUaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTb2NrZXQ6OldlYlJUQ1Nv
Y2tldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6c2lnbmFsU2VudFBhY2tldCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6c2lnbmFsQ29ubmVjdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6c2lnbmFsQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSVENTb2NrZXQ6OnNpZ25hbE5ld0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW46CisKIDIwMTktMTAtMDEgIHlvdWVu
biBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSByYWNlcyBjb25k
aXRpb24gd2hlbiB2YWxpZGF0aW5nIGNhcHR1cmUgc2FuZGJveCBleHRlbnNpb24gcmV2b2NhdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKaW5kZXggNTRhZjIyZGFkZTY1M2ZkM2FiYTc4NmMxNTlmZTAwZDJm
MGE4YmQ5NC4uZGRiMzU5ZTM5MTI0ODc3Zjg0MGNkODA2OTU1ZGVkMzExMDA2ZTM4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCkBAIC0xMTU5LDYgKzExNTksNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDTWFjcm9zLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUHJvdmlkZXIuaAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENTb2NrZXRJZGVudGlmaWVyLmgKIAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrLmgKICAgICBwbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRNb2Nr
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBhMTc2MWM2N2I0Yzk1ZDhlYWI0NzdhN2MwMGFlNTU0NWQyM2E3OWVlLi4zZmJiNTVl
ZWMwOWRjNjYyN2QwMjE1NzI4OTk5Y2I0ZTNiYjNkZDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDIzLDYgKzEwMjMsNyBA
QAogCQkzRkZGRjlBOTE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBNzE1
OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggKi87IH07CiAJCTNGRkZG
OUFFMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGRkZGOUFDMTU5RDlCMDYwMDIw
QkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCAqLzsgfTsKIAkJNDEwNzkwOEMxRkMzRjAz
MzAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDEwNzkwOEExRkMzRTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdp
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQx
MEU0NDYxMjM0MzczRTkwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTBFNDQ1RjIzNDM3
M0FEMDAwMTczRDQgLyogTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMTAzQUFDMUUzOTc5MTAwMDc2
OUYwMyAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUE4MUUzOTc5MEEwMDc2OUYwMyAvKiBS
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCAqLzsgfTsKIAkJNDExMDNBQUMxRTM5NzkxMDAw
NzY5RjE0IC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FBODFFMzk3OTBBMDA3NjlG
MTQgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuaCAqLzsgfTsKIAkJNDExMDNB
QUQxRTM5NzkxMDAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDNBQTkxRTM5Nzkw
QTAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oICovOyB9OwpAQCAtNzE3
Myw2ICs3MTc0LDcgQEAKIAkJNDEwNjI2QTcyMjgwQTIyQTAwNkQxQjU5IC8qIEpTQXVkaW9Ob2Rl
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXVkaW9O
b2RlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwNzkwOEExRkMz
RTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDbGllbnRPcmlnaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEw
QjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwRTQ0NUYyMzQzNzNBRDAwMDE3M0Q0IC8q
IExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oOyBwYXRoID0gbGlid2VicnRjL0xpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEx
MDNBQTcxRTM5NzkwQTAwNzY5RjAzIC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEwM0FBNzFFMzk3
OTBBMDA3NjlGMTQgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEwM0FBODFFMzk3
OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc3NjksNiArMTc3NzEsNyBAQAogCQkJCTQxNTc0
NzQ0MUUzODY5OUUwMEU5MTREOCAvKiBMaWJXZWJSVENQcm92aWRlci5oICovLAogCQkJCTQxQjI4
QjM4MUY4NjBCRDEwMEZCNTJBQyAvKiBMaWJXZWJSVENQcm92aWRlckNvY29hLmNwcCAqLywKIAkJ
CQk0MUIyOEIzNjFGODYwQkQwMDBGQjUyQUMgLyogTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5oICov
LAorCQkJCTQxMEU0NDVGMjM0MzczQUQwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IGxpYndlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC0zMDc0NSw2ICszMDc0OCw3IEBACiAJCQkJNDE3NjEyQjIxRTNBOTk0MDAw
QzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDE1NzQ3NDgxRTM4NjlBNzAwRTkxNEQ4IC8qIExpYldlYlJUQ1Byb3ZpZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MUIyOEIzRDFGODYwRUYzMDBGQjUyQUMgLyogTGliV2ViUlRDUHJv
dmlkZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwRTQ0NjEyMzQzNzNFOTAwMDE3M0Q0
IC8qIExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzMw
RDkxMTI0OEYwQjMwMEQzQTlDOSAvKiBMaWdodFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjIyMjc5NjUwRDAwQkYyMjAwNzFCNzgyIC8qIExpbmVhckdyYWRpZW50QXR0cmlidXRlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQUIzMUM5MUUxMEFFMUI4RTAwMEM3QjkyIC8qIExpbmVDbGFtcFZh
bHVlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDU29ja2V0
SWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3NGYxMzZlOTE0NmQzNjBkN2ZmMWRmNzE4NjY4ZTBl
ZTliMGEzMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oCkBAIC0wLDAgKzEs
MzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSAsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0
SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gTGliV2ViUlRDU29j
a2V0SWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciA9
IE9iamVjdElkZW50aWZpZXI8TGliV2ViUlRDU29ja2V0SWRlbnRpZmllclR5cGU+OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmNwcAppbmRleCBjNTk5NWJj
NTMyNTVmZTJkMzc2ZmM0NWZiZmI5ZWU2MzFlZTczZTcxLi4wYjc0N2Q4NTIzNWFkN2QxNTA2Nzk3
ZTRhMTdkYWM1ODQ2ZWJkNjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5jcHAKQEAgLTM1LDkg
KzM1LDExIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbmNsdWRlIDx3
dGYvRnVuY3Rpb24uaD4KIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi1MaWJXZWJSVENTb2NrZXRDbGllbnQ6OkxpYldlYlJUQ1NvY2tldENsaWVudCh1
aW50NjRfdCBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBzdGQ6
OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiBzb2NrZXQsIFR5cGUgdHlwZSkK
K0xpYldlYlJUQ1NvY2tldENsaWVudDo6TGliV2ViUlRDU29ja2V0Q2xpZW50KExpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRl
ciwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+JiYgc29ja2V0LCBUeXBl
IHR5cGUpCiAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fdHlwZSh0eXBl
KQogICAgICwgbV9ydGNQcm92aWRlcihydGNQcm92aWRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmgK
aW5kZXggMjVhYTU0YWZhN2Q3NmZhOTQ1NmFmYmI4Y2M0MWQxMTZhYmFmYzg2ZC4uNWFmMzkzMDZj
MmQ1MTdhMmY1OGM4NzgwMzEyNGFjMmY5NzMxYWI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmgK
QEAgLTQxLDEwICs0MSwxMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIExpYldlYlJUQ1Nv
Y2tldENsaWVudCBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrUlRDUHJvdmlkZXI6OlNvY2tldCwgcHVi
bGljIHNpZ3Nsb3Q6Omhhc19zbG90czw+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKLSAgICBMaWJXZWJSVENTb2NrZXRDbGllbnQodWludDY0X3QgaWRlbnRpZmllciwg
TmV0d29ya1JUQ1Byb3ZpZGVyJiwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2Nr
ZXQ+JiYsIFR5cGUpOworICAgIExpYldlYlJUQ1NvY2tldENsaWVudChXZWJDb3JlOjpMaWJXZWJS
VENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBzdGQ6OnVuaXF1ZV9wdHI8
cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiwgVHlwZSk7CiAKIHByaXZhdGU6Ci0gICAgdWludDY0
X3QgaWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAg
IFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogICAgIFR5cGUgdHlwZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgIHZvaWQgY2xvc2UoKSBmaW5hbDsKIApAQCAtNjAsNyAr
NjAsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzaWduYWxBZGRyZXNzUmVhZHkoKTsKIAotICAg
IHVpbnQ2NF90IG1faWRlbnRpZmllcjsKKyAgICBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVu
dGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBUeXBlIG1fdHlwZTsKICAgICBOZXR3b3JrUlRDUHJv
dmlkZXImIG1fcnRjUHJvdmlkZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNr
ZXRTb2NrZXQ+IG1fc29ja2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKaW5kZXggZjdlZTRkYmQ4NmZm
Yzc1ZDU3ZWI3YjM4NmU2MDM4YzU3YTM1MWRiNy4uMWY5YTc0YmJlYzVjY2ZiZDdiNGM0MTcwZGQ3
NDNhZDU1MTVmZjMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCkBAIC00Niw2ICs0Niw4IEBACiAj
aW5jbHVkZSAiTmV0d29ya1JUQ1Jlc29sdmVyQ29jb2EuaCIKICNlbmRpZgogCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyBpbmxpbmUgc3Rk
Ojp1bmlxdWVfcHRyPHJ0Yzo6VGhyZWFkPiBjcmVhdGVUaHJlYWQoKQpAQCAtOTYsNyArOTgsNyBA
QCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y2xvc2UoKQogICAgIH0pOwogfQogCi12b2lkIE5l
dHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIHN0ZDo6
dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmIHNvY2tldCwgU29ja2V0OjpUeXBl
IHR5cGUpCit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0KExpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNr
ZXRTb2NrZXQ+JiYgc29ja2V0LCBTb2NrZXQ6OlR5cGUgdHlwZSkKIHsKICAgICBpZiAoIXNvY2tl
dCkgewogICAgICAgICBzZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZpZXIsIHNpemUgPSBtX3Nv
Y2tldHMuc2l6ZSgpXShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pIHsKQEAgLTEwOCw3ICsx
MTAsNyBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlU29ja2V0KHVpbnQ2NF90IGlk
ZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OgogICAgIGFkZFNvY2tldChpZGVudGlmaWVy
LCBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldENsaWVudD4oaWRlbnRpZmllciwgKnRoaXMsIFdU
Rk1vdmUoc29ja2V0KSwgdHlwZSkpOwogfQogCi12b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3Jl
YXRlVURQU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tl
dEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpCit2
b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KExpYldlYlJUQ1NvY2tldElk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgYWRk
cmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkKIHsKICAgICBjYWxsT25S
VENOZXR3b3JrVGhyZWFkKFt0aGlzLCBpZGVudGlmaWVyLCBhZGRyZXNzID0gUlRDTmV0d29yazo6
aXNvbGF0ZWRDb3B5KGFkZHJlc3MudmFsdWUpLCBtaW5Qb3J0LCBtYXhQb3J0XSgpIHsKICAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tldChtX3BhY2tl
dFNvY2tldEZhY3RvcnktPkNyZWF0ZVVkcFNvY2tldChhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0
KSk7CkBAIC0xMTYsNyArMTE4LDcgQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVVE
UFNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjoKICAgICB9KTsK
IH0KIAotdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNlcnZlclRDUFNvY2tldCh1aW50
NjRfdCBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNz
LCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKK3ZvaWQg
TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQoTGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBh
ZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykK
IHsKICAgICBpZiAoIW1faXNMaXN0ZW5pbmdTb2NrZXRBdXRob3JpemVkKSB7CiAgICAgICAgIGlm
IChtX2Nvbm5lY3Rpb24pCkBAIC0xMzcsNyArMTM5LDcgQEAgcnRjOjpQcm94eUluZm8gTmV0d29y
a1JUQ1Byb3ZpZGVyOjpwcm94eUluZm9Gcm9tU2Vzc2lvbihjb25zdCBSVENOZXR3b3JrOjpTb2Nr
ZXQKIH0KICNlbmRpZgogCi12b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQ
U29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJl
c3MmIGxvY2FsQWRkcmVzcywgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgcmVtb3Rl
QWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQgb3B0aW9ucykKK3ZvaWQgTmV0d29ya1JU
Q1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmll
ciBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJl
c3MsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFN0cmlu
ZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMpCiB7CiAgICAgYXV0byogc2Vzc2lvbiA9IG1fY29u
bmVjdGlvbi0+bmV0d29ya1Nlc3Npb24oKTsKICAgICBpZiAoIXNlc3Npb24pIHsKQEAgLTE1MCw3
ICsxNTIsNyBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29ja2V0
KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFJUQ05ldAogICAgIH0pOwogfQogCi12b2lkIE5l
dHdvcmtSVENQcm92aWRlcjo6d3JhcE5ld1RDUENvbm5lY3Rpb24odWludDY0X3QgaWRlbnRpZmll
ciwgdWludDY0X3QgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIpCit2b2lkIE5ldHdvcmtS
VENQcm92aWRlcjo6d3JhcE5ld1RDUENvbm5lY3Rpb24oTGliV2ViUlRDU29ja2V0SWRlbnRpZmll
ciBpZGVudGlmaWVyLCBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG5ld0Nvbm5lY3Rpb25Tb2Nr
ZXRJZGVudGlmaWVyKQogewogICAgIGNhbGxPblJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50
aWZpZXIsIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyXSgpIHsKICAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IHNvY2tldCA9IG1fcGVuZGluZ0luY29t
aW5nU29ja2V0cy50YWtlKG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKTsKQEAgLTE1OCwy
NyArMTYwLDI4IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjp3cmFwTmV3VENQQ29ubmVjdGlv
bih1aW50NjRfdCBpZGVudGlmaWVyLCB1aW50NjRfdCBuZXdDCiAgICAgfSk7CiB9CiAKLXZvaWQg
TmV0d29ya1JUQ1Byb3ZpZGVyOjphZGRTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgc3RkOjp1
bmlxdWVfcHRyPFNvY2tldD4mJiBzb2NrZXQpCit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6YWRk
U29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgc3RkOjp1bmlxdWVf
cHRyPFNvY2tldD4mJiBzb2NrZXQpCiB7CiAgICAgbV9zb2NrZXRzLmFkZChpZGVudGlmaWVyLCBX
VEZNb3ZlKHNvY2tldCkpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVy
OjpTb2NrZXQ+IE5ldHdvcmtSVENQcm92aWRlcjo6dGFrZVNvY2tldCh1aW50NjRfdCBpZGVudGlm
aWVyKQorc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBOZXR3b3Jr
UlRDUHJvdmlkZXI6OnRha2VTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlm
aWVyKQogewogICAgIHJldHVybiBtX3NvY2tldHMudGFrZShpZGVudGlmaWVyKTsKIH0KIAogdm9p
ZCBOZXR3b3JrUlRDUHJvdmlkZXI6Om5ld0Nvbm5lY3Rpb24oU29ja2V0JiBzZXJ2ZXJTb2NrZXQs
IHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmIG5ld1NvY2tldCkKIHsK
LSAgICBzZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzZXJ2ZXJTb2NrZXQuaWRlbnRp
ZmllcigpLCBpbmNvbWluZ1NvY2tldElkZW50aWZpZXIgPSArK21faW5jb21pbmdTb2NrZXRJZGVu
dGlmaWVyLCByZW1vdGVBZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KG5ld1NvY2tl
dC0+R2V0UmVtb3RlQWRkcmVzcygpKV0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKSB7Cisg
ICAgYXV0byBpbmNvbWluZ1NvY2tldElkZW50aWZpZXIgPSBMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpOworICAgIHNlbmRGcm9tTWFpblRocmVhZChbaWRlbnRpZmllciA9IHNl
cnZlclNvY2tldC5pZGVudGlmaWVyKCksIGluY29taW5nU29ja2V0SWRlbnRpZmllciwgcmVtb3Rl
QWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShuZXdTb2NrZXQtPkdldFJlbW90ZUFk
ZHJlc3MoKSldKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgewogICAgICAgICBjb25uZWN0
aW9uLnNlbmQoTWVzc2FnZXM6OldlYlJUQ1NvY2tldDo6U2lnbmFsTmV3Q29ubmVjdGlvbihpbmNv
bWluZ1NvY2tldElkZW50aWZpZXIsIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MocmVtb3RlQWRk
cmVzcykpLCBpZGVudGlmaWVyKTsKICAgICB9KTsKLSAgICBtX3BlbmRpbmdJbmNvbWluZ1NvY2tl
dHMuYWRkKG1faW5jb21pbmdTb2NrZXRJZGVudGlmaWVyLCBXVEZNb3ZlKG5ld1NvY2tldCkpOwor
ICAgIG1fcGVuZGluZ0luY29taW5nU29ja2V0cy5hZGQoaW5jb21pbmdTb2NrZXRJZGVudGlmaWVy
LCBXVEZNb3ZlKG5ld1NvY2tldCkpOwogfQogCiB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6ZGlk
UmVjZWl2ZU5ldHdvcmtSVENTb2NrZXRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIE5ldHdvcmtSVENTb2NrZXQoZGVjb2Rl
ci5kZXN0aW5hdGlvbklEKCksICp0aGlzKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyKTsKKyAgICBOZXR3b3JrUlRDU29ja2V0KG1ha2VPYmplY3RJZGVudGlmaWVyPExpYldl
YlJUQ1NvY2tldElkZW50aWZpZXJUeXBlPihkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSksICp0aGlz
KS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKIH0KIAogI2lmIFBMQVRG
T1JNKENPQ09BKQpAQCAtMjQ1LDcgKzI0OCw3IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpj
bG9zZUxpc3RlbmluZ1NvY2tldHMoRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kCiAK
ICAgICBtX2lzTGlzdGVuaW5nU29ja2V0QXV0aG9yaXplZCA9IGZhbHNlOwogICAgIGNhbGxPblJU
Q05ldHdvcmtUaHJlYWQoW3RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIFZlY3Rvcjx1aW50NjRfdD4gbGlzdGVu
aW5nU29ja2V0SWRlbnRpZmllcnM7CisgICAgICAgIFZlY3RvcjxMaWJXZWJSVENTb2NrZXRJZGVu
dGlmaWVyPiBsaXN0ZW5pbmdTb2NrZXRJZGVudGlmaWVyczsKICAgICAgICAgZm9yIChhdXRvJiBr
ZXlWYWx1ZSA6IG1fc29ja2V0cykgewogICAgICAgICAgICAgaWYgKGtleVZhbHVlLnZhbHVlLT50
eXBlKCkgPT0gU29ja2V0OjpUeXBlOjpTZXJ2ZXJUQ1ApCiAgICAgICAgICAgICAgICAgbGlzdGVu
aW5nU29ja2V0SWRlbnRpZmllcnMuYXBwZW5kKGtleVZhbHVlLmtleSk7CkBAIC0yODUsNyArMjg4
LDcgQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNhbGxPblJUQ05ldHdvcmtUaHJlYWQoRnVu
Y3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQogICAgIG1fcnRjTmV0d29ya1RocmVhZC0+UG9zdChS
VENfRlJPTV9IRVJFLCB0aGlzLCAxLCBuZXcgTmV0d29ya01lc3NhZ2VEYXRhKCp0aGlzLCBXVEZN
b3ZlKGNhbGxiYWNrKSkpOwogfQogCi12b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y2FsbFNvY2tl
dCh1aW50NjRfdCBpZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKFNvY2tldCYpPiYmIGNhbGxiYWNr
KQordm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNhbGxTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRl
bnRpZmllciBpZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKFNvY2tldCYpPiYmIGNhbGxiYWNrKQog
ewogICAgIGNhbGxPblJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50aWZpZXIsIGNhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayldKCkgewogICAgICAgICBpZiAoYXV0byogc29ja2V0ID0gbV9z
b2NrZXRzLmdldChpZGVudGlmaWVyKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKaW5kZXggNjMyNjVkYTQwNjA4
ZjBjYzkzNDhmZDFhNDdlY2QyYjM1Zjk2M2MyOS4uMjUxMDUwZDM2MTBhOTU1NWQ3Y2Q0ODczMTgz
NThmOWU3ODAyYTY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlICJOZXR3b3JrUlRDTW9uaXRvci5oIgogI2luY2x1ZGUgIlJUQ05ldHdvcmsuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jvcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2Vi
UlRDU29ja2V0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9wMnAvYmFzZS9iYXNpY3Bh
Y2tldHNvY2tldGZhY3RvcnkuaD4KICNpbmNsdWRlIDx3ZWJydGMvcnRjX2Jhc2UvdGhpcmRfcGFy
dHkvc2lnc2xvdC9zaWdzbG90Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTcyLDE5
ICs3MywxOSBAQCBwdWJsaWM6CiAKICAgICAgICAgZW51bSBjbGFzcyBUeXBlIDogdWludDhfdCB7
IFVEUCwgU2VydmVyVENQLCBDbGllbnRUQ1AsIFNlcnZlckNvbm5lY3Rpb25UQ1AgfTsKICAgICAg
ICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCAgPSAwOwotICAgICAgICB2aXJ0dWFsIHVpbnQ2
NF90IGlkZW50aWZpZXIoKSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwgV2ViQ29yZTo6TGli
V2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgPSAwOwogCiAgICAgICAg
IHZpcnR1YWwgdm9pZCBjbG9zZSgpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldE9wdGlv
bihpbnQgb3B0aW9uLCBpbnQgdmFsdWUpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNlbmRU
byhjb25zdCBXZWJDb3JlOjpTaGFyZWRCdWZmZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3Mm
LCBjb25zdCBydGM6OlBhY2tldE9wdGlvbnMmKSA9IDA7CiAgICAgfTsKIAotICAgIHN0ZDo6dW5p
cXVlX3B0cjxTb2NrZXQ+IHRha2VTb2NrZXQodWludDY0X3QpOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxTb2NrZXQ+IHRha2VTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllcik7
CiAgICAgdm9pZCByZXNvbHZlckRvbmUodWludDY0X3QpOwogCiAgICAgdm9pZCBjbG9zZSgpOwog
Ci0gICAgdm9pZCBjYWxsU29ja2V0KHVpbnQ2NF90LCBGdW5jdGlvbjx2b2lkKFNvY2tldCYpPiYm
KTsKKyAgICB2b2lkIGNhbGxTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmll
ciwgRnVuY3Rpb248dm9pZChTb2NrZXQmKT4mJik7CiAgICAgdm9pZCBjYWxsT25SVENOZXR3b3Jr
VGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZW5kRnJvbU1haW5UaHJlYWQo
RnVuY3Rpb248dm9pZChJUEM6OkNvbm5lY3Rpb24mKT4mJik7CiAKQEAgLTk2LDI0ICs5NywyNCBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE5ldHdvcmtSVENQcm92aWRlcihOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwogCi0gICAgdm9pZCBjcmVhdGVVRFBTb2NrZXQo
dWludDY0X3QsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCwgdWlu
dDE2X3QpOwotICAgIHZvaWQgY3JlYXRlQ2xpZW50VENQU29ja2V0KHVpbnQ2NF90LCBjb25zdCBS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVz
cyYsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50KTsKLSAgICB2b2lkIGNyZWF0ZVNlcnZlclRDUFNv
Y2tldCh1aW50NjRfdCwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90
IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCk7Ci0gICAgdm9pZCB3cmFwTmV3VENQQ29u
bmVjdGlvbih1aW50NjRfdCBpZGVudGlmaWVyLCB1aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0
SWRlbnRpZmllcik7CisgICAgdm9pZCBjcmVhdGVVRFBTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRD
U29ja2V0SWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIHVpbnQx
Nl90LCB1aW50MTZfdCk7CisgICAgdm9pZCBjcmVhdGVDbGllbnRUQ1BTb2NrZXQoV2ViQ29yZTo6
TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVz
cyYsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBTdHJpbmcmJiB1c2VyQWdlbnQs
IGludCk7CisgICAgdm9pZCBjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRD
U29ja2V0SWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIHVpbnQx
Nl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCk7CisgICAgdm9pZCB3cmFwTmV3VENQ
Q29ubmVjdGlvbihXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tldElk
ZW50aWZpZXIpOwogCiAgICAgdm9pZCBjcmVhdGVSZXNvbHZlcih1aW50NjRfdCwgY29uc3QgU3Ry
aW5nJik7CiAgICAgdm9pZCBzdG9wUmVzb2x2ZXIodWludDY0X3QpOwogCi0gICAgdm9pZCBhZGRT
b2NrZXQodWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxTb2NrZXQ+JiYpOworICAgIHZvaWQgYWRk
U29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0
cjxTb2NrZXQ+JiYpOwogCi0gICAgdm9pZCBjcmVhdGVTb2NrZXQodWludDY0X3QgaWRlbnRpZmll
ciwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+JiYsIFNvY2tldDo6VHlw
ZSk7CisgICAgdm9pZCBjcmVhdGVTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRp
Zmllciwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+JiYsIFNvY2tldDo6
VHlwZSk7CiAKICAgICB2b2lkIE9uTWVzc2FnZShydGM6Ok1lc3NhZ2UqKTsKIAogICAgIHN0YXRp
YyBydGM6OlByb3h5SW5mbyBwcm94eUluZm9Gcm9tU2Vzc2lvbihjb25zdCBSVENOZXR3b3JrOjpT
b2NrZXRBZGRyZXNzJiwgTmV0d29ya1Nlc3Npb24mKTsKIAogICAgIEhhc2hNYXA8dWludDY0X3Qs
IHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrUlRDUmVzb2x2ZXI+PiBtX3Jlc29sdmVyczsKLSAgICBI
YXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8U29ja2V0Pj4gbV9zb2NrZXRzOworICAg
IEhhc2hNYXA8V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgc3RkOjp1bmlxdWVf
cHRyPFNvY2tldD4+IG1fc29ja2V0czsKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyogbV9jb25uZWN0aW9uOwogICAgIGJvb2wgbV9pc1N0YXJ0ZWQgeyB0cnVlIH07CiAKQEAgLTEy
Miw4ICsxMjMsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OlRocmVhZD4g
bV9ydGNOZXR3b3JrVGhyZWFkOwogICAgIFVuaXF1ZVJlZjxydGM6OkJhc2ljUGFja2V0U29ja2V0
RmFjdG9yeT4gbV9wYWNrZXRTb2NrZXRGYWN0b3J5OwogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwg
c3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+PiBtX3BlbmRpbmdJbmNvbWlu
Z1NvY2tldHM7Ci0gICAgdWludDY0X3QgbV9pbmNvbWluZ1NvY2tldElkZW50aWZpZXIgeyAwIH07
CisgICAgSGFzaE1hcDxXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBzdGQ6OnVu
aXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4+IG1fcGVuZGluZ0luY29taW5nU29ja2V0
czsKICAgICBib29sIG1faXNMaXN0ZW5pbmdTb2NrZXRBdXRob3JpemVkIHsgdHJ1ZSB9OwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29y
a1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCmluZGV4IDEyMjM2YjNjNzFkN2Zm
MDZlNjE4MzIyZjY0NzJmZmIxMzg4YmQzODcuLjkyMWU1NzA0YzJkOTk5ZjA3ZTEwOGM5MmY3MTli
NjE3MDhhNjIzOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KQEAgLTIz
LDEyICsyMywxMyBAQAogI2lmIFVTRShMSUJXRUJSVEMpCiAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtS
VENQcm92aWRlciB7Ci0gICAgQ3JlYXRlVURQU29ja2V0KGludCBpZGVudGlmaWVyLCBXZWJLaXQ6
OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0
LCB1aW50MTZfdCBtYXhQb3J0KQotICAgIENyZWF0ZVNlcnZlclRDUFNvY2tldChpbnQgaWRlbnRp
ZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgdWlu
dDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCi0gICAgQ3JlYXRl
Q2xpZW50VENQU29ja2V0KGludCBpZGVudGlmaWVyLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tl
dEFkZHJlc3MgbG9jYWxBZGRyZXNzLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3Mg
cmVtb3RlQWRkcmVzcywgU3RyaW5nIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMpCisgICAgQ3JlYXRl
VURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwg
V2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3Qg
bWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkKKyAgICBDcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQoV2Vi
Q29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50
MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKKyAgICBDcmVhdGVDbGllbnRUQ1BTb2NrZXQoV2Vi
Q29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MgbG9jYWxBZGRyZXNzLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNv
Y2tldEFkZHJlc3MgcmVtb3RlQWRkcmVzcywgU3RyaW5nIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMp
CisgICAgV3JhcE5ld1RDUENvbm5lY3Rpb24oV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG5ld0Nv
bm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKQorCiAgICAgQ3JlYXRlUmVzb2x2ZXIodWludDY0X3Qg
aWRlbnRpZmllciwgU3RyaW5nIGFkZHJlc3MpCiAgICAgU3RvcFJlc29sdmVyKHVpbnQ2NF90IGlk
ZW50aWZpZXIpCi0gICAgV3JhcE5ld1RDUENvbm5lY3Rpb24odWludDY0X3QgaWRlbnRpZmllciwg
dWludDY0X3QgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIpCiB9CiAKICNlbmRpZiAvLyBV
U0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcAppbmRleCBhOGM3MGEzYjBkNjk2ZmI4MTg0Yjcx
MTJkNzNkZjM0ZDhmZTdmMDZlLi44MjBkMDdiYzBlNzI3NGI0NzhiNGUyYTg2ZmFhOTcyN2RkMmRm
YzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3
b3JrUlRDU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9OZXR3b3JrUlRDU29ja2V0LmNwcApAQCAtMzYsNyArMzYsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotTmV0d29ya1JUQ1NvY2tldDo6TmV0d29ya1JUQ1NvY2tldCh1aW50NjRfdCBpZGVu
dGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyKQorTmV0d29ya1JUQ1NvY2tl
dDo6TmV0d29ya1JUQ1NvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYgcnRjUHJvdmlkZXIpCiAgICAgOiBtX2lkZW50
aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fcnRjUHJvdmlkZXIocnRjUHJvdmlkZXIpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRD
U29ja2V0LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRD
U29ja2V0LmgKaW5kZXggNmU0YmZlMmIxNjQxOWNiYmM1MWI4MGQ5NWY3NTllZmUyZWRkOTJhZi4u
ODRiYjRmMTMxMjdiMzYwNmJjZTAxOTcxZWNjYmFhOWM0YmNkZDRkMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaApA
QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlJUQ05ldHdvcmsuaCIKIAogI2luY2x1ZGUgPFdl
YkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENTb2Nr
ZXRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL2FzeW5jcGFja2V0c29j
a2V0Lmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL3RoaXJkX3BhcnR5L3NpZ3Nsb3Qvc2ln
c2xvdC5oPgogCkBAIC01OCwxNCArNTksMTQgQEAgc3RydWN0IFJUQ1BhY2tldE9wdGlvbnM7CiAK
IGNsYXNzIE5ldHdvcmtSVENTb2NrZXQgewogcHVibGljOgotICAgIE5ldHdvcmtSVENTb2NrZXQo
dWludDY0X3QsIE5ldHdvcmtSVENQcm92aWRlciYpOworICAgIE5ldHdvcmtSVENTb2NrZXQoV2Vi
Q29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJik7CiAg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KTsKIHByaXZhdGU6CiAgICAgdm9pZCBzZW5kVG8oY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwg
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYmLCBSVENQYWNrZXRPcHRpb25zJiYpOwogICAgIHZv
aWQgY2xvc2UoKTsKICAgICB2b2lkIHNldE9wdGlvbihpbnQgb3B0aW9uLCBpbnQgdmFsdWUpOwog
Ci0gICAgdWludDY0X3QgbV9pZGVudGlmaWVyOworICAgIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIE5ldHdvcmtSVENQcm92aWRlciYgbV9ydGNQ
cm92aWRlcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cmlu
ZGV4IGVjNDBkNDMxM2VkMzQ1MGMxZTEwZmZkZDcxYjIwNmM4NDI2ZGZjOWIuLmE3OGRhMzE0NDMy
NThjMDg2MTkyZjIwNTIwYjM0MDYwOTRlNDk4ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQpAQCAtMjA2LDYgKzIwNiw3IEBAIGRlZiBmb3J3YXJkX2RlY2xhcmF0
aW9uc19hbmRfaGVhZGVycyhyZWNlaXZlcik6CiAgICAgICAgICdXZWJDb3JlOjpEb2N1bWVudElk
ZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyJywKICAgICAgICAg
J1dlYkNvcmU6OkZyYW1lSWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpMaWJXZWJSVENT
b2NrZXRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlBhZ2VJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYkNvcmU6OlBvaW50ZXJJRCcsCiAgICAgICAgICdXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCAyZjIxZjVlNTE5MTBlYjk4
NTI4YzhkZDQ2NDRmZTUzMjlmYTQxZDAxLi5mMGI0ZmRmYTZhMzExNzA0OTk2ZDc4NWExYzk2Mjc3
MzYwMTE5ODAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTEwOCw3ICsxMDgsNyBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUAogCiAjaWYgVVNFKExJQldFQlJUQykKICAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlJUQ1NvY2tldDo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXQoZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpLmRpZFJl
Y2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5saWJXZWJSVENOZXR3b3JrKCkuc29ja2V0KG1ha2VPYmplY3RJZGVudGlmaWVy
PExpYldlYlJUQ1NvY2tldElkZW50aWZpZXJUeXBlPihkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkp
LmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdl
czo6V2ViUlRDTW9uaXRvcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdv
cmsuaAppbmRleCA3YzY0ODRmZTc4ZDc4ZDc0Y2IzMjgzMzFmOTc2YWZhYjQyM2I3MmY1Li5mN2Uy
MWY3NzBiMDMzYjE3Yzg1OTY5MDZhNzAxMjJlYWI2NjI2OWMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3Jr
LmgKQEAgLTMzLDYgKzMzLDcgQEAKICNlbmRpZgogCiAjaW5jbHVkZSAiV2ViTUROU1JlZ2lzdGVy
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCkBAIC00Nyw3ICs0OCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
ZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKCkgeyBzb2NrZXRGYWN0b3J5KCkuZGlzYWJs
ZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKCk7IH0KIAotICAgIFdlYlJUQ1NvY2tldCBzb2NrZXQo
dWludDY0X3QgaWRlbnRpZmllcikgeyByZXR1cm4gV2ViUlRDU29ja2V0KHNvY2tldEZhY3Rvcnko
KSwgaWRlbnRpZmllcik7IH0KKyAgICBXZWJSVENTb2NrZXQgc29ja2V0KFdlYkNvcmU6OkxpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1cm4gV2ViUlRDU29ja2V0KHNv
Y2tldEZhY3RvcnkoKSwgaWRlbnRpZmllcik7IH0KICAgICBXZWJSVENSZXNvbHZlciByZXNvbHZl
cih1aW50NjRfdCBpZGVudGlmaWVyKSB7IHJldHVybiBXZWJSVENSZXNvbHZlcihzb2NrZXRGYWN0
b3J5KCksIGlkZW50aWZpZXIpOyB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcAppbmRl
eCBlMmM1ZGY1NTdjNDAxMTVkZGY0OGZkNDA3OWFmYjk0OWE2YzI1NTY5Li4xMjQ4YjEzZmY5YzA5
ZDE4YmNjMmExMjNmZmQ3NjJhMDA5ODQ0MGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmNwcApAQCAt
MzgsMTEgKzM4LDEzIEBACiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi1MaWJXZWJSVENTb2NrZXQ6OkxpYldlYlJUQ1NvY2tldChMaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5JiBmYWN0b3J5LCB1aW50NjRfdCBpZGVudGlmaWVyLCBUeXBlIHR5cGUsIGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJl
c3MmIHJlbW90ZUFkZHJlc3MpCitMaWJXZWJSVENTb2NrZXQ6OkxpYldlYlJUQ1NvY2tldChMaWJX
ZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5LCBUeXBlIHR5cGUsIGNvbnN0IHJ0Yzo6U29ja2V0
QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFk
ZHJlc3MpCiAgICAgOiBtX2ZhY3RvcnkoZmFjdG9yeSkKLSAgICAsIG1faWRlbnRpZmllcihpZGVu
dGlmaWVyKQorICAgICwgbV9pZGVudGlmaWVyKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50
aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fbG9jYWxBZGRy
ZXNzKGxvY2FsQWRkcmVzcykKICAgICAsIG1fcmVtb3RlQWRkcmVzcyhyZW1vdGVBZGRyZXNzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ1NvY2tldC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ1NvY2tldC5oCmluZGV4IGFmMWY0MjUzMDE2ZGUzZTE5MzdlMTM2ZTNhOWQyOGUyMGMx
MjQ0NjcuLjY0NGVlNWEwYmIxZjNmOThhZjY5ZWNkNDBjZWVlOWI5YzIwMmI5MDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2Nr
ZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2Vi
UlRDU29ja2V0LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBVU0UoTElCV0VCUlRDKQogCiAjaW5j
bHVkZSA8V2ViQ29yZS9MaWJXZWJSVENQcm92aWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGli
V2ViUlRDU29ja2V0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS9hc3lu
Y3BhY2tldHNvY2tldC5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CkBAIC01MSwxMCArNTIsMTAgQEAgY2xhc3MgTGliV2ViUlRDU29ja2V0IGZpbmFs
IDogcHVibGljIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQgewogcHVibGljOgogICAgIGVudW0gY2xh
c3MgVHlwZSB7IFVEUCwgU2VydmVyVENQLCBDbGllbnRUQ1AsIFNlcnZlckNvbm5lY3Rpb25UQ1Ag
fTsKIAotICAgIExpYldlYlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiwgdWludDY0
X3QgaWRlbnRpZmllciwgVHlwZSwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJl
c3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcyk7CisgICAgTGliV2Vi
UlRDU29ja2V0KExpYldlYlJUQ1NvY2tldEZhY3RvcnkmLCBUeXBlLCBjb25zdCBydGM6OlNvY2tl
dEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVB
ZGRyZXNzKTsKICAgICB+TGliV2ViUlRDU29ja2V0KCk7CiAKLSAgICB1aW50NjRfdCBpZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgV2ViQ29yZTo6TGliV2Vi
UlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlm
aWVyOyB9CiAgICAgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MoKSBjb25z
dCB7IHJldHVybiBtX2xvY2FsQWRkcmVzczsgfQogICAgIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVz
cyYgcmVtb3RlQWRkcmVzcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3RlQWRkcmVzczsgfQogCkBA
IC04Nyw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgc2VuZE9uTWFpblRocmVh
ZChGdW5jdGlvbjx2b2lkKElQQzo6Q29ubmVjdGlvbiYpPiYmKTsKIAogICAgIExpYldlYlJUQ1Nv
Y2tldEZhY3RvcnkmIG1fZmFjdG9yeTsKLSAgICB1aW50NjRfdCBtX2lkZW50aWZpZXIgeyAwIH07
CisgICAgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAg
ICAgVHlwZSBtX3R5cGU7CiAgICAgcnRjOjpTb2NrZXRBZGRyZXNzIG1fbG9jYWxBZGRyZXNzOwog
ICAgIHJ0Yzo6U29ja2V0QWRkcmVzcyBtX3JlbW90ZUFkZHJlc3M7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9y
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
U29ja2V0RmFjdG9yeS5jcHAKaW5kZXggNmQzYzBiMWIwYTE5NWRhNTUxNTc1ZjM4ZDZkYTg2NDFh
NmMxMzM0OS4uMzAwMmU4Mzg4NmMzOTAyZmYzZDAzNTczYzMzNjFjY2M4MTVhMWNlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Nv
Y2tldEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcApAQCAtMzcsNyArMzcsNiBAQAogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotdWludDY0X3QgTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6c191bmlx
dWVTb2NrZXRJZGVudGlmaWVyID0gMDsKIHVpbnQ2NF90IExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6
OnNfdW5pcXVlUmVzb2x2ZXJJZGVudGlmaWVyID0gMDsKIAogc3RhdGljIGlubGluZSBydGM6OlNv
Y2tldEFkZHJlc3MgcHJlcGFyZVNvY2tldEFkZHJlc3MoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNz
JiBhZGRyZXNzLCBib29sIGRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucykKQEAgLTUwLDcg
KzQ5LDcgQEAgc3RhdGljIGlubGluZSBydGM6OlNvY2tldEFkZHJlc3MgcHJlcGFyZVNvY2tldEFk
ZHJlc3MoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJgogCiBydGM6OkFzeW5jUGFja2V0U29ja2V0
KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3QgcnRj
OjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQ
b3J0LCBpbnQgb3B0aW9ucykKIHsKLSAgICBhdXRvIHNvY2tldCA9IG1ha2VVbmlxdWU8TGliV2Vi
UlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1ZVNvY2tldElkZW50aWZpZXIsIExpYldlYlJUQ1Nv
Y2tldDo6VHlwZTo6U2VydmVyVENQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3MoKSk7Cisg
ICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIExpYldl
YlJUQ1NvY2tldDo6VHlwZTo6U2VydmVyVENQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3Mo
KSk7CiAgICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgc29ja2V0LmdldCgp
KTsKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZp
ZXIoKSwgYWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGFkZHJlc3MsIG1fZGlzYWJsZU5v
bkxvY2FsaG9zdENvbm5lY3Rpb25zKSwgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9uc10oKSB7CkBA
IC02Niw3ICs2NSw3IEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZh
Y3Rvcnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6CiAKIHJ0Yzo6QXN5bmNQYWNr
ZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVkcFNvY2tldChjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1h
eFBvcnQpCiB7Ci0gICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4o
KnRoaXMsICsrc191bmlxdWVTb2NrZXRJZGVudGlmaWVyLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6
OlVEUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOworICAgIGF1dG8gc29ja2V0ID0g
bWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6
OlVEUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOwogICAgIG1fc29ja2V0cy5zZXQo
c29ja2V0LT5pZGVudGlmaWVyKCksIHNvY2tldC5nZXQoKSk7CiAKICAgICBjYWxsT25NYWluVGhy
ZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCksIGFkZHJlc3MgPSBwcmVwYXJl
U29ja2V0QWRkcmVzcyhhZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyks
IG1pblBvcnQsIG1heFBvcnRdKCkgewpAQCAtODAsNyArNzksNyBAQCBydGM6OkFzeW5jUGFja2V0
U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVVZHBTb2NrZXQoY29uc3QgcnRj
OjpTb2NrZQogCiBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5
OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFk
ZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5nJiYg
dXNlckFnZW50LCBpbnQgb3B0aW9ucykKIHsKLSAgICBhdXRvIHNvY2tldCA9IG1ha2VVbmlxdWU8
TGliV2ViUlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1ZVNvY2tldElkZW50aWZpZXIsIExpYldl
YlJUQ1NvY2tldDo6VHlwZTo6Q2xpZW50VENQLCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3Mp
OworICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBM
aWJXZWJSVENTb2NrZXQ6OlR5cGU6OkNsaWVudFRDUCwgbG9jYWxBZGRyZXNzLCByZW1vdGVBZGRy
ZXNzKTsKICAgICBzb2NrZXQtPnNldFN0YXRlKExpYldlYlJUQ1NvY2tldDo6U1RBVEVfQ09OTkVD
VElORyk7CiAgICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgc29ja2V0Lmdl
dCgpKTsKIApAQCAtOTQsOSArOTMsOSBAQCBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJS
VENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOgogICAgIHJl
dHVybiBzb2NrZXQucmVsZWFzZSgpOwogfQogCi1ydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJX
ZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KExpYldlYlJUQ1Nv
Y2tldCYgc2VydmVyU29ja2V0LCB1aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmll
ciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQorcnRjOjpBc3luY1Bh
Y2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlTmV3Q29ubmVjdGlvblNv
Y2tldChMaWJXZWJSVENTb2NrZXQmIHNlcnZlclNvY2tldCwgTGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllciwgY29uc3QgcnRjOjpTb2NrZXRBZGRy
ZXNzJiByZW1vdGVBZGRyZXNzKQogewotICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJX
ZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRlbnRpZmllciwgTGliV2ViUlRD
U29ja2V0OjpUeXBlOjpTZXJ2ZXJDb25uZWN0aW9uVENQLCBzZXJ2ZXJTb2NrZXQubG9jYWxBZGRy
ZXNzKCksIHJlbW90ZUFkZHJlc3MpOworICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJX
ZWJSVENTb2NrZXQ+KCp0aGlzLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OlNlcnZlckNvbm5lY3Rp
b25UQ1AsIHNlcnZlclNvY2tldC5sb2NhbEFkZHJlc3MoKSwgcmVtb3RlQWRkcmVzcyk7CiAgICAg
c29ja2V0LT5zZXRTdGF0ZShMaWJXZWJSVENTb2NrZXQ6OlNUQVRFX0NPTk5FQ1RFRCk7CiAgICAg
bV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgc29ja2V0LmdldCgpKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q1NvY2tldEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKaW5kZXggNDk0ZjlkNDQ2Y2M2MTlhNmI2MzZhMDFi
ZjkyZTM0MDIwNTg1ZjcwNS4uYTk0NWIxMGRhYWRhYWY2YjQ1ZDRkODU2Yzg2YjY3YjE0MmI3NzNk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ1NvY2tldEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiTGliV2ViUlRDUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJMaWJXZWJSVENTb2NrZXQu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jvcy5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFz
ZS9uZXRoZWxwZXJzLmg+CiAjaW5jbHVkZSA8d2VicnRjL3AycC9iYXNlL3BhY2tldHNvY2tldGZh
Y3RvcnkuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNDEsMjYgKzQyLDIyIEBAIHB1
YmxpYzoKICAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5KCkgeyB9CiAKICAgICB2b2lkIGRldGFj
aChMaWJXZWJSVENTb2NrZXQmKTsKLQotICAgIExpYldlYlJUQ1NvY2tldCogc29ja2V0KHVpbnQ2
NF90IGlkZW50aWZpZXIpIHsgcmV0dXJuIG1fc29ja2V0cy5nZXQoaWRlbnRpZmllcik7IH0KLSAg
ICBMaWJXZWJSVENSZXNvbHZlciogcmVzb2x2ZXIodWludDY0X3QgaWRlbnRpZmllcikgeyByZXR1
cm4gbV9yZXNvbHZlcnMuZ2V0KGlkZW50aWZpZXIpOyB9Ci0KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
TGliV2ViUlRDUmVzb2x2ZXI+IHRha2VSZXNvbHZlcih1aW50NjRfdCBpZGVudGlmaWVyKSB7IHJl
dHVybiBtX3Jlc29sdmVycy50YWtlKGlkZW50aWZpZXIpOyB9Ci0KLSAgICBydGM6OkFzeW5jUGFj
a2V0U29ja2V0KiBjcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KExpYldlYlJUQ1NvY2tldCYsIHVp
bnQ2NF90IG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyLCBjb25zdCBydGM6OlNvY2tldEFk
ZHJlc3MmKTsKLQotICAgIHZvaWQgZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKCkgeyBt
X2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyA9IHRydWU7IH0KKyAgICBMaWJXZWJSVENT
b2NrZXQqIHNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZp
ZXIpIHsgcmV0dXJuIG1fc29ja2V0cy5nZXQoaWRlbnRpZmllcik7IH0KIAogICAgIHJ0Yzo6QXN5
bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZVVkcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3Mm
LCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KTsKICAgICBydGM6OkFzeW5jUGFj
a2V0U29ja2V0KiBjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNz
JiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpOwogICAg
IHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZUNsaWVudFRjcFNvY2tldChjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBy
ZW1vdGVBZGRyZXNzLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCBvcHRpb25zKTsKKyAgICBydGM6
OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KExpYldlYlJUQ1Nv
Y2tldCYsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29ubmVjdGlvblNv
Y2tldElkZW50aWZpZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYpOworCisgICAgTGliV2Vi
UlRDUmVzb2x2ZXIqIHJlc29sdmVyKHVpbnQ2NF90IGlkZW50aWZpZXIpIHsgcmV0dXJuIG1fcmVz
b2x2ZXJzLmdldChpZGVudGlmaWVyKTsgfQorICAgIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENS
ZXNvbHZlcj4gdGFrZVJlc29sdmVyKHVpbnQ2NF90IGlkZW50aWZpZXIpIHsgcmV0dXJuIG1fcmVz
b2x2ZXJzLnRha2UoaWRlbnRpZmllcik7IH0KICAgICBydGM6OkFzeW5jUmVzb2x2ZXJJbnRlcmZh
Y2UqIGNyZWF0ZUFzeW5jUmVzb2x2ZXIoKTsKKyAgICAKKyAgICB2b2lkIGRpc2FibGVOb25Mb2Nh
bGhvc3RDb25uZWN0aW9ucygpIHsgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMgPSB0
cnVlOyB9CiAKIHByaXZhdGU6Ci0KICAgICAvLyBXZSBjYW5ub3Qgb3duIHNvY2tldHMsIGNsaWVu
dHMgb2YgdGhlIGZhY3RvcnkgYXJlIHJlc3BvbnNpYmxlIHRvIGZyZWUgdGhlbS4KLSAgICBIYXNo
TWFwPHVpbnQ2NF90LCBMaWJXZWJSVENTb2NrZXQqPiBtX3NvY2tldHM7Ci0gICAgc3RhdGljIHVp
bnQ2NF90IHNfdW5pcXVlU29ja2V0SWRlbnRpZmllcjsKKyAgICBIYXNoTWFwPFdlYkNvcmU6Okxp
YldlYlJUQ1NvY2tldElkZW50aWZpZXIsIExpYldlYlJUQ1NvY2tldCo+IG1fc29ja2V0czsKICAg
ICAKICAgICAvLyBXZSBjYW4gb3duIHJlc29sdmVycyBhcyB3ZSBjb250cm9sIHRoZWlyIERlc3Ry
b3kgbWV0aG9kLgogICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJS
VENSZXNvbHZlcj4+IG1fcmVzb2x2ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcAppbmRleCBiYTM1ZDdmNzk3
Y2IwNjUxYjRiNWRmMGZkMmNkNDAwMTZjOGYyZmM5Li4yOTYxZWI3MWE1NzE0MWEwNmJmMmRmYWJh
YzQ0NWEyNGJkODcwOTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcApAQCAtMzUsOSArMzUsMTEgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5o
PgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZv
aWQgV2ViUlRDU29ja2V0OjpzaWduYWxPbk5ldHdvcmtUaHJlYWQoTGliV2ViUlRDU29ja2V0RmFj
dG9yeSYgZmFjdG9yeSwgdWludDY0X3QgaWRlbnRpZmllciwgRnVuY3Rpb248dm9pZChMaWJXZWJS
VENTb2NrZXQmKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViUlRDU29ja2V0OjpzaWduYWxPbk5ldHdv
cmtUaHJlYWQoTGliV2ViUlRDU29ja2V0RmFjdG9yeSYgZmFjdG9yeSwgTGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciBpZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKExpYldlYlJUQ1NvY2tldCYpPiYm
IGNhbGxiYWNrKQogewogICAgIC8vIGZhY3RvcnkgaXMgc3RheWluZyB2YWxpZCBkdXJpbmcgdGhl
IHByb2Nlc3MgbGlmZXRpbWUuCiAgICAgV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OmNhbGxP
bldlYlJUQ05ldHdvcmtUaHJlYWQoWyZmYWN0b3J5LCBpZGVudGlmaWVyLCBjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXSgpIHsKQEAgLTQ4LDcgKzUwLDcgQEAgdm9pZCBXZWJSVENTb2NrZXQ6
OnNpZ25hbE9uTmV0d29ya1RocmVhZChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5LCB1
aW50NjQKICAgICB9KTsKIH0KIAotV2ViUlRDU29ja2V0OjpXZWJSVENTb2NrZXQoTGliV2ViUlRD
U29ja2V0RmFjdG9yeSYgZmFjdG9yeSwgdWludDY0X3QgaWRlbnRpZmllcikKK1dlYlJUQ1NvY2tl
dDo6V2ViUlRDU29ja2V0KExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIGZhY3RvcnksIExpYldlYlJU
Q1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICA6IG1fZmFjdG9yeShmYWN0b3J5KQog
ICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiB7CkBAIC03MSwyOCArNzMsMjggQEAgdm9p
ZCBXZWJSVENTb2NrZXQ6OnNpZ25hbFJlYWRQYWNrZXQoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiBkYXRhLCBjb25zdCBSVENOZXQKIAogdm9pZCBXZWJSVENTb2NrZXQ6OnNpZ25hbFNlbnRQYWNr
ZXQoaW50IHJ0Y1BhY2tldElELCBpbnQ2NF90IHNlbmRUaW1lTXMpCiB7Ci0gICAgc2lnbmFsT25O
ZXR3b3JrVGhyZWFkKG1fZmFjdG9yeSwgbV9pZGVudGlmaWVyLCBbcnRjUGFja2V0SUQsIHNlbmRU
aW1lTXNdKExpYldlYlJUQ1NvY2tldCYgc29ja2V0KSB7CisgICAgc2lnbmFsT25OZXR3b3JrVGhy
ZWFkKG1fZmFjdG9yeSwgbV9pZGVudGlmaWVyLCBbcnRjUGFja2V0SUQsIHNlbmRUaW1lTXNdKGF1
dG8mIHNvY2tldCkgewogICAgICAgICBzb2NrZXQuc2lnbmFsU2VudFBhY2tldChydGNQYWNrZXRJ
RCwgc2VuZFRpbWVNcyk7CiAgICAgfSk7CiB9CiAKIHZvaWQgV2ViUlRDU29ja2V0OjpzaWduYWxD
b25uZWN0KCkKIHsKLSAgICBzaWduYWxPbk5ldHdvcmtUaHJlYWQobV9mYWN0b3J5LCBtX2lkZW50
aWZpZXIsIFtdKExpYldlYlJUQ1NvY2tldCYgc29ja2V0KSB7CisgICAgc2lnbmFsT25OZXR3b3Jr
VGhyZWFkKG1fZmFjdG9yeSwgbV9pZGVudGlmaWVyLCBbXShhdXRvJiBzb2NrZXQpIHsKICAgICAg
ICAgc29ja2V0LnNpZ25hbENvbm5lY3QoKTsKICAgICB9KTsKIH0KIAogdm9pZCBXZWJSVENTb2Nr
ZXQ6OnNpZ25hbENsb3NlKGludCBlcnJvcikKIHsKLSAgICBzaWduYWxPbk5ldHdvcmtUaHJlYWQo
bV9mYWN0b3J5LCBtX2lkZW50aWZpZXIsIFtlcnJvcl0oTGliV2ViUlRDU29ja2V0JiBzb2NrZXQp
IHsKKyAgICBzaWduYWxPbk5ldHdvcmtUaHJlYWQobV9mYWN0b3J5LCBtX2lkZW50aWZpZXIsIFtl
cnJvcl0oYXV0byYgc29ja2V0KSB7CiAgICAgICAgIHNvY2tldC5zaWduYWxDbG9zZShlcnJvcik7
CiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUlRDU29ja2V0OjpzaWduYWxOZXdDb25uZWN0aW9uKHVp
bnQ2NF90IG5ld1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJl
c3MmIHJlbW90ZUFkZHJlc3MpCit2b2lkIFdlYlJUQ1NvY2tldDo6c2lnbmFsTmV3Q29ubmVjdGlv
bihMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG5ld1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJU
Q05ldHdvcms6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MpCiB7Ci0gICAgc2lnbmFsT25O
ZXR3b3JrVGhyZWFkKG1fZmFjdG9yeSwgbV9pZGVudGlmaWVyLCBbbmV3U29ja2V0SWRlbnRpZmll
ciwgcmVtb3RlQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShyZW1vdGVBZGRyZXNz
LnZhbHVlKV0oTGliV2ViUlRDU29ja2V0JiBzb2NrZXQpIHsKKyAgICBzaWduYWxPbk5ldHdvcmtU
aHJlYWQobV9mYWN0b3J5LCBtX2lkZW50aWZpZXIsIFtuZXdTb2NrZXRJZGVudGlmaWVyLCByZW1v
dGVBZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KHJlbW90ZUFkZHJlc3MudmFsdWUp
XShhdXRvJiBzb2NrZXQpIHsKICAgICAgICAgc29ja2V0LnNpZ25hbE5ld0Nvbm5lY3Rpb24oc29j
a2V0Lm1fZmFjdG9yeS5jcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KHNvY2tldCwgbmV3U29ja2V0
SWRlbnRpZmllciwgcmVtb3RlQWRkcmVzcykpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5oCmluZGV4
IDlmNGNiNzgwODY4NWRkNjc4NmMxZGQ1YjczNjFjMjcyMjQyMGU4OWYuLjU3ZTE4ZGZlMzAzOGZj
ZTdlNzJhYjQ5ZWZlOGEyODcwYjRmOTgyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmgKQEAgLTI4LDYgKzI4LDcg
QEAKICNpZiBVU0UoTElCV0VCUlRDKQogCiAjaW5jbHVkZSAiUlRDTmV0d29yay5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9G
dW5jdGlvbi5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTQzLDExICs0NCwxMSBAQCBjbGFzcyBM
aWJXZWJSVENTb2NrZXRGYWN0b3J5OwogCiBjbGFzcyBXZWJSVENTb2NrZXQgewogcHVibGljOgot
ICAgIFdlYlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiwgdWludDY0X3QpOworICAg
IFdlYlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiwgV2ViQ29yZTo6TGliV2ViUlRD
U29ja2V0SWRlbnRpZmllcik7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogCi0gICAgc3RhdGljIHZvaWQgc2lnbmFsT25OZXR3
b3JrVGhyZWFkKExpYldlYlJUQ1NvY2tldEZhY3RvcnkmLCB1aW50NjRfdCwgRnVuY3Rpb248dm9p
ZChMaWJXZWJSVENTb2NrZXQmKT4mJik7CisgICAgc3RhdGljIHZvaWQgc2lnbmFsT25OZXR3b3Jr
VGhyZWFkKExpYldlYlJUQ1NvY2tldEZhY3RvcnkmLCBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKExpYldlYlJUQ1NvY2tldCYpPiYmKTsKIAogcHJpdmF0
ZToKICAgICB2b2lkIHNpZ25hbFJlYWRQYWNrZXQoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwg
Y29uc3QgUlRDTmV0d29yazo6SVBBZGRyZXNzJiwgdWludDE2X3QgcG9ydCwgaW50NjRfdCk7CkBA
IC01NSwxMCArNTYsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNpZ25hbEFkZHJlc3NSZWFkeShj
b25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJik7CiAgICAgdm9pZCBzaWduYWxDb25uZWN0
KCk7CiAgICAgdm9pZCBzaWduYWxDbG9zZShpbnQpOwotICAgIHZvaWQgc2lnbmFsTmV3Q29ubmVj
dGlvbih1aW50NjRfdCBuZXdTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBXZWJLaXQ6OlJUQ05ldHdv
cms6OlNvY2tldEFkZHJlc3MmKTsKKyAgICB2b2lkIHNpZ25hbE5ld0Nvbm5lY3Rpb24oV2ViQ29y
ZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBX
ZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmKTsKIAogICAgIExpYldlYlJUQ1NvY2tl
dEZhY3RvcnkmIG1fZmFjdG9yeTsKLSAgICB1aW50NjRfdCBtX2lkZW50aWZpZXIgeyAwIH07Cisg
ICAgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0Lm1lc3NhZ2VzLmluCmlu
ZGV4IGY2MTEyODVhZmE3MzY1YWUxZGI3ODhiMjczODRhNWZlZmU4ODZlN2YuLjhmODcyZWUyMTlh
MmM3NzY4ZGE4NTNhYTQxZjI1N2ZmNDU3NGRjMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5tZXNz
YWdlcy5pbgpAQCAtMjgsNyArMjgsNyBAQCBtZXNzYWdlcyAtPiBXZWJSVENTb2NrZXQgewogICAg
IFNpZ25hbEFkZHJlc3NSZWFkeShXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgYWRk
cmVzcykKICAgICBTaWduYWxDb25uZWN0KCkKICAgICBTaWduYWxDbG9zZShpbnQgZXJyb3IpCi0g
ICAgU2lnbmFsTmV3Q29ubmVjdGlvbih1aW50NjRfdCBuZXdTb2NrZXRJZGVudGlmaWVyLCBXZWJL
aXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgcmVtb3RlQWRkcmVzcykKKyAgICBTaWduYWxO
ZXdDb25uZWN0aW9uKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3U29ja2V0
SWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHJlbW90ZUFkZHJl
c3MpCiB9CiAKICNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379934</attachid>
            <date>2019-10-01 12:51:55 -0700</date>
            <delta_ts>2019-10-02 01:00:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202400-20191001125154.patch</filename>
            <type>text/plain</type>
            <size>44457</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQ2Y2VmYmI4Njk4ZGFl
YjdiZTRmMDhlMDEyMmJkMmE1ZDI0Y2IxYS4uMGUwNDEzZDE4Y2Y5MzlhYmMyYTFmMGEzNzgzMGJk
OTIwZmM0OGZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTEwLTAxICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc3Ryb25nbHkgdHlw
ZWQgaWRlbnRpZmllcnMgZm9yIHdlYnJ0YyBzb2NrZXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MDAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGNoYW5nZSBvZiBiZWhhdmlv
ci4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaC4KKwogMjAxOS0xMC0w
MSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFsbG93IHBhZ2Vz
IHVzaW5nIEV2ZW50U291cmNlIHRvIGVudGVyIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZTc2NzAwOWZiNWY4N2Q4YjVhYmE2N2MyNzc5N2MyZjRjMjcwYWYyYi4uMmE5NjcwOWQ0
MDFjNDk5MDJmZDI1MGEwMjgwZGIxMDNhMGMyNWMxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBA
QAorMjAxOS0xMC0wMSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIHN0cm9uZ2x5IHR5cGVkIGlkZW50aWZpZXJzIGZvciB3ZWJydGMgc29ja2V0cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNDAwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmcg
dG8gdXNlIExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdC4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRDbGllbnQ6OkxpYldlYlJUQ1NvY2tl
dENsaWVudCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tl
dENsaWVudC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJv
dmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNv
Y2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29j
a2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTZXJ2ZXJU
Q1BTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNs
aWVudFRDUFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6d3Jh
cE5ld1RDUENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6
OmFkZFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6dGFrZVNv
Y2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6bmV3Q29ubmVjdGlv
bik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92aWRlcjo6ZGlkUmVjZWl2ZU5ldHdv
cmtSVENTb2NrZXRNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVy
OjpjbG9zZUxpc3RlbmluZ1NvY2tldHMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJv
dmlkZXI6OmNhbGxTb2NrZXQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3
b3JrUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29y
a1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9OZXR3b3JrUlRDU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1NvY2tl
dDo6TmV0d29ya1JUQ1NvY2tldCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05l
dHdvcmtSVENTb2NrZXQuaDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZl
TWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENO
ZXR3b3JrLmg6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ05ldHdvcms6OnNvY2tldCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6OkxpYldlYlJUQ1NvY2tldCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVTZXJ2ZXJU
Y3BTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVh
dGVVZHBTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojpj
cmVhdGVDbGllbnRUY3BTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRG
YWN0b3J5OjpjcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaDoKKyAgICAgICAgKFdlYktp
dDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6c29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGli
V2ViUlRDU29ja2V0RmFjdG9yeTo6cmVzb2x2ZXIpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJS
VENTb2NrZXRGYWN0b3J5Ojp0YWtlUmVzb2x2ZXIpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJS
VENTb2NrZXRGYWN0b3J5OjpkaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUlRDU29ja2V0OjpzaWduYWxPbk5ldHdvcmtUaHJlYWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJSVENTb2NrZXQ6OldlYlJUQ1NvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJUQ1NvY2tldDo6c2lnbmFsU2VudFBhY2tldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nv
Y2tldDo6c2lnbmFsQ29ubmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6c2ln
bmFsQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTb2NrZXQ6OnNpZ25hbE5ld0Nvbm5l
Y3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVz
c2FnZXMuaW46CisKIDIwMTktMTAtMDEgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbW92ZSByYWNlcyBjb25kaXRpb24gd2hlbiB2YWxpZGF0aW5nIGNhcHR1
cmUgc2FuZGJveCBleHRlbnNpb24gcmV2b2NhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggNTRh
ZjIyZGFkZTY1M2ZkM2FiYTc4NmMxNTlmZTAwZDJmMGE4YmQ5NC4uZGRiMzU5ZTM5MTI0ODc3Zjg0
MGNkODA2OTU1ZGVkMzExMDA2ZTM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMTU5LDYgKzEx
NTksNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAKICAgICBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWFjcm9zLmgKICAgICBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAorICAgIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmgKIAogICAg
IHBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmgKICAgICBwbGF0Zm9y
bS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhMTc2MWM2N2I0Yzk1ZDhlYWI0
NzdhN2MwMGFlNTU0NWQyM2E3OWVlLi4zZmJiNTVlZWMwOWRjNjYyN2QwMjE1NzI4OTk5Y2I0ZTNi
YjNkZDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xMDIzLDYgKzEwMjMsNyBAQAogCQkzRkZGRjlBOTE1OUQ5QTU1MDAyMEJC
RDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBNzE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NT
Vmlld3BvcnRSdWxlLmggKi87IH07CiAJCTNGRkZGOUFFMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3
cG9ydFN0eWxlUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDNGRkZGOUFDMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2
ZXIuaCAqLzsgfTsKIAkJNDEwNzkwOEMxRkMzRjAzMzAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwNzkwOEEx
RkMzRTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxMEU0NDYxMjM0MzczRTkwMDAxNzNENCAvKiBM
aWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTBFNDQ1RjIzNDM3M0FEMDAwMTczRDQgLyogTGliV2ViUlRDU29j
a2V0SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQxMTAzQUFDMUUzOTc5MTAwMDc2OUYwMyAvKiBSZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxMTAzQUE4MUUzOTc5MEEwMDc2OUYwMyAvKiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2Uu
aCAqLzsgfTsKIAkJNDExMDNBQUMxRTM5NzkxMDAwNzY5RjE0IC8qIFJlYWx0aW1lT3V0Z29pbmdB
dWRpb1NvdXJjZUNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTEwM0FBODFFMzk3OTBBMDA3NjlGMTQgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlQ29jb2EuaCAqLzsgfTsKIAkJNDExMDNBQUQxRTM5NzkxMDAwNzY5RjAzIC8qIFJlYWx0
aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDExMDNBQTkxRTM5NzkwQTAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21p
bmdBdWRpb1NvdXJjZS5oICovOyB9OwpAQCAtNzE3Myw2ICs3MTc0LDcgQEAKIAkJNDEwNjI2QTcy
MjgwQTIyQTAwNkQxQjU5IC8qIEpTQXVkaW9Ob2RlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXVkaW9Ob2RlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDEwNzkwOEExRkMzRTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdp
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGllbnRPcmlnaW4uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpT
TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDEwRTQ0NUYyMzQzNzNBRDAwMDE3M0Q0IC8qIExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDU29ja2V0SWRlbnRp
Zmllci5oOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMDNBQTcxRTM5NzkwQTAwNzY5RjAzIC8qIFJl
YWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTEwM0FBNzFFMzk3OTBBMDA3NjlGMTQgLyogUmVhbHRpbWVPdXRn
b2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTEwM0FBODFFMzk3OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVPdXRn
b2luZ0F1ZGlvU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTc3NjksNiArMTc3NzEsNyBAQAogCQkJCTQxNTc0NzQ0MUUzODY5OUUwMEU5MTREOCAvKiBMaWJX
ZWJSVENQcm92aWRlci5oICovLAogCQkJCTQxQjI4QjM4MUY4NjBCRDEwMEZCNTJBQyAvKiBMaWJX
ZWJSVENQcm92aWRlckNvY29hLmNwcCAqLywKIAkJCQk0MUIyOEIzNjFGODYwQkQwMDBGQjUyQUMg
LyogTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5oICovLAorCQkJCTQxMEU0NDVGMjM0MzczQUQwMDAx
NzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9
IGxpYndlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMDc0NSw2ICszMDc0
OCw3IEBACiAJCQkJNDE3NjEyQjIxRTNBOTk0MDAwQzNEODFEIC8qIExpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE1NzQ3NDgxRTM4NjlBNzAwRTkx
NEQ4IC8qIExpYldlYlJUQ1Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUIyOEIzRDFG
ODYwRUYzMDBGQjUyQUMgLyogTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNDEwRTQ0NjEyMzQzNzNFOTAwMDE3M0Q0IC8qIExpYldlYlJUQ1NvY2tldElkZW50aWZp
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzMwRDkxMTI0OEYwQjMwMEQzQTlDOSAvKiBMaWdo
dFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5NjUwRDAwQkYyMjAwNzFCNzgyIC8q
IExpbmVhckdyYWRpZW50QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUIzMUM5MUUx
MEFFMUI4RTAwMEM3QjkyIC8qIExpbmVDbGFtcFZhbHVlLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENTb2NrZXRJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3
NGYxMzZlOTE0NmQzNjBkN2ZmMWRmNzE4NjY4ZTBlZTliMGEzMWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
U29ja2V0SWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSAsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2VudW0gTGliV2ViUlRDU29ja2V0SWRlbnRpZmllclR5cGUgeyB9OwordXNp
bmcgTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8TGliV2ViUlRD
U29ja2V0SWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRD
U29ja2V0Q2xpZW50LmNwcAppbmRleCBjNTk5NWJjNTMyNTVmZTJkMzc2ZmM0NWZiZmI5ZWU2MzFl
ZTczZTcxLi4wYjc0N2Q4NTIzNWFkN2QxNTA2Nzk3ZTRhMTdkYWM1ODQ2ZWJkNjhhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL0xpYldl
YlJUQ1NvY2tldENsaWVudC5jcHAKQEAgLTM1LDkgKzM1LDExIEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9TaGFyZWRCdWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1MaWJXZWJSVENTb2NrZXRD
bGllbnQ6OkxpYldlYlJUQ1NvY2tldENsaWVudCh1aW50NjRfdCBpZGVudGlmaWVyLCBOZXR3b3Jr
UlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tl
dFNvY2tldD4mJiBzb2NrZXQsIFR5cGUgdHlwZSkKK0xpYldlYlJUQ1NvY2tldENsaWVudDo6TGli
V2ViUlRDU29ja2V0Q2xpZW50KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwg
TmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlciwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5
bmNQYWNrZXRTb2NrZXQ+JiYgc29ja2V0LCBUeXBlIHR5cGUpCiAgICAgOiBtX2lkZW50aWZpZXIo
aWRlbnRpZmllcikKICAgICAsIG1fdHlwZSh0eXBlKQogICAgICwgbV9ydGNQcm92aWRlcihydGNQ
cm92aWRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L0xpYldlYlJUQ1NvY2tldENsaWVudC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmgKaW5kZXggMjVhYTU0YWZhN2Q3NmZhOTQ1NmFm
YmI4Y2M0MWQxMTZhYmFmYzg2ZC4uNWFmMzkzMDZjMmQ1MTdhMmY1OGM4NzgwMzEyNGFjMmY5NzMx
YWI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGli
V2ViUlRDU29ja2V0Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmgKQEAgLTQxLDEwICs0MSwxMCBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIGNsYXNzIExpYldlYlJUQ1NvY2tldENsaWVudCBmaW5hbCA6IHB1YmxpYyBO
ZXR3b3JrUlRDUHJvdmlkZXI6OlNvY2tldCwgcHVibGljIHNpZ3Nsb3Q6Omhhc19zbG90czw+IHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBMaWJXZWJSVENTb2Nr
ZXRDbGllbnQodWludDY0X3QgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiwgc3RkOjp1
bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+JiYsIFR5cGUpOworICAgIExpYldlYlJU
Q1NvY2tldENsaWVudChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBOZXR3b3Jr
UlRDUHJvdmlkZXImLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiwg
VHlwZSk7CiAKIHByaXZhdGU6Ci0gICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElk
ZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsg
fQogICAgIFR5cGUgdHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdHlwZTsgfQogICAgIHZv
aWQgY2xvc2UoKSBmaW5hbDsKIApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogCiAgICAgdm9p
ZCBzaWduYWxBZGRyZXNzUmVhZHkoKTsKIAotICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKKyAg
ICBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBU
eXBlIG1fdHlwZTsKICAgICBOZXR3b3JrUlRDUHJvdmlkZXImIG1fcnRjUHJvdmlkZXI7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+IG1fc29ja2V0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3Zp
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQ
cm92aWRlci5jcHAKaW5kZXggZjdlZTRkYmQ4NmZmYzc1ZDU3ZWI3YjM4NmU2MDM4YzU3YTM1MWRi
Ny4uMWY5YTc0YmJlYzVjY2ZiZDdiNGM0MTcwZGQ3NDNhZDU1MTVmZjMzYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJv
dmlkZXIuY3BwCkBAIC00Niw2ICs0Niw4IEBACiAjaW5jbHVkZSAiTmV0d29ya1JUQ1Jlc29sdmVy
Q29jb2EuaCIKICNlbmRpZgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIHN0YXRpYyBpbmxpbmUgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6VGhyZWFkPiBj
cmVhdGVUaHJlYWQoKQpAQCAtOTYsNyArOTgsNyBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6
Y2xvc2UoKQogICAgIH0pOwogfQogCi12b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlU29j
a2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0
U29ja2V0PiYmIHNvY2tldCwgU29ja2V0OjpUeXBlIHR5cGUpCit2b2lkIE5ldHdvcmtSVENQcm92
aWRlcjo6Y3JlYXRlU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwg
c3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+JiYgc29ja2V0LCBTb2NrZXQ6
OlR5cGUgdHlwZSkKIHsKICAgICBpZiAoIXNvY2tldCkgewogICAgICAgICBzZW5kRnJvbU1haW5U
aHJlYWQoW2lkZW50aWZpZXIsIHNpemUgPSBtX3NvY2tldHMuc2l6ZSgpXShJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24pIHsKQEAgLTEwOCw3ICsxMTAsNyBAQCB2b2lkIE5ldHdvcmtSVENQcm92
aWRlcjo6Y3JlYXRlU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxy
dGM6OgogICAgIGFkZFNvY2tldChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tl
dENsaWVudD4oaWRlbnRpZmllciwgKnRoaXMsIFdURk1vdmUoc29ja2V0KSwgdHlwZSkpOwogfQog
Ci12b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KHVpbnQ2NF90IGlkZW50
aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90
IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpCit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3Jl
YXRlVURQU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3Qg
UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWlu
dDE2X3QgbWF4UG9ydCkKIHsKICAgICBjYWxsT25SVENOZXR3b3JrVGhyZWFkKFt0aGlzLCBpZGVu
dGlmaWVyLCBhZGRyZXNzID0gUlRDTmV0d29yazo6aXNvbGF0ZWRDb3B5KGFkZHJlc3MudmFsdWUp
LCBtaW5Qb3J0LCBtYXhQb3J0XSgpIHsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5
bmNQYWNrZXRTb2NrZXQ+IHNvY2tldChtX3BhY2tldFNvY2tldEZhY3RvcnktPkNyZWF0ZVVkcFNv
Y2tldChhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0KSk7CkBAIC0xMTYsNyArMTE4LDcgQEAgdm9p
ZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVVEUFNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVy
LCBjb25zdCBSVENOZXR3b3JrOjoKICAgICB9KTsKIH0KIAotdm9pZCBOZXR3b3JrUlRDUHJvdmlk
ZXI6OmNyZWF0ZVNlcnZlclRDUFNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBSVENO
ZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZf
dCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVT
ZXJ2ZXJUQ1BTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1
aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKIHsKICAgICBpZiAoIW1faXNMaXN0ZW5pbmdT
b2NrZXRBdXRob3JpemVkKSB7CiAgICAgICAgIGlmIChtX2Nvbm5lY3Rpb24pCkBAIC0xMzcsNyAr
MTM5LDcgQEAgcnRjOjpQcm94eUluZm8gTmV0d29ya1JUQ1Byb3ZpZGVyOjpwcm94eUluZm9Gcm9t
U2Vzc2lvbihjb25zdCBSVENOZXR3b3JrOjpTb2NrZXQKIH0KICNlbmRpZgogCi12b2lkIE5ldHdv
cmtSVENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIs
IGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgUlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50
LCBpbnQgb3B0aW9ucykKK3ZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BT
b2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tl
dEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMp
CiB7CiAgICAgYXV0byogc2Vzc2lvbiA9IG1fY29ubmVjdGlvbi0+bmV0d29ya1Nlc3Npb24oKTsK
ICAgICBpZiAoIXNlc3Npb24pIHsKQEAgLTE1MCw3ICsxNTIsNyBAQCB2b2lkIE5ldHdvcmtSVENQ
cm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0
IFJUQ05ldAogICAgIH0pOwogfQogCi12b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6d3JhcE5ld1RD
UENvbm5lY3Rpb24odWludDY0X3QgaWRlbnRpZmllciwgdWludDY0X3QgbmV3Q29ubmVjdGlvblNv
Y2tldElkZW50aWZpZXIpCit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6d3JhcE5ld1RDUENvbm5l
Y3Rpb24oTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBMaWJXZWJSVENTb2Nr
ZXRJZGVudGlmaWVyIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKQogewogICAgIGNhbGxP
blJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGlkZW50aWZpZXIsIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJ
ZGVudGlmaWVyXSgpIHsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRT
b2NrZXQ+IHNvY2tldCA9IG1fcGVuZGluZ0luY29taW5nU29ja2V0cy50YWtlKG5ld0Nvbm5lY3Rp
b25Tb2NrZXRJZGVudGlmaWVyKTsKQEAgLTE1OCwyNyArMTYwLDI4IEBAIHZvaWQgTmV0d29ya1JU
Q1Byb3ZpZGVyOjp3cmFwTmV3VENQQ29ubmVjdGlvbih1aW50NjRfdCBpZGVudGlmaWVyLCB1aW50
NjRfdCBuZXdDCiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjphZGRTb2Nr
ZXQodWludDY0X3QgaWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFNvY2tldD4mJiBzb2NrZXQp
Cit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6YWRkU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIgaWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFNvY2tldD4mJiBzb2NrZXQpCiB7CiAg
ICAgbV9zb2NrZXRzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHNvY2tldCkpOwogfQogCi1zdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Byb3ZpZGVyOjpTb2NrZXQ+IE5ldHdvcmtSVENQcm92aWRl
cjo6dGFrZVNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyKQorc3RkOjp1bmlxdWVfcHRyPE5ldHdv
cmtSVENQcm92aWRlcjo6U29ja2V0PiBOZXR3b3JrUlRDUHJvdmlkZXI6OnRha2VTb2NrZXQoTGli
V2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIHJldHVybiBtX3NvY2tl
dHMudGFrZShpZGVudGlmaWVyKTsKIH0KIAogdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6Om5ld0Nv
bm5lY3Rpb24oU29ja2V0JiBzZXJ2ZXJTb2NrZXQsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5j
UGFja2V0U29ja2V0PiYmIG5ld1NvY2tldCkKIHsKLSAgICBzZW5kRnJvbU1haW5UaHJlYWQoW2lk
ZW50aWZpZXIgPSBzZXJ2ZXJTb2NrZXQuaWRlbnRpZmllcigpLCBpbmNvbWluZ1NvY2tldElkZW50
aWZpZXIgPSArK21faW5jb21pbmdTb2NrZXRJZGVudGlmaWVyLCByZW1vdGVBZGRyZXNzID0gUlRD
TmV0d29yazo6aXNvbGF0ZWRDb3B5KG5ld1NvY2tldC0+R2V0UmVtb3RlQWRkcmVzcygpKV0oSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKSB7CisgICAgYXV0byBpbmNvbWluZ1NvY2tldElkZW50
aWZpZXIgPSBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIHNlbmRG
cm9tTWFpblRocmVhZChbaWRlbnRpZmllciA9IHNlcnZlclNvY2tldC5pZGVudGlmaWVyKCksIGlu
Y29taW5nU29ja2V0SWRlbnRpZmllciwgcmVtb3RlQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xh
dGVkQ29weShuZXdTb2NrZXQtPkdldFJlbW90ZUFkZHJlc3MoKSldKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbikgewogICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6OldlYlJUQ1Nv
Y2tldDo6U2lnbmFsTmV3Q29ubmVjdGlvbihpbmNvbWluZ1NvY2tldElkZW50aWZpZXIsIFJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MocmVtb3RlQWRkcmVzcykpLCBpZGVudGlmaWVyKTsKICAgICB9
KTsKLSAgICBtX3BlbmRpbmdJbmNvbWluZ1NvY2tldHMuYWRkKG1faW5jb21pbmdTb2NrZXRJZGVu
dGlmaWVyLCBXVEZNb3ZlKG5ld1NvY2tldCkpOworICAgIG1fcGVuZGluZ0luY29taW5nU29ja2V0
cy5hZGQoaW5jb21pbmdTb2NrZXRJZGVudGlmaWVyLCBXVEZNb3ZlKG5ld1NvY2tldCkpOwogfQog
CiB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6ZGlkUmVjZWl2ZU5ldHdvcmtSVENTb2NrZXRNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQog
ewotICAgIE5ldHdvcmtSVENTb2NrZXQoZGVjb2Rlci5kZXN0aW5hdGlvbklEKCksICp0aGlzKS5k
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICBOZXR3b3JrUlRDU29j
a2V0KG1ha2VPYmplY3RJZGVudGlmaWVyPExpYldlYlJUQ1NvY2tldElkZW50aWZpZXJUeXBlPihk
ZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSksICp0aGlzKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0
aW9uLCBkZWNvZGVyKTsKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjQ1LDcgKzI0OCw3
IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjbG9zZUxpc3RlbmluZ1NvY2tldHMoRnVuY3Rp
b248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kCiAKICAgICBtX2lzTGlzdGVuaW5nU29ja2V0QXV0
aG9yaXplZCA9IGZhbHNlOwogICAgIGNhbGxPblJUQ05ldHdvcmtUaHJlYWQoW3RoaXMsIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0g
ICAgICAgIFZlY3Rvcjx1aW50NjRfdD4gbGlzdGVuaW5nU29ja2V0SWRlbnRpZmllcnM7CisgICAg
ICAgIFZlY3RvcjxMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyPiBsaXN0ZW5pbmdTb2NrZXRJZGVu
dGlmaWVyczsKICAgICAgICAgZm9yIChhdXRvJiBrZXlWYWx1ZSA6IG1fc29ja2V0cykgewogICAg
ICAgICAgICAgaWYgKGtleVZhbHVlLnZhbHVlLT50eXBlKCkgPT0gU29ja2V0OjpUeXBlOjpTZXJ2
ZXJUQ1ApCiAgICAgICAgICAgICAgICAgbGlzdGVuaW5nU29ja2V0SWRlbnRpZmllcnMuYXBwZW5k
KGtleVZhbHVlLmtleSk7CkBAIC0yODUsNyArMjg4LDcgQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlk
ZXI6OmNhbGxPblJUQ05ldHdvcmtUaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQog
ICAgIG1fcnRjTmV0d29ya1RocmVhZC0+UG9zdChSVENfRlJPTV9IRVJFLCB0aGlzLCAxLCBuZXcg
TmV0d29ya01lc3NhZ2VEYXRhKCp0aGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSkpOwogfQogCi12b2lk
IE5ldHdvcmtSVENQcm92aWRlcjo6Y2FsbFNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBGdW5j
dGlvbjx2b2lkKFNvY2tldCYpPiYmIGNhbGxiYWNrKQordm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6
OmNhbGxTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBGdW5jdGlv
bjx2b2lkKFNvY2tldCYpPiYmIGNhbGxiYWNrKQogewogICAgIGNhbGxPblJUQ05ldHdvcmtUaHJl
YWQoW3RoaXMsIGlkZW50aWZpZXIsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgewog
ICAgICAgICBpZiAoYXV0byogc29ja2V0ID0gbV9zb2NrZXRzLmdldChpZGVudGlmaWVyKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQ
cm92aWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JU
Q1Byb3ZpZGVyLmgKaW5kZXggNjMyNjVkYTQwNjA4ZjBjYzkzNDhmZDFhNDdlY2QyYjM1Zjk2M2My
OS4uMzM1NTc2NmJlNDExMTAxOWE3MjA0NGI5NWYyN2JkOGQyMDcxNTJiOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3Zp
ZGVyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUlRDTW9uaXRvci5oIgog
I2luY2x1ZGUgIlJUQ05ldHdvcmsuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jv
cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oPgogI2lu
Y2x1ZGUgPHdlYnJ0Yy9wMnAvYmFzZS9iYXNpY3BhY2tldHNvY2tldGZhY3RvcnkuaD4KICNpbmNs
dWRlIDx3ZWJydGMvcnRjX2Jhc2UvdGhpcmRfcGFydHkvc2lnc2xvdC9zaWdzbG90Lmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTcyLDE5ICs3MywxOSBAQCBwdWJsaWM6CiAKICAgICAg
ICAgZW51bSBjbGFzcyBUeXBlIDogdWludDhfdCB7IFVEUCwgU2VydmVyVENQLCBDbGllbnRUQ1As
IFNlcnZlckNvbm5lY3Rpb25UQ1AgfTsKICAgICAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25z
dCAgPSAwOwotICAgICAgICB2aXJ0dWFsIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCA9IDA7
CisgICAgICAgIHZpcnR1YWwgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVu
dGlmaWVyKCkgY29uc3QgPSAwOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpID0gMDsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHNldE9wdGlvbihpbnQgb3B0aW9uLCBpbnQgdmFsdWUpID0g
MDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNlbmRUbyhjb25zdCBXZWJDb3JlOjpTaGFyZWRCdWZm
ZXImLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCBjb25zdCBydGM6OlBhY2tldE9wdGlvbnMm
KSA9IDA7CiAgICAgfTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxTb2NrZXQ+IHRha2VTb2NrZXQo
dWludDY0X3QpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxTb2NrZXQ+IHRha2VTb2NrZXQoV2ViQ29y
ZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllcik7CiAgICAgdm9pZCByZXNvbHZlckRvbmUodWlu
dDY0X3QpOwogCiAgICAgdm9pZCBjbG9zZSgpOwogCi0gICAgdm9pZCBjYWxsU29ja2V0KHVpbnQ2
NF90LCBGdW5jdGlvbjx2b2lkKFNvY2tldCYpPiYmKTsKKyAgICB2b2lkIGNhbGxTb2NrZXQoV2Vi
Q29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgRnVuY3Rpb248dm9pZChTb2NrZXQmKT4m
Jik7CiAgICAgdm9pZCBjYWxsT25SVENOZXR3b3JrVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBzZW5kRnJvbU1haW5UaHJlYWQoRnVuY3Rpb248dm9pZChJUEM6OkNvbm5lY3Rp
b24mKT4mJik7CiAKQEAgLTk2LDI0ICs5NywyNCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4
cGxpY2l0IE5ldHdvcmtSVENQcm92aWRlcihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYp
OwogCi0gICAgdm9pZCBjcmVhdGVVRFBTb2NrZXQodWludDY0X3QsIGNvbnN0IFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCwgdWludDE2X3QpOwotICAgIHZvaWQgY3JlYXRlQ2xp
ZW50VENQU29ja2V0KHVpbnQ2NF90LCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwg
Y29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50
KTsKLSAgICB2b2lkIGNyZWF0ZVNlcnZlclRDUFNvY2tldCh1aW50NjRfdCwgY29uc3QgUlRDTmV0
d29yazo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQs
IGludCk7Ci0gICAgdm9pZCB3cmFwTmV3VENQQ29ubmVjdGlvbih1aW50NjRfdCBpZGVudGlmaWVy
LCB1aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcik7CisgICAgdm9pZCBjcmVh
dGVVRFBTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29uc3QgUlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90LCB1aW50MTZfdCk7CisgICAgdm9pZCBj
cmVhdGVDbGllbnRUQ1BTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwg
Y29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tl
dEFkZHJlc3MmLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCk7CisgICAgdm9pZCBjcmVhdGVTZXJ2
ZXJUQ1BTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgY29uc3QgUlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBv
cnQsIGludCk7CisgICAgdm9pZCB3cmFwTmV3VENQQ29ubmVjdGlvbihXZWJDb3JlOjpMaWJXZWJS
VENTb2NrZXRJZGVudGlmaWVyLCBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG5l
d0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgY3JlYXRlUmVzb2x2ZXIo
dWludDY0X3QsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc3RvcFJlc29sdmVyKHVpbnQ2NF90
KTsKIAotICAgIHZvaWQgYWRkU29ja2V0KHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8U29ja2V0
PiYmKTsKKyAgICB2b2lkIGFkZFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U29ja2V0PiYmKTsKIAotICAgIHZvaWQgY3JlYXRlU29ja2V0
KHVpbnQ2NF90IGlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29j
a2V0PiYmLCBTb2NrZXQ6OlR5cGUpOworICAgIHZvaWQgY3JlYXRlU29ja2V0KFdlYkNvcmU6Okxp
YldlYlJUQ1NvY2tldElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0
U29ja2V0PiYmLCBTb2NrZXQ6OlR5cGUpOwogCiAgICAgdm9pZCBPbk1lc3NhZ2UocnRjOjpNZXNz
YWdlKik7CiAKICAgICBzdGF0aWMgcnRjOjpQcm94eUluZm8gcHJveHlJbmZvRnJvbVNlc3Npb24o
Y29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYsIE5ldHdvcmtTZXNzaW9uJik7CiAKICAg
ICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1JUQ1Jlc29sdmVyPj4g
bV9yZXNvbHZlcnM7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFNvY2tl
dD4+IG1fc29ja2V0czsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTb2NrZXQ+PiBtX3NvY2tldHM7CiAgICAgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MqIG1fY29ubmVjdGlvbjsKICAgICBib29sIG1faXNTdGFydGVk
IHsgdHJ1ZSB9OwogCkBAIC0xMjIsOCArMTIzLDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8cnRjOjpUaHJlYWQ+IG1fcnRjTmV0d29ya1RocmVhZDsKICAgICBVbmlxdWVSZWY8cnRj
OjpCYXNpY1BhY2tldFNvY2tldEZhY3Rvcnk+IG1fcGFja2V0U29ja2V0RmFjdG9yeTsKIAotICAg
IEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0
Pj4gbV9wZW5kaW5nSW5jb21pbmdTb2NrZXRzOwotICAgIHVpbnQ2NF90IG1faW5jb21pbmdTb2Nr
ZXRJZGVudGlmaWVyIHsgMCB9OworICAgIEhhc2hNYXA8V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+PiBtX3Bl
bmRpbmdJbmNvbWluZ1NvY2tldHM7CiAgICAgYm9vbCBtX2lzTGlzdGVuaW5nU29ja2V0QXV0aG9y
aXplZCB7IHRydWUgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5tZXNzYWdlcy5pbgpp
bmRleCAxMjIzNmIzYzcxZDdmZjA2ZTYxODMyMmY2NDcyZmZiMTM4OGJkMzg3Li45MjFlNTcwNGMy
ZDk5OWYwN2UxMDhjOTJmNzE5YjYxNzA4YTYyMzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
Lm1lc3NhZ2VzLmluCkBAIC0yMywxMiArMjMsMTMgQEAKICNpZiBVU0UoTElCV0VCUlRDKQogCiBt
ZXNzYWdlcyAtPiBOZXR3b3JrUlRDUHJvdmlkZXIgewotICAgIENyZWF0ZVVEUFNvY2tldChpbnQg
aWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVz
cywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkKLSAgICBDcmVhdGVTZXJ2ZXJU
Q1BTb2NrZXQoaW50IGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVz
cyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBv
cHRpb25zKQotICAgIENyZWF0ZUNsaWVudFRDUFNvY2tldChpbnQgaWRlbnRpZmllciwgV2ViS2l0
OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgV2ViS2l0OjpSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzIHJlbW90ZUFkZHJlc3MsIFN0cmluZyB1c2VyQWdlbnQsIGludCBv
cHRpb25zKQorICAgIENyZWF0ZVVEUFNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2Nh
bEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpCisgICAgQ3JlYXRl
U2VydmVyVENQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgdWlu
dDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCisgICAgQ3JlYXRl
Q2xpZW50VENQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgV2Vi
S2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHJlbW90ZUFkZHJlc3MsIFN0cmluZyB1c2Vy
QWdlbnQsIGludCBvcHRpb25zKQorICAgIFdyYXBOZXdUQ1BDb25uZWN0aW9uKFdlYkNvcmU6Okxp
YldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6TGliV2ViUlRDU29j
a2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcikKKwogICAgIENyZWF0
ZVJlc29sdmVyKHVpbnQ2NF90IGlkZW50aWZpZXIsIFN0cmluZyBhZGRyZXNzKQogICAgIFN0b3BS
ZXNvbHZlcih1aW50NjRfdCBpZGVudGlmaWVyKQotICAgIFdyYXBOZXdUQ1BDb25uZWN0aW9uKHVp
bnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2NF90IG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVy
KQogfQogCiAjZW5kaWYgLy8gVVNFKExJQldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5jcHAKaW5kZXggYThj
NzBhM2IwZDY5NmZiODE4NGI3MTEyZDczZGYzNGQ4ZmU3ZjA2ZS4uODIwZDA3YmMwZTcyNzRiNDc4
YjRlMmE4NmZhYTk3MjdkZDJkZmM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5jcHAKQEAgLTM2LDcgKzM2LDcg
QEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLU5ldHdvcmtSVENTb2NrZXQ6Ok5ldHdvcmtSVENT
b2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgTmV0d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRl
cikKK05ldHdvcmtSVENTb2NrZXQ6Ok5ldHdvcmtSVENTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRD
U29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3Zp
ZGVyKQogICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX3J0Y1Byb3ZpZGVy
KHJ0Y1Byb3ZpZGVyKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5oCmluZGV4IDZlNGJmZTJiMTY0MTljYmJjNTFiODBk
OTVmNzU5ZWZlMmVkZDkyYWYuLjg0YmI0ZjEzMTI3YjM2MDZiY2UwMTk3MWVjY2JhYTljNGJjZGQ0
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9O
ZXR3b3JrUlRDU29ja2V0LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJSVENOZXR3b3Jr
LmgiCiAKICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jvcy5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNf
YmFzZS9hc3luY3BhY2tldHNvY2tldC5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS90aGly
ZF9wYXJ0eS9zaWdzbG90L3NpZ3Nsb3QuaD4KIApAQCAtNTgsMTQgKzU5LDE0IEBAIHN0cnVjdCBS
VENQYWNrZXRPcHRpb25zOwogCiBjbGFzcyBOZXR3b3JrUlRDU29ja2V0IHsKIHB1YmxpYzoKLSAg
ICBOZXR3b3JrUlRDU29ja2V0KHVpbnQ2NF90LCBOZXR3b3JrUlRDUHJvdmlkZXImKTsKKyAgICBO
ZXR3b3JrUlRDU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIE5ldHdv
cmtSVENQcm92aWRlciYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJik7CiBwcml2YXRlOgogICAgIHZvaWQgc2VuZFRvKGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYsIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmJiwgUlRDUGFja2V0
T3B0aW9ucyYmKTsKICAgICB2b2lkIGNsb3NlKCk7CiAgICAgdm9pZCBzZXRPcHRpb24oaW50IG9w
dGlvbiwgaW50IHZhbHVlKTsKIAotICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKKyAgICBXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBOZXR3b3Jr
UlRDUHJvdmlkZXImIG1fcnRjUHJvdmlkZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQppbmRleCBlYzQwZDQzMTNlZDM0NTBjMWUxMGZmZGQ3MWIyMDZjODQy
NmRmYzliLi5hNzhkYTMxNDQzMjU4YzA4NjE5MmYyMDUyMGIzNDA2MDk0ZTQ5OGY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIwNiw2ICsyMDYsNyBAQCBk
ZWYgZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVjZWl2ZXIpOgogICAgICAgICAn
V2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OkZldGNoSWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXInLAorICAgICAgICAn
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQb2ludGVySUQnLAogICAgICAgICAn
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5k
ZXggMmYyMWY1ZTUxOTEwZWI5ODUyOGM4ZGQ0NjQ0ZmU1MzI5ZmE0MWQwMS4uZjBiNGZkZmE2YTMx
MTcwNDk5NmQ3ODVhMWM5NjI3NzM2MDExOTgwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
CkBAIC0xMDgsNyArMTA4LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVAKIAogI2lmIFVTRShM
SUJXRUJSVEMpCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3Nh
Z2VzOjpXZWJSVENTb2NrZXQ6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewotICAgICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENOZXR3b3JrKCkuc29ja2V0KGRlY29kZXIuZGVz
dGluYXRpb25JRCgpKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAg
ICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLnNvY2tldCht
YWtlT2JqZWN0SWRlbnRpZmllcjxMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyVHlwZT4oZGVjb2Rl
ci5kZXN0aW5hdGlvbklEKCkpKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVy
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlJUQ01vbml0b3I6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ05ldHdvcmsuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmgKaW5kZXggN2M2NDg0ZmU3OGQ3OGQ3NGNiMzI4MzMxZjk3
NmFmYWI0MjNiNzJmNS4uZjdlMjFmNzcwYjAzM2IxN2M4NTk2OTA2YTcwMTIyZWFiNjYyNjljMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ05ldHdvcmsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvTGliV2ViUlRDTmV0d29yay5oCkBAIC0zMyw2ICszMyw3IEBACiAjZW5kaWYKIAogI2luY2x1
ZGUgIldlYk1ETlNSZWdpc3Rlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDU29ja2V0
SWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDcsNyArNDgsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygpIHsgc29j
a2V0RmFjdG9yeSgpLmRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygpOyB9CiAKLSAgICBX
ZWJSVENTb2NrZXQgc29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIpIHsgcmV0dXJuIFdlYlJUQ1Nv
Y2tldChzb2NrZXRGYWN0b3J5KCksIGlkZW50aWZpZXIpOyB9CisgICAgV2ViUlRDU29ja2V0IHNv
Y2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsgcmV0
dXJuIFdlYlJUQ1NvY2tldChzb2NrZXRGYWN0b3J5KCksIGlkZW50aWZpZXIpOyB9CiAgICAgV2Vi
UlRDUmVzb2x2ZXIgcmVzb2x2ZXIodWludDY0X3QgaWRlbnRpZmllcikgeyByZXR1cm4gV2ViUlRD
UmVzb2x2ZXIoc29ja2V0RmFjdG9yeSgpLCBpZGVudGlmaWVyKTsgfQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENT
b2NrZXQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ1NvY2tldC5jcHAKaW5kZXggZTJjNWRmNTU3YzQwMTE1ZGRmNDhmZDQwNzlhZmI5NDlhNmMy
NTU2OS4uMTI0OGIxM2ZmOWMwOWQxOGJjYzJhMTIzZmZkNzYyYTAwOTg0NDBlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tl
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ1NvY2tldC5jcHAKQEAgLTM4LDExICszOCwxMyBAQAogI2luY2x1ZGUgPHd0Zi9GdW5jdGlv
bi5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotTGliV2ViUlRDU29ja2V0OjpMaWJXZWJSVENT
b2NrZXQoTGliV2ViUlRDU29ja2V0RmFjdG9yeSYgZmFjdG9yeSwgdWludDY0X3QgaWRlbnRpZmll
ciwgVHlwZSB0eXBlLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29u
c3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQorTGliV2ViUlRDU29ja2V0OjpM
aWJXZWJSVENTb2NrZXQoTGliV2ViUlRDU29ja2V0RmFjdG9yeSYgZmFjdG9yeSwgVHlwZSB0eXBl
LCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2Nr
ZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQogICAgIDogbV9mYWN0b3J5KGZhY3RvcnkpCi0gICAg
LCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1faWRlbnRpZmllcihXZWJDb3JlOjpM
aWJXZWJSVENTb2NrZXRJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogICAgICwgbV90eXBlKHR5cGUp
CiAgICAgLCBtX2xvY2FsQWRkcmVzcyhsb2NhbEFkZHJlc3MpCiAgICAgLCBtX3JlbW90ZUFkZHJl
c3MocmVtb3RlQWRkcmVzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaAppbmRleCBhZjFmNDI1MzAxNmRlM2Ux
OTM3ZTEzNmUzYTlkMjhlMjBjMTI0NDY3Li42NDRlZTVhMGJiMWYzZjk4YWY2OWVjZDQwY2VlZTli
OWMyMDJiOTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDU29ja2V0LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgVVNF
KExJQldFQlJUQykKIAogI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDUHJvdmlkZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3
ZWJydGMvcnRjX2Jhc2UvYXN5bmNwYWNrZXRzb2NrZXQuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNTEsMTAgKzUyLDEwIEBAIGNsYXNzIExp
YldlYlJUQ1NvY2tldCBmaW5hbCA6IHB1YmxpYyBydGM6OkFzeW5jUGFja2V0U29ja2V0IHsKIHB1
YmxpYzoKICAgICBlbnVtIGNsYXNzIFR5cGUgeyBVRFAsIFNlcnZlclRDUCwgQ2xpZW50VENQLCBT
ZXJ2ZXJDb25uZWN0aW9uVENQIH07CiAKLSAgICBMaWJXZWJSVENTb2NrZXQoTGliV2ViUlRDU29j
a2V0RmFjdG9yeSYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFR5cGUsIGNvbnN0IHJ0Yzo6U29ja2V0
QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFk
ZHJlc3MpOworICAgIExpYldlYlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiwgVHlw
ZSwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29j
a2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcyk7CiAgICAgfkxpYldlYlJUQ1NvY2tldCgpOwogCi0g
ICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQor
ICAgIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogICAgIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYg
bG9jYWxBZGRyZXNzKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbEFkZHJlc3M7IH0KICAgICBjb25z
dCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MoKSBjb25zdCB7IHJldHVybiBtX3Jl
bW90ZUFkZHJlc3M7IH0KIApAQCAtODcsNyArODgsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2
b2lkIHNlbmRPbk1haW5UaHJlYWQoRnVuY3Rpb248dm9pZChJUEM6OkNvbm5lY3Rpb24mKT4mJik7
CiAKICAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBtX2ZhY3Rvcnk7Ci0gICAgdWludDY0X3Qg
bV9pZGVudGlmaWVyIHsgMCB9OworICAgIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZp
ZXIgbV9pZGVudGlmaWVyOwogICAgIFR5cGUgbV90eXBlOwogICAgIHJ0Yzo6U29ja2V0QWRkcmVz
cyBtX2xvY2FsQWRkcmVzczsKICAgICBydGM6OlNvY2tldEFkZHJlc3MgbV9yZW1vdGVBZGRyZXNz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCmluZGV4IDZkM2MwYjFiMGExOTVk
YTU1MTU3NWYzOGQ2ZGE4NjQxYTZjMTMzNDkuLjMwMDJlODM4ODZjMzkwMmZmM2QwMzU3M2MzMzYx
Y2NjODE1YTFjZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKQEAgLTM3
LDcgKzM3LDYgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXVpbnQ2NF90IExpYldlYlJUQ1Nv
Y2tldEZhY3Rvcnk6OnNfdW5pcXVlU29ja2V0SWRlbnRpZmllciA9IDA7CiB1aW50NjRfdCBMaWJX
ZWJSVENTb2NrZXRGYWN0b3J5OjpzX3VuaXF1ZVJlc29sdmVySWRlbnRpZmllciA9IDA7CiAKIHN0
YXRpYyBpbmxpbmUgcnRjOjpTb2NrZXRBZGRyZXNzIHByZXBhcmVTb2NrZXRBZGRyZXNzKGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgYm9vbCBkaXNhYmxlTm9uTG9jYWxob3N0Q29u
bmVjdGlvbnMpCkBAIC01MCw3ICs0OSw3IEBAIHN0YXRpYyBpbmxpbmUgcnRjOjpTb2NrZXRBZGRy
ZXNzIHByZXBhcmVTb2NrZXRBZGRyZXNzKGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYKIAogcnRj
OjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlU2VydmVy
VGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWlu
UG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCiB7Ci0gICAgYXV0byBzb2NrZXQg
PSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsICsrc191bmlxdWVTb2NrZXRJZGVu
dGlmaWVyLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OlNlcnZlclRDUCwgYWRkcmVzcywgcnRjOjpT
b2NrZXRBZGRyZXNzKCkpOworICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENT
b2NrZXQ+KCp0aGlzLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OlNlcnZlclRDUCwgYWRkcmVzcywg
cnRjOjpTb2NrZXRBZGRyZXNzKCkpOwogICAgIG1fc29ja2V0cy5zZXQoc29ja2V0LT5pZGVudGlm
aWVyKCksIHNvY2tldC5nZXQoKSk7CiAKICAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVy
ID0gc29ja2V0LT5pZGVudGlmaWVyKCksIGFkZHJlc3MgPSBwcmVwYXJlU29ja2V0QWRkcmVzcyhh
ZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyksIG1pblBvcnQsIG1heFBv
cnQsIG9wdGlvbnNdKCkgewpAQCAtNjYsNyArNjUsNyBAQCBydGM6OkFzeW5jUGFja2V0U29ja2V0
KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3QgcnRj
OgogCiBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVh
dGVVZHBTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBt
aW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQogewotICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1
ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRlbnRpZmllciwgTGli
V2ViUlRDU29ja2V0OjpUeXBlOjpVRFAsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsK
KyAgICBhdXRvIHNvY2tldCA9IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgTGli
V2ViUlRDU29ja2V0OjpUeXBlOjpVRFAsIGFkZHJlc3MsIHJ0Yzo6U29ja2V0QWRkcmVzcygpKTsK
ICAgICBtX3NvY2tldHMuc2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBzb2NrZXQuZ2V0KCkpOwog
CiAgICAgY2FsbE9uTWFpblRocmVhZChbaWRlbnRpZmllciA9IHNvY2tldC0+aWRlbnRpZmllcigp
LCBhZGRyZXNzID0gcHJlcGFyZVNvY2tldEFkZHJlc3MoYWRkcmVzcywgbV9kaXNhYmxlTm9uTG9j
YWxob3N0Q29ubmVjdGlvbnMpLCBtaW5Qb3J0LCBtYXhQb3J0XSgpIHsKQEAgLTgwLDcgKzc5LDcg
QEAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRl
VWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2UKIAogcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGli
V2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlQ2xpZW50VGNwU29ja2V0KGNvbnN0IHJ0Yzo6U29j
a2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90
ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMpCiB7Ci0gICAgYXV0byBz
b2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsICsrc191bmlxdWVTb2Nr
ZXRJZGVudGlmaWVyLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OkNsaWVudFRDUCwgbG9jYWxBZGRy
ZXNzLCByZW1vdGVBZGRyZXNzKTsKKyAgICBhdXRvIHNvY2tldCA9IG1ha2VVbmlxdWU8TGliV2Vi
UlRDU29ja2V0PigqdGhpcywgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpDbGllbnRUQ1AsIGxvY2Fs
QWRkcmVzcywgcmVtb3RlQWRkcmVzcyk7CiAgICAgc29ja2V0LT5zZXRTdGF0ZShMaWJXZWJSVENT
b2NrZXQ6OlNUQVRFX0NPTk5FQ1RJTkcpOwogICAgIG1fc29ja2V0cy5zZXQoc29ja2V0LT5pZGVu
dGlmaWVyKCksIHNvY2tldC5nZXQoKSk7CiAKQEAgLTk0LDkgKzkzLDkgQEAgcnRjOjpBc3luY1Bh
Y2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlQ2xpZW50VGNwU29ja2V0
KGNvbnN0IHJ0YzoKICAgICByZXR1cm4gc29ja2V0LnJlbGVhc2UoKTsKIH0KIAotcnRjOjpBc3lu
Y1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlTmV3Q29ubmVjdGlv
blNvY2tldChMaWJXZWJSVENTb2NrZXQmIHNlcnZlclNvY2tldCwgdWludDY0X3QgbmV3Q29ubmVj
dGlvblNvY2tldElkZW50aWZpZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRk
cmVzcykKK3J0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNy
ZWF0ZU5ld0Nvbm5lY3Rpb25Tb2NrZXQoTGliV2ViUlRDU29ja2V0JiBzZXJ2ZXJTb2NrZXQsIExp
YldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIsIGNv
bnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcykKIHsKLSAgICBhdXRvIHNvY2tl
dCA9IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1ZVNvY2tldElk
ZW50aWZpZXIsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2VydmVyQ29ubmVjdGlvblRDUCwgc2Vy
dmVyU29ja2V0LmxvY2FsQWRkcmVzcygpLCByZW1vdGVBZGRyZXNzKTsKKyAgICBhdXRvIHNvY2tl
dCA9IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgTGliV2ViUlRDU29ja2V0OjpU
eXBlOjpTZXJ2ZXJDb25uZWN0aW9uVENQLCBzZXJ2ZXJTb2NrZXQubG9jYWxBZGRyZXNzKCksIHJl
bW90ZUFkZHJlc3MpOwogICAgIHNvY2tldC0+c2V0U3RhdGUoTGliV2ViUlRDU29ja2V0OjpTVEFU
RV9DT05ORUNURUQpOwogICAgIG1fc29ja2V0cy5zZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIHNv
Y2tldC5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oCmluZGV4IDQ5NGY5
ZDQ0NmNjNjE5YTZiNjM2YTAxYmY5MmUzNDAyMDU4NWY3MDUuLmE5NDViMTBkYWFkYWFmNmI0NWQ0
ZDg1NmM4NmI2N2IxNDJiNzczZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaApA
QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ1Jlc29sdmVyLmgiCiAjaW5jbHVk
ZSAiTGliV2ViUlRDU29ja2V0LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENNYWNyb3Mu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaD4KICNpbmNs
dWRlIDx3ZWJydGMvcnRjX2Jhc2UvbmV0aGVscGVycy5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9wMnAv
YmFzZS9wYWNrZXRzb2NrZXRmYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAg
LTQxLDI2ICs0MiwyMiBAQCBwdWJsaWM6CiAgICAgTGliV2ViUlRDU29ja2V0RmFjdG9yeSgpIHsg
fQogCiAgICAgdm9pZCBkZXRhY2goTGliV2ViUlRDU29ja2V0Jik7Ci0KLSAgICBMaWJXZWJSVENT
b2NrZXQqIHNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyKSB7IHJldHVybiBtX3NvY2tldHMuZ2V0
KGlkZW50aWZpZXIpOyB9Ci0gICAgTGliV2ViUlRDUmVzb2x2ZXIqIHJlc29sdmVyKHVpbnQ2NF90
IGlkZW50aWZpZXIpIHsgcmV0dXJuIG1fcmVzb2x2ZXJzLmdldChpZGVudGlmaWVyKTsgfQotCi0g
ICAgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ1Jlc29sdmVyPiB0YWtlUmVzb2x2ZXIodWludDY0
X3QgaWRlbnRpZmllcikgeyByZXR1cm4gbV9yZXNvbHZlcnMudGFrZShpZGVudGlmaWVyKTsgfQot
Ci0gICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlTmV3Q29ubmVjdGlvblNvY2tldChM
aWJXZWJSVENTb2NrZXQmLCB1aW50NjRfdCBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllciwg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJik7Ci0KLSAgICB2b2lkIGRpc2FibGVOb25Mb2NhbGhv
c3RDb25uZWN0aW9ucygpIHsgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMgPSB0cnVl
OyB9CisgICAgTGliV2ViUlRDU29ja2V0KiBzb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0
SWRlbnRpZmllciBpZGVudGlmaWVyKSB7IHJldHVybiBtX3NvY2tldHMuZ2V0KGlkZW50aWZpZXIp
OyB9CiAKICAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVVZHBTb2NrZXQoY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCk7
CiAgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQs
IGludCBvcHRpb25zKTsKICAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVDbGllbnRU
Y3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0
Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQg
b3B0aW9ucyk7CisgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlTmV3Q29ubmVjdGlv
blNvY2tldChMaWJXZWJSVENTb2NrZXQmLCBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJl
c3MmKTsKKworICAgIExpYldlYlJUQ1Jlc29sdmVyKiByZXNvbHZlcih1aW50NjRfdCBpZGVudGlm
aWVyKSB7IHJldHVybiBtX3Jlc29sdmVycy5nZXQoaWRlbnRpZmllcik7IH0KKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8TGliV2ViUlRDUmVzb2x2ZXI+IHRha2VSZXNvbHZlcih1aW50NjRfdCBpZGVudGlm
aWVyKSB7IHJldHVybiBtX3Jlc29sdmVycy50YWtlKGlkZW50aWZpZXIpOyB9CiAgICAgcnRjOjpB
c3luY1Jlc29sdmVySW50ZXJmYWNlKiBjcmVhdGVBc3luY1Jlc29sdmVyKCk7CisgICAgCisgICAg
dm9pZCBkaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSB7IG1fZGlzYWJsZU5vbkxvY2Fs
aG9zdENvbm5lY3Rpb25zID0gdHJ1ZTsgfQogCiBwcml2YXRlOgotCiAgICAgLy8gV2UgY2Fubm90
IG93biBzb2NrZXRzLCBjbGllbnRzIG9mIHRoZSBmYWN0b3J5IGFyZSByZXNwb25zaWJsZSB0byBm
cmVlIHRoZW0uCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgTGliV2ViUlRDU29ja2V0Kj4gbV9zb2Nr
ZXRzOwotICAgIHN0YXRpYyB1aW50NjRfdCBzX3VuaXF1ZVNvY2tldElkZW50aWZpZXI7CisgICAg
SGFzaE1hcDxXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBMaWJXZWJSVENTb2Nr
ZXQqPiBtX3NvY2tldHM7CiAgICAgCiAgICAgLy8gV2UgY2FuIG93biByZXNvbHZlcnMgYXMgd2Ug
Y29udHJvbCB0aGVpciBEZXN0cm95IG1ldGhvZC4KICAgICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6
OnVuaXF1ZV9wdHI8TGliV2ViUlRDUmVzb2x2ZXI+PiBtX3Jlc29sdmVyczsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5j
cHAKaW5kZXggYmEzNWQ3Zjc5N2NiMDY1MWI0YjVkZjBmZDJjZDQwMDE2YzhmMmZjOS4uMjk2MWVi
NzFhNTcxNDFhMDZiZjJkZmFiYWM0NDVhMjRiZDg3MDk4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5jcHAKQEAg
LTM1LDkgKzM1LDExIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbmNs
dWRlIDx3dGYvRnVuY3Rpb24uaD4KIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi12b2lkIFdlYlJUQ1NvY2tldDo6c2lnbmFsT25OZXR3b3JrVGhyZWFk
KExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIGZhY3RvcnksIHVpbnQ2NF90IGlkZW50aWZpZXIsIEZ1
bmN0aW9uPHZvaWQoTGliV2ViUlRDU29ja2V0Jik+JiYgY2FsbGJhY2spCit2b2lkIFdlYlJUQ1Nv
Y2tldDo6c2lnbmFsT25OZXR3b3JrVGhyZWFkKExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIGZhY3Rv
cnksIExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgRnVuY3Rpb248dm9pZChM
aWJXZWJSVENTb2NrZXQmKT4mJiBjYWxsYmFjaykKIHsKICAgICAvLyBmYWN0b3J5IGlzIHN0YXlp
bmcgdmFsaWQgZHVyaW5nIHRoZSBwcm9jZXNzIGxpZmV0aW1lLgogICAgIFdlYkNvcmU6OkxpYldl
YlJUQ1Byb3ZpZGVyOjpjYWxsT25XZWJSVENOZXR3b3JrVGhyZWFkKFsmZmFjdG9yeSwgaWRlbnRp
ZmllciwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSB7CkBAIC00OCw3ICs1MCw3IEBA
IHZvaWQgV2ViUlRDU29ja2V0OjpzaWduYWxPbk5ldHdvcmtUaHJlYWQoTGliV2ViUlRDU29ja2V0
RmFjdG9yeSYgZmFjdG9yeSwgdWludDY0CiAgICAgfSk7CiB9CiAKLVdlYlJUQ1NvY2tldDo6V2Vi
UlRDU29ja2V0KExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIGZhY3RvcnksIHVpbnQ2NF90IGlkZW50
aWZpZXIpCitXZWJSVENTb2NrZXQ6OldlYlJUQ1NvY2tldChMaWJXZWJSVENTb2NrZXRGYWN0b3J5
JiBmYWN0b3J5LCBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgOiBt
X2ZhY3RvcnkoZmFjdG9yeSkKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogewpAQCAt
NzEsMjggKzczLDI4IEBAIHZvaWQgV2ViUlRDU29ja2V0OjpzaWduYWxSZWFkUGFja2V0KGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgY29uc3QgUlRDTmV0CiAKIHZvaWQgV2ViUlRDU29j
a2V0OjpzaWduYWxTZW50UGFja2V0KGludCBydGNQYWNrZXRJRCwgaW50NjRfdCBzZW5kVGltZU1z
KQogewotICAgIHNpZ25hbE9uTmV0d29ya1RocmVhZChtX2ZhY3RvcnksIG1faWRlbnRpZmllciwg
W3J0Y1BhY2tldElELCBzZW5kVGltZU1zXShMaWJXZWJSVENTb2NrZXQmIHNvY2tldCkgeworICAg
IHNpZ25hbE9uTmV0d29ya1RocmVhZChtX2ZhY3RvcnksIG1faWRlbnRpZmllciwgW3J0Y1BhY2tl
dElELCBzZW5kVGltZU1zXShhdXRvJiBzb2NrZXQpIHsKICAgICAgICAgc29ja2V0LnNpZ25hbFNl
bnRQYWNrZXQocnRjUGFja2V0SUQsIHNlbmRUaW1lTXMpOwogICAgIH0pOwogfQogCiB2b2lkIFdl
YlJUQ1NvY2tldDo6c2lnbmFsQ29ubmVjdCgpCiB7Ci0gICAgc2lnbmFsT25OZXR3b3JrVGhyZWFk
KG1fZmFjdG9yeSwgbV9pZGVudGlmaWVyLCBbXShMaWJXZWJSVENTb2NrZXQmIHNvY2tldCkgewor
ICAgIHNpZ25hbE9uTmV0d29ya1RocmVhZChtX2ZhY3RvcnksIG1faWRlbnRpZmllciwgW10oYXV0
byYgc29ja2V0KSB7CiAgICAgICAgIHNvY2tldC5zaWduYWxDb25uZWN0KCk7CiAgICAgfSk7CiB9
CiAKIHZvaWQgV2ViUlRDU29ja2V0OjpzaWduYWxDbG9zZShpbnQgZXJyb3IpCiB7Ci0gICAgc2ln
bmFsT25OZXR3b3JrVGhyZWFkKG1fZmFjdG9yeSwgbV9pZGVudGlmaWVyLCBbZXJyb3JdKExpYldl
YlJUQ1NvY2tldCYgc29ja2V0KSB7CisgICAgc2lnbmFsT25OZXR3b3JrVGhyZWFkKG1fZmFjdG9y
eSwgbV9pZGVudGlmaWVyLCBbZXJyb3JdKGF1dG8mIHNvY2tldCkgewogICAgICAgICBzb2NrZXQu
c2lnbmFsQ2xvc2UoZXJyb3IpOwogICAgIH0pOwogfQogCi12b2lkIFdlYlJUQ1NvY2tldDo6c2ln
bmFsTmV3Q29ubmVjdGlvbih1aW50NjRfdCBuZXdTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENO
ZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQordm9pZCBXZWJSVENTb2NrZXQ6
OnNpZ25hbE5ld0Nvbm5lY3Rpb24oTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdTb2NrZXRJ
ZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNz
KQogewotICAgIHNpZ25hbE9uTmV0d29ya1RocmVhZChtX2ZhY3RvcnksIG1faWRlbnRpZmllciwg
W25ld1NvY2tldElkZW50aWZpZXIsIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjppc29sYXRl
ZENvcHkocmVtb3RlQWRkcmVzcy52YWx1ZSldKExpYldlYlJUQ1NvY2tldCYgc29ja2V0KSB7Cisg
ICAgc2lnbmFsT25OZXR3b3JrVGhyZWFkKG1fZmFjdG9yeSwgbV9pZGVudGlmaWVyLCBbbmV3U29j
a2V0SWRlbnRpZmllciwgcmVtb3RlQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShy
ZW1vdGVBZGRyZXNzLnZhbHVlKV0oYXV0byYgc29ja2V0KSB7CiAgICAgICAgIHNvY2tldC5zaWdu
YWxOZXdDb25uZWN0aW9uKHNvY2tldC5tX2ZhY3RvcnkuY3JlYXRlTmV3Q29ubmVjdGlvblNvY2tl
dChzb2NrZXQsIG5ld1NvY2tldElkZW50aWZpZXIsIHJlbW90ZUFkZHJlc3MpKTsKICAgICB9KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9X
ZWJSVENTb2NrZXQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9X
ZWJSVENTb2NrZXQuaAppbmRleCA5ZjRjYjc4MDg2ODVkZDY3ODZjMWRkNWI3MzYxYzI3MjI0MjBl
ODlmLi41N2UxOGRmZTMwMzhmY2U3ZTcyYWI0OWVmZThhMjg3MGI0Zjk4MmZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tl
dC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgVVNFKExJQldFQlJUQykKIAogI2luY2x1ZGUgIlJU
Q05ldHdvcmsuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1NvY2tldElkZW50aWZpZXIu
aD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC00Mywx
MSArNDQsMTEgQEAgY2xhc3MgTGliV2ViUlRDU29ja2V0RmFjdG9yeTsKIAogY2xhc3MgV2ViUlRD
U29ja2V0IHsKIHB1YmxpYzoKLSAgICBXZWJSVENTb2NrZXQoTGliV2ViUlRDU29ja2V0RmFjdG9y
eSYsIHVpbnQ2NF90KTsKKyAgICBXZWJSVENTb2NrZXQoTGliV2ViUlRDU29ja2V0RmFjdG9yeSYs
IFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIpOwogCiAgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAotICAgIHN0YXRp
YyB2b2lkIHNpZ25hbE9uTmV0d29ya1RocmVhZChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiwgdWlu
dDY0X3QsIEZ1bmN0aW9uPHZvaWQoTGliV2ViUlRDU29ja2V0Jik+JiYpOworICAgIHN0YXRpYyB2
b2lkIHNpZ25hbE9uTmV0d29ya1RocmVhZChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiwgV2ViQ29y
ZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgRnVuY3Rpb248dm9pZChMaWJXZWJSVENTb2Nr
ZXQmKT4mJik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzaWduYWxSZWFkUGFja2V0KGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFJUQ05ldHdvcms6OklQQWRkcmVzcyYsIHVpbnQxNl90
IHBvcnQsIGludDY0X3QpOwpAQCAtNTUsMTAgKzU2LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBz
aWduYWxBZGRyZXNzUmVhZHkoY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYpOwogICAg
IHZvaWQgc2lnbmFsQ29ubmVjdCgpOwogICAgIHZvaWQgc2lnbmFsQ2xvc2UoaW50KTsKLSAgICB2
b2lkIHNpZ25hbE5ld0Nvbm5lY3Rpb24odWludDY0X3QgbmV3U29ja2V0SWRlbnRpZmllciwgY29u
c3QgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJik7CisgICAgdm9pZCBzaWduYWxO
ZXdDb25uZWN0aW9uKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3U29ja2V0
SWRlbnRpZmllciwgY29uc3QgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJik7CiAK
ICAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBtX2ZhY3Rvcnk7Ci0gICAgdWludDY0X3QgbV9p
ZGVudGlmaWVyIHsgMCB9OworICAgIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIg
bV9pZGVudGlmaWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Nv
Y2tldC5tZXNzYWdlcy5pbgppbmRleCBmNjExMjg1YWZhNzM2NWFlMWRiNzg4YjI3Mzg0YTVmZWZl
ODg2ZTdmLi44Zjg3MmVlMjE5YTJjNzc2OGRhODUzYWE0MWYyNTdmZjQ1NzRkYzM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW4KQEAgLTI4LDcgKzI4LDcgQEAgbWVzc2FnZXMgLT4g
V2ViUlRDU29ja2V0IHsKICAgICBTaWduYWxBZGRyZXNzUmVhZHkoV2ViS2l0OjpSVENOZXR3b3Jr
OjpTb2NrZXRBZGRyZXNzIGFkZHJlc3MpCiAgICAgU2lnbmFsQ29ubmVjdCgpCiAgICAgU2lnbmFs
Q2xvc2UoaW50IGVycm9yKQotICAgIFNpZ25hbE5ld0Nvbm5lY3Rpb24odWludDY0X3QgbmV3U29j
a2V0SWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHJlbW90ZUFk
ZHJlc3MpCisgICAgU2lnbmFsTmV3Q29ubmVjdGlvbihXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyIG5ld1NvY2tldElkZW50aWZpZXIsIFdlYktpdDo6UlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyByZW1vdGVBZGRyZXNzKQogfQogCiAjZW5kaWYgLy8gVVNFKExJQldFQlJUQykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379998</attachid>
            <date>2019-10-02 01:01:04 -0700</date>
            <delta_ts>2019-10-02 01:28:43 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-202400-20191002100102.patch</filename>
            <type>text/plain</type>
            <size>44246</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ2MGM2OTFmODAyNmRk
MjlhYWRiY2NiYjM5NTdhYTNiNjRlMDczMS4uYzE3OGEzODM5MmMzNjBlYTNmZGI2NThjNzE1NmZl
ZjUxYTAyZTIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTEwLTAxICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc3Ryb25nbHkgdHlw
ZWQgaWRlbnRpZmllcnMgZm9yIHdlYnJ0YyBzb2NrZXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MDAKKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGNoYW5nZSBvZiBiZWhhdmlvci4K
KworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaC4KKwogMjAxOS0xMC0wMSAg
eW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUXVldWUgZXZlbnRz
IGFuZCBwcm9taXNlIHJlc29sdXRpb24gaW4gUlRDUGVlckNvbm5lY3Rpb24gd2hlbiBzdXNwZW5k
ZWQgZm9yIHBhZ2UgY2FjaGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjYyYjZjZmNhYzlkMjQ0YjcwODcwMTU0NmRl
YmIzYzZjZWExNDA4My4uZTM2NjYzM2I0ZDIyNmQ2MGE0NjVmNDE0YWUwOWM1NDc0YWJmZjNmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAxOS0xMC0wMSAgeW91ZW5uIGZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHN0cm9uZ2x5IHR5cGVkIGlkZW50aWZpZXJz
IGZvciB3ZWJydGMgc29ja2V0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAyNDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisK
KyAgICAgICAgUmVmYWN0b3JpbmcgdG8gdXNlIExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaW5z
dGVhZCBvZiB1aW50NjRfdC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJX
ZWJSVENTb2NrZXRDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRD
bGllbnQ6OkxpYldlYlJUQ1NvY2tldENsaWVudCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQ
cm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1By
b3ZpZGVyOjpjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtSVENQcm92aWRlcjo6d3JhcE5ld1RDUENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmFkZFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSVENQcm92aWRlcjo6dGFrZVNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQ
cm92aWRlcjo6bmV3Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92
aWRlcjo6ZGlkUmVjZWl2ZU5ldHdvcmtSVENTb2NrZXRNZXNzYWdlKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjbG9zZUxpc3RlbmluZ1NvY2tldHMpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNhbGxTb2NrZXQpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1JUQ1NvY2tldDo6TmV0d29ya1JUQ1NvY2tldCk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaDoKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmg6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJU
Q05ldHdvcms6OnNvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9M
aWJXZWJSVENTb2NrZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6Okxp
YldlYlJUQ1NvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENTb2NrZXQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ1NvY2tldEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRG
YWN0b3J5OjpjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJS
VENTb2NrZXRGYWN0b3J5OjpjcmVhdGVVZHBTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJX
ZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQpOgorICAgICAgICAoV2Vi
S2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3Rv
cnkuaDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6c29ja2V0KToK
KyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6cmVzb2x2ZXIpOgorICAg
ICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojp0YWtlUmVzb2x2ZXIpOgorICAg
ICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpkaXNhYmxlTm9uTG9jYWxob3N0
Q29ubmVjdGlvbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRD
U29ja2V0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU29ja2V0OjpzaWduYWxPbk5ldHdv
cmtUaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTb2NrZXQ6OldlYlJUQ1NvY2tldCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6c2lnbmFsU2VudFBhY2tldCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6c2lnbmFsQ29ubmVjdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlJUQ1NvY2tldDo6c2lnbmFsQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENT
b2NrZXQ6OnNpZ25hbE5ld0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvV2ViUlRDU29ja2V0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW46CisKIDIwMTktMTAtMDEgIHlvdWVubiBmYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSByYWNlcyBjb25kaXRpb24g
d2hlbiB2YWxpZGF0aW5nIGNhcHR1cmUgc2FuZGJveCBleHRlbnNpb24gcmV2b2NhdGlvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKaW5kZXggNTRhZjIyZGFkZTY1M2ZkM2FiYTc4NmMxNTlmZTAwZDJmMGE4YmQ5
NC4uZGRiMzU5ZTM5MTI0ODc3Zjg0MGNkODA2OTU1ZGVkMzExMDA2ZTM4NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCkBAIC0xMTU5LDYgKzExNTksNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUFERVJTCiAKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
TWFjcm9zLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJv
dmlkZXIuaAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENTb2Nr
ZXRJZGVudGlmaWVyLmgKIAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25DbGll
bnRNb2NrLmgKICAgICBwbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBhMTc2MWM2N2I0Yzk1ZDhlYWI0NzdhN2MwMGFlNTU0NWQyM2E3OWVlLi4zZmJiNTVlZWMwOWRj
NjYyN2QwMjE1NzI4OTk5Y2I0ZTNiYjNkZDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDIzLDYgKzEwMjMsNyBAQAogCQkz
RkZGRjlBOTE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBNzE1OUQ5QTU1
MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggKi87IH07CiAJCTNGRkZGOUFFMTU5
RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGRkZGOUFDMTU5RDlCMDYwMDIwQkJENSAv
KiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCAqLzsgfTsKIAkJNDEwNzkwOEMxRkMzRjAzMzAwNjFC
MjdBIC8qIENsaWVudE9yaWdpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDEwNzkwOEExRkMzRTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxMEU0NDYx
MjM0MzczRTkwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTBFNDQ1RjIzNDM3M0FEMDAw
MTczRDQgLyogTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMTAzQUFDMUUzOTc5MTAwMDc2OUYwMyAv
KiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUE4MUUzOTc5MEEwMDc2OUYwMyAvKiBSZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCAqLzsgfTsKIAkJNDExMDNBQUMxRTM5NzkxMDAwNzY5RjE0
IC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FBODFFMzk3OTBBMDA3NjlGMTQgLyog
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuaCAqLzsgfTsKIAkJNDExMDNBQUQxRTM5
NzkxMDAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDNBQTkxRTM5NzkwQTAwNzY5
RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oICovOyB9OwpAQCAtNzE3Myw2ICs3
MTc0LDcgQEAKIAkJNDEwNjI2QTcyMjgwQTIyQTAwNkQxQjU5IC8qIEpTQXVkaW9Ob2RlQ3VzdG9t
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXVkaW9Ob2RlQ3Vz
dG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwNzkwOEExRkMzRTRGMjAw
NjFCMjdBIC8qIENsaWVudE9yaWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDbGllbnRPcmlnaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwQjdFNzEx
MDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwRTQ0NUYyMzQzNzNBRDAwMDE3M0Q0IC8qIExpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
TGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMDNBQTcx
RTM5NzkwQTAwNzY5RjAzIC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3Vy
Y2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEwM0FBNzFFMzk3OTBBMDA3
NjlGMTQgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29j
b2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEwM0FBODFFMzk3OTBBMDA3
NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTc3NjksNiArMTc3NzEsNyBAQAogCQkJCTQxNTc0NzQ0MUUz
ODY5OUUwMEU5MTREOCAvKiBMaWJXZWJSVENQcm92aWRlci5oICovLAogCQkJCTQxQjI4QjM4MUY4
NjBCRDEwMEZCNTJBQyAvKiBMaWJXZWJSVENQcm92aWRlckNvY29hLmNwcCAqLywKIAkJCQk0MUIy
OEIzNjFGODYwQkQwMDBGQjUyQUMgLyogTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5oICovLAorCQkJ
CTQxMEU0NDVGMjM0MzczQUQwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmgg
Ki8sCiAJCQkpOwogCQkJbmFtZSA9IGxpYndlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkBAIC0zMDc0NSw2ICszMDc0OCw3IEBACiAJCQkJNDE3NjEyQjIxRTNBOTk0MDAwQzNEODFE
IC8qIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDE1NzQ3NDgxRTM4NjlBNzAwRTkxNEQ4IC8qIExpYldlYlJUQ1Byb3ZpZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MUIyOEIzRDFGODYwRUYzMDBGQjUyQUMgLyogTGliV2ViUlRDUHJvdmlkZXJD
b2NvYS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwRTQ0NjEyMzQzNzNFOTAwMDE3M0Q0IC8qIExp
YldlYlJUQ1NvY2tldElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzMwRDkxMTI0
OEYwQjMwMEQzQTlDOSAvKiBMaWdodFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5
NjUwRDAwQkYyMjAwNzFCNzgyIC8qIExpbmVhckdyYWRpZW50QXR0cmlidXRlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQUIzMUM5MUUxMEFFMUI4RTAwMEM3QjkyIC8qIExpbmVDbGFtcFZhbHVlLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDU29ja2V0SWRlbnRp
Zmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY3NGYxMzZlOTE0NmQzNjBkN2ZmMWRmNzE4NjY4ZTBlZTliMGEz
MWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSAsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRp
Zmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gTGliV2ViUlRDU29ja2V0SWRl
bnRpZmllclR5cGUgeyB9OwordXNpbmcgTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciA9IE9iamVj
dElkZW50aWZpZXI8TGliV2ViUlRDU29ja2V0SWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmNwcAppbmRleCBjNTk5NWJjNTMyNTVm
ZTJkMzc2ZmM0NWZiZmI5ZWU2MzFlZTczZTcxLi4xNWUzOTMyNGZlNjc4Y2Q3YTY5MDNmNDVmNTJh
Y2MyYTgwZDg3NmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5jcHAKQEAgLTM3LDcgKzM3LDcg
QEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLUxpYldlYlJUQ1NvY2tldENsaWVudDo6TGliV2Vi
UlRDU29ja2V0Q2xpZW50KHVpbnQ2NF90IGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYg
cnRjUHJvdmlkZXIsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmIHNv
Y2tldCwgVHlwZSB0eXBlKQorTGliV2ViUlRDU29ja2V0Q2xpZW50OjpMaWJXZWJSVENTb2NrZXRD
bGllbnQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3
b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1Bh
Y2tldFNvY2tldD4mJiBzb2NrZXQsIFR5cGUgdHlwZSkKICAgICA6IG1faWRlbnRpZmllcihpZGVu
dGlmaWVyKQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX3J0Y1Byb3ZpZGVyKHJ0Y1Byb3Zp
ZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGli
V2ViUlRDU29ja2V0Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaAppbmRleCAyNWFhNTRhZmE3ZDc2ZmE5NDU2YWZiYjhj
YzQxZDExNmFiYWZjODZkLi41YWYzOTMwNmMyZDUxN2EyZjU4Yzg3ODAzMTI0YWMyZjk3MzFhYjUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJS
VENTb2NrZXRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaApAQCAtNDEsMTAgKzQxLDEwIEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogY2xhc3MgTGliV2ViUlRDU29ja2V0Q2xpZW50IGZpbmFsIDogcHVibGljIE5ldHdv
cmtSVENQcm92aWRlcjo6U29ja2V0LCBwdWJsaWMgc2lnc2xvdDo6aGFzX3Nsb3RzPD4gewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIExpYldlYlJUQ1NvY2tldENs
aWVudCh1aW50NjRfdCBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBzdGQ6OnVuaXF1
ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiwgVHlwZSk7CisgICAgTGliV2ViUlRDU29j
a2V0Q2xpZW50KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQ
cm92aWRlciYsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmLCBUeXBl
KTsKIAogcHJpdmF0ZToKLSAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllciBpZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAg
ICAgVHlwZSB0eXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgdm9pZCBj
bG9zZSgpIGZpbmFsOwogCkBAIC02MCw3ICs2MCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNp
Z25hbEFkZHJlc3NSZWFkeSgpOwogCi0gICAgdWludDY0X3QgbV9pZGVudGlmaWVyOworICAgIFdl
YkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFR5cGUg
bV90eXBlOwogICAgIE5ldHdvcmtSVENQcm92aWRlciYgbV9ydGNQcm92aWRlcjsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gbV9zb2NrZXQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3Zp
ZGVyLmNwcAppbmRleCBmN2VlNGRiZDg2ZmZjNzVkNTdlYjdiMzg2ZTYwMzhjNTdhMzUxZGI3Li4z
MmNlYTVkNDk0YjA3MzhhN2MwNGE4Zjc2ZTllOWVlYzRjMmEzNGQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRl
ci5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBzdGF0aWMgaW5saW5lIHN0ZDo6dW5pcXVlX3B0cjxy
dGM6OlRocmVhZD4gY3JlYXRlVGhyZWFkKCkKIHsKQEAgLTk2LDcgKzk3LDcgQEAgdm9pZCBOZXR3
b3JrUlRDUHJvdmlkZXI6OmNsb3NlKCkKICAgICB9KTsKIH0KIAotdm9pZCBOZXR3b3JrUlRDUHJv
dmlkZXI6OmNyZWF0ZVNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8
cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiBzb2NrZXQsIFNvY2tldDo6VHlwZSB0eXBlKQordm9p
ZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYm
IHNvY2tldCwgU29ja2V0OjpUeXBlIHR5cGUpCiB7CiAgICAgaWYgKCFzb2NrZXQpIHsKICAgICAg
ICAgc2VuZEZyb21NYWluVGhyZWFkKFtpZGVudGlmaWVyLCBzaXplID0gbV9zb2NrZXRzLnNpemUo
KV0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKSB7CkBAIC0xMDgsNyArMTA5LDcgQEAgdm9p
ZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBz
dGQ6OnVuaXF1ZV9wdHI8cnRjOjoKICAgICBhZGRTb2NrZXQoaWRlbnRpZmllciwgbWFrZVVuaXF1
ZTxMaWJXZWJSVENTb2NrZXRDbGllbnQ+KGlkZW50aWZpZXIsICp0aGlzLCBXVEZNb3ZlKHNvY2tl
dCksIHR5cGUpKTsKIH0KIAotdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVVEUFNvY2tl
dCh1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBh
ZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQordm9pZCBOZXR3b3Jr
UlRDUHJvdmlkZXI6OmNyZWF0ZVVEUFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQx
Nl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpCiB7CiAgICAgY2FsbE9uUlRDTmV0d29ya1Ro
cmVhZChbdGhpcywgaWRlbnRpZmllciwgYWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29w
eShhZGRyZXNzLnZhbHVlKSwgbWluUG9ydCwgbWF4UG9ydF0oKSB7CiAgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiBzb2NrZXQobV9wYWNrZXRTb2NrZXRGYWN0
b3J5LT5DcmVhdGVVZHBTb2NrZXQoYWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydCkpOwpAQCAtMTE2
LDcgKzExNyw3IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVVRFBTb2NrZXQodWlu
dDY0X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6CiAgICAgfSk7CiB9CiAKLXZvaWQg
TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQodWludDY0X3QgaWRlbnRp
ZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3Qg
bWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCit2b2lkIE5ldHdvcmtSVENQ
cm92aWRlcjo6Y3JlYXRlU2VydmVyVENQU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIg
aWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWlu
dDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCiB7CiAgICAgaWYg
KCFtX2lzTGlzdGVuaW5nU29ja2V0QXV0aG9yaXplZCkgewogICAgICAgICBpZiAobV9jb25uZWN0
aW9uKQpAQCAtMTM3LDcgKzEzOCw3IEBAIHJ0Yzo6UHJveHlJbmZvIE5ldHdvcmtSVENQcm92aWRl
cjo6cHJveHlJbmZvRnJvbVNlc3Npb24oY29uc3QgUlRDTmV0d29yazo6U29ja2V0CiB9CiAjZW5k
aWYKIAotdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCh1aW50
NjRfdCBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFk
ZHJlc3MsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFN0
cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMpCit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6
Y3JlYXRlQ2xpZW50VENQU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBTdHJpbmcmJiB1c2VyQWdl
bnQsIGludCBvcHRpb25zKQogewogICAgIGF1dG8qIHNlc3Npb24gPSBtX2Nvbm5lY3Rpb24tPm5l
dHdvcmtTZXNzaW9uKCk7CiAgICAgaWYgKCFzZXNzaW9uKSB7CkBAIC0xNTAsNyArMTUxLDcgQEAg
dm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCh1aW50NjRfdCBp
ZGVudGlmaWVyLCBjb25zdCBSVENOZXQKICAgICB9KTsKIH0KIAotdm9pZCBOZXR3b3JrUlRDUHJv
dmlkZXI6OndyYXBOZXdUQ1BDb25uZWN0aW9uKHVpbnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2NF90
IG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKQordm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6
OndyYXBOZXdUQ1BDb25uZWN0aW9uKExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmll
ciwgTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmll
cikKIHsKICAgICBjYWxsT25SVENOZXR3b3JrVGhyZWFkKFt0aGlzLCBpZGVudGlmaWVyLCBuZXdD
b25uZWN0aW9uU29ja2V0SWRlbnRpZmllcl0oKSB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxy
dGM6OkFzeW5jUGFja2V0U29ja2V0PiBzb2NrZXQgPSBtX3BlbmRpbmdJbmNvbWluZ1NvY2tldHMu
dGFrZShuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcik7CkBAIC0xNTgsMjcgKzE1OSwyOCBA
QCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6d3JhcE5ld1RDUENvbm5lY3Rpb24odWludDY0X3Qg
aWRlbnRpZmllciwgdWludDY0X3QgbmV3QwogICAgIH0pOwogfQogCi12b2lkIE5ldHdvcmtSVENQ
cm92aWRlcjo6YWRkU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxT
b2NrZXQ+JiYgc29ja2V0KQordm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmFkZFNvY2tldChMaWJX
ZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTb2NrZXQ+
JiYgc29ja2V0KQogewogICAgIG1fc29ja2V0cy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShzb2Nr
ZXQpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBO
ZXR3b3JrUlRDUHJvdmlkZXI6OnRha2VTb2NrZXQodWludDY0X3QgaWRlbnRpZmllcikKK3N0ZDo6
dW5pcXVlX3B0cjxOZXR3b3JrUlRDUHJvdmlkZXI6OlNvY2tldD4gTmV0d29ya1JUQ1Byb3ZpZGVy
Ojp0YWtlU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAg
ICByZXR1cm4gbV9zb2NrZXRzLnRha2UoaWRlbnRpZmllcik7CiB9CiAKIHZvaWQgTmV0d29ya1JU
Q1Byb3ZpZGVyOjpuZXdDb25uZWN0aW9uKFNvY2tldCYgc2VydmVyU29ja2V0LCBzdGQ6OnVuaXF1
ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiBuZXdTb2NrZXQpCiB7Ci0gICAgc2VuZEZy
b21NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc2VydmVyU29ja2V0LmlkZW50aWZpZXIoKSwgaW5j
b21pbmdTb2NrZXRJZGVudGlmaWVyID0gKyttX2luY29taW5nU29ja2V0SWRlbnRpZmllciwgcmVt
b3RlQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShuZXdTb2NrZXQtPkdldFJlbW90
ZUFkZHJlc3MoKSldKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgeworICAgIGF1dG8gaW5j
b21pbmdTb2NrZXRJZGVudGlmaWVyID0gTGliV2ViUlRDU29ja2V0SWRlbnRpZmllcjo6Z2VuZXJh
dGUoKTsKKyAgICBzZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzZXJ2ZXJTb2NrZXQu
aWRlbnRpZmllcigpLCBpbmNvbWluZ1NvY2tldElkZW50aWZpZXIsIHJlbW90ZUFkZHJlc3MgPSBS
VENOZXR3b3JrOjppc29sYXRlZENvcHkobmV3U29ja2V0LT5HZXRSZW1vdGVBZGRyZXNzKCkpXShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pIHsKICAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1l
c3NhZ2VzOjpXZWJSVENTb2NrZXQ6OlNpZ25hbE5ld0Nvbm5lY3Rpb24oaW5jb21pbmdTb2NrZXRJ
ZGVudGlmaWVyLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MpKSwgaWRl
bnRpZmllcik7CiAgICAgfSk7Ci0gICAgbV9wZW5kaW5nSW5jb21pbmdTb2NrZXRzLmFkZChtX2lu
Y29taW5nU29ja2V0SWRlbnRpZmllciwgV1RGTW92ZShuZXdTb2NrZXQpKTsKKyAgICBtX3BlbmRp
bmdJbmNvbWluZ1NvY2tldHMuYWRkKGluY29taW5nU29ja2V0SWRlbnRpZmllciwgV1RGTW92ZShu
ZXdTb2NrZXQpKTsKIH0KIAogdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmRpZFJlY2VpdmVOZXR3
b3JrUlRDU29ja2V0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlcikKIHsKLSAgICBOZXR3b3JrUlRDU29ja2V0KGRlY29kZXIuZGVzdGluYXRp
b25JRCgpLCAqdGhpcykuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7Cisg
ICAgTmV0d29ya1JUQ1NvY2tldChtYWtlT2JqZWN0SWRlbnRpZmllcjxMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpLCAqdGhpcykuZGlkUmVjZWl2
ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkK
QEAgLTI0NSw3ICsyNDcsNyBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y2xvc2VMaXN0ZW5p
bmdTb2NrZXRzKEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZAogCiAgICAgbV9pc0xp
c3RlbmluZ1NvY2tldEF1dGhvcml6ZWQgPSBmYWxzZTsKICAgICBjYWxsT25SVENOZXR3b3JrVGhy
ZWFkKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSgpIG11dGFibGUgewotICAgICAgICBWZWN0b3I8dWludDY0X3Q+IGxpc3RlbmluZ1NvY2tldElk
ZW50aWZpZXJzOworICAgICAgICBWZWN0b3I8TGliV2ViUlRDU29ja2V0SWRlbnRpZmllcj4gbGlz
dGVuaW5nU29ja2V0SWRlbnRpZmllcnM7CiAgICAgICAgIGZvciAoYXV0byYga2V5VmFsdWUgOiBt
X3NvY2tldHMpIHsKICAgICAgICAgICAgIGlmIChrZXlWYWx1ZS52YWx1ZS0+dHlwZSgpID09IFNv
Y2tldDo6VHlwZTo6U2VydmVyVENQKQogICAgICAgICAgICAgICAgIGxpc3RlbmluZ1NvY2tldElk
ZW50aWZpZXJzLmFwcGVuZChrZXlWYWx1ZS5rZXkpOwpAQCAtMjg1LDcgKzI4Nyw3IEBAIHZvaWQg
TmV0d29ya1JUQ1Byb3ZpZGVyOjpjYWxsT25SVENOZXR3b3JrVGhyZWFkKEZ1bmN0aW9uPHZvaWQo
KT4mJiBjYWxsYmFjaykKICAgICBtX3J0Y05ldHdvcmtUaHJlYWQtPlBvc3QoUlRDX0ZST01fSEVS
RSwgdGhpcywgMSwgbmV3IE5ldHdvcmtNZXNzYWdlRGF0YSgqdGhpcywgV1RGTW92ZShjYWxsYmFj
aykpKTsKIH0KIAotdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNhbGxTb2NrZXQodWludDY0X3Qg
aWRlbnRpZmllciwgRnVuY3Rpb248dm9pZChTb2NrZXQmKT4mJiBjYWxsYmFjaykKK3ZvaWQgTmV0
d29ya1JUQ1Byb3ZpZGVyOjpjYWxsU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRl
bnRpZmllciwgRnVuY3Rpb248dm9pZChTb2NrZXQmKT4mJiBjYWxsYmFjaykKIHsKICAgICBjYWxs
T25SVENOZXR3b3JrVGhyZWFkKFt0aGlzLCBpZGVudGlmaWVyLCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXSgpIHsKICAgICAgICAgaWYgKGF1dG8qIHNvY2tldCA9IG1fc29ja2V0cy5nZXQo
aWRlbnRpZmllcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCmluZGV4IDYzMjY1ZGE0MDYwOGYwY2M5MzQ4ZmQx
YTQ3ZWNkMmIzNWY5NjNjMjkuLjI1MTA1MGQzNjEwYTk1NTVkN2NkNDg3MzE4MzU4ZjllNzgwMmE2
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENQcm92aWRlci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiTmV0d29y
a1JUQ01vbml0b3IuaCIKICNpbmNsdWRlICJSVENOZXR3b3JrLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9MaWJXZWJSVENNYWNyb3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1NvY2tldElk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3ZWJydGMvcDJwL2Jhc2UvYmFzaWNwYWNrZXRzb2NrZXRm
YWN0b3J5Lmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL3RoaXJkX3BhcnR5L3NpZ3Nsb3Qv
c2lnc2xvdC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC03MiwxOSArNzMsMTkgQEAg
cHVibGljOgogCiAgICAgICAgIGVudW0gY2xhc3MgVHlwZSA6IHVpbnQ4X3QgeyBVRFAsIFNlcnZl
clRDUCwgQ2xpZW50VENQLCBTZXJ2ZXJDb25uZWN0aW9uVENQIH07CiAgICAgICAgIHZpcnR1YWwg
VHlwZSB0eXBlKCkgY29uc3QgID0gMDsKLSAgICAgICAgdmlydHVhbCB1aW50NjRfdCBpZGVudGlm
aWVyKCkgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0ID0gMDsKIAogICAgICAgICB2aXJ0dWFsIHZv
aWQgY2xvc2UoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRPcHRpb24oaW50IG9wdGlv
biwgaW50IHZhbHVlKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZW5kVG8oY29uc3QgV2Vi
Q29yZTo6U2hhcmVkQnVmZmVyJiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgY29uc3QgcnRj
OjpQYWNrZXRPcHRpb25zJikgPSAwOwogICAgIH07CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U29j
a2V0PiB0YWtlU29ja2V0KHVpbnQ2NF90KTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U29ja2V0PiB0
YWtlU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIpOwogICAgIHZvaWQg
cmVzb2x2ZXJEb25lKHVpbnQ2NF90KTsKIAogICAgIHZvaWQgY2xvc2UoKTsKIAotICAgIHZvaWQg
Y2FsbFNvY2tldCh1aW50NjRfdCwgRnVuY3Rpb248dm9pZChTb2NrZXQmKT4mJik7CisgICAgdm9p
ZCBjYWxsU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIEZ1bmN0aW9u
PHZvaWQoU29ja2V0Jik+JiYpOwogICAgIHZvaWQgY2FsbE9uUlRDTmV0d29ya1RocmVhZChGdW5j
dGlvbjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2VuZEZyb21NYWluVGhyZWFkKEZ1bmN0aW9uPHZv
aWQoSVBDOjpDb25uZWN0aW9uJik+JiYpOwogCkBAIC05NiwyNCArOTcsMjQgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBOZXR3b3JrUlRDUHJvdmlkZXIoTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmKTsKIAotICAgIHZvaWQgY3JlYXRlVURQU29ja2V0KHVpbnQ2NF90LCBj
b25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QsIHVpbnQxNl90KTsKLSAg
ICB2b2lkIGNyZWF0ZUNsaWVudFRDUFNvY2tldCh1aW50NjRfdCwgY29uc3QgUlRDTmV0d29yazo6
U29ja2V0QWRkcmVzcyYsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBTdHJpbmcm
JiB1c2VyQWdlbnQsIGludCk7Ci0gICAgdm9pZCBjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQodWludDY0
X3QsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1
aW50MTZfdCBtYXhQb3J0LCBpbnQpOwotICAgIHZvaWQgd3JhcE5ld1RDUENvbm5lY3Rpb24odWlu
dDY0X3QgaWRlbnRpZmllciwgdWludDY0X3QgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIp
OworICAgIHZvaWQgY3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCwgdWludDE2
X3QpOworICAgIHZvaWQgY3JlYXRlQ2xpZW50VENQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBjb25zdCBS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQpOworICAg
IHZvaWQgY3JlYXRlU2VydmVyVENQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0
LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQpOworICAgIHZvaWQgd3JhcE5ld1RDUENvbm5lY3Rpb24o
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpM
aWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKTsK
IAogICAgIHZvaWQgY3JlYXRlUmVzb2x2ZXIodWludDY0X3QsIGNvbnN0IFN0cmluZyYpOwogICAg
IHZvaWQgc3RvcFJlc29sdmVyKHVpbnQ2NF90KTsKIAotICAgIHZvaWQgYWRkU29ja2V0KHVpbnQ2
NF90LCBzdGQ6OnVuaXF1ZV9wdHI8U29ja2V0PiYmKTsKKyAgICB2b2lkIGFkZFNvY2tldChXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U29ja2V0PiYm
KTsKIAotICAgIHZvaWQgY3JlYXRlU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIHN0ZDo6dW5p
cXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmLCBTb2NrZXQ6OlR5cGUpOworICAgIHZv
aWQgY3JlYXRlU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIHN0ZDo6
dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmLCBTb2NrZXQ6OlR5cGUpOwogCiAg
ICAgdm9pZCBPbk1lc3NhZ2UocnRjOjpNZXNzYWdlKik7CiAKICAgICBzdGF0aWMgcnRjOjpQcm94
eUluZm8gcHJveHlJbmZvRnJvbVNlc3Npb24oY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVz
cyYsIE5ldHdvcmtTZXNzaW9uJik7CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1
ZV9wdHI8TmV0d29ya1JUQ1Jlc29sdmVyPj4gbV9yZXNvbHZlcnM7Ci0gICAgSGFzaE1hcDx1aW50
NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFNvY2tldD4+IG1fc29ja2V0czsKKyAgICBIYXNoTWFwPFdl
YkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTb2NrZXQ+
PiBtX3NvY2tldHM7CiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIG1fY29ubmVj
dGlvbjsKICAgICBib29sIG1faXNTdGFydGVkIHsgdHJ1ZSB9OwogCkBAIC0xMjIsOCArMTIzLDcg
QEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpUaHJlYWQ+IG1fcnRjTmV0d29y
a1RocmVhZDsKICAgICBVbmlxdWVSZWY8cnRjOjpCYXNpY1BhY2tldFNvY2tldEZhY3Rvcnk+IG1f
cGFja2V0U29ja2V0RmFjdG9yeTsKIAotICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVl
X3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0Pj4gbV9wZW5kaW5nSW5jb21pbmdTb2NrZXRzOwot
ICAgIHVpbnQ2NF90IG1faW5jb21pbmdTb2NrZXRJZGVudGlmaWVyIHsgMCB9OworICAgIEhhc2hN
YXA8V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPHJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+PiBtX3BlbmRpbmdJbmNvbWluZ1NvY2tldHM7CiAgICAgYm9v
bCBtX2lzTGlzdGVuaW5nU29ja2V0QXV0aG9yaXplZCB7IHRydWUgfTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRl
ci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENQcm92aWRlci5tZXNzYWdlcy5pbgppbmRleCAxMjIzNmIzYzcxZDdmZjA2ZTYxODMyMmY2
NDcyZmZiMTM4OGJkMzg3Li45MjFlNTcwNGMyZDk5OWYwN2UxMDhjOTJmNzE5YjYxNzA4YTYyMzhi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3Jr
UlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCkBAIC0yMywxMiArMjMsMTMg
QEAKICNpZiBVU0UoTElCV0VCUlRDKQogCiBtZXNzYWdlcyAtPiBOZXR3b3JrUlRDUHJvdmlkZXIg
ewotICAgIENyZWF0ZVVEUFNvY2tldChpbnQgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3Jr
OjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3Qg
bWF4UG9ydCkKLSAgICBDcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQoaW50IGlkZW50aWZpZXIsIFdlYktp
dDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBv
cnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKQotICAgIENyZWF0ZUNsaWVudFRDUFNv
Y2tldChpbnQgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxv
Y2FsQWRkcmVzcywgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHJlbW90ZUFkZHJl
c3MsIFN0cmluZyB1c2VyQWdlbnQsIGludCBvcHRpb25zKQorICAgIENyZWF0ZVVEUFNvY2tldChX
ZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6UlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVp
bnQxNl90IG1heFBvcnQpCisgICAgQ3JlYXRlU2VydmVyVENQU29ja2V0KFdlYkNvcmU6OkxpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9y
dCwgaW50IG9wdGlvbnMpCisgICAgQ3JlYXRlQ2xpZW50VENQU29ja2V0KFdlYkNvcmU6OkxpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
IHJlbW90ZUFkZHJlc3MsIFN0cmluZyB1c2VyQWdlbnQsIGludCBvcHRpb25zKQorICAgIFdyYXBO
ZXdUQ1BDb25uZWN0aW9uKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29j
a2V0SWRlbnRpZmllcikKKwogICAgIENyZWF0ZVJlc29sdmVyKHVpbnQ2NF90IGlkZW50aWZpZXIs
IFN0cmluZyBhZGRyZXNzKQogICAgIFN0b3BSZXNvbHZlcih1aW50NjRfdCBpZGVudGlmaWVyKQot
ICAgIFdyYXBOZXdUQ1BDb25uZWN0aW9uKHVpbnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2NF90IG5l
d0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKQogfQogCiAjZW5kaWYgLy8gVVNFKExJQldFQlJU
QykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENTb2NrZXQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1NvY2tldC5jcHAKaW5kZXggYThjNzBhM2IwZDY5NmZiODE4NGI3MTEyZDczZGYzNGQ4
ZmU3ZjA2ZS4uODIwZDA3YmMwZTcyNzRiNDc4YjRlMmE4NmZhYTk3MjdkZDJkZmM0ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tl
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JU
Q1NvY2tldC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLU5l
dHdvcmtSVENTb2NrZXQ6Ok5ldHdvcmtSVENTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgTmV0
d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlcikKK05ldHdvcmtSVENTb2NrZXQ6Ok5ldHdvcmtS
VENTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBO
ZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyKQogICAgIDogbV9pZGVudGlmaWVyKGlkZW50
aWZpZXIpCiAgICAgLCBtX3J0Y1Byb3ZpZGVyKHJ0Y1Byb3ZpZGVyKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5oCmlu
ZGV4IDZlNGJmZTJiMTY0MTljYmJjNTFiODBkOTVmNzU5ZWZlMmVkZDkyYWYuLjg0YmI0ZjEzMTI3
YjM2MDZiY2UwMTk3MWVjY2JhYTljNGJjZGQ0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmgKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlICJSVENOZXR3b3JrLmgiCiAKICNpbmNsdWRlIDxXZWJDb3JlL0xpYldl
YlJUQ01hY3Jvcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDU29ja2V0SWRlbnRpZmll
ci5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS9hc3luY3BhY2tldHNvY2tldC5oPgogI2lu
Y2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS90aGlyZF9wYXJ0eS9zaWdzbG90L3NpZ3Nsb3QuaD4KIApA
QCAtNTgsMTQgKzU5LDE0IEBAIHN0cnVjdCBSVENQYWNrZXRPcHRpb25zOwogCiBjbGFzcyBOZXR3
b3JrUlRDU29ja2V0IHsKIHB1YmxpYzoKLSAgICBOZXR3b3JrUlRDU29ja2V0KHVpbnQ2NF90LCBO
ZXR3b3JrUlRDUHJvdmlkZXImKTsKKyAgICBOZXR3b3JrUlRDU29ja2V0KFdlYkNvcmU6OkxpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYpOwogICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiBwcml2YXRl
OgogICAgIHZvaWQgc2VuZFRvKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MmJiwgUlRDUGFja2V0T3B0aW9ucyYmKTsKICAgICB2b2lkIGNsb3NlKCk7
CiAgICAgdm9pZCBzZXRPcHRpb24oaW50IG9wdGlvbiwgaW50IHZhbHVlKTsKIAotICAgIHVpbnQ2
NF90IG1faWRlbnRpZmllcjsKKyAgICBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
IG1faWRlbnRpZmllcjsKICAgICBOZXR3b3JrUlRDUHJvdmlkZXImIG1fcnRjUHJvdmlkZXI7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBlYzQwZDQz
MTNlZDM0NTBjMWUxMGZmZGQ3MWIyMDZjODQyNmRmYzliLi5hNzhkYTMxNDQzMjU4YzA4NjE5MmYy
MDUyMGIzNDA2MDk0ZTQ5OGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKQEAgLTIwNiw2ICsyMDYsNyBAQCBkZWYgZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hl
YWRlcnMocmVjZWl2ZXIpOgogICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYkNvcmU6OkZldGNoSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXInLAorICAgICAgICAnV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQYWdlSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJD
b3JlOjpQb2ludGVySUQnLAogICAgICAgICAnV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXInLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggMmYyMWY1ZTUxOTEwZWI5ODUyOGM4ZGQ0NjQ0
ZmU1MzI5ZmE0MWQwMS4uZjBiNGZkZmE2YTMxMTcwNDk5NmQ3ODVhMWM5NjI3NzM2MDExOTgwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVAKIAogI2lmIFVTRShMSUJXRUJSVEMpCiAgICAgaWYgKGRlY29kZXIubWVz
c2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJSVENTb2NrZXQ6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSkgewotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENO
ZXR3b3JrKCkuc29ja2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKS5kaWRSZWNlaXZlTWVzc2Fn
ZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
bGliV2ViUlRDTmV0d29yaygpLnNvY2tldChtYWtlT2JqZWN0SWRlbnRpZmllcjxMaWJXZWJSVENT
b2NrZXRJZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpKS5kaWRSZWNlaXZl
TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlJUQ01v
bml0b3I6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmgKaW5kZXgg
N2M2NDg0ZmU3OGQ3OGQ3NGNiMzI4MzMxZjk3NmFmYWI0MjNiNzJmNS4uZjdlMjFmNzcwYjAzM2Ix
N2M4NTk2OTA2YTcwMTIyZWFiNjYyNjljMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oCkBAIC0zMyw2
ICszMyw3IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgIldlYk1ETlNSZWdpc3Rlci5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApAQCAtNDcsNyArNDgsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpc2FibGVOb25M
b2NhbGhvc3RDb25uZWN0aW9ucygpIHsgc29ja2V0RmFjdG9yeSgpLmRpc2FibGVOb25Mb2NhbGhv
c3RDb25uZWN0aW9ucygpOyB9CiAKLSAgICBXZWJSVENTb2NrZXQgc29ja2V0KHVpbnQ2NF90IGlk
ZW50aWZpZXIpIHsgcmV0dXJuIFdlYlJUQ1NvY2tldChzb2NrZXRGYWN0b3J5KCksIGlkZW50aWZp
ZXIpOyB9CisgICAgV2ViUlRDU29ja2V0IHNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpIHsgcmV0dXJuIFdlYlJUQ1NvY2tldChzb2NrZXRGYWN0b3J5
KCksIGlkZW50aWZpZXIpOyB9CiAgICAgV2ViUlRDUmVzb2x2ZXIgcmVzb2x2ZXIodWludDY0X3Qg
aWRlbnRpZmllcikgeyByZXR1cm4gV2ViUlRDUmVzb2x2ZXIoc29ja2V0RmFjdG9yeSgpLCBpZGVu
dGlmaWVyKTsgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKaW5kZXggZTJjNWRmNTU3
YzQwMTE1ZGRmNDhmZDQwNzlhZmI5NDlhNmMyNTU2OS4uY2NmOTUwYjYwZWFlMzI1MWRiNDE4ZjM2
ZWU3OTk0NmE2NjU5ZjNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKQEAgLTQwLDkgKzQwLDkg
QEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLUxpYldlYlJUQ1NvY2tldDo6TGliV2ViUlRDU29j
a2V0KExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIGZhY3RvcnksIHVpbnQ2NF90IGlkZW50aWZpZXIs
IFR5cGUgdHlwZSwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcykKK0xpYldlYlJUQ1NvY2tldDo6TGli
V2ViUlRDU29ja2V0KExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIGZhY3RvcnksIFR5cGUgdHlwZSwg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0
QWRkcmVzcyYgcmVtb3RlQWRkcmVzcykKICAgICA6IG1fZmFjdG9yeShmYWN0b3J5KQotICAgICwg
bV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2lkZW50aWZpZXIoV2ViQ29yZTo6TGli
V2ViUlRDU29ja2V0SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKICAgICAsIG1fdHlwZSh0eXBlKQog
ICAgICwgbV9sb2NhbEFkZHJlc3MobG9jYWxBZGRyZXNzKQogICAgICwgbV9yZW1vdGVBZGRyZXNz
KHJlbW90ZUFkZHJlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmgKaW5kZXggYWYxZjQyNTMwMTZkZTNlMTkz
N2UxMzZlM2E5ZDI4ZTIwYzEyNDQ2Ny4uNjQ0ZWU1YTBiYjFmM2Y5OGFmNjllY2Q0MGNlZWU5Yjlj
MjAyYjkwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1NvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIFVTRShM
SUJXRUJSVEMpCiAKICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1Byb3ZpZGVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d2Vi
cnRjL3J0Y19iYXNlL2FzeW5jcGFja2V0c29ja2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTUxLDEwICs1MiwxMCBAQCBjbGFzcyBMaWJX
ZWJSVENTb2NrZXQgZmluYWwgOiBwdWJsaWMgcnRjOjpBc3luY1BhY2tldFNvY2tldCB7CiBwdWJs
aWM6CiAgICAgZW51bSBjbGFzcyBUeXBlIHsgVURQLCBTZXJ2ZXJUQ1AsIENsaWVudFRDUCwgU2Vy
dmVyQ29ubmVjdGlvblRDUCB9OwogCi0gICAgTGliV2ViUlRDU29ja2V0KExpYldlYlJUQ1NvY2tl
dEZhY3RvcnkmLCB1aW50NjRfdCBpZGVudGlmaWVyLCBUeXBlLCBjb25zdCBydGM6OlNvY2tldEFk
ZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRy
ZXNzKTsKKyAgICBMaWJXZWJSVENTb2NrZXQoTGliV2ViUlRDU29ja2V0RmFjdG9yeSYsIFR5cGUs
IGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tl
dEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MpOwogICAgIH5MaWJXZWJSVENTb2NrZXQoKTsKIAotICAg
IHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAg
ICBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX2lkZW50aWZpZXI7IH0KICAgICBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxv
Y2FsQWRkcmVzcygpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxBZGRyZXNzOyB9CiAgICAgY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKCkgY29uc3QgeyByZXR1cm4gbV9yZW1v
dGVBZGRyZXNzOyB9CiAKQEAgLTg3LDcgKzg4LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9p
ZCBzZW5kT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoSVBDOjpDb25uZWN0aW9uJik+JiYpOwog
CiAgICAgTGliV2ViUlRDU29ja2V0RmFjdG9yeSYgbV9mYWN0b3J5OwotICAgIHVpbnQ2NF90IG1f
aWRlbnRpZmllciB7IDAgfTsKKyAgICBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
IG1faWRlbnRpZmllcjsKICAgICBUeXBlIG1fdHlwZTsKICAgICBydGM6OlNvY2tldEFkZHJlc3Mg
bV9sb2NhbEFkZHJlc3M7CiAgICAgcnRjOjpTb2NrZXRBZGRyZXNzIG1fcmVtb3RlQWRkcmVzczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENTb2NrZXRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAppbmRleCA2ZDNjMGIxYjBhMTk1ZGE1
NTE1NzVmMzhkNmRhODY0MWE2YzEzMzQ5Li4zMDAyZTgzODg2YzM5MDJmZjNkMDM1NzNjMzM2MWNj
YzgxNWExY2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCkBAIC0zNyw3
ICszNyw2IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi11aW50NjRfdCBMaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5OjpzX3VuaXF1ZVNvY2tldElkZW50aWZpZXIgPSAwOwogdWludDY0X3QgTGliV2Vi
UlRDU29ja2V0RmFjdG9yeTo6c191bmlxdWVSZXNvbHZlcklkZW50aWZpZXIgPSAwOwogCiBzdGF0
aWMgaW5saW5lIHJ0Yzo6U29ja2V0QWRkcmVzcyBwcmVwYXJlU29ja2V0QWRkcmVzcyhjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIGJvb2wgZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5l
Y3Rpb25zKQpAQCAtNTAsNyArNDksNyBAQCBzdGF0aWMgaW5saW5lIHJ0Yzo6U29ja2V0QWRkcmVz
cyBwcmVwYXJlU29ja2V0QWRkcmVzcyhjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmCiAKIHJ0Yzo6
QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVNlcnZlclRj
cFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBv
cnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKQogewotICAgIGF1dG8gc29ja2V0ID0g
bWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRlbnRp
ZmllciwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpTZXJ2ZXJUQ1AsIGFkZHJlc3MsIHJ0Yzo6U29j
a2V0QWRkcmVzcygpKTsKKyAgICBhdXRvIHNvY2tldCA9IG1ha2VVbmlxdWU8TGliV2ViUlRDU29j
a2V0PigqdGhpcywgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpTZXJ2ZXJUQ1AsIGFkZHJlc3MsIHJ0
Yzo6U29ja2V0QWRkcmVzcygpKTsKICAgICBtX3NvY2tldHMuc2V0KHNvY2tldC0+aWRlbnRpZmll
cigpLCBzb2NrZXQuZ2V0KCkpOwogCiAgICAgY2FsbE9uTWFpblRocmVhZChbaWRlbnRpZmllciA9
IHNvY2tldC0+aWRlbnRpZmllcigpLCBhZGRyZXNzID0gcHJlcGFyZVNvY2tldEFkZHJlc3MoYWRk
cmVzcywgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMpLCBtaW5Qb3J0LCBtYXhQb3J0
LCBvcHRpb25zXSgpIHsKQEAgLTY2LDcgKzY1LDcgQEAgcnRjOjpBc3luY1BhY2tldFNvY2tldCog
TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHJ0YzoK
IAogcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRl
VWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWlu
UG9ydCwgdWludDE2X3QgbWF4UG9ydCkKIHsKLSAgICBhdXRvIHNvY2tldCA9IG1ha2VVbmlxdWU8
TGliV2ViUlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1ZVNvY2tldElkZW50aWZpZXIsIExpYldl
YlJUQ1NvY2tldDo6VHlwZTo6VURQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3MoKSk7Cisg
ICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIExpYldl
YlJUQ1NvY2tldDo6VHlwZTo6VURQLCBhZGRyZXNzLCBydGM6OlNvY2tldEFkZHJlc3MoKSk7CiAg
ICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgc29ja2V0LmdldCgpKTsKIAog
ICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwg
YWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2Fs
aG9zdENvbm5lY3Rpb25zKSwgbWluUG9ydCwgbWF4UG9ydF0oKSB7CkBAIC04MCw3ICs3OSw3IEBA
IHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVk
cFNvY2tldChjb25zdCBydGM6OlNvY2tlCiAKIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldl
YlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVudFRjcFNvY2tldChjb25zdCBydGM6OlNvY2tl
dEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVB
ZGRyZXNzLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCBvcHRpb25zKQogewotICAgIGF1dG8gc29j
a2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0
SWRlbnRpZmllciwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpDbGllbnRUQ1AsIGxvY2FsQWRkcmVz
cywgcmVtb3RlQWRkcmVzcyk7CisgICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJU
Q1NvY2tldD4oKnRoaXMsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6Q2xpZW50VENQLCBsb2NhbEFk
ZHJlc3MsIHJlbW90ZUFkZHJlc3MpOwogICAgIHNvY2tldC0+c2V0U3RhdGUoTGliV2ViUlRDU29j
a2V0OjpTVEFURV9DT05ORUNUSU5HKTsKICAgICBtX3NvY2tldHMuc2V0KHNvY2tldC0+aWRlbnRp
ZmllcigpLCBzb2NrZXQuZ2V0KCkpOwogCkBAIC05NCw5ICs5Myw5IEBAIHJ0Yzo6QXN5bmNQYWNr
ZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZUNsaWVudFRjcFNvY2tldChj
b25zdCBydGM6CiAgICAgcmV0dXJuIHNvY2tldC5yZWxlYXNlKCk7CiB9CiAKLXJ0Yzo6QXN5bmNQ
YWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZU5ld0Nvbm5lY3Rpb25T
b2NrZXQoTGliV2ViUlRDU29ja2V0JiBzZXJ2ZXJTb2NrZXQsIHVpbnQ2NF90IG5ld0Nvbm5lY3Rp
b25Tb2NrZXRJZGVudGlmaWVyLCBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJl
c3MpCitydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVh
dGVOZXdDb25uZWN0aW9uU29ja2V0KExpYldlYlJUQ1NvY2tldCYgc2VydmVyU29ja2V0LCBMaWJX
ZWJSVENTb2NrZXRJZGVudGlmaWVyIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyLCBjb25z
dCBydGM6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MpCiB7Ci0gICAgYXV0byBzb2NrZXQg
PSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsICsrc191bmlxdWVTb2NrZXRJZGVu
dGlmaWVyLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OlNlcnZlckNvbm5lY3Rpb25UQ1AsIHNlcnZl
clNvY2tldC5sb2NhbEFkZHJlc3MoKSwgcmVtb3RlQWRkcmVzcyk7CisgICAgYXV0byBzb2NrZXQg
PSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tldD4oKnRoaXMsIExpYldlYlJUQ1NvY2tldDo6VHlw
ZTo6U2VydmVyQ29ubmVjdGlvblRDUCwgc2VydmVyU29ja2V0LmxvY2FsQWRkcmVzcygpLCByZW1v
dGVBZGRyZXNzKTsKICAgICBzb2NrZXQtPnNldFN0YXRlKExpYldlYlJUQ1NvY2tldDo6U1RBVEVf
Q09OTkVDVEVEKTsKICAgICBtX3NvY2tldHMuc2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBzb2Nr
ZXQuZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaAppbmRleCA0OTRmOWQ0
NDZjYzYxOWE2YjYzNmEwMWJmOTJlMzQwMjA1ODVmNzA1Li5hOTQ1YjEwZGFhZGFhZjZiNDVkNGQ4
NTZjODZiNjdiMTQyYjc3M2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENSZXNvbHZlci5oIgogI2luY2x1ZGUg
IkxpYldlYlJUQ1NvY2tldC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg+CiAjaW5jbHVk
ZSA8d2VicnRjL3J0Y19iYXNlL25ldGhlbHBlcnMuaD4KICNpbmNsdWRlIDx3ZWJydGMvcDJwL2Jh
c2UvcGFja2V0c29ja2V0ZmFjdG9yeS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC00
MSwyNiArNDIsMjIgQEAgcHVibGljOgogICAgIExpYldlYlJUQ1NvY2tldEZhY3RvcnkoKSB7IH0K
IAogICAgIHZvaWQgZGV0YWNoKExpYldlYlJUQ1NvY2tldCYpOwotCi0gICAgTGliV2ViUlRDU29j
a2V0KiBzb2NrZXQodWludDY0X3QgaWRlbnRpZmllcikgeyByZXR1cm4gbV9zb2NrZXRzLmdldChp
ZGVudGlmaWVyKTsgfQotICAgIExpYldlYlJUQ1Jlc29sdmVyKiByZXNvbHZlcih1aW50NjRfdCBp
ZGVudGlmaWVyKSB7IHJldHVybiBtX3Jlc29sdmVycy5nZXQoaWRlbnRpZmllcik7IH0KLQotICAg
IHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENSZXNvbHZlcj4gdGFrZVJlc29sdmVyKHVpbnQ2NF90
IGlkZW50aWZpZXIpIHsgcmV0dXJuIG1fcmVzb2x2ZXJzLnRha2UoaWRlbnRpZmllcik7IH0KLQot
ICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZU5ld0Nvbm5lY3Rpb25Tb2NrZXQoTGli
V2ViUlRDU29ja2V0JiwgdWludDY0X3QgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIsIGNv
bnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYpOwotCi0gICAgdm9pZCBkaXNhYmxlTm9uTG9jYWxob3N0
Q29ubmVjdGlvbnMoKSB7IG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zID0gdHJ1ZTsg
fQorICAgIExpYldlYlJUQ1NvY2tldCogc29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElk
ZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1cm4gbV9zb2NrZXRzLmdldChpZGVudGlmaWVyKTsg
fQogCiAgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0
Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpOwog
ICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBy
dGM6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0LCBp
bnQgb3B0aW9ucyk7CiAgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogY3JlYXRlQ2xpZW50VGNw
U29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9w
dGlvbnMpOworICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZU5ld0Nvbm5lY3Rpb25T
b2NrZXQoTGliV2ViUlRDU29ja2V0JiwgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmll
ciBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNz
Jik7CisKKyAgICBMaWJXZWJSVENSZXNvbHZlciogcmVzb2x2ZXIodWludDY0X3QgaWRlbnRpZmll
cikgeyByZXR1cm4gbV9yZXNvbHZlcnMuZ2V0KGlkZW50aWZpZXIpOyB9CisgICAgc3RkOjp1bmlx
dWVfcHRyPExpYldlYlJUQ1Jlc29sdmVyPiB0YWtlUmVzb2x2ZXIodWludDY0X3QgaWRlbnRpZmll
cikgeyByZXR1cm4gbV9yZXNvbHZlcnMudGFrZShpZGVudGlmaWVyKTsgfQogICAgIHJ0Yzo6QXN5
bmNSZXNvbHZlckludGVyZmFjZSogY3JlYXRlQXN5bmNSZXNvbHZlcigpOworICAgIAorICAgIHZv
aWQgZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKCkgeyBtX2Rpc2FibGVOb25Mb2NhbGhv
c3RDb25uZWN0aW9ucyA9IHRydWU7IH0KIAogcHJpdmF0ZToKLQogICAgIC8vIFdlIGNhbm5vdCBv
d24gc29ja2V0cywgY2xpZW50cyBvZiB0aGUgZmFjdG9yeSBhcmUgcmVzcG9uc2libGUgdG8gZnJl
ZSB0aGVtLgotICAgIEhhc2hNYXA8dWludDY0X3QsIExpYldlYlJUQ1NvY2tldCo+IG1fc29ja2V0
czsKLSAgICBzdGF0aWMgdWludDY0X3Qgc191bmlxdWVTb2NrZXRJZGVudGlmaWVyOworICAgIEhh
c2hNYXA8V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgTGliV2ViUlRDU29ja2V0
Kj4gbV9zb2NrZXRzOwogICAgIAogICAgIC8vIFdlIGNhbiBvd24gcmVzb2x2ZXJzIGFzIHdlIGNv
bnRyb2wgdGhlaXIgRGVzdHJveSBtZXRob2QuCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgc3RkOjp1
bmlxdWVfcHRyPExpYldlYlJUQ1Jlc29sdmVyPj4gbV9yZXNvbHZlcnM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuY3Bw
CmluZGV4IGJhMzVkN2Y3OTdjYjA2NTFiNGI1ZGYwZmQyY2Q0MDAxNmM4ZjJmYzkuLjc4MjkzYmNj
ZmI5ZjJkOWJjMmY2NWIwNDc5Y2I0ZDU4YjhjNmY5ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuY3BwCkBAIC0z
Niw4ICszNiw5IEBACiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXZvaWQgV2ViUlRDU29ja2V0OjpzaWdu
YWxPbk5ldHdvcmtUaHJlYWQoTGliV2ViUlRDU29ja2V0RmFjdG9yeSYgZmFjdG9yeSwgdWludDY0
X3QgaWRlbnRpZmllciwgRnVuY3Rpb248dm9pZChMaWJXZWJSVENTb2NrZXQmKT4mJiBjYWxsYmFj
aykKK3ZvaWQgV2ViUlRDU29ja2V0OjpzaWduYWxPbk5ldHdvcmtUaHJlYWQoTGliV2ViUlRDU29j
a2V0RmFjdG9yeSYgZmFjdG9yeSwgTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVy
LCBGdW5jdGlvbjx2b2lkKExpYldlYlJUQ1NvY2tldCYpPiYmIGNhbGxiYWNrKQogewogICAgIC8v
IGZhY3RvcnkgaXMgc3RheWluZyB2YWxpZCBkdXJpbmcgdGhlIHByb2Nlc3MgbGlmZXRpbWUuCiAg
ICAgV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OmNhbGxPbldlYlJUQ05ldHdvcmtUaHJlYWQo
WyZmYWN0b3J5LCBpZGVudGlmaWVyLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIHsK
QEAgLTQ4LDcgKzQ5LDcgQEAgdm9pZCBXZWJSVENTb2NrZXQ6OnNpZ25hbE9uTmV0d29ya1RocmVh
ZChMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5LCB1aW50NjQKICAgICB9KTsKIH0KIAot
V2ViUlRDU29ja2V0OjpXZWJSVENTb2NrZXQoTGliV2ViUlRDU29ja2V0RmFjdG9yeSYgZmFjdG9y
eSwgdWludDY0X3QgaWRlbnRpZmllcikKK1dlYlJUQ1NvY2tldDo6V2ViUlRDU29ja2V0KExpYldl
YlJUQ1NvY2tldEZhY3RvcnkmIGZhY3RvcnksIExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRl
bnRpZmllcikKICAgICA6IG1fZmFjdG9yeShmYWN0b3J5KQogICAgICwgbV9pZGVudGlmaWVyKGlk
ZW50aWZpZXIpCiB7CkBAIC03MSwyOCArNzIsMjggQEAgdm9pZCBXZWJSVENTb2NrZXQ6OnNpZ25h
bFJlYWRQYWNrZXQoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBjb25zdCBSVENOZXQK
IAogdm9pZCBXZWJSVENTb2NrZXQ6OnNpZ25hbFNlbnRQYWNrZXQoaW50IHJ0Y1BhY2tldElELCBp
bnQ2NF90IHNlbmRUaW1lTXMpCiB7Ci0gICAgc2lnbmFsT25OZXR3b3JrVGhyZWFkKG1fZmFjdG9y
eSwgbV9pZGVudGlmaWVyLCBbcnRjUGFja2V0SUQsIHNlbmRUaW1lTXNdKExpYldlYlJUQ1NvY2tl
dCYgc29ja2V0KSB7CisgICAgc2lnbmFsT25OZXR3b3JrVGhyZWFkKG1fZmFjdG9yeSwgbV9pZGVu
dGlmaWVyLCBbcnRjUGFja2V0SUQsIHNlbmRUaW1lTXNdKGF1dG8mIHNvY2tldCkgewogICAgICAg
ICBzb2NrZXQuc2lnbmFsU2VudFBhY2tldChydGNQYWNrZXRJRCwgc2VuZFRpbWVNcyk7CiAgICAg
fSk7CiB9CiAKIHZvaWQgV2ViUlRDU29ja2V0OjpzaWduYWxDb25uZWN0KCkKIHsKLSAgICBzaWdu
YWxPbk5ldHdvcmtUaHJlYWQobV9mYWN0b3J5LCBtX2lkZW50aWZpZXIsIFtdKExpYldlYlJUQ1Nv
Y2tldCYgc29ja2V0KSB7CisgICAgc2lnbmFsT25OZXR3b3JrVGhyZWFkKG1fZmFjdG9yeSwgbV9p
ZGVudGlmaWVyLCBbXShhdXRvJiBzb2NrZXQpIHsKICAgICAgICAgc29ja2V0LnNpZ25hbENvbm5l
Y3QoKTsKICAgICB9KTsKIH0KIAogdm9pZCBXZWJSVENTb2NrZXQ6OnNpZ25hbENsb3NlKGludCBl
cnJvcikKIHsKLSAgICBzaWduYWxPbk5ldHdvcmtUaHJlYWQobV9mYWN0b3J5LCBtX2lkZW50aWZp
ZXIsIFtlcnJvcl0oTGliV2ViUlRDU29ja2V0JiBzb2NrZXQpIHsKKyAgICBzaWduYWxPbk5ldHdv
cmtUaHJlYWQobV9mYWN0b3J5LCBtX2lkZW50aWZpZXIsIFtlcnJvcl0oYXV0byYgc29ja2V0KSB7
CiAgICAgICAgIHNvY2tldC5zaWduYWxDbG9zZShlcnJvcik7CiAgICAgfSk7CiB9CiAKLXZvaWQg
V2ViUlRDU29ja2V0OjpzaWduYWxOZXdDb25uZWN0aW9uKHVpbnQ2NF90IG5ld1NvY2tldElkZW50
aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MpCit2
b2lkIFdlYlJUQ1NvY2tldDo6c2lnbmFsTmV3Q29ubmVjdGlvbihMaWJXZWJSVENTb2NrZXRJZGVu
dGlmaWVyIG5ld1NvY2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJl
c3MmIHJlbW90ZUFkZHJlc3MpCiB7Ci0gICAgc2lnbmFsT25OZXR3b3JrVGhyZWFkKG1fZmFjdG9y
eSwgbV9pZGVudGlmaWVyLCBbbmV3U29ja2V0SWRlbnRpZmllciwgcmVtb3RlQWRkcmVzcyA9IFJU
Q05ldHdvcms6Omlzb2xhdGVkQ29weShyZW1vdGVBZGRyZXNzLnZhbHVlKV0oTGliV2ViUlRDU29j
a2V0JiBzb2NrZXQpIHsKKyAgICBzaWduYWxPbk5ldHdvcmtUaHJlYWQobV9mYWN0b3J5LCBtX2lk
ZW50aWZpZXIsIFtuZXdTb2NrZXRJZGVudGlmaWVyLCByZW1vdGVBZGRyZXNzID0gUlRDTmV0d29y
azo6aXNvbGF0ZWRDb3B5KHJlbW90ZUFkZHJlc3MudmFsdWUpXShhdXRvJiBzb2NrZXQpIHsKICAg
ICAgICAgc29ja2V0LnNpZ25hbE5ld0Nvbm5lY3Rpb24oc29ja2V0Lm1fZmFjdG9yeS5jcmVhdGVO
ZXdDb25uZWN0aW9uU29ja2V0KHNvY2tldCwgbmV3U29ja2V0SWRlbnRpZmllciwgcmVtb3RlQWRk
cmVzcykpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5oCmluZGV4IDlmNGNiNzgwODY4NWRkNjc4NmMx
ZGQ1YjczNjFjMjcyMjQyMGU4OWYuLjU3ZTE4ZGZlMzAzOGZjZTdlNzJhYjQ5ZWZlOGEyODcwYjRm
OTgyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9XZWJSVENTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvV2ViUlRDU29ja2V0LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBVU0UoTElCV0VCUlRD
KQogCiAjaW5jbHVkZSAiUlRDTmV0d29yay5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRD
U29ja2V0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiBuYW1lc3Bh
Y2UgSVBDIHsKQEAgLTQzLDExICs0NCwxMSBAQCBjbGFzcyBMaWJXZWJSVENTb2NrZXRGYWN0b3J5
OwogCiBjbGFzcyBXZWJSVENTb2NrZXQgewogcHVibGljOgotICAgIFdlYlJUQ1NvY2tldChMaWJX
ZWJSVENTb2NrZXRGYWN0b3J5JiwgdWludDY0X3QpOworICAgIFdlYlJUQ1NvY2tldChMaWJXZWJS
VENTb2NrZXRGYWN0b3J5JiwgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllcik7CiAK
ICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpOwogCi0gICAgc3RhdGljIHZvaWQgc2lnbmFsT25OZXR3b3JrVGhyZWFkKExpYldlYlJUQ1Nv
Y2tldEZhY3RvcnkmLCB1aW50NjRfdCwgRnVuY3Rpb248dm9pZChMaWJXZWJSVENTb2NrZXQmKT4m
Jik7CisgICAgc3RhdGljIHZvaWQgc2lnbmFsT25OZXR3b3JrVGhyZWFkKExpYldlYlJUQ1NvY2tl
dEZhY3RvcnkmLCBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBGdW5jdGlvbjx2
b2lkKExpYldlYlJUQ1NvY2tldCYpPiYmKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHNpZ25hbFJl
YWRQYWNrZXQoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgUlRDTmV0d29yazo6SVBB
ZGRyZXNzJiwgdWludDE2X3QgcG9ydCwgaW50NjRfdCk7CkBAIC01NSwxMCArNTYsMTAgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHNpZ25hbEFkZHJlc3NSZWFkeShjb25zdCBSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzJik7CiAgICAgdm9pZCBzaWduYWxDb25uZWN0KCk7CiAgICAgdm9pZCBzaWduYWxD
bG9zZShpbnQpOwotICAgIHZvaWQgc2lnbmFsTmV3Q29ubmVjdGlvbih1aW50NjRfdCBuZXdTb2Nr
ZXRJZGVudGlmaWVyLCBjb25zdCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmKTsK
KyAgICB2b2lkIHNpZ25hbE5ld0Nvbm5lY3Rpb24oV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRl
bnRpZmllciBuZXdTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNv
Y2tldEFkZHJlc3MmKTsKIAogICAgIExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIG1fZmFjdG9yeTsK
LSAgICB1aW50NjRfdCBtX2lkZW50aWZpZXIgeyAwIH07CisgICAgV2ViQ29yZTo6TGliV2ViUlRD
U29ja2V0SWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9X
ZWJSVENTb2NrZXQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvV2ViUlRDU29ja2V0Lm1lc3NhZ2VzLmluCmluZGV4IGY2MTEyODVhZmE3MzY1YWUx
ZGI3ODhiMjczODRhNWZlZmU4ODZlN2YuLjhmODcyZWUyMTlhMmM3NzY4ZGE4NTNhYTQxZjI1N2Zm
NDU3NGRjMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5tZXNzYWdlcy5pbgpAQCAtMjgsNyArMjgs
NyBAQCBtZXNzYWdlcyAtPiBXZWJSVENTb2NrZXQgewogICAgIFNpZ25hbEFkZHJlc3NSZWFkeShX
ZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MgYWRkcmVzcykKICAgICBTaWduYWxDb25u
ZWN0KCkKICAgICBTaWduYWxDbG9zZShpbnQgZXJyb3IpCi0gICAgU2lnbmFsTmV3Q29ubmVjdGlv
bih1aW50NjRfdCBuZXdTb2NrZXRJZGVudGlmaWVyLCBXZWJLaXQ6OlJUQ05ldHdvcms6OlNvY2tl
dEFkZHJlc3MgcmVtb3RlQWRkcmVzcykKKyAgICBTaWduYWxOZXdDb25uZWN0aW9uKFdlYkNvcmU6
OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbmV3U29ja2V0SWRlbnRpZmllciwgV2ViS2l0OjpS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHJlbW90ZUFkZHJlc3MpCiB9CiAKICNlbmRpZiAvLyBV
U0UoTElCV0VCUlRDKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379999</attachid>
            <date>2019-10-02 01:28:47 -0700</date>
            <delta_ts>2019-10-02 02:42:06 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-202400-20191002102845.patch</filename>
            <type>text/plain</type>
            <size>44301</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ2MGM2OTFmODAyNmRk
MjlhYWRiY2NiYjM5NTdhYTNiNjRlMDczMS4uYzE3OGEzODM5MmMzNjBlYTNmZGI2NThjNzE1NmZl
ZjUxYTAyZTIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTEwLTAxICB5b3Vl
bm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc3Ryb25nbHkgdHlw
ZWQgaWRlbnRpZmllcnMgZm9yIHdlYnJ0YyBzb2NrZXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MDAKKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGNoYW5nZSBvZiBiZWhhdmlvci4K
KworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaC4KKwogMjAxOS0xMC0wMSAg
eW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUXVldWUgZXZlbnRz
IGFuZCBwcm9taXNlIHJlc29sdXRpb24gaW4gUlRDUGVlckNvbm5lY3Rpb24gd2hlbiBzdXNwZW5k
ZWQgZm9yIHBhZ2UgY2FjaGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjYyYjZjZmNhYzlkMjQ0YjcwODcwMTU0NmRl
YmIzYzZjZWExNDA4My4uZTM2NjYzM2I0ZDIyNmQ2MGE0NjVmNDE0YWUwOWM1NDc0YWJmZjNmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAxOS0xMC0wMSAgeW91ZW5uIGZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHN0cm9uZ2x5IHR5cGVkIGlkZW50aWZpZXJz
IGZvciB3ZWJydGMgc29ja2V0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAyNDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisK
KyAgICAgICAgUmVmYWN0b3JpbmcgdG8gdXNlIExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaW5z
dGVhZCBvZiB1aW50NjRfdC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJX
ZWJSVENTb2NrZXRDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRD
bGllbnQ6OkxpYldlYlJUQ1NvY2tldENsaWVudCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQ
cm92aWRlcjo6Y3JlYXRlVURQU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JUQ1By
b3ZpZGVyOjpjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtSVENQcm92aWRlcjo6d3JhcE5ld1RDUENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmFkZFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSVENQcm92aWRlcjo6dGFrZVNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQ
cm92aWRlcjo6bmV3Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSVENQcm92
aWRlcjo6ZGlkUmVjZWl2ZU5ldHdvcmtSVENTb2NrZXRNZXNzYWdlKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpjbG9zZUxpc3RlbmluZ1NvY2tldHMpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNhbGxTb2NrZXQpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1JUQ1NvY2tldDo6TmV0d29ya1JUQ1NvY2tldCk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaDoKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmg6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJU
Q05ldHdvcms6OnNvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9M
aWJXZWJSVENTb2NrZXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXQ6Okxp
YldlYlJUQ1NvY2tldCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENTb2NrZXQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ1NvY2tldEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRG
YWN0b3J5OjpjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJS
VENTb2NrZXRGYWN0b3J5OjpjcmVhdGVVZHBTb2NrZXQpOgorICAgICAgICAoV2ViS2l0OjpMaWJX
ZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQpOgorICAgICAgICAoV2Vi
S2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3Rv
cnkuaDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6c29ja2V0KToK
KyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6cmVzb2x2ZXIpOgorICAg
ICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5Ojp0YWtlUmVzb2x2ZXIpOgorICAg
ICAgICAoV2ViS2l0OjpMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpkaXNhYmxlTm9uTG9jYWxob3N0
Q29ubmVjdGlvbnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRD
U29ja2V0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU29ja2V0OjpzaWduYWxPbk5ldHdv
cmtUaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTb2NrZXQ6OldlYlJUQ1NvY2tldCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6c2lnbmFsU2VudFBhY2tldCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJUQ1NvY2tldDo6c2lnbmFsQ29ubmVjdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlJUQ1NvY2tldDo6c2lnbmFsQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENT
b2NrZXQ6OnNpZ25hbE5ld0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvV2ViUlRDU29ja2V0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW46CisKIDIwMTktMTAtMDEgIHlvdWVubiBmYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSByYWNlcyBjb25kaXRpb24g
d2hlbiB2YWxpZGF0aW5nIGNhcHR1cmUgc2FuZGJveCBleHRlbnNpb24gcmV2b2NhdGlvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKaW5kZXggNTRhZjIyZGFkZTY1M2ZkM2FiYTc4NmMxNTlmZTAwZDJmMGE4YmQ5
NC4uZGRiMzU5ZTM5MTI0ODc3Zjg0MGNkODA2OTU1ZGVkMzExMDA2ZTM4NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCkBAIC0xMTU5LDYgKzExNTksNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUFERVJTCiAKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
TWFjcm9zLmgKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJv
dmlkZXIuaAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENTb2Nr
ZXRJZGVudGlmaWVyLmgKIAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25DbGll
bnRNb2NrLmgKICAgICBwbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBhMTc2MWM2N2I0Yzk1ZDhlYWI0NzdhN2MwMGFlNTU0NWQyM2E3OWVlLi4zZmJiNTVlZWMwOWRj
NjYyN2QwMjE1NzI4OTk5Y2I0ZTNiYjNkZDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDIzLDYgKzEwMjMsNyBAQAogCQkz
RkZGRjlBOTE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBNzE1OUQ5QTU1
MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggKi87IH07CiAJCTNGRkZGOUFFMTU5
RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGRkZGOUFDMTU5RDlCMDYwMDIwQkJENSAv
KiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCAqLzsgfTsKIAkJNDEwNzkwOEMxRkMzRjAzMzAwNjFC
MjdBIC8qIENsaWVudE9yaWdpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDEwNzkwOEExRkMzRTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxMEU0NDYx
MjM0MzczRTkwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTBFNDQ1RjIzNDM3M0FEMDAw
MTczRDQgLyogTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMTAzQUFDMUUzOTc5MTAwMDc2OUYwMyAv
KiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUE4MUUzOTc5MEEwMDc2OUYwMyAvKiBSZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2UuaCAqLzsgfTsKIAkJNDExMDNBQUMxRTM5NzkxMDAwNzY5RjE0
IC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FBODFFMzk3OTBBMDA3NjlGMTQgLyog
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuaCAqLzsgfTsKIAkJNDExMDNBQUQxRTM5
NzkxMDAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDNBQTkxRTM5NzkwQTAwNzY5
RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oICovOyB9OwpAQCAtNzE3Myw2ICs3
MTc0LDcgQEAKIAkJNDEwNjI2QTcyMjgwQTIyQTAwNkQxQjU5IC8qIEpTQXVkaW9Ob2RlQ3VzdG9t
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXVkaW9Ob2RlQ3Vz
dG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwNzkwOEExRkMzRTRGMjAw
NjFCMjdBIC8qIENsaWVudE9yaWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDbGllbnRPcmlnaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwQjdFNzEx
MDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwRTQ0NUYyMzQzNzNBRDAwMDE3M0Q0IC8qIExpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
TGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMDNBQTcx
RTM5NzkwQTAwNzY5RjAzIC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3Vy
Y2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEwM0FBNzFFMzk3OTBBMDA3
NjlGMTQgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29j
b2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEwM0FBODFFMzk3OTBBMDA3
NjlGMDMgLyogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTc3NjksNiArMTc3NzEsNyBAQAogCQkJCTQxNTc0NzQ0MUUz
ODY5OUUwMEU5MTREOCAvKiBMaWJXZWJSVENQcm92aWRlci5oICovLAogCQkJCTQxQjI4QjM4MUY4
NjBCRDEwMEZCNTJBQyAvKiBMaWJXZWJSVENQcm92aWRlckNvY29hLmNwcCAqLywKIAkJCQk0MUIy
OEIzNjFGODYwQkQwMDBGQjUyQUMgLyogTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5oICovLAorCQkJ
CTQxMEU0NDVGMjM0MzczQUQwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmgg
Ki8sCiAJCQkpOwogCQkJbmFtZSA9IGxpYndlYnJ0YzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkBAIC0zMDc0NSw2ICszMDc0OCw3IEBACiAJCQkJNDE3NjEyQjIxRTNBOTk0MDAwQzNEODFE
IC8qIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDE1NzQ3NDgxRTM4NjlBNzAwRTkxNEQ4IC8qIExpYldlYlJUQ1Byb3ZpZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MUIyOEIzRDFGODYwRUYzMDBGQjUyQUMgLyogTGliV2ViUlRDUHJvdmlkZXJD
b2NvYS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwRTQ0NjEyMzQzNzNFOTAwMDE3M0Q0IC8qIExp
YldlYlJUQ1NvY2tldElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzMwRDkxMTI0
OEYwQjMwMEQzQTlDOSAvKiBMaWdodFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5
NjUwRDAwQkYyMjAwNzFCNzgyIC8qIExpbmVhckdyYWRpZW50QXR0cmlidXRlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQUIzMUM5MUUxMEFFMUI4RTAwMEM3QjkyIC8qIExpbmVDbGFtcFZhbHVlLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDU29ja2V0SWRlbnRp
Zmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY3NGYxMzZlOTE0NmQzNjBkN2ZmMWRmNzE4NjY4ZTBlZTliMGEz
MWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSAsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRp
Zmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gTGliV2ViUlRDU29ja2V0SWRl
bnRpZmllclR5cGUgeyB9OwordXNpbmcgTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciA9IE9iamVj
dElkZW50aWZpZXI8TGliV2ViUlRDU29ja2V0SWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvTGliV2ViUlRDU29ja2V0Q2xpZW50LmNwcAppbmRleCBjNTk5NWJjNTMyNTVm
ZTJkMzc2ZmM0NWZiZmI5ZWU2MzFlZTczZTcxLi4xNWUzOTMyNGZlNjc4Y2Q3YTY5MDNmNDVmNTJh
Y2MyYTgwZDg3NmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ1NvY2tldENsaWVudC5jcHAKQEAgLTM3LDcgKzM3LDcg
QEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLUxpYldlYlJUQ1NvY2tldENsaWVudDo6TGliV2Vi
UlRDU29ja2V0Q2xpZW50KHVpbnQ2NF90IGlkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYg
cnRjUHJvdmlkZXIsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmIHNv
Y2tldCwgVHlwZSB0eXBlKQorTGliV2ViUlRDU29ja2V0Q2xpZW50OjpMaWJXZWJSVENTb2NrZXRD
bGllbnQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3
b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1Bh
Y2tldFNvY2tldD4mJiBzb2NrZXQsIFR5cGUgdHlwZSkKICAgICA6IG1faWRlbnRpZmllcihpZGVu
dGlmaWVyKQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX3J0Y1Byb3ZpZGVyKHJ0Y1Byb3Zp
ZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTGli
V2ViUlRDU29ja2V0Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaAppbmRleCAyNWFhNTRhZmE3ZDc2ZmE5NDU2YWZiYjhj
YzQxZDExNmFiYWZjODZkLi41YWYzOTMwNmMyZDUxN2EyZjU4Yzg3ODAzMTI0YWMyZjk3MzFhYjUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJS
VENTb2NrZXRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENTb2NrZXRDbGllbnQuaApAQCAtNDEsMTAgKzQxLDEwIEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogY2xhc3MgTGliV2ViUlRDU29ja2V0Q2xpZW50IGZpbmFsIDogcHVibGljIE5ldHdv
cmtSVENQcm92aWRlcjo6U29ja2V0LCBwdWJsaWMgc2lnc2xvdDo6aGFzX3Nsb3RzPD4gewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIExpYldlYlJUQ1NvY2tldENs
aWVudCh1aW50NjRfdCBpZGVudGlmaWVyLCBOZXR3b3JrUlRDUHJvdmlkZXImLCBzdGQ6OnVuaXF1
ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiwgVHlwZSk7CisgICAgTGliV2ViUlRDU29j
a2V0Q2xpZW50KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQ
cm92aWRlciYsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmLCBUeXBl
KTsKIAogcHJpdmF0ZToKLSAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllciBpZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAg
ICAgVHlwZSB0eXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgdm9pZCBj
bG9zZSgpIGZpbmFsOwogCkBAIC02MCw3ICs2MCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNp
Z25hbEFkZHJlc3NSZWFkeSgpOwogCi0gICAgdWludDY0X3QgbV9pZGVudGlmaWVyOworICAgIFdl
YkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFR5cGUg
bV90eXBlOwogICAgIE5ldHdvcmtSVENQcm92aWRlciYgbV9ydGNQcm92aWRlcjsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4gbV9zb2NrZXQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3Zp
ZGVyLmNwcAppbmRleCBmN2VlNGRiZDg2ZmZjNzVkNTdlYjdiMzg2ZTYwMzhjNTdhMzUxZGI3Li4z
MmNlYTVkNDk0YjA3MzhhN2MwNGE4Zjc2ZTllOWVlYzRjMmEzNGQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRl
ci5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBzdGF0aWMgaW5saW5lIHN0ZDo6dW5pcXVlX3B0cjxy
dGM6OlRocmVhZD4gY3JlYXRlVGhyZWFkKCkKIHsKQEAgLTk2LDcgKzk3LDcgQEAgdm9pZCBOZXR3
b3JrUlRDUHJvdmlkZXI6OmNsb3NlKCkKICAgICB9KTsKIH0KIAotdm9pZCBOZXR3b3JrUlRDUHJv
dmlkZXI6OmNyZWF0ZVNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8
cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiBzb2NrZXQsIFNvY2tldDo6VHlwZSB0eXBlKQordm9p
ZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYm
IHNvY2tldCwgU29ja2V0OjpUeXBlIHR5cGUpCiB7CiAgICAgaWYgKCFzb2NrZXQpIHsKICAgICAg
ICAgc2VuZEZyb21NYWluVGhyZWFkKFtpZGVudGlmaWVyLCBzaXplID0gbV9zb2NrZXRzLnNpemUo
KV0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKSB7CkBAIC0xMDgsNyArMTA5LDcgQEAgdm9p
ZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldCh1aW50NjRfdCBpZGVudGlmaWVyLCBz
dGQ6OnVuaXF1ZV9wdHI8cnRjOjoKICAgICBhZGRTb2NrZXQoaWRlbnRpZmllciwgbWFrZVVuaXF1
ZTxMaWJXZWJSVENTb2NrZXRDbGllbnQ+KGlkZW50aWZpZXIsICp0aGlzLCBXVEZNb3ZlKHNvY2tl
dCksIHR5cGUpKTsKIH0KIAotdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVVEUFNvY2tl
dCh1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBh
ZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KQordm9pZCBOZXR3b3Jr
UlRDUHJvdmlkZXI6OmNyZWF0ZVVEUFNvY2tldChMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQx
Nl90IG1pblBvcnQsIHVpbnQxNl90IG1heFBvcnQpCiB7CiAgICAgY2FsbE9uUlRDTmV0d29ya1Ro
cmVhZChbdGhpcywgaWRlbnRpZmllciwgYWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29w
eShhZGRyZXNzLnZhbHVlKSwgbWluUG9ydCwgbWF4UG9ydF0oKSB7CiAgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiBzb2NrZXQobV9wYWNrZXRTb2NrZXRGYWN0
b3J5LT5DcmVhdGVVZHBTb2NrZXQoYWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydCkpOwpAQCAtMTE2
LDcgKzExNyw3IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVVRFBTb2NrZXQodWlu
dDY0X3QgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6CiAgICAgfSk7CiB9CiAKLXZvaWQg
TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQodWludDY0X3QgaWRlbnRp
ZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3Qg
bWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCit2b2lkIE5ldHdvcmtSVENQ
cm92aWRlcjo6Y3JlYXRlU2VydmVyVENQU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIg
aWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWlu
dDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCiB7CiAgICAgaWYg
KCFtX2lzTGlzdGVuaW5nU29ja2V0QXV0aG9yaXplZCkgewogICAgICAgICBpZiAobV9jb25uZWN0
aW9uKQpAQCAtMTM3LDcgKzEzOCw3IEBAIHJ0Yzo6UHJveHlJbmZvIE5ldHdvcmtSVENQcm92aWRl
cjo6cHJveHlJbmZvRnJvbVNlc3Npb24oY29uc3QgUlRDTmV0d29yazo6U29ja2V0CiB9CiAjZW5k
aWYKIAotdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCh1aW50
NjRfdCBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFk
ZHJlc3MsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFN0
cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMpCit2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6
Y3JlYXRlQ2xpZW50VENQU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBTdHJpbmcmJiB1c2VyQWdl
bnQsIGludCBvcHRpb25zKQogewogICAgIGF1dG8qIHNlc3Npb24gPSBtX2Nvbm5lY3Rpb24tPm5l
dHdvcmtTZXNzaW9uKCk7CiAgICAgaWYgKCFzZXNzaW9uKSB7CkBAIC0xNTAsNyArMTUxLDcgQEAg
dm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZUNsaWVudFRDUFNvY2tldCh1aW50NjRfdCBp
ZGVudGlmaWVyLCBjb25zdCBSVENOZXQKICAgICB9KTsKIH0KIAotdm9pZCBOZXR3b3JrUlRDUHJv
dmlkZXI6OndyYXBOZXdUQ1BDb25uZWN0aW9uKHVpbnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2NF90
IG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKQordm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6
OndyYXBOZXdUQ1BDb25uZWN0aW9uKExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmll
ciwgTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmll
cikKIHsKICAgICBjYWxsT25SVENOZXR3b3JrVGhyZWFkKFt0aGlzLCBpZGVudGlmaWVyLCBuZXdD
b25uZWN0aW9uU29ja2V0SWRlbnRpZmllcl0oKSB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxy
dGM6OkFzeW5jUGFja2V0U29ja2V0PiBzb2NrZXQgPSBtX3BlbmRpbmdJbmNvbWluZ1NvY2tldHMu
dGFrZShuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllcik7CkBAIC0xNTgsMjcgKzE1OSwyOCBA
QCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6d3JhcE5ld1RDUENvbm5lY3Rpb24odWludDY0X3Qg
aWRlbnRpZmllciwgdWludDY0X3QgbmV3QwogICAgIH0pOwogfQogCi12b2lkIE5ldHdvcmtSVENQ
cm92aWRlcjo6YWRkU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxT
b2NrZXQ+JiYgc29ja2V0KQordm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmFkZFNvY2tldChMaWJX
ZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTb2NrZXQ+
JiYgc29ja2V0KQogewogICAgIG1fc29ja2V0cy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShzb2Nr
ZXQpKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtSVENQcm92aWRlcjo6U29ja2V0PiBO
ZXR3b3JrUlRDUHJvdmlkZXI6OnRha2VTb2NrZXQodWludDY0X3QgaWRlbnRpZmllcikKK3N0ZDo6
dW5pcXVlX3B0cjxOZXR3b3JrUlRDUHJvdmlkZXI6OlNvY2tldD4gTmV0d29ya1JUQ1Byb3ZpZGVy
Ojp0YWtlU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAg
ICByZXR1cm4gbV9zb2NrZXRzLnRha2UoaWRlbnRpZmllcik7CiB9CiAKIHZvaWQgTmV0d29ya1JU
Q1Byb3ZpZGVyOjpuZXdDb25uZWN0aW9uKFNvY2tldCYgc2VydmVyU29ja2V0LCBzdGQ6OnVuaXF1
ZV9wdHI8cnRjOjpBc3luY1BhY2tldFNvY2tldD4mJiBuZXdTb2NrZXQpCiB7Ci0gICAgc2VuZEZy
b21NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc2VydmVyU29ja2V0LmlkZW50aWZpZXIoKSwgaW5j
b21pbmdTb2NrZXRJZGVudGlmaWVyID0gKyttX2luY29taW5nU29ja2V0SWRlbnRpZmllciwgcmVt
b3RlQWRkcmVzcyA9IFJUQ05ldHdvcms6Omlzb2xhdGVkQ29weShuZXdTb2NrZXQtPkdldFJlbW90
ZUFkZHJlc3MoKSldKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgeworICAgIGF1dG8gaW5j
b21pbmdTb2NrZXRJZGVudGlmaWVyID0gTGliV2ViUlRDU29ja2V0SWRlbnRpZmllcjo6Z2VuZXJh
dGUoKTsKKyAgICBzZW5kRnJvbU1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBzZXJ2ZXJTb2NrZXQu
aWRlbnRpZmllcigpLCBpbmNvbWluZ1NvY2tldElkZW50aWZpZXIsIHJlbW90ZUFkZHJlc3MgPSBS
VENOZXR3b3JrOjppc29sYXRlZENvcHkobmV3U29ja2V0LT5HZXRSZW1vdGVBZGRyZXNzKCkpXShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pIHsKICAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1l
c3NhZ2VzOjpXZWJSVENTb2NrZXQ6OlNpZ25hbE5ld0Nvbm5lY3Rpb24oaW5jb21pbmdTb2NrZXRJ
ZGVudGlmaWVyLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MpKSwgaWRl
bnRpZmllcik7CiAgICAgfSk7Ci0gICAgbV9wZW5kaW5nSW5jb21pbmdTb2NrZXRzLmFkZChtX2lu
Y29taW5nU29ja2V0SWRlbnRpZmllciwgV1RGTW92ZShuZXdTb2NrZXQpKTsKKyAgICBtX3BlbmRp
bmdJbmNvbWluZ1NvY2tldHMuYWRkKGluY29taW5nU29ja2V0SWRlbnRpZmllciwgV1RGTW92ZShu
ZXdTb2NrZXQpKTsKIH0KIAogdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmRpZFJlY2VpdmVOZXR3
b3JrUlRDU29ja2V0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlcikKIHsKLSAgICBOZXR3b3JrUlRDU29ja2V0KGRlY29kZXIuZGVzdGluYXRp
b25JRCgpLCAqdGhpcykuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7Cisg
ICAgTmV0d29ya1JUQ1NvY2tldChtYWtlT2JqZWN0SWRlbnRpZmllcjxMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpLCAqdGhpcykuZGlkUmVjZWl2
ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkK
QEAgLTI0NSw3ICsyNDcsNyBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y2xvc2VMaXN0ZW5p
bmdTb2NrZXRzKEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZAogCiAgICAgbV9pc0xp
c3RlbmluZ1NvY2tldEF1dGhvcml6ZWQgPSBmYWxzZTsKICAgICBjYWxsT25SVENOZXR3b3JrVGhy
ZWFkKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSgpIG11dGFibGUgewotICAgICAgICBWZWN0b3I8dWludDY0X3Q+IGxpc3RlbmluZ1NvY2tldElk
ZW50aWZpZXJzOworICAgICAgICBWZWN0b3I8TGliV2ViUlRDU29ja2V0SWRlbnRpZmllcj4gbGlz
dGVuaW5nU29ja2V0SWRlbnRpZmllcnM7CiAgICAgICAgIGZvciAoYXV0byYga2V5VmFsdWUgOiBt
X3NvY2tldHMpIHsKICAgICAgICAgICAgIGlmIChrZXlWYWx1ZS52YWx1ZS0+dHlwZSgpID09IFNv
Y2tldDo6VHlwZTo6U2VydmVyVENQKQogICAgICAgICAgICAgICAgIGxpc3RlbmluZ1NvY2tldElk
ZW50aWZpZXJzLmFwcGVuZChrZXlWYWx1ZS5rZXkpOwpAQCAtMjg1LDcgKzI4Nyw3IEBAIHZvaWQg
TmV0d29ya1JUQ1Byb3ZpZGVyOjpjYWxsT25SVENOZXR3b3JrVGhyZWFkKEZ1bmN0aW9uPHZvaWQo
KT4mJiBjYWxsYmFjaykKICAgICBtX3J0Y05ldHdvcmtUaHJlYWQtPlBvc3QoUlRDX0ZST01fSEVS
RSwgdGhpcywgMSwgbmV3IE5ldHdvcmtNZXNzYWdlRGF0YSgqdGhpcywgV1RGTW92ZShjYWxsYmFj
aykpKTsKIH0KIAotdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNhbGxTb2NrZXQodWludDY0X3Qg
aWRlbnRpZmllciwgRnVuY3Rpb248dm9pZChTb2NrZXQmKT4mJiBjYWxsYmFjaykKK3ZvaWQgTmV0
d29ya1JUQ1Byb3ZpZGVyOjpjYWxsU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRl
bnRpZmllciwgRnVuY3Rpb248dm9pZChTb2NrZXQmKT4mJiBjYWxsYmFjaykKIHsKICAgICBjYWxs
T25SVENOZXR3b3JrVGhyZWFkKFt0aGlzLCBpZGVudGlmaWVyLCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXSgpIHsKICAgICAgICAgaWYgKGF1dG8qIHNvY2tldCA9IG1fc29ja2V0cy5nZXQo
aWRlbnRpZmllcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
d2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCmluZGV4IDYzMjY1ZGE0MDYwOGYwY2M5MzQ4ZmQx
YTQ3ZWNkMmIzNWY5NjNjMjkuLjI1MTA1MGQzNjEwYTk1NTVkN2NkNDg3MzE4MzU4ZjllNzgwMmE2
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENQcm92aWRlci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiTmV0d29y
a1JUQ01vbml0b3IuaCIKICNpbmNsdWRlICJSVENOZXR3b3JrLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9MaWJXZWJSVENNYWNyb3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1NvY2tldElk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3ZWJydGMvcDJwL2Jhc2UvYmFzaWNwYWNrZXRzb2NrZXRm
YWN0b3J5Lmg+CiAjaW5jbHVkZSA8d2VicnRjL3J0Y19iYXNlL3RoaXJkX3BhcnR5L3NpZ3Nsb3Qv
c2lnc2xvdC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC03MiwxOSArNzMsMTkgQEAg
cHVibGljOgogCiAgICAgICAgIGVudW0gY2xhc3MgVHlwZSA6IHVpbnQ4X3QgeyBVRFAsIFNlcnZl
clRDUCwgQ2xpZW50VENQLCBTZXJ2ZXJDb25uZWN0aW9uVENQIH07CiAgICAgICAgIHZpcnR1YWwg
VHlwZSB0eXBlKCkgY29uc3QgID0gMDsKLSAgICAgICAgdmlydHVhbCB1aW50NjRfdCBpZGVudGlm
aWVyKCkgY29uc3QgPSAwOworICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0ID0gMDsKIAogICAgICAgICB2aXJ0dWFsIHZv
aWQgY2xvc2UoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRPcHRpb24oaW50IG9wdGlv
biwgaW50IHZhbHVlKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZW5kVG8oY29uc3QgV2Vi
Q29yZTo6U2hhcmVkQnVmZmVyJiwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiwgY29uc3QgcnRj
OjpQYWNrZXRPcHRpb25zJikgPSAwOwogICAgIH07CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U29j
a2V0PiB0YWtlU29ja2V0KHVpbnQ2NF90KTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U29ja2V0PiB0
YWtlU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIpOwogICAgIHZvaWQg
cmVzb2x2ZXJEb25lKHVpbnQ2NF90KTsKIAogICAgIHZvaWQgY2xvc2UoKTsKIAotICAgIHZvaWQg
Y2FsbFNvY2tldCh1aW50NjRfdCwgRnVuY3Rpb248dm9pZChTb2NrZXQmKT4mJik7CisgICAgdm9p
ZCBjYWxsU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIEZ1bmN0aW9u
PHZvaWQoU29ja2V0Jik+JiYpOwogICAgIHZvaWQgY2FsbE9uUlRDTmV0d29ya1RocmVhZChGdW5j
dGlvbjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2VuZEZyb21NYWluVGhyZWFkKEZ1bmN0aW9uPHZv
aWQoSVBDOjpDb25uZWN0aW9uJik+JiYpOwogCkBAIC05NiwyNCArOTcsMjQgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBOZXR3b3JrUlRDUHJvdmlkZXIoTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmKTsKIAotICAgIHZvaWQgY3JlYXRlVURQU29ja2V0KHVpbnQ2NF90LCBj
b25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QsIHVpbnQxNl90KTsKLSAg
ICB2b2lkIGNyZWF0ZUNsaWVudFRDUFNvY2tldCh1aW50NjRfdCwgY29uc3QgUlRDTmV0d29yazo6
U29ja2V0QWRkcmVzcyYsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBTdHJpbmcm
JiB1c2VyQWdlbnQsIGludCk7Ci0gICAgdm9pZCBjcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQodWludDY0
X3QsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1
aW50MTZfdCBtYXhQb3J0LCBpbnQpOwotICAgIHZvaWQgd3JhcE5ld1RDUENvbm5lY3Rpb24odWlu
dDY0X3QgaWRlbnRpZmllciwgdWludDY0X3QgbmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIp
OworICAgIHZvaWQgY3JlYXRlVURQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCwgdWludDE2
X3QpOworICAgIHZvaWQgY3JlYXRlQ2xpZW50VENQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCBjb25zdCBS
VENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiwgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQpOworICAg
IHZvaWQgY3JlYXRlU2VydmVyVENQU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0
LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQpOworICAgIHZvaWQgd3JhcE5ld1RDUENvbm5lY3Rpb24o
V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpM
aWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKTsK
IAogICAgIHZvaWQgY3JlYXRlUmVzb2x2ZXIodWludDY0X3QsIGNvbnN0IFN0cmluZyYpOwogICAg
IHZvaWQgc3RvcFJlc29sdmVyKHVpbnQ2NF90KTsKIAotICAgIHZvaWQgYWRkU29ja2V0KHVpbnQ2
NF90LCBzdGQ6OnVuaXF1ZV9wdHI8U29ja2V0PiYmKTsKKyAgICB2b2lkIGFkZFNvY2tldChXZWJD
b3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U29ja2V0PiYm
KTsKIAotICAgIHZvaWQgY3JlYXRlU29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIsIHN0ZDo6dW5p
cXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmLCBTb2NrZXQ6OlR5cGUpOworICAgIHZv
aWQgY3JlYXRlU29ja2V0KFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIHN0ZDo6
dW5pcXVlX3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0PiYmLCBTb2NrZXQ6OlR5cGUpOwogCiAg
ICAgdm9pZCBPbk1lc3NhZ2UocnRjOjpNZXNzYWdlKik7CiAKICAgICBzdGF0aWMgcnRjOjpQcm94
eUluZm8gcHJveHlJbmZvRnJvbVNlc3Npb24oY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVz
cyYsIE5ldHdvcmtTZXNzaW9uJik7CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1
ZV9wdHI8TmV0d29ya1JUQ1Jlc29sdmVyPj4gbV9yZXNvbHZlcnM7Ci0gICAgSGFzaE1hcDx1aW50
NjRfdCwgc3RkOjp1bmlxdWVfcHRyPFNvY2tldD4+IG1fc29ja2V0czsKKyAgICBIYXNoTWFwPFdl
YkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxTb2NrZXQ+
PiBtX3NvY2tldHM7CiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIG1fY29ubmVj
dGlvbjsKICAgICBib29sIG1faXNTdGFydGVkIHsgdHJ1ZSB9OwogCkBAIC0xMjIsOCArMTIzLDcg
QEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpUaHJlYWQ+IG1fcnRjTmV0d29y
a1RocmVhZDsKICAgICBVbmlxdWVSZWY8cnRjOjpCYXNpY1BhY2tldFNvY2tldEZhY3Rvcnk+IG1f
cGFja2V0U29ja2V0RmFjdG9yeTsKIAotICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVl
X3B0cjxydGM6OkFzeW5jUGFja2V0U29ja2V0Pj4gbV9wZW5kaW5nSW5jb21pbmdTb2NrZXRzOwot
ICAgIHVpbnQ2NF90IG1faW5jb21pbmdTb2NrZXRJZGVudGlmaWVyIHsgMCB9OworICAgIEhhc2hN
YXA8V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPHJ0
Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+PiBtX3BlbmRpbmdJbmNvbWluZ1NvY2tldHM7CiAgICAgYm9v
bCBtX2lzTGlzdGVuaW5nU29ja2V0QXV0aG9yaXplZCB7IHRydWUgfTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRl
ci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENQcm92aWRlci5tZXNzYWdlcy5pbgppbmRleCAxMjIzNmIzYzcxZDdmZjA2ZTYxODMyMmY2
NDcyZmZiMTM4OGJkMzg3Li45MjFlNTcwNGMyZDk5OWYwN2UxMDhjOTJmNzE5YjYxNzA4YTYyMzhi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3Jr
UlRDUHJvdmlkZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLm1lc3NhZ2VzLmluCkBAIC0yMywxMiArMjMsMTMg
QEAKICNpZiBVU0UoTElCV0VCUlRDKQogCiBtZXNzYWdlcyAtPiBOZXR3b3JrUlRDUHJvdmlkZXIg
ewotICAgIENyZWF0ZVVEUFNvY2tldChpbnQgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3Jr
OjpTb2NrZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3Qg
bWF4UG9ydCkKLSAgICBDcmVhdGVTZXJ2ZXJUQ1BTb2NrZXQoaW50IGlkZW50aWZpZXIsIFdlYktp
dDo6UlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBv
cnQsIHVpbnQxNl90IG1heFBvcnQsIGludCBvcHRpb25zKQotICAgIENyZWF0ZUNsaWVudFRDUFNv
Y2tldChpbnQgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGxv
Y2FsQWRkcmVzcywgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIHJlbW90ZUFkZHJl
c3MsIFN0cmluZyB1c2VyQWdlbnQsIGludCBvcHRpb25zKQorICAgIENyZWF0ZVVEUFNvY2tldChX
ZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6UlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyBsb2NhbEFkZHJlc3MsIHVpbnQxNl90IG1pblBvcnQsIHVp
bnQxNl90IG1heFBvcnQpCisgICAgQ3JlYXRlU2VydmVyVENQU29ja2V0KFdlYkNvcmU6OkxpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9y
dCwgaW50IG9wdGlvbnMpCisgICAgQ3JlYXRlQ2xpZW50VENQU29ja2V0KFdlYkNvcmU6OkxpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzIGxvY2FsQWRkcmVzcywgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
IHJlbW90ZUFkZHJlc3MsIFN0cmluZyB1c2VyQWdlbnQsIGludCBvcHRpb25zKQorICAgIFdyYXBO
ZXdUQ1BDb25uZWN0aW9uKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29j
a2V0SWRlbnRpZmllcikKKwogICAgIENyZWF0ZVJlc29sdmVyKHVpbnQ2NF90IGlkZW50aWZpZXIs
IFN0cmluZyBhZGRyZXNzKQogICAgIFN0b3BSZXNvbHZlcih1aW50NjRfdCBpZGVudGlmaWVyKQot
ICAgIFdyYXBOZXdUQ1BDb25uZWN0aW9uKHVpbnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2NF90IG5l
d0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyKQogfQogCiAjZW5kaWYgLy8gVVNFKExJQldFQlJU
QykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENTb2NrZXQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1NvY2tldC5jcHAKaW5kZXggYThjNzBhM2IwZDY5NmZiODE4NGI3MTEyZDczZGYzNGQ4
ZmU3ZjA2ZS4uODIwZDA3YmMwZTcyNzRiNDc4YjRlMmE4NmZhYTk3MjdkZDJkZmM0ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tl
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JU
Q1NvY2tldC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLU5l
dHdvcmtSVENTb2NrZXQ6Ok5ldHdvcmtSVENTb2NrZXQodWludDY0X3QgaWRlbnRpZmllciwgTmV0
d29ya1JUQ1Byb3ZpZGVyJiBydGNQcm92aWRlcikKK05ldHdvcmtSVENTb2NrZXQ6Ok5ldHdvcmtS
VENTb2NrZXQoV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBO
ZXR3b3JrUlRDUHJvdmlkZXImIHJ0Y1Byb3ZpZGVyKQogICAgIDogbV9pZGVudGlmaWVyKGlkZW50
aWZpZXIpCiAgICAgLCBtX3J0Y1Byb3ZpZGVyKHJ0Y1Byb3ZpZGVyKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5oCmlu
ZGV4IDZlNGJmZTJiMTY0MTljYmJjNTFiODBkOTVmNzU5ZWZlMmVkZDkyYWYuLjg0YmI0ZjEzMTI3
YjM2MDZiY2UwMTk3MWVjY2JhYTljNGJjZGQ0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmgKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlICJSVENOZXR3b3JrLmgiCiAKICNpbmNsdWRlIDxXZWJDb3JlL0xpYldl
YlJUQ01hY3Jvcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDU29ja2V0SWRlbnRpZmll
ci5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS9hc3luY3BhY2tldHNvY2tldC5oPgogI2lu
Y2x1ZGUgPHdlYnJ0Yy9ydGNfYmFzZS90aGlyZF9wYXJ0eS9zaWdzbG90L3NpZ3Nsb3QuaD4KIApA
QCAtNTgsMTQgKzU5LDE0IEBAIHN0cnVjdCBSVENQYWNrZXRPcHRpb25zOwogCiBjbGFzcyBOZXR3
b3JrUlRDU29ja2V0IHsKIHB1YmxpYzoKLSAgICBOZXR3b3JrUlRDU29ja2V0KHVpbnQ2NF90LCBO
ZXR3b3JrUlRDUHJvdmlkZXImKTsKKyAgICBOZXR3b3JrUlRDU29ja2V0KFdlYkNvcmU6OkxpYldl
YlJUQ1NvY2tldElkZW50aWZpZXIsIE5ldHdvcmtSVENQcm92aWRlciYpOwogICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiBwcml2YXRl
OgogICAgIHZvaWQgc2VuZFRvKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIFJUQ05ldHdvcms6
OlNvY2tldEFkZHJlc3MmJiwgUlRDUGFja2V0T3B0aW9ucyYmKTsKICAgICB2b2lkIGNsb3NlKCk7
CiAgICAgdm9pZCBzZXRPcHRpb24oaW50IG9wdGlvbiwgaW50IHZhbHVlKTsKIAotICAgIHVpbnQ2
NF90IG1faWRlbnRpZmllcjsKKyAgICBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
IG1faWRlbnRpZmllcjsKICAgICBOZXR3b3JrUlRDUHJvdmlkZXImIG1fcnRjUHJvdmlkZXI7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBlYzQwZDQz
MTNlZDM0NTBjMWUxMGZmZGQ3MWIyMDZjODQyNmRmYzliLi5hNzhkYTMxNDQzMjU4YzA4NjE5MmYy
MDUyMGIzNDA2MDk0ZTQ5OGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKQEAgLTIwNiw2ICsyMDYsNyBAQCBkZWYgZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hl
YWRlcnMocmVjZWl2ZXIpOgogICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYkNvcmU6OkZldGNoSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXInLAorICAgICAgICAnV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQYWdlSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJD
b3JlOjpQb2ludGVySUQnLAogICAgICAgICAnV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXInLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggMmYyMWY1ZTUxOTEwZWI5ODUyOGM4ZGQ0NjQ0
ZmU1MzI5ZmE0MWQwMS4uZjBiNGZkZmE2YTMxMTcwNDk5NmQ3ODVhMWM5NjI3NzM2MDExOTgwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVAKIAogI2lmIFVTRShMSUJXRUJSVEMpCiAgICAgaWYgKGRlY29kZXIubWVz
c2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJSVENTb2NrZXQ6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSkgewotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENO
ZXR3b3JrKCkuc29ja2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKS5kaWRSZWNlaXZlTWVzc2Fn
ZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
bGliV2ViUlRDTmV0d29yaygpLnNvY2tldChtYWtlT2JqZWN0SWRlbnRpZmllcjxMaWJXZWJSVENT
b2NrZXRJZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpKS5kaWRSZWNlaXZl
TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlJUQ01v
bml0b3I6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmgKaW5kZXgg
N2M2NDg0ZmU3OGQ3OGQ3NGNiMzI4MzMxZjk3NmFmYWI0MjNiNzJmNS4uZjdlMjFmNzcwYjAzM2Ix
N2M4NTk2OTA2YTcwMTIyZWFiNjYyNjljMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oCkBAIC0zMyw2
ICszMyw3IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgIldlYk1ETlNSZWdpc3Rlci5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApAQCAtNDcsNyArNDgsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpc2FibGVOb25M
b2NhbGhvc3RDb25uZWN0aW9ucygpIHsgc29ja2V0RmFjdG9yeSgpLmRpc2FibGVOb25Mb2NhbGhv
c3RDb25uZWN0aW9ucygpOyB9CiAKLSAgICBXZWJSVENTb2NrZXQgc29ja2V0KHVpbnQ2NF90IGlk
ZW50aWZpZXIpIHsgcmV0dXJuIFdlYlJUQ1NvY2tldChzb2NrZXRGYWN0b3J5KCksIGlkZW50aWZp
ZXIpOyB9CisgICAgV2ViUlRDU29ja2V0IHNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpIHsgcmV0dXJuIFdlYlJUQ1NvY2tldChzb2NrZXRGYWN0b3J5
KCksIGlkZW50aWZpZXIpOyB9CiAgICAgV2ViUlRDUmVzb2x2ZXIgcmVzb2x2ZXIodWludDY0X3Qg
aWRlbnRpZmllcikgeyByZXR1cm4gV2ViUlRDUmVzb2x2ZXIoc29ja2V0RmFjdG9yeSgpLCBpZGVu
dGlmaWVyKTsgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKaW5kZXggZTJjNWRmNTU3
YzQwMTE1ZGRmNDhmZDQwNzlhZmI5NDlhNmMyNTU2OS4uY2NmOTUwYjYwZWFlMzI1MWRiNDE4ZjM2
ZWU3OTk0NmE2NjU5ZjNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldC5jcHAKQEAgLTQwLDkgKzQwLDkg
QEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLUxpYldlYlJUQ1NvY2tldDo6TGliV2ViUlRDU29j
a2V0KExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIGZhY3RvcnksIHVpbnQ2NF90IGlkZW50aWZpZXIs
IFR5cGUgdHlwZSwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0
IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRkcmVzcykKK0xpYldlYlJUQ1NvY2tldDo6TGli
V2ViUlRDU29ja2V0KExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIGZhY3RvcnksIFR5cGUgdHlwZSwg
Y29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0
QWRkcmVzcyYgcmVtb3RlQWRkcmVzcykKICAgICA6IG1fZmFjdG9yeShmYWN0b3J5KQotICAgICwg
bV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2lkZW50aWZpZXIoV2ViQ29yZTo6TGli
V2ViUlRDU29ja2V0SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKICAgICAsIG1fdHlwZSh0eXBlKQog
ICAgICwgbV9sb2NhbEFkZHJlc3MobG9jYWxBZGRyZXNzKQogICAgICwgbV9yZW1vdGVBZGRyZXNz
KHJlbW90ZUFkZHJlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0LmgKaW5kZXggYWYxZjQyNTMwMTZkZTNlMTkz
N2UxMzZlM2E5ZDI4ZTIwYzEyNDQ2Ny4uNjQ0ZWU1YTBiYjFmM2Y5OGFmNjllY2Q0MGNlZWU5Yjlj
MjAyYjkwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1NvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXQuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIFVTRShM
SUJXRUJSVEMpCiAKICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1Byb3ZpZGVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d2Vi
cnRjL3J0Y19iYXNlL2FzeW5jcGFja2V0c29ja2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTUxLDEwICs1MiwxMCBAQCBjbGFzcyBMaWJX
ZWJSVENTb2NrZXQgZmluYWwgOiBwdWJsaWMgcnRjOjpBc3luY1BhY2tldFNvY2tldCB7CiBwdWJs
aWM6CiAgICAgZW51bSBjbGFzcyBUeXBlIHsgVURQLCBTZXJ2ZXJUQ1AsIENsaWVudFRDUCwgU2Vy
dmVyQ29ubmVjdGlvblRDUCB9OwogCi0gICAgTGliV2ViUlRDU29ja2V0KExpYldlYlJUQ1NvY2tl
dEZhY3RvcnkmLCB1aW50NjRfdCBpZGVudGlmaWVyLCBUeXBlLCBjb25zdCBydGM6OlNvY2tldEFk
ZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRy
ZXNzKTsKKyAgICBMaWJXZWJSVENTb2NrZXQoTGliV2ViUlRDU29ja2V0RmFjdG9yeSYsIFR5cGUs
IGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgbG9jYWxBZGRyZXNzLCBjb25zdCBydGM6OlNvY2tl
dEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MpOwogICAgIH5MaWJXZWJSVENTb2NrZXQoKTsKIAotICAg
IHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAg
ICBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX2lkZW50aWZpZXI7IH0KICAgICBjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxv
Y2FsQWRkcmVzcygpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxBZGRyZXNzOyB9CiAgICAgY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKCkgY29uc3QgeyByZXR1cm4gbV9yZW1v
dGVBZGRyZXNzOyB9CiAKQEAgLTg3LDcgKzg4LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9p
ZCBzZW5kT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoSVBDOjpDb25uZWN0aW9uJik+JiYpOwog
CiAgICAgTGliV2ViUlRDU29ja2V0RmFjdG9yeSYgbV9mYWN0b3J5OwotICAgIHVpbnQ2NF90IG1f
aWRlbnRpZmllciB7IDAgfTsKKyAgICBXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
IG1faWRlbnRpZmllcjsKICAgICBUeXBlIG1fdHlwZTsKICAgICBydGM6OlNvY2tldEFkZHJlc3Mg
bV9sb2NhbEFkZHJlc3M7CiAgICAgcnRjOjpTb2NrZXRBZGRyZXNzIG1fcmVtb3RlQWRkcmVzczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENTb2NrZXRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAppbmRleCA2ZDNjMGIxYjBhMTk1ZGE1
NTE1NzVmMzhkNmRhODY0MWE2YzEzMzQ5Li5lM2Y5MDgwZDJhZjlhNzYxMjEyNDVhNWMwNTJlYzBl
YTcyYTNmZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCkBAIC0zNiw4
ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotdWludDY0X3QgTGliV2ViUlRDU29ja2V0
RmFjdG9yeTo6c191bmlxdWVTb2NrZXRJZGVudGlmaWVyID0gMDsKIHVpbnQ2NF90IExpYldlYlJU
Q1NvY2tldEZhY3Rvcnk6OnNfdW5pcXVlUmVzb2x2ZXJJZGVudGlmaWVyID0gMDsKIAogc3RhdGlj
IGlubGluZSBydGM6OlNvY2tldEFkZHJlc3MgcHJlcGFyZVNvY2tldEFkZHJlc3MoY29uc3QgcnRj
OjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCBib29sIGRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0
aW9ucykKQEAgLTUwLDcgKzUwLDcgQEAgc3RhdGljIGlubGluZSBydGM6OlNvY2tldEFkZHJlc3Mg
cHJlcGFyZVNvY2tldEFkZHJlc3MoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJgogCiBydGM6OkFz
eW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVTZXJ2ZXJUY3BT
b2NrZXQoY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiBhZGRyZXNzLCB1aW50MTZfdCBtaW5Qb3J0
LCB1aW50MTZfdCBtYXhQb3J0LCBpbnQgb3B0aW9ucykKIHsKLSAgICBhdXRvIHNvY2tldCA9IG1h
a2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1ZVNvY2tldElkZW50aWZp
ZXIsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2VydmVyVENQLCBhZGRyZXNzLCBydGM6OlNvY2tl
dEFkZHJlc3MoKSk7CisgICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVlPExpYldlYlJUQ1NvY2tl
dD4oKnRoaXMsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6U2VydmVyVENQLCBhZGRyZXNzLCBydGM6
OlNvY2tldEFkZHJlc3MoKSk7CiAgICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZpZXIo
KSwgc29ja2V0LmdldCgpKTsKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBz
b2NrZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVzcyA9IHByZXBhcmVTb2NrZXRBZGRyZXNzKGFkZHJl
c3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKSwgbWluUG9ydCwgbWF4UG9ydCwg
b3B0aW9uc10oKSB7CkBAIC02Niw3ICs2Niw3IEBAIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExp
YldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6CiAK
IHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIExpYldlYlJUQ1NvY2tldEZhY3Rvcnk6OmNyZWF0ZVVk
cFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGFkZHJlc3MsIHVpbnQxNl90IG1pblBv
cnQsIHVpbnQxNl90IG1heFBvcnQpCiB7Ci0gICAgYXV0byBzb2NrZXQgPSBtYWtlVW5pcXVlPExp
YldlYlJUQ1NvY2tldD4oKnRoaXMsICsrc191bmlxdWVTb2NrZXRJZGVudGlmaWVyLCBMaWJXZWJS
VENTb2NrZXQ6OlR5cGU6OlVEUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOworICAg
IGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBMaWJXZWJS
VENTb2NrZXQ6OlR5cGU6OlVEUCwgYWRkcmVzcywgcnRjOjpTb2NrZXRBZGRyZXNzKCkpOwogICAg
IG1fc29ja2V0cy5zZXQoc29ja2V0LT5pZGVudGlmaWVyKCksIHNvY2tldC5nZXQoKSk7CiAKICAg
ICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gc29ja2V0LT5pZGVudGlmaWVyKCksIGFk
ZHJlc3MgPSBwcmVwYXJlU29ja2V0QWRkcmVzcyhhZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhv
c3RDb25uZWN0aW9ucyksIG1pblBvcnQsIG1heFBvcnRdKCkgewpAQCAtODAsNyArODAsNyBAQCBy
dGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVVZHBT
b2NrZXQoY29uc3QgcnRjOjpTb2NrZQogCiBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBMaWJXZWJS
VENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3QgcnRjOjpTb2NrZXRB
ZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYgcmVtb3RlQWRk
cmVzcywgU3RyaW5nJiYgdXNlckFnZW50LCBpbnQgb3B0aW9ucykKIHsKLSAgICBhdXRvIHNvY2tl
dCA9IG1ha2VVbmlxdWU8TGliV2ViUlRDU29ja2V0PigqdGhpcywgKytzX3VuaXF1ZVNvY2tldElk
ZW50aWZpZXIsIExpYldlYlJUQ1NvY2tldDo6VHlwZTo6Q2xpZW50VENQLCBsb2NhbEFkZHJlc3Ms
IHJlbW90ZUFkZHJlc3MpOworICAgIGF1dG8gc29ja2V0ID0gbWFrZVVuaXF1ZTxMaWJXZWJSVENT
b2NrZXQ+KCp0aGlzLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6OkNsaWVudFRDUCwgbG9jYWxBZGRy
ZXNzLCByZW1vdGVBZGRyZXNzKTsKICAgICBzb2NrZXQtPnNldFN0YXRlKExpYldlYlJUQ1NvY2tl
dDo6U1RBVEVfQ09OTkVDVElORyk7CiAgICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZp
ZXIoKSwgc29ja2V0LmdldCgpKTsKIApAQCAtOTQsOSArOTQsOSBAQCBydGM6OkFzeW5jUGFja2V0
U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29u
c3QgcnRjOgogICAgIHJldHVybiBzb2NrZXQucmVsZWFzZSgpOwogfQogCi1ydGM6OkFzeW5jUGFj
a2V0U29ja2V0KiBMaWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVOZXdDb25uZWN0aW9uU29j
a2V0KExpYldlYlJUQ1NvY2tldCYgc2VydmVyU29ja2V0LCB1aW50NjRfdCBuZXdDb25uZWN0aW9u
U29ja2V0SWRlbnRpZmllciwgY29uc3QgcnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNz
KQorcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRl
TmV3Q29ubmVjdGlvblNvY2tldChMaWJXZWJSVENTb2NrZXQmIHNlcnZlclNvY2tldCwgTGliV2Vi
UlRDU29ja2V0SWRlbnRpZmllciBuZXdDb25uZWN0aW9uU29ja2V0SWRlbnRpZmllciwgY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQogewotICAgIGF1dG8gc29ja2V0ID0g
bWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCArK3NfdW5pcXVlU29ja2V0SWRlbnRp
ZmllciwgTGliV2ViUlRDU29ja2V0OjpUeXBlOjpTZXJ2ZXJDb25uZWN0aW9uVENQLCBzZXJ2ZXJT
b2NrZXQubG9jYWxBZGRyZXNzKCksIHJlbW90ZUFkZHJlc3MpOworICAgIGF1dG8gc29ja2V0ID0g
bWFrZVVuaXF1ZTxMaWJXZWJSVENTb2NrZXQ+KCp0aGlzLCBMaWJXZWJSVENTb2NrZXQ6OlR5cGU6
OlNlcnZlckNvbm5lY3Rpb25UQ1AsIHNlcnZlclNvY2tldC5sb2NhbEFkZHJlc3MoKSwgcmVtb3Rl
QWRkcmVzcyk7CiAgICAgc29ja2V0LT5zZXRTdGF0ZShMaWJXZWJSVENTb2NrZXQ6OlNUQVRFX0NP
Tk5FQ1RFRCk7CiAgICAgbV9zb2NrZXRzLnNldChzb2NrZXQtPmlkZW50aWZpZXIoKSwgc29ja2V0
LmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKaW5kZXggNDk0ZjlkNDQ2
Y2M2MTlhNmI2MzZhMDFiZjkyZTM0MDIwNTg1ZjcwNS4uYTk0NWIxMGRhYWRhYWY2YjQ1ZDRkODU2
Yzg2YjY3YjE0MmI3NzNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5oCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJM
aWJXZWJSVENTb2NrZXQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jvcy5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oPgogI2luY2x1ZGUg
PHdlYnJ0Yy9ydGNfYmFzZS9uZXRoZWxwZXJzLmg+CiAjaW5jbHVkZSA8d2VicnRjL3AycC9iYXNl
L3BhY2tldHNvY2tldGZhY3RvcnkuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNDEs
MjYgKzQyLDIyIEBAIHB1YmxpYzoKICAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5KCkgeyB9CiAK
ICAgICB2b2lkIGRldGFjaChMaWJXZWJSVENTb2NrZXQmKTsKLQotICAgIExpYldlYlJUQ1NvY2tl
dCogc29ja2V0KHVpbnQ2NF90IGlkZW50aWZpZXIpIHsgcmV0dXJuIG1fc29ja2V0cy5nZXQoaWRl
bnRpZmllcik7IH0KLSAgICBMaWJXZWJSVENSZXNvbHZlciogcmVzb2x2ZXIodWludDY0X3QgaWRl
bnRpZmllcikgeyByZXR1cm4gbV9yZXNvbHZlcnMuZ2V0KGlkZW50aWZpZXIpOyB9Ci0KLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDUmVzb2x2ZXI+IHRha2VSZXNvbHZlcih1aW50NjRfdCBp
ZGVudGlmaWVyKSB7IHJldHVybiBtX3Jlc29sdmVycy50YWtlKGlkZW50aWZpZXIpOyB9Ci0KLSAg
ICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVOZXdDb25uZWN0aW9uU29ja2V0KExpYldl
YlJUQ1NvY2tldCYsIHVpbnQ2NF90IG5ld0Nvbm5lY3Rpb25Tb2NrZXRJZGVudGlmaWVyLCBjb25z
dCBydGM6OlNvY2tldEFkZHJlc3MmKTsKLQotICAgIHZvaWQgZGlzYWJsZU5vbkxvY2FsaG9zdENv
bm5lY3Rpb25zKCkgeyBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyA9IHRydWU7IH0K
KyAgICBMaWJXZWJSVENTb2NrZXQqIHNvY2tldChXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVu
dGlmaWVyIGlkZW50aWZpZXIpIHsgcmV0dXJuIG1fc29ja2V0cy5nZXQoaWRlbnRpZmllcik7IH0K
IAogICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZVVkcFNvY2tldChjb25zdCBydGM6
OlNvY2tldEFkZHJlc3MmLCB1aW50MTZfdCBtaW5Qb3J0LCB1aW50MTZfdCBtYXhQb3J0KTsKICAg
ICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVTZXJ2ZXJUY3BTb2NrZXQoY29uc3QgcnRj
OjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50
IG9wdGlvbnMpOwogICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQqIGNyZWF0ZUNsaWVudFRjcFNv
Y2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmIGxvY2FsQWRkcmVzcywgY29uc3QgcnRjOjpT
b2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzLCBTdHJpbmcmJiB1c2VyQWdlbnQsIGludCBvcHRp
b25zKTsKKyAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBjcmVhdGVOZXdDb25uZWN0aW9uU29j
a2V0KExpYldlYlJUQ1NvY2tldCYsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIg
bmV3Q29ubmVjdGlvblNvY2tldElkZW50aWZpZXIsIGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYp
OworCisgICAgTGliV2ViUlRDUmVzb2x2ZXIqIHJlc29sdmVyKHVpbnQ2NF90IGlkZW50aWZpZXIp
IHsgcmV0dXJuIG1fcmVzb2x2ZXJzLmdldChpZGVudGlmaWVyKTsgfQorICAgIHN0ZDo6dW5pcXVl
X3B0cjxMaWJXZWJSVENSZXNvbHZlcj4gdGFrZVJlc29sdmVyKHVpbnQ2NF90IGlkZW50aWZpZXIp
IHsgcmV0dXJuIG1fcmVzb2x2ZXJzLnRha2UoaWRlbnRpZmllcik7IH0KICAgICBydGM6OkFzeW5j
UmVzb2x2ZXJJbnRlcmZhY2UqIGNyZWF0ZUFzeW5jUmVzb2x2ZXIoKTsKKyAgICAKKyAgICB2b2lk
IGRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygpIHsgbV9kaXNhYmxlTm9uTG9jYWxob3N0
Q29ubmVjdGlvbnMgPSB0cnVlOyB9CiAKIHByaXZhdGU6Ci0KICAgICAvLyBXZSBjYW5ub3Qgb3du
IHNvY2tldHMsIGNsaWVudHMgb2YgdGhlIGZhY3RvcnkgYXJlIHJlc3BvbnNpYmxlIHRvIGZyZWUg
dGhlbS4KLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBMaWJXZWJSVENTb2NrZXQqPiBtX3NvY2tldHM7
Ci0gICAgc3RhdGljIHVpbnQ2NF90IHNfdW5pcXVlU29ja2V0SWRlbnRpZmllcjsKKyAgICBIYXNo
TWFwPFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIsIExpYldlYlJUQ1NvY2tldCo+
IG1fc29ja2V0czsKICAgICAKICAgICAvLyBXZSBjYW4gb3duIHJlc29sdmVycyBhcyB3ZSBjb250
cm9sIHRoZWlyIERlc3Ryb3kgbWV0aG9kLgogICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5p
cXVlX3B0cjxMaWJXZWJSVENSZXNvbHZlcj4+IG1fcmVzb2x2ZXJzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1NvY2tldC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcApp
bmRleCBiYTM1ZDdmNzk3Y2IwNjUxYjRiNWRmMGZkMmNkNDAwMTZjOGYyZmM5Li43ODI5M2JjY2Zi
OWYyZDliYzJmNjViMDQ3OWNiNGQ1OGI4YzZmOWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDU29ja2V0LmNwcApAQCAtMzYs
OCArMzYsOSBAQAogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi12b2lkIFdlYlJUQ1NvY2tldDo6c2lnbmFs
T25OZXR3b3JrVGhyZWFkKExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIGZhY3RvcnksIHVpbnQ2NF90
IGlkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoTGliV2ViUlRDU29ja2V0Jik+JiYgY2FsbGJhY2sp
Cit2b2lkIFdlYlJUQ1NvY2tldDo6c2lnbmFsT25OZXR3b3JrVGhyZWFkKExpYldlYlJUQ1NvY2tl
dEZhY3RvcnkmIGZhY3RvcnksIExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwg
RnVuY3Rpb248dm9pZChMaWJXZWJSVENTb2NrZXQmKT4mJiBjYWxsYmFjaykKIHsKICAgICAvLyBm
YWN0b3J5IGlzIHN0YXlpbmcgdmFsaWQgZHVyaW5nIHRoZSBwcm9jZXNzIGxpZmV0aW1lLgogICAg
IFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjYWxsT25XZWJSVENOZXR3b3JrVGhyZWFkKFsm
ZmFjdG9yeSwgaWRlbnRpZmllciwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSB7CkBA
IC00OCw3ICs0OSw3IEBAIHZvaWQgV2ViUlRDU29ja2V0OjpzaWduYWxPbk5ldHdvcmtUaHJlYWQo
TGliV2ViUlRDU29ja2V0RmFjdG9yeSYgZmFjdG9yeSwgdWludDY0CiAgICAgfSk7CiB9CiAKLVdl
YlJUQ1NvY2tldDo6V2ViUlRDU29ja2V0KExpYldlYlJUQ1NvY2tldEZhY3RvcnkmIGZhY3Rvcnks
IHVpbnQ2NF90IGlkZW50aWZpZXIpCitXZWJSVENTb2NrZXQ6OldlYlJUQ1NvY2tldChMaWJXZWJS
VENTb2NrZXRGYWN0b3J5JiBmYWN0b3J5LCBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIGlkZW50
aWZpZXIpCiAgICAgOiBtX2ZhY3RvcnkoZmFjdG9yeSkKICAgICAsIG1faWRlbnRpZmllcihpZGVu
dGlmaWVyKQogewpAQCAtNzEsMjggKzcyLDI4IEBAIHZvaWQgV2ViUlRDU29ja2V0OjpzaWduYWxS
ZWFkUGFja2V0KGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgY29uc3QgUlRDTmV0CiAK
IHZvaWQgV2ViUlRDU29ja2V0OjpzaWduYWxTZW50UGFja2V0KGludCBydGNQYWNrZXRJRCwgaW50
NjRfdCBzZW5kVGltZU1zKQogewotICAgIHNpZ25hbE9uTmV0d29ya1RocmVhZChtX2ZhY3Rvcnks
IG1faWRlbnRpZmllciwgW3J0Y1BhY2tldElELCBzZW5kVGltZU1zXShMaWJXZWJSVENTb2NrZXQm
IHNvY2tldCkgeworICAgIHNpZ25hbE9uTmV0d29ya1RocmVhZChtX2ZhY3RvcnksIG1faWRlbnRp
ZmllciwgW3J0Y1BhY2tldElELCBzZW5kVGltZU1zXShhdXRvJiBzb2NrZXQpIHsKICAgICAgICAg
c29ja2V0LnNpZ25hbFNlbnRQYWNrZXQocnRjUGFja2V0SUQsIHNlbmRUaW1lTXMpOwogICAgIH0p
OwogfQogCiB2b2lkIFdlYlJUQ1NvY2tldDo6c2lnbmFsQ29ubmVjdCgpCiB7Ci0gICAgc2lnbmFs
T25OZXR3b3JrVGhyZWFkKG1fZmFjdG9yeSwgbV9pZGVudGlmaWVyLCBbXShMaWJXZWJSVENTb2Nr
ZXQmIHNvY2tldCkgeworICAgIHNpZ25hbE9uTmV0d29ya1RocmVhZChtX2ZhY3RvcnksIG1faWRl
bnRpZmllciwgW10oYXV0byYgc29ja2V0KSB7CiAgICAgICAgIHNvY2tldC5zaWduYWxDb25uZWN0
KCk7CiAgICAgfSk7CiB9CiAKIHZvaWQgV2ViUlRDU29ja2V0OjpzaWduYWxDbG9zZShpbnQgZXJy
b3IpCiB7Ci0gICAgc2lnbmFsT25OZXR3b3JrVGhyZWFkKG1fZmFjdG9yeSwgbV9pZGVudGlmaWVy
LCBbZXJyb3JdKExpYldlYlJUQ1NvY2tldCYgc29ja2V0KSB7CisgICAgc2lnbmFsT25OZXR3b3Jr
VGhyZWFkKG1fZmFjdG9yeSwgbV9pZGVudGlmaWVyLCBbZXJyb3JdKGF1dG8mIHNvY2tldCkgewog
ICAgICAgICBzb2NrZXQuc2lnbmFsQ2xvc2UoZXJyb3IpOwogICAgIH0pOwogfQogCi12b2lkIFdl
YlJUQ1NvY2tldDo6c2lnbmFsTmV3Q29ubmVjdGlvbih1aW50NjRfdCBuZXdTb2NrZXRJZGVudGlm
aWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiByZW1vdGVBZGRyZXNzKQordm9p
ZCBXZWJSVENTb2NrZXQ6OnNpZ25hbE5ld0Nvbm5lY3Rpb24oTGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllciBuZXdTb2NrZXRJZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNz
JiByZW1vdGVBZGRyZXNzKQogewotICAgIHNpZ25hbE9uTmV0d29ya1RocmVhZChtX2ZhY3Rvcnks
IG1faWRlbnRpZmllciwgW25ld1NvY2tldElkZW50aWZpZXIsIHJlbW90ZUFkZHJlc3MgPSBSVENO
ZXR3b3JrOjppc29sYXRlZENvcHkocmVtb3RlQWRkcmVzcy52YWx1ZSldKExpYldlYlJUQ1NvY2tl
dCYgc29ja2V0KSB7CisgICAgc2lnbmFsT25OZXR3b3JrVGhyZWFkKG1fZmFjdG9yeSwgbV9pZGVu
dGlmaWVyLCBbbmV3U29ja2V0SWRlbnRpZmllciwgcmVtb3RlQWRkcmVzcyA9IFJUQ05ldHdvcms6
Omlzb2xhdGVkQ29weShyZW1vdGVBZGRyZXNzLnZhbHVlKV0oYXV0byYgc29ja2V0KSB7CiAgICAg
ICAgIHNvY2tldC5zaWduYWxOZXdDb25uZWN0aW9uKHNvY2tldC5tX2ZhY3RvcnkuY3JlYXRlTmV3
Q29ubmVjdGlvblNvY2tldChzb2NrZXQsIG5ld1NvY2tldElkZW50aWZpZXIsIHJlbW90ZUFkZHJl
c3MpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQuaAppbmRleCA5ZjRjYjc4MDg2ODVkZDY3ODZjMWRk
NWI3MzYxYzI3MjI0MjBlODlmLi41N2UxOGRmZTMwMzhmY2U3ZTcyYWI0OWVmZThhMjg3MGI0Zjk4
MmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
V2ViUlRDU29ja2V0LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL1dlYlJUQ1NvY2tldC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgVVNFKExJQldFQlJUQykK
IAogI2luY2x1ZGUgIlJUQ05ldHdvcmsuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAogbmFtZXNwYWNl
IElQQyB7CkBAIC00MywxMSArNDQsMTEgQEAgY2xhc3MgTGliV2ViUlRDU29ja2V0RmFjdG9yeTsK
IAogY2xhc3MgV2ViUlRDU29ja2V0IHsKIHB1YmxpYzoKLSAgICBXZWJSVENTb2NrZXQoTGliV2Vi
UlRDU29ja2V0RmFjdG9yeSYsIHVpbnQ2NF90KTsKKyAgICBXZWJSVENTb2NrZXQoTGliV2ViUlRD
U29ja2V0RmFjdG9yeSYsIFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXIpOwogCiAg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KTsKIAotICAgIHN0YXRpYyB2b2lkIHNpZ25hbE9uTmV0d29ya1RocmVhZChMaWJXZWJSVENTb2Nr
ZXRGYWN0b3J5JiwgdWludDY0X3QsIEZ1bmN0aW9uPHZvaWQoTGliV2ViUlRDU29ja2V0Jik+JiYp
OworICAgIHN0YXRpYyB2b2lkIHNpZ25hbE9uTmV0d29ya1RocmVhZChMaWJXZWJSVENTb2NrZXRG
YWN0b3J5JiwgV2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgRnVuY3Rpb248dm9p
ZChMaWJXZWJSVENTb2NrZXQmKT4mJik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzaWduYWxSZWFk
UGFja2V0KGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFJUQ05ldHdvcms6OklQQWRk
cmVzcyYsIHVpbnQxNl90IHBvcnQsIGludDY0X3QpOwpAQCAtNTUsMTAgKzU2LDEwIEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzaWduYWxBZGRyZXNzUmVhZHkoY29uc3QgUlRDTmV0d29yazo6U29ja2V0
QWRkcmVzcyYpOwogICAgIHZvaWQgc2lnbmFsQ29ubmVjdCgpOwogICAgIHZvaWQgc2lnbmFsQ2xv
c2UoaW50KTsKLSAgICB2b2lkIHNpZ25hbE5ld0Nvbm5lY3Rpb24odWludDY0X3QgbmV3U29ja2V0
SWRlbnRpZmllciwgY29uc3QgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJik7Cisg
ICAgdm9pZCBzaWduYWxOZXdDb25uZWN0aW9uKFdlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50
aWZpZXIgbmV3U29ja2V0SWRlbnRpZmllciwgY29uc3QgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzJik7CiAKICAgICBMaWJXZWJSVENTb2NrZXRGYWN0b3J5JiBtX2ZhY3Rvcnk7Ci0g
ICAgdWludDY0X3QgbV9pZGVudGlmaWVyIHsgMCB9OworICAgIFdlYkNvcmU6OkxpYldlYlJUQ1Nv
Y2tldElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2Vi
UlRDU29ja2V0Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL1dlYlJUQ1NvY2tldC5tZXNzYWdlcy5pbgppbmRleCBmNjExMjg1YWZhNzM2NWFlMWRi
Nzg4YjI3Mzg0YTVmZWZlODg2ZTdmLi44Zjg3MmVlMjE5YTJjNzc2OGRhODUzYWE0MWYyNTdmZjQ1
NzRkYzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvV2ViUlRDU29ja2V0Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENTb2NrZXQubWVzc2FnZXMuaW4KQEAgLTI4LDcgKzI4LDcg
QEAgbWVzc2FnZXMgLT4gV2ViUlRDU29ja2V0IHsKICAgICBTaWduYWxBZGRyZXNzUmVhZHkoV2Vi
S2l0OjpSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzIGFkZHJlc3MpCiAgICAgU2lnbmFsQ29ubmVj
dCgpCiAgICAgU2lnbmFsQ2xvc2UoaW50IGVycm9yKQotICAgIFNpZ25hbE5ld0Nvbm5lY3Rpb24o
dWludDY0X3QgbmV3U29ja2V0SWRlbnRpZmllciwgV2ViS2l0OjpSVENOZXR3b3JrOjpTb2NrZXRB
ZGRyZXNzIHJlbW90ZUFkZHJlc3MpCisgICAgU2lnbmFsTmV3Q29ubmVjdGlvbihXZWJDb3JlOjpM
aWJXZWJSVENTb2NrZXRJZGVudGlmaWVyIG5ld1NvY2tldElkZW50aWZpZXIsIFdlYktpdDo6UlRD
TmV0d29yazo6U29ja2V0QWRkcmVzcyByZW1vdGVBZGRyZXNzKQogfQogCiAjZW5kaWYgLy8gVVNF
KExJQldFQlJUQykK
</data>

          </attachment>
      

    </bug>

</bugzilla>