<?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>172131</bug_id>
          
          <creation_ts>2017-05-15 13:19:05 -0700</creation_ts>
          <short_desc>Add experimental setting to allow document gesture interaction to fulfill media playback gesture requirement</short_desc>
          <delta_ts>2017-05-17 11:29:56 -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>New Bugs</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="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1308770</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-15 13:19:05 -0700</bug_when>
    <thetext>Add experimental setting to allow document gesture interaction to fulfill media playback gesture requirement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308775</commentid>
    <comment_count>1</comment_count>
      <attachid>310159</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-15 13:36:29 -0700</bug_when>
    <thetext>Created attachment 310159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308779</commentid>
    <comment_count>2</comment_count>
      <attachid>310160</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-15 13:49:14 -0700</bug_when>
    <thetext>Created attachment 310160
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308782</commentid>
    <comment_count>3</comment_count>
      <attachid>310159</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-05-15 13:56:46 -0700</bug_when>
    <thetext>Comment on attachment 310159
Patch

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

&gt; LayoutTests/media/restricted-audio-playback-with-document-gesture.html:11
&gt; +        video = document.getElementsByTagName(&apos;audio&apos;)[0];

Nit: &quot;video&quot; for an audio element is a bit odd. waitForEvent also works with the global variable &quot;mediaElement&quot; if you don&apos;t want to create a video element.

&gt; LayoutTests/media/restricted-audio-playback-with-document-gesture.html:28
&gt; +        run(&quot;svideo.play()&quot;);

&quot;svideo&quot;?

&gt; LayoutTests/media/restricted-audio-playback-with-document-gesture.html:36
&gt; +    &lt;p&gt;Test that, when RequireUserGestureForAudioRateChange is set alnog with MediaUserGestureInheritsForDocument, a user gesture in the document will allow future media playback requests to succeed.&lt;/p&gt;

&quot;alnog&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308788</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-15 14:12:51 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #3)
&gt; Comment on attachment 310159 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=310159&amp;action=review
&gt; 
&gt; &gt; LayoutTests/media/restricted-audio-playback-with-document-gesture.html:11
&gt; &gt; +        video = document.getElementsByTagName(&apos;audio&apos;)[0];
&gt; 
&gt; Nit: &quot;video&quot; for an audio element is a bit odd. waitForEvent also works with
&gt; the global variable &quot;mediaElement&quot; if you don&apos;t want to create a video
&gt; element.

Some of the methods in video-test.js look for a global &apos;video&apos; variable to perform operations on.  (I had thought all of them did, but only the &quot;track&quot; related ones seem to.)

&gt; &gt; LayoutTests/media/restricted-audio-playback-with-document-gesture.html:28
&gt; &gt; +        run(&quot;svideo.play()&quot;);
&gt; 
&gt; &quot;svideo&quot;?

Fixed in an updated version.

&gt; &gt; LayoutTests/media/restricted-audio-playback-with-document-gesture.html:36
&gt; &gt; +    &lt;p&gt;Test that, when RequireUserGestureForAudioRateChange is set alnog with MediaUserGestureInheritsForDocument, a user gesture in the document will allow future media playback requests to succeed.&lt;/p&gt;
&gt; 
&gt; &quot;alnog&quot;?

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308793</commentid>
    <comment_count>5</comment_count>
      <attachid>310163</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-15 14:22:00 -0700</bug_when>
    <thetext>Created attachment 310163
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308799</commentid>
    <comment_count>6</comment_count>
      <attachid>310163</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-15 14:23:18 -0700</bug_when>
    <thetext>Comment on attachment 310163
Patch for landing

Rejecting attachment 310163 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 310163, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/3746050</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308814</commentid>
    <comment_count>7</comment_count>
      <attachid>310170</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-15 14:50:23 -0700</bug_when>
    <thetext>Created attachment 310170
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308817</commentid>
    <comment_count>8</comment_count>
      <attachid>310170</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-15 14:51:33 -0700</bug_when>
    <thetext>Comment on attachment 310170
Patch for landing

Rejecting attachment 310170 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 310170, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
erencesRefPrivate.h
patching file Source/WebKit2/WebProcess/WebPage/WebPage.cpp
Hunk #1 succeeded at 3120 (offset -1 lines).
patching file LayoutTests/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/media/restricted-audio-playback-with-document-gesture-expected.txt
patching file LayoutTests/media/restricted-audio-playback-with-document-gesture.html

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.webkit.org/results/3746254</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308825</commentid>
    <comment_count>9</comment_count>
      <attachid>310173</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-15 15:05:54 -0700</bug_when>
    <thetext>Created attachment 310173
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308839</commentid>
    <comment_count>10</comment_count>
      <attachid>310173</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-15 15:46:17 -0700</bug_when>
    <thetext>Comment on attachment 310173
Patch for landing

Clearing flags on attachment: 310173

Committed r216886: &lt;http://trac.webkit.org/changeset/216886&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308840</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-15 15:46:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309698</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-05-17 11:29:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/32252791&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310159</attachid>
            <date>2017-05-15 13:36:29 -0700</date>
            <delta_ts>2017-05-15 13:49:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172131-20170515133728.patch</filename>
            <type>text/plain</type>
            <size>31984</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2NzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjljZWQzYTJjNWE0NmEw
MTJmMzMxYzNlNDU1M2RlNmI5MWM0YTViYS4uOTQ4MmFjNmM5OWNiZGQzMmNiNTA3ODc1NDc4YTgw
ZWZiNTliNGVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE3LTA1LTE1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBleHBlcmltZW50YWwg
c2V0dGluZyB0byBhbGxvdyBkb2N1bWVudCBnZXN0dXJlIGludGVyYWN0aW9uIHRvIGZ1bGZpbGwg
bWVkaWEgcGxheWJhY2sgZ2VzdHVyZSByZXF1aXJlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogbWVkaWEvcmVzdHJpY3RlZC1hdWRpby1w
bGF5YmFjay13aXRoLWRvY3VtZW50LWdlc3R1cmUuaHRtbAorCisgICAgICAgIE1vdmUgYWxsIGNh
bGxzIHRvIFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkg
dG8gdGhlIG5ldyBEb2N1bWVudCBlcXVpdmFsZW50LiBJbiBEb2N1bWVudCwKKyAgICAgICAgaWYg
dGhlIG5ldyBzZXR0aW5nIGlzIGVuYWJsZWQsIHJldHVybiB0cnVlIGZyb20gcHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlRm9yTWVkaWEoKSBpZiB0aGUgdG9wLWxldmVsIGRvY3VtZW50IGhhcyBoYWQKKyAg
ICAgICAgYSB1c2VyIGdlc3R1cmUgaW50ZXJhY3Rpb24uCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSk6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6cHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlRm9yTWVkaWEpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0Ojp3aWxs
QmVnaW5QbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OndpbGxQYXVz
ZVBsYXliYWNrKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50Ojpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpzZWVrV2l0aFRvbGVyYW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnBsYXlJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVzZUludGVybmFsKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldE11dGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OndlYmtpdFNob3dQbGF5YmFja1RhcmdldFBpY2tl
cik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpwcm9jZXNzaW5nVXNlckdl
c3R1cmVGb3JNZWRpYSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhRWxlbWVudFNlc3Npb246OnBsYXliYWNrUGVybWl0dGVkKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhRWxlbWVudFNlc3Npb246OmRhdGFMb2FkaW5nUGVybWl0dGVkKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhRWxlbWVudFNlc3Npb246OmZ1bGxzY3JlZW5QZXJtaXR0ZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRyb2xzTWFuYWdlcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpzaG93UGxheWJhY2tUYXJn
ZXRQaWNrZXIpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaDoKKwogMjAxNy0wNS0xMiAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBPbmx5IGV2ZXIgaW5pdGlhbGl6ZSBM
aWJXZWJSVENQcm92aWRlcidzIHN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKCkgZmFjdG9yaWVzIG9u
Y2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNWI5MWFmMTdiOGQzYmVmNTIxMWZjMjJiOTZhNWFkNDlh
Y2Q5NzZkMC4uZWFiODM3MDNjZjdiYTMzMGM3MGUwMTdmODZkNzY3NjQwNDAzYjc4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA1LTE1ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBleHBlcmltZW50YWwgc2V0dGluZyB0byBh
bGxvdyBkb2N1bWVudCBnZXN0dXJlIGludGVyYWN0aW9uIHRvIGZ1bGZpbGwgbWVkaWEgcGxheWJh
Y2sgZ2VzdHVyZSByZXF1aXJlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcyMTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgrW1dlYlByZWZlcmVu
Y2VzIGluaXRpYWxpemVdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgbWVkaWFVc2VyR2Vz
dHVyZUluaGVyaXRzRnJvbURvY3VtZW50XSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNl
dE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudDpdKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorCiAyMDE3LTA1LTExICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIE1haWwgc3BpbnMgbGF1bmNoaW5n
IHNwZWxsIGNoZWNrZXIgd2hlbiB0eXBpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5ZWVlNzJmMjNlYzQ2Yzg3
N2ZiYjVhYTYzYWI3ZDRiNWJjYTBkMjdhLi5hZDliOWIwZTMwOTgzYzhhY2I3NDQ0M2NhZjg1ZWY4
MjYwNzhmMjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTctMDUtMTUgIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGV4cGVyaW1lbnRhbCBz
ZXR0aW5nIHRvIGFsbG93IGRvY3VtZW50IGdlc3R1cmUgaW50ZXJhY3Rpb24gdG8gZnVsZmlsbCBt
ZWRpYSBwbGF5YmFjayBnZXN0dXJlIHJlcXVpcmVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMzEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRp
b25zLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAg
ICAgICAoV0tQcmVmZXJlbmNlc1NldE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVu
dCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJv
bURvY3VtZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlBy
aXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKwogMjAxNy0wNS0xMSAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dLV2Vic2l0ZURh
dGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczouLi5dIGRvZXNuJ3Qgd29yayBmb3IgSW5kZXhlZERC
IGlmIHRoZSBkYXRhIHN0b3JlIGhhcyBhIGN1c3RvbSBJREIgcGF0aC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKaW5kZXggMjZmNTRl
MDgwYWZjYjk5OTA0ZjhkMjJkNmRjOTk4Nzg3Y2Q1MmY0NC4uODBiZTVmZmQwNzZjNzk0MmI5MmEz
ZDZhN2ZlZGQ3Y2I4MTQ3ZTk4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKQEAgLTUwNiw2ICs1MDYsMTEgQEAgYm9vbCBNZWRp
YVN0cmVhbTo6Y2FuUHJvZHVjZUF1ZGlvKCkgY29uc3QKICAgICByZXR1cm4gIW11dGVkKCkgJiYg
YWN0aXZlKCkgJiYgbV9wcml2YXRlLT5oYXNBdWRpbygpICYmIG1faXNQcm9kdWNpbmdEYXRhOwog
fQogCitib29sIE1lZGlhU3RyZWFtOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgpLT5wcm9jZXNzaW5nVXNl
ckdlc3R1cmVGb3JNZWRpYSgpIDogZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKaW5kZXggZDIyYTkxNWEzYzkwMDg3MWVi
YzM1ZTkzOGNlOTk5M2QyODg5ZjY2My4uZWE2NDI3N2Q4OTYxMDBiZmJiYjc2ZWMwYjQzNTk4ZTcw
YjUwZDYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW0uaApAQCAtMTUzLDYgKzE1Myw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIHNvdXJj
ZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgY2FuUHJvZHVj
ZUF1ZGlvKCkgY29uc3QgZmluYWw7CiAgICAgY29uc3QgRG9jdW1lbnQqIGhvc3RpbmdEb2N1bWVu
dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGRvY3VtZW50KCk7IH0KKyAgICBib29sIHByb2Nlc3Np
bmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgY29uc3QgZmluYWw7CiAKICAgICBib29sIGludGVybmFs
QWRkVHJhY2soUmVmPE1lZGlhU3RyZWFtVHJhY2s+JiYsIFN0cmVhbU1vZGlmaWVyKTsKICAgICBi
b29sIGludGVybmFsUmVtb3ZlVHJhY2soY29uc3QgU3RyaW5nJiwgU3RyZWFtTW9kaWZpZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmlu
ZGV4IDIzNTI5OWNiZTUzZGU3MDQyNjY3YmU5Y2JlOGViYmUxMzRmZGM0NTkuLjg4NGQ2MmM0OTVl
NGI2Y2I2MzM5YTJhMDA4NmFlOTU5NmZlYWRhODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTM2OCw2ICszNjgsMTEgQEAgU3Ry
aW5nIEF1ZGlvQ29udGV4dDo6c291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3QKICAg
ICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAorYm9vbCBBdWRpb0NvbnRleHQ6OnByb2Nlc3Np
bmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKSA/
IGRvY3VtZW50KCktPnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgOiBmYWxzZTsKK30K
Kwogdm9pZCBBdWRpb0NvbnRleHQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKQogewogICAgIC8v
IERvIG5vdCBzdXNwZW5kIGlmIGF1ZGlvIGlzIGF1ZGlibGUuCkBAIC05MzMsNyArOTM4LDcgQEAg
dm9pZCBBdWRpb0NvbnRleHQ6Om5vZGVXaWxsQmVnaW5QbGF5YmFjaygpCiBib29sIEF1ZGlvQ29u
dGV4dDo6d2lsbEJlZ2luUGxheWJhY2soKQogewogICAgIGlmICh1c2VyR2VzdHVyZVJlcXVpcmVk
Rm9yQXVkaW9TdGFydCgpKSB7Ci0gICAgICAgIGlmICghU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vz
c2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKKyAgICAgICAgaWYgKCFwcm9jZXNzaW5nVXNlckdl
c3R1cmVGb3JNZWRpYSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZW1v
dmVCZWhhdmlvclJlc3RyaWN0aW9uKEF1ZGlvQ29udGV4dDo6UmVxdWlyZVVzZXJHZXN0dXJlRm9y
QXVkaW9TdGFydFJlc3RyaWN0aW9uKTsKICAgICB9CkBAIC05NTMsNyArOTU4LDcgQEAgYm9vbCBB
dWRpb0NvbnRleHQ6OndpbGxCZWdpblBsYXliYWNrKCkKIGJvb2wgQXVkaW9Db250ZXh0Ojp3aWxs
UGF1c2VQbGF5YmFjaygpCiB7CiAgICAgaWYgKHVzZXJHZXN0dXJlUmVxdWlyZWRGb3JBdWRpb1N0
YXJ0KCkpIHsKLSAgICAgICAgaWYgKCFTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdl
c3R1cmVGb3JNZWRpYSgpKQorICAgICAgICBpZiAoIXByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1l
ZGlhKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlbW92ZUJlaGF2aW9y
UmVzdHJpY3Rpb24oQXVkaW9Db250ZXh0OjpSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1N0YXJ0
UmVzdHJpY3Rpb24pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5oCmluZGV4IDQ5YmIxMzdjYzhhYjIxZGQ0Zjk4YmUxNWNjYWRmZjgxODA4
MzI1M2UuLjc3ZmE4NzdlMzhkZGI1MzE2MjkwNDBhYzc5MDdiYmM5Mjk5ZTNjZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaApAQCAtMzE5LDYg
KzMxOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRPdmVycmlkZUJhY2tncm91bmRQbGF5
YmFja1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIFN0cmluZyBzb3VyY2VBcHBsaWNh
dGlvbklkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGNhblByb2R1Y2VBdWRp
bygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIHByb2Nlc3NpbmdVc2Vy
R2VzdHVyZUZvck1lZGlhKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHZpc2liaWxpdHlTdGF0
ZUNoYW5nZWQoKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggY2EyNWZjYWJj
ZDhjNmYyYzRmZDNjNjA4NDU1ZjNkMmE0NmE1NTQ0Mi4uNzU0YmVjOTVjYzcyZmIwZmMxZWViOWQx
MmU2ZWFjN2NmMzM4ODUwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02MzU5LDYgKzYz
NTksMTcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTGFzdEhhbmRsZWRVc2VyR2VzdHVyZVRpbWVz
dGFtcChNb25vdG9uaWNUaW1lIHRpbWUpCiAgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCkudXBk
YXRlTGFzdEhhbmRsZWRVc2VyR2VzdHVyZVRpbWVzdGFtcCh0aW1lKTsKIH0KIAorYm9vbCBEb2N1
bWVudDo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSBjb25zdAoreworICAgIGlmIChT
Y3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgIGlmICghc2V0dGluZ3MoKS5tZWRpYVVzZXJHZXN0dXJlSW5o
ZXJpdHNGcm9tRG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJu
IHRvcERvY3VtZW50KCkuaGFzSGFkVXNlckludGVyYWN0aW9uKCk7Cit9CisKIHZvaWQgRG9jdW1l
bnQ6OnN0YXJ0VHJhY2tpbmdTdHlsZVJlY2FsY3MoKQogewogICAgIG1fc3R5bGVSZWNhbGNDb3Vu
dCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGFiOGE0ZGFhMzA2Zjc4YWVkMjA4MjVkMGY3
NGI2NzEyNDA0NGU4MDkuLmIwNjQyOWRlNDJiZmI3MzhkZjE2MzVlMGI3ZGI5MTJkM2QxNjk0Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMTQ4LDYgKzExNDgsNyBAQCBwdWJsaWM6CiAgICAg
TW9ub3RvbmljVGltZSBsYXN0SGFuZGxlZFVzZXJHZXN0dXJlVGltZXN0YW1wKCkgY29uc3QgeyBy
ZXR1cm4gbV9sYXN0SGFuZGxlZFVzZXJHZXN0dXJlVGltZXN0YW1wOyB9CiAgICAgYm9vbCBoYXNI
YWRVc2VySW50ZXJhY3Rpb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxib29sPihtX2xh
c3RIYW5kbGVkVXNlckdlc3R1cmVUaW1lc3RhbXApOyB9CiAgICAgdm9pZCB1cGRhdGVMYXN0SGFu
ZGxlZFVzZXJHZXN0dXJlVGltZXN0YW1wKE1vbm90b25pY1RpbWUpOworICAgIGJvb2wgcHJvY2Vz
c2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0VXNlckRpZElu
dGVyYWN0V2l0aFBhZ2UoYm9vbCB1c2VyRGlkSW50ZXJhY3RXaXRoUGFnZSkgeyBBU1NFUlQoJnRv
cERvY3VtZW50KCkgPT0gdGhpcyk7IG1fdXNlckRpZEludGVyYWN0V2l0aFBhZ2UgPSB1c2VyRGlk
SW50ZXJhY3RXaXRoUGFnZTsgfQogICAgIGJvb2wgdXNlckRpZEludGVyYWN0V2l0aFBhZ2UoKSBj
b25zdCB7IEFTU0VSVCgmdG9wRG9jdW1lbnQoKSA9PSB0aGlzKTsgcmV0dXJuIG1fdXNlckRpZElu
dGVyYWN0V2l0aFBhZ2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CmluZGV4IGM2NzYwMjQzY2Y5MGRkZjhlMTQzZTM5ZDRmZDgxNjllOGVkMjAzMjQuLjZmOTU1ODQ3
NTUwMjViNGRiNTUxNThiN2RjZmE5Njk3MDkyYjM4ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTE2MSw3ICsxMTYxLDcgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojpsb2FkKCkKICAgICAKICAgICBpZiAoIW1fbWVkaWFTZXNzaW9uLT5kYXRhTG9hZGlu
Z1Blcm1pdHRlZCgqdGhpcykpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoU2NyaXB0Q29udHJv
bGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKKyAgICBpZiAocHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgcmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rp
b25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKCk7CiAKICAgICBwcmVwYXJlRm9yTG9hZCgpOwpAQCAt
MTg3Nyw3ICsxODc3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjphdWRpb1RyYWNrRW5hYmxl
ZENoYW5nZWQoQXVkaW9UcmFjayYgdHJhY2spCiB7CiAgICAgaWYgKG1fYXVkaW9UcmFja3MgJiYg
bV9hdWRpb1RyYWNrcy0+Y29udGFpbnModHJhY2spKQogICAgICAgICBtX2F1ZGlvVHJhY2tzLT5z
Y2hlZHVsZUNoYW5nZUV2ZW50KCk7Ci0gICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3Np
bmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCisgICAgaWYgKHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZv
ck1lZGlhKCkpCiAgICAgICAgIHJlbW92ZUJlaGF2aW9yc1Jlc3RyaWN0aW9uc0FmdGVyRmlyc3RV
c2VyR2VzdHVyZShNZWRpYUVsZW1lbnRTZXNzaW9uOjpBbGxSZXN0cmljdGlvbnMgJiB+TWVkaWFF
bGVtZW50U2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2Vy
KTsKIH0KIApAQCAtMjY4OCw3ICsyNjg4LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWVr
V2l0aFRvbGVyYW5jZShjb25zdCBNZWRpYVRpbWUmIGluVGltZSwgY29uc3QgTWVkaWFUaW0KICAg
ICB9IGVsc2UKICAgICAgICAgc2Vla1Rhc2soKTsKIAotICAgIGlmIChTY3JpcHRDb250cm9sbGVy
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQorICAgIGlmIChwcm9jZXNzaW5nVXNl
ckdlc3R1cmVGb3JNZWRpYSgpKQogICAgICAgICBtX21lZGlhU2Vzc2lvbi0+cmVtb3ZlQmVoYXZp
b3JSZXN0cmljdGlvbihNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0Nv
bnRyb2xDb250cm9sc01hbmFnZXIpOwogfQogCkBAIC0zMTUzLDcgKzMxNTMsNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnBsYXkoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChTY3JpcHRDb250cm9sbGVyOjpwcm9j
ZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQorICAgIGlmIChwcm9jZXNzaW5nVXNlckdlc3R1
cmVGb3JNZWRpYSgpKQogICAgICAgICByZW1vdmVCZWhhdmlvcnNSZXN0cmljdGlvbnNBZnRlckZp
cnN0VXNlckdlc3R1cmUoKTsKIAogICAgIGlmICghcGxheUludGVybmFsKCkpIHsKQEAgLTMxNzQs
NyArMzE3NCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGxheSgpCiAgICAgICAgICAgICBz
ZXRQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZShQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZTo6
UHJldmVudGVkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAoU2NyaXB0Q29udHJv
bGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKKyAgICBpZiAocHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgcmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rp
b25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKCk7CiAKICAgICBwbGF5SW50ZXJuYWwoKTsKQEAgLTMy
MzgsNyArMzIzOCw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6cGxheUludGVybmFsKCkKICAg
ICB9IGVsc2UgaWYgKG1fcmVhZHlTdGF0ZSA+PSBIQVZFX0ZVVFVSRV9EQVRBKQogICAgICAgICBz
Y2hlZHVsZVJlc29sdmVQZW5kaW5nUGxheVByb21pc2VzKCk7CiAKLSAgICBpZiAoU2NyaXB0Q29u
dHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkgeworICAgIGlmIChwcm9j
ZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CiAgICAgICAgIGlmIChtX3BsYXliYWNrV2l0
aG91dFVzZXJHZXN0dXJlID09IFBsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlOjpQcmV2ZW50ZWQp
IHsKICAgICAgICAgICAgIGhhbmRsZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudDo6RGlkUGxh
eU1lZGlhUHJldmVudGVkRnJvbVBsYXlpbmcpOwogICAgICAgICAgICAgc2V0UGxheWJhY2tXaXRo
b3V0VXNlckdlc3R1cmUoUGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmU6Ok5vbmUpOwpAQCAtMzI1
OSw3ICszMjU5LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwYXVzZSgpCiAgICAgaWYgKCFt
X21lZGlhU2Vzc2lvbi0+cGxheWJhY2tQZXJtaXR0ZWQoKnRoaXMpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVk
aWEoKSkKKyAgICBpZiAocHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAg
cmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKE1lZGlhRWxl
bWVudFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlcik7
CiAKICAgICBwYXVzZUludGVybmFsKCk7CkBAIC0zMjg2LDcgKzMyODYsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnBhdXNlSW50ZXJuYWwoKQogCiAgICAgbV9hdXRvcGxheWluZyA9IGZhbHNl
OwogCi0gICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1l
ZGlhKCkpCisgICAgaWYgKHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCiAgICAgICAg
IHVzZXJEaWRJbnRlcmZlcmVXaXRoQXV0b3BsYXkoKTsKIAogICAgIHNldFBsYXliYWNrV2l0aG91
dFVzZXJHZXN0dXJlKFBsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlOjpOb25lKTsKQEAgLTMzODEs
NyArMzM4MSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkK
IAogICAgIGJvb2wgbXV0ZWRTdGF0ZUNoYW5nZWQgPSBtX211dGVkICE9IG11dGVkOwogICAgIGlm
IChtdXRlZFN0YXRlQ2hhbmdlZCB8fCAhbV9leHBsaWNpdGx5TXV0ZWQpIHsKLSAgICAgICAgaWYg
KFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsKKyAg
ICAgICAgaWYgKHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsKICAgICAgICAgICAg
IHJlbW92ZUJlaGF2aW9yc1Jlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZShNZWRpYUVs
ZW1lbnRTZXNzaW9uOjpBbGxSZXN0cmljdGlvbnMgJiB+TWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVx
dWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKTsKIAogICAgICAgICAgICAg
aWYgKGhhc0F1ZGlvKCkgJiYgbXV0ZWQpCkBAIC01MzkzLDcgKzUzOTMsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnN5bmNUZXh0VHJhY2tCb3VuZHMoKQogdm9pZCBIVE1MTWVkaWFFbGVtZW50
Ojp3ZWJraXRTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKQogewogICAgIExPRyhNZWRpYSwgIkhU
TUxNZWRpYUVsZW1lbnQ6OndlYmtpdFNob3dQbGF5YmFja1RhcmdldFBpY2tlciglcCkiLCB0aGlz
KTsKLSAgICBpZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVk
aWEoKSkKKyAgICBpZiAocHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAg
cmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKCk7CiAgICAg
bV9tZWRpYVNlc3Npb24tPnNob3dQbGF5YmFja1RhcmdldFBpY2tlcigqdGhpcyk7CiB9CkBAIC03
MTI3LDYgKzcxMjcsMTEgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpzaG91bGRPdmVycmlkZUJh
Y2tncm91bmRQbGF5YmFja1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWEKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK2Jvb2wgSFRNTE1lZGlhRWxlbWVudDo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9y
TWVkaWEoKSBjb25zdAoreworICAgIHJldHVybiBkb2N1bWVudCgpLnByb2Nlc3NpbmdVc2VyR2Vz
dHVyZUZvck1lZGlhKCk7Cit9CisKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
KQogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVNZWRpYVN0YXRlKFVwZGF0ZVN0YXRlIHVw
ZGF0ZVN0YXRlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAx
OWMzM2MxN2IxNjcwY2U2MDI5MmEwN2M5ZDkxYjk2ZTZmOTIxNDM1Li4zODgxZDgxMGQ4MTM2MGMx
ZTA4ZTliODkwOWQ2NzU1MTgyMTI4YTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaApAQCAtODE0LDYgKzgxNCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRPdmVy
cmlkZUJhY2tncm91bmRQbGF5YmFja1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJ
bnRlcnJ1cHRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHNob3VsZE92ZXJyaWRl
QmFja2dyb3VuZExvYWRpbmdSZXN0cmljdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wg
Y2FuUHJvZHVjZUF1ZGlvKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBwcm9jZXNzaW5nVXNlckdl
c3R1cmVGb3JNZWRpYSgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURp
ZENoYW5nZSgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01l
ZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRT
ZXNzaW9uLmNwcAppbmRleCBjYTdiZTc0NDliOGIwNTYzYjNmZjQzZjg2OWIxM2Y5MTNjMDY4YTMz
Li4wOWNlNzdhY2NiMWU1MThiODg1ZTQ1ZTQ5OGQwMDhlZWNhZGQxMjI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTE3MywxNyArMTczLDE3IEBA
IFN1Y2Nlc3NPcjxNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uPiBNZWRpYUVsZW1lbnRTZXNzaW9u
OjpwbGF5YmFja1Blcm1pdHRlZChjb25zCiAgICAgfQogI2VuZGlmCiAKLSAgICBpZiAobV9yZXN0
cmljdGlvbnMgJiBSZXF1aXJlVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2UgJiYgZWxlbWVu
dC5pc1ZpZGVvKCkgJiYgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZv
ck1lZGlhKCkpIHsKKyAgICBpZiAobV9yZXN0cmljdGlvbnMgJiBSZXF1aXJlVXNlckdlc3R1cmVG
b3JWaWRlb1JhdGVDaGFuZ2UgJiYgZWxlbWVudC5pc1ZpZGVvKCkgJiYgIWVsZW1lbnQuZG9jdW1l
bnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CiAgICAgICAgIExPRyhNZWRp
YSwgIk1lZGlhRWxlbWVudFNlc3Npb246OnBsYXliYWNrUGVybWl0dGVkIC0gcmV0dXJuaW5nIEZB
TFNFIGJlY2F1c2Ugb2YgdmlkZW8gcmF0ZSBjaGFuZ2UgcmVzdHJpY3Rpb24iKTsKICAgICAgICAg
cmV0dXJuIE1lZGlhUGxheWJhY2tEZW5pYWxSZWFzb246OlVzZXJHZXN0dXJlUmVxdWlyZWQ7CiAg
ICAgfQogCi0gICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVk
aW9SYXRlQ2hhbmdlICYmICghZWxlbWVudC5pc1ZpZGVvKCkgfHwgZWxlbWVudC5oYXNBdWRpbygp
KSAmJiAhZWxlbWVudC5tdXRlZCgpICYmIGVsZW1lbnQudm9sdW1lKCkgJiYgIVNjcmlwdENvbnRy
b2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsKKyAgICBpZiAobV9yZXN0
cmljdGlvbnMgJiBSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UgJiYgKCFlbGVt
ZW50LmlzVmlkZW8oKSB8fCBlbGVtZW50Lmhhc0F1ZGlvKCkpICYmICFlbGVtZW50Lm11dGVkKCkg
JiYgZWxlbWVudC52b2x1bWUoKSAmJiAhZWxlbWVudC5kb2N1bWVudCgpLnByb2Nlc3NpbmdVc2Vy
R2VzdHVyZUZvck1lZGlhKCkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vz
c2lvbjo6cGxheWJhY2tQZXJtaXR0ZWQgLSByZXR1cm5pbmcgRkFMU0UgYmVjYXVzZSBvZiBhdWRp
byByYXRlIGNoYW5nZSByZXN0cmljdGlvbiIpOwogICAgICAgICByZXR1cm4gTWVkaWFQbGF5YmFj
a0RlbmlhbFJlYXNvbjo6VXNlckdlc3R1cmVSZXF1aXJlZDsKICAgICB9CiAKLSAgICBpZiAobV9y
ZXN0cmljdGlvbnMgJiBSZXF1aXJlVXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2Rl
ICYmIGVsZW1lbnQuaXNWaWRlbygpICYmICFTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNl
ckdlc3R1cmVGb3JNZWRpYSgpKSB7CisgICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVz
ZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSAmJiBlbGVtZW50LmlzVmlkZW8oKSAm
JiAhZWxlbWVudC5kb2N1bWVudCgpLnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsK
ICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tQZXJtaXR0
ZWQgLSByZXR1cm5pbmcgRkFMU0UgYmVjYXVzZSBvZiB2aWRlbyBsb3cgcG93ZXIgbW9kZSByZXN0
cmljdGlvbiIpOwogICAgICAgICByZXR1cm4gTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbjo6VXNl
ckdlc3R1cmVSZXF1aXJlZDsKICAgICB9CkBAIC0yMTgsMTIgKzIxOCwxMiBAQCBib29sIE1lZGlh
RWxlbWVudFNlc3Npb246OmF1dG9wbGF5UGVybWl0dGVkKCkgY29uc3QKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpkYXRhTG9hZGluZ1Blcm1pdHRlZChj
b25zdCBIVE1MTWVkaWFFbGVtZW50JikgY29uc3QKK2Jvb2wgTWVkaWFFbGVtZW50U2Vzc2lvbjo6
ZGF0YUxvYWRpbmdQZXJtaXR0ZWQoY29uc3QgSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkgY29u
c3QKIHsKICAgICBpZiAobV9yZXN0cmljdGlvbnMgJiBPdmVycmlkZVVzZXJHZXN0dXJlUmVxdWly
ZW1lbnRGb3JNYWluQ29udGVudCAmJiB1cGRhdGVJc01haW5Db250ZW50KCkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCi0gICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJl
Rm9yTG9hZCAmJiAhU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVk
aWEoKSkgeworICAgIGlmIChtX3Jlc3RyaWN0aW9ucyAmIFJlcXVpcmVVc2VyR2VzdHVyZUZvckxv
YWQgJiYgIWVsZW1lbnQuZG9jdW1lbnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgp
KSB7CiAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OmRhdGFMb2FkaW5n
UGVybWl0dGVkIC0gcmV0dXJuaW5nIEZBTFNFIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CkBAIC0yMzEsOSArMjMxLDkgQEAgYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpkYXRhTG9h
ZGluZ1Blcm1pdHRlZChjb25zdCBIVE1MTWVkaWFFbGVtZW50JikgY29uc3QKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpmdWxsc2NyZWVuUGVybWl0dGVk
KGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmKSBjb25zdAorYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9u
OjpmdWxsc2NyZWVuUGVybWl0dGVkKGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpIGNv
bnN0CiB7Ci0gICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJlRm9yRnVs
bHNjcmVlbiAmJiAhU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVk
aWEoKSkgeworICAgIGlmIChtX3Jlc3RyaWN0aW9ucyAmIFJlcXVpcmVVc2VyR2VzdHVyZUZvckZ1
bGxzY3JlZW4gJiYgIWVsZW1lbnQuZG9jdW1lbnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JN
ZWRpYSgpKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OmZ1bGxz
Y3JlZW5QZXJtaXR0ZWQgLSByZXR1cm5pbmcgRkFMU0UiKTsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KQEAgLTI4MSw3ICsyODEsNyBAQCBib29sIE1lZGlhRWxlbWVudFNlc3Npb246OmNh
blNob3dDb250cm9sc01hbmFnZXIoUGxheWJhY2tDb250cm9sc1B1cnBvc2UgcHVycG9zZQogICAg
IH0KIAogICAgIGlmIChjbGllbnQoKS5wcmVzZW50YXRpb25UeXBlKCkgPT0gQXVkaW8pIHsKLSAg
ICAgICAgaWYgKCFoYXNCZWhhdmlvclJlc3RyaWN0aW9uKFJlcXVpcmVVc2VyR2VzdHVyZVRvQ29u
dHJvbENvbnRyb2xzTWFuYWdlcikgfHwgU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlRm9yTWVkaWEoKSkgeworICAgICAgICBpZiAoIWhhc0JlaGF2aW9yUmVzdHJpY3Rpb24o
UmVxdWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKSB8fCBtX2VsZW1lbnQu
ZG9jdW1lbnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CiAgICAgICAgICAg
ICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2Vy
IC0gcmV0dXJuaW5nIFRSVUU6IEF1ZGlvIGVsZW1lbnQgd2l0aCB1c2VyIGdlc3R1cmUiKTsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CkBAIC0zMTUsNyArMzE1LDcgQEAgYm9v
bCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyKFBsYXliYWNrQ29u
dHJvbHNQdXJwb3NlIHB1cnBvc2UKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAg
IGlmICghaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xD
b250cm9sc01hbmFnZXIpIHx8IFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVy
ZUZvck1lZGlhKCkpIHsKKyAgICBpZiAoIWhhc0JlaGF2aW9yUmVzdHJpY3Rpb24oUmVxdWlyZVVz
ZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKSB8fCBtX2VsZW1lbnQuZG9jdW1lbnQo
KS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CiAgICAgICAgIExPRyhNZWRpYSwg
Ik1lZGlhRWxlbWVudFNlc3Npb246OmNhblNob3dDb250cm9sc01hbmFnZXIgLSByZXR1cm5pbmcg
VFJVRTogTm8gdXNlciBnZXN0dXJlIHJlcXVpcmVkIik7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KQEAgLTM4NCw3ICszODQsNyBAQCB2b2lkIE1lZGlhRWxlbWVudFNlc3Npb246OnNob3dQ
bGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBIVE1MTWVkaWFFbGVtZW50JiBlbGVtZQogewogICAg
IExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OnNob3dQbGF5YmFja1RhcmdldFBpY2tl
ciIpOwogCi0gICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJlVG9TaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIgJiYgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2Vy
R2VzdHVyZUZvck1lZGlhKCkpIHsKKyAgICBpZiAobV9yZXN0cmljdGlvbnMgJiBSZXF1aXJlVXNl
ckdlc3R1cmVUb1Nob3dQbGF5YmFja1RhcmdldFBpY2tlciAmJiAhZWxlbWVudC5kb2N1bWVudCgp
LnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAi
TWVkaWFFbGVtZW50U2Vzc2lvbjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyIC0gcmV0dXJuaW5n
IGVhcmx5IGJlY2F1c2Ugb2YgcGVybWlzc2lvbnMiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IGNmNTEzZTQzNzJjZjBjODEzN2ZmM2ZiNGM1MTE1
ODdjN2VmZjE0Y2MuLmU0MGNhYTg0ZDYzYjA5ZjM1MWZiYjA2ZGIxZmUwMmY5ZGI5YjgyMGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtMTMxLDYgKzEzMSw3IEBAIHJlcXVpcmVzVXNlckdl
c3R1cmVUb0xvYWRWaWRlbyBpbml0aWFsPWRlZmF1bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2Fk
VmlkZW8KIHZpZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlIGluaXRpYWw9ZGVmYXVsdFZp
ZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlCiBhdWRpb1BsYXliYWNrUmVxdWlyZXNVc2Vy
R2VzdHVyZSBpbml0aWFsPWRlZmF1bHRBdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZQog
bWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxlZCBpbml0aWFsPWZhbHNlCittZWRp
YVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQgaW5pdGlhbD1mYWxzZQogYWxsb3dzSW5s
aW5lTWVkaWFQbGF5YmFjayBpbml0aWFsPWRlZmF1bHRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNr
CiBhbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuIGluaXRpYWw9dHJ1ZQog
aW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUgaW5pdGlhbD1k
ZWZhdWx0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNz
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lv
bi5oCmluZGV4IDViOWJkODNmMzI5YWMyNmFmNTU5NGIwNWU0NTcyNDY2OWQ0ODU3ZTQuLmE2M2I5
YzQ4NjBkN2E2NGJjYzIxZDcyMDMyYTM0Y2VmZjk3N2VkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaApAQCAtMjMxLDYg
KzIzMSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0IERvY3VtZW50KiBob3N0aW5nRG9j
dW1lbnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgc291cmNlQXBwbGljYXRpb25J
ZGVudGlmaWVyKCkgY29uc3QgPSAwOwogCisgICAgdmlydHVhbCBib29sIHByb2Nlc3NpbmdVc2Vy
R2VzdHVyZUZvck1lZGlhKCkgY29uc3QgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+
UGxhdGZvcm1NZWRpYVNlc3Npb25DbGllbnQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCBhMWFhMmRl
OTc2MWJkNDNjZTgzMjJkY2MzNTI0Yzk4ZjA4YzhiMzE2Li43ZDZkZTFmMzUzNmIyY2JjN2FmMjNj
YWRiZWYyNTUxZjlmMmZjYTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTE4Myw2ICsxODMsNyBAQAogI2RlZmlu
ZSBXZWJLaXRXZWJSVENMZWdhY3lBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFdlYlJU
Q0xlZ2FjeUFQSUVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdExpbmtQcmVsb2FkRW5hYmxlZFByZWZl
cmVuY2VLZXkgQCJXZWJLaXRMaW5rUHJlbG9hZEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENyZWRl
bnRpYWxNYW5hZ2VtZW50RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDcmVkZW50aWFsTWFu
YWdlbWVudEVuYWJsZWQiCisjZGVmaW5lIFdlYktpdE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zy
b21Eb2N1bWVudCBAIldlYktpdE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudCIK
IAogI2lmICFUQVJHRVRfT1NfSVBIT05FCiAvLyBUaGVzZSBhcmUgcHJpdmF0ZSBib3RoIGJlY2F1
c2UgY2FsbGVycyBzaG91bGQgYmUgdXNpbmcgdGhlIGNvdmVyIG1ldGhvZHMgYW5kIGJlY2F1c2Ug
dGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCA3
NzQ5YWM2NzQ3MzU3YzdhMzlhMWVlZDAwYzUxOTRkMWViMmY0MWE3Li5mOGM1N2M4MTIyYmRjMTZk
MWRjOWU2MWFkYjJjYjM5ZDMzNGYwYjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXMubW0KQEAgLTY2OSw2ICs2NjksNyBAQCArICh2b2lkKWluaXRpYWxpemUK
ICAgICAgICAgQE5PLCBXZWJLaXRVc2VyVGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAg
ICAgIEBOTywgV2ViS2l0UmVzb3VyY2VUaW1pbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAg
ICAgQE5PLCBXZWJLaXRDcmVkZW50aWFsTWFuYWdlbWVudEVuYWJsZWRQcmVmZXJlbmNlS2V5LAor
ICAgICAgICBATk8sIFdlYktpdE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudCwK
ICAgICAgICAgbmlsXTsKIAogI2lmICFQTEFURk9STShJT1MpCkBAIC0zMDYyLDYgKzMwNjMsMTYg
QEAgLSAodm9pZClzZXRDcmVkZW50aWFsTWFuYWdlbWVudEVuYWJsZWQ6KEJPT0wpZmxhZwogICAg
IFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0Q3JlZGVudGlhbE1hbmFnZW1l
bnRFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpbWVkaWFVc2VyR2VzdHVyZUlu
aGVyaXRzRnJvbURvY3VtZW50Cit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6
V2ViS2l0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50XTsKK30KKworLSAodm9p
ZClzZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQ6KEJPT0wpZmxhZworewor
ICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0TWVkaWFVc2VyR2VzdHVy
ZUluaGVyaXRzRnJvbURvY3VtZW50XTsKK30KKwogI2lmIFBMQVRGT1JNKElPUykKIC0gKEJPT0wp
cXVpY2tMb29rRG9jdW1lbnRTYXZpbmdFbmFibGVkCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCBlZjVlZmM5NTJmOTk4Yjli
NmE1YjBiYjU4NDgwOTUwMzgyN2YwYmUwLi44MjNmYzM2ZTA1MGFiYzRkMTA3ZDBlNWFmYWZlYzk5
ODlkZjYxYzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXNQcml2YXRlLmgKQEAgLTU1OSw2ICs1NTksNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlBy
ZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbjsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljKSBCT09MIHJlc291cmNlVGltaW5nRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljKSBCT09MIGxpbmtQcmVsb2FkRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIGNyZWRlbnRpYWxNYW5hZ2VtZW50RW5hYmxlZDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIG1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudDsKIAogI2lmIFRBUkdFVF9P
U19JUEhPTkUKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHF1aWNrTG9va0RvY3VtZW50U2F2
aW5nRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJl
bmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNE
ZWZpbml0aW9ucy5oCmluZGV4IGY1MjI2YWY1OTUxYWUwYzU5NDIxMWEzY2EyODNhNGVmMWZmZDA5
ZjkuLjZkODc2ZTdkMjI4NzAzMjk5NGEwNTZjZDgyNjhkOTkyNDUzMGM4NjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApAQCAtMTcy
LDYgKzE3Miw3IEBACiAgICAgbWFjcm8oUmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUGxheWJh
Y2ssIHJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1BsYXliYWNrLCBCb29sLCBib29sLCBERUZB
VUxUX1JFUVVJUkVTX1VTRVJfR0VTVFVSRV9GT1JfQVVESU9fUExBWUJBQ0ssICIiLCAiIikgXAog
ICAgIG1hY3JvKFJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRWaWRlbywgcmVxdWlyZXNVc2VyR2Vz
dHVyZVRvTG9hZFZpZGVvLCBCb29sLCBib29sLCBmYWxzZSwgIiIsICIiKSBcCiAgICAgbWFjcm8o
TWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxlZCwgbWFpbkNvbnRlbnRVc2VyR2Vz
dHVyZU92ZXJyaWRlRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAiIikgXAorICAgIG1h
Y3JvKE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudCwgbWVkaWFVc2VyR2VzdHVy
ZUluaGVyaXRzRnJvbURvY3VtZW50LCBCb29sLCBib29sLCBmYWxzZSwgIiIsICIiKSBcCiAgICAg
bWFjcm8oQWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjaywgYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFj
aywgQm9vbCwgYm9vbCwgREVGQVVMVF9BTExPV1NfSU5MSU5FX01FRElBX1BMQVlCQUNLLCAiIiwg
IiIpIFwKICAgICBtYWNybyhBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVu
LCBhbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuLCBCb29sLCBib29sLCBE
RUZBVUxUX0FMTE9XU19JTkxJTkVfTUVESUFfUExBWUJBQ0tfQUZURVJfRlVMTFNDUkVFTiwgIiIs
ICIiKSBcCiAgICAgbWFjcm8oSW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVB
dHRyaWJ1dGUsIGlubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRl
LCBCb29sLCBib29sLCBERUZBVUxUX0lOTElORV9NRURJQV9QTEFZQkFDS19SRVFVSVJFU19QTEFZ
U19JTkxJTkVfQVRUUklCVVRFLCAiIiwgIiIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCA5NTQyZTBmNmQ0Y2QwYzM5ZDA3NGQ1
ZjM4YWFiNTc4OWYxY2ZiZTcwLi5lYWQ3NmJhODQ2MWQ2ZDQyNDEzZGFjOGRhNWI4ZWFjMWY4ZGE1
NjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXMuY3BwCkBAIC0xNzYwLDMgKzE3NjAsMTMgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0U2hvdWxk
U3VwcHJlc3NLZXlib2FyZElucHV0RHVyaW5nUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdLUHIKIHsK
ICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2hvdWxkU3VwcHJlc3NLZXlib2Fy
ZElucHV0RHVyaW5nUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKCk7CiB9CisKK3ZvaWQgV0tQcmVmZXJl
bmNlc1NldE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudChXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2Vz
UmVmKS0+c2V0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50KGZsYWcpOworfQor
Citib29sIFdLUHJlZmVyZW5jZXNHZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1l
bnQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAgICByZXR1cm4gdG9JbXBs
KHByZWZlcmVuY2VzUmVmKS0+bWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50KCk7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlc1JlZlByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzUmVmUHJpdmF0ZS5oCmluZGV4IDJiOWM2MGU4ZmEwNjhlZjRiMjdmZTI5YWYyY2Y0MmEw
ZjU4OGI0MDguLmNkMjMyYjk2MzU3ZGU5YTExYjZiMTcwMzg4MDZlYThlMTY3YmJlMmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
UmVmUHJpdmF0ZS5oCkBAIC00OTMsNiArNDkzLDEwIEBAIFdLX0VYUE9SVCBib29sIFdLUHJlZmVy
ZW5jZXNHZXRDcmVkZW50aWFsTWFuYWdlbWVudEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7CiBX
S19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0SW52aXNpYmxlTWVkaWFBdXRvcGxheVBlcm1p
dHRlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVm
ZXJlbmNlc0dldEludmlzaWJsZU1lZGlhQXV0b3BsYXlQZXJtaXR0ZWQoV0tQcmVmZXJlbmNlc1Jl
Zik7CiAKKy8vIERlZmF1bHRzIHRvIGZhbHNlLgorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNl
c1NldE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudChXS1ByZWZlcmVuY2VzUmVm
LCBib29sIGZsYWcpOworV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldE1lZGlhVXNlckdl
c3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudChXS1ByZWZlcmVuY2VzUmVmKTsKKwogI2lmZGVmIF9f
Y3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCAwZTExNzgyNTQ5MzRhYTUwZDQ4ZTJmN2FmMzQ1NWIyYzM1MmU0
YjMxLi4zYzRjZTZhNDg4MDM1NGM4MWY1ZjJjNDhiMjdiZmY2ZTRlMDVlMjQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zMTIxLDYgKzMx
MjEsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVu
Y2VzU3RvcmUmIHN0b3JlKQogICAgIHNldHRpbmdzLnNldEF1ZGlvUGxheWJhY2tSZXF1aXJlc1Vz
ZXJHZXN0dXJlKHJlcXVpcmVzVXNlckdlc3R1cmVGb3JNZWRpYSB8fCBzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1Bs
YXliYWNrS2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2Fk
VmlkZW8oc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpyZXF1aXJl
c1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW9LZXkoKSkpOwogICAgIHNldHRpbmdzLnNldE1haW5Db250
ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjptYWluQ29udGVudFVzZXJHZXN0dXJlT3ZlcnJpZGVFbmFibGVkS2V5
KCkpKTsKKyAgICBzZXR0aW5ncy5zZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1l
bnQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjptZWRpYVVzZXJH
ZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnRLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldEFsbG93
c0lubGluZU1lZGlhUGxheWJhY2soc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVu
Y2VzS2V5OjphbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrS2V5KCkpKTsKICAgICBzZXR0aW5ncy5z
ZXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuKHN0b3JlLmdldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6YWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0Fm
dGVyRnVsbHNjcmVlbktleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0SW5saW5lTWVkaWFQbGF5YmFj
a1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjppbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0
dHJpYnV0ZUtleSgpKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzlhNGM3NDk5MmQ2MmVjMTJhMjBmOWY1NDZmZjY4YzMw
ODdjNmVmNS4uYzljYjY2OTNmMTI3MGQ3Mjc5NTE1Nzg2NTY4NGJmZGFmZTMxYTgxNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDE3LTA1LTE1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBleHBlcmltZW50YWwgc2V0dGluZyB0byBhbGxvdyBkb2N1bWVu
dCBnZXN0dXJlIGludGVyYWN0aW9uIHRvIGZ1bGZpbGwgbWVkaWEgcGxheWJhY2sgZ2VzdHVyZSBy
ZXF1aXJlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcyMTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBtZWRpYS9yZXN0cmljdGVkLWF1ZGlvLXBsYXliYWNrLXdpdGgtZG9jdW1lbnQtZ2VzdHVy
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3Jlc3RyaWN0ZWQtYXVkaW8t
cGxheWJhY2std2l0aC1kb2N1bWVudC1nZXN0dXJlLmh0bWw6IEFkZGVkLgorCiAyMDE3LTA1LTEx
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IERlZmVyIHRl
eHQgY2hhbmdlcyB1bnRpbCBhZnRlciB0aGUgdHJlZSBpcyBjbGVhbiBpZiBuZWVkZWQuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9yZXN0cmljdGVkLWF1ZGlvLXBsYXliYWNrLXdpdGgt
ZG9jdW1lbnQtZ2VzdHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9yZXN0cmlj
dGVkLWF1ZGlvLXBsYXliYWNrLXdpdGgtZG9jdW1lbnQtZ2VzdHVyZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWUyNTBiN2RhOTYyMzBlN2YxMGI2NGFlZGFiYTk1N2U1NDVjNjQzMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3Jlc3RyaWN0ZWQtYXVkaW8tcGxheWJhY2st
d2l0aC1kb2N1bWVudC1nZXN0dXJlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0
IHRoYXQsIHdoZW4gUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlIGlzIHNldCBh
bG5vZyB3aXRoIE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0ZvckRvY3VtZW50LCBhIHVzZXIgZ2Vz
dHVyZSBpbiB0aGUgZG9jdW1lbnQgd2lsbCBhbGxvdyBmdXR1cmUgbWVkaWEgcGxheWJhY2sgcmVx
dWVzdHMgdG8gc3VjY2VlZC4KKworCitSVU4oaW50ZXJuYWxzLnNldE1lZGlhRWxlbWVudFJlc3Ry
aWN0aW9ucyh2aWRlbywgIlJlcXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSIpKQor
UlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9j
dW1lbnQodHJ1ZSkpCitSdW5uaW5nIHdpdGgga2V5RG93bi4KK1JVTih2aWRlby5zcmMgPSBmaW5k
TWVkaWFGaWxlKCdhdWRpbycsICdjb250ZW50L3Rlc3QnKSkKK0VWRU5UKGNhbnBsYXl0aHJvdWdo
KQorUlVOKHZpZGVvLnBsYXkoKSkKK0VYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ2ZhbHNlJykg
T0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3Jlc3RyaWN0
ZWQtYXVkaW8tcGxheWJhY2std2l0aC1kb2N1bWVudC1nZXN0dXJlLmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS9yZXN0cmljdGVkLWF1ZGlvLXBsYXliYWNrLXdpdGgtZG9jdW1lbnQtZ2VzdHVyZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjAzYTcwNzk2NWM0MDZhMDM0YmU3MGQ3OTA4NDRhMDMzNWViY2Y3ZTEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9yZXN0cmljdGVkLWF1ZGlvLXBs
YXliYWNrLXdpdGgtZG9jdW1lbnQtZ2VzdHVyZS5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+cmVzdHJpY3RlZC1hdWRpby1w
bGF5YmFjay13aXRoLWRvY3VtZW50LWdlc3R1cmU8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPW1l
ZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48L3Nj
cmlwdD4KKworICAgIDxzY3JpcHQ+CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAg
ICAgICB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhdWRpbycpWzBdOwor
CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBydW4oJ2ludGVy
bmFscy5zZXRNZWRpYUVsZW1lbnRSZXN0cmljdGlvbnModmlkZW8sICJSZXF1aXJlVXNlckdlc3R1
cmVGb3JBdWRpb1JhdGVDaGFuZ2UiKScpOworICAgICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50KHRydWUpJyk7Cisg
ICAgICAgIH0KKworICAgICAgICBjb25zb2xlV3JpdGUoJ1J1bm5pbmcgd2l0aCBrZXlEb3duLicp
OworICAgICAgICBydW5XaXRoS2V5RG93bigoKSA9PiB7CisgICAgICAgICAgICBydW4oInZpZGVv
LnNyYyA9IGZpbmRNZWRpYUZpbGUoJ2F1ZGlvJywgJ2NvbnRlbnQvdGVzdCcpIik7CisgICAgICAg
ICAgICB3YWl0Rm9yRXZlbnQoJ2NhbnBsYXl0aHJvdWdoJywgY2FucGxheXRocm91Z2gpOworICAg
ICAgICAgICAgd2FpdEZvckV2ZW50QW5kRmFpbCgnZXJyb3InKTsKKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gY2FucGxheXRocm91Z2goKQorICAgIHsKKyAgICAgICAgcnVuKCJz
dmlkZW8ucGxheSgpIik7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ucGF1c2VkJywgZmFs
c2UpOworICAgICAgICBlbmRUZXN0KCk7CisgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgor
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdCB0aGF0LCB3aGVuIFJlcXVp
cmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSBpcyBzZXQgYWxub2cgd2l0aCBNZWRpYVVz
ZXJHZXN0dXJlSW5oZXJpdHNGb3JEb2N1bWVudCwgYSB1c2VyIGdlc3R1cmUgaW4gdGhlIGRvY3Vt
ZW50IHdpbGwgYWxsb3cgZnV0dXJlIG1lZGlhIHBsYXliYWNrIHJlcXVlc3RzIHRvIHN1Y2NlZWQu
PC9wPgorICAgIDxhdWRpbyBjb250cm9scyBhdXRvcGxheT48L2F1ZGlvPgorPC9ib2R5PgorPC9o
dG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310160</attachid>
            <date>2017-05-15 13:49:14 -0700</date>
            <delta_ts>2017-05-15 14:21:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172131-20170515135014.patch</filename>
            <type>text/plain</type>
            <size>31983</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2NzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjljZWQzYTJjNWE0NmEw
