<?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>224704</bug_id>
          
          <creation_ts>2021-04-16 16:33:14 -0700</creation_ts>
          <short_desc>LibWebRTCCodecs eagerly launches the GPUProcess and always relaunches it on exit</short_desc>
          <delta_ts>2021-04-24 15:06:44 -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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=224556</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=224709</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>224758</dependson>
          <blocked>224709</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>jer.noble</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1751320</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-16 16:33:14 -0700</bug_when>
    <thetext>LibWebRTCCodecs eagerly launches the GPUProcess and always relaunches it on exit. The GPUProcess should only be (re-)launched when needed. In the case of the LibWebRTCCodecs, it seems it only needs a GPUProcess connection if it has m_decoders / m_encoders are non-empty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751353</commentid>
    <comment_count>1</comment_count>
      <attachid>426303</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-16 18:15:53 -0700</bug_when>
    <thetext>Created attachment 426303
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751354</commentid>
    <comment_count>2</comment_count>
      <attachid>426304</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-16 18:22:10 -0700</bug_when>
    <thetext>Created attachment 426304
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751365</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-16 18:57:07 -0700</bug_when>
    <thetext>Looks like WebKit2.CrashGPUProcessWhileCapturingAndCalling is failing. I will need to investigate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751371</commentid>
    <comment_count>4</comment_count>
      <attachid>426312</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-16 19:45:39 -0700</bug_when>
    <thetext>Created attachment 426312
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751373</commentid>
    <comment_count>5</comment_count>
      <attachid>426314</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-16 19:51:49 -0700</bug_when>
    <thetext>Created attachment 426314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751472</commentid>
    <comment_count>6</comment_count>
      <attachid>426314</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-17 15:28:18 -0700</bug_when>
    <thetext>Comment on attachment 426314
Patch

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

&gt; Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:172
&gt; +void LibWebRTCCodecs::ensureGPUProcessConnectionOnMainThread(Locker&lt;Lock&gt;&amp;)

Just idly wondering: Would you want to add something like this?

    ASSERT_UNUSED(locker, locker.lockable() == &amp;m_connectionLock);

Adding that would require adding a lockable() member function to the Locker class template.

&gt; Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:496
&gt; +    std::exchange(m_connection, nullptr)-&gt;removeThreadMessageReceiver(Messages::LibWebRTCCodecs::messageReceiverName());

Is there a firm guarantee that m_connection is always non-null here? No race or edge case where it could be null?

&gt; Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.h:68
&gt; +    static Ref&lt;LibWebRTCCodecs&gt; create()
&gt;      {
&gt; -        auto instance = std::unique_ptr&lt;LibWebRTCCodecs&gt;(new LibWebRTCCodecs);
&gt; -        instance-&gt;startListeningForIPC();
&gt; -        return instance;
&gt; +        return adoptRef(*new LibWebRTCCodecs);
&gt;      }

This shouldn’t be inlined. I suggest moving it out of the header file. Normally it’s better that we inline the call to the constructor, and have the call to this create function be a normal function call. And it also reduces churn in the header file a little.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751475</commentid>
    <comment_count>7</comment_count>
      <attachid>426314</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-17 15:32:25 -0700</bug_when>
    <thetext>Comment on attachment 426314
Patch

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

&gt;&gt; Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:172
&gt;&gt; +void LibWebRTCCodecs::ensureGPUProcessConnectionOnMainThread(Locker&lt;Lock&gt;&amp;)
&gt; 
&gt; Just idly wondering: Would you want to add something like this?
&gt; 
&gt;     ASSERT_UNUSED(locker, locker.lockable() == &amp;m_connectionLock);
&gt; 
&gt; Adding that would require adding a lockable() member function to the Locker class template.

Ok

&gt;&gt; Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:496
&gt;&gt; +    std::exchange(m_connection, nullptr)-&gt;removeThreadMessageReceiver(Messages::LibWebRTCCodecs::messageReceiverName());
&gt; 
&gt; Is there a firm guarantee that m_connection is always non-null here? No race or edge case where it could be null?

gpuProcessConnectionDidClose() can only get called if we registered ourselves as a client of the connection. This happens in ensureGPUProcessConnectionOnMainThread() and we initialize m_connection then.
m_connection is only cleared here in gpuProcessConnectionDidClose() and gpuProcessConnectionDidClose() can only be called one time per connection. I believe this is safe.

&gt;&gt; Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.h:68
&gt;&gt;      }
&gt; 
&gt; This shouldn’t be inlined. I suggest moving it out of the header file. Normally it’s better that we inline the call to the constructor, and have the call to this create function be a normal function call. And it also reduces churn in the header file a little.

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751484</commentid>
    <comment_count>8</comment_count>
      <attachid>426354</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-17 15:51:38 -0700</bug_when>
    <thetext>Created attachment 426354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751485</commentid>
    <comment_count>9</comment_count>
      <attachid>426355</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-17 15:54:13 -0700</bug_when>
    <thetext>Created attachment 426355
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751498</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-17 17:10:20 -0700</bug_when>
    <thetext>Committed r276214 (236696@main): &lt;https://commits.webkit.org/236696@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426355.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751711</commentid>
    <comment_count>11</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-04-19 02:25:49 -0700</bug_when>
    <thetext>This patch probably introduces some races, for instance:
- creation of the encoder is now sometimes doing: webrtc thread -&gt; main thread -&gt; codec thread.
- deletion of the encoder is doing: webrtc thread -&gt; codec thread.
We might sometimes delete the encoder before it is actually added in the map.
Ditto for decoder creation/deletion.

The same applies for init of the encoder:
- creation of the encoder is now doing: webrtc thread -&gt; main thread -&gt; codec thread.
- initialisation of the encoder is doing: webrtc thread -&gt; encoder thread.

We should probably fix these issues.
Simplest approach is probably to always do &quot;webrtc thread -&gt; main thread -&gt; codec thread&quot; for encoder creation/initialization/deletion and decoder creation/deletion.

We also widen the interval where we might miss decoding/encoding frames due to connection not be set yet.
This is pre-existing and is probably fine since this might not happen often in practice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751768</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-19 07:48:12 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #11)
&gt; This patch probably introduces some races, for instance:
&gt; - creation of the encoder is now sometimes doing: webrtc thread -&gt; main
&gt; thread -&gt; codec thread.
&gt; - deletion of the encoder is doing: webrtc thread -&gt; codec thread.
&gt; We might sometimes delete the encoder before it is actually added in the map.
&gt; Ditto for decoder creation/deletion.
&gt; 
&gt; The same applies for init of the encoder:
&gt; - creation of the encoder is now doing: webrtc thread -&gt; main thread -&gt;
&gt; codec thread.
&gt; - initialisation of the encoder is doing: webrtc thread -&gt; encoder thread.
&gt; 
&gt; We should probably fix these issues.
&gt; Simplest approach is probably to always do &quot;webrtc thread -&gt; main thread -&gt;
&gt; codec thread&quot; for encoder creation/initialization/deletion and decoder
&gt; creation/deletion.
&gt; 
&gt; We also widen the interval where we might miss decoding/encoding frames due
&gt; to connection not be set yet.
&gt; This is pre-existing and is probably fine since this might not happen often
&gt; in practice.

Thanks for checking the patch and finding this out. I agree this is racy. I will follow-up shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753923</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-24 15:06:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/77110079&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426303</attachid>
            <date>2021-04-16 18:15:53 -0700</date>
            <delta_ts>2021-04-16 18:37:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224704-20210416181552.patch</filename>
            <type>text/plain</type>
            <size>11929</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc4MWY4NWIxOThlOWYxOTAw
ZWI0ZjhmODRhNTAwMWUxOTU3MjM4YWQuLjhlNTAxNWEyMTM2OGYwMGM1OWRmMWQ0MTdhMTYwZGY2
MDY0NTg3ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMjEtMDQtMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBMaWJXZWJSVENDb2RlY3MgZWFnZXJs
eSBsYXVuY2hlcyB0aGUgR1BVUHJvY2VzcyBhbmQgYWx3YXlzIHJlbGF1bmNoZXMgaXQgb24gZXhp
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NzA0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGliV2Vi
UlRDQ29kZWNzIGVhZ2VybHkgbGF1bmNoZXMgdGhlIEdQVVByb2Nlc3MgYW5kIGFsd2F5cyByZWxh
dW5jaGVzIGl0IG9uIGV4aXQuIFRoZSBHUFVQcm9jZXNzCisgICAgICAgIHNob3VsZCBvbmx5IGJl
IChyZS0pbGF1bmNoZWQgd2hlbiBuZWVkZWQuIEluIHRoZSBjYXNlIG9mIHRoZSBMaWJXZWJSVEND
b2RlY3MsIGl0IHNlZW1zIGl0IG9ubHkKKyAgICAgICAgbmVlZHMgYSBHUFVQcm9jZXNzIGNvbm5l
Y3Rpb24gaWYgaXQgaGFzIG1fZGVjb2RlcnMgLyBtX2VuY29kZXJzIGFyZSBub24tZW1wdHkuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjplbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlv
bik6CisgICAgICAgIFJlbmFtZWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKSB0byBlbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpLiBPbmx5IGRvIHRoZSBjb25uZWN0aW9uCisgICAgICAgIGluaXRp
YWxpemF0aW9uIGlmIG1fY29ubmVjdGlvbiBpcyBub3QgbnVsbC4gV2UgYWxzbyBzZXQgdGhlIG1f
bmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlvbgorICAgICAgICBmbGFnIHRvIHRydWUgdG8gaW5kaWNh
dGUgc29tZW9uZSBuZWVkZWQgdGhlIGNvbm5lY3Rpb24uCisKKyAgICAgICAgKFdlYktpdDo6TGli
V2ViUlRDQ29kZWNzOjpncHVQcm9jZXNzQ29ubmVjdGlvbk1heU5vTG9uZ2VyQmVOZWVkZWQpOgor
ICAgICAgICBGdW5jdGlvbiB0aGF0IGdldHMgY2FsbGVkIG9uIHRoZSBiYWNrZ3JvdW5kIHRocmVh
ZCBldmVyeSB0aW1lIGEgZW5jb2RlciAvIGRlY29kZXIgaXMKKyAgICAgICAgcmVtb3ZlZC4gSXRz
IHB1cnBvc2UgaXMgdG8gc2V0IG1fbmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlvbiBiYWNrIHRvIGZh
bHNlIG9uY2Ugd2Ugbm8KKyAgICAgICAgbG9uZ2VyIGhhdmUgYW55IGVuY29kZXIgLyBkZWNvZGVy
LCBzbyB0aGF0IGdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoKSBkb2VzIG5vdAorICAgICAg
ICBhdHRlbXB0IHRvIHJlbGF1bmNoIHRoZSBHUFVQcm9jZXNzIGlmIGl0IGdvZXMgYXdheS4KKwor
ICAgICAgICBMaWJXZWJSVENDb2RlY3M6OnNldENhbGxiYWNrcygpOgorICAgICAgICBDaGVjayBp
ZiBWUDlTdXBwb3J0IGlzIGVuYWJsZWQgdmlhIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciBp
bnN0ZWFkIG9mIGZyb20gdGhlCisgICAgICAgIEdQVVByb2Nlc3NDb25uZWN0aW9uLiBUaGlzIGF2
b2lkcyBlYWdlcmx5IGxhdW5jaGluZyB0aGUgR1BVUHJvY2Vzcy4gVGhlCisgICAgICAgIEdQVVBy
b2Nlc3NDb25uZWN0aW9uIGNvbnN0cnVjdG9yIGdldHMgaXRzIFZQeCBzdXBwb3J0IGluZm9ybWF0
aW9uIGZyb20KKyAgICAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyIGFueXdheS4gVGhl
IFdlYlBhZ2UgY29uc3RydWN0b3IgaXMgd2hlcmUgdGhlIFZQeCBzdXBwb3J0CisgICAgICAgIGlu
Zm9ybWF0aW9uIGNvbWVzIGZyb20gYW5kIGl0IHVwZGF0ZXMgdGhlIFZQeCBmbGFncyBvbiB0aGUg
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLgorICAgICAgICBUaGUgV2ViUGFnZSBjb25zdHJ1
Y3RvciBvbmx5IHVwZGF0ZXMgdGhlIFZQeCBmbGFncyBvbiB0aGUgR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24gaWYgdGhpcworICAgICAgICBjb25uZWN0aW9uIGFscmVhZHkgZXhpc3RzIHRvIGF2b2lkIGVh
Z2VybHkgbGF1bmNoaW5nIHRoZSBHUFVQcm9jZXNzLgorCisgICAgICAgIChXZWJLaXQ6OkxpYldl
YlJUQ0NvZGVjczo6Y3JlYXRlRGVjb2Rlcik6CisgICAgICAgIC0gQ2FsbCBlbnN1cmVHUFVQcm9j
ZXNzQ29ubmVjdGlvbigpIG9uIHRoZSBtYWluIHRocmVhZCB0byBpbml0aWF0ZSB0aGUgY29ubmVj
dGlvbiB0byB0aGUKKyAgICAgICAgR1BVUHJvY2VzcyBzaW5jZSB3ZSdyZSBhYm91dCB0byBjcmVh
dGUgYSBkZWNvZGVyLgorICAgICAgICAtIEFkZCBhIG1pc3NpbmcgbG9ja2VyIGZvciBtX2Nvbm5l
Y3Rpb25Mb2NrIG9uIHRoZSBiYWNrZ3JvdW5kIHRocmVhZCBzaW5jZSBpdCBpcyB1c2luZworICAg
ICAgICAgIG1fY29ubmVjdGlvbiAocHJlLWV4aXN0aW5nIGJ1ZykuCisKKyAgICAgICAgKFdlYktp
dDo6TGliV2ViUlRDQ29kZWNzOjpyZWxlYXNlRGVjb2Rlcik6CisgICAgICAgIENhbGwgZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVkKCkgdG8gcmVzZXQgdGhlIG1fbmVlZHNH
UFVQcm9jZXNzQ29ubmVjdGlvbgorICAgICAgICBmbGFnIHRvIGZhbHNlIGlmIG5lY2Vzc2FyeS4K
KworICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNyZWF0ZUVuY29kZXIpOgorICAg
ICAgICBDYWxsIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkgb24gdGhlIG1haW4gdGhyZWFk
IHRvIGluaXRpYXRlIHRoZSBjb25uZWN0aW9uIHRvIHRoZQorICAgICAgICBHUFVQcm9jZXNzIHNp
bmNlIHdlJ3JlIGFib3V0IHRvIGNyZWF0ZSBhbiBlbmNvZGVyLgorCisgICAgICAgIChXZWJLaXQ6
OkxpYldlYlJUQ0NvZGVjczo6cmVsZWFzZUVuY29kZXIpOgorICAgICAgICBDYWxsIGdwdVByb2Nl
c3NDb25uZWN0aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZCgpIHRvIHJlc2V0IHRoZSBtX25lZWRzR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24KKyAgICAgICAgZmxhZyB0byBmYWxzZSBpZiBuZWNlc3NhcnkuCisK
KyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRp
ZENsb3NlKToKKyAgICAgICAgLSBDbGVhciBtX2Nvbm5lY3Rpb24gd2hlbiB0aGUgR1BVUHJvY2Vz
cyBjb25uZWN0aW9uIGlzIHNldmVyZWQgKG5vdGUgdGhhdCB0aGlzIGRvZXMgbm90CisgICAgICAg
ICAgbmVjZXNzYXJpbHkgaW5kaWNhdGUgYSBjcmFzaCBzaW5jZSB0aGUgR1BVUHJvY2VzcyBleGl0
cyB3aGVuIGlkbGUgYW5kIHVuZGVyIG1lbW9yeQorICAgICAgICAgIHByZXNzdXJlKS4KKyAgICAg
ICAgLSBPbmx5IHJlLWluaXRpYXRlIHRoZSBHUFVQcm9jZXNzIGNvbm5lY3Rpb24gaWYgbV9uZWVk
c0dQVVByb2Nlc3NDb25uZWN0aW9uIGlzIHRydWUsCisgICAgICAgICAgbWVhbmluZyB0aGF0IHdl
IGhhdmUgZW5jb2RlcnMvZGVjb2RlcnMuIEkgdXNlIHRoaXMgZmxhZyBpbnN0ZWFkIG9mIGNoZWNr
aW5nIG1fZW5jb2RlcnMKKyAgICAgICAgICAmIG1fZGVjb2RlcnMgc2luY2UgdGhvc2UgY29udGFp
bmVycyBhcmUgbW9kaWZpZWQgb24gdGhlIGJhY2tncm91bmQgdGhyZWFkIGFuZCB0aGlzCisgICAg
ICAgICAgZnVuY3Rpb24gaXMgY2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZC4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaDoKKyAgICAgICAgKFdlYktp
dDo6TGliV2ViUlRDQ29kZWNzOjpjcmVhdGUpOgorICAgICAgICAtIFN0b3AgY2FsbGluZyBzdGFy
dExpc3RlbmluZ0ZvcklQQygpIG9uIGNvbnN0cnVjdGlvbiBhcyB3ZSBkb24ndCB3YW50IHRvIGxh
dW5jaCB0aGUgR1BVUHJvY2VzcworICAgICAgICB1bnRpbCBhbiBlbmNvZGVyIC8gZGVjb2RlciBp
cyBjcmVhdGVkLgorICAgICAgICAtIEZpeCBhIHByZS1leGlzdGluZyBpc3N1ZSB3aGVyZSB0aGUg
Y2xhc3Mgc3ViY2xhc3NlcyBUaHJlYWRTYWZlUmVmQ291bnRlZCAodmlhCisgICAgICAgICAgVGhy
ZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCkgYW5kIHlldCB3YXMgdXNpbmcgc3RkOjp1bmlx
dWVfcHRyPD4gaW5zdGVhZCBvZgorICAgICAgICAgIFJlZlB0cjw+LgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisKIDIwMjEtMDQtMTYgIENhbWVyb24gTWNDb3JtYWNrICA8
aGV5Y2FtQGFwcGxlLmNvbT4KIAogICAgICAgICBQbGFjZSB2ZXJ0aWNhbCBzY3JvbGxiYXJzIGF0
IChpbmxpbmUvYmxvY2spLWVuZCBlZGdlIGluIGFsbCB3cml0aW5nIG1vZGVzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5j
cHAKaW5kZXggMWZhOTQzMTBiMWQ4ZjgyMWZmNWNhODQyNmVlMmQ0ODI0YzhkMTZmZS4uMDBmNjI3
ZGU2MDYyY2ZiZDhiODc3YmY0NmIzZjcxNWM2ODYzNWQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0x
NjgsMTMgKzE2OCwyNSBAQCBMaWJXZWJSVENDb2RlY3M6OkxpYldlYlJUQ0NvZGVjcygpCiB7CiB9
CiAKLXZvaWQgTGliV2ViUlRDQ29kZWNzOjpzdGFydExpc3RlbmluZ0ZvcklQQygpCitJUEM6OkNv
bm5lY3Rpb24mIExpYldlYlJUQ0NvZGVjczo6ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oTG9j
a2VyPExvY2s+KiBleGlzdGluZ0xvY2tlcikKIHsKLSAgICBBU1NFUlQoIW1fY29ubmVjdGlvbik7
Ci0gICAgYXV0byYgZ3B1Q29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3Vy
ZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7Ci0gICAgZ3B1Q29ubmVjdGlvbi5hZGRDbGllbnQoKnRo
aXMpOwotICAgIG1fY29ubmVjdGlvbiA9IG1ha2VSZWYoZ3B1Q29ubmVjdGlvbi5jb25uZWN0aW9u
KCkpOwotICAgIG1fY29ubmVjdGlvbi0+YWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7CisgICAgQVNT
RVJUKGlzTWFpblJ1bkxvb3AoKSk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9ja0lmKG1fY29u
bmVjdGlvbkxvY2ssICFleGlzdGluZ0xvY2tlcik7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pIHsK
KyAgICAgICAgYXV0byYgZ3B1Q29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgICAgIGdwdUNvbm5lY3Rpb24uYWRkQ2xp
ZW50KCp0aGlzKTsKKyAgICAgICAgbV9jb25uZWN0aW9uID0gbWFrZVJlZihncHVDb25uZWN0aW9u
LmNvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+YWRkVGhyZWFkTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
dGhpcyk7CisgICAgfQorICAgIG1fbmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlvbiA9IHRydWU7Cisg
ICAgcmV0dXJuICptX2Nvbm5lY3Rpb247Cit9CisKK3ZvaWQgTGliV2ViUlRDQ29kZWNzOjpncHVQ
cm9jZXNzQ29ubmVjdGlvbk1heU5vTG9uZ2VyQmVOZWVkZWQoKQoreworICAgIEFTU0VSVCghaXNN
YWluUnVuTG9vcCgpKTsKKyAgICBpZiAobV9lbmNvZGVycy5pc0VtcHR5KCkgJiYgbV9kZWNvZGVy
cy5pc0VtcHR5KCkpCisgICAgICAgIG1fbmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlvbiA9IGZhbHNl
OwogfQogCiBMaWJXZWJSVENDb2RlY3M6On5MaWJXZWJSVENDb2RlY3MoKQpAQCAtMTk2LDkgKzIw
OCw4IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpzZXRDYWxsYmFja3MoYm9vbCB1c2VHUFVQcm9j
ZXNzKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ0NvZGVjcygpOwogCiAj
aWYgRU5BQkxFKFZQOSkKLSAgICBhdXRvJiBncHVDb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAvLyBGSU1YRTogV2Ug
c2hvdWxkIGRpc2FibGUgVlA5VlRCIGlmIFZQOSBoYXJkd2FyZSBkZWNvZGluZyBpcyBlbmFibGVk
IGJ1dCB0aGVyZSBpcyBubyBzdXBwb3J0IGZvciBpdC4KLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5saWJXZWJSVENDb2RlY3MoKS5zZXRWUDlWVEJTdXBwb3J0KGdwdUNvbm5lY3Rpb24uaXNW
UDlEZWNvZGVyRW5hYmxlZCgpIHx8IGdwdUNvbm5lY3Rpb24uaXNWUFNXRGVjb2RlckVuYWJsZWQo
KSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDQ29kZWNzKCkuc2V0VlA5
VlRCU3VwcG9ydChQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNob3VsZEVuYWJsZVZQOURl
Y29kZXIoKSB8fCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNob3VsZEVuYWJsZVZQOVNX
RGVjb2RlcigpKTsKICNlbmRpZgogCiAgICAgd2VicnRjOjpzZXRWaWRlb0RlY29kZXJDYWxsYmFj
a3MoY3JlYXRlVmlkZW9EZWNvZGVyLCByZWxlYXNlVmlkZW9EZWNvZGVyLCBkZWNvZGVWaWRlb0Zy
YW1lLCByZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2spOwpAQCAtMjEyLDcgKzIyMyw5IEBA
IExpYldlYlJUQ0NvZGVjczo6RGVjb2RlciogTGliV2ViUlRDQ29kZWNzOjpjcmVhdGVEZWNvZGVy
KFR5cGUgdHlwZSkKICAgICBkZWNvZGVyLT5pZGVudGlmaWVyID0gUlRDRGVjb2RlcklkZW50aWZp
ZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOwogICAgIGRlY29kZXItPnR5cGUgPSB0eXBlOwogCisg
ICAgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICBkaXNwYXRjaFRvVGhyZWFkKFt0
aGlzLCBkZWNvZGVyID0gV1RGTW92ZShkZWNvZGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX2Nvbm5lY3Rpb25Mb2NrKTsKICAgICAgICAgZGVjb2Rlci0+
Y29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbjsKICAgICAgICAgY3JlYXRlUmVtb3RlRGVjb2Rlcigq
ZGVjb2RlciwgKm1fY29ubmVjdGlvbik7CiAKQEAgLTIyOCw4ICsyNDEsMTAgQEAgaW50MzJfdCBM
aWJXZWJSVENDb2RlY3M6OnJlbGVhc2VEZWNvZGVyKERlY29kZXImIGRlY29kZXIpCiAgICAgQVNT
RVJUKCFkZWNvZGVyLmRlY29kZWRJbWFnZUNhbGxiYWNrKTsKICAgICBkaXNwYXRjaFRvVGhyZWFk
KFt0aGlzLCBkZWNvZGVySWRlbnRpZmllciA9IGRlY29kZXIuaWRlbnRpZmllcl0gewogICAgICAg
ICBBU1NFUlQobV9kZWNvZGVycy5jb250YWlucyhkZWNvZGVySWRlbnRpZmllcikpOwotICAgICAg
ICBpZiAoYXV0byBkZWNvZGVyID0gbV9kZWNvZGVycy50YWtlKGRlY29kZXJJZGVudGlmaWVyKSkK
KyAgICAgICAgaWYgKGF1dG8gZGVjb2RlciA9IG1fZGVjb2RlcnMudGFrZShkZWNvZGVySWRlbnRp
ZmllcikpIHsKICAgICAgICAgICAgIGRlY29kZXItPmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpSZWxlYXNlRGVjb2RlciB7IGRlY29kZXJJZGVudGlmaWVy
IH0sIDApOworICAgICAgICAgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVl
ZGVkKCk7CisgICAgICAgIH0KICAgICB9KTsKICAgICByZXR1cm4gMDsKIH0KQEAgLTMzMSw2ICsz
NDYsNyBAQCBMaWJXZWJSVENDb2RlY3M6OkVuY29kZXIqIExpYldlYlJUQ0NvZGVjczo6Y3JlYXRl
RW5jb2RlcihUeXBlIHR5cGUsIGNvbnN0IHN0ZDo6bQogICAgIGZvciAoYXV0byYga2V5VmFsdWUg
OiBmb3JtYXRQYXJhbWV0ZXJzKQogICAgICAgICBwYXJhbWV0ZXJzLmFwcGVuZChzdGQ6Om1ha2Vf
cGFpcihTdHJpbmc6OmZyb21VVEY4KGtleVZhbHVlLmZpcnN0LmRhdGEoKSwga2V5VmFsdWUuZmly
c3QubGVuZ3RoKCkpLCBTdHJpbmc6OmZyb21VVEY4KGtleVZhbHVlLnNlY29uZC5kYXRhKCksIGtl
eVZhbHVlLnNlY29uZC5sZW5ndGgoKSkpKTsKIAorICAgIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0
aW9uKCk7CiAgICAgZGlzcGF0Y2hUb1RocmVhZChbdGhpcywgZW5jb2RlciA9IFdURk1vdmUoZW5j
b2RlciksIHR5cGUsIHBhcmFtZXRlcnMgPSBXVEZNb3ZlKHBhcmFtZXRlcnMpXSgpIG11dGFibGUg
ewogICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihtX2Nvbm5lY3Rpb25Mb2NrKTsKICAgICAgICAg
ZW5jb2Rlci0+Y29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbjsKQEAgLTM1MSw2ICszNjcsNyBAQCBp
bnQzMl90IExpYldlYlJUQ0NvZGVjczo6cmVsZWFzZUVuY29kZXIoRW5jb2RlciYgZW5jb2RlcikK
ICAgICAgICAgQVNTRVJUKG1fZW5jb2RlcnMuY29udGFpbnMoZW5jb2RlcklkZW50aWZpZXIpKTsK
ICAgICAgICAgYXV0byBlbmNvZGVyID0gbV9lbmNvZGVycy50YWtlKGVuY29kZXJJZGVudGlmaWVy
KTsKICAgICAgICAgZW5jb2Rlci0+Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRD
Q29kZWNzUHJveHk6OlJlbGVhc2VFbmNvZGVyIHsgZW5jb2RlcklkZW50aWZpZXIgfSwgMCk7Cisg
ICAgICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZCgpOwogICAgIH0p
OwogICAgIHJldHVybiAwOwogfQpAQCAtNDYwLDE1ICs0NzcsMTMgQEAgdm9pZCBMaWJXZWJSVEND
b2RlY3M6OmRpc3BhdGNoVG9UaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQogCiB2
b2lkIExpYldlYlJUQ0NvZGVjczo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9j
ZXNzQ29ubmVjdGlvbiYpCiB7Ci0gICAgYXV0byYgZ3B1Q29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7Ci0gICAgZ3B1Q29ubmVj
dGlvbi5hZGRDbGllbnQoKnRoaXMpOwotICAgIHsKLSAgICAgICAgYXV0byBsb2NrID0gaG9sZExv
Y2sobV9jb25uZWN0aW9uTG9jayk7Ci0gICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlVGhyZWFk
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSk7Ci0gICAgICAgIG1fY29ubmVjdGlvbiA9IG1ha2VSZWYoZ3B1Q29ubmVjdGlvbi5j
b25uZWN0aW9uKCkpOwotICAgICAgICBtX2Nvbm5lY3Rpb24tPmFkZFRocmVhZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRo
aXMpOwotICAgIH0KKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKKyAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1fY29ubmVjdGlvbkxvY2spOworICAgIHN0ZDo6ZXhjaGFuZ2UobV9jb25u
ZWN0aW9uLCBudWxscHRyKS0+cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpM
aWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgaWYgKCFtX25lZWRz
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKIAorICAgIGVuc3VyZUdQVVBy
b2Nlc3NDb25uZWN0aW9uKCZsb2NrZXIpOwogICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXNdKCkg
ewogICAgICAgICAvLyBMb2NrIGV2ZXJ5dGhpbmcgc28gdGhhdCB3ZSBjYW4gdXBkYXRlIGVuY29k
ZXIvZGVjb2RlciBjb25uZWN0aW9uLgogICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihtX2Nvbm5l
Y3Rpb25Mb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL0xpYldlYlJUQ0NvZGVjcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzLmgKaW5kZXggYzI4NzYyYjI0Yzg5ZTE0MmI1ZGU5Y2U2ZjE3NzQy
ZDU0ODZkM2M5Yy4uZWFhNzEyMWM2MGU3NWMwOGFhZDlmMmYwZTc4OTk3YWQ2ZDU2OTQyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRD
Q29kZWNzLmgKQEAgLTYyLDExICs2Miw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgTGli
V2ViUlRDQ29kZWNzIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2Vp
dmVyUmVmQ291bnRlZCwgcHVibGljIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQgewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8TGliV2ViUlRDQ29kZWNzPiBjcmVhdGUoKQorICAgIHN0YXRpYyBSZWY8TGliV2ViUlRD
Q29kZWNzPiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgYXV0byBpbnN0YW5jZSA9IHN0ZDo6dW5p
cXVlX3B0cjxMaWJXZWJSVENDb2RlY3M+KG5ldyBMaWJXZWJSVENDb2RlY3MpOwotICAgICAgICBp
bnN0YW5jZS0+c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKLSAgICAgICAgcmV0dXJuIGluc3RhbmNl
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBMaWJXZWJSVENDb2RlY3MpOwogICAgIH0K
ICAgICB+TGliV2ViUlRDQ29kZWNzKCk7CiAKQEAgLTEyNSw3ICsxMjMsOCBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgTGliV2ViUlRDQ29kZWNzKCk7Ci0gICAgdm9pZCBzdGFydExpc3Rlbmlu
Z0ZvcklQQygpOworICAgIElQQzo6Q29ubmVjdGlvbiYgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24oTG9ja2VyPExvY2s+KiA9IG51bGxwdHIpOworICAgIHZvaWQgZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b25NYXlOb0xvbmdlckJlTmVlZGVkKCk7CiAKICAgICB2b2lkIGZhaWxlZERlY29kaW5nKFJUQ0Rl
Y29kZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIGNvbXBsZXRlZERlY29kaW5nKFJUQ0RlY29kZXJJ
ZGVudGlmaWVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxl
JiYpOwpAQCAtMTQ0LDYgKzE0Myw4IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFJUQ0VuY29k
ZXJJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4+IG1fZW5jb2RlcnM7CiAKKyAg
ICBzdGQ6OmF0b21pYzxib29sPiBtX25lZWRzR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CisKICAgICBM
b2NrIG1fY29ubmVjdGlvbkxvY2s7CiAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25u
ZWN0aW9uOwogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaAppbmRleCA2NDZlNWVkMDg5NzE2MTNhZmI0MTU0ODA3N2ZlMzE0OGJkMThh
ZDQzLi43YzhhNjNmZDIxYjMwZWM3ODhlZTg1NmJmMmQyMjg3ZjhhZDRiYjJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTYyMSw3ICs2MjEsNyBAQCBwcml2YXRlOgog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBSZWZQdHI8R1BVUHJvY2Vzc0Nvbm5lY3Rpb24+
IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb247CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJX
RUJSVEMpCi0gICAgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ0NvZGVjcz4gbV9saWJXZWJSVEND
b2RlY3M7CisgICAgUmVmUHRyPExpYldlYlJUQ0NvZGVjcz4gbV9saWJXZWJSVENDb2RlY3M7CiAj
ZW5kaWYKICNlbmRpZgogCg==
</data>
<flag name="commit-queue"
          id="446552"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426304</attachid>
            <date>2021-04-16 18:22:10 -0700</date>
            <delta_ts>2021-04-16 19:45:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224704-20210416182210.patch</filename>
            <type>text/plain</type>
            <size>12226</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc4MWY4NWIxOThlOWYxOTAw
