<?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>232155</bug_id>
          
          <creation_ts>2021-10-22 10:14:35 -0700</creation_ts>
          <short_desc>[Cocoa] Fairplay encrypted video fails to play when loaded in a display:none element</short_desc>
          <delta_ts>2021-10-22 20:17:25 -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>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1807739</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-10-22 10:14:35 -0700</bug_when>
    <thetext>Fairplay encrypted video can never play if it is loaded in a display:none element</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807740</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-10-22 10:14:50 -0700</bug_when>
    <thetext>rdar://83419159</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807746</commentid>
    <comment_count>2</comment_count>
      <attachid>442177</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-10-22 10:24:50 -0700</bug_when>
    <thetext>Created attachment 442177
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807773</commentid>
    <comment_count>3</comment_count>
      <attachid>442177</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-22 11:04:16 -0700</bug_when>
    <thetext>Comment on attachment 442177
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:112
&gt; +    if (!haveBeenAskedToPaint() || (supportsAcceleratedRendering() &amp;&amp; m_player-&gt;renderingCanBeAccelerated()))
&gt; +        return MediaRenderingMode::MediaRenderingToLayer;

So this will just cause us to always create an AVPlayerLayer immediately after the AVAssetStatus moves to &gt; Unknown.  Is that correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807897</commentid>
    <comment_count>4</comment_count>
      <attachid>442177</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-10-22 15:21:05 -0700</bug_when>
    <thetext>Comment on attachment 442177
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:637
&gt; +    if (!m_avPlayer || m_videoLayer)

Just curious. Is it possible that we need a video layer with a different size (or content scale) than the existing video layer.
Before this change, this function will always create a new video layer and set some parameters (from the player).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807917</commentid>
    <comment_count>5</comment_count>
      <attachid>442177</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-10-22 15:56:37 -0700</bug_when>
    <thetext>Comment on attachment 442177
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:637
&gt;&gt; +    if (!m_avPlayer || m_videoLayer)
&gt; 
&gt; Just curious. Is it possible that we need a video layer with a different size (or content scale) than the existing video layer.
&gt; Before this change, this function will always create a new video layer and set some parameters (from the player).

No, this function is only called when `m_videoLayer` is NULL so this change isn&apos;t necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807928</commentid>
    <comment_count>6</comment_count>
      <attachid>442211</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-10-22 16:08:12 -0700</bug_when>
    <thetext>Created attachment 442211
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807934</commentid>
    <comment_count>7</comment_count>
      <attachid>442211</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-10-22 16:15:02 -0700</bug_when>
    <thetext>Comment on attachment 442211
Patch

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

r=me with nit

&gt; Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:112
&gt;  
&gt; -    if (supportsAcceleratedRendering() &amp;&amp; m_player-&gt;renderingCanBeAccelerated())
&gt; -        return MediaRenderingToLayer;
&gt; +    if ((m_readyState &gt;= MediaPlayer::ReadyState::HaveMetadata &amp;&amp; !haveBeenAskedToPaint()) || (supportsAcceleratedRendering() &amp;&amp; m_player-&gt;renderingCanBeAccelerated()))
&gt; +        return MediaRenderingMode::MediaRenderingToLayer;

Nit: I might break this out into two statements for readability, and a smaller diff:

if (supportsAcceleratedRendering() &amp;&amp; m_player-&gt;renderingCanBeAccelerated())
    return MediaRenderingToLayer;

if (m_readyState &gt;= MediaPlayer::ReadyState::HaveMetadata &amp;&amp; !haveBeenAskedToPaint())
    return MediaRenderingToLayer;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807947</commentid>
    <comment_count>8</comment_count>
      <attachid>442219</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-10-22 16:33:36 -0700</bug_when>
    <thetext>Created attachment 442219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807950</commentid>
    <comment_count>9</comment_count>
      <attachid>442221</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-10-22 16:35:59 -0700</bug_when>
    <thetext>Created attachment 442221
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808013</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-22 19:34:26 -0700</bug_when>
    <thetext>Committed r284737 (243446@main): &lt;https://commits.webkit.org/243446@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442221.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808015</commentid>
    <comment_count>11</comment_count>
      <attachid>442221</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-22 20:17:25 -0700</bug_when>
    <thetext>Comment on attachment 442221
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:160
&gt; +    enum class MediaRenderingMode : uint8_t {
&gt; +        MediaRenderingNone,
&gt; +        MediaRenderingToContext,
&gt; +        MediaRenderingToLayer
&gt; +    };

Remove &quot;MediaRendering&quot; from the values.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442177</attachid>
            <date>2021-10-22 10:24:50 -0700</date>
            <delta_ts>2021-10-22 16:08:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232155-20211022102449.patch</filename>
            <type>text/plain</type>
            <size>13264</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTJkMjhiZjBhZDA2Zjc3
MjcyMWZjYzBjNmVhNmI5YmVkZjlhMjRlMy4uZTlhNGVhYjcyNmQyYzFlMDZmZmMyNDE4ZjhiZWU0
YTUxZDQzNWZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTEwLTIyICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gRmFp
cnBsYXkgZW5jcnlwdGVkIHZpZGVvIGZhaWxzIHRvIHBsYXkgd2hlbiBsb2FkZWQgaW4gYSBkaXNw
bGF5Om5vbmUgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMyMTU1CisgICAgICAgIHJkYXI6Ly84MzQxOTE1OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmN1cnJlbnRSZW5kZXJpbmdN
b2RlIGNvbnN0KTogTWVkaWFSZW5kZXJpbmdNb2RlCisgICAgICAgIHdhcyBjaGFuZ2VkIGZyb20g
YW4gYGVudW1gIHRvIGFuIGBlbnVtIGNsYXNzYCBzbyBpdHMgdmFsdWVzIGNhbiBiZSBsb2dnZWQu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnByZWZl
cnJlZFJlbmRlcmluZ01vZGUgY29uc3QpOiBPbmx5IHJldHVybgorICAgICAgICBgTWVkaWFSZW5k
ZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvQ29udGV4dGAgaWYgd2UgaGF2ZSBiZWVuIGFza2Vk
IHRvIHBhaW50LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uOjpzZXRVcFZpZGVvUmVuZGVyaW5nKTogTWVkaWFSZW5kZXJpbmdNb2RlIGNoYW5nZS4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0TmVlZHNS
ZW5kZXJpbmdNb2RlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpwcmVwYXJlRm9yUmVuZGVyaW5nKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFBhZ2VJc1Zp
c2libGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRFbnVtZXJhdGlvblRvU3Ry
aW5nKTogTWVkaWFSZW5kZXJpbmdNb2RlIGxvZ2dpbmcgZnVuY3Rpb24uCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246
OmhhdmVCZWVuQXNrZWRUb1BhaW50IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyTGF5ZXIpOiBEcml2ZSBi
eTogcmV0dXJuCisgICAgICAgIGVhcmx5IGlmIHdlIGFscmVhZHkgaGF2ZSBhIGxheWVyLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6aGFzQXZh
aWxhYmxlVmlkZW9GcmFtZSBjb25zdCk6IE1lZGlhUmVuZGVyaW5nTW9kZSBjaGFuZ2UuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6dXBkYXRlTGFzdFBpeGVsQnVmZmVyKTogU2V0IG1faGF2ZUJlZW5Bc2tlZFRvUGFpbnQu
CisKIDIwMjEtMTAtMTkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVncmVzc2lvbihyMjg0MzM2KTogWyBpT1MgMTUgXSBzeXN0ZW0tcHJldmlldy9i
YWRnZS5odG1sIGlzIGltYWdlIGZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXggNDY4OWI5N2NjOTJjMjIwNmU3
YThlNThiNDE5ZjBmMTA0NzYzYzIzOC4uMmM5OWFmZjljOWZhODNiMGU4NTY3ZDRiNmMwM2QzOWQ5
NjQxY2ExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5jcHAKQEAgLTk1LDIzICs5NSwyMyBAQCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb246On5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oKQogTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRpYVJlbmRlcmluZ01vZGUgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uOjpjdXJyZW50UmVuZGVyaW5nTW9kZSgpIGNvbnN0CiB7CiAgICAgaWYg
KHBsYXRmb3JtTGF5ZXIoKSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nVG9MYXllcjsK
KyAgICAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdUb0xheWVy
OwogCiAgICAgaWYgKGhhc0NvbnRleHRSZW5kZXJlcigpKQotICAgICAgICByZXR1cm4gTWVkaWFS
ZW5kZXJpbmdUb0NvbnRleHQ7CisgICAgICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ01vZGU6Ok1l
ZGlhUmVuZGVyaW5nVG9Db250ZXh0OwogCi0gICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nTm9uZTsK
KyAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ05vbmU7CiB9CiAK
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFSZW5kZXJpbmdNb2RlIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6cHJlZmVycmVkUmVuZGVyaW5nTW9kZSgpIGNvbnN0
CiB7CiAgICAgaWYgKGFzc2V0U3RhdHVzKCkgPT0gTWVkaWFQbGF5ZXJBVkFzc2V0U3RhdHVzVW5r
bm93bikKLSAgICAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nTm9uZTsKKyAgICAgICAgcmV0dXJu
IE1lZGlhUmVuZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdOb25lOwogCi0gICAgaWYgKHN1cHBv
cnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSAmJiBtX3BsYXllci0+cmVuZGVyaW5nQ2FuQmVBY2Nl
bGVyYXRlZCgpKQotICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdUb0xheWVyOworICAgIGlm
ICghaGF2ZUJlZW5Bc2tlZFRvUGFpbnQoKSB8fCAoc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmlu
ZygpICYmIG1fcGxheWVyLT5yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKCkpKQorICAgICAgICBy
ZXR1cm4gTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvTGF5ZXI7CiAKLSAgICBy
ZXR1cm4gTWVkaWFSZW5kZXJpbmdUb0NvbnRleHQ7CisgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5n
TW9kZTo6TWVkaWFSZW5kZXJpbmdUb0NvbnRleHQ7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uOjpzZXRVcFZpZGVvUmVuZGVyaW5nKCkKQEAgLTEyMiwyNyArMTIyLDI5
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRVcFZpZGVvUmVuZGVy
aW5nKCkKICAgICBNZWRpYVJlbmRlcmluZ01vZGUgY3VycmVudE1vZGUgPSBjdXJyZW50UmVuZGVy
aW5nTW9kZSgpOwogICAgIE1lZGlhUmVuZGVyaW5nTW9kZSBwcmVmZXJyZWRNb2RlID0gcHJlZmVy
cmVkUmVuZGVyaW5nTW9kZSgpOwogCi0gICAgaWYgKGN1cnJlbnRNb2RlID09IHByZWZlcnJlZE1v
ZGUgJiYgY3VycmVudE1vZGUgIT0gTWVkaWFSZW5kZXJpbmdOb25lKQorICAgIGlmIChjdXJyZW50
TW9kZSA9PSBwcmVmZXJyZWRNb2RlICYmIGN1cnJlbnRNb2RlICE9IE1lZGlhUmVuZGVyaW5nTW9k
ZTo6TWVkaWFSZW5kZXJpbmdOb25lKQogICAgICAgICByZXR1cm47CiAKKyAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIsIHByZWZlcnJlZE1vZGUpOworCiAgICAgc3dpdGNoIChwcmVmZXJyZWRN
b2RlKSB7Ci0gICAgY2FzZSBNZWRpYVJlbmRlcmluZ05vbmU6CisgICAgY2FzZSBNZWRpYVJlbmRl
cmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nTm9uZToKICAgICAgICAgdGVhckRvd25WaWRlb1JlbmRl
cmluZygpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgTWVkaWFSZW5kZXJpbmdUb0NvbnRl
eHQ6CisgICAgY2FzZSBNZWRpYVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9Db250ZXh0
OgogICAgICAgICBkZXN0cm95VmlkZW9MYXllcigpOwogICAgICAgICBjcmVhdGVDb250ZXh0Vmlk
ZW9SZW5kZXJlcigpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgTWVkaWFSZW5kZXJpbmdU
b0xheWVyOgorICAgIGNhc2UgTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvTGF5
ZXI6CiAgICAgICAgIGRlc3Ryb3lDb250ZXh0VmlkZW9SZW5kZXJlcigpOwogICAgICAgICBjcmVh
dGVWaWRlb0xheWVyKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIC8vIElmIHVzaW5n
IGEgbW92aWUgbGF5ZXIsIGluZm9ybSB0aGUgY2xpZW50IHNvIHRoZSBjb21wb3NpdGluZyB0cmVl
IGlzIHVwZGF0ZWQuCi0gICAgaWYgKGN1cnJlbnRNb2RlID09IE1lZGlhUmVuZGVyaW5nVG9MYXll
ciB8fCBwcmVmZXJyZWRNb2RlID09IE1lZGlhUmVuZGVyaW5nVG9MYXllcikKKyAgICBpZiAoY3Vy
cmVudE1vZGUgPT0gTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvTGF5ZXIgfHwg
cHJlZmVycmVkTW9kZSA9PSBNZWRpYVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9MYXll
cikKICAgICAgICAgc2V0TmVlZHNSZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwogfQogCkBAIC0xNTIs
NiArMTU0LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldE5lZWRz
UmVuZGVyaW5nTW9kZUNoYW5nZWQoKQogICAgICAgICByZXR1cm47CiAgICAgbV9uZWVkc1JlbmRl
cmluZ01vZGVDaGFuZ2VkID0gdHJ1ZTsKIAorICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7
CisKICAgICBxdWV1ZVRhc2tPbkV2ZW50TG9vcChbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMg
fV0gewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+cmVuZGVy
aW5nTW9kZUNoYW5nZWQoKTsKQEAgLTQ2Miw3ICs0NjYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbjo6cHJlcGFyZUZvclJlbmRlcmluZygpCiAKICAgICBzZXRVcFZpZGVv
UmVuZGVyaW5nKCk7CiAKLSAgICBpZiAoY3VycmVudFJlbmRlcmluZ01vZGUoKSA9PSBNZWRpYVJl
bmRlcmluZ1RvTGF5ZXIgfHwgcHJlZmVycmVkUmVuZGVyaW5nTW9kZSgpID09IE1lZGlhUmVuZGVy
aW5nVG9MYXllcikKKyAgICBpZiAoY3VycmVudFJlbmRlcmluZ01vZGUoKSA9PSBNZWRpYVJlbmRl
cmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9MYXllciB8fCBwcmVmZXJyZWRSZW5kZXJpbmdNb2Rl
KCkgPT0gTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvTGF5ZXIpCiAgICAgICAg
IHNldE5lZWRzUmVuZGVyaW5nTW9kZUNoYW5nZWQoKTsKIH0KIApAQCAtNTg2LDEwICs1OTAsMTIg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFBhZ2VJc1Zpc2libGUo
Ym9vbCB2aXNpYmxlKQogICAgIGlmIChtX3Zpc2libGUgPT0gdmlzaWJsZSkKICAgICAgICAgcmV0
dXJuOwogCisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB2aXNpYmxlKTsKKwogICAgIG1f
dmlzaWJsZSA9IHZpc2libGU7CiAgICAgaWYgKHZpc2libGUpCiAgICAgICAgIHNldFVwVmlkZW9S
ZW5kZXJpbmcoKTsKLSAgICAKKwogICAgIHBsYXRmb3JtU2V0VmlzaWJsZSh2aXNpYmxlKTsKIH0K
IApAQCAtMTEyMiw2ICsxMTI4LDIwIEBAIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJ
bnNlbnNpdGl2ZUhhc2g+JiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246CiAgICAgcmV0
dXJuIGNhY2hlOwogfQogCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRpYVJlbmRlcmluZ01vZGUgZW51bWVyYXRpb25W
YWx1ZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNb
XSA9IHsKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIk1lZGlhUmVuZGVyaW5nTm9u
ZSIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTWVkaWFSZW5kZXJpbmdUb0Nv
bnRleHQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIk1lZGlhUmVuZGVyaW5n
VG9MYXllciIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+
KE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRp
YVJlbmRlcmluZ05vbmUpID09IDAsICJNZWRpYVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5n
Tm9uZSBpcyBub3QgMCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nh
c3Q8c2l6ZV90PihNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUmVuZGVyaW5n
TW9kZTo6TWVkaWFSZW5kZXJpbmdUb0NvbnRleHQpID09IDEsICJNZWRpYVJlbmRlcmluZ01vZGU6
Ok1lZGlhUmVuZGVyaW5nVG9Db250ZXh0IGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7CisgICAgc3Rh
dGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbjo6TWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvTGF5ZXIpID09IDIsICJN
ZWRpYVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9MYXllciBpcyBub3QgMiBhcyBleHBl
Y3RlZCIpOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUp
IDwgV1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpKTsKKyAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19j
YXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSldOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5oCmluZGV4IDE1OThiNDNkNWJkZmI5MDI4YzVhZTEyMWZjMGQzOGNjYTg4
ZGMzZjkuLjcxM2Y1YzNjMzNjOGI0MDdhMTQyMTA3MzMwMDVhZDA0ZTFhYWE5ZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKQEAg
LTE1Myw2ICsxNTMsMTIgQEAgcHVibGljOgogICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwo
KSBjb25zdCBmaW5hbDsKICNlbmRpZgogCisgICAgZW51bSBjbGFzcyBNZWRpYVJlbmRlcmluZ01v
ZGUgOiB1aW50OF90IHsKKyAgICAgICAgTWVkaWFSZW5kZXJpbmdOb25lLAorICAgICAgICBNZWRp
YVJlbmRlcmluZ1RvQ29udGV4dCwKKyAgICAgICAgTWVkaWFSZW5kZXJpbmdUb0xheWVyCisgICAg
fTsKKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbihNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbigpOwpAQCAtMjcxLDcgKzI3Nyw2IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgYm9v
bCBpc1Vuc3VwcG9ydGVkTUlNRVR5cGUoY29uc3QgU3RyaW5nJik7CiAgICAgc3RhdGljIGNvbnN0
IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBzdGF0aWNNSU1FVHlw
ZUxpc3QoKTsKIAotcHJvdGVjdGVkOgogICAgIHZvaWQgdXBkYXRlU3RhdGVzKCk7CiAKICAgICB2
b2lkIHNldEhhc1ZpZGVvKGJvb2wpOwpAQCAtMjg2LDcgKzI5MSw2IEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIHNldE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlKTsKICAgICB2
b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpOwogCi0gICAgZW51bSBN
ZWRpYVJlbmRlcmluZ01vZGUgeyBNZWRpYVJlbmRlcmluZ05vbmUsIE1lZGlhUmVuZGVyaW5nVG9D
b250ZXh0LCBNZWRpYVJlbmRlcmluZ1RvTGF5ZXIgfTsKICAgICBNZWRpYVJlbmRlcmluZ01vZGUg
Y3VycmVudFJlbmRlcmluZ01vZGUoKSBjb25zdDsKICAgICBNZWRpYVJlbmRlcmluZ01vZGUgcHJl
ZmVycmVkUmVuZGVyaW5nTW9kZSgpIGNvbnN0OwogCkBAIC0yOTUsNiArMjk5LDcgQEAgcHJvdGVj
dGVkOgogICAgIGJvb2wgaXNSZWFkeUZvclZpZGVvU2V0dXAoKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0VXBWaWRlb1JlbmRlcmluZygpOwogICAgIHZpcnR1YWwgdm9pZCB0ZWFyRG93blZp
ZGVvUmVuZGVyaW5nKCk7CisgICAgdmlydHVhbCBib29sIGhhdmVCZWVuQXNrZWRUb1BhaW50KCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGhhc1NldFVwVmlkZW9SZW5kZXJpbmco
KSBjb25zdDsKIAogICAgIHZvaWQgbWFpblRocmVhZENhbGxiYWNrKCk7CkBAIC0zNzUsNiArMzgw
LDI0IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25lZWRzUmVuZGVyaW5nTW9kZUNoYW5nZWQgeyBm
YWxzZSB9OwogfTsKIAorU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFSZW5kZXJpbmdNb2RlKTsKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVHlw
ZT4KK3N0cnVjdCBMb2dBcmd1bWVudDsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUmVuZGVyaW5nTW9k
ZT4gewordXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUmVuZGVyaW5nTW9kZSwKKyAgICBXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUmVuZGVyaW5nTW9kZTo6TWVkaWFS
ZW5kZXJpbmdOb25lLAorICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bjo6TWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvQ29udGV4dCwKKyAgICBXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUmVuZGVyaW5nTW9kZTo6
TWVkaWFSZW5kZXJpbmdUb0xheWVyCisgICAgPjsKK307CisKK307IC8vIG5hbWVzcGFjZSBXVEYK
KwogI2VuZGlmIC8vIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaAppbmRleCAyZGZiNDc0Y2NmNWQwZGI2YjE4Y2VhNjcyODI4ZTcxZjE5OTUzYzdh
Li4xMzgwZDMzYmIwYjE3NjQ2ZjZiNThkY2M0YTU5MzM0NGQ5NTA4MmU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oCkBAIC0zNDAsNiArMzQwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRz
UGF1c2VBdEhvc3RUaW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wg
cGxheUF0SG9zdFRpbWUoY29uc3QgTW9ub3RvbmljVGltZSYpIGZpbmFsOwogICAgIGJvb2wgcGF1
c2VBdEhvc3RUaW1lKGNvbnN0IE1vbm90b25pY1RpbWUmKSBmaW5hbDsKKyAgICBib29sIGhhdmVC
ZWVuQXNrZWRUb1BhaW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXZlQmVlbkFza2VkVG9QYWludDsg
fQogCiAgICAgUmV0YWluUHRyPEFWVVJMQXNzZXQ+IG1fYXZBc3NldDsKICAgICBSZXRhaW5QdHI8
QVZQbGF5ZXI+IG1fYXZQbGF5ZXI7CkBAIC00NDksNiArNDUwLDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fcnVubmluZ01vZGFsUGFpbnQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXZlUHJvY2Vz
c2VkQ2hhcHRlclRyYWNrcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3dhaXRGb3JWaWRlb091dHB1
dE1lZGlhRGF0YVdpbGxDaGFuZ2VUaW1lZE91dCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhdmVC
ZWVuQXNrZWRUb1BhaW50IHsgZmFsc2UgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
CmluZGV4IDJhMDc5OWUzYWFhODhiZmI4MDI0YmUxMjgyM2ZiOWJiOTZhODMwMWYuLjU0YzBlM2Ni
YmVmMGYyODVmNWU4MzhiNTMzOTVjZGI0M2QwNWNhZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bQpAQCAtNjM0LDkgKzYzNCwxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OmNyZWF0ZVZpZGVvTGF5ZXIoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyTGF5ZXIoKQogewotICAgIGlmICghbV9hdlBsYXll
cikKKyAgICBpZiAoIW1fYXZQbGF5ZXIgfHwgbV92aWRlb0xheWVyKQogICAgICAgICByZXR1cm47
CiAKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworCiAgICAgbV92aWRlb0xheWVyID0g
YWRvcHROUyhbUEFMOjphbGxvY0FWUGxheWVyTGF5ZXJJbnN0YW5jZSgpIGluaXRdKTsKICAgICBb
bV92aWRlb0xheWVyIHNldFBsYXllcjptX2F2UGxheWVyLmdldCgpXTsKIApAQCAtNjkwLDcgKzY5
Miw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpnZXRT
dGFydERhdGUoKSBjb25zdAogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6Omhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSBjb25zdAogewotICAgIGlmIChjdXJyZW50UmVu
ZGVyaW5nTW9kZSgpID09IE1lZGlhUmVuZGVyaW5nVG9MYXllcikKKyAgICBpZiAoY3VycmVudFJl
bmRlcmluZ01vZGUoKSA9PSBNZWRpYVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9MYXll
cikKICAgICAgICAgcmV0dXJuIG1fY2FjaGVkSXNSZWFkeUZvckRpc3BsYXk7CiAKICAgICBpZiAo
bV92aWRlb091dHB1dCAmJiAobV9sYXN0UGl4ZWxCdWZmZXIgfHwgW21fdmlkZW9PdXRwdXQgaGFz
TmV3UGl4ZWxCdWZmZXJGb3JJdGVtVGltZTpbbV9hdlBsYXllckl0ZW0gY3VycmVudFRpbWVdXSkp
CkBAIC0xODM0LDcgKzE4MzYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRgogICAgICAgICBy
ZXR1cm47CiAKICAgICAvLyBXZSBjYW4gaWdub3JlIHRoZSByZXF1ZXN0IGlmIHdlIGFyZSBhbHJl
YWR5IHJlbmRlcmluZyB0byBhIGxheWVyLgotICAgIGlmIChjdXJyZW50UmVuZGVyaW5nTW9kZSgp
ID09IE1lZGlhUmVuZGVyaW5nVG9MYXllcikKKyAgICBpZiAoY3VycmVudFJlbmRlcmluZ01vZGUo
KSA9PSBNZWRpYVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9MYXllcikKICAgICAgICAg
cmV0dXJuOwogCiAgICAgLy8gcGFpbnQoKSBpcyBiZXN0IGVmZm9ydCwgc28gb25seSBwYWludCBp
ZiB3ZSBhbHJlYWR5IGhhdmUgYW4gaW1hZ2UgZ2VuZXJhdG9yIG9yIHZpZGVvIG91dHB1dCBhdmFp
bGFibGUuCkBAIC0yNDk3LDYgKzI0OTksOCBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpCiAgICAgaWYgKCFtX2F2UGxheWVy
SXRlbSB8fCByZWFkeVN0YXRlKCkgPCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZUN1cnJl
bnREYXRhKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBtX2hhdmVCZWVuQXNrZWRUb1Bh
aW50ID0gdHJ1ZTsKKwogICAgIGlmICghbV92aWRlb091dHB1dCkKICAgICAgICAgY3JlYXRlVmlk
ZW9PdXRwdXQoKTsKICAgICBBU1NFUlQobV92aWRlb091dHB1dCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442211</attachid>
            <date>2021-10-22 16:08:12 -0700</date>
            <delta_ts>2021-10-22 16:33:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232155-20211022160811.patch</filename>
            <type>text/plain</type>
            <size>14183</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTJkMjhiZjBhZDA2Zjc3
MjcyMWZjYzBjNmVhNmI5YmVkZjlhMjRlMy4uYjI2ZDQwZGVjM2VjZjJkNzQzNzY0NTZmMjg1ZWY2
NThiZGQxMDgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTEwLTIyICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gRmFp
cnBsYXkgZW5jcnlwdGVkIHZpZGVvIGZhaWxzIHRvIHBsYXkgd2hlbiBsb2FkZWQgaW4gYSBkaXNw
bGF5Om5vbmUgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMyMTU1CisgICAgICAgIHJkYXI6Ly84MzQxOTE1OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmN1cnJlbnRSZW5kZXJpbmdN
b2RlIGNvbnN0KTogTWVkaWFSZW5kZXJpbmdNb2RlCisgICAgICAgIHdhcyBjaGFuZ2VkIGZyb20g
YW4gYGVudW1gIHRvIGFuIGBlbnVtIGNsYXNzYCBzbyBpdHMgdmFsdWVzIGNhbiBiZSBsb2dnZWQu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnByZWZl
cnJlZFJlbmRlcmluZ01vZGUgY29uc3QpOiBPbmx5IHJldHVybgorICAgICAgICBgTWVkaWFSZW5k
ZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvQ29udGV4dGAgaWYgd2UgaGF2ZSBiZWVuIGFza2Vk
IHRvIHBhaW50IG9uY2UKKyAgICAgICAgcmVhZHlTdGF0ZSBpcyBIYXZlTWV0YWRhdGEgb3IgaGln
aGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpz
ZXRVcFZpZGVvUmVuZGVyaW5nKTogTWVkaWFSZW5kZXJpbmdNb2RlIGNoYW5nZS4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0TmVlZHNSZW5kZXJp
bmdNb2RlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uOjpwcmVwYXJlRm9yUmVuZGVyaW5nKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFBhZ2VJc1Zpc2libGUp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKTog
TWVkaWFSZW5kZXJpbmdNb2RlIGxvZ2dpbmcgZnVuY3Rpb24uCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmhhdmVC
ZWVuQXNrZWRUb1BhaW50IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6Omhhc0F2YWlsYWJsZVZpZGVvRnJhbWUgY29uc3QpOiBNZWRp
YVJlbmRlcmluZ01vZGUgY2hhbmdlLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcik6
IFNldCBtX2hhdmVCZWVuQXNrZWRUb1BhaW50LgorCiAyMDIxLTEwLTE5ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24ocjI4NDMzNik6
IFsgaU9TIDE1IF0gc3lzdGVtLXByZXZpZXcvYmFkZ2UuaHRtbCBpcyBpbWFnZSBmYWlsaW5nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
Y3BwCmluZGV4IDQ2ODliOTdjYzkyYzIyMDZlN2E4ZTU4YjQxOWYwZjEwNDc2M2MyMzguLjExNGU3
MTEwZWZjYjA1YTQ4NmY4YTM0MjI4ZGYyMWIzMDM3NDMxMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCkBAIC05NSwyMyAr
OTUsMjMgQEAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjp+TWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uKCkKIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFS
ZW5kZXJpbmdNb2RlIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6Y3VycmVudFJlbmRl
cmluZ01vZGUoKSBjb25zdAogewogICAgIGlmIChwbGF0Zm9ybUxheWVyKCkpCi0gICAgICAgIHJl
dHVybiBNZWRpYVJlbmRlcmluZ1RvTGF5ZXI7CisgICAgICAgIHJldHVybiBNZWRpYVJlbmRlcmlu
Z01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9MYXllcjsKIAogICAgIGlmIChoYXNDb250ZXh0UmVuZGVy
ZXIoKSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nVG9Db250ZXh0OworICAgICAgICBy
ZXR1cm4gTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvQ29udGV4dDsKIAotICAg
IHJldHVybiBNZWRpYVJlbmRlcmluZ05vbmU7CisgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nTW9k
ZTo6TWVkaWFSZW5kZXJpbmdOb25lOwogfQogCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b246Ok1lZGlhUmVuZGVyaW5nTW9kZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnBy
ZWZlcnJlZFJlbmRlcmluZ01vZGUoKSBjb25zdAogewogICAgIGlmIChhc3NldFN0YXR1cygpID09
IE1lZGlhUGxheWVyQVZBc3NldFN0YXR1c1Vua25vd24pCi0gICAgICAgIHJldHVybiBNZWRpYVJl
bmRlcmluZ05vbmU7CisgICAgICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVu
ZGVyaW5nTm9uZTsKIAotICAgIGlmIChzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgJiYg
bV9wbGF5ZXItPnJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQoKSkKLSAgICAgICAgcmV0dXJuIE1l
ZGlhUmVuZGVyaW5nVG9MYXllcjsKKyAgICBpZiAoKG1fcmVhZHlTdGF0ZSA+PSBNZWRpYVBsYXll
cjo6UmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhICYmICFoYXZlQmVlbkFza2VkVG9QYWludCgpKSB8
fCAoc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpICYmIG1fcGxheWVyLT5yZW5kZXJpbmdD
YW5CZUFjY2VsZXJhdGVkKCkpKQorICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdNb2RlOjpN
ZWRpYVJlbmRlcmluZ1RvTGF5ZXI7CiAKLSAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdUb0NvbnRl
eHQ7CisgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdUb0NvbnRl
eHQ7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRVcFZpZGVv
UmVuZGVyaW5nKCkKQEAgLTEyMiwyNyArMTIyLDI5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uOjpzZXRVcFZpZGVvUmVuZGVyaW5nKCkKICAgICBNZWRpYVJlbmRlcmluZ01v
ZGUgY3VycmVudE1vZGUgPSBjdXJyZW50UmVuZGVyaW5nTW9kZSgpOwogICAgIE1lZGlhUmVuZGVy
aW5nTW9kZSBwcmVmZXJyZWRNb2RlID0gcHJlZmVycmVkUmVuZGVyaW5nTW9kZSgpOwogCi0gICAg
aWYgKGN1cnJlbnRNb2RlID09IHByZWZlcnJlZE1vZGUgJiYgY3VycmVudE1vZGUgIT0gTWVkaWFS
ZW5kZXJpbmdOb25lKQorICAgIGlmIChjdXJyZW50TW9kZSA9PSBwcmVmZXJyZWRNb2RlICYmIGN1
cnJlbnRNb2RlICE9IE1lZGlhUmVuZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdOb25lKQogICAg
ICAgICByZXR1cm47CiAKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHByZWZlcnJlZE1v
ZGUpOworCiAgICAgc3dpdGNoIChwcmVmZXJyZWRNb2RlKSB7Ci0gICAgY2FzZSBNZWRpYVJlbmRl
cmluZ05vbmU6CisgICAgY2FzZSBNZWRpYVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nTm9u
ZToKICAgICAgICAgdGVhckRvd25WaWRlb1JlbmRlcmluZygpOwogICAgICAgICBicmVhazsKIAot
ICAgIGNhc2UgTWVkaWFSZW5kZXJpbmdUb0NvbnRleHQ6CisgICAgY2FzZSBNZWRpYVJlbmRlcmlu
Z01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9Db250ZXh0OgogICAgICAgICBkZXN0cm95VmlkZW9MYXll
cigpOwogICAgICAgICBjcmVhdGVDb250ZXh0VmlkZW9SZW5kZXJlcigpOwogICAgICAgICBicmVh
azsKIAotICAgIGNhc2UgTWVkaWFSZW5kZXJpbmdUb0xheWVyOgorICAgIGNhc2UgTWVkaWFSZW5k
ZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvTGF5ZXI6CiAgICAgICAgIGRlc3Ryb3lDb250ZXh0
VmlkZW9SZW5kZXJlcigpOwogICAgICAgICBjcmVhdGVWaWRlb0xheWVyKCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIAogICAgIC8vIElmIHVzaW5nIGEgbW92aWUgbGF5ZXIsIGluZm9ybSB0aGUg
Y2xpZW50IHNvIHRoZSBjb21wb3NpdGluZyB0cmVlIGlzIHVwZGF0ZWQuCi0gICAgaWYgKGN1cnJl
bnRNb2RlID09IE1lZGlhUmVuZGVyaW5nVG9MYXllciB8fCBwcmVmZXJyZWRNb2RlID09IE1lZGlh
UmVuZGVyaW5nVG9MYXllcikKKyAgICBpZiAoY3VycmVudE1vZGUgPT0gTWVkaWFSZW5kZXJpbmdN
b2RlOjpNZWRpYVJlbmRlcmluZ1RvTGF5ZXIgfHwgcHJlZmVycmVkTW9kZSA9PSBNZWRpYVJlbmRl
cmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9MYXllcikKICAgICAgICAgc2V0TmVlZHNSZW5kZXJp
bmdNb2RlQ2hhbmdlZCgpOwogfQogCkBAIC0xNTIsNiArMTU0LDggQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb246OnNldE5lZWRzUmVuZGVyaW5nTW9kZUNoYW5nZWQoKQogICAg
ICAgICByZXR1cm47CiAgICAgbV9uZWVkc1JlbmRlcmluZ01vZGVDaGFuZ2VkID0gdHJ1ZTsKIAor
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CisKICAgICBxdWV1ZVRhc2tPbkV2ZW50TG9v
cChbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICBpZiAod2Vha1RoaXMp
CiAgICAgICAgICAgICB3ZWFrVGhpcy0+cmVuZGVyaW5nTW9kZUNoYW5nZWQoKTsKQEAgLTQ2Miw3
ICs0NjYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6cHJlcGFyZUZv
clJlbmRlcmluZygpCiAKICAgICBzZXRVcFZpZGVvUmVuZGVyaW5nKCk7CiAKLSAgICBpZiAoY3Vy
cmVudFJlbmRlcmluZ01vZGUoKSA9PSBNZWRpYVJlbmRlcmluZ1RvTGF5ZXIgfHwgcHJlZmVycmVk
UmVuZGVyaW5nTW9kZSgpID09IE1lZGlhUmVuZGVyaW5nVG9MYXllcikKKyAgICBpZiAoY3VycmVu
dFJlbmRlcmluZ01vZGUoKSA9PSBNZWRpYVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9M
YXllciB8fCBwcmVmZXJyZWRSZW5kZXJpbmdNb2RlKCkgPT0gTWVkaWFSZW5kZXJpbmdNb2RlOjpN
ZWRpYVJlbmRlcmluZ1RvTGF5ZXIpCiAgICAgICAgIHNldE5lZWRzUmVuZGVyaW5nTW9kZUNoYW5n
ZWQoKTsKIH0KIApAQCAtNTg2LDEwICs1OTAsMTIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb246OnNldFBhZ2VJc1Zpc2libGUoYm9vbCB2aXNpYmxlKQogICAgIGlmIChtX3Zp
c2libGUgPT0gdmlzaWJsZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgQUxXQVlTX0xPRyhMT0dJ
REVOVElGSUVSLCB2aXNpYmxlKTsKKwogICAgIG1fdmlzaWJsZSA9IHZpc2libGU7CiAgICAgaWYg
KHZpc2libGUpCiAgICAgICAgIHNldFVwVmlkZW9SZW5kZXJpbmcoKTsKLSAgICAKKwogICAgIHBs
YXRmb3JtU2V0VmlzaWJsZSh2aXNpYmxlKTsKIH0KIApAQCAtMTEyMiw2ICsxMTI4LDIwIEBAIGNv
bnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb246CiAgICAgcmV0dXJuIGNhY2hlOwogfQogCitTdHJpbmcgY29u
dmVydEVudW1lcmF0aW9uVG9TdHJpbmcoTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpN
ZWRpYVJlbmRlcmluZ01vZGUgZW51bWVyYXRpb25WYWx1ZSkKK3sKKyAgICBzdGF0aWMgY29uc3Qg
TmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKKyAgICAgICAgTUFLRV9TVEFUSUNf
U1RSSU5HX0lNUEwoIk1lZGlhUmVuZGVyaW5nTm9uZSIpLAorICAgICAgICBNQUtFX1NUQVRJQ19T
VFJJTkdfSU1QTCgiTWVkaWFSZW5kZXJpbmdUb0NvbnRleHQiKSwKKyAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIk1lZGlhUmVuZGVyaW5nVG9MYXllciIpLAorICAgIH07CisgICAgc3Rh
dGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbjo6TWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ05vbmUpID09IDAsICJNZWRp
YVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nTm9uZSBpcyBub3QgMCBhcyBleHBlY3RlZCIp
OworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb246Ok1lZGlhUmVuZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdUb0NvbnRl
eHQpID09IDEsICJNZWRpYVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9Db250ZXh0IGlz
IG5vdCAxIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXpl
X3Q+KE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFSZW5kZXJpbmdNb2RlOjpN
ZWRpYVJlbmRlcmluZ1RvTGF5ZXIpID09IDIsICJNZWRpYVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVu
ZGVyaW5nVG9MYXllciBpcyBub3QgMiBhcyBleHBlY3RlZCIpOworICAgIEFTU0VSVChzdGF0aWNf
Y2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpIDwgV1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMp
KTsKKyAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1
ZSldOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCmluZGV4IDE1OThi
NDNkNWJkZmI5MDI4YzVhZTEyMWZjMGQzOGNjYTg4ZGMzZjkuLjcxM2Y1YzNjMzNjOGI0MDdhMTQy
MTA3MzMwMDVhZDA0ZTFhYWE5ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKQEAgLTE1Myw2ICsxNTMsMTIgQEAgcHVibGljOgog
ICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCisg
ICAgZW51bSBjbGFzcyBNZWRpYVJlbmRlcmluZ01vZGUgOiB1aW50OF90IHsKKyAgICAgICAgTWVk
aWFSZW5kZXJpbmdOb25lLAorICAgICAgICBNZWRpYVJlbmRlcmluZ1RvQ29udGV4dCwKKyAgICAg
ICAgTWVkaWFSZW5kZXJpbmdUb0xheWVyCisgICAgfTsKKwogcHJvdGVjdGVkOgogICAgIGV4cGxp
Y2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbihNZWRpYVBsYXllciopOwogICAgIHZp
cnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbigpOwpAQCAtMjcxLDcgKzI3Nyw2
IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgYm9vbCBpc1Vuc3VwcG9ydGVkTUlNRVR5cGUoY29u
c3QgU3RyaW5nJik7CiAgICAgc3RhdGljIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJ
bnNlbnNpdGl2ZUhhc2g+JiBzdGF0aWNNSU1FVHlwZUxpc3QoKTsKIAotcHJvdGVjdGVkOgogICAg
IHZvaWQgdXBkYXRlU3RhdGVzKCk7CiAKICAgICB2b2lkIHNldEhhc1ZpZGVvKGJvb2wpOwpAQCAt
Mjg2LDcgKzI5MSw2IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNldE5ldHdvcmtTdGF0ZShNZWRp
YVBsYXllcjo6TmV0d29ya1N0YXRlKTsKICAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5
ZXI6OlJlYWR5U3RhdGUpOwogCi0gICAgZW51bSBNZWRpYVJlbmRlcmluZ01vZGUgeyBNZWRpYVJl
bmRlcmluZ05vbmUsIE1lZGlhUmVuZGVyaW5nVG9Db250ZXh0LCBNZWRpYVJlbmRlcmluZ1RvTGF5
ZXIgfTsKICAgICBNZWRpYVJlbmRlcmluZ01vZGUgY3VycmVudFJlbmRlcmluZ01vZGUoKSBjb25z
dDsKICAgICBNZWRpYVJlbmRlcmluZ01vZGUgcHJlZmVycmVkUmVuZGVyaW5nTW9kZSgpIGNvbnN0
OwogCkBAIC0yOTUsNiArMjk5LDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNSZWFkeUZvclZp
ZGVvU2V0dXAoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VXBWaWRlb1JlbmRlcmluZygp
OwogICAgIHZpcnR1YWwgdm9pZCB0ZWFyRG93blZpZGVvUmVuZGVyaW5nKCk7CisgICAgdmlydHVh
bCBib29sIGhhdmVCZWVuQXNrZWRUb1BhaW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICBib29sIGhhc1NldFVwVmlkZW9SZW5kZXJpbmcoKSBjb25zdDsKIAogICAgIHZvaWQgbWFpblRo
cmVhZENhbGxiYWNrKCk7CkBAIC0zNzUsNiArMzgwLDI0IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X25lZWRzUmVuZGVyaW5nTW9kZUNoYW5nZWQgeyBmYWxzZSB9OwogfTsKIAorU3RyaW5nIGNvbnZl
cnRFbnVtZXJhdGlvblRvU3RyaW5nKE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVk
aWFSZW5kZXJpbmdNb2RlKTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCituYW1lc3BhY2Ug
V1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVHlwZT4KK3N0cnVjdCBMb2dBcmd1bWVudDsKKwor
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb246Ok1lZGlhUmVuZGVyaW5nTW9kZT4gewordXNpbmcgdmFsdWVzID0gRW51bVZh
bHVlczwKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlh
UmVuZGVyaW5nTW9kZSwKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b246Ok1lZGlhUmVuZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdOb25lLAorICAgIFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRp
YVJlbmRlcmluZ1RvQ29udGV4dCwKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb246Ok1lZGlhUmVuZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdUb0xheWVyCisgICAg
PjsKK307CisKK307IC8vIG5hbWVzcGFjZSBXVEYKKwogI2VuZGlmIC8vIEVOQUJMRShWSURFTykg
JiYgVVNFKEFWRk9VTkRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25D
Ri5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2Yv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCmluZGV4IGM5MTA0ZjA0MTRmNjBh
OTVhYjMzMTdjZmRmOTZhNjUzMWVjZTcxNTEuLjljYzg0YWM0MjYzOGMyODUxZDE5MWVhZGMzYTUw
ODNkYjgyMWI2NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcApAQCAtODY5LDcgKzg2OSw3IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnBhaW50Q3VycmVudEZyYW1lSW5Db250
ZXh0KEdyYXBoaWNzQ29udGV4CiAgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpIHx8IGNvbnRl
eHQucGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoY3VycmVu
dFJlbmRlcmluZ01vZGUoKSA9PSBNZWRpYVJlbmRlcmluZ1RvTGF5ZXIgJiYgIWltYWdlR2VuZXJh
dG9yKG1fYXZmV3JhcHBlcikpIHsKKyAgICBpZiAoY3VycmVudFJlbmRlcmluZ01vZGUoKSA9PSBN
ZWRpYVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9MYXllciAmJiAhaW1hZ2VHZW5lcmF0
b3IobV9hdmZXcmFwcGVyKSkgewogICAgICAgICAvLyBXZSdyZSBiZWluZyB0b2xkIHRvIHJlbmRl
ciBpbnRvIGEgY29udGV4dCwgYnV0IHdlIGFscmVhZHkgaGF2ZSB0aGUKICAgICAgICAgLy8gdmlk
ZW8gbGF5ZXIsIHdoaWNoIHByb2JhYmx5IG1lYW5zIHdlJ3ZlIGJlZW4gY2FsbGVkIGZyb20gPGNh
bnZhcz4uCiAgICAgICAgIGNyZWF0ZUNvbnRleHRWaWRlb1JlbmRlcmVyKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLmgKaW5kZXggMmRmYjQ3NGNjZjVkMGRiNmIxOGNlYTY3MjgyOGU3MWYxOTk1M2M3YS4u
MTM4MGQzM2JiMGIxNzY0NmY2YjU4ZGNjNGE1OTMzNDRkOTUwODJlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaApAQCAtMzQwLDYgKzM0MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzdXBwb3J0c1Bh
dXNlQXRIb3N0VGltZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIHBs
YXlBdEhvc3RUaW1lKGNvbnN0IE1vbm90b25pY1RpbWUmKSBmaW5hbDsKICAgICBib29sIHBhdXNl
QXRIb3N0VGltZShjb25zdCBNb25vdG9uaWNUaW1lJikgZmluYWw7CisgICAgYm9vbCBoYXZlQmVl
bkFza2VkVG9QYWludCgpIGNvbnN0IHsgcmV0dXJuIG1faGF2ZUJlZW5Bc2tlZFRvUGFpbnQ7IH0K
IAogICAgIFJldGFpblB0cjxBVlVSTEFzc2V0PiBtX2F2QXNzZXQ7CiAgICAgUmV0YWluUHRyPEFW
UGxheWVyPiBtX2F2UGxheWVyOwpAQCAtNDQ5LDYgKzQ1MCw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3J1bm5pbmdNb2RhbFBhaW50IHsgZmFsc2UgfTsKICAgICBib29sIG1faGF2ZVByb2Nlc3Nl
ZENoYXB0ZXJUcmFja3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV93YWl0Rm9yVmlkZW9PdXRwdXRN
ZWRpYURhdGFXaWxsQ2hhbmdlVGltZWRPdXQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXZlQmVl
bkFza2VkVG9QYWludCB7IGZhbHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpp
bmRleCAyYTA3OTllM2FhYTg4YmZiODAyNGJlMTI4MjNmYjliYjk2YTgzMDFmLi40M2I1ODFhNzkx
Nzc5MWUwYzcwNjU5YjMwODI2MWQ5MmE2ZmVhMjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0K
QEAgLTYzNyw2ICs2MzcsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OmNyZWF0ZUFWUGxheWVyTGF5ZXIoKQogICAgIGlmICghbV9hdlBsYXllcikKICAgICAgICAg
cmV0dXJuOwogCisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKKwogICAgIG1fdmlkZW9M
YXllciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVlBsYXllckxheWVySW5zdGFuY2UoKSBpbml0XSk7
CiAgICAgW21fdmlkZW9MYXllciBzZXRQbGF5ZXI6bV9hdlBsYXllci5nZXQoKV07CiAKQEAgLTY5
MCw3ICs2OTIsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6Z2V0U3RhcnREYXRlKCkgY29uc3QKIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3QKIHsKLSAgICBpZiAoY3Vy
cmVudFJlbmRlcmluZ01vZGUoKSA9PSBNZWRpYVJlbmRlcmluZ1RvTGF5ZXIpCisgICAgaWYgKGN1
cnJlbnRSZW5kZXJpbmdNb2RlKCkgPT0gTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmlu
Z1RvTGF5ZXIpCiAgICAgICAgIHJldHVybiBtX2NhY2hlZElzUmVhZHlGb3JEaXNwbGF5OwogCiAg
ICAgaWYgKG1fdmlkZW9PdXRwdXQgJiYgKG1fbGFzdFBpeGVsQnVmZmVyIHx8IFttX3ZpZGVvT3V0
cHV0IGhhc05ld1BpeGVsQnVmZmVyRm9ySXRlbVRpbWU6W21fYXZQbGF5ZXJJdGVtIGN1cnJlbnRU
aW1lXV0pKQpAQCAtMTgzNCw3ICsxODM2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEYKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgLy8gV2UgY2FuIGlnbm9yZSB0aGUgcmVxdWVzdCBpZiB3ZSBh
cmUgYWxyZWFkeSByZW5kZXJpbmcgdG8gYSBsYXllci4KLSAgICBpZiAoY3VycmVudFJlbmRlcmlu
Z01vZGUoKSA9PSBNZWRpYVJlbmRlcmluZ1RvTGF5ZXIpCisgICAgaWYgKGN1cnJlbnRSZW5kZXJp
bmdNb2RlKCkgPT0gTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvTGF5ZXIpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIC8vIHBhaW50KCkgaXMgYmVzdCBlZmZvcnQsIHNvIG9ubHkg
cGFpbnQgaWYgd2UgYWxyZWFkeSBoYXZlIGFuIGltYWdlIGdlbmVyYXRvciBvciB2aWRlbyBvdXRw
dXQgYXZhaWxhYmxlLgpAQCAtMjQ5Nyw2ICsyNDk5LDggQEAgYm9vbCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKQogICAgIGlmICghbV9h
dlBsYXllckl0ZW0gfHwgcmVhZHlTdGF0ZSgpIDwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6Okhh
dmVDdXJyZW50RGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgbV9oYXZlQmVlbkFz
a2VkVG9QYWludCA9IHRydWU7CisKICAgICBpZiAoIW1fdmlkZW9PdXRwdXQpCiAgICAgICAgIGNy
ZWF0ZVZpZGVvT3V0cHV0KCk7CiAgICAgQVNTRVJUKG1fdmlkZW9PdXRwdXQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442219</attachid>
            <date>2021-10-22 16:33:36 -0700</date>
            <delta_ts>2021-10-22 16:35:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232155-20211022163335.patch</filename>
            <type>text/plain</type>
            <size>14159</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTJkMjhiZjBhZDA2Zjc3
MjcyMWZjYzBjNmVhNmI5YmVkZjlhMjRlMy4uMDQ0NWViMGE2MzJhNWM3NDM2YjZkYTY3NGYxMmRk
ZmJlNDg0NzYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTEwLTIyICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gRmFp
cnBsYXkgZW5jcnlwdGVkIHZpZGVvIGZhaWxzIHRvIHBsYXkgd2hlbiBsb2FkZWQgaW4gYSBkaXNw
bGF5Om5vbmUgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMyMTU1CisgICAgICAgIHJkYXI6Ly84MzQxOTE1OQorCisgICAgICAgIFJldmll
d2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjdXJyZW50UmVuZGVyaW5nTW9kZSBj
b25zdCk6IE1lZGlhUmVuZGVyaW5nTW9kZQorICAgICAgICB3YXMgY2hhbmdlZCBmcm9tIGFuIGBl
bnVtYCB0byBhbiBgZW51bSBjbGFzc2Agc28gaXRzIHZhbHVlcyBjYW4gYmUgbG9nZ2VkLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpwcmVmZXJyZWRS
ZW5kZXJpbmdNb2RlIGNvbnN0KTogT25seSByZXR1cm4KKyAgICAgICAgYE1lZGlhUmVuZGVyaW5n
TW9kZTo6TWVkaWFSZW5kZXJpbmdUb0NvbnRleHRgIGlmIHdlIGhhdmUgYmVlbiBhc2tlZCB0byBw
YWludCBvbmNlCisgICAgICAgIHJlYWR5U3RhdGUgaXMgSGF2ZU1ldGFkYXRhIG9yIGhpZ2hlci4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0VXBW
aWRlb1JlbmRlcmluZyk6IE1lZGlhUmVuZGVyaW5nTW9kZSBjaGFuZ2UuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldE5lZWRzUmVuZGVyaW5nTW9k
ZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbjo6cHJlcGFyZUZvclJlbmRlcmluZyk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRQYWdlSXNWaXNpYmxlKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyk6IE1lZGlh
UmVuZGVyaW5nTW9kZSBsb2dnaW5nIGZ1bmN0aW9uLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpoYXZlQmVlbkFz
a2VkVG9QYWludCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpoYXNBdmFpbGFibGVWaWRlb0ZyYW1lIGNvbnN0KTogTWVkaWFSZW5k
ZXJpbmdNb2RlIGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnBhaW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0UGl4ZWxCdWZmZXIpOiBTZXQg
bV9oYXZlQmVlbkFza2VkVG9QYWludC4KKwogMjAyMS0xMC0xOSAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKHIyODQzMzYpOiBbIGlP
UyAxNSBdIHN5c3RlbS1wcmV2aWV3L2JhZGdlLmh0bWwgaXMgaW1hZ2UgZmFpbGluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcApp
bmRleCA0Njg5Yjk3Y2M5MmMyMjA2ZTdhOGU1OGI0MTlmMGYxMDQ3NjNjMjM4Li5mMGJiZTlmNDZi
MzQ5NmJiNTJjOTg0MDc2M2JmZjUwZWU4ZTk4MDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcApAQCAtOTUsMjMgKzk1LDI2
IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6fk1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbigpCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUmVuZGVy
aW5nTW9kZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmN1cnJlbnRSZW5kZXJpbmdN
b2RlKCkgY29uc3QKIHsKICAgICBpZiAocGxhdGZvcm1MYXllcigpKQotICAgICAgICByZXR1cm4g
TWVkaWFSZW5kZXJpbmdUb0xheWVyOworICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdNb2Rl
OjpNZWRpYVJlbmRlcmluZ1RvTGF5ZXI7CiAKICAgICBpZiAoaGFzQ29udGV4dFJlbmRlcmVyKCkp
Ci0gICAgICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ1RvQ29udGV4dDsKKyAgICAgICAgcmV0dXJu
IE1lZGlhUmVuZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdUb0NvbnRleHQ7CiAKLSAgICByZXR1
cm4gTWVkaWFSZW5kZXJpbmdOb25lOworICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ01vZGU6Ok1l
ZGlhUmVuZGVyaW5nTm9uZTsKIH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpN
ZWRpYVJlbmRlcmluZ01vZGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpwcmVmZXJy
ZWRSZW5kZXJpbmdNb2RlKCkgY29uc3QKIHsKICAgICBpZiAoYXNzZXRTdGF0dXMoKSA9PSBNZWRp
YVBsYXllckFWQXNzZXRTdGF0dXNVbmtub3duKQotICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJp
bmdOb25lOworICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmlu
Z05vbmU7CisKKyAgICBpZiAobV9yZWFkeVN0YXRlID49IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRl
OjpIYXZlTWV0YWRhdGEgJiYgIWhhdmVCZWVuQXNrZWRUb1BhaW50KCkKKyAgICAgICAgcmV0dXJu
IE1lZGlhUmVuZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdUb0xheWVyOwogCiAgICAgaWYgKHN1
cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSAmJiBtX3BsYXllci0+cmVuZGVyaW5nQ2FuQmVB
Y2NlbGVyYXRlZCgpKQotICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdUb0xheWVyOworICAg
ICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvTGF5ZXI7CiAK
LSAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdUb0NvbnRleHQ7CisgICAgcmV0dXJuIE1lZGlhUmVu
ZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdUb0NvbnRleHQ7CiB9CiAKIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRVcFZpZGVvUmVuZGVyaW5nKCkKQEAgLTEyMiwyNyAr
MTI1LDI5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRVcFZpZGVv
UmVuZGVyaW5nKCkKICAgICBNZWRpYVJlbmRlcmluZ01vZGUgY3VycmVudE1vZGUgPSBjdXJyZW50
UmVuZGVyaW5nTW9kZSgpOwogICAgIE1lZGlhUmVuZGVyaW5nTW9kZSBwcmVmZXJyZWRNb2RlID0g
cHJlZmVycmVkUmVuZGVyaW5nTW9kZSgpOwogCi0gICAgaWYgKGN1cnJlbnRNb2RlID09IHByZWZl
cnJlZE1vZGUgJiYgY3VycmVudE1vZGUgIT0gTWVkaWFSZW5kZXJpbmdOb25lKQorICAgIGlmIChj
dXJyZW50TW9kZSA9PSBwcmVmZXJyZWRNb2RlICYmIGN1cnJlbnRNb2RlICE9IE1lZGlhUmVuZGVy
aW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdOb25lKQogICAgICAgICByZXR1cm47CiAKKyAgICBBTFdB
WVNfTE9HKExPR0lERU5USUZJRVIsIHByZWZlcnJlZE1vZGUpOworCiAgICAgc3dpdGNoIChwcmVm
ZXJyZWRNb2RlKSB7Ci0gICAgY2FzZSBNZWRpYVJlbmRlcmluZ05vbmU6CisgICAgY2FzZSBNZWRp
YVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nTm9uZToKICAgICAgICAgdGVhckRvd25WaWRl
b1JlbmRlcmluZygpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgTWVkaWFSZW5kZXJpbmdU
b0NvbnRleHQ6CisgICAgY2FzZSBNZWRpYVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9D
b250ZXh0OgogICAgICAgICBkZXN0cm95VmlkZW9MYXllcigpOwogICAgICAgICBjcmVhdGVDb250
ZXh0VmlkZW9SZW5kZXJlcigpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgTWVkaWFSZW5k
ZXJpbmdUb0xheWVyOgorICAgIGNhc2UgTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmlu
Z1RvTGF5ZXI6CiAgICAgICAgIGRlc3Ryb3lDb250ZXh0VmlkZW9SZW5kZXJlcigpOwogICAgICAg
ICBjcmVhdGVWaWRlb0xheWVyKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIC8vIElm
IHVzaW5nIGEgbW92aWUgbGF5ZXIsIGluZm9ybSB0aGUgY2xpZW50IHNvIHRoZSBjb21wb3NpdGlu
ZyB0cmVlIGlzIHVwZGF0ZWQuCi0gICAgaWYgKGN1cnJlbnRNb2RlID09IE1lZGlhUmVuZGVyaW5n
VG9MYXllciB8fCBwcmVmZXJyZWRNb2RlID09IE1lZGlhUmVuZGVyaW5nVG9MYXllcikKKyAgICBp
ZiAoY3VycmVudE1vZGUgPT0gTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvTGF5
ZXIgfHwgcHJlZmVycmVkTW9kZSA9PSBNZWRpYVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5n
VG9MYXllcikKICAgICAgICAgc2V0TmVlZHNSZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwogfQogCkBA
IC0xNTIsNiArMTU3LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNl
dE5lZWRzUmVuZGVyaW5nTW9kZUNoYW5nZWQoKQogICAgICAgICByZXR1cm47CiAgICAgbV9uZWVk
c1JlbmRlcmluZ01vZGVDaGFuZ2VkID0gdHJ1ZTsKIAorICAgIEFMV0FZU19MT0coTE9HSURFTlRJ
RklFUik7CisKICAgICBxdWV1ZVRhc2tPbkV2ZW50TG9vcChbd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfV0gewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+
cmVuZGVyaW5nTW9kZUNoYW5nZWQoKTsKQEAgLTQ2Miw3ICs0NjksNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6cHJlcGFyZUZvclJlbmRlcmluZygpCiAKICAgICBzZXRV
cFZpZGVvUmVuZGVyaW5nKCk7CiAKLSAgICBpZiAoY3VycmVudFJlbmRlcmluZ01vZGUoKSA9PSBN
ZWRpYVJlbmRlcmluZ1RvTGF5ZXIgfHwgcHJlZmVycmVkUmVuZGVyaW5nTW9kZSgpID09IE1lZGlh
UmVuZGVyaW5nVG9MYXllcikKKyAgICBpZiAoY3VycmVudFJlbmRlcmluZ01vZGUoKSA9PSBNZWRp
YVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9MYXllciB8fCBwcmVmZXJyZWRSZW5kZXJp
bmdNb2RlKCkgPT0gTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvTGF5ZXIpCiAg
ICAgICAgIHNldE5lZWRzUmVuZGVyaW5nTW9kZUNoYW5nZWQoKTsKIH0KIApAQCAtNTg2LDEwICs1
OTMsMTIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFBhZ2VJc1Zp
c2libGUoYm9vbCB2aXNpYmxlKQogICAgIGlmIChtX3Zpc2libGUgPT0gdmlzaWJsZSkKICAgICAg
ICAgcmV0dXJuOwogCisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB2aXNpYmxlKTsKKwog
ICAgIG1fdmlzaWJsZSA9IHZpc2libGU7CiAgICAgaWYgKHZpc2libGUpCiAgICAgICAgIHNldFVw
VmlkZW9SZW5kZXJpbmcoKTsKLSAgICAKKwogICAgIHBsYXRmb3JtU2V0VmlzaWJsZSh2aXNpYmxl
KTsKIH0KIApAQCAtMTEyMiw2ICsxMTMxLDIwIEBAIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJ
SUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246CiAg
ICAgcmV0dXJuIGNhY2hlOwogfQogCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmco
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRpYVJlbmRlcmluZ01vZGUgZW51bWVy
YXRpb25WYWx1ZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2
YWx1ZXNbXSA9IHsKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIk1lZGlhUmVuZGVy
aW5nTm9uZSIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiTWVkaWFSZW5kZXJp
bmdUb0NvbnRleHQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIk1lZGlhUmVu
ZGVyaW5nVG9MYXllciIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxz
aXplX3Q+KE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFSZW5kZXJpbmdNb2Rl
OjpNZWRpYVJlbmRlcmluZ05vbmUpID09IDAsICJNZWRpYVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVu
ZGVyaW5nTm9uZSBpcyBub3QgMCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUmVu
ZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdUb0NvbnRleHQpID09IDEsICJNZWRpYVJlbmRlcmlu
Z01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9Db250ZXh0IGlzIG5vdCAxIGFzIGV4cGVjdGVkIik7Cisg
ICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbjo6TWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvTGF5ZXIpID09
IDIsICJNZWRpYVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9MYXllciBpcyBub3QgMiBh
cyBleHBlY3RlZCIpOworICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9u
VmFsdWUpIDwgV1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpKTsKKyAgICByZXR1cm4gdmFsdWVzW3N0
YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSldOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbi5oCmluZGV4IDE1OThiNDNkNWJkZmI5MDI4YzVhZTEyMWZjMGQz
OGNjYTg4ZGMzZjkuLjcxM2Y1YzNjMzNjOGI0MDdhMTQyMTA3MzMwMDVhZDA0ZTFhYWE5ZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
LmgKQEAgLTE1Myw2ICsxNTMsMTIgQEAgcHVibGljOgogICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0No
YW5uZWwoKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCisgICAgZW51bSBjbGFzcyBNZWRpYVJlbmRl
cmluZ01vZGUgOiB1aW50OF90IHsKKyAgICAgICAgTWVkaWFSZW5kZXJpbmdOb25lLAorICAgICAg
ICBNZWRpYVJlbmRlcmluZ1RvQ29udGV4dCwKKyAgICAgICAgTWVkaWFSZW5kZXJpbmdUb0xheWVy
CisgICAgfTsKKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbihNZWRpYVBsYXllciopOwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbigpOwpAQCAtMjcxLDcgKzI3Nyw2IEBAIHByb3RlY3RlZDoKICAgICBzdGF0
aWMgYm9vbCBpc1Vuc3VwcG9ydGVkTUlNRVR5cGUoY29uc3QgU3RyaW5nJik7CiAgICAgc3RhdGlj
IGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBzdGF0aWNN
SU1FVHlwZUxpc3QoKTsKIAotcHJvdGVjdGVkOgogICAgIHZvaWQgdXBkYXRlU3RhdGVzKCk7CiAK
ICAgICB2b2lkIHNldEhhc1ZpZGVvKGJvb2wpOwpAQCAtMjg2LDcgKzI5MSw2IEBAIHByb3RlY3Rl
ZDoKICAgICB2b2lkIHNldE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlKTsK
ICAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpOwogCi0gICAg
ZW51bSBNZWRpYVJlbmRlcmluZ01vZGUgeyBNZWRpYVJlbmRlcmluZ05vbmUsIE1lZGlhUmVuZGVy
aW5nVG9Db250ZXh0LCBNZWRpYVJlbmRlcmluZ1RvTGF5ZXIgfTsKICAgICBNZWRpYVJlbmRlcmlu
Z01vZGUgY3VycmVudFJlbmRlcmluZ01vZGUoKSBjb25zdDsKICAgICBNZWRpYVJlbmRlcmluZ01v
ZGUgcHJlZmVycmVkUmVuZGVyaW5nTW9kZSgpIGNvbnN0OwogCkBAIC0yOTUsNiArMjk5LDcgQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgaXNSZWFkeUZvclZpZGVvU2V0dXAoKSBjb25zdDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VXBWaWRlb1JlbmRlcmluZygpOwogICAgIHZpcnR1YWwgdm9pZCB0ZWFy
RG93blZpZGVvUmVuZGVyaW5nKCk7CisgICAgdmlydHVhbCBib29sIGhhdmVCZWVuQXNrZWRUb1Bh
aW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGhhc1NldFVwVmlkZW9SZW5k
ZXJpbmcoKSBjb25zdDsKIAogICAgIHZvaWQgbWFpblRocmVhZENhbGxiYWNrKCk7CkBAIC0zNzUs
NiArMzgwLDI0IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25lZWRzUmVuZGVyaW5nTW9kZUNoYW5n
ZWQgeyBmYWxzZSB9OwogfTsKIAorU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFSZW5kZXJpbmdNb2RlKTsKKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8dHlwZW5h
bWUgVHlwZT4KK3N0cnVjdCBMb2dBcmd1bWVudDsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUmVuZGVy
aW5nTW9kZT4gewordXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICBXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUmVuZGVyaW5nTW9kZSwKKyAgICBXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUmVuZGVyaW5nTW9kZTo6
TWVkaWFSZW5kZXJpbmdOb25lLAorICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbjo6TWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvQ29udGV4dCwKKyAg
ICBXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUmVuZGVyaW5n
TW9kZTo6TWVkaWFSZW5kZXJpbmdUb0xheWVyCisgICAgPjsKK307CisKK307IC8vIG5hbWVzcGFj
ZSBXVEYKKwogI2VuZGlmIC8vIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9j
Zi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0YuY3BwCmluZGV4IGM5MTA0ZjA0MTRmNjBhOTVhYjMzMTdjZmRmOTZhNjUzMWVjZTcx
NTEuLjljYzg0YWM0MjYzOGMyODUxZDE5MWVhZGMzYTUwODNkYjgyMWI2NzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGLmNwcApAQCAtODY5LDcgKzg2OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uQ0Y6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4CiAgICAg
aWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpIHx8IGNvbnRleHQucGFpbnRpbmdEaXNhYmxlZCgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoY3VycmVudFJlbmRlcmluZ01vZGUoKSA9PSBNZWRp
YVJlbmRlcmluZ1RvTGF5ZXIgJiYgIWltYWdlR2VuZXJhdG9yKG1fYXZmV3JhcHBlcikpIHsKKyAg
ICBpZiAoY3VycmVudFJlbmRlcmluZ01vZGUoKSA9PSBNZWRpYVJlbmRlcmluZ01vZGU6Ok1lZGlh
UmVuZGVyaW5nVG9MYXllciAmJiAhaW1hZ2VHZW5lcmF0b3IobV9hdmZXcmFwcGVyKSkgewogICAg
ICAgICAvLyBXZSdyZSBiZWluZyB0b2xkIHRvIHJlbmRlciBpbnRvIGEgY29udGV4dCwgYnV0IHdl
IGFscmVhZHkgaGF2ZSB0aGUKICAgICAgICAgLy8gdmlkZW8gbGF5ZXIsIHdoaWNoIHByb2JhYmx5
IG1lYW5zIHdlJ3ZlIGJlZW4gY2FsbGVkIGZyb20gPGNhbnZhcz4uCiAgICAgICAgIGNyZWF0ZUNv
bnRleHRWaWRlb1JlbmRlcmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggMmRmYjQ3NGNj
ZjVkMGRiNmIxOGNlYTY3MjgyOGU3MWYxOTk1M2M3YS4uMTM4MGQzM2JiMGIxNzY0NmY2YjU4ZGNj
NGE1OTMzNDRkOTUwODJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMzQwLDYgKzM0MCw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzdXBwb3J0c1BhdXNlQXRIb3N0VGltZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIHBsYXlBdEhvc3RUaW1lKGNvbnN0IE1vbm90
b25pY1RpbWUmKSBmaW5hbDsKICAgICBib29sIHBhdXNlQXRIb3N0VGltZShjb25zdCBNb25vdG9u
aWNUaW1lJikgZmluYWw7CisgICAgYm9vbCBoYXZlQmVlbkFza2VkVG9QYWludCgpIGNvbnN0IHsg
cmV0dXJuIG1faGF2ZUJlZW5Bc2tlZFRvUGFpbnQ7IH0KIAogICAgIFJldGFpblB0cjxBVlVSTEFz
c2V0PiBtX2F2QXNzZXQ7CiAgICAgUmV0YWluUHRyPEFWUGxheWVyPiBtX2F2UGxheWVyOwpAQCAt
NDQ5LDYgKzQ1MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3J1bm5pbmdNb2RhbFBhaW50IHsg
ZmFsc2UgfTsKICAgICBib29sIG1faGF2ZVByb2Nlc3NlZENoYXB0ZXJUcmFja3MgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV93YWl0Rm9yVmlkZW9PdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlVGltZWRP
dXQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXZlQmVlbkFza2VkVG9QYWludCB7IGZhbHNlIH07
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCAyYTA3OTllM2FhYTg4YmZiODAy
NGJlMTI4MjNmYjliYjk2YTgzMDFmLi40M2I1ODFhNzkxNzc5MWUwYzcwNjU5YjMwODI2MWQ5MmE2
ZmVhMjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTYzNyw2ICs2MzcsOCBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyTGF5ZXIo
KQogICAgIGlmICghbV9hdlBsYXllcikKICAgICAgICAgcmV0dXJuOwogCisgICAgQUxXQVlTX0xP
RyhMT0dJREVOVElGSUVSKTsKKwogICAgIG1fdmlkZW9MYXllciA9IGFkb3B0TlMoW1BBTDo6YWxs
b2NBVlBsYXllckxheWVySW5zdGFuY2UoKSBpbml0XSk7CiAgICAgW21fdmlkZW9MYXllciBzZXRQ
bGF5ZXI6bV9hdlBsYXllci5nZXQoKV07CiAKQEAgLTY5MCw3ICs2OTIsNyBAQCBNZWRpYVRpbWUg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Z2V0U3RhcnREYXRlKCkgY29uc3QK
IAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpoYXNBdmFpbGFibGVW
aWRlb0ZyYW1lKCkgY29uc3QKIHsKLSAgICBpZiAoY3VycmVudFJlbmRlcmluZ01vZGUoKSA9PSBN
ZWRpYVJlbmRlcmluZ1RvTGF5ZXIpCisgICAgaWYgKGN1cnJlbnRSZW5kZXJpbmdNb2RlKCkgPT0g
TWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvTGF5ZXIpCiAgICAgICAgIHJldHVy
biBtX2NhY2hlZElzUmVhZHlGb3JEaXNwbGF5OwogCiAgICAgaWYgKG1fdmlkZW9PdXRwdXQgJiYg
KG1fbGFzdFBpeGVsQnVmZmVyIHx8IFttX3ZpZGVvT3V0cHV0IGhhc05ld1BpeGVsQnVmZmVyRm9y
SXRlbVRpbWU6W21fYXZQbGF5ZXJJdGVtIGN1cnJlbnRUaW1lXV0pKQpAQCAtMTgzNCw3ICsxODM2
LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludChHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEYKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8g
V2UgY2FuIGlnbm9yZSB0aGUgcmVxdWVzdCBpZiB3ZSBhcmUgYWxyZWFkeSByZW5kZXJpbmcgdG8g
YSBsYXllci4KLSAgICBpZiAoY3VycmVudFJlbmRlcmluZ01vZGUoKSA9PSBNZWRpYVJlbmRlcmlu
Z1RvTGF5ZXIpCisgICAgaWYgKGN1cnJlbnRSZW5kZXJpbmdNb2RlKCkgPT0gTWVkaWFSZW5kZXJp
bmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvTGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8v
IHBhaW50KCkgaXMgYmVzdCBlZmZvcnQsIHNvIG9ubHkgcGFpbnQgaWYgd2UgYWxyZWFkeSBoYXZl
IGFuIGltYWdlIGdlbmVyYXRvciBvciB2aWRlbyBvdXRwdXQgYXZhaWxhYmxlLgpAQCAtMjQ5Nyw2
ICsyNDk5LDggQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRh
dGVMYXN0UGl4ZWxCdWZmZXIoKQogICAgIGlmICghbV9hdlBsYXllckl0ZW0gfHwgcmVhZHlTdGF0
ZSgpIDwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisgICAgbV9oYXZlQmVlbkFza2VkVG9QYWludCA9IHRydWU7CisKICAg
ICBpZiAoIW1fdmlkZW9PdXRwdXQpCiAgICAgICAgIGNyZWF0ZVZpZGVvT3V0cHV0KCk7CiAgICAg
QVNTRVJUKG1fdmlkZW9PdXRwdXQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442221</attachid>
            <date>2021-10-22 16:35:59 -0700</date>
            <delta_ts>2021-10-22 19:34:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232155-20211022163558.patch</filename>
            <type>text/plain</type>
            <size>14160</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTJkMjhiZjBhZDA2Zjc3
MjcyMWZjYzBjNmVhNmI5YmVkZjlhMjRlMy4uMDQ0NWViMGE2MzJhNWM3NDM2YjZkYTY3NGYxMmRk
ZmJlNDg0NzYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTEwLTIyICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gRmFp
cnBsYXkgZW5jcnlwdGVkIHZpZGVvIGZhaWxzIHRvIHBsYXkgd2hlbiBsb2FkZWQgaW4gYSBkaXNw
bGF5Om5vbmUgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMyMTU1CisgICAgICAgIHJkYXI6Ly84MzQxOTE1OQorCisgICAgICAgIFJldmll
d2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpjdXJyZW50UmVuZGVyaW5nTW9kZSBj
b25zdCk6IE1lZGlhUmVuZGVyaW5nTW9kZQorICAgICAgICB3YXMgY2hhbmdlZCBmcm9tIGFuIGBl
bnVtYCB0byBhbiBgZW51bSBjbGFzc2Agc28gaXRzIHZhbHVlcyBjYW4gYmUgbG9nZ2VkLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpwcmVmZXJyZWRS
ZW5kZXJpbmdNb2RlIGNvbnN0KTogT25seSByZXR1cm4KKyAgICAgICAgYE1lZGlhUmVuZGVyaW5n
TW9kZTo6TWVkaWFSZW5kZXJpbmdUb0NvbnRleHRgIGlmIHdlIGhhdmUgYmVlbiBhc2tlZCB0byBw
YWludCBvbmNlCisgICAgICAgIHJlYWR5U3RhdGUgaXMgSGF2ZU1ldGFkYXRhIG9yIGhpZ2hlci4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0VXBW
aWRlb1JlbmRlcmluZyk6IE1lZGlhUmVuZGVyaW5nTW9kZSBjaGFuZ2UuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldE5lZWRzUmVuZGVyaW5nTW9k
ZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbjo6cHJlcGFyZUZvclJlbmRlcmluZyk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRQYWdlSXNWaXNpYmxlKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyk6IE1lZGlh
UmVuZGVyaW5nTW9kZSBsb2dnaW5nIGZ1bmN0aW9uLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpoYXZlQmVlbkFz
a2VkVG9QYWludCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpoYXNBdmFpbGFibGVWaWRlb0ZyYW1lIGNvbnN0KTogTWVkaWFSZW5k
ZXJpbmdNb2RlIGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnBhaW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp1cGRhdGVMYXN0UGl4ZWxCdWZmZXIpOiBTZXQg
bV9oYXZlQmVlbkFza2VkVG9QYWludC4KKwogMjAyMS0xMC0xOSAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKHIyODQzMzYpOiBbIGlP
UyAxNSBdIHN5c3RlbS1wcmV2aWV3L2JhZGdlLmh0bWwgaXMgaW1hZ2UgZmFpbGluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcApp
bmRleCA0Njg5Yjk3Y2M5MmMyMjA2ZTdhOGU1OGI0MTlmMGYxMDQ3NjNjMjM4Li41OTdlZmEyNjg0
OWI3NDRkYjc0M2QzNTJjZDFjMDZmMzQxMzc2ZmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcApAQCAtOTUsMjMgKzk1LDI2
IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6fk1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbigpCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUmVuZGVy
aW5nTW9kZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OmN1cnJlbnRSZW5kZXJpbmdN
b2RlKCkgY29uc3QKIHsKICAgICBpZiAocGxhdGZvcm1MYXllcigpKQotICAgICAgICByZXR1cm4g
TWVkaWFSZW5kZXJpbmdUb0xheWVyOworICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdNb2Rl
OjpNZWRpYVJlbmRlcmluZ1RvTGF5ZXI7CiAKICAgICBpZiAoaGFzQ29udGV4dFJlbmRlcmVyKCkp
Ci0gICAgICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ1RvQ29udGV4dDsKKyAgICAgICAgcmV0dXJu
IE1lZGlhUmVuZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdUb0NvbnRleHQ7CiAKLSAgICByZXR1
cm4gTWVkaWFSZW5kZXJpbmdOb25lOworICAgIHJldHVybiBNZWRpYVJlbmRlcmluZ01vZGU6Ok1l
ZGlhUmVuZGVyaW5nTm9uZTsKIH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpN
ZWRpYVJlbmRlcmluZ01vZGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpwcmVmZXJy
ZWRSZW5kZXJpbmdNb2RlKCkgY29uc3QKIHsKICAgICBpZiAoYXNzZXRTdGF0dXMoKSA9PSBNZWRp
YVBsYXllckFWQXNzZXRTdGF0dXNVbmtub3duKQotICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJp
bmdOb25lOworICAgICAgICByZXR1cm4gTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmlu
Z05vbmU7CisKKyAgICBpZiAobV9yZWFkeVN0YXRlID49IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRl
OjpIYXZlTWV0YWRhdGEgJiYgIWhhdmVCZWVuQXNrZWRUb1BhaW50KCkpCisgICAgICAgIHJldHVy
biBNZWRpYVJlbmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9MYXllcjsKIAogICAgIGlmIChz
dXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgJiYgbV9wbGF5ZXItPnJlbmRlcmluZ0NhbkJl
QWNjZWxlcmF0ZWQoKSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nVG9MYXllcjsKKyAg
ICAgICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdUb0xheWVyOwog
Ci0gICAgcmV0dXJuIE1lZGlhUmVuZGVyaW5nVG9Db250ZXh0OworICAgIHJldHVybiBNZWRpYVJl
bmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9Db250ZXh0OwogfQogCiB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0VXBWaWRlb1JlbmRlcmluZygpCkBAIC0xMjIsMjcg
KzEyNSwyOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0VXBWaWRl
b1JlbmRlcmluZygpCiAgICAgTWVkaWFSZW5kZXJpbmdNb2RlIGN1cnJlbnRNb2RlID0gY3VycmVu
dFJlbmRlcmluZ01vZGUoKTsKICAgICBNZWRpYVJlbmRlcmluZ01vZGUgcHJlZmVycmVkTW9kZSA9
IHByZWZlcnJlZFJlbmRlcmluZ01vZGUoKTsKIAotICAgIGlmIChjdXJyZW50TW9kZSA9PSBwcmVm
ZXJyZWRNb2RlICYmIGN1cnJlbnRNb2RlICE9IE1lZGlhUmVuZGVyaW5nTm9uZSkKKyAgICBpZiAo
Y3VycmVudE1vZGUgPT0gcHJlZmVycmVkTW9kZSAmJiBjdXJyZW50TW9kZSAhPSBNZWRpYVJlbmRl
cmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nTm9uZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgQUxX
QVlTX0xPRyhMT0dJREVOVElGSUVSLCBwcmVmZXJyZWRNb2RlKTsKKwogICAgIHN3aXRjaCAocHJl
ZmVycmVkTW9kZSkgewotICAgIGNhc2UgTWVkaWFSZW5kZXJpbmdOb25lOgorICAgIGNhc2UgTWVk
aWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ05vbmU6CiAgICAgICAgIHRlYXJEb3duVmlk
ZW9SZW5kZXJpbmcoKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIE1lZGlhUmVuZGVyaW5n
VG9Db250ZXh0OgorICAgIGNhc2UgTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1Rv
Q29udGV4dDoKICAgICAgICAgZGVzdHJveVZpZGVvTGF5ZXIoKTsKICAgICAgICAgY3JlYXRlQ29u
dGV4dFZpZGVvUmVuZGVyZXIoKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIE1lZGlhUmVu
ZGVyaW5nVG9MYXllcjoKKyAgICBjYXNlIE1lZGlhUmVuZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJp
bmdUb0xheWVyOgogICAgICAgICBkZXN0cm95Q29udGV4dFZpZGVvUmVuZGVyZXIoKTsKICAgICAg
ICAgY3JlYXRlVmlkZW9MYXllcigpOwogICAgICAgICBicmVhazsKICAgICB9CiAKICAgICAvLyBJ
ZiB1c2luZyBhIG1vdmllIGxheWVyLCBpbmZvcm0gdGhlIGNsaWVudCBzbyB0aGUgY29tcG9zaXRp
bmcgdHJlZSBpcyB1cGRhdGVkLgotICAgIGlmIChjdXJyZW50TW9kZSA9PSBNZWRpYVJlbmRlcmlu
Z1RvTGF5ZXIgfHwgcHJlZmVycmVkTW9kZSA9PSBNZWRpYVJlbmRlcmluZ1RvTGF5ZXIpCisgICAg
aWYgKGN1cnJlbnRNb2RlID09IE1lZGlhUmVuZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdUb0xh
eWVyIHx8IHByZWZlcnJlZE1vZGUgPT0gTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmlu
Z1RvTGF5ZXIpCiAgICAgICAgIHNldE5lZWRzUmVuZGVyaW5nTW9kZUNoYW5nZWQoKTsKIH0KIApA
QCAtMTUyLDYgKzE1Nyw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpz
ZXROZWVkc1JlbmRlcmluZ01vZGVDaGFuZ2VkKCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fbmVl
ZHNSZW5kZXJpbmdNb2RlQ2hhbmdlZCA9IHRydWU7CiAKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIpOworCiAgICAgcXVldWVUYXNrT25FdmVudExvb3AoW3dlYWtUaGlzID0gV2Vha1B0ciB7
ICp0aGlzIH1dIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgd2Vha1RoaXMt
PnJlbmRlcmluZ01vZGVDaGFuZ2VkKCk7CkBAIC00NjIsNyArNDY5LDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb246OnByZXBhcmVGb3JSZW5kZXJpbmcoKQogCiAgICAgc2V0
VXBWaWRlb1JlbmRlcmluZygpOwogCi0gICAgaWYgKGN1cnJlbnRSZW5kZXJpbmdNb2RlKCkgPT0g
TWVkaWFSZW5kZXJpbmdUb0xheWVyIHx8IHByZWZlcnJlZFJlbmRlcmluZ01vZGUoKSA9PSBNZWRp
YVJlbmRlcmluZ1RvTGF5ZXIpCisgICAgaWYgKGN1cnJlbnRSZW5kZXJpbmdNb2RlKCkgPT0gTWVk
aWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvTGF5ZXIgfHwgcHJlZmVycmVkUmVuZGVy
aW5nTW9kZSgpID09IE1lZGlhUmVuZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdUb0xheWVyKQog
ICAgICAgICBzZXROZWVkc1JlbmRlcmluZ01vZGVDaGFuZ2VkKCk7CiB9CiAKQEAgLTU4NiwxMCAr
NTkzLDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRQYWdlSXNW
aXNpYmxlKGJvb2wgdmlzaWJsZSkKICAgICBpZiAobV92aXNpYmxlID09IHZpc2libGUpCiAgICAg
ICAgIHJldHVybjsKIAorICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgdmlzaWJsZSk7CisK
ICAgICBtX3Zpc2libGUgPSB2aXNpYmxlOwogICAgIGlmICh2aXNpYmxlKQogICAgICAgICBzZXRV
cFZpZGVvUmVuZGVyaW5nKCk7Ci0gICAgCisKICAgICBwbGF0Zm9ybVNldFZpc2libGUodmlzaWJs
ZSk7CiB9CiAKQEAgLTExMjIsNiArMTEzMSwyMCBAQCBjb25zdCBIYXNoU2V0PFN0cmluZywgQVND
SUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOgog
ICAgIHJldHVybiBjYWNoZTsKIH0KIAorU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5n
KE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFSZW5kZXJpbmdNb2RlIGVudW1l
cmF0aW9uVmFsdWUpCit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
dmFsdWVzW10gPSB7CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJNZWRpYVJlbmRl
cmluZ05vbmUiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIk1lZGlhUmVuZGVy
aW5nVG9Db250ZXh0IiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJNZWRpYVJl
bmRlcmluZ1RvTGF5ZXIiKSwKKyAgICB9OworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
c2l6ZV90PihNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUmVuZGVyaW5nTW9k
ZTo6TWVkaWFSZW5kZXJpbmdOb25lKSA9PSAwLCAiTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJl
bmRlcmluZ05vbmUgaXMgbm90IDAgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0
YXRpY19jYXN0PHNpemVfdD4oTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRpYVJl
bmRlcmluZ01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9Db250ZXh0KSA9PSAxLCAiTWVkaWFSZW5kZXJp
bmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvQ29udGV4dCBpcyBub3QgMSBhcyBleHBlY3RlZCIpOwor
ICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb246Ok1lZGlhUmVuZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdUb0xheWVyKSA9
PSAyLCAiTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRpYVJlbmRlcmluZ1RvTGF5ZXIgaXMgbm90IDIg
YXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlv
blZhbHVlKSA8IFdURl9BUlJBWV9MRU5HVEgodmFsdWVzKSk7CisgICAgcmV0dXJuIHZhbHVlc1tz
dGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpXTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24uaAppbmRleCAxNTk4YjQzZDViZGZiOTAyOGM1YWUxMjFmYzBk
MzhjY2E4OGRjM2Y5Li43MTNmNWMzYzMzYzhiNDA3YTE0MjEwNzMzMDA1YWQwNGUxYWFhOWVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bi5oCkBAIC0xNTMsNiArMTUzLDEyIEBAIHB1YmxpYzoKICAgICBXVEZMb2dDaGFubmVsJiBsb2dD
aGFubmVsKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAorICAgIGVudW0gY2xhc3MgTWVkaWFSZW5k
ZXJpbmdNb2RlIDogdWludDhfdCB7CisgICAgICAgIE1lZGlhUmVuZGVyaW5nTm9uZSwKKyAgICAg
ICAgTWVkaWFSZW5kZXJpbmdUb0NvbnRleHQsCisgICAgICAgIE1lZGlhUmVuZGVyaW5nVG9MYXll
cgorICAgIH07CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqKTsKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24oKTsKQEAgLTI3MSw3ICsyNzcsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgc3Rh
dGljIGJvb2wgaXNVbnN1cHBvcnRlZE1JTUVUeXBlKGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRp
YyBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3RhdGlj
TUlNRVR5cGVMaXN0KCk7CiAKLXByb3RlY3RlZDoKICAgICB2b2lkIHVwZGF0ZVN0YXRlcygpOwog
CiAgICAgdm9pZCBzZXRIYXNWaWRlbyhib29sKTsKQEAgLTI4Niw3ICsyOTEsNiBAQCBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSk7
CiAgICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKTsKIAotICAg
IGVudW0gTWVkaWFSZW5kZXJpbmdNb2RlIHsgTWVkaWFSZW5kZXJpbmdOb25lLCBNZWRpYVJlbmRl
cmluZ1RvQ29udGV4dCwgTWVkaWFSZW5kZXJpbmdUb0xheWVyIH07CiAgICAgTWVkaWFSZW5kZXJp
bmdNb2RlIGN1cnJlbnRSZW5kZXJpbmdNb2RlKCkgY29uc3Q7CiAgICAgTWVkaWFSZW5kZXJpbmdN
b2RlIHByZWZlcnJlZFJlbmRlcmluZ01vZGUoKSBjb25zdDsKIApAQCAtMjk1LDYgKzI5OSw3IEBA
IHByb3RlY3RlZDoKICAgICBib29sIGlzUmVhZHlGb3JWaWRlb1NldHVwKCkgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIHNldFVwVmlkZW9SZW5kZXJpbmcoKTsKICAgICB2aXJ0dWFsIHZvaWQgdGVh
ckRvd25WaWRlb1JlbmRlcmluZygpOworICAgIHZpcnR1YWwgYm9vbCBoYXZlQmVlbkFza2VkVG9Q
YWludCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBoYXNTZXRVcFZpZGVvUmVu
ZGVyaW5nKCkgY29uc3Q7CiAKICAgICB2b2lkIG1haW5UaHJlYWRDYWxsYmFjaygpOwpAQCAtMzc1
LDYgKzM4MCwyNCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9uZWVkc1JlbmRlcmluZ01vZGVDaGFu
Z2VkIHsgZmFsc2UgfTsKIH07CiAKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUmVuZGVyaW5nTW9kZSk7CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAorbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFR5cGU+CitzdHJ1Y3QgTG9nQXJndW1lbnQ7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1U
cmFpdHM8V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRpYVJlbmRl
cmluZ01vZGU+IHsKK3VzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRpYVJlbmRlcmluZ01vZGUsCisgICAgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRpYVJlbmRlcmluZ01vZGU6
Ok1lZGlhUmVuZGVyaW5nTm9uZSwKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb246Ok1lZGlhUmVuZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdUb0NvbnRleHQsCisg
ICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRpYVJlbmRlcmlu
Z01vZGU6Ok1lZGlhUmVuZGVyaW5nVG9MYXllcgorICAgID47Cit9OworCit9OyAvLyBuYW1lc3Bh
Y2UgV1RGCisKICNlbmRpZiAvLyBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Y2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGLmNwcAppbmRleCBjOTEwNGYwNDE0ZjYwYTk1YWIzMzE3Y2ZkZjk2YTY1MzFlY2U3
MTUxLi45Y2M4NGFjNDI2MzhjMjg1MWQxOTFlYWRjM2E1MDgzZGI4MjFiNjcxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25DRi5jcHAKQEAgLTg2OSw3ICs4NjksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleAogICAg
IGlmICghbWV0YURhdGFBdmFpbGFibGUoKSB8fCBjb250ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGN1cnJlbnRSZW5kZXJpbmdNb2RlKCkgPT0gTWVk
aWFSZW5kZXJpbmdUb0xheWVyICYmICFpbWFnZUdlbmVyYXRvcihtX2F2ZldyYXBwZXIpKSB7Cisg
ICAgaWYgKGN1cnJlbnRSZW5kZXJpbmdNb2RlKCkgPT0gTWVkaWFSZW5kZXJpbmdNb2RlOjpNZWRp
YVJlbmRlcmluZ1RvTGF5ZXIgJiYgIWltYWdlR2VuZXJhdG9yKG1fYXZmV3JhcHBlcikpIHsKICAg
ICAgICAgLy8gV2UncmUgYmVpbmcgdG9sZCB0byByZW5kZXIgaW50byBhIGNvbnRleHQsIGJ1dCB3
ZSBhbHJlYWR5IGhhdmUgdGhlCiAgICAgICAgIC8vIHZpZGVvIGxheWVyLCB3aGljaCBwcm9iYWJs
eSBtZWFucyB3ZSd2ZSBiZWVuIGNhbGxlZCBmcm9tIDxjYW52YXM+LgogICAgICAgICBjcmVhdGVD
b250ZXh0VmlkZW9SZW5kZXJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDJkZmI0NzRj
Y2Y1ZDBkYjZiMThjZWE2NzI4MjhlNzFmMTk5NTNjN2EuLjEzODBkMzNiYjBiMTc2NDZmNmI1OGRj
YzRhNTkzMzQ0ZDk1MDgyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTM0MCw2ICszNDAs
NyBAQCBwcml2YXRlOgogICAgIGJvb2wgc3VwcG9ydHNQYXVzZUF0SG9zdFRpbWUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgYm9vbCBwbGF5QXRIb3N0VGltZShjb25zdCBNb25v
dG9uaWNUaW1lJikgZmluYWw7CiAgICAgYm9vbCBwYXVzZUF0SG9zdFRpbWUoY29uc3QgTW9ub3Rv
bmljVGltZSYpIGZpbmFsOworICAgIGJvb2wgaGF2ZUJlZW5Bc2tlZFRvUGFpbnQoKSBjb25zdCB7
IHJldHVybiBtX2hhdmVCZWVuQXNrZWRUb1BhaW50OyB9CiAKICAgICBSZXRhaW5QdHI8QVZVUkxB
c3NldD4gbV9hdkFzc2V0OwogICAgIFJldGFpblB0cjxBVlBsYXllcj4gbV9hdlBsYXllcjsKQEAg
LTQ0OSw2ICs0NTAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9ydW5uaW5nTW9kYWxQYWludCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhdmVQcm9jZXNzZWRDaGFwdGVyVHJhY2tzIHsgZmFsc2Ug
fTsKICAgICBib29sIG1fd2FpdEZvclZpZGVvT3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZVRpbWVk
T3V0IHsgZmFsc2UgfTsKKyAgICBib29sIG1faGF2ZUJlZW5Bc2tlZFRvUGFpbnQgeyBmYWxzZSB9
OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggMmEwNzk5ZTNhYWE4OGJmYjgw
MjRiZTEyODIzZmI5YmI5NmE4MzAxZi4uNDNiNTgxYTc5MTc3OTFlMGM3MDY1OWIzMDgyNjFkOTJh
NmZlYTI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC02MzcsNiArNjM3LDggQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllckxheWVy
KCkKICAgICBpZiAoIW1fYXZQbGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAorICAgIEFMV0FZU19M
T0coTE9HSURFTlRJRklFUik7CisKICAgICBtX3ZpZGVvTGF5ZXIgPSBhZG9wdE5TKFtQQUw6OmFs
bG9jQVZQbGF5ZXJMYXllckluc3RhbmNlKCkgaW5pdF0pOwogICAgIFttX3ZpZGVvTGF5ZXIgc2V0
UGxheWVyOm1fYXZQbGF5ZXIuZ2V0KCldOwogCkBAIC02OTAsNyArNjkyLDcgQEAgTWVkaWFUaW1l
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmdldFN0YXJ0RGF0ZSgpIGNvbnN0
CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6aGFzQXZhaWxhYmxl
VmlkZW9GcmFtZSgpIGNvbnN0CiB7Ci0gICAgaWYgKGN1cnJlbnRSZW5kZXJpbmdNb2RlKCkgPT0g
TWVkaWFSZW5kZXJpbmdUb0xheWVyKQorICAgIGlmIChjdXJyZW50UmVuZGVyaW5nTW9kZSgpID09
IE1lZGlhUmVuZGVyaW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdUb0xheWVyKQogICAgICAgICByZXR1
cm4gbV9jYWNoZWRJc1JlYWR5Rm9yRGlzcGxheTsKIAogICAgIGlmIChtX3ZpZGVvT3V0cHV0ICYm
IChtX2xhc3RQaXhlbEJ1ZmZlciB8fCBbbV92aWRlb091dHB1dCBoYXNOZXdQaXhlbEJ1ZmZlckZv
ckl0ZW1UaW1lOlttX2F2UGxheWVySXRlbSBjdXJyZW50VGltZV1dKSkKQEAgLTE4MzQsNyArMTgz
Niw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGCiAgICAgICAgIHJldHVybjsKIAogICAgIC8v
IFdlIGNhbiBpZ25vcmUgdGhlIHJlcXVlc3QgaWYgd2UgYXJlIGFscmVhZHkgcmVuZGVyaW5nIHRv
IGEgbGF5ZXIuCi0gICAgaWYgKGN1cnJlbnRSZW5kZXJpbmdNb2RlKCkgPT0gTWVkaWFSZW5kZXJp
bmdUb0xheWVyKQorICAgIGlmIChjdXJyZW50UmVuZGVyaW5nTW9kZSgpID09IE1lZGlhUmVuZGVy
aW5nTW9kZTo6TWVkaWFSZW5kZXJpbmdUb0xheWVyKQogICAgICAgICByZXR1cm47CiAKICAgICAv
LyBwYWludCgpIGlzIGJlc3QgZWZmb3J0LCBzbyBvbmx5IHBhaW50IGlmIHdlIGFscmVhZHkgaGF2
ZSBhbiBpbWFnZSBnZW5lcmF0b3Igb3IgdmlkZW8gb3V0cHV0IGF2YWlsYWJsZS4KQEAgLTI0OTcs
NiArMjQ5OSw4IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBk
YXRlTGFzdFBpeGVsQnVmZmVyKCkKICAgICBpZiAoIW1fYXZQbGF5ZXJJdGVtIHx8IHJlYWR5U3Rh
dGUoKSA8IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGEpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAorICAgIG1faGF2ZUJlZW5Bc2tlZFRvUGFpbnQgPSB0cnVlOworCiAg
ICAgaWYgKCFtX3ZpZGVvT3V0cHV0KQogICAgICAgICBjcmVhdGVWaWRlb091dHB1dCgpOwogICAg
IEFTU0VSVChtX3ZpZGVvT3V0cHV0KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>