MTJmMzMxYzNlNDU1M2RlNmI5MWM0YTViYS4uOTQ4MmFjNmM5OWNiZGQzMmNiNTA3ODc1NDc4YTgw
ZWZiNTliNGVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE3LTA1LTE1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBleHBlcmltZW50YWwg
c2V0dGluZyB0byBhbGxvdyBkb2N1bWVudCBnZXN0dXJlIGludGVyYWN0aW9uIHRvIGZ1bGZpbGwg
bWVkaWEgcGxheWJhY2sgZ2VzdHVyZSByZXF1aXJlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogbWVkaWEvcmVzdHJpY3RlZC1hdWRpby1w
bGF5YmFjay13aXRoLWRvY3VtZW50LWdlc3R1cmUuaHRtbAorCisgICAgICAgIE1vdmUgYWxsIGNh
bGxzIHRvIFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkg
dG8gdGhlIG5ldyBEb2N1bWVudCBlcXVpdmFsZW50LiBJbiBEb2N1bWVudCwKKyAgICAgICAgaWYg
dGhlIG5ldyBzZXR0aW5nIGlzIGVuYWJsZWQsIHJldHVybiB0cnVlIGZyb20gcHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlRm9yTWVkaWEoKSBpZiB0aGUgdG9wLWxldmVsIGRvY3VtZW50IGhhcyBoYWQKKyAg
ICAgICAgYSB1c2VyIGdlc3R1cmUgaW50ZXJhY3Rpb24uCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSk6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6cHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlRm9yTWVkaWEpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0Ojp3aWxs
QmVnaW5QbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OndpbGxQYXVz
ZVBsYXliYWNrKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50Ojpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpzZWVrV2l0aFRvbGVyYW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnBsYXlJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVzZUludGVybmFsKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldE11dGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OndlYmtpdFNob3dQbGF5YmFja1RhcmdldFBpY2tl
cik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpwcm9jZXNzaW5nVXNlckdl
c3R1cmVGb3JNZWRpYSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhRWxlbWVudFNlc3Npb246OnBsYXliYWNrUGVybWl0dGVkKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhRWxlbWVudFNlc3Npb246OmRhdGFMb2FkaW5nUGVybWl0dGVkKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhRWxlbWVudFNlc3Npb246OmZ1bGxzY3JlZW5QZXJtaXR0ZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRyb2xzTWFuYWdlcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpzaG93UGxheWJhY2tUYXJn
ZXRQaWNrZXIpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaDoKKwogMjAxNy0wNS0xMiAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBPbmx5IGV2ZXIgaW5pdGlhbGl6ZSBM
aWJXZWJSVENQcm92aWRlcidzIHN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKCkgZmFjdG9yaWVzIG9u
Y2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNWI5MWFmMTdiOGQzYmVmNTIxMWZjMjJiOTZhNWFkNDlh
Y2Q5NzZkMC4uZWFiODM3MDNjZjdiYTMzMGM3MGUwMTdmODZkNzY3NjQwNDAzYjc4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA1LTE1ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBleHBlcmltZW50YWwgc2V0dGluZyB0byBh
bGxvdyBkb2N1bWVudCBnZXN0dXJlIGludGVyYWN0aW9uIHRvIGZ1bGZpbGwgbWVkaWEgcGxheWJh
Y2sgZ2VzdHVyZSByZXF1aXJlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcyMTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgrW1dlYlByZWZlcmVu
Y2VzIGluaXRpYWxpemVdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgbWVkaWFVc2VyR2Vz
dHVyZUluaGVyaXRzRnJvbURvY3VtZW50XSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNl
dE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudDpdKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorCiAyMDE3LTA1LTExICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIE1haWwgc3BpbnMgbGF1bmNoaW5n
IHNwZWxsIGNoZWNrZXIgd2hlbiB0eXBpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5ZWVlNzJmMjNlYzQ2Yzg3
N2ZiYjVhYTYzYWI3ZDRiNWJjYTBkMjdhLi5hZDliOWIwZTMwOTgzYzhhY2I3NDQ0M2NhZjg1ZWY4
MjYwNzhmMjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTctMDUtMTUgIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGV4cGVyaW1lbnRhbCBz
ZXR0aW5nIHRvIGFsbG93IGRvY3VtZW50IGdlc3R1cmUgaW50ZXJhY3Rpb24gdG8gZnVsZmlsbCBt
ZWRpYSBwbGF5YmFjayBnZXN0dXJlIHJlcXVpcmVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMzEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRp
b25zLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAg
ICAgICAoV0tQcmVmZXJlbmNlc1NldE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVu
dCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJv
bURvY3VtZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlBy
aXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKwogMjAxNy0wNS0xMSAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dLV2Vic2l0ZURh
dGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczouLi5dIGRvZXNuJ3Qgd29yayBmb3IgSW5kZXhlZERC
IGlmIHRoZSBkYXRhIHN0b3JlIGhhcyBhIGN1c3RvbSBJREIgcGF0aC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKaW5kZXggMjZmNTRl
MDgwYWZjYjk5OTA0ZjhkMjJkNmRjOTk4Nzg3Y2Q1MmY0NC4uODBiZTVmZmQwNzZjNzk0MmI5MmEz
ZDZhN2ZlZGQ3Y2I4MTQ3ZTk4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKQEAgLTUwNiw2ICs1MDYsMTEgQEAgYm9vbCBNZWRp
YVN0cmVhbTo6Y2FuUHJvZHVjZUF1ZGlvKCkgY29uc3QKICAgICByZXR1cm4gIW11dGVkKCkgJiYg
YWN0aXZlKCkgJiYgbV9wcml2YXRlLT5oYXNBdWRpbygpICYmIG1faXNQcm9kdWNpbmdEYXRhOwog
fQogCitib29sIE1lZGlhU3RyZWFtOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgpLT5wcm9jZXNzaW5nVXNl
ckdlc3R1cmVGb3JNZWRpYSgpIDogZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKaW5kZXggZDIyYTkxNWEzYzkwMDg3MWVi
YzM1ZTkzOGNlOTk5M2QyODg5ZjY2My4uZWE2NDI3N2Q4OTYxMDBiZmJiYjc2ZWMwYjQzNTk4ZTcw
YjUwZDYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW0uaApAQCAtMTUzLDYgKzE1Myw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIHNvdXJj
ZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgY2FuUHJvZHVj
ZUF1ZGlvKCkgY29uc3QgZmluYWw7CiAgICAgY29uc3QgRG9jdW1lbnQqIGhvc3RpbmdEb2N1bWVu
dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGRvY3VtZW50KCk7IH0KKyAgICBib29sIHByb2Nlc3Np
bmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgY29uc3QgZmluYWw7CiAKICAgICBib29sIGludGVybmFs
QWRkVHJhY2soUmVmPE1lZGlhU3RyZWFtVHJhY2s+JiYsIFN0cmVhbU1vZGlmaWVyKTsKICAgICBi
b29sIGludGVybmFsUmVtb3ZlVHJhY2soY29uc3QgU3RyaW5nJiwgU3RyZWFtTW9kaWZpZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmlu
ZGV4IDIzNTI5OWNiZTUzZGU3MDQyNjY3YmU5Y2JlOGViYmUxMzRmZGM0NTkuLjg4NGQ2MmM0OTVl
NGI2Y2I2MzM5YTJhMDA4NmFlOTU5NmZlYWRhODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTM2OCw2ICszNjgsMTEgQEAgU3Ry
aW5nIEF1ZGlvQ29udGV4dDo6c291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3QKICAg
ICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAorYm9vbCBBdWRpb0NvbnRleHQ6OnByb2Nlc3Np
bmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKSA/
IGRvY3VtZW50KCktPnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgOiBmYWxzZTsKK30K
Kwogdm9pZCBBdWRpb0NvbnRleHQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKQogewogICAgIC8v
IERvIG5vdCBzdXNwZW5kIGlmIGF1ZGlvIGlzIGF1ZGlibGUuCkBAIC05MzMsNyArOTM4LDcgQEAg
dm9pZCBBdWRpb0NvbnRleHQ6Om5vZGVXaWxsQmVnaW5QbGF5YmFjaygpCiBib29sIEF1ZGlvQ29u
dGV4dDo6d2lsbEJlZ2luUGxheWJhY2soKQogewogICAgIGlmICh1c2VyR2VzdHVyZVJlcXVpcmVk
Rm9yQXVkaW9TdGFydCgpKSB7Ci0gICAgICAgIGlmICghU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vz
c2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKKyAgICAgICAgaWYgKCFwcm9jZXNzaW5nVXNlckdl
c3R1cmVGb3JNZWRpYSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZW1v
dmVCZWhhdmlvclJlc3RyaWN0aW9uKEF1ZGlvQ29udGV4dDo6UmVxdWlyZVVzZXJHZXN0dXJlRm9y
QXVkaW9TdGFydFJlc3RyaWN0aW9uKTsKICAgICB9CkBAIC05NTMsNyArOTU4LDcgQEAgYm9vbCBB
dWRpb0NvbnRleHQ6OndpbGxCZWdpblBsYXliYWNrKCkKIGJvb2wgQXVkaW9Db250ZXh0Ojp3aWxs
UGF1c2VQbGF5YmFjaygpCiB7CiAgICAgaWYgKHVzZXJHZXN0dXJlUmVxdWlyZWRGb3JBdWRpb1N0
YXJ0KCkpIHsKLSAgICAgICAgaWYgKCFTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdl
c3R1cmVGb3JNZWRpYSgpKQorICAgICAgICBpZiAoIXByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1l
ZGlhKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlbW92ZUJlaGF2aW9y
UmVzdHJpY3Rpb24oQXVkaW9Db250ZXh0OjpSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1N0YXJ0
UmVzdHJpY3Rpb24pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5oCmluZGV4IDQ5YmIxMzdjYzhhYjIxZGQ0Zjk4YmUxNWNjYWRmZjgxODA4
MzI1M2UuLjc3ZmE4NzdlMzhkZGI1MzE2MjkwNDBhYzc5MDdiYmM5Mjk5ZTNjZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaApAQCAtMzE5LDYg
KzMxOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRPdmVycmlkZUJhY2tncm91bmRQbGF5
YmFja1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIFN0cmluZyBzb3VyY2VBcHBsaWNh
dGlvbklkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGNhblByb2R1Y2VBdWRp
bygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIHByb2Nlc3NpbmdVc2Vy
R2VzdHVyZUZvck1lZGlhKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHZpc2liaWxpdHlTdGF0
ZUNoYW5nZWQoKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggY2EyNWZjYWJj
ZDhjNmYyYzRmZDNjNjA4NDU1ZjNkMmE0NmE1NTQ0Mi4uNzU0YmVjOTVjYzcyZmIwZmMxZWViOWQx
MmU2ZWFjN2NmMzM4ODUwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02MzU5LDYgKzYz
NTksMTcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTGFzdEhhbmRsZWRVc2VyR2VzdHVyZVRpbWVz
dGFtcChNb25vdG9uaWNUaW1lIHRpbWUpCiAgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCkudXBk
YXRlTGFzdEhhbmRsZWRVc2VyR2VzdHVyZVRpbWVzdGFtcCh0aW1lKTsKIH0KIAorYm9vbCBEb2N1
bWVudDo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSBjb25zdAoreworICAgIGlmIChT
Y3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgIGlmICghc2V0dGluZ3MoKS5tZWRpYVVzZXJHZXN0dXJlSW5o
ZXJpdHNGcm9tRG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJu
IHRvcERvY3VtZW50KCkuaGFzSGFkVXNlckludGVyYWN0aW9uKCk7Cit9CisKIHZvaWQgRG9jdW1l
bnQ6OnN0YXJ0VHJhY2tpbmdTdHlsZVJlY2FsY3MoKQogewogICAgIG1fc3R5bGVSZWNhbGNDb3Vu
dCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGFiOGE0ZGFhMzA2Zjc4YWVkMjA4MjVkMGY3
NGI2NzEyNDA0NGU4MDkuLmIwNjQyOWRlNDJiZmI3MzhkZjE2MzVlMGI3ZGI5MTJkM2QxNjk0Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMTQ4LDYgKzExNDgsNyBAQCBwdWJsaWM6CiAgICAg
TW9ub3RvbmljVGltZSBsYXN0SGFuZGxlZFVzZXJHZXN0dXJlVGltZXN0YW1wKCkgY29uc3QgeyBy
ZXR1cm4gbV9sYXN0SGFuZGxlZFVzZXJHZXN0dXJlVGltZXN0YW1wOyB9CiAgICAgYm9vbCBoYXNI
YWRVc2VySW50ZXJhY3Rpb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxib29sPihtX2xh
c3RIYW5kbGVkVXNlckdlc3R1cmVUaW1lc3RhbXApOyB9CiAgICAgdm9pZCB1cGRhdGVMYXN0SGFu
ZGxlZFVzZXJHZXN0dXJlVGltZXN0YW1wKE1vbm90b25pY1RpbWUpOworICAgIGJvb2wgcHJvY2Vz
c2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0VXNlckRpZElu
dGVyYWN0V2l0aFBhZ2UoYm9vbCB1c2VyRGlkSW50ZXJhY3RXaXRoUGFnZSkgeyBBU1NFUlQoJnRv
cERvY3VtZW50KCkgPT0gdGhpcyk7IG1fdXNlckRpZEludGVyYWN0V2l0aFBhZ2UgPSB1c2VyRGlk
SW50ZXJhY3RXaXRoUGFnZTsgfQogICAgIGJvb2wgdXNlckRpZEludGVyYWN0V2l0aFBhZ2UoKSBj
b25zdCB7IEFTU0VSVCgmdG9wRG9jdW1lbnQoKSA9PSB0aGlzKTsgcmV0dXJuIG1fdXNlckRpZElu
dGVyYWN0V2l0aFBhZ2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CmluZGV4IGM2NzYwMjQzY2Y5MGRkZjhlMTQzZTM5ZDRmZDgxNjllOGVkMjAzMjQuLjZmOTU1ODQ3
NTUwMjViNGRiNTUxNThiN2RjZmE5Njk3MDkyYjM4ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTE2MSw3ICsxMTYxLDcgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojpsb2FkKCkKICAgICAKICAgICBpZiAoIW1fbWVkaWFTZXNzaW9uLT5kYXRhTG9hZGlu
Z1Blcm1pdHRlZCgqdGhpcykpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoU2NyaXB0Q29udHJv
bGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKKyAgICBpZiAocHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgcmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rp
b25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKCk7CiAKICAgICBwcmVwYXJlRm9yTG9hZCgpOwpAQCAt
MTg3Nyw3ICsxODc3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjphdWRpb1RyYWNrRW5hYmxl
ZENoYW5nZWQoQXVkaW9UcmFjayYgdHJhY2spCiB7CiAgICAgaWYgKG1fYXVkaW9UcmFja3MgJiYg
bV9hdWRpb1RyYWNrcy0+Y29udGFpbnModHJhY2spKQogICAgICAgICBtX2F1ZGlvVHJhY2tzLT5z
Y2hlZHVsZUNoYW5nZUV2ZW50KCk7Ci0gICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3Np
bmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCisgICAgaWYgKHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZv
ck1lZGlhKCkpCiAgICAgICAgIHJlbW92ZUJlaGF2aW9yc1Jlc3RyaWN0aW9uc0FmdGVyRmlyc3RV
c2VyR2VzdHVyZShNZWRpYUVsZW1lbnRTZXNzaW9uOjpBbGxSZXN0cmljdGlvbnMgJiB+TWVkaWFF
bGVtZW50U2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2Vy
KTsKIH0KIApAQCAtMjY4OCw3ICsyNjg4LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWVr
V2l0aFRvbGVyYW5jZShjb25zdCBNZWRpYVRpbWUmIGluVGltZSwgY29uc3QgTWVkaWFUaW0KICAg
ICB9IGVsc2UKICAgICAgICAgc2Vla1Rhc2soKTsKIAotICAgIGlmIChTY3JpcHRDb250cm9sbGVy
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQorICAgIGlmIChwcm9jZXNzaW5nVXNl
ckdlc3R1cmVGb3JNZWRpYSgpKQogICAgICAgICBtX21lZGlhU2Vzc2lvbi0+cmVtb3ZlQmVoYXZp
b3JSZXN0cmljdGlvbihNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0Nv
bnRyb2xDb250cm9sc01hbmFnZXIpOwogfQogCkBAIC0zMTUzLDcgKzMxNTMsNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnBsYXkoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChTY3JpcHRDb250cm9sbGVyOjpwcm9j
ZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQorICAgIGlmIChwcm9jZXNzaW5nVXNlckdlc3R1
cmVGb3JNZWRpYSgpKQogICAgICAgICByZW1vdmVCZWhhdmlvcnNSZXN0cmljdGlvbnNBZnRlckZp
cnN0VXNlckdlc3R1cmUoKTsKIAogICAgIGlmICghcGxheUludGVybmFsKCkpIHsKQEAgLTMxNzQs
NyArMzE3NCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGxheSgpCiAgICAgICAgICAgICBz
ZXRQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZShQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZTo6
UHJldmVudGVkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAoU2NyaXB0Q29udHJv
bGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKKyAgICBpZiAocHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgcmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rp
b25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKCk7CiAKICAgICBwbGF5SW50ZXJuYWwoKTsKQEAgLTMy
MzgsNyArMzIzOCw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6cGxheUludGVybmFsKCkKICAg
ICB9IGVsc2UgaWYgKG1fcmVhZHlTdGF0ZSA+PSBIQVZFX0ZVVFVSRV9EQVRBKQogICAgICAgICBz
Y2hlZHVsZVJlc29sdmVQZW5kaW5nUGxheVByb21pc2VzKCk7CiAKLSAgICBpZiAoU2NyaXB0Q29u
dHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkgeworICAgIGlmIChwcm9j
ZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CiAgICAgICAgIGlmIChtX3BsYXliYWNrV2l0
aG91dFVzZXJHZXN0dXJlID09IFBsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlOjpQcmV2ZW50ZWQp
IHsKICAgICAgICAgICAgIGhhbmRsZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudDo6RGlkUGxh
eU1lZGlhUHJldmVudGVkRnJvbVBsYXlpbmcpOwogICAgICAgICAgICAgc2V0UGxheWJhY2tXaXRo
b3V0VXNlckdlc3R1cmUoUGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmU6Ok5vbmUpOwpAQCAtMzI1
OSw3ICszMjU5LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwYXVzZSgpCiAgICAgaWYgKCFt
X21lZGlhU2Vzc2lvbi0+cGxheWJhY2tQZXJtaXR0ZWQoKnRoaXMpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVk
aWEoKSkKKyAgICBpZiAocHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAg
cmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKE1lZGlhRWxl
bWVudFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlcik7
CiAKICAgICBwYXVzZUludGVybmFsKCk7CkBAIC0zMjg2LDcgKzMyODYsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnBhdXNlSW50ZXJuYWwoKQogCiAgICAgbV9hdXRvcGxheWluZyA9IGZhbHNl
OwogCi0gICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1l
ZGlhKCkpCisgICAgaWYgKHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCiAgICAgICAg
IHVzZXJEaWRJbnRlcmZlcmVXaXRoQXV0b3BsYXkoKTsKIAogICAgIHNldFBsYXliYWNrV2l0aG91
dFVzZXJHZXN0dXJlKFBsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlOjpOb25lKTsKQEAgLTMzODEs
NyArMzM4MSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkK
IAogICAgIGJvb2wgbXV0ZWRTdGF0ZUNoYW5nZWQgPSBtX211dGVkICE9IG11dGVkOwogICAgIGlm
IChtdXRlZFN0YXRlQ2hhbmdlZCB8fCAhbV9leHBsaWNpdGx5TXV0ZWQpIHsKLSAgICAgICAgaWYg
KFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsKKyAg
ICAgICAgaWYgKHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsKICAgICAgICAgICAg
IHJlbW92ZUJlaGF2aW9yc1Jlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZShNZWRpYUVs
ZW1lbnRTZXNzaW9uOjpBbGxSZXN0cmljdGlvbnMgJiB+TWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVx
dWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKTsKIAogICAgICAgICAgICAg
aWYgKGhhc0F1ZGlvKCkgJiYgbXV0ZWQpCkBAIC01MzkzLDcgKzUzOTMsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnN5bmNUZXh0VHJhY2tCb3VuZHMoKQogdm9pZCBIVE1MTWVkaWFFbGVtZW50
Ojp3ZWJraXRTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKQogewogICAgIExPRyhNZWRpYSwgIkhU
TUxNZWRpYUVsZW1lbnQ6OndlYmtpdFNob3dQbGF5YmFja1RhcmdldFBpY2tlciglcCkiLCB0aGlz
KTsKLSAgICBpZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVk
aWEoKSkKKyAgICBpZiAocHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAg
cmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKCk7CiAgICAg
bV9tZWRpYVNlc3Npb24tPnNob3dQbGF5YmFja1RhcmdldFBpY2tlcigqdGhpcyk7CiB9CkBAIC03
MTI3LDYgKzcxMjcsMTEgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpzaG91bGRPdmVycmlkZUJh
Y2tncm91bmRQbGF5YmFja1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWEKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK2Jvb2wgSFRNTE1lZGlhRWxlbWVudDo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9y
TWVkaWEoKSBjb25zdAoreworICAgIHJldHVybiBkb2N1bWVudCgpLnByb2Nlc3NpbmdVc2VyR2Vz
dHVyZUZvck1lZGlhKCk7Cit9CisKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
KQogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVNZWRpYVN0YXRlKFVwZGF0ZVN0YXRlIHVw
ZGF0ZVN0YXRlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAx
OWMzM2MxN2IxNjcwY2U2MDI5MmEwN2M5ZDkxYjk2ZTZmOTIxNDM1Li4zODgxZDgxMGQ4MTM2MGMx
ZTA4ZTliODkwOWQ2NzU1MTgyMTI4YTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaApAQCAtODE0LDYgKzgxNCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRPdmVy
cmlkZUJhY2tncm91bmRQbGF5YmFja1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJ
bnRlcnJ1cHRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHNob3VsZE92ZXJyaWRl
QmFja2dyb3VuZExvYWRpbmdSZXN0cmljdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wg
Y2FuUHJvZHVjZUF1ZGlvKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBwcm9jZXNzaW5nVXNlckdl
c3R1cmVGb3JNZWRpYSgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURp
ZENoYW5nZSgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01l
ZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRT
ZXNzaW9uLmNwcAppbmRleCBjYTdiZTc0NDliOGIwNTYzYjNmZjQzZjg2OWIxM2Y5MTNjMDY4YTMz
Li4wOWNlNzdhY2NiMWU1MThiODg1ZTQ1ZTQ5OGQwMDhlZWNhZGQxMjI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTE3MywxNyArMTczLDE3IEBA
IFN1Y2Nlc3NPcjxNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uPiBNZWRpYUVsZW1lbnRTZXNzaW9u
OjpwbGF5YmFja1Blcm1pdHRlZChjb25zCiAgICAgfQogI2VuZGlmCiAKLSAgICBpZiAobV9yZXN0
cmljdGlvbnMgJiBSZXF1aXJlVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2UgJiYgZWxlbWVu
dC5pc1ZpZGVvKCkgJiYgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZv
ck1lZGlhKCkpIHsKKyAgICBpZiAobV9yZXN0cmljdGlvbnMgJiBSZXF1aXJlVXNlckdlc3R1cmVG
b3JWaWRlb1JhdGVDaGFuZ2UgJiYgZWxlbWVudC5pc1ZpZGVvKCkgJiYgIWVsZW1lbnQuZG9jdW1l
bnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CiAgICAgICAgIExPRyhNZWRp
YSwgIk1lZGlhRWxlbWVudFNlc3Npb246OnBsYXliYWNrUGVybWl0dGVkIC0gcmV0dXJuaW5nIEZB
TFNFIGJlY2F1c2Ugb2YgdmlkZW8gcmF0ZSBjaGFuZ2UgcmVzdHJpY3Rpb24iKTsKICAgICAgICAg
cmV0dXJuIE1lZGlhUGxheWJhY2tEZW5pYWxSZWFzb246OlVzZXJHZXN0dXJlUmVxdWlyZWQ7CiAg
ICAgfQogCi0gICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVk
aW9SYXRlQ2hhbmdlICYmICghZWxlbWVudC5pc1ZpZGVvKCkgfHwgZWxlbWVudC5oYXNBdWRpbygp
KSAmJiAhZWxlbWVudC5tdXRlZCgpICYmIGVsZW1lbnQudm9sdW1lKCkgJiYgIVNjcmlwdENvbnRy
b2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsKKyAgICBpZiAobV9yZXN0
cmljdGlvbnMgJiBSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UgJiYgKCFlbGVt
ZW50LmlzVmlkZW8oKSB8fCBlbGVtZW50Lmhhc0F1ZGlvKCkpICYmICFlbGVtZW50Lm11dGVkKCkg
JiYgZWxlbWVudC52b2x1bWUoKSAmJiAhZWxlbWVudC5kb2N1bWVudCgpLnByb2Nlc3NpbmdVc2Vy
R2VzdHVyZUZvck1lZGlhKCkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vz
c2lvbjo6cGxheWJhY2tQZXJtaXR0ZWQgLSByZXR1cm5pbmcgRkFMU0UgYmVjYXVzZSBvZiBhdWRp
byByYXRlIGNoYW5nZSByZXN0cmljdGlvbiIpOwogICAgICAgICByZXR1cm4gTWVkaWFQbGF5YmFj
a0RlbmlhbFJlYXNvbjo6VXNlckdlc3R1cmVSZXF1aXJlZDsKICAgICB9CiAKLSAgICBpZiAobV9y
ZXN0cmljdGlvbnMgJiBSZXF1aXJlVXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2Rl
ICYmIGVsZW1lbnQuaXNWaWRlbygpICYmICFTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNl
ckdlc3R1cmVGb3JNZWRpYSgpKSB7CisgICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVz
ZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSAmJiBlbGVtZW50LmlzVmlkZW8oKSAm
JiAhZWxlbWVudC5kb2N1bWVudCgpLnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsK
ICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tQZXJtaXR0
ZWQgLSByZXR1cm5pbmcgRkFMU0UgYmVjYXVzZSBvZiB2aWRlbyBsb3cgcG93ZXIgbW9kZSByZXN0
cmljdGlvbiIpOwogICAgICAgICByZXR1cm4gTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbjo6VXNl
ckdlc3R1cmVSZXF1aXJlZDsKICAgICB9CkBAIC0yMTgsMTIgKzIxOCwxMiBAQCBib29sIE1lZGlh
RWxlbWVudFNlc3Npb246OmF1dG9wbGF5UGVybWl0dGVkKCkgY29uc3QKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpkYXRhTG9hZGluZ1Blcm1pdHRlZChj
b25zdCBIVE1MTWVkaWFFbGVtZW50JikgY29uc3QKK2Jvb2wgTWVkaWFFbGVtZW50U2Vzc2lvbjo6
ZGF0YUxvYWRpbmdQZXJtaXR0ZWQoY29uc3QgSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkgY29u
c3QKIHsKICAgICBpZiAobV9yZXN0cmljdGlvbnMgJiBPdmVycmlkZVVzZXJHZXN0dXJlUmVxdWly
ZW1lbnRGb3JNYWluQ29udGVudCAmJiB1cGRhdGVJc01haW5Db250ZW50KCkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCi0gICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJl
Rm9yTG9hZCAmJiAhU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVk
aWEoKSkgeworICAgIGlmIChtX3Jlc3RyaWN0aW9ucyAmIFJlcXVpcmVVc2VyR2VzdHVyZUZvckxv
YWQgJiYgIWVsZW1lbnQuZG9jdW1lbnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgp
KSB7CiAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OmRhdGFMb2FkaW5n
UGVybWl0dGVkIC0gcmV0dXJuaW5nIEZBTFNFIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CkBAIC0yMzEsOSArMjMxLDkgQEAgYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpkYXRhTG9h
ZGluZ1Blcm1pdHRlZChjb25zdCBIVE1MTWVkaWFFbGVtZW50JikgY29uc3QKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpmdWxsc2NyZWVuUGVybWl0dGVk
KGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmKSBjb25zdAorYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9u
OjpmdWxsc2NyZWVuUGVybWl0dGVkKGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpIGNv
bnN0CiB7Ci0gICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJlRm9yRnVs
bHNjcmVlbiAmJiAhU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVk
aWEoKSkgeworICAgIGlmIChtX3Jlc3RyaWN0aW9ucyAmIFJlcXVpcmVVc2VyR2VzdHVyZUZvckZ1
bGxzY3JlZW4gJiYgIWVsZW1lbnQuZG9jdW1lbnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JN
ZWRpYSgpKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OmZ1bGxz
Y3JlZW5QZXJtaXR0ZWQgLSByZXR1cm5pbmcgRkFMU0UiKTsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KQEAgLTI4MSw3ICsyODEsNyBAQCBib29sIE1lZGlhRWxlbWVudFNlc3Npb246OmNh
blNob3dDb250cm9sc01hbmFnZXIoUGxheWJhY2tDb250cm9sc1B1cnBvc2UgcHVycG9zZQogICAg
IH0KIAogICAgIGlmIChjbGllbnQoKS5wcmVzZW50YXRpb25UeXBlKCkgPT0gQXVkaW8pIHsKLSAg
ICAgICAgaWYgKCFoYXNCZWhhdmlvclJlc3RyaWN0aW9uKFJlcXVpcmVVc2VyR2VzdHVyZVRvQ29u
dHJvbENvbnRyb2xzTWFuYWdlcikgfHwgU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlRm9yTWVkaWEoKSkgeworICAgICAgICBpZiAoIWhhc0JlaGF2aW9yUmVzdHJpY3Rpb24o
UmVxdWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKSB8fCBtX2VsZW1lbnQu
ZG9jdW1lbnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CiAgICAgICAgICAg
ICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2Vy
IC0gcmV0dXJuaW5nIFRSVUU6IEF1ZGlvIGVsZW1lbnQgd2l0aCB1c2VyIGdlc3R1cmUiKTsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CkBAIC0zMTUsNyArMzE1LDcgQEAgYm9v
bCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyKFBsYXliYWNrQ29u
dHJvbHNQdXJwb3NlIHB1cnBvc2UKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAg
IGlmICghaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xD
b250cm9sc01hbmFnZXIpIHx8IFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVy
ZUZvck1lZGlhKCkpIHsKKyAgICBpZiAoIWhhc0JlaGF2aW9yUmVzdHJpY3Rpb24oUmVxdWlyZVVz
ZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKSB8fCBtX2VsZW1lbnQuZG9jdW1lbnQo
KS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CiAgICAgICAgIExPRyhNZWRpYSwg
Ik1lZGlhRWxlbWVudFNlc3Npb246OmNhblNob3dDb250cm9sc01hbmFnZXIgLSByZXR1cm5pbmcg
VFJVRTogTm8gdXNlciBnZXN0dXJlIHJlcXVpcmVkIik7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KQEAgLTM4NCw3ICszODQsNyBAQCB2b2lkIE1lZGlhRWxlbWVudFNlc3Npb246OnNob3dQ
bGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBIVE1MTWVkaWFFbGVtZW50JiBlbGVtZQogewogICAg
IExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OnNob3dQbGF5YmFja1RhcmdldFBpY2tl
ciIpOwogCi0gICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJlVG9TaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIgJiYgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2Vy
R2VzdHVyZUZvck1lZGlhKCkpIHsKKyAgICBpZiAobV9yZXN0cmljdGlvbnMgJiBSZXF1aXJlVXNl
ckdlc3R1cmVUb1Nob3dQbGF5YmFja1RhcmdldFBpY2tlciAmJiAhZWxlbWVudC5kb2N1bWVudCgp
LnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAi
TWVkaWFFbGVtZW50U2Vzc2lvbjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyIC0gcmV0dXJuaW5n
IGVhcmx5IGJlY2F1c2Ugb2YgcGVybWlzc2lvbnMiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IGNmNTEzZTQzNzJjZjBjODEzN2ZmM2ZiNGM1MTE1
ODdjN2VmZjE0Y2MuLmU0MGNhYTg0ZDYzYjA5ZjM1MWZiYjA2ZGIxZmUwMmY5ZGI5YjgyMGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtMTMxLDYgKzEzMSw3IEBAIHJlcXVpcmVzVXNlckdl
c3R1cmVUb0xvYWRWaWRlbyBpbml0aWFsPWRlZmF1bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2Fk
VmlkZW8KIHZpZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlIGluaXRpYWw9ZGVmYXVsdFZp
ZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlCiBhdWRpb1BsYXliYWNrUmVxdWlyZXNVc2Vy
R2VzdHVyZSBpbml0aWFsPWRlZmF1bHRBdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZQog
bWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxlZCBpbml0aWFsPWZhbHNlCittZWRp
YVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQgaW5pdGlhbD1mYWxzZQogYWxsb3dzSW5s
aW5lTWVkaWFQbGF5YmFjayBpbml0aWFsPWRlZmF1bHRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNr
CiBhbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuIGluaXRpYWw9dHJ1ZQog
aW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUgaW5pdGlhbD1k
ZWZhdWx0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNz
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lv
bi5oCmluZGV4IDViOWJkODNmMzI5YWMyNmFmNTU5NGIwNWU0NTcyNDY2OWQ0ODU3ZTQuLmE2M2I5
YzQ4NjBkN2E2NGJjYzIxZDcyMDMyYTM0Y2VmZjk3N2VkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaApAQCAtMjMxLDYg
KzIzMSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0IERvY3VtZW50KiBob3N0aW5nRG9j
dW1lbnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgc291cmNlQXBwbGljYXRpb25J
ZGVudGlmaWVyKCkgY29uc3QgPSAwOwogCisgICAgdmlydHVhbCBib29sIHByb2Nlc3NpbmdVc2Vy
R2VzdHVyZUZvck1lZGlhKCkgY29uc3QgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+
UGxhdGZvcm1NZWRpYVNlc3Npb25DbGllbnQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCBhMWFhMmRl
OTc2MWJkNDNjZTgzMjJkY2MzNTI0Yzk4ZjA4YzhiMzE2Li43ZDZkZTFmMzUzNmIyY2JjN2FmMjNj
YWRiZWYyNTUxZjlmMmZjYTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTE4Myw2ICsxODMsNyBAQAogI2RlZmlu
ZSBXZWJLaXRXZWJSVENMZWdhY3lBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFdlYlJU
Q0xlZ2FjeUFQSUVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdExpbmtQcmVsb2FkRW5hYmxlZFByZWZl
cmVuY2VLZXkgQCJXZWJLaXRMaW5rUHJlbG9hZEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENyZWRl
bnRpYWxNYW5hZ2VtZW50RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDcmVkZW50aWFsTWFu
YWdlbWVudEVuYWJsZWQiCisjZGVmaW5lIFdlYktpdE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zy
b21Eb2N1bWVudCBAIldlYktpdE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudCIK
IAogI2lmICFUQVJHRVRfT1NfSVBIT05FCiAvLyBUaGVzZSBhcmUgcHJpdmF0ZSBib3RoIGJlY2F1
c2UgY2FsbGVycyBzaG91bGQgYmUgdXNpbmcgdGhlIGNvdmVyIG1ldGhvZHMgYW5kIGJlY2F1c2Ug
dGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCA3
NzQ5YWM2NzQ3MzU3YzdhMzlhMWVlZDAwYzUxOTRkMWViMmY0MWE3Li5mOGM1N2M4MTIyYmRjMTZk
MWRjOWU2MWFkYjJjYjM5ZDMzNGYwYjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXMubW0KQEAgLTY2OSw2ICs2NjksNyBAQCArICh2b2lkKWluaXRpYWxpemUK
ICAgICAgICAgQE5PLCBXZWJLaXRVc2VyVGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAg
ICAgIEBOTywgV2ViS2l0UmVzb3VyY2VUaW1pbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAg
ICAgQE5PLCBXZWJLaXRDcmVkZW50aWFsTWFuYWdlbWVudEVuYWJsZWRQcmVmZXJlbmNlS2V5LAor
ICAgICAgICBATk8sIFdlYktpdE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudCwK
ICAgICAgICAgbmlsXTsKIAogI2lmICFQTEFURk9STShJT1MpCkBAIC0zMDYyLDYgKzMwNjMsMTYg
QEAgLSAodm9pZClzZXRDcmVkZW50aWFsTWFuYWdlbWVudEVuYWJsZWQ6KEJPT0wpZmxhZwogICAg
IFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0Q3JlZGVudGlhbE1hbmFnZW1l
bnRFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpbWVkaWFVc2VyR2VzdHVyZUlu
aGVyaXRzRnJvbURvY3VtZW50Cit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6
V2ViS2l0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50XTsKK30KKworLSAodm9p
ZClzZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQ6KEJPT0wpZmxhZworewor
ICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0TWVkaWFVc2VyR2VzdHVy
ZUluaGVyaXRzRnJvbURvY3VtZW50XTsKK30KKwogI2lmIFBMQVRGT1JNKElPUykKIC0gKEJPT0wp
cXVpY2tMb29rRG9jdW1lbnRTYXZpbmdFbmFibGVkCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCBlZjVlZmM5NTJmOTk4Yjli
NmE1YjBiYjU4NDgwOTUwMzgyN2YwYmUwLi44MjNmYzM2ZTA1MGFiYzRkMTA3ZDBlNWFmYWZlYzk5
ODlkZjYxYzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXNQcml2YXRlLmgKQEAgLTU1OSw2ICs1NTksNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlBy
ZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbjsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljKSBCT09MIHJlc291cmNlVGltaW5nRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljKSBCT09MIGxpbmtQcmVsb2FkRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIGNyZWRlbnRpYWxNYW5hZ2VtZW50RW5hYmxlZDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIG1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudDsKIAogI2lmIFRBUkdFVF9P
U19JUEhPTkUKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHF1aWNrTG9va0RvY3VtZW50U2F2
aW5nRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJl
bmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNE
ZWZpbml0aW9ucy5oCmluZGV4IGY1MjI2YWY1OTUxYWUwYzU5NDIxMWEzY2EyODNhNGVmMWZmZDA5
ZjkuLjZkODc2ZTdkMjI4NzAzMjk5NGEwNTZjZDgyNjhkOTkyNDUzMGM4NjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApAQCAtMTcy
LDYgKzE3Miw3IEBACiAgICAgbWFjcm8oUmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUGxheWJh
Y2ssIHJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1BsYXliYWNrLCBCb29sLCBib29sLCBERUZB
VUxUX1JFUVVJUkVTX1VTRVJfR0VTVFVSRV9GT1JfQVVESU9fUExBWUJBQ0ssICIiLCAiIikgXAog
ICAgIG1hY3JvKFJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRWaWRlbywgcmVxdWlyZXNVc2VyR2Vz
dHVyZVRvTG9hZFZpZGVvLCBCb29sLCBib29sLCBmYWxzZSwgIiIsICIiKSBcCiAgICAgbWFjcm8o
TWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxlZCwgbWFpbkNvbnRlbnRVc2VyR2Vz
dHVyZU92ZXJyaWRlRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAiIikgXAorICAgIG1h
Y3JvKE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudCwgbWVkaWFVc2VyR2VzdHVy
ZUluaGVyaXRzRnJvbURvY3VtZW50LCBCb29sLCBib29sLCBmYWxzZSwgIiIsICIiKSBcCiAgICAg
bWFjcm8oQWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjaywgYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFj
aywgQm9vbCwgYm9vbCwgREVGQVVMVF9BTExPV1NfSU5MSU5FX01FRElBX1BMQVlCQUNLLCAiIiwg
IiIpIFwKICAgICBtYWNybyhBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVu
LCBhbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuLCBCb29sLCBib29sLCBE
RUZBVUxUX0FMTE9XU19JTkxJTkVfTUVESUFfUExBWUJBQ0tfQUZURVJfRlVMTFNDUkVFTiwgIiIs
ICIiKSBcCiAgICAgbWFjcm8oSW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVB
dHRyaWJ1dGUsIGlubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRl
LCBCb29sLCBib29sLCBERUZBVUxUX0lOTElORV9NRURJQV9QTEFZQkFDS19SRVFVSVJFU19QTEFZ
U19JTkxJTkVfQVRUUklCVVRFLCAiIiwgIiIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCA5NTQyZTBmNmQ0Y2QwYzM5ZDA3NGQ1
ZjM4YWFiNTc4OWYxY2ZiZTcwLi5lYWQ3NmJhODQ2MWQ2ZDQyNDEzZGFjOGRhNWI4ZWFjMWY4ZGE1
NjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXMuY3BwCkBAIC0xNzYwLDMgKzE3NjAsMTMgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0U2hvdWxk
U3VwcHJlc3NLZXlib2FyZElucHV0RHVyaW5nUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdLUHIKIHsK
ICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2hvdWxkU3VwcHJlc3NLZXlib2Fy
ZElucHV0RHVyaW5nUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKCk7CiB9CisKK3ZvaWQgV0tQcmVmZXJl
bmNlc1NldE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudChXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2Vz
UmVmKS0+c2V0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50KGZsYWcpOworfQor
Citib29sIFdLUHJlZmVyZW5jZXNHZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1l
bnQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAgICByZXR1cm4gdG9JbXBs
KHByZWZlcmVuY2VzUmVmKS0+bWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50KCk7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlc1JlZlByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzUmVmUHJpdmF0ZS5oCmluZGV4IDJiOWM2MGU4ZmEwNjhlZjRiMjdmZTI5YWYyY2Y0MmEw
ZjU4OGI0MDguLmNkMjMyYjk2MzU3ZGU5YTExYjZiMTcwMzg4MDZlYThlMTY3YmJlMmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
UmVmUHJpdmF0ZS5oCkBAIC00OTMsNiArNDkzLDEwIEBAIFdLX0VYUE9SVCBib29sIFdLUHJlZmVy
ZW5jZXNHZXRDcmVkZW50aWFsTWFuYWdlbWVudEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7CiBX
S19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0SW52aXNpYmxlTWVkaWFBdXRvcGxheVBlcm1p
dHRlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVm
ZXJlbmNlc0dldEludmlzaWJsZU1lZGlhQXV0b3BsYXlQZXJtaXR0ZWQoV0tQcmVmZXJlbmNlc1Jl
Zik7CiAKKy8vIERlZmF1bHRzIHRvIGZhbHNlLgorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNl
c1NldE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudChXS1ByZWZlcmVuY2VzUmVm
LCBib29sIGZsYWcpOworV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldE1lZGlhVXNlckdl
c3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudChXS1ByZWZlcmVuY2VzUmVmKTsKKwogI2lmZGVmIF9f
Y3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCAwZTExNzgyNTQ5MzRhYTUwZDQ4ZTJmN2FmMzQ1NWIyYzM1MmU0
YjMxLi4zYzRjZTZhNDg4MDM1NGM4MWY1ZjJjNDhiMjdiZmY2ZTRlMDVlMjQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zMTIxLDYgKzMx
MjEsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVu
Y2VzU3RvcmUmIHN0b3JlKQogICAgIHNldHRpbmdzLnNldEF1ZGlvUGxheWJhY2tSZXF1aXJlc1Vz
ZXJHZXN0dXJlKHJlcXVpcmVzVXNlckdlc3R1cmVGb3JNZWRpYSB8fCBzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1Bs
YXliYWNrS2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2Fk
VmlkZW8oc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpyZXF1aXJl
c1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW9LZXkoKSkpOwogICAgIHNldHRpbmdzLnNldE1haW5Db250
ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjptYWluQ29udGVudFVzZXJHZXN0dXJlT3ZlcnJpZGVFbmFibGVkS2V5
KCkpKTsKKyAgICBzZXR0aW5ncy5zZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1l
bnQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjptZWRpYVVzZXJH
ZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnRLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldEFsbG93
c0lubGluZU1lZGlhUGxheWJhY2soc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVu
Y2VzS2V5OjphbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrS2V5KCkpKTsKICAgICBzZXR0aW5ncy5z
ZXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuKHN0b3JlLmdldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6YWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0Fm
dGVyRnVsbHNjcmVlbktleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0SW5saW5lTWVkaWFQbGF5YmFj
a1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjppbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0
dHJpYnV0ZUtleSgpKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzlhNGM3NDk5MmQ2MmVjMTJhMjBmOWY1NDZmZjY4YzMw
ODdjNmVmNS4uYzljYjY2OTNmMTI3MGQ3Mjc5NTE1Nzg2NTY4NGJmZGFmZTMxYTgxNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDE3LTA1LTE1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBleHBlcmltZW50YWwgc2V0dGluZyB0byBhbGxvdyBkb2N1bWVu
dCBnZXN0dXJlIGludGVyYWN0aW9uIHRvIGZ1bGZpbGwgbWVkaWEgcGxheWJhY2sgZ2VzdHVyZSBy
ZXF1aXJlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcyMTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBtZWRpYS9yZXN0cmljdGVkLWF1ZGlvLXBsYXliYWNrLXdpdGgtZG9jdW1lbnQtZ2VzdHVy
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3Jlc3RyaWN0ZWQtYXVkaW8t
cGxheWJhY2std2l0aC1kb2N1bWVudC1nZXN0dXJlLmh0bWw6IEFkZGVkLgorCiAyMDE3LTA1LTEx
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IERlZmVyIHRl
eHQgY2hhbmdlcyB1bnRpbCBhZnRlciB0aGUgdHJlZSBpcyBjbGVhbiBpZiBuZWVkZWQuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9yZXN0cmljdGVkLWF1ZGlvLXBsYXliYWNrLXdpdGgt
ZG9jdW1lbnQtZ2VzdHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9yZXN0cmlj
dGVkLWF1ZGlvLXBsYXliYWNrLXdpdGgtZG9jdW1lbnQtZ2VzdHVyZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWUyNTBiN2RhOTYyMzBlN2YxMGI2NGFlZGFiYTk1N2U1NDVjNjQzMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3Jlc3RyaWN0ZWQtYXVkaW8tcGxheWJhY2st
d2l0aC1kb2N1bWVudC1nZXN0dXJlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0
IHRoYXQsIHdoZW4gUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlIGlzIHNldCBh
bG5vZyB3aXRoIE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0ZvckRvY3VtZW50LCBhIHVzZXIgZ2Vz
dHVyZSBpbiB0aGUgZG9jdW1lbnQgd2lsbCBhbGxvdyBmdXR1cmUgbWVkaWEgcGxheWJhY2sgcmVx
dWVzdHMgdG8gc3VjY2VlZC4KKworCitSVU4oaW50ZXJuYWxzLnNldE1lZGlhRWxlbWVudFJlc3Ry
aWN0aW9ucyh2aWRlbywgIlJlcXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSIpKQor
UlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9j
dW1lbnQodHJ1ZSkpCitSdW5uaW5nIHdpdGgga2V5RG93bi4KK1JVTih2aWRlby5zcmMgPSBmaW5k
TWVkaWFGaWxlKCdhdWRpbycsICdjb250ZW50L3Rlc3QnKSkKK0VWRU5UKGNhbnBsYXl0aHJvdWdo
KQorUlVOKHZpZGVvLnBsYXkoKSkKK0VYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ2ZhbHNlJykg
T0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3Jlc3RyaWN0
ZWQtYXVkaW8tcGxheWJhY2std2l0aC1kb2N1bWVudC1nZXN0dXJlLmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS9yZXN0cmljdGVkLWF1ZGlvLXBsYXliYWNrLXdpdGgtZG9jdW1lbnQtZ2VzdHVyZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM0MGIzODZjYzkzMDM2MzdhMjJkODllMmMwMzdjOWJjODgwYWM5MzMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9yZXN0cmljdGVkLWF1ZGlvLXBs
YXliYWNrLXdpdGgtZG9jdW1lbnQtZ2VzdHVyZS5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+cmVzdHJpY3RlZC1hdWRpby1w
bGF5YmFjay13aXRoLWRvY3VtZW50LWdlc3R1cmU8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPW1l
ZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48L3Nj
cmlwdD4KKworICAgIDxzY3JpcHQ+CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAg
ICAgICB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhdWRpbycpWzBdOwor
CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBydW4oJ2ludGVy
bmFscy5zZXRNZWRpYUVsZW1lbnRSZXN0cmljdGlvbnModmlkZW8sICJSZXF1aXJlVXNlckdlc3R1
cmVGb3JBdWRpb1JhdGVDaGFuZ2UiKScpOworICAgICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50KHRydWUpJyk7Cisg
ICAgICAgIH0KKworICAgICAgICBjb25zb2xlV3JpdGUoJ1J1bm5pbmcgd2l0aCBrZXlEb3duLicp
OworICAgICAgICBydW5XaXRoS2V5RG93bigoKSA9PiB7CisgICAgICAgICAgICBydW4oInZpZGVv
LnNyYyA9IGZpbmRNZWRpYUZpbGUoJ2F1ZGlvJywgJ2NvbnRlbnQvdGVzdCcpIik7CisgICAgICAg
ICAgICB3YWl0Rm9yRXZlbnQoJ2NhbnBsYXl0aHJvdWdoJywgY2FucGxheXRocm91Z2gpOworICAg
ICAgICAgICAgd2FpdEZvckV2ZW50QW5kRmFpbCgnZXJyb3InKTsKKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gY2FucGxheXRocm91Z2goKQorICAgIHsKKyAgICAgICAgcnVuKCJ2
aWRlby5wbGF5KCkiKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby5wYXVzZWQnLCBmYWxz
ZSk7CisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+CisK
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0IHRoYXQsIHdoZW4gUmVxdWly
ZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlIGlzIHNldCBhbG5vZyB3aXRoIE1lZGlhVXNl
ckdlc3R1cmVJbmhlcml0c0ZvckRvY3VtZW50LCBhIHVzZXIgZ2VzdHVyZSBpbiB0aGUgZG9jdW1l
bnQgd2lsbCBhbGxvdyBmdXR1cmUgbWVkaWEgcGxheWJhY2sgcmVxdWVzdHMgdG8gc3VjY2VlZC48
L3A+CisgICAgPGF1ZGlvIGNvbnRyb2xzIGF1dG9wbGF5PjwvYXVkaW8+Cis8L2JvZHk+Cis8L2h0
bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310163</attachid>
            <date>2017-05-15 14:22:00 -0700</date>
            <delta_ts>2017-05-15 14:50:21 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-172131-20170515142300.patch</filename>
            <type>text/plain</type>
            <size>32046</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2NzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjljZWQzYTJjNWE0NmEw
MTJmMzMxYzNlNDU1M2RlNmI5MWM0YTViYS4uOTQ4MmFjNmM5OWNiZGQzMmNiNTA3ODc1NDc4YTgw
ZWZiNTliNGVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE3LTA1LTE1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBleHBlcmltZW50YWwg
c2V0dGluZyB0byBhbGxvdyBkb2N1bWVudCBnZXN0dXJlIGludGVyYWN0aW9uIHRvIGZ1bGZpbGwg
bWVkaWEgcGxheWJhY2sgZ2VzdHVyZSByZXF1aXJlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogbWVkaWEvcmVzdHJpY3RlZC1hdWRpby1w
bGF5YmFjay13aXRoLWRvY3VtZW50LWdlc3R1cmUuaHRtbAorCisgICAgICAgIE1vdmUgYWxsIGNh
bGxzIHRvIFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkg
dG8gdGhlIG5ldyBEb2N1bWVudCBlcXVpdmFsZW50LiBJbiBEb2N1bWVudCwKKyAgICAgICAgaWYg
dGhlIG5ldyBzZXR0aW5nIGlzIGVuYWJsZWQsIHJldHVybiB0cnVlIGZyb20gcHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlRm9yTWVkaWEoKSBpZiB0aGUgdG9wLWxldmVsIGRvY3VtZW50IGhhcyBoYWQKKyAg
ICAgICAgYSB1c2VyIGdlc3R1cmUgaW50ZXJhY3Rpb24uCisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSk6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6cHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlRm9yTWVkaWEpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0Ojp3aWxs
QmVnaW5QbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OndpbGxQYXVz
ZVBsYXliYWNrKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50Ojpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpzZWVrV2l0aFRvbGVyYW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnBsYXlJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwYXVzZUludGVybmFsKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldE11dGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OndlYmtpdFNob3dQbGF5YmFja1RhcmdldFBpY2tl
cik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpwcm9jZXNzaW5nVXNlckdl
c3R1cmVGb3JNZWRpYSk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhRWxlbWVudFNlc3Npb246OnBsYXliYWNrUGVybWl0dGVkKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhRWxlbWVudFNlc3Npb246OmRhdGFMb2FkaW5nUGVybWl0dGVkKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhRWxlbWVudFNlc3Npb246OmZ1bGxzY3JlZW5QZXJtaXR0ZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRyb2xzTWFuYWdlcik6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpzaG93UGxheWJhY2tUYXJn
ZXRQaWNrZXIpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaDoKKwogMjAxNy0wNS0xMiAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBPbmx5IGV2ZXIgaW5pdGlhbGl6ZSBM
aWJXZWJSVENQcm92aWRlcidzIHN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKCkgZmFjdG9yaWVzIG9u
Y2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNWI5MWFmMTdiOGQzYmVmNTIxMWZjMjJiOTZhNWFkNDlh
Y2Q5NzZkMC4uZWFiODM3MDNjZjdiYTMzMGM3MGUwMTdmODZkNzY3NjQwNDAzYjc4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA1LTE1ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBleHBlcmltZW50YWwgc2V0dGluZyB0byBh
bGxvdyBkb2N1bWVudCBnZXN0dXJlIGludGVyYWN0aW9uIHRvIGZ1bGZpbGwgbWVkaWEgcGxheWJh
Y2sgZ2VzdHVyZSByZXF1aXJlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcyMTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgrW1dlYlByZWZlcmVu
Y2VzIGluaXRpYWxpemVdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgbWVkaWFVc2VyR2Vz
dHVyZUluaGVyaXRzRnJvbURvY3VtZW50XSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNl
dE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudDpdKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorCiAyMDE3LTA1LTExICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIE1haWwgc3BpbnMgbGF1bmNoaW5n
IHNwZWxsIGNoZWNrZXIgd2hlbiB0eXBpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5ZWVlNzJmMjNlYzQ2Yzg3
N2ZiYjVhYTYzYWI3ZDRiNWJjYTBkMjdhLi5hZDliOWIwZTMwOTgzYzhhY2I3NDQ0M2NhZjg1ZWY4
MjYwNzhmMjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTctMDUtMTUgIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGV4cGVyaW1lbnRhbCBz
ZXR0aW5nIHRvIGFsbG93IGRvY3VtZW50IGdlc3R1cmUgaW50ZXJhY3Rpb24gdG8gZnVsZmlsbCBt
ZWRpYSBwbGF5YmFjayBnZXN0dXJlIHJlcXVpcmVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMzEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRp
b25zLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAg
ICAgICAoV0tQcmVmZXJlbmNlc1NldE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVu
dCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJv
bURvY3VtZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlBy
aXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKwogMjAxNy0wNS0xMSAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dLV2Vic2l0ZURh
dGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczouLi5dIGRvZXNuJ3Qgd29yayBmb3IgSW5kZXhlZERC
IGlmIHRoZSBkYXRhIHN0b3JlIGhhcyBhIGN1c3RvbSBJREIgcGF0aC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKaW5kZXggMjZmNTRl
MDgwYWZjYjk5OTA0ZjhkMjJkNmRjOTk4Nzg3Y2Q1MmY0NC4uODBiZTVmZmQwNzZjNzk0MmI5MmEz
ZDZhN2ZlZGQ3Y2I4MTQ3ZTk4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKQEAgLTUwNiw2ICs1MDYsMTEgQEAgYm9vbCBNZWRp
YVN0cmVhbTo6Y2FuUHJvZHVjZUF1ZGlvKCkgY29uc3QKICAgICByZXR1cm4gIW11dGVkKCkgJiYg
YWN0aXZlKCkgJiYgbV9wcml2YXRlLT5oYXNBdWRpbygpICYmIG1faXNQcm9kdWNpbmdEYXRhOwog
fQogCitib29sIE1lZGlhU3RyZWFtOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgpLT5wcm9jZXNzaW5nVXNl
ckdlc3R1cmVGb3JNZWRpYSgpIDogZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKaW5kZXggZDIyYTkxNWEzYzkwMDg3MWVi
YzM1ZTkzOGNlOTk5M2QyODg5ZjY2My4uZWE2NDI3N2Q4OTYxMDBiZmJiYjc2ZWMwYjQzNTk4ZTcw
YjUwZDYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW0uaApAQCAtMTUzLDYgKzE1Myw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIHNvdXJj
ZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgY2FuUHJvZHVj
ZUF1ZGlvKCkgY29uc3QgZmluYWw7CiAgICAgY29uc3QgRG9jdW1lbnQqIGhvc3RpbmdEb2N1bWVu
dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGRvY3VtZW50KCk7IH0KKyAgICBib29sIHByb2Nlc3Np
bmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgY29uc3QgZmluYWw7CiAKICAgICBib29sIGludGVybmFs
QWRkVHJhY2soUmVmPE1lZGlhU3RyZWFtVHJhY2s+JiYsIFN0cmVhbU1vZGlmaWVyKTsKICAgICBi
b29sIGludGVybmFsUmVtb3ZlVHJhY2soY29uc3QgU3RyaW5nJiwgU3RyZWFtTW9kaWZpZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmlu
ZGV4IDIzNTI5OWNiZTUzZGU3MDQyNjY3YmU5Y2JlOGViYmUxMzRmZGM0NTkuLjg4NGQ2MmM0OTVl
NGI2Y2I2MzM5YTJhMDA4NmFlOTU5NmZlYWRhODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTM2OCw2ICszNjgsMTEgQEAgU3Ry
aW5nIEF1ZGlvQ29udGV4dDo6c291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3QKICAg
ICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAorYm9vbCBBdWRpb0NvbnRleHQ6OnByb2Nlc3Np
bmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKSA/
IGRvY3VtZW50KCktPnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgOiBmYWxzZTsKK30K
Kwogdm9pZCBBdWRpb0NvbnRleHQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKQogewogICAgIC8v
IERvIG5vdCBzdXNwZW5kIGlmIGF1ZGlvIGlzIGF1ZGlibGUuCkBAIC05MzMsNyArOTM4LDcgQEAg
dm9pZCBBdWRpb0NvbnRleHQ6Om5vZGVXaWxsQmVnaW5QbGF5YmFjaygpCiBib29sIEF1ZGlvQ29u
dGV4dDo6d2lsbEJlZ2luUGxheWJhY2soKQogewogICAgIGlmICh1c2VyR2VzdHVyZVJlcXVpcmVk
Rm9yQXVkaW9TdGFydCgpKSB7Ci0gICAgICAgIGlmICghU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vz
c2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKKyAgICAgICAgaWYgKCFwcm9jZXNzaW5nVXNlckdl
c3R1cmVGb3JNZWRpYSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZW1v
dmVCZWhhdmlvclJlc3RyaWN0aW9uKEF1ZGlvQ29udGV4dDo6UmVxdWlyZVVzZXJHZXN0dXJlRm9y
QXVkaW9TdGFydFJlc3RyaWN0aW9uKTsKICAgICB9CkBAIC05NTMsNyArOTU4LDcgQEAgYm9vbCBB
dWRpb0NvbnRleHQ6OndpbGxCZWdpblBsYXliYWNrKCkKIGJvb2wgQXVkaW9Db250ZXh0Ojp3aWxs
UGF1c2VQbGF5YmFjaygpCiB7CiAgICAgaWYgKHVzZXJHZXN0dXJlUmVxdWlyZWRGb3JBdWRpb1N0
YXJ0KCkpIHsKLSAgICAgICAgaWYgKCFTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdl
c3R1cmVGb3JNZWRpYSgpKQorICAgICAgICBpZiAoIXByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1l
ZGlhKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlbW92ZUJlaGF2aW9y
UmVzdHJpY3Rpb24oQXVkaW9Db250ZXh0OjpSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1N0YXJ0
UmVzdHJpY3Rpb24pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5oCmluZGV4IDQ5YmIxMzdjYzhhYjIxZGQ0Zjk4YmUxNWNjYWRmZjgxODA4
MzI1M2UuLjc3ZmE4NzdlMzhkZGI1MzE2MjkwNDBhYzc5MDdiYmM5Mjk5ZTNjZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaApAQCAtMzE5LDYg
KzMxOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRPdmVycmlkZUJhY2tncm91bmRQbGF5
YmFja1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJbnRlcnJ1cHRpb25UeXBlKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIFN0cmluZyBzb3VyY2VBcHBsaWNh
dGlvbklkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGNhblByb2R1Y2VBdWRp
bygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIHByb2Nlc3NpbmdVc2Vy
R2VzdHVyZUZvck1lZGlhKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHZpc2liaWxpdHlTdGF0
ZUNoYW5nZWQoKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggY2EyNWZjYWJj
ZDhjNmYyYzRmZDNjNjA4NDU1ZjNkMmE0NmE1NTQ0Mi4uNzU0YmVjOTVjYzcyZmIwZmMxZWViOWQx
MmU2ZWFjN2NmMzM4ODUwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02MzU5LDYgKzYz
NTksMTcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTGFzdEhhbmRsZWRVc2VyR2VzdHVyZVRpbWVz
dGFtcChNb25vdG9uaWNUaW1lIHRpbWUpCiAgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCkudXBk
YXRlTGFzdEhhbmRsZWRVc2VyR2VzdHVyZVRpbWVzdGFtcCh0aW1lKTsKIH0KIAorYm9vbCBEb2N1
bWVudDo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSBjb25zdAoreworICAgIGlmIChT
Y3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgIGlmICghc2V0dGluZ3MoKS5tZWRpYVVzZXJHZXN0dXJlSW5o
ZXJpdHNGcm9tRG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJu
IHRvcERvY3VtZW50KCkuaGFzSGFkVXNlckludGVyYWN0aW9uKCk7Cit9CisKIHZvaWQgRG9jdW1l
bnQ6OnN0YXJ0VHJhY2tpbmdTdHlsZVJlY2FsY3MoKQogewogICAgIG1fc3R5bGVSZWNhbGNDb3Vu
dCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGFiOGE0ZGFhMzA2Zjc4YWVkMjA4MjVkMGY3
NGI2NzEyNDA0NGU4MDkuLmIwNjQyOWRlNDJiZmI3MzhkZjE2MzVlMGI3ZGI5MTJkM2QxNjk0Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMTQ4LDYgKzExNDgsNyBAQCBwdWJsaWM6CiAgICAg
TW9ub3RvbmljVGltZSBsYXN0SGFuZGxlZFVzZXJHZXN0dXJlVGltZXN0YW1wKCkgY29uc3QgeyBy
ZXR1cm4gbV9sYXN0SGFuZGxlZFVzZXJHZXN0dXJlVGltZXN0YW1wOyB9CiAgICAgYm9vbCBoYXNI
YWRVc2VySW50ZXJhY3Rpb24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxib29sPihtX2xh
c3RIYW5kbGVkVXNlckdlc3R1cmVUaW1lc3RhbXApOyB9CiAgICAgdm9pZCB1cGRhdGVMYXN0SGFu
ZGxlZFVzZXJHZXN0dXJlVGltZXN0YW1wKE1vbm90b25pY1RpbWUpOworICAgIGJvb2wgcHJvY2Vz
c2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0VXNlckRpZElu
dGVyYWN0V2l0aFBhZ2UoYm9vbCB1c2VyRGlkSW50ZXJhY3RXaXRoUGFnZSkgeyBBU1NFUlQoJnRv
cERvY3VtZW50KCkgPT0gdGhpcyk7IG1fdXNlckRpZEludGVyYWN0V2l0aFBhZ2UgPSB1c2VyRGlk
SW50ZXJhY3RXaXRoUGFnZTsgfQogICAgIGJvb2wgdXNlckRpZEludGVyYWN0V2l0aFBhZ2UoKSBj
b25zdCB7IEFTU0VSVCgmdG9wRG9jdW1lbnQoKSA9PSB0aGlzKTsgcmV0dXJuIG1fdXNlckRpZElu
dGVyYWN0V2l0aFBhZ2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CmluZGV4IGM2NzYwMjQzY2Y5MGRkZjhlMTQzZTM5ZDRmZDgxNjllOGVkMjAzMjQuLjZmOTU1ODQ3
NTUwMjViNGRiNTUxNThiN2RjZmE5Njk3MDkyYjM4ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTE2MSw3ICsxMTYxLDcgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojpsb2FkKCkKICAgICAKICAgICBpZiAoIW1fbWVkaWFTZXNzaW9uLT5kYXRhTG9hZGlu
Z1Blcm1pdHRlZCgqdGhpcykpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoU2NyaXB0Q29udHJv
bGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKKyAgICBpZiAocHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgcmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rp
b25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKCk7CiAKICAgICBwcmVwYXJlRm9yTG9hZCgpOwpAQCAt
MTg3Nyw3ICsxODc3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjphdWRpb1RyYWNrRW5hYmxl
ZENoYW5nZWQoQXVkaW9UcmFjayYgdHJhY2spCiB7CiAgICAgaWYgKG1fYXVkaW9UcmFja3MgJiYg
bV9hdWRpb1RyYWNrcy0+Y29udGFpbnModHJhY2spKQogICAgICAgICBtX2F1ZGlvVHJhY2tzLT5z
Y2hlZHVsZUNoYW5nZUV2ZW50KCk7Ci0gICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3Np
bmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCisgICAgaWYgKHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZv
ck1lZGlhKCkpCiAgICAgICAgIHJlbW92ZUJlaGF2aW9yc1Jlc3RyaWN0aW9uc0FmdGVyRmlyc3RV
c2VyR2VzdHVyZShNZWRpYUVsZW1lbnRTZXNzaW9uOjpBbGxSZXN0cmljdGlvbnMgJiB+TWVkaWFF
bGVtZW50U2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2Vy
KTsKIH0KIApAQCAtMjY4OCw3ICsyNjg4LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWVr
V2l0aFRvbGVyYW5jZShjb25zdCBNZWRpYVRpbWUmIGluVGltZSwgY29uc3QgTWVkaWFUaW0KICAg
ICB9IGVsc2UKICAgICAgICAgc2Vla1Rhc2soKTsKIAotICAgIGlmIChTY3JpcHRDb250cm9sbGVy
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQorICAgIGlmIChwcm9jZXNzaW5nVXNl
ckdlc3R1cmVGb3JNZWRpYSgpKQogICAgICAgICBtX21lZGlhU2Vzc2lvbi0+cmVtb3ZlQmVoYXZp
b3JSZXN0cmljdGlvbihNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0Nv
bnRyb2xDb250cm9sc01hbmFnZXIpOwogfQogCkBAIC0zMTUzLDcgKzMxNTMsNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnBsYXkoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChTY3JpcHRDb250cm9sbGVyOjpwcm9j
ZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQorICAgIGlmIChwcm9jZXNzaW5nVXNlckdlc3R1
cmVGb3JNZWRpYSgpKQogICAgICAgICByZW1vdmVCZWhhdmlvcnNSZXN0cmljdGlvbnNBZnRlckZp
cnN0VXNlckdlc3R1cmUoKTsKIAogICAgIGlmICghcGxheUludGVybmFsKCkpIHsKQEAgLTMxNzQs
NyArMzE3NCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGxheSgpCiAgICAgICAgICAgICBz
ZXRQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZShQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZTo6
UHJldmVudGVkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAoU2NyaXB0Q29udHJv
bGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKKyAgICBpZiAocHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgcmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rp
b25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKCk7CiAKICAgICBwbGF5SW50ZXJuYWwoKTsKQEAgLTMy
MzgsNyArMzIzOCw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6cGxheUludGVybmFsKCkKICAg
ICB9IGVsc2UgaWYgKG1fcmVhZHlTdGF0ZSA+PSBIQVZFX0ZVVFVSRV9EQVRBKQogICAgICAgICBz
Y2hlZHVsZVJlc29sdmVQZW5kaW5nUGxheVByb21pc2VzKCk7CiAKLSAgICBpZiAoU2NyaXB0Q29u
dHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkgeworICAgIGlmIChwcm9j
ZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CiAgICAgICAgIGlmIChtX3BsYXliYWNrV2l0
aG91dFVzZXJHZXN0dXJlID09IFBsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlOjpQcmV2ZW50ZWQp
IHsKICAgICAgICAgICAgIGhhbmRsZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudDo6RGlkUGxh
eU1lZGlhUHJldmVudGVkRnJvbVBsYXlpbmcpOwogICAgICAgICAgICAgc2V0UGxheWJhY2tXaXRo
b3V0VXNlckdlc3R1cmUoUGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmU6Ok5vbmUpOwpAQCAtMzI1
OSw3ICszMjU5LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwYXVzZSgpCiAgICAgaWYgKCFt
X21lZGlhU2Vzc2lvbi0+cGxheWJhY2tQZXJtaXR0ZWQoKnRoaXMpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVk
aWEoKSkKKyAgICBpZiAocHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAg
cmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKE1lZGlhRWxl
bWVudFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlcik7
CiAKICAgICBwYXVzZUludGVybmFsKCk7CkBAIC0zMjg2LDcgKzMyODYsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnBhdXNlSW50ZXJuYWwoKQogCiAgICAgbV9hdXRvcGxheWluZyA9IGZhbHNl
OwogCi0gICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1l
ZGlhKCkpCisgICAgaWYgKHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCiAgICAgICAg
IHVzZXJEaWRJbnRlcmZlcmVXaXRoQXV0b3BsYXkoKTsKIAogICAgIHNldFBsYXliYWNrV2l0aG91
dFVzZXJHZXN0dXJlKFBsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlOjpOb25lKTsKQEAgLTMzODEs
NyArMzM4MSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkK
IAogICAgIGJvb2wgbXV0ZWRTdGF0ZUNoYW5nZWQgPSBtX211dGVkICE9IG11dGVkOwogICAgIGlm
IChtdXRlZFN0YXRlQ2hhbmdlZCB8fCAhbV9leHBsaWNpdGx5TXV0ZWQpIHsKLSAgICAgICAgaWYg
KFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsKKyAg
ICAgICAgaWYgKHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsKICAgICAgICAgICAg
IHJlbW92ZUJlaGF2aW9yc1Jlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZShNZWRpYUVs
ZW1lbnRTZXNzaW9uOjpBbGxSZXN0cmljdGlvbnMgJiB+TWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVx
dWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKTsKIAogICAgICAgICAgICAg
aWYgKGhhc0F1ZGlvKCkgJiYgbXV0ZWQpCkBAIC01MzkzLDcgKzUzOTMsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnN5bmNUZXh0VHJhY2tCb3VuZHMoKQogdm9pZCBIVE1MTWVkaWFFbGVtZW50
Ojp3ZWJraXRTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKQogewogICAgIExPRyhNZWRpYSwgIkhU
TUxNZWRpYUVsZW1lbnQ6OndlYmtpdFNob3dQbGF5YmFja1RhcmdldFBpY2tlciglcCkiLCB0aGlz
KTsKLSAgICBpZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVk
aWEoKSkKKyAgICBpZiAocHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAg
cmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKCk7CiAgICAg
bV9tZWRpYVNlc3Npb24tPnNob3dQbGF5YmFja1RhcmdldFBpY2tlcigqdGhpcyk7CiB9CkBAIC03
MTI3LDYgKzcxMjcsMTEgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpzaG91bGRPdmVycmlkZUJh
Y2tncm91bmRQbGF5YmFja1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWEKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK2Jvb2wgSFRNTE1lZGlhRWxlbWVudDo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9y
TWVkaWEoKSBjb25zdAoreworICAgIHJldHVybiBkb2N1bWVudCgpLnByb2Nlc3NpbmdVc2VyR2Vz
dHVyZUZvck1lZGlhKCk7Cit9CisKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
KQogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVNZWRpYVN0YXRlKFVwZGF0ZVN0YXRlIHVw
ZGF0ZVN0YXRlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAx
OWMzM2MxN2IxNjcwY2U2MDI5MmEwN2M5ZDkxYjk2ZTZmOTIxNDM1Li4zODgxZDgxMGQ4MTM2MGMx
ZTA4ZTliODkwOWQ2NzU1MTgyMTI4YTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaApAQCAtODE0LDYgKzgxNCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRPdmVy
cmlkZUJhY2tncm91bmRQbGF5YmFja1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpJ
bnRlcnJ1cHRpb25UeXBlKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHNob3VsZE92ZXJyaWRl
QmFja2dyb3VuZExvYWRpbmdSZXN0cmljdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wg
Y2FuUHJvZHVjZUF1ZGlvKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBwcm9jZXNzaW5nVXNlckdl
c3R1cmVGb3JNZWRpYSgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBwYWdlTXV0ZWRTdGF0ZURp
ZENoYW5nZSgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01l
ZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRT
ZXNzaW9uLmNwcAppbmRleCBjYTdiZTc0NDliOGIwNTYzYjNmZjQzZjg2OWIxM2Y5MTNjMDY4YTMz
Li4wOWNlNzdhY2NiMWU1MThiODg1ZTQ1ZTQ5OGQwMDhlZWNhZGQxMjI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTE3MywxNyArMTczLDE3IEBA
IFN1Y2Nlc3NPcjxNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uPiBNZWRpYUVsZW1lbnRTZXNzaW9u
OjpwbGF5YmFja1Blcm1pdHRlZChjb25zCiAgICAgfQogI2VuZGlmCiAKLSAgICBpZiAobV9yZXN0
cmljdGlvbnMgJiBSZXF1aXJlVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2UgJiYgZWxlbWVu
dC5pc1ZpZGVvKCkgJiYgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZv
ck1lZGlhKCkpIHsKKyAgICBpZiAobV9yZXN0cmljdGlvbnMgJiBSZXF1aXJlVXNlckdlc3R1cmVG
b3JWaWRlb1JhdGVDaGFuZ2UgJiYgZWxlbWVudC5pc1ZpZGVvKCkgJiYgIWVsZW1lbnQuZG9jdW1l
bnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CiAgICAgICAgIExPRyhNZWRp
YSwgIk1lZGlhRWxlbWVudFNlc3Npb246OnBsYXliYWNrUGVybWl0dGVkIC0gcmV0dXJuaW5nIEZB
TFNFIGJlY2F1c2Ugb2YgdmlkZW8gcmF0ZSBjaGFuZ2UgcmVzdHJpY3Rpb24iKTsKICAgICAgICAg
cmV0dXJuIE1lZGlhUGxheWJhY2tEZW5pYWxSZWFzb246OlVzZXJHZXN0dXJlUmVxdWlyZWQ7CiAg
ICAgfQogCi0gICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVk
aW9SYXRlQ2hhbmdlICYmICghZWxlbWVudC5pc1ZpZGVvKCkgfHwgZWxlbWVudC5oYXNBdWRpbygp
KSAmJiAhZWxlbWVudC5tdXRlZCgpICYmIGVsZW1lbnQudm9sdW1lKCkgJiYgIVNjcmlwdENvbnRy
b2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsKKyAgICBpZiAobV9yZXN0
cmljdGlvbnMgJiBSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UgJiYgKCFlbGVt
ZW50LmlzVmlkZW8oKSB8fCBlbGVtZW50Lmhhc0F1ZGlvKCkpICYmICFlbGVtZW50Lm11dGVkKCkg
JiYgZWxlbWVudC52b2x1bWUoKSAmJiAhZWxlbWVudC5kb2N1bWVudCgpLnByb2Nlc3NpbmdVc2Vy
R2VzdHVyZUZvck1lZGlhKCkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vz
c2lvbjo6cGxheWJhY2tQZXJtaXR0ZWQgLSByZXR1cm5pbmcgRkFMU0UgYmVjYXVzZSBvZiBhdWRp
byByYXRlIGNoYW5nZSByZXN0cmljdGlvbiIpOwogICAgICAgICByZXR1cm4gTWVkaWFQbGF5YmFj
a0RlbmlhbFJlYXNvbjo6VXNlckdlc3R1cmVSZXF1aXJlZDsKICAgICB9CiAKLSAgICBpZiAobV9y
ZXN0cmljdGlvbnMgJiBSZXF1aXJlVXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2Rl
ICYmIGVsZW1lbnQuaXNWaWRlbygpICYmICFTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNl
ckdlc3R1cmVGb3JNZWRpYSgpKSB7CisgICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVz
ZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSAmJiBlbGVtZW50LmlzVmlkZW8oKSAm
JiAhZWxlbWVudC5kb2N1bWVudCgpLnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsK
ICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tQZXJtaXR0
ZWQgLSByZXR1cm5pbmcgRkFMU0UgYmVjYXVzZSBvZiB2aWRlbyBsb3cgcG93ZXIgbW9kZSByZXN0
cmljdGlvbiIpOwogICAgICAgICByZXR1cm4gTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbjo6VXNl
ckdlc3R1cmVSZXF1aXJlZDsKICAgICB9CkBAIC0yMTgsMTIgKzIxOCwxMiBAQCBib29sIE1lZGlh
RWxlbWVudFNlc3Npb246OmF1dG9wbGF5UGVybWl0dGVkKCkgY29uc3QKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpkYXRhTG9hZGluZ1Blcm1pdHRlZChj
b25zdCBIVE1MTWVkaWFFbGVtZW50JikgY29uc3QKK2Jvb2wgTWVkaWFFbGVtZW50U2Vzc2lvbjo6
ZGF0YUxvYWRpbmdQZXJtaXR0ZWQoY29uc3QgSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkgY29u
c3QKIHsKICAgICBpZiAobV9yZXN0cmljdGlvbnMgJiBPdmVycmlkZVVzZXJHZXN0dXJlUmVxdWly
ZW1lbnRGb3JNYWluQ29udGVudCAmJiB1cGRhdGVJc01haW5Db250ZW50KCkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCi0gICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJl
Rm9yTG9hZCAmJiAhU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVk
aWEoKSkgeworICAgIGlmIChtX3Jlc3RyaWN0aW9ucyAmIFJlcXVpcmVVc2VyR2VzdHVyZUZvckxv
YWQgJiYgIWVsZW1lbnQuZG9jdW1lbnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgp
KSB7CiAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OmRhdGFMb2FkaW5n
UGVybWl0dGVkIC0gcmV0dXJuaW5nIEZBTFNFIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CkBAIC0yMzEsOSArMjMxLDkgQEAgYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpkYXRhTG9h
ZGluZ1Blcm1pdHRlZChjb25zdCBIVE1MTWVkaWFFbGVtZW50JikgY29uc3QKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpmdWxsc2NyZWVuUGVybWl0dGVk
KGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmKSBjb25zdAorYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9u
OjpmdWxsc2NyZWVuUGVybWl0dGVkKGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpIGNv
bnN0CiB7Ci0gICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJlRm9yRnVs
bHNjcmVlbiAmJiAhU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVk
aWEoKSkgeworICAgIGlmIChtX3Jlc3RyaWN0aW9ucyAmIFJlcXVpcmVVc2VyR2VzdHVyZUZvckZ1
bGxzY3JlZW4gJiYgIWVsZW1lbnQuZG9jdW1lbnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JN
ZWRpYSgpKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OmZ1bGxz
Y3JlZW5QZXJtaXR0ZWQgLSByZXR1cm5pbmcgRkFMU0UiKTsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KQEAgLTI4MSw3ICsyODEsNyBAQCBib29sIE1lZGlhRWxlbWVudFNlc3Npb246OmNh
blNob3dDb250cm9sc01hbmFnZXIoUGxheWJhY2tDb250cm9sc1B1cnBvc2UgcHVycG9zZQogICAg
IH0KIAogICAgIGlmIChjbGllbnQoKS5wcmVzZW50YXRpb25UeXBlKCkgPT0gQXVkaW8pIHsKLSAg
ICAgICAgaWYgKCFoYXNCZWhhdmlvclJlc3RyaWN0aW9uKFJlcXVpcmVVc2VyR2VzdHVyZVRvQ29u
dHJvbENvbnRyb2xzTWFuYWdlcikgfHwgU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlRm9yTWVkaWEoKSkgeworICAgICAgICBpZiAoIWhhc0JlaGF2aW9yUmVzdHJpY3Rpb24o
UmVxdWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKSB8fCBtX2VsZW1lbnQu
ZG9jdW1lbnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CiAgICAgICAgICAg
ICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2Vy
IC0gcmV0dXJuaW5nIFRSVUU6IEF1ZGlvIGVsZW1lbnQgd2l0aCB1c2VyIGdlc3R1cmUiKTsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CkBAIC0zMTUsNyArMzE1LDcgQEAgYm9v
bCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyKFBsYXliYWNrQ29u
dHJvbHNQdXJwb3NlIHB1cnBvc2UKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAg
IGlmICghaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xD
b250cm9sc01hbmFnZXIpIHx8IFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVy
ZUZvck1lZGlhKCkpIHsKKyAgICBpZiAoIWhhc0JlaGF2aW9yUmVzdHJpY3Rpb24oUmVxdWlyZVVz
ZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKSB8fCBtX2VsZW1lbnQuZG9jdW1lbnQo
KS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CiAgICAgICAgIExPRyhNZWRpYSwg
Ik1lZGlhRWxlbWVudFNlc3Npb246OmNhblNob3dDb250cm9sc01hbmFnZXIgLSByZXR1cm5pbmcg
VFJVRTogTm8gdXNlciBnZXN0dXJlIHJlcXVpcmVkIik7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KQEAgLTM4NCw3ICszODQsNyBAQCB2b2lkIE1lZGlhRWxlbWVudFNlc3Npb246OnNob3dQ
bGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBIVE1MTWVkaWFFbGVtZW50JiBlbGVtZQogewogICAg
IExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OnNob3dQbGF5YmFja1RhcmdldFBpY2tl
ciIpOwogCi0gICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJlVG9TaG93
UGxheWJhY2tUYXJnZXRQaWNrZXIgJiYgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2Vy
R2VzdHVyZUZvck1lZGlhKCkpIHsKKyAgICBpZiAobV9yZXN0cmljdGlvbnMgJiBSZXF1aXJlVXNl
ckdlc3R1cmVUb1Nob3dQbGF5YmFja1RhcmdldFBpY2tlciAmJiAhZWxlbWVudC5kb2N1bWVudCgp
LnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAi
TWVkaWFFbGVtZW50U2Vzc2lvbjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyIC0gcmV0dXJuaW5n
IGVhcmx5IGJlY2F1c2Ugb2YgcGVybWlzc2lvbnMiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IGNmNTEzZTQzNzJjZjBjODEzN2ZmM2ZiNGM1MTE1
ODdjN2VmZjE0Y2MuLmU0MGNhYTg0ZDYzYjA5ZjM1MWZiYjA2ZGIxZmUwMmY5ZGI5YjgyMGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtMTMxLDYgKzEzMSw3IEBAIHJlcXVpcmVzVXNlckdl
c3R1cmVUb0xvYWRWaWRlbyBpbml0aWFsPWRlZmF1bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2Fk
VmlkZW8KIHZpZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlIGluaXRpYWw9ZGVmYXVsdFZp
ZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlCiBhdWRpb1BsYXliYWNrUmVxdWlyZXNVc2Vy
R2VzdHVyZSBpbml0aWFsPWRlZmF1bHRBdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZQog
bWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxlZCBpbml0aWFsPWZhbHNlCittZWRp
YVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQgaW5pdGlhbD1mYWxzZQogYWxsb3dzSW5s
aW5lTWVkaWFQbGF5YmFjayBpbml0aWFsPWRlZmF1bHRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNr
CiBhbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuIGluaXRpYWw9dHJ1ZQog
aW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUgaW5pdGlhbD1k
ZWZhdWx0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNz
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lv
bi5oCmluZGV4IDViOWJkODNmMzI5YWMyNmFmNTU5NGIwNWU0NTcyNDY2OWQ0ODU3ZTQuLmE2M2I5
YzQ4NjBkN2E2NGJjYzIxZDcyMDMyYTM0Y2VmZjk3N2VkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaApAQCAtMjMxLDYg
KzIzMSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0IERvY3VtZW50KiBob3N0aW5nRG9j
dW1lbnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgc291cmNlQXBwbGljYXRpb25J
ZGVudGlmaWVyKCkgY29uc3QgPSAwOwogCisgICAgdmlydHVhbCBib29sIHByb2Nlc3NpbmdVc2Vy
R2VzdHVyZUZvck1lZGlhKCkgY29uc3QgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+
UGxhdGZvcm1NZWRpYVNlc3Npb25DbGllbnQoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCBhMWFhMmRl
OTc2MWJkNDNjZTgzMjJkY2MzNTI0Yzk4ZjA4YzhiMzE2Li43ZDZkZTFmMzUzNmIyY2JjN2FmMjNj
YWRiZWYyNTUxZjlmMmZjYTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTE4Myw2ICsxODMsNyBAQAogI2RlZmlu
ZSBXZWJLaXRXZWJSVENMZWdhY3lBUElFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFdlYlJU
Q0xlZ2FjeUFQSUVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdExpbmtQcmVsb2FkRW5hYmxlZFByZWZl
cmVuY2VLZXkgQCJXZWJLaXRMaW5rUHJlbG9hZEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdENyZWRl
bnRpYWxNYW5hZ2VtZW50RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDcmVkZW50aWFsTWFu
YWdlbWVudEVuYWJsZWQiCisjZGVmaW5lIFdlYktpdE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zy
b21Eb2N1bWVudCBAIldlYktpdE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudCIK
IAogI2lmICFUQVJHRVRfT1NfSVBIT05FCiAvLyBUaGVzZSBhcmUgcHJpdmF0ZSBib3RoIGJlY2F1
c2UgY2FsbGVycyBzaG91bGQgYmUgdXNpbmcgdGhlIGNvdmVyIG1ldGhvZHMgYW5kIGJlY2F1c2Ug
dGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCA3
NzQ5YWM2NzQ3MzU3YzdhMzlhMWVlZDAwYzUxOTRkMWViMmY0MWE3Li5mOGM1N2M4MTIyYmRjMTZk
MWRjOWU2MWFkYjJjYjM5ZDMzNGYwYjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXMubW0KQEAgLTY2OSw2ICs2NjksNyBAQCArICh2b2lkKWluaXRpYWxpemUK
ICAgICAgICAgQE5PLCBXZWJLaXRVc2VyVGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAg
ICAgIEBOTywgV2ViS2l0UmVzb3VyY2VUaW1pbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAg
ICAgQE5PLCBXZWJLaXRDcmVkZW50aWFsTWFuYWdlbWVudEVuYWJsZWRQcmVmZXJlbmNlS2V5LAor
ICAgICAgICBATk8sIFdlYktpdE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudCwK
ICAgICAgICAgbmlsXTsKIAogI2lmICFQTEFURk9STShJT1MpCkBAIC0zMDYyLDYgKzMwNjMsMTYg
QEAgLSAodm9pZClzZXRDcmVkZW50aWFsTWFuYWdlbWVudEVuYWJsZWQ6KEJPT0wpZmxhZwogICAg
IFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0Q3JlZGVudGlhbE1hbmFnZW1l
bnRFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpbWVkaWFVc2VyR2VzdHVyZUlu
aGVyaXRzRnJvbURvY3VtZW50Cit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6
V2ViS2l0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50XTsKK30KKworLSAodm9p
ZClzZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQ6KEJPT0wpZmxhZworewor
ICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0TWVkaWFVc2VyR2VzdHVy
ZUluaGVyaXRzRnJvbURvY3VtZW50XTsKK30KKwogI2lmIFBMQVRGT1JNKElPUykKIC0gKEJPT0wp
cXVpY2tMb29rRG9jdW1lbnRTYXZpbmdFbmFibGVkCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCBlZjVlZmM5NTJmOTk4Yjli
NmE1YjBiYjU4NDgwOTUwMzgyN2YwYmUwLi44MjNmYzM2ZTA1MGFiYzRkMTA3ZDBlNWFmYWZlYzk5
ODlkZjYxYzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXNQcml2YXRlLmgKQEAgLTU1OSw2ICs1NTksNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlBy
ZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbjsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljKSBCT09MIHJlc291cmNlVGltaW5nRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljKSBCT09MIGxpbmtQcmVsb2FkRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIGNyZWRlbnRpYWxNYW5hZ2VtZW50RW5hYmxlZDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIG1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudDsKIAogI2lmIFRBUkdFVF9P
U19JUEhPTkUKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHF1aWNrTG9va0RvY3VtZW50U2F2
aW5nRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJl
bmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNE
ZWZpbml0aW9ucy5oCmluZGV4IGY1MjI2YWY1OTUxYWUwYzU5NDIxMWEzY2EyODNhNGVmMWZmZDA5
ZjkuLjZkODc2ZTdkMjI4NzAzMjk5NGEwNTZjZDgyNjhkOTkyNDUzMGM4NjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApAQCAtMTcy
LDYgKzE3Miw3IEBACiAgICAgbWFjcm8oUmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUGxheWJh
Y2ssIHJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1BsYXliYWNrLCBCb29sLCBib29sLCBERUZB
VUxUX1JFUVVJUkVTX1VTRVJfR0VTVFVSRV9GT1JfQVVESU9fUExBWUJBQ0ssICIiLCAiIikgXAog
ICAgIG1hY3JvKFJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRWaWRlbywgcmVxdWlyZXNVc2VyR2Vz
dHVyZVRvTG9hZFZpZGVvLCBCb29sLCBib29sLCBmYWxzZSwgIiIsICIiKSBcCiAgICAgbWFjcm8o
TWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxlZCwgbWFpbkNvbnRlbnRVc2VyR2Vz
dHVyZU92ZXJyaWRlRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAiIikgXAorICAgIG1h
Y3JvKE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudCwgbWVkaWFVc2VyR2VzdHVy
ZUluaGVyaXRzRnJvbURvY3VtZW50LCBCb29sLCBib29sLCBmYWxzZSwgIiIsICIiKSBcCiAgICAg
bWFjcm8oQWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjaywgYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFj
aywgQm9vbCwgYm9vbCwgREVGQVVMVF9BTExPV1NfSU5MSU5FX01FRElBX1BMQVlCQUNLLCAiIiwg
IiIpIFwKICAgICBtYWNybyhBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVu
LCBhbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuLCBCb29sLCBib29sLCBE
RUZBVUxUX0FMTE9XU19JTkxJTkVfTUVESUFfUExBWUJBQ0tfQUZURVJfRlVMTFNDUkVFTiwgIiIs
ICIiKSBcCiAgICAgbWFjcm8oSW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVB
dHRyaWJ1dGUsIGlubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRl
LCBCb29sLCBib29sLCBERUZBVUxUX0lOTElORV9NRURJQV9QTEFZQkFDS19SRVFVSVJFU19QTEFZ
U19JTkxJTkVfQVRUUklCVVRFLCAiIiwgIiIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCA5NTQyZTBmNmQ0Y2QwYzM5ZDA3NGQ1
ZjM4YWFiNTc4OWYxY2ZiZTcwLi5lYWQ3NmJhODQ2MWQ2ZDQyNDEzZGFjOGRhNWI4ZWFjMWY4ZGE1
NjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXMuY3BwCkBAIC0xNzYwLDMgKzE3NjAsMTMgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0U2hvdWxk
U3VwcHJlc3NLZXlib2FyZElucHV0RHVyaW5nUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdLUHIKIHsK
ICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2hvdWxkU3VwcHJlc3NLZXlib2Fy
ZElucHV0RHVyaW5nUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKCk7CiB9CisKK3ZvaWQgV0tQcmVmZXJl
bmNlc1NldE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudChXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2Vz
UmVmKS0+c2V0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50KGZsYWcpOworfQor
Citib29sIFdLUHJlZmVyZW5jZXNHZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1l
bnQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAgICByZXR1cm4gdG9JbXBs
KHByZWZlcmVuY2VzUmVmKS0+bWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50KCk7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlc1JlZlByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzUmVmUHJpdmF0ZS5oCmluZGV4IDJiOWM2MGU4ZmEwNjhlZjRiMjdmZTI5YWYyY2Y0MmEw
ZjU4OGI0MDguLmNkMjMyYjk2MzU3ZGU5YTExYjZiMTcwMzg4MDZlYThlMTY3YmJlMmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
UmVmUHJpdmF0ZS5oCkBAIC00OTMsNiArNDkzLDEwIEBAIFdLX0VYUE9SVCBib29sIFdLUHJlZmVy
ZW5jZXNHZXRDcmVkZW50aWFsTWFuYWdlbWVudEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7CiBX
S19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0SW52aXNpYmxlTWVkaWFBdXRvcGxheVBlcm1p
dHRlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVm
ZXJlbmNlc0dldEludmlzaWJsZU1lZGlhQXV0b3BsYXlQZXJtaXR0ZWQoV0tQcmVmZXJlbmNlc1Jl
Zik7CiAKKy8vIERlZmF1bHRzIHRvIGZhbHNlLgorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNl
c1NldE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudChXS1ByZWZlcmVuY2VzUmVm
LCBib29sIGZsYWcpOworV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldE1lZGlhVXNlckdl
c3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudChXS1ByZWZlcmVuY2VzUmVmKTsKKwogI2lmZGVmIF9f
Y3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCAwZTExNzgyNTQ5MzRhYTUwZDQ4ZTJmN2FmMzQ1NWIyYzM1MmU0
YjMxLi4zYzRjZTZhNDg4MDM1NGM4MWY1ZjJjNDhiMjdiZmY2ZTRlMDVlMjQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zMTIxLDYgKzMx
MjEsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVu
Y2VzU3RvcmUmIHN0b3JlKQogICAgIHNldHRpbmdzLnNldEF1ZGlvUGxheWJhY2tSZXF1aXJlc1Vz
ZXJHZXN0dXJlKHJlcXVpcmVzVXNlckdlc3R1cmVGb3JNZWRpYSB8fCBzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1Bs
YXliYWNrS2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2Fk
VmlkZW8oc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpyZXF1aXJl
c1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW9LZXkoKSkpOwogICAgIHNldHRpbmdzLnNldE1haW5Db250
ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjptYWluQ29udGVudFVzZXJHZXN0dXJlT3ZlcnJpZGVFbmFibGVkS2V5
KCkpKTsKKyAgICBzZXR0aW5ncy5zZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1l
bnQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjptZWRpYVVzZXJH
ZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnRLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldEFsbG93
c0lubGluZU1lZGlhUGxheWJhY2soc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVu
Y2VzS2V5OjphbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrS2V5KCkpKTsKICAgICBzZXR0aW5ncy5z
ZXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuKHN0b3JlLmdldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6YWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0Fm
dGVyRnVsbHNjcmVlbktleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0SW5saW5lTWVkaWFQbGF5YmFj
a1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjppbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0
dHJpYnV0ZUtleSgpKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzlhNGM3NDk5MmQ2MmVjMTJhMjBmOWY1NDZmZjY4YzMw
ODdjNmVmNS4uYzljYjY2OTNmMTI3MGQ3Mjc5NTE1Nzg2NTY4NGJmZGFmZTMxYTgxNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDE3LTA1LTE1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBleHBlcmltZW50YWwgc2V0dGluZyB0byBhbGxvdyBkb2N1bWVu
dCBnZXN0dXJlIGludGVyYWN0aW9uIHRvIGZ1bGZpbGwgbWVkaWEgcGxheWJhY2sgZ2VzdHVyZSBy
ZXF1aXJlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcyMTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBtZWRpYS9yZXN0cmljdGVkLWF1ZGlvLXBsYXliYWNrLXdpdGgtZG9jdW1lbnQtZ2VzdHVy
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3Jlc3RyaWN0ZWQtYXVkaW8t
cGxheWJhY2std2l0aC1kb2N1bWVudC1nZXN0dXJlLmh0bWw6IEFkZGVkLgorCiAyMDE3LTA1LTEx
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IERlZmVyIHRl
eHQgY2hhbmdlcyB1bnRpbCBhZnRlciB0aGUgdHJlZSBpcyBjbGVhbiBpZiBuZWVkZWQuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9yZXN0cmljdGVkLWF1ZGlvLXBsYXliYWNrLXdpdGgt
ZG9jdW1lbnQtZ2VzdHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9yZXN0cmlj
dGVkLWF1ZGlvLXBsYXliYWNrLXdpdGgtZG9jdW1lbnQtZ2VzdHVyZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzFjMTJkOGI2ODFkZGU1YjQ5YjEyZjFmM2Y3MTM3NjdlNWFjNDVjZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3Jlc3RyaWN0ZWQtYXVkaW8tcGxheWJhY2st
d2l0aC1kb2N1bWVudC1nZXN0dXJlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0
IHRoYXQsIHdoZW4gUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlIGlzIHNldCBh
bG9uZyB3aXRoIE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0ZvckRvY3VtZW50LCBhIHVzZXIgZ2Vz
dHVyZSBpbiB0aGUgZG9jdW1lbnQgd2lsbCBhbGxvdyBmdXR1cmUgbWVkaWEgcGxheWJhY2sgcmVx
dWVzdHMgdG8gc3VjY2VlZC4KKworCitSVU4oaW50ZXJuYWxzLnNldE1lZGlhRWxlbWVudFJlc3Ry
aWN0aW9ucyhtZWRpYUVsZW1lbnQsICJSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFu
Z2UiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRz
RnJvbURvY3VtZW50KHRydWUpKQorUnVubmluZyB3aXRoIGtleURvd24uCitSVU4obWVkaWFFbGVt
ZW50LnNyYyA9IGZpbmRNZWRpYUZpbGUoJ2F1ZGlvJywgJ2NvbnRlbnQvdGVzdCcpKQorRVZFTlQo
Y2FucGxheXRocm91Z2gpCitSVU4obWVkaWFFbGVtZW50LnBsYXkoKSkKK0VYUEVDVEVEIChtZWRp
YUVsZW1lbnQucGF1c2VkID09ICdmYWxzZScpIE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9yZXN0cmljdGVkLWF1ZGlvLXBsYXliYWNrLXdpdGgtZG9jdW1l
bnQtZ2VzdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvcmVzdHJpY3RlZC1hdWRpby1wbGF5
YmFjay13aXRoLWRvY3VtZW50LWdlc3R1cmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDc4ZjgwYjIxMTFh
NjIyNzQwMjhhYTc5MzNlMTU3MGZhODA2M2IzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvcmVzdHJpY3RlZC1hdWRpby1wbGF5YmFjay13aXRoLWRvY3VtZW50LWdlc3R1cmUu
aHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHRpdGxlPnJlc3RyaWN0ZWQtYXVkaW8tcGxheWJhY2std2l0aC1kb2N1bWVudC1nZXN0dXJl
PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz1tZWRpYS1maWxlLmpzPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPXZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0PgorICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgICAgbWVkaWFFbGVtZW50ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ2F1ZGlvJylbMF07CisKKyAgICAgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgICAgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldE1lZGlhRWxlbWVudFJl
c3RyaWN0aW9ucyhtZWRpYUVsZW1lbnQsICJSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVD
aGFuZ2UiKScpOworICAgICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0TWVkaWFV
c2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50KHRydWUpJyk7CisgICAgICAgIH0KKworICAg
ICAgICBjb25zb2xlV3JpdGUoJ1J1bm5pbmcgd2l0aCBrZXlEb3duLicpOworICAgICAgICBydW5X
aXRoS2V5RG93bigoKSA9PiB7CisgICAgICAgICAgICBydW4oIm1lZGlhRWxlbWVudC5zcmMgPSBm
aW5kTWVkaWFGaWxlKCdhdWRpbycsICdjb250ZW50L3Rlc3QnKSIpOworICAgICAgICAgICAgd2Fp
dEZvckV2ZW50KCdjYW5wbGF5dGhyb3VnaCcsIGNhbnBsYXl0aHJvdWdoKTsKKyAgICAgICAgICAg
IHdhaXRGb3JFdmVudEFuZEZhaWwoJ2Vycm9yJyk7CisgICAgICAgIH0pOworICAgIH0KKworICAg
IGZ1bmN0aW9uIGNhbnBsYXl0aHJvdWdoKCkKKyAgICB7CisgICAgICAgIHJ1bigibWVkaWFFbGVt
ZW50LnBsYXkoKSIpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ21lZGlhRWxlbWVudC5wYXVzZWQn
LCBmYWxzZSk7CisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0IHRoYXQsIHdoZW4g
UmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlIGlzIHNldCBhbG9uZyB3aXRoIE1l
ZGlhVXNlckdlc3R1cmVJbmhlcml0c0ZvckRvY3VtZW50LCBhIHVzZXIgZ2VzdHVyZSBpbiB0aGUg
ZG9jdW1lbnQgd2lsbCBhbGxvdyBmdXR1cmUgbWVkaWEgcGxheWJhY2sgcmVxdWVzdHMgdG8gc3Vj
Y2VlZC48L3A+CisgICAgPGF1ZGlvIGNvbnRyb2xzIGF1dG9wbGF5PjwvYXVkaW8+Cis8L2JvZHk+
Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310170</attachid>
            <date>2017-05-15 14:50:23 -0700</date>
            <delta_ts>2017-05-15 15:05:52 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-172131-20170515145123.patch</filename>
            <type>text/plain</type>
            <size>32807</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2NzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjljZWQzYTJjNWE0NmEw
MTJmMzMxYzNlNDU1M2RlNmI5MWM0YTViYS4uMGU0MjEyZDVkNzljZDcxNTcyY2Q5OWQxMGFkOWE5
MGI4N2Y4MDkzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw5ICsxLDU0IEBACisyMDE3LTA1LTE1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBleHBlcmltZW50YWwg
c2V0dGluZyB0byBhbGxvdyBkb2N1bWVudCBnZXN0dXJlIGludGVyYWN0aW9uIHRvIGZ1bGZpbGwg
bWVkaWEgcGxheWJhY2sgZ2VzdHVyZSByZXF1aXJlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBDYXJsc29uLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3Jlc3RyaWN0ZWQtYXVkaW8tcGxh
eWJhY2std2l0aC1kb2N1bWVudC1nZXN0dXJlLmh0bWwKKworICAgICAgICBNb3ZlIGFsbCBjYWxs
cyB0byBTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpIHRv
IHRoZSBuZXcgRG9jdW1lbnQgZXF1aXZhbGVudC4gSW4gRG9jdW1lbnQsCisgICAgICAgIGlmIHRo
ZSBuZXcgc2V0dGluZyBpcyBlbmFibGVkLCByZXR1cm4gdHJ1ZSBmcm9tIHByb2Nlc3NpbmdVc2Vy
R2VzdHVyZUZvck1lZGlhKCkgaWYgdGhlIHRvcC1sZXZlbCBkb2N1bWVudCBoYXMgaGFkCisgICAg
ICAgIGEgdXNlciBnZXN0dXJlIGludGVyYWN0aW9uLgorCisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6
cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW0uaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OnByb2Nlc3NpbmdVc2Vy
R2VzdHVyZUZvck1lZGlhKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6d2lsbEJl
Z2luUGxheWJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0Ojp3aWxsUGF1c2VQ
bGF5YmFjayk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnBy
b2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjphdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6c2Vla1dpdGhUb2xlcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpw
bGF5SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGF1c2Up
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGF1c2VJbnRlcm5hbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRNdXRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp3ZWJraXRTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cHJvY2Vzc2luZ1VzZXJHZXN0
dXJlRm9yTWVkaWEpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUVsZW1lbnRTZXNzaW9uOjpwbGF5YmFja1Blcm1pdHRlZCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUVsZW1lbnRTZXNzaW9uOjpkYXRhTG9hZGluZ1Blcm1pdHRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpmdWxsc2NyZWVuUGVybWl0dGVkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhRWxlbWVudFNlc3Npb246OmNhblNob3dDb250cm9sc01hbmFnZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6c2hvd1BsYXliYWNrVGFyZ2V0
UGlja2VyKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOgorICAgICAgICAqIHBsYXRmb3Jt
L2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg6CisKIDIwMTctMDUtMTIgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgT25seSBldmVyIGluaXRpYWxpemUgTGli
V2ViUlRDUHJvdmlkZXIncyBzdGF0aWNGYWN0b3J5QW5kVGhyZWFkcygpIGZhY3RvcmllcyBvbmNl
LgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMDQ3
CiAKLSAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgQ2FybHNvbi4KIAogICAgICAgICBXcmFwIHRoZSBpbml0aWxpemF0aW9uIG9mIHRo
ZSBmYWN0b3JpZXMgY29udGFpbmVkIGluIHN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKCkgaW4gYSBj
YWxsX29uY2UgdG8gZW5zdXJlCiAgICAgICAgIG5ldyBmYWN0b3JpZXMgYXJlbid0IGNyZWF0ZWQg
ZXZlcnkgdGltZSBpdCdzIGNhbGxlZC4KQEAgLTU0LDcgKzk5LDcgQEAKICAgICAgICAgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZSByZXBvcnRzIDMgb3IgNSBjaGFubmVsIGF1ZGlvIG91dHB1dDsgYWN0
dWFsbHkgb25seSBtb25vCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzE5NDAKIAotICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgogCiAgICAgICAgIEFza2luZyBmb3IgdGhl
IElucHV0IFZQSU8gc3RyZWFtIGZvcm1hdCB3aWxsIHJldHVybiB0aGUgaW50ZXJuYWwgbWljIGZv
cm1hdCwgYmVmb3JlIHByb2Nlc3NpbmcuIEluc3RlYWQKICAgICAgICAgYXNrIGZvciB0aGUgaW5w
dXQgYnVzJ3Mgb3V0cHV0IGZvcm1hdCwgd2hpY2ggaXMgcG9zdCBwcm9jZXNzaW5nLCB3aGljaCB3
aWxsIHJldHVybiB0aGUgY29ycmVjdCBudW1iZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1YjkxYWYx
N2I4ZDNiZWY1MjExZmMyMmI5NmE1YWQ0OWFjZDk3NmQwLi45Yjc2ZThmMjRjNGNhZWFhOWJkOWY4
ODE1NGE1MmNhMDczZWI1ODAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTctMDUtMTUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IGV4cGVyaW1lbnRhbCBzZXR0aW5nIHRvIGFsbG93IGRvY3VtZW50IGdlc3R1cmUgaW50ZXJhY3Rp
b24gdG8gZnVsZmlsbCBtZWRpYSBwbGF5YmFjayBnZXN0dXJlIHJlcXVpcmVtZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMzEKKworICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZl
cmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06
CisgICAgICAgICgrW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKToKKyAgICAgICAgKC1bV2Vi
UHJlZmVyZW5jZXMgbWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50XSk6CisgICAg
ICAgICgtW1dlYlByZWZlcmVuY2VzIHNldE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1
bWVudDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorCiAy
MDE3LTA1LTExICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAg
ICAgIE1haWwgc3BpbnMgbGF1bmNoaW5nIHNwZWxsIGNoZWNrZXIgd2hlbiB0eXBpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCA5ZWVlNzJmMjNlYzQ2Yzg3N2ZiYjVhYTYzYWI3ZDRiNWJjYTBkMjdhLi41MTVhMzkx
OGUyMjdjYTAyYWQ2ZTIxN2JkYjgwNGY3YzViNDYyZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTctMDUtMTUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIGV4cGVyaW1lbnRhbCBzZXR0aW5nIHRvIGFsbG93IGRvY3VtZW50IGdlc3R1cmUg
aW50ZXJhY3Rpb24gdG8gZnVsZmlsbCBtZWRpYSBwbGF5YmFjayBnZXN0dXJlIHJlcXVpcmVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMzEK
KworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBTaGFyZWQv
V2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRNZWRpYVVzZXJHZXN0
dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldE1lZGlh
VXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJl
bmNlcyk6CisKIDIwMTctMDUtMTEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFtXS1dlYnNpdGVEYXRhU3RvcmUgcmVtb3ZlRGF0YU9mVHlwZXM6Li4uXSBkb2Vz
bid0IHdvcmsgZm9yIEluZGV4ZWREQiBpZiB0aGUgZGF0YSBzdG9yZSBoYXMgYSBjdXN0b20gSURC
IHBhdGguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uY3BwCmluZGV4IDI2ZjU0ZTA4MGFmY2I5OTkwNGY4ZDIyZDZkYzk5ODc4N2NkNTJmNDQu
LjgwYmU1ZmZkMDc2Yzc5NDJiOTJhM2Q2YTdmZWRkN2NiODE0N2U5ODkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCkBAIC01MDYs
NiArNTA2LDExIEBAIGJvb2wgTWVkaWFTdHJlYW06OmNhblByb2R1Y2VBdWRpbygpIGNvbnN0CiAg
ICAgcmV0dXJuICFtdXRlZCgpICYmIGFjdGl2ZSgpICYmIG1fcHJpdmF0ZS0+aGFzQXVkaW8oKSAm
JiBtX2lzUHJvZHVjaW5nRGF0YTsKIH0KIAorYm9vbCBNZWRpYVN0cmVhbTo6cHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlRm9yTWVkaWEoKSBjb25zdAoreworICAgIHJldHVybiBkb2N1bWVudCgpID8gZG9j
dW1lbnQoKS0+cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSA6IGZhbHNlOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCmlu
ZGV4IGQyMmE5MTVhM2M5MDA4NzFlYmMzNWU5MzhjZTk5OTNkMjg4OWY2NjMuLmVhNjQyNzdkODk2
MTAwYmZiYmI3NmVjMGI0MzU5OGU3MGI1MGQ2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKQEAgLTE1Myw2ICsxNTMsNyBAQCBwcml2
YXRlOgogICAgIFN0cmluZyBzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSBjb25zdCBmaW5h
bDsKICAgICBib29sIGNhblByb2R1Y2VBdWRpbygpIGNvbnN0IGZpbmFsOwogICAgIGNvbnN0IERv
Y3VtZW50KiBob3N0aW5nRG9jdW1lbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBkb2N1bWVudCgp
OyB9CisgICAgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpIGNvbnN0IGZpbmFs
OwogCiAgICAgYm9vbCBpbnRlcm5hbEFkZFRyYWNrKFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmLCBT
dHJlYW1Nb2RpZmllcik7CiAgICAgYm9vbCBpbnRlcm5hbFJlbW92ZVRyYWNrKGNvbnN0IFN0cmlu
ZyYsIFN0cmVhbU1vZGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCAyMzUyOTljYmU1M2RlNzA0MjY2N2JlOWNiZThlYmJl
MTM0ZmRjNDU5Li44ODRkNjJjNDk1ZTRiNmNiNjMzOWEyYTAwODZhZTk1OTZmZWFkYTgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCkBA
IC0zNjgsNiArMzY4LDExIEBAIFN0cmluZyBBdWRpb0NvbnRleHQ6OnNvdXJjZUFwcGxpY2F0aW9u
SWRlbnRpZmllcigpIGNvbnN0CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAKK2Jvb2wg
QXVkaW9Db250ZXh0Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgpLT5wcm9jZXNzaW5nVXNlckdlc3R1cmVG
b3JNZWRpYSgpIDogZmFsc2U7Cit9CisKIHZvaWQgQXVkaW9Db250ZXh0Ojp2aXNpYmlsaXR5U3Rh
dGVDaGFuZ2VkKCkKIHsKICAgICAvLyBEbyBub3Qgc3VzcGVuZCBpZiBhdWRpbyBpcyBhdWRpYmxl
LgpAQCAtOTMzLDcgKzkzOCw3IEBAIHZvaWQgQXVkaW9Db250ZXh0Ojpub2RlV2lsbEJlZ2luUGxh
eWJhY2soKQogYm9vbCBBdWRpb0NvbnRleHQ6OndpbGxCZWdpblBsYXliYWNrKCkKIHsKICAgICBp
ZiAodXNlckdlc3R1cmVSZXF1aXJlZEZvckF1ZGlvU3RhcnQoKSkgewotICAgICAgICBpZiAoIVNj
cmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCisgICAgICAg
IGlmICghcHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgcmVtb3ZlQmVoYXZpb3JSZXN0cmljdGlvbihBdWRpb0NvbnRleHQ6
OlJlcXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvU3RhcnRSZXN0cmljdGlvbik7CiAgICAgfQpAQCAt
OTUzLDcgKzk1OCw3IEBAIGJvb2wgQXVkaW9Db250ZXh0Ojp3aWxsQmVnaW5QbGF5YmFjaygpCiBi
b29sIEF1ZGlvQ29udGV4dDo6d2lsbFBhdXNlUGxheWJhY2soKQogewogICAgIGlmICh1c2VyR2Vz
dHVyZVJlcXVpcmVkRm9yQXVkaW9TdGFydCgpKSB7Ci0gICAgICAgIGlmICghU2NyaXB0Q29udHJv
bGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKKyAgICAgICAgaWYgKCFwcm9j
ZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICByZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKEF1ZGlvQ29udGV4dDo6UmVxdWlyZVVz
ZXJHZXN0dXJlRm9yQXVkaW9TdGFydFJlc3RyaWN0aW9uKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAppbmRleCA0OWJiMTM3Y2M4YWIy
MWRkNGY5OGJlMTVjY2FkZmY4MTgwODMyNTNlLi43N2ZhODc3ZTM4ZGRiNTMxNjI5MDQwYWM3OTA3
YmJjOTI5OWUzY2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Db250ZXh0LmgKQEAgLTMxOSw2ICszMTksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc2hvdWxk
T3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9ybU1lZGlhU2Vzc2lv
bjo6SW50ZXJydXB0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICBTdHJpbmcgc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBjYW5Qcm9kdWNlQXVkaW8oKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Cisg
ICAgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpIGNvbnN0IGZpbmFsOwogCiAg
ICAgdm9pZCB2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCkgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IGNhMjVmY2FiY2Q4YzZmMmM0ZmQzYzYwODQ1NWYzZDJhNDZhNTU0NDIuLjc1
NGJlYzk1Y2M3MmZiMGZjMWVlYjlkMTJlNmVhYzdjZjMzODg1MDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtNjM1OSw2ICs2MzU5LDE3IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUxhc3RI
YW5kbGVkVXNlckdlc3R1cmVUaW1lc3RhbXAoTW9ub3RvbmljVGltZSB0aW1lKQogICAgICAgICBl
bGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxhc3RIYW5kbGVkVXNlckdlc3R1cmVUaW1lc3RhbXAo
dGltZSk7CiB9CiAKK2Jvb2wgRG9jdW1lbnQ6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlh
KCkgY29uc3QKK3sKKyAgICBpZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0
dXJlRm9yTWVkaWEoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoIXNldHRpbmdz
KCkubWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50KCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIHJldHVybiB0b3BEb2N1bWVudCgpLmhhc0hhZFVzZXJJbnRlcmFjdGlv
bigpOworfQorCiB2b2lkIERvY3VtZW50OjpzdGFydFRyYWNraW5nU3R5bGVSZWNhbGNzKCkKIHsK
ICAgICBtX3N0eWxlUmVjYWxjQ291bnQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBhYjhh
NGRhYTMwNmY3OGFlZDIwODI1ZDBmNzRiNjcxMjQwNDRlODA5Li5iMDY0MjlkZTQyYmZiNzM4ZGYx
NjM1ZTBiN2RiOTEyZDNkMTY5NDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTE0OCw2ICsx
MTQ4LDcgQEAgcHVibGljOgogICAgIE1vbm90b25pY1RpbWUgbGFzdEhhbmRsZWRVc2VyR2VzdHVy
ZVRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdEhhbmRsZWRVc2VyR2VzdHVyZVRpbWVz
dGFtcDsgfQogICAgIGJvb2wgaGFzSGFkVXNlckludGVyYWN0aW9uKCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8Ym9vbD4obV9sYXN0SGFuZGxlZFVzZXJHZXN0dXJlVGltZXN0YW1wKTsgfQog
ICAgIHZvaWQgdXBkYXRlTGFzdEhhbmRsZWRVc2VyR2VzdHVyZVRpbWVzdGFtcChNb25vdG9uaWNU
aW1lKTsKKyAgICBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgY29uc3Q7CiAK
ICAgICB2b2lkIHNldFVzZXJEaWRJbnRlcmFjdFdpdGhQYWdlKGJvb2wgdXNlckRpZEludGVyYWN0
V2l0aFBhZ2UpIHsgQVNTRVJUKCZ0b3BEb2N1bWVudCgpID09IHRoaXMpOyBtX3VzZXJEaWRJbnRl
cmFjdFdpdGhQYWdlID0gdXNlckRpZEludGVyYWN0V2l0aFBhZ2U7IH0KICAgICBib29sIHVzZXJE
aWRJbnRlcmFjdFdpdGhQYWdlKCkgY29uc3QgeyBBU1NFUlQoJnRvcERvY3VtZW50KCkgPT0gdGhp
cyk7IHJldHVybiBtX3VzZXJEaWRJbnRlcmFjdFdpdGhQYWdlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBjNjc2MDI0M2NmOTBkZGY4ZTE0M2UzOWQ0ZmQ4
MTY5ZThlZDIwMzI0Li42Zjk1NTg0NzU1MDI1YjRkYjU1MTU4YjdkY2ZhOTY5NzA5MmIzOGRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTExNjEsNyArMTE2
MSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZCgpCiAgICAgCiAgICAgaWYgKCFtX21l
ZGlhU2Vzc2lvbi0+ZGF0YUxvYWRpbmdQZXJtaXR0ZWQoKnRoaXMpKQogICAgICAgICByZXR1cm47
Ci0gICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlh
KCkpCisgICAgaWYgKHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCiAgICAgICAgIHJl
bW92ZUJlaGF2aW9yc1Jlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZSgpOwogCiAgICAg
cHJlcGFyZUZvckxvYWQoKTsKQEAgLTE4NzcsNyArMTg3Nyw3IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6YXVkaW9UcmFja0VuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJhY2smIHRyYWNrKQogewogICAg
IGlmIChtX2F1ZGlvVHJhY2tzICYmIG1fYXVkaW9UcmFja3MtPmNvbnRhaW5zKHRyYWNrKSkKICAg
ICAgICAgbV9hdWRpb1RyYWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOwotICAgIGlmIChTY3Jp
cHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQorICAgIGlmIChw
cm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQogICAgICAgICByZW1vdmVCZWhhdmlvcnNS
ZXN0cmljdGlvbnNBZnRlckZpcnN0VXNlckdlc3R1cmUoTWVkaWFFbGVtZW50U2Vzc2lvbjo6QWxs
UmVzdHJpY3Rpb25zICYgfk1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZVRv
Q29udHJvbENvbnRyb2xzTWFuYWdlcik7CiB9CiAKQEAgLTI2ODgsNyArMjY4OCw3IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6c2Vla1dpdGhUb2xlcmFuY2UoY29uc3QgTWVkaWFUaW1lJiBpblRp
bWUsIGNvbnN0IE1lZGlhVGltCiAgICAgfSBlbHNlCiAgICAgICAgIHNlZWtUYXNrKCk7CiAKLSAg
ICBpZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkK
KyAgICBpZiAocHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgbV9tZWRp
YVNlc3Npb24tPnJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24oTWVkaWFFbGVtZW50U2Vzc2lvbjo6
UmVxdWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKTsKIH0KIApAQCAtMzE1
Myw3ICszMTUzLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5KERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmIHByb21pc2UpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAo
U2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKKyAgICBp
ZiAocHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgcmVtb3ZlQmVoYXZp
b3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKCk7CiAKICAgICBpZiAoIXBsYXlJ
bnRlcm5hbCgpKSB7CkBAIC0zMTc0LDcgKzMxNzQsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OnBsYXkoKQogICAgICAgICAgICAgc2V0UGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmUoUGxheWJh
Y2tXaXRob3V0VXNlckdlc3R1cmU6OlByZXZlbnRlZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
Ci0gICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlh
KCkpCisgICAgaWYgKHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCiAgICAgICAgIHJl
bW92ZUJlaGF2aW9yc1Jlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZSgpOwogCiAgICAg
cGxheUludGVybmFsKCk7CkBAIC0zMjM4LDcgKzMyMzgsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1l
bnQ6OnBsYXlJbnRlcm5hbCgpCiAgICAgfSBlbHNlIGlmIChtX3JlYWR5U3RhdGUgPj0gSEFWRV9G
VVRVUkVfREFUQSkKICAgICAgICAgc2NoZWR1bGVSZXNvbHZlUGVuZGluZ1BsYXlQcm9taXNlcygp
OwogCi0gICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1l
ZGlhKCkpIHsKKyAgICBpZiAocHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkgewogICAg
ICAgICBpZiAobV9wbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZSA9PSBQbGF5YmFja1dpdGhvdXRV
c2VyR2VzdHVyZTo6UHJldmVudGVkKSB7CiAgICAgICAgICAgICBoYW5kbGVBdXRvcGxheUV2ZW50
KEF1dG9wbGF5RXZlbnQ6OkRpZFBsYXlNZWRpYVByZXZlbnRlZEZyb21QbGF5aW5nKTsKICAgICAg
ICAgICAgIHNldFBsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlKFBsYXliYWNrV2l0aG91dFVzZXJH
ZXN0dXJlOjpOb25lKTsKQEAgLTMyNTksNyArMzI1OSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6cGF1c2UoKQogICAgIGlmICghbV9tZWRpYVNlc3Npb24tPnBsYXliYWNrUGVybWl0dGVkKCp0
aGlzKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nl
c3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCisgICAgaWYgKHByb2Nlc3NpbmdVc2VyR2VzdHVy
ZUZvck1lZGlhKCkpCiAgICAgICAgIHJlbW92ZUJlaGF2aW9yc1Jlc3RyaWN0aW9uc0FmdGVyRmly
c3RVc2VyR2VzdHVyZShNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0Nv
bnRyb2xDb250cm9sc01hbmFnZXIpOwogCiAgICAgcGF1c2VJbnRlcm5hbCgpOwpAQCAtMzI4Niw3
ICszMjg2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwYXVzZUludGVybmFsKCkKIAogICAg
IG1fYXV0b3BsYXlpbmcgPSBmYWxzZTsKIAotICAgIGlmIChTY3JpcHRDb250cm9sbGVyOjpwcm9j
ZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQorICAgIGlmIChwcm9jZXNzaW5nVXNlckdlc3R1
cmVGb3JNZWRpYSgpKQogICAgICAgICB1c2VyRGlkSW50ZXJmZXJlV2l0aEF1dG9wbGF5KCk7CiAK
ICAgICBzZXRQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZShQbGF5YmFja1dpdGhvdXRVc2VyR2Vz
dHVyZTo6Tm9uZSk7CkBAIC0zMzgxLDcgKzMzODEsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OnNldE11dGVkKGJvb2wgbXV0ZWQpCiAKICAgICBib29sIG11dGVkU3RhdGVDaGFuZ2VkID0gbV9t
dXRlZCAhPSBtdXRlZDsKICAgICBpZiAobXV0ZWRTdGF0ZUNoYW5nZWQgfHwgIW1fZXhwbGljaXRs
eU11dGVkKSB7Ci0gICAgICAgIGlmIChTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdl
c3R1cmVGb3JNZWRpYSgpKSB7CisgICAgICAgIGlmIChwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JN
ZWRpYSgpKSB7CiAgICAgICAgICAgICByZW1vdmVCZWhhdmlvcnNSZXN0cmljdGlvbnNBZnRlckZp
cnN0VXNlckdlc3R1cmUoTWVkaWFFbGVtZW50U2Vzc2lvbjo6QWxsUmVzdHJpY3Rpb25zICYgfk1l
ZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFu
YWdlcik7CiAKICAgICAgICAgICAgIGlmIChoYXNBdWRpbygpICYmIG11dGVkKQpAQCAtNTM5Myw3
ICs1MzkzLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzeW5jVGV4dFRyYWNrQm91bmRzKCkK
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6d2Via2l0U2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKCkK
IHsKICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50Ojp3ZWJraXRTaG93UGxheWJhY2tU
YXJnZXRQaWNrZXIoJXApIiwgdGhpcyk7Ci0gICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nl
c3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCisgICAgaWYgKHByb2Nlc3NpbmdVc2VyR2VzdHVy
ZUZvck1lZGlhKCkpCiAgICAgICAgIHJlbW92ZUJlaGF2aW9yc1Jlc3RyaWN0aW9uc0FmdGVyRmly
c3RVc2VyR2VzdHVyZSgpOwogICAgIG1fbWVkaWFTZXNzaW9uLT5zaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIoKnRoaXMpOwogfQpAQCAtNzEyNyw2ICs3MTI3LDExIEBAIGJvb2wgSFRNTE1lZGlhRWxl
bWVudDo6c2hvdWxkT3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9y
bU1lZGlhCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnBy
b2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1l
bnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpOworfQorCiAjaWYgRU5BQkxFKFdJ
UkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlTWVk
aWFTdGF0ZShVcGRhdGVTdGF0ZSB1cGRhdGVTdGF0ZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKaW5kZXggMTljMzNjMTdiMTY3MGNlNjAyOTJhMDdjOWQ5MWI5NmU2Zjky
MTQzNS4uMzg4MWQ4MTBkODEzNjBjMWUwOGU5Yjg5MDlkNjc1NTE4MjEyOGE0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTgxNCw2ICs4MTQsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgc2hvdWxkT3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6SW50ZXJydXB0aW9uVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBzaG91bGRPdmVycmlkZUJhY2tncm91bmRMb2FkaW5nUmVzdHJpY3Rpb24oKSBjb25z
dCBvdmVycmlkZTsKICAgICBib29sIGNhblByb2R1Y2VBdWRpbygpIGNvbnN0IGZpbmFsOworICAg
IGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSBjb25zdCBmaW5hbDsKIAogICAg
IHZvaWQgcGFnZU11dGVkU3RhdGVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKaW5kZXggY2E3YmU3NDQ5YjhiMDU2M2Iz
ZmY0M2Y4NjliMTNmOTEzYzA2OGEzMy4uMDljZTc3YWNjYjFlNTE4Yjg4NWU0NWU0OThkMDA4ZWVj
YWRkMTIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNz
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3Bw
CkBAIC0xNzMsMTcgKzE3MywxNyBAQCBTdWNjZXNzT3I8TWVkaWFQbGF5YmFja0RlbmlhbFJlYXNv
bj4gTWVkaWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tQZXJtaXR0ZWQoY29ucwogICAgIH0KICNl
bmRpZgogCi0gICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJlRm9yVmlk
ZW9SYXRlQ2hhbmdlICYmIGVsZW1lbnQuaXNWaWRlbygpICYmICFTY3JpcHRDb250cm9sbGVyOjpw
cm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CisgICAgaWYgKG1fcmVzdHJpY3Rpb25z
ICYgUmVxdWlyZVVzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlICYmIGVsZW1lbnQuaXNWaWRl
bygpICYmICFlbGVtZW50LmRvY3VtZW50KCkucHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEo
KSkgewogICAgICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpwbGF5YmFja1Bl
cm1pdHRlZCAtIHJldHVybmluZyBGQUxTRSBiZWNhdXNlIG9mIHZpZGVvIHJhdGUgY2hhbmdlIHJl
c3RyaWN0aW9uIik7CiAgICAgICAgIHJldHVybiBNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uOjpV
c2VyR2VzdHVyZVJlcXVpcmVkOwogICAgIH0KIAotICAgIGlmIChtX3Jlc3RyaWN0aW9ucyAmIFJl
cXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSAmJiAoIWVsZW1lbnQuaXNWaWRlbygp
IHx8IGVsZW1lbnQuaGFzQXVkaW8oKSkgJiYgIWVsZW1lbnQubXV0ZWQoKSAmJiBlbGVtZW50LnZv
bHVtZSgpICYmICFTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRp
YSgpKSB7CisgICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVk
aW9SYXRlQ2hhbmdlICYmICghZWxlbWVudC5pc1ZpZGVvKCkgfHwgZWxlbWVudC5oYXNBdWRpbygp
KSAmJiAhZWxlbWVudC5tdXRlZCgpICYmIGVsZW1lbnQudm9sdW1lKCkgJiYgIWVsZW1lbnQuZG9j
dW1lbnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CiAgICAgICAgIExPRyhN
ZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OnBsYXliYWNrUGVybWl0dGVkIC0gcmV0dXJuaW5n
IEZBTFNFIGJlY2F1c2Ugb2YgYXVkaW8gcmF0ZSBjaGFuZ2UgcmVzdHJpY3Rpb24iKTsKICAgICAg
ICAgcmV0dXJuIE1lZGlhUGxheWJhY2tEZW5pYWxSZWFzb246OlVzZXJHZXN0dXJlUmVxdWlyZWQ7
CiAgICAgfQogCi0gICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJlRm9y
VmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSAmJiBlbGVtZW50LmlzVmlkZW8oKSAmJiAhU2NyaXB0Q29u
dHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkgeworICAgIGlmIChtX3Jl
c3RyaWN0aW9ucyAmIFJlcXVpcmVVc2VyR2VzdHVyZUZvclZpZGVvRHVlVG9Mb3dQb3dlck1vZGUg
JiYgZWxlbWVudC5pc1ZpZGVvKCkgJiYgIWVsZW1lbnQuZG9jdW1lbnQoKS5wcm9jZXNzaW5nVXNl
ckdlc3R1cmVGb3JNZWRpYSgpKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNl
c3Npb246OnBsYXliYWNrUGVybWl0dGVkIC0gcmV0dXJuaW5nIEZBTFNFIGJlY2F1c2Ugb2Ygdmlk
ZW8gbG93IHBvd2VyIG1vZGUgcmVzdHJpY3Rpb24iKTsKICAgICAgICAgcmV0dXJuIE1lZGlhUGxh
eWJhY2tEZW5pYWxSZWFzb246OlVzZXJHZXN0dXJlUmVxdWlyZWQ7CiAgICAgfQpAQCAtMjE4LDEy
ICsyMTgsMTIgQEAgYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjphdXRvcGxheVBlcm1pdHRlZCgp
IGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgTWVkaWFFbGVtZW50U2Vzc2lvbjo6
ZGF0YUxvYWRpbmdQZXJtaXR0ZWQoY29uc3QgSFRNTE1lZGlhRWxlbWVudCYpIGNvbnN0Citib29s
IE1lZGlhRWxlbWVudFNlc3Npb246OmRhdGFMb2FkaW5nUGVybWl0dGVkKGNvbnN0IEhUTUxNZWRp
YUVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0CiB7CiAgICAgaWYgKG1fcmVzdHJpY3Rpb25zICYgT3Zl
cnJpZGVVc2VyR2VzdHVyZVJlcXVpcmVtZW50Rm9yTWFpbkNvbnRlbnQgJiYgdXBkYXRlSXNNYWlu
Q29udGVudCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChtX3Jlc3RyaWN0aW9u
cyAmIFJlcXVpcmVVc2VyR2VzdHVyZUZvckxvYWQgJiYgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nl
c3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsKKyAgICBpZiAobV9yZXN0cmljdGlvbnMgJiBS
ZXF1aXJlVXNlckdlc3R1cmVGb3JMb2FkICYmICFlbGVtZW50LmRvY3VtZW50KCkucHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkgewogICAgICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1l
bnRTZXNzaW9uOjpkYXRhTG9hZGluZ1Blcm1pdHRlZCAtIHJldHVybmluZyBGQUxTRSIpOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMjMxLDkgKzIzMSw5IEBAIGJvb2wgTWVkaWFF
bGVtZW50U2Vzc2lvbjo6ZGF0YUxvYWRpbmdQZXJtaXR0ZWQoY29uc3QgSFRNTE1lZGlhRWxlbWVu
dCYpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgTWVkaWFFbGVtZW50U2Vzc2lv
bjo6ZnVsbHNjcmVlblBlcm1pdHRlZChjb25zdCBIVE1MTWVkaWFFbGVtZW50JikgY29uc3QKK2Jv
b2wgTWVkaWFFbGVtZW50U2Vzc2lvbjo6ZnVsbHNjcmVlblBlcm1pdHRlZChjb25zdCBIVE1MTWVk
aWFFbGVtZW50JiBlbGVtZW50KSBjb25zdAogewotICAgIGlmIChtX3Jlc3RyaWN0aW9ucyAmIFJl
cXVpcmVVc2VyR2VzdHVyZUZvckZ1bGxzY3JlZW4gJiYgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nl
c3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsKKyAgICBpZiAobV9yZXN0cmljdGlvbnMgJiBS
ZXF1aXJlVXNlckdlc3R1cmVGb3JGdWxsc2NyZWVuICYmICFlbGVtZW50LmRvY3VtZW50KCkucHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkgewogICAgICAgICBMT0coTWVkaWEsICJNZWRp
YUVsZW1lbnRTZXNzaW9uOjpmdWxsc2NyZWVuUGVybWl0dGVkIC0gcmV0dXJuaW5nIEZBTFNFIik7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0yODEsNyArMjgxLDcgQEAgYm9vbCBN
ZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyKFBsYXliYWNrQ29udHJv
bHNQdXJwb3NlIHB1cnBvc2UKICAgICB9CiAKICAgICBpZiAoY2xpZW50KCkucHJlc2VudGF0aW9u
VHlwZSgpID09IEF1ZGlvKSB7Ci0gICAgICAgIGlmICghaGFzQmVoYXZpb3JSZXN0cmljdGlvbihS
ZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250cm9sc01hbmFnZXIpIHx8IFNjcmlwdENvbnRy
b2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsKKyAgICAgICAgaWYgKCFo
YXNCZWhhdmlvclJlc3RyaWN0aW9uKFJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xz
TWFuYWdlcikgfHwgbV9lbGVtZW50LmRvY3VtZW50KCkucHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9y
TWVkaWEoKSkgewogICAgICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6
Y2FuU2hvd0NvbnRyb2xzTWFuYWdlciAtIHJldHVybmluZyBUUlVFOiBBdWRpbyBlbGVtZW50IHdp
dGggdXNlciBnZXN0dXJlIik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpA
QCAtMzE1LDcgKzMxNSw3IEBAIGJvb2wgTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRy
b2xzTWFuYWdlcihQbGF5YmFja0NvbnRyb2xzUHVycG9zZSBwdXJwb3NlCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAoIWhhc0JlaGF2aW9yUmVzdHJpY3Rpb24oUmVxdWly
ZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKSB8fCBTY3JpcHRDb250cm9sbGVy
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CisgICAgaWYgKCFoYXNCZWhhdmlv
clJlc3RyaWN0aW9uKFJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlcikg
fHwgbV9lbGVtZW50LmRvY3VtZW50KCkucHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkg
ewogICAgICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29udHJv
bHNNYW5hZ2VyIC0gcmV0dXJuaW5nIFRSVUU6IE5vIHVzZXIgZ2VzdHVyZSByZXF1aXJlZCIpOwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0zODQsNyArMzg0LDcgQEAgdm9pZCBNZWRp
YUVsZW1lbnRTZXNzaW9uOjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoY29uc3QgSFRNTE1lZGlh
RWxlbWVudCYgZWxlbWUKIHsKICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpz
aG93UGxheWJhY2tUYXJnZXRQaWNrZXIiKTsKIAotICAgIGlmIChtX3Jlc3RyaWN0aW9ucyAmIFJl
cXVpcmVVc2VyR2VzdHVyZVRvU2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyICYmICFTY3JpcHRDb250
cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CisgICAgaWYgKG1fcmVz
dHJpY3Rpb25zICYgUmVxdWlyZVVzZXJHZXN0dXJlVG9TaG93UGxheWJhY2tUYXJnZXRQaWNrZXIg
JiYgIWVsZW1lbnQuZG9jdW1lbnQoKS5wcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7
CiAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OnNob3dQbGF5YmFja1Rh
cmdldFBpY2tlciAtIHJldHVybmluZyBlYXJseSBiZWNhdXNlIG9mIHBlcm1pc3Npb25zIik7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmluIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgppbmRleCBjZjUxM2U0
MzcyY2YwYzgxMzdmZjNmYjRjNTExNTg3YzdlZmYxNGNjLi5lNDBjYWE4NGQ2M2IwOWYzNTFmYmIw
NmRiMWZlMDJmOWRiOWI4MjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KQEAgLTEzMSw2ICsx
MzEsNyBAQCByZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8gaW5pdGlhbD1kZWZhdWx0UmVx
dWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvCiB2aWRlb1BsYXliYWNrUmVxdWlyZXNVc2VyR2Vz
dHVyZSBpbml0aWFsPWRlZmF1bHRWaWRlb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZQogYXVk
aW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgaW5pdGlhbD1kZWZhdWx0QXVkaW9QbGF5YmFj
a1JlcXVpcmVzVXNlckdlc3R1cmUKIG1haW5Db250ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJs
ZWQgaW5pdGlhbD1mYWxzZQorbWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50IGlu
aXRpYWw9ZmFsc2UKIGFsbG93c0lubGluZU1lZGlhUGxheWJhY2sgaW5pdGlhbD1kZWZhdWx0QWxs
b3dzSW5saW5lTWVkaWFQbGF5YmFjawogYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVs
bHNjcmVlbiBpbml0aWFsPXRydWUKIGlubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5s
aW5lQXR0cmlidXRlIGluaXRpYWw9ZGVmYXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1Bs
YXlzSW5saW5lQXR0cmlidXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAppbmRleCA1YjliZDgzZjMyOWFjMjZhZjU1OTRiMDVl
NDU3MjQ2NjlkNDg1N2U0Li5hNjNiOWM0ODYwZDdhNjRiY2MyMWQ3MjAzMmEzNGNlZmY5NzdlZDdi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVk
aWFTZXNzaW9uLmgKQEAgLTIzMSw2ICsyMzEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25z
dCBEb2N1bWVudCogaG9zdGluZ0RvY3VtZW50KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgU3Ry
aW5nIHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpIGNvbnN0ID0gMDsKIAorICAgIHZpcnR1
YWwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpIGNvbnN0ID0gMDsKKwogcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgflBsYXRmb3JtTWVkaWFTZXNzaW9uQ2xpZW50KCkgeyB9CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmgKaW5kZXggYTFhYTJkZTk3NjFiZDQzY2U4MzIyZGNjMzUyNGM5OGYwOGM4YjMxNi4u
N2Q2ZGUxZjM1MzZiMmNiYzdhZjIzY2FkYmVmMjU1MWY5ZjJmY2E0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0x
ODMsNiArMTgzLDcgQEAKICNkZWZpbmUgV2ViS2l0V2ViUlRDTGVnYWN5QVBJRW5hYmxlZFByZWZl
cmVuY2VLZXkgQCJXZWJLaXRXZWJSVENMZWdhY3lBUElFbmFibGVkIgogI2RlZmluZSBXZWJLaXRM
aW5rUHJlbG9hZEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0TGlua1ByZWxvYWRFbmFibGVk
IgogI2RlZmluZSBXZWJLaXRDcmVkZW50aWFsTWFuYWdlbWVudEVuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0Q3JlZGVudGlhbE1hbmFnZW1lbnRFbmFibGVkIgorI2RlZmluZSBXZWJLaXRNZWRp
YVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQgQCJXZWJLaXRNZWRpYVVzZXJHZXN0dXJl
SW5oZXJpdHNGcm9tRG9jdW1lbnQiCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQogLy8gVGhlc2Ug
YXJlIHByaXZhdGUgYm90aCBiZWNhdXNlIGNhbGxlcnMgc2hvdWxkIGJlIHVzaW5nIHRoZSBjb3Zl
ciBtZXRob2RzIGFuZCBiZWNhdXNlIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXMubW0KaW5kZXggNzc0OWFjNjc0NzM1N2M3YTM5YTFlZWQwMGM1MTk0ZDFlYjJm
NDFhNy4uZjhjNTdjODEyMmJkYzE2ZDFkYzllNjFhZGIyY2IzOWQzMzRmMGI1MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC02NjksNiArNjY5LDcg
QEAgKyAodm9pZClpbml0aWFsaXplCiAgICAgICAgIEBOTywgV2ViS2l0VXNlclRpbWluZ0VuYWJs
ZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBATk8sIFdlYktpdFJlc291cmNlVGltaW5nRW5hYmxl
ZFByZWZlcmVuY2VLZXksCiAgICAgICAgIEBOTywgV2ViS2l0Q3JlZGVudGlhbE1hbmFnZW1lbnRF
bmFibGVkUHJlZmVyZW5jZUtleSwKKyAgICAgICAgQE5PLCBXZWJLaXRNZWRpYVVzZXJHZXN0dXJl
SW5oZXJpdHNGcm9tRG9jdW1lbnQsCiAgICAgICAgIG5pbF07CiAKICNpZiAhUExBVEZPUk0oSU9T
KQpAQCAtMzA2Miw2ICszMDYzLDE2IEBAIC0gKHZvaWQpc2V0Q3JlZGVudGlhbE1hbmFnZW1lbnRF
bmFibGVkOihCT09MKWZsYWcKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5Oldl
YktpdENyZWRlbnRpYWxNYW5hZ2VtZW50RW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCistIChC
T09MKW1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudAoreworICAgIHJldHVybiBb
c2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21E
b2N1bWVudF07Cit9CisKKy0gKHZvaWQpc2V0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURv
Y3VtZW50OihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5
OldlYktpdE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudF07Cit9CisKICNpZiBQ
TEFURk9STShJT1MpCiAtIChCT09MKXF1aWNrTG9va0RvY3VtZW50U2F2aW5nRW5hYmxlZAogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgK
aW5kZXggZWY1ZWZjOTUyZjk5OGI5YjZhNWIwYmI1ODQ4MDk1MDM4MjdmMGJlMC4uODIzZmMzNmUw
NTBhYmM0ZDEwN2QwZTVhZmFmZWM5OTg5ZGY2MWMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC01NTksNiArNTU5LDcgQEAg
ZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hlTW9kZWxDaGFuZ2VkSW50ZXJuYWxO
b3RpZmljYXRpb247CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCByZXNvdXJjZVRpbWluZ0Vu
YWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBsaW5rUHJlbG9hZEVuYWJsZWQ7CiBA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBjcmVkZW50aWFsTWFuYWdlbWVudEVuYWJsZWQ7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBtZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9j
dW1lbnQ7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCBxdWlja0xvb2tEb2N1bWVudFNhdmluZ0VuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAppbmRleCBmNTIyNmFmNTk1MWFlMGM1
OTQyMTFhM2NhMjgzYTRlZjFmZmQwOWY5Li42ZDg3NmU3ZDIyODcwMzI5OTRhMDU2Y2Q4MjY4ZDk5
MjQ1MzBjODY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNEZWZpbml0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNl
c0RlZmluaXRpb25zLmgKQEAgLTE3Miw2ICsxNzIsNyBAQAogICAgIG1hY3JvKFJlcXVpcmVzVXNl
ckdlc3R1cmVGb3JBdWRpb1BsYXliYWNrLCByZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9QbGF5
YmFjaywgQm9vbCwgYm9vbCwgREVGQVVMVF9SRVFVSVJFU19VU0VSX0dFU1RVUkVfRk9SX0FVRElP
X1BMQVlCQUNLLCAiIiwgIiIpIFwKICAgICBtYWNybyhSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2Fk
VmlkZW8sIHJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRWaWRlbywgQm9vbCwgYm9vbCwgZmFsc2Us
ICIiLCAiIikgXAogICAgIG1hY3JvKE1haW5Db250ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJs
ZWQsIG1haW5Db250ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQsIEJvb2wsIGJvb2wsIGZh
bHNlLCAiIiwgIiIpIFwKKyAgICBtYWNybyhNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9j
dW1lbnQsIG1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudCwgQm9vbCwgYm9vbCwg
ZmFsc2UsICIiLCAiIikgXAogICAgIG1hY3JvKEFsbG93c0lubGluZU1lZGlhUGxheWJhY2ssIGFs
bG93c0lubGluZU1lZGlhUGxheWJhY2ssIEJvb2wsIGJvb2wsIERFRkFVTFRfQUxMT1dTX0lOTElO
RV9NRURJQV9QTEFZQkFDSywgIiIsICIiKSBcCiAgICAgbWFjcm8oQWxsb3dzSW5saW5lTWVkaWFQ
bGF5YmFja0FmdGVyRnVsbHNjcmVlbiwgYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVs
bHNjcmVlbiwgQm9vbCwgYm9vbCwgREVGQVVMVF9BTExPV1NfSU5MSU5FX01FRElBX1BMQVlCQUNL
X0FGVEVSX0ZVTExTQ1JFRU4sICIiLCAiIikgXAogICAgIG1hY3JvKElubGluZU1lZGlhUGxheWJh
Y2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlLCBpbmxpbmVNZWRpYVBsYXliYWNrUmVxdWly
ZXNQbGF5c0lubGluZUF0dHJpYnV0ZSwgQm9vbCwgYm9vbCwgREVGQVVMVF9JTkxJTkVfTUVESUFf
UExBWUJBQ0tfUkVRVUlSRVNfUExBWVNfSU5MSU5FX0FUVFJJQlVURSwgIiIsICIiKSBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXgg
OTU0MmUwZjZkNGNkMGMzOWQwNzRkNWYzOGFhYjU3ODlmMWNmYmU3MC4uZWFkNzZiYTg0NjFkNmQ0
MjQxM2RhYzhkYTViOGVhYzFmOGRhNTYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtMTc2MCwzICsxNzYwLDEzIEBAIGJvb2wg
V0tQcmVmZXJlbmNlc0dldFNob3VsZFN1cHByZXNzS2V5Ym9hcmRJbnB1dER1cmluZ1Byb3Zpc2lv
bmFsTmF2aWdhdGlvbihXS1ByCiB7CiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZikt
PnNob3VsZFN1cHByZXNzS2V5Ym9hcmRJbnB1dER1cmluZ1Byb3Zpc2lvbmFsTmF2aWdhdGlvbigp
OwogfQorCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9t
RG9jdW1lbnQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKQorewor
ICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zy
b21Eb2N1bWVudChmbGFnKTsKK30KKworYm9vbCBXS1ByZWZlcmVuY2VzR2V0TWVkaWFVc2VyR2Vz
dHVyZUluaGVyaXRzRnJvbURvY3VtZW50KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYp
Cit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPm1lZGlhVXNlckdlc3R1cmVJ
bmhlcml0c0Zyb21Eb2N1bWVudCgpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAppbmRleCAyYjljNjBlOGZh
MDY4ZWY0YjI3ZmUyOWFmMmNmNDJhMGY1ODhiNDA4Li5jZDIzMmI5NjM1N2RlOWExMWI2YjE3MDM4
ODA2ZWE4ZTE2N2JiZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaApAQCAtNDkzLDYgKzQ5MywxMCBAQCBX
S19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0Q3JlZGVudGlhbE1hbmFnZW1lbnRFbmFibGVk
KFdLUHJlZmVyZW5jZXNSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEludmlz
aWJsZU1lZGlhQXV0b3BsYXlQZXJtaXR0ZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKTsK
IFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRJbnZpc2libGVNZWRpYUF1dG9wbGF5UGVy
bWl0dGVkKFdLUHJlZmVyZW5jZXNSZWYpOwogCisvLyBEZWZhdWx0cyB0byBmYWxzZS4KK1dLX0VY
UE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9j
dW1lbnQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKTsKK1dLX0VYUE9SVCBib29sIFdLUHJl
ZmVyZW5jZXNHZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQoV0tQcmVmZXJl
bmNlc1JlZik7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMGUxMTc4MjU0OTM0YWE1
MGQ0OGUyZjdhZjM0NTViMmMzNTJlNGIzMS4uM2M0Y2U2YTQ4ODAzNTRjODFmNWYyYzQ4YjI3YmZm
NmU0ZTA1ZTI0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtMzEyMSw2ICszMTIxLDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJl
bmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICBzZXR0aW5ncy5zZXRB
dWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShyZXF1aXJlc1VzZXJHZXN0dXJlRm9yTWVk
aWEgfHwgc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpyZXF1aXJl
c1VzZXJHZXN0dXJlRm9yQXVkaW9QbGF5YmFja0tleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0UmVx
dWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6cmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvS2V5KCkpKTsKICAg
ICBzZXR0aW5ncy5zZXRNYWluQ29udGVudFVzZXJHZXN0dXJlT3ZlcnJpZGVFbmFibGVkKHN0b3Jl
LmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bWFpbkNvbnRlbnRVc2VyR2Vz
dHVyZU92ZXJyaWRlRW5hYmxlZEtleSgpKSk7CisgICAgc2V0dGluZ3Muc2V0TWVkaWFVc2VyR2Vz
dHVyZUluaGVyaXRzRnJvbURvY3VtZW50KHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6bWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50S2V5KCkpKTsK
ICAgICBzZXR0aW5ncy5zZXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrKHN0b3JlLmdldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6YWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0tl
eSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVs
bHNjcmVlbihzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmFsbG93
c0lubGluZU1lZGlhUGxheWJhY2tBZnRlckZ1bGxzY3JlZW5LZXkoKSkpOwogICAgIHNldHRpbmdz
LnNldElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlKHN0b3Jl
LmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6aW5saW5lTWVkaWFQbGF5YmFj
a1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGVLZXkoKSkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc5YTRjNzQ5OTJk
NjJlYzEyYTIwZjlmNTQ2ZmY2OGMzMDg3YzZlZjUuLjk3MzQ1OTYzNmFkNDUzOGIzM2MyOTQ1MmM2
OTNkNTNkZTFlYjdiNmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wNS0xNSAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgZXhwZXJpbWVudGFsIHNl
dHRpbmcgdG8gYWxsb3cgZG9jdW1lbnQgZ2VzdHVyZSBpbnRlcmFjdGlvbiB0byBmdWxmaWxsIG1l
ZGlhIHBsYXliYWNrIGdlc3R1cmUgcmVxdWlyZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjEzMQorCisgICAgICAgIFJldmlld2VkIGJ5IEVy
aWMgQ2FybHNvbi4KKworICAgICAgICAqIG1lZGlhL3Jlc3RyaWN0ZWQtYXVkaW8tcGxheWJhY2st
d2l0aC1kb2N1bWVudC1nZXN0dXJlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVk
aWEvcmVzdHJpY3RlZC1hdWRpby1wbGF5YmFjay13aXRoLWRvY3VtZW50LWdlc3R1cmUuaHRtbDog
QWRkZWQuCisKIDIwMTctMDUtMTEgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBWDogRGVmZXIgdGV4dCBjaGFuZ2VzIHVudGlsIGFmdGVyIHRoZSB0cmVlIGlzIGNs
ZWFuIGlmIG5lZWRlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3Jlc3RyaWN0ZWQt
YXVkaW8tcGxheWJhY2std2l0aC1kb2N1bWVudC1nZXN0dXJlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL21lZGlhL3Jlc3RyaWN0ZWQtYXVkaW8tcGxheWJhY2std2l0aC1kb2N1bWVudC1nZXN0
dXJlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMWMxMmQ4YjY4MWRkZTViNDliMTJmMWYzZjcx
Mzc2N2U1YWM0NWNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvcmVzdHJp
Y3RlZC1hdWRpby1wbGF5YmFjay13aXRoLWRvY3VtZW50LWdlc3R1cmUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTIgQEAKK1Rlc3QgdGhhdCwgd2hlbiBSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRp
b1JhdGVDaGFuZ2UgaXMgc2V0IGFsb25nIHdpdGggTWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRm9y
RG9jdW1lbnQsIGEgdXNlciBnZXN0dXJlIGluIHRoZSBkb2N1bWVudCB3aWxsIGFsbG93IGZ1dHVy
ZSBtZWRpYSBwbGF5YmFjayByZXF1ZXN0cyB0byBzdWNjZWVkLgorCisKK1JVTihpbnRlcm5hbHMu
c2V0TWVkaWFFbGVtZW50UmVzdHJpY3Rpb25zKG1lZGlhRWxlbWVudCwgIlJlcXVpcmVVc2VyR2Vz
dHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSIpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRNZWRp
YVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQodHJ1ZSkpCitSdW5uaW5nIHdpdGgga2V5
RG93bi4KK1JVTihtZWRpYUVsZW1lbnQuc3JjID0gZmluZE1lZGlhRmlsZSgnYXVkaW8nLCAnY29u
dGVudC90ZXN0JykpCitFVkVOVChjYW5wbGF5dGhyb3VnaCkKK1JVTihtZWRpYUVsZW1lbnQucGxh
eSgpKQorRVhQRUNURUQgKG1lZGlhRWxlbWVudC5wYXVzZWQgPT0gJ2ZhbHNlJykgT0sKK0VORCBP
RiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3Jlc3RyaWN0ZWQtYXVkaW8t
cGxheWJhY2std2l0aC1kb2N1bWVudC1nZXN0dXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9y
ZXN0cmljdGVkLWF1ZGlvLXBsYXliYWNrLXdpdGgtZG9jdW1lbnQtZ2VzdHVyZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc0NzhmODBiMjExMWE2MjI3NDAyOGFhNzkzM2UxNTcwZmE4MDYzYjMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9yZXN0cmljdGVkLWF1ZGlvLXBsYXliYWNrLXdp
dGgtZG9jdW1lbnQtZ2VzdHVyZS5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+cmVzdHJpY3RlZC1hdWRpby1wbGF5YmFjay13
aXRoLWRvY3VtZW50LWdlc3R1cmU8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPW1lZGlhLWZpbGUu
anM+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKwor
ICAgIDxzY3JpcHQ+CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAgICAgICBtZWRp
YUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYXVkaW8nKVswXTsKKwor
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgcnVuKCdpbnRlcm5h
bHMuc2V0TWVkaWFFbGVtZW50UmVzdHJpY3Rpb25zKG1lZGlhRWxlbWVudCwgIlJlcXVpcmVVc2Vy
R2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSIpJyk7CisgICAgICAgICAgICBydW4oJ2ludGVybmFs
cy5zZXR0aW5ncy5zZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQodHJ1ZSkn
KTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGVXcml0ZSgnUnVubmluZyB3aXRoIGtleURv
d24uJyk7CisgICAgICAgIHJ1bldpdGhLZXlEb3duKCgpID0+IHsKKyAgICAgICAgICAgIHJ1bigi
bWVkaWFFbGVtZW50LnNyYyA9IGZpbmRNZWRpYUZpbGUoJ2F1ZGlvJywgJ2NvbnRlbnQvdGVzdCcp
Iik7CisgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ2NhbnBsYXl0aHJvdWdoJywgY2FucGxheXRo
cm91Z2gpOworICAgICAgICAgICAgd2FpdEZvckV2ZW50QW5kRmFpbCgnZXJyb3InKTsKKyAgICAg
ICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2FucGxheXRocm91Z2goKQorICAgIHsKKyAg
ICAgICAgcnVuKCJtZWRpYUVsZW1lbnQucGxheSgpIik7CisgICAgICAgIHRlc3RFeHBlY3RlZCgn
bWVkaWFFbGVtZW50LnBhdXNlZCcsIGZhbHNlKTsKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0K
KyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAg
IDxwPlRlc3QgdGhhdCwgd2hlbiBSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2Ug
aXMgc2V0IGFsb25nIHdpdGggTWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRm9yRG9jdW1lbnQsIGEg
dXNlciBnZXN0dXJlIGluIHRoZSBkb2N1bWVudCB3aWxsIGFsbG93IGZ1dHVyZSBtZWRpYSBwbGF5
YmFjayByZXF1ZXN0cyB0byBzdWNjZWVkLjwvcD4KKyAgICA8YXVkaW8gY29udHJvbHMgYXV0b3Bs
YXk+PC9hdWRpbz4KKzwvYm9keT4KKzwvaHRtbD4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310173</attachid>
            <date>2017-05-15 15:05:54 -0700</date>
            <delta_ts>2017-05-15 15:46:17 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-172131-20170515150654.patch</filename>
            <type>text/plain</type>
            <size>32044</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTBiZTU5YTFjN2RmYTdl