ZWI0ZjhmODRhNTAwMWUxOTU3MjM4YWQuLjhlNTAxNWEyMTM2OGYwMGM1OWRmMWQ0MTdhMTYwZGY2
MDY0NTg3ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMjEtMDQtMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBMaWJXZWJSVENDb2RlY3MgZWFnZXJs
eSBsYXVuY2hlcyB0aGUgR1BVUHJvY2VzcyBhbmQgYWx3YXlzIHJlbGF1bmNoZXMgaXQgb24gZXhp
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NzA0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGliV2Vi
UlRDQ29kZWNzIGVhZ2VybHkgbGF1bmNoZXMgdGhlIEdQVVByb2Nlc3MgYW5kIGFsd2F5cyByZWxh
dW5jaGVzIGl0IG9uIGV4aXQuIFRoZSBHUFVQcm9jZXNzCisgICAgICAgIHNob3VsZCBvbmx5IGJl
IChyZS0pbGF1bmNoZWQgd2hlbiBuZWVkZWQuIEluIHRoZSBjYXNlIG9mIHRoZSBMaWJXZWJSVEND
b2RlY3MsIGl0IHNlZW1zIGl0IG9ubHkKKyAgICAgICAgbmVlZHMgYSBHUFVQcm9jZXNzIGNvbm5l
Y3Rpb24gaWYgaXQgaGFzIG1fZGVjb2RlcnMgLyBtX2VuY29kZXJzIGFyZSBub24tZW1wdHkuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjplbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlv
bik6CisgICAgICAgIFJlbmFtZWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKSB0byBlbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpLiBPbmx5IGRvIHRoZSBjb25uZWN0aW9uCisgICAgICAgIGluaXRp
YWxpemF0aW9uIGlmIG1fY29ubmVjdGlvbiBpcyBub3QgbnVsbC4gV2UgYWxzbyBzZXQgdGhlIG1f
bmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlvbgorICAgICAgICBmbGFnIHRvIHRydWUgdG8gaW5kaWNh
dGUgc29tZW9uZSBuZWVkZWQgdGhlIGNvbm5lY3Rpb24uCisKKyAgICAgICAgKFdlYktpdDo6TGli
V2ViUlRDQ29kZWNzOjpncHVQcm9jZXNzQ29ubmVjdGlvbk1heU5vTG9uZ2VyQmVOZWVkZWQpOgor
ICAgICAgICBGdW5jdGlvbiB0aGF0IGdldHMgY2FsbGVkIG9uIHRoZSBiYWNrZ3JvdW5kIHRocmVh
ZCBldmVyeSB0aW1lIGEgZW5jb2RlciAvIGRlY29kZXIgaXMKKyAgICAgICAgcmVtb3ZlZC4gSXRz
IHB1cnBvc2UgaXMgdG8gc2V0IG1fbmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlvbiBiYWNrIHRvIGZh
bHNlIG9uY2Ugd2Ugbm8KKyAgICAgICAgbG9uZ2VyIGhhdmUgYW55IGVuY29kZXIgLyBkZWNvZGVy
LCBzbyB0aGF0IGdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoKSBkb2VzIG5vdAorICAgICAg
ICBhdHRlbXB0IHRvIHJlbGF1bmNoIHRoZSBHUFVQcm9jZXNzIGlmIGl0IGdvZXMgYXdheS4KKwor
ICAgICAgICBMaWJXZWJSVENDb2RlY3M6OnNldENhbGxiYWNrcygpOgorICAgICAgICBDaGVjayBp
ZiBWUDlTdXBwb3J0IGlzIGVuYWJsZWQgdmlhIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciBp
bnN0ZWFkIG9mIGZyb20gdGhlCisgICAgICAgIEdQVVByb2Nlc3NDb25uZWN0aW9uLiBUaGlzIGF2
b2lkcyBlYWdlcmx5IGxhdW5jaGluZyB0aGUgR1BVUHJvY2Vzcy4gVGhlCisgICAgICAgIEdQVVBy
b2Nlc3NDb25uZWN0aW9uIGNvbnN0cnVjdG9yIGdldHMgaXRzIFZQeCBzdXBwb3J0IGluZm9ybWF0
aW9uIGZyb20KKyAgICAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyIGFueXdheS4gVGhl
IFdlYlBhZ2UgY29uc3RydWN0b3IgaXMgd2hlcmUgdGhlIFZQeCBzdXBwb3J0CisgICAgICAgIGlu
Zm9ybWF0aW9uIGNvbWVzIGZyb20gYW5kIGl0IHVwZGF0ZXMgdGhlIFZQeCBmbGFncyBvbiB0aGUg
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLgorICAgICAgICBUaGUgV2ViUGFnZSBjb25zdHJ1
Y3RvciBvbmx5IHVwZGF0ZXMgdGhlIFZQeCBmbGFncyBvbiB0aGUgR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24gaWYgdGhpcworICAgICAgICBjb25uZWN0aW9uIGFscmVhZHkgZXhpc3RzIHRvIGF2b2lkIGVh
Z2VybHkgbGF1bmNoaW5nIHRoZSBHUFVQcm9jZXNzLgorCisgICAgICAgIChXZWJLaXQ6OkxpYldl
YlJUQ0NvZGVjczo6Y3JlYXRlRGVjb2Rlcik6CisgICAgICAgIC0gQ2FsbCBlbnN1cmVHUFVQcm9j
ZXNzQ29ubmVjdGlvbigpIG9uIHRoZSBtYWluIHRocmVhZCB0byBpbml0aWF0ZSB0aGUgY29ubmVj
dGlvbiB0byB0aGUKKyAgICAgICAgR1BVUHJvY2VzcyBzaW5jZSB3ZSdyZSBhYm91dCB0byBjcmVh
dGUgYSBkZWNvZGVyLgorICAgICAgICAtIEFkZCBhIG1pc3NpbmcgbG9ja2VyIGZvciBtX2Nvbm5l
Y3Rpb25Mb2NrIG9uIHRoZSBiYWNrZ3JvdW5kIHRocmVhZCBzaW5jZSBpdCBpcyB1c2luZworICAg
ICAgICAgIG1fY29ubmVjdGlvbiAocHJlLWV4aXN0aW5nIGJ1ZykuCisKKyAgICAgICAgKFdlYktp
dDo6TGliV2ViUlRDQ29kZWNzOjpyZWxlYXNlRGVjb2Rlcik6CisgICAgICAgIENhbGwgZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVkKCkgdG8gcmVzZXQgdGhlIG1fbmVlZHNH
UFVQcm9jZXNzQ29ubmVjdGlvbgorICAgICAgICBmbGFnIHRvIGZhbHNlIGlmIG5lY2Vzc2FyeS4K
KworICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNyZWF0ZUVuY29kZXIpOgorICAg
ICAgICBDYWxsIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkgb24gdGhlIG1haW4gdGhyZWFk
IHRvIGluaXRpYXRlIHRoZSBjb25uZWN0aW9uIHRvIHRoZQorICAgICAgICBHUFVQcm9jZXNzIHNp
bmNlIHdlJ3JlIGFib3V0IHRvIGNyZWF0ZSBhbiBlbmNvZGVyLgorCisgICAgICAgIChXZWJLaXQ6
OkxpYldlYlJUQ0NvZGVjczo6cmVsZWFzZUVuY29kZXIpOgorICAgICAgICBDYWxsIGdwdVByb2Nl
c3NDb25uZWN0aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZCgpIHRvIHJlc2V0IHRoZSBtX25lZWRzR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24KKyAgICAgICAgZmxhZyB0byBmYWxzZSBpZiBuZWNlc3NhcnkuCisK
KyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRp
ZENsb3NlKToKKyAgICAgICAgLSBDbGVhciBtX2Nvbm5lY3Rpb24gd2hlbiB0aGUgR1BVUHJvY2Vz
cyBjb25uZWN0aW9uIGlzIHNldmVyZWQgKG5vdGUgdGhhdCB0aGlzIGRvZXMgbm90CisgICAgICAg
ICAgbmVjZXNzYXJpbHkgaW5kaWNhdGUgYSBjcmFzaCBzaW5jZSB0aGUgR1BVUHJvY2VzcyBleGl0
cyB3aGVuIGlkbGUgYW5kIHVuZGVyIG1lbW9yeQorICAgICAgICAgIHByZXNzdXJlKS4KKyAgICAg
ICAgLSBPbmx5IHJlLWluaXRpYXRlIHRoZSBHUFVQcm9jZXNzIGNvbm5lY3Rpb24gaWYgbV9uZWVk
c0dQVVByb2Nlc3NDb25uZWN0aW9uIGlzIHRydWUsCisgICAgICAgICAgbWVhbmluZyB0aGF0IHdl
IGhhdmUgZW5jb2RlcnMvZGVjb2RlcnMuIEkgdXNlIHRoaXMgZmxhZyBpbnN0ZWFkIG9mIGNoZWNr
aW5nIG1fZW5jb2RlcnMKKyAgICAgICAgICAmIG1fZGVjb2RlcnMgc2luY2UgdGhvc2UgY29udGFp
bmVycyBhcmUgbW9kaWZpZWQgb24gdGhlIGJhY2tncm91bmQgdGhyZWFkIGFuZCB0aGlzCisgICAg
ICAgICAgZnVuY3Rpb24gaXMgY2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZC4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaDoKKyAgICAgICAgKFdlYktp
dDo6TGliV2ViUlRDQ29kZWNzOjpjcmVhdGUpOgorICAgICAgICAtIFN0b3AgY2FsbGluZyBzdGFy
dExpc3RlbmluZ0ZvcklQQygpIG9uIGNvbnN0cnVjdGlvbiBhcyB3ZSBkb24ndCB3YW50IHRvIGxh
dW5jaCB0aGUgR1BVUHJvY2VzcworICAgICAgICB1bnRpbCBhbiBlbmNvZGVyIC8gZGVjb2RlciBp
cyBjcmVhdGVkLgorICAgICAgICAtIEZpeCBhIHByZS1leGlzdGluZyBpc3N1ZSB3aGVyZSB0aGUg
Y2xhc3Mgc3ViY2xhc3NlcyBUaHJlYWRTYWZlUmVmQ291bnRlZCAodmlhCisgICAgICAgICAgVGhy
ZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCkgYW5kIHlldCB3YXMgdXNpbmcgc3RkOjp1bmlx
dWVfcHRyPD4gaW5zdGVhZCBvZgorICAgICAgICAgIFJlZlB0cjw+LgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisKIDIwMjEtMDQtMTYgIENhbWVyb24gTWNDb3JtYWNrICA8
aGV5Y2FtQGFwcGxlLmNvbT4KIAogICAgICAgICBQbGFjZSB2ZXJ0aWNhbCBzY3JvbGxiYXJzIGF0
IChpbmxpbmUvYmxvY2spLWVuZCBlZGdlIGluIGFsbCB3cml0aW5nIG1vZGVzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5j
cHAKaW5kZXggMWZhOTQzMTBiMWQ4ZjgyMWZmNWNhODQyNmVlMmQ0ODI0YzhkMTZmZS4uMmZkYzcx
MTJjMzA4ZjAyYTBiMGZkOWQwYmIxMmY4Mzk4OTE4MDNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
bW90ZVZpZGVvU2FtcGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmg+CkBAIC0xNjgsMTMgKzE2OSwyNSBAQCBMaWJXZWJSVENDb2RlY3M6OkxpYldlYlJUQ0Nv
ZGVjcygpCiB7CiB9CiAKLXZvaWQgTGliV2ViUlRDQ29kZWNzOjpzdGFydExpc3RlbmluZ0ZvcklQ
QygpCitJUEM6OkNvbm5lY3Rpb24mIExpYldlYlJUQ0NvZGVjczo6ZW5zdXJlR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24oTG9ja2VyPExvY2s+KiBleGlzdGluZ0xvY2tlcikKIHsKLSAgICBBU1NFUlQoIW1f
Y29ubmVjdGlvbik7Ci0gICAgYXV0byYgZ3B1Q29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7Ci0gICAgZ3B1Q29ubmVjdGlvbi5h
ZGRDbGllbnQoKnRoaXMpOwotICAgIG1fY29ubmVjdGlvbiA9IG1ha2VSZWYoZ3B1Q29ubmVjdGlv
bi5jb25uZWN0aW9uKCkpOwotICAgIG1fY29ubmVjdGlvbi0+YWRkVGhyZWFkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhp
cyk7CisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CisgICAgYXV0byBsb2NrZXIgPSBob2xk
TG9ja0lmKG1fY29ubmVjdGlvbkxvY2ssICFleGlzdGluZ0xvY2tlcik7CisgICAgaWYgKCFtX2Nv
bm5lY3Rpb24pIHsKKyAgICAgICAgYXV0byYgZ3B1Q29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7CisgICAgICAgIGdwdUNvbm5l
Y3Rpb24uYWRkQ2xpZW50KCp0aGlzKTsKKyAgICAgICAgbV9jb25uZWN0aW9uID0gbWFrZVJlZihn
cHVDb25uZWN0aW9uLmNvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+YWRkVGhy
ZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgdGhpcyk7CisgICAgfQorICAgIG1fbmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlv
biA9IHRydWU7CisgICAgcmV0dXJuICptX2Nvbm5lY3Rpb247Cit9CisKK3ZvaWQgTGliV2ViUlRD
Q29kZWNzOjpncHVQcm9jZXNzQ29ubmVjdGlvbk1heU5vTG9uZ2VyQmVOZWVkZWQoKQoreworICAg
IEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKKyAgICBpZiAobV9lbmNvZGVycy5pc0VtcHR5KCkg
JiYgbV9kZWNvZGVycy5pc0VtcHR5KCkpCisgICAgICAgIG1fbmVlZHNHUFVQcm9jZXNzQ29ubmVj
dGlvbiA9IGZhbHNlOwogfQogCiBMaWJXZWJSVENDb2RlY3M6On5MaWJXZWJSVENDb2RlY3MoKQpA
QCAtMTk2LDkgKzIwOSw4IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpzZXRDYWxsYmFja3MoYm9v
bCB1c2VHUFVQcm9jZXNzKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ0Nv
ZGVjcygpOwogCiAjaWYgRU5BQkxFKFZQOSkKLSAgICBhdXRvJiBncHVDb25uZWN0aW9uID0gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAv
LyBGSU1YRTogV2Ugc2hvdWxkIGRpc2FibGUgVlA5VlRCIGlmIFZQOSBoYXJkd2FyZSBkZWNvZGlu
ZyBpcyBlbmFibGVkIGJ1dCB0aGVyZSBpcyBubyBzdXBwb3J0IGZvciBpdC4KLSAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENDb2RlY3MoKS5zZXRWUDlWVEJTdXBwb3J0KGdwdUNv
bm5lY3Rpb24uaXNWUDlEZWNvZGVyRW5hYmxlZCgpIHx8IGdwdUNvbm5lY3Rpb24uaXNWUFNXRGVj
b2RlckVuYWJsZWQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDQ29k
ZWNzKCkuc2V0VlA5VlRCU3VwcG9ydChQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNob3Vs
ZEVuYWJsZVZQOURlY29kZXIoKSB8fCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNob3Vs
ZEVuYWJsZVZQOVNXRGVjb2RlcigpKTsKICNlbmRpZgogCiAgICAgd2VicnRjOjpzZXRWaWRlb0Rl
Y29kZXJDYWxsYmFja3MoY3JlYXRlVmlkZW9EZWNvZGVyLCByZWxlYXNlVmlkZW9EZWNvZGVyLCBk
ZWNvZGVWaWRlb0ZyYW1lLCByZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2spOwpAQCAtMjEy
LDcgKzIyNCw5IEBAIExpYldlYlJUQ0NvZGVjczo6RGVjb2RlciogTGliV2ViUlRDQ29kZWNzOjpj
cmVhdGVEZWNvZGVyKFR5cGUgdHlwZSkKICAgICBkZWNvZGVyLT5pZGVudGlmaWVyID0gUlRDRGVj
b2RlcklkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOwogICAgIGRlY29kZXItPnR5cGUg
PSB0eXBlOwogCisgICAgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICBkaXNwYXRj
aFRvVGhyZWFkKFt0aGlzLCBkZWNvZGVyID0gV1RGTW92ZShkZWNvZGVyKV0oKSBtdXRhYmxlIHsK
KyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2Nvbm5lY3Rpb25Mb2NrKTsKICAgICAg
ICAgZGVjb2Rlci0+Y29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbjsKICAgICAgICAgY3JlYXRlUmVt
b3RlRGVjb2RlcigqZGVjb2RlciwgKm1fY29ubmVjdGlvbik7CiAKQEAgLTIyOCw4ICsyNDIsMTAg
QEAgaW50MzJfdCBMaWJXZWJSVENDb2RlY3M6OnJlbGVhc2VEZWNvZGVyKERlY29kZXImIGRlY29k
ZXIpCiAgICAgQVNTRVJUKCFkZWNvZGVyLmRlY29kZWRJbWFnZUNhbGxiYWNrKTsKICAgICBkaXNw
YXRjaFRvVGhyZWFkKFt0aGlzLCBkZWNvZGVySWRlbnRpZmllciA9IGRlY29kZXIuaWRlbnRpZmll
cl0gewogICAgICAgICBBU1NFUlQobV9kZWNvZGVycy5jb250YWlucyhkZWNvZGVySWRlbnRpZmll
cikpOwotICAgICAgICBpZiAoYXV0byBkZWNvZGVyID0gbV9kZWNvZGVycy50YWtlKGRlY29kZXJJ
ZGVudGlmaWVyKSkKKyAgICAgICAgaWYgKGF1dG8gZGVjb2RlciA9IG1fZGVjb2RlcnMudGFrZShk
ZWNvZGVySWRlbnRpZmllcikpIHsKICAgICAgICAgICAgIGRlY29kZXItPmNvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpSZWxlYXNlRGVjb2RlciB7IGRlY29k
ZXJJZGVudGlmaWVyIH0sIDApOworICAgICAgICAgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb25NYXlO
b0xvbmdlckJlTmVlZGVkKCk7CisgICAgICAgIH0KICAgICB9KTsKICAgICByZXR1cm4gMDsKIH0K
QEAgLTMzMSw2ICszNDcsNyBAQCBMaWJXZWJSVENDb2RlY3M6OkVuY29kZXIqIExpYldlYlJUQ0Nv
ZGVjczo6Y3JlYXRlRW5jb2RlcihUeXBlIHR5cGUsIGNvbnN0IHN0ZDo6bQogICAgIGZvciAoYXV0
byYga2V5VmFsdWUgOiBmb3JtYXRQYXJhbWV0ZXJzKQogICAgICAgICBwYXJhbWV0ZXJzLmFwcGVu
ZChzdGQ6Om1ha2VfcGFpcihTdHJpbmc6OmZyb21VVEY4KGtleVZhbHVlLmZpcnN0LmRhdGEoKSwg
a2V5VmFsdWUuZmlyc3QubGVuZ3RoKCkpLCBTdHJpbmc6OmZyb21VVEY4KGtleVZhbHVlLnNlY29u
ZC5kYXRhKCksIGtleVZhbHVlLnNlY29uZC5sZW5ndGgoKSkpKTsKIAorICAgIGVuc3VyZUdQVVBy
b2Nlc3NDb25uZWN0aW9uKCk7CiAgICAgZGlzcGF0Y2hUb1RocmVhZChbdGhpcywgZW5jb2RlciA9
IFdURk1vdmUoZW5jb2RlciksIHR5cGUsIHBhcmFtZXRlcnMgPSBXVEZNb3ZlKHBhcmFtZXRlcnMp
XSgpIG11dGFibGUgewogICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihtX2Nvbm5lY3Rpb25Mb2Nr
KTsKICAgICAgICAgZW5jb2Rlci0+Y29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbjsKQEAgLTM1MSw2
ICszNjgsNyBAQCBpbnQzMl90IExpYldlYlJUQ0NvZGVjczo6cmVsZWFzZUVuY29kZXIoRW5jb2Rl
ciYgZW5jb2RlcikKICAgICAgICAgQVNTRVJUKG1fZW5jb2RlcnMuY29udGFpbnMoZW5jb2Rlcklk
ZW50aWZpZXIpKTsKICAgICAgICAgYXV0byBlbmNvZGVyID0gbV9lbmNvZGVycy50YWtlKGVuY29k
ZXJJZGVudGlmaWVyKTsKICAgICAgICAgZW5jb2Rlci0+Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6TGliV2ViUlRDQ29kZWNzUHJveHk6OlJlbGVhc2VFbmNvZGVyIHsgZW5jb2RlcklkZW50aWZp
ZXIgfSwgMCk7CisgICAgICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uTWF5Tm9Mb25nZXJCZU5lZWRl
ZCgpOwogICAgIH0pOwogICAgIHJldHVybiAwOwogfQpAQCAtNDYwLDE1ICs0NzgsMTMgQEAgdm9p
ZCBMaWJXZWJSVENDb2RlY3M6OmRpc3BhdGNoVG9UaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIGNh
bGxiYWNrKQogCiB2b2lkIExpYldlYlJUQ0NvZGVjczo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRD
bG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYpCiB7Ci0gICAgYXV0byYgZ3B1Q29ubmVjdGlvbiA9
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7Ci0g
ICAgZ3B1Q29ubmVjdGlvbi5hZGRDbGllbnQoKnRoaXMpOwotICAgIHsKLSAgICAgICAgYXV0byBs
b2NrID0gaG9sZExvY2sobV9jb25uZWN0aW9uTG9jayk7Ci0gICAgICAgIG1fY29ubmVjdGlvbi0+
cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSk7Ci0gICAgICAgIG1fY29ubmVjdGlvbiA9IG1ha2VSZWYoZ3B1
Q29ubmVjdGlvbi5jb25uZWN0aW9uKCkpOwotICAgICAgICBtX2Nvbm5lY3Rpb24tPmFkZFRocmVh
ZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksIHRoaXMpOwotICAgIH0KKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKKyAg
ICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fY29ubmVjdGlvbkxvY2spOworICAgIHN0ZDo6ZXhj
aGFuZ2UobV9jb25uZWN0aW9uLCBudWxscHRyKS0+cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAg
aWYgKCFtX25lZWRzR1BVUHJvY2Vzc0Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKIAorICAg
IGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCZsb2NrZXIpOwogICAgIGRpc3BhdGNoVG9UaHJl
YWQoW3RoaXNdKCkgewogICAgICAgICAvLyBMb2NrIGV2ZXJ5dGhpbmcgc28gdGhhdCB3ZSBjYW4g
dXBkYXRlIGVuY29kZXIvZGVjb2RlciBjb25uZWN0aW9uLgogICAgICAgICBMb2NrSG9sZGVyIGhv
bGRlcihtX2Nvbm5lY3Rpb25Mb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmgKaW5kZXggYzI4NzYyYjI0Yzg5ZTE0MmI1
ZGU5Y2U2ZjE3NzQyZDU0ODZkM2M5Yy4uZWFhNzEyMWM2MGU3NWMwOGFhZDlmMmYwZTc4OTk3YWQ2
ZDU2OTQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
TGliV2ViUlRDQ29kZWNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzLmgKQEAgLTYyLDExICs2Miw5IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogY2xhc3MgTGliV2ViUlRDQ29kZWNzIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFk
TWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCwgcHVibGljIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpD
bGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDQ29kZWNzPiBjcmVhdGUoKQorICAgIHN0YXRpYyBS
ZWY8TGliV2ViUlRDQ29kZWNzPiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgYXV0byBpbnN0YW5j
ZSA9IHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENDb2RlY3M+KG5ldyBMaWJXZWJSVENDb2RlY3Mp
OwotICAgICAgICBpbnN0YW5jZS0+c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKTsKLSAgICAgICAgcmV0
dXJuIGluc3RhbmNlOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBMaWJXZWJSVENDb2Rl
Y3MpOwogICAgIH0KICAgICB+TGliV2ViUlRDQ29kZWNzKCk7CiAKQEAgLTEyNSw3ICsxMjMsOCBA
QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgTGliV2ViUlRDQ29kZWNzKCk7Ci0gICAgdm9pZCBz
dGFydExpc3RlbmluZ0ZvcklQQygpOworICAgIElQQzo6Q29ubmVjdGlvbiYgZW5zdXJlR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24oTG9ja2VyPExvY2s+KiA9IG51bGxwdHIpOworICAgIHZvaWQgZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVkKCk7CiAKICAgICB2b2lkIGZhaWxlZERl
Y29kaW5nKFJUQ0RlY29kZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIGNvbXBsZXRlZERlY29kaW5n
KFJUQ0RlY29kZXJJZGVudGlmaWVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIFdlYkNvcmU6OlJlbW90
ZVZpZGVvU2FtcGxlJiYpOwpAQCAtMTQ0LDYgKzE0Myw4IEBAIHByaXZhdGU6CiAKICAgICBIYXNo
TWFwPFJUQ0VuY29kZXJJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4+IG1fZW5j
b2RlcnM7CiAKKyAgICBzdGQ6OmF0b21pYzxib29sPiBtX25lZWRzR1BVUHJvY2Vzc0Nvbm5lY3Rp
b247CisKICAgICBMb2NrIG1fY29ubmVjdGlvbkxvY2s7CiAgICAgUmVmUHRyPElQQzo6Q29ubmVj
dGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCA2NDZlNWVkMDg5NzE2MTNhZmI0MTU0ODA3
N2ZlMzE0OGJkMThhZDQzLi43YzhhNjNmZDIxYjMwZWM3ODhlZTg1NmJmMmQyMjg3ZjhhZDRiYjJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTYyMSw3ICs2MjEsNyBA
QCBwcml2YXRlOgogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBSZWZQdHI8R1BVUHJvY2Vz
c0Nvbm5lY3Rpb24+IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb247CiAjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIFVTRShMSUJXRUJSVEMpCi0gICAgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ0NvZGVjcz4g
bV9saWJXZWJSVENDb2RlY3M7CisgICAgUmVmUHRyPExpYldlYlJUQ0NvZGVjcz4gbV9saWJXZWJS
VENDb2RlY3M7CiAjZW5kaWYKICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426312</attachid>
            <date>2021-04-16 19:45:39 -0700</date>
            <delta_ts>2021-04-16 19:51:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224704-20210416194539.patch</filename>
            <type>text/plain</type>
            <size>12886</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc4MWY4NWIxOThlOWYxOTAw
