<?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>217663</bug_id>
          
          <creation_ts>2020-10-13 12:12:55 -0700</creation_ts>
          <short_desc>WebAudio tests are crashing in debug when enabling the GPU process</short_desc>
          <delta_ts>2020-10-13 14:54:18 -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>Web Audio</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1697335</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-13 12:12:55 -0700</bug_when>
    <thetext>WebAudio tests are crashing in debug when enabling the GPU process because it does audio processing on the WebContent process&apos; main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697340</commentid>
    <comment_count>1</comment_count>
      <attachid>411237</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-13 12:30:47 -0700</bug_when>
    <thetext>Created attachment 411237
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697344</commentid>
    <comment_count>2</comment_count>
      <attachid>411238</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-13 12:39:44 -0700</bug_when>
    <thetext>Created attachment 411238
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697347</commentid>
    <comment_count>3</comment_count>
      <attachid>411240</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-13 12:54:27 -0700</bug_when>
    <thetext>Created attachment 411240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697363</commentid>
    <comment_count>4</comment_count>
      <attachid>411240</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-10-13 13:19:56 -0700</bug_when>
    <thetext>Comment on attachment 411240
Patch

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

r=me

&gt; Source/WTF/ChangeLog:13
&gt; +        deque (since the queue is empty).

dequeue

&gt; Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.cpp:115
&gt; +                    audioBus-&gt;setChannelMemory(i, (float*)buffers[i]-&gt;data(), framesToProcess);

static_cast&lt;float*&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697364</commentid>
    <comment_count>5</comment_count>
      <attachid>411245</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-13 13:24:32 -0700</bug_when>
    <thetext>Created attachment 411245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697373</commentid>
    <comment_count>6</comment_count>
      <attachid>411245</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-10-13 13:32:38 -0700</bug_when>
    <thetext>Comment on attachment 411245
Patch

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

&gt; Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.cpp:46
&gt; +constexpr size_t fifoSize = 96 * WebCore::AudioUtilities::renderQuantumSize;

Could you explain how did you choose the number 96? Thanks!

&gt; Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.cpp:87
&gt;      void render(AudioBus* sourceBus, AudioBus* destinationBus, size_t framesToProcess, const WebCore::AudioIOPosition&amp; outputPosition) override

Nit. Looks like &quot;sourceBus&quot; is not used?

&gt; Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.cpp:140
&gt; +    WebCore::PushPullFIFO m_fifo;

I like this change!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697375</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-13 13:33:48 -0700</bug_when>
    <thetext>(In reply to Peng Liu from comment #6)
&gt; Comment on attachment 411245 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=411245&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.cpp:46
&gt; &gt; +constexpr size_t fifoSize = 96 * WebCore::AudioUtilities::renderQuantumSize;
&gt; 
&gt; Could you explain how did you choose the number 96? Thanks!

Oh, I used the same size as the fifo queue in AudioDestinationCocoa.mm. I will add a comment.

&gt; 
&gt; &gt; Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.cpp:87
&gt; &gt;      void render(AudioBus* sourceBus, AudioBus* destinationBus, size_t framesToProcess, const WebCore::AudioIOPosition&amp; outputPosition) override
&gt; 
&gt; Nit. Looks like &quot;sourceBus&quot; is not used?
&gt; 
&gt; &gt; Source/WebKit/GPUProcess/media/RemoteAudioDestinationManager.cpp:140
&gt; &gt; +    WebCore::PushPullFIFO m_fifo;
&gt; 
&gt; I like this change!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697377</commentid>
    <comment_count>8</comment_count>
      <attachid>411247</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-13 13:36:24 -0700</bug_when>
    <thetext>Created attachment 411247
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697423</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-13 14:53:27 -0700</bug_when>
    <thetext>Committed r268423: &lt;https://trac.webkit.org/changeset/268423&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411247.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697425</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-13 14:54:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/70267708&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411237</attachid>
            <date>2020-10-13 12:30:47 -0700</date>
            <delta_ts>2020-10-13 12:43:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217663-20201013123047.patch</filename>
            <type>text/plain</type>
            <size>38522</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Mjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdiZGUzY2M4NGY0MWUwNjNmMjI5Mzkx
YWY4MmE4NzA3Nzc0OTQ3MTcuLjFiYTA1ZjEyZmM5NWVkYmQwYTliNjA0Y2ZmMGFhZWM3ZjI2MjAw
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMTAtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBdWRpbyB0ZXN0cyBhcmUgY3Jhc2hpbmcgaW4gZGVi
dWcgd2hlbiBlbmFibGluZyB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzY2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0Nyb3NzVGhyZWFkUXVldWUuaDoKKyAgICAg
ICAgKFdURjo6Q3Jvc3NUaHJlYWRRdWV1ZTxEYXRhVHlwZT46OndhaXRGb3JNZXNzYWdlKToKKyAg
ICAgICAgSWYgQ3Jvc3NUaHJlYWRRdWV1ZTo6a2lsbCgpIGdldHMgY2FsbGVkIHdoaWxlIGFub3Ro
ZXIgdGhyZWFkIGlzIHdhaXRpbmcgb24gYQorICAgICAgICBDcm9zc1RocmVhZFF1ZXVlOjp3YWl0
Rm9yTWVzc2FnZSgpIGNhbGwsIG1ha2UgaXQgc28gdGhhdCB3YWl0Rm9yTWVzc2FnZSgpCisgICAg
ICAgIHJldHVybnMgYSBkZWZhdWx0LWNvbnN0cnVjdGVkIERhdGFUeXBlIGluc3RlYWQgb2YgY3Jh
c2hpbmcgdHJ5aW5nIHRvCisgICAgICAgIGRlcXVlIChzaW5jZSB0aGUgcXVldWUgaXMgZW1wdHkp
LgorCiAyMDIwLTEwLTA5ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIEZpbmFsaXplcnMgc2hvdWxkbid0IHJ1biBpZiBldmVudHMgY2FuJ3QgZmlyZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGQ2ZDY5Mzc5YzM4YTRiMGRiNzBmNWQxMTFjNGEzYjdhMWQ2ZWVmNGMuLjM3
ZDY1YWJiMDJhNjg4ZTFiODAxMWViOGZjMDA2YWEyNjhmZDJjODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMC0xMC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFdlYkF1ZGlvIHRlc3RzIGFyZSBjcmFzaGluZyBpbiBkZWJ1ZyB3aGVuIGVuYWJs
aW5nIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE3NjYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3RpbmcgdGVzdHMuCisKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vUHVzaFB1bGxGSUZPLmg6CisgICAgICAgIEV4cG9ydCBQdXNoUHVsbEZJRk8g
c28gdGhhdCBpdCBjYW4gYmUgdXNlZCBhdCBXZWJLaXQgbGF5ZXIuCisKIDIwMjAtMTAtMTIgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICAncGFyYW1ldGVycycgYXJn
dW1lbnQgdG8gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLnByb2Nlc3MoKSBpcyBub3Qgc3BlYy1jb21w
bGlhbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggZWQ4NjQwNDlkY2MxNTlkMmRiMDJjZjYxN2Y5MTFiYTEzNzg4ZjFk
NS4uZGRiNzFjYTA4Mzk5YTQ2MTkxYTYxNDAwNjM0OWE5OWY5MzdiODhkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw2NyBAQAorMjAyMC0xMC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIFdlYkF1ZGlvIHRlc3RzIGFyZSBjcmFzaGluZyBpbiBkZWJ1ZyB3aGVuIGVu
YWJsaW5nIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE3NjYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViQXVkaW8gdGVzdHMgd2VyZSBjcmFzaGluZyBpbiBkZWJ1ZyB3aGVu
IGVuYWJsaW5nIHRoZSBHUFUgcHJvY2VzcyBiZWNhdXNlIGl0IGRpZCBhdWRpbworICAgICAgICBw
cm9jZXNzaW5nIG9uIHRoZSBXZWJDb250ZW50IHByb2Nlc3MncyBtYWluIHRocmVhZC4gVG8gYWRk
cmVzcyB0aGUgaXNzdWUsIEkgbWFkZQorICAgICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkgYSBUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgc28gdGhhdCBpdCByZWNlaXZlcyBJUEMgb24gYW4g
YXVkaW8KKyAgICAgICAgdGhyZWFkIGluc3RlYWQgb2YgdGhlIG1haW4gdGhyZWFkLiBJUEMgbWVz
c2FnZXMgYXJlIHByb2Nlc3NlZCBkaXJlY3RseSBvbiB0aGUgQXVkaW9Xb3JrbGV0CisgICAgICAg
IHRocmVhZCB3aGVuIGFjdGl2ZSBvciBvbiBhbiBhdWRpbyB0aHJlYWQgY29uc3RydWN0ZWQgYnkg
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5CisgICAgICAgIG90aGVyd2lzZS4KKworICAgICAg
ICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uKToKKyAgICAgICAgVXNlIGEgUHVzaFB1bGxGSUZPIHN0cnVjdHVyZSBpbiByZW5kZXIo
KSB0byBhdm9pZCBoYW5naW5nIHRoZSBhdWRpbyByZW5kZXJpbmcgdGhyZWFkCisgICAgICAgIG9u
IGEgc2VtYXBob3JlLiBIYW5naW5nIHRoZSByZW5kZXJpbmcgdGhyZWFkIHdhcyB0ZXJyaWJsZSBm
b3IgcGVyZm9ybWFuY2UgYW5kIHdhcyBhbHNvCisgICAgICAgIGEgc291cmNlIG9mIGRlYWRsb2Nr
IHNpbmNlIHRoZSB1bmRlcmx5aW5nIGZyYW1ld29yayBpcyBob2xkaW5nIGEgbG9jayB3aGlsZSBy
ZW5kZXIoKSBpcworICAgICAgICBjYWxsZWQuIFdlIGNvdWxkIHByb2Nlc3MgYSBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uOjpDcmVhdGVBdWRpb0Rlc3RpbmF0aW9uIHN5bmMgSVBDIG9uIHRoZQorICAg
ICAgICBtYWluIHRocmVhZCBhbmQgZGVhZGxvY2sgb24gdGhhdCBsb2NrLgorCisgICAgICAgICog
R1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaDoKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIu
aDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QlNlcnZlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJv
dmlkZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05l
dHdvcmsuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyLmg6CisgICAgICAgIFVzZSBUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIGlu
c3RlYWQgb2YgVGhyZWFkTWVzc2FnZVJlY2VpdmVyIHNpbmNlIHRob3NlIGNsYXNzZXMKKyAgICAg
ICAgZG8gbm90IHByb3ZpZGUgdGhlaXIgb3duIFJlZkNvdW50aW5nLgorCisgICAgICAgICogUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjphZGRX
b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpyZW1v
dmVXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjph
ZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpyZW1v
dmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpwcm9j
ZXNzSW5jb21pbmdNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hN
ZXNzYWdlVG9Xb3JrUXVldWVSZWNlaXZlcik6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OmRp
c3BhdGNoTWVzc2FnZVRvVGhyZWFkUmVjZWl2ZXIpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9D
b25uZWN0aW9uLmg6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNl
aXZlcjo6cmVmKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2Vp
dmVyOjpkZXJlZik6CisgICAgICAgIC0gQWRkIHN1cHBvcnQgZm9yIHBhc3NpbmcgYSBkZXN0aW5h
dGlvbklEIHdoZW4gcmVnaXN0ZXJpbmcgYSBXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIgb3IgYQor
ICAgICAgICAgIFRocmVhZE1lc3NhZ2VSZWNlaXZlciwgc2ltaWxhcmx5IHRvIHJlZ3VsYXIgTWVz
c2FnZVJlY2VpdmVycy4gVGhpcyB3YXMgbmVlZGVkIGhlcmUgc2luY2UKKyAgICAgICAgICBUaGUg
R1BVUHJvY2VzcyBzZW5kcyBJUEMgbWVzc2FnZXMgdG8gdGhlIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eSB3aXRoIGEgZ2l2ZW4KKyAgICAgICAgICBkZXN0aW5hdGlvbklEIGFuZCBzaW5jZSBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgaXMgbm93IGEgVGhyZWFkTWVzc2FnZVJlY2VpdmVy
LgorICAgICAgICAtIFN0b3AgaGF2aW5nIFRocmVhZE1lc3NhZ2VSZWNlaXZlciBzdWJjbGFzcyBU
aHJlYWRTYWZlUmVmQ291bnRlZCBzaW5jZQorICAgICAgICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eSBhbHJlYWR5IHN1YmNsYXNzZXMgVGhyZWFkU2FmZVJlZkNvdW50ZWQgaW5kaXJlY3Rs
eS4gQSBuZXcKKyAgICAgICAgICBUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIGNsYXNz
IHdhcyBhZGRlZCBmb3IgY29udmVuaWVuY2UgZm9yIGV4aXN0aW5nIGNvZGUgdGhhdAorICAgICAg
ICAgIHJlbGllZCBvbiBpdHMgcmVmY291bnRpbmcuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6flJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHk6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHk6OnJlbmRlckJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6ZGlkQ2hhbmdlSXNQbGF5aW5nKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaXNwYXRjaFRvVGhyZWFkKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaDoKKyAgICAg
ICAgVXNlIGEgUHVzaFB1bGxGSUZPIGNvbnRhaW5lciBpbiByZW5kZXIoKSB0byBhdm9pZCBoYW5k
aW5nIHRoZSBhdWRpbyByZW5kZXJpbmcgdGhyZWFkIG9uCisgICAgICAgIGEgc2VtYXBob3JlIHdo
aWxlIHRoZSBSZW5kZXIgSVBDIGlzIGdldHRpbmcgcHJvY2Vzc2VkIGJ5IHRoZSBXZWJQcm9jZXNz
LgorCiAyMDIwLTEwLTA5ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVIFByb2Nlc3NdIFVzZSBjb3JyZWN0IEdQVSBydW50aW1lIHNldHRpbmdzIHdo
ZW4gY3JlYXRpbmcgdGhlIGR5bmFtaWMgSU9LaXQgc2FuZGJveCBleHRlbnNpb25zIGZvciB0aGUg
V2ViQ29udGVudCBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVh
ZFF1ZXVlLmggYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZFF1ZXVlLmgKaW5kZXggYmMyYjFl
YWVmOWU5YmEzYjlkNDQzMDFhYmE4NGMwMzY3OTAzNjhjZC4uMzE1NTI3NGJmYWM1M2VkNjQ1ZTBk
ZjgzNTg5MDRjYmE3N2MzYTcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJl
YWRRdWV1ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkUXVldWUuaApAQCAtODAs
NiArODAsOCBAQCBEYXRhVHlwZSBDcm9zc1RocmVhZFF1ZXVlPERhdGFUeXBlPjo6d2FpdEZvck1l
c3NhZ2UoKQogCiAgICAgICAgIG1fY29uZGl0aW9uLndhaXQobV9sb2NrKTsKICAgICB9CisgICAg
aWYgKG1fa2lsbGVkKQorICAgICAgICByZXR1cm4geyB9OwogCiAgICAgcmV0dXJuIG1fcXVldWUu
dGFrZUZpcnN0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggMzQ0YWQ4NzdjZTYyZDIwNzNjODAyOTJlNzJiNTZlZGMxOTA5
OTUwMS4uYWZmNDcyMjgyZDE5NTM5MjYwMWY3NDkyMTM3MjFhYWNkNDYwYWQ0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjU0
MCw3ICsyNTQwLDcgQEAKIAkJODNDNTc5NUQxREE1QzMwMTAwNkZBQ0E4IC8qIFNjcm9sbFRvT3B0
aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1
MEMzRTcxREE1OUI2MjAwMzU2NDQ2IC8qIFNjcm9sbFRvT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRDM1QUVDMUM3MTg3RkEwMEY3
MEQ1QSAvKiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFFQTFDNzE4N0VEMDBGNzBENUEgLyogWE1M
SHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4M0QzNUFGMjFDNzE4RDkwMDBGNzBE
NUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFGMDFDNzE4RDg0MDBGNzBENUEgLyogSlNY
TUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07Ci0JCTgzRDUxMUY2MjUwQzFDQkYwMDJF
REM1MSAvKiBQdXNoUHVsbEZJRk8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzRDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCAq
LzsgfTsKKwkJODNENTExRjYyNTBDMUNCRjAwMkVEQzUxIC8qIFB1c2hQdWxsRklGTy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNENTExRjUyNTBDMUNB
ODAwMkVEQzUxIC8qIFB1c2hQdWxsRklGTy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTgzRDZBQUU2MjUyNEVFMUMwMDQyOEI0QiAvKiBXb3JrZXJP
cldvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODNENkFBRTQyNTI0RUUxMzAwNDI4QjRCIC8qIFdvcmtlck9yV29ya2xldEds
b2JhbFNjb3BlLmggKi87IH07CiAJCTgzREI5RTBGMjREQTE5NDkwMDM3QjQ2OCAvKiBCaXF1YWRG
aWx0ZXJUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0RCOUUwQzI0REExOEI1MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyVHlwZS5oICovOyB9Owog
CQk4M0RCOUUxMDI0REExOTU3MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyT3B0aW9ucy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEQjlFMEUyNERBMThC
NjAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaCAqLzsgfTsKQEAgLTUyODMsNyArNTI4
Myw3IEBACiAJCUZEMzE2MDg2MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1Jlc2FtcGxlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNTAxMkIw
MjZGNzAwQzFBMzU5IC8qIEF1ZGlvUmVzYW1wbGVyLmggKi87IH07CiAJCUZEMzE2MDg4MTJCMDI2
RjcwMEMxQTM1OSAvKiBBdWRpb1Jlc2FtcGxlcktlcm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNTIxMkIwMjZGNzAwQzFBMzU5IC8qIEF1
ZGlvUmVzYW1wbGVyS2VybmVsLmggKi87IH07CiAJCUZEMzE2MDg5MTJCMDI2RjcwMEMxQTM1OSAv
KiBBdWRpb1NvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGRDMxNjA1MzEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9Tb3VyY2VQcm92
aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CUZEMzE2MDhCMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1V0aWxpdGllcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNTUxMkIwMjZGNzAwQzFB
MzU5IC8qIEF1ZGlvVXRpbGl0aWVzLmggKi87IH07CisJCUZEMzE2MDhCMTJCMDI2RjcwMEMxQTM1
OSAvKiBBdWRpb1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkQzMTYwNTUxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvVXRpbGl0aWVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkQzMTYw
OEQxMkIwMjZGNzAwQzFBMzU5IC8qIEJpcXVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNTcxMkIwMjZGNzAwQzFBMzU5IC8qIEJpcXVhZC5o
ICovOyB9OwogCQlGRDMxNjA4RjEyQjAyNkY3MDBDMUEzNTkgLyogQ29uZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNTkxMkIwMjZGNzAwQzFB
MzU5IC8qIENvbmUuaCAqLzsgfTsKIAkJRkQzMTYwOTExMkIwMjZGNzAwQzFBMzU5IC8qIERpc3Rh
bmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMx
NjA1QjEyQjAyNkY3MDBDMUEzNTkgLyogRGlzdGFuY2UuaCAqLzsgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1B1c2hQdWxsRklGTy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vUHVzaFB1bGxGSUZPLmgKaW5kZXggM2Q0M2Y0YWNmYTRkNzVlN2M3
MWI2YzBjZjBmZTQ4MzNhYjcwZjYyYi4uYjc4N2UwNzk4ZGI1MTBkMDUzODQ3MzIzMWViMzI3YmFm
ZDNkNzFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUHVzaFB1
bGxGSUZPLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUHVzaFB1bGxGSUZP
LmgKQEAgLTQ1LDE5ICs0NSwxOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBzaXpl
X3QgbWF4RklGT0xlbmd0aCB7IDY1NTM2IH07CiAKICAgICAvLyB8Zmlmb0xlbmd0aHwgY2Fubm90
IGV4Y2VlZCB8bWF4RklGT0xlbmd0aHwuIE90aGVyd2lzZSBpdCBjcmFzaGVzLgotICAgIFB1c2hQ
dWxsRklGTyh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgZmlmb0xlbmd0aCk7Ci0g
ICAgflB1c2hQdWxsRklGTygpOworICAgIFdFQkNPUkVfRVhQT1JUIFB1c2hQdWxsRklGTyh1bnNp
Z25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgZmlmb0xlbmd0aCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgflB1c2hQdWxsRklGTygpOwogCiAgICAgLy8gUHVzaGVzIHRoZSByZW5kZXJlZCBmcmFt
ZXMgYnkgV2ViQXVkaW8gZW5naW5lLgogICAgIC8vICAtIFRoZSB8aW5wdXRCdXN8IGxlbmd0aCBp
cyAxMjggZnJhbWVzICgxIHJlbmRlciBxdWFudHVtKSwgZml4ZWQuCiAgICAgLy8gIC0gSW4gY2Fz
ZSBvZiBvdmVyZmxvdyAoRklGTyBmdWxsIHdoaWxlIHB1c2gpLCB0aGUgZXhpc3RpbmcgZnJhbWVz
IGluIEZJRk8KICAgICAvLyAgICB3aWxsIGJlIG92ZXJ3cml0dGVuIGFuZCB8aW5kZXhSZWFkfCB3
aWxsIGJlIGZvcmNpYmx5IG1vdmVkIHRvCiAgICAgLy8gICAgfGluZGV4V3JpdGV8IHRvIGF2b2lk
IHJlYWRpbmcgb3ZlcndyaXR0ZW4gZnJhbWVzLgotICAgIHZvaWQgcHVzaChjb25zdCBBdWRpb0J1
cyogaW5wdXRCdXMpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHVzaChjb25zdCBBdWRpb0J1
cyogaW5wdXRCdXMpOwogCiAgICAgLy8gUHVsbHMgfGZyYW1lc1JlcXVlc3RlZHwgYnkgdGhlIGF1
ZGlvIGRldmljZSB0aHJlYWQgYW5kIHJldHVybnMgdGhlIGFjdHVhbAogICAgIC8vIG51bWJlciBv
ZiBmcmFtZXMgdG8gYmUgcmVuZGVyZWQgYnkgdGhlIHNvdXJjZS4gKGkuZS4gV2ViQXVkaW8gZ3Jh
cGgpCi0gICAgc2l6ZV90IHB1bGwoQXVkaW9CdXMqIG91dHB1dEJ1cywgc2l6ZV90IGZyYW1lc1Jl
cXVlc3RlZCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc2l6ZV90IHB1bGwoQXVkaW9CdXMqIG91dHB1
dEJ1cywgc2l6ZV90IGZyYW1lc1JlcXVlc3RlZCk7CiAKICAgICBzaXplX3QgZnJhbWVzQXZhaWxh
YmxlKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZXNBdmFpbGFibGU7IH0KICAgICBzaXplX3QgbGVu
Z3RoKCkgY29uc3QgeyByZXR1cm4gbV9maWZvTGVuZ3RoOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25N
YW5hZ2VyLmNwcAppbmRleCA1MWVhNjY5NTNmNjEzMzM1NjIzNzc2ZTdlMzhhMmYxOTBiNDU4NmMz
Li45Y2FhMGFlZjMyZGRiZDFiYWQxNGU1NjIxMmVlMTVjNWQ3ODU1ODczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5jcHAKQEAgLTM1LDEyICszNSwxNiBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvQXVkaW9CdXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRpb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXVk
aW9VdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1B1c2hQdWxsRklGTy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCitjb25zdGV4cHIgc2l6ZV90IGZpZm9TaXplID0gOTYgKiBXZWJD
b3JlOjpBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemU7CisKIGNsYXNzIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbj4sIHB1YmxpYyBXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2sgewogcHVibGljOgog
ICAgIHVzaW5nIEF1ZGlvQnVzID0gV2ViQ29yZTo6QXVkaW9CdXM7CkBAIC03NiwxNiArODAsMjMg
QEAgcHJpdmF0ZToKICAgICAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKICAgICAgICAg
LCBtX2lkKGlkZW50aWZpZXIpCiAgICAgICAgICwgbV9kZXN0aW5hdGlvbihBdWRpb0Rlc3RpbmF0
aW9uOjpjcmVhdGUoKnRoaXMsIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywg
bnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkpCisgICAgICAgICwgbV9maWZvKG51
bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZpZm9TaXplKQogICAgIHsKICAgICB9CiAKICAgICB2b2lk
IHJlbmRlcihBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNp
emVfdCBmcmFtZXNUb1Byb2Nlc3MsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvSU9Qb3NpdGlvbiYgb3V0
cHV0UG9zaXRpb24pIG92ZXJyaWRlCiAgICAgeworICAgICAgICBBU1NFUlQoIWlzTWFpblRocmVh
ZCgpKTsKKwogICAgICAgICBpZiAobV9wcm90ZWN0VGhpc0R1cmluZ0dyYWNlZnVsU2h1dGRvd24p
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyk7Ci0gICAgICAgIEJpbmFyeVNlbWFwaG9yZSByZW5kZXJTZW1hcGhvcmU7Cisg
ICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9maWZvTG9jayk7
CisgICAgICAgICAgICBmcmFtZXNUb1Byb2Nlc3MgPSBtX2ZpZm8ucHVsbChkZXN0aW5hdGlvbkJ1
cywgZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZyYW1lc1RvUHJv
Y2VzcykKKyAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBWZWN0b3I8UmVmPFNoYXJlZE1l
bW9yeT4+IGJ1ZmZlcnM7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZXN0aW5h
dGlvbkJ1cy0+bnVtYmVyT2ZDaGFubmVscygpOyArK2kpIHsKQEAgLTkzLDIxICsxMDQsMTkgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIGJ1ZmZlcnMuYXBwZW5kKCptZW1vcnkpOwogICAgICAgICB9
CiAKLSAgICAgICAgLy8gRklYTUU6IFJlcGxhY2UgdGhpcyBjb2RlIHdpdGggYSByaW5nIGJ1ZmZl
ci4gQXQgbGVhc3QgdGhpcyBoYXBwZW5zIGluIGF1ZGlvIHRocmVhZC4KLSAgICAgICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIGZyYW1l
c1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24sICZidWZmZXJzLCAmcmVuZGVyU2VtYXBob3JlXSB7
CisgICAgICAgIC8vIEZJWE1FOiBJdCBpcyB1bmZvcnR1bmF0ZSB3ZSBoYXZlIHRvIGRpc3BhdGNo
IHRvIHRoZSBtYWluIHRoZWFkIGhlcmUuIFdlIHNob3VsZCBiZSBhYmxlIHRvIElQQyBzdHJhaWdo
dCBmcm9tIHRoZQorICAgICAgICAvLyByZW5kZXIgdGhyZWFkIGJ1dCB0aGlzIGlzIG5vdCBzdXBw
b3J0ZWQgYnkgc2VuZFdpdGhBc3luY1JlcGx5KCkuCisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQo
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZnJhbWVzVG9Qcm9jZXNzLCBv
dXRwdXRQb3NpdGlvbiwgYnVmZmVycyA9IFdURk1vdmUoYnVmZmVycyldKCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICBSZW1vdGVBdWRpb0J1c0RhdGEgYnVzRGF0YSB7IGZyYW1lc1RvUHJvY2Vzcywg
b3V0cHV0UG9zaXRpb24sIGJ1ZmZlcnMubWFwKFtdKGF1dG8mIG1lbW9yeSkgeyByZXR1cm4gbWVt
b3J5LmNvcHlSZWYoKTsgfSkgfTsKICAgICAgICAgICAgIEFTU0VSVChmcmFtZXNUb1Byb2Nlc3Mp
OwotICAgICAgICAgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6UmVuZGVyQnVmZmVyKGJ1
c0RhdGEpLCBbJl0oKSB7Ci0gICAgICAgICAgICAgICAgcmVuZGVyU2VtYXBob3JlLnNpZ25hbCgp
OworICAgICAgICAgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6UmVuZGVyQnVmZmVyKGJ1
c0RhdGEpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGJ1
ZmZlcnMgPSBXVEZNb3ZlKGJ1ZmZlcnMpLCBmcmFtZXNUb1Byb2Nlc3NdKCkgeworICAgICAgICAg
ICAgICAgIGF1dG8gYXVkaW9CdXMgPSBBdWRpb0J1czo6Y3JlYXRlKGJ1ZmZlcnMuc2l6ZSgpLCBm
cmFtZXNUb1Byb2Nlc3MsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgYnVmZmVycy5zaXplKCk7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgYXVkaW9C
dXMtPnNldENoYW5uZWxNZW1vcnkoaSwgKGZsb2F0KilidWZmZXJzW2ldLT5kYXRhKCksIGZyYW1l
c1RvUHJvY2Vzcyk7CisgICAgICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2Zp
Zm9Mb2NrKTsKKyAgICAgICAgICAgICAgICBtX2ZpZm8ucHVzaChhdWRpb0J1cy5nZXQoKSk7CiAg
ICAgICAgICAgICB9LCBtX2lkLnRvVUludDY0KCkpOwogICAgICAgICB9KTsKLSAgICAgICAgcmVu
ZGVyU2VtYXBob3JlLndhaXQoKTsKLQotICAgICAgICBhdXRvIGF1ZGlvQnVzID0gQXVkaW9CdXM6
OmNyZWF0ZShidWZmZXJzLnNpemUoKSwgZnJhbWVzVG9Qcm9jZXNzLCBmYWxzZSk7Ci0gICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBidWZmZXJzLnNpemUoKTsgKytpKQotICAgICAgICAg
ICAgYXVkaW9CdXMtPnNldENoYW5uZWxNZW1vcnkoaSwgKGZsb2F0KilidWZmZXJzW2ldLT5kYXRh
KCksIGZyYW1lc1RvUHJvY2Vzcyk7Ci0gICAgICAgIGRlc3RpbmF0aW9uQnVzLT5jb3B5RnJvbSgq
YXVkaW9CdXMpOwogICAgIH0KIAogICAgIHZvaWQgaXNQbGF5aW5nRGlkQ2hhbmdlKCkgb3ZlcnJp
ZGUKQEAgLTEyNyw2ICsxMzYsOCBAQCBwcml2YXRlOgogICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25JZGVudGlmaWVyIG1faWQ7CiAgICAgUmVmUHRyPEF1ZGlvRGVzdGluYXRpb24+IG1fZGVzdGlu
YXRpb247CiAgICAgUmVmUHRyPFJlbW90ZUF1ZGlvRGVzdGluYXRpb24+IG1fcHJvdGVjdFRoaXNE
dXJpbmdHcmFjZWZ1bFNodXRkb3duOworICAgIExvY2sgbV9maWZvTG9jazsKKyAgICBXZWJDb3Jl
OjpQdXNoUHVsbEZJRk8gbV9maWZvOwogfTsKIAogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFn
ZXI6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MmIGNvbm5lY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKaW5kZXggZjhhMjgyNGY4NjM3YTQ2OWNjOWYxMTU0
YjdlODlkZmE0NTI4MTVjNS4uNTIwNzI5M2ZkZjA3MDJmM2I5ZmFmNWZmOTJmN2U0OWUwMzcxYTYx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2Vi
UlRDQ29kZWNzUHJveHkuaApAQCAtNTEsNyArNTEsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKIAotY2xhc3MgTGliV2ViUlRDQ29kZWNz
UHJveHkgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgewor
Y2xhc3MgTGliV2ViUlRDQ29kZWNzUHJveHkgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJl
YWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPExpYldlYlJUQ0NvZGVjc1Byb3h5PiBjcmVhdGUo
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgcHJvY2VzcykgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBMaWJXZWJSVENDb2RlY3NQcm94eShwcm9jZXNzKSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oCmluZGV4IDhjN2E3NzFhYmYxNDVlODZh
NTVkYzlmMDI1MmFkZjRiZmY2ZjJlZGMuLjlmMGY2NTJmNjkzNjAyMDA4MzNlYjg5ZDYzYTQ2ZDFl
ZDVlZTllOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ck1hbmFnZXIuaApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI7CiAKLWNsYXNzIFJlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciBmaW5hbCA6IHB1YmxpYyBJUEM6OkNvbm5l
Y3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlciB7CitjbGFzcyBSZW1vdGVBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpU
aHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlcj4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIHByb2Nl
c3MpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJNYW5hZ2VyKHByb2Nlc3MpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIuaAppbmRleCA4ZTQ4OWIxNjNjYzNlYzZkZTAwZTJlMGJmOTI2NzhhMmQ2Y2Nm
NDFmLi5hMzI0YWVjOTU3NDFhYTc4NmNhNGIwMDIzZjY5MmExOTU3MTE0NTYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaApAQCAtNDYsNyArNDYsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiBjbGFz
cyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7CiAKLWNsYXNzIFJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpU
aHJlYWRNZXNzYWdlUmVjZWl2ZXIgeworY2xhc3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlciBmaW5hbCA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VS
ZWNlaXZlclJlZkNvdW50ZWQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcj4g
Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24pIHsgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcihjb25uZWN0
aW9uKSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQlNlcnZlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVk
REIvV2ViSURCU2VydmVyLmgKaW5kZXggM2VhMTE2YzBiOGE1NGJmMTk5NjBmOWI1YzA2N2JmYjcw
OGQxOTc2NC4uYjNkZmNlZGYyODFlNDU2ZjA5N2U2ZjQ5MDk3YmE4YzZjMzM2NDhjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2Vy
dmVyLmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgSURCU2VydmVyOwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotY2xhc3MgV2ViSURCU2VydmVyIGZpbmFsIDogcHVibGljIENyb3NzVGhyZWFkVGFz
a0hhbmRsZXIsIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlciB7
CitjbGFzcyBXZWJJREJTZXJ2ZXIgZmluYWwgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRUYXNrSGFuZGxl
ciwgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRl
ZCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJJREJTZXJ2ZXI+IGNyZWF0ZShQQUw6OlNl
c3Npb25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdlYkNvcmU6OklEQlNlcnZlcjo6SURC
U2VydmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1ZXN0ZXImJik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRl
ci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3Zp
ZGVyLmgKaW5kZXggYWFjNmUyMGUwNGI4NGU4Njc1MTk3M2YyOGM2ZTJiMmJjMGI4ODE0Zi4uM2Ew
NjcwM2Y0MTJlOTA1NzVkYmUzNTUzOTQ1MDU2NGQ1MGE2N2MzMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgK
QEAgLTYwLDcgKzYwLDcgQEAgY2xhc3MgTmV0d29ya1JUQ1Jlc29sdmVyOwogY2xhc3MgTmV0d29y
a1Nlc3Npb247CiBzdHJ1Y3QgUlRDUGFja2V0T3B0aW9uczsKIAotY2xhc3MgTmV0d29ya1JUQ1By
b3ZpZGVyIDogcHVibGljIHJ0Yzo6TWVzc2FnZUhhbmRsZXIsIHB1YmxpYyBJUEM6OkNvbm5lY3Rp
b246OlRocmVhZE1lc3NhZ2VSZWNlaXZlciB7CitjbGFzcyBOZXR3b3JrUlRDUHJvdmlkZXIgOiBw
dWJsaWMgcnRjOjpNZXNzYWdlSGFuZGxlciwgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFk
TWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxOZXR3
b3JrUlRDUHJvdmlkZXI+IGNyZWF0ZShOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29u
bmVjdGlvbikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrUlRDUHJvdmlkZXIoY29ubmVj
dGlvbikpOyB9CiAgICAgfk5ldHdvcmtSVENQcm92aWRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9Db25uZWN0aW9uLmNwcAppbmRleCA0OTIwOTYyMjE4NWYzYjNiNGE3MjU2ZTU0MmVi
NmQ2ZGM2ZjdjNDdjLi4zMDY4MzczOGM3NmViZmYwNzY0ODRkMTczMDRhODYyZWQ2YWFiNTBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApAQCAtMzExLDIzICsz
MTEsMjUgQEAgdm9pZCBDb25uZWN0aW9uOjpzZXRTaG91bGRFeGl0T25TeW5jTWVzc2FnZVNlbmRG
YWlsdXJlKGJvb2wgc2hvdWxkRXhpdE9uU3luY01lc3MKICAgICBtX3Nob3VsZEV4aXRPblN5bmNN
ZXNzYWdlU2VuZEZhaWx1cmUgPSBzaG91bGRFeGl0T25TeW5jTWVzc2FnZVNlbmRGYWlsdXJlOwog
fQogCi12b2lkIENvbm5lY3Rpb246OmFkZFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihSZWNlaXZl
ck5hbWUgbWVzc2FnZVJlY2VpdmVyTmFtZSwgV29ya1F1ZXVlJiB3b3JrUXVldWUsIFdvcmtRdWV1
ZU1lc3NhZ2VSZWNlaXZlciogd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKQordm9pZCBDb25uZWN0
aW9uOjphZGRXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNl
aXZlck5hbWUsIFdvcmtRdWV1ZSYgd29ya1F1ZXVlLCBXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIq
IHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciwgdWludDY0X3QgZGVzdGluYXRpb25JRCkKIHsKICAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9j
ayhtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnNNdXRleCk7Ci0gICAgQVNTRVJUKCFtX3dvcmtR
dWV1ZU1lc3NhZ2VSZWNlaXZlcnMuY29udGFpbnMobWVzc2FnZVJlY2VpdmVyTmFtZSkpOworICAg
IGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIoc3RhdGljX2Nhc3Q8dWludDhfdD4obWVzc2FnZVJl
Y2VpdmVyTmFtZSksIGRlc3RpbmF0aW9uSUQpOworICAgIEFTU0VSVCghbV93b3JrUXVldWVNZXNz
YWdlUmVjZWl2ZXJzLmNvbnRhaW5zKGtleSkpOwogCi0gICAgbV93b3JrUXVldWVNZXNzYWdlUmVj
ZWl2ZXJzLmFkZChtZXNzYWdlUmVjZWl2ZXJOYW1lLCBzdGQ6Om1ha2VfcGFpcigmd29ya1F1ZXVl
LCB3b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIpKTsKKyAgICBtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNl
aXZlcnMuYWRkKGtleSwgc3RkOjptYWtlX3BhaXIoJndvcmtRdWV1ZSwgd29ya1F1ZXVlTWVzc2Fn
ZVJlY2VpdmVyKSk7CiB9CiAKLXZvaWQgQ29ubmVjdGlvbjo6cmVtb3ZlV29ya1F1ZXVlTWVzc2Fn
ZVJlY2VpdmVyKFJlY2VpdmVyTmFtZSBtZXNzYWdlUmVjZWl2ZXJOYW1lKQordm9pZCBDb25uZWN0
aW9uOjpyZW1vdmVXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VS
ZWNlaXZlck5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKIAogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV93b3JrUXVldWVN
ZXNzYWdlUmVjZWl2ZXJzTXV0ZXgpOwotICAgIEFTU0VSVChtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNl
aXZlcnMuY29udGFpbnMobWVzc2FnZVJlY2VpdmVyTmFtZSkpOwotICAgIG1fd29ya1F1ZXVlTWVz
c2FnZVJlY2VpdmVycy5yZW1vdmUobWVzc2FnZVJlY2VpdmVyTmFtZSk7CisgICAgYXV0byBrZXkg
PSBzdGQ6Om1ha2VfcGFpcihzdGF0aWNfY2FzdDx1aW50OF90PihtZXNzYWdlUmVjZWl2ZXJOYW1l
KSwgZGVzdGluYXRpb25JRCk7CisgICAgQVNTRVJUKG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVy
cy5jb250YWlucyhrZXkpKTsKKyAgICBtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMucmVtb3Zl
KGtleSk7CiB9CiAKIHZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hXb3JrUXVldWVNZXNzYWdlUmVj
ZWl2ZXJNZXNzYWdlKFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciYgd29ya1F1ZXVlTWVzc2FnZVJl
Y2VpdmVyLCBEZWNvZGVyJiBkZWNvZGVyKQpAQCAtMzU3LDI0ICszNTksMjYgQEAgdm9pZCBDb25u
ZWN0aW9uOjpkaXNwYXRjaFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoV29ya1F1ZXVl
TWVzc2FnZVJlY2VpdmUKICAgICAgICAgc2VuZFN5bmNSZXBseShXVEZNb3ZlKHJlcGx5RW5jb2Rl
cikpOwogfQogCi12b2lkIENvbm5lY3Rpb246OmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihSZWNl
aXZlck5hbWUgbWVzc2FnZVJlY2VpdmVyTmFtZSwgVGhyZWFkTWVzc2FnZVJlY2VpdmVyKiB0aHJl
YWRNZXNzYWdlUmVjZWl2ZXIpCit2b2lkIENvbm5lY3Rpb246OmFkZFRocmVhZE1lc3NhZ2VSZWNl
aXZlcihSZWNlaXZlck5hbWUgbWVzc2FnZVJlY2VpdmVyTmFtZSwgVGhyZWFkTWVzc2FnZVJlY2Vp
dmVyKiB0aHJlYWRNZXNzYWdlUmVjZWl2ZXIsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQpCiB7CiAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzTG9jayk7Ci0gICAgQVNTRVJUKCFtX3RocmVhZE1l
c3NhZ2VSZWNlaXZlcnMuY29udGFpbnMobWVzc2FnZVJlY2VpdmVyTmFtZSkpOworICAgIGF1dG8g
a2V5ID0gc3RkOjptYWtlX3BhaXIoc3RhdGljX2Nhc3Q8dWludDhfdD4obWVzc2FnZVJlY2VpdmVy
TmFtZSksIGRlc3RpbmF0aW9uSUQpOworICAgIEFTU0VSVCghbV90aHJlYWRNZXNzYWdlUmVjZWl2
ZXJzLmNvbnRhaW5zKGtleSkpOwogCi0gICAgbV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzLmFkZCht
ZXNzYWdlUmVjZWl2ZXJOYW1lLCB0aHJlYWRNZXNzYWdlUmVjZWl2ZXIpOworICAgIG1fdGhyZWFk
TWVzc2FnZVJlY2VpdmVycy5hZGQoa2V5LCB0aHJlYWRNZXNzYWdlUmVjZWl2ZXIpOwogfQogCi12
b2lkIENvbm5lY3Rpb246OnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihSZWNlaXZlck5hbWUg
bWVzc2FnZVJlY2VpdmVyTmFtZSkKK3ZvaWQgQ29ubmVjdGlvbjo6cmVtb3ZlVGhyZWFkTWVzc2Fn
ZVJlY2VpdmVyKFJlY2VpdmVyTmFtZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCB1aW50NjRfdCBkZXN0
aW5hdGlvbklEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1fdGhyZWFkTWVzc2FnZVJlY2VpdmVyc0xvY2spOwotICAgIEFT
U0VSVChtX3RocmVhZE1lc3NhZ2VSZWNlaXZlcnMuY29udGFpbnMobWVzc2FnZVJlY2VpdmVyTmFt
ZSkpOworICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIoc3RhdGljX2Nhc3Q8dWludDhfdD4o
bWVzc2FnZVJlY2VpdmVyTmFtZSksIGRlc3RpbmF0aW9uSUQpOworICAgIEFTU0VSVChtX3RocmVh
ZE1lc3NhZ2VSZWNlaXZlcnMuY29udGFpbnMoa2V5KSk7CiAKLSAgICBtX3RocmVhZE1lc3NhZ2VS
ZWNlaXZlcnMucmVtb3ZlKG1lc3NhZ2VSZWNlaXZlck5hbWUpOworICAgIG1fdGhyZWFkTWVzc2Fn
ZVJlY2VpdmVycy5yZW1vdmUoa2V5KTsKIH0KIAogdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaFRo
cmVhZE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoVGhyZWFkTWVzc2FnZVJlY2VpdmVyJiB0aHJlYWRN
ZXNzYWdlUmVjZWl2ZXIsIERlY29kZXImIGRlY29kZXIpCkBAIC03MTMsNyArNzE3LDggQEAgdm9p
ZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxEZWNv
ZGVyPiBtZXNzYWdlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFXb3JrUXVl
dWVNZXNzYWdlUmVjZWl2ZXJNYXA6OmlzVmFsaWRLZXkobWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKSB8fCAhVGhyZWFkTWVzc2FnZVJlY2VpdmVyTWFwOjppc1ZhbGlkS2V5KG1lc3NhZ2Ut
Pm1lc3NhZ2VSZWNlaXZlck5hbWUoKSkpIHsKKyAgICBhdXRvIHRocmVhZGVkUmVjZWl2ZXJLZXkg
PSBzdGQ6Om1ha2VfcGFpcihzdGF0aWNfY2FzdDx1aW50OF90PihtZXNzYWdlLT5tZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpLCBtZXNzYWdlLT5kZXN0aW5hdGlvbklEKCkpOworICAgIGlmICghV29ya1F1
ZXVlTWVzc2FnZVJlY2VpdmVyTWFwOjppc1ZhbGlkS2V5KHRocmVhZGVkUmVjZWl2ZXJLZXkpIHx8
ICFUaHJlYWRNZXNzYWdlUmVjZWl2ZXJNYXA6OmlzVmFsaWRLZXkodGhyZWFkZWRSZWNlaXZlcktl
eSkpIHsKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIG1lc3NhZ2VOYW1lID0gbWVzc2FnZS0+bWVzc2FnZU5hbWUoKV0oKSBt
dXRhYmxlIHsKICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpc3BhdGNoRGlkUmVjZWl2ZUlu
dmFsaWRNZXNzYWdlKG1lc3NhZ2VOYW1lKTsKICAgICAgICAgfSk7CkBAIC0xMDA0LDcgKzEwMDks
OCBAQCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZShEZWNvZGVyJiBkZWNvZGVyKQog
Ym9vbCBDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2VUb1dvcmtRdWV1ZVJlY2VpdmVyKHN0ZDo6
dW5pcXVlX3B0cjxEZWNvZGVyPiYgbWVzc2FnZSkKIHsKICAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyc011dGV4KTsKLSAgICBhdXRvIGl0ID0gbV93
b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzLmZpbmQobWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKTsKKyAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHN0YXRpY19jYXN0PHVpbnQ4X3Q+
KG1lc3NhZ2UtPm1lc3NhZ2VSZWNlaXZlck5hbWUoKSksIG1lc3NhZ2UtPmRlc3RpbmF0aW9uSUQo
KSk7CisgICAgYXV0byBpdCA9IG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVycy5maW5kKGtleSk7
CiAgICAgaWYgKGl0ICE9IG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVycy5lbmQoKSkgewogICAg
ICAgICBpdC0+dmFsdWUuZmlyc3QtPmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciA9IGl0LT52YWx1ZS5zZWNvbmQsIGRlY29k
ZXIgPSBXVEZNb3ZlKG1lc3NhZ2UpXSgpIG11dGFibGUgewogICAgICAgICAgICAgcHJvdGVjdGVk
VGhpcy0+ZGlzcGF0Y2hXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKCp3b3JrUXVldWVN
ZXNzYWdlUmVjZWl2ZXIsICpkZWNvZGVyKTsKQEAgLTEwMTksNyArMTAyNSw4IEBAIGJvb2wgQ29u
bmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlVG9UaHJlYWRSZWNlaXZlcihzdGQ6OnVuaXF1ZV9wdHI8
RGVjb2Rlcj4mIG1lc3NhCiAgICAgUmVmUHRyPFRocmVhZE1lc3NhZ2VSZWNlaXZlcj4gcHJvdGVj
dGVkVGhyZWFkTWVzc2FnZVJlY2VpdmVyOwogICAgIHsKICAgICAgICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhtX3RocmVhZE1lc3NhZ2VSZWNlaXZlcnNMb2NrKTsKLSAgICAgICAgcHJvdGVjdGVk
VGhyZWFkTWVzc2FnZVJlY2VpdmVyID0gbV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzLmdldChtZXNz
YWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworICAgICAgICBhdXRvIGtleSA9IHN0ZDo6bWFr
ZV9wYWlyKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KG1lc3NhZ2UtPm1lc3NhZ2VSZWNlaXZlck5hbWUo
KSksIG1lc3NhZ2UtPmRlc3RpbmF0aW9uSUQoKSk7CisgICAgICAgIHByb3RlY3RlZFRocmVhZE1l
c3NhZ2VSZWNlaXZlciA9IG1fdGhyZWFkTWVzc2FnZVJlY2VpdmVycy5nZXQoa2V5KTsKICAgICB9
CiAKICAgICBpZiAocHJvdGVjdGVkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKaW5kZXggODU3NzJmM2QzMDc5OTBiNmI3YTkxYzBk
N2RmYjdiOWI3ZjIwNDYzMi4uNzk1YWYwMzc4MjE2N2MwNWUyMjcxZDc4YzJkNWExZDM5ODMxNDIy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaApAQCAtMTE3LDkgKzEx
NywyNiBAQCBwdWJsaWM6CiAgICAgY2xhc3MgV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyIDogcHVi
bGljIE1lc3NhZ2VSZWNlaXZlciwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdvcmtRdWV1
ZU1lc3NhZ2VSZWNlaXZlcj4gewogICAgIH07CiAKLSAgICBjbGFzcyBUaHJlYWRNZXNzYWdlUmVj
ZWl2ZXIgOiBwdWJsaWMgTWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8VGhyZWFkTWVzc2FnZVJlY2VpdmVyPiB7CisgICAgY2xhc3MgVGhyZWFkTWVzc2FnZVJlY2Vp
dmVyIDogcHVibGljIE1lc3NhZ2VSZWNlaXZlciB7CiAgICAgcHVibGljOgotICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hUb1RocmVhZChXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJikgeyB9Owor
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hUb1RocmVhZChXVEY6OkZ1bmN0aW9uPHZvaWQo
KT4mJikgPSAwOworCisgICAgICAgIHZvaWQgcmVmKCkgeyByZWZNZXNzYWdlUmVjZWl2ZXIoKTsg
fQorICAgICAgICB2b2lkIGRlcmVmKCkgeyBkZXJlZk1lc3NhZ2VSZWNlaXZlcigpOyB9CisKKyAg
ICBwcm90ZWN0ZWQ6CisgICAgICAgIHZpcnR1YWwgdm9pZCByZWZNZXNzYWdlUmVjZWl2ZXIoKSA9
IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkZXJlZk1lc3NhZ2VSZWNlaXZlcigpID0gMDsKKyAg
ICB9OworCisgICAgY2xhc3MgVGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCA6IHB1Ymxp
YyBUaHJlYWRNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJl
YWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkPiB7CisgICAgcHVibGljOgorICAgICAgICB1c2lu
ZyBUaHJlYWRTYWZlUmVmQ291bnRlZDo6cmVmOworICAgICAgICB1c2luZyBUaHJlYWRTYWZlUmVm
Q291bnRlZDo6ZGVyZWY7CisKKyAgICBwcml2YXRlOgorICAgICAgICB2b2lkIHJlZk1lc3NhZ2VS
ZWNlaXZlcigpIGZpbmFsIHsgVGhyZWFkU2FmZVJlZkNvdW50ZWQ6OnJlZigpOyB9CisgICAgICAg
IHZvaWQgZGVyZWZNZXNzYWdlUmVjZWl2ZXIoKSBmaW5hbCB7IFRocmVhZFNhZmVSZWZDb3VudGVk
OjpkZXJlZigpOyB9CiAgICAgfTsKIAogI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQpAQCAt
MTkwLDExICsyMDcsMTEgQEAgcHVibGljOgogICAgIHR5cGVkZWYgdm9pZCAoKkRpZENsb3NlT25D
b25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2spKENvbm5lY3Rpb24qKTsKICAgICB2b2lkIHNldERp
ZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2soRGlkQ2xvc2VPbkNvbm5lY3Rpb25X
b3JrUXVldWVDYWxsYmFjayk7CiAKLSAgICB2b2lkIGFkZFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZl
cihSZWNlaXZlck5hbWUsIFdvcmtRdWV1ZSYsIFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciopOwot
ICAgIHZvaWQgcmVtb3ZlV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKFJlY2VpdmVyTmFtZSk7Cisg
ICAgdm9pZCBhZGRXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lLCBXb3JrUXVl
dWUmLCBXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIqLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0g
MCk7CisgICAgdm9pZCByZW1vdmVXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1l
LCB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0gMCk7CiAKLSAgICB2b2lkIGFkZFRocmVhZE1lc3Nh
Z2VSZWNlaXZlcihSZWNlaXZlck5hbWUsIFRocmVhZE1lc3NhZ2VSZWNlaXZlciopOwotICAgIHZv
aWQgcmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKFJlY2VpdmVyTmFtZSk7CisgICAgdm9pZCBh
ZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lLCBUaHJlYWRNZXNzYWdlUmVjZWl2
ZXIqLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0gMCk7CisgICAgdm9pZCByZW1vdmVUaHJlYWRN
ZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0gMCk7
CiAKICAgICBib29sIG9wZW4oKTsKICAgICB2b2lkIGludmFsaWRhdGUoKTsKQEAgLTM0OSwxMSAr
MzY2LDExIEBAIHByaXZhdGU6CiAgICAgUmVmPFdvcmtRdWV1ZT4gbV9jb25uZWN0aW9uUXVldWU7
CiAKICAgICBMb2NrIG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyc011dGV4OwotICAgIHVzaW5n
IFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1hcCA9IEhhc2hNYXA8UmVjZWl2ZXJOYW1lLCBzdGQ6
OnBhaXI8UmVmUHRyPFdvcmtRdWV1ZT4sIFJlZlB0cjxXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXI+
PiwgV1RGOjpJbnRIYXNoPFJlY2VpdmVyTmFtZT4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8
UmVjZWl2ZXJOYW1lPj47CisgICAgdXNpbmcgV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWFwID0g
SGFzaE1hcDxzdGQ6OnBhaXI8dWludDhfdCwgdWludDY0X3Q+LCBzdGQ6OnBhaXI8UmVmUHRyPFdv
cmtRdWV1ZT4sIFJlZlB0cjxXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXI+Pj47CiAgICAgV29ya1F1
ZXVlTWVzc2FnZVJlY2VpdmVyTWFwIG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyczsKIAogICAg
IExvY2sgbV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzTG9jazsKLSAgICB1c2luZyBUaHJlYWRNZXNz
YWdlUmVjZWl2ZXJNYXAgPSBIYXNoTWFwPFJlY2VpdmVyTmFtZSwgUmVmUHRyPFRocmVhZE1lc3Nh
Z2VSZWNlaXZlcj4sIFdURjo6SW50SGFzaDxSZWNlaXZlck5hbWU+LCBXVEY6OlN0cm9uZ0VudW1I
YXNoVHJhaXRzPFJlY2VpdmVyTmFtZT4+OworICAgIHVzaW5nIFRocmVhZE1lc3NhZ2VSZWNlaXZl
ck1hcCA9IEhhc2hNYXA8c3RkOjpwYWlyPHVpbnQ4X3QsIHVpbnQ2NF90PiwgUmVmUHRyPFRocmVh
ZE1lc3NhZ2VSZWNlaXZlcj4+OwogICAgIFRocmVhZE1lc3NhZ2VSZWNlaXZlck1hcCBtX3RocmVh
ZE1lc3NhZ2VSZWNlaXZlcnM7CiAKICAgICB1bnNpZ25lZCBtX2luU2VuZFN5bmNDb3VudDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAppbmRleCA4MjEzODAwYjlmMTBjNTgyNjBl
MDdhNzkwZjdjYjIwYTdlMGVhMDc2Li44NDA0YzQ4ZTFjMmU0ODJhYmNkMjRlNTVkMmNjOTEzYmQy
NjdlNzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCkBAIC02MCw3ICs2
MCwxNiBAQCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYQogICAgIGNvbm5lY3Rpb24uY29ubmVjdGlv
bigpLnNlbmRTeW5jKAogICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXI6OkNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oaW5wdXREZXZpY2VJZCwgbnVtYmVyT2ZJbnB1
dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBzYW1wbGVSYXRlKSwKICAgICAgICAg
TWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpDcmVhdGVBdWRpb0Rlc3Rp
bmF0aW9uOjpSZXBseShkZXN0aW5hdGlvbklELCBmcmFtZXNQZXJCdWZmZXIpLCAwKTsKLSAgICBj
b25uZWN0aW9uLm1lc3NhZ2VSZWNlaXZlck1hcCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGRl
c3RpbmF0aW9uSUQudG9VSW50NjQoKSwgKnRoaXMpOworCisgICAgYXV0byBvZmZUaHJlYWRSZW5k
ZXJpbmcgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSgpIG11dGFibGUg
eworICAgICAgICB3aGlsZSAoIW1fdGhyZWFkVGFza1F1ZXVlLmlzS2lsbGVkKCkpIHsKKyAgICAg
ICAgICAgIGlmIChhdXRvIHRhc2sgPSBtX3RocmVhZFRhc2tRdWV1ZS53YWl0Rm9yTWVzc2FnZSgp
KQorICAgICAgICAgICAgICAgIHRhc2soKTsKKyAgICAgICAgfQorICAgIH07CisgICAgbV9yZW5k
ZXJUaHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgiUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IHJl
bmRlciB0aHJlYWQiLCBXVEZNb3ZlKG9mZlRocmVhZFJlbmRlcmluZyksIFRocmVhZFR5cGU6OkF1
ZGlvKTsKKworICAgIGNvbm5lY3Rpb24uY29ubmVjdGlvbigpLmFkZFRocmVhZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksIHRoaXMsIGRlc3RpbmF0aW9uSUQudG9VSW50NjQoKSk7CiAKICAgICBtX2Rlc3Rp
bmF0aW9uSUQgPSBkZXN0aW5hdGlvbklEOwogICAgIG1fZnJhbWVzUGVyQnVmZmVyID0gZnJhbWVz
UGVyQnVmZmVyOwpAQCAtNjksMTIgKzc4LDE1IEBAIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eTo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhCiBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6On5SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHko
KQogewogICAgIGF1dG8mIGNvbm5lY3Rpb24gPSAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKLSAgICBjb25uZWN0aW9uLm1lc3NhZ2VSZWNlaXZl
ck1hcCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fZGVzdGluYXRpb25JRC50b1VJbnQ2
NCgpKTsKKyAgICBjb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5yZW1vdmVUaHJlYWRNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLCBtX2Rlc3RpbmF0aW9uSUQudG9VSW50NjQoKSk7CiAKICAgICBjb25uZWN0aW9u
LmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoCiAgICAgICAgIE1lc3NhZ2VzOjpSZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6RGVsZXRlQXVkaW9EZXN0aW5hdGlvbihtX2Rlc3Rp
bmF0aW9uSUQpLCBbXSB7CiAgICAgICAgIC8vIENhbid0IHJlbW92ZSB0aGlzIGZyb20gcHJveHlN
YXAoKSBoZXJlIGJlY2F1c2UgdGhlIG9iamVjdCB3b3VsZCBoYXZlIGJlZW4gYWxyZWFkeSBkZWxl
dGVkLgogICAgIH0pOworCisgICAgbV90aHJlYWRUYXNrUXVldWUua2lsbCgpOworICAgIG1fcmVu
ZGVyVGhyZWFkLT53YWl0Rm9yQ29tcGxldGlvbigpOwogfQogCiB2b2lkIFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6c3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiYm
IGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpCkBAIC05NSwzMCArMTA3LDMwIEBAIHZvaWQgUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdG9wKCkKIAogdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHk6OnJlbmRlckJ1ZmZlcihjb25zdCBXZWJLaXQ6OlJlbW90ZUF1ZGlvQnVzRGF0YSYg
YXVkaW9CdXNEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgZG9lcyByZW5kZXJpbmcgb24gdGhlIG1haW4gdGhy
ZWFkIHdoZW4gQXVkaW9Xb3JrbGV0IGlzIG5vdCBhY3RpdmUsIHdoaWNoIGlzIGxpa2VseSBub3Qg
YSBnb29kIGlkZWEuCi0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlz
TWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2Vzcyk7
CiAgICAgQVNTRVJUKGF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVycy5zaXplKCkpOwogICAgIGF1
dG8gYXVkaW9CdXMgPSBBdWRpb0J1czo6Y3JlYXRlKGF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVy
cy5zaXplKCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MsIGZhbHNlKTsKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgYXVkaW9CdXNEYXRhLmNoYW5uZWxCdWZmZXJzLnNpemUoKTsg
KytpKQogICAgICAgICBhdWRpb0J1cy0+c2V0Q2hhbm5lbE1lbW9yeShpLCAoZmxvYXQqKWF1ZGlv
QnVzRGF0YS5jaGFubmVsQnVmZmVyc1tpXS0+ZGF0YSgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Q
cm9jZXNzKTsKIAotICAgIGF1dG8gZG9SZW5kZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBhdWRpb0J1cyA9IFdURk1vdmUoYXVkaW9CdXMpLCBmcmFtZXNUb1Byb2Nl
c3MgPSBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbiA9IGF1ZGlv
QnVzRGF0YS5vdXRwdXRQb3NpdGlvbl0gewotICAgICAgICBtX2NhbGxiYWNrLnJlbmRlcigwLCBh
dWRpb0J1cy5nZXQoKSwgZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbik7Ci0gICAgfTsK
LSAgICBpZiAobV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSB7Ci0gICAgICAgIG1fZGlzcGF0Y2hU
b1JlbmRlclRocmVhZChbZG9SZW5kZXIgPSBXVEZNb3ZlKGRvUmVuZGVyKSwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAg
ICAgIGRvUmVuZGVyKCk7Ci0gICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgfSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZG9S
ZW5kZXIoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9CisgICAgbV9jYWxs
YmFjay5yZW5kZXIoMCwgYXVkaW9CdXMuZ2V0KCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nl
c3MsIGF1ZGlvQnVzRGF0YS5vdXRwdXRQb3NpdGlvbik7CisgICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKIH0KIAogdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OmRpZENoYW5nZUlzUGxh
eWluZyhib29sIGlzUGxheWluZykKIHsKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKK30K
KworLy8gSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIKK3ZvaWQgUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaXNwYXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4m
JiB0YXNrKQoreworICAgIGlmIChtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQpIHsKKyAgICAgICAg
bV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKFdURk1vdmUodGFzaykpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIG1fdGhyZWFkVGFza1F1ZXVlLmFwcGVuZChXVEZNb3ZlKHRhc2spKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaApp
bmRleCA5MDdlY2Y1YTc3ZjQyYjk0Nzg5MGJkZjNhMTdlMThlY2ZiNWFhNWY5Li5jNGFkYjc1NjBk
NDYzNzU4ZWU3MTU2ZjAxZWVjOTk1OGQzY2ZkZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5LmgKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzU3VwcGxlbWVu
dC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0aW5hdGlvbi5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQXVkaW9JT0NhbGxiYWNrLmg+CisjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkUXVldWUu
aD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKICNp
bmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgpAQCAtNDAsMTIgKzQyLDEzIEBACiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgOiBw
dWJsaWMgV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbiwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNl
aXZlciB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitjbGFzcyBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbiwgcHVibGlj
IElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyIHsKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkpOwogcHVibGljOgogICAgIHVz
aW5nIEF1ZGlvQnVzID0gV2ViQ29yZTo6QXVkaW9CdXM7CiAgICAgdXNpbmcgQXVkaW9JT0NhbGxi
YWNrID0gV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrOworICAgIHVzaW5nIFdlYkNvcmU6OkF1ZGlv
RGVzdGluYXRpb246OnJlZjsKKyAgICB1c2luZyBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOjpk
ZXJlZjsKIAogICAgIHN0YXRpYyBSZWY8QXVkaW9EZXN0aW5hdGlvbj4gY3JlYXRlKEF1ZGlvSU9D
YWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJZCwgdW5zaWduZWQgbnVtYmVyT2ZJ
bnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1w
bGVSYXRlKTsKIApAQCAtNjgsMTIgKzcxLDE5IEBAIHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNz
YWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIGZpbmFsOwogCisgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRN
ZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpc3BhdGNoVG9UaHJlYWQoRnVuY3Rpb248dm9pZCgp
PiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlZk1lc3NhZ2VSZWNlaXZlcigpIGZpbmFsIHsgV2ViQ29y
ZTo6QXVkaW9EZXN0aW5hdGlvbjo6cmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmTWVzc2FnZVJlY2Vp
dmVyKCkgZmluYWwgeyBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOjpkZXJlZigpOyB9CisKICAg
ICBBdWRpb0lPQ2FsbGJhY2smIG1fY2FsbGJhY2s7CiAgICAgZmxvYXQgbV9zYW1wbGVSYXRlIHsg
MC4gfTsKICAgICB1bnNpZ25lZCBtX2ZyYW1lc1BlckJ1ZmZlciB7IDAgfTsKICAgICBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBtX2Rlc3RpbmF0aW9uSUQ7CiAgICAgYm9vbCBtX2lz
UGxheWluZyB7IGZhbHNlIH07CiAgICAgRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYp
PiBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQ7CisgICAgUmVmUHRyPFRocmVhZD4gbV9yZW5kZXJU
aHJlYWQ7CisgICAgQ3Jvc3NUaHJlYWRRdWV1ZTxGdW5jdGlvbjx2b2lkKCk+PiBtX3RocmVhZFRh
c2tRdWV1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrLmgK
aW5kZXggODNmMmExYjExMTdhZDNiM2Q2MDY1MmVjNGI2MTNlNTAzYzIxNmE2OS4uZTRjY2NmMGRj
NTdlYzg0ZWE2ZWM0ZGE5ODM0Y2NjYzRhNWE1MTk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmsuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5oCkBA
IC0zNSw3ICszNSw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBMaWJXZWJSVENO
ZXR3b3JrIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyIHsK
K2NsYXNzIExpYldlYlJUQ05ldHdvcmsgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRN
ZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBMaWJXZWJSVENOZXR3b3JrKCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIuaAppbmRleCBmNjE5N2NmOWVlNTcwNTJiMjg4MTcyZWFlYjdjYjU1NjZjNjE4Mjk1Li42
ZmI0YmMzN2I5MzgwMTZmY2U1YzVjNWFjNWE0MzcwMjdmMTg2YmU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIuaApAQCAtMzksNyArMzksNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3Mg
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJl
YWRNZXNzYWdlUmVjZWl2ZXIgeworY2xhc3MgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIgOiBw
dWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBSZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlcigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg5NDdhNGM0MTM4MjY5YmEzOWU3MTFiMGYwMjlmZGQy
ZjFkNmI2NGYuLjVlYjliOGJmOGNmYjkyMDhlOTlkYzc4ODlmMDZhNjU2YTY3Mzg2YmMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAyMC0xMC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFdlYkF1ZGlvIHRlc3RzIGFyZSBjcmFzaGluZyBpbiBkZWJ1ZyB3aGVu
IGVuYWJsaW5nIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NjYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVW5za2lwIHdlYmF1ZGlvIHRlc3RzIHdoZW4gdGhlIEdQVSBwcm9j
ZXNzIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25z
OgorCiAyMDIwLTEwLTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgQ2FsbGluZyBBdWRpb0NvbnRleHQucmVzdW1lKCkgcmlnaHQgYWZ0ZXIgQXVkaW9Db250ZXh0
LnN1c3BlbmQoKSBzaG91bGQgbm90IGJlIGEgbm8tb3AKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IGZkOTZkN2ZkZThiNDYzOWVmYTg2NzVkODAzZTUzZTU1Y2Vj
NjQzNjkuLjljZDk1NTFjZjE3MTA4YjYwNzBlZjZmYThmZTkzM2M3MmFlNzQ0YjEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzExLDEwICszMTEsOCBAQCBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21zdC1jb250ZW50LWhpbnQvTWVkaWFTdHJl
YW1UcmFjay1jb250ZW50SGludC5odAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
aWN0dXJlLWluLXBpY3R1cmUvbWVkaWFzdHJlYW0uaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
YXVkaW8tdGFpbnRpbmcuaHR0cHMuaHRtbCBbIFNraXAgXQogCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYmF1ZGlvIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0YyBbIFNraXAgXQogCi13ZWJhdWRpbyBbIFNraXAgXQogd2VicnRjIFsgU2tp
cCBdCiAKIHdlYmdsIFsgU2tpcCBdCkBAIC0zOTIsNCArMzkwLDQgQEAgaHR0cC93cHQvd2ViYXV0
aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsLmh0dHBzLmh0bWwg
WyBDcmFzaAogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1z
dWNjZXNzLWxvY2FsLmh0dHBzLmh0bWwgWyBDcmFzaCBdCiBodHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtbG9jYWwtc2lsZW50Lmh0dHBzLmh0bWwgWyBD
cmFzaCBdCiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1
cmUtbG9jYWwuaHR0cHMuaHRtbCBbIENyYXNoIF0KLWh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1sIFsgQ3Jhc2ggXQpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1nZXQtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1sIFsgQ3Jhc2ggXQo=
</data>
<flag name="commit-queue"
          id="427386"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411238</attachid>
            <date>2020-10-13 12:39:44 -0700</date>
            <delta_ts>2020-10-13 12:54:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217663-20201013123943.patch</filename>
            <type>text/plain</type>
            <size>39284</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Mjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdiZGUzY2M4NGY0MWUwNjNmMjI5Mzkx
YWY4MmE4NzA3Nzc0OTQ3MTcuLjFiYTA1ZjEyZmM5NWVkYmQwYTliNjA0Y2ZmMGFhZWM3ZjI2MjAw
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMTAtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBdWRpbyB0ZXN0cyBhcmUgY3Jhc2hpbmcgaW4gZGVi
dWcgd2hlbiBlbmFibGluZyB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzY2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0Nyb3NzVGhyZWFkUXVldWUuaDoKKyAgICAg
ICAgKFdURjo6Q3Jvc3NUaHJlYWRRdWV1ZTxEYXRhVHlwZT46OndhaXRGb3JNZXNzYWdlKToKKyAg
ICAgICAgSWYgQ3Jvc3NUaHJlYWRRdWV1ZTo6a2lsbCgpIGdldHMgY2FsbGVkIHdoaWxlIGFub3Ro
ZXIgdGhyZWFkIGlzIHdhaXRpbmcgb24gYQorICAgICAgICBDcm9zc1RocmVhZFF1ZXVlOjp3YWl0
Rm9yTWVzc2FnZSgpIGNhbGwsIG1ha2UgaXQgc28gdGhhdCB3YWl0Rm9yTWVzc2FnZSgpCisgICAg
ICAgIHJldHVybnMgYSBkZWZhdWx0LWNvbnN0cnVjdGVkIERhdGFUeXBlIGluc3RlYWQgb2YgY3Jh
c2hpbmcgdHJ5aW5nIHRvCisgICAgICAgIGRlcXVlIChzaW5jZSB0aGUgcXVldWUgaXMgZW1wdHkp
LgorCiAyMDIwLTEwLTA5ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIEZpbmFsaXplcnMgc2hvdWxkbid0IHJ1biBpZiBldmVudHMgY2FuJ3QgZmlyZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGQ2ZDY5Mzc5YzM4YTRiMGRiNzBmNWQxMTFjNGEzYjdhMWQ2ZWVmNGMuLjM3
ZDY1YWJiMDJhNjg4ZTFiODAxMWViOGZjMDA2YWEyNjhmZDJjODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMC0xMC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFdlYkF1ZGlvIHRlc3RzIGFyZSBjcmFzaGluZyBpbiBkZWJ1ZyB3aGVuIGVuYWJs
aW5nIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE3NjYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3RpbmcgdGVzdHMuCisKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vUHVzaFB1bGxGSUZPLmg6CisgICAgICAgIEV4cG9ydCBQdXNoUHVsbEZJRk8g
c28gdGhhdCBpdCBjYW4gYmUgdXNlZCBhdCBXZWJLaXQgbGF5ZXIuCisKIDIwMjAtMTAtMTIgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICAncGFyYW1ldGVycycgYXJn
dW1lbnQgdG8gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLnByb2Nlc3MoKSBpcyBub3Qgc3BlYy1jb21w
bGlhbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggZWQ4NjQwNDlkY2MxNTlkMmRiMDJjZjYxN2Y5MTFiYTEzNzg4ZjFk
NS4uZGRiNzFjYTA4Mzk5YTQ2MTkxYTYxNDAwNjM0OWE5OWY5MzdiODhkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw2NyBAQAorMjAyMC0xMC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIFdlYkF1ZGlvIHRlc3RzIGFyZSBjcmFzaGluZyBpbiBkZWJ1ZyB3aGVuIGVu
YWJsaW5nIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE3NjYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViQXVkaW8gdGVzdHMgd2VyZSBjcmFzaGluZyBpbiBkZWJ1ZyB3aGVu
IGVuYWJsaW5nIHRoZSBHUFUgcHJvY2VzcyBiZWNhdXNlIGl0IGRpZCBhdWRpbworICAgICAgICBw
cm9jZXNzaW5nIG9uIHRoZSBXZWJDb250ZW50IHByb2Nlc3MncyBtYWluIHRocmVhZC4gVG8gYWRk
cmVzcyB0aGUgaXNzdWUsIEkgbWFkZQorICAgICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkgYSBUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgc28gdGhhdCBpdCByZWNlaXZlcyBJUEMgb24gYW4g
YXVkaW8KKyAgICAgICAgdGhyZWFkIGluc3RlYWQgb2YgdGhlIG1haW4gdGhyZWFkLiBJUEMgbWVz
c2FnZXMgYXJlIHByb2Nlc3NlZCBkaXJlY3RseSBvbiB0aGUgQXVkaW9Xb3JrbGV0CisgICAgICAg
IHRocmVhZCB3aGVuIGFjdGl2ZSBvciBvbiBhbiBhdWRpbyB0aHJlYWQgY29uc3RydWN0ZWQgYnkg
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5CisgICAgICAgIG90aGVyd2lzZS4KKworICAgICAg
ICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uKToKKyAgICAgICAgVXNlIGEgUHVzaFB1bGxGSUZPIHN0cnVjdHVyZSBpbiByZW5kZXIo
KSB0byBhdm9pZCBoYW5naW5nIHRoZSBhdWRpbyByZW5kZXJpbmcgdGhyZWFkCisgICAgICAgIG9u
IGEgc2VtYXBob3JlLiBIYW5naW5nIHRoZSByZW5kZXJpbmcgdGhyZWFkIHdhcyB0ZXJyaWJsZSBm
b3IgcGVyZm9ybWFuY2UgYW5kIHdhcyBhbHNvCisgICAgICAgIGEgc291cmNlIG9mIGRlYWRsb2Nr
IHNpbmNlIHRoZSB1bmRlcmx5aW5nIGZyYW1ld29yayBpcyBob2xkaW5nIGEgbG9jayB3aGlsZSBy
ZW5kZXIoKSBpcworICAgICAgICBjYWxsZWQuIFdlIGNvdWxkIHByb2Nlc3MgYSBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uOjpDcmVhdGVBdWRpb0Rlc3RpbmF0aW9uIHN5bmMgSVBDIG9uIHRoZQorICAg
ICAgICBtYWluIHRocmVhZCBhbmQgZGVhZGxvY2sgb24gdGhhdCBsb2NrLgorCisgICAgICAgICog
R1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaDoKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIu
aDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QlNlcnZlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJv
dmlkZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05l
dHdvcmsuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyLmg6CisgICAgICAgIFVzZSBUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIGlu
c3RlYWQgb2YgVGhyZWFkTWVzc2FnZVJlY2VpdmVyIHNpbmNlIHRob3NlIGNsYXNzZXMKKyAgICAg
ICAgZG8gbm90IHByb3ZpZGUgdGhlaXIgb3duIFJlZkNvdW50aW5nLgorCisgICAgICAgICogUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjphZGRX
b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpyZW1v
dmVXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjph
ZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpyZW1v
dmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpwcm9j
ZXNzSW5jb21pbmdNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hN
ZXNzYWdlVG9Xb3JrUXVldWVSZWNlaXZlcik6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OmRp
c3BhdGNoTWVzc2FnZVRvVGhyZWFkUmVjZWl2ZXIpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9D
b25uZWN0aW9uLmg6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNl
aXZlcjo6cmVmKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2Vp
dmVyOjpkZXJlZik6CisgICAgICAgIC0gQWRkIHN1cHBvcnQgZm9yIHBhc3NpbmcgYSBkZXN0aW5h
dGlvbklEIHdoZW4gcmVnaXN0ZXJpbmcgYSBXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIgb3IgYQor
ICAgICAgICAgIFRocmVhZE1lc3NhZ2VSZWNlaXZlciwgc2ltaWxhcmx5IHRvIHJlZ3VsYXIgTWVz
c2FnZVJlY2VpdmVycy4gVGhpcyB3YXMgbmVlZGVkIGhlcmUgc2luY2UKKyAgICAgICAgICBUaGUg
R1BVUHJvY2VzcyBzZW5kcyBJUEMgbWVzc2FnZXMgdG8gdGhlIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eSB3aXRoIGEgZ2l2ZW4KKyAgICAgICAgICBkZXN0aW5hdGlvbklEIGFuZCBzaW5jZSBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgaXMgbm93IGEgVGhyZWFkTWVzc2FnZVJlY2VpdmVy
LgorICAgICAgICAtIFN0b3AgaGF2aW5nIFRocmVhZE1lc3NhZ2VSZWNlaXZlciBzdWJjbGFzcyBU
aHJlYWRTYWZlUmVmQ291bnRlZCBzaW5jZQorICAgICAgICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eSBhbHJlYWR5IHN1YmNsYXNzZXMgVGhyZWFkU2FmZVJlZkNvdW50ZWQgaW5kaXJlY3Rs
eS4gQSBuZXcKKyAgICAgICAgICBUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIGNsYXNz
IHdhcyBhZGRlZCBmb3IgY29udmVuaWVuY2UgZm9yIGV4aXN0aW5nIGNvZGUgdGhhdAorICAgICAg
ICAgIHJlbGllZCBvbiBpdHMgcmVmY291bnRpbmcuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6flJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHk6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHk6OnJlbmRlckJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6ZGlkQ2hhbmdlSXNQbGF5aW5nKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaXNwYXRjaFRvVGhyZWFkKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaDoKKyAgICAg
ICAgVXNlIGEgUHVzaFB1bGxGSUZPIGNvbnRhaW5lciBpbiByZW5kZXIoKSB0byBhdm9pZCBoYW5k
aW5nIHRoZSBhdWRpbyByZW5kZXJpbmcgdGhyZWFkIG9uCisgICAgICAgIGEgc2VtYXBob3JlIHdo
aWxlIHRoZSBSZW5kZXIgSVBDIGlzIGdldHRpbmcgcHJvY2Vzc2VkIGJ5IHRoZSBXZWJQcm9jZXNz
LgorCiAyMDIwLTEwLTA5ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVIFByb2Nlc3NdIFVzZSBjb3JyZWN0IEdQVSBydW50aW1lIHNldHRpbmdzIHdo
ZW4gY3JlYXRpbmcgdGhlIGR5bmFtaWMgSU9LaXQgc2FuZGJveCBleHRlbnNpb25zIGZvciB0aGUg
V2ViQ29udGVudCBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVh
ZFF1ZXVlLmggYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZFF1ZXVlLmgKaW5kZXggYmMyYjFl
YWVmOWU5YmEzYjlkNDQzMDFhYmE4NGMwMzY3OTAzNjhjZC4uMzE1NTI3NGJmYWM1M2VkNjQ1ZTBk
ZjgzNTg5MDRjYmE3N2MzYTcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJl
YWRRdWV1ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkUXVldWUuaApAQCAtODAs
NiArODAsOCBAQCBEYXRhVHlwZSBDcm9zc1RocmVhZFF1ZXVlPERhdGFUeXBlPjo6d2FpdEZvck1l
c3NhZ2UoKQogCiAgICAgICAgIG1fY29uZGl0aW9uLndhaXQobV9sb2NrKTsKICAgICB9CisgICAg
aWYgKG1fa2lsbGVkKQorICAgICAgICByZXR1cm4geyB9OwogCiAgICAgcmV0dXJuIG1fcXVldWUu
dGFrZUZpcnN0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBhODQ3YjA1YWI0NGU1Y2Q0YTcw
NmJlMzA4YzhiNjQ1YjUyNTQwMGZlLi5iMjQ2YjAzYjNiYTg0MjI2OWM5NWI3ZjIxNDAzNjY5YjRj
MGRiMzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEwNjgsMTAgKzEwNjgsMTIgQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlv
U2Vzc2lvbi5oCiAgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9Tb3VyY2VQcm92aWRlci5oCiAgICAg
cGxhdGZvcm0vYXVkaW8vQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oCisgICAgcGxhdGZvcm0vYXVk
aW8vQXVkaW9VdGlsaXRpZXMuaAogICAgIHBsYXRmb3JtL2F1ZGlvL05vd1BsYXlpbmdJbmZvLmgK
ICAgICBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybUF1ZGlvRGF0YS5oCiAgICAgcGxhdGZvcm0vYXVk
aW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAogICAgIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlci5oCisgICAgcGxhdGZvcm0vYXVkaW8vUHVzaFB1bGxGSUZPLmNwcAog
CiAgICAgcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNRW5jcnlwdGlvblNjaGVtZS5oCiAgICAg
cGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNRmFjdG9yeS5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzQ0YWQ4NzdjZTYyZDIw
NzNjODAyOTJlNzJiNTZlZGMxOTA5OTUwMS4uYWZmNDcyMjgyZDE5NTM5MjYwMWY3NDkyMTM3MjFh
YWNkNDYwYWQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjU0MCw3ICsyNTQwLDcgQEAKIAkJODNDNTc5NUQxREE1QzMwMTAw
NkZBQ0E4IC8qIFNjcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU2NDQ2IC8qIFNjcm9sbFRvT3B0
aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTgzRDM1QUVDMUM3MTg3RkEwMEY3MEQ1QSAvKiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFFQTFD
NzE4N0VEMDBGNzBENUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4
M0QzNUFGMjFDNzE4RDkwMDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFGMDFD
NzE4RDg0MDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07Ci0J
CTgzRDUxMUY2MjUwQzFDQkYwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDUxMUY1MjUwQzFDQTgwMDJFREM1
MSAvKiBQdXNoUHVsbEZJRk8uaCAqLzsgfTsKKwkJODNENTExRjYyNTBDMUNCRjAwMkVEQzUxIC8q
IFB1c2hQdWxsRklGTy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNENTExRjUyNTBDMUNBODAwMkVEQzUxIC8qIFB1c2hQdWxsRklGTy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRDZBQUU2MjUyNEVF
MUMwMDQyOEI0QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNENkFBRTQyNTI0RUUxMzAwNDI4QjRC
IC8qIFdvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi87IH07CiAJCTgzREI5RTBGMjREQTE5
NDkwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0RCOUUwQzI0REExOEI1MDAzN0I0NjggLyogQmlxdWFk
RmlsdGVyVHlwZS5oICovOyB9OwogCQk4M0RCOUUxMDI0REExOTU3MDAzN0I0NjggLyogQmlxdWFk
RmlsdGVyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNEQjlFMEUyNERBMThCNjAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaCAq
LzsgfTsKQEAgLTUyODMsNyArNTI4Myw3IEBACiAJCUZEMzE2MDg2MTJCMDI2RjcwMEMxQTM1OSAv
KiBBdWRpb1Jlc2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkQzMTYwNTAxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvUmVzYW1wbGVyLmggKi87
IH07CiAJCUZEMzE2MDg4MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1Jlc2FtcGxlcktlcm5lbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNTIx
MkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvUmVzYW1wbGVyS2VybmVsLmggKi87IH07CiAJCUZEMzE2
MDg5MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA1MzEyQjAyNkY3MDBDMUEz
NTkgLyogQXVkaW9Tb3VyY2VQcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCUZEMzE2MDhCMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1V0
aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkQzMTYwNTUxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvVXRpbGl0aWVzLmggKi87IH07CisJCUZE
MzE2MDhCMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNTUxMkIwMjZGNzAwQzFBMzU5
IC8qIEF1ZGlvVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJRkQzMTYwOEQxMkIwMjZGNzAwQzFBMzU5IC8qIEJpcXVhZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNTcxMkIwMjZG
NzAwQzFBMzU5IC8qIEJpcXVhZC5oICovOyB9OwogCQlGRDMxNjA4RjEyQjAyNkY3MDBDMUEzNTkg
LyogQ29uZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkQzMTYwNTkxMkIwMjZGNzAwQzFBMzU5IC8qIENvbmUuaCAqLzsgfTsKIAkJRkQzMTYwOTExMkIw
MjZGNzAwQzFBMzU5IC8qIERpc3RhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA1QjEyQjAyNkY3MDBDMUEzNTkgLyogRGlzdGFuY2UuaCAq
LzsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1B1c2hQdWxs
RklGTy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUHVzaFB1bGxGSUZPLmgKaW5k
ZXggM2Q0M2Y0YWNmYTRkNzVlN2M3MWI2YzBjZjBmZTQ4MzNhYjcwZjYyYi4uYjc4N2UwNzk4ZGI1
MTBkMDUzODQ3MzIzMWViMzI3YmFmZDNkNzFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vUHVzaFB1bGxGSUZPLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vUHVzaFB1bGxGSUZPLmgKQEAgLTQ1LDE5ICs0NSwxOSBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbWF4RklGT0xlbmd0aCB7IDY1NTM2IH07CiAKICAgICAv
LyB8Zmlmb0xlbmd0aHwgY2Fubm90IGV4Y2VlZCB8bWF4RklGT0xlbmd0aHwuIE90aGVyd2lzZSBp
dCBjcmFzaGVzLgotICAgIFB1c2hQdWxsRklGTyh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBz
aXplX3QgZmlmb0xlbmd0aCk7Ci0gICAgflB1c2hQdWxsRklGTygpOworICAgIFdFQkNPUkVfRVhQ
T1JUIFB1c2hQdWxsRklGTyh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgZmlmb0xl
bmd0aCk7CisgICAgV0VCQ09SRV9FWFBPUlQgflB1c2hQdWxsRklGTygpOwogCiAgICAgLy8gUHVz
aGVzIHRoZSByZW5kZXJlZCBmcmFtZXMgYnkgV2ViQXVkaW8gZW5naW5lLgogICAgIC8vICAtIFRo
ZSB8aW5wdXRCdXN8IGxlbmd0aCBpcyAxMjggZnJhbWVzICgxIHJlbmRlciBxdWFudHVtKSwgZml4
ZWQuCiAgICAgLy8gIC0gSW4gY2FzZSBvZiBvdmVyZmxvdyAoRklGTyBmdWxsIHdoaWxlIHB1c2gp
LCB0aGUgZXhpc3RpbmcgZnJhbWVzIGluIEZJRk8KICAgICAvLyAgICB3aWxsIGJlIG92ZXJ3cml0
dGVuIGFuZCB8aW5kZXhSZWFkfCB3aWxsIGJlIGZvcmNpYmx5IG1vdmVkIHRvCiAgICAgLy8gICAg
fGluZGV4V3JpdGV8IHRvIGF2b2lkIHJlYWRpbmcgb3ZlcndyaXR0ZW4gZnJhbWVzLgotICAgIHZv
aWQgcHVzaChjb25zdCBBdWRpb0J1cyogaW5wdXRCdXMpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcHVzaChjb25zdCBBdWRpb0J1cyogaW5wdXRCdXMpOwogCiAgICAgLy8gUHVsbHMgfGZyYW1l
c1JlcXVlc3RlZHwgYnkgdGhlIGF1ZGlvIGRldmljZSB0aHJlYWQgYW5kIHJldHVybnMgdGhlIGFj
dHVhbAogICAgIC8vIG51bWJlciBvZiBmcmFtZXMgdG8gYmUgcmVuZGVyZWQgYnkgdGhlIHNvdXJj
ZS4gKGkuZS4gV2ViQXVkaW8gZ3JhcGgpCi0gICAgc2l6ZV90IHB1bGwoQXVkaW9CdXMqIG91dHB1
dEJ1cywgc2l6ZV90IGZyYW1lc1JlcXVlc3RlZCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc2l6ZV90
IHB1bGwoQXVkaW9CdXMqIG91dHB1dEJ1cywgc2l6ZV90IGZyYW1lc1JlcXVlc3RlZCk7CiAKICAg
ICBzaXplX3QgZnJhbWVzQXZhaWxhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZXNBdmFpbGFi
bGU7IH0KICAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9maWZvTGVuZ3RoOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAppbmRleCA1MWVhNjY5NTNmNjEzMzM1NjIz
Nzc2ZTdlMzhhMmYxOTBiNDU4NmMzLi45Y2FhMGFlZjMyZGRiZDFiYWQxNGU1NjIxMmVlMTVjNWQ3
ODU1ODczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKQEAgLTM1LDEyICszNSwx
NiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9CdXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0F1
ZGlvRGVzdGluYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9VdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1B1
c2hQdWxsRklGTy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW5jbHVk
ZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RocmVhZHMvQmlu
YXJ5U2VtYXBob3JlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjb25zdGV4cHIgc2l6ZV90
IGZpZm9TaXplID0gOTYgKiBXZWJDb3JlOjpBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNp
emU7CisKIGNsYXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbj4sIHB1YmxpYyBXZWJDb3JlOjpBdWRpb0lP
Q2FsbGJhY2sgewogcHVibGljOgogICAgIHVzaW5nIEF1ZGlvQnVzID0gV2ViQ29yZTo6QXVkaW9C
dXM7CkBAIC03NiwxNiArODAsMjMgQEAgcHJpdmF0ZToKICAgICAgICAgOiBtX2Nvbm5lY3Rpb24o
Y29ubmVjdGlvbikKICAgICAgICAgLCBtX2lkKGlkZW50aWZpZXIpCiAgICAgICAgICwgbV9kZXN0
aW5hdGlvbihBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoKnRoaXMsIGlucHV0RGV2aWNlSWQsIG51
bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkp
CisgICAgICAgICwgbV9maWZvKG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZpZm9TaXplKQogICAg
IHsKICAgICB9CiAKICAgICB2b2lkIHJlbmRlcihBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1
cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MsIGNvbnN0IFdlYkNvcmU6
OkF1ZGlvSU9Qb3NpdGlvbiYgb3V0cHV0UG9zaXRpb24pIG92ZXJyaWRlCiAgICAgeworICAgICAg
ICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKwogICAgICAgICBpZiAobV9wcm90ZWN0VGhpc0R1
cmluZ0dyYWNlZnVsU2h1dGRvd24pCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgYXV0
byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7Ci0gICAgICAgIEJpbmFyeVNlbWFwaG9y
ZSByZW5kZXJTZW1hcGhvcmU7CisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV9maWZvTG9jayk7CisgICAgICAgICAgICBmcmFtZXNUb1Byb2Nlc3MgPSBtX2Zp
Zm8ucHVsbChkZXN0aW5hdGlvbkJ1cywgZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAgICAgfQorICAg
ICAgICBpZiAoIWZyYW1lc1RvUHJvY2VzcykKKyAgICAgICAgICAgIHJldHVybjsKIAogICAgICAg
ICBWZWN0b3I8UmVmPFNoYXJlZE1lbW9yeT4+IGJ1ZmZlcnM7CiAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBkZXN0aW5hdGlvbkJ1cy0+bnVtYmVyT2ZDaGFubmVscygpOyArK2kpIHsK
QEAgLTkzLDIxICsxMDQsMTkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJ1ZmZlcnMuYXBwZW5k
KCptZW1vcnkpOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gRklYTUU6IFJlcGxhY2UgdGhpcyBj
b2RlIHdpdGggYSByaW5nIGJ1ZmZlci4gQXQgbGVhc3QgdGhpcyBoYXBwZW5zIGluIGF1ZGlvIHRo
cmVhZC4KLSAgICAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3RoaXMsIGZyYW1lc1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24sICZidWZmZXJz
LCAmcmVuZGVyU2VtYXBob3JlXSB7CisgICAgICAgIC8vIEZJWE1FOiBJdCBpcyB1bmZvcnR1bmF0
ZSB3ZSBoYXZlIHRvIGRpc3BhdGNoIHRvIHRoZSBtYWluIHRoZWFkIGhlcmUuIFdlIHNob3VsZCBi
ZSBhYmxlIHRvIElQQyBzdHJhaWdodCBmcm9tIHRoZQorICAgICAgICAvLyByZW5kZXIgdGhyZWFk
IGJ1dCB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQgYnkgc2VuZFdpdGhBc3luY1JlcGx5KCkuCisgICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbiwgYnVmZmVycyA9IFdURk1vdmUoYnVm
ZmVycyldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBSZW1vdGVBdWRpb0J1c0RhdGEgYnVzRGF0
YSB7IGZyYW1lc1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24sIGJ1ZmZlcnMubWFwKFtdKGF1dG8m
IG1lbW9yeSkgeyByZXR1cm4gbWVtb3J5LmNvcHlSZWYoKTsgfSkgfTsKICAgICAgICAgICAgIEFT
U0VSVChmcmFtZXNUb1Byb2Nlc3MpOwotICAgICAgICAgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rp
b24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eTo6UmVuZGVyQnVmZmVyKGJ1c0RhdGEpLCBbJl0oKSB7Ci0gICAgICAgICAgICAgICAgcmVu
ZGVyU2VtYXBob3JlLnNpZ25hbCgpOworICAgICAgICAgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rp
b24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eTo6UmVuZGVyQnVmZmVyKGJ1c0RhdGEpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1v
dmUocHJvdGVjdGVkVGhpcyksIGJ1ZmZlcnMgPSBXVEZNb3ZlKGJ1ZmZlcnMpLCBmcmFtZXNUb1By
b2Nlc3NdKCkgeworICAgICAgICAgICAgICAgIGF1dG8gYXVkaW9CdXMgPSBBdWRpb0J1czo6Y3Jl
YXRlKGJ1ZmZlcnMuc2l6ZSgpLCBmcmFtZXNUb1Byb2Nlc3MsIGZhbHNlKTsKKyAgICAgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYnVmZmVycy5zaXplKCk7ICsraSkKKyAgICAg
ICAgICAgICAgICAgICAgYXVkaW9CdXMtPnNldENoYW5uZWxNZW1vcnkoaSwgKGZsb2F0KilidWZm
ZXJzW2ldLT5kYXRhKCksIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICAgICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jayhtX2ZpZm9Mb2NrKTsKKyAgICAgICAgICAgICAgICBtX2ZpZm8ucHVz
aChhdWRpb0J1cy5nZXQoKSk7CiAgICAgICAgICAgICB9LCBtX2lkLnRvVUludDY0KCkpOwogICAg
ICAgICB9KTsKLSAgICAgICAgcmVuZGVyU2VtYXBob3JlLndhaXQoKTsKLQotICAgICAgICBhdXRv
IGF1ZGlvQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShidWZmZXJzLnNpemUoKSwgZnJhbWVzVG9Qcm9j
ZXNzLCBmYWxzZSk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBidWZmZXJzLnNp
emUoKTsgKytpKQotICAgICAgICAgICAgYXVkaW9CdXMtPnNldENoYW5uZWxNZW1vcnkoaSwgKGZs
b2F0KilidWZmZXJzW2ldLT5kYXRhKCksIGZyYW1lc1RvUHJvY2Vzcyk7Ci0gICAgICAgIGRlc3Rp
bmF0aW9uQnVzLT5jb3B5RnJvbSgqYXVkaW9CdXMpOwogICAgIH0KIAogICAgIHZvaWQgaXNQbGF5
aW5nRGlkQ2hhbmdlKCkgb3ZlcnJpZGUKQEAgLTEyNyw2ICsxMzYsOCBAQCBwcml2YXRlOgogICAg
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyIG1faWQ7CiAgICAgUmVmUHRyPEF1ZGlv
RGVzdGluYXRpb24+IG1fZGVzdGluYXRpb247CiAgICAgUmVmUHRyPFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb24+IG1fcHJvdGVjdFRoaXNEdXJpbmdHcmFjZWZ1bFNodXRkb3duOworICAgIExvY2sgbV9m
aWZvTG9jazsKKyAgICBXZWJDb3JlOjpQdXNoUHVsbEZJRk8gbV9maWZvOwogfTsKIAogUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyKEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKaW5kZXggZjhh
MjgyNGY4NjM3YTQ2OWNjOWYxMTU0YjdlODlkZmE0NTI4MTVjNS4uNTIwNzI5M2ZkZjA3MDJmM2I5
ZmFmNWZmOTJmN2U0OWUwMzcxYTYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaApAQCAtNTEsNyArNTEsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKIAot
Y2xhc3MgTGliV2ViUlRDQ29kZWNzUHJveHkgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJl
YWRNZXNzYWdlUmVjZWl2ZXIgeworY2xhc3MgTGliV2ViUlRDQ29kZWNzUHJveHkgOiBwdWJsaWMg
SVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPExpYldlYlJU
Q0NvZGVjc1Byb3h5PiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgcHJvY2Vzcykg
eyByZXR1cm4gYWRvcHRSZWYoKm5ldyBMaWJXZWJSVENDb2RlY3NQcm94eShwcm9jZXNzKSk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oCmlu
ZGV4IDhjN2E3NzFhYmYxNDVlODZhNTVkYzlmMDI1MmFkZjRiZmY2ZjJlZGMuLjlmMGY2NTJmNjkz
NjAyMDA4MzNlYjg5ZDYzYTQ2ZDFlZDVlZTllOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuaApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogY2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXI7
CiAKLWNsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciBmaW5h
bCA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlciB7CitjbGFz
cyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIgZmluYWwgOiBwdWJs
aWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcj4gY3JlYXRlKEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmIHByb2Nlc3MpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyKHByb2Nlc3MpKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaAppbmRleCA4ZTQ4OWIxNjNjYzNlYzZk
ZTAwZTJlMGJmOTI2NzhhMmQ2Y2NmNDFmLi5hMzI0YWVjOTU3NDFhYTc4NmNhNGIwMDIzZjY5MmEx
OTU3MTE0NTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIu
aApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M7CiBjbGFzcyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7CiAK
LWNsYXNzIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIgZmluYWwgOiBwdWJs
aWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgeworY2xhc3MgUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciBmaW5hbCA6IHB1YmxpYyBJUEM6OkNvbm5l
Y3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8UmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlcj4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNv
bm5lY3Rpb24pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlcihjb25uZWN0aW9uKSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLmgKaW5kZXggM2VhMTE2YzBiOGE1
NGJmMTk5NjBmOWI1YzA2N2JmYjcwOGQxOTc2NC4uYjNkZmNlZGYyODFlNDU2ZjA5N2U2ZjQ5MDk3
YmE4YzZjMzM2NDhjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9J
bmRleGVkREIvV2ViSURCU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9JbmRleGVkREIvV2ViSURCU2VydmVyLmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgSURCU2Vy
dmVyOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2ViSURCU2VydmVyIGZpbmFsIDog
cHVibGljIENyb3NzVGhyZWFkVGFza0hhbmRsZXIsIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRo
cmVhZE1lc3NhZ2VSZWNlaXZlciB7CitjbGFzcyBXZWJJREJTZXJ2ZXIgZmluYWwgOiBwdWJsaWMg
Q3Jvc3NUaHJlYWRUYXNrSGFuZGxlciwgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVz
c2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJJREJT
ZXJ2ZXI+IGNyZWF0ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdl
YkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpTdG9yYWdlUXVvdGFNYW5hZ2VyU3BhY2VSZXF1
ZXN0ZXImJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL05ldHdvcmtSVENQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmgKaW5kZXggYWFjNmUyMGUwNGI4NGU4Njc1MTk3M2Yy
OGM2ZTJiMmJjMGI4ODE0Zi4uM2EwNjcwM2Y0MTJlOTA1NzVkYmUzNTUzOTQ1MDU2NGQ1MGE2N2Mz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29y
a1JUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMv
TmV0d29ya1JUQ1Byb3ZpZGVyLmgKQEAgLTYwLDcgKzYwLDcgQEAgY2xhc3MgTmV0d29ya1JUQ1Jl
c29sdmVyOwogY2xhc3MgTmV0d29ya1Nlc3Npb247CiBzdHJ1Y3QgUlRDUGFja2V0T3B0aW9uczsK
IAotY2xhc3MgTmV0d29ya1JUQ1Byb3ZpZGVyIDogcHVibGljIHJ0Yzo6TWVzc2FnZUhhbmRsZXIs
IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlciB7CitjbGFzcyBO
ZXR3b3JrUlRDUHJvdmlkZXIgOiBwdWJsaWMgcnRjOjpNZXNzYWdlSGFuZGxlciwgcHVibGljIElQ
Qzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxOZXR3b3JrUlRDUHJvdmlkZXI+IGNyZWF0ZShOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3
b3JrUlRDUHJvdmlkZXIoY29ubmVjdGlvbikpOyB9CiAgICAgfk5ldHdvcmtSVENQcm92aWRlcigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAppbmRleCA0OTIwOTYy
MjE4NWYzYjNiNGE3MjU2ZTU0MmViNmQ2ZGM2ZjdjNDdjLi4zMDY4MzczOGM3NmViZmYwNzY0ODRk
MTczMDRhODYyZWQ2YWFiNTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy9Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0
aW9uLmNwcApAQCAtMzExLDIzICszMTEsMjUgQEAgdm9pZCBDb25uZWN0aW9uOjpzZXRTaG91bGRF
eGl0T25TeW5jTWVzc2FnZVNlbmRGYWlsdXJlKGJvb2wgc2hvdWxkRXhpdE9uU3luY01lc3MKICAg
ICBtX3Nob3VsZEV4aXRPblN5bmNNZXNzYWdlU2VuZEZhaWx1cmUgPSBzaG91bGRFeGl0T25TeW5j
TWVzc2FnZVNlbmRGYWlsdXJlOwogfQogCi12b2lkIENvbm5lY3Rpb246OmFkZFdvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlcihSZWNlaXZlck5hbWUgbWVzc2FnZVJlY2VpdmVyTmFtZSwgV29ya1F1ZXVl
JiB3b3JrUXVldWUsIFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciogd29ya1F1ZXVlTWVzc2FnZVJl
Y2VpdmVyKQordm9pZCBDb25uZWN0aW9uOjphZGRXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoUmVj
ZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFdvcmtRdWV1ZSYgd29ya1F1ZXVlLCBXb3Jr
UXVldWVNZXNzYWdlUmVjZWl2ZXIqIHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciwgdWludDY0X3Qg
ZGVzdGluYXRpb25JRCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnNNdXRleCk7
Ci0gICAgQVNTRVJUKCFtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMuY29udGFpbnMobWVzc2Fn
ZVJlY2VpdmVyTmFtZSkpOworICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIoc3RhdGljX2Nh
c3Q8dWludDhfdD4obWVzc2FnZVJlY2VpdmVyTmFtZSksIGRlc3RpbmF0aW9uSUQpOworICAgIEFT
U0VSVCghbV93b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKGtleSkpOwogCi0gICAg
bV93b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzLmFkZChtZXNzYWdlUmVjZWl2ZXJOYW1lLCBzdGQ6
Om1ha2VfcGFpcigmd29ya1F1ZXVlLCB3b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIpKTsKKyAgICBt
X3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMuYWRkKGtleSwgc3RkOjptYWtlX3BhaXIoJndvcmtR
dWV1ZSwgd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKSk7CiB9CiAKLXZvaWQgQ29ubmVjdGlvbjo6
cmVtb3ZlV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKFJlY2VpdmVyTmFtZSBtZXNzYWdlUmVjZWl2
ZXJOYW1lKQordm9pZCBDb25uZWN0aW9uOjpyZW1vdmVXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIo
UmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQp
CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV93b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzTXV0ZXgpOwotICAgIEFTU0VSVCht
X3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMuY29udGFpbnMobWVzc2FnZVJlY2VpdmVyTmFtZSkp
OwotICAgIG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVycy5yZW1vdmUobWVzc2FnZVJlY2VpdmVy
TmFtZSk7CisgICAgYXV0byBrZXkgPSBzdGQ6Om1ha2VfcGFpcihzdGF0aWNfY2FzdDx1aW50OF90
PihtZXNzYWdlUmVjZWl2ZXJOYW1lKSwgZGVzdGluYXRpb25JRCk7CisgICAgQVNTRVJUKG1fd29y
a1F1ZXVlTWVzc2FnZVJlY2VpdmVycy5jb250YWlucyhrZXkpKTsKKyAgICBtX3dvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlcnMucmVtb3ZlKGtleSk7CiB9CiAKIHZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0
Y2hXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZl
ciYgd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLCBEZWNvZGVyJiBkZWNvZGVyKQpAQCAtMzU3LDI0
ICszNTksMjYgQEAgdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaFdvcmtRdWV1ZU1lc3NhZ2VSZWNl
aXZlck1lc3NhZ2UoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmUKICAgICAgICAgc2VuZFN5bmNSZXBs
eShXVEZNb3ZlKHJlcGx5RW5jb2RlcikpOwogfQogCi12b2lkIENvbm5lY3Rpb246OmFkZFRocmVh
ZE1lc3NhZ2VSZWNlaXZlcihSZWNlaXZlck5hbWUgbWVzc2FnZVJlY2VpdmVyTmFtZSwgVGhyZWFk
TWVzc2FnZVJlY2VpdmVyKiB0aHJlYWRNZXNzYWdlUmVjZWl2ZXIpCit2b2lkIENvbm5lY3Rpb246
OmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihSZWNlaXZlck5hbWUgbWVzc2FnZVJlY2VpdmVyTmFt
ZSwgVGhyZWFkTWVzc2FnZVJlY2VpdmVyKiB0aHJlYWRNZXNzYWdlUmVjZWl2ZXIsIHVpbnQ2NF90
IGRlc3RpbmF0aW9uSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzTG9jayk7Ci0g
ICAgQVNTRVJUKCFtX3RocmVhZE1lc3NhZ2VSZWNlaXZlcnMuY29udGFpbnMobWVzc2FnZVJlY2Vp
dmVyTmFtZSkpOworICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIoc3RhdGljX2Nhc3Q8dWlu
dDhfdD4obWVzc2FnZVJlY2VpdmVyTmFtZSksIGRlc3RpbmF0aW9uSUQpOworICAgIEFTU0VSVCgh
bV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKGtleSkpOwogCi0gICAgbV90aHJlYWRN
ZXNzYWdlUmVjZWl2ZXJzLmFkZChtZXNzYWdlUmVjZWl2ZXJOYW1lLCB0aHJlYWRNZXNzYWdlUmVj
ZWl2ZXIpOworICAgIG1fdGhyZWFkTWVzc2FnZVJlY2VpdmVycy5hZGQoa2V5LCB0aHJlYWRNZXNz
YWdlUmVjZWl2ZXIpOwogfQogCi12b2lkIENvbm5lY3Rpb246OnJlbW92ZVRocmVhZE1lc3NhZ2VS
ZWNlaXZlcihSZWNlaXZlck5hbWUgbWVzc2FnZVJlY2VpdmVyTmFtZSkKK3ZvaWQgQ29ubmVjdGlv
bjo6cmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKFJlY2VpdmVyTmFtZSBtZXNzYWdlUmVjZWl2
ZXJOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CiAKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fdGhyZWFkTWVzc2FnZVJl
Y2VpdmVyc0xvY2spOwotICAgIEFTU0VSVChtX3RocmVhZE1lc3NhZ2VSZWNlaXZlcnMuY29udGFp
bnMobWVzc2FnZVJlY2VpdmVyTmFtZSkpOworICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIo
c3RhdGljX2Nhc3Q8dWludDhfdD4obWVzc2FnZVJlY2VpdmVyTmFtZSksIGRlc3RpbmF0aW9uSUQp
OworICAgIEFTU0VSVChtX3RocmVhZE1lc3NhZ2VSZWNlaXZlcnMuY29udGFpbnMoa2V5KSk7CiAK
LSAgICBtX3RocmVhZE1lc3NhZ2VSZWNlaXZlcnMucmVtb3ZlKG1lc3NhZ2VSZWNlaXZlck5hbWUp
OworICAgIG1fdGhyZWFkTWVzc2FnZVJlY2VpdmVycy5yZW1vdmUoa2V5KTsKIH0KIAogdm9pZCBD
b25uZWN0aW9uOjpkaXNwYXRjaFRocmVhZE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2UoVGhyZWFkTWVz
c2FnZVJlY2VpdmVyJiB0aHJlYWRNZXNzYWdlUmVjZWl2ZXIsIERlY29kZXImIGRlY29kZXIpCkBA
IC03MTMsNyArNzE3LDggQEAgdm9pZCBDb25uZWN0aW9uOjpwcm9jZXNzSW5jb21pbmdNZXNzYWdl
KHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBtZXNzYWdlKQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgaWYgKCFXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJNYXA6OmlzVmFsaWRLZXkobWVz
c2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB8fCAhVGhyZWFkTWVzc2FnZVJlY2VpdmVyTWFw
Ojppc1ZhbGlkS2V5KG1lc3NhZ2UtPm1lc3NhZ2VSZWNlaXZlck5hbWUoKSkpIHsKKyAgICBhdXRv
IHRocmVhZGVkUmVjZWl2ZXJLZXkgPSBzdGQ6Om1ha2VfcGFpcihzdGF0aWNfY2FzdDx1aW50OF90
PihtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkpLCBtZXNzYWdlLT5kZXN0aW5hdGlvbklE
KCkpOworICAgIGlmICghV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWFwOjppc1ZhbGlkS2V5KHRo
cmVhZGVkUmVjZWl2ZXJLZXkpIHx8ICFUaHJlYWRNZXNzYWdlUmVjZWl2ZXJNYXA6OmlzVmFsaWRL
ZXkodGhyZWFkZWRSZWNlaXZlcktleSkpIHsKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3Bh
dGNoKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1lc3NhZ2VOYW1lID0gbWVzc2Fn
ZS0+bWVzc2FnZU5hbWUoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMt
PmRpc3BhdGNoRGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKG1lc3NhZ2VOYW1lKTsKICAgICAgICAg
fSk7CkBAIC0xMDA0LDcgKzEwMDksOCBAQCB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2Fn
ZShEZWNvZGVyJiBkZWNvZGVyKQogYm9vbCBDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2VUb1dv
cmtRdWV1ZVJlY2VpdmVyKHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiYgbWVzc2FnZSkKIHsKICAg
ICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyc011dGV4
KTsKLSAgICBhdXRvIGl0ID0gbV93b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzLmZpbmQobWVzc2Fn
ZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKyAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWly
KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KG1lc3NhZ2UtPm1lc3NhZ2VSZWNlaXZlck5hbWUoKSksIG1l
c3NhZ2UtPmRlc3RpbmF0aW9uSUQoKSk7CisgICAgYXV0byBpdCA9IG1fd29ya1F1ZXVlTWVzc2Fn
ZVJlY2VpdmVycy5maW5kKGtleSk7CiAgICAgaWYgKGl0ICE9IG1fd29ya1F1ZXVlTWVzc2FnZVJl
Y2VpdmVycy5lbmQoKSkgewogICAgICAgICBpdC0+dmFsdWUuZmlyc3QtPmRpc3BhdGNoKFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciA9IGl0
LT52YWx1ZS5zZWNvbmQsIGRlY29kZXIgPSBXVEZNb3ZlKG1lc3NhZ2UpXSgpIG11dGFibGUgewog
ICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlzcGF0Y2hXb3JrUXVldWVNZXNzYWdlUmVjZWl2
ZXJNZXNzYWdlKCp3b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIsICpkZWNvZGVyKTsKQEAgLTEwMTks
NyArMTAyNSw4IEBAIGJvb2wgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlVG9UaHJlYWRSZWNl
aXZlcihzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4mIG1lc3NhCiAgICAgUmVmUHRyPFRocmVhZE1l
c3NhZ2VSZWNlaXZlcj4gcHJvdGVjdGVkVGhyZWFkTWVzc2FnZVJlY2VpdmVyOwogICAgIHsKICAg
ICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3RocmVhZE1lc3NhZ2VSZWNlaXZlcnNMb2Nr
KTsKLSAgICAgICAgcHJvdGVjdGVkVGhyZWFkTWVzc2FnZVJlY2VpdmVyID0gbV90aHJlYWRNZXNz
YWdlUmVjZWl2ZXJzLmdldChtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworICAgICAg
ICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KG1lc3NhZ2Ut
Pm1lc3NhZ2VSZWNlaXZlck5hbWUoKSksIG1lc3NhZ2UtPmRlc3RpbmF0aW9uSUQoKSk7CisgICAg
ICAgIHByb3RlY3RlZFRocmVhZE1lc3NhZ2VSZWNlaXZlciA9IG1fdGhyZWFkTWVzc2FnZVJlY2Vp
dmVycy5nZXQoa2V5KTsKICAgICB9CiAKICAgICBpZiAocHJvdGVjdGVkVGhyZWFkTWVzc2FnZVJl
Y2VpdmVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKaW5kZXggODU3
NzJmM2QzMDc5OTBiNmI3YTkxYzBkN2RmYjdiOWI3ZjIwNDYzMi4uNzk1YWYwMzc4MjE2N2MwNWUy
MjcxZDc4YzJkNWExZDM5ODMxNDIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uaApAQCAtMTE3LDkgKzExNywyNiBAQCBwdWJsaWM6CiAgICAgY2xhc3MgV29ya1F1ZXVl
TWVzc2FnZVJlY2VpdmVyIDogcHVibGljIE1lc3NhZ2VSZWNlaXZlciwgcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcj4gewogICAgIH07CiAKLSAgICBj
bGFzcyBUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgOiBwdWJsaWMgTWVzc2FnZVJlY2VpdmVyLCBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VGhyZWFkTWVzc2FnZVJlY2VpdmVyPiB7CisgICAgY2xh
c3MgVGhyZWFkTWVzc2FnZVJlY2VpdmVyIDogcHVibGljIE1lc3NhZ2VSZWNlaXZlciB7CiAgICAg
cHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hUb1RocmVhZChXVEY6OkZ1bmN0
aW9uPHZvaWQoKT4mJikgeyB9OworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hUb1RocmVh
ZChXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJikgPSAwOworCisgICAgICAgIHZvaWQgcmVmKCkgeyBy
ZWZNZXNzYWdlUmVjZWl2ZXIoKTsgfQorICAgICAgICB2b2lkIGRlcmVmKCkgeyBkZXJlZk1lc3Nh
Z2VSZWNlaXZlcigpOyB9CisKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZpcnR1YWwgdm9pZCBy
ZWZNZXNzYWdlUmVjZWl2ZXIoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkZXJlZk1lc3Nh
Z2VSZWNlaXZlcigpID0gMDsKKyAgICB9OworCisgICAgY2xhc3MgVGhyZWFkTWVzc2FnZVJlY2Vp
dmVyUmVmQ291bnRlZCA6IHB1YmxpYyBUaHJlYWRNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkPiB7CisgICAg
cHVibGljOgorICAgICAgICB1c2luZyBUaHJlYWRTYWZlUmVmQ291bnRlZDo6cmVmOworICAgICAg
ICB1c2luZyBUaHJlYWRTYWZlUmVmQ291bnRlZDo6ZGVyZWY7CisKKyAgICBwcml2YXRlOgorICAg
ICAgICB2b2lkIHJlZk1lc3NhZ2VSZWNlaXZlcigpIGZpbmFsIHsgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ6OnJlZigpOyB9CisgICAgICAgIHZvaWQgZGVyZWZNZXNzYWdlUmVjZWl2ZXIoKSBmaW5hbCB7
IFRocmVhZFNhZmVSZWZDb3VudGVkOjpkZXJlZigpOyB9CiAgICAgfTsKIAogI2lmIFVTRShVTklY
X0RPTUFJTl9TT0NLRVRTKQpAQCAtMTkwLDExICsyMDcsMTEgQEAgcHVibGljOgogICAgIHR5cGVk
ZWYgdm9pZCAoKkRpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2spKENvbm5lY3Rp
b24qKTsKICAgICB2b2lkIHNldERpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2so
RGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVldWVDYWxsYmFjayk7CiAKLSAgICB2b2lkIGFkZFdv
cmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihSZWNlaXZlck5hbWUsIFdvcmtRdWV1ZSYsIFdvcmtRdWV1
ZU1lc3NhZ2VSZWNlaXZlciopOwotICAgIHZvaWQgcmVtb3ZlV29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyKFJlY2VpdmVyTmFtZSk7CisgICAgdm9pZCBhZGRXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIo
UmVjZWl2ZXJOYW1lLCBXb3JrUXVldWUmLCBXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIqLCB1aW50
NjRfdCBkZXN0aW5hdGlvbklEID0gMCk7CisgICAgdm9pZCByZW1vdmVXb3JrUXVldWVNZXNzYWdl
UmVjZWl2ZXIoUmVjZWl2ZXJOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0gMCk7CiAKLSAg
ICB2b2lkIGFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihSZWNlaXZlck5hbWUsIFRocmVhZE1lc3Nh
Z2VSZWNlaXZlciopOwotICAgIHZvaWQgcmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKFJlY2Vp
dmVyTmFtZSk7CisgICAgdm9pZCBhZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1l
LCBUaHJlYWRNZXNzYWdlUmVjZWl2ZXIqLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0gMCk7Cisg
ICAgdm9pZCByZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lLCB1aW50NjRf
dCBkZXN0aW5hdGlvbklEID0gMCk7CiAKICAgICBib29sIG9wZW4oKTsKICAgICB2b2lkIGludmFs
aWRhdGUoKTsKQEAgLTM0OSwxMSArMzY2LDExIEBAIHByaXZhdGU6CiAgICAgUmVmPFdvcmtRdWV1
ZT4gbV9jb25uZWN0aW9uUXVldWU7CiAKICAgICBMb2NrIG1fd29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyc011dGV4OwotICAgIHVzaW5nIFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1hcCA9IEhhc2hN
YXA8UmVjZWl2ZXJOYW1lLCBzdGQ6OnBhaXI8UmVmUHRyPFdvcmtRdWV1ZT4sIFJlZlB0cjxXb3Jr
UXVldWVNZXNzYWdlUmVjZWl2ZXI+PiwgV1RGOjpJbnRIYXNoPFJlY2VpdmVyTmFtZT4sIFdURjo6
U3Ryb25nRW51bUhhc2hUcmFpdHM8UmVjZWl2ZXJOYW1lPj47CisgICAgdXNpbmcgV29ya1F1ZXVl
TWVzc2FnZVJlY2VpdmVyTWFwID0gSGFzaE1hcDxzdGQ6OnBhaXI8dWludDhfdCwgdWludDY0X3Q+
LCBzdGQ6OnBhaXI8UmVmUHRyPFdvcmtRdWV1ZT4sIFJlZlB0cjxXb3JrUXVldWVNZXNzYWdlUmVj
ZWl2ZXI+Pj47CiAgICAgV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWFwIG1fd29ya1F1ZXVlTWVz
c2FnZVJlY2VpdmVyczsKIAogICAgIExvY2sgbV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzTG9jazsK
LSAgICB1c2luZyBUaHJlYWRNZXNzYWdlUmVjZWl2ZXJNYXAgPSBIYXNoTWFwPFJlY2VpdmVyTmFt
ZSwgUmVmUHRyPFRocmVhZE1lc3NhZ2VSZWNlaXZlcj4sIFdURjo6SW50SGFzaDxSZWNlaXZlck5h
bWU+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPFJlY2VpdmVyTmFtZT4+OworICAgIHVzaW5n
IFRocmVhZE1lc3NhZ2VSZWNlaXZlck1hcCA9IEhhc2hNYXA8c3RkOjpwYWlyPHVpbnQ4X3QsIHVp
bnQ2NF90PiwgUmVmUHRyPFRocmVhZE1lc3NhZ2VSZWNlaXZlcj4+OwogICAgIFRocmVhZE1lc3Nh
Z2VSZWNlaXZlck1hcCBtX3RocmVhZE1lc3NhZ2VSZWNlaXZlcnM7CiAKICAgICB1bnNpZ25lZCBt
X2luU2VuZFN5bmNDb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAppbmRl
eCA4MjEzODAwYjlmMTBjNTgyNjBlMDdhNzkwZjdjYjIwYTdlMGVhMDc2Li44NDA0YzQ4ZTFjMmU0
ODJhYmNkMjRlNTVkMmNjOTEzYmQyNjdlNzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuY3BwCkBAIC02MCw3ICs2MCwxNiBAQCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6
OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYQogICAg
IGNvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmRTeW5jKAogICAgICAgICBNZXNzYWdlczo6UmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OkNyZWF0ZUF1ZGlvRGVzdGluYXRpb24oaW5wdXRE
ZXZpY2VJZCwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBz
YW1wbGVSYXRlKSwKICAgICAgICAgTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyOjpDcmVhdGVBdWRpb0Rlc3RpbmF0aW9uOjpSZXBseShkZXN0aW5hdGlvbklELCBmcmFtZXNQ
ZXJCdWZmZXIpLCAwKTsKLSAgICBjb25uZWN0aW9uLm1lc3NhZ2VSZWNlaXZlck1hcCgpLmFkZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIGRlc3RpbmF0aW9uSUQudG9VSW50NjQoKSwgKnRoaXMpOworCisg
ICAgYXV0byBvZmZUaHJlYWRSZW5kZXJpbmcgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpXSgpIG11dGFibGUgeworICAgICAgICB3aGlsZSAoIW1fdGhyZWFkVGFza1F1ZXVl
LmlzS2lsbGVkKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHRhc2sgPSBtX3RocmVhZFRhc2tR
dWV1ZS53YWl0Rm9yTWVzc2FnZSgpKQorICAgICAgICAgICAgICAgIHRhc2soKTsKKyAgICAgICAg
fQorICAgIH07CisgICAgbV9yZW5kZXJUaHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZSgiUmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5IHJlbmRlciB0aHJlYWQiLCBXVEZNb3ZlKG9mZlRocmVhZFJlbmRl
cmluZyksIFRocmVhZFR5cGU6OkF1ZGlvKTsKKworICAgIGNvbm5lY3Rpb24uY29ubmVjdGlvbigp
LmFkZFRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHRoaXMsIGRlc3RpbmF0aW9uSUQudG9VSW50
NjQoKSk7CiAKICAgICBtX2Rlc3RpbmF0aW9uSUQgPSBkZXN0aW5hdGlvbklEOwogICAgIG1fZnJh
bWVzUGVyQnVmZmVyID0gZnJhbWVzUGVyQnVmZmVyOwpAQCAtNjksMTIgKzc4LDE1IEBAIFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KEF1ZGlv
SU9DYWxsYmFjayYgY2FsbGJhCiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6On5SZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHkoKQogewogICAgIGF1dG8mIGNvbm5lY3Rpb24gPSAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKLSAgICBjb25u
ZWN0aW9uLm1lc3NhZ2VSZWNlaXZlck1hcCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
ZGVzdGluYXRpb25JRC50b1VJbnQ2NCgpKTsKKyAgICBjb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5y
ZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2Rlc3RpbmF0aW9uSUQudG9VSW50NjQo
KSk7CiAKICAgICBjb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoCiAg
ICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjo6RGVsZXRlQXVk
aW9EZXN0aW5hdGlvbihtX2Rlc3RpbmF0aW9uSUQpLCBbXSB7CiAgICAgICAgIC8vIENhbid0IHJl
bW92ZSB0aGlzIGZyb20gcHJveHlNYXAoKSBoZXJlIGJlY2F1c2UgdGhlIG9iamVjdCB3b3VsZCBo
YXZlIGJlZW4gYWxyZWFkeSBkZWxldGVkLgogICAgIH0pOworCisgICAgbV90aHJlYWRUYXNrUXVl
dWUua2lsbCgpOworICAgIG1fcmVuZGVyVGhyZWFkLT53YWl0Rm9yQ29tcGxldGlvbigpOwogfQog
CiB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RhcnQoRnVuY3Rpb248dm9pZChG
dW5jdGlvbjx2b2lkKCk+JiYpPiYmIGRpc3BhdGNoVG9SZW5kZXJUaHJlYWQpCkBAIC05NSwzMCAr
MTA3LDMwIEBAIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpzdG9wKCkKIAogdm9p
ZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnJlbmRlckJ1ZmZlcihjb25zdCBXZWJLaXQ6
OlJlbW90ZUF1ZGlvQnVzRGF0YSYgYXVkaW9CdXNEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgZG9lcyByZW5k
ZXJpbmcgb24gdGhlIG1haW4gdGhyZWFkIHdoZW4gQXVkaW9Xb3JrbGV0IGlzIG5vdCBhY3RpdmUs
IHdoaWNoIGlzIGxpa2VseSBub3QgYSBnb29kIGlkZWEuCi0gICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoYXVkaW9CdXNE
YXRhLmZyYW1lc1RvUHJvY2Vzcyk7CiAgICAgQVNTRVJUKGF1ZGlvQnVzRGF0YS5jaGFubmVsQnVm
ZmVycy5zaXplKCkpOwogICAgIGF1dG8gYXVkaW9CdXMgPSBBdWRpb0J1czo6Y3JlYXRlKGF1ZGlv
QnVzRGF0YS5jaGFubmVsQnVmZmVycy5zaXplKCksIGF1ZGlvQnVzRGF0YS5mcmFtZXNUb1Byb2Nl
c3MsIGZhbHNlKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXVkaW9CdXNEYXRhLmNo
YW5uZWxCdWZmZXJzLnNpemUoKTsgKytpKQogICAgICAgICBhdWRpb0J1cy0+c2V0Q2hhbm5lbE1l
bW9yeShpLCAoZmxvYXQqKWF1ZGlvQnVzRGF0YS5jaGFubmVsQnVmZmVyc1tpXS0+ZGF0YSgpLCBh
dWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzKTsKIAotICAgIGF1dG8gZG9SZW5kZXIgPSBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBhdWRpb0J1cyA9IFdURk1vdmUoYXVk
aW9CdXMpLCBmcmFtZXNUb1Byb2Nlc3MgPSBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzLCBv
dXRwdXRQb3NpdGlvbiA9IGF1ZGlvQnVzRGF0YS5vdXRwdXRQb3NpdGlvbl0gewotICAgICAgICBt
X2NhbGxiYWNrLnJlbmRlcigwLCBhdWRpb0J1cy5nZXQoKSwgZnJhbWVzVG9Qcm9jZXNzLCBvdXRw
dXRQb3NpdGlvbik7Ci0gICAgfTsKLSAgICBpZiAobV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKSB7
Ci0gICAgICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZChbZG9SZW5kZXIgPSBXVEZNb3ZlKGRv
UmVuZGVyKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGRvUmVuZGVyKCk7Ci0gICAgICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgfSk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgZG9SZW5kZXIoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKLSAgICB9CisgICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgYXVkaW9CdXMuZ2V0KCksIGF1ZGlv
QnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MsIGF1ZGlvQnVzRGF0YS5vdXRwdXRQb3NpdGlvbik7Cisg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAogdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHk6OmRpZENoYW5nZUlzUGxheWluZyhib29sIGlzUGxheWluZykKIHsKKyAgICBBU1NFUlQo
IWlzTWFpblRocmVhZCgpKTsKK30KKworLy8gSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdl
UmVjZWl2ZXIKK3ZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaXNwYXRjaFRvVGhy
ZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKQoreworICAgIGlmIChtX2Rpc3BhdGNoVG9SZW5k
ZXJUaHJlYWQpIHsKKyAgICAgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkKFdURk1vdmUodGFz
aykpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fdGhyZWFkVGFza1F1ZXVlLmFwcGVu
ZChXVEZNb3ZlKHRhc2spKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkuaAppbmRleCA5MDdlY2Y1YTc3ZjQyYjk0Nzg5MGJkZjNhMTdlMThl
Y2ZiNWFhNWY5Li5jNGFkYjc1NjBkNDYzNzU4ZWU3MTU2ZjAxZWVjOTk1OGQzY2ZkZTY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmgKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRl
ICJXZWJQcm9jZXNzU3VwcGxlbWVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9EZXN0aW5h
dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9JT0NhbGxiYWNrLmg+CisjaW5jbHVkZSA8
d3RmL0Nyb3NzVGhyZWFkUXVldWUuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKICNp
ZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgpAQCAt
NDAsMTIgKzQyLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbiwgcHJp
dmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitjbGFzcyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6QXVk
aW9EZXN0aW5hdGlvbiwgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2Vp
dmVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkpOwogcHVibGljOgogICAgIHVzaW5nIEF1ZGlvQnVzID0gV2ViQ29yZTo6QXVkaW9CdXM7CiAg
ICAgdXNpbmcgQXVkaW9JT0NhbGxiYWNrID0gV2ViQ29yZTo6QXVkaW9JT0NhbGxiYWNrOworICAg
IHVzaW5nIFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb246OnJlZjsKKyAgICB1c2luZyBXZWJDb3Jl
OjpBdWRpb0Rlc3RpbmF0aW9uOjpkZXJlZjsKIAogICAgIHN0YXRpYyBSZWY8QXVkaW9EZXN0aW5h
dGlvbj4gY3JlYXRlKEF1ZGlvSU9DYWxsYmFjayYsIGNvbnN0IFN0cmluZyYgaW5wdXREZXZpY2VJ
ZCwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1
dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlKTsKIApAQCAtNjgsMTIgKzcxLDE5IEBAIHByaXZh
dGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCisgICAgLy8gSVBD
OjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpc3BhdGNoVG9U
aHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlZk1lc3NhZ2VSZWNl
aXZlcigpIGZpbmFsIHsgV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbjo6cmVmKCk7IH0KKyAgICB2
b2lkIGRlcmVmTWVzc2FnZVJlY2VpdmVyKCkgZmluYWwgeyBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0
aW9uOjpkZXJlZigpOyB9CisKICAgICBBdWRpb0lPQ2FsbGJhY2smIG1fY2FsbGJhY2s7CiAgICAg
ZmxvYXQgbV9zYW1wbGVSYXRlIHsgMC4gfTsKICAgICB1bnNpZ25lZCBtX2ZyYW1lc1BlckJ1ZmZl
ciB7IDAgfTsKICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBtX2Rlc3RpbmF0
aW9uSUQ7CiAgICAgYm9vbCBtX2lzUGxheWluZyB7IGZhbHNlIH07CiAgICAgRnVuY3Rpb248dm9p
ZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQ7CisgICAgUmVm
UHRyPFRocmVhZD4gbV9yZW5kZXJUaHJlYWQ7CisgICAgQ3Jvc3NUaHJlYWRRdWV1ZTxGdW5jdGlv
bjx2b2lkKCk+PiBtX3RocmVhZFRhc2tRdWV1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ05ldHdvcmsuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENOZXR3b3JrLmgKaW5kZXggODNmMmExYjExMTdhZDNiM2Q2MDY1MmVjNGI2MTNl
NTAzYzIxNmE2OS4uZTRjY2NmMGRjNTdlYzg0ZWE2ZWM0ZGE5ODM0Y2NjYzRhNWE1MTk3MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q05ldHdvcmsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
TGliV2ViUlRDTmV0d29yay5oCkBAIC0zNSw3ICszNSw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCi1jbGFzcyBMaWJXZWJSVENOZXR3b3JrIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhy
ZWFkTWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIExpYldlYlJUQ05ldHdvcmsgOiBwdWJsaWMgSVBD
OjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBMaWJXZWJSVENOZXR3b3JrKCkgPSBk
ZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAppbmRleCBmNjE5N2NmOWVlNTcwNTJiMjg4MTcy
ZWFlYjdjYjU1NjZjNjE4Mjk1Li42ZmI0YmMzN2I5MzgwMTZmY2U1YzVjNWFjNWE0MzcwMjdmMTg2
YmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaApAQCAtMzksNyArMzksNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotY2xhc3MgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIgOiBwdWJsaWMg
SVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgeworY2xhc3MgUmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXIgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdl
UmVjZWl2ZXJSZWZDb3VudGVkIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKICAgICBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg5NDdhNGM0MTM4
MjY5YmEzOWU3MTFiMGYwMjlmZGQyZjFkNmI2NGYuLjVlYjliOGJmOGNmYjkyMDhlOTlkYzc4ODlm
MDZhNjU2YTY3Mzg2YmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0xMC0xMyAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFdlYkF1ZGlvIHRlc3RzIGFyZSBj
cmFzaGluZyBpbiBkZWJ1ZyB3aGVuIGVuYWJsaW5nIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NjYzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5za2lwIHdlYmF1ZGlvIHRl
c3RzIHdoZW4gdGhlIEdQVSBwcm9jZXNzIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBncHUtcHJv
Y2Vzcy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTEwLTEyICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgQ2FsbGluZyBBdWRpb0NvbnRleHQucmVzdW1lKCkgcmln
aHQgYWZ0ZXIgQXVkaW9Db250ZXh0LnN1c3BlbmQoKSBzaG91bGQgbm90IGJlIGEgbm8tb3AKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGZkOTZkN2ZkZThiNDYz
OWVmYTg2NzVkODAzZTUzZTU1Y2VjNjQzNjkuLjljZDk1NTFjZjE3MTA4YjYwNzBlZjZmYThmZTkz
M2M3MmFlNzQ0YjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMzExLDEwICszMTEsOCBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21zdC1j
b250ZW50LWhpbnQvTWVkaWFTdHJlYW1UcmFjay1jb250ZW50SGludC5odAogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9waWN0dXJlLWluLXBpY3R1cmUvbWVkaWFzdHJlYW0uaHRtbCBb
IFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtYXVkaW8tdGFpbnRpbmcuaHR0cHMuaHRtbCBbIFNraXAgXQog
Ci1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvIFsgU2tpcCBdCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0YyBbIFNraXAgXQogCi13ZWJhdWRpbyBb
IFNraXAgXQogd2VicnRjIFsgU2tpcCBdCiAKIHdlYmdsIFsgU2tpcCBdCkBAIC0zOTIsNCArMzkw
LDQgQEAgaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWls
dXJlLWxvY2FsLmh0dHBzLmh0bWwgWyBDcmFzaAogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtl
eS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLWxvY2FsLmh0dHBzLmh0bWwgWyBDcmFzaCBdCiBo
dHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtbG9jYWwt
c2lsZW50Lmh0dHBzLmh0bWwgWyBDcmFzaCBdCiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtZ2V0LWZhaWx1cmUtbG9jYWwuaHR0cHMuaHRtbCBbIENyYXNoIF0KLWh0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1sb2NhbC5odHRw
cy5odG1sIFsgQ3Jhc2ggXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2h0dHAvd3B0L3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1s
IFsgQ3Jhc2ggXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411240</attachid>
            <date>2020-10-13 12:54:27 -0700</date>
            <delta_ts>2020-10-13 13:24:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217663-20201013125426.patch</filename>
            <type>text/plain</type>
            <size>39282</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Mjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdiZGUzY2M4NGY0MWUwNjNmMjI5Mzkx
YWY4MmE4NzA3Nzc0OTQ3MTcuLjFiYTA1ZjEyZmM5NWVkYmQwYTliNjA0Y2ZmMGFhZWM3ZjI2MjAw
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMTAtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBdWRpbyB0ZXN0cyBhcmUgY3Jhc2hpbmcgaW4gZGVi
dWcgd2hlbiBlbmFibGluZyB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzY2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0Nyb3NzVGhyZWFkUXVldWUuaDoKKyAgICAg
ICAgKFdURjo6Q3Jvc3NUaHJlYWRRdWV1ZTxEYXRhVHlwZT46OndhaXRGb3JNZXNzYWdlKToKKyAg
ICAgICAgSWYgQ3Jvc3NUaHJlYWRRdWV1ZTo6a2lsbCgpIGdldHMgY2FsbGVkIHdoaWxlIGFub3Ro
ZXIgdGhyZWFkIGlzIHdhaXRpbmcgb24gYQorICAgICAgICBDcm9zc1RocmVhZFF1ZXVlOjp3YWl0
Rm9yTWVzc2FnZSgpIGNhbGwsIG1ha2UgaXQgc28gdGhhdCB3YWl0Rm9yTWVzc2FnZSgpCisgICAg
ICAgIHJldHVybnMgYSBkZWZhdWx0LWNvbnN0cnVjdGVkIERhdGFUeXBlIGluc3RlYWQgb2YgY3Jh
c2hpbmcgdHJ5aW5nIHRvCisgICAgICAgIGRlcXVlIChzaW5jZSB0aGUgcXVldWUgaXMgZW1wdHkp
LgorCiAyMDIwLTEwLTA5ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIEZpbmFsaXplcnMgc2hvdWxkbid0IHJ1biBpZiBldmVudHMgY2FuJ3QgZmlyZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGQ2ZDY5Mzc5YzM4YTRiMGRiNzBmNWQxMTFjNGEzYjdhMWQ2ZWVmNGMuLjM3
ZDY1YWJiMDJhNjg4ZTFiODAxMWViOGZjMDA2YWEyNjhmZDJjODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMC0xMC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFdlYkF1ZGlvIHRlc3RzIGFyZSBjcmFzaGluZyBpbiBkZWJ1ZyB3aGVuIGVuYWJs
aW5nIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE3NjYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1bnNraXBwZWQgZXhpc3RpbmcgdGVzdHMuCisKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vUHVzaFB1bGxGSUZPLmg6CisgICAgICAgIEV4cG9ydCBQdXNoUHVsbEZJRk8g
c28gdGhhdCBpdCBjYW4gYmUgdXNlZCBhdCBXZWJLaXQgbGF5ZXIuCisKIDIwMjAtMTAtMTIgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICAncGFyYW1ldGVycycgYXJn
dW1lbnQgdG8gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLnByb2Nlc3MoKSBpcyBub3Qgc3BlYy1jb21w
bGlhbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggZWQ4NjQwNDlkY2MxNTlkMmRiMDJjZjYxN2Y5MTFiYTEzNzg4ZjFk
NS4uZGRiNzFjYTA4Mzk5YTQ2MTkxYTYxNDAwNjM0OWE5OWY5MzdiODhkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw2NyBAQAorMjAyMC0xMC0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIFdlYkF1ZGlvIHRlc3RzIGFyZSBjcmFzaGluZyBpbiBkZWJ1ZyB3aGVuIGVu
YWJsaW5nIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE3NjYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViQXVkaW8gdGVzdHMgd2VyZSBjcmFzaGluZyBpbiBkZWJ1ZyB3aGVu
IGVuYWJsaW5nIHRoZSBHUFUgcHJvY2VzcyBiZWNhdXNlIGl0IGRpZCBhdWRpbworICAgICAgICBw
cm9jZXNzaW5nIG9uIHRoZSBXZWJDb250ZW50IHByb2Nlc3MncyBtYWluIHRocmVhZC4gVG8gYWRk
cmVzcyB0aGUgaXNzdWUsIEkgbWFkZQorICAgICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkgYSBUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgc28gdGhhdCBpdCByZWNlaXZlcyBJUEMgb24gYW4g
YXVkaW8KKyAgICAgICAgdGhyZWFkIGluc3RlYWQgb2YgdGhlIG1haW4gdGhyZWFkLiBJUEMgbWVz
c2FnZXMgYXJlIHByb2Nlc3NlZCBkaXJlY3RseSBvbiB0aGUgQXVkaW9Xb3JrbGV0CisgICAgICAg
IHRocmVhZCB3aGVuIGFjdGl2ZSBvciBvbiBhbiBhdWRpbyB0aHJlYWQgY29uc3RydWN0ZWQgYnkg
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5CisgICAgICAgIG90aGVyd2lzZS4KKworICAgICAg
ICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uOjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uKToKKyAgICAgICAgVXNlIGEgUHVzaFB1bGxGSUZPIHN0cnVjdHVyZSBpbiByZW5kZXIo
KSB0byBhdm9pZCBoYW5naW5nIHRoZSBhdWRpbyByZW5kZXJpbmcgdGhyZWFkCisgICAgICAgIG9u
IGEgc2VtYXBob3JlLiBIYW5naW5nIHRoZSByZW5kZXJpbmcgdGhyZWFkIHdhcyB0ZXJyaWJsZSBm
b3IgcGVyZm9ybWFuY2UgYW5kIHdhcyBhbHNvCisgICAgICAgIGEgc291cmNlIG9mIGRlYWRsb2Nr
IHNpbmNlIHRoZSB1bmRlcmx5aW5nIGZyYW1ld29yayBpcyBob2xkaW5nIGEgbG9jayB3aGlsZSBy
ZW5kZXIoKSBpcworICAgICAgICBjYWxsZWQuIFdlIGNvdWxkIHByb2Nlc3MgYSBSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uOjpDcmVhdGVBdWRpb0Rlc3RpbmF0aW9uIHN5bmMgSVBDIG9uIHRoZQorICAg
ICAgICBtYWluIHRocmVhZCBhbmQgZGVhZGxvY2sgb24gdGhhdCBsb2NrLgorCisgICAgICAgICog
R1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaDoKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIu
aDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXJNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklE
QlNlcnZlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJv
dmlkZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05l
dHdvcmsuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyLmg6CisgICAgICAgIFVzZSBUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIGlu
c3RlYWQgb2YgVGhyZWFkTWVzc2FnZVJlY2VpdmVyIHNpbmNlIHRob3NlIGNsYXNzZXMKKyAgICAg
ICAgZG8gbm90IHByb3ZpZGUgdGhlaXIgb3duIFJlZkNvdW50aW5nLgorCisgICAgICAgICogUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjphZGRX
b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpyZW1v
dmVXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjph
ZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpyZW1v
dmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpwcm9j
ZXNzSW5jb21pbmdNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hN
ZXNzYWdlVG9Xb3JrUXVldWVSZWNlaXZlcik6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OmRp
c3BhdGNoTWVzc2FnZVRvVGhyZWFkUmVjZWl2ZXIpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9D
b25uZWN0aW9uLmg6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNl
aXZlcjo6cmVmKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2Vp
dmVyOjpkZXJlZik6CisgICAgICAgIC0gQWRkIHN1cHBvcnQgZm9yIHBhc3NpbmcgYSBkZXN0aW5h
dGlvbklEIHdoZW4gcmVnaXN0ZXJpbmcgYSBXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIgb3IgYQor
ICAgICAgICAgIFRocmVhZE1lc3NhZ2VSZWNlaXZlciwgc2ltaWxhcmx5IHRvIHJlZ3VsYXIgTWVz
c2FnZVJlY2VpdmVycy4gVGhpcyB3YXMgbmVlZGVkIGhlcmUgc2luY2UKKyAgICAgICAgICBUaGUg
R1BVUHJvY2VzcyBzZW5kcyBJUEMgbWVzc2FnZXMgdG8gdGhlIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eSB3aXRoIGEgZ2l2ZW4KKyAgICAgICAgICBkZXN0aW5hdGlvbklEIGFuZCBzaW5jZSBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkgaXMgbm93IGEgVGhyZWFkTWVzc2FnZVJlY2VpdmVy
LgorICAgICAgICAtIFN0b3AgaGF2aW5nIFRocmVhZE1lc3NhZ2VSZWNlaXZlciBzdWJjbGFzcyBU
aHJlYWRTYWZlUmVmQ291bnRlZCBzaW5jZQorICAgICAgICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRp
b25Qcm94eSBhbHJlYWR5IHN1YmNsYXNzZXMgVGhyZWFkU2FmZVJlZkNvdW50ZWQgaW5kaXJlY3Rs
eS4gQSBuZXcKKyAgICAgICAgICBUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIGNsYXNz
IHdhcyBhZGRlZCBmb3IgY29udmVuaWVuY2UgZm9yIGV4aXN0aW5nIGNvZGUgdGhhdAorICAgICAg
ICAgIHJlbGllZCBvbiBpdHMgcmVmY291bnRpbmcuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6flJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHk6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHk6OnJlbmRlckJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVz
dGluYXRpb25Qcm94eTo6ZGlkQ2hhbmdlSXNQbGF5aW5nKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpkaXNwYXRjaFRvVGhyZWFkKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuaDoKKyAgICAg
ICAgVXNlIGEgUHVzaFB1bGxGSUZPIGNvbnRhaW5lciBpbiByZW5kZXIoKSB0byBhdm9pZCBoYW5k
aW5nIHRoZSBhdWRpbyByZW5kZXJpbmcgdGhyZWFkIG9uCisgICAgICAgIGEgc2VtYXBob3JlIHdo
aWxlIHRoZSBSZW5kZXIgSVBDIGlzIGdldHRpbmcgcHJvY2Vzc2VkIGJ5IHRoZSBXZWJQcm9jZXNz
LgorCiAyMDIwLTEwLTA5ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVIFByb2Nlc3NdIFVzZSBjb3JyZWN0IEdQVSBydW50aW1lIHNldHRpbmdzIHdo
ZW4gY3JlYXRpbmcgdGhlIGR5bmFtaWMgSU9LaXQgc2FuZGJveCBleHRlbnNpb25zIGZvciB0aGUg
V2ViQ29udGVudCBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVh
ZFF1ZXVlLmggYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZFF1ZXVlLmgKaW5kZXggYmMyYjFl
YWVmOWU5YmEzYjlkNDQzMDFhYmE4NGMwMzY3OTAzNjhjZC4uMzE1NTI3NGJmYWM1M2VkNjQ1ZTBk
ZjgzNTg5MDRjYmE3N2MzYTcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJl
YWRRdWV1ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkUXVldWUuaApAQCAtODAs
NiArODAsOCBAQCBEYXRhVHlwZSBDcm9zc1RocmVhZFF1ZXVlPERhdGFUeXBlPjo6d2FpdEZvck1l
c3NhZ2UoKQogCiAgICAgICAgIG1fY29uZGl0aW9uLndhaXQobV9sb2NrKTsKICAgICB9CisgICAg
aWYgKG1fa2lsbGVkKQorICAgICAgICByZXR1cm4geyB9OwogCiAgICAgcmV0dXJuIG1fcXVldWUu
dGFrZUZpcnN0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBhODQ3YjA1YWI0NGU1Y2Q0YTcw
NmJlMzA4YzhiNjQ1YjUyNTQwMGZlLi5iYTI2Y2Y2MjU4ZjI1OTJhOTU3NTRmN2I5Nzg2ZDBiZWVh
ZDQzZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEwNjgsMTAgKzEwNjgsMTIgQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlv
U2Vzc2lvbi5oCiAgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9Tb3VyY2VQcm92aWRlci5oCiAgICAg
cGxhdGZvcm0vYXVkaW8vQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oCisgICAgcGxhdGZvcm0vYXVk
aW8vQXVkaW9VdGlsaXRpZXMuaAogICAgIHBsYXRmb3JtL2F1ZGlvL05vd1BsYXlpbmdJbmZvLmgK
ICAgICBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybUF1ZGlvRGF0YS5oCiAgICAgcGxhdGZvcm0vYXVk
aW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAogICAgIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlci5oCisgICAgcGxhdGZvcm0vYXVkaW8vUHVzaFB1bGxGSUZPLmgKIAog
ICAgIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETUVuY3J5cHRpb25TY2hlbWUuaAogICAgIHBs
YXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETUZhY3RvcnkuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM0NGFkODc3Y2U2MmQyMDcz
YzgwMjkyZTcyYjU2ZWRjMTkwOTk1MDEuLmFmZjQ3MjI4MmQxOTUzOTI2MDFmNzQ5MjEzNzIxYWFj
ZDQ2MGFkNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTI1NDAsNyArMjU0MCw3IEBACiAJCTgzQzU3OTVEMURBNUMzMDEwMDZG
QUNBOCAvKiBTY3JvbGxUb09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzNTBDM0U3MURBNTlCNjIwMDM1NjQ0NiAvKiBTY3JvbGxUb09wdGlv
bnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
M0QzNUFFQzFDNzE4N0ZBMDBGNzBENUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEMzVBRUExQzcx
ODdFRDAwRjcwRDVBIC8qIFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLzsgfTsKIAkJODNE
MzVBRjIxQzcxOEQ5MDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEMzVBRjAxQzcx
OEQ4NDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICovOyB9OwotCQk4
M0Q1MTFGNjI1MEMxQ0JGMDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q1MTFGNTI1MEMxQ0E4MDAyRURDNTEg
LyogUHVzaFB1bGxGSUZPLmggKi87IH07CisJCTgzRDUxMUY2MjUwQzFDQkYwMDJFREM1MSAvKiBQ
dXNoUHVsbEZJRk8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzRDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4M0Q2QUFFNjI1MjRFRTFD
MDA0MjhCNEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDZBQUU0MjUyNEVFMTMwMDQyOEI0QiAv
KiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oICovOyB9OwogCQk4M0RCOUUwRjI0REExOTQ5
MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODNEQjlFMEMyNERBMThCNTAwMzdCNDY4IC8qIEJpcXVhZEZp
bHRlclR5cGUuaCAqLzsgfTsKIAkJODNEQjlFMTAyNERBMTk1NzAwMzdCNDY4IC8qIEJpcXVhZEZp
bHRlck9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzREI5RTBFMjREQTE4QjYwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJPcHRpb25zLmggKi87
IH07CkBAIC01MjgzLDcgKzUyODMsNyBAQAogCQlGRDMxNjA4NjEyQjAyNkY3MDBDMUEzNTkgLyog
QXVkaW9SZXNhbXBsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZEMzE2MDUwMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1Jlc2FtcGxlci5oICovOyB9
OwogCQlGRDMxNjA4ODEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9SZXNhbXBsZXJLZXJuZWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDUyMTJC
MDI2RjcwMEMxQTM1OSAvKiBBdWRpb1Jlc2FtcGxlcktlcm5lbC5oICovOyB9OwogCQlGRDMxNjA4
OTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9Tb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNTMxMkIwMjZGNzAwQzFBMzU5
IC8qIEF1ZGlvU291cmNlUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQlGRDMxNjA4QjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9VdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
MzE2MDU1MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1V0aWxpdGllcy5oICovOyB9OworCQlGRDMx
NjA4QjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDU1MTJCMDI2RjcwMEMxQTM1OSAv
KiBBdWRpb1V0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUZEMzE2MDhEMTJCMDI2RjcwMEMxQTM1OSAvKiBCaXF1YWQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDU3MTJCMDI2Rjcw
MEMxQTM1OSAvKiBCaXF1YWQuaCAqLzsgfTsKIAkJRkQzMTYwOEYxMkIwMjZGNzAwQzFBMzU5IC8q
IENvbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
MzE2MDU5MTJCMDI2RjcwMEMxQTM1OSAvKiBDb25lLmggKi87IH07CiAJCUZEMzE2MDkxMTJCMDI2
RjcwMEMxQTM1OSAvKiBEaXN0YW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkQzMTYwNUIxMkIwMjZGNzAwQzFBMzU5IC8qIERpc3RhbmNlLmggKi87
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QdXNoUHVsbEZJ
Rk8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1B1c2hQdWxsRklGTy5oCmluZGV4
IDNkNDNmNGFjZmE0ZDc1ZTdjNzFiNmMwY2YwZmU0ODMzYWI3MGY2MmIuLmI3ODdlMDc5OGRiNTEw
ZDA1Mzg0NzMyMzFlYjMyN2JhZmQzZDcxZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1B1c2hQdWxsRklGTy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL1B1c2hQdWxsRklGTy5oCkBAIC00NSwxOSArNDUsMTkgQEAgcHVibGljOgogICAgIHN0
YXRpYyBjb25zdGV4cHIgc2l6ZV90IG1heEZJRk9MZW5ndGggeyA2NTUzNiB9OwogCiAgICAgLy8g
fGZpZm9MZW5ndGh8IGNhbm5vdCBleGNlZWQgfG1heEZJRk9MZW5ndGh8LiBPdGhlcndpc2UgaXQg
Y3Jhc2hlcy4KLSAgICBQdXNoUHVsbEZJRk8odW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6
ZV90IGZpZm9MZW5ndGgpOwotICAgIH5QdXNoUHVsbEZJRk8oKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBQdXNoUHVsbEZJRk8odW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGZpZm9MZW5n
dGgpOworICAgIFdFQkNPUkVfRVhQT1JUIH5QdXNoUHVsbEZJRk8oKTsKIAogICAgIC8vIFB1c2hl
cyB0aGUgcmVuZGVyZWQgZnJhbWVzIGJ5IFdlYkF1ZGlvIGVuZ2luZS4KICAgICAvLyAgLSBUaGUg
fGlucHV0QnVzfCBsZW5ndGggaXMgMTI4IGZyYW1lcyAoMSByZW5kZXIgcXVhbnR1bSksIGZpeGVk
LgogICAgIC8vICAtIEluIGNhc2Ugb2Ygb3ZlcmZsb3cgKEZJRk8gZnVsbCB3aGlsZSBwdXNoKSwg
dGhlIGV4aXN0aW5nIGZyYW1lcyBpbiBGSUZPCiAgICAgLy8gICAgd2lsbCBiZSBvdmVyd3JpdHRl
biBhbmQgfGluZGV4UmVhZHwgd2lsbCBiZSBmb3JjaWJseSBtb3ZlZCB0bwogICAgIC8vICAgIHxp
bmRleFdyaXRlfCB0byBhdm9pZCByZWFkaW5nIG92ZXJ3cml0dGVuIGZyYW1lcy4KLSAgICB2b2lk
IHB1c2goY29uc3QgQXVkaW9CdXMqIGlucHV0QnVzKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHB1c2goY29uc3QgQXVkaW9CdXMqIGlucHV0QnVzKTsKIAogICAgIC8vIFB1bGxzIHxmcmFtZXNS
ZXF1ZXN0ZWR8IGJ5IHRoZSBhdWRpbyBkZXZpY2UgdGhyZWFkIGFuZCByZXR1cm5zIHRoZSBhY3R1
YWwKICAgICAvLyBudW1iZXIgb2YgZnJhbWVzIHRvIGJlIHJlbmRlcmVkIGJ5IHRoZSBzb3VyY2Uu
IChpLmUuIFdlYkF1ZGlvIGdyYXBoKQotICAgIHNpemVfdCBwdWxsKEF1ZGlvQnVzKiBvdXRwdXRC
dXMsIHNpemVfdCBmcmFtZXNSZXF1ZXN0ZWQpOworICAgIFdFQkNPUkVfRVhQT1JUIHNpemVfdCBw
dWxsKEF1ZGlvQnVzKiBvdXRwdXRCdXMsIHNpemVfdCBmcmFtZXNSZXF1ZXN0ZWQpOwogCiAgICAg
c2l6ZV90IGZyYW1lc0F2YWlsYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVzQXZhaWxhYmxl
OyB9CiAgICAgc2l6ZV90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlmb0xlbmd0aDsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKaW5kZXggNTFlYTY2OTUzZjYxMzMzNTYyMzc3
NmU3ZTM4YTJmMTkwYjQ1ODZjMy4uOWNhYTBhZWYzMmRkYmQxYmFkMTRlNTYyMTJlZTE1YzVkNzg1
NTg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCkBAIC0zNSwxMiArMzUsMTYg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvQnVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BdWRp
b0Rlc3RpbmF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0lPQ2FsbGJhY2suaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvVXRpbGl0aWVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QdXNo
UHVsbEZJRk8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90aHJlYWRzL0JpbmFy
eVNlbWFwaG9yZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY29uc3RleHByIHNpemVfdCBm
aWZvU2l6ZSA9IDk2ICogV2ViQ29yZTo6QXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXpl
OworCiBjbGFzcyBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPFJlbW90ZUF1ZGlvRGVzdGluYXRpb24+LCBwdWJsaWMgV2ViQ29yZTo6QXVkaW9JT0Nh
bGxiYWNrIHsKIHB1YmxpYzoKICAgICB1c2luZyBBdWRpb0J1cyA9IFdlYkNvcmU6OkF1ZGlvQnVz
OwpAQCAtNzYsMTYgKzgwLDIzIEBAIHByaXZhdGU6CiAgICAgICAgIDogbV9jb25uZWN0aW9uKGNv
bm5lY3Rpb24pCiAgICAgICAgICwgbV9pZChpZGVudGlmaWVyKQogICAgICAgICAsIG1fZGVzdGlu
YXRpb24oQXVkaW9EZXN0aW5hdGlvbjo6Y3JlYXRlKCp0aGlzLCBpbnB1dERldmljZUlkLCBudW1i
ZXJPZklucHV0Q2hhbm5lbHMsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIHNhbXBsZVJhdGUpKQor
ICAgICAgICAsIG1fZmlmbyhudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmaWZvU2l6ZSkKICAgICB7
CiAgICAgfQogCiAgICAgdm9pZCByZW5kZXIoQXVkaW9CdXMqIHNvdXJjZUJ1cywgQXVkaW9CdXMq
IGRlc3RpbmF0aW9uQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzLCBjb25zdCBXZWJDb3JlOjpB
dWRpb0lPUG9zaXRpb24mIG91dHB1dFBvc2l0aW9uKSBvdmVycmlkZQogICAgIHsKKyAgICAgICAg
QVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisKICAgICAgICAgaWYgKG1fcHJvdGVjdFRoaXNEdXJp
bmdHcmFjZWZ1bFNodXRkb3duKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGF1dG8g
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOwotICAgICAgICBCaW5hcnlTZW1hcGhvcmUg
cmVuZGVyU2VtYXBob3JlOworICAgICAgICB7CisgICAgICAgICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fZmlmb0xvY2spOworICAgICAgICAgICAgZnJhbWVzVG9Qcm9jZXNzID0gbV9maWZv
LnB1bGwoZGVzdGluYXRpb25CdXMsIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgIH0KKyAgICAg
ICAgaWYgKCFmcmFtZXNUb1Byb2Nlc3MpCisgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
VmVjdG9yPFJlZjxTaGFyZWRNZW1vcnk+PiBidWZmZXJzOwogICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgZGVzdGluYXRpb25CdXMtPm51bWJlck9mQ2hhbm5lbHMoKTsgKytpKSB7CkBA
IC05MywyMSArMTA0LDE5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBidWZmZXJzLmFwcGVuZCgq
bWVtb3J5KTsKICAgICAgICAgfQogCi0gICAgICAgIC8vIEZJWE1FOiBSZXBsYWNlIHRoaXMgY29k
ZSB3aXRoIGEgcmluZyBidWZmZXIuIEF0IGxlYXN0IHRoaXMgaGFwcGVucyBpbiBhdWRpbyB0aHJl
YWQuCi0gICAgICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAgICAgICBjYWxsT25NYWlu
VGhyZWFkKFt0aGlzLCBmcmFtZXNUb1Byb2Nlc3MsIG91dHB1dFBvc2l0aW9uLCAmYnVmZmVycywg
JnJlbmRlclNlbWFwaG9yZV0geworICAgICAgICAvLyBGSVhNRTogSXQgaXMgdW5mb3J0dW5hdGUg
d2UgaGF2ZSB0byBkaXNwYXRjaCB0byB0aGUgbWFpbiB0aGVhZCBoZXJlLiBXZSBzaG91bGQgYmUg
YWJsZSB0byBJUEMgc3RyYWlnaHQgZnJvbSB0aGUKKyAgICAgICAgLy8gcmVuZGVyIHRocmVhZCBi
dXQgdGhpcyBpcyBub3Qgc3VwcG9ydGVkIGJ5IHNlbmRXaXRoQXN5bmNSZXBseSgpLgorICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IGZyYW1lc1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24sIGJ1ZmZlcnMgPSBXVEZNb3ZlKGJ1ZmZl
cnMpXSgpIG11dGFibGUgewogICAgICAgICAgICAgUmVtb3RlQXVkaW9CdXNEYXRhIGJ1c0RhdGEg
eyBmcmFtZXNUb1Byb2Nlc3MsIG91dHB1dFBvc2l0aW9uLCBidWZmZXJzLm1hcChbXShhdXRvJiBt
ZW1vcnkpIHsgcmV0dXJuIG1lbW9yeS5jb3B5UmVmKCk7IH0pIH07CiAgICAgICAgICAgICBBU1NF
UlQoZnJhbWVzVG9Qcm9jZXNzKTsKLSAgICAgICAgICAgIG1fY29ubmVjdGlvbi5jb25uZWN0aW9u
KCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHk6OlJlbmRlckJ1ZmZlcihidXNEYXRhKSwgWyZdKCkgewotICAgICAgICAgICAgICAgIHJlbmRl
clNlbWFwaG9yZS5zaWduYWwoKTsKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbi5jb25uZWN0aW9u
KCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHk6OlJlbmRlckJ1ZmZlcihidXNEYXRhKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3Zl
KHByb3RlY3RlZFRoaXMpLCBidWZmZXJzID0gV1RGTW92ZShidWZmZXJzKSwgZnJhbWVzVG9Qcm9j
ZXNzXSgpIHsKKyAgICAgICAgICAgICAgICBhdXRvIGF1ZGlvQnVzID0gQXVkaW9CdXM6OmNyZWF0
ZShidWZmZXJzLnNpemUoKSwgZnJhbWVzVG9Qcm9jZXNzLCBmYWxzZSk7CisgICAgICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJ1ZmZlcnMuc2l6ZSgpOyArK2kpCisgICAgICAg
ICAgICAgICAgICAgIGF1ZGlvQnVzLT5zZXRDaGFubmVsTWVtb3J5KGksIChmbG9hdCopYnVmZmVy
c1tpXS0+ZGF0YSgpLCBmcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICAgICAgICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2sobV9maWZvTG9jayk7CisgICAgICAgICAgICAgICAgbV9maWZvLnB1c2go
YXVkaW9CdXMuZ2V0KCkpOwogICAgICAgICAgICAgfSwgbV9pZC50b1VJbnQ2NCgpKTsKICAgICAg
ICAgfSk7Ci0gICAgICAgIHJlbmRlclNlbWFwaG9yZS53YWl0KCk7Ci0KLSAgICAgICAgYXV0byBh
dWRpb0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoYnVmZmVycy5zaXplKCksIGZyYW1lc1RvUHJvY2Vz
cywgZmFsc2UpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYnVmZmVycy5zaXpl
KCk7ICsraSkKLSAgICAgICAgICAgIGF1ZGlvQnVzLT5zZXRDaGFubmVsTWVtb3J5KGksIChmbG9h
dCopYnVmZmVyc1tpXS0+ZGF0YSgpLCBmcmFtZXNUb1Byb2Nlc3MpOwotICAgICAgICBkZXN0aW5h
dGlvbkJ1cy0+Y29weUZyb20oKmF1ZGlvQnVzKTsKICAgICB9CiAKICAgICB2b2lkIGlzUGxheWlu
Z0RpZENoYW5nZSgpIG92ZXJyaWRlCkBAIC0xMjcsNiArMTM2LDggQEAgcHJpdmF0ZToKICAgICBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBtX2lkOwogICAgIFJlZlB0cjxBdWRpb0Rl
c3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9uOwogICAgIFJlZlB0cjxSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uPiBtX3Byb3RlY3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93bjsKKyAgICBMb2NrIG1fZmlm
b0xvY2s7CisgICAgV2ViQ29yZTo6UHVzaFB1bGxGSUZPIG1fZmlmbzsKIH07CiAKIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcihHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCmluZGV4IGY4YTI4
MjRmODYzN2E0NjljYzlmMTE1NGI3ZTg5ZGZhNDUyODE1YzUuLjUyMDcyOTNmZGYwNzAyZjNiOWZh
ZjVmZjkyZjdlNDllMDM3MWE2MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKQEAgLTUxLDcgKzUxLDcgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiAKLWNs
YXNzIExpYldlYlJUQ0NvZGVjc1Byb3h5IDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFk
TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIExpYldlYlJUQ0NvZGVjc1Byb3h5IDogcHVibGljIElQ
Qzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxMaWJXZWJSVEND
b2RlY3NQcm94eT4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIHByb2Nlc3MpIHsg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTGliV2ViUlRDQ29kZWNzUHJveHkocHJvY2VzcykpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIuaAppbmRl
eCA4YzdhNzcxYWJmMTQ1ZTg2YTU1ZGM5ZjAyNTJhZGY0YmZmNmYyZWRjLi45ZjBmNjUyZjY5MzYw
MjAwODMzZWI4OWQ2M2E0NmQxZWQ1ZWU5ZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyOwog
Ci1jbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIgZmluYWwg
OiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgeworY2xhc3Mg
UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyIGZpbmFsIDogcHVibGlj
IElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxSZW1vdGVB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI+IGNyZWF0ZShHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBwcm9jZXNzKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZUF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcihwcm9jZXNzKSk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgKaW5kZXggOGU0ODliMTYzY2MzZWM2ZGUw
MGUyZTBiZjkyNjc4YTJkNmNjZjQxZi4uYTMyNGFlYzk1NzQxYWE3ODZjYTRiMDAyM2Y2OTJhMTk1
NzExNDU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgK
QEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOwogY2xhc3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyOwogCi1j
bGFzcyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyIGZpbmFsIDogcHVibGlj
IElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFJlbW90ZVNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpDb25uZWN0
aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIHsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXI+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25u
ZWN0aW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllck1hbmFnZXIoY29ubmVjdGlvbikpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCmluZGV4IDNlYTExNmMwYjhhNTRi
ZjE5OTYwZjliNWMwNjdiZmI3MDhkMTk3NjQuLmIzZGZjZWRmMjgxZTQ1NmYwOTdlNmY0OTA5N2Jh
OGM2YzMzNjQ4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
SW5kZXhlZERCL1dlYklEQlNlcnZlci5oCkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIElEQlNlcnZl
cjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYklEQlNlcnZlciBmaW5hbCA6IHB1
YmxpYyBDcm9zc1RocmVhZFRhc2tIYW5kbGVyLCBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJl
YWRNZXNzYWdlUmVjZWl2ZXIgeworY2xhc3MgV2ViSURCU2VydmVyIGZpbmFsIDogcHVibGljIENy
b3NzVGhyZWFkVGFza0hhbmRsZXIsIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3Nh
Z2VSZWNlaXZlclJlZkNvdW50ZWQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViSURCU2Vy
dmVyPiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBXZWJD
b3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNlUmVxdWVz
dGVyJiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL05ldHdvcmtSVENQcm92aWRlci5oCmluZGV4IGFhYzZlMjBlMDRiODRlODY3NTE5NzNmMjhj
NmUyYjJiYzBiODgxNGYuLjNhMDY3MDNmNDEyZTkwNTc1ZGJlMzU1Mzk0NTA1NjRkNTBhNjdjMzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtS
VENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05l
dHdvcmtSVENQcm92aWRlci5oCkBAIC02MCw3ICs2MCw3IEBAIGNsYXNzIE5ldHdvcmtSVENSZXNv
bHZlcjsKIGNsYXNzIE5ldHdvcmtTZXNzaW9uOwogc3RydWN0IFJUQ1BhY2tldE9wdGlvbnM7CiAK
LWNsYXNzIE5ldHdvcmtSVENQcm92aWRlciA6IHB1YmxpYyBydGM6Ok1lc3NhZ2VIYW5kbGVyLCBw
dWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgeworY2xhc3MgTmV0
d29ya1JUQ1Byb3ZpZGVyIDogcHVibGljIHJ0Yzo6TWVzc2FnZUhhbmRsZXIsIHB1YmxpYyBJUEM6
OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgewogcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8TmV0d29ya1JUQ1Byb3ZpZGVyPiBjcmVhdGUoTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29y
a1JUQ1Byb3ZpZGVyKGNvbm5lY3Rpb24pKTsgfQogICAgIH5OZXR3b3JrUlRDUHJvdmlkZXIoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggNDkyMDk2MjIx
ODVmM2IzYjRhNzI1NmU1NDJlYjZkNmRjNmY3YzQ3Yy4uMzA2ODM3MzhjNzZlYmZmMDc2NDg0ZDE3
MzA0YTg2MmVkNmFhYjUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlv
bi5jcHAKQEAgLTMxMSwyMyArMzExLDI1IEBAIHZvaWQgQ29ubmVjdGlvbjo6c2V0U2hvdWxkRXhp
dE9uU3luY01lc3NhZ2VTZW5kRmFpbHVyZShib29sIHNob3VsZEV4aXRPblN5bmNNZXNzCiAgICAg
bV9zaG91bGRFeGl0T25TeW5jTWVzc2FnZVNlbmRGYWlsdXJlID0gc2hvdWxkRXhpdE9uU3luY01l
c3NhZ2VTZW5kRmFpbHVyZTsKIH0KIAotdm9pZCBDb25uZWN0aW9uOjphZGRXb3JrUXVldWVNZXNz
YWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFdvcmtRdWV1ZSYg
d29ya1F1ZXVlLCBXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIqIHdvcmtRdWV1ZU1lc3NhZ2VSZWNl
aXZlcikKK3ZvaWQgQ29ubmVjdGlvbjo6YWRkV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKFJlY2Vp
dmVyTmFtZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBXb3JrUXVldWUmIHdvcmtRdWV1ZSwgV29ya1F1
ZXVlTWVzc2FnZVJlY2VpdmVyKiB3b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIsIHVpbnQ2NF90IGRl
c3RpbmF0aW9uSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV93b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzTXV0ZXgpOwot
ICAgIEFTU0VSVCghbV93b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VS
ZWNlaXZlck5hbWUpKTsKKyAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHN0YXRpY19jYXN0
PHVpbnQ4X3Q+KG1lc3NhZ2VSZWNlaXZlck5hbWUpLCBkZXN0aW5hdGlvbklEKTsKKyAgICBBU1NF
UlQoIW1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVycy5jb250YWlucyhrZXkpKTsKIAotICAgIG1f
d29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVycy5hZGQobWVzc2FnZVJlY2VpdmVyTmFtZSwgc3RkOjpt
YWtlX3BhaXIoJndvcmtRdWV1ZSwgd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKSk7CisgICAgbV93
b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzLmFkZChrZXksIHN0ZDo6bWFrZV9wYWlyKCZ3b3JrUXVl
dWUsIHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcikpOwogfQogCi12b2lkIENvbm5lY3Rpb246OnJl
bW92ZVdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihSZWNlaXZlck5hbWUgbWVzc2FnZVJlY2VpdmVy
TmFtZSkKK3ZvaWQgQ29ubmVjdGlvbjo6cmVtb3ZlV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKFJl
Y2VpdmVyTmFtZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEKQog
ewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyc011dGV4KTsKLSAgICBBU1NFUlQobV93
b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VSZWNlaXZlck5hbWUpKTsK
LSAgICBtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMucmVtb3ZlKG1lc3NhZ2VSZWNlaXZlck5h
bWUpOworICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIoc3RhdGljX2Nhc3Q8dWludDhfdD4o
bWVzc2FnZVJlY2VpdmVyTmFtZSksIGRlc3RpbmF0aW9uSUQpOworICAgIEFTU0VSVChtX3dvcmtR
dWV1ZU1lc3NhZ2VSZWNlaXZlcnMuY29udGFpbnMoa2V5KSk7CisgICAgbV93b3JrUXVldWVNZXNz
YWdlUmVjZWl2ZXJzLnJlbW92ZShrZXkpOwogfQogCiB2b2lkIENvbm5lY3Rpb246OmRpc3BhdGNo
V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWVzc2FnZShXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIm
IHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciwgRGVjb2RlciYgZGVjb2RlcikKQEAgLTM1NywyNCAr
MzU5LDI2IEBAIHZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hXb3JrUXVldWVNZXNzYWdlUmVjZWl2
ZXJNZXNzYWdlKFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlCiAgICAgICAgIHNlbmRTeW5jUmVwbHko
V1RGTW92ZShyZXBseUVuY29kZXIpKTsKIH0KIAotdm9pZCBDb25uZWN0aW9uOjphZGRUaHJlYWRN
ZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFRocmVhZE1l
c3NhZ2VSZWNlaXZlciogdGhyZWFkTWVzc2FnZVJlY2VpdmVyKQordm9pZCBDb25uZWN0aW9uOjph
ZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUs
IFRocmVhZE1lc3NhZ2VSZWNlaXZlciogdGhyZWFkTWVzc2FnZVJlY2VpdmVyLCB1aW50NjRfdCBk
ZXN0aW5hdGlvbklEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fdGhyZWFkTWVzc2FnZVJlY2VpdmVyc0xvY2spOwotICAg
IEFTU0VSVCghbV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VSZWNlaXZl
ck5hbWUpKTsKKyAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHN0YXRpY19jYXN0PHVpbnQ4
X3Q+KG1lc3NhZ2VSZWNlaXZlck5hbWUpLCBkZXN0aW5hdGlvbklEKTsKKyAgICBBU1NFUlQoIW1f
dGhyZWFkTWVzc2FnZVJlY2VpdmVycy5jb250YWlucyhrZXkpKTsKIAotICAgIG1fdGhyZWFkTWVz
c2FnZVJlY2VpdmVycy5hZGQobWVzc2FnZVJlY2VpdmVyTmFtZSwgdGhyZWFkTWVzc2FnZVJlY2Vp
dmVyKTsKKyAgICBtX3RocmVhZE1lc3NhZ2VSZWNlaXZlcnMuYWRkKGtleSwgdGhyZWFkTWVzc2Fn
ZVJlY2VpdmVyKTsKIH0KIAotdm9pZCBDb25uZWN0aW9uOjpyZW1vdmVUaHJlYWRNZXNzYWdlUmVj
ZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUpCit2b2lkIENvbm5lY3Rpb246
OnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihSZWNlaXZlck5hbWUgbWVzc2FnZVJlY2VpdmVy
TmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwogCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3RocmVhZE1lc3NhZ2VSZWNl
aXZlcnNMb2NrKTsKLSAgICBBU1NFUlQobV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5z
KG1lc3NhZ2VSZWNlaXZlck5hbWUpKTsKKyAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHN0
YXRpY19jYXN0PHVpbnQ4X3Q+KG1lc3NhZ2VSZWNlaXZlck5hbWUpLCBkZXN0aW5hdGlvbklEKTsK
KyAgICBBU1NFUlQobV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKGtleSkpOwogCi0g
ICAgbV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzLnJlbW92ZShtZXNzYWdlUmVjZWl2ZXJOYW1lKTsK
KyAgICBtX3RocmVhZE1lc3NhZ2VSZWNlaXZlcnMucmVtb3ZlKGtleSk7CiB9CiAKIHZvaWQgQ29u
bmVjdGlvbjo6ZGlzcGF0Y2hUaHJlYWRNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKFRocmVhZE1lc3Nh
Z2VSZWNlaXZlciYgdGhyZWFkTWVzc2FnZVJlY2VpdmVyLCBEZWNvZGVyJiBkZWNvZGVyKQpAQCAt
NzEzLDcgKzcxNyw4IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nTWVzc2FnZShz
dGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gbWVzc2FnZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGlmICghV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWFwOjppc1ZhbGlkS2V5KG1lc3Nh
Z2UtPm1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgfHwgIVRocmVhZE1lc3NhZ2VSZWNlaXZlck1hcDo6
aXNWYWxpZEtleShtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkpKSB7CisgICAgYXV0byB0
aHJlYWRlZFJlY2VpdmVyS2V5ID0gc3RkOjptYWtlX3BhaXIoc3RhdGljX2Nhc3Q8dWludDhfdD4o
bWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSwgbWVzc2FnZS0+ZGVzdGluYXRpb25JRCgp
KTsKKyAgICBpZiAoIVdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1hcDo6aXNWYWxpZEtleSh0aHJl
YWRlZFJlY2VpdmVyS2V5KSB8fCAhVGhyZWFkTWVzc2FnZVJlY2VpdmVyTWFwOjppc1ZhbGlkS2V5
KHRocmVhZGVkUmVjZWl2ZXJLZXkpKSB7CiAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRj
aChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtZXNzYWdlTmFtZSA9IG1lc3NhZ2Ut
Pm1lc3NhZ2VOYW1lKCldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5k
aXNwYXRjaERpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShtZXNzYWdlTmFtZSk7CiAgICAgICAgIH0p
OwpAQCAtMTAwNCw3ICsxMDA5LDggQEAgdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2Uo
RGVjb2RlciYgZGVjb2RlcikKIGJvb2wgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlVG9Xb3Jr
UXVldWVSZWNlaXZlcihzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4mIG1lc3NhZ2UpCiB7CiAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnNNdXRleCk7
Ci0gICAgYXV0byBpdCA9IG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVycy5maW5kKG1lc3NhZ2Ut
Pm1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgYXV0byBrZXkgPSBzdGQ6Om1ha2VfcGFpcihz
dGF0aWNfY2FzdDx1aW50OF90PihtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkpLCBtZXNz
YWdlLT5kZXN0aW5hdGlvbklEKCkpOworICAgIGF1dG8gaXQgPSBtX3dvcmtRdWV1ZU1lc3NhZ2VS
ZWNlaXZlcnMuZmluZChrZXkpOwogICAgIGlmIChpdCAhPSBtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNl
aXZlcnMuZW5kKCkpIHsKICAgICAgICAgaXQtPnZhbHVlLmZpcnN0LT5kaXNwYXRjaChbcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB3b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIgPSBpdC0+
dmFsdWUuc2Vjb25kLCBkZWNvZGVyID0gV1RGTW92ZShtZXNzYWdlKV0oKSBtdXRhYmxlIHsKICAg
ICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpc3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVy
TWVzc2FnZSgqd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLCAqZGVjb2Rlcik7CkBAIC0xMDE5LDcg
KzEwMjUsOCBAQCBib29sIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZVRvVGhyZWFkUmVjZWl2
ZXIoc3RkOjp1bmlxdWVfcHRyPERlY29kZXI+JiBtZXNzYQogICAgIFJlZlB0cjxUaHJlYWRNZXNz
YWdlUmVjZWl2ZXI+IHByb3RlY3RlZFRocmVhZE1lc3NhZ2VSZWNlaXZlcjsKICAgICB7CiAgICAg
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzTG9jayk7
Ci0gICAgICAgIHByb3RlY3RlZFRocmVhZE1lc3NhZ2VSZWNlaXZlciA9IG1fdGhyZWFkTWVzc2Fn
ZVJlY2VpdmVycy5nZXQobWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKyAgICAgICAg
YXV0byBrZXkgPSBzdGQ6Om1ha2VfcGFpcihzdGF0aWNfY2FzdDx1aW50OF90PihtZXNzYWdlLT5t
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkpLCBtZXNzYWdlLT5kZXN0aW5hdGlvbklEKCkpOworICAgICAg
ICBwcm90ZWN0ZWRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgPSBtX3RocmVhZE1lc3NhZ2VSZWNlaXZl
cnMuZ2V0KGtleSk7CiAgICAgfQogCiAgICAgaWYgKHByb3RlY3RlZFRocmVhZE1lc3NhZ2VSZWNl
aXZlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCmluZGV4IDg1Nzcy
ZjNkMzA3OTkwYjZiN2E5MWMwZDdkZmI3YjliN2YyMDQ2MzIuLjc5NWFmMDM3ODIxNjdjMDVlMjI3
MWQ3OGMyZDVhMWQzOTgzMTQyMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
SVBDL0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0
aW9uLmgKQEAgLTExNyw5ICsxMTcsMjYgQEAgcHVibGljOgogICAgIGNsYXNzIFdvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlciA6IHB1YmxpYyBNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXI+IHsKICAgICB9OwogCi0gICAgY2xh
c3MgVGhyZWFkTWVzc2FnZVJlY2VpdmVyIDogcHVibGljIE1lc3NhZ2VSZWNlaXZlciwgcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPFRocmVhZE1lc3NhZ2VSZWNlaXZlcj4geworICAgIGNsYXNz
IFRocmVhZE1lc3NhZ2VSZWNlaXZlciA6IHB1YmxpYyBNZXNzYWdlUmVjZWl2ZXIgewogICAgIHB1
YmxpYzoKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVG9UaHJlYWQoV1RGOjpGdW5jdGlv
bjx2b2lkKCk+JiYpIHsgfTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVG9UaHJlYWQo
V1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYpID0gMDsKKworICAgICAgICB2b2lkIHJlZigpIHsgcmVm
TWVzc2FnZVJlY2VpdmVyKCk7IH0KKyAgICAgICAgdm9pZCBkZXJlZigpIHsgZGVyZWZNZXNzYWdl
UmVjZWl2ZXIoKTsgfQorCisgICAgcHJvdGVjdGVkOgorICAgICAgICB2aXJ0dWFsIHZvaWQgcmVm
TWVzc2FnZVJlY2VpdmVyKCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZNZXNzYWdl
UmVjZWl2ZXIoKSA9IDA7CisgICAgfTsKKworICAgIGNsYXNzIFRocmVhZE1lc3NhZ2VSZWNlaXZl
clJlZkNvdW50ZWQgOiBwdWJsaWMgVGhyZWFkTWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZD4geworICAgIHB1
YmxpYzoKKyAgICAgICAgdXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ6OnJlZjsKKyAgICAgICAg
dXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ6OmRlcmVmOworCisgICAgcHJpdmF0ZToKKyAgICAg
ICAgdm9pZCByZWZNZXNzYWdlUmVjZWl2ZXIoKSBmaW5hbCB7IFRocmVhZFNhZmVSZWZDb3VudGVk
OjpyZWYoKTsgfQorICAgICAgICB2b2lkIGRlcmVmTWVzc2FnZVJlY2VpdmVyKCkgZmluYWwgeyBU
aHJlYWRTYWZlUmVmQ291bnRlZDo6ZGVyZWYoKTsgfQogICAgIH07CiAKICNpZiBVU0UoVU5JWF9E
T01BSU5fU09DS0VUUykKQEAgLTE5MCwxMSArMjA3LDExIEBAIHB1YmxpYzoKICAgICB0eXBlZGVm
IHZvaWQgKCpEaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZUNhbGxiYWNrKShDb25uZWN0aW9u
Kik7CiAgICAgdm9pZCBzZXREaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZUNhbGxiYWNrKERp
ZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2spOwogCi0gICAgdm9pZCBhZGRXb3Jr
UXVldWVNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lLCBXb3JrUXVldWUmLCBXb3JrUXVldWVN
ZXNzYWdlUmVjZWl2ZXIqKTsKLSAgICB2b2lkIHJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZl
cihSZWNlaXZlck5hbWUpOworICAgIHZvaWQgYWRkV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKFJl
Y2VpdmVyTmFtZSwgV29ya1F1ZXVlJiwgV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKiwgdWludDY0
X3QgZGVzdGluYXRpb25JRCA9IDApOworICAgIHZvaWQgcmVtb3ZlV29ya1F1ZXVlTWVzc2FnZVJl
Y2VpdmVyKFJlY2VpdmVyTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCA9IDApOwogCi0gICAg
dm9pZCBhZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lLCBUaHJlYWRNZXNzYWdl
UmVjZWl2ZXIqKTsKLSAgICB2b2lkIHJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihSZWNlaXZl
ck5hbWUpOworICAgIHZvaWQgYWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKFJlY2VpdmVyTmFtZSwg
VGhyZWFkTWVzc2FnZVJlY2VpdmVyKiwgdWludDY0X3QgZGVzdGluYXRpb25JRCA9IDApOworICAg
IHZvaWQgcmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKFJlY2VpdmVyTmFtZSwgdWludDY0X3Qg
ZGVzdGluYXRpb25JRCA9IDApOwogCiAgICAgYm9vbCBvcGVuKCk7CiAgICAgdm9pZCBpbnZhbGlk
YXRlKCk7CkBAIC0zNDksMTEgKzM2NiwxMSBAQCBwcml2YXRlOgogICAgIFJlZjxXb3JrUXVldWU+
IG1fY29ubmVjdGlvblF1ZXVlOwogCiAgICAgTG9jayBtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZl
cnNNdXRleDsKLSAgICB1c2luZyBXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJNYXAgPSBIYXNoTWFw
PFJlY2VpdmVyTmFtZSwgc3RkOjpwYWlyPFJlZlB0cjxXb3JrUXVldWU+LCBSZWZQdHI8V29ya1F1
ZXVlTWVzc2FnZVJlY2VpdmVyPj4sIFdURjo6SW50SGFzaDxSZWNlaXZlck5hbWU+LCBXVEY6OlN0
cm9uZ0VudW1IYXNoVHJhaXRzPFJlY2VpdmVyTmFtZT4+OworICAgIHVzaW5nIFdvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlck1hcCA9IEhhc2hNYXA8c3RkOjpwYWlyPHVpbnQ4X3QsIHVpbnQ2NF90Piwg
c3RkOjpwYWlyPFJlZlB0cjxXb3JrUXVldWU+LCBSZWZQdHI8V29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyPj4+OwogICAgIFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1hcCBtX3dvcmtRdWV1ZU1lc3Nh
Z2VSZWNlaXZlcnM7CiAKICAgICBMb2NrIG1fdGhyZWFkTWVzc2FnZVJlY2VpdmVyc0xvY2s7Ci0g
ICAgdXNpbmcgVGhyZWFkTWVzc2FnZVJlY2VpdmVyTWFwID0gSGFzaE1hcDxSZWNlaXZlck5hbWUs
IFJlZlB0cjxUaHJlYWRNZXNzYWdlUmVjZWl2ZXI+LCBXVEY6OkludEhhc2g8UmVjZWl2ZXJOYW1l
PiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxSZWNlaXZlck5hbWU+PjsKKyAgICB1c2luZyBU
aHJlYWRNZXNzYWdlUmVjZWl2ZXJNYXAgPSBIYXNoTWFwPHN0ZDo6cGFpcjx1aW50OF90LCB1aW50
NjRfdD4sIFJlZlB0cjxUaHJlYWRNZXNzYWdlUmVjZWl2ZXI+PjsKICAgICBUaHJlYWRNZXNzYWdl
UmVjZWl2ZXJNYXAgbV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzOwogCiAgICAgdW5zaWduZWQgbV9p
blNlbmRTeW5jQ291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKaW5kZXgg
ODIxMzgwMGI5ZjEwYzU4MjYwZTA3YTc5MGY3Y2IyMGE3ZTBlYTA3Ni4uODQwNGM0OGUxYzJlNDgy
YWJjZDI0ZTU1ZDJjYzkxM2JkMjY3ZTc0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5LmNwcApAQCAtNjAsNyArNjAsMTYgQEAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmEKICAgICBj
b25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kU3luYygKICAgICAgICAgTWVzc2FnZXM6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpDcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKGlucHV0RGV2
aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2Ft
cGxlUmF0ZSksCiAgICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
cjo6Q3JlYXRlQXVkaW9EZXN0aW5hdGlvbjo6UmVwbHkoZGVzdGluYXRpb25JRCwgZnJhbWVzUGVy
QnVmZmVyKSwgMCk7Ci0gICAgY29ubmVjdGlvbi5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5hZGRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBkZXN0aW5hdGlvbklELnRvVUludDY0KCksICp0aGlzKTsKKworICAg
IGF1dG8gb2ZmVGhyZWFkUmVuZGVyaW5nID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgd2hpbGUgKCFtX3RocmVhZFRhc2tRdWV1ZS5p
c0tpbGxlZCgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byB0YXNrID0gbV90aHJlYWRUYXNrUXVl
dWUud2FpdEZvck1lc3NhZ2UoKSkKKyAgICAgICAgICAgICAgICB0YXNrKCk7CisgICAgICAgIH0K
KyAgICB9OworICAgIG1fcmVuZGVyVGhyZWFkID0gVGhyZWFkOjpjcmVhdGUoIlJlbW90ZUF1ZGlv
RGVzdGluYXRpb25Qcm94eSByZW5kZXIgdGhyZWFkIiwgV1RGTW92ZShvZmZUaHJlYWRSZW5kZXJp
bmcpLCBUaHJlYWRUeXBlOjpBdWRpbyk7CisKKyAgICBjb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5h
ZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzLCBkZXN0aW5hdGlvbklELnRvVUludDY0
KCkpOwogCiAgICAgbV9kZXN0aW5hdGlvbklEID0gZGVzdGluYXRpb25JRDsKICAgICBtX2ZyYW1l
c1BlckJ1ZmZlciA9IGZyYW1lc1BlckJ1ZmZlcjsKQEAgLTY5LDEyICs3OCwxNSBAQCBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eShBdWRpb0lP
Q2FsbGJhY2smIGNhbGxiYQogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojp+UmVtb3RlQXVk
aW9EZXN0aW5hdGlvblByb3h5KCkKIHsKICAgICBhdXRvJiBjb25uZWN0aW9uID0gIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7Ci0gICAgY29ubmVj
dGlvbi5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2Rl
c3RpbmF0aW9uSUQudG9VSW50NjQoKSk7CisgICAgY29ubmVjdGlvbi5jb25uZWN0aW9uKCkucmVt
b3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9kZXN0aW5hdGlvbklELnRvVUludDY0KCkp
OwogCiAgICAgY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KAogICAg
ICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OkRlbGV0ZUF1ZGlv
RGVzdGluYXRpb24obV9kZXN0aW5hdGlvbklEKSwgW10gewogICAgICAgICAvLyBDYW4ndCByZW1v
dmUgdGhpcyBmcm9tIHByb3h5TWFwKCkgaGVyZSBiZWNhdXNlIHRoZSBvYmplY3Qgd291bGQgaGF2
ZSBiZWVuIGFscmVhZHkgZGVsZXRlZC4KICAgICB9KTsKKworICAgIG1fdGhyZWFkVGFza1F1ZXVl
LmtpbGwoKTsKKyAgICBtX3JlbmRlclRocmVhZC0+d2FpdEZvckNvbXBsZXRpb24oKTsKIH0KIAog
dm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoRnVu
Y3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKQpAQCAtOTUsMzAgKzEw
NywzMCBAQCB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RvcCgpCiAKIHZvaWQg
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpyZW5kZXJCdWZmZXIoY29uc3QgV2ViS2l0OjpS
ZW1vdGVBdWRpb0J1c0RhdGEmIGF1ZGlvQnVzRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgcmVuZGVy
aW5nIG9uIHRoZSBtYWluIHRocmVhZCB3aGVuIEF1ZGlvV29ya2xldCBpcyBub3QgYWN0aXZlLCB3
aGljaCBpcyBsaWtlbHkgbm90IGEgZ29vZCBpZGVhLgotICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKGF1ZGlvQnVzRGF0
YS5mcmFtZXNUb1Byb2Nlc3MpOwogICAgIEFTU0VSVChhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZl
cnMuc2l6ZSgpKTsKICAgICBhdXRvIGF1ZGlvQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShhdWRpb0J1
c0RhdGEuY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNz
LCBmYWxzZSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGF1ZGlvQnVzRGF0YS5jaGFu
bmVsQnVmZmVycy5zaXplKCk7ICsraSkKICAgICAgICAgYXVkaW9CdXMtPnNldENoYW5uZWxNZW1v
cnkoaSwgKGZsb2F0KilhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnNbaV0tPmRhdGEoKSwgYXVk
aW9CdXNEYXRhLmZyYW1lc1RvUHJvY2Vzcyk7CiAKLSAgICBhdXRvIGRvUmVuZGVyID0gW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgYXVkaW9CdXMgPSBXVEZNb3ZlKGF1ZGlv
QnVzKSwgZnJhbWVzVG9Qcm9jZXNzID0gYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2Vzcywgb3V0
cHV0UG9zaXRpb24gPSBhdWRpb0J1c0RhdGEub3V0cHV0UG9zaXRpb25dIHsKLSAgICAgICAgbV9j
YWxsYmFjay5yZW5kZXIoMCwgYXVkaW9CdXMuZ2V0KCksIGZyYW1lc1RvUHJvY2Vzcywgb3V0cHV0
UG9zaXRpb24pOwotICAgIH07Ci0gICAgaWYgKG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkgewot
ICAgICAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQoW2RvUmVuZGVyID0gV1RGTW92ZShkb1Jl
bmRlciksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkg
bXV0YWJsZSB7Ci0gICAgICAgICAgICBkb1JlbmRlcigpOwotICAgICAgICAgICAgY2FsbE9uTWFp
blRocmVhZChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIH0pOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIGRvUmVuZGVyKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
Ci0gICAgfQorICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlvQnVzLmdldCgpLCBhdWRpb0J1
c0RhdGEuZnJhbWVzVG9Qcm9jZXNzLCBhdWRpb0J1c0RhdGEub3V0cHV0UG9zaXRpb24pOworICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5OjpkaWRDaGFuZ2VJc1BsYXlpbmcoYm9vbCBpc1BsYXlpbmcpCiB7CisgICAgQVNTRVJUKCFp
c01haW5UaHJlYWQoKSk7Cit9CisKKy8vIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJl
Y2VpdmVyCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6ZGlzcGF0Y2hUb1RocmVh
ZChGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKK3sKKyAgICBpZiAobV9kaXNwYXRjaFRvUmVuZGVy
VGhyZWFkKSB7CisgICAgICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZChXVEZNb3ZlKHRhc2sp
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3RocmVhZFRhc2tRdWV1ZS5hcHBlbmQo
V1RGTW92ZSh0YXNrKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5LmgKaW5kZXggOTA3ZWNmNWE3N2Y0MmI5NDc4OTBiZGYzYTE3ZTE4ZWNm
YjVhYTVmOS4uYzRhZGI3NTYwZDQ2Mzc1OGVlNzE1NmYwMWVlYzk5NThkM2NmZGU2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGluYXRp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorI2luY2x1ZGUgPHd0
Zi9Dcm9zc1RocmVhZFF1ZXVlLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KQEAgLTQw
LDEyICs0MiwxMyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5IDogcHVibGljIFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24sIHByaXZh
dGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
Y2xhc3MgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IDogcHVibGljIFdlYkNvcmU6OkF1ZGlv
RGVzdGluYXRpb24sIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZl
ciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
KTsKIHB1YmxpYzoKICAgICB1c2luZyBBdWRpb0J1cyA9IFdlYkNvcmU6OkF1ZGlvQnVzOwogICAg
IHVzaW5nIEF1ZGlvSU9DYWxsYmFjayA9IFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjazsKKyAgICB1
c2luZyBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOjpyZWY7CisgICAgdXNpbmcgV2ViQ29yZTo6
QXVkaW9EZXN0aW5hdGlvbjo6ZGVyZWY7CiAKICAgICBzdGF0aWMgUmVmPEF1ZGlvRGVzdGluYXRp
b24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2aWNlSWQs
IHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRD
aGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKQEAgLTY4LDEyICs3MSwxOSBAQCBwcml2YXRl
OgogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKIAorICAgIC8vIElQQzo6
Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaXNwYXRjaFRvVGhy
ZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9pZCByZWZNZXNzYWdlUmVjZWl2
ZXIoKSBmaW5hbCB7IFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb246OnJlZigpOyB9CisgICAgdm9p
ZCBkZXJlZk1lc3NhZ2VSZWNlaXZlcigpIGZpbmFsIHsgV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlv
bjo6ZGVyZWYoKTsgfQorCiAgICAgQXVkaW9JT0NhbGxiYWNrJiBtX2NhbGxiYWNrOwogICAgIGZs
b2F0IG1fc2FtcGxlUmF0ZSB7IDAuIH07CiAgICAgdW5zaWduZWQgbV9mcmFtZXNQZXJCdWZmZXIg
eyAwIH07CiAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgbV9kZXN0aW5hdGlv
bklEOwogICAgIGJvb2wgbV9pc1BsYXlpbmcgeyBmYWxzZSB9OwogICAgIEZ1bmN0aW9uPHZvaWQo
RnVuY3Rpb248dm9pZCgpPiYmKT4gbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkOworICAgIFJlZlB0
cjxUaHJlYWQ+IG1fcmVuZGVyVGhyZWFkOworICAgIENyb3NzVGhyZWFkUXVldWU8RnVuY3Rpb248
dm9pZCgpPj4gbV90aHJlYWRUYXNrUXVldWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENOZXR3b3JrLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
TGliV2ViUlRDTmV0d29yay5oCmluZGV4IDgzZjJhMWIxMTE3YWQzYjNkNjA2NTJlYzRiNjEzZTUw
M2MyMTZhNjkuLmU0Y2NjZjBkYzU3ZWM4NGVhNmVjNGRhOTgzNGNjY2M0YTVhNTE5NzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENO
ZXR3b3JrLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ05ldHdvcmsuaApAQCAtMzUsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotY2xhc3MgTGliV2ViUlRDTmV0d29yayA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVh
ZE1lc3NhZ2VSZWNlaXZlciB7CitjbGFzcyBMaWJXZWJSVENOZXR3b3JrIDogcHVibGljIElQQzo6
Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgTGliV2ViUlRDTmV0d29yaygpID0gZGVm
YXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKaW5kZXggZjYxOTdjZjllZTU3MDUyYjI4ODE3MmVh
ZWI3Y2I1NTY2YzYxODI5NS4uNmZiNGJjMzdiOTM4MDE2ZmNlNWM1YzVhYzVhNDM3MDI3ZjE4NmJl
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKQEAgLTM5LDcgKzM5LDcgQEAKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLWNsYXNzIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyIDogcHVibGljIElQ
Qzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFJlbW90ZUNhcHR1
cmVTYW1wbGVNYW5hZ2VyIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJl
Y2VpdmVyUmVmQ291bnRlZCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
CiAgICAgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4OTQ3YTRjNDEzODI2
OWJhMzllNzExYjBmMDI5ZmRkMmYxZDZiNjRmLi41ZWI5YjhiZjhjZmI5MjA4ZTk5ZGM3ODg5ZjA2
YTY1NmE2NzM4NmJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMTMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBdWRpbyB0ZXN0cyBhcmUgY3Jh
c2hpbmcgaW4gZGVidWcgd2hlbiBlbmFibGluZyB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzY2MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuc2tpcCB3ZWJhdWRpbyB0ZXN0
cyB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBlbmFibGVkLgorCisgICAgICAgICogZ3B1LXByb2Nl
c3MvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMC0xMC0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIENhbGxpbmcgQXVkaW9Db250ZXh0LnJlc3VtZSgpIHJpZ2h0
IGFmdGVyIEF1ZGlvQ29udGV4dC5zdXNwZW5kKCkgc2hvdWxkIG5vdCBiZSBhIG5vLW9wCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmZDk2ZDdmZGU4YjQ2Mzll
ZmE4Njc1ZDgwM2U1M2U1NWNlYzY0MzY5Li45Y2Q5NTUxY2YxNzEwOGI2MDcwZWY2ZmE4ZmU5MzNj
NzJhZTc0NGIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTMxMSwxMCArMzExLDggQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tc3QtY29u
dGVudC1oaW50L01lZGlhU3RyZWFtVHJhY2stY29udGVudEhpbnQuaHQKIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGljdHVyZS1pbi1waWN0dXJlL21lZGlhc3RyZWFtLmh0bWwgWyBT
a2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2ZldGNoLWF1ZGlvLXRhaW50aW5nLmh0dHBzLmh0bWwgWyBTa2lwIF0KIAot
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpbyBbIFNraXAgXQogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMgWyBTa2lwIF0KIAotd2ViYXVkaW8gWyBT
a2lwIF0KIHdlYnJ0YyBbIFNraXAgXQogCiB3ZWJnbCBbIFNraXAgXQpAQCAtMzkyLDQgKzM5MCw0
IEBAIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFpbHVy
ZS1sb2NhbC5odHRwcy5odG1sIFsgQ3Jhc2gKIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1sIFsgQ3Jhc2ggXQogaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2FsLXNp
bGVudC5odHRwcy5odG1sIFsgQ3Jhc2ggXQogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1j
cmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2FsLmh0dHBzLmh0bWwgWyBDcmFzaCBdCi1odHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtbG9jYWwuaHR0cHMu
aHRtbCBbIENyYXNoIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitodHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbCBb
IENyYXNoIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411245</attachid>
            <date>2020-10-13 13:24:32 -0700</date>
            <delta_ts>2020-10-13 13:36:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217663-20201013132431.patch</filename>
            <type>text/plain</type>
            <size>39285</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Mjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdiZGUzY2M4NGY0MWUwNjNmMjI5Mzkx
YWY4MmE4NzA3Nzc0OTQ3MTcuLjc5NTE5ODY3YzUzMzExOGU2MGRjMzJmZjBiOTg0MzQ5NjkwOWNi
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMTAtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBdWRpbyB0ZXN0cyBhcmUgY3Jhc2hpbmcgaW4gZGVi
dWcgd2hlbiBlbmFibGluZyB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzY2MworCisgICAgICAgIFJldmlld2VkIGJ5IEdl
b2ZmIEdhcmVuLgorCisgICAgICAgICogd3RmL0Nyb3NzVGhyZWFkUXVldWUuaDoKKyAgICAgICAg
KFdURjo6Q3Jvc3NUaHJlYWRRdWV1ZTxEYXRhVHlwZT46OndhaXRGb3JNZXNzYWdlKToKKyAgICAg
ICAgSWYgQ3Jvc3NUaHJlYWRRdWV1ZTo6a2lsbCgpIGdldHMgY2FsbGVkIHdoaWxlIGFub3RoZXIg
dGhyZWFkIGlzIHdhaXRpbmcgb24gYQorICAgICAgICBDcm9zc1RocmVhZFF1ZXVlOjp3YWl0Rm9y
TWVzc2FnZSgpIGNhbGwsIG1ha2UgaXQgc28gdGhhdCB3YWl0Rm9yTWVzc2FnZSgpCisgICAgICAg
IHJldHVybnMgYSBkZWZhdWx0LWNvbnN0cnVjdGVkIERhdGFUeXBlIGluc3RlYWQgb2YgY3Jhc2hp
bmcgdHJ5aW5nIHRvCisgICAgICAgIGRlcXVldWUgKHNpbmNlIHRoZSBxdWV1ZSBpcyBlbXB0eSku
CisKIDIwMjAtMTAtMDkgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgRmluYWxpemVycyBzaG91bGRuJ3QgcnVuIGlmIGV2ZW50cyBjYW4ndCBmaXJlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggZDZkNjkzNzljMzhhNGIwZGI3MGY1ZDExMWM0YTNiN2ExZDZlZWY0Yy4uMzNk
YWRhOGRlMzgwNjBjNmIxMDQ2OTBjYWU1YjgxNGQyMDJhNjM5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIwLTEwLTEzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgV2ViQXVkaW8gdGVzdHMgYXJlIGNyYXNoaW5nIGluIGRlYnVnIHdoZW4gZW5hYmxp
bmcgdGhlIEdQVSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTc2NjMKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIHVuc2tpcHBlZCBleGlzdGluZyB0ZXN0cy4KKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9QdXNoUHVsbEZJRk8uaDoKKyAgICAgICAgRXhwb3J0IFB1c2hQdWxsRklGTyBzbyB0
aGF0IGl0IGNhbiBiZSB1c2VkIGF0IFdlYktpdCBsYXllci4KKwogMjAyMC0xMC0xMiAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgICdwYXJhbWV0ZXJzJyBhcmd1bWVu
dCB0byBBdWRpb1dvcmtsZXRQcm9jZXNzb3IucHJvY2VzcygpIGlzIG5vdCBzcGVjLWNvbXBsaWFu
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBlZDg2NDA0OWRjYzE1OWQyZGIwMmNmNjE3ZjkxMWJhMTM3ODhmMWQ1Li45
YTIwODhhYjViMTg4Mjc2MGI2ZDQ2MDhlNGY5NDYxZjI0NWUyYmEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY3IEBACisyMDIwLTEwLTEzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgV2ViQXVkaW8gdGVzdHMgYXJlIGNyYXNoaW5nIGluIGRlYnVnIHdoZW4gZW5hYmxp
bmcgdGhlIEdQVSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTc2NjMKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KKwor
ICAgICAgICBXZWJBdWRpbyB0ZXN0cyB3ZXJlIGNyYXNoaW5nIGluIGRlYnVnIHdoZW4gZW5hYmxp
bmcgdGhlIEdQVSBwcm9jZXNzIGJlY2F1c2UgaXQgZGlkIGF1ZGlvCisgICAgICAgIHByb2Nlc3Np
bmcgb24gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcydzIG1haW4gdGhyZWFkLiBUbyBhZGRyZXNzIHRo
ZSBpc3N1ZSwgSSBtYWRlCisgICAgICAgIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSBhIFRo
cmVhZE1lc3NhZ2VSZWNlaXZlciBzbyB0aGF0IGl0IHJlY2VpdmVzIElQQyBvbiBhbiBhdWRpbwor
ICAgICAgICB0aHJlYWQgaW5zdGVhZCBvZiB0aGUgbWFpbiB0aHJlYWQuIElQQyBtZXNzYWdlcyBh
cmUgcHJvY2Vzc2VkIGRpcmVjdGx5IG9uIHRoZSBBdWRpb1dvcmtsZXQKKyAgICAgICAgdGhyZWFk
IHdoZW4gYWN0aXZlIG9yIG9uIGFuIGF1ZGlvIHRocmVhZCBjb25zdHJ1Y3RlZCBieSBSZW1vdGVB
dWRpb0Rlc3RpbmF0aW9uUHJveHkKKyAgICAgICAgb3RoZXJ3aXNlLgorCisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb246OlJlbW90ZUF1ZGlvRGVzdGluYXRpb24p
OgorICAgICAgICBVc2UgYSBQdXNoUHVsbEZJRk8gc3RydWN0dXJlIGluIHJlbmRlcigpIHRvIGF2
b2lkIGhhbmdpbmcgdGhlIGF1ZGlvIHJlbmRlcmluZyB0aHJlYWQKKyAgICAgICAgb24gYSBzZW1h
cGhvcmUuIEhhbmdpbmcgdGhlIHJlbmRlcmluZyB0aHJlYWQgd2FzIHRlcnJpYmxlIGZvciBwZXJm
b3JtYW5jZSBhbmQgd2FzIGFsc28KKyAgICAgICAgYSBzb3VyY2Ugb2YgZGVhZGxvY2sgc2luY2Ug
dGhlIHVuZGVybHlpbmcgZnJhbWV3b3JrIGlzIGhvbGRpbmcgYSBsb2NrIHdoaWxlIHJlbmRlcigp
IGlzCisgICAgICAgIGNhbGxlZC4gV2UgY291bGQgcHJvY2VzcyBhIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb246OkNyZWF0ZUF1ZGlvRGVzdGluYXRpb24gc3luYyBJUEMgb24gdGhlCisgICAgICAgIG1h
aW4gdGhyZWFkIGFuZCBkZWFkbG9jayBvbiB0aGF0IGxvY2suCisKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1h
bmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVy
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29yay5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
aDoKKyAgICAgICAgVXNlIFRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgaW5zdGVhZCBv
ZiBUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgc2luY2UgdGhvc2UgY2xhc3NlcworICAgICAgICBkbyBu
b3QgcHJvdmlkZSB0aGVpciBvd24gUmVmQ291bnRpbmcuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9J
UEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OmFkZFdvcmtRdWV1
ZU1lc3NhZ2VSZWNlaXZlcik6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnJlbW92ZVdvcmtR
dWV1ZU1lc3NhZ2VSZWNlaXZlcik6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OmFkZFRocmVh
ZE1lc3NhZ2VSZWNlaXZlcik6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnJlbW92ZVRocmVh
ZE1lc3NhZ2VSZWNlaXZlcik6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnByb2Nlc3NJbmNv
bWluZ01lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2VU
b1dvcmtRdWV1ZVJlY2VpdmVyKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6ZGlzcGF0Y2hN
ZXNzYWdlVG9UaHJlYWRSZWNlaXZlcik6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rp
b24uaDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyOjpy
ZWYpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXI6OmRl
cmVmKToKKyAgICAgICAgLSBBZGQgc3VwcG9ydCBmb3IgcGFzc2luZyBhIGRlc3RpbmF0aW9uSUQg
d2hlbiByZWdpc3RlcmluZyBhIFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciBvciBhCisgICAgICAg
ICAgVGhyZWFkTWVzc2FnZVJlY2VpdmVyLCBzaW1pbGFybHkgdG8gcmVndWxhciBNZXNzYWdlUmVj
ZWl2ZXJzLiBUaGlzIHdhcyBuZWVkZWQgaGVyZSBzaW5jZQorICAgICAgICAgIFRoZSBHUFVQcm9j
ZXNzIHNlbmRzIElQQyBtZXNzYWdlcyB0byB0aGUgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
IHdpdGggYSBnaXZlbgorICAgICAgICAgIGRlc3RpbmF0aW9uSUQgYW5kIHNpbmNlIFJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eSBpcyBub3cgYSBUaHJlYWRNZXNzYWdlUmVjZWl2ZXIuCisgICAg
ICAgIC0gU3RvcCBoYXZpbmcgVGhyZWFkTWVzc2FnZVJlY2VpdmVyIHN1YmNsYXNzIFRocmVhZFNh
ZmVSZWZDb3VudGVkIHNpbmNlCisgICAgICAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5
IGFscmVhZHkgc3ViY2xhc3NlcyBUaHJlYWRTYWZlUmVmQ291bnRlZCBpbmRpcmVjdGx5LiBBIG5l
dworICAgICAgICAgIFRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgY2xhc3Mgd2FzIGFk
ZGVkIGZvciBjb252ZW5pZW5jZSBmb3IgZXhpc3RpbmcgY29kZSB0aGF0CisgICAgICAgICAgcmVs
aWVkIG9uIGl0cyByZWZjb3VudGluZy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojp+UmVtb3RlQXVkaW9E
ZXN0aW5hdGlvblByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5OjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Q
cm94eTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94
eTo6cmVuZGVyQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5OjpkaWRDaGFuZ2VJc1BsYXlpbmcpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHk6OmRpc3BhdGNoVG9UaHJlYWQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oOgorICAgICAgICBVc2Ug
YSBQdXNoUHVsbEZJRk8gY29udGFpbmVyIGluIHJlbmRlcigpIHRvIGF2b2lkIGhhbmRpbmcgdGhl
IGF1ZGlvIHJlbmRlcmluZyB0aHJlYWQgb24KKyAgICAgICAgYSBzZW1hcGhvcmUgd2hpbGUgdGhl
IFJlbmRlciBJUEMgaXMgZ2V0dGluZyBwcm9jZXNzZWQgYnkgdGhlIFdlYlByb2Nlc3MuCisKIDIw
MjAtMTAtMDkgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFtHUFUgUHJvY2Vzc10gVXNlIGNvcnJlY3QgR1BVIHJ1bnRpbWUgc2V0dGluZ3Mgd2hlbiBjcmVh
dGluZyB0aGUgZHluYW1pYyBJT0tpdCBzYW5kYm94IGV4dGVuc2lvbnMgZm9yIHRoZSBXZWJDb250
ZW50IHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkUXVldWUu
aCBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkUXVldWUuaAppbmRleCBiYzJiMWVhZWY5ZTli
YTNiOWQ0NDMwMWFiYTg0YzAzNjc5MDM2OGNkLi4zMTU1Mjc0YmZhYzUzZWQ2NDVlMGRmODM1ODkw
NGNiYTc3YzNhNzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZFF1ZXVl
LmgKKysrIGIvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRRdWV1ZS5oCkBAIC04MCw2ICs4MCw4
IEBAIERhdGFUeXBlIENyb3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+Ojp3YWl0Rm9yTWVzc2FnZSgp
CiAKICAgICAgICAgbV9jb25kaXRpb24ud2FpdChtX2xvY2spOwogICAgIH0KKyAgICBpZiAobV9r
aWxsZWQpCisgICAgICAgIHJldHVybiB7IH07CiAKICAgICByZXR1cm4gbV9xdWV1ZS50YWtlRmly
c3QoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGE4NDdiMDVhYjQ0ZTVjZDRhNzA2YmUzMDhj
OGI2NDViNTI1NDAwZmUuLmJhMjZjZjYyNThmMjU5MmE5NTc1NGY3Yjk3ODZkMGJlZWFkNDNlOTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTA2OCwxMCArMTA2OCwxMiBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9u
LmgKICAgICBwbGF0Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmgKICAgICBwbGF0Zm9y
bS9hdWRpby9BdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgKKyAgICBwbGF0Zm9ybS9hdWRpby9BdWRp
b1V0aWxpdGllcy5oCiAgICAgcGxhdGZvcm0vYXVkaW8vTm93UGxheWluZ0luZm8uaAogICAgIHBs
YXRmb3JtL2F1ZGlvL1BsYXRmb3JtQXVkaW9EYXRhLmgKICAgICBwbGF0Zm9ybS9hdWRpby9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbi5oCiAgICAgcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyLmgKKyAgICBwbGF0Zm9ybS9hdWRpby9QdXNoUHVsbEZJRk8uaAogCiAgICAgcGxh
dGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNRW5jcnlwdGlvblNjaGVtZS5oCiAgICAgcGxhdGZvcm0v
ZW5jcnlwdGVkbWVkaWEvQ0RNRmFjdG9yeS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzQ0YWQ4NzdjZTYyZDIwNzNjODAyOTJl
NzJiNTZlZGMxOTA5OTUwMS4uYWZmNDcyMjgyZDE5NTM5MjYwMWY3NDkyMTM3MjFhYWNkNDYwYWQ0
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMjU0MCw3ICsyNTQwLDcgQEAKIAkJODNDNTc5NUQxREE1QzMwMTAwNkZBQ0E4IC8q
IFNjcm9sbFRvT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM1MEMzRTcxREE1OUI2MjAwMzU2NDQ2IC8qIFNjcm9sbFRvT3B0aW9ucy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRDM1QUVD
MUM3MTg3RkEwMEY3MEQ1QSAvKiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFFQTFDNzE4N0VEMDBG
NzBENUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICovOyB9OwogCQk4M0QzNUFGMjFD
NzE4RDkwMDBGNzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0QzNUFGMDFDNzE4RDg0MDBG
NzBENUEgLyogSlNYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmggKi87IH07Ci0JCTgzRDUxMUY2
MjUwQzFDQkYwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNo
UHVsbEZJRk8uaCAqLzsgfTsKKwkJODNENTExRjYyNTBDMUNCRjAwMkVEQzUxIC8qIFB1c2hQdWxs
RklGTy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNE
NTExRjUyNTBDMUNBODAwMkVEQzUxIC8qIFB1c2hQdWxsRklGTy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzRDZBQUU2MjUyNEVFMUMwMDQyOEI0
QiAvKiBXb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNENkFBRTQyNTI0RUUxMzAwNDI4QjRCIC8qIFdvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlLmggKi87IH07CiAJCTgzREI5RTBGMjREQTE5NDkwMDM3QjQ2
OCAvKiBCaXF1YWRGaWx0ZXJUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4M0RCOUUwQzI0REExOEI1MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyVHlw
ZS5oICovOyB9OwogCQk4M0RCOUUxMDI0REExOTU3MDAzN0I0NjggLyogQmlxdWFkRmlsdGVyT3B0
aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNE
QjlFMEUyNERBMThCNjAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9wdGlvbnMuaCAqLzsgfTsKQEAg
LTUyODMsNyArNTI4Myw3IEBACiAJCUZEMzE2MDg2MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1Jl
c2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkQzMTYwNTAxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvUmVzYW1wbGVyLmggKi87IH07CiAJCUZE
MzE2MDg4MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1Jlc2FtcGxlcktlcm5lbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNTIxMkIwMjZGNzAw
QzFBMzU5IC8qIEF1ZGlvUmVzYW1wbGVyS2VybmVsLmggKi87IH07CiAJCUZEMzE2MDg5MTJCMDI2
RjcwMEMxQTM1OSAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDMxNjA1MzEyQjAyNkY3MDBDMUEzNTkgLyogQXVk
aW9Tb3VyY2VQcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCUZEMzE2MDhCMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1V0aWxpdGllcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNTUx
MkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvVXRpbGl0aWVzLmggKi87IH07CisJCUZEMzE2MDhCMTJC
MDI2RjcwMEMxQTM1OSAvKiBBdWRpb1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNTUxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlv
VXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRkQzMTYwOEQxMkIwMjZGNzAwQzFBMzU5IC8qIEJpcXVhZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNTcxMkIwMjZGNzAwQzFBMzU5
IC8qIEJpcXVhZC5oICovOyB9OwogCQlGRDMxNjA4RjEyQjAyNkY3MDBDMUEzNTkgLyogQ29uZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNTkx
MkIwMjZGNzAwQzFBMzU5IC8qIENvbmUuaCAqLzsgfTsKIAkJRkQzMTYwOTExMkIwMjZGNzAwQzFB
MzU5IC8qIERpc3RhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGRDMxNjA1QjEyQjAyNkY3MDBDMUEzNTkgLyogRGlzdGFuY2UuaCAqLzsgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1B1c2hQdWxsRklGTy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUHVzaFB1bGxGSUZPLmgKaW5kZXggM2Q0M2Y0
YWNmYTRkNzVlN2M3MWI2YzBjZjBmZTQ4MzNhYjcwZjYyYi4uYjc4N2UwNzk4ZGI1MTBkMDUzODQ3
MzIzMWViMzI3YmFmZDNkNzFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vUHVzaFB1bGxGSUZPLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
UHVzaFB1bGxGSUZPLmgKQEAgLTQ1LDE5ICs0NSwxOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBzaXplX3QgbWF4RklGT0xlbmd0aCB7IDY1NTM2IH07CiAKICAgICAvLyB8Zmlmb0xl
bmd0aHwgY2Fubm90IGV4Y2VlZCB8bWF4RklGT0xlbmd0aHwuIE90aGVyd2lzZSBpdCBjcmFzaGVz
LgotICAgIFB1c2hQdWxsRklGTyh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgZmlm
b0xlbmd0aCk7Ci0gICAgflB1c2hQdWxsRklGTygpOworICAgIFdFQkNPUkVfRVhQT1JUIFB1c2hQ
dWxsRklGTyh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgZmlmb0xlbmd0aCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgflB1c2hQdWxsRklGTygpOwogCiAgICAgLy8gUHVzaGVzIHRoZSBy
ZW5kZXJlZCBmcmFtZXMgYnkgV2ViQXVkaW8gZW5naW5lLgogICAgIC8vICAtIFRoZSB8aW5wdXRC
dXN8IGxlbmd0aCBpcyAxMjggZnJhbWVzICgxIHJlbmRlciBxdWFudHVtKSwgZml4ZWQuCiAgICAg
Ly8gIC0gSW4gY2FzZSBvZiBvdmVyZmxvdyAoRklGTyBmdWxsIHdoaWxlIHB1c2gpLCB0aGUgZXhp
c3RpbmcgZnJhbWVzIGluIEZJRk8KICAgICAvLyAgICB3aWxsIGJlIG92ZXJ3cml0dGVuIGFuZCB8
aW5kZXhSZWFkfCB3aWxsIGJlIGZvcmNpYmx5IG1vdmVkIHRvCiAgICAgLy8gICAgfGluZGV4V3Jp
dGV8IHRvIGF2b2lkIHJlYWRpbmcgb3ZlcndyaXR0ZW4gZnJhbWVzLgotICAgIHZvaWQgcHVzaChj
b25zdCBBdWRpb0J1cyogaW5wdXRCdXMpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHVzaChj
b25zdCBBdWRpb0J1cyogaW5wdXRCdXMpOwogCiAgICAgLy8gUHVsbHMgfGZyYW1lc1JlcXVlc3Rl
ZHwgYnkgdGhlIGF1ZGlvIGRldmljZSB0aHJlYWQgYW5kIHJldHVybnMgdGhlIGFjdHVhbAogICAg
IC8vIG51bWJlciBvZiBmcmFtZXMgdG8gYmUgcmVuZGVyZWQgYnkgdGhlIHNvdXJjZS4gKGkuZS4g
V2ViQXVkaW8gZ3JhcGgpCi0gICAgc2l6ZV90IHB1bGwoQXVkaW9CdXMqIG91dHB1dEJ1cywgc2l6
ZV90IGZyYW1lc1JlcXVlc3RlZCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc2l6ZV90IHB1bGwoQXVk
aW9CdXMqIG91dHB1dEJ1cywgc2l6ZV90IGZyYW1lc1JlcXVlc3RlZCk7CiAKICAgICBzaXplX3Qg
ZnJhbWVzQXZhaWxhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZXNBdmFpbGFibGU7IH0KICAg
ICBzaXplX3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9maWZvTGVuZ3RoOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlv
bk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyLmNwcAppbmRleCA1MWVhNjY5NTNmNjEzMzM1NjIzNzc2ZTdlMzhh
MmYxOTBiNDU4NmMzLi5kYWJiMDBkMmM2MmY1OTJlMDAyNTIwNGZhZDVkOTg0MDY3NWUwZDQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKQEAgLTM1LDEyICszNSwxNiBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvQXVkaW9CdXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVzdGlu
YXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvQXVkaW9VdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1B1c2hQdWxsRklG
Ty5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RocmVhZHMvQmluYXJ5U2VtYXBo
b3JlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjb25zdGV4cHIgc2l6ZV90IGZpZm9TaXpl
ID0gOTYgKiBXZWJDb3JlOjpBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemU7CisKIGNs
YXNzIFJlbW90ZUF1ZGlvRGVzdGluYXRpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbj4sIHB1YmxpYyBXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2sg
ewogcHVibGljOgogICAgIHVzaW5nIEF1ZGlvQnVzID0gV2ViQ29yZTo6QXVkaW9CdXM7CkBAIC03
NiwxNiArODAsMjMgQEAgcHJpdmF0ZToKICAgICAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlv
bikKICAgICAgICAgLCBtX2lkKGlkZW50aWZpZXIpCiAgICAgICAgICwgbV9kZXN0aW5hdGlvbihB
dWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoKnRoaXMsIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5w
dXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkpCisgICAgICAg
ICwgbV9maWZvKG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZpZm9TaXplKQogICAgIHsKICAgICB9
CiAKICAgICB2b2lkIHJlbmRlcihBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGlu
YXRpb25CdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvSU9Q
b3NpdGlvbiYgb3V0cHV0UG9zaXRpb24pIG92ZXJyaWRlCiAgICAgeworICAgICAgICBBU1NFUlQo
IWlzTWFpblRocmVhZCgpKTsKKwogICAgICAgICBpZiAobV9wcm90ZWN0VGhpc0R1cmluZ0dyYWNl
ZnVsU2h1dGRvd24pCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgYXV0byBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7Ci0gICAgICAgIEJpbmFyeVNlbWFwaG9yZSByZW5kZXJT
ZW1hcGhvcmU7CisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bV9maWZvTG9jayk7CisgICAgICAgICAgICBmcmFtZXNUb1Byb2Nlc3MgPSBtX2ZpZm8ucHVsbChk
ZXN0aW5hdGlvbkJ1cywgZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
IWZyYW1lc1RvUHJvY2VzcykKKyAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBWZWN0b3I8
UmVmPFNoYXJlZE1lbW9yeT4+IGJ1ZmZlcnM7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBkZXN0aW5hdGlvbkJ1cy0+bnVtYmVyT2ZDaGFubmVscygpOyArK2kpIHsKQEAgLTkzLDIx
ICsxMDQsMTkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJ1ZmZlcnMuYXBwZW5kKCptZW1vcnkp
OwogICAgICAgICB9CiAKLSAgICAgICAgLy8gRklYTUU6IFJlcGxhY2UgdGhpcyBjb2RlIHdpdGgg
YSByaW5nIGJ1ZmZlci4gQXQgbGVhc3QgdGhpcyBoYXBwZW5zIGluIGF1ZGlvIHRocmVhZC4KLSAg
ICAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQo
W3RoaXMsIGZyYW1lc1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24sICZidWZmZXJzLCAmcmVuZGVy
U2VtYXBob3JlXSB7CisgICAgICAgIC8vIEZJWE1FOiBJdCBpcyB1bmZvcnR1bmF0ZSB3ZSBoYXZl
IHRvIGRpc3BhdGNoIHRvIHRoZSBtYWluIHRoZWFkIGhlcmUuIFdlIHNob3VsZCBiZSBhYmxlIHRv
IElQQyBzdHJhaWdodCBmcm9tIHRoZQorICAgICAgICAvLyByZW5kZXIgdGhyZWFkIGJ1dCB0aGlz
IGlzIG5vdCBzdXBwb3J0ZWQgYnkgc2VuZFdpdGhBc3luY1JlcGx5KCkuCisgICAgICAgIGNhbGxP
bk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZnJhbWVz
VG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbiwgYnVmZmVycyA9IFdURk1vdmUoYnVmZmVycyldKCkg
bXV0YWJsZSB7CiAgICAgICAgICAgICBSZW1vdGVBdWRpb0J1c0RhdGEgYnVzRGF0YSB7IGZyYW1l
c1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24sIGJ1ZmZlcnMubWFwKFtdKGF1dG8mIG1lbW9yeSkg
eyByZXR1cm4gbWVtb3J5LmNvcHlSZWYoKTsgfSkgfTsKICAgICAgICAgICAgIEFTU0VSVChmcmFt
ZXNUb1Byb2Nlc3MpOwotICAgICAgICAgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6UmVu
ZGVyQnVmZmVyKGJ1c0RhdGEpLCBbJl0oKSB7Ci0gICAgICAgICAgICAgICAgcmVuZGVyU2VtYXBo
b3JlLnNpZ25hbCgpOworICAgICAgICAgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6UmVu
ZGVyQnVmZmVyKGJ1c0RhdGEpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVj
dGVkVGhpcyksIGJ1ZmZlcnMgPSBXVEZNb3ZlKGJ1ZmZlcnMpLCBmcmFtZXNUb1Byb2Nlc3NdKCkg
eworICAgICAgICAgICAgICAgIGF1dG8gYXVkaW9CdXMgPSBBdWRpb0J1czo6Y3JlYXRlKGJ1ZmZl
cnMuc2l6ZSgpLCBmcmFtZXNUb1Byb2Nlc3MsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgYnVmZmVycy5zaXplKCk7ICsraSkKKyAgICAgICAgICAgICAg
ICAgICAgYXVkaW9CdXMtPnNldENoYW5uZWxNZW1vcnkoaSwgc3RhdGljX2Nhc3Q8ZmxvYXQqPihi
dWZmZXJzW2ldLT5kYXRhKCkpLCBmcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICAgICAgICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9maWZvTG9jayk7CisgICAgICAgICAgICAgICAgbV9maWZv
LnB1c2goYXVkaW9CdXMuZ2V0KCkpOwogICAgICAgICAgICAgfSwgbV9pZC50b1VJbnQ2NCgpKTsK
ICAgICAgICAgfSk7Ci0gICAgICAgIHJlbmRlclNlbWFwaG9yZS53YWl0KCk7Ci0KLSAgICAgICAg
YXV0byBhdWRpb0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoYnVmZmVycy5zaXplKCksIGZyYW1lc1Rv
UHJvY2VzcywgZmFsc2UpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYnVmZmVy
cy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIGF1ZGlvQnVzLT5zZXRDaGFubmVsTWVtb3J5KGks
IChmbG9hdCopYnVmZmVyc1tpXS0+ZGF0YSgpLCBmcmFtZXNUb1Byb2Nlc3MpOwotICAgICAgICBk
ZXN0aW5hdGlvbkJ1cy0+Y29weUZyb20oKmF1ZGlvQnVzKTsKICAgICB9CiAKICAgICB2b2lkIGlz
UGxheWluZ0RpZENoYW5nZSgpIG92ZXJyaWRlCkBAIC0xMjcsNiArMTM2LDggQEAgcHJpdmF0ZToK
ICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBtX2lkOwogICAgIFJlZlB0cjxB
dWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9uOwogICAgIFJlZlB0cjxSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uPiBtX3Byb3RlY3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93bjsKKyAgICBMb2Nr
IG1fZmlmb0xvY2s7CisgICAgV2ViQ29yZTo6UHVzaFB1bGxGSUZPIG1fZmlmbzsKIH07CiAKIFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
cihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCmluZGV4
IGY4YTI4MjRmODYzN2E0NjljYzlmMTE1NGI3ZTg5ZGZhNDUyODE1YzUuLjUyMDcyOTNmZGYwNzAy
ZjNiOWZhZjVmZjkyZjdlNDllMDM3MWE2MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKQEAgLTUxLDcgKzUxLDcg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7
CiAKLWNsYXNzIExpYldlYlJUQ0NvZGVjc1Byb3h5IDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6
VGhyZWFkTWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIExpYldlYlJUQ0NvZGVjc1Byb3h5IDogcHVi
bGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxMaWJX
ZWJSVENDb2RlY3NQcm94eT4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIHByb2Nl
c3MpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTGliV2ViUlRDQ29kZWNzUHJveHkocHJvY2Vzcykp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIu
aAppbmRleCA4YzdhNzcxYWJmMTQ1ZTg2YTU1ZGM5ZjAyNTJhZGY0YmZmNmYyZWRjLi45ZjBmNjUy
ZjY5MzYwMjAwODMzZWI4OWQ2M2E0NmQxZWQ1ZWU5ZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyOwogCi1jbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIg
ZmluYWwgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgewor
Y2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyIGZpbmFsIDog
cHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxS
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI+IGNyZWF0ZShHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJiBwcm9jZXNzKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcihwcm9jZXNzKSk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgKaW5kZXggOGU0ODliMTYzY2Mz
ZWM2ZGUwMGUyZTBiZjkyNjc4YTJkNmNjZjQxZi4uYTMyNGFlYzk1NzQxYWE3ODZjYTRiMDAyM2Y2
OTJhMTk1NzExNDU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOwogY2xhc3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OwogCi1jbGFzcyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyIGZpbmFsIDog
cHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpD
b25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
JiBjb25uZWN0aW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIoY29ubmVjdGlvbikpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCmluZGV4IDNlYTExNmMw
YjhhNTRiZjE5OTYwZjliNWMwNjdiZmI3MDhkMTk3NjQuLmIzZGZjZWRmMjgxZTQ1NmYwOTdlNmY0
OTA5N2JhOGM2YzMzNjQ4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIElE
QlNlcnZlcjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYklEQlNlcnZlciBmaW5h
bCA6IHB1YmxpYyBDcm9zc1RocmVhZFRhc2tIYW5kbGVyLCBwdWJsaWMgSVBDOjpDb25uZWN0aW9u
OjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgeworY2xhc3MgV2ViSURCU2VydmVyIGZpbmFsIDogcHVi
bGljIENyb3NzVGhyZWFkVGFza0hhbmRsZXIsIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVh
ZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2Vi
SURCU2VydmVyPiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5
LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNl
UmVxdWVzdGVyJiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCmluZGV4IGFhYzZlMjBlMDRiODRlODY3NTE5
NzNmMjhjNmUyYjJiYzBiODgxNGYuLjNhMDY3MDNmNDEyZTkwNTc1ZGJlMzU1Mzk0NTA1NjRkNTBh
NjdjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05l
dHdvcmtSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL05ldHdvcmtSVENQcm92aWRlci5oCkBAIC02MCw3ICs2MCw3IEBAIGNsYXNzIE5ldHdvcmtS
VENSZXNvbHZlcjsKIGNsYXNzIE5ldHdvcmtTZXNzaW9uOwogc3RydWN0IFJUQ1BhY2tldE9wdGlv
bnM7CiAKLWNsYXNzIE5ldHdvcmtSVENQcm92aWRlciA6IHB1YmxpYyBydGM6Ok1lc3NhZ2VIYW5k
bGVyLCBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgeworY2xh
c3MgTmV0d29ya1JUQ1Byb3ZpZGVyIDogcHVibGljIHJ0Yzo6TWVzc2FnZUhhbmRsZXIsIHB1Ymxp
YyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgewogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8TmV0d29ya1JUQ1Byb3ZpZGVyPiBjcmVhdGUoTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TmV0d29ya1JUQ1Byb3ZpZGVyKGNvbm5lY3Rpb24pKTsgfQogICAgIH5OZXR3b3JrUlRDUHJvdmlk
ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggNDky
MDk2MjIxODVmM2IzYjRhNzI1NmU1NDJlYjZkNmRjNmY3YzQ3Yy4uMzA2ODM3MzhjNzZlYmZmMDc2
NDg0ZDE3MzA0YTg2MmVkNmFhYjUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5jcHAKQEAgLTMxMSwyMyArMzExLDI1IEBAIHZvaWQgQ29ubmVjdGlvbjo6c2V0U2hv
dWxkRXhpdE9uU3luY01lc3NhZ2VTZW5kRmFpbHVyZShib29sIHNob3VsZEV4aXRPblN5bmNNZXNz
CiAgICAgbV9zaG91bGRFeGl0T25TeW5jTWVzc2FnZVNlbmRGYWlsdXJlID0gc2hvdWxkRXhpdE9u
U3luY01lc3NhZ2VTZW5kRmFpbHVyZTsKIH0KIAotdm9pZCBDb25uZWN0aW9uOjphZGRXb3JrUXVl
dWVNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFdvcmtR
dWV1ZSYgd29ya1F1ZXVlLCBXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIqIHdvcmtRdWV1ZU1lc3Nh
Z2VSZWNlaXZlcikKK3ZvaWQgQ29ubmVjdGlvbjo6YWRkV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVy
KFJlY2VpdmVyTmFtZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBXb3JrUXVldWUmIHdvcmtRdWV1ZSwg
V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKiB3b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIsIHVpbnQ2
NF90IGRlc3RpbmF0aW9uSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAog
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV93b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzTXV0
ZXgpOwotICAgIEFTU0VSVCghbV93b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1l
c3NhZ2VSZWNlaXZlck5hbWUpKTsKKyAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KG1lc3NhZ2VSZWNlaXZlck5hbWUpLCBkZXN0aW5hdGlvbklEKTsKKyAg
ICBBU1NFUlQoIW1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVycy5jb250YWlucyhrZXkpKTsKIAot
ICAgIG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVycy5hZGQobWVzc2FnZVJlY2VpdmVyTmFtZSwg
c3RkOjptYWtlX3BhaXIoJndvcmtRdWV1ZSwgd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKSk7Cisg
ICAgbV93b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzLmFkZChrZXksIHN0ZDo6bWFrZV9wYWlyKCZ3
b3JrUXVldWUsIHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcikpOwogfQogCi12b2lkIENvbm5lY3Rp
b246OnJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihSZWNlaXZlck5hbWUgbWVzc2FnZVJl
Y2VpdmVyTmFtZSkKK3ZvaWQgQ29ubmVjdGlvbjo6cmVtb3ZlV29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyKFJlY2VpdmVyTmFtZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlv
bklEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyc011dGV4KTsKLSAgICBBU1NF
UlQobV93b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VSZWNlaXZlck5h
bWUpKTsKLSAgICBtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMucmVtb3ZlKG1lc3NhZ2VSZWNl
aXZlck5hbWUpOworICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIoc3RhdGljX2Nhc3Q8dWlu
dDhfdD4obWVzc2FnZVJlY2VpdmVyTmFtZSksIGRlc3RpbmF0aW9uSUQpOworICAgIEFTU0VSVCht
X3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMuY29udGFpbnMoa2V5KSk7CisgICAgbV93b3JrUXVl
dWVNZXNzYWdlUmVjZWl2ZXJzLnJlbW92ZShrZXkpOwogfQogCiB2b2lkIENvbm5lY3Rpb246OmRp
c3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWVzc2FnZShXb3JrUXVldWVNZXNzYWdlUmVj
ZWl2ZXImIHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciwgRGVjb2RlciYgZGVjb2RlcikKQEAgLTM1
NywyNCArMzU5LDI2IEBAIHZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hXb3JrUXVldWVNZXNzYWdl
UmVjZWl2ZXJNZXNzYWdlKFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlCiAgICAgICAgIHNlbmRTeW5j
UmVwbHkoV1RGTW92ZShyZXBseUVuY29kZXIpKTsKIH0KIAotdm9pZCBDb25uZWN0aW9uOjphZGRU
aHJlYWRNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFRo
cmVhZE1lc3NhZ2VSZWNlaXZlciogdGhyZWFkTWVzc2FnZVJlY2VpdmVyKQordm9pZCBDb25uZWN0
aW9uOjphZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZl
ck5hbWUsIFRocmVhZE1lc3NhZ2VSZWNlaXZlciogdGhyZWFkTWVzc2FnZVJlY2VpdmVyLCB1aW50
NjRfdCBkZXN0aW5hdGlvbklEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAK
ICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fdGhyZWFkTWVzc2FnZVJlY2VpdmVyc0xvY2sp
OwotICAgIEFTU0VSVCghbV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VS
ZWNlaXZlck5hbWUpKTsKKyAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHN0YXRpY19jYXN0
PHVpbnQ4X3Q+KG1lc3NhZ2VSZWNlaXZlck5hbWUpLCBkZXN0aW5hdGlvbklEKTsKKyAgICBBU1NF
UlQoIW1fdGhyZWFkTWVzc2FnZVJlY2VpdmVycy5jb250YWlucyhrZXkpKTsKIAotICAgIG1fdGhy
ZWFkTWVzc2FnZVJlY2VpdmVycy5hZGQobWVzc2FnZVJlY2VpdmVyTmFtZSwgdGhyZWFkTWVzc2Fn
ZVJlY2VpdmVyKTsKKyAgICBtX3RocmVhZE1lc3NhZ2VSZWNlaXZlcnMuYWRkKGtleSwgdGhyZWFk
TWVzc2FnZVJlY2VpdmVyKTsKIH0KIAotdm9pZCBDb25uZWN0aW9uOjpyZW1vdmVUaHJlYWRNZXNz
YWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUpCit2b2lkIENvbm5l
Y3Rpb246OnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihSZWNlaXZlck5hbWUgbWVzc2FnZVJl
Y2VpdmVyTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCkKIHsKICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwogCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3RocmVhZE1lc3Nh
Z2VSZWNlaXZlcnNMb2NrKTsKLSAgICBBU1NFUlQobV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzLmNv
bnRhaW5zKG1lc3NhZ2VSZWNlaXZlck5hbWUpKTsKKyAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9w
YWlyKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KG1lc3NhZ2VSZWNlaXZlck5hbWUpLCBkZXN0aW5hdGlv
bklEKTsKKyAgICBBU1NFUlQobV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKGtleSkp
OwogCi0gICAgbV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzLnJlbW92ZShtZXNzYWdlUmVjZWl2ZXJO
YW1lKTsKKyAgICBtX3RocmVhZE1lc3NhZ2VSZWNlaXZlcnMucmVtb3ZlKGtleSk7CiB9CiAKIHZv
aWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hUaHJlYWRNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKFRocmVh
ZE1lc3NhZ2VSZWNlaXZlciYgdGhyZWFkTWVzc2FnZVJlY2VpdmVyLCBEZWNvZGVyJiBkZWNvZGVy
KQpAQCAtNzEzLDcgKzcxNyw4IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nTWVz
c2FnZShzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gbWVzc2FnZSkKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGlmICghV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWFwOjppc1ZhbGlkS2V5
KG1lc3NhZ2UtPm1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgfHwgIVRocmVhZE1lc3NhZ2VSZWNlaXZl
ck1hcDo6aXNWYWxpZEtleShtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkpKSB7CisgICAg
YXV0byB0aHJlYWRlZFJlY2VpdmVyS2V5ID0gc3RkOjptYWtlX3BhaXIoc3RhdGljX2Nhc3Q8dWlu
dDhfdD4obWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSwgbWVzc2FnZS0+ZGVzdGluYXRp
b25JRCgpKTsKKyAgICBpZiAoIVdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1hcDo6aXNWYWxpZEtl
eSh0aHJlYWRlZFJlY2VpdmVyS2V5KSB8fCAhVGhyZWFkTWVzc2FnZVJlY2VpdmVyTWFwOjppc1Zh
bGlkS2V5KHRocmVhZGVkUmVjZWl2ZXJLZXkpKSB7CiAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtZXNzYWdlTmFtZSA9IG1l
c3NhZ2UtPm1lc3NhZ2VOYW1lKCldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5kaXNwYXRjaERpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShtZXNzYWdlTmFtZSk7CiAgICAg
ICAgIH0pOwpAQCAtMTAwNCw3ICsxMDA5LDggQEAgdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaE1l
c3NhZ2UoRGVjb2RlciYgZGVjb2RlcikKIGJvb2wgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdl
VG9Xb3JrUXVldWVSZWNlaXZlcihzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4mIG1lc3NhZ2UpCiB7
CiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnNN
dXRleCk7Ci0gICAgYXV0byBpdCA9IG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVycy5maW5kKG1l
c3NhZ2UtPm1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgYXV0byBrZXkgPSBzdGQ6Om1ha2Vf
cGFpcihzdGF0aWNfY2FzdDx1aW50OF90PihtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkp
LCBtZXNzYWdlLT5kZXN0aW5hdGlvbklEKCkpOworICAgIGF1dG8gaXQgPSBtX3dvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlcnMuZmluZChrZXkpOwogICAgIGlmIChpdCAhPSBtX3dvcmtRdWV1ZU1lc3Nh
Z2VSZWNlaXZlcnMuZW5kKCkpIHsKICAgICAgICAgaXQtPnZhbHVlLmZpcnN0LT5kaXNwYXRjaChb
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB3b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIg
PSBpdC0+dmFsdWUuc2Vjb25kLCBkZWNvZGVyID0gV1RGTW92ZShtZXNzYWdlKV0oKSBtdXRhYmxl
IHsKICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpc3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJl
Y2VpdmVyTWVzc2FnZSgqd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLCAqZGVjb2Rlcik7CkBAIC0x
MDE5LDcgKzEwMjUsOCBAQCBib29sIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZVRvVGhyZWFk
UmVjZWl2ZXIoc3RkOjp1bmlxdWVfcHRyPERlY29kZXI+JiBtZXNzYQogICAgIFJlZlB0cjxUaHJl
YWRNZXNzYWdlUmVjZWl2ZXI+IHByb3RlY3RlZFRocmVhZE1lc3NhZ2VSZWNlaXZlcjsKICAgICB7
CiAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJz
TG9jayk7Ci0gICAgICAgIHByb3RlY3RlZFRocmVhZE1lc3NhZ2VSZWNlaXZlciA9IG1fdGhyZWFk
TWVzc2FnZVJlY2VpdmVycy5nZXQobWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKyAg
ICAgICAgYXV0byBrZXkgPSBzdGQ6Om1ha2VfcGFpcihzdGF0aWNfY2FzdDx1aW50OF90PihtZXNz
YWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkpLCBtZXNzYWdlLT5kZXN0aW5hdGlvbklEKCkpOwor
ICAgICAgICBwcm90ZWN0ZWRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgPSBtX3RocmVhZE1lc3NhZ2VS
ZWNlaXZlcnMuZ2V0KGtleSk7CiAgICAgfQogCiAgICAgaWYgKHByb3RlY3RlZFRocmVhZE1lc3Nh
Z2VSZWNlaXZlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCmluZGV4
IDg1NzcyZjNkMzA3OTkwYjZiN2E5MWMwZDdkZmI3YjliN2YyMDQ2MzIuLjc5NWFmMDM3ODIxNjdj
MDVlMjI3MWQ3OGMyZDVhMWQzOTgzMTQyMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9D
b25uZWN0aW9uLmgKQEAgLTExNyw5ICsxMTcsMjYgQEAgcHVibGljOgogICAgIGNsYXNzIFdvcmtR
dWV1ZU1lc3NhZ2VSZWNlaXZlciA6IHB1YmxpYyBNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXI+IHsKICAgICB9OwogCi0g
ICAgY2xhc3MgVGhyZWFkTWVzc2FnZVJlY2VpdmVyIDogcHVibGljIE1lc3NhZ2VSZWNlaXZlciwg
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFRocmVhZE1lc3NhZ2VSZWNlaXZlcj4geworICAg
IGNsYXNzIFRocmVhZE1lc3NhZ2VSZWNlaXZlciA6IHB1YmxpYyBNZXNzYWdlUmVjZWl2ZXIgewog
ICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVG9UaHJlYWQoV1RGOjpG
dW5jdGlvbjx2b2lkKCk+JiYpIHsgfTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVG9U
aHJlYWQoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYpID0gMDsKKworICAgICAgICB2b2lkIHJlZigp
IHsgcmVmTWVzc2FnZVJlY2VpdmVyKCk7IH0KKyAgICAgICAgdm9pZCBkZXJlZigpIHsgZGVyZWZN
ZXNzYWdlUmVjZWl2ZXIoKTsgfQorCisgICAgcHJvdGVjdGVkOgorICAgICAgICB2aXJ0dWFsIHZv
aWQgcmVmTWVzc2FnZVJlY2VpdmVyKCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZN
ZXNzYWdlUmVjZWl2ZXIoKSA9IDA7CisgICAgfTsKKworICAgIGNsYXNzIFRocmVhZE1lc3NhZ2VS
ZWNlaXZlclJlZkNvdW50ZWQgOiBwdWJsaWMgVGhyZWFkTWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZD4gewor
ICAgIHB1YmxpYzoKKyAgICAgICAgdXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ6OnJlZjsKKyAg
ICAgICAgdXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ6OmRlcmVmOworCisgICAgcHJpdmF0ZToK
KyAgICAgICAgdm9pZCByZWZNZXNzYWdlUmVjZWl2ZXIoKSBmaW5hbCB7IFRocmVhZFNhZmVSZWZD
b3VudGVkOjpyZWYoKTsgfQorICAgICAgICB2b2lkIGRlcmVmTWVzc2FnZVJlY2VpdmVyKCkgZmlu
YWwgeyBUaHJlYWRTYWZlUmVmQ291bnRlZDo6ZGVyZWYoKTsgfQogICAgIH07CiAKICNpZiBVU0Uo
VU5JWF9ET01BSU5fU09DS0VUUykKQEAgLTE5MCwxMSArMjA3LDExIEBAIHB1YmxpYzoKICAgICB0
eXBlZGVmIHZvaWQgKCpEaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZUNhbGxiYWNrKShDb25u
ZWN0aW9uKik7CiAgICAgdm9pZCBzZXREaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZUNhbGxi
YWNrKERpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2spOwogCi0gICAgdm9pZCBh
ZGRXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lLCBXb3JrUXVldWUmLCBXb3Jr
UXVldWVNZXNzYWdlUmVjZWl2ZXIqKTsKLSAgICB2b2lkIHJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VS
ZWNlaXZlcihSZWNlaXZlck5hbWUpOworICAgIHZvaWQgYWRkV29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyKFJlY2VpdmVyTmFtZSwgV29ya1F1ZXVlJiwgV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKiwg
dWludDY0X3QgZGVzdGluYXRpb25JRCA9IDApOworICAgIHZvaWQgcmVtb3ZlV29ya1F1ZXVlTWVz
c2FnZVJlY2VpdmVyKFJlY2VpdmVyTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCA9IDApOwog
Ci0gICAgdm9pZCBhZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lLCBUaHJlYWRN
ZXNzYWdlUmVjZWl2ZXIqKTsKLSAgICB2b2lkIHJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihS
ZWNlaXZlck5hbWUpOworICAgIHZvaWQgYWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKFJlY2VpdmVy
TmFtZSwgVGhyZWFkTWVzc2FnZVJlY2VpdmVyKiwgdWludDY0X3QgZGVzdGluYXRpb25JRCA9IDAp
OworICAgIHZvaWQgcmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKFJlY2VpdmVyTmFtZSwgdWlu
dDY0X3QgZGVzdGluYXRpb25JRCA9IDApOwogCiAgICAgYm9vbCBvcGVuKCk7CiAgICAgdm9pZCBp
bnZhbGlkYXRlKCk7CkBAIC0zNDksMTEgKzM2NiwxMSBAQCBwcml2YXRlOgogICAgIFJlZjxXb3Jr
UXVldWU+IG1fY29ubmVjdGlvblF1ZXVlOwogCiAgICAgTG9jayBtX3dvcmtRdWV1ZU1lc3NhZ2VS
ZWNlaXZlcnNNdXRleDsKLSAgICB1c2luZyBXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJNYXAgPSBI
YXNoTWFwPFJlY2VpdmVyTmFtZSwgc3RkOjpwYWlyPFJlZlB0cjxXb3JrUXVldWU+LCBSZWZQdHI8
V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyPj4sIFdURjo6SW50SGFzaDxSZWNlaXZlck5hbWU+LCBX
VEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPFJlY2VpdmVyTmFtZT4+OworICAgIHVzaW5nIFdvcmtR
dWV1ZU1lc3NhZ2VSZWNlaXZlck1hcCA9IEhhc2hNYXA8c3RkOjpwYWlyPHVpbnQ4X3QsIHVpbnQ2
NF90Piwgc3RkOjpwYWlyPFJlZlB0cjxXb3JrUXVldWU+LCBSZWZQdHI8V29ya1F1ZXVlTWVzc2Fn
ZVJlY2VpdmVyPj4+OwogICAgIFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1hcCBtX3dvcmtRdWV1
ZU1lc3NhZ2VSZWNlaXZlcnM7CiAKICAgICBMb2NrIG1fdGhyZWFkTWVzc2FnZVJlY2VpdmVyc0xv
Y2s7Ci0gICAgdXNpbmcgVGhyZWFkTWVzc2FnZVJlY2VpdmVyTWFwID0gSGFzaE1hcDxSZWNlaXZl
ck5hbWUsIFJlZlB0cjxUaHJlYWRNZXNzYWdlUmVjZWl2ZXI+LCBXVEY6OkludEhhc2g8UmVjZWl2
ZXJOYW1lPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxSZWNlaXZlck5hbWU+PjsKKyAgICB1
c2luZyBUaHJlYWRNZXNzYWdlUmVjZWl2ZXJNYXAgPSBIYXNoTWFwPHN0ZDo6cGFpcjx1aW50OF90
LCB1aW50NjRfdD4sIFJlZlB0cjxUaHJlYWRNZXNzYWdlUmVjZWl2ZXI+PjsKICAgICBUaHJlYWRN
ZXNzYWdlUmVjZWl2ZXJNYXAgbV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzOwogCiAgICAgdW5zaWdu
ZWQgbV9pblNlbmRTeW5jQ291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAK
aW5kZXggODIxMzgwMGI5ZjEwYzU4MjYwZTA3YTc5MGY3Y2IyMGE3ZTBlYTA3Ni4uODQwNGM0OGUx
YzJlNDgyYWJjZDI0ZTU1ZDJjYzkxM2JkMjY3ZTc0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmNwcApAQCAtNjAsNyArNjAsMTYgQEAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmEK
ICAgICBjb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kU3luYygKICAgICAgICAgTWVzc2FnZXM6
OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpDcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKGlu
cHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgc2FtcGxlUmF0ZSksCiAgICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlcjo6Q3JlYXRlQXVkaW9EZXN0aW5hdGlvbjo6UmVwbHkoZGVzdGluYXRpb25JRCwgZnJh
bWVzUGVyQnVmZmVyKSwgMCk7Ci0gICAgY29ubmVjdGlvbi5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5h
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBkZXN0aW5hdGlvbklELnRvVUludDY0KCksICp0aGlzKTsK
KworICAgIGF1dG8gb2ZmVGhyZWFkUmVuZGVyaW5nID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgd2hpbGUgKCFtX3RocmVhZFRhc2tR
dWV1ZS5pc0tpbGxlZCgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byB0YXNrID0gbV90aHJlYWRU
YXNrUXVldWUud2FpdEZvck1lc3NhZ2UoKSkKKyAgICAgICAgICAgICAgICB0YXNrKCk7CisgICAg
ICAgIH0KKyAgICB9OworICAgIG1fcmVuZGVyVGhyZWFkID0gVGhyZWFkOjpjcmVhdGUoIlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSByZW5kZXIgdGhyZWFkIiwgV1RGTW92ZShvZmZUaHJlYWRS
ZW5kZXJpbmcpLCBUaHJlYWRUeXBlOjpBdWRpbyk7CisKKyAgICBjb25uZWN0aW9uLmNvbm5lY3Rp
b24oKS5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzLCBkZXN0aW5hdGlvbklELnRv
VUludDY0KCkpOwogCiAgICAgbV9kZXN0aW5hdGlvbklEID0gZGVzdGluYXRpb25JRDsKICAgICBt
X2ZyYW1lc1BlckJ1ZmZlciA9IGZyYW1lc1BlckJ1ZmZlcjsKQEAgLTY5LDEyICs3OCwxNSBAQCBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eShB
dWRpb0lPQ2FsbGJhY2smIGNhbGxiYQogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojp+UmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KCkKIHsKICAgICBhdXRvJiBjb25uZWN0aW9uID0gIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7Ci0gICAg
Y29ubmVjdGlvbi5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBtX2Rlc3RpbmF0aW9uSUQudG9VSW50NjQoKSk7CisgICAgY29ubmVjdGlvbi5jb25uZWN0aW9u
KCkucmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9kZXN0aW5hdGlvbklELnRvVUlu
dDY0KCkpOwogCiAgICAgY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5
KAogICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OkRlbGV0
ZUF1ZGlvRGVzdGluYXRpb24obV9kZXN0aW5hdGlvbklEKSwgW10gewogICAgICAgICAvLyBDYW4n
dCByZW1vdmUgdGhpcyBmcm9tIHByb3h5TWFwKCkgaGVyZSBiZWNhdXNlIHRoZSBvYmplY3Qgd291
bGQgaGF2ZSBiZWVuIGFscmVhZHkgZGVsZXRlZC4KICAgICB9KTsKKworICAgIG1fdGhyZWFkVGFz
a1F1ZXVlLmtpbGwoKTsKKyAgICBtX3JlbmRlclRocmVhZC0+d2FpdEZvckNvbXBsZXRpb24oKTsK
IH0KIAogdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0YXJ0KEZ1bmN0aW9uPHZv
aWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKQpAQCAtOTUs
MzAgKzEwNywzMCBAQCB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RvcCgpCiAK
IHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpyZW5kZXJCdWZmZXIoY29uc3QgV2Vi
S2l0OjpSZW1vdGVBdWRpb0J1c0RhdGEmIGF1ZGlvQnVzRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMg
cmVuZGVyaW5nIG9uIHRoZSBtYWluIHRocmVhZCB3aGVuIEF1ZGlvV29ya2xldCBpcyBub3QgYWN0
aXZlLCB3aGljaCBpcyBsaWtlbHkgbm90IGEgZ29vZCBpZGVhLgotICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKGF1ZGlv
QnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MpOwogICAgIEFTU0VSVChhdWRpb0J1c0RhdGEuY2hhbm5l
bEJ1ZmZlcnMuc2l6ZSgpKTsKICAgICBhdXRvIGF1ZGlvQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShh
dWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Q
cm9jZXNzLCBmYWxzZSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGF1ZGlvQnVzRGF0
YS5jaGFubmVsQnVmZmVycy5zaXplKCk7ICsraSkKICAgICAgICAgYXVkaW9CdXMtPnNldENoYW5u
ZWxNZW1vcnkoaSwgKGZsb2F0KilhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnNbaV0tPmRhdGEo
KSwgYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2Vzcyk7CiAKLSAgICBhdXRvIGRvUmVuZGVyID0g
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgYXVkaW9CdXMgPSBXVEZNb3Zl
KGF1ZGlvQnVzKSwgZnJhbWVzVG9Qcm9jZXNzID0gYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2Vz
cywgb3V0cHV0UG9zaXRpb24gPSBhdWRpb0J1c0RhdGEub3V0cHV0UG9zaXRpb25dIHsKLSAgICAg
ICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgYXVkaW9CdXMuZ2V0KCksIGZyYW1lc1RvUHJvY2Vzcywg
b3V0cHV0UG9zaXRpb24pOwotICAgIH07Ci0gICAgaWYgKG1fZGlzcGF0Y2hUb1JlbmRlclRocmVh
ZCkgewotICAgICAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQoW2RvUmVuZGVyID0gV1RGTW92
ZShkb1JlbmRlciksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBkb1JlbmRlcigpOwotICAgICAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIH0pOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIGRvUmVuZGVyKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7Ci0gICAgfQorICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlvQnVzLmdldCgpLCBh
dWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzLCBhdWRpb0J1c0RhdGEub3V0cHV0UG9zaXRpb24p
OworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5OjpkaWRDaGFuZ2VJc1BsYXlpbmcoYm9vbCBpc1BsYXlpbmcpCiB7CisgICAgQVNT
RVJUKCFpc01haW5UaHJlYWQoKSk7Cit9CisKKy8vIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVz
c2FnZVJlY2VpdmVyCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6ZGlzcGF0Y2hU
b1RocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKK3sKKyAgICBpZiAobV9kaXNwYXRjaFRv
UmVuZGVyVGhyZWFkKSB7CisgICAgICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZChXVEZNb3Zl
KHRhc2spKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3RocmVhZFRhc2tRdWV1ZS5h
cHBlbmQoV1RGTW92ZSh0YXNrKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5LmgKaW5kZXggOTA3ZWNmNWE3N2Y0MmI5NDc4OTBiZGYzYTE3
ZTE4ZWNmYjVhYTVmOS4uYzRhZGI3NTYwZDQ2Mzc1OGVlNzE1NmYwMWVlYzk5NThkM2NmZGU2NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oCkBAIC0zMyw2ICszMyw4IEBACiAjaW5j
bHVkZSAiV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVz
dGluYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorI2luY2x1
ZGUgPHd0Zi9Dcm9zc1RocmVhZFF1ZXVlLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4K
QEAgLTQwLDEyICs0MiwxMyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5IDogcHVibGljIFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24s
IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworY2xhc3MgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IDogcHVibGljIFdlYkNvcmU6
OkF1ZGlvRGVzdGluYXRpb24sIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VS
ZWNlaXZlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5KTsKIHB1YmxpYzoKICAgICB1c2luZyBBdWRpb0J1cyA9IFdlYkNvcmU6OkF1ZGlvQnVz
OwogICAgIHVzaW5nIEF1ZGlvSU9DYWxsYmFjayA9IFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjazsK
KyAgICB1c2luZyBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOjpyZWY7CisgICAgdXNpbmcgV2Vi
Q29yZTo6QXVkaW9EZXN0aW5hdGlvbjo6ZGVyZWY7CiAKICAgICBzdGF0aWMgUmVmPEF1ZGlvRGVz
dGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2
aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZP
dXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKQEAgLTY4LDEyICs3MSwxOSBAQCBw
cml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKIAorICAgIC8v
IElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaXNwYXRj
aFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9pZCByZWZNZXNzYWdl
UmVjZWl2ZXIoKSBmaW5hbCB7IFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb246OnJlZigpOyB9Cisg
ICAgdm9pZCBkZXJlZk1lc3NhZ2VSZWNlaXZlcigpIGZpbmFsIHsgV2ViQ29yZTo6QXVkaW9EZXN0
aW5hdGlvbjo6ZGVyZWYoKTsgfQorCiAgICAgQXVkaW9JT0NhbGxiYWNrJiBtX2NhbGxiYWNrOwog
ICAgIGZsb2F0IG1fc2FtcGxlUmF0ZSB7IDAuIH07CiAgICAgdW5zaWduZWQgbV9mcmFtZXNQZXJC
dWZmZXIgeyAwIH07CiAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgbV9kZXN0
aW5hdGlvbklEOwogICAgIGJvb2wgbV9pc1BsYXlpbmcgeyBmYWxzZSB9OwogICAgIEZ1bmN0aW9u
PHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4gbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkOworICAg
IFJlZlB0cjxUaHJlYWQ+IG1fcmVuZGVyVGhyZWFkOworICAgIENyb3NzVGhyZWFkUXVldWU8RnVu
Y3Rpb248dm9pZCgpPj4gbV90aHJlYWRUYXNrUXVldWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENOZXR3b3JrLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDTmV0d29yay5oCmluZGV4IDgzZjJhMWIxMTE3YWQzYjNkNjA2NTJlYzRi
NjEzZTUwM2MyMTZhNjkuLmU0Y2NjZjBkYzU3ZWM4NGVhNmVjNGRhOTgzNGNjY2M0YTVhNTE5NzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENOZXR3b3JrLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ05ldHdvcmsuaApAQCAtMzUsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotY2xhc3MgTGliV2ViUlRDTmV0d29yayA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246
OlRocmVhZE1lc3NhZ2VSZWNlaXZlciB7CitjbGFzcyBMaWJXZWJSVENOZXR3b3JrIDogcHVibGlj
IElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgTGliV2ViUlRDTmV0d29yaygp
ID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKaW5kZXggZjYxOTdjZjllZTU3MDUyYjI4
ODE3MmVhZWI3Y2I1NTY2YzYxODI5NS4uNmZiNGJjMzdiOTM4MDE2ZmNlNWM1YzVhYzVhNDM3MDI3
ZjE4NmJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKQEAgLTM5LDcgKzM5LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyIDogcHVi
bGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFJlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVz
c2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CiAgICAgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4OTQ3YTRj
NDEzODI2OWJhMzllNzExYjBmMDI5ZmRkMmYxZDZiNjRmLi4zYzM2MTQ2N2JiOTNhNDFmMWU1NDVl
YWE0MzU3Yzg5YmQ0ZjZmZWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMTMgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBdWRpbyB0ZXN0cyBh
cmUgY3Jhc2hpbmcgaW4gZGVidWcgd2hlbiBlbmFibGluZyB0aGUgR1BVIHByb2Nlc3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzY2MworCisgICAg
ICAgIFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVuLgorCisgICAgICAgIFVuc2tpcCB3ZWJhdWRpbyB0
ZXN0cyB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBlbmFibGVkLgorCisgICAgICAgICogZ3B1LXBy
b2Nlc3MvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMC0xMC0xMiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIENhbGxpbmcgQXVkaW9Db250ZXh0LnJlc3VtZSgpIHJp
Z2h0IGFmdGVyIEF1ZGlvQ29udGV4dC5zdXNwZW5kKCkgc2hvdWxkIG5vdCBiZSBhIG5vLW9wCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmZDk2ZDdmZGU4YjQ2
MzllZmE4Njc1ZDgwM2U1M2U1NWNlYzY0MzY5Li45Y2Q5NTUxY2YxNzEwOGI2MDcwZWY2ZmE4ZmU5
MzNjNzJhZTc0NGIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTMxMSwxMCArMzExLDggQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tc3Qt
Y29udGVudC1oaW50L01lZGlhU3RyZWFtVHJhY2stY29udGVudEhpbnQuaHQKIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGljdHVyZS1pbi1waWN0dXJlL21lZGlhc3RyZWFtLmh0bWwg
WyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWF1ZGlvLXRhaW50aW5nLmh0dHBzLmh0bWwgWyBTa2lwIF0K
IAotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpbyBbIFNraXAgXQogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMgWyBTa2lwIF0KIAotd2ViYXVkaW8g
WyBTa2lwIF0KIHdlYnJ0YyBbIFNraXAgXQogCiB3ZWJnbCBbIFNraXAgXQpAQCAtMzkyLDQgKzM5
MCw0IEBAIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtZmFp
bHVyZS1sb2NhbC5odHRwcy5odG1sIFsgQ3Jhc2gKIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1sIFsgQ3Jhc2ggXQog
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2Fs
LXNpbGVudC5odHRwcy5odG1sIFsgQ3Jhc2ggXQogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtl
eS1jcmVkZW50aWFsLWdldC1mYWlsdXJlLWxvY2FsLmh0dHBzLmh0bWwgWyBDcmFzaCBdCi1odHRw
L3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtbG9jYWwuaHR0
cHMuaHRtbCBbIENyYXNoIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitodHRwL3dwdC93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtZ2V0LXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRt
bCBbIENyYXNoIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411247</attachid>
            <date>2020-10-13 13:36:24 -0700</date>
            <delta_ts>2020-10-13 14:53:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217663-20201013133624.patch</filename>
            <type>text/plain</type>
            <size>39517</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDgyN2YwZmYzZTRjMDMzMGY4OTQzMGEx
NzVjZTdlZjU0OTUwNDlhNDQuLjlkYzkzNGQ3YThkMTk4N2FhZWUyNzhkMTZjNWFjMzllODQ2ZGM4
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMTAtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBdWRpbyB0ZXN0cyBhcmUgY3Jhc2hpbmcgaW4gZGVi
dWcgd2hlbiBlbmFibGluZyB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzY2MworCisgICAgICAgIFJldmlld2VkIGJ5IEdl
b2ZmIEdhcmVuLgorCisgICAgICAgICogd3RmL0Nyb3NzVGhyZWFkUXVldWUuaDoKKyAgICAgICAg
KFdURjo6Q3Jvc3NUaHJlYWRRdWV1ZTxEYXRhVHlwZT46OndhaXRGb3JNZXNzYWdlKToKKyAgICAg
ICAgSWYgQ3Jvc3NUaHJlYWRRdWV1ZTo6a2lsbCgpIGdldHMgY2FsbGVkIHdoaWxlIGFub3RoZXIg
dGhyZWFkIGlzIHdhaXRpbmcgb24gYQorICAgICAgICBDcm9zc1RocmVhZFF1ZXVlOjp3YWl0Rm9y
TWVzc2FnZSgpIGNhbGwsIG1ha2UgaXQgc28gdGhhdCB3YWl0Rm9yTWVzc2FnZSgpCisgICAgICAg
IHJldHVybnMgYSBkZWZhdWx0LWNvbnN0cnVjdGVkIERhdGFUeXBlIGluc3RlYWQgb2YgY3Jhc2hp
bmcgdHJ5aW5nIHRvCisgICAgICAgIGRlcXVldWUgKHNpbmNlIHRoZSBxdWV1ZSBpcyBlbXB0eSku
CisKIDIwMjAtMTAtMTIgIEx1bWluZyBZaW4gIDxsdW1pbmdfeWluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbbWFjT1NdIFdvcmthcm91bmQgZm9yIE1BQ19PU19YX1ZFUlNJT05fTUFKT1IgaW5jb3Jy
ZWN0bHkgaW5jbHVkaW5nIG1pbm9yIHZlcnNpb24gd2hlbiBidWlsZGluZyAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCAwMWQ5YTU2ZTE1MzFkZTE5ZmU5YzYzYTgzODBiZGVmMzQ4NDQyOWFiLi4zODk0Mjk0Y2EzYjE1
ZmZiZjliZThkOTAxYWQ3MjI2NDM2MzU2MDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMjAtMTAtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBX
ZWJBdWRpbyB0ZXN0cyBhcmUgY3Jhc2hpbmcgaW4gZGVidWcgd2hlbiBlbmFibGluZyB0aGUgR1BV
IHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzY2MworCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVuLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cywgdW5za2lwcGVkIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1B1
c2hQdWxsRklGTy5oOgorICAgICAgICBFeHBvcnQgUHVzaFB1bGxGSUZPIHNvIHRoYXQgaXQgY2Fu
IGJlIHVzZWQgYXQgV2ViS2l0IGxheWVyLgorCiAyMDIwLTEwLTEzICBGdWppaSBIaXJvbm9yaSAg
PEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb11bTWVkaWFGb3Vu
ZGF0aW9uXSBNYW55IHRlc3QgY2FzZXMgYXJlIHRpbWluZyBvdXQgYnkgd2FpdGluZyBmb3IgZXZl
bnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGQ5MzliNzRhOGFlMDA0N2IxMjNmYjNhYmU4YjA0YTMxZTAwZWU4ZGUu
LjkzMmY0YmE1MDZmNzQyNmVjM2Q3MTVlMDYwZjM3NzA5MGRkM2MwNGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNjcgQEAKKzIwMjAtMTAtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBXZWJBdWRpbyB0ZXN0cyBhcmUgY3Jhc2hpbmcgaW4gZGVidWcgd2hlbiBlbmFi
bGluZyB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzY2MworCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVuLgor
CisgICAgICAgIFdlYkF1ZGlvIHRlc3RzIHdlcmUgY3Jhc2hpbmcgaW4gZGVidWcgd2hlbiBlbmFi
bGluZyB0aGUgR1BVIHByb2Nlc3MgYmVjYXVzZSBpdCBkaWQgYXVkaW8KKyAgICAgICAgcHJvY2Vz
c2luZyBvbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzJ3MgbWFpbiB0aHJlYWQuIFRvIGFkZHJlc3Mg
dGhlIGlzc3VlLCBJIG1hZGUKKyAgICAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IGEg
VGhyZWFkTWVzc2FnZVJlY2VpdmVyIHNvIHRoYXQgaXQgcmVjZWl2ZXMgSVBDIG9uIGFuIGF1ZGlv
CisgICAgICAgIHRocmVhZCBpbnN0ZWFkIG9mIHRoZSBtYWluIHRocmVhZC4gSVBDIG1lc3NhZ2Vz
IGFyZSBwcm9jZXNzZWQgZGlyZWN0bHkgb24gdGhlIEF1ZGlvV29ya2xldAorICAgICAgICB0aHJl
YWQgd2hlbiBhY3RpdmUgb3Igb24gYW4gYXVkaW8gdGhyZWFkIGNvbnN0cnVjdGVkIGJ5IFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eQorICAgICAgICBvdGhlcndpc2UuCisKKyAgICAgICAgKiBH
UFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbjo6UmVtb3RlQXVkaW9EZXN0aW5hdGlv
bik6CisgICAgICAgIFVzZSBhIFB1c2hQdWxsRklGTyBzdHJ1Y3R1cmUgaW4gcmVuZGVyKCkgdG8g
YXZvaWQgaGFuZ2luZyB0aGUgYXVkaW8gcmVuZGVyaW5nIHRocmVhZAorICAgICAgICBvbiBhIHNl
bWFwaG9yZS4gSGFuZ2luZyB0aGUgcmVuZGVyaW5nIHRocmVhZCB3YXMgdGVycmlibGUgZm9yIHBl
cmZvcm1hbmNlIGFuZCB3YXMgYWxzbworICAgICAgICBhIHNvdXJjZSBvZiBkZWFkbG9jayBzaW5j
ZSB0aGUgdW5kZXJseWluZyBmcmFtZXdvcmsgaXMgaG9sZGluZyBhIGxvY2sgd2hpbGUgcmVuZGVy
KCkgaXMKKyAgICAgICAgY2FsbGVkLiBXZSBjb3VsZCBwcm9jZXNzIGEgUmVtb3RlQXVkaW9EZXN0
aW5hdGlvbjo6Q3JlYXRlQXVkaW9EZXN0aW5hdGlvbiBzeW5jIElQQyBvbiB0aGUKKyAgICAgICAg
bWFpbiB0aHJlYWQgYW5kIGRlYWRsb2NrIG9uIHRoYXQgbG9jay4KKworICAgICAgICAqIEdQVVBy
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vz
cy93ZWJydGMvUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmg6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2
ZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3Jr
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
ci5oOgorICAgICAgICBVc2UgVGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCBpbnN0ZWFk
IG9mIFRocmVhZE1lc3NhZ2VSZWNlaXZlciBzaW5jZSB0aG9zZSBjbGFzc2VzCisgICAgICAgIGRv
IG5vdCBwcm92aWRlIHRoZWlyIG93biBSZWZDb3VudGluZy4KKworICAgICAgICAqIFBsYXRmb3Jt
L0lQQy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6YWRkV29ya1F1
ZXVlTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6cmVtb3ZlV29y
a1F1ZXVlTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6YWRkVGhy
ZWFkTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6cmVtb3ZlVGhy
ZWFkTWVzc2FnZVJlY2VpdmVyKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6cHJvY2Vzc0lu
Y29taW5nTWVzc2FnZSk6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2Fn
ZVRvV29ya1F1ZXVlUmVjZWl2ZXIpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpkaXNwYXRj
aE1lc3NhZ2VUb1RocmVhZFJlY2VpdmVyKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVj
dGlvbi5oOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXI6
OnJlZik6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlcjo6
ZGVyZWYpOgorICAgICAgICAtIEFkZCBzdXBwb3J0IGZvciBwYXNzaW5nIGEgZGVzdGluYXRpb25J
RCB3aGVuIHJlZ2lzdGVyaW5nIGEgV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyIG9yIGEKKyAgICAg
ICAgICBUaHJlYWRNZXNzYWdlUmVjZWl2ZXIsIHNpbWlsYXJseSB0byByZWd1bGFyIE1lc3NhZ2VS
ZWNlaXZlcnMuIFRoaXMgd2FzIG5lZWRlZCBoZXJlIHNpbmNlCisgICAgICAgICAgVGhlIEdQVVBy
b2Nlc3Mgc2VuZHMgSVBDIG1lc3NhZ2VzIHRvIHRoZSBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkgd2l0aCBhIGdpdmVuCisgICAgICAgICAgZGVzdGluYXRpb25JRCBhbmQgc2luY2UgUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5IGlzIG5vdyBhIFRocmVhZE1lc3NhZ2VSZWNlaXZlci4KKyAg
ICAgICAgLSBTdG9wIGhhdmluZyBUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgc3ViY2xhc3MgVGhyZWFk
U2FmZVJlZkNvdW50ZWQgc2luY2UKKyAgICAgICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkgYWxyZWFkeSBzdWJjbGFzc2VzIFRocmVhZFNhZmVSZWZDb3VudGVkIGluZGlyZWN0bHkuIEEg
bmV3CisgICAgICAgICAgVGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCBjbGFzcyB3YXMg
YWRkZWQgZm9yIGNvbnZlbmllbmNlIGZvciBleGlzdGluZyBjb2RlIHRoYXQKKyAgICAgICAgICBy
ZWxpZWQgb24gaXRzIHJlZmNvdW50aW5nLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6On5SZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHk6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5OjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5OjpyZW5kZXJCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uUHJveHk6OmRpZENoYW5nZUlzUGxheWluZyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1
ZGlvRGVzdGluYXRpb25Qcm94eTo6ZGlzcGF0Y2hUb1RocmVhZCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Lmg6CisgICAgICAgIFVz
ZSBhIFB1c2hQdWxsRklGTyBjb250YWluZXIgaW4gcmVuZGVyKCkgdG8gYXZvaWQgaGFuZGluZyB0
aGUgYXVkaW8gcmVuZGVyaW5nIHRocmVhZCBvbgorICAgICAgICBhIHNlbWFwaG9yZSB3aGlsZSB0
aGUgUmVuZGVyIElQQyBpcyBnZXR0aW5nIHByb2Nlc3NlZCBieSB0aGUgV2ViUHJvY2Vzcy4KKwog
MjAyMC0xMC0xMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIEFsbG93IGxlZ2FjeSBjdXN0b20gc2NoZW1lIHJlZ2lzdHJhdGlvbiBvbiBub24t
bWFpbiB0aHJlYWRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZFF1ZXVl
LmggYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZFF1ZXVlLmgKaW5kZXggYmMyYjFlYWVmOWU5
YmEzYjlkNDQzMDFhYmE4NGMwMzY3OTAzNjhjZC4uMzE1NTI3NGJmYWM1M2VkNjQ1ZTBkZjgzNTg5
MDRjYmE3N2MzYTcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRRdWV1
ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkUXVldWUuaApAQCAtODAsNiArODAs
OCBAQCBEYXRhVHlwZSBDcm9zc1RocmVhZFF1ZXVlPERhdGFUeXBlPjo6d2FpdEZvck1lc3NhZ2Uo
KQogCiAgICAgICAgIG1fY29uZGl0aW9uLndhaXQobV9sb2NrKTsKICAgICB9CisgICAgaWYgKG1f
a2lsbGVkKQorICAgICAgICByZXR1cm4geyB9OwogCiAgICAgcmV0dXJuIG1fcXVldWUudGFrZUZp
cnN0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAzNjc0ZWZiYzdiZDAyYjU3MTMzYWVmMDk0
YTc5N2I2NWY1ZTU5MmRhLi41N2Y4MzI0YjAxMjVjYWZmMWFmZTBkM2JiZTU2NjkzZWY2ZWI4OWZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEwNjgsMTAgKzEwNjgsMTIgQEAgc2V0KFdlYkNvcmVf
UFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lv
bi5oCiAgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9Tb3VyY2VQcm92aWRlci5oCiAgICAgcGxhdGZv
cm0vYXVkaW8vQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oCisgICAgcGxhdGZvcm0vYXVkaW8vQXVk
aW9VdGlsaXRpZXMuaAogICAgIHBsYXRmb3JtL2F1ZGlvL05vd1BsYXlpbmdJbmZvLmgKICAgICBw
bGF0Zm9ybS9hdWRpby9QbGF0Zm9ybUF1ZGlvRGF0YS5oCiAgICAgcGxhdGZvcm0vYXVkaW8vUGxh
dGZvcm1NZWRpYVNlc3Npb24uaAogICAgIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5oCisgICAgcGxhdGZvcm0vYXVkaW8vUHVzaFB1bGxGSUZPLmgKIAogICAgIHBs
YXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETUVuY3J5cHRpb25TY2hlbWUuaAogICAgIHBsYXRmb3Jt
L2VuY3J5cHRlZG1lZGlhL0NETUZhY3RvcnkuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU5ZWE5OThkNTc2NzE4MDI3ZWRiODM4
Y2FkNWMyM2I1MzI0NzY2Y2EuLjRjMDc1NzgwOTZmNDZjZmExN2M0ODBmMzM1MzVkN2UzYzQ4YTk5
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTI1NDIsNyArMjU0Miw3IEBACiAJCTgzQzU3OTVEMURBNUMzMDEwMDZGQUNBOCAv
KiBTY3JvbGxUb09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzNTBDM0U3MURBNTlCNjIwMDM1NjQ0NiAvKiBTY3JvbGxUb09wdGlvbnMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4M0QzNUFF
QzFDNzE4N0ZBMDBGNzBENUEgLyogWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEMzVBRUExQzcxODdFRDAw
RjcwRDVBIC8qIFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaCAqLzsgfTsKIAkJODNEMzVBRjIx
QzcxOEQ5MDAwRjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEMzVBRjAxQzcxOEQ4NDAw
RjcwRDVBIC8qIEpTWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oICovOyB9OwotCQk4M0Q1MTFG
NjI1MEMxQ0JGMDAyRURDNTEgLyogUHVzaFB1bGxGSUZPLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q1MTFGNTI1MEMxQ0E4MDAyRURDNTEgLyogUHVz
aFB1bGxGSUZPLmggKi87IH07CisJCTgzRDUxMUY2MjUwQzFDQkYwMDJFREM1MSAvKiBQdXNoUHVs
bEZJRk8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
RDUxMUY1MjUwQzFDQTgwMDJFREM1MSAvKiBQdXNoUHVsbEZJRk8uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4M0Q2QUFFNjI1MjRFRTFDMDA0MjhC
NEIgLyogV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDZBQUU0MjUyNEVFMTMwMDQyOEI0QiAvKiBXb3Jr
ZXJPcldvcmtsZXRHbG9iYWxTY29wZS5oICovOyB9OwogCQk4M0RCOUUwRjI0REExOTQ5MDAzN0I0
NjggLyogQmlxdWFkRmlsdGVyVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODNEQjlFMEMyNERBMThCNTAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlclR5
cGUuaCAqLzsgfTsKIAkJODNEQjlFMTAyNERBMTk1NzAwMzdCNDY4IC8qIEJpcXVhZEZpbHRlck9w
dGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
REI5RTBFMjREQTE4QjYwMDM3QjQ2OCAvKiBCaXF1YWRGaWx0ZXJPcHRpb25zLmggKi87IH07CkBA
IC01Mjg1LDcgKzUyODUsNyBAQAogCQlGRDMxNjA4NjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9S
ZXNhbXBsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZEMzE2MDUwMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1Jlc2FtcGxlci5oICovOyB9OwogCQlG
RDMxNjA4ODEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9SZXNhbXBsZXJLZXJuZWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDUyMTJCMDI2Rjcw
MEMxQTM1OSAvKiBBdWRpb1Jlc2FtcGxlcktlcm5lbC5oICovOyB9OwogCQlGRDMxNjA4OTEyQjAy
NkY3MDBDMUEzNTkgLyogQXVkaW9Tb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQzMTYwNTMxMkIwMjZGNzAwQzFBMzU5IC8qIEF1
ZGlvU291cmNlUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQlGRDMxNjA4QjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9VdGlsaXRpZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDU1
MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1V0aWxpdGllcy5oICovOyB9OworCQlGRDMxNjA4QjEy
QjAyNkY3MDBDMUEzNTkgLyogQXVkaW9VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDU1MTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRp
b1V0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUZEMzE2MDhEMTJCMDI2RjcwMEMxQTM1OSAvKiBCaXF1YWQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDU3MTJCMDI2RjcwMEMxQTM1
OSAvKiBCaXF1YWQuaCAqLzsgfTsKIAkJRkQzMTYwOEYxMkIwMjZGNzAwQzFBMzU5IC8qIENvbmUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMzE2MDU5
MTJCMDI2RjcwMEMxQTM1OSAvKiBDb25lLmggKi87IH07CiAJCUZEMzE2MDkxMTJCMDI2RjcwMEMx
QTM1OSAvKiBEaXN0YW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkQzMTYwNUIxMkIwMjZGNzAwQzFBMzU5IC8qIERpc3RhbmNlLmggKi87IH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QdXNoUHVsbEZJRk8uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1B1c2hQdWxsRklGTy5oCmluZGV4IDNkNDNm
NGFjZmE0ZDc1ZTdjNzFiNmMwY2YwZmU0ODMzYWI3MGY2MmIuLmI3ODdlMDc5OGRiNTEwZDA1Mzg0
NzMyMzFlYjMyN2JhZmQzZDcxZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL1B1c2hQdWxsRklGTy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L1B1c2hQdWxsRklGTy5oCkBAIC00NSwxOSArNDUsMTkgQEAgcHVibGljOgogICAgIHN0YXRpYyBj
b25zdGV4cHIgc2l6ZV90IG1heEZJRk9MZW5ndGggeyA2NTUzNiB9OwogCiAgICAgLy8gfGZpZm9M
ZW5ndGh8IGNhbm5vdCBleGNlZWQgfG1heEZJRk9MZW5ndGh8LiBPdGhlcndpc2UgaXQgY3Jhc2hl
cy4KLSAgICBQdXNoUHVsbEZJRk8odW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGZp
Zm9MZW5ndGgpOwotICAgIH5QdXNoUHVsbEZJRk8oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQdXNo
UHVsbEZJRk8odW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGZpZm9MZW5ndGgpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIH5QdXNoUHVsbEZJRk8oKTsKIAogICAgIC8vIFB1c2hlcyB0aGUg
cmVuZGVyZWQgZnJhbWVzIGJ5IFdlYkF1ZGlvIGVuZ2luZS4KICAgICAvLyAgLSBUaGUgfGlucHV0
QnVzfCBsZW5ndGggaXMgMTI4IGZyYW1lcyAoMSByZW5kZXIgcXVhbnR1bSksIGZpeGVkLgogICAg
IC8vICAtIEluIGNhc2Ugb2Ygb3ZlcmZsb3cgKEZJRk8gZnVsbCB3aGlsZSBwdXNoKSwgdGhlIGV4
aXN0aW5nIGZyYW1lcyBpbiBGSUZPCiAgICAgLy8gICAgd2lsbCBiZSBvdmVyd3JpdHRlbiBhbmQg
fGluZGV4UmVhZHwgd2lsbCBiZSBmb3JjaWJseSBtb3ZlZCB0bwogICAgIC8vICAgIHxpbmRleFdy
aXRlfCB0byBhdm9pZCByZWFkaW5nIG92ZXJ3cml0dGVuIGZyYW1lcy4KLSAgICB2b2lkIHB1c2go
Y29uc3QgQXVkaW9CdXMqIGlucHV0QnVzKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHB1c2go
Y29uc3QgQXVkaW9CdXMqIGlucHV0QnVzKTsKIAogICAgIC8vIFB1bGxzIHxmcmFtZXNSZXF1ZXN0
ZWR8IGJ5IHRoZSBhdWRpbyBkZXZpY2UgdGhyZWFkIGFuZCByZXR1cm5zIHRoZSBhY3R1YWwKICAg
ICAvLyBudW1iZXIgb2YgZnJhbWVzIHRvIGJlIHJlbmRlcmVkIGJ5IHRoZSBzb3VyY2UuIChpLmUu
IFdlYkF1ZGlvIGdyYXBoKQotICAgIHNpemVfdCBwdWxsKEF1ZGlvQnVzKiBvdXRwdXRCdXMsIHNp
emVfdCBmcmFtZXNSZXF1ZXN0ZWQpOworICAgIFdFQkNPUkVfRVhQT1JUIHNpemVfdCBwdWxsKEF1
ZGlvQnVzKiBvdXRwdXRCdXMsIHNpemVfdCBmcmFtZXNSZXF1ZXN0ZWQpOwogCiAgICAgc2l6ZV90
IGZyYW1lc0F2YWlsYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVzQXZhaWxhYmxlOyB9CiAg
ICAgc2l6ZV90IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlmb0xlbmd0aDsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKaW5kZXggNTFlYTY2OTUzZjYxMzMzNTYyMzc3NmU3ZTM4
YTJmMTkwYjQ1ODZjMy4uMjdmMmE2OTk2YWM5NDBjY2Q4NDc5MzU5NTRlNmQ5MTg0YTNkMzNkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCkBAIC0zNSwxMiArMzUsMTcgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvQnVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0Rlc3Rp
bmF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb0lPQ2FsbGJhY2suaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0F1ZGlvVXRpbGl0aWVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QdXNoUHVsbEZJ
Rk8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9U
aHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFw
aG9yZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorLy8gVGhpcyBGSUZPIHNpemUgbWF0Y2hl
cyB0byBvbmUgaW4gQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcCBhbmQgd2FzIGltcG9ydGVkIGZy
b20gQmxpbmsuCitjb25zdGV4cHIgc2l6ZV90IGZpZm9TaXplID0gOTYgKiBXZWJDb3JlOjpBdWRp
b1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemU7CisKIGNsYXNzIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVtb3RlQXVkaW9EZXN0aW5hdGlv
bj4sIHB1YmxpYyBXZWJDb3JlOjpBdWRpb0lPQ2FsbGJhY2sgewogcHVibGljOgogICAgIHVzaW5n
IEF1ZGlvQnVzID0gV2ViQ29yZTo6QXVkaW9CdXM7CkBAIC03NiwxNiArODEsMjMgQEAgcHJpdmF0
ZToKICAgICAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKICAgICAgICAgLCBtX2lkKGlk
ZW50aWZpZXIpCiAgICAgICAgICwgbV9kZXN0aW5hdGlvbihBdWRpb0Rlc3RpbmF0aW9uOjpjcmVh
dGUoKnRoaXMsIGlucHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZP
dXRwdXRDaGFubmVscywgc2FtcGxlUmF0ZSkpCisgICAgICAgICwgbV9maWZvKG51bWJlck9mT3V0
cHV0Q2hhbm5lbHMsIGZpZm9TaXplKQogICAgIHsKICAgICB9CiAKLSAgICB2b2lkIHJlbmRlcihB
dWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBmcmFt
ZXNUb1Byb2Nlc3MsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvSU9Qb3NpdGlvbiYgb3V0cHV0UG9zaXRp
b24pIG92ZXJyaWRlCisgICAgdm9pZCByZW5kZXIoQXVkaW9CdXMqLCBBdWRpb0J1cyogZGVzdGlu
YXRpb25CdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvSU9Q
b3NpdGlvbiYgb3V0cHV0UG9zaXRpb24pIG92ZXJyaWRlCiAgICAgeworICAgICAgICBBU1NFUlQo
IWlzTWFpblRocmVhZCgpKTsKKwogICAgICAgICBpZiAobV9wcm90ZWN0VGhpc0R1cmluZ0dyYWNl
ZnVsU2h1dGRvd24pCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgYXV0byBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7Ci0gICAgICAgIEJpbmFyeVNlbWFwaG9yZSByZW5kZXJT
ZW1hcGhvcmU7CisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bV9maWZvTG9jayk7CisgICAgICAgICAgICBmcmFtZXNUb1Byb2Nlc3MgPSBtX2ZpZm8ucHVsbChk
ZXN0aW5hdGlvbkJ1cywgZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
IWZyYW1lc1RvUHJvY2VzcykKKyAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBWZWN0b3I8
UmVmPFNoYXJlZE1lbW9yeT4+IGJ1ZmZlcnM7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBkZXN0aW5hdGlvbkJ1cy0+bnVtYmVyT2ZDaGFubmVscygpOyArK2kpIHsKQEAgLTkzLDIx
ICsxMDUsMTkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJ1ZmZlcnMuYXBwZW5kKCptZW1vcnkp
OwogICAgICAgICB9CiAKLSAgICAgICAgLy8gRklYTUU6IFJlcGxhY2UgdGhpcyBjb2RlIHdpdGgg
YSByaW5nIGJ1ZmZlci4gQXQgbGVhc3QgdGhpcyBoYXBwZW5zIGluIGF1ZGlvIHRocmVhZC4KLSAg
ICAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQo
W3RoaXMsIGZyYW1lc1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24sICZidWZmZXJzLCAmcmVuZGVy
U2VtYXBob3JlXSB7CisgICAgICAgIC8vIEZJWE1FOiBJdCBpcyB1bmZvcnR1bmF0ZSB3ZSBoYXZl
IHRvIGRpc3BhdGNoIHRvIHRoZSBtYWluIHRoZWFkIGhlcmUuIFdlIHNob3VsZCBiZSBhYmxlIHRv
IElQQyBzdHJhaWdodCBmcm9tIHRoZQorICAgICAgICAvLyByZW5kZXIgdGhyZWFkIGJ1dCB0aGlz
IGlzIG5vdCBzdXBwb3J0ZWQgYnkgc2VuZFdpdGhBc3luY1JlcGx5KCkuCisgICAgICAgIGNhbGxP
bk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZnJhbWVz
VG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbiwgYnVmZmVycyA9IFdURk1vdmUoYnVmZmVycyldKCkg
bXV0YWJsZSB7CiAgICAgICAgICAgICBSZW1vdGVBdWRpb0J1c0RhdGEgYnVzRGF0YSB7IGZyYW1l
c1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24sIGJ1ZmZlcnMubWFwKFtdKGF1dG8mIG1lbW9yeSkg
eyByZXR1cm4gbWVtb3J5LmNvcHlSZWYoKTsgfSkgfTsKICAgICAgICAgICAgIEFTU0VSVChmcmFt
ZXNUb1Byb2Nlc3MpOwotICAgICAgICAgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6UmVu
ZGVyQnVmZmVyKGJ1c0RhdGEpLCBbJl0oKSB7Ci0gICAgICAgICAgICAgICAgcmVuZGVyU2VtYXBo
b3JlLnNpZ25hbCgpOworICAgICAgICAgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6UmVu
ZGVyQnVmZmVyKGJ1c0RhdGEpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVj
dGVkVGhpcyksIGJ1ZmZlcnMgPSBXVEZNb3ZlKGJ1ZmZlcnMpLCBmcmFtZXNUb1Byb2Nlc3NdKCkg
eworICAgICAgICAgICAgICAgIGF1dG8gYXVkaW9CdXMgPSBBdWRpb0J1czo6Y3JlYXRlKGJ1ZmZl
cnMuc2l6ZSgpLCBmcmFtZXNUb1Byb2Nlc3MsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgYnVmZmVycy5zaXplKCk7ICsraSkKKyAgICAgICAgICAgICAg
ICAgICAgYXVkaW9CdXMtPnNldENoYW5uZWxNZW1vcnkoaSwgc3RhdGljX2Nhc3Q8ZmxvYXQqPihi
dWZmZXJzW2ldLT5kYXRhKCkpLCBmcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICAgICAgICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9maWZvTG9jayk7CisgICAgICAgICAgICAgICAgbV9maWZv
LnB1c2goYXVkaW9CdXMuZ2V0KCkpOwogICAgICAgICAgICAgfSwgbV9pZC50b1VJbnQ2NCgpKTsK
ICAgICAgICAgfSk7Ci0gICAgICAgIHJlbmRlclNlbWFwaG9yZS53YWl0KCk7Ci0KLSAgICAgICAg
YXV0byBhdWRpb0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUoYnVmZmVycy5zaXplKCksIGZyYW1lc1Rv
UHJvY2VzcywgZmFsc2UpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYnVmZmVy
cy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIGF1ZGlvQnVzLT5zZXRDaGFubmVsTWVtb3J5KGks
IChmbG9hdCopYnVmZmVyc1tpXS0+ZGF0YSgpLCBmcmFtZXNUb1Byb2Nlc3MpOwotICAgICAgICBk
ZXN0aW5hdGlvbkJ1cy0+Y29weUZyb20oKmF1ZGlvQnVzKTsKICAgICB9CiAKICAgICB2b2lkIGlz
UGxheWluZ0RpZENoYW5nZSgpIG92ZXJyaWRlCkBAIC0xMjcsNiArMTM3LDggQEAgcHJpdmF0ZToK
ICAgICBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uSWRlbnRpZmllciBtX2lkOwogICAgIFJlZlB0cjxB
dWRpb0Rlc3RpbmF0aW9uPiBtX2Rlc3RpbmF0aW9uOwogICAgIFJlZlB0cjxSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uPiBtX3Byb3RlY3RUaGlzRHVyaW5nR3JhY2VmdWxTaHV0ZG93bjsKKyAgICBMb2Nr
IG1fZmlmb0xvY2s7CisgICAgV2ViQ29yZTo6UHVzaFB1bGxGSUZPIG1fZmlmbzsKIH07CiAKIFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
cihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCmluZGV4
IGY4YTI4MjRmODYzN2E0NjljYzlmMTE1NGI3ZTg5ZGZhNDUyODE1YzUuLjUyMDcyOTNmZGYwNzAy
ZjNiOWZhZjVmZjkyZjdlNDllMDM3MWE2MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKQEAgLTUxLDcgKzUxLDcg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7
CiAKLWNsYXNzIExpYldlYlJUQ0NvZGVjc1Byb3h5IDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6
VGhyZWFkTWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIExpYldlYlJUQ0NvZGVjc1Byb3h5IDogcHVi
bGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxMaWJX
ZWJSVENDb2RlY3NQcm94eT4gY3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIHByb2Nl
c3MpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTGliV2ViUlRDQ29kZWNzUHJveHkocHJvY2Vzcykp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIu
aAppbmRleCA4YzdhNzcxYWJmMTQ1ZTg2YTU1ZGM5ZjAyNTJhZGY0YmZmNmYyZWRjLi45ZjBmNjUy
ZjY5MzYwMjAwODMzZWI4OWQ2M2E0NmQxZWQ1ZWU5ZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyOwogCi1jbGFzcyBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXIg
ZmluYWwgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgewor
Y2xhc3MgUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyIGZpbmFsIDog
cHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxS
ZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI+IGNyZWF0ZShHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJiBwcm9jZXNzKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90
ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlcihwcm9jZXNzKSk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgKaW5kZXggOGU0ODliMTYzY2Mz
ZWM2ZGUwMGUyZTBiZjkyNjc4YTJkNmNjZjQxZi4uYTMyNGFlYzk1NzQxYWE3ODZjYTRiMDAyM2Y2
OTJhMTk1NzExNDU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOwogY2xhc3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
OwogCi1jbGFzcyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyIGZpbmFsIDog
cHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFJl
bW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpD
b25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXJSZWZDb3VudGVkIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlbW90ZVNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
JiBjb25uZWN0aW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIoY29ubmVjdGlvbikpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCmluZGV4IDNlYTExNmMw
YjhhNTRiZjE5OTYwZjliNWMwNjdiZmI3MDhkMTk3NjQuLmIzZGZjZWRmMjgxZTQ1NmYwOTdlNmY0
OTA5N2JhOGM2YzMzNjQ4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5oCkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIElE
QlNlcnZlcjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYklEQlNlcnZlciBmaW5h
bCA6IHB1YmxpYyBDcm9zc1RocmVhZFRhc2tIYW5kbGVyLCBwdWJsaWMgSVBDOjpDb25uZWN0aW9u
OjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgeworY2xhc3MgV2ViSURCU2VydmVyIGZpbmFsIDogcHVi
bGljIENyb3NzVGhyZWFkVGFza0hhbmRsZXIsIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVh
ZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2Vi
SURCU2VydmVyPiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5
LCBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6U3RvcmFnZVF1b3RhTWFuYWdlclNwYWNl
UmVxdWVzdGVyJiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5oCmluZGV4IGFhYzZlMjBlMDRiODRlODY3NTE5
NzNmMjhjNmUyYjJiYzBiODgxNGYuLjNhMDY3MDNmNDEyZTkwNTc1ZGJlMzU1Mzk0NTA1NjRkNTBh
NjdjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05l
dHdvcmtSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL05ldHdvcmtSVENQcm92aWRlci5oCkBAIC02MCw3ICs2MCw3IEBAIGNsYXNzIE5ldHdvcmtS
VENSZXNvbHZlcjsKIGNsYXNzIE5ldHdvcmtTZXNzaW9uOwogc3RydWN0IFJUQ1BhY2tldE9wdGlv
bnM7CiAKLWNsYXNzIE5ldHdvcmtSVENQcm92aWRlciA6IHB1YmxpYyBydGM6Ok1lc3NhZ2VIYW5k
bGVyLCBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgeworY2xh
c3MgTmV0d29ya1JUQ1Byb3ZpZGVyIDogcHVibGljIHJ0Yzo6TWVzc2FnZUhhbmRsZXIsIHB1Ymxp
YyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VSZWNlaXZlclJlZkNvdW50ZWQgewogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8TmV0d29ya1JUQ1Byb3ZpZGVyPiBjcmVhdGUoTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TmV0d29ya1JUQ1Byb3ZpZGVyKGNvbm5lY3Rpb24pKTsgfQogICAgIH5OZXR3b3JrUlRDUHJvdmlk
ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggNDky
MDk2MjIxODVmM2IzYjRhNzI1NmU1NDJlYjZkNmRjNmY3YzQ3Yy4uMzA2ODM3MzhjNzZlYmZmMDc2
NDg0ZDE3MzA0YTg2MmVkNmFhYjUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5jcHAKQEAgLTMxMSwyMyArMzExLDI1IEBAIHZvaWQgQ29ubmVjdGlvbjo6c2V0U2hv
dWxkRXhpdE9uU3luY01lc3NhZ2VTZW5kRmFpbHVyZShib29sIHNob3VsZEV4aXRPblN5bmNNZXNz
CiAgICAgbV9zaG91bGRFeGl0T25TeW5jTWVzc2FnZVNlbmRGYWlsdXJlID0gc2hvdWxkRXhpdE9u
U3luY01lc3NhZ2VTZW5kRmFpbHVyZTsKIH0KIAotdm9pZCBDb25uZWN0aW9uOjphZGRXb3JrUXVl
dWVNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFdvcmtR
dWV1ZSYgd29ya1F1ZXVlLCBXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIqIHdvcmtRdWV1ZU1lc3Nh
Z2VSZWNlaXZlcikKK3ZvaWQgQ29ubmVjdGlvbjo6YWRkV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVy
KFJlY2VpdmVyTmFtZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBXb3JrUXVldWUmIHdvcmtRdWV1ZSwg
V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKiB3b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIsIHVpbnQ2
NF90IGRlc3RpbmF0aW9uSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAog
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV93b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzTXV0
ZXgpOwotICAgIEFTU0VSVCghbV93b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1l
c3NhZ2VSZWNlaXZlck5hbWUpKTsKKyAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KG1lc3NhZ2VSZWNlaXZlck5hbWUpLCBkZXN0aW5hdGlvbklEKTsKKyAg
ICBBU1NFUlQoIW1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVycy5jb250YWlucyhrZXkpKTsKIAot
ICAgIG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVycy5hZGQobWVzc2FnZVJlY2VpdmVyTmFtZSwg
c3RkOjptYWtlX3BhaXIoJndvcmtRdWV1ZSwgd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKSk7Cisg
ICAgbV93b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzLmFkZChrZXksIHN0ZDo6bWFrZV9wYWlyKCZ3
b3JrUXVldWUsIHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcikpOwogfQogCi12b2lkIENvbm5lY3Rp
b246OnJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihSZWNlaXZlck5hbWUgbWVzc2FnZVJl
Y2VpdmVyTmFtZSkKK3ZvaWQgQ29ubmVjdGlvbjo6cmVtb3ZlV29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyKFJlY2VpdmVyTmFtZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCB1aW50NjRfdCBkZXN0aW5hdGlv
bklEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyc011dGV4KTsKLSAgICBBU1NF
UlQobV93b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VSZWNlaXZlck5h
bWUpKTsKLSAgICBtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMucmVtb3ZlKG1lc3NhZ2VSZWNl
aXZlck5hbWUpOworICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIoc3RhdGljX2Nhc3Q8dWlu
dDhfdD4obWVzc2FnZVJlY2VpdmVyTmFtZSksIGRlc3RpbmF0aW9uSUQpOworICAgIEFTU0VSVCht
X3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnMuY29udGFpbnMoa2V5KSk7CisgICAgbV93b3JrUXVl
dWVNZXNzYWdlUmVjZWl2ZXJzLnJlbW92ZShrZXkpOwogfQogCiB2b2lkIENvbm5lY3Rpb246OmRp
c3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWVzc2FnZShXb3JrUXVldWVNZXNzYWdlUmVj
ZWl2ZXImIHdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciwgRGVjb2RlciYgZGVjb2RlcikKQEAgLTM1
NywyNCArMzU5LDI2IEBAIHZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hXb3JrUXVldWVNZXNzYWdl
UmVjZWl2ZXJNZXNzYWdlKFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlCiAgICAgICAgIHNlbmRTeW5j
UmVwbHkoV1RGTW92ZShyZXBseUVuY29kZXIpKTsKIH0KIAotdm9pZCBDb25uZWN0aW9uOjphZGRU
aHJlYWRNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUsIFRo
cmVhZE1lc3NhZ2VSZWNlaXZlciogdGhyZWFkTWVzc2FnZVJlY2VpdmVyKQordm9pZCBDb25uZWN0
aW9uOjphZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZl
ck5hbWUsIFRocmVhZE1lc3NhZ2VSZWNlaXZlciogdGhyZWFkTWVzc2FnZVJlY2VpdmVyLCB1aW50
NjRfdCBkZXN0aW5hdGlvbklEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAK
ICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fdGhyZWFkTWVzc2FnZVJlY2VpdmVyc0xvY2sp
OwotICAgIEFTU0VSVCghbV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKG1lc3NhZ2VS
ZWNlaXZlck5hbWUpKTsKKyAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHN0YXRpY19jYXN0
PHVpbnQ4X3Q+KG1lc3NhZ2VSZWNlaXZlck5hbWUpLCBkZXN0aW5hdGlvbklEKTsKKyAgICBBU1NF
UlQoIW1fdGhyZWFkTWVzc2FnZVJlY2VpdmVycy5jb250YWlucyhrZXkpKTsKIAotICAgIG1fdGhy
ZWFkTWVzc2FnZVJlY2VpdmVycy5hZGQobWVzc2FnZVJlY2VpdmVyTmFtZSwgdGhyZWFkTWVzc2Fn
ZVJlY2VpdmVyKTsKKyAgICBtX3RocmVhZE1lc3NhZ2VSZWNlaXZlcnMuYWRkKGtleSwgdGhyZWFk
TWVzc2FnZVJlY2VpdmVyKTsKIH0KIAotdm9pZCBDb25uZWN0aW9uOjpyZW1vdmVUaHJlYWRNZXNz
YWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lIG1lc3NhZ2VSZWNlaXZlck5hbWUpCit2b2lkIENvbm5l
Y3Rpb246OnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihSZWNlaXZlck5hbWUgbWVzc2FnZVJl
Y2VpdmVyTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCkKIHsKICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwogCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3RocmVhZE1lc3Nh
Z2VSZWNlaXZlcnNMb2NrKTsKLSAgICBBU1NFUlQobV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzLmNv
bnRhaW5zKG1lc3NhZ2VSZWNlaXZlck5hbWUpKTsKKyAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9w
YWlyKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KG1lc3NhZ2VSZWNlaXZlck5hbWUpLCBkZXN0aW5hdGlv
bklEKTsKKyAgICBBU1NFUlQobV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzLmNvbnRhaW5zKGtleSkp
OwogCi0gICAgbV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzLnJlbW92ZShtZXNzYWdlUmVjZWl2ZXJO
YW1lKTsKKyAgICBtX3RocmVhZE1lc3NhZ2VSZWNlaXZlcnMucmVtb3ZlKGtleSk7CiB9CiAKIHZv
aWQgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hUaHJlYWRNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlKFRocmVh
ZE1lc3NhZ2VSZWNlaXZlciYgdGhyZWFkTWVzc2FnZVJlY2VpdmVyLCBEZWNvZGVyJiBkZWNvZGVy
KQpAQCAtNzEzLDcgKzcxNyw4IEBAIHZvaWQgQ29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nTWVz
c2FnZShzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gbWVzc2FnZSkKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGlmICghV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyTWFwOjppc1ZhbGlkS2V5
KG1lc3NhZ2UtPm1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgfHwgIVRocmVhZE1lc3NhZ2VSZWNlaXZl
ck1hcDo6aXNWYWxpZEtleShtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkpKSB7CisgICAg
YXV0byB0aHJlYWRlZFJlY2VpdmVyS2V5ID0gc3RkOjptYWtlX3BhaXIoc3RhdGljX2Nhc3Q8dWlu
dDhfdD4obWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSwgbWVzc2FnZS0+ZGVzdGluYXRp
b25JRCgpKTsKKyAgICBpZiAoIVdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1hcDo6aXNWYWxpZEtl
eSh0aHJlYWRlZFJlY2VpdmVyS2V5KSB8fCAhVGhyZWFkTWVzc2FnZVJlY2VpdmVyTWFwOjppc1Zh
bGlkS2V5KHRocmVhZGVkUmVjZWl2ZXJLZXkpKSB7CiAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtZXNzYWdlTmFtZSA9IG1l
c3NhZ2UtPm1lc3NhZ2VOYW1lKCldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5kaXNwYXRjaERpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShtZXNzYWdlTmFtZSk7CiAgICAg
ICAgIH0pOwpAQCAtMTAwNCw3ICsxMDA5LDggQEAgdm9pZCBDb25uZWN0aW9uOjpkaXNwYXRjaE1l
c3NhZ2UoRGVjb2RlciYgZGVjb2RlcikKIGJvb2wgQ29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdl
VG9Xb3JrUXVldWVSZWNlaXZlcihzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4mIG1lc3NhZ2UpCiB7
CiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3dvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcnNN
dXRleCk7Ci0gICAgYXV0byBpdCA9IG1fd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVycy5maW5kKG1l
c3NhZ2UtPm1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7CisgICAgYXV0byBrZXkgPSBzdGQ6Om1ha2Vf
cGFpcihzdGF0aWNfY2FzdDx1aW50OF90PihtZXNzYWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkp
LCBtZXNzYWdlLT5kZXN0aW5hdGlvbklEKCkpOworICAgIGF1dG8gaXQgPSBtX3dvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlcnMuZmluZChrZXkpOwogICAgIGlmIChpdCAhPSBtX3dvcmtRdWV1ZU1lc3Nh
Z2VSZWNlaXZlcnMuZW5kKCkpIHsKICAgICAgICAgaXQtPnZhbHVlLmZpcnN0LT5kaXNwYXRjaChb
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB3b3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIg
PSBpdC0+dmFsdWUuc2Vjb25kLCBkZWNvZGVyID0gV1RGTW92ZShtZXNzYWdlKV0oKSBtdXRhYmxl
IHsKICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpc3BhdGNoV29ya1F1ZXVlTWVzc2FnZVJl
Y2VpdmVyTWVzc2FnZSgqd29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLCAqZGVjb2Rlcik7CkBAIC0x
MDE5LDcgKzEwMjUsOCBAQCBib29sIENvbm5lY3Rpb246OmRpc3BhdGNoTWVzc2FnZVRvVGhyZWFk
UmVjZWl2ZXIoc3RkOjp1bmlxdWVfcHRyPERlY29kZXI+JiBtZXNzYQogICAgIFJlZlB0cjxUaHJl
YWRNZXNzYWdlUmVjZWl2ZXI+IHByb3RlY3RlZFRocmVhZE1lc3NhZ2VSZWNlaXZlcjsKICAgICB7
CiAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJz
TG9jayk7Ci0gICAgICAgIHByb3RlY3RlZFRocmVhZE1lc3NhZ2VSZWNlaXZlciA9IG1fdGhyZWFk
TWVzc2FnZVJlY2VpdmVycy5nZXQobWVzc2FnZS0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKyAg
ICAgICAgYXV0byBrZXkgPSBzdGQ6Om1ha2VfcGFpcihzdGF0aWNfY2FzdDx1aW50OF90PihtZXNz
YWdlLT5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkpLCBtZXNzYWdlLT5kZXN0aW5hdGlvbklEKCkpOwor
ICAgICAgICBwcm90ZWN0ZWRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIgPSBtX3RocmVhZE1lc3NhZ2VS
ZWNlaXZlcnMuZ2V0KGtleSk7CiAgICAgfQogCiAgICAgaWYgKHByb3RlY3RlZFRocmVhZE1lc3Nh
Z2VSZWNlaXZlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCmluZGV4
IDg1NzcyZjNkMzA3OTkwYjZiN2E5MWMwZDdkZmI3YjliN2YyMDQ2MzIuLjc5NWFmMDM3ODIxNjdj
MDVlMjI3MWQ3OGMyZDVhMWQzOTgzMTQyMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9D
b25uZWN0aW9uLmgKQEAgLTExNyw5ICsxMTcsMjYgQEAgcHVibGljOgogICAgIGNsYXNzIFdvcmtR
dWV1ZU1lc3NhZ2VSZWNlaXZlciA6IHB1YmxpYyBNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXI+IHsKICAgICB9OwogCi0g
ICAgY2xhc3MgVGhyZWFkTWVzc2FnZVJlY2VpdmVyIDogcHVibGljIE1lc3NhZ2VSZWNlaXZlciwg
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFRocmVhZE1lc3NhZ2VSZWNlaXZlcj4geworICAg
IGNsYXNzIFRocmVhZE1lc3NhZ2VSZWNlaXZlciA6IHB1YmxpYyBNZXNzYWdlUmVjZWl2ZXIgewog
ICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVG9UaHJlYWQoV1RGOjpG
dW5jdGlvbjx2b2lkKCk+JiYpIHsgfTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVG9U
aHJlYWQoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYpID0gMDsKKworICAgICAgICB2b2lkIHJlZigp
IHsgcmVmTWVzc2FnZVJlY2VpdmVyKCk7IH0KKyAgICAgICAgdm9pZCBkZXJlZigpIHsgZGVyZWZN
ZXNzYWdlUmVjZWl2ZXIoKTsgfQorCisgICAgcHJvdGVjdGVkOgorICAgICAgICB2aXJ0dWFsIHZv
aWQgcmVmTWVzc2FnZVJlY2VpdmVyKCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZN
ZXNzYWdlUmVjZWl2ZXIoKSA9IDA7CisgICAgfTsKKworICAgIGNsYXNzIFRocmVhZE1lc3NhZ2VS
ZWNlaXZlclJlZkNvdW50ZWQgOiBwdWJsaWMgVGhyZWFkTWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZD4gewor
ICAgIHB1YmxpYzoKKyAgICAgICAgdXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ6OnJlZjsKKyAg
ICAgICAgdXNpbmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ6OmRlcmVmOworCisgICAgcHJpdmF0ZToK
KyAgICAgICAgdm9pZCByZWZNZXNzYWdlUmVjZWl2ZXIoKSBmaW5hbCB7IFRocmVhZFNhZmVSZWZD
b3VudGVkOjpyZWYoKTsgfQorICAgICAgICB2b2lkIGRlcmVmTWVzc2FnZVJlY2VpdmVyKCkgZmlu
YWwgeyBUaHJlYWRTYWZlUmVmQ291bnRlZDo6ZGVyZWYoKTsgfQogICAgIH07CiAKICNpZiBVU0Uo
VU5JWF9ET01BSU5fU09DS0VUUykKQEAgLTE5MCwxMSArMjA3LDExIEBAIHB1YmxpYzoKICAgICB0
eXBlZGVmIHZvaWQgKCpEaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZUNhbGxiYWNrKShDb25u
ZWN0aW9uKik7CiAgICAgdm9pZCBzZXREaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZUNhbGxi
YWNrKERpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2spOwogCi0gICAgdm9pZCBh
ZGRXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lLCBXb3JrUXVldWUmLCBXb3Jr
UXVldWVNZXNzYWdlUmVjZWl2ZXIqKTsKLSAgICB2b2lkIHJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VS
ZWNlaXZlcihSZWNlaXZlck5hbWUpOworICAgIHZvaWQgYWRkV29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyKFJlY2VpdmVyTmFtZSwgV29ya1F1ZXVlJiwgV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKiwg
dWludDY0X3QgZGVzdGluYXRpb25JRCA9IDApOworICAgIHZvaWQgcmVtb3ZlV29ya1F1ZXVlTWVz
c2FnZVJlY2VpdmVyKFJlY2VpdmVyTmFtZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCA9IDApOwog
Ci0gICAgdm9pZCBhZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoUmVjZWl2ZXJOYW1lLCBUaHJlYWRN
ZXNzYWdlUmVjZWl2ZXIqKTsKLSAgICB2b2lkIHJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihS
ZWNlaXZlck5hbWUpOworICAgIHZvaWQgYWRkVGhyZWFkTWVzc2FnZVJlY2VpdmVyKFJlY2VpdmVy
TmFtZSwgVGhyZWFkTWVzc2FnZVJlY2VpdmVyKiwgdWludDY0X3QgZGVzdGluYXRpb25JRCA9IDAp
OworICAgIHZvaWQgcmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKFJlY2VpdmVyTmFtZSwgdWlu
dDY0X3QgZGVzdGluYXRpb25JRCA9IDApOwogCiAgICAgYm9vbCBvcGVuKCk7CiAgICAgdm9pZCBp
bnZhbGlkYXRlKCk7CkBAIC0zNDksMTEgKzM2NiwxMSBAQCBwcml2YXRlOgogICAgIFJlZjxXb3Jr
UXVldWU+IG1fY29ubmVjdGlvblF1ZXVlOwogCiAgICAgTG9jayBtX3dvcmtRdWV1ZU1lc3NhZ2VS
ZWNlaXZlcnNNdXRleDsKLSAgICB1c2luZyBXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXJNYXAgPSBI
YXNoTWFwPFJlY2VpdmVyTmFtZSwgc3RkOjpwYWlyPFJlZlB0cjxXb3JrUXVldWU+LCBSZWZQdHI8
V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyPj4sIFdURjo6SW50SGFzaDxSZWNlaXZlck5hbWU+LCBX
VEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPFJlY2VpdmVyTmFtZT4+OworICAgIHVzaW5nIFdvcmtR
dWV1ZU1lc3NhZ2VSZWNlaXZlck1hcCA9IEhhc2hNYXA8c3RkOjpwYWlyPHVpbnQ4X3QsIHVpbnQ2
NF90Piwgc3RkOjpwYWlyPFJlZlB0cjxXb3JrUXVldWU+LCBSZWZQdHI8V29ya1F1ZXVlTWVzc2Fn
ZVJlY2VpdmVyPj4+OwogICAgIFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlck1hcCBtX3dvcmtRdWV1
ZU1lc3NhZ2VSZWNlaXZlcnM7CiAKICAgICBMb2NrIG1fdGhyZWFkTWVzc2FnZVJlY2VpdmVyc0xv
Y2s7Ci0gICAgdXNpbmcgVGhyZWFkTWVzc2FnZVJlY2VpdmVyTWFwID0gSGFzaE1hcDxSZWNlaXZl
ck5hbWUsIFJlZlB0cjxUaHJlYWRNZXNzYWdlUmVjZWl2ZXI+LCBXVEY6OkludEhhc2g8UmVjZWl2
ZXJOYW1lPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxSZWNlaXZlck5hbWU+PjsKKyAgICB1
c2luZyBUaHJlYWRNZXNzYWdlUmVjZWl2ZXJNYXAgPSBIYXNoTWFwPHN0ZDo6cGFpcjx1aW50OF90
LCB1aW50NjRfdD4sIFJlZlB0cjxUaHJlYWRNZXNzYWdlUmVjZWl2ZXI+PjsKICAgICBUaHJlYWRN
ZXNzYWdlUmVjZWl2ZXJNYXAgbV90aHJlYWRNZXNzYWdlUmVjZWl2ZXJzOwogCiAgICAgdW5zaWdu
ZWQgbV9pblNlbmRTeW5jQ291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAK
aW5kZXggODIxMzgwMGI5ZjEwYzU4MjYwZTA3YTc5MGY3Y2IyMGE3ZTBlYTA3Ni4uODQwNGM0OGUx
YzJlNDgyYWJjZDI0ZTU1ZDJjYzkxM2JkMjY3ZTc0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5LmNwcApAQCAtNjAsNyArNjAsMTYgQEAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblBy
b3h5OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmEK
ICAgICBjb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kU3luYygKICAgICAgICAgTWVzc2FnZXM6
OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOjpDcmVhdGVBdWRpb0Rlc3RpbmF0aW9uKGlu
cHV0RGV2aWNlSWQsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVs
cywgc2FtcGxlUmF0ZSksCiAgICAgICAgIE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlcjo6Q3JlYXRlQXVkaW9EZXN0aW5hdGlvbjo6UmVwbHkoZGVzdGluYXRpb25JRCwgZnJh
bWVzUGVyQnVmZmVyKSwgMCk7Ci0gICAgY29ubmVjdGlvbi5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5h
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBkZXN0aW5hdGlvbklELnRvVUludDY0KCksICp0aGlzKTsK
KworICAgIGF1dG8gb2ZmVGhyZWFkUmVuZGVyaW5nID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgd2hpbGUgKCFtX3RocmVhZFRhc2tR
dWV1ZS5pc0tpbGxlZCgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byB0YXNrID0gbV90aHJlYWRU
YXNrUXVldWUud2FpdEZvck1lc3NhZ2UoKSkKKyAgICAgICAgICAgICAgICB0YXNrKCk7CisgICAg
ICAgIH0KKyAgICB9OworICAgIG1fcmVuZGVyVGhyZWFkID0gVGhyZWFkOjpjcmVhdGUoIlJlbW90
ZUF1ZGlvRGVzdGluYXRpb25Qcm94eSByZW5kZXIgdGhyZWFkIiwgV1RGTW92ZShvZmZUaHJlYWRS
ZW5kZXJpbmcpLCBUaHJlYWRUeXBlOjpBdWRpbyk7CisKKyAgICBjb25uZWN0aW9uLmNvbm5lY3Rp
b24oKS5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzLCBkZXN0aW5hdGlvbklELnRv
VUludDY0KCkpOwogCiAgICAgbV9kZXN0aW5hdGlvbklEID0gZGVzdGluYXRpb25JRDsKICAgICBt
X2ZyYW1lc1BlckJ1ZmZlciA9IGZyYW1lc1BlckJ1ZmZlcjsKQEAgLTY5LDEyICs3OCwxNSBAQCBS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eShB
dWRpb0lPQ2FsbGJhY2smIGNhbGxiYQogUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojp+UmVt
b3RlQXVkaW9EZXN0aW5hdGlvblByb3h5KCkKIHsKICAgICBhdXRvJiBjb25uZWN0aW9uID0gIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7Ci0gICAg
Y29ubmVjdGlvbi5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OlJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBtX2Rlc3RpbmF0aW9uSUQudG9VSW50NjQoKSk7CisgICAgY29ubmVjdGlvbi5jb25uZWN0aW9u
KCkucmVtb3ZlVGhyZWFkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9kZXN0aW5hdGlvbklELnRvVUlu
dDY0KCkpOwogCiAgICAgY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5
KAogICAgICAgICBNZXNzYWdlczo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI6OkRlbGV0
ZUF1ZGlvRGVzdGluYXRpb24obV9kZXN0aW5hdGlvbklEKSwgW10gewogICAgICAgICAvLyBDYW4n
dCByZW1vdmUgdGhpcyBmcm9tIHByb3h5TWFwKCkgaGVyZSBiZWNhdXNlIHRoZSBvYmplY3Qgd291
bGQgaGF2ZSBiZWVuIGFscmVhZHkgZGVsZXRlZC4KICAgICB9KTsKKworICAgIG1fdGhyZWFkVGFz
a1F1ZXVlLmtpbGwoKTsKKyAgICBtX3JlbmRlclRocmVhZC0+d2FpdEZvckNvbXBsZXRpb24oKTsK
IH0KIAogdm9pZCBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHk6OnN0YXJ0KEZ1bmN0aW9uPHZv
aWQoRnVuY3Rpb248dm9pZCgpPiYmKT4mJiBkaXNwYXRjaFRvUmVuZGVyVGhyZWFkKQpAQCAtOTUs
MzAgKzEwNywzMCBAQCB2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RvcCgpCiAK
IHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpyZW5kZXJCdWZmZXIoY29uc3QgV2Vi
S2l0OjpSZW1vdGVBdWRpb0J1c0RhdGEmIGF1ZGlvQnVzRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMg
cmVuZGVyaW5nIG9uIHRoZSBtYWluIHRocmVhZCB3aGVuIEF1ZGlvV29ya2xldCBpcyBub3QgYWN0
aXZlLCB3aGljaCBpcyBsaWtlbHkgbm90IGEgZ29vZCBpZGVhLgotICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKGF1ZGlv
QnVzRGF0YS5mcmFtZXNUb1Byb2Nlc3MpOwogICAgIEFTU0VSVChhdWRpb0J1c0RhdGEuY2hhbm5l
bEJ1ZmZlcnMuc2l6ZSgpKTsKICAgICBhdXRvIGF1ZGlvQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShh
dWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnMuc2l6ZSgpLCBhdWRpb0J1c0RhdGEuZnJhbWVzVG9Q
cm9jZXNzLCBmYWxzZSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGF1ZGlvQnVzRGF0
YS5jaGFubmVsQnVmZmVycy5zaXplKCk7ICsraSkKICAgICAgICAgYXVkaW9CdXMtPnNldENoYW5u
ZWxNZW1vcnkoaSwgKGZsb2F0KilhdWRpb0J1c0RhdGEuY2hhbm5lbEJ1ZmZlcnNbaV0tPmRhdGEo
KSwgYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2Vzcyk7CiAKLSAgICBhdXRvIGRvUmVuZGVyID0g
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgYXVkaW9CdXMgPSBXVEZNb3Zl
KGF1ZGlvQnVzKSwgZnJhbWVzVG9Qcm9jZXNzID0gYXVkaW9CdXNEYXRhLmZyYW1lc1RvUHJvY2Vz
cywgb3V0cHV0UG9zaXRpb24gPSBhdWRpb0J1c0RhdGEub3V0cHV0UG9zaXRpb25dIHsKLSAgICAg
ICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgYXVkaW9CdXMuZ2V0KCksIGZyYW1lc1RvUHJvY2Vzcywg
b3V0cHV0UG9zaXRpb24pOwotICAgIH07Ci0gICAgaWYgKG1fZGlzcGF0Y2hUb1JlbmRlclRocmVh
ZCkgewotICAgICAgICBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQoW2RvUmVuZGVyID0gV1RGTW92
ZShkb1JlbmRlciksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBkb1JlbmRlcigpOwotICAgICAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIH0pOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIGRvUmVuZGVyKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7Ci0gICAgfQorICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGF1ZGlvQnVzLmdldCgpLCBh
dWRpb0J1c0RhdGEuZnJhbWVzVG9Qcm9jZXNzLCBhdWRpb0J1c0RhdGEub3V0cHV0UG9zaXRpb24p
OworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5h
dGlvblByb3h5OjpkaWRDaGFuZ2VJc1BsYXlpbmcoYm9vbCBpc1BsYXlpbmcpCiB7CisgICAgQVNT
RVJUKCFpc01haW5UaHJlYWQoKSk7Cit9CisKKy8vIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVz
c2FnZVJlY2VpdmVyCit2b2lkIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6ZGlzcGF0Y2hU
b1RocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKK3sKKyAgICBpZiAobV9kaXNwYXRjaFRv
UmVuZGVyVGhyZWFkKSB7CisgICAgICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZChXVEZNb3Zl
KHRhc2spKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3RocmVhZFRhc2tRdWV1ZS5h
cHBlbmQoV1RGTW92ZSh0YXNrKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3Rp
bmF0aW9uUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5LmgKaW5kZXggOTA3ZWNmNWE3N2Y0MmI5NDc4OTBiZGYzYTE3
ZTE4ZWNmYjVhYTVmOS4uYzRhZGI3NTYwZDQ2Mzc1OGVlNzE1NmYwMWVlYzk5NThkM2NmZGU2NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5oCkBAIC0zMyw2ICszMyw4IEBACiAjaW5j
bHVkZSAiV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvRGVz
dGluYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvSU9DYWxsYmFjay5oPgorI2luY2x1
ZGUgPHd0Zi9Dcm9zc1RocmVhZFF1ZXVlLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4K
QEAgLTQwLDEyICs0MiwxMyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgUmVtb3Rl
QXVkaW9EZXN0aW5hdGlvblByb3h5IDogcHVibGljIFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb24s
IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworY2xhc3MgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5IDogcHVibGljIFdlYkNvcmU6
OkF1ZGlvRGVzdGluYXRpb24sIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OlRocmVhZE1lc3NhZ2VS
ZWNlaXZlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVtb3RlQXVkaW9EZXN0aW5hdGlv
blByb3h5KTsKIHB1YmxpYzoKICAgICB1c2luZyBBdWRpb0J1cyA9IFdlYkNvcmU6OkF1ZGlvQnVz
OwogICAgIHVzaW5nIEF1ZGlvSU9DYWxsYmFjayA9IFdlYkNvcmU6OkF1ZGlvSU9DYWxsYmFjazsK
KyAgICB1c2luZyBXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOjpyZWY7CisgICAgdXNpbmcgV2Vi
Q29yZTo6QXVkaW9EZXN0aW5hdGlvbjo6ZGVyZWY7CiAKICAgICBzdGF0aWMgUmVmPEF1ZGlvRGVz
dGluYXRpb24+IGNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smLCBjb25zdCBTdHJpbmcmIGlucHV0RGV2
aWNlSWQsIHVuc2lnbmVkIG51bWJlck9mSW5wdXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZP
dXRwdXRDaGFubmVscywgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKQEAgLTY4LDEyICs3MSwxOSBAQCBw
cml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKIAorICAgIC8v
IElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaXNwYXRj
aFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9pZCByZWZNZXNzYWdl
UmVjZWl2ZXIoKSBmaW5hbCB7IFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb246OnJlZigpOyB9Cisg
ICAgdm9pZCBkZXJlZk1lc3NhZ2VSZWNlaXZlcigpIGZpbmFsIHsgV2ViQ29yZTo6QXVkaW9EZXN0
aW5hdGlvbjo6ZGVyZWYoKTsgfQorCiAgICAgQXVkaW9JT0NhbGxiYWNrJiBtX2NhbGxiYWNrOwog
ICAgIGZsb2F0IG1fc2FtcGxlUmF0ZSB7IDAuIH07CiAgICAgdW5zaWduZWQgbV9mcmFtZXNQZXJC
dWZmZXIgeyAwIH07CiAgICAgUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXIgbV9kZXN0
aW5hdGlvbklEOwogICAgIGJvb2wgbV9pc1BsYXlpbmcgeyBmYWxzZSB9OwogICAgIEZ1bmN0aW9u
PHZvaWQoRnVuY3Rpb248dm9pZCgpPiYmKT4gbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkOworICAg
IFJlZlB0cjxUaHJlYWQ+IG1fcmVuZGVyVGhyZWFkOworICAgIENyb3NzVGhyZWFkUXVldWU8RnVu
Y3Rpb248dm9pZCgpPj4gbV90aHJlYWRUYXNrUXVldWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENOZXR3b3JrLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93
ZWJydGMvTGliV2ViUlRDTmV0d29yay5oCmluZGV4IDgzZjJhMWIxMTE3YWQzYjNkNjA2NTJlYzRi
NjEzZTUwM2MyMTZhNjkuLmU0Y2NjZjBkYzU3ZWM4NGVhNmVjNGRhOTgzNGNjY2M0YTVhNTE5NzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENOZXR3b3JrLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ05ldHdvcmsuaApAQCAtMzUsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotY2xhc3MgTGliV2ViUlRDTmV0d29yayA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246
OlRocmVhZE1lc3NhZ2VSZWNlaXZlciB7CitjbGFzcyBMaWJXZWJSVENOZXR3b3JrIDogcHVibGlj
IElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgTGliV2ViUlRDTmV0d29yaygp
ID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKaW5kZXggZjYxOTdjZjllZTU3MDUyYjI4
ODE3MmVhZWI3Y2I1NTY2YzYxODI5NS4uNmZiNGJjMzdiOTM4MDE2ZmNlNWM1YzVhYzVhNDM3MDI3
ZjE4NmJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKQEAgLTM5LDcgKzM5LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyIDogcHVi
bGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFJlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVz
c2FnZVJlY2VpdmVyUmVmQ291bnRlZCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CiAgICAgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2NDQ3MzU3
YjljYjUzMThkZDdjOTdhOTU4N2E0MmMyOWZkM2U0ZjRiLi42OGFhZDc1ZTc4ZWRkNWMxMzE0Nzdm
YTRlNzNhMWY3YTljZTI1OTA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTAtMTMgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBdWRpbyB0ZXN0cyBh
cmUgY3Jhc2hpbmcgaW4gZGVidWcgd2hlbiBlbmFibGluZyB0aGUgR1BVIHByb2Nlc3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzY2MworCisgICAg
ICAgIFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVuLgorCisgICAgICAgIFVuc2tpcCB3ZWJhdWRpbyB0
ZXN0cyB3aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBlbmFibGVkLgorCisgICAgICAgICogZ3B1LXBy
b2Nlc3MvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMC0xMC0xMyAgRnVqaWkgSGlyb25vcmkgIDxI
aXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dW01lZGlhRm91bmRh
dGlvbl0gTWFueSB0ZXN0IGNhc2VzIGFyZSB0aW1pbmcgb3V0IGJ5IHdhaXRpbmcgZm9yIGV2ZW50
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMmFhMzFmZjU1
OTU3NTNiNmQ3ZTMwMzQyYzc0MjkyZTY5NjRlMDFiYi4uZmNkM2Q3OGY1OTI1NmU0NTU0NDdjZjNm
N2E1MWEwMzA2ZDY5YzUxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRp
b25zCkBAIC0zMDYsMTAgKzMwNiw4IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
bXN0LWNvbnRlbnQtaGludC9NZWRpYVN0cmVhbVRyYWNrLWNvbnRlbnRIaW50Lmh0CiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BpY3R1cmUtaW4tcGljdHVyZS9tZWRpYXN0cmVhbS5o
dG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1hdWRpby10YWludGluZy5odHRwcy5odG1sIFsgU2tp
cCBdCiAKLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8gWyBTa2lwIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjIFsgU2tpcCBdCiAKLXdlYmF1
ZGlvIFsgU2tpcCBdCiB3ZWJydGMgWyBTa2lwIF0KIAogd2ViZ2wgWyBTa2lwIF0KQEAgLTM4Nyw0
ICszODUsNCBAQCBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRl
LWZhaWx1cmUtbG9jYWwuaHR0cHMuaHRtbCBbIENyYXNoCiBodHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbCBbIENyYXNo
IF0KIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1s
b2NhbC1zaWxlbnQuaHR0cHMuaHRtbCBbIENyYXNoIF0KIGh0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1nZXQtZmFpbHVyZS1sb2NhbC5odHRwcy5odG1sIFsgQ3Jhc2ggXQot
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLWxvY2Fs
Lmh0dHBzLmh0bWwgWyBDcmFzaCBdClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoraHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWdldC1zdWNjZXNzLWxvY2FsLmh0dHBz
Lmh0bWwgWyBDcmFzaCBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>