ZGMxMDZiYjY1NTEzNmY3Y2U2MWZiMTI0Yi4uZmI1YjIyZjNhZDFmMDBjNTc1NTMyODdhOTAwYTQz
MTgyOGEwMDk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE3LTA1LTE1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBleHBlcmltZW50YWwg
c2V0dGluZyB0byBhbGxvdyBkb2N1bWVudCBnZXN0dXJlIGludGVyYWN0aW9uIHRvIGZ1bGZpbGwg
bWVkaWEgcGxheWJhY2sgZ2VzdHVyZSByZXF1aXJlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBDYXJsc29uLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3Jlc3RyaWN0ZWQtYXVkaW8tcGxh
eWJhY2std2l0aC1kb2N1bWVudC1nZXN0dXJlLmh0bWwKKworICAgICAgICBNb3ZlIGFsbCBjYWxs
cyB0byBTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpIHRv
IHRoZSBuZXcgRG9jdW1lbnQgZXF1aXZhbGVudC4gSW4gRG9jdW1lbnQsCisgICAgICAgIGlmIHRo
ZSBuZXcgc2V0dGluZyBpcyBlbmFibGVkLCByZXR1cm4gdHJ1ZSBmcm9tIHByb2Nlc3NpbmdVc2Vy
R2VzdHVyZUZvck1lZGlhKCkgaWYgdGhlIHRvcC1sZXZlbCBkb2N1bWVudCBoYXMgaGFkCisgICAg
ICAgIGEgdXNlciBnZXN0dXJlIGludGVyYWN0aW9uLgorCisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6
cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW0uaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OnByb2Nlc3NpbmdVc2Vy
R2VzdHVyZUZvck1lZGlhKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6d2lsbEJl
Z2luUGxheWJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Db250ZXh0Ojp3aWxsUGF1c2VQ
bGF5YmFjayk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnBy
b2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjphdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6c2Vla1dpdGhUb2xlcmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6cGxheSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpw
bGF5SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGF1c2Up
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGF1c2VJbnRlcm5hbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRNdXRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp3ZWJraXRTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cHJvY2Vzc2luZ1VzZXJHZXN0
dXJlRm9yTWVkaWEpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUVsZW1lbnRTZXNzaW9uOjpwbGF5YmFja1Blcm1pdHRlZCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUVsZW1lbnRTZXNzaW9uOjpkYXRhTG9hZGluZ1Blcm1pdHRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpmdWxsc2NyZWVuUGVybWl0dGVkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhRWxlbWVudFNlc3Npb246OmNhblNob3dDb250cm9sc01hbmFnZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6c2hvd1BsYXliYWNrVGFyZ2V0
UGlja2VyKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOgorICAgICAgICAqIHBsYXRmb3Jt
L2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg6CisKIDIwMTctMDUtMTUgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFdvcmtlclJ1bkxvb3A6OlRhc2s6OnBlcmZv
cm1UYXNrKCkgc2hvdWxkIGNoZWNrICFzY3JpcHRDb250cm9sbGVyLT5pc1Rlcm1pbmF0aW5nRXhl
Y3V0aW9uKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYzAxZjI1ZDdjYWMxMTlmYjk3OTkwYTM1MjMz
YjI5NmMxOGM1ODg1NS4uYzE2YjQ2YWQxMjAyNmVjYTU3MTczMWI3M2UwZGUxMjUxOTAyN2YxZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA1LTE1ICBKZXIgTm9ibGUg
IDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBleHBlcmltZW50YWwgc2V0dGlu
ZyB0byBhbGxvdyBkb2N1bWVudCBnZXN0dXJlIGludGVyYWN0aW9uIHRvIGZ1bGZpbGwgbWVkaWEg
cGxheWJhY2sgZ2VzdHVyZSByZXF1aXJlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBD
YXJsc29uLgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVm
ZXJlbmNlcyBpbml0aWFsaXplXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIG1lZGlhVXNl
ckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudF0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNl
cyBzZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQ6XSk6CisgICAgICAgICog
V2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKwogMjAxNy0wNS0xMiAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERyb3AgdXNlcyBvZiBQYXNzUmVmUHRy
IGluIFdlYktpdC9tYWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MjM2ODExM2M4NDUxODAxYzM0NWI0M2M4Mzc1
MDI4MGQzNTAzOGNlLi40ZDkyNDdkNjhmNDlkYjgzOWYxZGE0ZWEyYjNjY2U4OWIyNWNiOTdkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTctMDUtMTUgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGV4cGVyaW1lbnRhbCBzZXR0aW5nIHRvIGFs
bG93IGRvY3VtZW50IGdlc3R1cmUgaW50ZXJhY3Rpb24gdG8gZnVsZmlsbCBtZWRpYSBwbGF5YmFj
ayBnZXN0dXJlIHJlcXVpcmVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzIxMzEKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24u
CisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVy
ZW5jZXNTZXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQpOgorICAgICAgICAo
V0tQcmVmZXJlbmNlc0dldE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisKIDIwMTctMDUtMTUgIEJyZW50IEZ1bGdoYW0g
IDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dLMl1bbWFjT1NdW2lPU10gQWxsb3cg
TmV0d29yayBwcm9jZXNzIHRvIGFjY2VzcyBuc3VybHN0b3JhZ2VkJ3MgdG9wIGxldmVsIGRvbWFp
biBkYXRhIGNhY2hlIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtLmNwcAppbmRleCAyNmY1NGUwODBhZmNiOTk5MDRmOGQyMmQ2ZGM5OTg3ODdj
ZDUyZjQ0Li44MGJlNWZmZDA3NmM3OTQyYjkyYTNkNmE3ZmVkZDdjYjgxNDdlOTg5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcApA
QCAtNTA2LDYgKzUwNiwxMSBAQCBib29sIE1lZGlhU3RyZWFtOjpjYW5Qcm9kdWNlQXVkaW8oKSBj
b25zdAogICAgIHJldHVybiAhbXV0ZWQoKSAmJiBhY3RpdmUoKSAmJiBtX3ByaXZhdGUtPmhhc0F1
ZGlvKCkgJiYgbV9pc1Byb2R1Y2luZ0RhdGE7CiB9CiAKK2Jvb2wgTWVkaWFTdHJlYW06OnByb2Nl
c3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQo
KSA/IGRvY3VtZW50KCktPnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgOiBmYWxzZTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NU
UkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0uaAppbmRleCBkMjJhOTE1YTNjOTAwODcxZWJjMzVlOTM4Y2U5OTkzZDI4ODlmNjYzLi5lYTY0
Mjc3ZDg5NjEwMGJmYmJiNzZlYzBiNDM1OThlNzBiNTBkNjMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCkBAIC0xNTMsNiArMTUzLDcg
QEAgcHJpdmF0ZToKICAgICBTdHJpbmcgc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29u
c3QgZmluYWw7CiAgICAgYm9vbCBjYW5Qcm9kdWNlQXVkaW8oKSBjb25zdCBmaW5hbDsKICAgICBj
b25zdCBEb2N1bWVudCogaG9zdGluZ0RvY3VtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZG9j
dW1lbnQoKTsgfQorICAgIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSBjb25z
dCBmaW5hbDsKIAogICAgIGJvb2wgaW50ZXJuYWxBZGRUcmFjayhSZWY8TWVkaWFTdHJlYW1UcmFj
az4mJiwgU3RyZWFtTW9kaWZpZXIpOwogICAgIGJvb2wgaW50ZXJuYWxSZW1vdmVUcmFjayhjb25z
dCBTdHJpbmcmLCBTdHJlYW1Nb2RpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKaW5kZXggMjM1Mjk5Y2JlNTNkZTcwNDI2NjdiZTlj
YmU4ZWJiZTEzNGZkYzQ1OS4uODg0ZDYyYzQ5NWU0YjZjYjYzMzlhMmEwMDg2YWU5NTk2ZmVhZGE4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0
LmNwcApAQCAtMzY4LDYgKzM2OCwxMSBAQCBTdHJpbmcgQXVkaW9Db250ZXh0Ojpzb3VyY2VBcHBs
aWNhdGlvbklkZW50aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogfQog
Citib29sIEF1ZGlvQ29udGV4dDo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSBjb25z
dAoreworICAgIHJldHVybiBkb2N1bWVudCgpID8gZG9jdW1lbnQoKS0+cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlRm9yTWVkaWEoKSA6IGZhbHNlOworfQorCiB2b2lkIEF1ZGlvQ29udGV4dDo6dmlzaWJp
bGl0eVN0YXRlQ2hhbmdlZCgpCiB7CiAgICAgLy8gRG8gbm90IHN1c3BlbmQgaWYgYXVkaW8gaXMg
YXVkaWJsZS4KQEAgLTkzMyw3ICs5MzgsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6bm9kZVdpbGxC
ZWdpblBsYXliYWNrKCkKIGJvb2wgQXVkaW9Db250ZXh0Ojp3aWxsQmVnaW5QbGF5YmFjaygpCiB7
CiAgICAgaWYgKHVzZXJHZXN0dXJlUmVxdWlyZWRGb3JBdWRpb1N0YXJ0KCkpIHsKLSAgICAgICAg
aWYgKCFTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQor
ICAgICAgICBpZiAoIXByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24oQXVkaW9D
b250ZXh0OjpSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1N0YXJ0UmVzdHJpY3Rpb24pOwogICAg
IH0KQEAgLTk1Myw3ICs5NTgsNyBAQCBib29sIEF1ZGlvQ29udGV4dDo6d2lsbEJlZ2luUGxheWJh
Y2soKQogYm9vbCBBdWRpb0NvbnRleHQ6OndpbGxQYXVzZVBsYXliYWNrKCkKIHsKICAgICBpZiAo
dXNlckdlc3R1cmVSZXF1aXJlZEZvckF1ZGlvU3RhcnQoKSkgewotICAgICAgICBpZiAoIVNjcmlw
dENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCisgICAgICAgIGlm
ICghcHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgcmVtb3ZlQmVoYXZpb3JSZXN0cmljdGlvbihBdWRpb0NvbnRleHQ6OlJl
cXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvU3RhcnRSZXN0cmljdGlvbik7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKaW5kZXggNDliYjEz
N2NjOGFiMjFkZDRmOThiZTE1Y2NhZGZmODE4MDgzMjUzZS4uNzdmYTg3N2UzOGRkYjUzMTYyOTA0
MGFjNzkwN2JiYzkyOTllM2NlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC0zMTksNiArMzE5LDcgQEAgcHJpdmF0ZToKICAgICBib29s
IHNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJpY3Rpb24oUGxhdGZvcm1NZWRp
YVNlc3Npb246OkludGVycnVwdGlvblR5cGUpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgU3RyaW5nIHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpIGNvbnN0IG92ZXJy
aWRlOwogICAgIGJvb2wgY2FuUHJvZHVjZUF1ZGlvKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSBjb25zdCBmaW5h
bDsKIAogICAgIHZvaWQgdmlzaWJpbGl0eVN0YXRlQ2hhbmdlZCgpIGZpbmFsOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAppbmRleCAxZmRkMjAzZGY5NDM1NDNlZGNlMTg4OGNjN2E3NGFhOTFiNzQ3
MDEyLi5lYzQwOTI0NWM5ZWI5MGQ2ZWQwNjI5YzIwZjc4YTMxZjFkYTc2ZTQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKQEAgLTYzNjQsNiArNjM2NCwxNyBAQCB2b2lkIERvY3VtZW50Ojp1cGRh
dGVMYXN0SGFuZGxlZFVzZXJHZXN0dXJlVGltZXN0YW1wKE1vbm90b25pY1RpbWUgdGltZSkKICAg
ICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXN0SGFuZGxlZFVzZXJHZXN0dXJlVGlt
ZXN0YW1wKHRpbWUpOwogfQogCitib29sIERvY3VtZW50Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmVG
b3JNZWRpYSgpIGNvbnN0Cit7CisgICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdV
c2VyR2VzdHVyZUZvck1lZGlhKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKCFz
ZXR0aW5ncygpLm1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudCgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdG9wRG9jdW1lbnQoKS5oYXNIYWRVc2VySW50
ZXJhY3Rpb24oKTsKK30KKwogdm9pZCBEb2N1bWVudDo6c3RhcnRUcmFja2luZ1N0eWxlUmVjYWxj
cygpCiB7CiAgICAgbV9zdHlsZVJlY2FsY0NvdW50ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5k
ZXggOTk0YTlhNWFmZWRhYzMwNzljZDY0ZDliYTA5YTRiNGM3NmI3NGY5My4uYWZlZjAzM2RmODk5
MWU0MTBlMjNiMmIzNDE1ZjY4ODAyY2M1NGExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEx
NDksNiArMTE0OSw3IEBAIHB1YmxpYzoKICAgICBNb25vdG9uaWNUaW1lIGxhc3RIYW5kbGVkVXNl
ckdlc3R1cmVUaW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX2xhc3RIYW5kbGVkVXNlckdlc3R1
cmVUaW1lc3RhbXA7IH0KICAgICBib29sIGhhc0hhZFVzZXJJbnRlcmFjdGlvbigpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PGJvb2w+KG1fbGFzdEhhbmRsZWRVc2VyR2VzdHVyZVRpbWVzdGFt
cCk7IH0KICAgICB2b2lkIHVwZGF0ZUxhc3RIYW5kbGVkVXNlckdlc3R1cmVUaW1lc3RhbXAoTW9u
b3RvbmljVGltZSk7CisgICAgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpIGNv
bnN0OwogCiAgICAgdm9pZCBzZXRVc2VyRGlkSW50ZXJhY3RXaXRoUGFnZShib29sIHVzZXJEaWRJ
bnRlcmFjdFdpdGhQYWdlKSB7IEFTU0VSVCgmdG9wRG9jdW1lbnQoKSA9PSB0aGlzKTsgbV91c2Vy
RGlkSW50ZXJhY3RXaXRoUGFnZSA9IHVzZXJEaWRJbnRlcmFjdFdpdGhQYWdlOyB9CiAgICAgYm9v
bCB1c2VyRGlkSW50ZXJhY3RXaXRoUGFnZSgpIGNvbnN0IHsgQVNTRVJUKCZ0b3BEb2N1bWVudCgp
ID09IHRoaXMpOyByZXR1cm4gbV91c2VyRGlkSW50ZXJhY3RXaXRoUGFnZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMGQxOGM2YTY0MTNmMzM5M2E0ZmU1
YzE1Y2UyMDlkMzhiODI2N2EwZS4uMWQ4NjNjNTM3YmE3NGFkZTZjNTVjMzk2ZGMwMTAwMWZjNWVm
MWQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xMTYy
LDcgKzExNjIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWQoKQogICAgIAogICAgIGlm
ICghbV9tZWRpYVNlc3Npb24tPmRhdGFMb2FkaW5nUGVybWl0dGVkKCp0aGlzKSkKICAgICAgICAg
cmV0dXJuOwotICAgIGlmIChTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVG
b3JNZWRpYSgpKQorICAgIGlmIChwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQogICAg
ICAgICByZW1vdmVCZWhhdmlvcnNSZXN0cmljdGlvbnNBZnRlckZpcnN0VXNlckdlc3R1cmUoKTsK
IAogICAgIHByZXBhcmVGb3JMb2FkKCk7CkBAIC0xODc4LDcgKzE4NzgsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrJiB0cmFjaykK
IHsKICAgICBpZiAobV9hdWRpb1RyYWNrcyAmJiBtX2F1ZGlvVHJhY2tzLT5jb250YWlucyh0cmFj
aykpCiAgICAgICAgIG1fYXVkaW9UcmFja3MtPnNjaGVkdWxlQ2hhbmdlRXZlbnQoKTsKLSAgICBp
ZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKKyAg
ICBpZiAocHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgcmVtb3ZlQmVo
YXZpb3JzUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKE1lZGlhRWxlbWVudFNlc3Np
b246OkFsbFJlc3RyaWN0aW9ucyAmIH5NZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdl
c3R1cmVUb0NvbnRyb2xDb250cm9sc01hbmFnZXIpOwogfQogCkBAIC0yNjg5LDcgKzI2ODksNyBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlZWtXaXRoVG9sZXJhbmNlKGNvbnN0IE1lZGlhVGlt
ZSYgaW5UaW1lLCBjb25zdCBNZWRpYVRpbQogICAgIH0gZWxzZQogICAgICAgICBzZWVrVGFzaygp
OwogCi0gICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1l
ZGlhKCkpCisgICAgaWYgKHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCiAgICAgICAg
IG1fbWVkaWFTZXNzaW9uLT5yZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKE1lZGlhRWxlbWVudFNl
c3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlcik7CiB9CiAK
QEAgLTMxNTQsNyArMzE1NCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGxheShET01Qcm9t
aXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkp
CisgICAgaWYgKHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCiAgICAgICAgIHJlbW92
ZUJlaGF2aW9yc1Jlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZSgpOwogCiAgICAgaWYg
KCFwbGF5SW50ZXJuYWwoKSkgewpAQCAtMzE3NSw3ICszMTc1LDcgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpwbGF5KCkKICAgICAgICAgICAgIHNldFBsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJl
KFBsYXliYWNrV2l0aG91dFVzZXJHZXN0dXJlOjpQcmV2ZW50ZWQpOwogICAgICAgICByZXR1cm47
CiAgICAgfQotICAgIGlmIChTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVG
b3JNZWRpYSgpKQorICAgIGlmIChwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQogICAg
ICAgICByZW1vdmVCZWhhdmlvcnNSZXN0cmljdGlvbnNBZnRlckZpcnN0VXNlckdlc3R1cmUoKTsK
IAogICAgIHBsYXlJbnRlcm5hbCgpOwpAQCAtMzIzOSw3ICszMjM5LDcgQEAgYm9vbCBIVE1MTWVk
aWFFbGVtZW50OjpwbGF5SW50ZXJuYWwoKQogICAgIH0gZWxzZSBpZiAobV9yZWFkeVN0YXRlID49
IEhBVkVfRlVUVVJFX0RBVEEpCiAgICAgICAgIHNjaGVkdWxlUmVzb2x2ZVBlbmRpbmdQbGF5UHJv
bWlzZXMoKTsKIAotICAgIGlmIChTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1
cmVGb3JNZWRpYSgpKSB7CisgICAgaWYgKHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkp
IHsKICAgICAgICAgaWYgKG1fcGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmUgPT0gUGxheWJhY2tX
aXRob3V0VXNlckdlc3R1cmU6OlByZXZlbnRlZCkgewogICAgICAgICAgICAgaGFuZGxlQXV0b3Bs
YXlFdmVudChBdXRvcGxheUV2ZW50OjpEaWRQbGF5TWVkaWFQcmV2ZW50ZWRGcm9tUGxheWluZyk7
CiAgICAgICAgICAgICBzZXRQbGF5YmFja1dpdGhvdXRVc2VyR2VzdHVyZShQbGF5YmFja1dpdGhv
dXRVc2VyR2VzdHVyZTo6Tm9uZSk7CkBAIC0zMjYwLDcgKzMyNjAsNyBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnBhdXNlKCkKICAgICBpZiAoIW1fbWVkaWFTZXNzaW9uLT5wbGF5YmFja1Blcm1p
dHRlZCgqdGhpcykpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChTY3JpcHRDb250cm9sbGVy
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQorICAgIGlmIChwcm9jZXNzaW5nVXNl
ckdlc3R1cmVGb3JNZWRpYSgpKQogICAgICAgICByZW1vdmVCZWhhdmlvcnNSZXN0cmljdGlvbnNB
ZnRlckZpcnN0VXNlckdlc3R1cmUoTWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0
dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKTsKIAogICAgIHBhdXNlSW50ZXJuYWwoKTsKQEAg
LTMyODcsNyArMzI4Nyw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGF1c2VJbnRlcm5hbCgp
CiAKICAgICBtX2F1dG9wbGF5aW5nID0gZmFsc2U7CiAKLSAgICBpZiAoU2NyaXB0Q29udHJvbGxl
cjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKKyAgICBpZiAocHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlRm9yTWVkaWEoKSkKICAgICAgICAgdXNlckRpZEludGVyZmVyZVdpdGhBdXRvcGxh
eSgpOwogCiAgICAgc2V0UGxheWJhY2tXaXRob3V0VXNlckdlc3R1cmUoUGxheWJhY2tXaXRob3V0
VXNlckdlc3R1cmU6Ok5vbmUpOwpAQCAtMzM4Miw3ICszMzgyLDcgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpzZXRNdXRlZChib29sIG11dGVkKQogCiAgICAgYm9vbCBtdXRlZFN0YXRlQ2hhbmdl
ZCA9IG1fbXV0ZWQgIT0gbXV0ZWQ7CiAgICAgaWYgKG11dGVkU3RhdGVDaGFuZ2VkIHx8ICFtX2V4
cGxpY2l0bHlNdXRlZCkgewotICAgICAgICBpZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkgeworICAgICAgICBpZiAocHJvY2Vzc2luZ1VzZXJHZXN0
dXJlRm9yTWVkaWEoKSkgewogICAgICAgICAgICAgcmVtb3ZlQmVoYXZpb3JzUmVzdHJpY3Rpb25z
QWZ0ZXJGaXJzdFVzZXJHZXN0dXJlKE1lZGlhRWxlbWVudFNlc3Npb246OkFsbFJlc3RyaWN0aW9u
cyAmIH5NZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250
cm9sc01hbmFnZXIpOwogCiAgICAgICAgICAgICBpZiAoaGFzQXVkaW8oKSAmJiBtdXRlZCkKQEAg
LTUzOTQsNyArNTM5NCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c3luY1RleHRUcmFja0Jv
dW5kcygpCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OndlYmtpdFNob3dQbGF5YmFja1RhcmdldFBp
Y2tlcigpCiB7CiAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6d2Via2l0U2hvd1Bs
YXliYWNrVGFyZ2V0UGlja2VyKCVwKSIsIHRoaXMpOwotICAgIGlmIChTY3JpcHRDb250cm9sbGVy
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKQorICAgIGlmIChwcm9jZXNzaW5nVXNl
ckdlc3R1cmVGb3JNZWRpYSgpKQogICAgICAgICByZW1vdmVCZWhhdmlvcnNSZXN0cmljdGlvbnNB
ZnRlckZpcnN0VXNlckdlc3R1cmUoKTsKICAgICBtX21lZGlhU2Vzc2lvbi0+c2hvd1BsYXliYWNr
VGFyZ2V0UGlja2VyKCp0aGlzKTsKIH0KQEAgLTcxMjgsNiArNzEyOCwxMSBAQCBib29sIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJpY3Rpb24o
UGxhdGZvcm1NZWRpYQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBIVE1MTWVkaWFFbGVt
ZW50Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGRvY3VtZW50KCkucHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKTsKK30KKwogI2lmIEVO
QUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVw
ZGF0ZU1lZGlhU3RhdGUoVXBkYXRlU3RhdGUgdXBkYXRlU3RhdGUpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDJkMDEzNzUyYWVjZGJiMDQyMjM4ZDIwNWQyNjI2
MGJiMmZhM2E0NTEuLjVmMDg1ZDMyMDlhZTc1NmM4MzE3M2ZlYTEwNDgzZThjNTkwZGUzODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC04MTUsNiArODE1LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIHNob3VsZE92ZXJyaWRlQmFja2dyb3VuZFBsYXliYWNrUmVzdHJp
Y3Rpb24oUGxhdGZvcm1NZWRpYVNlc3Npb246OkludGVycnVwdGlvblR5cGUpIGNvbnN0IG92ZXJy
aWRlOwogICAgIGJvb2wgc2hvdWxkT3ZlcnJpZGVCYWNrZ3JvdW5kTG9hZGluZ1Jlc3RyaWN0aW9u
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBjYW5Qcm9kdWNlQXVkaW8oKSBjb25zdCBmaW5h
bDsKKyAgICBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkgY29uc3QgZmluYWw7
CiAKICAgICB2b2lkIHBhZ2VNdXRlZFN0YXRlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCmluZGV4IGNhN2JlNzQ0OWI4
YjA1NjNiM2ZmNDNmODY5YjEzZjkxM2MwNjhhMzMuLjA5Y2U3N2FjY2IxZTUxOGI4ODVlNDVlNDk4
ZDAwOGVlY2FkZDEyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVt
ZW50U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNz
aW9uLmNwcApAQCAtMTczLDE3ICsxNzMsMTcgQEAgU3VjY2Vzc09yPE1lZGlhUGxheWJhY2tEZW5p
YWxSZWFzb24+IE1lZGlhRWxlbWVudFNlc3Npb246OnBsYXliYWNrUGVybWl0dGVkKGNvbnMKICAg
ICB9CiAjZW5kaWYKIAotICAgIGlmIChtX3Jlc3RyaWN0aW9ucyAmIFJlcXVpcmVVc2VyR2VzdHVy
ZUZvclZpZGVvUmF0ZUNoYW5nZSAmJiBlbGVtZW50LmlzVmlkZW8oKSAmJiAhU2NyaXB0Q29udHJv
bGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkgeworICAgIGlmIChtX3Jlc3Ry
aWN0aW9ucyAmIFJlcXVpcmVVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSAmJiBlbGVtZW50
LmlzVmlkZW8oKSAmJiAhZWxlbWVudC5kb2N1bWVudCgpLnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZv
ck1lZGlhKCkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6cGxh
eWJhY2tQZXJtaXR0ZWQgLSByZXR1cm5pbmcgRkFMU0UgYmVjYXVzZSBvZiB2aWRlbyByYXRlIGNo
YW5nZSByZXN0cmljdGlvbiIpOwogICAgICAgICByZXR1cm4gTWVkaWFQbGF5YmFja0RlbmlhbFJl
YXNvbjo6VXNlckdlc3R1cmVSZXF1aXJlZDsKICAgICB9CiAKLSAgICBpZiAobV9yZXN0cmljdGlv
bnMgJiBSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UgJiYgKCFlbGVtZW50Lmlz
VmlkZW8oKSB8fCBlbGVtZW50Lmhhc0F1ZGlvKCkpICYmICFlbGVtZW50Lm11dGVkKCkgJiYgZWxl
bWVudC52b2x1bWUoKSAmJiAhU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJl
Rm9yTWVkaWEoKSkgeworICAgIGlmIChtX3Jlc3RyaWN0aW9ucyAmIFJlcXVpcmVVc2VyR2VzdHVy
ZUZvckF1ZGlvUmF0ZUNoYW5nZSAmJiAoIWVsZW1lbnQuaXNWaWRlbygpIHx8IGVsZW1lbnQuaGFz
QXVkaW8oKSkgJiYgIWVsZW1lbnQubXV0ZWQoKSAmJiBlbGVtZW50LnZvbHVtZSgpICYmICFlbGVt
ZW50LmRvY3VtZW50KCkucHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkgewogICAgICAg
ICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpwbGF5YmFja1Blcm1pdHRlZCAtIHJl
dHVybmluZyBGQUxTRSBiZWNhdXNlIG9mIGF1ZGlvIHJhdGUgY2hhbmdlIHJlc3RyaWN0aW9uIik7
CiAgICAgICAgIHJldHVybiBNZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uOjpVc2VyR2VzdHVyZVJl
cXVpcmVkOwogICAgIH0KIAotICAgIGlmIChtX3Jlc3RyaWN0aW9ucyAmIFJlcXVpcmVVc2VyR2Vz
dHVyZUZvclZpZGVvRHVlVG9Mb3dQb3dlck1vZGUgJiYgZWxlbWVudC5pc1ZpZGVvKCkgJiYgIVNj
cmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsKKyAgICBp
ZiAobV9yZXN0cmljdGlvbnMgJiBSZXF1aXJlVXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93
ZXJNb2RlICYmIGVsZW1lbnQuaXNWaWRlbygpICYmICFlbGVtZW50LmRvY3VtZW50KCkucHJvY2Vz
c2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkgewogICAgICAgICBMT0coTWVkaWEsICJNZWRpYUVs
ZW1lbnRTZXNzaW9uOjpwbGF5YmFja1Blcm1pdHRlZCAtIHJldHVybmluZyBGQUxTRSBiZWNhdXNl
IG9mIHZpZGVvIGxvdyBwb3dlciBtb2RlIHJlc3RyaWN0aW9uIik7CiAgICAgICAgIHJldHVybiBN
ZWRpYVBsYXliYWNrRGVuaWFsUmVhc29uOjpVc2VyR2VzdHVyZVJlcXVpcmVkOwogICAgIH0KQEAg
LTIxOCwxMiArMjE4LDEyIEBAIGJvb2wgTWVkaWFFbGVtZW50U2Vzc2lvbjo6YXV0b3BsYXlQZXJt
aXR0ZWQoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIE1lZGlhRWxlbWVudFNl
c3Npb246OmRhdGFMb2FkaW5nUGVybWl0dGVkKGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmKSBjb25z
dAorYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpkYXRhTG9hZGluZ1Blcm1pdHRlZChjb25zdCBI
VE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KSBjb25zdAogewogICAgIGlmIChtX3Jlc3RyaWN0aW9u
cyAmIE92ZXJyaWRlVXNlckdlc3R1cmVSZXF1aXJlbWVudEZvck1haW5Db250ZW50ICYmIHVwZGF0
ZUlzTWFpbkNvbnRlbnQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAobV9yZXN0
cmljdGlvbnMgJiBSZXF1aXJlVXNlckdlc3R1cmVGb3JMb2FkICYmICFTY3JpcHRDb250cm9sbGVy
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CisgICAgaWYgKG1fcmVzdHJpY3Rp
b25zICYgUmVxdWlyZVVzZXJHZXN0dXJlRm9yTG9hZCAmJiAhZWxlbWVudC5kb2N1bWVudCgpLnBy
b2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiTWVk
aWFFbGVtZW50U2Vzc2lvbjo6ZGF0YUxvYWRpbmdQZXJtaXR0ZWQgLSByZXR1cm5pbmcgRkFMU0Ui
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTIzMSw5ICsyMzEsOSBAQCBib29s
IE1lZGlhRWxlbWVudFNlc3Npb246OmRhdGFMb2FkaW5nUGVybWl0dGVkKGNvbnN0IEhUTUxNZWRp
YUVsZW1lbnQmKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIE1lZGlhRWxlbWVu
dFNlc3Npb246OmZ1bGxzY3JlZW5QZXJtaXR0ZWQoY29uc3QgSFRNTE1lZGlhRWxlbWVudCYpIGNv
bnN0Citib29sIE1lZGlhRWxlbWVudFNlc3Npb246OmZ1bGxzY3JlZW5QZXJtaXR0ZWQoY29uc3Qg
SFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkgY29uc3QKIHsKLSAgICBpZiAobV9yZXN0cmljdGlv
bnMgJiBSZXF1aXJlVXNlckdlc3R1cmVGb3JGdWxsc2NyZWVuICYmICFTY3JpcHRDb250cm9sbGVy
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CisgICAgaWYgKG1fcmVzdHJpY3Rp
b25zICYgUmVxdWlyZVVzZXJHZXN0dXJlRm9yRnVsbHNjcmVlbiAmJiAhZWxlbWVudC5kb2N1bWVu
dCgpLnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpIHsKICAgICAgICAgTE9HKE1lZGlh
LCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6ZnVsbHNjcmVlblBlcm1pdHRlZCAtIHJldHVybmluZyBG
QUxTRSIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMjgxLDcgKzI4MSw3IEBA
IGJvb2wgTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRyb2xzTWFuYWdlcihQbGF5YmFj
a0NvbnRyb2xzUHVycG9zZSBwdXJwb3NlCiAgICAgfQogCiAgICAgaWYgKGNsaWVudCgpLnByZXNl
bnRhdGlvblR5cGUoKSA9PSBBdWRpbykgewotICAgICAgICBpZiAoIWhhc0JlaGF2aW9yUmVzdHJp
Y3Rpb24oUmVxdWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKSB8fCBTY3Jp
cHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CisgICAgICAg
IGlmICghaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xD
b250cm9sc01hbmFnZXIpIHx8IG1fZWxlbWVudC5kb2N1bWVudCgpLnByb2Nlc3NpbmdVc2VyR2Vz
dHVyZUZvck1lZGlhKCkpIHsKICAgICAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNl
c3Npb246OmNhblNob3dDb250cm9sc01hbmFnZXIgLSByZXR1cm5pbmcgVFJVRTogQXVkaW8gZWxl
bWVudCB3aXRoIHVzZXIgZ2VzdHVyZSIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KQEAgLTMxNSw3ICszMTUsNyBAQCBib29sIE1lZGlhRWxlbWVudFNlc3Npb246OmNhblNo
b3dDb250cm9sc01hbmFnZXIoUGxheWJhY2tDb250cm9sc1B1cnBvc2UgcHVycG9zZQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKCFoYXNCZWhhdmlvclJlc3RyaWN0aW9u
KFJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlcikgfHwgU2NyaXB0Q29u
dHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkgeworICAgIGlmICghaGFz
QmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250cm9sc01h
bmFnZXIpIHx8IG1fZWxlbWVudC5kb2N1bWVudCgpLnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1l
ZGlhKCkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hv
d0NvbnRyb2xzTWFuYWdlciAtIHJldHVybmluZyBUUlVFOiBObyB1c2VyIGdlc3R1cmUgcmVxdWly
ZWQiKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtMzg0LDcgKzM4NCw3IEBAIHZv
aWQgTWVkaWFFbGVtZW50U2Vzc2lvbjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGNvbnN0IEhU
TUxNZWRpYUVsZW1lbnQmIGVsZW1lCiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vz
c2lvbjo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyIik7CiAKLSAgICBpZiAobV9yZXN0cmljdGlv
bnMgJiBSZXF1aXJlVXNlckdlc3R1cmVUb1Nob3dQbGF5YmFja1RhcmdldFBpY2tlciAmJiAhU2Ny
aXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkgeworICAgIGlm
IChtX3Jlc3RyaWN0aW9ucyAmIFJlcXVpcmVVc2VyR2VzdHVyZVRvU2hvd1BsYXliYWNrVGFyZ2V0
UGlja2VyICYmICFlbGVtZW50LmRvY3VtZW50KCkucHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVk
aWEoKSkgewogICAgICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpzaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXIgLSByZXR1cm5pbmcgZWFybHkgYmVjYXVzZSBvZiBwZXJtaXNzaW9u
cyIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KaW5kZXgg
Y2Y1MTNlNDM3MmNmMGM4MTM3ZmYzZmI0YzUxMTU4N2M3ZWZmMTRjYy4uZTQwY2FhODRkNjNiMDlm
MzUxZmJiMDZkYjFmZTAyZjlkYjliODIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCkBAIC0x
MzEsNiArMTMxLDcgQEAgcmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvIGluaXRpYWw9ZGVm
YXVsdFJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRWaWRlbwogdmlkZW9QbGF5YmFja1JlcXVpcmVz
VXNlckdlc3R1cmUgaW5pdGlhbD1kZWZhdWx0VmlkZW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1
cmUKIGF1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlIGluaXRpYWw9ZGVmYXVsdEF1ZGlv
UGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlCiBtYWluQ29udGVudFVzZXJHZXN0dXJlT3ZlcnJp
ZGVFbmFibGVkIGluaXRpYWw9ZmFsc2UKK21lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1
bWVudCBpbml0aWFsPWZhbHNlCiBhbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrIGluaXRpYWw9ZGVm
YXVsdEFsbG93c0lubGluZU1lZGlhUGxheWJhY2sKIGFsbG93c0lubGluZU1lZGlhUGxheWJhY2tB
ZnRlckZ1bGxzY3JlZW4gaW5pdGlhbD10cnVlCiBpbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQ
bGF5c0lubGluZUF0dHJpYnV0ZSBpbml0aWFsPWRlZmF1bHRJbmxpbmVNZWRpYVBsYXliYWNrUmVx
dWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKaW5kZXggNWI5YmQ4M2YzMjlhYzI2YWY1
NTk0YjA1ZTQ1NzI0NjY5ZDQ4NTdlNC4uYTYzYjljNDg2MGQ3YTY0YmNjMjFkNzIwMzJhMzRjZWZm
OTc3ZWQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZv
cm1NZWRpYVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0
Zm9ybU1lZGlhU2Vzc2lvbi5oCkBAIC0yMzEsNiArMjMxLDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgY29uc3QgRG9jdW1lbnQqIGhvc3RpbmdEb2N1bWVudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIFN0cmluZyBzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSBjb25zdCA9IDA7CiAKKyAg
ICB2aXJ0dWFsIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSBjb25zdCA9IDA7
CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5QbGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVudCgp
IHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCmluZGV4IGExYWEyZGU5NzYxYmQ0M2NlODMyMmRjYzM1MjRjOThmMDhj
OGIzMTYuLjdkNmRlMWYzNTM2YjJjYmM3YWYyM2NhZGJlZjI1NTFmOWYyZmNhNDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUu
aApAQCAtMTgzLDYgKzE4Myw3IEBACiAjZGVmaW5lIFdlYktpdFdlYlJUQ0xlZ2FjeUFQSUVuYWJs
ZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0V2ViUlRDTGVnYWN5QVBJRW5hYmxlZCIKICNkZWZpbmUg
V2ViS2l0TGlua1ByZWxvYWRFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdExpbmtQcmVsb2Fk
RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0Q3JlZGVudGlhbE1hbmFnZW1lbnRFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdENyZWRlbnRpYWxNYW5hZ2VtZW50RW5hYmxlZCIKKyNkZWZpbmUgV2Vi
S2l0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50IEAiV2ViS2l0TWVkaWFVc2Vy
R2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50IgogCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKIC8v
IFRoZXNlIGFyZSBwcml2YXRlIGJvdGggYmVjYXVzZSBjYWxsZXJzIHNob3VsZCBiZSB1c2luZyB0
aGUgY292ZXIgbWV0aG9kcyBhbmQgYmVjYXVzZSB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDc3NDlhYzY3NDczNTdjN2EzOWExZWVkMDBjNTE5
NGQxZWIyZjQxYTcuLmY4YzU3YzgxMjJiZGMxNmQxZGM5ZTYxYWRiMmNiMzlkMzM0ZjBiNTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtNjY5LDYg
KzY2OSw3IEBAICsgKHZvaWQpaW5pdGlhbGl6ZQogICAgICAgICBATk8sIFdlYktpdFVzZXJUaW1p
bmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgQE5PLCBXZWJLaXRSZXNvdXJjZVRpbWlu
Z0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBATk8sIFdlYktpdENyZWRlbnRpYWxNYW5h
Z2VtZW50RW5hYmxlZFByZWZlcmVuY2VLZXksCisgICAgICAgIEBOTywgV2ViS2l0TWVkaWFVc2Vy
R2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50LAogICAgICAgICBuaWxdOwogCiAjaWYgIVBMQVRG
T1JNKElPUykKQEAgLTMwNjIsNiArMzA2MywxNiBAQCAtICh2b2lkKXNldENyZWRlbnRpYWxNYW5h
Z2VtZW50RW5hYmxlZDooQk9PTClmbGFnCiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZv
cktleTpXZWJLaXRDcmVkZW50aWFsTWFuYWdlbWVudEVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0K
IAorLSAoQk9PTCltZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQKK3sKKyAgICBy
ZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJp
dHNGcm9tRG9jdW1lbnRdOworfQorCistICh2b2lkKXNldE1lZGlhVXNlckdlc3R1cmVJbmhlcml0
c0Zyb21Eb2N1bWVudDooQk9PTClmbGFnCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFn
IGZvcktleTpXZWJLaXRNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnRdOworfQor
CiAjaWYgUExBVEZPUk0oSU9TKQogLSAoQk9PTClxdWlja0xvb2tEb2N1bWVudFNhdmluZ0VuYWJs
ZWQKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJp
dmF0ZS5oCmluZGV4IGVmNWVmYzk1MmY5OThiOWI2YTViMGJiNTg0ODA5NTAzODI3ZjBiZTAuLjgy
M2ZjMzZlMDUwYWJjNGQxMDdkMGU1YWZhZmVjOTk4OWRmNjFjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNTU5LDYgKzU1
OSw3IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdlZElu
dGVybmFsTm90aWZpY2F0aW9uOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcmVzb3VyY2VU
aW1pbmdFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbGlua1ByZWxvYWRFbmFi
bGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgY3JlZGVudGlhbE1hbmFnZW1lbnRFbmFi
bGVkOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbWVkaWFVc2VyR2VzdHVyZUluaGVyaXRz
RnJvbURvY3VtZW50OwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25hdG9t
aWMpIEJPT0wgcXVpY2tMb29rRG9jdW1lbnRTYXZpbmdFbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKaW5kZXggZjUyMjZhZjU5
NTFhZTBjNTk0MjExYTNjYTI4M2E0ZWYxZmZkMDlmOS4uNmQ4NzZlN2QyMjg3MDMyOTk0YTA1NmNk
ODI2OGQ5OTI0NTMwYzg2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXNEZWZpbml0aW9ucy5oCkBAIC0xNzIsNiArMTcyLDcgQEAKICAgICBtYWNybyhSZXF1
aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9QbGF5YmFjaywgcmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1
ZGlvUGxheWJhY2ssIEJvb2wsIGJvb2wsIERFRkFVTFRfUkVRVUlSRVNfVVNFUl9HRVNUVVJFX0ZP
Ul9BVURJT19QTEFZQkFDSywgIiIsICIiKSBcCiAgICAgbWFjcm8oUmVxdWlyZXNVc2VyR2VzdHVy
ZVRvTG9hZFZpZGVvLCByZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8sIEJvb2wsIGJvb2ws
IGZhbHNlLCAiIiwgIiIpIFwKICAgICBtYWNybyhNYWluQ29udGVudFVzZXJHZXN0dXJlT3ZlcnJp
ZGVFbmFibGVkLCBtYWluQ29udGVudFVzZXJHZXN0dXJlT3ZlcnJpZGVFbmFibGVkLCBCb29sLCBi
b29sLCBmYWxzZSwgIiIsICIiKSBcCisgICAgbWFjcm8oTWVkaWFVc2VyR2VzdHVyZUluaGVyaXRz
RnJvbURvY3VtZW50LCBtZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQsIEJvb2ws
IGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKICAgICBtYWNybyhBbGxvd3NJbmxpbmVNZWRpYVBsYXli
YWNrLCBhbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrLCBCb29sLCBib29sLCBERUZBVUxUX0FMTE9X
U19JTkxJTkVfTUVESUFfUExBWUJBQ0ssICIiLCAiIikgXAogICAgIG1hY3JvKEFsbG93c0lubGlu
ZU1lZGlhUGxheWJhY2tBZnRlckZ1bGxzY3JlZW4sIGFsbG93c0lubGluZU1lZGlhUGxheWJhY2tB
ZnRlckZ1bGxzY3JlZW4sIEJvb2wsIGJvb2wsIERFRkFVTFRfQUxMT1dTX0lOTElORV9NRURJQV9Q
TEFZQkFDS19BRlRFUl9GVUxMU0NSRUVOLCAiIiwgIiIpIFwKICAgICBtYWNybyhJbmxpbmVNZWRp
YVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSwgaW5saW5lTWVkaWFQbGF5YmFj
a1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUsIEJvb2wsIGJvb2wsIERFRkFVTFRfSU5MSU5F
X01FRElBX1BMQVlCQUNLX1JFUVVJUkVTX1BMQVlTX0lOTElORV9BVFRSSUJVVEUsICIiLCAiIikg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3Bw
CmluZGV4IDk1NDJlMGY2ZDRjZDBjMzlkMDc0ZDVmMzhhYWI1Nzg5ZjFjZmJlNzAuLmVhZDc2YmE4
NDYxZDZkNDI0MTNkYWM4ZGE1YjhlYWMxZjhkYTU2MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTE3NjAsMyArMTc2MCwxMyBA
QCBib29sIFdLUHJlZmVyZW5jZXNHZXRTaG91bGRTdXBwcmVzc0tleWJvYXJkSW5wdXREdXJpbmdQ
cm92aXNpb25hbE5hdmlnYXRpb24oV0tQcgogewogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5j
ZXNSZWYpLT5zaG91bGRTdXBwcmVzc0tleWJvYXJkSW5wdXREdXJpbmdQcm92aXNpb25hbE5hdmln
YXRpb24oKTsKIH0KKwordm9pZCBXS1ByZWZlcmVuY2VzU2V0TWVkaWFVc2VyR2VzdHVyZUluaGVy
aXRzRnJvbURvY3VtZW50KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZmxh
ZykKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRNZWRpYVVzZXJHZXN0dXJlSW5o
ZXJpdHNGcm9tRG9jdW1lbnQoZmxhZyk7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldE1lZGlh
VXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5tZWRpYVVzZXJH
ZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQoKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKaW5kZXggMmI5
YzYwZThmYTA2OGVmNGIyN2ZlMjlhZjJjZjQyYTBmNTg4YjQwOC4uY2QyMzJiOTYzNTdkZTlhMTFi
NmIxNzAzODgwNmVhOGUxNjdiYmUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKQEAgLTQ5Myw2ICs0OTMs
MTAgQEAgV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldENyZWRlbnRpYWxNYW5hZ2VtZW50
RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNT
ZXRJbnZpc2libGVNZWRpYUF1dG9wbGF5UGVybWl0dGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wg
ZmxhZyk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0SW52aXNpYmxlTWVkaWFBdXRv
cGxheVBlcm1pdHRlZChXS1ByZWZlcmVuY2VzUmVmKTsKIAorLy8gRGVmYXVsdHMgdG8gZmFsc2Uu
CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRz
RnJvbURvY3VtZW50KFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wgZmxhZyk7CitXS19FWFBPUlQgYm9v
bCBXS1ByZWZlcmVuY2VzR2V0TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50KFdL
UHJlZmVyZW5jZXNSZWYpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDhhMTgyZWM1
YThiMTczYmNkMjI2NDgyNzJkNzg0YmNmMzU4Y2NkNjEuLmIwMDJmY2Q0OWM0MDYzMGY4YjE0OWU2
NTg3OWViZGU0YmNhMTUzMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKQEAgLTMxMjAsNiArMzEyMCw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRl
UHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgc2V0dGlu
Z3Muc2V0QXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUocmVxdWlyZXNVc2VyR2VzdHVy
ZUZvck1lZGlhIHx8IHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6
cmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUGxheWJhY2tLZXkoKSkpOwogICAgIHNldHRpbmdz
LnNldFJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRWaWRlbyhzdG9yZS5nZXRCb29sVmFsdWVGb3JL
ZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRWaWRlb0tleSgp
KSk7CiAgICAgc2V0dGluZ3Muc2V0TWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxl
ZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Om1haW5Db250ZW50
VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWRLZXkoKSkpOworICAgIHNldHRpbmdzLnNldE1lZGlh
VXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXko
V2ViUHJlZmVyZW5jZXNLZXk6Om1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudEtl
eSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjayhzdG9yZS5n
ZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmFsbG93c0lubGluZU1lZGlhUGxh
eWJhY2tLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldEFsbG93c0lubGluZU1lZGlhUGxheWJhY2tB
ZnRlckZ1bGxzY3JlZW4oc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5
OjphbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuS2V5KCkpKTsKICAgICBz
ZXR0aW5ncy5zZXRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0
ZShzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmlubGluZU1lZGlh
UGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlS2V5KCkpKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3N2Zl
ZDg3MzM5YWJlMjYwYmVjODIwOGU1YzVkNTgzOTdjMDhkZDZlLi42N2RiZGNhYzE2NDU2N2UyODE5
ZGY0M2I2MjQyMmY4YWI4Yjk0MDZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDUtMTUg
IEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGV4cGVyaW1l
bnRhbCBzZXR0aW5nIHRvIGFsbG93IGRvY3VtZW50IGdlc3R1cmUgaW50ZXJhY3Rpb24gdG8gZnVs
ZmlsbCBtZWRpYSBwbGF5YmFjayBnZXN0dXJlIHJlcXVpcmVtZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMzEKKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBtZWRpYS9yZXN0cmljdGVkLWF1ZGlvLXBs
YXliYWNrLXdpdGgtZG9jdW1lbnQtZ2VzdHVyZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIG1lZGlhL3Jlc3RyaWN0ZWQtYXVkaW8tcGxheWJhY2std2l0aC1kb2N1bWVudC1nZXN0dXJl
Lmh0bWw6IEFkZGVkLgorCiAyMDE3LTA1LTE1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KIAogICAgICAgICBXb3JrZXJSdW5Mb29wOjpUYXNrOjpwZXJmb3JtVGFzaygpIHNob3VsZCBj
aGVjayAhc2NyaXB0Q29udHJvbGxlci0+aXNUZXJtaW5hdGluZ0V4ZWN1dGlvbigpLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvcmVzdHJpY3RlZC1hdWRpby1wbGF5YmFjay13aXRoLWRv
Y3VtZW50LWdlc3R1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvcmVzdHJpY3Rl
ZC1hdWRpby1wbGF5YmFjay13aXRoLWRvY3VtZW50LWdlc3R1cmUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmMxYzEyZDhiNjgxZGRlNWI0OWIxMmYxZjNmNzEzNzY3ZTVhYzQ1Y2QKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9yZXN0cmljdGVkLWF1ZGlvLXBsYXliYWNrLXdp
dGgtZG9jdW1lbnQtZ2VzdHVyZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdCB0
aGF0LCB3aGVuIFJlcXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSBpcyBzZXQgYWxv
bmcgd2l0aCBNZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGb3JEb2N1bWVudCwgYSB1c2VyIGdlc3R1
cmUgaW4gdGhlIGRvY3VtZW50IHdpbGwgYWxsb3cgZnV0dXJlIG1lZGlhIHBsYXliYWNrIHJlcXVl
c3RzIHRvIHN1Y2NlZWQuCisKKworUlVOKGludGVybmFscy5zZXRNZWRpYUVsZW1lbnRSZXN0cmlj
dGlvbnMobWVkaWFFbGVtZW50LCAiUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdl
IikpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zy
b21Eb2N1bWVudCh0cnVlKSkKK1J1bm5pbmcgd2l0aCBrZXlEb3duLgorUlVOKG1lZGlhRWxlbWVu
dC5zcmMgPSBmaW5kTWVkaWFGaWxlKCdhdWRpbycsICdjb250ZW50L3Rlc3QnKSkKK0VWRU5UKGNh
bnBsYXl0aHJvdWdoKQorUlVOKG1lZGlhRWxlbWVudC5wbGF5KCkpCitFWFBFQ1RFRCAobWVkaWFF
bGVtZW50LnBhdXNlZCA9PSAnZmFsc2UnKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvcmVzdHJpY3RlZC1hdWRpby1wbGF5YmFjay13aXRoLWRvY3VtZW50
LWdlc3R1cmUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3Jlc3RyaWN0ZWQtYXVkaW8tcGxheWJh
Y2std2l0aC1kb2N1bWVudC1nZXN0dXJlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQ3OGY4MGIyMTExYTYy
Mjc0MDI4YWE3OTMzZTE1NzBmYTgwNjNiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L21lZGlhL3Jlc3RyaWN0ZWQtYXVkaW8tcGxheWJhY2std2l0aC1kb2N1bWVudC1nZXN0dXJlLmh0
bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDx0aXRsZT5yZXN0cmljdGVkLWF1ZGlvLXBsYXliYWNrLXdpdGgtZG9jdW1lbnQtZ2VzdHVyZTwv
dGl0bGU+CisgICAgPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz12aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorCisgICAgPHNjcmlwdD4KKyAgICBmdW5j
dGlvbiBydW5UZXN0KCkKKyAgICB7CisgICAgICAgIG1lZGlhRWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCdhdWRpbycpWzBdOworCisgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgICAgICBydW4oJ2ludGVybmFscy5zZXRNZWRpYUVsZW1lbnRSZXN0
cmljdGlvbnMobWVkaWFFbGVtZW50LCAiUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hh
bmdlIiknKTsKKyAgICAgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldE1lZGlhVXNl
ckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudCh0cnVlKScpOworICAgICAgICB9CisKKyAgICAg
ICAgY29uc29sZVdyaXRlKCdSdW5uaW5nIHdpdGgga2V5RG93bi4nKTsKKyAgICAgICAgcnVuV2l0
aEtleURvd24oKCkgPT4geworICAgICAgICAgICAgcnVuKCJtZWRpYUVsZW1lbnQuc3JjID0gZmlu
ZE1lZGlhRmlsZSgnYXVkaW8nLCAnY29udGVudC90ZXN0JykiKTsKKyAgICAgICAgICAgIHdhaXRG
b3JFdmVudCgnY2FucGxheXRocm91Z2gnLCBjYW5wbGF5dGhyb3VnaCk7CisgICAgICAgICAgICB3
YWl0Rm9yRXZlbnRBbmRGYWlsKCdlcnJvcicpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBjYW5wbGF5dGhyb3VnaCgpCisgICAgeworICAgICAgICBydW4oIm1lZGlhRWxlbWVu
dC5wbGF5KCkiKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdtZWRpYUVsZW1lbnQucGF1c2VkJywg
ZmFsc2UpOworICAgICAgICBlbmRUZXN0KCk7CisgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdCB0aGF0LCB3aGVuIFJl
cXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSBpcyBzZXQgYWxvbmcgd2l0aCBNZWRp
YVVzZXJHZXN0dXJlSW5oZXJpdHNGb3JEb2N1bWVudCwgYSB1c2VyIGdlc3R1cmUgaW4gdGhlIGRv
Y3VtZW50IHdpbGwgYWxsb3cgZnV0dXJlIG1lZGlhIHBsYXliYWNrIHJlcXVlc3RzIHRvIHN1Y2Nl
ZWQuPC9wPgorICAgIDxhdWRpbyBjb250cm9scyBhdXRvcGxheT48L2F1ZGlvPgorPC9ib2R5Pgor
PC9odG1sPgorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>