ZWI0ZjhmODRhNTAwMWUxOTU3MjM4YWQuLjhlNTAxNWEyMTM2OGYwMGM1OWRmMWQ0MTdhMTYwZGY2
MDY0NTg3ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMjEtMDQtMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBMaWJXZWJSVENDb2RlY3MgZWFnZXJs
eSBsYXVuY2hlcyB0aGUgR1BVUHJvY2VzcyBhbmQgYWx3YXlzIHJlbGF1bmNoZXMgaXQgb24gZXhp
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NzA0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGliV2Vi
UlRDQ29kZWNzIGVhZ2VybHkgbGF1bmNoZXMgdGhlIEdQVVByb2Nlc3MgYW5kIGFsd2F5cyByZWxh
dW5jaGVzIGl0IG9uIGV4aXQuIFRoZSBHUFVQcm9jZXNzCisgICAgICAgIHNob3VsZCBvbmx5IGJl
IChyZS0pbGF1bmNoZWQgd2hlbiBuZWVkZWQuIEluIHRoZSBjYXNlIG9mIHRoZSBMaWJXZWJSVEND
b2RlY3MsIGl0IHNlZW1zIGl0IG9ubHkKKyAgICAgICAgbmVlZHMgYSBHUFVQcm9jZXNzIGNvbm5l
Y3Rpb24gaWYgaXQgaGFzIG1fZGVjb2RlcnMgLyBtX2VuY29kZXJzIGFyZSBub24tZW1wdHkuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjplbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlv
bik6CisgICAgICAgIFJlbmFtZWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKSB0byBlbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpLiBPbmx5IGRvIHRoZSBjb25uZWN0aW9uCisgICAgICAgIGluaXRp
YWxpemF0aW9uIGlmIG1fY29ubmVjdGlvbiBpcyBub3QgbnVsbC4gV2UgYWxzbyBzZXQgdGhlIG1f
bmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlvbgorICAgICAgICBmbGFnIHRvIHRydWUgdG8gaW5kaWNh
dGUgc29tZW9uZSBuZWVkZWQgdGhlIGNvbm5lY3Rpb24uCisKKyAgICAgICAgKFdlYktpdDo6TGli
V2ViUlRDQ29kZWNzOjpncHVQcm9jZXNzQ29ubmVjdGlvbk1heU5vTG9uZ2VyQmVOZWVkZWQpOgor
ICAgICAgICBGdW5jdGlvbiB0aGF0IGdldHMgY2FsbGVkIG9uIHRoZSBiYWNrZ3JvdW5kIHRocmVh
ZCBldmVyeSB0aW1lIGEgZW5jb2RlciAvIGRlY29kZXIgaXMKKyAgICAgICAgcmVtb3ZlZC4gSXRz
IHB1cnBvc2UgaXMgdG8gc2V0IG1fbmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlvbiBiYWNrIHRvIGZh
bHNlIG9uY2Ugd2Ugbm8KKyAgICAgICAgbG9uZ2VyIGhhdmUgYW55IGVuY29kZXIgLyBkZWNvZGVy
LCBzbyB0aGF0IGdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoKSBkb2VzIG5vdAorICAgICAg
ICBhdHRlbXB0IHRvIHJlbGF1bmNoIHRoZSBHUFVQcm9jZXNzIGlmIGl0IGdvZXMgYXdheS4KKwor
ICAgICAgICBMaWJXZWJSVENDb2RlY3M6OnNldENhbGxiYWNrcygpOgorICAgICAgICBDaGVjayBp
ZiBWUDlTdXBwb3J0IGlzIGVuYWJsZWQgdmlhIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciBp
bnN0ZWFkIG9mIGZyb20gdGhlCisgICAgICAgIEdQVVByb2Nlc3NDb25uZWN0aW9uLiBUaGlzIGF2
b2lkcyBlYWdlcmx5IGxhdW5jaGluZyB0aGUgR1BVUHJvY2Vzcy4gVGhlCisgICAgICAgIEdQVVBy
b2Nlc3NDb25uZWN0aW9uIGNvbnN0cnVjdG9yIGdldHMgaXRzIFZQeCBzdXBwb3J0IGluZm9ybWF0
aW9uIGZyb20KKyAgICAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyIGFueXdheS4gVGhl
IFdlYlBhZ2UgY29uc3RydWN0b3IgaXMgd2hlcmUgdGhlIFZQeCBzdXBwb3J0CisgICAgICAgIGlu
Zm9ybWF0aW9uIGNvbWVzIGZyb20gYW5kIGl0IHVwZGF0ZXMgdGhlIFZQeCBmbGFncyBvbiB0aGUg
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLgorICAgICAgICBUaGUgV2ViUGFnZSBjb25zdHJ1
Y3RvciBvbmx5IHVwZGF0ZXMgdGhlIFZQeCBmbGFncyBvbiB0aGUgR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24gaWYgdGhpcworICAgICAgICBjb25uZWN0aW9uIGFscmVhZHkgZXhpc3RzIHRvIGF2b2lkIGVh
Z2VybHkgbGF1bmNoaW5nIHRoZSBHUFVQcm9jZXNzLgorCisgICAgICAgIChXZWJLaXQ6OkxpYldl
YlJUQ0NvZGVjczo6Y3JlYXRlRGVjb2Rlcik6CisgICAgICAgIC0gQ2FsbCBlbnN1cmVHUFVQcm9j
ZXNzQ29ubmVjdGlvbigpIG9uIHRoZSBtYWluIHRocmVhZCB0byBpbml0aWF0ZSB0aGUgY29ubmVj
dGlvbiB0byB0aGUKKyAgICAgICAgR1BVUHJvY2VzcyBzaW5jZSB3ZSdyZSBhYm91dCB0byBjcmVh
dGUgYSBkZWNvZGVyLgorICAgICAgICAtIEFkZCBhIG1pc3NpbmcgbG9ja2VyIGZvciBtX2Nvbm5l
Y3Rpb25Mb2NrIG9uIHRoZSBiYWNrZ3JvdW5kIHRocmVhZCBzaW5jZSBpdCBpcyB1c2luZworICAg
ICAgICAgIG1fY29ubmVjdGlvbiAocHJlLWV4aXN0aW5nIGJ1ZykuCisKKyAgICAgICAgKFdlYktp
dDo6TGliV2ViUlRDQ29kZWNzOjpyZWxlYXNlRGVjb2Rlcik6CisgICAgICAgIENhbGwgZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVkKCkgdG8gcmVzZXQgdGhlIG1fbmVlZHNH
UFVQcm9jZXNzQ29ubmVjdGlvbgorICAgICAgICBmbGFnIHRvIGZhbHNlIGlmIG5lY2Vzc2FyeS4K
KworICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNyZWF0ZUVuY29kZXIpOgorICAg
ICAgICBDYWxsIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkgb24gdGhlIG1haW4gdGhyZWFk
IHRvIGluaXRpYXRlIHRoZSBjb25uZWN0aW9uIHRvIHRoZQorICAgICAgICBHUFVQcm9jZXNzIHNp
bmNlIHdlJ3JlIGFib3V0IHRvIGNyZWF0ZSBhbiBlbmNvZGVyLgorCisgICAgICAgIChXZWJLaXQ6
OkxpYldlYlJUQ0NvZGVjczo6cmVsZWFzZUVuY29kZXIpOgorICAgICAgICBDYWxsIGdwdVByb2Nl
c3NDb25uZWN0aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZCgpIHRvIHJlc2V0IHRoZSBtX25lZWRzR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24KKyAgICAgICAgZmxhZyB0byBmYWxzZSBpZiBuZWNlc3NhcnkuCisK
KyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRp
ZENsb3NlKToKKyAgICAgICAgLSBDbGVhciBtX2Nvbm5lY3Rpb24gd2hlbiB0aGUgR1BVUHJvY2Vz
cyBjb25uZWN0aW9uIGlzIHNldmVyZWQgKG5vdGUgdGhhdCB0aGlzIGRvZXMgbm90CisgICAgICAg
ICAgbmVjZXNzYXJpbHkgaW5kaWNhdGUgYSBjcmFzaCBzaW5jZSB0aGUgR1BVUHJvY2VzcyBleGl0
cyB3aGVuIGlkbGUgYW5kIHVuZGVyIG1lbW9yeQorICAgICAgICAgIHByZXNzdXJlKS4KKyAgICAg
ICAgLSBPbmx5IHJlLWluaXRpYXRlIHRoZSBHUFVQcm9jZXNzIGNvbm5lY3Rpb24gaWYgbV9uZWVk
c0dQVVByb2Nlc3NDb25uZWN0aW9uIGlzIHRydWUsCisgICAgICAgICAgbWVhbmluZyB0aGF0IHdl
IGhhdmUgZW5jb2RlcnMvZGVjb2RlcnMuIEkgdXNlIHRoaXMgZmxhZyBpbnN0ZWFkIG9mIGNoZWNr
aW5nIG1fZW5jb2RlcnMKKyAgICAgICAgICAmIG1fZGVjb2RlcnMgc2luY2UgdGhvc2UgY29udGFp
bmVycyBhcmUgbW9kaWZpZWQgb24gdGhlIGJhY2tncm91bmQgdGhyZWFkIGFuZCB0aGlzCisgICAg
ICAgICAgZnVuY3Rpb24gaXMgY2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZC4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaDoKKyAgICAgICAgKFdlYktp
dDo6TGliV2ViUlRDQ29kZWNzOjpjcmVhdGUpOgorICAgICAgICAtIFN0b3AgY2FsbGluZyBzdGFy
dExpc3RlbmluZ0ZvcklQQygpIG9uIGNvbnN0cnVjdGlvbiBhcyB3ZSBkb24ndCB3YW50IHRvIGxh
dW5jaCB0aGUgR1BVUHJvY2VzcworICAgICAgICB1bnRpbCBhbiBlbmNvZGVyIC8gZGVjb2RlciBp
cyBjcmVhdGVkLgorICAgICAgICAtIEZpeCBhIHByZS1leGlzdGluZyBpc3N1ZSB3aGVyZSB0aGUg
Y2xhc3Mgc3ViY2xhc3NlcyBUaHJlYWRTYWZlUmVmQ291bnRlZCAodmlhCisgICAgICAgICAgVGhy
ZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCkgYW5kIHlldCB3YXMgdXNpbmcgc3RkOjp1bmlx
dWVfcHRyPD4gaW5zdGVhZCBvZgorICAgICAgICAgIFJlZlB0cjw+LgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisKIDIwMjEtMDQtMTYgIENhbWVyb24gTWNDb3JtYWNrICA8
aGV5Y2FtQGFwcGxlLmNvbT4KIAogICAgICAgICBQbGFjZSB2ZXJ0aWNhbCBzY3JvbGxiYXJzIGF0
IChpbmxpbmUvYmxvY2spLWVuZCBlZGdlIGluIGFsbCB3cml0aW5nIG1vZGVzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5j
cHAKaW5kZXggMWZhOTQzMTBiMWQ4ZjgyMWZmNWNhODQyNmVlMmQ0ODI0YzhkMTZmZS4uOTFhMGZl
OTRlZmI0MzZlNGRlYzAxMTg0NzdiZTAxZjYzMjQ1YTFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
bW90ZVZpZGVvU2FtcGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmg+CkBAIC0xNjgsMTUgKzE2OSw0MiBAQCBMaWJXZWJSVENDb2RlY3M6OkxpYldlYlJUQ0Nv
ZGVjcygpCiB7CiB9CiAKLXZvaWQgTGliV2ViUlRDQ29kZWNzOjpzdGFydExpc3RlbmluZ0ZvcklQ
QygpCit2b2lkIExpYldlYlJUQ0NvZGVjczo6ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb25Pbk1h
aW5UaHJlYWQoTG9ja2VyPExvY2s+JikKIHsKLSAgICBBU1NFUlQoIW1fY29ubmVjdGlvbik7Cisg
ICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CisgICAgQVNTRVJUKG1fY29ubmVjdGlvbkxvY2su
aXNIZWxkKCkpOworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKwogICAg
IGF1dG8mIGdwdUNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpOwogICAgIGdwdUNvbm5lY3Rpb24uYWRkQ2xpZW50KCp0aGlzKTsK
ICAgICBtX2Nvbm5lY3Rpb24gPSBtYWtlUmVmKGdwdUNvbm5lY3Rpb24uY29ubmVjdGlvbigpKTsK
ICAgICBtX2Nvbm5lY3Rpb24tPmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6TGli
V2ViUlRDQ29kZWNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOwogfQogCisvLyBNYXkg
YmUgY2FsbGVkIG9uIGFueSB0aHJlYWQuCit2b2lkIExpYldlYlJUQ0NvZGVjczo6ZW5zdXJlR1BV
UHJvY2Vzc0Nvbm5lY3Rpb25BbmREaXNwYXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiB0
YXNrKQoreworICAgIG1fbmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlvbiA9IHRydWU7CisgICAgewor
ICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fY29ubmVjdGlvbkxvY2spOworICAgICAg
ICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICAgICAgcmV0dXJuIGRpc3BhdGNoVG9UaHJlYWQo
V1RGTW92ZSh0YXNrKSk7CisgICAgfQorICAgIGVuc3VyZU9uTWFpblJ1bkxvb3AoW3RoaXMsIHRh
c2sgPSBXVEZNb3ZlKHRhc2spXSgpIG11dGFibGUgeworICAgICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fY29ubmVjdGlvbkxvY2spOworICAgICAgICBlbnN1cmVHUFVQcm9jZXNzQ29ubmVj
dGlvbk9uTWFpblRocmVhZChsb2NrZXIpOworICAgICAgICBkaXNwYXRjaFRvVGhyZWFkKFdURk1v
dmUodGFzaykpOworICAgIH0pOworfQorCit2b2lkIExpYldlYlJUQ0NvZGVjczo6Z3B1UHJvY2Vz
c0Nvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVkKCkKK3sKKyAgICBBU1NFUlQoIWlzTWFpblJ1
bkxvb3AoKSk7CisgICAgaWYgKG1fZW5jb2RlcnMuaXNFbXB0eSgpICYmIG1fZGVjb2RlcnMuaXNF
bXB0eSgpKQorICAgICAgICBtX25lZWRzR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gPSBmYWxzZTsKK30K
KwogTGliV2ViUlRDQ29kZWNzOjp+TGliV2ViUlRDQ29kZWNzKCkKIHsKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTE5Niw5ICsyMjQsOCBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6c2V0
Q2FsbGJhY2tzKGJvb2wgdXNlR1BVUHJvY2VzcykKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5saWJXZWJSVENDb2RlY3MoKTsKIAogI2lmIEVOQUJMRShWUDkpCi0gICAgYXV0byYgZ3B1Q29u
bmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0
aW9uKCk7CiAgICAgLy8gRklNWEU6IFdlIHNob3VsZCBkaXNhYmxlIFZQOVZUQiBpZiBWUDkgaGFy
ZHdhcmUgZGVjb2RpbmcgaXMgZW5hYmxlZCBidXQgdGhlcmUgaXMgbm8gc3VwcG9ydCBmb3IgaXQu
Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDQ29kZWNzKCkuc2V0VlA5VlRC
U3VwcG9ydChncHVDb25uZWN0aW9uLmlzVlA5RGVjb2RlckVuYWJsZWQoKSB8fCBncHVDb25uZWN0
aW9uLmlzVlBTV0RlY29kZXJFbmFibGVkKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmxpYldlYlJUQ0NvZGVjcygpLnNldFZQOVZUQlN1cHBvcnQoUGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyOjpzaG91bGRFbmFibGVWUDlEZWNvZGVyKCkgfHwgUGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyOjpzaG91bGRFbmFibGVWUDlTV0RlY29kZXIoKSk7CiAjZW5kaWYKIAogICAgIHdlYnJ0
Yzo6c2V0VmlkZW9EZWNvZGVyQ2FsbGJhY2tzKGNyZWF0ZVZpZGVvRGVjb2RlciwgcmVsZWFzZVZp
ZGVvRGVjb2RlciwgZGVjb2RlVmlkZW9GcmFtZSwgcmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxi
YWNrKTsKQEAgLTIxMiw3ICsyMzksOCBAQCBMaWJXZWJSVENDb2RlY3M6OkRlY29kZXIqIExpYldl
YlJUQ0NvZGVjczo6Y3JlYXRlRGVjb2RlcihUeXBlIHR5cGUpCiAgICAgZGVjb2Rlci0+aWRlbnRp
ZmllciA9IFJUQ0RlY29kZXJJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKICAgICBk
ZWNvZGVyLT50eXBlID0gdHlwZTsKIAotICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIGRlY29k
ZXIgPSBXVEZNb3ZlKGRlY29kZXIpXSgpIG11dGFibGUgeworICAgIGVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uQW5kRGlzcGF0Y2hUb1RocmVhZChbdGhpcywgZGVjb2RlciA9IFdURk1vdmUoZGVj
b2RlcildKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9jb25u
ZWN0aW9uTG9jayk7CiAgICAgICAgIGRlY29kZXItPmNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb247
CiAgICAgICAgIGNyZWF0ZVJlbW90ZURlY29kZXIoKmRlY29kZXIsICptX2Nvbm5lY3Rpb24pOwog
CkBAIC0yMjgsOCArMjU2LDEwIEBAIGludDMyX3QgTGliV2ViUlRDQ29kZWNzOjpyZWxlYXNlRGVj
b2RlcihEZWNvZGVyJiBkZWNvZGVyKQogICAgIEFTU0VSVCghZGVjb2Rlci5kZWNvZGVkSW1hZ2VD
YWxsYmFjayk7CiAgICAgZGlzcGF0Y2hUb1RocmVhZChbdGhpcywgZGVjb2RlcklkZW50aWZpZXIg
PSBkZWNvZGVyLmlkZW50aWZpZXJdIHsKICAgICAgICAgQVNTRVJUKG1fZGVjb2RlcnMuY29udGFp
bnMoZGVjb2RlcklkZW50aWZpZXIpKTsKLSAgICAgICAgaWYgKGF1dG8gZGVjb2RlciA9IG1fZGVj
b2RlcnMudGFrZShkZWNvZGVySWRlbnRpZmllcikpCisgICAgICAgIGlmIChhdXRvIGRlY29kZXIg
PSBtX2RlY29kZXJzLnRha2UoZGVjb2RlcklkZW50aWZpZXIpKSB7CiAgICAgICAgICAgICBkZWNv
ZGVyLT5jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6UmVs
ZWFzZURlY29kZXIgeyBkZWNvZGVySWRlbnRpZmllciB9LCAwKTsKKyAgICAgICAgICAgIGdwdVBy
b2Nlc3NDb25uZWN0aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZCgpOworICAgICAgICB9CiAgICAgfSk7
CiAgICAgcmV0dXJuIDA7CiB9CkBAIC0zMzEsNyArMzYxLDcgQEAgTGliV2ViUlRDQ29kZWNzOjpF
bmNvZGVyKiBMaWJXZWJSVENDb2RlY3M6OmNyZWF0ZUVuY29kZXIoVHlwZSB0eXBlLCBjb25zdCBz
dGQ6Om0KICAgICBmb3IgKGF1dG8mIGtleVZhbHVlIDogZm9ybWF0UGFyYW1ldGVycykKICAgICAg
ICAgcGFyYW1ldGVycy5hcHBlbmQoc3RkOjptYWtlX3BhaXIoU3RyaW5nOjpmcm9tVVRGOChrZXlW
YWx1ZS5maXJzdC5kYXRhKCksIGtleVZhbHVlLmZpcnN0Lmxlbmd0aCgpKSwgU3RyaW5nOjpmcm9t
VVRGOChrZXlWYWx1ZS5zZWNvbmQuZGF0YSgpLCBrZXlWYWx1ZS5zZWNvbmQubGVuZ3RoKCkpKSk7
CiAKLSAgICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBlbmNvZGVyID0gV1RGTW92ZShlbmNvZGVy
KSwgdHlwZSwgcGFyYW1ldGVycyA9IFdURk1vdmUocGFyYW1ldGVycyldKCkgbXV0YWJsZSB7Cisg
ICAgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb25BbmREaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBl
bmNvZGVyID0gV1RGTW92ZShlbmNvZGVyKSwgdHlwZSwgcGFyYW1ldGVycyA9IFdURk1vdmUocGFy
YW1ldGVycyldKCkgbXV0YWJsZSB7CiAgICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKG1fY29ubmVj
dGlvbkxvY2spOwogICAgICAgICBlbmNvZGVyLT5jb25uZWN0aW9uID0gbV9jb25uZWN0aW9uOwog
ICAgICAgICBlbmNvZGVyLT5jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2Rl
Y3NQcm94eTo6Q3JlYXRlRW5jb2RlciB7IGVuY29kZXItPmlkZW50aWZpZXIsIGZvcm1hdE5hbWVG
cm9tQ29kZWNUeXBlKHR5cGUpLCBwYXJhbWV0ZXJzLCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLndlYlJUQ0gyNjRMb3dMYXRlbmN5RW5jb2RlckVuYWJsZWQoKSB9LCAw
KTsKQEAgLTM1MSw2ICszODEsNyBAQCBpbnQzMl90IExpYldlYlJUQ0NvZGVjczo6cmVsZWFzZUVu
Y29kZXIoRW5jb2RlciYgZW5jb2RlcikKICAgICAgICAgQVNTRVJUKG1fZW5jb2RlcnMuY29udGFp
bnMoZW5jb2RlcklkZW50aWZpZXIpKTsKICAgICAgICAgYXV0byBlbmNvZGVyID0gbV9lbmNvZGVy
cy50YWtlKGVuY29kZXJJZGVudGlmaWVyKTsKICAgICAgICAgZW5jb2Rlci0+Y29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OlJlbGVhc2VFbmNvZGVyIHsgZW5j
b2RlcklkZW50aWZpZXIgfSwgMCk7CisgICAgICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uTWF5Tm9M
b25nZXJCZU5lZWRlZCgpOwogICAgIH0pOwogICAgIHJldHVybiAwOwogfQpAQCAtNDYwLDE1ICs0
OTEsMTMgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3M6OmRpc3BhdGNoVG9UaHJlYWQoRnVuY3Rpb248
dm9pZCgpPiYmIGNhbGxiYWNrKQogCiB2b2lkIExpYldlYlJUQ0NvZGVjczo6Z3B1UHJvY2Vzc0Nv
bm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYpCiB7Ci0gICAgYXV0byYgZ3B1
Q29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25u
ZWN0aW9uKCk7Ci0gICAgZ3B1Q29ubmVjdGlvbi5hZGRDbGllbnQoKnRoaXMpOwotICAgIHsKLSAg
ICAgICAgYXV0byBsb2NrID0gaG9sZExvY2sobV9jb25uZWN0aW9uTG9jayk7Ci0gICAgICAgIG1f
Y29ubmVjdGlvbi0+cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJS
VENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Ci0gICAgICAgIG1fY29ubmVjdGlvbiA9
IG1ha2VSZWYoZ3B1Q29ubmVjdGlvbi5jb25uZWN0aW9uKCkpOwotICAgICAgICBtX2Nvbm5lY3Rp
b24tPmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOwotICAgIH0KKyAgICBBU1NFUlQoaXNNYWluUnVu
TG9vcCgpKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fY29ubmVjdGlvbkxvY2spOwor
ICAgIHN0ZDo6ZXhjaGFuZ2UobV9jb25uZWN0aW9uLCBudWxscHRyKS0+cmVtb3ZlVGhyZWFkTWVz
c2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSk7CisgICAgaWYgKCFtX25lZWRzR1BVUHJvY2Vzc0Nvbm5lY3Rpb24pCisgICAgICAgIHJl
dHVybjsKIAorICAgIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uT25NYWluVGhyZWFkKGxvY2tl
cik7CiAgICAgZGlzcGF0Y2hUb1RocmVhZChbdGhpc10oKSB7CiAgICAgICAgIC8vIExvY2sgZXZl
cnl0aGluZyBzbyB0aGF0IHdlIGNhbiB1cGRhdGUgZW5jb2Rlci9kZWNvZGVyIGNvbm5lY3Rpb24u
CiAgICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKG1fY29ubmVjdGlvbkxvY2spOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaApp
bmRleCBjMjg3NjJiMjRjODllMTQyYjVkZTljZTZmMTc3NDJkNTQ4NmQzYzljLi4wMjE1YTczNGE3
MGU4NzViNDEwYTk2Zjk4YTEyNmE2NjVkN2UxMzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaApAQCAtNjIsMTEgKzYy
LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBMaWJXZWJSVENDb2RlY3MgOiBwdWJsaWMg
SVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkLCBwdWJsaWMg
R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENDb2RlY3M+
IGNyZWF0ZSgpCisgICAgc3RhdGljIFJlZjxMaWJXZWJSVENDb2RlY3M+IGNyZWF0ZSgpCiAgICAg
ewotICAgICAgICBhdXRvIGluc3RhbmNlID0gc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ0NvZGVj
cz4obmV3IExpYldlYlJUQ0NvZGVjcyk7Ci0gICAgICAgIGluc3RhbmNlLT5zdGFydExpc3Rlbmlu
Z0ZvcklQQygpOwotICAgICAgICByZXR1cm4gaW5zdGFuY2U7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IExpYldlYlJUQ0NvZGVjcyk7CiAgICAgfQogICAgIH5MaWJXZWJSVENDb2RlY3Mo
KTsKIApAQCAtMTI1LDcgKzEyMyw5IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBMaWJXZWJS
VENDb2RlY3MoKTsKLSAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9ySVBDKCk7CisgICAgdm9pZCBl
bnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbkFuZERpc3BhdGNoVG9UaHJlYWQoRnVuY3Rpb248dm9p
ZCgpPiYmKTsKKyAgICB2b2lkIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uT25NYWluVGhyZWFk
KExvY2tlcjxMb2NrPiYpOworICAgIHZvaWQgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb25NYXlOb0xvbmdl
ckJlTmVlZGVkKCk7CiAKICAgICB2b2lkIGZhaWxlZERlY29kaW5nKFJUQ0RlY29kZXJJZGVudGlm
aWVyKTsKICAgICB2b2lkIGNvbXBsZXRlZERlY29kaW5nKFJUQ0RlY29kZXJJZGVudGlmaWVyLCB1
aW50MzJfdCB0aW1lU3RhbXAsIFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYpOwpAQCAtMTQ0
LDYgKzE0NCw4IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFJUQ0VuY29kZXJJZGVudGlmaWVy
LCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4+IG1fZW5jb2RlcnM7CiAKKyAgICBzdGQ6OmF0b21p
Yzxib29sPiBtX25lZWRzR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CisKICAgICBMb2NrIG1fY29ubmVj
dGlvbkxvY2s7CiAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAg
IFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aAppbmRleCA2NDZlNWVkMDg5NzE2MTNhZmI0MTU0ODA3N2ZlMzE0OGJkMThhZDQzLi43YzhhNjNm
ZDIxYjMwZWM3ODhlZTg1NmJmMmQyMjg3ZjhhZDRiYjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKQEAgLTYyMSw3ICs2MjEsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKICAgICBSZWZQdHI8R1BVUHJvY2Vzc0Nvbm5lY3Rpb24+IG1fZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb247CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCi0gICAg
c3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ0NvZGVjcz4gbV9saWJXZWJSVENDb2RlY3M7CisgICAg
UmVmUHRyPExpYldlYlJUQ0NvZGVjcz4gbV9saWJXZWJSVENDb2RlY3M7CiAjZW5kaWYKICNlbmRp
ZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426314</attachid>
            <date>2021-04-16 19:51:49 -0700</date>
            <delta_ts>2021-04-17 15:51:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224704-20210416195148.patch</filename>
            <type>text/plain</type>
            <size>13536</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc4MWY4NWIxOThlOWYxOTAw
