<?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>227047</bug_id>
          
          <creation_ts>2021-06-15 14:37:54 -0700</creation_ts>
          <short_desc>[iOS] Fullscreen video playback gets stuck after interacting with the playback controls</short_desc>
          <delta_ts>2021-06-21 15:35:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=227106</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>227106</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1769964</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-06-15 14:37:54 -0700</bug_when>
    <thetext>[iOS] Fullscreen video playback gets stuck after interacting with the playback controls</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769965</commentid>
    <comment_count>1</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-06-15 14:38:45 -0700</bug_when>
    <thetext>&lt;rdar://79103461&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769976</commentid>
    <comment_count>2</comment_count>
      <attachid>431486</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-06-15 15:19:37 -0700</bug_when>
    <thetext>Created attachment 431486
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769978</commentid>
    <comment_count>3</comment_count>
      <attachid>431487</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-06-15 15:24:38 -0700</bug_when>
    <thetext>Created attachment 431487
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769988</commentid>
    <comment_count>4</comment_count>
      <attachid>431486</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-06-15 15:50:45 -0700</bug_when>
    <thetext>Comment on attachment 431486
Patch

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

&gt; Source/WebCore/platform/cocoa/PlaybackSessionModel.h:105
&gt; +    virtual void rateChanged(bool /* isPlaying */, bool /* isStalled */, double /* playbackRate */, double /* defaultPlaybackRate */) { }

Could we maybe have an `OptionSet` of enum flags?

&gt; Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.mm:-55
&gt; -static const float StalledPlaybackRate = 0.00000001f;

Do we still need to report this value (or something like it) to AVKit?  Or will AVKit be fine with a playback rate of 1 (or 2 or 0.5 or whatever) when we&apos;re still loading?

&gt; Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.mm:130
&gt; +    if (!isStalled)

I wonder if instead of not modifying `m_playerController` we should instead have a `stalled` property on `WebAVPlayerController` and have `setRate:` ignore/defer modifications if `stalled`.  This way, if AVKit calls `setRate:` then we will wait to update the rate until we&apos;re no longer stalled (e.g. inside `setStalled:` you could send the `rate` back to the `model`).  Though I think all of this assumes my comment on PlaybackSessionModelMediaElement.mm:55 is accurate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770010</commentid>
    <comment_count>5</comment_count>
      <attachid>431494</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-06-15 16:31:05 -0700</bug_when>
    <thetext>Created attachment 431494
Fix build failures on macOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770428</commentid>
    <comment_count>6</comment_count>
      <attachid>431486</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-06-16 15:15:52 -0700</bug_when>
    <thetext>Comment on attachment 431486
Patch

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

&gt;&gt; Source/WebCore/platform/cocoa/PlaybackSessionModel.h:105
&gt;&gt; +    virtual void rateChanged(bool /* isPlaying */, bool /* isStalled */, double /* playbackRate */, double /* defaultPlaybackRate */) { }
&gt; 
&gt; Could we maybe have an `OptionSet` of enum flags?

Yes. Like an `OptionSet` of
```
enum class PlaybackState {
    Playing = 1 &lt;&lt; 0,
    Stalled = 1 &lt;&lt; 1,
};
```

&gt;&gt; Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.mm:-55
&gt;&gt; -static const float StalledPlaybackRate = 0.00000001f;
&gt; 
&gt; Do we still need to report this value (or something like it) to AVKit?  Or will AVKit be fine with a playback rate of 1 (or 2 or 0.5 or whatever) when we&apos;re still loading?

With this patch, I cannot reproduce bug 211797. So looks like AVKit does not need this value anymore.

&gt;&gt; Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.mm:130
&gt;&gt; +    if (!isStalled)
&gt; 
&gt; I wonder if instead of not modifying `m_playerController` we should instead have a `stalled` property on `WebAVPlayerController` and have `setRate:` ignore/defer modifications if `stalled`.  This way, if AVKit calls `setRate:` then we will wait to update the rate until we&apos;re no longer stalled (e.g. inside `setStalled:` you could send the `rate` back to the `model`).  Though I think all of this assumes my comment on PlaybackSessionModelMediaElement.mm:55 is accurate.

Hmm, this approach sounds safer. However, if `m_playerController` does not report the rate back to the WebContent process when its `stalled` property is YES, its rate might be overwritten by a value comes from the WebContent process. That could happen when a user changes playback rate in fullscreen immediately after scrubbing the video.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770627</commentid>
    <comment_count>7</comment_count>
      <attachid>431494</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-06-17 07:44:10 -0700</bug_when>
    <thetext>Comment on attachment 431494
Fix build failures on macOS

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

&gt; Source/WebCore/platform/cocoa/PlaybackSessionModel.h:105
&gt; +    virtual void rateChanged(bool /* isPlaying */, bool /* isStalled */, double /* playbackRate */, double /* defaultPlaybackRate */) { }

I agree that an enums and an OptionSet would be nicer than bools</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770842</commentid>
    <comment_count>8</comment_count>
      <attachid>431727</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-06-17 15:11:36 -0700</bug_when>
    <thetext>Created attachment 431727
Revise the patch based on Devin and Eric&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771048</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-18 12:15:48 -0700</bug_when>
    <thetext>Committed r279043 (238963@main): &lt;https://commits.webkit.org/238963@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431727.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771496</commentid>
    <comment_count>10</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-06-21 15:35:58 -0700</bug_when>
    <thetext>*** Bug 227106 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431486</attachid>
            <date>2021-06-15 15:19:37 -0700</date>
            <delta_ts>2021-06-15 15:24:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227047-20210615151936.patch</filename>
            <type>text/plain</type>
            <size>38574</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4ODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNmYzFjM2JmNGIxNzU2
NWY3ZjQ2ZTljZDc2ZDEzOGEwYzI0YTEwZi4uY2IwMGYxZjQ1NDQ2YTFhMTBkZGI2NzNlMjI5OGM4
YmU5NGJmZTg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTA2LTE1ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRnVsbHNjcmVlbiB2
aWRlbyBwbGF5YmFjayBnZXRzIHN0dWNrIGFmdGVyIGludGVyYWN0aW5nIHdpdGggdGhlIHBsYXli
YWNrIGNvbnRyb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjcwNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXaGVuIHdlIHNjcnViIGEgcGxheWluZyB2aWRlbywgdGhlIHZpZGVvIGVsZW1lbnQgbWF5
IGVudGVyIGEgdGVtcG9yYXJpbHkgc3RhbGxlZAorICAgICAgICBzdGF0ZSAtIHRoZSBwbGF5ZXIg
aXMgc3RpbGwgcGxheWluZywgYnV0IGl0IGRvZXMgbm90IGhhdmUgZW5vdWdoIGRhdGEuIEluIFdl
YktpdCwKKyAgICAgICAgdGhlIGByYXRlYCBvZiB0aGUgcGxheWVyIHdpbGwgYmUgMC4gQnV0IHdl
IGNhbm5vdCBzZXQgdGhlIHJhdGUgb2YgYFdlYkFWUGxheWVyQ29udHJvbGxlcmAKKyAgICAgICAg
dG8gMCBpbiB0aGlzIHN0YXRlLCBiZWNhdXNlIEFWS2l0IHdpbGwgYmVsaWV2ZSB0aGUgdmlkZW8g
cGxheWJhY2sgaXMgcGF1c2VkIHdoZW4KKyAgICAgICAgaXRzIHJhdGUgaXMgMC4gSW4gcjI2MTU4
Nywgd2UgZGVmaW5lZCBhIG1hZ2ljIHJhdGUgKDAuMDAwMDAwMDFmKSBmb3IgdGhpcyBjYXNlLgor
CisgICAgICAgIHVuZm9ydHVuYXRlbHksIHdpdGggdGhlIGNoYW5nZXMgaW4gcjI3NTk1NiwgYFdl
YkFWUGxheWVyQ29udHJvbGxlcmAgd2lsbAorICAgICAgICBhbGlnbiBpdHMgYGRlZmF1bHRQbGF5
YmFja1JhdGVgIHdpdGggYHJhdGVgIHdoZW4gYHJhdGVgIGlzIG5vdCAwLiBVbmRlciBzdHJlc3MK
KyAgICAgICAgdGVzdHMsIGUuZy4sIGtlZXAgc2NydWJiaW5nIGEgdmlkZW8sIHRoZSB2aWRlbyBl
bGVtZW50IHdpbGwgZXZlbnR1YWxseSBlbnRlciBhIHN0YXRlCisgICAgICAgIGluIHdoaWNoIGJv
dGggYGRlZmF1bHRQbGF5YmFja1JhdGVgIGFuZCBgcmF0ZWAgYmVjb21lIHRoZSBtYWdpYyByYXRl
LiBBbmQgdGhlIHZpZGVvCisgICAgICAgIGFwcGVhcnMgdG8gYmUgc3R1Y2sgZm9yIHVzZXJzLgor
CisgICAgICAgIFRvIGZpeCB0aGUgaXNzdWUsIHRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgbWFnaWMg
cmF0ZSBhbmQgZGVmaW5lcyBhIG5ldyBzdGF0ZTogYHN0YWxsZWRgLgorICAgICAgICBBIHZpZGVv
IHdpbGwgYmUgaW4gdGhlIHN0YWxsZWQgc3RhdGUgd2hlbiBpdCBpcyBwbGF5aW5nIGJ1dCBkb2Vz
IG5vdCBoYXZlIGVub3VnaCBkYXRhLgorICAgICAgICBXZWJLaXQgd2lsbCBvbmx5IGNoYW5nZSB0
aGUgcmF0ZSBvZiBgV2ViQVZQbGF5ZXJDb250cm9sbGVyYCB3aGVuIHRoZSB2aWRlbworICAgICAg
ICBpcyBub3Qgc3RhbGxlZC4KKworICAgICAgICBUbyBhdm9pZCBwb3RlbnRpYWwgcHJvYmxlbXMg
ZHVlIHRvIHRoZSBjb252ZXJzaW9ucyBiZXR3ZWVuICJmbG9hdCIgYW5kICJkb3VibGUiCisgICAg
ICAgIGJhY2sgYW5kIGZvcnRoLCB0aGlzIHBhdGNoIHVwZGF0ZXMgdGhlIHR5cGVzIG9mIGBwbGF5
YmFja1JhdGVgIGFuZCBgZGVmYXVsdFBsYXliYWNrUmF0ZWAuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbC5oOgorICAgICAgICAoV2ViQ29yZTo6UGxheWJh
Y2tTZXNzaW9uTW9kZWxDbGllbnQ6OnJhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
b2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tOgorICAgICAgICAo
V2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnVwZGF0ZUZvckV2ZW50
TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVu
dDo6c2V0RGVmYXVsdFBsYXliYWNrUmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF5YmFja1Nl
c3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6c2V0UGxheWJhY2tSYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpkZWZhdWx0UGxheWJhY2tSYXRl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVt
ZW50OjpwbGF5YmFja1JhdGUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF5YmFj
a1Nlc3Npb25JbnRlcmZhY2VBVktpdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF5YmFj
a1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vz
c2lvbkludGVyZmFjZUFWS2l0OjpQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdCk6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDo6cmF0ZUNoYW5nZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZL
aXQubW06CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6cmF0ZUNo
YW5nZWQpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OnNldERl
ZmF1bHRQbGF5YmFja1JhdGUpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNv
bnRleHQ6OnNldFBsYXliYWNrUmF0ZSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyQ29udGV4dDo6aXNTdGFsbGVkIGNvbnN0KToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXJDb250ZXh0OjpkZWZhdWx0UGxheWJhY2tSYXRlIGNvbnN0KToKKyAgICAgICAgKFZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpwbGF5YmFja1JhdGUgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWM6OnJhdGVDaGFuZ2VkKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6cmF0ZUNoYW5nZWQp
OgorCiAyMDIxLTA2LTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgTGF6aWx5IGNvbXB1dGUgU2VjdXJpdHlPcmlnaW46Om1faXNQb3RlbnRpYWxseVRydXN0d29y
dGh5IGZvciBwZXJmb3JtYW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlMzNmZDlmZGIxODk1ODk5NjVmMWU3NjVh
MmRjNmM0ZDczYjVmMWUwLi44ZmI1YjFkYzdlOGZkMWNkMGVlNDVlZjhiYTVmMTE1OWZjNDkwZmU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTA2LTE1ICBQZW5nIExpdSAgPHBlbmcu
bGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRnVsbHNjcmVlbiB2aWRlbyBwbGF5YmFj
ayBnZXRzIHN0dWNrIGFmdGVyIGludGVyYWN0aW5nIHdpdGggdGhlIHBsYXliYWNrIGNvbnRyb2xz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcwNDcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHdl
IHNjcnViIGEgcGxheWluZyB2aWRlbywgdGhlIHZpZGVvIGVsZW1lbnQgbWF5IGVudGVyIGEgdGVt
cG9yYXJpbHkgc3RhbGxlZAorICAgICAgICBzdGF0ZSAtIHRoZSBwbGF5ZXIgaXMgc3RpbGwgcGxh
eWluZywgYnV0IGl0IGRvZXMgbm90IGhhdmUgZW5vdWdoIGRhdGEuIEluIFdlYktpdCwKKyAgICAg
ICAgdGhlIGByYXRlYCBvZiB0aGUgcGxheWVyIHdpbGwgYmUgMC4gQnV0IHdlIGNhbm5vdCBzZXQg
dGhlIHJhdGUgb2YgYFdlYkFWUGxheWVyQ29udHJvbGxlcmAKKyAgICAgICAgdG8gMCBpbiB0aGlz
IHN0YXRlLCBiZWNhdXNlIEFWS2l0IHdpbGwgYmVsaWV2ZSB0aGUgdmlkZW8gcGxheWJhY2sgaXMg
cGF1c2VkIHdoZW4KKyAgICAgICAgaXRzIHJhdGUgaXMgMC4gSW4gcjI2MTU4Nywgd2UgZGVmaW5l
ZCBhIG1hZ2ljIHJhdGUgKDAuMDAwMDAwMDFmKSBmb3IgdGhpcyBjYXNlLgorCisgICAgICAgIHVu
Zm9ydHVuYXRlbHksIHdpdGggdGhlIGNoYW5nZXMgaW4gcjI3NTk1NiwgYFdlYkFWUGxheWVyQ29u
dHJvbGxlcmAgd2lsbAorICAgICAgICBhbGlnbiBpdHMgYGRlZmF1bHRQbGF5YmFja1JhdGVgIHdp
dGggYHJhdGVgIHdoZW4gYHJhdGVgIGlzIG5vdCAwLiBVbmRlciBzdHJlc3MKKyAgICAgICAgdGVz
dHMsIGUuZy4sIGtlZXAgc2NydWJiaW5nIGEgdmlkZW8sIHRoZSB2aWRlbyBlbGVtZW50IHdpbGwg
ZXZlbnR1YWxseSBlbnRlciBhIHN0YXRlCisgICAgICAgIGluIHdoaWNoIGJvdGggYGRlZmF1bHRQ
bGF5YmFja1JhdGVgIGFuZCBgcmF0ZWAgYmVjb21lIHRoZSBtYWdpYyByYXRlLiBBbmQgdGhlIHZp
ZGVvCisgICAgICAgIGFwcGVhcnMgdG8gYmUgc3R1Y2sgZm9yIHVzZXJzLgorCisgICAgICAgIFRv
IGZpeCB0aGUgaXNzdWUsIHRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgbWFnaWMgcmF0ZSBhbmQgZGVm
aW5lcyBhIG5ldyBzdGF0ZTogYHN0YWxsZWRgLgorICAgICAgICBBIHZpZGVvIHdpbGwgYmUgaW4g
dGhlIHN0YWxsZWQgc3RhdGUgd2hlbiBpdCBpcyBwbGF5aW5nIGJ1dCBkb2VzIG5vdCBoYXZlIGVu
b3VnaCBkYXRhLgorICAgICAgICBXZWJLaXQgd2lsbCBvbmx5IGNoYW5nZSB0aGUgcmF0ZSBvZiBg
V2ViQVZQbGF5ZXJDb250cm9sbGVyYCB3aGVuIHRoZSB2aWRlbworICAgICAgICBpcyBub3Qgc3Rh
bGxlZC4KKworICAgICAgICBUbyBhdm9pZCBwb3RlbnRpYWwgcHJvYmxlbXMgZHVlIHRvIHRoZSBj
b252ZXJzaW9ucyBiZXR3ZWVuICJmbG9hdCIgYW5kICJkb3VibGUiCisgICAgICAgIGJhY2sgYW5k
IGZvcnRoLCB0aGlzIHBhdGNoIHVwZGF0ZXMgdGhlIHR5cGVzIG9mIGBwbGF5YmFja1JhdGVgIGFu
ZCBgZGVmYXVsdFBsYXliYWNrUmF0ZWAuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUGxh
eWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1Bs
YXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0
OjpQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6OnNldERlZmF1bHRQbGF5YmFja1JhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6OnNldFBsYXliYWNr
UmF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6cmF0
ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6
OnJhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uTWFuYWdlclBy
b3h5OjpzZXREZWZhdWx0UGxheWJhY2tSYXRlKToKKyAgICAgICAgKFdlYktpdDo6UGxheWJhY2tT
ZXNzaW9uTWFuYWdlclByb3h5OjpzZXRQbGF5YmFja1JhdGUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW06CisgICAgICAgIChXZWJL
aXQ6OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUNvbnRleHQ6OnJhdGVDaGFuZ2VkKToKKyAgICAg
ICAgKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6cmF0ZUNoYW5nZWQpOgorCiAyMDIx
LTA2LTEyICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTiAocjI3ODM3NCk6IFtCaWcgU3VyXSBBU1NFUlRJT04gRkFJTEVEOiAhaXNJblJvdXRpbmdB
cmJpdHJhdGlvbkZvclRva2VuKHRva2VuKSBpbiBXZWJDb3JlOjpTaGFyZWRSb3V0aW5nQXJiaXRy
YXRvcjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JUb2tlbigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWwuaAppbmRleCA1MDcx
NzFhNDE2NmNlNjAyMzRjZDdkY2RmNGY5NjkxOGNmNGRjYTg1Li44OGQ3ZDA3ZGFiZmRmYWU0NTlh
MzZlNjM5N2Q4N2Q4ZGNjNGQ1ZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1vZGVsLmgKQEAgLTU1LDggKzU1LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBiZWdpblNjYW5uaW5nRm9yd2FyZCgpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgYmVnaW5TY2FubmluZ0JhY2t3YXJkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBl
bmRTY2FubmluZygpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmYXVsdFBsYXliYWNrUmF0
ZShmbG9hdCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5YmFja1JhdGUoZmxvYXQpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmYXVsdFBsYXliYWNrUmF0ZShkb3VibGUpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0UGxheWJhY2tSYXRlKGRvdWJsZSkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVQaWN0dXJlSW5QaWN0dXJlKCkgPSAwOwpAQCAtNzMs
OSArNzMsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgZG91YmxlIGJ1ZmZlcmVkVGltZSgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNQbGF5aW5nKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBp
c1N0YWxsZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzU2NydWJiaW5nKCkgY29u
c3QgPSAwOwotICAgIHZpcnR1YWwgZmxvYXQgZGVmYXVsdFBsYXliYWNrUmF0ZSgpIGNvbnN0ID0g
MDsKLSAgICB2aXJ0dWFsIGZsb2F0IHBsYXliYWNrUmF0ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
ZG91YmxlIHBsYXliYWNrUmF0ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFJlZjxUaW1lUmFu
Z2VzPiBzZWVrYWJsZVJhbmdlcygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGRvdWJsZSBzZWVr
YWJsZVRpbWVSYW5nZXNMYXN0TW9kaWZpZWRUaW1lKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwg
ZG91YmxlIGxpdmVVcGRhdGVJbnRlcnZhbCgpIGNvbnN0ID0gMDsKQEAgLTEwMSw3ICsxMDIsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGN1cnJlbnRUaW1lQ2hhbmdlZChkb3VibGUgLyog
Y3VycmVudFRpbWUgKi8sIGRvdWJsZSAvKiBhbmNob3JUaW1lICovKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgYnVmZmVyZWRUaW1lQ2hhbmdlZChkb3VibGUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBw
bGF5YmFja1N0YXJ0ZWRUaW1lQ2hhbmdlZChkb3VibGUgLyogcGxheWJhY2tTdGFydGVkVGltZSAq
LykgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHJhdGVDaGFuZ2VkKGJvb2wgLyogaXNQbGF5aW5nICov
LCBmbG9hdCAvKiBwbGF5YmFja1JhdGUgKi8sIGZsb2F0IC8qIGRlZmF1bHRQbGF5YmFja1JhdGUg
Ki8pIHsgfQorICAgIHZpcnR1YWwgdm9pZCByYXRlQ2hhbmdlZChib29sIC8qIGlzUGxheWluZyAq
LywgYm9vbCAvKiBpc1N0YWxsZWQgKi8sIGRvdWJsZSAvKiBwbGF5YmFja1JhdGUgKi8sIGRvdWJs
ZSAvKiBkZWZhdWx0UGxheWJhY2tSYXRlICovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2Vla2Fi
bGVSYW5nZXNDaGFuZ2VkKGNvbnN0IFRpbWVSYW5nZXMmLCBkb3VibGUgLyogbGFzdE1vZGlmaWVk
ICovLCBkb3VibGUgLyogbGl2ZUludGVydmFsICovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2Fu
UGxheUZhc3RSZXZlcnNlQ2hhbmdlZChib29sKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXVkaW9N
ZWRpYVNlbGVjdGlvbk9wdGlvbnNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxNZWRpYVNlbGVjdGlvbk9w
dGlvbj4mIC8qIG9wdGlvbnMgKi8sIHVpbnQ2NF90IC8qIHNlbGVjdGVkSW5kZXggKi8pIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxheWJhY2tTZXNzaW9u
TW9kZWxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXli
YWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50LmgKaW5kZXggMzljNmQ1ZGFjMTYzMmQ3ZmYzODkw
N2EwOWNlZWNmNjAxNzhmODI5My4uM2I2NzQ3ZmZlYTFkMzcxZjg1MDVmOTc0YjMxYWY5ZmI4YmE4
MzNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxheWJhY2tT
ZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5oCkBAIC02OCw4ICs2OCw4IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGJlZ2luU2Nhbm5pbmdGb3J3YXJkKCkg
ZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBiZWdpblNjYW5uaW5nQmFja3dhcmQoKSBm
aW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuZFNjYW5uaW5nKCkgZmluYWw7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREZWZhdWx0UGxheWJhY2tSYXRlKGZsb2F0KSBmaW5hbDsK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFBsYXliYWNrUmF0ZShmbG9hdCkgZmluYWw7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREZWZhdWx0UGxheWJhY2tSYXRlKGRvdWJsZSkgZmlu
YWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRQbGF5YmFja1JhdGUoZG91YmxlKSBmaW5h
bDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0
X3QgaW5kZXgpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0TGVnaWJsZU1l
ZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KSBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHRvZ2dsZVBpY3R1cmVJblBpY3R1cmUoKSBmaW5hbDsKQEAgLTgzLDkgKzgzLDEwIEBAIHB1Ymxp
YzoKICAgICBkb3VibGUgY3VycmVudFRpbWUoKSBjb25zdCBmaW5hbDsKICAgICBkb3VibGUgYnVm
ZmVyZWRUaW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc1BsYXlpbmcoKSBjb25zdCBmaW5h
bDsKKyAgICBib29sIGlzU3RhbGxlZCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNTY3J1YmJp
bmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQotICAgIGZsb2F0IGRlZmF1bHRQbGF5
YmFja1JhdGUoKSBjb25zdCBmaW5hbDsKLSAgICBmbG9hdCBwbGF5YmFja1JhdGUoKSBjb25zdCBm
aW5hbDsKKyAgICBkb3VibGUgZGVmYXVsdFBsYXliYWNrUmF0ZSgpIGNvbnN0IGZpbmFsOworICAg
IGRvdWJsZSBwbGF5YmFja1JhdGUoKSBjb25zdCBmaW5hbDsKICAgICBSZWY8VGltZVJhbmdlcz4g
c2Vla2FibGVSYW5nZXMoKSBjb25zdCBmaW5hbDsKICAgICBkb3VibGUgc2Vla2FibGVUaW1lUmFu
Z2VzTGFzdE1vZGlmaWVkVGltZSgpIGNvbnN0IGZpbmFsOwogICAgIGRvdWJsZSBsaXZlVXBkYXRl
SW50ZXJ2YWwoKSBjb25zdCBmaW5hbDsKQEAgLTEwOSw3ICsxMTAsNiBAQCBwcml2YXRlOgogICAg
IHZvaWQgcHJvZ3Jlc3NFdmVudFRpbWVyRmlyZWQoKTsKICAgICBzdGF0aWMgY29uc3QgVmVjdG9y
PFdURjo6QXRvbVN0cmluZz4mIG9ic2VydmVkRXZlbnROYW1lcygpOwogICAgIGNvbnN0IFdURjo6
QXRvbVN0cmluZyYgZXZlbnROYW1lQWxsKCk7Ci0gICAgYm9vbCBpc1N0YWxsZWQoKSBjb25zdDsK
IAogICAgIFJlZlB0cjxIVE1MTWVkaWFFbGVtZW50PiBtX21lZGlhRWxlbWVudDsKICAgICBib29s
IG1faXNMaXN0ZW5pbmcgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5t
bQppbmRleCBlMDU3Zjk3ZDE0NDI5YjcyYjI5NTRhYmUxN2Y4Y2E1ODhkZjFhN2M1Li5kZWNhYjA3
NTg4MDY5YzBlODEwYzA2YzNkZWVlMjBhNzVhMTM2MGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1l
ZGlhRWxlbWVudC5tbQpAQCAtNDcsMTMgKzQ3LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci0vLyBUaGlzIGlzIHRoZSByYXRlIHdoaWNoIHdlIHJlcG9ydCB0byBvdXIgY2xpZW50cywgbmFt
ZWx5IEFWS2l0LCB3aGVuIHBsYXliYWNrIGhhcyBzdGFsbGVkLgotLy8gVGhlIHZhbHVlIG11c3Qg
YmUgbm9uLXplcm8sIHNvIGFzIHRvIGRpZmZlcmVudGlhdGUgInBsYXlpbmctYnV0LXN0YWxsZWQi
IGZyb20gInBhdXNlZCIuIEJ1dAotLy8gdGhlIHZhbHVlIGFsc28gbXVzdCBiZSB2ZXJ5IHNtYWxs
LCBzbyB0aGVyZSBpcyBubyB2aXNpYmxlIG1vdmVtZW50IGluIHRoZSBzeXN0ZW0gcHJvdmlkZWQK
LS8vIHRpbWVsaW5lIHNsaWRlciB3aGVuIHN0YWxsZWQuIFRoZSB2YWx1ZSBiZWxvdyB3aWxsIGNh
dXNlIHRoZSBzbGlkZXIgdG8gbW92ZSAxIHNlY29uZCBldmVyeQotLy8gMyB5ZWFycywgc28gbWVl
dHMgYm90aCBnb2Fscy4KLXN0YXRpYyBjb25zdCBmbG9hdCBTdGFsbGVkUGxheWJhY2tSYXRlID0g
MC4wMDAwMDAwMWY7Ci0KIFBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpQbGF5YmFj
a1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudCgpCiAgICAgOiBFdmVudExpc3RlbmVyKEV2ZW50TGlz
dGVuZXI6OkNQUEV2ZW50TGlzdGVuZXJUeXBlKQogewpAQCAtMTYzLDEwICsxNTYsMTEgQEAgdm9p
ZCBQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6dXBkYXRlRm9yRXZlbnROYW1lKGNv
bnN0IFdURjo6QXRvbVN0cmluZyYKICAgICAgICAgfHwgZXZlbnROYW1lID09IGV2ZW50TmFtZXMo
KS53YWl0aW5nRXZlbnQKICAgICAgICAgfHwgZXZlbnROYW1lID09IGV2ZW50TmFtZXMoKS5jYW5w
bGF5RXZlbnQpIHsKICAgICAgICAgYm9vbCBpc1BsYXlpbmcgPSB0aGlzLT5pc1BsYXlpbmcoKTsK
LSAgICAgICAgZmxvYXQgcGxheWJhY2tSYXRlID0gaXNTdGFsbGVkKCkgPyBTdGFsbGVkUGxheWJh
Y2tSYXRlIDogdGhpcy0+cGxheWJhY2tSYXRlKCk7Ci0gICAgICAgIGZsb2F0IGRlZmF1bHRQbGF5
YmFja1JhdGUgPSB0aGlzLT5kZWZhdWx0UGxheWJhY2tSYXRlKCk7CisgICAgICAgIGJvb2wgaXNT
dGFsbGVkID0gdGhpcy0+aXNTdGFsbGVkKCk7CisgICAgICAgIGRvdWJsZSBwbGF5YmFja1JhdGUg
PSAgdGhpcy0+cGxheWJhY2tSYXRlKCk7CisgICAgICAgIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tS
YXRlID0gdGhpcy0+ZGVmYXVsdFBsYXliYWNrUmF0ZSgpOwogICAgICAgICBmb3IgKGF1dG8gY2xp
ZW50IDogbV9jbGllbnRzKQotICAgICAgICAgICAgY2xpZW50LT5yYXRlQ2hhbmdlZChpc1BsYXlp
bmcsIHBsYXliYWNrUmF0ZSwgZGVmYXVsdFBsYXliYWNrUmF0ZSk7CisgICAgICAgICAgICBjbGll
bnQtPnJhdGVDaGFuZ2VkKGlzUGxheWluZywgaXNTdGFsbGVkLCBwbGF5YmFja1JhdGUsIGRlZmF1
bHRQbGF5YmFja1JhdGUpOwogICAgIH0KIAogICAgIGlmIChhbGwKQEAgLTMwMiwxMyArMjk2LDEz
IEBAIHZvaWQgUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmVuZFNjYW5uaW5nKCkK
ICAgICAgICAgbV9tZWRpYUVsZW1lbnQtPmVuZFNjYW5uaW5nKCk7CiB9CiAKLXZvaWQgUGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnNldERlZmF1bHRQbGF5YmFja1JhdGUoZmxvYXQg
ZGVmYXVsdFBsYXliYWNrUmF0ZSkKK3ZvaWQgUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1l
bnQ6OnNldERlZmF1bHRQbGF5YmFja1JhdGUoZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUpCiB7
CiAgICAgaWYgKG1fbWVkaWFFbGVtZW50KQogICAgICAgICBtX21lZGlhRWxlbWVudC0+c2V0RGVm
YXVsdFBsYXliYWNrUmF0ZShkZWZhdWx0UGxheWJhY2tSYXRlKTsKIH0KIAotdm9pZCBQbGF5YmFj
a1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6c2V0UGxheWJhY2tSYXRlKGZsb2F0IHBsYXliYWNr
UmF0ZSkKK3ZvaWQgUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnNldFBsYXliYWNr
UmF0ZShkb3VibGUgcGxheWJhY2tSYXRlKQogewogICAgIGlmIChtX21lZGlhRWxlbWVudCkKICAg
ICAgICAgbV9tZWRpYUVsZW1lbnQtPnNldFBsYXliYWNrUmF0ZShwbGF5YmFja1JhdGUpOwpAQCAt
NDgxLDEyICs0NzUsMTIgQEAgYm9vbCBQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6
aXNTdGFsbGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9tZWRpYUVsZW1lbnQgJiYgbV9tZWRpYUVs
ZW1lbnQtPnJlYWR5U3RhdGUoKSA8PSBIVE1MTWVkaWFFbGVtZW50OjpIQVZFX0NVUlJFTlRfREFU
QTsKIH0KIAotZmxvYXQgUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmRlZmF1bHRQ
bGF5YmFja1JhdGUoKSBjb25zdAorZG91YmxlIFBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVt
ZW50OjpkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9tZWRpYUVs
ZW1lbnQgPyBtX21lZGlhRWxlbWVudC0+ZGVmYXVsdFBsYXliYWNrUmF0ZSgpIDogMDsKIH0KIAot
ZmxvYXQgUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrUmF0ZSgpIGNv
bnN0Citkb3VibGUgUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrUmF0
ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fbWVkaWFFbGVtZW50ID8gbV9tZWRpYUVsZW1lbnQt
PnBsYXliYWNrUmF0ZSgpIDogMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmgKaW5kZXggNDcyMTM5
NjE1YWY1MTQ5NjA1ZTAxNDcyM2M1MTA1YmI0YTdiYjA4ZC4uMmYwN2ExOTQ2MTFmNGUxODhiNDJi
NWIyYjAzNWRmOTA3ZTk3MjMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmgKQEAgLTYzLDcgKzYz
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZHVyYXRpb25DaGFuZ2VkKGRvdWJsZSkgb3ZlcnJpZGU7
CiAgICAgdm9pZCBjdXJyZW50VGltZUNoYW5nZWQoZG91YmxlIGN1cnJlbnRUaW1lLCBkb3VibGUg
YW5jaG9yVGltZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBidWZmZXJlZFRpbWVDaGFuZ2VkKGRvdWJs
ZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByYXRlQ2hhbmdlZChib29sIGlzUGxheWluZywgZmxvYXQg
cGxheWJhY2tSYXRlLCBmbG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKSBvdmVycmlkZTsKKyAgICB2
b2lkIHJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBib29sIGlzU3RhbGxlZCwgZG91YmxlIHBs
YXliYWNrUmF0ZSwgZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUpIG92ZXJyaWRlOwogICAgIHZv
aWQgc2Vla2FibGVSYW5nZXNDaGFuZ2VkKGNvbnN0IFRpbWVSYW5nZXMmLCBkb3VibGUgbGFzdE1v
ZGlmaWVkVGltZSwgZG91YmxlIGxpdmVVcGRhdGVJbnRlcnZhbCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBjYW5QbGF5RmFzdFJldmVyc2VDaGFuZ2VkKGJvb2wpIG92ZXJyaWRlOwogICAgIHZvaWQgYXVk
aW9NZWRpYVNlbGVjdGlvbk9wdGlvbnNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxNZWRpYVNlbGVjdGlv
bk9wdGlvbj4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpIG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVy
ZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lv
bkludGVyZmFjZUFWS2l0Lm1tCmluZGV4IGIyNjg1MzkxYzVmNmMyNGM3YWVlMWMxNGNlMGVmYzEy
MjFkM2NmZTguLmJhMjc3NzI5MDMwNWQyMDc1MjAyNjg1YWNmZWI5MjAxM2IxZTA4NTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZh
Y2VBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxheWJhY2tTZXNz
aW9uSW50ZXJmYWNlQVZLaXQubW0KQEAgLTYxLDcgKzYxLDcgQEAgUGxheWJhY2tTZXNzaW9uSW50
ZXJmYWNlQVZLaXQ6OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0KFBsYXliYWNrU2Vzc2lv
bk1vZGUKICAgICBkdXJhdGlvbkNoYW5nZWQobW9kZWwuZHVyYXRpb24oKSk7CiAgICAgY3VycmVu
dFRpbWVDaGFuZ2VkKG1vZGVsLmN1cnJlbnRUaW1lKCksIFtbTlNQcm9jZXNzSW5mbyBwcm9jZXNz
SW5mb10gc3lzdGVtVXB0aW1lXSk7CiAgICAgYnVmZmVyZWRUaW1lQ2hhbmdlZChtb2RlbC5idWZm
ZXJlZFRpbWUoKSk7Ci0gICAgcmF0ZUNoYW5nZWQobW9kZWwuaXNQbGF5aW5nKCksIG1vZGVsLnBs
YXliYWNrUmF0ZSgpLCBtb2RlbC5kZWZhdWx0UGxheWJhY2tSYXRlKCkpOworICAgIHJhdGVDaGFu
Z2VkKG1vZGVsLmlzUGxheWluZygpLCBtb2RlbC5pc1N0YWxsZWQoKSwgbW9kZWwucGxheWJhY2tS
YXRlKCksIG1vZGVsLmRlZmF1bHRQbGF5YmFja1JhdGUoKSk7CiAgICAgc2Vla2FibGVSYW5nZXND
aGFuZ2VkKG1vZGVsLnNlZWthYmxlUmFuZ2VzKCksIG1vZGVsLnNlZWthYmxlVGltZVJhbmdlc0xh
c3RNb2RpZmllZFRpbWUoKSwgbW9kZWwubGl2ZVVwZGF0ZUludGVydmFsKCkpOwogICAgIGNhblBs
YXlGYXN0UmV2ZXJzZUNoYW5nZWQobW9kZWwuY2FuUGxheUZhc3RSZXZlcnNlKCkpOwogICAgIGF1
ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zQ2hhbmdlZChtb2RlbC5hdWRpb01lZGlhU2VsZWN0aW9u
T3B0aW9ucygpLCBtb2RlbC5hdWRpb01lZGlhU2VsZWN0ZWRJbmRleCgpKTsKQEAgLTEyNCwxMCAr
MTI0LDExIEBAIHZvaWQgUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OmJ1ZmZlcmVkVGlt
ZUNoYW5nZWQoZG91YmxlIGJ1ZmZlcmVkVGltZSkKICAgICBwbGF5ZXJDb250cm9sbGVyLmxvYWRl
ZFRpbWVSYW5nZXMgPSBAW0AwLCBAKG5vcm1hbGl6ZWRCdWZmZXJlZFRpbWUpXTsKIH0KIAotdm9p
ZCBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDo6cmF0ZUNoYW5nZWQoYm9vbCBpc1BsYXlp
bmcsIGZsb2F0IHBsYXliYWNrUmF0ZSwgZmxvYXQgZGVmYXVsdFBsYXliYWNrUmF0ZSkKK3ZvaWQg
UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OnJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5n
LCBib29sIGlzU3RhbGxlZCwgZG91YmxlIHBsYXliYWNrUmF0ZSwgZG91YmxlIGRlZmF1bHRQbGF5
YmFja1JhdGUpCiB7CiAgICAgW21fcGxheWVyQ29udHJvbGxlciBzZXREZWZhdWx0UGxheWJhY2tS
YXRlOmRlZmF1bHRQbGF5YmFja1JhdGVdOwotICAgIFttX3BsYXllckNvbnRyb2xsZXIgc2V0UmF0
ZTppc1BsYXlpbmcgPyBwbGF5YmFja1JhdGUgOiAwLl07CisgICAgaWYgKCFpc1N0YWxsZWQpCisg
ICAgICAgIFttX3BsYXllckNvbnRyb2xsZXIgc2V0UmF0ZTppc1BsYXlpbmcgPyBwbGF5YmFja1Jh
dGUgOiAwLl07CiB9CiAKIHZvaWQgUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OnNlZWth
YmxlUmFuZ2VzQ2hhbmdlZChjb25zdCBUaW1lUmFuZ2VzJiB0aW1lUmFuZ2VzLCBkb3VibGUgbGFz
dE1vZGlmaWVkVGltZSwgZG91YmxlIGxpdmVVcGRhdGVJbnRlcnZhbCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZL
aXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlckFWS2l0Lm1tCmluZGV4IDk5MDNjNGUzYTU5NTY4Zjc1NjkwZjVkNmM0Zjg4ZDgzNDYx
N2VhMzIuLjA3OGM2MzM3YjExYjllZjBkN2VmYmI0Yjk1NGJmNjgyZmRhMDIxMTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQpAQCAtMTQ5LDggKzE0OSw4IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBiZWdpblNjYW5uaW5nRm9yd2FyZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgYmVnaW5T
Y2FubmluZ0JhY2t3YXJkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBlbmRTY2FubmluZygpIG92ZXJy
aWRlOwotICAgIHZvaWQgc2V0RGVmYXVsdFBsYXliYWNrUmF0ZShmbG9hdCkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBzZXRQbGF5YmFja1JhdGUoZmxvYXQpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0RGVm
YXVsdFBsYXliYWNrUmF0ZShkb3VibGUpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0UGxheWJhY2tS
YXRlKGRvdWJsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVp
bnQ2NF90KSBvdmVycmlkZTsKICAgICB2b2lkIHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50
NjRfdCkgb3ZlcnJpZGU7CiAgICAgZG91YmxlIGR1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CkBA
IC0xNTgsOSArMTU4LDEwIEBAIHByaXZhdGU6CiAgICAgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgZG91YmxlIGJ1ZmZlcmVkVGltZSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgaXNQbGF5aW5nKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1N0YWxsZWQo
KSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzU2NydWJiaW5nKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICBmbG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgZmxvYXQgcGxheWJhY2tSYXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
ZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBkb3VibGUg
cGxheWJhY2tSYXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgUmVmPFRpbWVSYW5nZXM+IHNlZWth
YmxlUmFuZ2VzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgZG91YmxlIHNlZWthYmxlVGltZVJhbmdl
c0xhc3RNb2RpZmllZFRpbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBkb3VibGUgbGl2ZVVwZGF0
ZUludGVydmFsKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0xODMsNyArMTg0LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGR1cmF0aW9uQ2hhbmdlZChkb3VibGUpIG92ZXJyaWRlOwogICAgIHZvaWQgY3Vy
cmVudFRpbWVDaGFuZ2VkKGRvdWJsZSBjdXJyZW50VGltZSwgZG91YmxlIGFuY2hvclRpbWUpIG92
ZXJyaWRlOwogICAgIHZvaWQgYnVmZmVyZWRUaW1lQ2hhbmdlZChkb3VibGUpIG92ZXJyaWRlOwot
ICAgIHZvaWQgcmF0ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSwg
ZmxvYXQgZGVmYXVsdFBsYXliYWNrUmF0ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCByYXRlQ2hhbmdl
ZChib29sIGlzUGxheWluZywgYm9vbCBpc1N0YWxsZWQsIGRvdWJsZSBwbGF5YmFja1JhdGUsIGRv
dWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKSBvdmVycmlkZTsKICAgICB2b2lkIHNlZWthYmxlUmFu
Z2VzQ2hhbmdlZChjb25zdCBUaW1lUmFuZ2VzJiwgZG91YmxlIGxhc3RNb2RpZmllZFRpbWUsIGRv
dWJsZSBsaXZlVXBkYXRlSW50ZXJ2YWwpIG92ZXJyaWRlOwogICAgIHZvaWQgY2FuUGxheUZhc3RS
ZXZlcnNlQ2hhbmdlZChib29sKSBvdmVycmlkZTsKICAgICB2b2lkIGF1ZGlvTWVkaWFTZWxlY3Rp
b25PcHRpb25zQ2hhbmdlZChjb25zdCBWZWN0b3I8TWVkaWFTZWxlY3Rpb25PcHRpb24+JiBvcHRp
b25zLCB1aW50NjRfdCBzZWxlY3RlZEluZGV4KSBvdmVycmlkZTsKQEAgLTQxNiwxNyArNDE3LDE3
IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmJ1ZmZlcmVkVGltZUNo
YW5nZWQoZG91YmxlIGJ1ZmZlcmVkVGltZSkKICAgICAgICAgY2xpZW50LT5idWZmZXJlZFRpbWVD
aGFuZ2VkKGJ1ZmZlcmVkVGltZSk7CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxl
ckNvbnRleHQ6OnJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUs
IGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUpCit2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJDb250ZXh0OjpyYXRlQ2hhbmdlZChib29sIGlzUGxheWluZywgYm9vbCBpc1N0YWxsZWQsIGRv
dWJsZSBwbGF5YmFja1JhdGUsIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKQogewogICAgIGlm
IChXZWJUaHJlYWRJc0N1cnJlbnQoKSkgewotICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0
Y2goW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCBpc1BsYXlpbmcsIHBsYXliYWNr
UmF0ZSwgZGVmYXVsdFBsYXliYWNrUmF0ZV0gewotICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+
cmF0ZUNoYW5nZWQoaXNQbGF5aW5nLCBwbGF5YmFja1JhdGUsIGRlZmF1bHRQbGF5YmFja1JhdGUp
OworICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmUHRyKHRoaXMpLCBpc1BsYXlpbmcsIGlzU3RhbGxlZCwgcGxheWJhY2tSYXRlLCBkZWZhdWx0
UGxheWJhY2tSYXRlXSB7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5yYXRlQ2hhbmdlZChp
c1BsYXlpbmcsIGlzU3RhbGxlZCwgcGxheWJhY2tSYXRlLCBkZWZhdWx0UGxheWJhY2tSYXRlKTsK
ICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBmb3IgKGF1dG8mIGNs
aWVudCA6IG1fcGxheWJhY2tDbGllbnRzKQotICAgICAgICBjbGllbnQtPnJhdGVDaGFuZ2VkKGlz
UGxheWluZywgcGxheWJhY2tSYXRlLCBkZWZhdWx0UGxheWJhY2tSYXRlKTsKKyAgICAgICAgY2xp
ZW50LT5yYXRlQ2hhbmdlZChpc1BsYXlpbmcsIGlzU3RhbGxlZCwgcGxheWJhY2tSYXRlLCBkZWZh
dWx0UGxheWJhY2tSYXRlKTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29u
dGV4dDo6aGFzVmlkZW9DaGFuZ2VkKGJvb2wgaGFzVmlkZW8pCkBAIC04NDEsNyArODQyLDcgQEAg
dm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZW5kU2Nhbm5pbmcoKQogICAg
IH0pOwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpzZXREZWZh
dWx0UGxheWJhY2tSYXRlKGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUpCit2b2lkIFZpZGVvRnVs
bHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpzZXREZWZhdWx0UGxheWJhY2tSYXRlKGRvdWJsZSBk
ZWZhdWx0UGxheWJhY2tSYXRlKQogewogICAgIEFTU0VSVChpc1VJVGhyZWFkKCkpOwogICAgIFdl
YlRocmVhZFJ1bihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIGRlZmF1
bHRQbGF5YmFja1JhdGVdIHsKQEAgLTg1MCw3ICs4NTEsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVl
bkNvbnRyb2xsZXJDb250ZXh0OjpzZXREZWZhdWx0UGxheWJhY2tSYXRlKGZsb2F0IGRlZmF1bHRQ
bGF5YgogICAgIH0pOwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0
OjpzZXRQbGF5YmFja1JhdGUoZmxvYXQgcGxheWJhY2tSYXRlKQordm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyQ29udGV4dDo6c2V0UGxheWJhY2tSYXRlKGRvdWJsZSBwbGF5YmFja1JhdGUp
CiB7CiAgICAgQVNTRVJUKGlzVUlUaHJlYWQoKSk7CiAgICAgV2ViVGhyZWFkUnVuKFtwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpcywgcGxheWJhY2tSYXRlXSB7CkBAIC05MDEs
MTMgKzkwMiwxOSBAQCBib29sIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0Ojppc1Bs
YXlpbmcoKSBjb25zdAogICAgIHJldHVybiBtX3BsYXliYWNrTW9kZWwgPyBtX3BsYXliYWNrTW9k
ZWwtPmlzUGxheWluZygpIDogZmFsc2U7CiB9CiAKLWZsb2F0IFZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXJDb250ZXh0OjpkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3QKK2Jvb2wgVmlkZW9GdWxs
c2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmlzU3RhbGxlZCgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KGlzVUlUaHJlYWQoKSk7CisgICAgcmV0dXJuIG1fcGxheWJhY2tNb2RlbCA/IG1fcGxheWJhY2tN
b2RlbC0+aXNTdGFsbGVkKCkgOiBmYWxzZTsKK30KKworZG91YmxlIFZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXJDb250ZXh0OjpkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3QKIHsKICAgICBBU1NF
UlQoaXNVSVRocmVhZCgpKTsKICAgICByZXR1cm4gbV9wbGF5YmFja01vZGVsID8gbV9wbGF5YmFj
a01vZGVsLT5kZWZhdWx0UGxheWJhY2tSYXRlKCkgOiAwOwogfQogCi1mbG9hdCBWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQ29udGV4dDo6cGxheWJhY2tSYXRlKCkgY29uc3QKK2RvdWJsZSBWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6cGxheWJhY2tSYXRlKCkgY29uc3QKIHsKICAg
ICBBU1NFUlQoaXNVSVRocmVhZCgpKTsKICAgICByZXR1cm4gbV9wbGF5YmFja01vZGVsID8gbV9w
bGF5YmFja01vZGVsLT5wbGF5YmFja1JhdGUoKSA6IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5tbQppbmRl
eCBiMTJiOTFjZjI1YThlMjBiYWMxMWZjMjgxODJhODU4ZmRhZTBkY2YxLi4yOThhZjRkMzNmZWIw
MTU5NWU2YzdjY2Y4NDA3NzcwNTI5MTU1MTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0KQEAgLTky
LDcgKzkyLDcgQEAgdm9pZCBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWM6OmN1cnJlbnRUaW1l
Q2hhbmdlZChkb3VibGUgY3VycmVudFRpbWUsIGRvdWJsZQogI2VuZGlmCiB9CiAKLXZvaWQgUGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjOjpyYXRlQ2hhbmdlZChib29sIGlzUGxheWluZywgZmxv
YXQgcGxheWJhY2tSYXRlLCBmbG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKQordm9pZCBQbGF5YmFj
a1Nlc3Npb25JbnRlcmZhY2VNYWM6OnJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBkb3VibGUg
cGxheWJhY2tSYXRlLCBkb3VibGUgZGVmYXVsdFBsYXliYWNrUmF0ZSkKIHsKICNpZiBFTkFCTEUo
V0VCX1BMQVlCQUNLX0NPTlRST0xTX01BTkFHRVIpCiAgICAgV2ViUGxheWJhY2tDb250cm9sc01h
bmFnZXIqIGNvbnRyb2xzTWFuYWdlciA9IHBsYXlCYWNrQ29udHJvbHNNYW5hZ2VyKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlTWFjLmgKaW5kZXggN2U5YzE5ZmNjMTgxYmRlNDA3OWNjMzA2NWVhNDU5ZjMzODE3MGQ5
ZS4uZWFlYWY1NmYyNjBhNGNhMzUzYjFmYTE0OWEyZGI4NzAwYTY2MjkzNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VNYWMuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcihWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VP
YnNlcnZlciopOwogCiAgICAgLy8gUGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFj
a1JhdGUsIGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUpIG92ZXJyaWRlOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcmF0ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcsIGRvdWJsZSBwbGF5YmFja1Jh
dGUsIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGV4dGVybmFsUGxheWJhY2tDaGFuZ2VkKGJvb2wgIGVuYWJsZWQsIFBsYXliYWNr
U2Vzc2lvbk1vZGVsOjpFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwgY29uc3QgU3RyaW5nJiBs
b2NhbGl6ZWREZXZpY2VOYW1lKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVu
c3VyZUNvbnRyb2xzTWFuYWdlcigpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQppbmRl
eCBmYTZiZDRkNWUwNDkwNzJiNDQ0NzFkYTJhMDQ0MDFhMGExNDA1ODM2Li4wYmQ0NDNlMTY4OWZj
NjE5YTk5ZTBjNTFjYmZmODE5YWVjYmM2OWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KQEAgLTQy
OCw3ICs0MjgsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6Y2xlYXJNb2Rl
KEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZQogICAgICAgICBtX3ZpZGVvRnVs
bHNjcmVlbk1vZGVsLT5mdWxsc2NyZWVuTW9kZUNoYW5nZWQobV9tb2RlKTsKIH0KIAotdm9pZCBW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWM6OnJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBm
bG9hdCBwbGF5YmFja1JhdGUsIGZsb2F0IC8qIGRlZmF1bHRQbGF5YmFja1JhdGUgKi8pCit2b2lk
IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6cmF0ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcs
IGRvdWJsZSBwbGF5YmFja1JhdGUsIGRvdWJsZSAvKiBkZWZhdWx0UGxheWJhY2tSYXRlICovKQog
ewogICAgIFt2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VPYmpDKCkgdXBkYXRlSXNQbGF5aW5nOmlz
UGxheWluZyBuZXdQbGF5YmFja1JhdGU6cGxheWJhY2tSYXRlXTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclBy
b3h5LmgKaW5kZXggMjAyYmFlMTMxM2YwYmI2MDE5MWJiMTgzMDg4Y2JhMDA4ZTZlYTJiNy4uNWZm
ZmVlNmQ5NWFjYTk1N2EyZTkxMDJjNGNmM2MwZTA0NzhiNDYwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclBy
b3h5LmgKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogICAgIHZvaWQgY3VycmVudFRpbWVDaGFu
Z2VkKGRvdWJsZSk7CiAgICAgdm9pZCBidWZmZXJlZFRpbWVDaGFuZ2VkKGRvdWJsZSk7CiAgICAg
dm9pZCBwbGF5YmFja1N0YXJ0ZWRUaW1lQ2hhbmdlZChkb3VibGUpOwotICAgIHZvaWQgcmF0ZUNo
YW5nZWQoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSwgZmxvYXQgZGVmYXVsdFBs
YXliYWNrUmF0ZSk7CisgICAgdm9pZCByYXRlQ2hhbmdlZChib29sIGlzUGxheWluZywgYm9vbCBp
c1N0YWxsZWQsIGRvdWJsZSBwbGF5YmFja1JhdGUsIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRl
KTsKICAgICB2b2lkIHNlZWthYmxlUmFuZ2VzQ2hhbmdlZChXZWJDb3JlOjpUaW1lUmFuZ2VzJiwg
ZG91YmxlIGxhc3RNb2RpZmllZFRpbWUsIGRvdWJsZSBsaXZlVXBkYXRlSW50ZXJ2YWwpOwogICAg
IHZvaWQgY2FuUGxheUZhc3RSZXZlcnNlQ2hhbmdlZChib29sKTsKICAgICB2b2lkIGF1ZGlvTWVk
aWFTZWxlY3Rpb25PcHRpb25zQ2hhbmdlZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6TWVkaWFTZWxl
Y3Rpb25PcHRpb24+JiBvcHRpb25zLCB1aW50NjRfdCBpbmRleCk7CkBAIC0xMTEsOCArMTExLDgg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGJlZ2luU2Nhbm5pbmdGb3J3YXJkKCkgZmluYWw7CiAgICAg
dm9pZCBiZWdpblNjYW5uaW5nQmFja3dhcmQoKSBmaW5hbDsKICAgICB2b2lkIGVuZFNjYW5uaW5n
KCkgZmluYWw7Ci0gICAgdm9pZCBzZXREZWZhdWx0UGxheWJhY2tSYXRlKGZsb2F0KSBmaW5hbDsK
LSAgICB2b2lkIHNldFBsYXliYWNrUmF0ZShmbG9hdCkgZmluYWw7CisgICAgdm9pZCBzZXREZWZh
dWx0UGxheWJhY2tSYXRlKGRvdWJsZSkgZmluYWw7CisgICAgdm9pZCBzZXRQbGF5YmFja1JhdGUo
ZG91YmxlKSBmaW5hbDsKICAgICB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3Qp
IGZpbmFsOwogICAgIHZvaWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90KSBmaW5h
bDsKICAgICB2b2lkIHRvZ2dsZVBpY3R1cmVJblBpY3R1cmUoKSBmaW5hbDsKQEAgLTEyNyw5ICsx
MjcsMTAgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgY3VycmVudFRpbWUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2N1cnJlbnRUaW1lOyB9CiAgICAgZG91YmxlIGJ1ZmZlcmVkVGltZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fYnVmZmVyZWRUaW1lOyB9CiAgICAgYm9vbCBpc1BsYXlpbmcoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX2lzUGxheWluZzsgfQorICAgIGJvb2wgaXNTdGFsbGVkKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9pc1N0YWxsZWQ7IH0KICAgICBib29sIGlzU2NydWJiaW5n
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pc1NjcnViYmluZzsgfQotICAgIGZsb2F0IGRlZmF1
bHRQbGF5YmFja1JhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2RlZmF1bHRQbGF5YmFja1Jh
dGU7IH0KLSAgICBmbG9hdCBwbGF5YmFja1JhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Bs
YXliYWNrUmF0ZTsgfQorICAgIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9kZWZhdWx0UGxheWJhY2tSYXRlOyB9CisgICAgZG91YmxlIHBsYXliYWNr
UmF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcGxheWJhY2tSYXRlOyB9CiAgICAgUmVmPFdl
YkNvcmU6OlRpbWVSYW5nZXM+IHNlZWthYmxlUmFuZ2VzKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9zZWVrYWJsZVJhbmdlcy5jb3B5UmVmKCk7IH0KICAgICBkb3VibGUgc2Vla2FibGVUaW1lUmFu
Z2VzTGFzdE1vZGlmaWVkVGltZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vla2FibGVUaW1l
UmFuZ2VzTGFzdE1vZGlmaWVkVGltZTsgfQogICAgIGRvdWJsZSBsaXZlVXBkYXRlSW50ZXJ2YWwo
KSBjb25zdCB7IHJldHVybiBtX2xpdmVVcGRhdGVJbnRlcnZhbDsgfQpAQCAtMTU1LDkgKzE1Niwx
MCBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtX2N1cnJlbnRUaW1lIHsgMCB9OwogICAgIGRvdWJs
ZSBtX2J1ZmZlcmVkVGltZSB7IDAgfTsKICAgICBib29sIG1faXNQbGF5aW5nIHsgZmFsc2UgfTsK
KyAgICBib29sIG1faXNTdGFsbGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNTY3J1YmJpbmcg
eyBmYWxzZSB9OwotICAgIGZsb2F0IG1fZGVmYXVsdFBsYXliYWNrUmF0ZSB7IDAgfTsKLSAgICBm
bG9hdCBtX3BsYXliYWNrUmF0ZSB7IDAgfTsKKyAgICBkb3VibGUgbV9kZWZhdWx0UGxheWJhY2tS
YXRlIHsgMCB9OworICAgIGRvdWJsZSBtX3BsYXliYWNrUmF0ZSB7IDAgfTsKICAgICBSZWY8V2Vi
Q29yZTo6VGltZVJhbmdlcz4gbV9zZWVrYWJsZVJhbmdlcyB7IFdlYkNvcmU6OlRpbWVSYW5nZXM6
OmNyZWF0ZSgpIH07CiAgICAgZG91YmxlIG1fc2Vla2FibGVUaW1lUmFuZ2VzTGFzdE1vZGlmaWVk
VGltZSB7IDAgfTsKICAgICBkb3VibGUgbV9saXZlVXBkYXRlSW50ZXJ2YWwgeyAwIH07CkBAIC0y
MjEsNyArMjIzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rp
c2FibGVkQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgYm9vbCk7CiAg
ICAgdm9pZCBkdXJhdGlvbkNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIs
IGRvdWJsZSBkdXJhdGlvbik7CiAgICAgdm9pZCBwbGF5YmFja1N0YXJ0ZWRUaW1lQ2hhbmdlZChQ
bGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgZG91YmxlIHBsYXliYWNrU3RhcnRlZFRp
bWUpOwotICAgIHZvaWQgcmF0ZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZp
ZXIsIGJvb2wgaXNQbGF5aW5nLCBkb3VibGUgcmF0ZSwgZG91YmxlIGRlZmF1bHRQbGF5YmFja1Jh
dGUpOworICAgIHZvaWQgcmF0ZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZp
ZXIsIGJvb2wgaXNQbGF5aW5nLCBib29sIGlzU3RhbGxlZCwgZG91YmxlIHJhdGUsIGRvdWJsZSBk
ZWZhdWx0UGxheWJhY2tSYXRlKTsKICAgICB2b2lkIGhhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURS
ZXNwb25zZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgU3RyaW5nKSBjb25zdDsK
ICAgICB2b2lkIG11dGVkQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwg
Ym9vbCBtdXRlZCk7CiAgICAgdm9pZCB2b2x1bWVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRl
eHRJZGVudGlmaWVyLCBkb3VibGUgdm9sdW1lKTsKQEAgLTIzOCw4ICsyNDAsOCBAQCBwcml2YXRl
OgogICAgIHZvaWQgYmVnaW5TY2FubmluZ0ZvcndhcmQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElk
ZW50aWZpZXIpOwogICAgIHZvaWQgYmVnaW5TY2FubmluZ0JhY2t3YXJkKFBsYXliYWNrU2Vzc2lv
bkNvbnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIGVuZFNjYW5uaW5nKFBsYXliYWNrU2Vzc2lv
bkNvbnRleHRJZGVudGlmaWVyKTsKLSAgICB2b2lkIHNldERlZmF1bHRQbGF5YmFja1JhdGUoUGxh
eWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIGZsb2F0KTsKLSAgICB2b2lkIHNldFBsYXli
YWNrUmF0ZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgZmxvYXQpOworICAgIHZv
aWQgc2V0RGVmYXVsdFBsYXliYWNrUmF0ZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmll
ciwgZG91YmxlKTsKKyAgICB2b2lkIHNldFBsYXliYWNrUmF0ZShQbGF5YmFja1Nlc3Npb25Db250
ZXh0SWRlbnRpZmllciwgZG91YmxlKTsKICAgICB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24o
UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4KTsKICAgICB2
b2lkIHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRp
ZmllciwgdWludDY0X3QgaW5kZXgpOwogICAgIHZvaWQgdG9nZ2xlUGljdHVyZUluUGljdHVyZShQ
bGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KaW5kZXggZDMzOTQ5OGQ4NTQxZmVlNWE1ODEzMzg0NGEzZTc3MDcx
NWFjYTA0Ny4uMzIwNWQ1YTFmZTNmOTVmMWVkMzAxOTNmOTIyY2ExYTUzZTNlNTcwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Bs
YXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzQsNyArMzQsNyBAQCBt
ZXNzYWdlcyAtPiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkgewogICAgIFdpcmVsZXNzVmlk
ZW9QbGF5YmFja0Rpc2FibGVkQ2hhbmdlZChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJ
ZGVudGlmaWVyIGNvbnRleHRJZCwgYm9vbCBkaXNhYmxlZCkKICAgICBEdXJhdGlvbkNoYW5nZWQo
V2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGRvdWJs
ZSBkdXJhdGlvbikKICAgICBQbGF5YmFja1N0YXJ0ZWRUaW1lQ2hhbmdlZChXZWJLaXQ6OlBsYXli
YWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgZG91YmxlIHBsYXliYWNrU3Rh
cnRlZFRpbWUpCi0gICAgUmF0ZUNoYW5nZWQoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0
SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgaXNQbGF5aW5nLCBkb3VibGUgcmF0ZSwgZG91Ymxl
IGRlZmF1bHRQbGF5YmFja1JhdGUpCisgICAgUmF0ZUNoYW5nZWQoV2ViS2l0OjpQbGF5YmFja1Nl
c3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgaXNQbGF5aW5nLCBib29sIGlz
U3RhbGxlZCwgZG91YmxlIHJhdGUsIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKQogICAgIE11
dGVkQ2hhbmdlZChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRl
eHRJZCwgYm9vbCBtdXRlZCk7CiAgICAgVm9sdW1lQ2hhbmdlZChXZWJLaXQ6OlBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgZG91YmxlIHZvbHVtZSk7CiAgICAgUGlj
dHVyZUluUGljdHVyZVN1cHBvcnRlZENoYW5nZWQoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250
ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgcGljdHVyZUluUGljdHVyZVN1cHBvcnRlZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lv
bk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BsYXliYWNr
U2Vzc2lvbk1hbmFnZXJQcm94eS5tbQppbmRleCBmZDFkNDgxZmY3ZDc2OWI4MzE5ODA2Y2E1MWJl
MTgxZDY0ZWZmZmExLi40MTMwNjg1ZWViYTU0ZGU5ZWE2MDdkZTI5OTJkMmRjOTA2MTQ0MWZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QbGF5YmFja1Nlc3Npb25N
YW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGxheWJh
Y2tTZXNzaW9uTWFuYWdlclByb3h5Lm1tCkBAIC0xMjEsMTMgKzEyMSwxMyBAQCB2b2lkIFBsYXli
YWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6ZW5kU2Nhbm5pbmcoKQogICAgICAgICBtX21hbmFnZXIt
PmVuZFNjYW5uaW5nKG1fY29udGV4dElkKTsKIH0KIAotdm9pZCBQbGF5YmFja1Nlc3Npb25Nb2Rl
bENvbnRleHQ6OnNldERlZmF1bHRQbGF5YmFja1JhdGUoZmxvYXQgZGVmYXVsdFBsYXliYWNrUmF0
ZSkKK3ZvaWQgUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OjpzZXREZWZhdWx0UGxheWJhY2tS
YXRlKGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKQogewogICAgIGlmIChtX21hbmFnZXIpCiAg
ICAgICAgIG1fbWFuYWdlci0+c2V0RGVmYXVsdFBsYXliYWNrUmF0ZShtX2NvbnRleHRJZCwgZGVm
YXVsdFBsYXliYWNrUmF0ZSk7CiB9CiAKLXZvaWQgUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0
OjpzZXRQbGF5YmFja1JhdGUoZmxvYXQgcGxheWJhY2tSYXRlKQordm9pZCBQbGF5YmFja1Nlc3Np
b25Nb2RlbENvbnRleHQ6OnNldFBsYXliYWNrUmF0ZShkb3VibGUgcGxheWJhY2tSYXRlKQogewog
ICAgIGlmIChtX21hbmFnZXIpCiAgICAgICAgIG1fbWFuYWdlci0+c2V0UGxheWJhY2tSYXRlKG1f
Y29udGV4dElkLCBwbGF5YmFja1JhdGUpOwpAQCAtMjA2LDEzICsyMDYsMTQgQEAgdm9pZCBQbGF5
YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6OmJ1ZmZlcmVkVGltZUNoYW5nZWQoZG91YmxlIGJ1ZmZl
cmVkVGltZSkKICAgICAgICAgY2xpZW50LT5idWZmZXJlZFRpbWVDaGFuZ2VkKGJ1ZmZlcmVkVGlt
ZSk7CiB9CiAKLXZvaWQgUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OjpyYXRlQ2hhbmdlZChi
b29sIGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRlLCBmbG9hdCBkZWZhdWx0UGxheWJhY2tS
YXRlKQordm9pZCBQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6OnJhdGVDaGFuZ2VkKGJvb2wg
aXNQbGF5aW5nLCBib29sIGlzU3RhbGxlZCwgZG91YmxlIHBsYXliYWNrUmF0ZSwgZG91YmxlIGRl
ZmF1bHRQbGF5YmFja1JhdGUpCiB7CiAgICAgbV9pc1BsYXlpbmcgPSBpc1BsYXlpbmc7CisgICAg
bV9pc1N0YWxsZWQgPSBpc1N0YWxsZWQ7CiAgICAgbV9wbGF5YmFja1JhdGUgPSBwbGF5YmFja1Jh
dGU7CiAgICAgbV9kZWZhdWx0UGxheWJhY2tSYXRlID0gZGVmYXVsdFBsYXliYWNrUmF0ZTsKICAg
ICBmb3IgKGF1dG8qIGNsaWVudCA6IG1fY2xpZW50cykKLSAgICAgICAgY2xpZW50LT5yYXRlQ2hh
bmdlZChtX2lzUGxheWluZywgbV9wbGF5YmFja1JhdGUsIG1fZGVmYXVsdFBsYXliYWNrUmF0ZSk7
CisgICAgICAgIGNsaWVudC0+cmF0ZUNoYW5nZWQobV9pc1BsYXlpbmcsIGlzU3RhbGxlZCwgbV9w
bGF5YmFja1JhdGUsIG1fZGVmYXVsdFBsYXliYWNrUmF0ZSk7CiB9CiAKIHZvaWQgUGxheWJhY2tT
ZXNzaW9uTW9kZWxDb250ZXh0OjpzZWVrYWJsZVJhbmdlc0NoYW5nZWQoV2ViQ29yZTo6VGltZVJh
bmdlcyYgc2Vla2FibGVSYW5nZXMsIGRvdWJsZSBsYXN0TW9kaWZpZWRUaW1lLCBkb3VibGUgbGl2
ZVVwZGF0ZUludGVydmFsKQpAQCAtNDg5LDkgKzQ5MCw5IEBAIHZvaWQgUGxheWJhY2tTZXNzaW9u
TWFuYWdlclByb3h5OjpwbGF5YmFja1N0YXJ0ZWRUaW1lQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25D
b250CiAgICAgZW5zdXJlTW9kZWwoY29udGV4dElkKS5wbGF5YmFja1N0YXJ0ZWRUaW1lQ2hhbmdl
ZChwbGF5YmFja1N0YXJ0ZWRUaW1lKTsKIH0KIAotdm9pZCBQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
UHJveHk6OnJhdGVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRl
eHRJZCwgYm9vbCBpc1BsYXlpbmcsIGRvdWJsZSByYXRlLCBkb3VibGUgZGVmYXVsdFBsYXliYWNr
UmF0ZSkKK3ZvaWQgUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpyYXRlQ2hhbmdlZChQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgaXNQbGF5aW5nLCBi
b29sIGlzU3RhbGxlZCwgZG91YmxlIHJhdGUsIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKQog
ewotICAgIGVuc3VyZU1vZGVsKGNvbnRleHRJZCkucmF0ZUNoYW5nZWQoaXNQbGF5aW5nLCByYXRl
LCBkZWZhdWx0UGxheWJhY2tSYXRlKTsKKyAgICBlbnN1cmVNb2RlbChjb250ZXh0SWQpLnJhdGVD
aGFuZ2VkKGlzUGxheWluZywgaXNTdGFsbGVkLCByYXRlLCBkZWZhdWx0UGxheWJhY2tSYXRlKTsK
IH0KIAogdm9pZCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OnBpY3R1cmVJblBpY3R1cmVT
dXBwb3J0ZWRDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJ
ZCwgYm9vbCBzdXBwb3J0ZWQpCkBAIC01NjMsMTIgKzU2NCwxMiBAQCB2b2lkIFBsYXliYWNrU2Vz
c2lvbk1hbmFnZXJQcm94eTo6ZW5kU2Nhbm5pbmcoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50
aWZpZXIgYwogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6UGxheWJhY2tTZXNzaW9uTWFuYWdl
cjo6RW5kU2Nhbm5pbmcoY29udGV4dElkKSk7CiB9CiAKLXZvaWQgUGxheWJhY2tTZXNzaW9uTWFu
YWdlclByb3h5OjpzZXREZWZhdWx0UGxheWJhY2tSYXRlKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJ
ZGVudGlmaWVyIGNvbnRleHRJZCwgZmxvYXQgZGVmYXVsdFBsYXliYWNrUmF0ZSkKK3ZvaWQgUGxh
eWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpzZXREZWZhdWx0UGxheWJhY2tSYXRlKFBsYXliYWNr
U2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgZG91YmxlIGRlZmF1bHRQbGF5YmFj
a1JhdGUpCiB7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyOjpTZXREZWZhdWx0UGxheWJhY2tSYXRlKGNvbnRleHRJZCwgZGVmYXVsdFBsYXliYWNrUmF0
ZSkpOwogfQogCi12b2lkIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6c2V0UGxheWJhY2tS
YXRlKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgZmxvYXQgcGxh
eWJhY2tSYXRlKQordm9pZCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OnNldFBsYXliYWNr
UmF0ZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGRvdWJsZSBw
bGF5YmFja1JhdGUpCiB7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyOjpTZXRQbGF5YmFja1JhdGUoY29udGV4dElkLCBwbGF5YmFja1JhdGUpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVs
bFNjcmVlblZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1
bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KaW5kZXggZTI2YTM2ZGNmODk5
NjU2Y2QyZTBjOTIxMzk5MTM0YTQxZjllNTg5Yy4uMTAzNTgzNmZjZGVjYjZiYmM4NGIwNTU5MWZi
ZjlhNjI5MTc1YmNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1
bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0K
QEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXJQbGF5YmFj
a1Nlc3Npb25Nb2RlbENsaWVudCA6IFdlYkNvcmU6OlBsYXliYWNrU2UKIHB1YmxpYzoKICAgICB2
b2lkIHNldFBhcmVudChXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciAqcGFyZW50KSB7IG1fcGFy
ZW50ID0gcGFyZW50OyB9CiAKLSAgICB2b2lkIHJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBm
bG9hdCAvKiBwbGF5YmFja1JhdGUgKi8sIGZsb2F0IC8qIGRlZmF1bHRQbGF5YmFja1JhdGUgKi8p
IG92ZXJyaWRlCisgICAgdm9pZCByYXRlQ2hhbmdlZChib29sIGlzUGxheWluZywgYm9vbCAvKiBp
c1N0YWxsZWQgKi8sIGRvdWJsZSAvKiBwbGF5YmFja1JhdGUgKi8sIGRvdWJsZSAvKiBkZWZhdWx0
UGxheWJhY2tSYXRlICovKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgbV9wYXJlbnQucGxheWlu
ZyA9IGlzUGxheWluZzsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaAppbmRleCAwOTY3OTcxNjRjZGY0ZjAz
ODFmZDkxMWMwZTVmMWMyMTZiNGVkNmQwLi41NzZlMjUyNTk1NjM0ZmIyM2M3YzdkYWZkZmViZTRi
ZTQzMzFjYWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUGxh
eWJhY2tTZXNzaW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmgKQEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGN1cnJlbnRUaW1lQ2hhbmdlZChkb3VibGUgY3VycmVudFRpbWUsIGRvdWJsZSBhbmNo
b3JUaW1lKSBmaW5hbDsKICAgICB2b2lkIGJ1ZmZlcmVkVGltZUNoYW5nZWQoZG91YmxlKSBmaW5h
bDsKICAgICB2b2lkIHBsYXliYWNrU3RhcnRlZFRpbWVDaGFuZ2VkKGRvdWJsZSBwbGF5YmFja1N0
YXJ0ZWRUaW1lKSBmaW5hbDsKLSAgICB2b2lkIHJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBm
bG9hdCBwbGF5YmFja1JhdGUsIGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUpIGZpbmFsOworICAg
IHZvaWQgcmF0ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcsIGJvb2wgaXNTdGFsbGVkLCBkb3VibGUg
cGxheWJhY2tSYXRlLCBkb3VibGUgZGVmYXVsdFBsYXliYWNrUmF0ZSkgZmluYWw7CiAgICAgdm9p
ZCBzZWVrYWJsZVJhbmdlc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6VGltZVJhbmdlcyYsIGRvdWJs
ZSBsYXN0TW9kaWZpZWRUaW1lLCBkb3VibGUgbGl2ZVVwZGF0ZUludGVydmFsKSBmaW5hbDsKICAg
ICB2b2lkIGNhblBsYXlGYXN0UmV2ZXJzZUNoYW5nZWQoYm9vbCB2YWx1ZSkgZmluYWw7CiAgICAg
dm9pZCBhdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uc0NoYW5nZWQoY29uc3QgVmVjdG9yPFdlYkNv
cmU6Ok1lZGlhU2VsZWN0aW9uT3B0aW9uPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRl
eCkgZmluYWw7CkBAIC0xMzAsNyArMTMwLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgY3VycmVu
dFRpbWVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBkb3VibGUgY3Vy
cmVudFRpbWUsIGRvdWJsZSBhbmNob3JUaW1lKTsKICAgICB2b2lkIGJ1ZmZlcmVkVGltZUNoYW5n
ZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIGRvdWJsZSBidWZmZXJlZFRpbWUp
OwogICAgIHZvaWQgcGxheWJhY2tTdGFydGVkVGltZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29u
dGV4dElkZW50aWZpZXIsIGRvdWJsZSBwbGF5YmFja1N0YXJ0ZWRUaW1lKTsKLSAgICB2b2lkIHJh
dGVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBib29sIGlzUGxheWlu
ZywgZmxvYXQgcGxheWJhY2tSYXRlLCBmbG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKTsKKyAgICB2
b2lkIHJhdGVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBib29sIGlz
UGxheWluZywgYm9vbCBpc1N0YWxsZWQsIGRvdWJsZSBwbGF5YmFja1JhdGUsIGRvdWJsZSBkZWZh
dWx0UGxheWJhY2tSYXRlKTsKICAgICB2b2lkIHNlZWthYmxlUmFuZ2VzQ2hhbmdlZChQbGF5YmFj
a1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6VGltZVJhbmdlcyYsIGRv
dWJsZSBsYXN0TW9kaWZpZWRUaW1lLCBkb3VibGUgbGl2ZVVwZGF0ZUludGVydmFsKTsKICAgICB2
b2lkIGNhblBsYXlGYXN0UmV2ZXJzZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50
aWZpZXIsIGJvb2wgdmFsdWUpOwogICAgIHZvaWQgYXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnND
aGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6TWVkaWFTZWxlY3Rpb25PcHRpb24+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxlY3RlZElu
ZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9QbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1BsYXli
YWNrU2Vzc2lvbk1hbmFnZXIubW0KaW5kZXggMzQ2NDNmOWJlNTkyMjY0NGMwYTgxNjM3NDMwOThi
MDAxMzExYTIwNy4uZDYzMjJiZTAzZTYwM2Y2MzQ0ZmViNzVjZjY5OWNjNWU3ZWUwMzhiMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1h
bmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1BsYXliYWNrU2Vz
c2lvbk1hbmFnZXIubW0KQEAgLTc2LDEwICs3NiwxMCBAQCB2b2lkIFBsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZUNvbnRleHQ6OmJ1ZmZlcmVkVGltZUNoYW5nZWQoZG91YmxlIGJ1ZmZlcmVkVGltZSkK
ICAgICAgICAgbV9tYW5hZ2VyLT5idWZmZXJlZFRpbWVDaGFuZ2VkKG1fY29udGV4dElkLCBidWZm
ZXJlZFRpbWUpOwogfQogCi12b2lkIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUNvbnRleHQ6OnJh
dGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUsIGZsb2F0IGRlZmF1
bHRQbGF5YmFja1JhdGUpCit2b2lkIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUNvbnRleHQ6OnJh
dGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBib29sIGlzU3RhbGxlZCwgZG91YmxlIHBsYXliYWNr
UmF0ZSwgZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUpCiB7CiAgICAgaWYgKG1fbWFuYWdlcikK
LSAgICAgICAgbV9tYW5hZ2VyLT5yYXRlQ2hhbmdlZChtX2NvbnRleHRJZCwgaXNQbGF5aW5nLCBw
bGF5YmFja1JhdGUsIGRlZmF1bHRQbGF5YmFja1JhdGUpOworICAgICAgICBtX21hbmFnZXItPnJh
dGVDaGFuZ2VkKG1fY29udGV4dElkLCBpc1BsYXlpbmcsIGlzU3RhbGxlZCwgcGxheWJhY2tSYXRl
LCBkZWZhdWx0UGxheWJhY2tSYXRlKTsKIH0KIAogdm9pZCBQbGF5YmFja1Nlc3Npb25JbnRlcmZh
Y2VDb250ZXh0OjpwbGF5YmFja1N0YXJ0ZWRUaW1lQ2hhbmdlZChkb3VibGUgcGxheWJhY2tTdGFy
dGVkVGltZSkKQEAgLTM0MSw5ICszNDEsOSBAQCB2b2lkIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6
OnBsYXliYWNrU3RhcnRlZFRpbWVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZAogICAg
IG1fcGFnZS0+c2VuZChNZXNzYWdlczo6UGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpQbGF5
YmFja1N0YXJ0ZWRUaW1lQ2hhbmdlZChjb250ZXh0SWQsIHBsYXliYWNrU3RhcnRlZFRpbWUpKTsK
IH0KIAotdm9pZCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpyYXRlQ2hhbmdlZChQbGF5YmFja1Nl
c3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBw
bGF5YmFja1JhdGUsIGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUpCit2b2lkIFBsYXliYWNrU2Vz
c2lvbk1hbmFnZXI6OnJhdGVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVy
IGNvbnRleHRJZCwgYm9vbCBpc1BsYXlpbmcsIGJvb2wgaXNTdGFsbGVkLCBkb3VibGUgcGxheWJh
Y2tSYXRlLCBkb3VibGUgZGVmYXVsdFBsYXliYWNrUmF0ZSkKIHsKLSAgICBtX3BhZ2UtPnNlbmQo
TWVzc2FnZXM6OlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6UmF0ZUNoYW5nZWQoY29udGV4
dElkLCBpc1BsYXlpbmcsIHBsYXliYWNrUmF0ZSwgZGVmYXVsdFBsYXliYWNrUmF0ZSkpOworICAg
IG1fcGFnZS0+c2VuZChNZXNzYWdlczo6UGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpSYXRl
Q2hhbmdlZChjb250ZXh0SWQsIGlzUGxheWluZywgaXNTdGFsbGVkLCBwbGF5YmFja1JhdGUsIGRl
ZmF1bHRQbGF5YmFja1JhdGUpKTsKIH0KIAogdm9pZCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpz
ZWVrYWJsZVJhbmdlc0NoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29u
dGV4dElkLCBjb25zdCBXZWJDb3JlOjpUaW1lUmFuZ2VzJiB0aW1lUmFuZ2VzLCBkb3VibGUgbGFz
dE1vZGlmaWVkVGltZSwgZG91YmxlIGxpdmVVcGRhdGVJbnRlcnZhbCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431487</attachid>
            <date>2021-06-15 15:24:38 -0700</date>
            <delta_ts>2021-06-15 16:31:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227047-20210615152438.patch</filename>
            <type>text/plain</type>
            <size>38562</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4ODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNmYzFjM2JmNGIxNzU2
NWY3ZjQ2ZTljZDc2ZDEzOGEwYzI0YTEwZi4uODRlNTQ2OWMxNWNkZjI3MzU3YmYwYWRkM2U1ZDVj
MzhkYzM2YTYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTA2LTE1ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRnVsbHNjcmVlbiB2
aWRlbyBwbGF5YmFjayBnZXRzIHN0dWNrIGFmdGVyIGludGVyYWN0aW5nIHdpdGggdGhlIHBsYXli
YWNrIGNvbnRyb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjcwNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXaGVuIHdlIHNjcnViIGEgcGxheWluZyB2aWRlbywgdGhlIHZpZGVvIGVsZW1lbnQgbWF5
IGVudGVyIGEgdGVtcG9yYXJpbHkgc3RhbGxlZAorICAgICAgICBzdGF0ZSAtIHRoZSBwbGF5ZXIg
aXMgc3RpbGwgcGxheWluZywgYnV0IGl0IGRvZXMgbm90IGhhdmUgZW5vdWdoIGRhdGEuIEluIFdl
YktpdCwKKyAgICAgICAgdGhlIGByYXRlYCBvZiB0aGUgcGxheWVyIHdpbGwgYmUgMC4gQnV0IHdl
IGNhbm5vdCBzZXQgdGhlIHJhdGUgb2YgYFdlYkFWUGxheWVyQ29udHJvbGxlcmAKKyAgICAgICAg
dG8gMCBpbiB0aGlzIGNhc2UsIGJlY2F1c2UgQVZLaXQgd2lsbCBiZWxpZXZlIHRoZSB2aWRlbyBw
bGF5YmFjayBpcyBwYXVzZWQgd2hlbgorICAgICAgICBpdHMgcmF0ZSBpcyAwLiBJbiByMjYxNTg3
LCB3ZSBkZWZpbmVkIGEgbWFnaWMgcmF0ZSAoMC4wMDAwMDAwMWYpIGZvciB0aGlzIGNhc2UuCisK
KyAgICAgICAgVW5mb3J0dW5hdGVseSwgd2l0aCB0aGUgY2hhbmdlcyBpbiByMjc1OTU2LCBgV2Vi
QVZQbGF5ZXJDb250cm9sbGVyYCB3aWxsCisgICAgICAgIGFsaWduIGl0cyBgZGVmYXVsdFBsYXli
YWNrUmF0ZWAgd2l0aCBgcmF0ZWAgd2hlbiBgcmF0ZWAgaXMgbm90IDAuIFVuZGVyIHN0cmVzcwor
ICAgICAgICB0ZXN0cywgZS5nLiwga2VlcCBzY3J1YmJpbmcgYSB2aWRlbywgYSB2aWRlbyBlbGVt
ZW50IHdpbGwgZXZlbnR1YWxseSBlbnRlciBhIHN0YXRlCisgICAgICAgIGluIHdoaWNoIGJvdGgg
YGRlZmF1bHRQbGF5YmFja1JhdGVgIGFuZCBgcmF0ZWAgYXJlIHRoZSBtYWdpYyByYXRlLiBBbmQg
dGhlIHZpZGVvCisgICAgICAgIGFwcGVhcnMgdG8gYmUgc3R1Y2sgZm9yIHVzZXJzLgorCisgICAg
ICAgIFRvIGZpeCB0aGUgaXNzdWUsIHRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgbWFnaWMgcmF0ZSBh
bmQgZGVmaW5lcyBhIG5ldyBzdGF0ZTogYHN0YWxsZWRgLgorICAgICAgICBBIHZpZGVvIHdpbGwg
YmUgaW4gdGhlIHN0YWxsZWQgc3RhdGUgd2hlbiBpdCBpcyBwbGF5aW5nIGJ1dCBkb2VzIG5vdCBo
YXZlIGVub3VnaCBkYXRhLgorICAgICAgICBXZWJLaXQgd2lsbCBvbmx5IGNoYW5nZSB0aGUgcmF0
ZSBvZiBgV2ViQVZQbGF5ZXJDb250cm9sbGVyYCB3aGVuIHRoZSB2aWRlbworICAgICAgICBpcyBu
b3Qgc3RhbGxlZC4KKworICAgICAgICBUbyBhdm9pZCBwb3RlbnRpYWwgcHJvYmxlbXMgZHVlIHRv
IHRoZSBjb252ZXJzaW9ucyBiZXR3ZWVuICJmbG9hdCIgYW5kICJkb3VibGUiCisgICAgICAgIGJh
Y2sgYW5kIGZvcnRoLCB0aGlzIHBhdGNoIHVwZGF0ZXMgdGhlIHR5cGVzIG9mIGBwbGF5YmFja1Jh
dGVgIGFuZCBgZGVmYXVsdFBsYXliYWNrUmF0ZWAuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2Nv
YS9QbGF5YmFja1Nlc3Npb25Nb2RlbC5oOgorICAgICAgICAoV2ViQ29yZTo6UGxheWJhY2tTZXNz
aW9uTW9kZWxDbGllbnQ6OnJhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Q
bGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2Nv
Y29hL1BsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnVwZGF0ZUZvckV2ZW50TmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6c2V0
RGVmYXVsdFBsYXliYWNrUmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25N
b2RlbE1lZGlhRWxlbWVudDo6c2V0UGxheWJhY2tSYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBs
YXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpkZWZhdWx0UGxheWJhY2tSYXRlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Ojpw
bGF5YmFja1JhdGUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VBVktpdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZUFWS2l0OjpQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDo6cmF0ZUNoYW5nZWQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW06
CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6cmF0ZUNoYW5nZWQp
OgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OnNldERlZmF1bHRQ
bGF5YmFja1JhdGUpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6
OnNldFBsYXliYWNrUmF0ZSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29u
dGV4dDo6aXNTdGFsbGVkIGNvbnN0KToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJDb250ZXh0OjpkZWZhdWx0UGxheWJhY2tSYXRlIGNvbnN0KToKKyAgICAgICAgKFZpZGVvRnVs
bHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpwbGF5YmFja1JhdGUgY29uc3QpOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWM6OnJhdGVDaGFuZ2VkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmg6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6cmF0ZUNoYW5nZWQpOgorCiAy
MDIxLTA2LTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTGF6
aWx5IGNvbXB1dGUgU2VjdXJpdHlPcmlnaW46Om1faXNQb3RlbnRpYWxseVRydXN0d29ydGh5IGZv
ciBwZXJmb3JtYW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlMzNmZDlmZGIxODk1ODk5NjVmMWU3NjVhMmRjNmM0
ZDczYjVmMWUwLi4wZTJkY2Q5MDM5MGQ4MmY3OGQyYWRiOTg2YmZhNWQzYWQ3MGFhMGYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTA2LTE1ICBQZW5nIExpdSAgPHBlbmcubGl1NkBh
cHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRnVsbHNjcmVlbiB2aWRlbyBwbGF5YmFjayBnZXRz
IHN0dWNrIGFmdGVyIGludGVyYWN0aW5nIHdpdGggdGhlIHBsYXliYWNrIGNvbnRyb2xzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcwNDcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHdlIHNjcnVi
IGEgcGxheWluZyB2aWRlbywgdGhlIHZpZGVvIGVsZW1lbnQgbWF5IGVudGVyIGEgdGVtcG9yYXJp
bHkgc3RhbGxlZAorICAgICAgICBzdGF0ZSAtIHRoZSBwbGF5ZXIgaXMgc3RpbGwgcGxheWluZywg
YnV0IGl0IGRvZXMgbm90IGhhdmUgZW5vdWdoIGRhdGEuIEluIFdlYktpdCwKKyAgICAgICAgdGhl
IGByYXRlYCBvZiB0aGUgcGxheWVyIHdpbGwgYmUgMC4gQnV0IHdlIGNhbm5vdCBzZXQgdGhlIHJh
dGUgb2YgYFdlYkFWUGxheWVyQ29udHJvbGxlcmAKKyAgICAgICAgdG8gMCBpbiB0aGlzIGNhc2Us
IGJlY2F1c2UgQVZLaXQgd2lsbCBiZWxpZXZlIHRoZSB2aWRlbyBwbGF5YmFjayBpcyBwYXVzZWQg
d2hlbgorICAgICAgICBpdHMgcmF0ZSBpcyAwLiBJbiByMjYxNTg3LCB3ZSBkZWZpbmVkIGEgbWFn
aWMgcmF0ZSAoMC4wMDAwMDAwMWYpIGZvciB0aGlzIGNhc2UuCisKKyAgICAgICAgVW5mb3J0dW5h
dGVseSwgd2l0aCB0aGUgY2hhbmdlcyBpbiByMjc1OTU2LCBgV2ViQVZQbGF5ZXJDb250cm9sbGVy
YCB3aWxsCisgICAgICAgIGFsaWduIGl0cyBgZGVmYXVsdFBsYXliYWNrUmF0ZWAgd2l0aCBgcmF0
ZWAgd2hlbiBgcmF0ZWAgaXMgbm90IDAuIFVuZGVyIHN0cmVzcworICAgICAgICB0ZXN0cywgZS5n
Liwga2VlcCBzY3J1YmJpbmcgYSB2aWRlbywgYSB2aWRlbyBlbGVtZW50IHdpbGwgZXZlbnR1YWxs
eSBlbnRlciBhIHN0YXRlCisgICAgICAgIGluIHdoaWNoIGJvdGggYGRlZmF1bHRQbGF5YmFja1Jh
dGVgIGFuZCBgcmF0ZWAgYXJlIHRoZSBtYWdpYyByYXRlLiBBbmQgdGhlIHZpZGVvCisgICAgICAg
IGFwcGVhcnMgdG8gYmUgc3R1Y2sgZm9yIHVzZXJzLgorCisgICAgICAgIFRvIGZpeCB0aGUgaXNz
dWUsIHRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgbWFnaWMgcmF0ZSBhbmQgZGVmaW5lcyBhIG5ldyBz
dGF0ZTogYHN0YWxsZWRgLgorICAgICAgICBBIHZpZGVvIHdpbGwgYmUgaW4gdGhlIHN0YWxsZWQg
c3RhdGUgd2hlbiBpdCBpcyBwbGF5aW5nIGJ1dCBkb2VzIG5vdCBoYXZlIGVub3VnaCBkYXRhLgor
ICAgICAgICBXZWJLaXQgd2lsbCBvbmx5IGNoYW5nZSB0aGUgcmF0ZSBvZiBgV2ViQVZQbGF5ZXJD
b250cm9sbGVyYCB3aGVuIHRoZSB2aWRlbworICAgICAgICBpcyBub3Qgc3RhbGxlZC4KKworICAg
ICAgICBUbyBhdm9pZCBwb3RlbnRpYWwgcHJvYmxlbXMgZHVlIHRvIHRoZSBjb252ZXJzaW9ucyBi
ZXR3ZWVuICJmbG9hdCIgYW5kICJkb3VibGUiCisgICAgICAgIGJhY2sgYW5kIGZvcnRoLCB0aGlz
IHBhdGNoIHVwZGF0ZXMgdGhlIHR5cGVzIG9mIGBwbGF5YmFja1JhdGVgIGFuZCBgZGVmYXVsdFBs
YXliYWNrUmF0ZWAuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9u
TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lv
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUGxh
eWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpQbGF5YmFja1Nl
c3Npb25Nb2RlbENvbnRleHQ6OnNldERlZmF1bHRQbGF5YmFja1JhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6OnNldFBsYXliYWNrUmF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6cmF0ZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OnJhdGVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpzZXREZWZh
dWx0UGxheWJhY2tSYXRlKToKKyAgICAgICAgKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uTWFuYWdl
clByb3h5OjpzZXRQbGF5YmFja1JhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNj
cmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OlBsYXliYWNr
U2Vzc2lvbkludGVyZmFjZUNvbnRleHQ6OnJhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6
UGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6cmF0ZUNoYW5nZWQpOgorCiAyMDIxLTA2LTEyICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI3ODM3
NCk6IFtCaWcgU3VyXSBBU1NFUlRJT04gRkFJTEVEOiAhaXNJblJvdXRpbmdBcmJpdHJhdGlvbkZv
clRva2VuKHRva2VuKSBpbiBXZWJDb3JlOjpTaGFyZWRSb3V0aW5nQXJiaXRyYXRvcjo6YmVnaW5S
b3V0aW5nQXJiaXRyYXRpb25Gb3JUb2tlbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWwuaAppbmRleCA1MDcxNzFhNDE2NmNlNjAy
MzRjZDdkY2RmNGY5NjkxOGNmNGRjYTg1Li44OGQ3ZDA3ZGFiZmRmYWU0NTlhMzZlNjM5N2Q4N2Q4
ZGNjNGQ1ZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5
YmFja1Nlc3Npb25Nb2RlbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bs
YXliYWNrU2Vzc2lvbk1vZGVsLmgKQEAgLTU1LDggKzU1LDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBiZWdpblNjYW5uaW5nRm9yd2FyZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYmVn
aW5TY2FubmluZ0JhY2t3YXJkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBlbmRTY2FubmluZygp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmYXVsdFBsYXliYWNrUmF0ZShmbG9hdCkgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5YmFja1JhdGUoZmxvYXQpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0RGVmYXVsdFBsYXliYWNrUmF0ZShkb3VibGUpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0UGxheWJhY2tSYXRlKGRvdWJsZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZWxl
Y3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCB0b2dnbGVQaWN0dXJlSW5QaWN0dXJlKCkgPSAwOwpAQCAtNzMsOSArNzMsMTAgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgZG91YmxlIGJ1ZmZlcmVkVGltZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJv
b2wgaXNQbGF5aW5nKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc1N0YWxsZWQoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzU2NydWJiaW5nKCkgY29uc3QgPSAwOwotICAg
IHZpcnR1YWwgZmxvYXQgZGVmYXVsdFBsYXliYWNrUmF0ZSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0
dWFsIGZsb2F0IHBsYXliYWNrUmF0ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBk
ZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgZG91YmxlIHBsYXli
YWNrUmF0ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFJlZjxUaW1lUmFuZ2VzPiBzZWVrYWJs
ZVJhbmdlcygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGRvdWJsZSBzZWVrYWJsZVRpbWVSYW5n
ZXNMYXN0TW9kaWZpZWRUaW1lKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgZG91YmxlIGxpdmVV
cGRhdGVJbnRlcnZhbCgpIGNvbnN0ID0gMDsKQEAgLTEwMSw3ICsxMDIsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGN1cnJlbnRUaW1lQ2hhbmdlZChkb3VibGUgLyogY3VycmVudFRpbWUg
Ki8sIGRvdWJsZSAvKiBhbmNob3JUaW1lICovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYnVmZmVy
ZWRUaW1lQ2hhbmdlZChkb3VibGUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXJ0
ZWRUaW1lQ2hhbmdlZChkb3VibGUgLyogcGxheWJhY2tTdGFydGVkVGltZSAqLykgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIHJhdGVDaGFuZ2VkKGJvb2wgLyogaXNQbGF5aW5nICovLCBmbG9hdCAvKiBw
bGF5YmFja1JhdGUgKi8sIGZsb2F0IC8qIGRlZmF1bHRQbGF5YmFja1JhdGUgKi8pIHsgfQorICAg
IHZpcnR1YWwgdm9pZCByYXRlQ2hhbmdlZChib29sIC8qIGlzUGxheWluZyAqLywgYm9vbCAvKiBp
c1N0YWxsZWQgKi8sIGRvdWJsZSAvKiBwbGF5YmFja1JhdGUgKi8sIGRvdWJsZSAvKiBkZWZhdWx0
UGxheWJhY2tSYXRlICovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2Vla2FibGVSYW5nZXNDaGFu
Z2VkKGNvbnN0IFRpbWVSYW5nZXMmLCBkb3VibGUgLyogbGFzdE1vZGlmaWVkICovLCBkb3VibGUg
LyogbGl2ZUludGVydmFsICovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2FuUGxheUZhc3RSZXZl
cnNlQ2hhbmdlZChib29sKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXVkaW9NZWRpYVNlbGVjdGlv
bk9wdGlvbnNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxNZWRpYVNlbGVjdGlvbk9wdGlvbj4mIC8qIG9w
dGlvbnMgKi8sIHVpbnQ2NF90IC8qIHNlbGVjdGVkSW5kZXggKi8pIHsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1v
ZGVsTWVkaWFFbGVtZW50LmgKaW5kZXggMzljNmQ1ZGFjMTYzMmQ3ZmYzODkwN2EwOWNlZWNmNjAx
NzhmODI5My4uM2I2NzQ3ZmZlYTFkMzcxZjg1MDVmOTc0YjMxYWY5ZmI4YmE4MzNhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWxN
ZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFj
a1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5oCkBAIC02OCw4ICs2OCw4IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGJlZ2luU2Nhbm5pbmdGb3J3YXJkKCkgZmluYWw7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBiZWdpblNjYW5uaW5nQmFja3dhcmQoKSBmaW5hbDsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGVuZFNjYW5uaW5nKCkgZmluYWw7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXREZWZhdWx0UGxheWJhY2tSYXRlKGZsb2F0KSBmaW5hbDsKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldFBsYXliYWNrUmF0ZShmbG9hdCkgZmluYWw7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXREZWZhdWx0UGxheWJhY2tSYXRlKGRvdWJsZSkgZmluYWw7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRQbGF5YmFja1JhdGUoZG91YmxlKSBmaW5hbDsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpIGZp
bmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVp
bnQ2NF90IGluZGV4KSBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHRvZ2dsZVBpY3R1
cmVJblBpY3R1cmUoKSBmaW5hbDsKQEAgLTgzLDkgKzgzLDEwIEBAIHB1YmxpYzoKICAgICBkb3Vi
bGUgY3VycmVudFRpbWUoKSBjb25zdCBmaW5hbDsKICAgICBkb3VibGUgYnVmZmVyZWRUaW1lKCkg
Y29uc3QgZmluYWw7CiAgICAgYm9vbCBpc1BsYXlpbmcoKSBjb25zdCBmaW5hbDsKKyAgICBib29s
IGlzU3RhbGxlZCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNTY3J1YmJpbmcoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBmYWxzZTsgfQotICAgIGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUoKSBj
b25zdCBmaW5hbDsKLSAgICBmbG9hdCBwbGF5YmFja1JhdGUoKSBjb25zdCBmaW5hbDsKKyAgICBk
b3VibGUgZGVmYXVsdFBsYXliYWNrUmF0ZSgpIGNvbnN0IGZpbmFsOworICAgIGRvdWJsZSBwbGF5
YmFja1JhdGUoKSBjb25zdCBmaW5hbDsKICAgICBSZWY8VGltZVJhbmdlcz4gc2Vla2FibGVSYW5n
ZXMoKSBjb25zdCBmaW5hbDsKICAgICBkb3VibGUgc2Vla2FibGVUaW1lUmFuZ2VzTGFzdE1vZGlm
aWVkVGltZSgpIGNvbnN0IGZpbmFsOwogICAgIGRvdWJsZSBsaXZlVXBkYXRlSW50ZXJ2YWwoKSBj
b25zdCBmaW5hbDsKQEAgLTEwOSw3ICsxMTAsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJvZ3Jl
c3NFdmVudFRpbWVyRmlyZWQoKTsKICAgICBzdGF0aWMgY29uc3QgVmVjdG9yPFdURjo6QXRvbVN0
cmluZz4mIG9ic2VydmVkRXZlbnROYW1lcygpOwogICAgIGNvbnN0IFdURjo6QXRvbVN0cmluZyYg
ZXZlbnROYW1lQWxsKCk7Ci0gICAgYm9vbCBpc1N0YWxsZWQoKSBjb25zdDsKIAogICAgIFJlZlB0
cjxIVE1MTWVkaWFFbGVtZW50PiBtX21lZGlhRWxlbWVudDsKICAgICBib29sIG1faXNMaXN0ZW5p
bmcgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
UGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQppbmRleCBlMDU3
Zjk3ZDE0NDI5YjcyYjI5NTRhYmUxN2Y4Y2E1ODhkZjFhN2M1Li5kZWNhYjA3NTg4MDY5YzBlODEw
YzA2YzNkZWVlMjBhNzVhMTM2MGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5t
bQpAQCAtNDcsMTMgKzQ3LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBUaGlzIGlz
IHRoZSByYXRlIHdoaWNoIHdlIHJlcG9ydCB0byBvdXIgY2xpZW50cywgbmFtZWx5IEFWS2l0LCB3
aGVuIHBsYXliYWNrIGhhcyBzdGFsbGVkLgotLy8gVGhlIHZhbHVlIG11c3QgYmUgbm9uLXplcm8s
IHNvIGFzIHRvIGRpZmZlcmVudGlhdGUgInBsYXlpbmctYnV0LXN0YWxsZWQiIGZyb20gInBhdXNl
ZCIuIEJ1dAotLy8gdGhlIHZhbHVlIGFsc28gbXVzdCBiZSB2ZXJ5IHNtYWxsLCBzbyB0aGVyZSBp
cyBubyB2aXNpYmxlIG1vdmVtZW50IGluIHRoZSBzeXN0ZW0gcHJvdmlkZWQKLS8vIHRpbWVsaW5l
IHNsaWRlciB3aGVuIHN0YWxsZWQuIFRoZSB2YWx1ZSBiZWxvdyB3aWxsIGNhdXNlIHRoZSBzbGlk
ZXIgdG8gbW92ZSAxIHNlY29uZCBldmVyeQotLy8gMyB5ZWFycywgc28gbWVldHMgYm90aCBnb2Fs
cy4KLXN0YXRpYyBjb25zdCBmbG9hdCBTdGFsbGVkUGxheWJhY2tSYXRlID0gMC4wMDAwMDAwMWY7
Ci0KIFBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpQbGF5YmFja1Nlc3Npb25Nb2Rl
bE1lZGlhRWxlbWVudCgpCiAgICAgOiBFdmVudExpc3RlbmVyKEV2ZW50TGlzdGVuZXI6OkNQUEV2
ZW50TGlzdGVuZXJUeXBlKQogewpAQCAtMTYzLDEwICsxNTYsMTEgQEAgdm9pZCBQbGF5YmFja1Nl
c3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6dXBkYXRlRm9yRXZlbnROYW1lKGNvbnN0IFdURjo6QXRv
bVN0cmluZyYKICAgICAgICAgfHwgZXZlbnROYW1lID09IGV2ZW50TmFtZXMoKS53YWl0aW5nRXZl
bnQKICAgICAgICAgfHwgZXZlbnROYW1lID09IGV2ZW50TmFtZXMoKS5jYW5wbGF5RXZlbnQpIHsK
ICAgICAgICAgYm9vbCBpc1BsYXlpbmcgPSB0aGlzLT5pc1BsYXlpbmcoKTsKLSAgICAgICAgZmxv
YXQgcGxheWJhY2tSYXRlID0gaXNTdGFsbGVkKCkgPyBTdGFsbGVkUGxheWJhY2tSYXRlIDogdGhp
cy0+cGxheWJhY2tSYXRlKCk7Ci0gICAgICAgIGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUgPSB0
aGlzLT5kZWZhdWx0UGxheWJhY2tSYXRlKCk7CisgICAgICAgIGJvb2wgaXNTdGFsbGVkID0gdGhp
cy0+aXNTdGFsbGVkKCk7CisgICAgICAgIGRvdWJsZSBwbGF5YmFja1JhdGUgPSAgdGhpcy0+cGxh
eWJhY2tSYXRlKCk7CisgICAgICAgIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlID0gdGhpcy0+
ZGVmYXVsdFBsYXliYWNrUmF0ZSgpOwogICAgICAgICBmb3IgKGF1dG8gY2xpZW50IDogbV9jbGll
bnRzKQotICAgICAgICAgICAgY2xpZW50LT5yYXRlQ2hhbmdlZChpc1BsYXlpbmcsIHBsYXliYWNr
UmF0ZSwgZGVmYXVsdFBsYXliYWNrUmF0ZSk7CisgICAgICAgICAgICBjbGllbnQtPnJhdGVDaGFu
Z2VkKGlzUGxheWluZywgaXNTdGFsbGVkLCBwbGF5YmFja1JhdGUsIGRlZmF1bHRQbGF5YmFja1Jh
dGUpOwogICAgIH0KIAogICAgIGlmIChhbGwKQEAgLTMwMiwxMyArMjk2LDEzIEBAIHZvaWQgUGxh
eWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmVuZFNjYW5uaW5nKCkKICAgICAgICAgbV9t
ZWRpYUVsZW1lbnQtPmVuZFNjYW5uaW5nKCk7CiB9CiAKLXZvaWQgUGxheWJhY2tTZXNzaW9uTW9k
ZWxNZWRpYUVsZW1lbnQ6OnNldERlZmF1bHRQbGF5YmFja1JhdGUoZmxvYXQgZGVmYXVsdFBsYXli
YWNrUmF0ZSkKK3ZvaWQgUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnNldERlZmF1
bHRQbGF5YmFja1JhdGUoZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUpCiB7CiAgICAgaWYgKG1f
bWVkaWFFbGVtZW50KQogICAgICAgICBtX21lZGlhRWxlbWVudC0+c2V0RGVmYXVsdFBsYXliYWNr
UmF0ZShkZWZhdWx0UGxheWJhY2tSYXRlKTsKIH0KIAotdm9pZCBQbGF5YmFja1Nlc3Npb25Nb2Rl
bE1lZGlhRWxlbWVudDo6c2V0UGxheWJhY2tSYXRlKGZsb2F0IHBsYXliYWNrUmF0ZSkKK3ZvaWQg
UGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnNldFBsYXliYWNrUmF0ZShkb3VibGUg
cGxheWJhY2tSYXRlKQogewogICAgIGlmIChtX21lZGlhRWxlbWVudCkKICAgICAgICAgbV9tZWRp
YUVsZW1lbnQtPnNldFBsYXliYWNrUmF0ZShwbGF5YmFja1JhdGUpOwpAQCAtNDgxLDEyICs0NzUs
MTIgQEAgYm9vbCBQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6aXNTdGFsbGVkKCkg
Y29uc3QKICAgICByZXR1cm4gbV9tZWRpYUVsZW1lbnQgJiYgbV9tZWRpYUVsZW1lbnQtPnJlYWR5
U3RhdGUoKSA8PSBIVE1MTWVkaWFFbGVtZW50OjpIQVZFX0NVUlJFTlRfREFUQTsKIH0KIAotZmxv
YXQgUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmRlZmF1bHRQbGF5YmFja1JhdGUo
KSBjb25zdAorZG91YmxlIFBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpkZWZhdWx0
UGxheWJhY2tSYXRlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9tZWRpYUVsZW1lbnQgPyBtX21l
ZGlhRWxlbWVudC0+ZGVmYXVsdFBsYXliYWNrUmF0ZSgpIDogMDsKIH0KIAotZmxvYXQgUGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrUmF0ZSgpIGNvbnN0Citkb3VibGUg
UGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrUmF0ZSgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fbWVkaWFFbGVtZW50ID8gbV9tZWRpYUVsZW1lbnQtPnBsYXliYWNrUmF0
ZSgpIDogMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5
YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmgKaW5kZXggNDcyMTM5NjE1YWY1MTQ5NjA1
ZTAxNDcyM2M1MTA1YmI0YTdiYjA4ZC4uMmYwN2ExOTQ2MTFmNGUxODhiNDJiNWIyYjAzNWRmOTA3
ZTk3MjMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNr
U2Vzc2lvbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZHVyYXRpb25DaGFuZ2VkKGRvdWJsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBj
dXJyZW50VGltZUNoYW5nZWQoZG91YmxlIGN1cnJlbnRUaW1lLCBkb3VibGUgYW5jaG9yVGltZSkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBidWZmZXJlZFRpbWVDaGFuZ2VkKGRvdWJsZSkgb3ZlcnJpZGU7
Ci0gICAgdm9pZCByYXRlQ2hhbmdlZChib29sIGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRl
LCBmbG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKSBvdmVycmlkZTsKKyAgICB2b2lkIHJhdGVDaGFu
Z2VkKGJvb2wgaXNQbGF5aW5nLCBib29sIGlzU3RhbGxlZCwgZG91YmxlIHBsYXliYWNrUmF0ZSwg
ZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUpIG92ZXJyaWRlOwogICAgIHZvaWQgc2Vla2FibGVS
YW5nZXNDaGFuZ2VkKGNvbnN0IFRpbWVSYW5nZXMmLCBkb3VibGUgbGFzdE1vZGlmaWVkVGltZSwg
ZG91YmxlIGxpdmVVcGRhdGVJbnRlcnZhbCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjYW5QbGF5RmFz
dFJldmVyc2VDaGFuZ2VkKGJvb2wpIG92ZXJyaWRlOwogICAgIHZvaWQgYXVkaW9NZWRpYVNlbGVj
dGlvbk9wdGlvbnNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxNZWRpYVNlbGVjdGlvbk9wdGlvbj4mIG9w
dGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFW
S2l0Lm1tCmluZGV4IGIyNjg1MzkxYzVmNmMyNGM3YWVlMWMxNGNlMGVmYzEyMjFkM2NmZTguLmJh
Mjc3NzI5MDMwNWQyMDc1MjAyNjg1YWNmZWI5MjAxM2IxZTA4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
QVZLaXQubW0KQEAgLTYxLDcgKzYxLDcgQEAgUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6
OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0KFBsYXliYWNrU2Vzc2lvbk1vZGUKICAgICBk
dXJhdGlvbkNoYW5nZWQobW9kZWwuZHVyYXRpb24oKSk7CiAgICAgY3VycmVudFRpbWVDaGFuZ2Vk
KG1vZGVsLmN1cnJlbnRUaW1lKCksIFtbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10gc3lzdGVt
VXB0aW1lXSk7CiAgICAgYnVmZmVyZWRUaW1lQ2hhbmdlZChtb2RlbC5idWZmZXJlZFRpbWUoKSk7
Ci0gICAgcmF0ZUNoYW5nZWQobW9kZWwuaXNQbGF5aW5nKCksIG1vZGVsLnBsYXliYWNrUmF0ZSgp
LCBtb2RlbC5kZWZhdWx0UGxheWJhY2tSYXRlKCkpOworICAgIHJhdGVDaGFuZ2VkKG1vZGVsLmlz
UGxheWluZygpLCBtb2RlbC5pc1N0YWxsZWQoKSwgbW9kZWwucGxheWJhY2tSYXRlKCksIG1vZGVs
LmRlZmF1bHRQbGF5YmFja1JhdGUoKSk7CiAgICAgc2Vla2FibGVSYW5nZXNDaGFuZ2VkKG1vZGVs
LnNlZWthYmxlUmFuZ2VzKCksIG1vZGVsLnNlZWthYmxlVGltZVJhbmdlc0xhc3RNb2RpZmllZFRp
bWUoKSwgbW9kZWwubGl2ZVVwZGF0ZUludGVydmFsKCkpOwogICAgIGNhblBsYXlGYXN0UmV2ZXJz
ZUNoYW5nZWQobW9kZWwuY2FuUGxheUZhc3RSZXZlcnNlKCkpOwogICAgIGF1ZGlvTWVkaWFTZWxl
Y3Rpb25PcHRpb25zQ2hhbmdlZChtb2RlbC5hdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucygpLCBt
b2RlbC5hdWRpb01lZGlhU2VsZWN0ZWRJbmRleCgpKTsKQEAgLTEyNCwxMCArMTI0LDExIEBAIHZv
aWQgUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OmJ1ZmZlcmVkVGltZUNoYW5nZWQoZG91
YmxlIGJ1ZmZlcmVkVGltZSkKICAgICBwbGF5ZXJDb250cm9sbGVyLmxvYWRlZFRpbWVSYW5nZXMg
PSBAW0AwLCBAKG5vcm1hbGl6ZWRCdWZmZXJlZFRpbWUpXTsKIH0KIAotdm9pZCBQbGF5YmFja1Nl
c3Npb25JbnRlcmZhY2VBVktpdDo6cmF0ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBs
YXliYWNrUmF0ZSwgZmxvYXQgZGVmYXVsdFBsYXliYWNrUmF0ZSkKK3ZvaWQgUGxheWJhY2tTZXNz
aW9uSW50ZXJmYWNlQVZLaXQ6OnJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBib29sIGlzU3Rh
bGxlZCwgZG91YmxlIHBsYXliYWNrUmF0ZSwgZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUpCiB7
CiAgICAgW21fcGxheWVyQ29udHJvbGxlciBzZXREZWZhdWx0UGxheWJhY2tSYXRlOmRlZmF1bHRQ
bGF5YmFja1JhdGVdOwotICAgIFttX3BsYXllckNvbnRyb2xsZXIgc2V0UmF0ZTppc1BsYXlpbmcg
PyBwbGF5YmFja1JhdGUgOiAwLl07CisgICAgaWYgKCFpc1N0YWxsZWQpCisgICAgICAgIFttX3Bs
YXllckNvbnRyb2xsZXIgc2V0UmF0ZTppc1BsYXlpbmcgPyBwbGF5YmFja1JhdGUgOiAwLl07CiB9
CiAKIHZvaWQgUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OnNlZWthYmxlUmFuZ2VzQ2hh
bmdlZChjb25zdCBUaW1lUmFuZ2VzJiB0aW1lUmFuZ2VzLCBkb3VibGUgbGFzdE1vZGlmaWVkVGlt
ZSwgZG91YmxlIGxpdmVVcGRhdGVJbnRlcnZhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0
Lm1tCmluZGV4IDk5MDNjNGUzYTU5NTY4Zjc1NjkwZjVkNmM0Zjg4ZDgzNDYxN2VhMzIuLjA3OGM2
MzM3YjExYjllZjBkN2VmYmI0Yjk1NGJmNjgyZmRhMDIxMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXJBVktpdC5tbQpAQCAtMTQ5LDggKzE0OSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBiZWdp
blNjYW5uaW5nRm9yd2FyZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgYmVnaW5TY2FubmluZ0JhY2t3
YXJkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBlbmRTY2FubmluZygpIG92ZXJyaWRlOwotICAgIHZv
aWQgc2V0RGVmYXVsdFBsYXliYWNrUmF0ZShmbG9hdCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRQ
bGF5YmFja1JhdGUoZmxvYXQpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0RGVmYXVsdFBsYXliYWNr
UmF0ZShkb3VibGUpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0UGxheWJhY2tSYXRlKGRvdWJsZSkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90KSBvdmVy
cmlkZTsKICAgICB2b2lkIHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCkgb3ZlcnJp
ZGU7CiAgICAgZG91YmxlIGR1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0xNTgsOSArMTU4
LDEwIEBAIHByaXZhdGU6CiAgICAgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgZG91YmxlIGJ1ZmZlcmVkVGltZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNQ
bGF5aW5nKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1N0YWxsZWQoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBib29sIGlzU2NydWJiaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFs
c2U7IH0KLSAgICBmbG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgZmxvYXQgcGxheWJhY2tSYXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgZG91YmxlIGRlZmF1
bHRQbGF5YmFja1JhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBkb3VibGUgcGxheWJhY2tSYXRl
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgUmVmPFRpbWVSYW5nZXM+IHNlZWthYmxlUmFuZ2VzKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgZG91YmxlIHNlZWthYmxlVGltZVJhbmdlc0xhc3RNb2RpZmll
ZFRpbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBkb3VibGUgbGl2ZVVwZGF0ZUludGVydmFsKCkg
Y29uc3Qgb3ZlcnJpZGU7CkBAIC0xODMsNyArMTg0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGR1
cmF0aW9uQ2hhbmdlZChkb3VibGUpIG92ZXJyaWRlOwogICAgIHZvaWQgY3VycmVudFRpbWVDaGFu
Z2VkKGRvdWJsZSBjdXJyZW50VGltZSwgZG91YmxlIGFuY2hvclRpbWUpIG92ZXJyaWRlOwogICAg
IHZvaWQgYnVmZmVyZWRUaW1lQ2hhbmdlZChkb3VibGUpIG92ZXJyaWRlOwotICAgIHZvaWQgcmF0
ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSwgZmxvYXQgZGVmYXVs
dFBsYXliYWNrUmF0ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCByYXRlQ2hhbmdlZChib29sIGlzUGxh
eWluZywgYm9vbCBpc1N0YWxsZWQsIGRvdWJsZSBwbGF5YmFja1JhdGUsIGRvdWJsZSBkZWZhdWx0
UGxheWJhY2tSYXRlKSBvdmVycmlkZTsKICAgICB2b2lkIHNlZWthYmxlUmFuZ2VzQ2hhbmdlZChj
b25zdCBUaW1lUmFuZ2VzJiwgZG91YmxlIGxhc3RNb2RpZmllZFRpbWUsIGRvdWJsZSBsaXZlVXBk
YXRlSW50ZXJ2YWwpIG92ZXJyaWRlOwogICAgIHZvaWQgY2FuUGxheUZhc3RSZXZlcnNlQ2hhbmdl
ZChib29sKSBvdmVycmlkZTsKICAgICB2b2lkIGF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zQ2hh
bmdlZChjb25zdCBWZWN0b3I8TWVkaWFTZWxlY3Rpb25PcHRpb24+JiBvcHRpb25zLCB1aW50NjRf
dCBzZWxlY3RlZEluZGV4KSBvdmVycmlkZTsKQEAgLTQxNiwxNyArNDE3LDE3IEBAIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmJ1ZmZlcmVkVGltZUNoYW5nZWQoZG91Ymxl
IGJ1ZmZlcmVkVGltZSkKICAgICAgICAgY2xpZW50LT5idWZmZXJlZFRpbWVDaGFuZ2VkKGJ1ZmZl
cmVkVGltZSk7CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OnJh
dGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUsIGZsb2F0IGRlZmF1
bHRQbGF5YmFja1JhdGUpCit2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0Ojpy
YXRlQ2hhbmdlZChib29sIGlzUGxheWluZywgYm9vbCBpc1N0YWxsZWQsIGRvdWJsZSBwbGF5YmFj
a1JhdGUsIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKQogewogICAgIGlmIChXZWJUaHJlYWRJ
c0N1cnJlbnQoKSkgewotICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCBpc1BsYXlpbmcsIHBsYXliYWNrUmF0ZSwgZGVmYXVs
dFBsYXliYWNrUmF0ZV0gewotICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+cmF0ZUNoYW5nZWQo
aXNQbGF5aW5nLCBwbGF5YmFja1JhdGUsIGRlZmF1bHRQbGF5YmFja1JhdGUpOworICAgICAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMp
LCBpc1BsYXlpbmcsIGlzU3RhbGxlZCwgcGxheWJhY2tSYXRlLCBkZWZhdWx0UGxheWJhY2tSYXRl
XSB7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5yYXRlQ2hhbmdlZChpc1BsYXlpbmcsIGlz
U3RhbGxlZCwgcGxheWJhY2tSYXRlLCBkZWZhdWx0UGxheWJhY2tSYXRlKTsKICAgICAgICAgfSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1fcGxh
eWJhY2tDbGllbnRzKQotICAgICAgICBjbGllbnQtPnJhdGVDaGFuZ2VkKGlzUGxheWluZywgcGxh
eWJhY2tSYXRlLCBkZWZhdWx0UGxheWJhY2tSYXRlKTsKKyAgICAgICAgY2xpZW50LT5yYXRlQ2hh
bmdlZChpc1BsYXlpbmcsIGlzU3RhbGxlZCwgcGxheWJhY2tSYXRlLCBkZWZhdWx0UGxheWJhY2tS
YXRlKTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6aGFzVmlk
ZW9DaGFuZ2VkKGJvb2wgaGFzVmlkZW8pCkBAIC04NDEsNyArODQyLDcgQEAgdm9pZCBWaWRlb0Z1
bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZW5kU2Nhbm5pbmcoKQogICAgIH0pOwogfQogCi12
b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpzZXREZWZhdWx0UGxheWJhY2tS
YXRlKGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUpCit2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXJDb250ZXh0OjpzZXREZWZhdWx0UGxheWJhY2tSYXRlKGRvdWJsZSBkZWZhdWx0UGxheWJh
Y2tSYXRlKQogewogICAgIEFTU0VSVChpc1VJVGhyZWFkKCkpOwogICAgIFdlYlRocmVhZFJ1bihb
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIGRlZmF1bHRQbGF5YmFja1Jh
dGVdIHsKQEAgLTg1MCw3ICs4NTEsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJD
b250ZXh0OjpzZXREZWZhdWx0UGxheWJhY2tSYXRlKGZsb2F0IGRlZmF1bHRQbGF5YgogICAgIH0p
OwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpzZXRQbGF5YmFj
a1JhdGUoZmxvYXQgcGxheWJhY2tSYXRlKQordm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
Q29udGV4dDo6c2V0UGxheWJhY2tSYXRlKGRvdWJsZSBwbGF5YmFja1JhdGUpCiB7CiAgICAgQVNT
RVJUKGlzVUlUaHJlYWQoKSk7CiAgICAgV2ViVGhyZWFkUnVuKFtwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZlB0cih0aGlzKSwgdGhpcywgcGxheWJhY2tSYXRlXSB7CkBAIC05MDEsMTMgKzkwMiwxOSBA
QCBib29sIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0Ojppc1BsYXlpbmcoKSBjb25z
dAogICAgIHJldHVybiBtX3BsYXliYWNrTW9kZWwgPyBtX3BsYXliYWNrTW9kZWwtPmlzUGxheWlu
ZygpIDogZmFsc2U7CiB9CiAKLWZsb2F0IFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0
OjpkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3QKK2Jvb2wgVmlkZW9GdWxsc2NyZWVuQ29udHJv
bGxlckNvbnRleHQ6OmlzU3RhbGxlZCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVUlUaHJlYWQo
KSk7CisgICAgcmV0dXJuIG1fcGxheWJhY2tNb2RlbCA/IG1fcGxheWJhY2tNb2RlbC0+aXNTdGFs
bGVkKCkgOiBmYWxzZTsKK30KKworZG91YmxlIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250
ZXh0OjpkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNVSVRocmVh
ZCgpKTsKICAgICByZXR1cm4gbV9wbGF5YmFja01vZGVsID8gbV9wbGF5YmFja01vZGVsLT5kZWZh
dWx0UGxheWJhY2tSYXRlKCkgOiAwOwogfQogCi1mbG9hdCBWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyQ29udGV4dDo6cGxheWJhY2tSYXRlKCkgY29uc3QKK2RvdWJsZSBWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyQ29udGV4dDo6cGxheWJhY2tSYXRlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNV
SVRocmVhZCgpKTsKICAgICByZXR1cm4gbV9wbGF5YmFja01vZGVsID8gbV9wbGF5YmFja01vZGVs
LT5wbGF5YmFja1JhdGUoKSA6IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5tbQppbmRleCBiMTJiOTFjZjI1
YThlMjBiYWMxMWZjMjgxODJhODU4ZmRhZTBkY2YxLi4yOThhZjRkMzNmZWIwMTU5NWU2YzdjY2Y4
NDA3NzcwNTI5MTU1MTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0KQEAgLTkyLDcgKzkyLDcgQEAg
dm9pZCBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWM6OmN1cnJlbnRUaW1lQ2hhbmdlZChkb3Vi
bGUgY3VycmVudFRpbWUsIGRvdWJsZQogI2VuZGlmCiB9CiAKLXZvaWQgUGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlTWFjOjpyYXRlQ2hhbmdlZChib29sIGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tS
YXRlLCBmbG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKQordm9pZCBQbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2VNYWM6OnJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBkb3VibGUgcGxheWJhY2tSYXRl
LCBkb3VibGUgZGVmYXVsdFBsYXliYWNrUmF0ZSkKIHsKICNpZiBFTkFCTEUoV0VCX1BMQVlCQUNL
X0NPTlRST0xTX01BTkFHRVIpCiAgICAgV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIqIGNvbnRy
b2xzTWFuYWdlciA9IHBsYXlCYWNrQ29udHJvbHNNYW5hZ2VyKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmgK
aW5kZXggN2U5YzE5ZmNjMTgxYmRlNDA3OWNjMzA2NWVhNDU5ZjMzODE3MGQ5ZS4uZWFlYWY1NmYy
NjBhNGNhMzUzYjFmYTE0OWEyZGI4NzAwYTY2MjkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaApAQCAt
NjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0Z1
bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcihWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlciopOwog
CiAgICAgLy8gUGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQKLSAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUsIGZsb2F0
IGRlZmF1bHRQbGF5YmFja1JhdGUpIG92ZXJyaWRlOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cmF0ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcsIGRvdWJsZSBwbGF5YmFja1JhdGUsIGRvdWJsZSBk
ZWZhdWx0UGxheWJhY2tSYXRlKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV4
dGVybmFsUGxheWJhY2tDaGFuZ2VkKGJvb2wgIGVuYWJsZWQsIFBsYXliYWNrU2Vzc2lvbk1vZGVs
OjpFeHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwgY29uc3QgU3RyaW5nJiBsb2NhbGl6ZWREZXZp
Y2VOYW1lKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuc3VyZUNvbnRyb2xz
TWFuYWdlcigpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQppbmRleCBmYTZiZDRkNWUw
NDkwNzJiNDQ0NzFkYTJhMDQ0MDFhMGExNDA1ODM2Li4wYmQ0NDNlMTY4OWZjNjE5YTk5ZTBjNTFj
YmZmODE5YWVjYmM2OWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KQEAgLTQyOCw3ICs0MjgsNyBA
QCB2b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6Y2xlYXJNb2RlKEhUTUxNZWRpYUVs
ZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVs
LT5mdWxsc2NyZWVuTW9kZUNoYW5nZWQobV9tb2RlKTsKIH0KIAotdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWM6OnJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFj
a1JhdGUsIGZsb2F0IC8qIGRlZmF1bHRQbGF5YmFja1JhdGUgKi8pCit2b2lkIFZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZU1hYzo6cmF0ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcsIGRvdWJsZSBwbGF5
YmFja1JhdGUsIGRvdWJsZSAvKiBkZWZhdWx0UGxheWJhY2tSYXRlICovKQogewogICAgIFt2aWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VPYmpDKCkgdXBkYXRlSXNQbGF5aW5nOmlzUGxheWluZyBuZXdQ
bGF5YmFja1JhdGU6cGxheWJhY2tSYXRlXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5LmgKaW5kZXgg
MjAyYmFlMTMxM2YwYmI2MDE5MWJiMTgzMDg4Y2JhMDA4ZTZlYTJiNy4uNWZmZmVlNmQ5NWFjYTk1
N2EyZTkxMDJjNGNmM2MwZTA0NzhiNDYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5LmgKQEAgLTc1
LDcgKzc1LDcgQEAgcHVibGljOgogICAgIHZvaWQgY3VycmVudFRpbWVDaGFuZ2VkKGRvdWJsZSk7
CiAgICAgdm9pZCBidWZmZXJlZFRpbWVDaGFuZ2VkKGRvdWJsZSk7CiAgICAgdm9pZCBwbGF5YmFj
a1N0YXJ0ZWRUaW1lQ2hhbmdlZChkb3VibGUpOwotICAgIHZvaWQgcmF0ZUNoYW5nZWQoYm9vbCBp
c1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSwgZmxvYXQgZGVmYXVsdFBsYXliYWNrUmF0ZSk7
CisgICAgdm9pZCByYXRlQ2hhbmdlZChib29sIGlzUGxheWluZywgYm9vbCBpc1N0YWxsZWQsIGRv
dWJsZSBwbGF5YmFja1JhdGUsIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKTsKICAgICB2b2lk
IHNlZWthYmxlUmFuZ2VzQ2hhbmdlZChXZWJDb3JlOjpUaW1lUmFuZ2VzJiwgZG91YmxlIGxhc3RN
b2RpZmllZFRpbWUsIGRvdWJsZSBsaXZlVXBkYXRlSW50ZXJ2YWwpOwogICAgIHZvaWQgY2FuUGxh
eUZhc3RSZXZlcnNlQ2hhbmdlZChib29sKTsKICAgICB2b2lkIGF1ZGlvTWVkaWFTZWxlY3Rpb25P
cHRpb25zQ2hhbmdlZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25PcHRpb24+
JiBvcHRpb25zLCB1aW50NjRfdCBpbmRleCk7CkBAIC0xMTEsOCArMTExLDggQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGJlZ2luU2Nhbm5pbmdGb3J3YXJkKCkgZmluYWw7CiAgICAgdm9pZCBiZWdpblNj
YW5uaW5nQmFja3dhcmQoKSBmaW5hbDsKICAgICB2b2lkIGVuZFNjYW5uaW5nKCkgZmluYWw7Ci0g
ICAgdm9pZCBzZXREZWZhdWx0UGxheWJhY2tSYXRlKGZsb2F0KSBmaW5hbDsKLSAgICB2b2lkIHNl
dFBsYXliYWNrUmF0ZShmbG9hdCkgZmluYWw7CisgICAgdm9pZCBzZXREZWZhdWx0UGxheWJhY2tS
YXRlKGRvdWJsZSkgZmluYWw7CisgICAgdm9pZCBzZXRQbGF5YmFja1JhdGUoZG91YmxlKSBmaW5h
bDsKICAgICB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QpIGZpbmFsOwogICAg
IHZvaWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90KSBmaW5hbDsKICAgICB2b2lk
IHRvZ2dsZVBpY3R1cmVJblBpY3R1cmUoKSBmaW5hbDsKQEAgLTEyNyw5ICsxMjcsMTAgQEAgcHJp
dmF0ZToKICAgICBkb3VibGUgY3VycmVudFRpbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2N1
cnJlbnRUaW1lOyB9CiAgICAgZG91YmxlIGJ1ZmZlcmVkVGltZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fYnVmZmVyZWRUaW1lOyB9CiAgICAgYm9vbCBpc1BsYXlpbmcoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2lzUGxheWluZzsgfQorICAgIGJvb2wgaXNTdGFsbGVkKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9pc1N0YWxsZWQ7IH0KICAgICBib29sIGlzU2NydWJiaW5nKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9pc1NjcnViYmluZzsgfQotICAgIGZsb2F0IGRlZmF1bHRQbGF5YmFja1Jh
dGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2RlZmF1bHRQbGF5YmFja1JhdGU7IH0KLSAgICBm
bG9hdCBwbGF5YmFja1JhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3BsYXliYWNrUmF0ZTsg
fQorICAgIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9kZWZhdWx0UGxheWJhY2tSYXRlOyB9CisgICAgZG91YmxlIHBsYXliYWNrUmF0ZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fcGxheWJhY2tSYXRlOyB9CiAgICAgUmVmPFdlYkNvcmU6OlRpbWVS
YW5nZXM+IHNlZWthYmxlUmFuZ2VzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZWVrYWJsZVJh
bmdlcy5jb3B5UmVmKCk7IH0KICAgICBkb3VibGUgc2Vla2FibGVUaW1lUmFuZ2VzTGFzdE1vZGlm
aWVkVGltZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vla2FibGVUaW1lUmFuZ2VzTGFzdE1v
ZGlmaWVkVGltZTsgfQogICAgIGRvdWJsZSBsaXZlVXBkYXRlSW50ZXJ2YWwoKSBjb25zdCB7IHJl
dHVybiBtX2xpdmVVcGRhdGVJbnRlcnZhbDsgfQpAQCAtMTU1LDkgKzE1NiwxMCBAQCBwcml2YXRl
OgogICAgIGRvdWJsZSBtX2N1cnJlbnRUaW1lIHsgMCB9OwogICAgIGRvdWJsZSBtX2J1ZmZlcmVk
VGltZSB7IDAgfTsKICAgICBib29sIG1faXNQbGF5aW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1f
aXNTdGFsbGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNTY3J1YmJpbmcgeyBmYWxzZSB9Owot
ICAgIGZsb2F0IG1fZGVmYXVsdFBsYXliYWNrUmF0ZSB7IDAgfTsKLSAgICBmbG9hdCBtX3BsYXli
YWNrUmF0ZSB7IDAgfTsKKyAgICBkb3VibGUgbV9kZWZhdWx0UGxheWJhY2tSYXRlIHsgMCB9Owor
ICAgIGRvdWJsZSBtX3BsYXliYWNrUmF0ZSB7IDAgfTsKICAgICBSZWY8V2ViQ29yZTo6VGltZVJh
bmdlcz4gbV9zZWVrYWJsZVJhbmdlcyB7IFdlYkNvcmU6OlRpbWVSYW5nZXM6OmNyZWF0ZSgpIH07
CiAgICAgZG91YmxlIG1fc2Vla2FibGVUaW1lUmFuZ2VzTGFzdE1vZGlmaWVkVGltZSB7IDAgfTsK
ICAgICBkb3VibGUgbV9saXZlVXBkYXRlSW50ZXJ2YWwgeyAwIH07CkBAIC0yMjEsNyArMjIzLDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkQ2hhbmdl
ZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCBkdXJh
dGlvbkNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIGRvdWJsZSBkdXJh
dGlvbik7CiAgICAgdm9pZCBwbGF5YmFja1N0YXJ0ZWRUaW1lQ2hhbmdlZChQbGF5YmFja1Nlc3Np
b25Db250ZXh0SWRlbnRpZmllciwgZG91YmxlIHBsYXliYWNrU3RhcnRlZFRpbWUpOwotICAgIHZv
aWQgcmF0ZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIGJvb2wgaXNQ
bGF5aW5nLCBkb3VibGUgcmF0ZSwgZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUpOworICAgIHZv
aWQgcmF0ZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIGJvb2wgaXNQ
bGF5aW5nLCBib29sIGlzU3RhbGxlZCwgZG91YmxlIHJhdGUsIGRvdWJsZSBkZWZhdWx0UGxheWJh
Y2tSYXRlKTsKICAgICB2b2lkIGhhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURSZXNwb25zZShQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgU3RyaW5nKSBjb25zdDsKICAgICB2b2lkIG11
dGVkQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgYm9vbCBtdXRlZCk7
CiAgICAgdm9pZCB2b2x1bWVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVy
LCBkb3VibGUgdm9sdW1lKTsKQEAgLTIzOCw4ICsyNDAsOCBAQCBwcml2YXRlOgogICAgIHZvaWQg
YmVnaW5TY2FubmluZ0ZvcndhcmQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIpOwog
ICAgIHZvaWQgYmVnaW5TY2FubmluZ0JhY2t3YXJkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGVuZFNjYW5uaW5nKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVu
dGlmaWVyKTsKLSAgICB2b2lkIHNldERlZmF1bHRQbGF5YmFja1JhdGUoUGxheWJhY2tTZXNzaW9u
Q29udGV4dElkZW50aWZpZXIsIGZsb2F0KTsKLSAgICB2b2lkIHNldFBsYXliYWNrUmF0ZShQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgZmxvYXQpOworICAgIHZvaWQgc2V0RGVmYXVs
dFBsYXliYWNrUmF0ZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgZG91YmxlKTsK
KyAgICB2b2lkIHNldFBsYXliYWNrUmF0ZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmll
ciwgZG91YmxlKTsKICAgICB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24oUGxheWJhY2tTZXNz
aW9uQ29udGV4dElkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4KTsKICAgICB2b2lkIHNlbGVjdExl
Z2libGVNZWRpYU9wdGlvbihQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgdWludDY0
X3QgaW5kZXgpOwogICAgIHZvaWQgdG9nZ2xlUGljdHVyZUluUGljdHVyZShQbGF5YmFja1Nlc3Np
b25Db250ZXh0SWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggZDMzOTQ5OGQ4NTQxZmVlNWE1ODEzMzg0NGEzZTc3MDcxNWFjYTA0Ny4uMzIw
NWQ1YTFmZTNmOTVmMWVkMzAxOTNmOTIyY2ExYTUzZTNlNTcwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lv
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzQsNyArMzQsNyBAQCBtZXNzYWdlcyAtPiBQ
bGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkgewogICAgIFdpcmVsZXNzVmlkZW9QbGF5YmFja0Rp
c2FibGVkQ2hhbmdlZChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNv
bnRleHRJZCwgYm9vbCBkaXNhYmxlZCkKICAgICBEdXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGRvdWJsZSBkdXJhdGlvbikK
ICAgICBQbGF5YmFja1N0YXJ0ZWRUaW1lQ2hhbmdlZChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNv
bnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgZG91YmxlIHBsYXliYWNrU3RhcnRlZFRpbWUpCi0g
ICAgUmF0ZUNoYW5nZWQoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBj
b250ZXh0SWQsIGJvb2wgaXNQbGF5aW5nLCBkb3VibGUgcmF0ZSwgZG91YmxlIGRlZmF1bHRQbGF5
YmFja1JhdGUpCisgICAgUmF0ZUNoYW5nZWQoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0
SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgaXNQbGF5aW5nLCBib29sIGlzU3RhbGxlZCwgZG91
YmxlIHJhdGUsIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKQogICAgIE11dGVkQ2hhbmdlZChX
ZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgYm9vbCBt
dXRlZCk7CiAgICAgVm9sdW1lQ2hhbmdlZChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJ
ZGVudGlmaWVyIGNvbnRleHRJZCwgZG91YmxlIHZvbHVtZSk7CiAgICAgUGljdHVyZUluUGljdHVy
ZVN1cHBvcnRlZENoYW5nZWQoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmll
ciBjb250ZXh0SWQsIGJvb2wgcGljdHVyZUluUGljdHVyZVN1cHBvcnRlZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94
eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFn
ZXJQcm94eS5tbQppbmRleCBmZDFkNDgxZmY3ZDc2OWI4MzE5ODA2Y2E1MWJlMTgxZDY0ZWZmZmEx
Li40MTMwNjg1ZWViYTU0ZGU5ZWE2MDdkZTI5OTJkMmRjOTA2MTQ0MWZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHku
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFu
YWdlclByb3h5Lm1tCkBAIC0xMjEsMTMgKzEyMSwxMyBAQCB2b2lkIFBsYXliYWNrU2Vzc2lvbk1v
ZGVsQ29udGV4dDo6ZW5kU2Nhbm5pbmcoKQogICAgICAgICBtX21hbmFnZXItPmVuZFNjYW5uaW5n
KG1fY29udGV4dElkKTsKIH0KIAotdm9pZCBQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6OnNl
dERlZmF1bHRQbGF5YmFja1JhdGUoZmxvYXQgZGVmYXVsdFBsYXliYWNrUmF0ZSkKK3ZvaWQgUGxh
eWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OjpzZXREZWZhdWx0UGxheWJhY2tSYXRlKGRvdWJsZSBk
ZWZhdWx0UGxheWJhY2tSYXRlKQogewogICAgIGlmIChtX21hbmFnZXIpCiAgICAgICAgIG1fbWFu
YWdlci0+c2V0RGVmYXVsdFBsYXliYWNrUmF0ZShtX2NvbnRleHRJZCwgZGVmYXVsdFBsYXliYWNr
UmF0ZSk7CiB9CiAKLXZvaWQgUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OjpzZXRQbGF5YmFj
a1JhdGUoZmxvYXQgcGxheWJhY2tSYXRlKQordm9pZCBQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRl
eHQ6OnNldFBsYXliYWNrUmF0ZShkb3VibGUgcGxheWJhY2tSYXRlKQogewogICAgIGlmIChtX21h
bmFnZXIpCiAgICAgICAgIG1fbWFuYWdlci0+c2V0UGxheWJhY2tSYXRlKG1fY29udGV4dElkLCBw
bGF5YmFja1JhdGUpOwpAQCAtMjA2LDEzICsyMDYsMTQgQEAgdm9pZCBQbGF5YmFja1Nlc3Npb25N
b2RlbENvbnRleHQ6OmJ1ZmZlcmVkVGltZUNoYW5nZWQoZG91YmxlIGJ1ZmZlcmVkVGltZSkKICAg
ICAgICAgY2xpZW50LT5idWZmZXJlZFRpbWVDaGFuZ2VkKGJ1ZmZlcmVkVGltZSk7CiB9CiAKLXZv
aWQgUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OjpyYXRlQ2hhbmdlZChib29sIGlzUGxheWlu
ZywgZmxvYXQgcGxheWJhY2tSYXRlLCBmbG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKQordm9pZCBQ
bGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6OnJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBi
b29sIGlzU3RhbGxlZCwgZG91YmxlIHBsYXliYWNrUmF0ZSwgZG91YmxlIGRlZmF1bHRQbGF5YmFj
a1JhdGUpCiB7CiAgICAgbV9pc1BsYXlpbmcgPSBpc1BsYXlpbmc7CisgICAgbV9pc1N0YWxsZWQg
PSBpc1N0YWxsZWQ7CiAgICAgbV9wbGF5YmFja1JhdGUgPSBwbGF5YmFja1JhdGU7CiAgICAgbV9k
ZWZhdWx0UGxheWJhY2tSYXRlID0gZGVmYXVsdFBsYXliYWNrUmF0ZTsKICAgICBmb3IgKGF1dG8q
IGNsaWVudCA6IG1fY2xpZW50cykKLSAgICAgICAgY2xpZW50LT5yYXRlQ2hhbmdlZChtX2lzUGxh
eWluZywgbV9wbGF5YmFja1JhdGUsIG1fZGVmYXVsdFBsYXliYWNrUmF0ZSk7CisgICAgICAgIGNs
aWVudC0+cmF0ZUNoYW5nZWQobV9pc1BsYXlpbmcsIGlzU3RhbGxlZCwgbV9wbGF5YmFja1JhdGUs
IG1fZGVmYXVsdFBsYXliYWNrUmF0ZSk7CiB9CiAKIHZvaWQgUGxheWJhY2tTZXNzaW9uTW9kZWxD
b250ZXh0OjpzZWVrYWJsZVJhbmdlc0NoYW5nZWQoV2ViQ29yZTo6VGltZVJhbmdlcyYgc2Vla2Fi
bGVSYW5nZXMsIGRvdWJsZSBsYXN0TW9kaWZpZWRUaW1lLCBkb3VibGUgbGl2ZVVwZGF0ZUludGVy
dmFsKQpAQCAtNDg5LDkgKzQ5MCw5IEBAIHZvaWQgUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5
OjpwbGF5YmFja1N0YXJ0ZWRUaW1lQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250CiAgICAgZW5z
dXJlTW9kZWwoY29udGV4dElkKS5wbGF5YmFja1N0YXJ0ZWRUaW1lQ2hhbmdlZChwbGF5YmFja1N0
YXJ0ZWRUaW1lKTsKIH0KIAotdm9pZCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OnJhdGVD
aGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgYm9vbCBp
c1BsYXlpbmcsIGRvdWJsZSByYXRlLCBkb3VibGUgZGVmYXVsdFBsYXliYWNrUmF0ZSkKK3ZvaWQg
UGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpyYXRlQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgaXNQbGF5aW5nLCBib29sIGlzU3RhbGxl
ZCwgZG91YmxlIHJhdGUsIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKQogewotICAgIGVuc3Vy
ZU1vZGVsKGNvbnRleHRJZCkucmF0ZUNoYW5nZWQoaXNQbGF5aW5nLCByYXRlLCBkZWZhdWx0UGxh
eWJhY2tSYXRlKTsKKyAgICBlbnN1cmVNb2RlbChjb250ZXh0SWQpLnJhdGVDaGFuZ2VkKGlzUGxh
eWluZywgaXNTdGFsbGVkLCByYXRlLCBkZWZhdWx0UGxheWJhY2tSYXRlKTsKIH0KIAogdm9pZCBQ
bGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OnBpY3R1cmVJblBpY3R1cmVTdXBwb3J0ZWRDaGFu
Z2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgYm9vbCBzdXBw
b3J0ZWQpCkBAIC01NjMsMTIgKzU2NCwxMiBAQCB2b2lkIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQ
cm94eTo6ZW5kU2Nhbm5pbmcoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgYwogICAg
IG1fcGFnZS0+c2VuZChNZXNzYWdlczo6UGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6RW5kU2Nhbm5p
bmcoY29udGV4dElkKSk7CiB9CiAKLXZvaWQgUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Ojpz
ZXREZWZhdWx0UGxheWJhY2tSYXRlKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNv
bnRleHRJZCwgZmxvYXQgZGVmYXVsdFBsYXliYWNrUmF0ZSkKK3ZvaWQgUGxheWJhY2tTZXNzaW9u
TWFuYWdlclByb3h5OjpzZXREZWZhdWx0UGxheWJhY2tSYXRlKFBsYXliYWNrU2Vzc2lvbkNvbnRl
eHRJZGVudGlmaWVyIGNvbnRleHRJZCwgZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUpCiB7CiAg
ICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpTZXREZWZh
dWx0UGxheWJhY2tSYXRlKGNvbnRleHRJZCwgZGVmYXVsdFBsYXliYWNrUmF0ZSkpOwogfQogCi12
b2lkIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6c2V0UGxheWJhY2tSYXRlKFBsYXliYWNr
U2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgZmxvYXQgcGxheWJhY2tSYXRlKQor
dm9pZCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OnNldFBsYXliYWNrUmF0ZShQbGF5YmFj
a1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGRvdWJsZSBwbGF5YmFja1JhdGUp
CiB7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpT
ZXRQbGF5YmFja1JhdGUoY29udGV4dElkLCBwbGF5YmFja1JhdGUpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdD
b250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tG
dWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KaW5kZXggZTI2YTM2ZGNmODk5NjU2Y2QyZTBjOTIx
Mzk5MTM0YTQxZjllNTg5Yy4uMTAzNTgzNmZjZGVjYjZiYmM4NGIwNTU5MWZiZjlhNjI5MTc1YmNm
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tG
dWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KQEAgLTUwLDcgKzUw
LDcgQEAgY2xhc3MgV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXJQbGF5YmFja1Nlc3Npb25Nb2Rl
bENsaWVudCA6IFdlYkNvcmU6OlBsYXliYWNrU2UKIHB1YmxpYzoKICAgICB2b2lkIHNldFBhcmVu
dChXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciAqcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50
OyB9CiAKLSAgICB2b2lkIHJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCAvKiBwbGF5
YmFja1JhdGUgKi8sIGZsb2F0IC8qIGRlZmF1bHRQbGF5YmFja1JhdGUgKi8pIG92ZXJyaWRlCisg
ICAgdm9pZCByYXRlQ2hhbmdlZChib29sIGlzUGxheWluZywgYm9vbCAvKiBpc1N0YWxsZWQgKi8s
IGRvdWJsZSAvKiBwbGF5YmFja1JhdGUgKi8sIGRvdWJsZSAvKiBkZWZhdWx0UGxheWJhY2tSYXRl
ICovKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgbV9wYXJlbnQucGxheWluZyA9IGlzUGxheWlu
ZzsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUGxh
eWJhY2tTZXNzaW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Bs
YXliYWNrU2Vzc2lvbk1hbmFnZXIuaAppbmRleCAwOTY3OTcxNjRjZGY0ZjAzODFmZDkxMWMwZTVm
MWMyMTZiNGVkNmQwLi41NzZlMjUyNTk1NjM0ZmIyM2M3YzdkYWZkZmViZTRiZTQzMzFjYWY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUGxheWJhY2tTZXNzaW9u
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9QbGF5YmFja1Nl
c3Npb25NYW5hZ2VyLmgKQEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGN1cnJl
bnRUaW1lQ2hhbmdlZChkb3VibGUgY3VycmVudFRpbWUsIGRvdWJsZSBhbmNob3JUaW1lKSBmaW5h
bDsKICAgICB2b2lkIGJ1ZmZlcmVkVGltZUNoYW5nZWQoZG91YmxlKSBmaW5hbDsKICAgICB2b2lk
IHBsYXliYWNrU3RhcnRlZFRpbWVDaGFuZ2VkKGRvdWJsZSBwbGF5YmFja1N0YXJ0ZWRUaW1lKSBm
aW5hbDsKLSAgICB2b2lkIHJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFj
a1JhdGUsIGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUpIGZpbmFsOworICAgIHZvaWQgcmF0ZUNo
YW5nZWQoYm9vbCBpc1BsYXlpbmcsIGJvb2wgaXNTdGFsbGVkLCBkb3VibGUgcGxheWJhY2tSYXRl
LCBkb3VibGUgZGVmYXVsdFBsYXliYWNrUmF0ZSkgZmluYWw7CiAgICAgdm9pZCBzZWVrYWJsZVJh
bmdlc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6VGltZVJhbmdlcyYsIGRvdWJsZSBsYXN0TW9kaWZp
ZWRUaW1lLCBkb3VibGUgbGl2ZVVwZGF0ZUludGVydmFsKSBmaW5hbDsKICAgICB2b2lkIGNhblBs
YXlGYXN0UmV2ZXJzZUNoYW5nZWQoYm9vbCB2YWx1ZSkgZmluYWw7CiAgICAgdm9pZCBhdWRpb01l
ZGlhU2VsZWN0aW9uT3B0aW9uc0NoYW5nZWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6Ok1lZGlhU2Vs
ZWN0aW9uT3B0aW9uPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCkgZmluYWw7CkBA
IC0xMzAsNyArMTMwLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgY3VycmVudFRpbWVDaGFuZ2Vk
KFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBkb3VibGUgY3VycmVudFRpbWUsIGRv
dWJsZSBhbmNob3JUaW1lKTsKICAgICB2b2lkIGJ1ZmZlcmVkVGltZUNoYW5nZWQoUGxheWJhY2tT
ZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIGRvdWJsZSBidWZmZXJlZFRpbWUpOwogICAgIHZvaWQg
cGxheWJhY2tTdGFydGVkVGltZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZp
ZXIsIGRvdWJsZSBwbGF5YmFja1N0YXJ0ZWRUaW1lKTsKLSAgICB2b2lkIHJhdGVDaGFuZ2VkKFBs
YXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBib29sIGlzUGxheWluZywgZmxvYXQgcGxh
eWJhY2tSYXRlLCBmbG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKTsKKyAgICB2b2lkIHJhdGVDaGFu
Z2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBib29sIGlzUGxheWluZywgYm9v
bCBpc1N0YWxsZWQsIGRvdWJsZSBwbGF5YmFja1JhdGUsIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tS
YXRlKTsKICAgICB2b2lkIHNlZWthYmxlUmFuZ2VzQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250
ZXh0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6VGltZVJhbmdlcyYsIGRvdWJsZSBsYXN0TW9k
aWZpZWRUaW1lLCBkb3VibGUgbGl2ZVVwZGF0ZUludGVydmFsKTsKICAgICB2b2lkIGNhblBsYXlG
YXN0UmV2ZXJzZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIGJvb2wg
dmFsdWUpOwogICAgIHZvaWQgYXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnNDaGFuZ2VkKFBsYXli
YWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6TWVkaWFT
ZWxlY3Rpb25PcHRpb24+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxlY3RlZEluZGV4KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9QbGF5YmFja1Nlc3Npb25NYW5h
Z2VyLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1h
bmFnZXIubW0KaW5kZXggMzQ2NDNmOWJlNTkyMjY0NGMwYTgxNjM3NDMwOThiMDAxMzExYTIwNy4u
ZDYzMjJiZTAzZTYwM2Y2MzQ0ZmViNzVjZjY5OWNjNWU3ZWUwMzhiMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW0KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXIu
bW0KQEAgLTc2LDEwICs3NiwxMCBAQCB2b2lkIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUNvbnRl
eHQ6OmJ1ZmZlcmVkVGltZUNoYW5nZWQoZG91YmxlIGJ1ZmZlcmVkVGltZSkKICAgICAgICAgbV9t
YW5hZ2VyLT5idWZmZXJlZFRpbWVDaGFuZ2VkKG1fY29udGV4dElkLCBidWZmZXJlZFRpbWUpOwog
fQogCi12b2lkIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUNvbnRleHQ6OnJhdGVDaGFuZ2VkKGJv
b2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUsIGZsb2F0IGRlZmF1bHRQbGF5YmFja1Jh
dGUpCit2b2lkIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUNvbnRleHQ6OnJhdGVDaGFuZ2VkKGJv
b2wgaXNQbGF5aW5nLCBib29sIGlzU3RhbGxlZCwgZG91YmxlIHBsYXliYWNrUmF0ZSwgZG91Ymxl
IGRlZmF1bHRQbGF5YmFja1JhdGUpCiB7CiAgICAgaWYgKG1fbWFuYWdlcikKLSAgICAgICAgbV9t
YW5hZ2VyLT5yYXRlQ2hhbmdlZChtX2NvbnRleHRJZCwgaXNQbGF5aW5nLCBwbGF5YmFja1JhdGUs
IGRlZmF1bHRQbGF5YmFja1JhdGUpOworICAgICAgICBtX21hbmFnZXItPnJhdGVDaGFuZ2VkKG1f
Y29udGV4dElkLCBpc1BsYXlpbmcsIGlzU3RhbGxlZCwgcGxheWJhY2tSYXRlLCBkZWZhdWx0UGxh
eWJhY2tSYXRlKTsKIH0KIAogdm9pZCBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VDb250ZXh0Ojpw
bGF5YmFja1N0YXJ0ZWRUaW1lQ2hhbmdlZChkb3VibGUgcGxheWJhY2tTdGFydGVkVGltZSkKQEAg
LTM0MSw5ICszNDEsOSBAQCB2b2lkIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6OnBsYXliYWNrU3Rh
cnRlZFRpbWVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZAogICAgIG1fcGFnZS0+c2Vu
ZChNZXNzYWdlczo6UGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpQbGF5YmFja1N0YXJ0ZWRU
aW1lQ2hhbmdlZChjb250ZXh0SWQsIHBsYXliYWNrU3RhcnRlZFRpbWUpKTsKIH0KIAotdm9pZCBQ
bGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpyYXRlQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250ZXh0
SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUs
IGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUpCit2b2lkIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6
OnJhdGVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwg
Ym9vbCBpc1BsYXlpbmcsIGJvb2wgaXNTdGFsbGVkLCBkb3VibGUgcGxheWJhY2tSYXRlLCBkb3Vi
bGUgZGVmYXVsdFBsYXliYWNrUmF0ZSkKIHsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlBs
YXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6UmF0ZUNoYW5nZWQoY29udGV4dElkLCBpc1BsYXlp
bmcsIHBsYXliYWNrUmF0ZSwgZGVmYXVsdFBsYXliYWNrUmF0ZSkpOworICAgIG1fcGFnZS0+c2Vu
ZChNZXNzYWdlczo6UGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpSYXRlQ2hhbmdlZChjb250
ZXh0SWQsIGlzUGxheWluZywgaXNTdGFsbGVkLCBwbGF5YmFja1JhdGUsIGRlZmF1bHRQbGF5YmFj
a1JhdGUpKTsKIH0KIAogdm9pZCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpzZWVrYWJsZVJhbmdl
c0NoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBjb25z
dCBXZWJDb3JlOjpUaW1lUmFuZ2VzJiB0aW1lUmFuZ2VzLCBkb3VibGUgbGFzdE1vZGlmaWVkVGlt
ZSwgZG91YmxlIGxpdmVVcGRhdGVJbnRlcnZhbCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431494</attachid>
            <date>2021-06-15 16:31:05 -0700</date>
            <delta_ts>2021-06-17 07:44:10 -0700</delta_ts>
            <desc>Fix build failures on macOS</desc>
            <filename>bug-227047-20210615163105.patch</filename>
            <type>text/plain</type>
            <size>39778</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4ODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNmYzFjM2JmNGIxNzU2
NWY3ZjQ2ZTljZDc2ZDEzOGEwYzI0YTEwZi4uODRlNTQ2OWMxNWNkZjI3MzU3YmYwYWRkM2U1ZDVj
MzhkYzM2YTYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTA2LTE1ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRnVsbHNjcmVlbiB2
aWRlbyBwbGF5YmFjayBnZXRzIHN0dWNrIGFmdGVyIGludGVyYWN0aW5nIHdpdGggdGhlIHBsYXli
YWNrIGNvbnRyb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjcwNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXaGVuIHdlIHNjcnViIGEgcGxheWluZyB2aWRlbywgdGhlIHZpZGVvIGVsZW1lbnQgbWF5
IGVudGVyIGEgdGVtcG9yYXJpbHkgc3RhbGxlZAorICAgICAgICBzdGF0ZSAtIHRoZSBwbGF5ZXIg
aXMgc3RpbGwgcGxheWluZywgYnV0IGl0IGRvZXMgbm90IGhhdmUgZW5vdWdoIGRhdGEuIEluIFdl
YktpdCwKKyAgICAgICAgdGhlIGByYXRlYCBvZiB0aGUgcGxheWVyIHdpbGwgYmUgMC4gQnV0IHdl
IGNhbm5vdCBzZXQgdGhlIHJhdGUgb2YgYFdlYkFWUGxheWVyQ29udHJvbGxlcmAKKyAgICAgICAg
dG8gMCBpbiB0aGlzIGNhc2UsIGJlY2F1c2UgQVZLaXQgd2lsbCBiZWxpZXZlIHRoZSB2aWRlbyBw
bGF5YmFjayBpcyBwYXVzZWQgd2hlbgorICAgICAgICBpdHMgcmF0ZSBpcyAwLiBJbiByMjYxNTg3
LCB3ZSBkZWZpbmVkIGEgbWFnaWMgcmF0ZSAoMC4wMDAwMDAwMWYpIGZvciB0aGlzIGNhc2UuCisK
KyAgICAgICAgVW5mb3J0dW5hdGVseSwgd2l0aCB0aGUgY2hhbmdlcyBpbiByMjc1OTU2LCBgV2Vi
QVZQbGF5ZXJDb250cm9sbGVyYCB3aWxsCisgICAgICAgIGFsaWduIGl0cyBgZGVmYXVsdFBsYXli
YWNrUmF0ZWAgd2l0aCBgcmF0ZWAgd2hlbiBgcmF0ZWAgaXMgbm90IDAuIFVuZGVyIHN0cmVzcwor
ICAgICAgICB0ZXN0cywgZS5nLiwga2VlcCBzY3J1YmJpbmcgYSB2aWRlbywgYSB2aWRlbyBlbGVt
ZW50IHdpbGwgZXZlbnR1YWxseSBlbnRlciBhIHN0YXRlCisgICAgICAgIGluIHdoaWNoIGJvdGgg
YGRlZmF1bHRQbGF5YmFja1JhdGVgIGFuZCBgcmF0ZWAgYXJlIHRoZSBtYWdpYyByYXRlLiBBbmQg
dGhlIHZpZGVvCisgICAgICAgIGFwcGVhcnMgdG8gYmUgc3R1Y2sgZm9yIHVzZXJzLgorCisgICAg
ICAgIFRvIGZpeCB0aGUgaXNzdWUsIHRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgbWFnaWMgcmF0ZSBh
bmQgZGVmaW5lcyBhIG5ldyBzdGF0ZTogYHN0YWxsZWRgLgorICAgICAgICBBIHZpZGVvIHdpbGwg
YmUgaW4gdGhlIHN0YWxsZWQgc3RhdGUgd2hlbiBpdCBpcyBwbGF5aW5nIGJ1dCBkb2VzIG5vdCBo
YXZlIGVub3VnaCBkYXRhLgorICAgICAgICBXZWJLaXQgd2lsbCBvbmx5IGNoYW5nZSB0aGUgcmF0
ZSBvZiBgV2ViQVZQbGF5ZXJDb250cm9sbGVyYCB3aGVuIHRoZSB2aWRlbworICAgICAgICBpcyBu
b3Qgc3RhbGxlZC4KKworICAgICAgICBUbyBhdm9pZCBwb3RlbnRpYWwgcHJvYmxlbXMgZHVlIHRv
IHRoZSBjb252ZXJzaW9ucyBiZXR3ZWVuICJmbG9hdCIgYW5kICJkb3VibGUiCisgICAgICAgIGJh
Y2sgYW5kIGZvcnRoLCB0aGlzIHBhdGNoIHVwZGF0ZXMgdGhlIHR5cGVzIG9mIGBwbGF5YmFja1Jh
dGVgIGFuZCBgZGVmYXVsdFBsYXliYWNrUmF0ZWAuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2Nv
YS9QbGF5YmFja1Nlc3Npb25Nb2RlbC5oOgorICAgICAgICAoV2ViQ29yZTo6UGxheWJhY2tTZXNz
aW9uTW9kZWxDbGllbnQ6OnJhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Q
bGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2Nv
Y29hL1BsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnVwZGF0ZUZvckV2ZW50TmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6c2V0
RGVmYXVsdFBsYXliYWNrUmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25N
b2RlbE1lZGlhRWxlbWVudDo6c2V0UGxheWJhY2tSYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBs
YXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpkZWZhdWx0UGxheWJhY2tSYXRlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Ojpw
bGF5YmFja1JhdGUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VBVktpdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZUFWS2l0OjpQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdCk6CisgICAgICAgIChX
ZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDo6cmF0ZUNoYW5nZWQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW06
CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6cmF0ZUNoYW5nZWQp
OgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OnNldERlZmF1bHRQ
bGF5YmFja1JhdGUpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6
OnNldFBsYXliYWNrUmF0ZSk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29u
dGV4dDo6aXNTdGFsbGVkIGNvbnN0KToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJDb250ZXh0OjpkZWZhdWx0UGxheWJhY2tSYXRlIGNvbnN0KToKKyAgICAgICAgKFZpZGVvRnVs
bHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpwbGF5YmFja1JhdGUgY29uc3QpOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWM6OnJhdGVDaGFuZ2VkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmg6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6cmF0ZUNoYW5nZWQpOgorCiAy
MDIxLTA2LTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTGF6
aWx5IGNvbXB1dGUgU2VjdXJpdHlPcmlnaW46Om1faXNQb3RlbnRpYWxseVRydXN0d29ydGh5IGZv
ciBwZXJmb3JtYW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlMzNmZDlmZGIxODk1ODk5NjVmMWU3NjVhMmRjNmM0
ZDczYjVmMWUwLi4wZTJkY2Q5MDM5MGQ4MmY3OGQyYWRiOTg2YmZhNWQzYWQ3MGFhMGYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTA2LTE1ICBQZW5nIExpdSAgPHBlbmcubGl1NkBh
cHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRnVsbHNjcmVlbiB2aWRlbyBwbGF5YmFjayBnZXRz
IHN0dWNrIGFmdGVyIGludGVyYWN0aW5nIHdpdGggdGhlIHBsYXliYWNrIGNvbnRyb2xzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcwNDcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHdlIHNjcnVi
IGEgcGxheWluZyB2aWRlbywgdGhlIHZpZGVvIGVsZW1lbnQgbWF5IGVudGVyIGEgdGVtcG9yYXJp
bHkgc3RhbGxlZAorICAgICAgICBzdGF0ZSAtIHRoZSBwbGF5ZXIgaXMgc3RpbGwgcGxheWluZywg
YnV0IGl0IGRvZXMgbm90IGhhdmUgZW5vdWdoIGRhdGEuIEluIFdlYktpdCwKKyAgICAgICAgdGhl
IGByYXRlYCBvZiB0aGUgcGxheWVyIHdpbGwgYmUgMC4gQnV0IHdlIGNhbm5vdCBzZXQgdGhlIHJh
dGUgb2YgYFdlYkFWUGxheWVyQ29udHJvbGxlcmAKKyAgICAgICAgdG8gMCBpbiB0aGlzIGNhc2Us
IGJlY2F1c2UgQVZLaXQgd2lsbCBiZWxpZXZlIHRoZSB2aWRlbyBwbGF5YmFjayBpcyBwYXVzZWQg
d2hlbgorICAgICAgICBpdHMgcmF0ZSBpcyAwLiBJbiByMjYxNTg3LCB3ZSBkZWZpbmVkIGEgbWFn
aWMgcmF0ZSAoMC4wMDAwMDAwMWYpIGZvciB0aGlzIGNhc2UuCisKKyAgICAgICAgVW5mb3J0dW5h
dGVseSwgd2l0aCB0aGUgY2hhbmdlcyBpbiByMjc1OTU2LCBgV2ViQVZQbGF5ZXJDb250cm9sbGVy
YCB3aWxsCisgICAgICAgIGFsaWduIGl0cyBgZGVmYXVsdFBsYXliYWNrUmF0ZWAgd2l0aCBgcmF0
ZWAgd2hlbiBgcmF0ZWAgaXMgbm90IDAuIFVuZGVyIHN0cmVzcworICAgICAgICB0ZXN0cywgZS5n
Liwga2VlcCBzY3J1YmJpbmcgYSB2aWRlbywgYSB2aWRlbyBlbGVtZW50IHdpbGwgZXZlbnR1YWxs
eSBlbnRlciBhIHN0YXRlCisgICAgICAgIGluIHdoaWNoIGJvdGggYGRlZmF1bHRQbGF5YmFja1Jh
dGVgIGFuZCBgcmF0ZWAgYXJlIHRoZSBtYWdpYyByYXRlLiBBbmQgdGhlIHZpZGVvCisgICAgICAg
IGFwcGVhcnMgdG8gYmUgc3R1Y2sgZm9yIHVzZXJzLgorCisgICAgICAgIFRvIGZpeCB0aGUgaXNz
dWUsIHRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgbWFnaWMgcmF0ZSBhbmQgZGVmaW5lcyBhIG5ldyBz
dGF0ZTogYHN0YWxsZWRgLgorICAgICAgICBBIHZpZGVvIHdpbGwgYmUgaW4gdGhlIHN0YWxsZWQg
c3RhdGUgd2hlbiBpdCBpcyBwbGF5aW5nIGJ1dCBkb2VzIG5vdCBoYXZlIGVub3VnaCBkYXRhLgor
ICAgICAgICBXZWJLaXQgd2lsbCBvbmx5IGNoYW5nZSB0aGUgcmF0ZSBvZiBgV2ViQVZQbGF5ZXJD
b250cm9sbGVyYCB3aGVuIHRoZSB2aWRlbworICAgICAgICBpcyBub3Qgc3RhbGxlZC4KKworICAg
ICAgICBUbyBhdm9pZCBwb3RlbnRpYWwgcHJvYmxlbXMgZHVlIHRvIHRoZSBjb252ZXJzaW9ucyBi
ZXR3ZWVuICJmbG9hdCIgYW5kICJkb3VibGUiCisgICAgICAgIGJhY2sgYW5kIGZvcnRoLCB0aGlz
IHBhdGNoIHVwZGF0ZXMgdGhlIHR5cGVzIG9mIGBwbGF5YmFja1JhdGVgIGFuZCBgZGVmYXVsdFBs
YXliYWNrUmF0ZWAuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9u
TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lv
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUGxh
eWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpQbGF5YmFja1Nl
c3Npb25Nb2RlbENvbnRleHQ6OnNldERlZmF1bHRQbGF5YmFja1JhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6OnNldFBsYXliYWNrUmF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6cmF0ZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OnJhdGVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpzZXREZWZh
dWx0UGxheWJhY2tSYXRlKToKKyAgICAgICAgKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uTWFuYWdl
clByb3h5OjpzZXRQbGF5YmFja1JhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNj
cmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OlBsYXliYWNr
U2Vzc2lvbkludGVyZmFjZUNvbnRleHQ6OnJhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6
UGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6cmF0ZUNoYW5nZWQpOgorCiAyMDIxLTA2LTEyICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI3ODM3
NCk6IFtCaWcgU3VyXSBBU1NFUlRJT04gRkFJTEVEOiAhaXNJblJvdXRpbmdBcmJpdHJhdGlvbkZv
clRva2VuKHRva2VuKSBpbiBXZWJDb3JlOjpTaGFyZWRSb3V0aW5nQXJiaXRyYXRvcjo6YmVnaW5S
b3V0aW5nQXJiaXRyYXRpb25Gb3JUb2tlbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWwuaAppbmRleCA1MDcxNzFhNDE2NmNlNjAy
MzRjZDdkY2RmNGY5NjkxOGNmNGRjYTg1Li44OGQ3ZDA3ZGFiZmRmYWU0NTlhMzZlNjM5N2Q4N2Q4
ZGNjNGQ1ZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5
YmFja1Nlc3Npb25Nb2RlbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bs
YXliYWNrU2Vzc2lvbk1vZGVsLmgKQEAgLTU1LDggKzU1LDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBiZWdpblNjYW5uaW5nRm9yd2FyZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYmVn
aW5TY2FubmluZ0JhY2t3YXJkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBlbmRTY2FubmluZygp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmYXVsdFBsYXliYWNrUmF0ZShmbG9hdCkgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5YmFja1JhdGUoZmxvYXQpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0RGVmYXVsdFBsYXliYWNrUmF0ZShkb3VibGUpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0UGxheWJhY2tSYXRlKGRvdWJsZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZWxl
Y3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCB0b2dnbGVQaWN0dXJlSW5QaWN0dXJlKCkgPSAwOwpAQCAtNzMsOSArNzMsMTAgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgZG91YmxlIGJ1ZmZlcmVkVGltZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJv
b2wgaXNQbGF5aW5nKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc1N0YWxsZWQoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzU2NydWJiaW5nKCkgY29uc3QgPSAwOwotICAg
IHZpcnR1YWwgZmxvYXQgZGVmYXVsdFBsYXliYWNrUmF0ZSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0
dWFsIGZsb2F0IHBsYXliYWNrUmF0ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBk
ZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgZG91YmxlIHBsYXli
YWNrUmF0ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFJlZjxUaW1lUmFuZ2VzPiBzZWVrYWJs
ZVJhbmdlcygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGRvdWJsZSBzZWVrYWJsZVRpbWVSYW5n
ZXNMYXN0TW9kaWZpZWRUaW1lKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgZG91YmxlIGxpdmVV
cGRhdGVJbnRlcnZhbCgpIGNvbnN0ID0gMDsKQEAgLTEwMSw3ICsxMDIsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGN1cnJlbnRUaW1lQ2hhbmdlZChkb3VibGUgLyogY3VycmVudFRpbWUg
Ki8sIGRvdWJsZSAvKiBhbmNob3JUaW1lICovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYnVmZmVy
ZWRUaW1lQ2hhbmdlZChkb3VibGUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXJ0
ZWRUaW1lQ2hhbmdlZChkb3VibGUgLyogcGxheWJhY2tTdGFydGVkVGltZSAqLykgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIHJhdGVDaGFuZ2VkKGJvb2wgLyogaXNQbGF5aW5nICovLCBmbG9hdCAvKiBw
bGF5YmFja1JhdGUgKi8sIGZsb2F0IC8qIGRlZmF1bHRQbGF5YmFja1JhdGUgKi8pIHsgfQorICAg
IHZpcnR1YWwgdm9pZCByYXRlQ2hhbmdlZChib29sIC8qIGlzUGxheWluZyAqLywgYm9vbCAvKiBp
c1N0YWxsZWQgKi8sIGRvdWJsZSAvKiBwbGF5YmFja1JhdGUgKi8sIGRvdWJsZSAvKiBkZWZhdWx0
UGxheWJhY2tSYXRlICovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2Vla2FibGVSYW5nZXNDaGFu
Z2VkKGNvbnN0IFRpbWVSYW5nZXMmLCBkb3VibGUgLyogbGFzdE1vZGlmaWVkICovLCBkb3VibGUg
LyogbGl2ZUludGVydmFsICovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2FuUGxheUZhc3RSZXZl
cnNlQ2hhbmdlZChib29sKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXVkaW9NZWRpYVNlbGVjdGlv
bk9wdGlvbnNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxNZWRpYVNlbGVjdGlvbk9wdGlvbj4mIC8qIG9w
dGlvbnMgKi8sIHVpbnQ2NF90IC8qIHNlbGVjdGVkSW5kZXggKi8pIHsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1v
ZGVsTWVkaWFFbGVtZW50LmgKaW5kZXggMzljNmQ1ZGFjMTYzMmQ3ZmYzODkwN2EwOWNlZWNmNjAx
NzhmODI5My4uM2I2NzQ3ZmZlYTFkMzcxZjg1MDVmOTc0YjMxYWY5ZmI4YmE4MzNhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWxN
ZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFj
a1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5oCkBAIC02OCw4ICs2OCw4IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGJlZ2luU2Nhbm5pbmdGb3J3YXJkKCkgZmluYWw7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBiZWdpblNjYW5uaW5nQmFja3dhcmQoKSBmaW5hbDsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGVuZFNjYW5uaW5nKCkgZmluYWw7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXREZWZhdWx0UGxheWJhY2tSYXRlKGZsb2F0KSBmaW5hbDsKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldFBsYXliYWNrUmF0ZShmbG9hdCkgZmluYWw7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXREZWZhdWx0UGxheWJhY2tSYXRlKGRvdWJsZSkgZmluYWw7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRQbGF5YmFja1JhdGUoZG91YmxlKSBmaW5hbDsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpIGZp
bmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVp
bnQ2NF90IGluZGV4KSBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHRvZ2dsZVBpY3R1
cmVJblBpY3R1cmUoKSBmaW5hbDsKQEAgLTgzLDkgKzgzLDEwIEBAIHB1YmxpYzoKICAgICBkb3Vi
bGUgY3VycmVudFRpbWUoKSBjb25zdCBmaW5hbDsKICAgICBkb3VibGUgYnVmZmVyZWRUaW1lKCkg
Y29uc3QgZmluYWw7CiAgICAgYm9vbCBpc1BsYXlpbmcoKSBjb25zdCBmaW5hbDsKKyAgICBib29s
IGlzU3RhbGxlZCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNTY3J1YmJpbmcoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBmYWxzZTsgfQotICAgIGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUoKSBj
b25zdCBmaW5hbDsKLSAgICBmbG9hdCBwbGF5YmFja1JhdGUoKSBjb25zdCBmaW5hbDsKKyAgICBk
b3VibGUgZGVmYXVsdFBsYXliYWNrUmF0ZSgpIGNvbnN0IGZpbmFsOworICAgIGRvdWJsZSBwbGF5
YmFja1JhdGUoKSBjb25zdCBmaW5hbDsKICAgICBSZWY8VGltZVJhbmdlcz4gc2Vla2FibGVSYW5n
ZXMoKSBjb25zdCBmaW5hbDsKICAgICBkb3VibGUgc2Vla2FibGVUaW1lUmFuZ2VzTGFzdE1vZGlm
aWVkVGltZSgpIGNvbnN0IGZpbmFsOwogICAgIGRvdWJsZSBsaXZlVXBkYXRlSW50ZXJ2YWwoKSBj
b25zdCBmaW5hbDsKQEAgLTEwOSw3ICsxMTAsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJvZ3Jl
c3NFdmVudFRpbWVyRmlyZWQoKTsKICAgICBzdGF0aWMgY29uc3QgVmVjdG9yPFdURjo6QXRvbVN0
cmluZz4mIG9ic2VydmVkRXZlbnROYW1lcygpOwogICAgIGNvbnN0IFdURjo6QXRvbVN0cmluZyYg
ZXZlbnROYW1lQWxsKCk7Ci0gICAgYm9vbCBpc1N0YWxsZWQoKSBjb25zdDsKIAogICAgIFJlZlB0
cjxIVE1MTWVkaWFFbGVtZW50PiBtX21lZGlhRWxlbWVudDsKICAgICBib29sIG1faXNMaXN0ZW5p
bmcgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
UGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQppbmRleCBlMDU3
Zjk3ZDE0NDI5YjcyYjI5NTRhYmUxN2Y4Y2E1ODhkZjFhN2M1Li5kZWNhYjA3NTg4MDY5YzBlODEw
YzA2YzNkZWVlMjBhNzVhMTM2MGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5t
bQpAQCAtNDcsMTMgKzQ3LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBUaGlzIGlz
IHRoZSByYXRlIHdoaWNoIHdlIHJlcG9ydCB0byBvdXIgY2xpZW50cywgbmFtZWx5IEFWS2l0LCB3
aGVuIHBsYXliYWNrIGhhcyBzdGFsbGVkLgotLy8gVGhlIHZhbHVlIG11c3QgYmUgbm9uLXplcm8s
IHNvIGFzIHRvIGRpZmZlcmVudGlhdGUgInBsYXlpbmctYnV0LXN0YWxsZWQiIGZyb20gInBhdXNl
ZCIuIEJ1dAotLy8gdGhlIHZhbHVlIGFsc28gbXVzdCBiZSB2ZXJ5IHNtYWxsLCBzbyB0aGVyZSBp
cyBubyB2aXNpYmxlIG1vdmVtZW50IGluIHRoZSBzeXN0ZW0gcHJvdmlkZWQKLS8vIHRpbWVsaW5l
IHNsaWRlciB3aGVuIHN0YWxsZWQuIFRoZSB2YWx1ZSBiZWxvdyB3aWxsIGNhdXNlIHRoZSBzbGlk
ZXIgdG8gbW92ZSAxIHNlY29uZCBldmVyeQotLy8gMyB5ZWFycywgc28gbWVldHMgYm90aCBnb2Fs
cy4KLXN0YXRpYyBjb25zdCBmbG9hdCBTdGFsbGVkUGxheWJhY2tSYXRlID0gMC4wMDAwMDAwMWY7
Ci0KIFBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpQbGF5YmFja1Nlc3Npb25Nb2Rl
bE1lZGlhRWxlbWVudCgpCiAgICAgOiBFdmVudExpc3RlbmVyKEV2ZW50TGlzdGVuZXI6OkNQUEV2
ZW50TGlzdGVuZXJUeXBlKQogewpAQCAtMTYzLDEwICsxNTYsMTEgQEAgdm9pZCBQbGF5YmFja1Nl
c3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6dXBkYXRlRm9yRXZlbnROYW1lKGNvbnN0IFdURjo6QXRv
bVN0cmluZyYKICAgICAgICAgfHwgZXZlbnROYW1lID09IGV2ZW50TmFtZXMoKS53YWl0aW5nRXZl
bnQKICAgICAgICAgfHwgZXZlbnROYW1lID09IGV2ZW50TmFtZXMoKS5jYW5wbGF5RXZlbnQpIHsK
ICAgICAgICAgYm9vbCBpc1BsYXlpbmcgPSB0aGlzLT5pc1BsYXlpbmcoKTsKLSAgICAgICAgZmxv
YXQgcGxheWJhY2tSYXRlID0gaXNTdGFsbGVkKCkgPyBTdGFsbGVkUGxheWJhY2tSYXRlIDogdGhp
cy0+cGxheWJhY2tSYXRlKCk7Ci0gICAgICAgIGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUgPSB0
aGlzLT5kZWZhdWx0UGxheWJhY2tSYXRlKCk7CisgICAgICAgIGJvb2wgaXNTdGFsbGVkID0gdGhp
cy0+aXNTdGFsbGVkKCk7CisgICAgICAgIGRvdWJsZSBwbGF5YmFja1JhdGUgPSAgdGhpcy0+cGxh
eWJhY2tSYXRlKCk7CisgICAgICAgIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlID0gdGhpcy0+
ZGVmYXVsdFBsYXliYWNrUmF0ZSgpOwogICAgICAgICBmb3IgKGF1dG8gY2xpZW50IDogbV9jbGll
bnRzKQotICAgICAgICAgICAgY2xpZW50LT5yYXRlQ2hhbmdlZChpc1BsYXlpbmcsIHBsYXliYWNr
UmF0ZSwgZGVmYXVsdFBsYXliYWNrUmF0ZSk7CisgICAgICAgICAgICBjbGllbnQtPnJhdGVDaGFu
Z2VkKGlzUGxheWluZywgaXNTdGFsbGVkLCBwbGF5YmFja1JhdGUsIGRlZmF1bHRQbGF5YmFja1Jh
dGUpOwogICAgIH0KIAogICAgIGlmIChhbGwKQEAgLTMwMiwxMyArMjk2LDEzIEBAIHZvaWQgUGxh
eWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmVuZFNjYW5uaW5nKCkKICAgICAgICAgbV9t
ZWRpYUVsZW1lbnQtPmVuZFNjYW5uaW5nKCk7CiB9CiAKLXZvaWQgUGxheWJhY2tTZXNzaW9uTW9k
ZWxNZWRpYUVsZW1lbnQ6OnNldERlZmF1bHRQbGF5YmFja1JhdGUoZmxvYXQgZGVmYXVsdFBsYXli
YWNrUmF0ZSkKK3ZvaWQgUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnNldERlZmF1
bHRQbGF5YmFja1JhdGUoZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUpCiB7CiAgICAgaWYgKG1f
bWVkaWFFbGVtZW50KQogICAgICAgICBtX21lZGlhRWxlbWVudC0+c2V0RGVmYXVsdFBsYXliYWNr
UmF0ZShkZWZhdWx0UGxheWJhY2tSYXRlKTsKIH0KIAotdm9pZCBQbGF5YmFja1Nlc3Npb25Nb2Rl
bE1lZGlhRWxlbWVudDo6c2V0UGxheWJhY2tSYXRlKGZsb2F0IHBsYXliYWNrUmF0ZSkKK3ZvaWQg
UGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnNldFBsYXliYWNrUmF0ZShkb3VibGUg
cGxheWJhY2tSYXRlKQogewogICAgIGlmIChtX21lZGlhRWxlbWVudCkKICAgICAgICAgbV9tZWRp
YUVsZW1lbnQtPnNldFBsYXliYWNrUmF0ZShwbGF5YmFja1JhdGUpOwpAQCAtNDgxLDEyICs0NzUs
MTIgQEAgYm9vbCBQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6aXNTdGFsbGVkKCkg
Y29uc3QKICAgICByZXR1cm4gbV9tZWRpYUVsZW1lbnQgJiYgbV9tZWRpYUVsZW1lbnQtPnJlYWR5
U3RhdGUoKSA8PSBIVE1MTWVkaWFFbGVtZW50OjpIQVZFX0NVUlJFTlRfREFUQTsKIH0KIAotZmxv
YXQgUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmRlZmF1bHRQbGF5YmFja1JhdGUo
KSBjb25zdAorZG91YmxlIFBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50OjpkZWZhdWx0
UGxheWJhY2tSYXRlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9tZWRpYUVsZW1lbnQgPyBtX21l
ZGlhRWxlbWVudC0+ZGVmYXVsdFBsYXliYWNrUmF0ZSgpIDogMDsKIH0KIAotZmxvYXQgUGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrUmF0ZSgpIGNvbnN0Citkb3VibGUg
UGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrUmF0ZSgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fbWVkaWFFbGVtZW50ID8gbV9tZWRpYUVsZW1lbnQtPnBsYXliYWNrUmF0
ZSgpIDogMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5
YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmgKaW5kZXggNDcyMTM5NjE1YWY1MTQ5NjA1
ZTAxNDcyM2M1MTA1YmI0YTdiYjA4ZC4uMmYwN2ExOTQ2MTFmNGUxODhiNDJiNWIyYjAzNWRmOTA3
ZTk3MjMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNr
U2Vzc2lvbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZHVyYXRpb25DaGFuZ2VkKGRvdWJsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBj
dXJyZW50VGltZUNoYW5nZWQoZG91YmxlIGN1cnJlbnRUaW1lLCBkb3VibGUgYW5jaG9yVGltZSkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBidWZmZXJlZFRpbWVDaGFuZ2VkKGRvdWJsZSkgb3ZlcnJpZGU7
Ci0gICAgdm9pZCByYXRlQ2hhbmdlZChib29sIGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRl
LCBmbG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKSBvdmVycmlkZTsKKyAgICB2b2lkIHJhdGVDaGFu
Z2VkKGJvb2wgaXNQbGF5aW5nLCBib29sIGlzU3RhbGxlZCwgZG91YmxlIHBsYXliYWNrUmF0ZSwg
ZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUpIG92ZXJyaWRlOwogICAgIHZvaWQgc2Vla2FibGVS
YW5nZXNDaGFuZ2VkKGNvbnN0IFRpbWVSYW5nZXMmLCBkb3VibGUgbGFzdE1vZGlmaWVkVGltZSwg
ZG91YmxlIGxpdmVVcGRhdGVJbnRlcnZhbCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjYW5QbGF5RmFz
dFJldmVyc2VDaGFuZ2VkKGJvb2wpIG92ZXJyaWRlOwogICAgIHZvaWQgYXVkaW9NZWRpYVNlbGVj
dGlvbk9wdGlvbnNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxNZWRpYVNlbGVjdGlvbk9wdGlvbj4mIG9w
dGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFW
S2l0Lm1tCmluZGV4IGIyNjg1MzkxYzVmNmMyNGM3YWVlMWMxNGNlMGVmYzEyMjFkM2NmZTguLmJh
Mjc3NzI5MDMwNWQyMDc1MjAyNjg1YWNmZWI5MjAxM2IxZTA4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
QVZLaXQubW0KQEAgLTYxLDcgKzYxLDcgQEAgUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6
OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0KFBsYXliYWNrU2Vzc2lvbk1vZGUKICAgICBk
dXJhdGlvbkNoYW5nZWQobW9kZWwuZHVyYXRpb24oKSk7CiAgICAgY3VycmVudFRpbWVDaGFuZ2Vk
KG1vZGVsLmN1cnJlbnRUaW1lKCksIFtbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10gc3lzdGVt
VXB0aW1lXSk7CiAgICAgYnVmZmVyZWRUaW1lQ2hhbmdlZChtb2RlbC5idWZmZXJlZFRpbWUoKSk7
Ci0gICAgcmF0ZUNoYW5nZWQobW9kZWwuaXNQbGF5aW5nKCksIG1vZGVsLnBsYXliYWNrUmF0ZSgp
LCBtb2RlbC5kZWZhdWx0UGxheWJhY2tSYXRlKCkpOworICAgIHJhdGVDaGFuZ2VkKG1vZGVsLmlz
UGxheWluZygpLCBtb2RlbC5pc1N0YWxsZWQoKSwgbW9kZWwucGxheWJhY2tSYXRlKCksIG1vZGVs
LmRlZmF1bHRQbGF5YmFja1JhdGUoKSk7CiAgICAgc2Vla2FibGVSYW5nZXNDaGFuZ2VkKG1vZGVs
LnNlZWthYmxlUmFuZ2VzKCksIG1vZGVsLnNlZWthYmxlVGltZVJhbmdlc0xhc3RNb2RpZmllZFRp
bWUoKSwgbW9kZWwubGl2ZVVwZGF0ZUludGVydmFsKCkpOwogICAgIGNhblBsYXlGYXN0UmV2ZXJz
ZUNoYW5nZWQobW9kZWwuY2FuUGxheUZhc3RSZXZlcnNlKCkpOwogICAgIGF1ZGlvTWVkaWFTZWxl
Y3Rpb25PcHRpb25zQ2hhbmdlZChtb2RlbC5hdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucygpLCBt
b2RlbC5hdWRpb01lZGlhU2VsZWN0ZWRJbmRleCgpKTsKQEAgLTEyNCwxMCArMTI0LDExIEBAIHZv
aWQgUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OmJ1ZmZlcmVkVGltZUNoYW5nZWQoZG91
YmxlIGJ1ZmZlcmVkVGltZSkKICAgICBwbGF5ZXJDb250cm9sbGVyLmxvYWRlZFRpbWVSYW5nZXMg
PSBAW0AwLCBAKG5vcm1hbGl6ZWRCdWZmZXJlZFRpbWUpXTsKIH0KIAotdm9pZCBQbGF5YmFja1Nl
c3Npb25JbnRlcmZhY2VBVktpdDo6cmF0ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBs
YXliYWNrUmF0ZSwgZmxvYXQgZGVmYXVsdFBsYXliYWNrUmF0ZSkKK3ZvaWQgUGxheWJhY2tTZXNz
aW9uSW50ZXJmYWNlQVZLaXQ6OnJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBib29sIGlzU3Rh
bGxlZCwgZG91YmxlIHBsYXliYWNrUmF0ZSwgZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUpCiB7
CiAgICAgW21fcGxheWVyQ29udHJvbGxlciBzZXREZWZhdWx0UGxheWJhY2tSYXRlOmRlZmF1bHRQ
bGF5YmFja1JhdGVdOwotICAgIFttX3BsYXllckNvbnRyb2xsZXIgc2V0UmF0ZTppc1BsYXlpbmcg
PyBwbGF5YmFja1JhdGUgOiAwLl07CisgICAgaWYgKCFpc1N0YWxsZWQpCisgICAgICAgIFttX3Bs
YXllckNvbnRyb2xsZXIgc2V0UmF0ZTppc1BsYXlpbmcgPyBwbGF5YmFja1JhdGUgOiAwLl07CiB9
CiAKIHZvaWQgUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OnNlZWthYmxlUmFuZ2VzQ2hh
bmdlZChjb25zdCBUaW1lUmFuZ2VzJiB0aW1lUmFuZ2VzLCBkb3VibGUgbGFzdE1vZGlmaWVkVGlt
ZSwgZG91YmxlIGxpdmVVcGRhdGVJbnRlcnZhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0
Lm1tCmluZGV4IDk5MDNjNGUzYTU5NTY4Zjc1NjkwZjVkNmM0Zjg4ZDgzNDYxN2VhMzIuLjA3OGM2
MzM3YjExYjllZjBkN2VmYmI0Yjk1NGJmNjgyZmRhMDIxMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXJBVktpdC5tbQpAQCAtMTQ5LDggKzE0OSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBiZWdp
blNjYW5uaW5nRm9yd2FyZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgYmVnaW5TY2FubmluZ0JhY2t3
YXJkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBlbmRTY2FubmluZygpIG92ZXJyaWRlOwotICAgIHZv
aWQgc2V0RGVmYXVsdFBsYXliYWNrUmF0ZShmbG9hdCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRQ
bGF5YmFja1JhdGUoZmxvYXQpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0RGVmYXVsdFBsYXliYWNr
UmF0ZShkb3VibGUpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0UGxheWJhY2tSYXRlKGRvdWJsZSkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90KSBvdmVy
cmlkZTsKICAgICB2b2lkIHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCkgb3ZlcnJp
ZGU7CiAgICAgZG91YmxlIGR1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0xNTgsOSArMTU4
LDEwIEBAIHByaXZhdGU6CiAgICAgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgZG91YmxlIGJ1ZmZlcmVkVGltZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNQ
bGF5aW5nKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1N0YWxsZWQoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBib29sIGlzU2NydWJiaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFs
c2U7IH0KLSAgICBmbG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgZmxvYXQgcGxheWJhY2tSYXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgZG91YmxlIGRlZmF1
bHRQbGF5YmFja1JhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBkb3VibGUgcGxheWJhY2tSYXRl
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgUmVmPFRpbWVSYW5nZXM+IHNlZWthYmxlUmFuZ2VzKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgZG91YmxlIHNlZWthYmxlVGltZVJhbmdlc0xhc3RNb2RpZmll
ZFRpbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBkb3VibGUgbGl2ZVVwZGF0ZUludGVydmFsKCkg
Y29uc3Qgb3ZlcnJpZGU7CkBAIC0xODMsNyArMTg0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGR1
cmF0aW9uQ2hhbmdlZChkb3VibGUpIG92ZXJyaWRlOwogICAgIHZvaWQgY3VycmVudFRpbWVDaGFu
Z2VkKGRvdWJsZSBjdXJyZW50VGltZSwgZG91YmxlIGFuY2hvclRpbWUpIG92ZXJyaWRlOwogICAg
IHZvaWQgYnVmZmVyZWRUaW1lQ2hhbmdlZChkb3VibGUpIG92ZXJyaWRlOwotICAgIHZvaWQgcmF0
ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSwgZmxvYXQgZGVmYXVs
dFBsYXliYWNrUmF0ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCByYXRlQ2hhbmdlZChib29sIGlzUGxh
eWluZywgYm9vbCBpc1N0YWxsZWQsIGRvdWJsZSBwbGF5YmFja1JhdGUsIGRvdWJsZSBkZWZhdWx0
UGxheWJhY2tSYXRlKSBvdmVycmlkZTsKICAgICB2b2lkIHNlZWthYmxlUmFuZ2VzQ2hhbmdlZChj
b25zdCBUaW1lUmFuZ2VzJiwgZG91YmxlIGxhc3RNb2RpZmllZFRpbWUsIGRvdWJsZSBsaXZlVXBk
YXRlSW50ZXJ2YWwpIG92ZXJyaWRlOwogICAgIHZvaWQgY2FuUGxheUZhc3RSZXZlcnNlQ2hhbmdl
ZChib29sKSBvdmVycmlkZTsKICAgICB2b2lkIGF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zQ2hh
bmdlZChjb25zdCBWZWN0b3I8TWVkaWFTZWxlY3Rpb25PcHRpb24+JiBvcHRpb25zLCB1aW50NjRf
dCBzZWxlY3RlZEluZGV4KSBvdmVycmlkZTsKQEAgLTQxNiwxNyArNDE3LDE3IEBAIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmJ1ZmZlcmVkVGltZUNoYW5nZWQoZG91Ymxl
IGJ1ZmZlcmVkVGltZSkKICAgICAgICAgY2xpZW50LT5idWZmZXJlZFRpbWVDaGFuZ2VkKGJ1ZmZl
cmVkVGltZSk7CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OnJh
dGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUsIGZsb2F0IGRlZmF1
bHRQbGF5YmFja1JhdGUpCit2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0Ojpy
YXRlQ2hhbmdlZChib29sIGlzUGxheWluZywgYm9vbCBpc1N0YWxsZWQsIGRvdWJsZSBwbGF5YmFj
a1JhdGUsIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKQogewogICAgIGlmIChXZWJUaHJlYWRJ
c0N1cnJlbnQoKSkgewotICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCBpc1BsYXlpbmcsIHBsYXliYWNrUmF0ZSwgZGVmYXVs
dFBsYXliYWNrUmF0ZV0gewotICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+cmF0ZUNoYW5nZWQo
aXNQbGF5aW5nLCBwbGF5YmFja1JhdGUsIGRlZmF1bHRQbGF5YmFja1JhdGUpOworICAgICAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMp
LCBpc1BsYXlpbmcsIGlzU3RhbGxlZCwgcGxheWJhY2tSYXRlLCBkZWZhdWx0UGxheWJhY2tSYXRl
XSB7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5yYXRlQ2hhbmdlZChpc1BsYXlpbmcsIGlz
U3RhbGxlZCwgcGxheWJhY2tSYXRlLCBkZWZhdWx0UGxheWJhY2tSYXRlKTsKICAgICAgICAgfSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1fcGxh
eWJhY2tDbGllbnRzKQotICAgICAgICBjbGllbnQtPnJhdGVDaGFuZ2VkKGlzUGxheWluZywgcGxh
eWJhY2tSYXRlLCBkZWZhdWx0UGxheWJhY2tSYXRlKTsKKyAgICAgICAgY2xpZW50LT5yYXRlQ2hh
bmdlZChpc1BsYXlpbmcsIGlzU3RhbGxlZCwgcGxheWJhY2tSYXRlLCBkZWZhdWx0UGxheWJhY2tS
YXRlKTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6aGFzVmlk
ZW9DaGFuZ2VkKGJvb2wgaGFzVmlkZW8pCkBAIC04NDEsNyArODQyLDcgQEAgdm9pZCBWaWRlb0Z1
bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZW5kU2Nhbm5pbmcoKQogICAgIH0pOwogfQogCi12
b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpzZXREZWZhdWx0UGxheWJhY2tS
YXRlKGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUpCit2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXJDb250ZXh0OjpzZXREZWZhdWx0UGxheWJhY2tSYXRlKGRvdWJsZSBkZWZhdWx0UGxheWJh
Y2tSYXRlKQogewogICAgIEFTU0VSVChpc1VJVGhyZWFkKCkpOwogICAgIFdlYlRocmVhZFJ1bihb
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIGRlZmF1bHRQbGF5YmFja1Jh
dGVdIHsKQEAgLTg1MCw3ICs4NTEsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJD
b250ZXh0OjpzZXREZWZhdWx0UGxheWJhY2tSYXRlKGZsb2F0IGRlZmF1bHRQbGF5YgogICAgIH0p
OwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpzZXRQbGF5YmFj
a1JhdGUoZmxvYXQgcGxheWJhY2tSYXRlKQordm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
Q29udGV4dDo6c2V0UGxheWJhY2tSYXRlKGRvdWJsZSBwbGF5YmFja1JhdGUpCiB7CiAgICAgQVNT
RVJUKGlzVUlUaHJlYWQoKSk7CiAgICAgV2ViVGhyZWFkUnVuKFtwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZlB0cih0aGlzKSwgdGhpcywgcGxheWJhY2tSYXRlXSB7CkBAIC05MDEsMTMgKzkwMiwxOSBA
QCBib29sIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0Ojppc1BsYXlpbmcoKSBjb25z
dAogICAgIHJldHVybiBtX3BsYXliYWNrTW9kZWwgPyBtX3BsYXliYWNrTW9kZWwtPmlzUGxheWlu
ZygpIDogZmFsc2U7CiB9CiAKLWZsb2F0IFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0
OjpkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3QKK2Jvb2wgVmlkZW9GdWxsc2NyZWVuQ29udHJv
bGxlckNvbnRleHQ6OmlzU3RhbGxlZCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVUlUaHJlYWQo
KSk7CisgICAgcmV0dXJuIG1fcGxheWJhY2tNb2RlbCA/IG1fcGxheWJhY2tNb2RlbC0+aXNTdGFs
bGVkKCkgOiBmYWxzZTsKK30KKworZG91YmxlIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250
ZXh0OjpkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNVSVRocmVh
ZCgpKTsKICAgICByZXR1cm4gbV9wbGF5YmFja01vZGVsID8gbV9wbGF5YmFja01vZGVsLT5kZWZh
dWx0UGxheWJhY2tSYXRlKCkgOiAwOwogfQogCi1mbG9hdCBWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyQ29udGV4dDo6cGxheWJhY2tSYXRlKCkgY29uc3QKK2RvdWJsZSBWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyQ29udGV4dDo6cGxheWJhY2tSYXRlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNV
SVRocmVhZCgpKTsKICAgICByZXR1cm4gbV9wbGF5YmFja01vZGVsID8gbV9wbGF5YmFja01vZGVs
LT5wbGF5YmFja1JhdGUoKSA6IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLmgKaW5kZXggNzc0NTlhZmRmZDUz
Yjk4ZGYyYmYwNzRhNGE4ODZmZDU2YjRmY2Y4ZC4uNzE0NmI1NGZkNjk3YjllMmI3MTRhNTBjNGYy
YTQzZmNkYjYyNGRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bs
YXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMuaApAQCAtNTIsNyArNTIsNyBAQCBwdWJs
aWM6CiAgICAgLy8gUGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQKICAgICB2b2lkIGR1cmF0aW9u
Q2hhbmdlZChkb3VibGUpIGZpbmFsOwogICAgIHZvaWQgY3VycmVudFRpbWVDaGFuZ2VkKGRvdWJs
ZSAvKmN1cnJlbnRUaW1lKi8sIGRvdWJsZSAvKmFuY2hvclRpbWUqLykgZmluYWw7Ci0gICAgdm9p
ZCByYXRlQ2hhbmdlZChib29sIC8qaXNQbGF5aW5nKi8sIGZsb2F0IC8qcGxheWJhY2tSYXRlKi8s
IGZsb2F0IC8qIGRlZmF1bHRQbGF5YmFja1JhdGUgKi8pIGZpbmFsOworICAgIHZvaWQgcmF0ZUNo
YW5nZWQoYm9vbCAvKiBpc1BsYXlpbmcgKi8sIGJvb2wgLyogaXNTdGFsbGVkICovLCBkb3VibGUg
LyogcGxheWJhY2tSYXRlICovLCBkb3VibGUgLyogZGVmYXVsdFBsYXliYWNrUmF0ZSAqLykgZmlu
YWw7CiAgICAgdm9pZCBzZWVrYWJsZVJhbmdlc0NoYW5nZWQoY29uc3QgVGltZVJhbmdlcyYsIGRv
dWJsZSAvKmxhc3RNb2RpZmllZFRpbWUqLywgZG91YmxlIC8qbGl2ZVVwZGF0ZUludGVydmFsKi8p
IGZpbmFsOwogICAgIHZvaWQgYXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnNDaGFuZ2VkKGNvbnN0
IFZlY3RvcjxNZWRpYVNlbGVjdGlvbk9wdGlvbj4mIC8qb3B0aW9ucyovLCB1aW50NjRfdCAvKnNl
bGVjdGVkSW5kZXgqLykgZmluYWw7CiAgICAgdm9pZCBsZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRp
b25zQ2hhbmdlZChjb25zdCBWZWN0b3I8TWVkaWFTZWxlY3Rpb25PcHRpb24+JiAvKm9wdGlvbnMq
LywgdWludDY0X3QgLypzZWxlY3RlZEluZGV4Ki8pIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0K
aW5kZXggYjEyYjkxY2YyNWE4ZTIwYmFjMTFmYzI4MTgyYTg1OGZkYWUwZGNmMS4uM2VmY2ZhMjNl
Y2VlNDhkZmU4MWU5NjM2YTQ4NTVkMTg1OTZiMjcxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLm1tCkBA
IC05Miw3ICs5Miw3IEBAIHZvaWQgUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjOjpjdXJyZW50
VGltZUNoYW5nZWQoZG91YmxlIGN1cnJlbnRUaW1lLCBkb3VibGUKICNlbmRpZgogfQogCi12b2lk
IFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYzo6cmF0ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcs
IGZsb2F0IHBsYXliYWNrUmF0ZSwgZmxvYXQgZGVmYXVsdFBsYXliYWNrUmF0ZSkKK3ZvaWQgUGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjOjpyYXRlQ2hhbmdlZChib29sIGlzUGxheWluZywgYm9v
bCAvKiBpc1N0YWxsZWQgKi8sIGRvdWJsZSBwbGF5YmFja1JhdGUsIGRvdWJsZSBkZWZhdWx0UGxh
eWJhY2tSYXRlKQogewogI2lmIEVOQUJMRShXRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUikK
ICAgICBXZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlciogY29udHJvbHNNYW5hZ2VyID0gcGxheUJh
Y2tDb250cm9sc01hbmFnZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaAppbmRleCA3ZTljMTlmY2MxODFi
ZGU0MDc5Y2MzMDY1ZWE0NTlmMzM4MTcwZDllLi5mYjViNDQxODBiMTg0OWUyYjI3Yjc1MzBjN2I1
YjQyMDZkYzEwMWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oCkBAIC02Myw3ICs2Myw3IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2Vy
dmVyKFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKik7CiAKICAgICAvLyBQbGF5YmFja1Nl
c3Npb25Nb2RlbENsaWVudAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmF0ZUNoYW5nZWQoYm9v
bCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSwgZmxvYXQgZGVmYXVsdFBsYXliYWNrUmF0
ZSkgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByYXRlQ2hhbmdlZChib29sIGlz
UGxheWluZywgYm9vbCBpc1N0YWxsZWQsIGRvdWJsZSBwbGF5YmFja1JhdGUsIGRvdWJsZSBkZWZh
dWx0UGxheWJhY2tSYXRlKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV4dGVy
bmFsUGxheWJhY2tDaGFuZ2VkKGJvb2wgIGVuYWJsZWQsIFBsYXliYWNrU2Vzc2lvbk1vZGVsOjpF
eHRlcm5hbFBsYXliYWNrVGFyZ2V0VHlwZSwgY29uc3QgU3RyaW5nJiBsb2NhbGl6ZWREZXZpY2VO
YW1lKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuc3VyZUNvbnRyb2xzTWFu
YWdlcigpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5tbQppbmRleCBmYTZiZDRkNWUwNDkw
NzJiNDQ0NzFkYTJhMDQ0MDFhMGExNDA1ODM2Li5lNDlmZTRhOTRiMWRiODU2YjE0NmZiMzQwNTc4
M2M1MTVlZGIwM2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0KQEAgLTQyOCw3ICs0MjgsNyBAQCB2
b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6Y2xlYXJNb2RlKEhUTUxNZWRpYUVsZW1l
bnRFbnVtczo6VmlkZW9GdWxsc2NyZQogICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1vZGVsLT5m
dWxsc2NyZWVuTW9kZUNoYW5nZWQobV9tb2RlKTsKIH0KIAotdm9pZCBWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWM6OnJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1Jh
dGUsIGZsb2F0IC8qIGRlZmF1bHRQbGF5YmFja1JhdGUgKi8pCit2b2lkIFZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZU1hYzo6cmF0ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcsIGJvb2wgLyogaXNTdGFs
bGVkICovLCBkb3VibGUgcGxheWJhY2tSYXRlLCBkb3VibGUgLyogZGVmYXVsdFBsYXliYWNrUmF0
ZSAqLykKIHsKICAgICBbdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlT2JqQygpIHVwZGF0ZUlzUGxh
eWluZzppc1BsYXlpbmcgbmV3UGxheWJhY2tSYXRlOnBsYXliYWNrUmF0ZV07CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lvbk1h
bmFnZXJQcm94eS5oCmluZGV4IDIwMmJhZTEzMTNmMGJiNjAxOTFiYjE4MzA4OGNiYTAwOGU2ZWEy
YjcuLjVmZmZlZTZkOTVhY2E5NTdhMmU5MTAyYzRjZjNjMGUwNDc4YjQ2MDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lvbk1h
bmFnZXJQcm94eS5oCkBAIC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGN1cnJlbnRU
aW1lQ2hhbmdlZChkb3VibGUpOwogICAgIHZvaWQgYnVmZmVyZWRUaW1lQ2hhbmdlZChkb3VibGUp
OwogICAgIHZvaWQgcGxheWJhY2tTdGFydGVkVGltZUNoYW5nZWQoZG91YmxlKTsKLSAgICB2b2lk
IHJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUsIGZsb2F0IGRl
ZmF1bHRQbGF5YmFja1JhdGUpOworICAgIHZvaWQgcmF0ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcs
IGJvb2wgaXNTdGFsbGVkLCBkb3VibGUgcGxheWJhY2tSYXRlLCBkb3VibGUgZGVmYXVsdFBsYXli
YWNrUmF0ZSk7CiAgICAgdm9pZCBzZWVrYWJsZVJhbmdlc0NoYW5nZWQoV2ViQ29yZTo6VGltZVJh
bmdlcyYsIGRvdWJsZSBsYXN0TW9kaWZpZWRUaW1lLCBkb3VibGUgbGl2ZVVwZGF0ZUludGVydmFs
KTsKICAgICB2b2lkIGNhblBsYXlGYXN0UmV2ZXJzZUNoYW5nZWQoYm9vbCk7CiAgICAgdm9pZCBh
dWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uc0NoYW5nZWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6Ok1l
ZGlhU2VsZWN0aW9uT3B0aW9uPiYgb3B0aW9ucywgdWludDY0X3QgaW5kZXgpOwpAQCAtMTExLDgg
KzExMSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBiZWdpblNjYW5uaW5nRm9yd2FyZCgpIGZpbmFs
OwogICAgIHZvaWQgYmVnaW5TY2FubmluZ0JhY2t3YXJkKCkgZmluYWw7CiAgICAgdm9pZCBlbmRT
Y2FubmluZygpIGZpbmFsOwotICAgIHZvaWQgc2V0RGVmYXVsdFBsYXliYWNrUmF0ZShmbG9hdCkg
ZmluYWw7Ci0gICAgdm9pZCBzZXRQbGF5YmFja1JhdGUoZmxvYXQpIGZpbmFsOworICAgIHZvaWQg
c2V0RGVmYXVsdFBsYXliYWNrUmF0ZShkb3VibGUpIGZpbmFsOworICAgIHZvaWQgc2V0UGxheWJh
Y2tSYXRlKGRvdWJsZSkgZmluYWw7CiAgICAgdm9pZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVp
bnQ2NF90KSBmaW5hbDsKICAgICB2b2lkIHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRf
dCkgZmluYWw7CiAgICAgdm9pZCB0b2dnbGVQaWN0dXJlSW5QaWN0dXJlKCkgZmluYWw7CkBAIC0x
MjcsOSArMTI3LDEwIEBAIHByaXZhdGU6CiAgICAgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9jdXJyZW50VGltZTsgfQogICAgIGRvdWJsZSBidWZmZXJlZFRpbWUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2J1ZmZlcmVkVGltZTsgfQogICAgIGJvb2wgaXNQbGF5
aW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pc1BsYXlpbmc7IH0KKyAgICBib29sIGlzU3Rh
bGxlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faXNTdGFsbGVkOyB9CiAgICAgYm9vbCBpc1Nj
cnViYmluZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faXNTY3J1YmJpbmc7IH0KLSAgICBmbG9h
dCBkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9kZWZhdWx0UGxh
eWJhY2tSYXRlOyB9Ci0gICAgZmxvYXQgcGxheWJhY2tSYXRlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9wbGF5YmFja1JhdGU7IH0KKyAgICBkb3VibGUgZGVmYXVsdFBsYXliYWNrUmF0ZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fZGVmYXVsdFBsYXliYWNrUmF0ZTsgfQorICAgIGRvdWJsZSBw
bGF5YmFja1JhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3BsYXliYWNrUmF0ZTsgfQogICAg
IFJlZjxXZWJDb3JlOjpUaW1lUmFuZ2VzPiBzZWVrYWJsZVJhbmdlcygpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fc2Vla2FibGVSYW5nZXMuY29weVJlZigpOyB9CiAgICAgZG91YmxlIHNlZWthYmxl
VGltZVJhbmdlc0xhc3RNb2RpZmllZFRpbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NlZWth
YmxlVGltZVJhbmdlc0xhc3RNb2RpZmllZFRpbWU7IH0KICAgICBkb3VibGUgbGl2ZVVwZGF0ZUlu
dGVydmFsKCkgY29uc3QgeyByZXR1cm4gbV9saXZlVXBkYXRlSW50ZXJ2YWw7IH0KQEAgLTE1NSw5
ICsxNTYsMTAgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9jdXJyZW50VGltZSB7IDAgfTsKICAg
ICBkb3VibGUgbV9idWZmZXJlZFRpbWUgeyAwIH07CiAgICAgYm9vbCBtX2lzUGxheWluZyB7IGZh
bHNlIH07CisgICAgYm9vbCBtX2lzU3RhbGxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzU2Ny
dWJiaW5nIHsgZmFsc2UgfTsKLSAgICBmbG9hdCBtX2RlZmF1bHRQbGF5YmFja1JhdGUgeyAwIH07
Ci0gICAgZmxvYXQgbV9wbGF5YmFja1JhdGUgeyAwIH07CisgICAgZG91YmxlIG1fZGVmYXVsdFBs
YXliYWNrUmF0ZSB7IDAgfTsKKyAgICBkb3VibGUgbV9wbGF5YmFja1JhdGUgeyAwIH07CiAgICAg
UmVmPFdlYkNvcmU6OlRpbWVSYW5nZXM+IG1fc2Vla2FibGVSYW5nZXMgeyBXZWJDb3JlOjpUaW1l
UmFuZ2VzOjpjcmVhdGUoKSB9OwogICAgIGRvdWJsZSBtX3NlZWthYmxlVGltZVJhbmdlc0xhc3RN
b2RpZmllZFRpbWUgeyAwIH07CiAgICAgZG91YmxlIG1fbGl2ZVVwZGF0ZUludGVydmFsIHsgMCB9
OwpAQCAtMjIxLDcgKzIyMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aXJlbGVzc1ZpZGVvUGxh
eWJhY2tEaXNhYmxlZENoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIGJv
b2wpOwogICAgIHZvaWQgZHVyYXRpb25DaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVu
dGlmaWVyLCBkb3VibGUgZHVyYXRpb24pOwogICAgIHZvaWQgcGxheWJhY2tTdGFydGVkVGltZUNo
YW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIGRvdWJsZSBwbGF5YmFja1N0
YXJ0ZWRUaW1lKTsKLSAgICB2b2lkIHJhdGVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJ
ZGVudGlmaWVyLCBib29sIGlzUGxheWluZywgZG91YmxlIHJhdGUsIGRvdWJsZSBkZWZhdWx0UGxh
eWJhY2tSYXRlKTsKKyAgICB2b2lkIHJhdGVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJ
ZGVudGlmaWVyLCBib29sIGlzUGxheWluZywgYm9vbCBpc1N0YWxsZWQsIGRvdWJsZSByYXRlLCBk
b3VibGUgZGVmYXVsdFBsYXliYWNrUmF0ZSk7CiAgICAgdm9pZCBoYW5kbGVDb250cm9sbGVkRWxl
bWVudElEUmVzcG9uc2UoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIFN0cmluZykg
Y29uc3Q7CiAgICAgdm9pZCBtdXRlZENoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50
aWZpZXIsIGJvb2wgbXV0ZWQpOwogICAgIHZvaWQgdm9sdW1lQ2hhbmdlZChQbGF5YmFja1Nlc3Np
b25Db250ZXh0SWRlbnRpZmllciwgZG91YmxlIHZvbHVtZSk7CkBAIC0yMzgsOCArMjQwLDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIGJlZ2luU2Nhbm5pbmdGb3J3YXJkKFBsYXliYWNrU2Vzc2lvbkNv
bnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIGJlZ2luU2Nhbm5pbmdCYWNrd2FyZChQbGF5YmFj
a1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCBlbmRTY2FubmluZyhQbGF5YmFj
a1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7Ci0gICAgdm9pZCBzZXREZWZhdWx0UGxheWJhY2tS
YXRlKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBmbG9hdCk7Ci0gICAgdm9pZCBz
ZXRQbGF5YmFja1JhdGUoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIGZsb2F0KTsK
KyAgICB2b2lkIHNldERlZmF1bHRQbGF5YmFja1JhdGUoUGxheWJhY2tTZXNzaW9uQ29udGV4dElk
ZW50aWZpZXIsIGRvdWJsZSk7CisgICAgdm9pZCBzZXRQbGF5YmFja1JhdGUoUGxheWJhY2tTZXNz
aW9uQ29udGV4dElkZW50aWZpZXIsIGRvdWJsZSk7CiAgICAgdm9pZCBzZWxlY3RBdWRpb01lZGlh
T3B0aW9uKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleCk7
CiAgICAgdm9pZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24oUGxheWJhY2tTZXNzaW9uQ29udGV4
dElkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4KTsKICAgICB2b2lkIHRvZ2dsZVBpY3R1cmVJblBp
Y3R1cmUoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9u
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGQzMzk0OThkODU0MWZlZTVhNTgxMzM4NDRh
M2U3NzA3MTVhY2EwNDcuLjMyMDVkNWExZmUzZjk1ZjFlZDMwMTkzZjkyMmNhMWE1M2UzZTU3MGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lv
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTM0LDcgKzM0
LDcgQEAgbWVzc2FnZXMgLT4gUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5IHsKICAgICBXaXJl
bGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZENoYW5nZWQoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGJvb2wgZGlzYWJsZWQpCiAgICAgRHVyYXRpb25D
aGFuZ2VkKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElk
LCBkb3VibGUgZHVyYXRpb24pCiAgICAgUGxheWJhY2tTdGFydGVkVGltZUNoYW5nZWQoV2ViS2l0
OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGRvdWJsZSBwbGF5
YmFja1N0YXJ0ZWRUaW1lKQotICAgIFJhdGVDaGFuZ2VkKFdlYktpdDo6UGxheWJhY2tTZXNzaW9u
Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBib29sIGlzUGxheWluZywgZG91YmxlIHJhdGUs
IGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKQorICAgIFJhdGVDaGFuZ2VkKFdlYktpdDo6UGxh
eWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBib29sIGlzUGxheWluZywg
Ym9vbCBpc1N0YWxsZWQsIGRvdWJsZSByYXRlLCBkb3VibGUgZGVmYXVsdFBsYXliYWNrUmF0ZSkK
ICAgICBNdXRlZENoYW5nZWQoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmll
ciBjb250ZXh0SWQsIGJvb2wgbXV0ZWQpOwogICAgIFZvbHVtZUNoYW5nZWQoV2ViS2l0OjpQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGRvdWJsZSB2b2x1bWUpOwog
ICAgIFBpY3R1cmVJblBpY3R1cmVTdXBwb3J0ZWRDaGFuZ2VkKFdlYktpdDo6UGxheWJhY2tTZXNz
aW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBib29sIHBpY3R1cmVJblBpY3R1cmVTdXBw
b3J0ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Q
bGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubW0KaW5kZXggZmQxZDQ4MWZmN2Q3NjliODMxOTgw
NmNhNTFiZTE4MWQ2NGVmZmZhMS4uNDEzMDY4NWVlYmE1NGRlOWVhNjA3ZGUyOTkyZDJkYzkwNjE0
NDFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tT
ZXNzaW9uTWFuYWdlclByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1BsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tbQpAQCAtMTIxLDEzICsxMjEsMTMgQEAgdm9p
ZCBQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6OmVuZFNjYW5uaW5nKCkKICAgICAgICAgbV9t
YW5hZ2VyLT5lbmRTY2FubmluZyhtX2NvbnRleHRJZCk7CiB9CiAKLXZvaWQgUGxheWJhY2tTZXNz
aW9uTW9kZWxDb250ZXh0OjpzZXREZWZhdWx0UGxheWJhY2tSYXRlKGZsb2F0IGRlZmF1bHRQbGF5
YmFja1JhdGUpCit2b2lkIFBsYXliYWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6c2V0RGVmYXVsdFBs
YXliYWNrUmF0ZShkb3VibGUgZGVmYXVsdFBsYXliYWNrUmF0ZSkKIHsKICAgICBpZiAobV9tYW5h
Z2VyKQogICAgICAgICBtX21hbmFnZXItPnNldERlZmF1bHRQbGF5YmFja1JhdGUobV9jb250ZXh0
SWQsIGRlZmF1bHRQbGF5YmFja1JhdGUpOwogfQogCi12b2lkIFBsYXliYWNrU2Vzc2lvbk1vZGVs
Q29udGV4dDo6c2V0UGxheWJhY2tSYXRlKGZsb2F0IHBsYXliYWNrUmF0ZSkKK3ZvaWQgUGxheWJh
Y2tTZXNzaW9uTW9kZWxDb250ZXh0OjpzZXRQbGF5YmFja1JhdGUoZG91YmxlIHBsYXliYWNrUmF0
ZSkKIHsKICAgICBpZiAobV9tYW5hZ2VyKQogICAgICAgICBtX21hbmFnZXItPnNldFBsYXliYWNr
UmF0ZShtX2NvbnRleHRJZCwgcGxheWJhY2tSYXRlKTsKQEAgLTIwNiwxMyArMjA2LDE0IEBAIHZv
aWQgUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OjpidWZmZXJlZFRpbWVDaGFuZ2VkKGRvdWJs
ZSBidWZmZXJlZFRpbWUpCiAgICAgICAgIGNsaWVudC0+YnVmZmVyZWRUaW1lQ2hhbmdlZChidWZm
ZXJlZFRpbWUpOwogfQogCi12b2lkIFBsYXliYWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6cmF0ZUNo
YW5nZWQoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSwgZmxvYXQgZGVmYXVsdFBs
YXliYWNrUmF0ZSkKK3ZvaWQgUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OjpyYXRlQ2hhbmdl
ZChib29sIGlzUGxheWluZywgYm9vbCBpc1N0YWxsZWQsIGRvdWJsZSBwbGF5YmFja1JhdGUsIGRv
dWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKQogewogICAgIG1faXNQbGF5aW5nID0gaXNQbGF5aW5n
OworICAgIG1faXNTdGFsbGVkID0gaXNTdGFsbGVkOwogICAgIG1fcGxheWJhY2tSYXRlID0gcGxh
eWJhY2tSYXRlOwogICAgIG1fZGVmYXVsdFBsYXliYWNrUmF0ZSA9IGRlZmF1bHRQbGF5YmFja1Jh
dGU7CiAgICAgZm9yIChhdXRvKiBjbGllbnQgOiBtX2NsaWVudHMpCi0gICAgICAgIGNsaWVudC0+
cmF0ZUNoYW5nZWQobV9pc1BsYXlpbmcsIG1fcGxheWJhY2tSYXRlLCBtX2RlZmF1bHRQbGF5YmFj
a1JhdGUpOworICAgICAgICBjbGllbnQtPnJhdGVDaGFuZ2VkKG1faXNQbGF5aW5nLCBpc1N0YWxs
ZWQsIG1fcGxheWJhY2tSYXRlLCBtX2RlZmF1bHRQbGF5YmFja1JhdGUpOwogfQogCiB2b2lkIFBs
YXliYWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6c2Vla2FibGVSYW5nZXNDaGFuZ2VkKFdlYkNvcmU6
OlRpbWVSYW5nZXMmIHNlZWthYmxlUmFuZ2VzLCBkb3VibGUgbGFzdE1vZGlmaWVkVGltZSwgZG91
YmxlIGxpdmVVcGRhdGVJbnRlcnZhbCkKQEAgLTQ4OSw5ICs0OTAsOSBAQCB2b2lkIFBsYXliYWNr
U2Vzc2lvbk1hbmFnZXJQcm94eTo6cGxheWJhY2tTdGFydGVkVGltZUNoYW5nZWQoUGxheWJhY2tT
ZXNzaW9uQ29udAogICAgIGVuc3VyZU1vZGVsKGNvbnRleHRJZCkucGxheWJhY2tTdGFydGVkVGlt
ZUNoYW5nZWQocGxheWJhY2tTdGFydGVkVGltZSk7CiB9CiAKLXZvaWQgUGxheWJhY2tTZXNzaW9u
TWFuYWdlclByb3h5OjpyYXRlQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmll
ciBjb250ZXh0SWQsIGJvb2wgaXNQbGF5aW5nLCBkb3VibGUgcmF0ZSwgZG91YmxlIGRlZmF1bHRQ
bGF5YmFja1JhdGUpCit2b2lkIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6cmF0ZUNoYW5n
ZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBib29sIGlzUGxh
eWluZywgYm9vbCBpc1N0YWxsZWQsIGRvdWJsZSByYXRlLCBkb3VibGUgZGVmYXVsdFBsYXliYWNr
UmF0ZSkKIHsKLSAgICBlbnN1cmVNb2RlbChjb250ZXh0SWQpLnJhdGVDaGFuZ2VkKGlzUGxheWlu
ZywgcmF0ZSwgZGVmYXVsdFBsYXliYWNrUmF0ZSk7CisgICAgZW5zdXJlTW9kZWwoY29udGV4dElk
KS5yYXRlQ2hhbmdlZChpc1BsYXlpbmcsIGlzU3RhbGxlZCwgcmF0ZSwgZGVmYXVsdFBsYXliYWNr
UmF0ZSk7CiB9CiAKIHZvaWQgUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpwaWN0dXJlSW5Q
aWN0dXJlU3VwcG9ydGVkQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBj
b250ZXh0SWQsIGJvb2wgc3VwcG9ydGVkKQpAQCAtNTYzLDEyICs1NjQsMTIgQEAgdm9pZCBQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OmVuZFNjYW5uaW5nKFBsYXliYWNrU2Vzc2lvbkNvbnRl
eHRJZGVudGlmaWVyIGMKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlBsYXliYWNrU2Vzc2lv
bk1hbmFnZXI6OkVuZFNjYW5uaW5nKGNvbnRleHRJZCkpOwogfQogCi12b2lkIFBsYXliYWNrU2Vz
c2lvbk1hbmFnZXJQcm94eTo6c2V0RGVmYXVsdFBsYXliYWNrUmF0ZShQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUpCit2
b2lkIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6c2V0RGVmYXVsdFBsYXliYWNrUmF0ZShQ
bGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGRvdWJsZSBkZWZhdWx0
UGxheWJhY2tSYXRlKQogewogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6UGxheWJhY2tTZXNz
aW9uTWFuYWdlcjo6U2V0RGVmYXVsdFBsYXliYWNrUmF0ZShjb250ZXh0SWQsIGRlZmF1bHRQbGF5
YmFja1JhdGUpKTsKIH0KIAotdm9pZCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OnNldFBs
YXliYWNrUmF0ZShQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIGZs
b2F0IHBsYXliYWNrUmF0ZSkKK3ZvaWQgUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpzZXRQ
bGF5YmFja1JhdGUoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBk
b3VibGUgcGxheWJhY2tSYXRlKQogewogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6UGxheWJh
Y2tTZXNzaW9uTWFuYWdlcjo6U2V0UGxheWJhY2tSYXRlKGNvbnRleHRJZCwgcGxheWJhY2tSYXRl
KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVl
bi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tCmluZGV4IGUyNmEz
NmRjZjg5OTY1NmNkMmUwYzkyMTM5OTEzNGE0MWY5ZTU4OWMuLjEwMzU4MzZmY2RlY2I2YmJjODRi
MDU1OTFmYmY5YTYyOTE3NWJjZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9s
bGVyLm1tCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVy
UGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQgOiBXZWJDb3JlOjpQbGF5YmFja1NlCiBwdWJsaWM6
CiAgICAgdm9pZCBzZXRQYXJlbnQoV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgKnBhcmVudCkg
eyBtX3BhcmVudCA9IHBhcmVudDsgfQogCi0gICAgdm9pZCByYXRlQ2hhbmdlZChib29sIGlzUGxh
eWluZywgZmxvYXQgLyogcGxheWJhY2tSYXRlICovLCBmbG9hdCAvKiBkZWZhdWx0UGxheWJhY2tS
YXRlICovKSBvdmVycmlkZQorICAgIHZvaWQgcmF0ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcsIGJv
b2wgLyogaXNTdGFsbGVkICovLCBkb3VibGUgLyogcGxheWJhY2tSYXRlICovLCBkb3VibGUgLyog
ZGVmYXVsdFBsYXliYWNrUmF0ZSAqLykgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIG1fcGFyZW50
LnBsYXlpbmcgPSBpc1BsYXlpbmc7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmgKaW5kZXggMDk2Nzk3MTY0
Y2RmNGYwMzgxZmQ5MTFjMGU1ZjFjMjE2YjRlZDZkMC4uNTc2ZTI1MjU5NTYzNGZiMjNjN2M3ZGFm
ZGZlYmU0YmU0MzMxY2FmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oCkBAIC03NSw3ICs3NSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBjdXJyZW50VGltZUNoYW5nZWQoZG91YmxlIGN1cnJlbnRUaW1lLCBkb3Vi
bGUgYW5jaG9yVGltZSkgZmluYWw7CiAgICAgdm9pZCBidWZmZXJlZFRpbWVDaGFuZ2VkKGRvdWJs
ZSkgZmluYWw7CiAgICAgdm9pZCBwbGF5YmFja1N0YXJ0ZWRUaW1lQ2hhbmdlZChkb3VibGUgcGxh
eWJhY2tTdGFydGVkVGltZSkgZmluYWw7Ci0gICAgdm9pZCByYXRlQ2hhbmdlZChib29sIGlzUGxh
eWluZywgZmxvYXQgcGxheWJhY2tSYXRlLCBmbG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKSBmaW5h
bDsKKyAgICB2b2lkIHJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBib29sIGlzU3RhbGxlZCwg
ZG91YmxlIHBsYXliYWNrUmF0ZSwgZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUpIGZpbmFsOwog
ICAgIHZvaWQgc2Vla2FibGVSYW5nZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OlRpbWVSYW5nZXMm
LCBkb3VibGUgbGFzdE1vZGlmaWVkVGltZSwgZG91YmxlIGxpdmVVcGRhdGVJbnRlcnZhbCkgZmlu
YWw7CiAgICAgdm9pZCBjYW5QbGF5RmFzdFJldmVyc2VDaGFuZ2VkKGJvb2wgdmFsdWUpIGZpbmFs
OwogICAgIHZvaWQgYXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnNDaGFuZ2VkKGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpNZWRpYVNlbGVjdGlvbk9wdGlvbj4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVj
dGVkSW5kZXgpIGZpbmFsOwpAQCAtMTMwLDcgKzEzMCw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lk
IGN1cnJlbnRUaW1lQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgZG91
YmxlIGN1cnJlbnRUaW1lLCBkb3VibGUgYW5jaG9yVGltZSk7CiAgICAgdm9pZCBidWZmZXJlZFRp
bWVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBkb3VibGUgYnVmZmVy
ZWRUaW1lKTsKICAgICB2b2lkIHBsYXliYWNrU3RhcnRlZFRpbWVDaGFuZ2VkKFBsYXliYWNrU2Vz
c2lvbkNvbnRleHRJZGVudGlmaWVyLCBkb3VibGUgcGxheWJhY2tTdGFydGVkVGltZSk7Ci0gICAg
dm9pZCByYXRlQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgYm9vbCBp
c1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSwgZmxvYXQgZGVmYXVsdFBsYXliYWNrUmF0ZSk7
CisgICAgdm9pZCByYXRlQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwg
Ym9vbCBpc1BsYXlpbmcsIGJvb2wgaXNTdGFsbGVkLCBkb3VibGUgcGxheWJhY2tSYXRlLCBkb3Vi
bGUgZGVmYXVsdFBsYXliYWNrUmF0ZSk7CiAgICAgdm9pZCBzZWVrYWJsZVJhbmdlc0NoYW5nZWQo
UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlRpbWVSYW5n
ZXMmLCBkb3VibGUgbGFzdE1vZGlmaWVkVGltZSwgZG91YmxlIGxpdmVVcGRhdGVJbnRlcnZhbCk7
CiAgICAgdm9pZCBjYW5QbGF5RmFzdFJldmVyc2VDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRl
eHRJZGVudGlmaWVyLCBib29sIHZhbHVlKTsKICAgICB2b2lkIGF1ZGlvTWVkaWFTZWxlY3Rpb25P
cHRpb25zQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgVmVj
dG9yPFdlYkNvcmU6Ok1lZGlhU2VsZWN0aW9uT3B0aW9uPiYgb3B0aW9ucywgdWludDY0X3Qgc2Vs
ZWN0ZWRJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tCmluZGV4IDM0NjQzZjliZTU5MjI2NDRjMGE4MTYz
NzQzMDk4YjAwMTMxMWEyMDcuLmQ2MzIyYmUwM2U2MDNmNjM0NGZlYjc1Y2Y2OTljYzVlN2VlMDM4
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9QbGF5YmFja1Nl
c3Npb25NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9QbGF5
YmFja1Nlc3Npb25NYW5hZ2VyLm1tCkBAIC03NiwxMCArNzYsMTAgQEAgdm9pZCBQbGF5YmFja1Nl
c3Npb25JbnRlcmZhY2VDb250ZXh0OjpidWZmZXJlZFRpbWVDaGFuZ2VkKGRvdWJsZSBidWZmZXJl
ZFRpbWUpCiAgICAgICAgIG1fbWFuYWdlci0+YnVmZmVyZWRUaW1lQ2hhbmdlZChtX2NvbnRleHRJ
ZCwgYnVmZmVyZWRUaW1lKTsKIH0KIAotdm9pZCBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VDb250
ZXh0OjpyYXRlQ2hhbmdlZChib29sIGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRlLCBmbG9h
dCBkZWZhdWx0UGxheWJhY2tSYXRlKQordm9pZCBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VDb250
ZXh0OjpyYXRlQ2hhbmdlZChib29sIGlzUGxheWluZywgYm9vbCBpc1N0YWxsZWQsIGRvdWJsZSBw
bGF5YmFja1JhdGUsIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKQogewogICAgIGlmIChtX21h
bmFnZXIpCi0gICAgICAgIG1fbWFuYWdlci0+cmF0ZUNoYW5nZWQobV9jb250ZXh0SWQsIGlzUGxh
eWluZywgcGxheWJhY2tSYXRlLCBkZWZhdWx0UGxheWJhY2tSYXRlKTsKKyAgICAgICAgbV9tYW5h
Z2VyLT5yYXRlQ2hhbmdlZChtX2NvbnRleHRJZCwgaXNQbGF5aW5nLCBpc1N0YWxsZWQsIHBsYXli
YWNrUmF0ZSwgZGVmYXVsdFBsYXliYWNrUmF0ZSk7CiB9CiAKIHZvaWQgUGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlQ29udGV4dDo6cGxheWJhY2tTdGFydGVkVGltZUNoYW5nZWQoZG91YmxlIHBsYXli
YWNrU3RhcnRlZFRpbWUpCkBAIC0zNDEsOSArMzQxLDkgQEAgdm9pZCBQbGF5YmFja1Nlc3Npb25N
YW5hZ2VyOjpwbGF5YmFja1N0YXJ0ZWRUaW1lQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250ZXh0
SWQKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94
eTo6UGxheWJhY2tTdGFydGVkVGltZUNoYW5nZWQoY29udGV4dElkLCBwbGF5YmFja1N0YXJ0ZWRU
aW1lKSk7CiB9CiAKLXZvaWQgUGxheWJhY2tTZXNzaW9uTWFuYWdlcjo6cmF0ZUNoYW5nZWQoUGxh
eWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBib29sIGlzUGxheWluZywg
ZmxvYXQgcGxheWJhY2tSYXRlLCBmbG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKQordm9pZCBQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyOjpyYXRlQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRl
bnRpZmllciBjb250ZXh0SWQsIGJvb2wgaXNQbGF5aW5nLCBib29sIGlzU3RhbGxlZCwgZG91Ymxl
IHBsYXliYWNrUmF0ZSwgZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUpCiB7Ci0gICAgbV9wYWdl
LT5zZW5kKE1lc3NhZ2VzOjpQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OlJhdGVDaGFuZ2Vk
KGNvbnRleHRJZCwgaXNQbGF5aW5nLCBwbGF5YmFja1JhdGUsIGRlZmF1bHRQbGF5YmFja1JhdGUp
KTsKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94
eTo6UmF0ZUNoYW5nZWQoY29udGV4dElkLCBpc1BsYXlpbmcsIGlzU3RhbGxlZCwgcGxheWJhY2tS
YXRlLCBkZWZhdWx0UGxheWJhY2tSYXRlKSk7CiB9CiAKIHZvaWQgUGxheWJhY2tTZXNzaW9uTWFu
YWdlcjo6c2Vla2FibGVSYW5nZXNDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlm
aWVyIGNvbnRleHRJZCwgY29uc3QgV2ViQ29yZTo6VGltZVJhbmdlcyYgdGltZVJhbmdlcywgZG91
YmxlIGxhc3RNb2RpZmllZFRpbWUsIGRvdWJsZSBsaXZlVXBkYXRlSW50ZXJ2YWwpCg==
</data>
<flag name="review"
          id="453289"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431727</attachid>
            <date>2021-06-17 15:11:36 -0700</date>
            <delta_ts>2021-06-18 12:15:48 -0700</delta_ts>
            <desc>Revise the patch based on Devin and Eric&apos;s comments</desc>
            <filename>bug-227047-20210617151135.patch</filename>
            <type>text/plain</type>
            <size>43356</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4OTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRhYjU4YjcyNjUzNjdi
OWZkZjY0NGFjZDc4N2ZkYjc5ZjQ0NDRjZC4uN2RkMTdlNDhkNTIzNjg2MGU3ZWQ0NDFjOTYxNjBh
NGM4OWQyZWEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTA2LTE3ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRnVsbHNjcmVlbiB2
aWRlbyBwbGF5YmFjayBnZXRzIHN0dWNrIGFmdGVyIGludGVyYWN0aW5nIHdpdGggdGhlIHBsYXli
YWNrIGNvbnRyb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjcwNDcKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAg
ICAgV2hlbiB3ZSBzY3J1YiBhIHBsYXlpbmcgdmlkZW8sIHRoZSB2aWRlbyBlbGVtZW50IG1heSBl
bnRlciBhIHRlbXBvcmFyaWx5IHN0YWxsZWQKKyAgICAgICAgc3RhdGUgLSB0aGUgcGxheWVyIGlz
IHN0aWxsIHBsYXlpbmcsIGJ1dCBpdCBkb2VzIG5vdCBoYXZlIGVub3VnaCBkYXRhLiBJbiBXZWJL
aXQsCisgICAgICAgIHRoZSBgcmF0ZWAgb2YgdGhlIHBsYXllciB3aWxsIGJlIDAuIEJ1dCB3ZSBj
YW5ub3Qgc2V0IHRoZSByYXRlIG9mIGBXZWJBVlBsYXllckNvbnRyb2xsZXJgCisgICAgICAgIHRv
IDAgaW4gdGhpcyBjYXNlLCBiZWNhdXNlIEFWS2l0IHdpbGwgYmVsaWV2ZSB0aGUgdmlkZW8gcGxh
eWJhY2sgaXMgcGF1c2VkIHdoZW4KKyAgICAgICAgaXRzIHJhdGUgaXMgMC4gSW4gcjI2MTU4Nywg
d2UgZGVmaW5lZCBhIG1hZ2ljIHJhdGUgKDAuMDAwMDAwMDFmKSBmb3IgdGhpcyBjYXNlLgorCisg
ICAgICAgIFVuZm9ydHVuYXRlbHksIHdpdGggdGhlIGNoYW5nZXMgaW4gcjI3NTk1NiwgYFdlYkFW
UGxheWVyQ29udHJvbGxlcmAgd2lsbAorICAgICAgICBhbGlnbiBpdHMgYGRlZmF1bHRQbGF5YmFj
a1JhdGVgIHdpdGggYHJhdGVgIHdoZW4gYHJhdGVgIGlzIG5vdCAwLiBVbmRlciBzdHJlc3MKKyAg
ICAgICAgdGVzdHMsIGUuZy4sIGtlZXAgc2NydWJiaW5nIGEgdmlkZW8sIGEgdmlkZW8gZWxlbWVu
dCB3aWxsIGV2ZW50dWFsbHkgZW50ZXIgYSBzdGF0ZQorICAgICAgICBpbiB3aGljaCBib3RoIGBk
ZWZhdWx0UGxheWJhY2tSYXRlYCBhbmQgYHJhdGVgIGFyZSB0aGUgbWFnaWMgcmF0ZS4gQW5kIHRo
ZSB2aWRlbworICAgICAgICBhcHBlYXJzIHRvIGJlIHN0dWNrIGZvciB1c2Vycy4KKworICAgICAg
ICBUbyBmaXggdGhlIGlzc3VlLCB0aGlzIHBhdGNoIHJlbW92ZXMgdGhlIG1hZ2ljIHJhdGUgYW5k
IGRlZmluZXMgYSBuZXcgc3RhdGU6IGBzdGFsbGVkYC4KKyAgICAgICAgQSB2aWRlbyB3aWxsIGJl
IGluIHRoZSBzdGFsbGVkIHN0YXRlIHdoZW4gaXQgaXMgcGxheWluZyBidXQgZG9lcyBub3QgaGF2
ZSBlbm91Z2ggZGF0YS4KKyAgICAgICAgV2ViS2l0IHdpbGwgb25seSBjaGFuZ2UgdGhlIHJhdGUg
b2YgYFdlYkFWUGxheWVyQ29udHJvbGxlcmAgd2hlbiB0aGUgdmlkZW8KKyAgICAgICAgaXMgbm90
IHN0YWxsZWQuCisKKyAgICAgICAgVG8gYXZvaWQgcG90ZW50aWFsIHByb2JsZW1zIGR1ZSB0byB0
aGUgY29udmVyc2lvbnMgYmV0d2VlbiAiZmxvYXQiIGFuZCAiZG91YmxlIgorICAgICAgICBiYWNr
IGFuZCBmb3J0aCwgdGhpcyBwYXRjaCB1cGRhdGVzIHRoZSB0eXBlcyBvZiBgcGxheWJhY2tSYXRl
YCBhbmQgYGRlZmF1bHRQbGF5YmFja1JhdGVgLgorCisgICAgICAgICogcGxhdGZvcm0vY29jb2Ev
UGxheWJhY2tTZXNzaW9uTW9kZWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lv
bk1vZGVsQ2xpZW50OjpyYXRlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvUGxh
eWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2Nv
YS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Ojp1cGRhdGVGb3JFdmVudE5hbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnNldERl
ZmF1bHRQbGF5YmFja1JhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uTW9k
ZWxNZWRpYUVsZW1lbnQ6OnNldFBsYXliYWNrUmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF5
YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6ZGVmYXVsdFBsYXliYWNrUmF0ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6cGxh
eWJhY2tSYXRlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlQVZLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUGxheWJhY2tTZXNzaW9u
SW50ZXJmYWNlQVZLaXQubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2VBVktpdDo6UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OnJhdGVDaGFuZ2VkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tOgor
ICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OnJhdGVDaGFuZ2VkKToK
KyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpzZXREZWZhdWx0UGxh
eWJhY2tSYXRlKToKKyAgICAgICAgKFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0Ojpz
ZXRQbGF5YmFja1JhdGUpOgorICAgICAgICAoVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRl
eHQ6OmlzU3RhbGxlZCBjb25zdCk6CisgICAgICAgIChWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
Q29udGV4dDo6ZGVmYXVsdFBsYXliYWNrUmF0ZSBjb25zdCk6CisgICAgICAgIChWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyQ29udGV4dDo6cGxheWJhY2tSYXRlIGNvbnN0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYzo6cmF0ZUNoYW5nZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpyYXRlQ2hhbmdlZCk6CisKIDIwMjEt
MDYtMTYgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBTb21lIGh0
dHAvdGVzdHMvIGFyZSBjcmFzaGluZyB3aXRoIEFTU0VSVElPTiBGQUlMRUQ6IGlzSW5Sb3V0aW5n
QXJiaXRyYXRpb25Gb3JUb2tlbih0b2tlbikgfHwgbV9zZXR1cEFyYml0cmF0aW9uT25nb2luZwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCBmM2U3MjE5MWYxMmJkYTk4NWE1YTExYThkOGI3YWU0YTkyZDI3ZGVhLi4yYTFl
NzVmN2MxMzUzOGRmNDgwNjZkNWYwOTRlN2ZlMjI3MTU1NjM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQ3IEBACisyMDIxLTA2LTE3ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAg
ICAgICAgW2lPU10gRnVsbHNjcmVlbiB2aWRlbyBwbGF5YmFjayBnZXRzIHN0dWNrIGFmdGVyIGlu
dGVyYWN0aW5nIHdpdGggdGhlIHBsYXliYWNrIGNvbnRyb2xzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcwNDcKKworICAgICAgICBSZXZpZXdlZCBi
eSBFcmljIENhcmxzb24uCisKKyAgICAgICAgV2hlbiB3ZSBzY3J1YiBhIHBsYXlpbmcgdmlkZW8s
IHRoZSB2aWRlbyBlbGVtZW50IG1heSBlbnRlciBhIHRlbXBvcmFyaWx5IHN0YWxsZWQKKyAgICAg
ICAgc3RhdGUgLSB0aGUgcGxheWVyIGlzIHN0aWxsIHBsYXlpbmcsIGJ1dCBpdCBkb2VzIG5vdCBo
YXZlIGVub3VnaCBkYXRhLiBJbiBXZWJLaXQsCisgICAgICAgIHRoZSBgcmF0ZWAgb2YgdGhlIHBs
YXllciB3aWxsIGJlIDAuIEJ1dCB3ZSBjYW5ub3Qgc2V0IHRoZSByYXRlIG9mIGBXZWJBVlBsYXll
ckNvbnRyb2xsZXJgCisgICAgICAgIHRvIDAgaW4gdGhpcyBjYXNlLCBiZWNhdXNlIEFWS2l0IHdp
bGwgYmVsaWV2ZSB0aGUgdmlkZW8gcGxheWJhY2sgaXMgcGF1c2VkIHdoZW4KKyAgICAgICAgaXRz
IHJhdGUgaXMgMC4gSW4gcjI2MTU4Nywgd2UgZGVmaW5lZCBhIG1hZ2ljIHJhdGUgKDAuMDAwMDAw
MDFmKSBmb3IgdGhpcyBjYXNlLgorCisgICAgICAgIFVuZm9ydHVuYXRlbHksIHdpdGggdGhlIGNo
YW5nZXMgaW4gcjI3NTk1NiwgYFdlYkFWUGxheWVyQ29udHJvbGxlcmAgd2lsbAorICAgICAgICBh
bGlnbiBpdHMgYGRlZmF1bHRQbGF5YmFja1JhdGVgIHdpdGggYHJhdGVgIHdoZW4gYHJhdGVgIGlz
IG5vdCAwLiBVbmRlciBzdHJlc3MKKyAgICAgICAgdGVzdHMsIGUuZy4sIGtlZXAgc2NydWJiaW5n
IGEgdmlkZW8sIGEgdmlkZW8gZWxlbWVudCB3aWxsIGV2ZW50dWFsbHkgZW50ZXIgYSBzdGF0ZQor
ICAgICAgICBpbiB3aGljaCBib3RoIGBkZWZhdWx0UGxheWJhY2tSYXRlYCBhbmQgYHJhdGVgIGFy
ZSB0aGUgbWFnaWMgcmF0ZS4gQW5kIHRoZSB2aWRlbworICAgICAgICBhcHBlYXJzIHRvIGJlIHN0
dWNrIGZvciB1c2Vycy4KKworICAgICAgICBUbyBmaXggdGhlIGlzc3VlLCB0aGlzIHBhdGNoIHJl
bW92ZXMgdGhlIG1hZ2ljIHJhdGUgYW5kIGRlZmluZXMgYSBuZXcgc3RhdGU6IGBzdGFsbGVkYC4K
KyAgICAgICAgQSB2aWRlbyB3aWxsIGJlIGluIHRoZSBzdGFsbGVkIHN0YXRlIHdoZW4gaXQgaXMg
cGxheWluZyBidXQgZG9lcyBub3QgaGF2ZSBlbm91Z2ggZGF0YS4KKyAgICAgICAgV2ViS2l0IHdp
bGwgb25seSBjaGFuZ2UgdGhlIHJhdGUgb2YgYFdlYkFWUGxheWVyQ29udHJvbGxlcmAgd2hlbiB0
aGUgdmlkZW8KKyAgICAgICAgaXMgbm90IHN0YWxsZWQuCisKKyAgICAgICAgVG8gYXZvaWQgcG90
ZW50aWFsIHByb2JsZW1zIGR1ZSB0byB0aGUgY29udmVyc2lvbnMgYmV0d2VlbiAiZmxvYXQiIGFu
ZCAiZG91YmxlIgorICAgICAgICBiYWNrIGFuZCBmb3J0aCwgdGhpcyBwYXRjaCB1cGRhdGVzIHRo
ZSB0eXBlcyBvZiBgcGxheWJhY2tSYXRlYCBhbmQgYGRlZmF1bHRQbGF5YmFja1JhdGVgLgorCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgIChoZWFkZXJzX2Zv
cl90eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdl
clByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tT
ZXNzaW9uTWFuYWdlclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25N
b2RlbENvbnRleHQ6OnNldERlZmF1bHRQbGF5YmFja1JhdGUpOgorICAgICAgICAoV2ViS2l0OjpQ
bGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6OnNldFBsYXliYWNrUmF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6cmF0ZUNoYW5nZWQpOgorICAgICAg
ICAoV2ViS2l0OjpQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OnJhdGVDaGFuZ2VkKToKKyAg
ICAgICAgKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpzZXREZWZhdWx0UGxh
eWJhY2tSYXRlKToKKyAgICAgICAgKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5
OjpzZXRQbGF5YmFja1JhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9X
S0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1BsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1Bs
YXliYWNrU2Vzc2lvbk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lv
bkludGVyZmFjZUNvbnRleHQ6OnJhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UGxheWJh
Y2tTZXNzaW9uTWFuYWdlcjo6cmF0ZUNoYW5nZWQpOgorCiAyMDIxLTA2LTE2ICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFt3YXRjaE9TXSBSZWVuYWJs
ZSBtb2Rlcm4gdGV4dCBpbnB1dCBVSSBmb3Igbm9uLW51bWVyaWMgdGV4dCBpbnB1dCB0eXBlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxheWJhY2tTZXNzaW9u
TW9kZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1v
ZGVsLmgKaW5kZXggNTA3MTcxYTQxNjZjZTYwMjM0Y2Q3ZGNkZjRmOTY5MThjZjRkY2E4NS4uMWMy
ZjJkNGY2YTIyZWQ4OTk3ODU2NGExZDA5NWJiYTYxNjZmOWFkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbC5oCkBAIC01NSw4
ICs1NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5TY2FubmluZ0ZvcndhcmQo
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGJlZ2luU2Nhbm5pbmdCYWNrd2FyZCgpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZW5kU2Nhbm5pbmcoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldERl
ZmF1bHRQbGF5YmFja1JhdGUoZmxvYXQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UGxheWJh
Y2tSYXRlKGZsb2F0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldERlZmF1bHRQbGF5YmFja1Jh
dGUoZG91YmxlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFBsYXliYWNrUmF0ZShkb3VibGUp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBp
bmRleCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWlu
dDY0X3QgaW5kZXgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlUGljdHVyZUluUGljdHVy
ZSgpID0gMDsKQEAgLTcyLDEwICs3MiwxNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBkb3VibGUg
ZHVyYXRpb24oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBkb3VibGUgY3VycmVudFRpbWUoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBkb3VibGUgYnVmZmVyZWRUaW1lKCkgY29uc3QgPSAwOwor
CisgICAgZW51bSBjbGFzcyBQbGF5YmFja1N0YXRlIHsKKyAgICAgICAgUGxheWluZyA9IDEgPDwg
MCwKKyAgICAgICAgU3RhbGxlZCA9IDEgPDwgMSwKKyAgICB9OwogICAgIHZpcnR1YWwgYm9vbCBp
c1BsYXlpbmcoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGlzU3RhbGxlZCgpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNTY3J1YmJpbmcoKSBjb25zdCA9IDA7Ci0gICAgdmly
dHVhbCBmbG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwg
ZmxvYXQgcGxheWJhY2tSYXRlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgZG91YmxlIGRlZmF1
bHRQbGF5YmFja1JhdGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBkb3VibGUgcGxheWJhY2tS
YXRlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUmVmPFRpbWVSYW5nZXM+IHNlZWthYmxlUmFu
Z2VzKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgZG91YmxlIHNlZWthYmxlVGltZVJhbmdlc0xh
c3RNb2RpZmllZFRpbWUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBkb3VibGUgbGl2ZVVwZGF0
ZUludGVydmFsKCkgY29uc3QgPSAwOwpAQCAtMTAxLDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgY3VycmVudFRpbWVDaGFuZ2VkKGRvdWJsZSAvKiBjdXJyZW50VGltZSAqLywg
ZG91YmxlIC8qIGFuY2hvclRpbWUgKi8pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBidWZmZXJlZFRp
bWVDaGFuZ2VkKGRvdWJsZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrU3RhcnRlZFRp
bWVDaGFuZ2VkKGRvdWJsZSAvKiBwbGF5YmFja1N0YXJ0ZWRUaW1lICovKSB7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgcmF0ZUNoYW5nZWQoYm9vbCAvKiBpc1BsYXlpbmcgKi8sIGZsb2F0IC8qIHBsYXli
YWNrUmF0ZSAqLywgZmxvYXQgLyogZGVmYXVsdFBsYXliYWNrUmF0ZSAqLykgeyB9CisgICAgdmly
dHVhbCB2b2lkIHJhdGVDaGFuZ2VkKE9wdGlvblNldDxQbGF5YmFja1Nlc3Npb25Nb2RlbDo6UGxh
eWJhY2tTdGF0ZT4sIGRvdWJsZSAvKiBwbGF5YmFja1JhdGUgKi8sIGRvdWJsZSAvKiBkZWZhdWx0
UGxheWJhY2tSYXRlICovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2Vla2FibGVSYW5nZXNDaGFu
Z2VkKGNvbnN0IFRpbWVSYW5nZXMmLCBkb3VibGUgLyogbGFzdE1vZGlmaWVkICovLCBkb3VibGUg
LyogbGl2ZUludGVydmFsICovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2FuUGxheUZhc3RSZXZl
cnNlQ2hhbmdlZChib29sKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXVkaW9NZWRpYVNlbGVjdGlv
bk9wdGlvbnNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxNZWRpYVNlbGVjdGlvbk9wdGlvbj4mIC8qIG9w
dGlvbnMgKi8sIHVpbnQ2NF90IC8qIHNlbGVjdGVkSW5kZXggKi8pIHsgfQpAQCAtMTE4LDYgKzEy
NCwxOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG1vZGVsRGVzdHJveWVkKCkgeyB9CiB9
OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbk1vZGVsOjpQ
bGF5YmFja1N0YXRlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
V2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uTW9kZWw6OlBsYXliYWNrU3RhdGUsCisgICAgICAgIFdl
YkNvcmU6OlBsYXliYWNrU2Vzc2lvbk1vZGVsOjpQbGF5YmFja1N0YXRlOjpQbGF5aW5nLAorICAg
ICAgICBXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25Nb2RlbDo6UGxheWJhY2tTdGF0ZTo6U3RhbGxl
ZAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKIAogI2VuZGlmIC8vIFBMQVRGT1JN
KElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJ
T05fTU9ERSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5
YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQuaAppbmRleCAzOWM2ZDVkYWMx
NjMyZDdmZjM4OTA3YTA5Y2VlY2Y2MDE3OGY4MjkzLi4zYjY3NDdmZmVhMWQzNzFmODUwNWY5NzRi
MzFhZjlmYjhiYTgzM2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50LmgKQEAgLTY4
LDggKzY4LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYmVnaW5TY2Fubmlu
Z0ZvcndhcmQoKSBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGJlZ2luU2Nhbm5pbmdC
YWNrd2FyZCgpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5kU2Nhbm5pbmcoKSBm
aW5hbDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERlZmF1bHRQbGF5YmFja1JhdGUoZmxv
YXQpIGZpbmFsOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UGxheWJhY2tSYXRlKGZsb2F0
KSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERlZmF1bHRQbGF5YmFja1JhdGUo
ZG91YmxlKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFBsYXliYWNrUmF0ZShk
b3VibGUpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VsZWN0QXVkaW9NZWRpYU9w
dGlvbih1aW50NjRfdCBpbmRleCkgZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZWxl
Y3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpIGZpbmFsOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgdG9nZ2xlUGljdHVyZUluUGljdHVyZSgpIGZpbmFsOwpAQCAtODMsOSArODMs
MTAgQEAgcHVibGljOgogICAgIGRvdWJsZSBjdXJyZW50VGltZSgpIGNvbnN0IGZpbmFsOwogICAg
IGRvdWJsZSBidWZmZXJlZFRpbWUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzUGxheWluZygp
IGNvbnN0IGZpbmFsOworICAgIGJvb2wgaXNTdGFsbGVkKCkgY29uc3QgZmluYWw7CiAgICAgYm9v
bCBpc1NjcnViYmluZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgZmxvYXQg
ZGVmYXVsdFBsYXliYWNrUmF0ZSgpIGNvbnN0IGZpbmFsOwotICAgIGZsb2F0IHBsYXliYWNrUmF0
ZSgpIGNvbnN0IGZpbmFsOworICAgIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3Qg
ZmluYWw7CisgICAgZG91YmxlIHBsYXliYWNrUmF0ZSgpIGNvbnN0IGZpbmFsOwogICAgIFJlZjxU
aW1lUmFuZ2VzPiBzZWVrYWJsZVJhbmdlcygpIGNvbnN0IGZpbmFsOwogICAgIGRvdWJsZSBzZWVr
YWJsZVRpbWVSYW5nZXNMYXN0TW9kaWZpZWRUaW1lKCkgY29uc3QgZmluYWw7CiAgICAgZG91Ymxl
IGxpdmVVcGRhdGVJbnRlcnZhbCgpIGNvbnN0IGZpbmFsOwpAQCAtMTA5LDcgKzExMCw2IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBwcm9ncmVzc0V2ZW50VGltZXJGaXJlZCgpOwogICAgIHN0YXRpYyBj
b25zdCBWZWN0b3I8V1RGOjpBdG9tU3RyaW5nPiYgb2JzZXJ2ZWRFdmVudE5hbWVzKCk7CiAgICAg
Y29uc3QgV1RGOjpBdG9tU3RyaW5nJiBldmVudE5hbWVBbGwoKTsKLSAgICBib29sIGlzU3RhbGxl
ZCgpIGNvbnN0OwogCiAgICAgUmVmUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IG1fbWVkaWFFbGVtZW50
OwogICAgIGJvb2wgbV9pc0xpc3RlbmluZyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1vZGVsTWVk
aWFFbGVtZW50Lm1tCmluZGV4IGUwNTdmOTdkMTQ0MjliNzJiMjk1NGFiZTE3ZjhjYTU4OGRmMWE3
YzUuLjRiM2QzMTkxZjUzMGQ2MTMwNjkyZWQ1Yjc0MDc2ZmRmNzZmZWFmMmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFF
bGVtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXliYWNrU2Vz
c2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tCkBAIC00NywxMyArNDcsNiBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLS8vIFRoaXMgaXMgdGhlIHJhdGUgd2hpY2ggd2UgcmVwb3J0IHRvIG91ciBj
bGllbnRzLCBuYW1lbHkgQVZLaXQsIHdoZW4gcGxheWJhY2sgaGFzIHN0YWxsZWQuCi0vLyBUaGUg
dmFsdWUgbXVzdCBiZSBub24temVybywgc28gYXMgdG8gZGlmZmVyZW50aWF0ZSAicGxheWluZy1i
dXQtc3RhbGxlZCIgZnJvbSAicGF1c2VkIi4gQnV0Ci0vLyB0aGUgdmFsdWUgYWxzbyBtdXN0IGJl
IHZlcnkgc21hbGwsIHNvIHRoZXJlIGlzIG5vIHZpc2libGUgbW92ZW1lbnQgaW4gdGhlIHN5c3Rl
bSBwcm92aWRlZAotLy8gdGltZWxpbmUgc2xpZGVyIHdoZW4gc3RhbGxlZC4gVGhlIHZhbHVlIGJl
bG93IHdpbGwgY2F1c2UgdGhlIHNsaWRlciB0byBtb3ZlIDEgc2Vjb25kIGV2ZXJ5Ci0vLyAzIHll
YXJzLCBzbyBtZWV0cyBib3RoIGdvYWxzLgotc3RhdGljIGNvbnN0IGZsb2F0IFN0YWxsZWRQbGF5
YmFja1JhdGUgPSAwLjAwMDAwMDAxZjsKLQogUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1l
bnQ6OlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50KCkKICAgICA6IEV2ZW50TGlzdGVu
ZXIoRXZlbnRMaXN0ZW5lcjo6Q1BQRXZlbnRMaXN0ZW5lclR5cGUpCiB7CkBAIC0xNjIsMTEgKzE1
NSwxNiBAQCB2b2lkIFBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Ojp1cGRhdGVGb3JF
dmVudE5hbWUoY29uc3QgV1RGOjpBdG9tU3RyaW5nJgogICAgICAgICB8fCBldmVudE5hbWUgPT0g
ZXZlbnROYW1lcygpLnJhdGVjaGFuZ2VFdmVudAogICAgICAgICB8fCBldmVudE5hbWUgPT0gZXZl
bnROYW1lcygpLndhaXRpbmdFdmVudAogICAgICAgICB8fCBldmVudE5hbWUgPT0gZXZlbnROYW1l
cygpLmNhbnBsYXlFdmVudCkgewotICAgICAgICBib29sIGlzUGxheWluZyA9IHRoaXMtPmlzUGxh
eWluZygpOwotICAgICAgICBmbG9hdCBwbGF5YmFja1JhdGUgPSBpc1N0YWxsZWQoKSA/IFN0YWxs
ZWRQbGF5YmFja1JhdGUgOiB0aGlzLT5wbGF5YmFja1JhdGUoKTsKLSAgICAgICAgZmxvYXQgZGVm
YXVsdFBsYXliYWNrUmF0ZSA9IHRoaXMtPmRlZmF1bHRQbGF5YmFja1JhdGUoKTsKKyAgICAgICAg
T3B0aW9uU2V0PFBsYXliYWNrU2Vzc2lvbk1vZGVsOjpQbGF5YmFja1N0YXRlPiBwbGF5YmFja1N0
YXRlOworICAgICAgICBpZiAoaXNQbGF5aW5nKCkpCisgICAgICAgICAgICBwbGF5YmFja1N0YXRl
LmFkZChQbGF5YmFja1Nlc3Npb25Nb2RlbDo6UGxheWJhY2tTdGF0ZTo6UGxheWluZyk7CisgICAg
ICAgIGlmIChpc1N0YWxsZWQoKSkKKyAgICAgICAgICAgIHBsYXliYWNrU3RhdGUuYWRkKFBsYXli
YWNrU2Vzc2lvbk1vZGVsOjpQbGF5YmFja1N0YXRlOjpTdGFsbGVkKTsKKworICAgICAgICBkb3Vi
bGUgcGxheWJhY2tSYXRlID0gIHRoaXMtPnBsYXliYWNrUmF0ZSgpOworICAgICAgICBkb3VibGUg
ZGVmYXVsdFBsYXliYWNrUmF0ZSA9IHRoaXMtPmRlZmF1bHRQbGF5YmFja1JhdGUoKTsKICAgICAg
ICAgZm9yIChhdXRvIGNsaWVudCA6IG1fY2xpZW50cykKLSAgICAgICAgICAgIGNsaWVudC0+cmF0
ZUNoYW5nZWQoaXNQbGF5aW5nLCBwbGF5YmFja1JhdGUsIGRlZmF1bHRQbGF5YmFja1JhdGUpOwor
ICAgICAgICAgICAgY2xpZW50LT5yYXRlQ2hhbmdlZChwbGF5YmFja1N0YXRlLCBwbGF5YmFja1Jh
dGUsIGRlZmF1bHRQbGF5YmFja1JhdGUpOwogICAgIH0KIAogICAgIGlmIChhbGwKQEAgLTMwMiwx
MyArMzAwLDEzIEBAIHZvaWQgUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmVuZFNj
YW5uaW5nKCkKICAgICAgICAgbV9tZWRpYUVsZW1lbnQtPmVuZFNjYW5uaW5nKCk7CiB9CiAKLXZv
aWQgUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnNldERlZmF1bHRQbGF5YmFja1Jh
dGUoZmxvYXQgZGVmYXVsdFBsYXliYWNrUmF0ZSkKK3ZvaWQgUGxheWJhY2tTZXNzaW9uTW9kZWxN
ZWRpYUVsZW1lbnQ6OnNldERlZmF1bHRQbGF5YmFja1JhdGUoZG91YmxlIGRlZmF1bHRQbGF5YmFj
a1JhdGUpCiB7CiAgICAgaWYgKG1fbWVkaWFFbGVtZW50KQogICAgICAgICBtX21lZGlhRWxlbWVu
dC0+c2V0RGVmYXVsdFBsYXliYWNrUmF0ZShkZWZhdWx0UGxheWJhY2tSYXRlKTsKIH0KIAotdm9p
ZCBQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6c2V0UGxheWJhY2tSYXRlKGZsb2F0
IHBsYXliYWNrUmF0ZSkKK3ZvaWQgUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnNl
dFBsYXliYWNrUmF0ZShkb3VibGUgcGxheWJhY2tSYXRlKQogewogICAgIGlmIChtX21lZGlhRWxl
bWVudCkKICAgICAgICAgbV9tZWRpYUVsZW1lbnQtPnNldFBsYXliYWNrUmF0ZShwbGF5YmFja1Jh
dGUpOwpAQCAtNDgxLDEyICs0NzksMTIgQEAgYm9vbCBQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlh
RWxlbWVudDo6aXNTdGFsbGVkKCkgY29uc3QKICAgICByZXR1cm4gbV9tZWRpYUVsZW1lbnQgJiYg
bV9tZWRpYUVsZW1lbnQtPnJlYWR5U3RhdGUoKSA8PSBIVE1MTWVkaWFFbGVtZW50OjpIQVZFX0NV
UlJFTlRfREFUQTsKIH0KIAotZmxvYXQgUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6
OmRlZmF1bHRQbGF5YmFja1JhdGUoKSBjb25zdAorZG91YmxlIFBsYXliYWNrU2Vzc2lvbk1vZGVs
TWVkaWFFbGVtZW50OjpkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9tZWRpYUVsZW1lbnQgPyBtX21lZGlhRWxlbWVudC0+ZGVmYXVsdFBsYXliYWNrUmF0ZSgpIDog
MDsKIH0KIAotZmxvYXQgUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnBsYXliYWNr
UmF0ZSgpIGNvbnN0Citkb3VibGUgUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OnBs
YXliYWNrUmF0ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fbWVkaWFFbGVtZW50ID8gbV9tZWRp
YUVsZW1lbnQtPnBsYXliYWNrUmF0ZSgpIDogMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmgKaW5k
ZXggNDcyMTM5NjE1YWY1MTQ5NjA1ZTAxNDcyM2M1MTA1YmI0YTdiYjA4ZC4uYjNlZTc5ODFmNWNk
MzU4YTM1ZTQyMTMwOGMyZjBlNGRiZGJlMTc4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0LmgKQEAg
LTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZvaWQgZHVyYXRpb25DaGFuZ2VkKGRvdWJsZSkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBjdXJyZW50VGltZUNoYW5nZWQoZG91YmxlIGN1cnJlbnRUaW1l
LCBkb3VibGUgYW5jaG9yVGltZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBidWZmZXJlZFRpbWVDaGFu
Z2VkKGRvdWJsZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByYXRlQ2hhbmdlZChib29sIGlzUGxheWlu
ZywgZmxvYXQgcGxheWJhY2tSYXRlLCBmbG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHJhdGVDaGFuZ2VkKE9wdGlvblNldDxQbGF5YmFja1Nlc3Npb25Nb2RlbDo6
UGxheWJhY2tTdGF0ZT4sIGRvdWJsZSBwbGF5YmFja1JhdGUsIGRvdWJsZSBkZWZhdWx0UGxheWJh
Y2tSYXRlKSBvdmVycmlkZTsKICAgICB2b2lkIHNlZWthYmxlUmFuZ2VzQ2hhbmdlZChjb25zdCBU
aW1lUmFuZ2VzJiwgZG91YmxlIGxhc3RNb2RpZmllZFRpbWUsIGRvdWJsZSBsaXZlVXBkYXRlSW50
ZXJ2YWwpIG92ZXJyaWRlOwogICAgIHZvaWQgY2FuUGxheUZhc3RSZXZlcnNlQ2hhbmdlZChib29s
KSBvdmVycmlkZTsKICAgICB2b2lkIGF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zQ2hhbmdlZChj
b25zdCBWZWN0b3I8TWVkaWFTZWxlY3Rpb25PcHRpb24+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxl
Y3RlZEluZGV4KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdC5tbQppbmRleCBiMjY4NTM5
MWM1ZjZjMjRjN2FlZTFjMTRjZTBlZmMxMjIxZDNjZmU4Li5lMGRhYWM4NWI4NzNhZDZhYTliNGFi
MmRiN2EwMDljYzM3ZDQ3ODk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0Lm1tCkBAIC02MSw3ICs2
MSwxMiBAQCBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VBVktpdDo6UGxheWJhY2tTZXNzaW9uSW50
ZXJmYWNlQVZLaXQoUGxheWJhY2tTZXNzaW9uTW9kZQogICAgIGR1cmF0aW9uQ2hhbmdlZChtb2Rl
bC5kdXJhdGlvbigpKTsKICAgICBjdXJyZW50VGltZUNoYW5nZWQobW9kZWwuY3VycmVudFRpbWUo
KSwgW1tOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZvXSBzeXN0ZW1VcHRpbWVdKTsKICAgICBidWZm
ZXJlZFRpbWVDaGFuZ2VkKG1vZGVsLmJ1ZmZlcmVkVGltZSgpKTsKLSAgICByYXRlQ2hhbmdlZCht
b2RlbC5pc1BsYXlpbmcoKSwgbW9kZWwucGxheWJhY2tSYXRlKCksIG1vZGVsLmRlZmF1bHRQbGF5
YmFja1JhdGUoKSk7CisgICAgT3B0aW9uU2V0PFBsYXliYWNrU2Vzc2lvbk1vZGVsOjpQbGF5YmFj
a1N0YXRlPiBwbGF5YmFja1N0YXRlOworICAgIGlmIChtb2RlbC5pc1BsYXlpbmcoKSkKKyAgICAg
ICAgcGxheWJhY2tTdGF0ZS5hZGQoUGxheWJhY2tTZXNzaW9uTW9kZWw6OlBsYXliYWNrU3RhdGU6
OlBsYXlpbmcpOworICAgIGlmIChtb2RlbC5pc1N0YWxsZWQoKSkKKyAgICAgICAgcGxheWJhY2tT
dGF0ZS5hZGQoUGxheWJhY2tTZXNzaW9uTW9kZWw6OlBsYXliYWNrU3RhdGU6OlN0YWxsZWQpOwor
ICAgIHJhdGVDaGFuZ2VkKHBsYXliYWNrU3RhdGUsIG1vZGVsLnBsYXliYWNrUmF0ZSgpLCBtb2Rl
bC5kZWZhdWx0UGxheWJhY2tSYXRlKCkpOwogICAgIHNlZWthYmxlUmFuZ2VzQ2hhbmdlZChtb2Rl
bC5zZWVrYWJsZVJhbmdlcygpLCBtb2RlbC5zZWVrYWJsZVRpbWVSYW5nZXNMYXN0TW9kaWZpZWRU
aW1lKCksIG1vZGVsLmxpdmVVcGRhdGVJbnRlcnZhbCgpKTsKICAgICBjYW5QbGF5RmFzdFJldmVy
c2VDaGFuZ2VkKG1vZGVsLmNhblBsYXlGYXN0UmV2ZXJzZSgpKTsKICAgICBhdWRpb01lZGlhU2Vs
ZWN0aW9uT3B0aW9uc0NoYW5nZWQobW9kZWwuYXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnMoKSwg
bW9kZWwuYXVkaW9NZWRpYVNlbGVjdGVkSW5kZXgoKSk7CkBAIC0xMjQsMTAgKzEyOSwxMSBAQCB2
b2lkIFBsYXliYWNrU2Vzc2lvbkludGVyZmFjZUFWS2l0OjpidWZmZXJlZFRpbWVDaGFuZ2VkKGRv
dWJsZSBidWZmZXJlZFRpbWUpCiAgICAgcGxheWVyQ29udHJvbGxlci5sb2FkZWRUaW1lUmFuZ2Vz
ID0gQFtAMCwgQChub3JtYWxpemVkQnVmZmVyZWRUaW1lKV07CiB9CiAKLXZvaWQgUGxheWJhY2tT
ZXNzaW9uSW50ZXJmYWNlQVZLaXQ6OnJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBw
bGF5YmFja1JhdGUsIGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUpCit2b2lkIFBsYXliYWNrU2Vz
c2lvbkludGVyZmFjZUFWS2l0OjpyYXRlQ2hhbmdlZChPcHRpb25TZXQ8UGxheWJhY2tTZXNzaW9u
TW9kZWw6OlBsYXliYWNrU3RhdGU+IHBsYXliYWNrU3RhdGUsIGRvdWJsZSBwbGF5YmFja1JhdGUs
IGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKQogewogICAgIFttX3BsYXllckNvbnRyb2xsZXIg
c2V0RGVmYXVsdFBsYXliYWNrUmF0ZTpkZWZhdWx0UGxheWJhY2tSYXRlXTsKLSAgICBbbV9wbGF5
ZXJDb250cm9sbGVyIHNldFJhdGU6aXNQbGF5aW5nID8gcGxheWJhY2tSYXRlIDogMC5dOworICAg
IGlmICghcGxheWJhY2tTdGF0ZS5jb250YWlucyhQbGF5YmFja1Nlc3Npb25Nb2RlbDo6UGxheWJh
Y2tTdGF0ZTo6U3RhbGxlZCkpCisgICAgICAgIFttX3BsYXllckNvbnRyb2xsZXIgc2V0UmF0ZTpw
bGF5YmFja1N0YXRlLmNvbnRhaW5zKFBsYXliYWNrU2Vzc2lvbk1vZGVsOjpQbGF5YmFja1N0YXRl
OjpQbGF5aW5nKSA/IHBsYXliYWNrUmF0ZSA6IDAuXTsKIH0KIAogdm9pZCBQbGF5YmFja1Nlc3Np
b25JbnRlcmZhY2VBVktpdDo6c2Vla2FibGVSYW5nZXNDaGFuZ2VkKGNvbnN0IFRpbWVSYW5nZXMm
IHRpbWVSYW5nZXMsIGRvdWJsZSBsYXN0TW9kaWZpZWRUaW1lLCBkb3VibGUgbGl2ZVVwZGF0ZUlu
dGVydmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KaW5kZXggOTkwM2M0ZTNhNTk1
NjhmNzU2OTBmNWQ2YzRmODhkODM0NjE3ZWEzMi4uNzAxNmM3ZjlhMjI1Njk2MjIwODRjMmY5NTQ1
MTU4OTAzNTg4NGMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCkBAIC0xNDks
OCArMTQ5LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGJlZ2luU2Nhbm5pbmdGb3J3YXJkKCkgb3Zl
cnJpZGU7CiAgICAgdm9pZCBiZWdpblNjYW5uaW5nQmFja3dhcmQoKSBvdmVycmlkZTsKICAgICB2
b2lkIGVuZFNjYW5uaW5nKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXREZWZhdWx0UGxheWJhY2tS
YXRlKGZsb2F0KSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFBsYXliYWNrUmF0ZShmbG9hdCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBzZXREZWZhdWx0UGxheWJhY2tSYXRlKGRvdWJsZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBzZXRQbGF5YmFja1JhdGUoZG91YmxlKSBvdmVycmlkZTsKICAgICB2b2lkIHNl
bGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QpIG92ZXJyaWRlOwogICAgIHZvaWQgc2VsZWN0
TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90KSBvdmVycmlkZTsKICAgICBkb3VibGUgZHVyYXRp
b24oKSBjb25zdCBvdmVycmlkZTsKQEAgLTE1OCw5ICsxNTgsMTAgQEAgcHJpdmF0ZToKICAgICBk
b3VibGUgY3VycmVudFRpbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBkb3VibGUgYnVmZmVyZWRU
aW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1BsYXlpbmcoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICBib29sIGlzU3RhbGxlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNTY3J1
YmJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQotICAgIGZsb2F0IGRlZmF1
bHRQbGF5YmFja1JhdGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBmbG9hdCBwbGF5YmFja1JhdGUo
KSBjb25zdCBvdmVycmlkZTsKKyAgICBkb3VibGUgZGVmYXVsdFBsYXliYWNrUmF0ZSgpIGNvbnN0
IG92ZXJyaWRlOworICAgIGRvdWJsZSBwbGF5YmFja1JhdGUoKSBjb25zdCBvdmVycmlkZTsKICAg
ICBSZWY8VGltZVJhbmdlcz4gc2Vla2FibGVSYW5nZXMoKSBjb25zdCBvdmVycmlkZTsKICAgICBk
b3VibGUgc2Vla2FibGVUaW1lUmFuZ2VzTGFzdE1vZGlmaWVkVGltZSgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIGRvdWJsZSBsaXZlVXBkYXRlSW50ZXJ2YWwoKSBjb25zdCBvdmVycmlkZTsKQEAgLTE4
Myw3ICsxODQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZHVyYXRpb25DaGFuZ2VkKGRvdWJsZSkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBjdXJyZW50VGltZUNoYW5nZWQoZG91YmxlIGN1cnJlbnRUaW1l
LCBkb3VibGUgYW5jaG9yVGltZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBidWZmZXJlZFRpbWVDaGFu
Z2VkKGRvdWJsZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByYXRlQ2hhbmdlZChib29sIGlzUGxheWlu
ZywgZmxvYXQgcGxheWJhY2tSYXRlLCBmbG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHJhdGVDaGFuZ2VkKE9wdGlvblNldDxQbGF5YmFja1Nlc3Npb25Nb2RlbDo6
UGxheWJhY2tTdGF0ZT4sIGRvdWJsZSBwbGF5YmFja1JhdGUsIGRvdWJsZSBkZWZhdWx0UGxheWJh
Y2tSYXRlKSBvdmVycmlkZTsKICAgICB2b2lkIHNlZWthYmxlUmFuZ2VzQ2hhbmdlZChjb25zdCBU
aW1lUmFuZ2VzJiwgZG91YmxlIGxhc3RNb2RpZmllZFRpbWUsIGRvdWJsZSBsaXZlVXBkYXRlSW50
ZXJ2YWwpIG92ZXJyaWRlOwogICAgIHZvaWQgY2FuUGxheUZhc3RSZXZlcnNlQ2hhbmdlZChib29s
KSBvdmVycmlkZTsKICAgICB2b2lkIGF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zQ2hhbmdlZChj
b25zdCBWZWN0b3I8TWVkaWFTZWxlY3Rpb25PcHRpb24+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxl
Y3RlZEluZGV4KSBvdmVycmlkZTsKQEAgLTQxNiwxNyArNDE3LDE3IEBAIHZvaWQgVmlkZW9GdWxs
c2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OmJ1ZmZlcmVkVGltZUNoYW5nZWQoZG91YmxlIGJ1ZmZl
cmVkVGltZSkKICAgICAgICAgY2xpZW50LT5idWZmZXJlZFRpbWVDaGFuZ2VkKGJ1ZmZlcmVkVGlt
ZSk7CiB9CiAKLXZvaWQgVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckNvbnRleHQ6OnJhdGVDaGFu
Z2VkKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUsIGZsb2F0IGRlZmF1bHRQbGF5
YmFja1JhdGUpCit2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpyYXRlQ2hh
bmdlZChPcHRpb25TZXQ8UGxheWJhY2tTZXNzaW9uTW9kZWw6OlBsYXliYWNrU3RhdGU+IHBsYXli
YWNrU3RhdGUsIGRvdWJsZSBwbGF5YmFja1JhdGUsIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRl
KQogewogICAgIGlmIChXZWJUaHJlYWRJc0N1cnJlbnQoKSkgewotICAgICAgICBSdW5Mb29wOjpt
YWluKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCBpc1BsYXlp
bmcsIHBsYXliYWNrUmF0ZSwgZGVmYXVsdFBsYXliYWNrUmF0ZV0gewotICAgICAgICAgICAgcHJv
dGVjdGVkVGhpcy0+cmF0ZUNoYW5nZWQoaXNQbGF5aW5nLCBwbGF5YmFja1JhdGUsIGRlZmF1bHRQ
bGF5YmFja1JhdGUpOworICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCBwbGF5YmFja1N0YXRlLCBwbGF5YmFja1JhdGUsIGRl
ZmF1bHRQbGF5YmFja1JhdGVdIHsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPnJhdGVDaGFu
Z2VkKHBsYXliYWNrU3RhdGUsIHBsYXliYWNrUmF0ZSwgZGVmYXVsdFBsYXliYWNrUmF0ZSk7CiAg
ICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgZm9yIChhdXRvJiBjbGll
bnQgOiBtX3BsYXliYWNrQ2xpZW50cykKLSAgICAgICAgY2xpZW50LT5yYXRlQ2hhbmdlZChpc1Bs
YXlpbmcsIHBsYXliYWNrUmF0ZSwgZGVmYXVsdFBsYXliYWNrUmF0ZSk7CisgICAgICAgIGNsaWVu
dC0+cmF0ZUNoYW5nZWQocGxheWJhY2tTdGF0ZSwgcGxheWJhY2tSYXRlLCBkZWZhdWx0UGxheWJh
Y2tSYXRlKTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6aGFz
VmlkZW9DaGFuZ2VkKGJvb2wgaGFzVmlkZW8pCkBAIC04NDEsNyArODQyLDcgQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyQ29udGV4dDo6ZW5kU2Nhbm5pbmcoKQogICAgIH0pOwogfQog
Ci12b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpzZXREZWZhdWx0UGxheWJh
Y2tSYXRlKGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUpCit2b2lkIFZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXJDb250ZXh0OjpzZXREZWZhdWx0UGxheWJhY2tSYXRlKGRvdWJsZSBkZWZhdWx0UGxh
eWJhY2tSYXRlKQogewogICAgIEFTU0VSVChpc1VJVGhyZWFkKCkpOwogICAgIFdlYlRocmVhZFJ1
bihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIGRlZmF1bHRQbGF5YmFj
a1JhdGVdIHsKQEAgLTg1MCw3ICs4NTEsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJDb250ZXh0OjpzZXREZWZhdWx0UGxheWJhY2tSYXRlKGZsb2F0IGRlZmF1bHRQbGF5YgogICAg
IH0pOwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0OjpzZXRQbGF5
YmFja1JhdGUoZmxvYXQgcGxheWJhY2tSYXRlKQordm9pZCBWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyQ29udGV4dDo6c2V0UGxheWJhY2tSYXRlKGRvdWJsZSBwbGF5YmFja1JhdGUpCiB7CiAgICAg
QVNTRVJUKGlzVUlUaHJlYWQoKSk7CiAgICAgV2ViVGhyZWFkUnVuKFtwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZlB0cih0aGlzKSwgdGhpcywgcGxheWJhY2tSYXRlXSB7CkBAIC05MDEsMTMgKzkwMiwx
OSBAQCBib29sIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250ZXh0Ojppc1BsYXlpbmcoKSBj
b25zdAogICAgIHJldHVybiBtX3BsYXliYWNrTW9kZWwgPyBtX3BsYXliYWNrTW9kZWwtPmlzUGxh
eWluZygpIDogZmFsc2U7CiB9CiAKLWZsb2F0IFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJDb250
ZXh0OjpkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3QKK2Jvb2wgVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlckNvbnRleHQ6OmlzU3RhbGxlZCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVUlUaHJl
YWQoKSk7CisgICAgcmV0dXJuIG1fcGxheWJhY2tNb2RlbCA/IG1fcGxheWJhY2tNb2RlbC0+aXNT
dGFsbGVkKCkgOiBmYWxzZTsKK30KKworZG91YmxlIFZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJD
b250ZXh0OjpkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNVSVRo
cmVhZCgpKTsKICAgICByZXR1cm4gbV9wbGF5YmFja01vZGVsID8gbV9wbGF5YmFja01vZGVsLT5k
ZWZhdWx0UGxheWJhY2tSYXRlKCkgOiAwOwogfQogCi1mbG9hdCBWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQ29udGV4dDo6cGxheWJhY2tSYXRlKCkgY29uc3QKK2RvdWJsZSBWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyQ29udGV4dDo6cGxheWJhY2tSYXRlKCkgY29uc3QKIHsKICAgICBBU1NFUlQo
aXNVSVRocmVhZCgpKTsKICAgICByZXR1cm4gbV9wbGF5YmFja01vZGVsID8gbV9wbGF5YmFja01v
ZGVsLT5wbGF5YmFja1JhdGUoKSA6IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjLmgKaW5kZXggNzc0NTlhZmRm
ZDUzYjk4ZGYyYmYwNzRhNGE4ODZmZDU2YjRmY2Y4ZC4uYWM5NjU5ZDZkMjI2YTgxZGY2ZDMxNzIx
OGYxYTJhOWU0MmRlNmI4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMuaApAQCAtNTIsNyArNTIsNyBAQCBw
dWJsaWM6CiAgICAgLy8gUGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQKICAgICB2b2lkIGR1cmF0
aW9uQ2hhbmdlZChkb3VibGUpIGZpbmFsOwogICAgIHZvaWQgY3VycmVudFRpbWVDaGFuZ2VkKGRv
dWJsZSAvKmN1cnJlbnRUaW1lKi8sIGRvdWJsZSAvKmFuY2hvclRpbWUqLykgZmluYWw7Ci0gICAg
dm9pZCByYXRlQ2hhbmdlZChib29sIC8qaXNQbGF5aW5nKi8sIGZsb2F0IC8qcGxheWJhY2tSYXRl
Ki8sIGZsb2F0IC8qIGRlZmF1bHRQbGF5YmFja1JhdGUgKi8pIGZpbmFsOworICAgIHZvaWQgcmF0
ZUNoYW5nZWQoT3B0aW9uU2V0PFBsYXliYWNrU2Vzc2lvbk1vZGVsOjpQbGF5YmFja1N0YXRlPiwg
ZG91YmxlIC8qIHBsYXliYWNrUmF0ZSAqLywgZG91YmxlIC8qIGRlZmF1bHRQbGF5YmFja1JhdGUg
Ki8pIGZpbmFsOwogICAgIHZvaWQgc2Vla2FibGVSYW5nZXNDaGFuZ2VkKGNvbnN0IFRpbWVSYW5n
ZXMmLCBkb3VibGUgLypsYXN0TW9kaWZpZWRUaW1lKi8sIGRvdWJsZSAvKmxpdmVVcGRhdGVJbnRl
cnZhbCovKSBmaW5hbDsKICAgICB2b2lkIGF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zQ2hhbmdl
ZChjb25zdCBWZWN0b3I8TWVkaWFTZWxlY3Rpb25PcHRpb24+JiAvKm9wdGlvbnMqLywgdWludDY0
X3QgLypzZWxlY3RlZEluZGV4Ki8pIGZpbmFsOwogICAgIHZvaWQgbGVnaWJsZU1lZGlhU2VsZWN0
aW9uT3B0aW9uc0NoYW5nZWQoY29uc3QgVmVjdG9yPE1lZGlhU2VsZWN0aW9uT3B0aW9uPiYgLypv
cHRpb25zKi8sIHVpbnQ2NF90IC8qc2VsZWN0ZWRJbmRleCovKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNl
TWFjLm1tCmluZGV4IGIxMmI5MWNmMjVhOGUyMGJhYzExZmMyODE4MmE4NThmZGFlMGRjZjEuLmNk
MDY5M2U0M2JiODEyNDA0MWM2MzM0NjhiODVlNTEyZTUwMGQxODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1h
Yy5tbQpAQCAtOTIsOSArOTIsMTAgQEAgdm9pZCBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWM6
OmN1cnJlbnRUaW1lQ2hhbmdlZChkb3VibGUgY3VycmVudFRpbWUsIGRvdWJsZQogI2VuZGlmCiB9
CiAKLXZvaWQgUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlTWFjOjpyYXRlQ2hhbmdlZChib29sIGlz
UGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRlLCBmbG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKQor
dm9pZCBQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWM6OnJhdGVDaGFuZ2VkKE9wdGlvblNldDxQ
bGF5YmFja1Nlc3Npb25Nb2RlbDo6UGxheWJhY2tTdGF0ZT4gcGxheWJhY2tTdGF0ZSwgZG91Ymxl
IHBsYXliYWNrUmF0ZSwgZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUpCiB7CiAjaWYgRU5BQkxF
KFdFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSKQorICAgIGF1dG8gaXNQbGF5aW5nID0gcGxh
eWJhY2tTdGF0ZS5jb250YWlucyhQbGF5YmFja1Nlc3Npb25Nb2RlbDo6UGxheWJhY2tTdGF0ZTo6
UGxheWluZyk7CiAgICAgV2ViUGxheWJhY2tDb250cm9sc01hbmFnZXIqIGNvbnRyb2xzTWFuYWdl
ciA9IHBsYXlCYWNrQ29udHJvbHNNYW5hZ2VyKCk7CiAgICAgW2NvbnRyb2xzTWFuYWdlciBzZXRS
YXRlOmlzUGxheWluZyA/IHBsYXliYWNrUmF0ZSA6IDAuXTsKICAgICBbY29udHJvbHNNYW5hZ2Vy
IHNldERlZmF1bHRQbGF5YmFja1JhdGU6ZGVmYXVsdFBsYXliYWNrUmF0ZV07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFj
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
TWFjLmgKaW5kZXggN2U5YzE5ZmNjMTgxYmRlNDA3OWNjMzA2NWVhNDU5ZjMzODE3MGQ5ZS4uODZl
MDRiYjI2YTE1NDQzYjM3MzEwYjRkOTNkMmQwNDdiYTBmYTA3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMu
aApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRW
aWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcihWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZl
ciopOwogCiAgICAgLy8gUGxheWJhY2tTZXNzaW9uTW9kZWxDbGllbnQKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUs
IGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUpIG92ZXJyaWRlOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgcmF0ZUNoYW5nZWQoT3B0aW9uU2V0PFBsYXliYWNrU2Vzc2lvbk1vZGVsOjpQbGF5YmFj
a1N0YXRlPiwgZG91YmxlIHBsYXliYWNrUmF0ZSwgZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUp
IG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXh0ZXJuYWxQbGF5YmFja0NoYW5n
ZWQoYm9vbCAgZW5hYmxlZCwgUGxheWJhY2tTZXNzaW9uTW9kZWw6OkV4dGVybmFsUGxheWJhY2tU
YXJnZXRUeXBlLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERldmljZU5hbWUpIG92ZXJyaWRlOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5zdXJlQ29udHJvbHNNYW5hZ2VyKCkgb3ZlcnJpZGU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlTWFjLm1tCmluZGV4IGZhNmJkNGQ1ZTA0OTA3MmI0NDQ3MWRhMmEwNDQw
MWEwYTE0MDU4MzYuLmVhNDIzYzcxN2M3YWU5MWJkNGVlOTkwODdlMDdjNGU1YzM3ZTRjM2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1ZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZU1hYy5tbQpAQCAtNDI4LDkgKzQyOCw5IEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlTWFjOjpjbGVhck1vZGUoSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1
bGxzY3JlCiAgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTW9kZWwtPmZ1bGxzY3JlZW5Nb2RlQ2hh
bmdlZChtX21vZGUpOwogfQogCi12b2lkIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZU1hYzo6cmF0
ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSwgZmxvYXQgLyogZGVm
YXVsdFBsYXliYWNrUmF0ZSAqLykKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjOjpy
YXRlQ2hhbmdlZChPcHRpb25TZXQ8UGxheWJhY2tTZXNzaW9uTW9kZWw6OlBsYXliYWNrU3RhdGU+
IHBsYXliYWNrU3RhdGUsIGRvdWJsZSBwbGF5YmFja1JhdGUsIGRvdWJsZSAvKiBkZWZhdWx0UGxh
eWJhY2tSYXRlICovKQogewotICAgIFt2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VPYmpDKCkgdXBk
YXRlSXNQbGF5aW5nOmlzUGxheWluZyBuZXdQbGF5YmFja1JhdGU6cGxheWJhY2tSYXRlXTsKKyAg
ICBbdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlT2JqQygpIHVwZGF0ZUlzUGxheWluZzpwbGF5YmFj
a1N0YXRlLmNvbnRhaW5zKFBsYXliYWNrU2Vzc2lvbk1vZGVsOjpQbGF5YmFja1N0YXRlOjpQbGF5
aW5nKSBuZXdQbGF5YmFja1JhdGU6cGxheWJhY2tSYXRlXTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VNYWM6OmVuc3VyZUNvbnRyb2xzTWFuYWdlcigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAzMWU0OTU3ZWFhYzc0OGE1ZmIxNzc0Y2Qx
MzNjYzA3Y2NlZjBhYzg5Li4wNDM2YjAzNmE5OWEyODE1NzJhMGUxZWM3NTU5ZmY2NDNkMzRjZDE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTcxNSw2ICs3
MTUsNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlBh
eW1lbnRBdXRob3JpemF0aW9uUmVzdWx0JzogWyc8V2ViQ29yZS9BcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UGl4ZWxGb3JtYXQnOiBbJzxXZWJD
b3JlL0ltYWdlQnVmZmVyQmFja2VuZC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UGxhdGZvcm1U
ZXh0VHJhY2tEYXRhJzogWyc8V2ViQ29yZS9QbGF0Zm9ybVRleHRUcmFjay5oPiddLAorICAgICAg
ICAnV2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uTW9kZWw6OlBsYXliYWNrU3RhdGUnOiBbJzxXZWJD
b3JlL1BsYXliYWNrU2Vzc2lvbk1vZGVsLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQbHVnaW5J
bmZvJzogWyc8V2ViQ29yZS9QbHVnaW5EYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQbHVn
aW5Mb2FkQ2xpZW50UG9saWN5JzogWyc8V2ViQ29yZS9QbHVnaW5EYXRhLmg+J10sCiAgICAgICAg
ICdXZWJDb3JlOjpQb2xpY3lBY3Rpb24nOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4n
XSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vz
c2lvbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGxheWJh
Y2tTZXNzaW9uTWFuYWdlclByb3h5LmgKaW5kZXggMjAyYmFlMTMxM2YwYmI2MDE5MWJiMTgzMDg4
Y2JhMDA4ZTZlYTJiNy4uNTI3YzY3NzNiMzY0YTJjZmRiZDRmMmYwYWJkODAxM2I0MGNmZDQzYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9u
TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGxheWJh
Y2tTZXNzaW9uTWFuYWdlclByb3h5LmgKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogICAgIHZv
aWQgY3VycmVudFRpbWVDaGFuZ2VkKGRvdWJsZSk7CiAgICAgdm9pZCBidWZmZXJlZFRpbWVDaGFu
Z2VkKGRvdWJsZSk7CiAgICAgdm9pZCBwbGF5YmFja1N0YXJ0ZWRUaW1lQ2hhbmdlZChkb3VibGUp
OwotICAgIHZvaWQgcmF0ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0
ZSwgZmxvYXQgZGVmYXVsdFBsYXliYWNrUmF0ZSk7CisgICAgdm9pZCByYXRlQ2hhbmdlZChPcHRp
b25TZXQ8V2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uTW9kZWw6OlBsYXliYWNrU3RhdGU+LCBkb3Vi
bGUgcGxheWJhY2tSYXRlLCBkb3VibGUgZGVmYXVsdFBsYXliYWNrUmF0ZSk7CiAgICAgdm9pZCBz
ZWVrYWJsZVJhbmdlc0NoYW5nZWQoV2ViQ29yZTo6VGltZVJhbmdlcyYsIGRvdWJsZSBsYXN0TW9k
aWZpZWRUaW1lLCBkb3VibGUgbGl2ZVVwZGF0ZUludGVydmFsKTsKICAgICB2b2lkIGNhblBsYXlG
YXN0UmV2ZXJzZUNoYW5nZWQoYm9vbCk7CiAgICAgdm9pZCBhdWRpb01lZGlhU2VsZWN0aW9uT3B0
aW9uc0NoYW5nZWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6Ok1lZGlhU2VsZWN0aW9uT3B0aW9uPiYg
b3B0aW9ucywgdWludDY0X3QgaW5kZXgpOwpAQCAtMTExLDggKzExMSw4IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBiZWdpblNjYW5uaW5nRm9yd2FyZCgpIGZpbmFsOwogICAgIHZvaWQgYmVnaW5TY2Fu
bmluZ0JhY2t3YXJkKCkgZmluYWw7CiAgICAgdm9pZCBlbmRTY2FubmluZygpIGZpbmFsOwotICAg
IHZvaWQgc2V0RGVmYXVsdFBsYXliYWNrUmF0ZShmbG9hdCkgZmluYWw7Ci0gICAgdm9pZCBzZXRQ
bGF5YmFja1JhdGUoZmxvYXQpIGZpbmFsOworICAgIHZvaWQgc2V0RGVmYXVsdFBsYXliYWNrUmF0
ZShkb3VibGUpIGZpbmFsOworICAgIHZvaWQgc2V0UGxheWJhY2tSYXRlKGRvdWJsZSkgZmluYWw7
CiAgICAgdm9pZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90KSBmaW5hbDsKICAgICB2
b2lkIHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCkgZmluYWw7CiAgICAgdm9pZCB0
b2dnbGVQaWN0dXJlSW5QaWN0dXJlKCkgZmluYWw7CkBAIC0xMjYsMTAgKzEyNiwxMSBAQCBwcml2
YXRlOgogICAgIGRvdWJsZSBkdXJhdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZHVyYXRp
b247IH0KICAgICBkb3VibGUgY3VycmVudFRpbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2N1
cnJlbnRUaW1lOyB9CiAgICAgZG91YmxlIGJ1ZmZlcmVkVGltZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fYnVmZmVyZWRUaW1lOyB9Ci0gICAgYm9vbCBpc1BsYXlpbmcoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2lzUGxheWluZzsgfQorICAgIGJvb2wgaXNQbGF5aW5nKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9wbGF5YmFja1N0YXRlLmNvbnRhaW5zKFBsYXliYWNrU3RhdGU6OlBsYXlpbmcp
OyB9CisgICAgYm9vbCBpc1N0YWxsZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3BsYXliYWNr
U3RhdGUuY29udGFpbnMoUGxheWJhY2tTdGF0ZTo6U3RhbGxlZCk7IH0KICAgICBib29sIGlzU2Ny
dWJiaW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pc1NjcnViYmluZzsgfQotICAgIGZsb2F0
IGRlZmF1bHRQbGF5YmFja1JhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2RlZmF1bHRQbGF5
YmFja1JhdGU7IH0KLSAgICBmbG9hdCBwbGF5YmFja1JhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX3BsYXliYWNrUmF0ZTsgfQorICAgIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9kZWZhdWx0UGxheWJhY2tSYXRlOyB9CisgICAgZG91YmxlIHBs
YXliYWNrUmF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcGxheWJhY2tSYXRlOyB9CiAgICAg
UmVmPFdlYkNvcmU6OlRpbWVSYW5nZXM+IHNlZWthYmxlUmFuZ2VzKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9zZWVrYWJsZVJhbmdlcy5jb3B5UmVmKCk7IH0KICAgICBkb3VibGUgc2Vla2FibGVU
aW1lUmFuZ2VzTGFzdE1vZGlmaWVkVGltZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vla2Fi
bGVUaW1lUmFuZ2VzTGFzdE1vZGlmaWVkVGltZTsgfQogICAgIGRvdWJsZSBsaXZlVXBkYXRlSW50
ZXJ2YWwoKSBjb25zdCB7IHJldHVybiBtX2xpdmVVcGRhdGVJbnRlcnZhbDsgfQpAQCAtMTU0LDEw
ICsxNTUsMTAgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9kdXJhdGlvbiB7IDAgfTsKICAgICBk
b3VibGUgbV9jdXJyZW50VGltZSB7IDAgfTsKICAgICBkb3VibGUgbV9idWZmZXJlZFRpbWUgeyAw
IH07Ci0gICAgYm9vbCBtX2lzUGxheWluZyB7IGZhbHNlIH07CisgICAgT3B0aW9uU2V0PFBsYXli
YWNrU2Vzc2lvbk1vZGVsOjpQbGF5YmFja1N0YXRlPiBtX3BsYXliYWNrU3RhdGU7CiAgICAgYm9v
bCBtX2lzU2NydWJiaW5nIHsgZmFsc2UgfTsKLSAgICBmbG9hdCBtX2RlZmF1bHRQbGF5YmFja1Jh
dGUgeyAwIH07Ci0gICAgZmxvYXQgbV9wbGF5YmFja1JhdGUgeyAwIH07CisgICAgZG91YmxlIG1f
ZGVmYXVsdFBsYXliYWNrUmF0ZSB7IDAgfTsKKyAgICBkb3VibGUgbV9wbGF5YmFja1JhdGUgeyAw
IH07CiAgICAgUmVmPFdlYkNvcmU6OlRpbWVSYW5nZXM+IG1fc2Vla2FibGVSYW5nZXMgeyBXZWJD
b3JlOjpUaW1lUmFuZ2VzOjpjcmVhdGUoKSB9OwogICAgIGRvdWJsZSBtX3NlZWthYmxlVGltZVJh
bmdlc0xhc3RNb2RpZmllZFRpbWUgeyAwIH07CiAgICAgZG91YmxlIG1fbGl2ZVVwZGF0ZUludGVy
dmFsIHsgMCB9OwpAQCAtMjIxLDcgKzIyMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aXJlbGVz
c1ZpZGVvUGxheWJhY2tEaXNhYmxlZENoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50
aWZpZXIsIGJvb2wpOwogICAgIHZvaWQgZHVyYXRpb25DaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNv
bnRleHRJZGVudGlmaWVyLCBkb3VibGUgZHVyYXRpb24pOwogICAgIHZvaWQgcGxheWJhY2tTdGFy
dGVkVGltZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIGRvdWJsZSBw
bGF5YmFja1N0YXJ0ZWRUaW1lKTsKLSAgICB2b2lkIHJhdGVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lv
bkNvbnRleHRJZGVudGlmaWVyLCBib29sIGlzUGxheWluZywgZG91YmxlIHJhdGUsIGRvdWJsZSBk
ZWZhdWx0UGxheWJhY2tSYXRlKTsKKyAgICB2b2lkIHJhdGVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lv
bkNvbnRleHRJZGVudGlmaWVyLCBPcHRpb25TZXQ8V2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uTW9k
ZWw6OlBsYXliYWNrU3RhdGU+LCBkb3VibGUgcmF0ZSwgZG91YmxlIGRlZmF1bHRQbGF5YmFja1Jh
dGUpOwogICAgIHZvaWQgaGFuZGxlQ29udHJvbGxlZEVsZW1lbnRJRFJlc3BvbnNlKFBsYXliYWNr
U2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBTdHJpbmcpIGNvbnN0OwogICAgIHZvaWQgbXV0ZWRD
aGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBib29sIG11dGVkKTsKICAg
ICB2b2lkIHZvbHVtZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIGRv
dWJsZSB2b2x1bWUpOwpAQCAtMjM4LDggKzIzOSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBiZWdp
blNjYW5uaW5nRm9yd2FyZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcik7CiAgICAg
dm9pZCBiZWdpblNjYW5uaW5nQmFja3dhcmQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZp
ZXIpOwogICAgIHZvaWQgZW5kU2Nhbm5pbmcoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZp
ZXIpOwotICAgIHZvaWQgc2V0RGVmYXVsdFBsYXliYWNrUmF0ZShQbGF5YmFja1Nlc3Npb25Db250
ZXh0SWRlbnRpZmllciwgZmxvYXQpOwotICAgIHZvaWQgc2V0UGxheWJhY2tSYXRlKFBsYXliYWNr
U2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBmbG9hdCk7CisgICAgdm9pZCBzZXREZWZhdWx0UGxh
eWJhY2tSYXRlKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBkb3VibGUpOworICAg
IHZvaWQgc2V0UGxheWJhY2tSYXRlKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBk
b3VibGUpOwogICAgIHZvaWQgc2VsZWN0QXVkaW9NZWRpYU9wdGlvbihQbGF5YmFja1Nlc3Npb25D
b250ZXh0SWRlbnRpZmllciwgdWludDY0X3QgaW5kZXgpOwogICAgIHZvaWQgc2VsZWN0TGVnaWJs
ZU1lZGlhT3B0aW9uKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCB1aW50NjRfdCBp
bmRleCk7CiAgICAgdm9pZCB0b2dnbGVQaWN0dXJlSW5QaWN0dXJlKFBsYXliYWNrU2Vzc2lvbkNv
bnRleHRJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgppbmRleCBkMzM5NDk4ZDg1NDFmZWU1YTU4MTMzODQ0YTNlNzcwNzE1YWNhMDQ3Li5mNDRmZWM2
ZThjMThhMjQ5MzQzYjA0MDlkZGI5OTA4YjE3NWU3NTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zNCw3ICszNCw3IEBAIG1lc3NhZ2VzIC0+IFBsYXli
YWNrU2Vzc2lvbk1hbmFnZXJQcm94eSB7CiAgICAgV2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJs
ZWRDaGFuZ2VkKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4
dElkLCBib29sIGRpc2FibGVkKQogICAgIER1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6OlBsYXliYWNr
U2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgZG91YmxlIGR1cmF0aW9uKQogICAg
IFBsYXliYWNrU3RhcnRlZFRpbWVDaGFuZ2VkKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4
dElkZW50aWZpZXIgY29udGV4dElkLCBkb3VibGUgcGxheWJhY2tTdGFydGVkVGltZSkKLSAgICBS
YXRlQ2hhbmdlZChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRl
eHRJZCwgYm9vbCBpc1BsYXlpbmcsIGRvdWJsZSByYXRlLCBkb3VibGUgZGVmYXVsdFBsYXliYWNr
UmF0ZSkKKyAgICBSYXRlQ2hhbmdlZChXZWJLaXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVu
dGlmaWVyIGNvbnRleHRJZCwgT3B0aW9uU2V0PFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbk1vZGVs
OjpQbGF5YmFja1N0YXRlPiBwbGF5YmFja1N0YXRlLCBkb3VibGUgcmF0ZSwgZG91YmxlIGRlZmF1
bHRQbGF5YmFja1JhdGUpCiAgICAgTXV0ZWRDaGFuZ2VkKFdlYktpdDo6UGxheWJhY2tTZXNzaW9u
Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBib29sIG11dGVkKTsKICAgICBWb2x1bWVDaGFu
Z2VkKFdlYktpdDo6UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBk
b3VibGUgdm9sdW1lKTsKICAgICBQaWN0dXJlSW5QaWN0dXJlU3VwcG9ydGVkQ2hhbmdlZChXZWJL
aXQ6OlBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgYm9vbCBwaWN0
dXJlSW5QaWN0dXJlU3VwcG9ydGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1tCmluZGV4IGZkMWQ0
ODFmZjdkNzY5YjgzMTk4MDZjYTUxYmUxODFkNjRlZmZmYTEuLmVlMTdlOWY3NGJjMmQyOWJlNGIx
NzM2ZDAzMTFjMGQwOWFlYjBjNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkubW0KQEAgLTEyMSwx
MyArMTIxLDEzIEBAIHZvaWQgUGxheWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OjplbmRTY2Fubmlu
ZygpCiAgICAgICAgIG1fbWFuYWdlci0+ZW5kU2Nhbm5pbmcobV9jb250ZXh0SWQpOwogfQogCi12
b2lkIFBsYXliYWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6c2V0RGVmYXVsdFBsYXliYWNrUmF0ZShm
bG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKQordm9pZCBQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRl
eHQ6OnNldERlZmF1bHRQbGF5YmFja1JhdGUoZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUpCiB7
CiAgICAgaWYgKG1fbWFuYWdlcikKICAgICAgICAgbV9tYW5hZ2VyLT5zZXREZWZhdWx0UGxheWJh
Y2tSYXRlKG1fY29udGV4dElkLCBkZWZhdWx0UGxheWJhY2tSYXRlKTsKIH0KIAotdm9pZCBQbGF5
YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ6OnNldFBsYXliYWNrUmF0ZShmbG9hdCBwbGF5YmFja1Jh
dGUpCit2b2lkIFBsYXliYWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6c2V0UGxheWJhY2tSYXRlKGRv
dWJsZSBwbGF5YmFja1JhdGUpCiB7CiAgICAgaWYgKG1fbWFuYWdlcikKICAgICAgICAgbV9tYW5h
Z2VyLT5zZXRQbGF5YmFja1JhdGUobV9jb250ZXh0SWQsIHBsYXliYWNrUmF0ZSk7CkBAIC0yMDYs
MTMgKzIwNiwxMyBAQCB2b2lkIFBsYXliYWNrU2Vzc2lvbk1vZGVsQ29udGV4dDo6YnVmZmVyZWRU
aW1lQ2hhbmdlZChkb3VibGUgYnVmZmVyZWRUaW1lKQogICAgICAgICBjbGllbnQtPmJ1ZmZlcmVk
VGltZUNoYW5nZWQoYnVmZmVyZWRUaW1lKTsKIH0KIAotdm9pZCBQbGF5YmFja1Nlc3Npb25Nb2Rl
bENvbnRleHQ6OnJhdGVDaGFuZ2VkKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUs
IGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUpCit2b2lkIFBsYXliYWNrU2Vzc2lvbk1vZGVsQ29u
dGV4dDo6cmF0ZUNoYW5nZWQoT3B0aW9uU2V0PFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbk1vZGVs
OjpQbGF5YmFja1N0YXRlPiBwbGF5YmFja1N0YXRlLCBkb3VibGUgcGxheWJhY2tSYXRlLCBkb3Vi
bGUgZGVmYXVsdFBsYXliYWNrUmF0ZSkKIHsKLSAgICBtX2lzUGxheWluZyA9IGlzUGxheWluZzsK
KyAgICBtX3BsYXliYWNrU3RhdGUgPSBwbGF5YmFja1N0YXRlOwogICAgIG1fcGxheWJhY2tSYXRl
ID0gcGxheWJhY2tSYXRlOwogICAgIG1fZGVmYXVsdFBsYXliYWNrUmF0ZSA9IGRlZmF1bHRQbGF5
YmFja1JhdGU7CiAgICAgZm9yIChhdXRvKiBjbGllbnQgOiBtX2NsaWVudHMpCi0gICAgICAgIGNs
aWVudC0+cmF0ZUNoYW5nZWQobV9pc1BsYXlpbmcsIG1fcGxheWJhY2tSYXRlLCBtX2RlZmF1bHRQ
bGF5YmFja1JhdGUpOworICAgICAgICBjbGllbnQtPnJhdGVDaGFuZ2VkKG1fcGxheWJhY2tTdGF0
ZSwgbV9wbGF5YmFja1JhdGUsIG1fZGVmYXVsdFBsYXliYWNrUmF0ZSk7CiB9CiAKIHZvaWQgUGxh
eWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OjpzZWVrYWJsZVJhbmdlc0NoYW5nZWQoV2ViQ29yZTo6
VGltZVJhbmdlcyYgc2Vla2FibGVSYW5nZXMsIGRvdWJsZSBsYXN0TW9kaWZpZWRUaW1lLCBkb3Vi
bGUgbGl2ZVVwZGF0ZUludGVydmFsKQpAQCAtNDg5LDkgKzQ4OSw5IEBAIHZvaWQgUGxheWJhY2tT
ZXNzaW9uTWFuYWdlclByb3h5OjpwbGF5YmFja1N0YXJ0ZWRUaW1lQ2hhbmdlZChQbGF5YmFja1Nl
c3Npb25Db250CiAgICAgZW5zdXJlTW9kZWwoY29udGV4dElkKS5wbGF5YmFja1N0YXJ0ZWRUaW1l
Q2hhbmdlZChwbGF5YmFja1N0YXJ0ZWRUaW1lKTsKIH0KIAotdm9pZCBQbGF5YmFja1Nlc3Npb25N
YW5hZ2VyUHJveHk6OnJhdGVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVy
IGNvbnRleHRJZCwgYm9vbCBpc1BsYXlpbmcsIGRvdWJsZSByYXRlLCBkb3VibGUgZGVmYXVsdFBs
YXliYWNrUmF0ZSkKK3ZvaWQgUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpyYXRlQ2hhbmdl
ZChQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE9wdGlvblNldDxX
ZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25Nb2RlbDo6UGxheWJhY2tTdGF0ZT4gcGxheWJhY2tTdGF0
ZSwgZG91YmxlIHJhdGUsIGRvdWJsZSBkZWZhdWx0UGxheWJhY2tSYXRlKQogewotICAgIGVuc3Vy
ZU1vZGVsKGNvbnRleHRJZCkucmF0ZUNoYW5nZWQoaXNQbGF5aW5nLCByYXRlLCBkZWZhdWx0UGxh
eWJhY2tSYXRlKTsKKyAgICBlbnN1cmVNb2RlbChjb250ZXh0SWQpLnJhdGVDaGFuZ2VkKHBsYXli
YWNrU3RhdGUsIHJhdGUsIGRlZmF1bHRQbGF5YmFja1JhdGUpOwogfQogCiB2b2lkIFBsYXliYWNr
U2Vzc2lvbk1hbmFnZXJQcm94eTo6cGljdHVyZUluUGljdHVyZVN1cHBvcnRlZENoYW5nZWQoUGxh
eWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBib29sIHN1cHBvcnRlZCkK
QEAgLTU2MywxMiArNTYzLDEyIEBAIHZvaWQgUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Ojpl
bmRTY2FubmluZyhQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjCiAgICAgbV9wYWdl
LT5zZW5kKE1lc3NhZ2VzOjpQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpFbmRTY2FubmluZyhjb250
ZXh0SWQpKTsKIH0KIAotdm9pZCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OnNldERlZmF1
bHRQbGF5YmFja1JhdGUoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElk
LCBmbG9hdCBkZWZhdWx0UGxheWJhY2tSYXRlKQordm9pZCBQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
UHJveHk6OnNldERlZmF1bHRQbGF5YmFja1JhdGUoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50
aWZpZXIgY29udGV4dElkLCBkb3VibGUgZGVmYXVsdFBsYXliYWNrUmF0ZSkKIHsKICAgICBtX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6OlNldERlZmF1bHRQbGF5
YmFja1JhdGUoY29udGV4dElkLCBkZWZhdWx0UGxheWJhY2tSYXRlKSk7CiB9CiAKLXZvaWQgUGxh
eWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OjpzZXRQbGF5YmFja1JhdGUoUGxheWJhY2tTZXNzaW9u
Q29udGV4dElkZW50aWZpZXIgY29udGV4dElkLCBmbG9hdCBwbGF5YmFja1JhdGUpCit2b2lkIFBs
YXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6c2V0UGxheWJhY2tSYXRlKFBsYXliYWNrU2Vzc2lv
bkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZCwgZG91YmxlIHBsYXliYWNrUmF0ZSkKIHsKICAg
ICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlBsYXliYWNrU2Vzc2lvbk1hbmFnZXI6OlNldFBsYXli
YWNrUmF0ZShjb250ZXh0SWQsIHBsYXliYWNrUmF0ZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xs
ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3Jl
ZW5WaWV3Q29udHJvbGxlci5tbQppbmRleCBlMjZhMzZkY2Y4OTk2NTZjZDJlMGM5MjEzOTkxMzRh
NDFmOWU1ODljLi5iMzY0YTU2ZGUyYzU2NzNkN2I3YjE5NTEwMTI0ODYyYWZhNzIyMzk5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3Jl
ZW5WaWV3Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVs
bHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbQpAQCAtNTAsOSArNTAsOSBAQCBj
bGFzcyBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlclBsYXliYWNrU2Vzc2lvbk1vZGVsQ2xpZW50
IDogV2ViQ29yZTo6UGxheWJhY2tTZQogcHVibGljOgogICAgIHZvaWQgc2V0UGFyZW50KFdLRnVs
bFNjcmVlblZpZXdDb250cm9sbGVyICpwYXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH0KIAot
ICAgIHZvaWQgcmF0ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IC8qIHBsYXliYWNrUmF0
ZSAqLywgZmxvYXQgLyogZGVmYXVsdFBsYXliYWNrUmF0ZSAqLykgb3ZlcnJpZGUKKyAgICB2b2lk
IHJhdGVDaGFuZ2VkKE9wdGlvblNldDxXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25Nb2RlbDo6UGxh
eWJhY2tTdGF0ZT4gcGxheWJhY2tTdGF0ZSwgZG91YmxlIC8qIHBsYXliYWNrUmF0ZSAqLywgZG91
YmxlIC8qIGRlZmF1bHRQbGF5YmFja1JhdGUgKi8pIG92ZXJyaWRlCiAgICAgewotICAgICAgICBt
X3BhcmVudC5wbGF5aW5nID0gaXNQbGF5aW5nOworICAgICAgICBtX3BhcmVudC5wbGF5aW5nID0g
cGxheWJhY2tTdGF0ZS5jb250YWlucyhXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25Nb2RlbDo6UGxh
eWJhY2tTdGF0ZTo6UGxheWluZyk7CiAgICAgfQogCiAgICAgdm9pZCBpc1BpY3R1cmVJblBpY3R1
cmVTdXBwb3J0ZWRDaGFuZ2VkKGJvb2wpIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaAppbmRleCAwOTY3
OTcxNjRjZGY0ZjAzODFmZDkxMWMwZTVmMWMyMTZiNGVkNmQwLi42NWE0ZDZjODk4YzI1ODZkNGM4
ODY3Y2RiMTFlNTkxODhjNTRhMzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmgKQEAgLTc1LDcgKzc1LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGN1cnJlbnRUaW1lQ2hhbmdlZChkb3VibGUgY3VycmVudFRpbWUs
IGRvdWJsZSBhbmNob3JUaW1lKSBmaW5hbDsKICAgICB2b2lkIGJ1ZmZlcmVkVGltZUNoYW5nZWQo
ZG91YmxlKSBmaW5hbDsKICAgICB2b2lkIHBsYXliYWNrU3RhcnRlZFRpbWVDaGFuZ2VkKGRvdWJs
ZSBwbGF5YmFja1N0YXJ0ZWRUaW1lKSBmaW5hbDsKLSAgICB2b2lkIHJhdGVDaGFuZ2VkKGJvb2wg
aXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUsIGZsb2F0IGRlZmF1bHRQbGF5YmFja1JhdGUp
IGZpbmFsOworICAgIHZvaWQgcmF0ZUNoYW5nZWQoT3B0aW9uU2V0PFdlYkNvcmU6OlBsYXliYWNr
U2Vzc2lvbk1vZGVsOjpQbGF5YmFja1N0YXRlPiwgZG91YmxlIHBsYXliYWNrUmF0ZSwgZG91Ymxl
IGRlZmF1bHRQbGF5YmFja1JhdGUpIGZpbmFsOwogICAgIHZvaWQgc2Vla2FibGVSYW5nZXNDaGFu
Z2VkKGNvbnN0IFdlYkNvcmU6OlRpbWVSYW5nZXMmLCBkb3VibGUgbGFzdE1vZGlmaWVkVGltZSwg
ZG91YmxlIGxpdmVVcGRhdGVJbnRlcnZhbCkgZmluYWw7CiAgICAgdm9pZCBjYW5QbGF5RmFzdFJl
dmVyc2VDaGFuZ2VkKGJvb2wgdmFsdWUpIGZpbmFsOwogICAgIHZvaWQgYXVkaW9NZWRpYVNlbGVj
dGlvbk9wdGlvbnNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpNZWRpYVNlbGVjdGlvbk9w
dGlvbj4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpIGZpbmFsOwpAQCAtMTMwLDcg
KzEzMCw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGN1cnJlbnRUaW1lQ2hhbmdlZChQbGF5YmFj
a1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgZG91YmxlIGN1cnJlbnRUaW1lLCBkb3VibGUgYW5j
aG9yVGltZSk7CiAgICAgdm9pZCBidWZmZXJlZFRpbWVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNv
bnRleHRJZGVudGlmaWVyLCBkb3VibGUgYnVmZmVyZWRUaW1lKTsKICAgICB2b2lkIHBsYXliYWNr
U3RhcnRlZFRpbWVDaGFuZ2VkKFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBkb3Vi
bGUgcGxheWJhY2tTdGFydGVkVGltZSk7Ci0gICAgdm9pZCByYXRlQ2hhbmdlZChQbGF5YmFja1Nl
c3Npb25Db250ZXh0SWRlbnRpZmllciwgYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0
ZSwgZmxvYXQgZGVmYXVsdFBsYXliYWNrUmF0ZSk7CisgICAgdm9pZCByYXRlQ2hhbmdlZChQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciwgT3B0aW9uU2V0PFdlYkNvcmU6OlBsYXliYWNr
U2Vzc2lvbk1vZGVsOjpQbGF5YmFja1N0YXRlPiwgZG91YmxlIHBsYXliYWNrUmF0ZSwgZG91Ymxl
IGRlZmF1bHRQbGF5YmFja1JhdGUpOwogICAgIHZvaWQgc2Vla2FibGVSYW5nZXNDaGFuZ2VkKFBs
YXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpUaW1lUmFuZ2Vz
JiwgZG91YmxlIGxhc3RNb2RpZmllZFRpbWUsIGRvdWJsZSBsaXZlVXBkYXRlSW50ZXJ2YWwpOwog
ICAgIHZvaWQgY2FuUGxheUZhc3RSZXZlcnNlQ2hhbmdlZChQbGF5YmFja1Nlc3Npb25Db250ZXh0
SWRlbnRpZmllciwgYm9vbCB2YWx1ZSk7CiAgICAgdm9pZCBhdWRpb01lZGlhU2VsZWN0aW9uT3B0
aW9uc0NoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpNZWRpYVNlbGVjdGlvbk9wdGlvbj4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVj
dGVkSW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Bs
YXliYWNrU2Vzc2lvbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbQppbmRleCAzNDY0M2Y5YmU1OTIyNjQ0YzBhODE2Mzc0
MzA5OGIwMDEzMTFhMjA3Li42NGY2OTY2ZWJmNDZiOTIyOWFmM2QyMDE4YjZjZTM2NWZjMDNiMDAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUGxheWJhY2tTZXNz
aW9uTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUGxheWJh
Y2tTZXNzaW9uTWFuYWdlci5tbQpAQCAtNzYsMTAgKzc2LDEwIEBAIHZvaWQgUGxheWJhY2tTZXNz
aW9uSW50ZXJmYWNlQ29udGV4dDo6YnVmZmVyZWRUaW1lQ2hhbmdlZChkb3VibGUgYnVmZmVyZWRU
aW1lKQogICAgICAgICBtX21hbmFnZXItPmJ1ZmZlcmVkVGltZUNoYW5nZWQobV9jb250ZXh0SWQs
IGJ1ZmZlcmVkVGltZSk7CiB9CiAKLXZvaWQgUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQ29udGV4
dDo6cmF0ZUNoYW5nZWQoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSwgZmxvYXQg
ZGVmYXVsdFBsYXliYWNrUmF0ZSkKK3ZvaWQgUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQ29udGV4
dDo6cmF0ZUNoYW5nZWQoT3B0aW9uU2V0PFBsYXliYWNrU2Vzc2lvbk1vZGVsOjpQbGF5YmFja1N0
YXRlPiBwbGF5YmFja1N0YXRlLCBkb3VibGUgcGxheWJhY2tSYXRlLCBkb3VibGUgZGVmYXVsdFBs
YXliYWNrUmF0ZSkKIHsKICAgICBpZiAobV9tYW5hZ2VyKQotICAgICAgICBtX21hbmFnZXItPnJh
dGVDaGFuZ2VkKG1fY29udGV4dElkLCBpc1BsYXlpbmcsIHBsYXliYWNrUmF0ZSwgZGVmYXVsdFBs
YXliYWNrUmF0ZSk7CisgICAgICAgIG1fbWFuYWdlci0+cmF0ZUNoYW5nZWQobV9jb250ZXh0SWQs
IHBsYXliYWNrU3RhdGUsIHBsYXliYWNrUmF0ZSwgZGVmYXVsdFBsYXliYWNrUmF0ZSk7CiB9CiAK
IHZvaWQgUGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlQ29udGV4dDo6cGxheWJhY2tTdGFydGVkVGlt
ZUNoYW5nZWQoZG91YmxlIHBsYXliYWNrU3RhcnRlZFRpbWUpCkBAIC0zNDEsOSArMzQxLDkgQEAg
dm9pZCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpwbGF5YmFja1N0YXJ0ZWRUaW1lQ2hhbmdlZChQ
bGF5YmFja1Nlc3Npb25Db250ZXh0SWQKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlBsYXli
YWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6UGxheWJhY2tTdGFydGVkVGltZUNoYW5nZWQoY29udGV4
dElkLCBwbGF5YmFja1N0YXJ0ZWRUaW1lKSk7CiB9CiAKLXZvaWQgUGxheWJhY2tTZXNzaW9uTWFu
YWdlcjo6cmF0ZUNoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4
dElkLCBib29sIGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRlLCBmbG9hdCBkZWZhdWx0UGxh
eWJhY2tSYXRlKQordm9pZCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpyYXRlQ2hhbmdlZChQbGF5
YmFja1Nlc3Npb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWQsIE9wdGlvblNldDxQbGF5YmFj
a1Nlc3Npb25Nb2RlbDo6UGxheWJhY2tTdGF0ZT4gcGxheWJhY2tTdGF0ZSwgZG91YmxlIHBsYXli
YWNrUmF0ZSwgZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUpCiB7Ci0gICAgbV9wYWdlLT5zZW5k
KE1lc3NhZ2VzOjpQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk6OlJhdGVDaGFuZ2VkKGNvbnRl
eHRJZCwgaXNQbGF5aW5nLCBwbGF5YmFja1JhdGUsIGRlZmF1bHRQbGF5YmFja1JhdGUpKTsKKyAg
ICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6UmF0
ZUNoYW5nZWQoY29udGV4dElkLCBwbGF5YmFja1N0YXRlLCBwbGF5YmFja1JhdGUsIGRlZmF1bHRQ
bGF5YmFja1JhdGUpKTsKIH0KIAogdm9pZCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyOjpzZWVrYWJs
ZVJhbmdlc0NoYW5nZWQoUGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElk
LCBjb25zdCBXZWJDb3JlOjpUaW1lUmFuZ2VzJiB0aW1lUmFuZ2VzLCBkb3VibGUgbGFzdE1vZGlm
aWVkVGltZSwgZG91YmxlIGxpdmVVcGRhdGVJbnRlcnZhbCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>