ZWI0ZjhmODRhNTAwMWUxOTU3MjM4YWQuLmM5Nzg5OTFjNWI4MGRjNTAyOTI4MTFiNTNmODQwOWY0
NzYzOTQwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODAgQEAKKzIwMjEtMDQtMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBMaWJXZWJSVENDb2RlY3MgZWFnZXJs
eSBsYXVuY2hlcyB0aGUgR1BVUHJvY2VzcyBhbmQgYWx3YXlzIHJlbGF1bmNoZXMgaXQgb24gZXhp
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NzA0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGliV2Vi
UlRDQ29kZWNzIGVhZ2VybHkgbGF1bmNoZXMgdGhlIEdQVVByb2Nlc3MgYW5kIGFsd2F5cyByZWxh
dW5jaGVzIGl0IG9uIGV4aXQuIFRoZSBHUFVQcm9jZXNzCisgICAgICAgIHNob3VsZCBvbmx5IGJl
IChyZS0pbGF1bmNoZWQgd2hlbiBuZWVkZWQuIEluIHRoZSBjYXNlIG9mIHRoZSBMaWJXZWJSVEND
b2RlY3MsIGl0IHNlZW1zIGl0IG9ubHkKKyAgICAgICAgbmVlZHMgYSBHUFVQcm9jZXNzIGNvbm5l
Y3Rpb24gaWYgaXQgaGFzIG1fZGVjb2RlcnMgLyBtX2VuY29kZXJzIGFyZSBub24tZW1wdHkuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjplbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlv
bk9uTWFpblRocmVhZCk6CisgICAgICAgIFJlbmFtZWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKSB0
byBlbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbk9uTWFpblRocmVhZCgpLiBPbmx5IGRvIHRoZQor
ICAgICAgICBjb25uZWN0aW9uIGluaXRpYWxpemF0aW9uIGlmIG1fY29ubmVjdGlvbiBpcyBub3Qg
bnVsbC4KKworICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmVuc3VyZUdQVVByb2Nl
c3NDb25uZWN0aW9uQW5kRGlzcGF0Y2hUb1RocmVhZCk6CisgICAgICAgIFZlcnNpb24gb2YgZGlz
cGF0Y2hUb1RocmVhZCgpIHdoaWNoIG1ha2VzIHN1cmUgdGhhdCB0aGUgR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24gaXMgaW5pdGlhbGl6ZWQKKyAgICAgICAgYmVmb3JlIGRpc3BhdGNoaW5nLiBJdCBpcyB1
c2VkIHdoZW4gY29uc3RydWN0aW5nIGEgZGVjb2RlciAvIGVuY29kZXIuIEl0IHNldHMgdGhlCisg
ICAgICAgIG1fbmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlvbiBmbGFnIHRvIHRydWUgdG8gaW5kaWNh
dGUgc29tZW9uZSBuZWVkZWQgdGhlIGNvbm5lY3Rpb24KKyAgICAgICAgKGFuZCB0aGF0IHdlIHNo
b3VsZCByZS1pbml0aWF0ZSBpdCBpbiBjYXNlIGl0IGlzIHNldmVyZWQpLiBJZiB0aGUgY29ubmVj
dGlvbiBpcyBhbHJlYWR5CisgICAgICAgIGluaXRpYWxpemVkLCB0aGVuIGl0IGRvZXMgYSBzaW1w
bGUgZGlzcGF0Y2hUb1RocmVhZCgpLiBJZiB0aGUgY29ubmVjdGlvbiBpcyBub3QgaW5pdGlhbGl6
ZWQKKyAgICAgICAgeWV0LCB0aGVuIHdlIGhhdmUgdG8gaG9wIHRvIHRoZSBtYWluIHRocmVhZCAo
aWYgbm90IGFscmVhZHkgb24gaXQpIHRvIGluaXRpYWxpemUgdGhlCisgICAgICAgIEdQVVByb2Nl
c3NDb25uZWN0aW9uLgorCisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6Z3B1UHJv
Y2Vzc0Nvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVkKToKKyAgICAgICAgRnVuY3Rpb24gdGhh
dCBnZXRzIGNhbGxlZCBvbiB0aGUgYmFja2dyb3VuZCB0aHJlYWQgZXZlcnkgdGltZSBhIGVuY29k
ZXIgLyBkZWNvZGVyIGlzCisgICAgICAgIHJlbW92ZWQuIEl0cyBwdXJwb3NlIGlzIHRvIHNldCBt
X25lZWRzR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gYmFjayB0byBmYWxzZSBvbmNlIHdlIG5vCisgICAg
ICAgIGxvbmdlciBoYXZlIGFueSBlbmNvZGVyIC8gZGVjb2Rlciwgc28gdGhhdCBncHVQcm9jZXNz
Q29ubmVjdGlvbkRpZENsb3NlKCkgZG9lcyBub3QKKyAgICAgICAgYXR0ZW1wdCB0byByZWxhdW5j
aCB0aGUgR1BVUHJvY2VzcyBpZiBpdCBnb2VzIGF3YXkuCisKKyAgICAgICAgTGliV2ViUlRDQ29k
ZWNzOjpzZXRDYWxsYmFja3MoKToKKyAgICAgICAgQ2hlY2sgaWYgVlA5U3VwcG9ydCBpcyBlbmFi
bGVkIHZpYSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIgaW5zdGVhZCBvZiBmcm9tIHRoZQor
ICAgICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbi4gVGhpcyBhdm9pZHMgZWFnZXJseSBsYXVuY2hp
bmcgdGhlIEdQVVByb2Nlc3MuIFRoZQorICAgICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbiBjb25z
dHJ1Y3RvciBnZXRzIGl0cyBWUHggc3VwcG9ydCBpbmZvcm1hdGlvbiBmcm9tCisgICAgICAgIFBs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciBhbnl3YXkuIFRoZSBXZWJQYWdlIGNvbnN0cnVjdG9y
IGlzIHdoZXJlIHRoZSBWUHggc3VwcG9ydAorICAgICAgICBpbmZvcm1hdGlvbiBjb21lcyBmcm9t
IGFuZCBpdCB1cGRhdGVzIHRoZSBWUHggZmxhZ3Mgb24gdGhlIFBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlci4KKyAgICAgICAgVGhlIFdlYlBhZ2UgY29uc3RydWN0b3Igb25seSB1cGRhdGVzIHRo
ZSBWUHggZmxhZ3Mgb24gdGhlIEdQVVByb2Nlc3NDb25uZWN0aW9uIGlmIHRoaXMKKyAgICAgICAg
Y29ubmVjdGlvbiBhbHJlYWR5IGV4aXN0cyB0byBhdm9pZCBlYWdlcmx5IGxhdW5jaGluZyB0aGUg
R1BVUHJvY2Vzcy4KKworICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNyZWF0ZURl
Y29kZXIpOgorICAgICAgICAtIENhbGwgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb25BbmREaXNw
YXRjaFRvVGhyZWFkKCkgaW5zdGVhZCBvZiBkaXNwYXRjaFRvVGhyZWFkKCkKKyAgICAgICAgICB0
byBtYWtlIHN1cmUgd2UgaGF2ZSBhIEdQVVByb2Nlc3NDb25uZWN0aW9uIGJlZm9yZSBjcmVhdGlu
ZyB0aGUgZGVjb2Rlci4KKyAgICAgICAgLSBBZGQgYSBtaXNzaW5nIGxvY2tlciBmb3IgbV9jb25u
ZWN0aW9uTG9jayBvbiB0aGUgYmFja2dyb3VuZCB0aHJlYWQgc2luY2UgaXQgaXMgdXNpbmcKKyAg
ICAgICAgICBtX2Nvbm5lY3Rpb24gKHByZS1leGlzdGluZyBidWcpLgorCisgICAgICAgIChXZWJL
aXQ6OkxpYldlYlJUQ0NvZGVjczo6cmVsZWFzZURlY29kZXIpOgorICAgICAgICBDYWxsIGdwdVBy
b2Nlc3NDb25uZWN0aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZCgpIHRvIHJlc2V0IHRoZSBtX25lZWRz
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24KKyAgICAgICAgZmxhZyB0byBmYWxzZSBpZiBuZWNlc3Nhcnku
CisKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjcmVhdGVFbmNvZGVyKToKKyAg
ICAgICAgLSBDYWxsIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uQW5kRGlzcGF0Y2hUb1RocmVh
ZCgpIGluc3RlYWQgb2YgZGlzcGF0Y2hUb1RocmVhZCgpCisgICAgICAgICAgdG8gbWFrZSBzdXJl
IHdlIGhhdmUgYSBHUFVQcm9jZXNzQ29ubmVjdGlvbiBiZWZvcmUgY3JlYXRpbmcgdGhlIGVuY29k
ZXIuCisKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpyZWxlYXNlRW5jb2Rlcik6
CisgICAgICAgIENhbGwgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVkKCkg
dG8gcmVzZXQgdGhlIG1fbmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlvbgorICAgICAgICBmbGFnIHRv
IGZhbHNlIGlmIG5lY2Vzc2FyeS4KKworICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6
OmdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UpOgorICAgICAgICAtIENsZWFyIG1fY29ubmVj
dGlvbiB3aGVuIHRoZSBHUFVQcm9jZXNzIGNvbm5lY3Rpb24gaXMgc2V2ZXJlZCAobm90ZSB0aGF0
IHRoaXMgZG9lcyBub3QKKyAgICAgICAgICBuZWNlc3NhcmlseSBpbmRpY2F0ZSBhIGNyYXNoIHNp
bmNlIHRoZSBHUFVQcm9jZXNzIGV4aXRzIHdoZW4gaWRsZSBhbmQgdW5kZXIgbWVtb3J5CisgICAg
ICAgICAgcHJlc3N1cmUpLgorICAgICAgICAtIE9ubHkgcmUtaW5pdGlhdGUgdGhlIEdQVVByb2Nl
c3MgY29ubmVjdGlvbiBpZiBtX25lZWRzR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gaXMgdHJ1ZSwKKyAg
ICAgICAgICBtZWFuaW5nIHRoYXQgd2UgaGF2ZSBlbmNvZGVycy9kZWNvZGVycy4gSSB1c2UgdGhp
cyBmbGFnIGluc3RlYWQgb2YgY2hlY2tpbmcgbV9lbmNvZGVycworICAgICAgICAgICYgbV9kZWNv
ZGVycyBzaW5jZSB0aG9zZSBjb250YWluZXJzIGFyZSBtb2RpZmllZCBvbiB0aGUgYmFja2dyb3Vu
ZCB0aHJlYWQgYW5kIHRoaXMKKyAgICAgICAgICBmdW5jdGlvbiBpcyBjYWxsZWQgb24gdGhlIG1h
aW4gdGhyZWFkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjcy5oOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNyZWF0ZSk6CisgICAg
ICAgIC0gU3RvcCBjYWxsaW5nIHN0YXJ0TGlzdGVuaW5nRm9ySVBDKCkgb24gY29uc3RydWN0aW9u
IGFzIHdlIGRvbid0IHdhbnQgdG8gbGF1bmNoIHRoZSBHUFVQcm9jZXNzCisgICAgICAgIHVudGls
IGFuIGVuY29kZXIgLyBkZWNvZGVyIGlzIGNyZWF0ZWQuCisgICAgICAgIC0gRml4IGEgcHJlLWV4
aXN0aW5nIGlzc3VlIHdoZXJlIHRoZSBjbGFzcyBzdWJjbGFzc2VzIFRocmVhZFNhZmVSZWZDb3Vu
dGVkICh2aWEKKyAgICAgICAgICBUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkKSBhbmQg
eWV0IHdhcyB1c2luZyBzdGQ6OnVuaXF1ZV9wdHI8PiBpbnN0ZWFkIG9mCisgICAgICAgICAgUmVm
UHRyPD4uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAyMS0wNC0x
NiAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFBsYWNl
IHZlcnRpY2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9jayktZW5kIGVkZ2UgaW4gYWxsIHdy
aXRpbmcgbW9kZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAppbmRleCAxZmE5NDMxMGIxZDhmODIxZmY1Y2E4NDI2
ZWUyZDQ4MjRjOGQxNmZlLi45MWEwZmU5NGVmYjQzNmU0ZGVjMDExODQ3N2JlMDFmNjMyNDVhMWUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xp
YldlYlJUQ0NvZGVjcy5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9MaWJXZWJSVENNYWNyb3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KQEAgLTE2OCwxNSArMTY5LDQyIEBAIExpYldl
YlJUQ0NvZGVjczo6TGliV2ViUlRDQ29kZWNzKCkKIHsKIH0KIAotdm9pZCBMaWJXZWJSVENDb2Rl
Y3M6OnN0YXJ0TGlzdGVuaW5nRm9ySVBDKCkKK3ZvaWQgTGliV2ViUlRDQ29kZWNzOjplbnN1cmVH
UFVQcm9jZXNzQ29ubmVjdGlvbk9uTWFpblRocmVhZChMb2NrZXI8TG9jaz4mKQogewotICAgIEFT
U0VSVCghbV9jb25uZWN0aW9uKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKKyAgICBB
U1NFUlQobV9jb25uZWN0aW9uTG9jay5pc0hlbGQoKSk7CisgICAgaWYgKG1fY29ubmVjdGlvbikK
KyAgICAgICAgcmV0dXJuOworCiAgICAgYXV0byYgZ3B1Q29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7CiAgICAgZ3B1Q29ubmVj
dGlvbi5hZGRDbGllbnQoKnRoaXMpOwogICAgIG1fY29ubmVjdGlvbiA9IG1ha2VSZWYoZ3B1Q29u
bmVjdGlvbi5jb25uZWN0aW9uKCkpOwogICAgIG1fY29ubmVjdGlvbi0+YWRkVGhyZWFkTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgdGhpcyk7CiB9CiAKKy8vIE1heSBiZSBjYWxsZWQgb24gYW55IHRocmVhZC4KK3ZvaWQgTGli
V2ViUlRDQ29kZWNzOjplbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbkFuZERpc3BhdGNoVG9UaHJl
YWQoRnVuY3Rpb248dm9pZCgpPiYmIHRhc2spCit7CisgICAgbV9uZWVkc0dQVVByb2Nlc3NDb25u
ZWN0aW9uID0gdHJ1ZTsKKyAgICB7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9j
b25uZWN0aW9uTG9jayk7CisgICAgICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgICAgICBy
ZXR1cm4gZGlzcGF0Y2hUb1RocmVhZChXVEZNb3ZlKHRhc2spKTsKKyAgICB9CisgICAgZW5zdXJl
T25NYWluUnVuTG9vcChbdGhpcywgdGFzayA9IFdURk1vdmUodGFzayldKCkgbXV0YWJsZSB7Cisg
ICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9jb25uZWN0aW9uTG9jayk7CisgICAgICAg
IGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uT25NYWluVGhyZWFkKGxvY2tlcik7CisgICAgICAg
IGRpc3BhdGNoVG9UaHJlYWQoV1RGTW92ZSh0YXNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTGli
V2ViUlRDQ29kZWNzOjpncHVQcm9jZXNzQ29ubmVjdGlvbk1heU5vTG9uZ2VyQmVOZWVkZWQoKQor
eworICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKKyAgICBpZiAobV9lbmNvZGVycy5pc0Vt
cHR5KCkgJiYgbV9kZWNvZGVycy5pc0VtcHR5KCkpCisgICAgICAgIG1fbmVlZHNHUFVQcm9jZXNz
Q29ubmVjdGlvbiA9IGZhbHNlOworfQorCiBMaWJXZWJSVENDb2RlY3M6On5MaWJXZWJSVENDb2Rl
Y3MoKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTk2LDkgKzIyNCw4IEBAIHZv
aWQgTGliV2ViUlRDQ29kZWNzOjpzZXRDYWxsYmFja3MoYm9vbCB1c2VHUFVQcm9jZXNzKQogICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ0NvZGVjcygpOwogCiAjaWYgRU5BQkxF
KFZQOSkKLSAgICBhdXRvJiBncHVDb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAvLyBGSU1YRTogV2Ugc2hvdWxkIGRp
c2FibGUgVlA5VlRCIGlmIFZQOSBoYXJkd2FyZSBkZWNvZGluZyBpcyBlbmFibGVkIGJ1dCB0aGVy
ZSBpcyBubyBzdXBwb3J0IGZvciBpdC4KLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJX
ZWJSVENDb2RlY3MoKS5zZXRWUDlWVEJTdXBwb3J0KGdwdUNvbm5lY3Rpb24uaXNWUDlEZWNvZGVy
RW5hYmxlZCgpIHx8IGdwdUNvbm5lY3Rpb24uaXNWUFNXRGVjb2RlckVuYWJsZWQoKSk7CisgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDQ29kZWNzKCkuc2V0VlA5VlRCU3VwcG9y
dChQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNob3VsZEVuYWJsZVZQOURlY29kZXIoKSB8
fCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNob3VsZEVuYWJsZVZQOVNXRGVjb2Rlcigp
KTsKICNlbmRpZgogCiAgICAgd2VicnRjOjpzZXRWaWRlb0RlY29kZXJDYWxsYmFja3MoY3JlYXRl
VmlkZW9EZWNvZGVyLCByZWxlYXNlVmlkZW9EZWNvZGVyLCBkZWNvZGVWaWRlb0ZyYW1lLCByZWdp
c3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2spOwpAQCAtMjEyLDcgKzIzOSw4IEBAIExpYldlYlJU
Q0NvZGVjczo6RGVjb2RlciogTGliV2ViUlRDQ29kZWNzOjpjcmVhdGVEZWNvZGVyKFR5cGUgdHlw
ZSkKICAgICBkZWNvZGVyLT5pZGVudGlmaWVyID0gUlRDRGVjb2RlcklkZW50aWZpZXI6OmdlbmVy
YXRlVGhyZWFkU2FmZSgpOwogICAgIGRlY29kZXItPnR5cGUgPSB0eXBlOwogCi0gICAgZGlzcGF0
Y2hUb1RocmVhZChbdGhpcywgZGVjb2RlciA9IFdURk1vdmUoZGVjb2RlcildKCkgbXV0YWJsZSB7
CisgICAgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb25BbmREaXNwYXRjaFRvVGhyZWFkKFt0aGlz
LCBkZWNvZGVyID0gV1RGTW92ZShkZWNvZGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jayhtX2Nvbm5lY3Rpb25Mb2NrKTsKICAgICAgICAgZGVjb2Rlci0+Y29u
bmVjdGlvbiA9IG1fY29ubmVjdGlvbjsKICAgICAgICAgY3JlYXRlUmVtb3RlRGVjb2RlcigqZGVj
b2RlciwgKm1fY29ubmVjdGlvbik7CiAKQEAgLTIyOCw4ICsyNTYsMTAgQEAgaW50MzJfdCBMaWJX
ZWJSVENDb2RlY3M6OnJlbGVhc2VEZWNvZGVyKERlY29kZXImIGRlY29kZXIpCiAgICAgQVNTRVJU
KCFkZWNvZGVyLmRlY29kZWRJbWFnZUNhbGxiYWNrKTsKICAgICBkaXNwYXRjaFRvVGhyZWFkKFt0
aGlzLCBkZWNvZGVySWRlbnRpZmllciA9IGRlY29kZXIuaWRlbnRpZmllcl0gewogICAgICAgICBB
U1NFUlQobV9kZWNvZGVycy5jb250YWlucyhkZWNvZGVySWRlbnRpZmllcikpOwotICAgICAgICBp
ZiAoYXV0byBkZWNvZGVyID0gbV9kZWNvZGVycy50YWtlKGRlY29kZXJJZGVudGlmaWVyKSkKKyAg
ICAgICAgaWYgKGF1dG8gZGVjb2RlciA9IG1fZGVjb2RlcnMudGFrZShkZWNvZGVySWRlbnRpZmll
cikpIHsKICAgICAgICAgICAgIGRlY29kZXItPmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Okxp
YldlYlJUQ0NvZGVjc1Byb3h5OjpSZWxlYXNlRGVjb2RlciB7IGRlY29kZXJJZGVudGlmaWVyIH0s
IDApOworICAgICAgICAgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVk
KCk7CisgICAgICAgIH0KICAgICB9KTsKICAgICByZXR1cm4gMDsKIH0KQEAgLTMzMSw3ICszNjEs
NyBAQCBMaWJXZWJSVENDb2RlY3M6OkVuY29kZXIqIExpYldlYlJUQ0NvZGVjczo6Y3JlYXRlRW5j
b2RlcihUeXBlIHR5cGUsIGNvbnN0IHN0ZDo6bQogICAgIGZvciAoYXV0byYga2V5VmFsdWUgOiBm
b3JtYXRQYXJhbWV0ZXJzKQogICAgICAgICBwYXJhbWV0ZXJzLmFwcGVuZChzdGQ6Om1ha2VfcGFp
cihTdHJpbmc6OmZyb21VVEY4KGtleVZhbHVlLmZpcnN0LmRhdGEoKSwga2V5VmFsdWUuZmlyc3Qu
bGVuZ3RoKCkpLCBTdHJpbmc6OmZyb21VVEY4KGtleVZhbHVlLnNlY29uZC5kYXRhKCksIGtleVZh
bHVlLnNlY29uZC5sZW5ndGgoKSkpKTsKIAotICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIGVu
Y29kZXIgPSBXVEZNb3ZlKGVuY29kZXIpLCB0eXBlLCBwYXJhbWV0ZXJzID0gV1RGTW92ZShwYXJh
bWV0ZXJzKV0oKSBtdXRhYmxlIHsKKyAgICBlbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbkFuZERp
c3BhdGNoVG9UaHJlYWQoW3RoaXMsIGVuY29kZXIgPSBXVEZNb3ZlKGVuY29kZXIpLCB0eXBlLCBw
YXJhbWV0ZXJzID0gV1RGTW92ZShwYXJhbWV0ZXJzKV0oKSBtdXRhYmxlIHsKICAgICAgICAgTG9j
a0hvbGRlciBob2xkZXIobV9jb25uZWN0aW9uTG9jayk7CiAgICAgICAgIGVuY29kZXItPmNvbm5l
Y3Rpb24gPSBtX2Nvbm5lY3Rpb247CiAgICAgICAgIGVuY29kZXItPmNvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpDcmVhdGVFbmNvZGVyIHsgZW5jb2Rlci0+
aWRlbnRpZmllciwgZm9ybWF0TmFtZUZyb21Db2RlY1R5cGUodHlwZSksIHBhcmFtZXRlcnMsIFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViUlRDSDI2NExvd0xhdGVu
Y3lFbmNvZGVyRW5hYmxlZCgpIH0sIDApOwpAQCAtMzUxLDYgKzM4MSw3IEBAIGludDMyX3QgTGli
V2ViUlRDQ29kZWNzOjpyZWxlYXNlRW5jb2RlcihFbmNvZGVyJiBlbmNvZGVyKQogICAgICAgICBB
U1NFUlQobV9lbmNvZGVycy5jb250YWlucyhlbmNvZGVySWRlbnRpZmllcikpOwogICAgICAgICBh
dXRvIGVuY29kZXIgPSBtX2VuY29kZXJzLnRha2UoZW5jb2RlcklkZW50aWZpZXIpOwogICAgICAg
ICBlbmNvZGVyLT5jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94
eTo6UmVsZWFzZUVuY29kZXIgeyBlbmNvZGVySWRlbnRpZmllciB9LCAwKTsKKyAgICAgICAgZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVkKCk7CiAgICAgfSk7CiAgICAgcmV0
dXJuIDA7CiB9CkBAIC00NjAsMTUgKzQ5MSwxMyBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6ZGlz
cGF0Y2hUb1RocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCiAKIHZvaWQgTGliV2Vi
UlRDQ29kZWNzOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0
aW9uJikKIHsKLSAgICBhdXRvJiBncHVDb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKLSAgICBncHVDb25uZWN0aW9uLmFkZENs
aWVudCgqdGhpcyk7Ci0gICAgewotICAgICAgICBhdXRvIGxvY2sgPSBob2xkTG9jayhtX2Nvbm5l
Y3Rpb25Mb2NrKTsKLSAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1vdmVUaHJlYWRNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsK
LSAgICAgICAgbV9jb25uZWN0aW9uID0gbWFrZVJlZihncHVDb25uZWN0aW9uLmNvbm5lY3Rpb24o
KSk7Ci0gICAgICAgIG1fY29ubmVjdGlvbi0+YWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7Ci0gICAg
fQorICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV9jb25uZWN0aW9uTG9jayk7CisgICAgc3RkOjpleGNoYW5nZShtX2Nvbm5lY3Rpb24sIG51
bGxwdHIpLT5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkxpYldlYlJUQ0Nv
ZGVjczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKyAgICBpZiAoIW1fbmVlZHNHUFVQcm9jZXNz
Q29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOwogCisgICAgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb25Pbk1haW5UaHJlYWQobG9ja2VyKTsKICAgICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzXSgp
IHsKICAgICAgICAgLy8gTG9jayBldmVyeXRoaW5nIHNvIHRoYXQgd2UgY2FuIHVwZGF0ZSBlbmNv
ZGVyL2RlY29kZXIgY29ubmVjdGlvbi4KICAgICAgICAgTG9ja0hvbGRlciBob2xkZXIobV9jb25u
ZWN0aW9uTG9jayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL0xpYldlYlJUQ0NvZGVjcy5oCmluZGV4IGMyODc2MmIyNGM4OWUxNDJiNWRlOWNlNmYxNzc0
MmQ1NDg2ZDNjOWMuLjAyMTVhNzM0YTcwZTg3NWI0MTBhOTZmOThhMTI2YTY2NWQ3ZTEzNGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJU
Q0NvZGVjcy5oCkBAIC02MiwxMSArNjIsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIExp
YldlYlJUQ0NvZGVjcyA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNl
aXZlclJlZkNvdW50ZWQsIHB1YmxpYyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50IHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPExpYldlYlJUQ0NvZGVjcz4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUmVmPExpYldlYlJU
Q0NvZGVjcz4gY3JlYXRlKCkKICAgICB7Ci0gICAgICAgIGF1dG8gaW5zdGFuY2UgPSBzdGQ6OnVu
aXF1ZV9wdHI8TGliV2ViUlRDQ29kZWNzPihuZXcgTGliV2ViUlRDQ29kZWNzKTsKLSAgICAgICAg
aW5zdGFuY2UtPnN0YXJ0TGlzdGVuaW5nRm9ySVBDKCk7Ci0gICAgICAgIHJldHVybiBpbnN0YW5j
ZTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTGliV2ViUlRDQ29kZWNzKTsKICAgICB9
CiAgICAgfkxpYldlYlJUQ0NvZGVjcygpOwogCkBAIC0xMjUsNyArMTIzLDkgQEAgcHVibGljOgog
CiBwcml2YXRlOgogICAgIExpYldlYlJUQ0NvZGVjcygpOwotICAgIHZvaWQgc3RhcnRMaXN0ZW5p
bmdGb3JJUEMoKTsKKyAgICB2b2lkIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uQW5kRGlzcGF0
Y2hUb1RocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYpOworICAgIHZvaWQgZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb25Pbk1haW5UaHJlYWQoTG9ja2VyPExvY2s+Jik7CisgICAgdm9pZCBncHVQcm9j
ZXNzQ29ubmVjdGlvbk1heU5vTG9uZ2VyQmVOZWVkZWQoKTsKIAogICAgIHZvaWQgZmFpbGVkRGVj
b2RpbmcoUlRDRGVjb2RlcklkZW50aWZpZXIpOwogICAgIHZvaWQgY29tcGxldGVkRGVjb2Rpbmco
UlRDRGVjb2RlcklkZW50aWZpZXIsIHVpbnQzMl90IHRpbWVTdGFtcCwgV2ViQ29yZTo6UmVtb3Rl
VmlkZW9TYW1wbGUmJik7CkBAIC0xNDQsNiArMTQ0LDggQEAgcHJpdmF0ZToKIAogICAgIEhhc2hN
YXA8UlRDRW5jb2RlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPj4gbV9lbmNv
ZGVyczsKIAorICAgIHN0ZDo6YXRvbWljPGJvb2w+IG1fbmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlv
bjsKKwogICAgIExvY2sgbV9jb25uZWN0aW9uTG9jazsKICAgICBSZWZQdHI8SVBDOjpDb25uZWN0
aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDY0NmU1ZWQwODk3MTYxM2FmYjQxNTQ4MDc3
ZmUzMTQ4YmQxOGFkNDMuLjdjOGE2M2ZkMjFiMzBlYzc4OGVlODU2YmYyZDIyODdmOGFkNGJiMmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtNjIxLDcgKzYyMSw3IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIFJlZlB0cjxHUFVQcm9jZXNz
Q29ubmVjdGlvbj4gbV9ncHVQcm9jZXNzQ29ubmVjdGlvbjsKICNpZiBQTEFURk9STShDT0NPQSkg
JiYgVVNFKExJQldFQlJUQykKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDQ29kZWNzPiBt
X2xpYldlYlJUQ0NvZGVjczsKKyAgICBSZWZQdHI8TGliV2ViUlRDQ29kZWNzPiBtX2xpYldlYlJU
Q0NvZGVjczsKICNlbmRpZgogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426354</attachid>
            <date>2021-04-17 15:51:38 -0700</date>
            <delta_ts>2021-04-17 15:54:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224704-20210417155137.patch</filename>
            <type>text/plain</type>
            <size>14381</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUzMDZjMTk5NTBiMTJlZGM1
YTA0NGRmOTI5MjRjOWZjYzU4NjYwNmMuLjQ0NDE5YTFhNTEyMzRlN2YyYzdjOTRjYjQ5MmMxMDNl
YzU4MGI3MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODAgQEAKKzIwMjEtMDQtMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBMaWJXZWJSVENDb2RlY3MgZWFnZXJs
eSBsYXVuY2hlcyB0aGUgR1BVUHJvY2VzcyBhbmQgYWx3YXlzIHJlbGF1bmNoZXMgaXQgb24gZXhp
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NzA0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgTGliV2ViUlRD
Q29kZWNzIGVhZ2VybHkgbGF1bmNoZXMgdGhlIEdQVVByb2Nlc3MgYW5kIGFsd2F5cyByZWxhdW5j
aGVzIGl0IG9uIGV4aXQuIFRoZSBHUFVQcm9jZXNzCisgICAgICAgIHNob3VsZCBvbmx5IGJlIChy
ZS0pbGF1bmNoZWQgd2hlbiBuZWVkZWQuIEluIHRoZSBjYXNlIG9mIHRoZSBMaWJXZWJSVENDb2Rl
Y3MsIGl0IHNlZW1zIGl0IG9ubHkKKyAgICAgICAgbmVlZHMgYSBHUFVQcm9jZXNzIGNvbm5lY3Rp
b24gaWYgaXQgaGFzIG1fZGVjb2RlcnMgLyBtX2VuY29kZXJzIGFyZSBub24tZW1wdHkuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjplbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbk9u
TWFpblRocmVhZCk6CisgICAgICAgIFJlbmFtZWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKSB0byBl
bnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbk9uTWFpblRocmVhZCgpLiBPbmx5IGRvIHRoZQorICAg
ICAgICBjb25uZWN0aW9uIGluaXRpYWxpemF0aW9uIGlmIG1fY29ubmVjdGlvbiBpcyBub3QgbnVs
bC4KKworICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uQW5kRGlzcGF0Y2hUb1RocmVhZCk6CisgICAgICAgIFZlcnNpb24gb2YgZGlzcGF0
Y2hUb1RocmVhZCgpIHdoaWNoIG1ha2VzIHN1cmUgdGhhdCB0aGUgR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24gaXMgaW5pdGlhbGl6ZWQKKyAgICAgICAgYmVmb3JlIGRpc3BhdGNoaW5nLiBJdCBpcyB1c2Vk
IHdoZW4gY29uc3RydWN0aW5nIGEgZGVjb2RlciAvIGVuY29kZXIuIEl0IHNldHMgdGhlCisgICAg
ICAgIG1fbmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlvbiBmbGFnIHRvIHRydWUgdG8gaW5kaWNhdGUg
c29tZW9uZSBuZWVkZWQgdGhlIGNvbm5lY3Rpb24KKyAgICAgICAgKGFuZCB0aGF0IHdlIHNob3Vs
ZCByZS1pbml0aWF0ZSBpdCBpbiBjYXNlIGl0IGlzIHNldmVyZWQpLiBJZiB0aGUgY29ubmVjdGlv
biBpcyBhbHJlYWR5CisgICAgICAgIGluaXRpYWxpemVkLCB0aGVuIGl0IGRvZXMgYSBzaW1wbGUg
ZGlzcGF0Y2hUb1RocmVhZCgpLiBJZiB0aGUgY29ubmVjdGlvbiBpcyBub3QgaW5pdGlhbGl6ZWQK
KyAgICAgICAgeWV0LCB0aGVuIHdlIGhhdmUgdG8gaG9wIHRvIHRoZSBtYWluIHRocmVhZCAoaWYg
bm90IGFscmVhZHkgb24gaXQpIHRvIGluaXRpYWxpemUgdGhlCisgICAgICAgIEdQVVByb2Nlc3ND
b25uZWN0aW9uLgorCisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6Z3B1UHJvY2Vz
c0Nvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVkKToKKyAgICAgICAgRnVuY3Rpb24gdGhhdCBn
ZXRzIGNhbGxlZCBvbiB0aGUgYmFja2dyb3VuZCB0aHJlYWQgZXZlcnkgdGltZSBhIGVuY29kZXIg
LyBkZWNvZGVyIGlzCisgICAgICAgIHJlbW92ZWQuIEl0cyBwdXJwb3NlIGlzIHRvIHNldCBtX25l
ZWRzR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gYmFjayB0byBmYWxzZSBvbmNlIHdlIG5vCisgICAgICAg
IGxvbmdlciBoYXZlIGFueSBlbmNvZGVyIC8gZGVjb2Rlciwgc28gdGhhdCBncHVQcm9jZXNzQ29u
bmVjdGlvbkRpZENsb3NlKCkgZG9lcyBub3QKKyAgICAgICAgYXR0ZW1wdCB0byByZWxhdW5jaCB0
aGUgR1BVUHJvY2VzcyBpZiBpdCBnb2VzIGF3YXkuCisKKyAgICAgICAgTGliV2ViUlRDQ29kZWNz
OjpzZXRDYWxsYmFja3MoKToKKyAgICAgICAgQ2hlY2sgaWYgVlA5U3VwcG9ydCBpcyBlbmFibGVk
IHZpYSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIgaW5zdGVhZCBvZiBmcm9tIHRoZQorICAg
ICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbi4gVGhpcyBhdm9pZHMgZWFnZXJseSBsYXVuY2hpbmcg
dGhlIEdQVVByb2Nlc3MuIFRoZQorICAgICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbiBjb25zdHJ1
Y3RvciBnZXRzIGl0cyBWUHggc3VwcG9ydCBpbmZvcm1hdGlvbiBmcm9tCisgICAgICAgIFBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlciBhbnl3YXkuIFRoZSBXZWJQYWdlIGNvbnN0cnVjdG9yIGlz
IHdoZXJlIHRoZSBWUHggc3VwcG9ydAorICAgICAgICBpbmZvcm1hdGlvbiBjb21lcyBmcm9tIGFu
ZCBpdCB1cGRhdGVzIHRoZSBWUHggZmxhZ3Mgb24gdGhlIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlci4KKyAgICAgICAgVGhlIFdlYlBhZ2UgY29uc3RydWN0b3Igb25seSB1cGRhdGVzIHRoZSBW
UHggZmxhZ3Mgb24gdGhlIEdQVVByb2Nlc3NDb25uZWN0aW9uIGlmIHRoaXMKKyAgICAgICAgY29u
bmVjdGlvbiBhbHJlYWR5IGV4aXN0cyB0byBhdm9pZCBlYWdlcmx5IGxhdW5jaGluZyB0aGUgR1BV
UHJvY2Vzcy4KKworICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNyZWF0ZURlY29k
ZXIpOgorICAgICAgICAtIENhbGwgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb25BbmREaXNwYXRj
aFRvVGhyZWFkKCkgaW5zdGVhZCBvZiBkaXNwYXRjaFRvVGhyZWFkKCkKKyAgICAgICAgICB0byBt
YWtlIHN1cmUgd2UgaGF2ZSBhIEdQVVByb2Nlc3NDb25uZWN0aW9uIGJlZm9yZSBjcmVhdGluZyB0
aGUgZGVjb2Rlci4KKyAgICAgICAgLSBBZGQgYSBtaXNzaW5nIGxvY2tlciBmb3IgbV9jb25uZWN0
aW9uTG9jayBvbiB0aGUgYmFja2dyb3VuZCB0aHJlYWQgc2luY2UgaXQgaXMgdXNpbmcKKyAgICAg
ICAgICBtX2Nvbm5lY3Rpb24gKHByZS1leGlzdGluZyBidWcpLgorCisgICAgICAgIChXZWJLaXQ6
OkxpYldlYlJUQ0NvZGVjczo6cmVsZWFzZURlY29kZXIpOgorICAgICAgICBDYWxsIGdwdVByb2Nl
c3NDb25uZWN0aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZCgpIHRvIHJlc2V0IHRoZSBtX25lZWRzR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24KKyAgICAgICAgZmxhZyB0byBmYWxzZSBpZiBuZWNlc3NhcnkuCisK
KyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjcmVhdGVFbmNvZGVyKToKKyAgICAg
ICAgLSBDYWxsIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uQW5kRGlzcGF0Y2hUb1RocmVhZCgp
IGluc3RlYWQgb2YgZGlzcGF0Y2hUb1RocmVhZCgpCisgICAgICAgICAgdG8gbWFrZSBzdXJlIHdl
IGhhdmUgYSBHUFVQcm9jZXNzQ29ubmVjdGlvbiBiZWZvcmUgY3JlYXRpbmcgdGhlIGVuY29kZXIu
CisKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpyZWxlYXNlRW5jb2Rlcik6Cisg
ICAgICAgIENhbGwgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVkKCkgdG8g
cmVzZXQgdGhlIG1fbmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlvbgorICAgICAgICBmbGFnIHRvIGZh
bHNlIGlmIG5lY2Vzc2FyeS4KKworICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6Omdw
dVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UpOgorICAgICAgICAtIENsZWFyIG1fY29ubmVjdGlv
biB3aGVuIHRoZSBHUFVQcm9jZXNzIGNvbm5lY3Rpb24gaXMgc2V2ZXJlZCAobm90ZSB0aGF0IHRo
aXMgZG9lcyBub3QKKyAgICAgICAgICBuZWNlc3NhcmlseSBpbmRpY2F0ZSBhIGNyYXNoIHNpbmNl
IHRoZSBHUFVQcm9jZXNzIGV4aXRzIHdoZW4gaWRsZSBhbmQgdW5kZXIgbWVtb3J5CisgICAgICAg
ICAgcHJlc3N1cmUpLgorICAgICAgICAtIE9ubHkgcmUtaW5pdGlhdGUgdGhlIEdQVVByb2Nlc3Mg
Y29ubmVjdGlvbiBpZiBtX25lZWRzR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gaXMgdHJ1ZSwKKyAgICAg
ICAgICBtZWFuaW5nIHRoYXQgd2UgaGF2ZSBlbmNvZGVycy9kZWNvZGVycy4gSSB1c2UgdGhpcyBm
bGFnIGluc3RlYWQgb2YgY2hlY2tpbmcgbV9lbmNvZGVycworICAgICAgICAgICYgbV9kZWNvZGVy
cyBzaW5jZSB0aG9zZSBjb250YWluZXJzIGFyZSBtb2RpZmllZCBvbiB0aGUgYmFja2dyb3VuZCB0
aHJlYWQgYW5kIHRoaXMKKyAgICAgICAgICBmdW5jdGlvbiBpcyBjYWxsZWQgb24gdGhlIG1haW4g
dGhyZWFkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVj
cy5oOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNyZWF0ZSk6CisgICAgICAg
IC0gU3RvcCBjYWxsaW5nIHN0YXJ0TGlzdGVuaW5nRm9ySVBDKCkgb24gY29uc3RydWN0aW9uIGFz
IHdlIGRvbid0IHdhbnQgdG8gbGF1bmNoIHRoZSBHUFVQcm9jZXNzCisgICAgICAgIHVudGlsIGFu
IGVuY29kZXIgLyBkZWNvZGVyIGlzIGNyZWF0ZWQuCisgICAgICAgIC0gRml4IGEgcHJlLWV4aXN0
aW5nIGlzc3VlIHdoZXJlIHRoZSBjbGFzcyBzdWJjbGFzc2VzIFRocmVhZFNhZmVSZWZDb3VudGVk
ICh2aWEKKyAgICAgICAgICBUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkKSBhbmQgeWV0
IHdhcyB1c2luZyBzdGQ6OnVuaXF1ZV9wdHI8PiBpbnN0ZWFkIG9mCisgICAgICAgICAgUmVmUHRy
PD4uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAyMS0wNC0xNyAg
U2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzIHRvIFNldHRpbmdzIChQYXJ0IDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9Mb2NrZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oCmluZGV4IDk4MzkwNmVkMWZl
Mjk2MDViZmEwNzNjODY2MzM1N2M2ODY1YTI3Y2EuLjFmMzMxMTAzN2E5ZDQ1MTI3MGI4ZDc5NzJh
ZWNmZmU5ZGRiMmVjZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oCkBAIC04Myw2ICs4Myw4IEBAIHB1YmxpYzoKICAgICAg
ICAgfQogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KKworICAgIFQqIGxvY2thYmxlKCkg
eyByZXR1cm4gbV9sb2NrYWJsZTsgfQogICAgIAogICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2wo
KSBjb25zdCB7IHJldHVybiAhIW1fbG9ja2FibGU7IH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCmluZGV4
IDFmYTk0MzEwYjFkOGY4MjFmZjVjYTg0MjZlZTJkNDgyNGM4ZDE2ZmUuLjZkMjE3OThkZGU0YzJk
OGJiNTVmMGVjM2FmNjE1NDY3MmJiNzhlOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcApAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jvcy5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRl
b1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgpA
QCAtMTYzLDIwICsxNjQsNTIgQEAgc3RhdGljIHZvaWQgc2V0RW5jb2RlUmF0ZXNDYWxsYmFjayh3
ZWJydGM6OldlYktpdFZpZGVvRW5jb2RlciBlbmNvZGVyLCBjb25zdCB3ZWIKICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENDb2RlY3MoKS5zZXRFbmNvZGVSYXRlcygqc3RhdGlj
X2Nhc3Q8TGliV2ViUlRDQ29kZWNzOjpFbmNvZGVyKj4oZW5jb2RlciksIGJpdFJhdGUsIGZyYW1l
UmF0ZSk7CiB9CiAKK3N0YXRpYyBSZWY8TGliV2ViUlRDQ29kZWNzPiBMaWJXZWJSVENDb2RlY3M6
OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTGliV2ViUlRDQ29kZWNzKTsK
K30KKwogTGliV2ViUlRDQ29kZWNzOjpMaWJXZWJSVENDb2RlY3MoKQogICAgIDogbV9xdWV1ZShX
b3JrUXVldWU6OmNyZWF0ZSgiTGliV2ViUlRDQ29kZWNzIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJp
YWwsIFdvcmtRdWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpKQogewogfQogCi12b2lkIExpYldl
YlJUQ0NvZGVjczo6c3RhcnRMaXN0ZW5pbmdGb3JJUEMoKQordm9pZCBMaWJXZWJSVENDb2RlY3M6
OmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uT25NYWluVGhyZWFkKExvY2tlcjxMb2NrPiYgbG9j
a2VyKQogewotICAgIEFTU0VSVCghbV9jb25uZWN0aW9uKTsKKyAgICBBU1NFUlQoaXNNYWluUnVu
TG9vcCgpKTsKKyAgICBBU1NFUlRfVU5VU0VEKGxvY2tlciwgbG9ja2VyLmxvY2thYmxlKCkgPT0g
Jm1fY29ubmVjdGlvbkxvY2spOworICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVy
bjsKKwogICAgIGF1dG8mIGdwdUNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOwogICAgIGdwdUNvbm5lY3Rpb24uYWRkQ2xpZW50
KCp0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb24gPSBtYWtlUmVmKGdwdUNvbm5lY3Rpb24uY29ubmVj
dGlvbigpKTsKICAgICBtX2Nvbm5lY3Rpb24tPmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNz
YWdlczo6TGliV2ViUlRDQ29kZWNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOwogfQog
CisvLyBNYXkgYmUgY2FsbGVkIG9uIGFueSB0aHJlYWQuCit2b2lkIExpYldlYlJUQ0NvZGVjczo6
ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb25BbmREaXNwYXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZv
aWQoKT4mJiB0YXNrKQoreworICAgIG1fbmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlvbiA9IHRydWU7
CisgICAgeworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fY29ubmVjdGlvbkxvY2sp
OworICAgICAgICBpZiAobV9jb25uZWN0aW9uKQorICAgICAgICAgICAgcmV0dXJuIGRpc3BhdGNo
VG9UaHJlYWQoV1RGTW92ZSh0YXNrKSk7CisgICAgfQorICAgIGVuc3VyZU9uTWFpblJ1bkxvb3Ao
W3RoaXMsIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSgpIG11dGFibGUgeworICAgICAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fY29ubmVjdGlvbkxvY2spOworICAgICAgICBlbnN1cmVHUFVQcm9j
ZXNzQ29ubmVjdGlvbk9uTWFpblRocmVhZChsb2NrZXIpOworICAgICAgICBkaXNwYXRjaFRvVGhy
ZWFkKFdURk1vdmUodGFzaykpOworICAgIH0pOworfQorCit2b2lkIExpYldlYlJUQ0NvZGVjczo6
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVkKCkKK3sKKyAgICBBU1NFUlQo
IWlzTWFpblJ1bkxvb3AoKSk7CisgICAgaWYgKG1fZW5jb2RlcnMuaXNFbXB0eSgpICYmIG1fZGVj
b2RlcnMuaXNFbXB0eSgpKQorICAgICAgICBtX25lZWRzR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gPSBm
YWxzZTsKK30KKwogTGliV2ViUlRDQ29kZWNzOjp+TGliV2ViUlRDQ29kZWNzKCkKIHsKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE5Niw5ICsyMjksOCBAQCB2b2lkIExpYldlYlJUQ0Nv
ZGVjczo6c2V0Q2FsbGJhY2tzKGJvb2wgdXNlR1BVUHJvY2VzcykKICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5saWJXZWJSVENDb2RlY3MoKTsKIAogI2lmIEVOQUJMRShWUDkpCi0gICAgYXV0
byYgZ3B1Q29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nl
c3NDb25uZWN0aW9uKCk7CiAgICAgLy8gRklNWEU6IFdlIHNob3VsZCBkaXNhYmxlIFZQOVZUQiBp
ZiBWUDkgaGFyZHdhcmUgZGVjb2RpbmcgaXMgZW5hYmxlZCBidXQgdGhlcmUgaXMgbm8gc3VwcG9y
dCBmb3IgaXQuCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDQ29kZWNzKCku
c2V0VlA5VlRCU3VwcG9ydChncHVDb25uZWN0aW9uLmlzVlA5RGVjb2RlckVuYWJsZWQoKSB8fCBn
cHVDb25uZWN0aW9uLmlzVlBTV0RlY29kZXJFbmFibGVkKCkpOworICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmxpYldlYlJUQ0NvZGVjcygpLnNldFZQOVZUQlN1cHBvcnQoUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyOjpzaG91bGRFbmFibGVWUDlEZWNvZGVyKCkgfHwgUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyOjpzaG91bGRFbmFibGVWUDlTV0RlY29kZXIoKSk7CiAjZW5kaWYKIAog
ICAgIHdlYnJ0Yzo6c2V0VmlkZW9EZWNvZGVyQ2FsbGJhY2tzKGNyZWF0ZVZpZGVvRGVjb2Rlciwg
cmVsZWFzZVZpZGVvRGVjb2RlciwgZGVjb2RlVmlkZW9GcmFtZSwgcmVnaXN0ZXJEZWNvZGVDb21w
bGV0ZUNhbGxiYWNrKTsKQEAgLTIxMiw3ICsyNDQsOCBAQCBMaWJXZWJSVENDb2RlY3M6OkRlY29k
ZXIqIExpYldlYlJUQ0NvZGVjczo6Y3JlYXRlRGVjb2RlcihUeXBlIHR5cGUpCiAgICAgZGVjb2Rl
ci0+aWRlbnRpZmllciA9IFJUQ0RlY29kZXJJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUo
KTsKICAgICBkZWNvZGVyLT50eXBlID0gdHlwZTsKIAotICAgIGRpc3BhdGNoVG9UaHJlYWQoW3Ro
aXMsIGRlY29kZXIgPSBXVEZNb3ZlKGRlY29kZXIpXSgpIG11dGFibGUgeworICAgIGVuc3VyZUdQ
VVByb2Nlc3NDb25uZWN0aW9uQW5kRGlzcGF0Y2hUb1RocmVhZChbdGhpcywgZGVjb2RlciA9IFdU
Rk1vdmUoZGVjb2RlcildKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV9jb25uZWN0aW9uTG9jayk7CiAgICAgICAgIGRlY29kZXItPmNvbm5lY3Rpb24gPSBtX2Nv
bm5lY3Rpb247CiAgICAgICAgIGNyZWF0ZVJlbW90ZURlY29kZXIoKmRlY29kZXIsICptX2Nvbm5l
Y3Rpb24pOwogCkBAIC0yMjgsOCArMjYxLDEwIEBAIGludDMyX3QgTGliV2ViUlRDQ29kZWNzOjpy
ZWxlYXNlRGVjb2RlcihEZWNvZGVyJiBkZWNvZGVyKQogICAgIEFTU0VSVCghZGVjb2Rlci5kZWNv
ZGVkSW1hZ2VDYWxsYmFjayk7CiAgICAgZGlzcGF0Y2hUb1RocmVhZChbdGhpcywgZGVjb2Rlcklk
ZW50aWZpZXIgPSBkZWNvZGVyLmlkZW50aWZpZXJdIHsKICAgICAgICAgQVNTRVJUKG1fZGVjb2Rl
cnMuY29udGFpbnMoZGVjb2RlcklkZW50aWZpZXIpKTsKLSAgICAgICAgaWYgKGF1dG8gZGVjb2Rl
ciA9IG1fZGVjb2RlcnMudGFrZShkZWNvZGVySWRlbnRpZmllcikpCisgICAgICAgIGlmIChhdXRv
IGRlY29kZXIgPSBtX2RlY29kZXJzLnRha2UoZGVjb2RlcklkZW50aWZpZXIpKSB7CiAgICAgICAg
ICAgICBkZWNvZGVyLT5jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQ
cm94eTo6UmVsZWFzZURlY29kZXIgeyBkZWNvZGVySWRlbnRpZmllciB9LCAwKTsKKyAgICAgICAg
ICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZCgpOworICAgICAgICB9
CiAgICAgfSk7CiAgICAgcmV0dXJuIDA7CiB9CkBAIC0zMzEsNyArMzY2LDcgQEAgTGliV2ViUlRD
Q29kZWNzOjpFbmNvZGVyKiBMaWJXZWJSVENDb2RlY3M6OmNyZWF0ZUVuY29kZXIoVHlwZSB0eXBl
LCBjb25zdCBzdGQ6Om0KICAgICBmb3IgKGF1dG8mIGtleVZhbHVlIDogZm9ybWF0UGFyYW1ldGVy
cykKICAgICAgICAgcGFyYW1ldGVycy5hcHBlbmQoc3RkOjptYWtlX3BhaXIoU3RyaW5nOjpmcm9t
VVRGOChrZXlWYWx1ZS5maXJzdC5kYXRhKCksIGtleVZhbHVlLmZpcnN0Lmxlbmd0aCgpKSwgU3Ry
aW5nOjpmcm9tVVRGOChrZXlWYWx1ZS5zZWNvbmQuZGF0YSgpLCBrZXlWYWx1ZS5zZWNvbmQubGVu
Z3RoKCkpKSk7CiAKLSAgICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBlbmNvZGVyID0gV1RGTW92
ZShlbmNvZGVyKSwgdHlwZSwgcGFyYW1ldGVycyA9IFdURk1vdmUocGFyYW1ldGVycyldKCkgbXV0
YWJsZSB7CisgICAgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb25BbmREaXNwYXRjaFRvVGhyZWFk
KFt0aGlzLCBlbmNvZGVyID0gV1RGTW92ZShlbmNvZGVyKSwgdHlwZSwgcGFyYW1ldGVycyA9IFdU
Rk1vdmUocGFyYW1ldGVycyldKCkgbXV0YWJsZSB7CiAgICAgICAgIExvY2tIb2xkZXIgaG9sZGVy
KG1fY29ubmVjdGlvbkxvY2spOwogICAgICAgICBlbmNvZGVyLT5jb25uZWN0aW9uID0gbV9jb25u
ZWN0aW9uOwogICAgICAgICBlbmNvZGVyLT5jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJX
ZWJSVENDb2RlY3NQcm94eTo6Q3JlYXRlRW5jb2RlciB7IGVuY29kZXItPmlkZW50aWZpZXIsIGZv
cm1hdE5hbWVGcm9tQ29kZWNUeXBlKHR5cGUpLCBwYXJhbWV0ZXJzLCBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlJUQ0gyNjRMb3dMYXRlbmN5RW5jb2RlckVuYWJs
ZWQoKSB9LCAwKTsKQEAgLTM1MSw2ICszODYsNyBAQCBpbnQzMl90IExpYldlYlJUQ0NvZGVjczo6
cmVsZWFzZUVuY29kZXIoRW5jb2RlciYgZW5jb2RlcikKICAgICAgICAgQVNTRVJUKG1fZW5jb2Rl
cnMuY29udGFpbnMoZW5jb2RlcklkZW50aWZpZXIpKTsKICAgICAgICAgYXV0byBlbmNvZGVyID0g
bV9lbmNvZGVycy50YWtlKGVuY29kZXJJZGVudGlmaWVyKTsKICAgICAgICAgZW5jb2Rlci0+Y29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OlJlbGVhc2VFbmNv
ZGVyIHsgZW5jb2RlcklkZW50aWZpZXIgfSwgMCk7CisgICAgICAgIGdwdVByb2Nlc3NDb25uZWN0
aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZCgpOwogICAgIH0pOwogICAgIHJldHVybiAwOwogfQpAQCAt
NDYwLDE1ICs0OTYsMTMgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3M6OmRpc3BhdGNoVG9UaHJlYWQo
RnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQogCiB2b2lkIExpYldlYlJUQ0NvZGVjczo6Z3B1
UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYpCiB7Ci0gICAg
YXV0byYgZ3B1Q29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVBy
b2Nlc3NDb25uZWN0aW9uKCk7Ci0gICAgZ3B1Q29ubmVjdGlvbi5hZGRDbGllbnQoKnRoaXMpOwot
ICAgIHsKLSAgICAgICAgYXV0byBsb2NrID0gaG9sZExvY2sobV9jb25uZWN0aW9uTG9jayk7Ci0g
ICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Ci0gICAgICAgIG1fY29u
bmVjdGlvbiA9IG1ha2VSZWYoZ3B1Q29ubmVjdGlvbi5jb25uZWN0aW9uKCkpOwotICAgICAgICBt
X2Nvbm5lY3Rpb24tPmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6TGliV2ViUlRD
Q29kZWNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMpOwotICAgIH0KKyAgICBBU1NFUlQo
aXNNYWluUnVuTG9vcCgpKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fY29ubmVjdGlv
bkxvY2spOworICAgIHN0ZDo6ZXhjaGFuZ2UobV9jb25uZWN0aW9uLCBudWxscHRyKS0+cmVtb3Zl
VGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSk7CisgICAgaWYgKCFtX25lZWRzR1BVUHJvY2Vzc0Nvbm5lY3Rpb24pCisg
ICAgICAgIHJldHVybjsKIAorICAgIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uT25NYWluVGhy
ZWFkKGxvY2tlcik7CiAgICAgZGlzcGF0Y2hUb1RocmVhZChbdGhpc10oKSB7CiAgICAgICAgIC8v
IExvY2sgZXZlcnl0aGluZyBzbyB0aGF0IHdlIGNhbiB1cGRhdGUgZW5jb2Rlci9kZWNvZGVyIGNv
bm5lY3Rpb24uCiAgICAgICAgIExvY2tIb2xkZXIgaG9sZGVyKG1fY29ubmVjdGlvbkxvY2spOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRD
Q29kZWNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3MuaAppbmRleCBjMjg3NjJiMjRjODllMTQyYjVkZTljZTZmMTc3NDJkNTQ4NmQzYzljLi5k
M2I5MDJlMGM1ZDkxODAwYjdjMzRlODJlZmM2YzFkN2E3MGUxNzdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaApAQCAt
NjIsMTIgKzYyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBMaWJXZWJSVENDb2RlY3Mg
OiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVk
LCBwdWJsaWMgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJS
VENDb2RlY3M+IGNyZWF0ZSgpCi0gICAgewotICAgICAgICBhdXRvIGluc3RhbmNlID0gc3RkOjp1
bmlxdWVfcHRyPExpYldlYlJUQ0NvZGVjcz4obmV3IExpYldlYlJUQ0NvZGVjcyk7Ci0gICAgICAg
IGluc3RhbmNlLT5zdGFydExpc3RlbmluZ0ZvcklQQygpOwotICAgICAgICByZXR1cm4gaW5zdGFu
Y2U7Ci0gICAgfQorICAgIHN0YXRpYyBSZWY8TGliV2ViUlRDQ29kZWNzPiBjcmVhdGUoKTsKICAg
ICB+TGliV2ViUlRDQ29kZWNzKCk7CiAKICAgICBzdGF0aWMgdm9pZCBzZXRDYWxsYmFja3MoYm9v
bCB1c2VHUFVQcm9jZXNzKTsKQEAgLTEyNSw3ICsxMjAsOSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6
CiAgICAgTGliV2ViUlRDQ29kZWNzKCk7Ci0gICAgdm9pZCBzdGFydExpc3RlbmluZ0ZvcklQQygp
OworICAgIHZvaWQgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb25BbmREaXNwYXRjaFRvVGhyZWFk
KEZ1bmN0aW9uPHZvaWQoKT4mJik7CisgICAgdm9pZCBlbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlv
bk9uTWFpblRocmVhZChMb2NrZXI8TG9jaz4mKTsKKyAgICB2b2lkIGdwdVByb2Nlc3NDb25uZWN0
aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZCgpOwogCiAgICAgdm9pZCBmYWlsZWREZWNvZGluZyhSVENE
ZWNvZGVySWRlbnRpZmllcik7CiAgICAgdm9pZCBjb21wbGV0ZWREZWNvZGluZyhSVENEZWNvZGVy
SWRlbnRpZmllciwgdWludDMyX3QgdGltZVN0YW1wLCBXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBs
ZSYmKTsKQEAgLTE0NCw2ICsxNDEsOCBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDxSVENFbmNv
ZGVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPEVuY29kZXI+PiBtX2VuY29kZXJzOwogCisg
ICAgc3RkOjphdG9taWM8Ym9vbD4gbV9uZWVkc0dQVVByb2Nlc3NDb25uZWN0aW9uOworCiAgICAg
TG9jayBtX2Nvbm5lY3Rpb25Mb2NrOwogICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjsKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKaW5kZXggNjQ2ZTVlZDA4OTcxNjEzYWZiNDE1NDgwNzdmZTMxNDhiZDE4
YWQ0My4uN2M4YTYzZmQyMWIzMGVjNzg4ZWU4NTZiZjJkMjI4N2Y4YWQ0YmIyZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC02MjEsNyArNjIxLDcgQEAgcHJpdmF0ZToK
ICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgUmVmUHRyPEdQVVByb2Nlc3NDb25uZWN0aW9u
PiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uOwogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElC
V0VCUlRDKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJSVENDb2RlY3M+IG1fbGliV2ViUlRD
Q29kZWNzOworICAgIFJlZlB0cjxMaWJXZWJSVENDb2RlY3M+IG1fbGliV2ViUlRDQ29kZWNzOwog
I2VuZGlmCiAjZW5kaWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426355</attachid>
            <date>2021-04-17 15:54:13 -0700</date>
            <delta_ts>2021-04-17 17:10:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224704-20210417155412.patch</filename>
            <type>text/plain</type>
            <size>14374</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUzMDZjMTk5NTBiMTJlZGM1
YTA0NGRmOTI5MjRjOWZjYzU4NjYwNmMuLjQ0NDE5YTFhNTEyMzRlN2YyYzdjOTRjYjQ5MmMxMDNl
YzU4MGI3MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODAgQEAKKzIwMjEtMDQtMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBMaWJXZWJSVENDb2RlY3MgZWFnZXJs
eSBsYXVuY2hlcyB0aGUgR1BVUHJvY2VzcyBhbmQgYWx3YXlzIHJlbGF1bmNoZXMgaXQgb24gZXhp
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NzA0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgTGliV2ViUlRD
Q29kZWNzIGVhZ2VybHkgbGF1bmNoZXMgdGhlIEdQVVByb2Nlc3MgYW5kIGFsd2F5cyByZWxhdW5j
aGVzIGl0IG9uIGV4aXQuIFRoZSBHUFVQcm9jZXNzCisgICAgICAgIHNob3VsZCBvbmx5IGJlIChy
ZS0pbGF1bmNoZWQgd2hlbiBuZWVkZWQuIEluIHRoZSBjYXNlIG9mIHRoZSBMaWJXZWJSVENDb2Rl
Y3MsIGl0IHNlZW1zIGl0IG9ubHkKKyAgICAgICAgbmVlZHMgYSBHUFVQcm9jZXNzIGNvbm5lY3Rp
b24gaWYgaXQgaGFzIG1fZGVjb2RlcnMgLyBtX2VuY29kZXJzIGFyZSBub24tZW1wdHkuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjplbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbk9u
TWFpblRocmVhZCk6CisgICAgICAgIFJlbmFtZWQgc3RhcnRMaXN0ZW5pbmdGb3JJUEMoKSB0byBl
bnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbk9uTWFpblRocmVhZCgpLiBPbmx5IGRvIHRoZQorICAg
ICAgICBjb25uZWN0aW9uIGluaXRpYWxpemF0aW9uIGlmIG1fY29ubmVjdGlvbiBpcyBub3QgbnVs
bC4KKworICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uQW5kRGlzcGF0Y2hUb1RocmVhZCk6CisgICAgICAgIFZlcnNpb24gb2YgZGlzcGF0
Y2hUb1RocmVhZCgpIHdoaWNoIG1ha2VzIHN1cmUgdGhhdCB0aGUgR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24gaXMgaW5pdGlhbGl6ZWQKKyAgICAgICAgYmVmb3JlIGRpc3BhdGNoaW5nLiBJdCBpcyB1c2Vk
IHdoZW4gY29uc3RydWN0aW5nIGEgZGVjb2RlciAvIGVuY29kZXIuIEl0IHNldHMgdGhlCisgICAg
ICAgIG1fbmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlvbiBmbGFnIHRvIHRydWUgdG8gaW5kaWNhdGUg
c29tZW9uZSBuZWVkZWQgdGhlIGNvbm5lY3Rpb24KKyAgICAgICAgKGFuZCB0aGF0IHdlIHNob3Vs
ZCByZS1pbml0aWF0ZSBpdCBpbiBjYXNlIGl0IGlzIHNldmVyZWQpLiBJZiB0aGUgY29ubmVjdGlv
biBpcyBhbHJlYWR5CisgICAgICAgIGluaXRpYWxpemVkLCB0aGVuIGl0IGRvZXMgYSBzaW1wbGUg
ZGlzcGF0Y2hUb1RocmVhZCgpLiBJZiB0aGUgY29ubmVjdGlvbiBpcyBub3QgaW5pdGlhbGl6ZWQK
KyAgICAgICAgeWV0LCB0aGVuIHdlIGhhdmUgdG8gaG9wIHRvIHRoZSBtYWluIHRocmVhZCAoaWYg
bm90IGFscmVhZHkgb24gaXQpIHRvIGluaXRpYWxpemUgdGhlCisgICAgICAgIEdQVVByb2Nlc3ND
b25uZWN0aW9uLgorCisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6Z3B1UHJvY2Vz
c0Nvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVkKToKKyAgICAgICAgRnVuY3Rpb24gdGhhdCBn
ZXRzIGNhbGxlZCBvbiB0aGUgYmFja2dyb3VuZCB0aHJlYWQgZXZlcnkgdGltZSBhIGVuY29kZXIg
LyBkZWNvZGVyIGlzCisgICAgICAgIHJlbW92ZWQuIEl0cyBwdXJwb3NlIGlzIHRvIHNldCBtX25l
ZWRzR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gYmFjayB0byBmYWxzZSBvbmNlIHdlIG5vCisgICAgICAg
IGxvbmdlciBoYXZlIGFueSBlbmNvZGVyIC8gZGVjb2Rlciwgc28gdGhhdCBncHVQcm9jZXNzQ29u
bmVjdGlvbkRpZENsb3NlKCkgZG9lcyBub3QKKyAgICAgICAgYXR0ZW1wdCB0byByZWxhdW5jaCB0
aGUgR1BVUHJvY2VzcyBpZiBpdCBnb2VzIGF3YXkuCisKKyAgICAgICAgTGliV2ViUlRDQ29kZWNz
OjpzZXRDYWxsYmFja3MoKToKKyAgICAgICAgQ2hlY2sgaWYgVlA5U3VwcG9ydCBpcyBlbmFibGVk
IHZpYSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIgaW5zdGVhZCBvZiBmcm9tIHRoZQorICAg
ICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbi4gVGhpcyBhdm9pZHMgZWFnZXJseSBsYXVuY2hpbmcg
dGhlIEdQVVByb2Nlc3MuIFRoZQorICAgICAgICBHUFVQcm9jZXNzQ29ubmVjdGlvbiBjb25zdHJ1
Y3RvciBnZXRzIGl0cyBWUHggc3VwcG9ydCBpbmZvcm1hdGlvbiBmcm9tCisgICAgICAgIFBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlciBhbnl3YXkuIFRoZSBXZWJQYWdlIGNvbnN0cnVjdG9yIGlz
IHdoZXJlIHRoZSBWUHggc3VwcG9ydAorICAgICAgICBpbmZvcm1hdGlvbiBjb21lcyBmcm9tIGFu
ZCBpdCB1cGRhdGVzIHRoZSBWUHggZmxhZ3Mgb24gdGhlIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlci4KKyAgICAgICAgVGhlIFdlYlBhZ2UgY29uc3RydWN0b3Igb25seSB1cGRhdGVzIHRoZSBW
UHggZmxhZ3Mgb24gdGhlIEdQVVByb2Nlc3NDb25uZWN0aW9uIGlmIHRoaXMKKyAgICAgICAgY29u
bmVjdGlvbiBhbHJlYWR5IGV4aXN0cyB0byBhdm9pZCBlYWdlcmx5IGxhdW5jaGluZyB0aGUgR1BV
UHJvY2Vzcy4KKworICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNyZWF0ZURlY29k
ZXIpOgorICAgICAgICAtIENhbGwgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb25BbmREaXNwYXRj
aFRvVGhyZWFkKCkgaW5zdGVhZCBvZiBkaXNwYXRjaFRvVGhyZWFkKCkKKyAgICAgICAgICB0byBt
YWtlIHN1cmUgd2UgaGF2ZSBhIEdQVVByb2Nlc3NDb25uZWN0aW9uIGJlZm9yZSBjcmVhdGluZyB0
aGUgZGVjb2Rlci4KKyAgICAgICAgLSBBZGQgYSBtaXNzaW5nIGxvY2tlciBmb3IgbV9jb25uZWN0
aW9uTG9jayBvbiB0aGUgYmFja2dyb3VuZCB0aHJlYWQgc2luY2UgaXQgaXMgdXNpbmcKKyAgICAg
ICAgICBtX2Nvbm5lY3Rpb24gKHByZS1leGlzdGluZyBidWcpLgorCisgICAgICAgIChXZWJLaXQ6
OkxpYldlYlJUQ0NvZGVjczo6cmVsZWFzZURlY29kZXIpOgorICAgICAgICBDYWxsIGdwdVByb2Nl
c3NDb25uZWN0aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZCgpIHRvIHJlc2V0IHRoZSBtX25lZWRzR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24KKyAgICAgICAgZmxhZyB0byBmYWxzZSBpZiBuZWNlc3NhcnkuCisK
KyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjcmVhdGVFbmNvZGVyKToKKyAgICAg
ICAgLSBDYWxsIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uQW5kRGlzcGF0Y2hUb1RocmVhZCgp
IGluc3RlYWQgb2YgZGlzcGF0Y2hUb1RocmVhZCgpCisgICAgICAgICAgdG8gbWFrZSBzdXJlIHdl
IGhhdmUgYSBHUFVQcm9jZXNzQ29ubmVjdGlvbiBiZWZvcmUgY3JlYXRpbmcgdGhlIGVuY29kZXIu
CisKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpyZWxlYXNlRW5jb2Rlcik6Cisg
ICAgICAgIENhbGwgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVkKCkgdG8g
cmVzZXQgdGhlIG1fbmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlvbgorICAgICAgICBmbGFnIHRvIGZh
bHNlIGlmIG5lY2Vzc2FyeS4KKworICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6Omdw
dVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UpOgorICAgICAgICAtIENsZWFyIG1fY29ubmVjdGlv
biB3aGVuIHRoZSBHUFVQcm9jZXNzIGNvbm5lY3Rpb24gaXMgc2V2ZXJlZCAobm90ZSB0aGF0IHRo
aXMgZG9lcyBub3QKKyAgICAgICAgICBuZWNlc3NhcmlseSBpbmRpY2F0ZSBhIGNyYXNoIHNpbmNl
IHRoZSBHUFVQcm9jZXNzIGV4aXRzIHdoZW4gaWRsZSBhbmQgdW5kZXIgbWVtb3J5CisgICAgICAg
ICAgcHJlc3N1cmUpLgorICAgICAgICAtIE9ubHkgcmUtaW5pdGlhdGUgdGhlIEdQVVByb2Nlc3Mg
Y29ubmVjdGlvbiBpZiBtX25lZWRzR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gaXMgdHJ1ZSwKKyAgICAg
ICAgICBtZWFuaW5nIHRoYXQgd2UgaGF2ZSBlbmNvZGVycy9kZWNvZGVycy4gSSB1c2UgdGhpcyBm
bGFnIGluc3RlYWQgb2YgY2hlY2tpbmcgbV9lbmNvZGVycworICAgICAgICAgICYgbV9kZWNvZGVy
cyBzaW5jZSB0aG9zZSBjb250YWluZXJzIGFyZSBtb2RpZmllZCBvbiB0aGUgYmFja2dyb3VuZCB0
aHJlYWQgYW5kIHRoaXMKKyAgICAgICAgICBmdW5jdGlvbiBpcyBjYWxsZWQgb24gdGhlIG1haW4g
dGhyZWFkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVj
cy5oOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNyZWF0ZSk6CisgICAgICAg
IC0gU3RvcCBjYWxsaW5nIHN0YXJ0TGlzdGVuaW5nRm9ySVBDKCkgb24gY29uc3RydWN0aW9uIGFz
IHdlIGRvbid0IHdhbnQgdG8gbGF1bmNoIHRoZSBHUFVQcm9jZXNzCisgICAgICAgIHVudGlsIGFu
IGVuY29kZXIgLyBkZWNvZGVyIGlzIGNyZWF0ZWQuCisgICAgICAgIC0gRml4IGEgcHJlLWV4aXN0
aW5nIGlzc3VlIHdoZXJlIHRoZSBjbGFzcyBzdWJjbGFzc2VzIFRocmVhZFNhZmVSZWZDb3VudGVk
ICh2aWEKKyAgICAgICAgICBUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkKSBhbmQgeWV0
IHdhcyB1c2luZyBzdGQ6OnVuaXF1ZV9wdHI8PiBpbnN0ZWFkIG9mCisgICAgICAgICAgUmVmUHRy
PD4uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAyMS0wNC0xNyAg
U2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzIHRvIFNldHRpbmdzIChQYXJ0IDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9Mb2NrZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oCmluZGV4IDk4MzkwNmVkMWZl
Mjk2MDViZmEwNzNjODY2MzM1N2M2ODY1YTI3Y2EuLjFmMzMxMTAzN2E5ZDQ1MTI3MGI4ZDc5NzJh
ZWNmZmU5ZGRiMmVjZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oCkBAIC04Myw2ICs4Myw4IEBAIHB1YmxpYzoKICAgICAg
ICAgfQogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KKworICAgIFQqIGxvY2thYmxlKCkg
eyByZXR1cm4gbV9sb2NrYWJsZTsgfQogICAgIAogICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2wo
KSBjb25zdCB7IHJldHVybiAhIW1fbG9ja2FibGU7IH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCmluZGV4
IDFmYTk0MzEwYjFkOGY4MjFmZjVjYTg0MjZlZTJkNDgyNGM4ZDE2ZmUuLmQxNGQ4YzQ5NWYwNThl
NmY0NTlhYTAwODhjNWRmNDc4MjFjYzExNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcApAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jvcy5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRl
b1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgpA
QCAtMTYzLDIwICsxNjQsNTIgQEAgc3RhdGljIHZvaWQgc2V0RW5jb2RlUmF0ZXNDYWxsYmFjayh3
ZWJydGM6OldlYktpdFZpZGVvRW5jb2RlciBlbmNvZGVyLCBjb25zdCB3ZWIKICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENDb2RlY3MoKS5zZXRFbmNvZGVSYXRlcygqc3RhdGlj
X2Nhc3Q8TGliV2ViUlRDQ29kZWNzOjpFbmNvZGVyKj4oZW5jb2RlciksIGJpdFJhdGUsIGZyYW1l
UmF0ZSk7CiB9CiAKK1JlZjxMaWJXZWJSVENDb2RlY3M+IExpYldlYlJUQ0NvZGVjczo6Y3JlYXRl
KCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBMaWJXZWJSVENDb2RlY3MpOworfQorCiBM
aWJXZWJSVENDb2RlY3M6OkxpYldlYlJUQ0NvZGVjcygpCiAgICAgOiBtX3F1ZXVlKFdvcmtRdWV1
ZTo6Y3JlYXRlKCJMaWJXZWJSVENDb2RlY3MiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29y
a1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSkpCiB7CiB9CiAKLXZvaWQgTGliV2ViUlRDQ29k
ZWNzOjpzdGFydExpc3RlbmluZ0ZvcklQQygpCit2b2lkIExpYldlYlJUQ0NvZGVjczo6ZW5zdXJl
R1BVUHJvY2Vzc0Nvbm5lY3Rpb25Pbk1haW5UaHJlYWQoTG9ja2VyPExvY2s+JiBsb2NrZXIpCiB7
Ci0gICAgQVNTRVJUKCFtX2Nvbm5lY3Rpb24pOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkp
OworICAgIEFTU0VSVF9VTlVTRUQobG9ja2VyLCBsb2NrZXIubG9ja2FibGUoKSA9PSAmbV9jb25u
ZWN0aW9uTG9jayk7CisgICAgaWYgKG1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgYXV0byYgZ3B1Q29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQ
VVByb2Nlc3NDb25uZWN0aW9uKCk7CiAgICAgZ3B1Q29ubmVjdGlvbi5hZGRDbGllbnQoKnRoaXMp
OwogICAgIG1fY29ubmVjdGlvbiA9IG1ha2VSZWYoZ3B1Q29ubmVjdGlvbi5jb25uZWN0aW9uKCkp
OwogICAgIG1fY29ubmVjdGlvbi0+YWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpM
aWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7CiB9CiAKKy8vIE1h
eSBiZSBjYWxsZWQgb24gYW55IHRocmVhZC4KK3ZvaWQgTGliV2ViUlRDQ29kZWNzOjplbnN1cmVH
UFVQcm9jZXNzQ29ubmVjdGlvbkFuZERpc3BhdGNoVG9UaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYm
IHRhc2spCit7CisgICAgbV9uZWVkc0dQVVByb2Nlc3NDb25uZWN0aW9uID0gdHJ1ZTsKKyAgICB7
CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9jb25uZWN0aW9uTG9jayk7CisgICAg
ICAgIGlmIChtX2Nvbm5lY3Rpb24pCisgICAgICAgICAgICByZXR1cm4gZGlzcGF0Y2hUb1RocmVh
ZChXVEZNb3ZlKHRhc2spKTsKKyAgICB9CisgICAgZW5zdXJlT25NYWluUnVuTG9vcChbdGhpcywg
dGFzayA9IFdURk1vdmUodGFzayldKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV9jb25uZWN0aW9uTG9jayk7CisgICAgICAgIGVuc3VyZUdQVVByb2Nlc3NDb25u
ZWN0aW9uT25NYWluVGhyZWFkKGxvY2tlcik7CisgICAgICAgIGRpc3BhdGNoVG9UaHJlYWQoV1RG
TW92ZSh0YXNrKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgTGliV2ViUlRDQ29kZWNzOjpncHVQcm9j
ZXNzQ29ubmVjdGlvbk1heU5vTG9uZ2VyQmVOZWVkZWQoKQoreworICAgIEFTU0VSVCghaXNNYWlu
UnVuTG9vcCgpKTsKKyAgICBpZiAobV9lbmNvZGVycy5pc0VtcHR5KCkgJiYgbV9kZWNvZGVycy5p
c0VtcHR5KCkpCisgICAgICAgIG1fbmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlvbiA9IGZhbHNlOwor
fQorCiBMaWJXZWJSVENDb2RlY3M6On5MaWJXZWJSVENDb2RlY3MoKQogewogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwpAQCAtMTk2LDkgKzIyOSw4IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpz
ZXRDYWxsYmFja3MoYm9vbCB1c2VHUFVQcm9jZXNzKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmxpYldlYlJUQ0NvZGVjcygpOwogCiAjaWYgRU5BQkxFKFZQOSkKLSAgICBhdXRvJiBncHVD
b25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24oKTsKICAgICAvLyBGSU1YRTogV2Ugc2hvdWxkIGRpc2FibGUgVlA5VlRCIGlmIFZQOSBo
YXJkd2FyZSBkZWNvZGluZyBpcyBlbmFibGVkIGJ1dCB0aGVyZSBpcyBubyBzdXBwb3J0IGZvciBp
dC4KLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENDb2RlY3MoKS5zZXRWUDlW
VEJTdXBwb3J0KGdwdUNvbm5lY3Rpb24uaXNWUDlEZWNvZGVyRW5hYmxlZCgpIHx8IGdwdUNvbm5l
Y3Rpb24uaXNWUFNXRGVjb2RlckVuYWJsZWQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkubGliV2ViUlRDQ29kZWNzKCkuc2V0VlA5VlRCU3VwcG9ydChQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNob3VsZEVuYWJsZVZQOURlY29kZXIoKSB8fCBQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNob3VsZEVuYWJsZVZQOVNXRGVjb2RlcigpKTsKICNlbmRpZgogCiAgICAgd2Vi
cnRjOjpzZXRWaWRlb0RlY29kZXJDYWxsYmFja3MoY3JlYXRlVmlkZW9EZWNvZGVyLCByZWxlYXNl
VmlkZW9EZWNvZGVyLCBkZWNvZGVWaWRlb0ZyYW1lLCByZWdpc3RlckRlY29kZUNvbXBsZXRlQ2Fs
bGJhY2spOwpAQCAtMjEyLDcgKzI0NCw4IEBAIExpYldlYlJUQ0NvZGVjczo6RGVjb2RlciogTGli
V2ViUlRDQ29kZWNzOjpjcmVhdGVEZWNvZGVyKFR5cGUgdHlwZSkKICAgICBkZWNvZGVyLT5pZGVu
dGlmaWVyID0gUlRDRGVjb2RlcklkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOwogICAg
IGRlY29kZXItPnR5cGUgPSB0eXBlOwogCi0gICAgZGlzcGF0Y2hUb1RocmVhZChbdGhpcywgZGVj
b2RlciA9IFdURk1vdmUoZGVjb2RlcildKCkgbXV0YWJsZSB7CisgICAgZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb25BbmREaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBkZWNvZGVyID0gV1RGTW92ZShk
ZWNvZGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2Nv
bm5lY3Rpb25Mb2NrKTsKICAgICAgICAgZGVjb2Rlci0+Y29ubmVjdGlvbiA9IG1fY29ubmVjdGlv
bjsKICAgICAgICAgY3JlYXRlUmVtb3RlRGVjb2RlcigqZGVjb2RlciwgKm1fY29ubmVjdGlvbik7
CiAKQEAgLTIyOCw4ICsyNjEsMTAgQEAgaW50MzJfdCBMaWJXZWJSVENDb2RlY3M6OnJlbGVhc2VE
ZWNvZGVyKERlY29kZXImIGRlY29kZXIpCiAgICAgQVNTRVJUKCFkZWNvZGVyLmRlY29kZWRJbWFn
ZUNhbGxiYWNrKTsKICAgICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBkZWNvZGVySWRlbnRpZmll
ciA9IGRlY29kZXIuaWRlbnRpZmllcl0gewogICAgICAgICBBU1NFUlQobV9kZWNvZGVycy5jb250
YWlucyhkZWNvZGVySWRlbnRpZmllcikpOwotICAgICAgICBpZiAoYXV0byBkZWNvZGVyID0gbV9k
ZWNvZGVycy50YWtlKGRlY29kZXJJZGVudGlmaWVyKSkKKyAgICAgICAgaWYgKGF1dG8gZGVjb2Rl
ciA9IG1fZGVjb2RlcnMudGFrZShkZWNvZGVySWRlbnRpZmllcikpIHsKICAgICAgICAgICAgIGRl
Y29kZXItPmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpS
ZWxlYXNlRGVjb2RlciB7IGRlY29kZXJJZGVudGlmaWVyIH0sIDApOworICAgICAgICAgICAgZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVkKCk7CisgICAgICAgIH0KICAgICB9
KTsKICAgICByZXR1cm4gMDsKIH0KQEAgLTMzMSw3ICszNjYsNyBAQCBMaWJXZWJSVENDb2RlY3M6
OkVuY29kZXIqIExpYldlYlJUQ0NvZGVjczo6Y3JlYXRlRW5jb2RlcihUeXBlIHR5cGUsIGNvbnN0
IHN0ZDo6bQogICAgIGZvciAoYXV0byYga2V5VmFsdWUgOiBmb3JtYXRQYXJhbWV0ZXJzKQogICAg
ICAgICBwYXJhbWV0ZXJzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihTdHJpbmc6OmZyb21VVEY4KGtl
eVZhbHVlLmZpcnN0LmRhdGEoKSwga2V5VmFsdWUuZmlyc3QubGVuZ3RoKCkpLCBTdHJpbmc6OmZy
b21VVEY4KGtleVZhbHVlLnNlY29uZC5kYXRhKCksIGtleVZhbHVlLnNlY29uZC5sZW5ndGgoKSkp
KTsKIAotICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIGVuY29kZXIgPSBXVEZNb3ZlKGVuY29k
ZXIpLCB0eXBlLCBwYXJhbWV0ZXJzID0gV1RGTW92ZShwYXJhbWV0ZXJzKV0oKSBtdXRhYmxlIHsK
KyAgICBlbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbkFuZERpc3BhdGNoVG9UaHJlYWQoW3RoaXMs
IGVuY29kZXIgPSBXVEZNb3ZlKGVuY29kZXIpLCB0eXBlLCBwYXJhbWV0ZXJzID0gV1RGTW92ZShw
YXJhbWV0ZXJzKV0oKSBtdXRhYmxlIHsKICAgICAgICAgTG9ja0hvbGRlciBob2xkZXIobV9jb25u
ZWN0aW9uTG9jayk7CiAgICAgICAgIGVuY29kZXItPmNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb247
CiAgICAgICAgIGVuY29kZXItPmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0Nv
ZGVjc1Byb3h5OjpDcmVhdGVFbmNvZGVyIHsgZW5jb2Rlci0+aWRlbnRpZmllciwgZm9ybWF0TmFt
ZUZyb21Db2RlY1R5cGUodHlwZSksIHBhcmFtZXRlcnMsIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkud2ViUlRDSDI2NExvd0xhdGVuY3lFbmNvZGVyRW5hYmxlZCgpIH0s
IDApOwpAQCAtMzUxLDYgKzM4Niw3IEBAIGludDMyX3QgTGliV2ViUlRDQ29kZWNzOjpyZWxlYXNl
RW5jb2RlcihFbmNvZGVyJiBlbmNvZGVyKQogICAgICAgICBBU1NFUlQobV9lbmNvZGVycy5jb250
YWlucyhlbmNvZGVySWRlbnRpZmllcikpOwogICAgICAgICBhdXRvIGVuY29kZXIgPSBtX2VuY29k
ZXJzLnRha2UoZW5jb2RlcklkZW50aWZpZXIpOwogICAgICAgICBlbmNvZGVyLT5jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6UmVsZWFzZUVuY29kZXIgeyBl
bmNvZGVySWRlbnRpZmllciB9LCAwKTsKKyAgICAgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb25NYXlO
b0xvbmdlckJlTmVlZGVkKCk7CiAgICAgfSk7CiAgICAgcmV0dXJuIDA7CiB9CkBAIC00NjAsMTUg
KzQ5NiwxMyBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6ZGlzcGF0Y2hUb1RocmVhZChGdW5jdGlv
bjx2b2lkKCk+JiYgY2FsbGJhY2spCiAKIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpncHVQcm9jZXNz
Q29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW9uJikKIHsKLSAgICBhdXRvJiBn
cHVDb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24oKTsKLSAgICBncHVDb25uZWN0aW9uLmFkZENsaWVudCgqdGhpcyk7Ci0gICAgewot
ICAgICAgICBhdXRvIGxvY2sgPSBob2xkTG9jayhtX2Nvbm5lY3Rpb25Mb2NrKTsKLSAgICAgICAg
bV9jb25uZWN0aW9uLT5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkxpYldl
YlJUQ0NvZGVjczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKLSAgICAgICAgbV9jb25uZWN0aW9u
ID0gbWFrZVJlZihncHVDb25uZWN0aW9uLmNvbm5lY3Rpb24oKSk7Ci0gICAgICAgIG1fY29ubmVj
dGlvbi0+YWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhpcyk7Ci0gICAgfQorICAgIEFTU0VSVChpc01haW5S
dW5Mb29wKCkpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9jb25uZWN0aW9uTG9jayk7
CisgICAgc3RkOjpleGNoYW5nZShtX2Nvbm5lY3Rpb24sIG51bGxwdHIpLT5yZW1vdmVUaHJlYWRN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjczo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKTsKKyAgICBpZiAoIW1fbmVlZHNHUFVQcm9jZXNzQ29ubmVjdGlvbikKKyAgICAgICAg
cmV0dXJuOwogCisgICAgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb25Pbk1haW5UaHJlYWQobG9j
a2VyKTsKICAgICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzXSgpIHsKICAgICAgICAgLy8gTG9jayBl
dmVyeXRoaW5nIHNvIHRoYXQgd2UgY2FuIHVwZGF0ZSBlbmNvZGVyL2RlY29kZXIgY29ubmVjdGlv
bi4KICAgICAgICAgTG9ja0hvbGRlciBob2xkZXIobV9jb25uZWN0aW9uTG9jayk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3Mu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5o
CmluZGV4IGMyODc2MmIyNGM4OWUxNDJiNWRlOWNlNmYxNzc0MmQ1NDg2ZDNjOWMuLmQzYjkwMmUw
YzVkOTE4MDBiN2MzNGU4MmVmYzZjMWQ3YTcwZTE3N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oCkBAIC02MiwxMiAr
NjIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIExpYldlYlJUQ0NvZGVjcyA6IHB1Ymxp
YyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQsIHB1Ymxp
YyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ0NvZGVj
cz4gY3JlYXRlKCkKLSAgICB7Ci0gICAgICAgIGF1dG8gaW5zdGFuY2UgPSBzdGQ6OnVuaXF1ZV9w
dHI8TGliV2ViUlRDQ29kZWNzPihuZXcgTGliV2ViUlRDQ29kZWNzKTsKLSAgICAgICAgaW5zdGFu
Y2UtPnN0YXJ0TGlzdGVuaW5nRm9ySVBDKCk7Ci0gICAgICAgIHJldHVybiBpbnN0YW5jZTsKLSAg
ICB9CisgICAgc3RhdGljIFJlZjxMaWJXZWJSVENDb2RlY3M+IGNyZWF0ZSgpOwogICAgIH5MaWJX
ZWJSVENDb2RlY3MoKTsKIAogICAgIHN0YXRpYyB2b2lkIHNldENhbGxiYWNrcyhib29sIHVzZUdQ
VVByb2Nlc3MpOwpAQCAtMTI1LDcgKzEyMCw5IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBM
aWJXZWJSVENDb2RlY3MoKTsKLSAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9ySVBDKCk7CisgICAg
dm9pZCBlbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbkFuZERpc3BhdGNoVG9UaHJlYWQoRnVuY3Rp
b248dm9pZCgpPiYmKTsKKyAgICB2b2lkIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uT25NYWlu
VGhyZWFkKExvY2tlcjxMb2NrPiYpOworICAgIHZvaWQgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb25NYXlO
b0xvbmdlckJlTmVlZGVkKCk7CiAKICAgICB2b2lkIGZhaWxlZERlY29kaW5nKFJUQ0RlY29kZXJJ
ZGVudGlmaWVyKTsKICAgICB2b2lkIGNvbXBsZXRlZERlY29kaW5nKFJUQ0RlY29kZXJJZGVudGlm
aWVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlJiYpOwpA
QCAtMTQ0LDYgKzE0MSw4IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFJUQ0VuY29kZXJJZGVu
dGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4+IG1fZW5jb2RlcnM7CiAKKyAgICBzdGQ6
OmF0b21pYzxib29sPiBtX25lZWRzR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CisKICAgICBMb2NrIG1f
Y29ubmVjdGlvbkxvY2s7CiAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9u
OwogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaAppbmRleCA2NDZlNWVkMDg5NzE2MTNhZmI0MTU0ODA3N2ZlMzE0OGJkMThhZDQzLi43
YzhhNjNmZDIxYjMwZWM3ODhlZTg1NmJmMmQyMjg3ZjhhZDRiYjJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTYyMSw3ICs2MjEsNyBAQCBwcml2YXRlOgogI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKICAgICBSZWZQdHI8R1BVUHJvY2Vzc0Nvbm5lY3Rpb24+IG1fZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb247CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMp
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ0NvZGVjcz4gbV9saWJXZWJSVENDb2RlY3M7
CisgICAgUmVmUHRyPExpYldlYlJUQ0NvZGVjcz4gbV9saWJXZWJSVENDb2RlY3M7CiAjZW5kaWYK
ICNlbmRpZgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>