<?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>223640</bug_id>
          
          <creation_ts>2021-03-23 09:19:44 -0700</creation_ts>
          <short_desc>Extend WebAudio heap allocation assertions to cover the pre &amp; post-rendering phases</short_desc>
          <delta_ts>2021-03-24 17:47:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>223226</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1742833</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-23 09:19:44 -0700</bug_when>
    <thetext>Extend WebAudio heap allocation assertions to cover the pre-rendering phrase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742834</commentid>
    <comment_count>1</comment_count>
      <attachid>424024</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-23 09:21:07 -0700</bug_when>
    <thetext>Created attachment 424024
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742961</commentid>
    <comment_count>2</comment_count>
      <attachid>424051</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-23 12:51:25 -0700</bug_when>
    <thetext>Created attachment 424051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743018</commentid>
    <comment_count>3</comment_count>
      <attachid>424069</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-23 14:48:55 -0700</bug_when>
    <thetext>Created attachment 424069
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743077</commentid>
    <comment_count>4</comment_count>
      <attachid>424069</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-03-23 17:08:43 -0700</bug_when>
    <thetext>Comment on attachment 424069
Patch

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

&gt; Source/WebCore/Modules/webaudio/AudioDestinationNode.cpp:60
&gt; +    ForbidMallocUseForCurrentThreadScope forbidMallocUse;

I think giving a comment for these kind of things would be useful, as to someone unfamiliar with this code / audio thread needs, it is a bit of mystery why malloc would be forbidden, or explain the reason a bit in the variable name.

&gt; Source/WebCore/Modules/webaudio/AudioNodeInput.cpp:106
&gt; +    DisableMallocRestrictionsForCurrentThreadScope disableMallocRestrictions;

Same as above, add a comment or improve the variable name, with why we are allowing malloc here?

&gt; Source/WebCore/Modules/webaudio/AudioNodeOutput.cpp:71
&gt; +    DisableMallocRestrictionsForCurrentThreadScope disableMallocRestrictions;

Same as above, add a comment or improve the variable name, with why we are allowing malloc here?

&gt; Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.cpp:191
&gt; +        DisableMallocRestrictionsForCurrentThreadScope disableMallocRestrictions;

Same as above, add a comment or improve the variable name, with why we are allowing malloc here?

&gt; Source/WebCore/Modules/webaudio/BaseAudioContext.cpp:874
&gt; +    // FIXME: This may cause heap allocations on the audio thread.
&gt; +    DisableMallocRestrictionsForCurrentThreadScope disableMallocRestrictions;

This FIXME is a bit misleading. DisableMallocRestrictionsForCurrentThreadScope won&apos;t *cause* the allocations, it only allows them. Adding an explanation as to why they are being allowed would be useful though. (Same for all the other ones).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743094</commentid>
    <comment_count>5</comment_count>
      <attachid>424082</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-23 17:41:15 -0700</bug_when>
    <thetext>Created attachment 424082
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743319</commentid>
    <comment_count>6</comment_count>
      <attachid>424135</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-24 08:09:01 -0700</bug_when>
    <thetext>Created attachment 424135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743468</commentid>
    <comment_count>7</comment_count>
      <attachid>424166</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-24 12:28:41 -0700</bug_when>
    <thetext>Created attachment 424166
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743626</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-24 17:46:44 -0700</bug_when>
    <thetext>Committed r274989: &lt;https://commits.webkit.org/r274989&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424166.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743627</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-24 17:47:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/75814355&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424024</attachid>
            <date>2021-03-23 09:21:07 -0700</date>
            <delta_ts>2021-03-23 12:51:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223640-20210323092106.patch</filename>
            <type>text/plain</type>
            <size>6209</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0ODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAyMzdhZjIzOTcxNDZk
NjQzZWUzNjU4NGZiMGZkMTMxM2Q1OGI4MC4uNWQxNWRlNDQwZDVhMWVhNjI2ZTE0OWI5NDQ4MTZj
NGY0ZWM2MmM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTAzLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRXh0ZW5kIFdlYkF1ZGlvIGhl
YXAgYWxsb2NhdGlvbiBhc3NlcnRpb25zIHRvIGNvdmVyIHRoZSBwcmUtcmVuZGVyaW5nIHBocmFz
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzNjQw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXh0ZW5k
IFdlYkF1ZGlvIGhlYXAgYWxsb2NhdGlvbiBhc3NlcnRpb25zIHRvIGNvdmVyIHRoZSBwcmUtcmVu
ZGVyaW5nIHBocmFzZS4gSSBoYWQgdG8gYWRkCisgICAgICAgIGV4Y2VwdGlvbnMgZm9yIHNvbWUg
aGVhcCBhbGxvY2F0aW9ucyB0aGF0IGFyZSBjdXJyZW50bHkgaGFwcGVuaW5nIGR1cmluZyB0aGlz
IHBoYXNlIGJ1dCBJCisgICAgICAgIHdpbGwgd29yayB0byByZWR1Y2UgdGhlIG51bWJlciBvZiBl
eGNlcHRpb25zIGluIGZvbGxvdy11cHMuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRp
b25Ob2RlOjpyZW5kZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5w
dXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlSW5wdXQ6OnVwZGF0ZUludGVybmFs
QnVzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU91dHB1dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGVPdXRwdXQ6OnVwZGF0ZUludGVybmFsQnVzKToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QmFzZUF1ZGlvQ29udGV4dDo6YWRkQXV0b21hdGljUHVsbE5vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6QmFzZUF1ZGlvQ29udGV4dDo6dXBkYXRlQXV0b21hdGljUHVsbE5vZGVzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0RTUEtlcm5lbFByb2Nlc3Nvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0RTUEtlcm5lbFByb2Nlc3Nvcjo6aW5pdGlhbGl6ZSk6CisK
IDIwMjEtMDMtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgYXNzZXJ0aW9ucyB0byBndWFyZCBhZ2FpbnN0IGhlYXAgYWxsb2NhdGlvbnMgb24gdGhlIGF1
ZGlvIHRocmVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCA4N2U4ZTMxYTgwZDU5MjkxMzQxMTFiNTUy
NTQwNjViYzYzZjA3MWVmLi5kZTk3OWY5ZDg1OWYzYzExOTU0MzY4MDM2NTkxMjRhNDk5OWEwZmZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGlu
YXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
RGVzdGluYXRpb25Ob2RlLmNwcApAQCAtNzcsMTggKzc3LDE5IEBAIHZvaWQgQXVkaW9EZXN0aW5h
dGlvbk5vZGU6OnJlbmRlcihBdWRpb0J1cyosIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6
ZV90IG51CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBMZXQgdGhlIGNvbnRleHQg
dGFrZSBjYXJlIG9mIGFueSBidXNpbmVzcyBhdCB0aGUgc3RhcnQgb2YgZWFjaCByZW5kZXIgcXVh
bnR1bS4KLSAgICBjb250ZXh0KCkuaGFuZGxlUHJlUmVuZGVyVGFza3Mob3V0cHV0UG9zaXRpb24p
OwotCiAgICAgUmVmUHRyPEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlPiB3b3JrbGV0R2xvYmFsU2Nv
cGU7CiAgICAgaWYgKGF1dG8qIGF1ZGlvV29ya2xldFByb3h5ID0gY29udGV4dCgpLmF1ZGlvV29y
a2xldCgpLnByb3h5KCkpCiAgICAgICAgIHdvcmtsZXRHbG9iYWxTY29wZSA9IGF1ZGlvV29ya2xl
dFByb3h5LT53b3JrbGV0VGhyZWFkKCkuZ2xvYmFsU2NvcGUoKTsKLSAgICBpZiAod29ya2xldEds
b2JhbFNjb3BlKQotICAgICAgICB3b3JrbGV0R2xvYmFsU2NvcGUtPmhhbmRsZVByZVJlbmRlclRh
c2tzKCk7CiAKICAgICB7CiAgICAgICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRT
Y29wZSBmb3JiaWRNYWxsb2NVc2U7CiAKKyAgICAgICAgLy8gTGV0IHRoZSBjb250ZXh0IHRha2Ug
Y2FyZSBvZiBhbnkgYnVzaW5lc3MgYXQgdGhlIHN0YXJ0IG9mIGVhY2ggcmVuZGVyIHF1YW50dW0u
CisgICAgICAgIGNvbnRleHQoKS5oYW5kbGVQcmVSZW5kZXJUYXNrcyhvdXRwdXRQb3NpdGlvbik7
CisKKyAgICAgICAgaWYgKHdvcmtsZXRHbG9iYWxTY29wZSkKKyAgICAgICAgICAgIHdvcmtsZXRH
bG9iYWxTY29wZS0+aGFuZGxlUHJlUmVuZGVyVGFza3MoKTsKKwogICAgICAgICAvLyBUaGlzIHdp
bGwgY2F1c2UgdGhlIG5vZGUocykgY29ubmVjdGVkIHRvIHVzIHRvIHByb2Nlc3MsIHdoaWNoIGlu
IHR1cm4gd2lsbCBwdWxsIG9uIHRoZWlyIGlucHV0KHMpLAogICAgICAgICAvLyBhbGwgdGhlIHdh
eSBiYWNrd2FyZHMgdGhyb3VnaCB0aGUgcmVuZGVyaW5nIGdyYXBoLgogICAgICAgICBBdWRpb0J1
cyogcmVuZGVyZWRCdXMgPSBpbnB1dCgwKS0+cHVsbChkZXN0aW5hdGlvbkJ1cywgbnVtYmVyT2ZG
cmFtZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b05vZGVJbnB1dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9k
ZUlucHV0LmNwcAppbmRleCAwMjFiNmJlZWE0ZDExN2NmMjM3NjBlMDVjY2JlYzRjMzVkYjM0Zjhi
Li4zZTAwM2U4MmMwZGIzNzVkOGE3MTIwNDg1YzAxZjIyZGZlMTcyMjc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcApAQCAtMTAz
LDYgKzEwMyw3IEBAIHZvaWQgQXVkaW9Ob2RlSW5wdXQ6OnVwZGF0ZUludGVybmFsQnVzKCkKICAg
ICBpZiAobnVtYmVyT2ZJbnB1dENoYW5uZWxzID09IG1faW50ZXJuYWxTdW1taW5nQnVzLT5udW1i
ZXJPZkNoYW5uZWxzKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIERpc2FibGVNYWxsb2NSZXN0
cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsK
ICAgICBtX2ludGVybmFsU3VtbWluZ0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZJbnB1
dENoYW5uZWxzLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU91dHB1dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU91dHB1dC5jcHAK
aW5kZXggYTQwZWNlMzRkNGVmZTlmNDg5MjkwNDhjOTJiM2Y3NjkwMzIxZWU2OS4uM2JkMWMzN2Mx
MjViYmZjZGMyYjVhNDU1NmM3ZDdlMGFlNTQzNGI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPdXRwdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcApAQCAtNjgsNiArNjgsNyBA
QCB2b2lkIEF1ZGlvTm9kZU91dHB1dDo6dXBkYXRlSW50ZXJuYWxCdXMoKQogICAgIGlmIChudW1i
ZXJPZkNoYW5uZWxzKCkgPT0gbV9pbnRlcm5hbEJ1cy0+bnVtYmVyT2ZDaGFubmVscygpKQogICAg
ICAgICByZXR1cm47CiAKKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRo
cmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAgbV9pbnRlcm5hbEJ1cyA9
IEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVscygpLCBBdWRpb1V0aWxpdGllczo6cmVu
ZGVyUXVhbnR1bVNpemUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAppbmRleCAwNTYzZjI3ODMwYmFlODRlMGNlYTlk
YjZjN2FiMDQ2ODk1N2I2MTczLi4yOGJhOGJkNGIzY2IxMDFlYWYyOTg3ZjI2ZDFmYzM5OWRmMTJk
NzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRp
b0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1
ZGlvQ29udGV4dC5jcHAKQEAgLTg3MCw2ICs4NzAsOCBAQCB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6
OmFkZEF1dG9tYXRpY1B1bGxOb2RlKEF1ZGlvTm9kZSYgbm9kZSkKIHsKICAgICBBU1NFUlQoaXNH
cmFwaE93bmVyKCkpOwogCisgICAgLy8gRklYTUU6IFRoaXMgbWF5IGNhdXNlIGhlYXAgYWxsb2Nh
dGlvbnMgb24gdGhlIGF1ZGlvIHRocmVhZC4KKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25z
Rm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAgaWYg
KG1fYXV0b21hdGljUHVsbE5vZGVzLmFkZCgmbm9kZSkuaXNOZXdFbnRyeSkKICAgICAgICAgbV9h
dXRvbWF0aWNQdWxsTm9kZXNOZWVkVXBkYXRpbmcgPSB0cnVlOwogfQpAQCAtODg3LDYgKzg4OSw5
IEBAIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6dXBkYXRlQXV0b21hdGljUHVsbE5vZGVzKCkKICAg
ICBBU1NFUlQoaXNHcmFwaE93bmVyKCkpOwogCiAgICAgaWYgKG1fYXV0b21hdGljUHVsbE5vZGVz
TmVlZFVwZGF0aW5nKSB7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIG1heSBjYXVzZSBoZWFwIGFs
bG9jYXRpb25zIG9uIHRoZSBhdWRpbyB0aHJlYWQuCisgICAgICAgIERpc2FibGVNYWxsb2NSZXN0
cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsK
KwogICAgICAgICAvLyBDb3B5IGZyb20gbV9hdXRvbWF0aWNQdWxsTm9kZXMgdG8gbV9yZW5kZXJp
bmdBdXRvbWF0aWNQdWxsTm9kZXMuCiAgICAgICAgIG1fcmVuZGVyaW5nQXV0b21hdGljUHVsbE5v
ZGVzLnJlc2l6ZShtX2F1dG9tYXRpY1B1bGxOb2Rlcy5zaXplKCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0RTUEtlcm5lbFByb2Nlc3Nvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0RTUEtlcm5lbFByb2Nlc3Nvci5j
cHAKaW5kZXggOTZmYzI1NTY5NTllZTcwODdmYzlhNTM4ODg2MzU4YzUzMzIxMmM4OS4uYjQxMTYy
MTA3ZjU1ZDIwMTY5YmQ2NzViYzg5MTQ2Njk0ZTdiMGQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EU1BLZXJuZWxQcm9jZXNzb3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmNwcApA
QCAtNTEsNiArNTEsOSBAQCB2b2lkIEF1ZGlvRFNQS2VybmVsUHJvY2Vzc29yOjppbml0aWFsaXpl
KCkKIAogICAgIEFTU0VSVCghbV9rZXJuZWxzLnNpemUoKSk7CiAKKyAgICAvLyBGSVhNRTogVGhp
cyBtYXkgY2F1c2UgaGVhcCBhbGxvY2F0aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFkLgorICAgIERp
c2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxv
Y1Jlc3RyaWN0aW9uczsKKwogICAgIC8vIENyZWF0ZSBwcm9jZXNzaW5nIGtlcm5lbHMsIG9uZSBw
ZXIgY2hhbm5lbC4KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZDaGFubmVs
cygpOyArK2kpCiAgICAgICAgIG1fa2VybmVscy5hcHBlbmQoY3JlYXRlS2VybmVsKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424051</attachid>
            <date>2021-03-23 12:51:25 -0700</date>
            <delta_ts>2021-03-23 14:48:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223640-20210323125125.patch</filename>
            <type>text/plain</type>
            <size>9336</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0ODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAyMzdhZjIzOTcxNDZk
NjQzZWUzNjU4NGZiMGZkMTMxM2Q1OGI4MC4uYjZjZGZhMTU2OTgwN2RmNWZmMDM5NzYwYWNlMDY2
ZGFhMjhmNzViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTAzLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRXh0ZW5kIFdlYkF1ZGlvIGhl
YXAgYWxsb2NhdGlvbiBhc3NlcnRpb25zIHRvIGNvdmVyIHRoZSBwcmUgJiBwb3N0LXJlbmRlcmlu
ZyBwaGFzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMzY0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEV4dGVuZCBXZWJBdWRpbyBoZWFwIGFsbG9jYXRpb24gYXNzZXJ0aW9ucyB0byBjb3ZlciB0aGUg
cHJlICYgcG9zdC1yZW5kZXJpbmcgcGhhc2VzLiBJIGhhZCB0byBhZGQKKyAgICAgICAgZXhjZXB0
aW9ucyBmb3Igc29tZSBoZWFwIGFsbG9jYXRpb25zIHRoYXQgYXJlIGN1cnJlbnRseSBoYXBwZW5p
bmcgZHVyaW5nIHRoaXMgcGhhc2UgYnV0IEkKKyAgICAgICAgd2lsbCB3b3JrIHRvIHJlZHVjZSB0
aGUgbnVtYmVyIG9mIGV4Y2VwdGlvbnMgaW4gZm9sbG93LXVwcy4KKworICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlbmRlcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb05vZGVJbnB1dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGVJbnB1dDo6
dXBkYXRlSW50ZXJuYWxCdXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2Rl
T3V0cHV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZU91dHB1dDo6dXBkYXRlSW50
ZXJuYWxCdXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9Db250ZXh0OjphZGRBdXRvbWF0aWNQdWxs
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9Db250ZXh0Ojp1cGRhdGVBdXRvbWF0
aWNQdWxsTm9kZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvRFNQS2VybmVsUHJv
Y2Vzc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRFNQS2VybmVsUHJvY2Vzc29yOjpp
bml0aWFsaXplKToKKwogMjAyMS0wMy0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhc3NlcnRpb25zIHRvIGd1YXJkIGFnYWluc3QgaGVhcCBhbGxvY2F0
aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IDg3ZThlMzFhODBk
NTkyOTEzNDExMWI1NTI1NDA2NWJjNjNmMDcxZWYuLmZkZmE4MzgwYjkwNDM3N2ViNGUwYzI1ZjVl
ZWQ4Y2ViMDk1Zjg0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC01Nyw2ICs1Nyw4IEBAIEF1ZGlv
RGVzdGluYXRpb25Ob2RlOjp+QXVkaW9EZXN0aW5hdGlvbk5vZGUoKQogCiB2b2lkIEF1ZGlvRGVz
dGluYXRpb25Ob2RlOjpyZW5kZXIoQXVkaW9CdXMqLCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMs
IHNpemVfdCBudW1iZXJPZkZyYW1lcywgY29uc3QgQXVkaW9JT1Bvc2l0aW9uJiBvdXRwdXRQb3Np
dGlvbikKIHsKKyAgICBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUgZm9yYmlk
TWFsbG9jVXNlOworCiAgICAgLy8gV2UgZG9uJ3Qgd2FudCBkZW5vcm1hbHMgc2xvd2luZyBkb3du
IGFueSBvZiB0aGUgYXVkaW8gcHJvY2Vzc2luZwogICAgIC8vIHNpbmNlIHRoZXkgY2FuIHZlcnkg
c2VyaW91c2x5IGh1cnQgcGVyZm9ybWFuY2UuCiAgICAgLy8gVGhpcyB3aWxsIHRha2UgY2FyZSBv
ZiBhbGwgQXVkaW9Ob2RlcyBiZWNhdXNlIHRoZXkgYWxsIHByb2Nlc3Mgd2l0aGluIHRoaXMgc2Nv
cGUuCkBAIC03NywzNSArNzksMzAgQEAgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6cmVuZGVy
KEF1ZGlvQnVzKiwgQXVkaW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBzaXplX3QgbnUKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIC8vIExldCB0aGUgY29udGV4dCB0YWtlIGNhcmUgb2YgYW55
IGJ1c2luZXNzIGF0IHRoZSBzdGFydCBvZiBlYWNoIHJlbmRlciBxdWFudHVtLgotICAgIGNvbnRl
eHQoKS5oYW5kbGVQcmVSZW5kZXJUYXNrcyhvdXRwdXRQb3NpdGlvbik7Ci0KICAgICBSZWZQdHI8
QXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU+IHdvcmtsZXRHbG9iYWxTY29wZTsKICAgICBpZiAoYXV0
byogYXVkaW9Xb3JrbGV0UHJveHkgPSBjb250ZXh0KCkuYXVkaW9Xb3JrbGV0KCkucHJveHkoKSkK
ICAgICAgICAgd29ya2xldEdsb2JhbFNjb3BlID0gYXVkaW9Xb3JrbGV0UHJveHktPndvcmtsZXRU
aHJlYWQoKS5nbG9iYWxTY29wZSgpOwotICAgIGlmICh3b3JrbGV0R2xvYmFsU2NvcGUpCi0gICAg
ICAgIHdvcmtsZXRHbG9iYWxTY29wZS0+aGFuZGxlUHJlUmVuZGVyVGFza3MoKTsKIAotICAgIHsK
LSAgICAgICAgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlIGZvcmJpZE1hbGxv
Y1VzZTsKKyAgICAvLyBMZXQgdGhlIGNvbnRleHQgdGFrZSBjYXJlIG9mIGFueSBidXNpbmVzcyBh
dCB0aGUgc3RhcnQgb2YgZWFjaCByZW5kZXIgcXVhbnR1bS4KKyAgICBjb250ZXh0KCkuaGFuZGxl
UHJlUmVuZGVyVGFza3Mob3V0cHV0UG9zaXRpb24pOwogCi0gICAgICAgIC8vIFRoaXMgd2lsbCBj
YXVzZSB0aGUgbm9kZShzKSBjb25uZWN0ZWQgdG8gdXMgdG8gcHJvY2Vzcywgd2hpY2ggaW4gdHVy
biB3aWxsIHB1bGwgb24gdGhlaXIgaW5wdXQocyksCi0gICAgICAgIC8vIGFsbCB0aGUgd2F5IGJh
Y2t3YXJkcyB0aHJvdWdoIHRoZSByZW5kZXJpbmcgZ3JhcGguCi0gICAgICAgIEF1ZGlvQnVzKiBy
ZW5kZXJlZEJ1cyA9IGlucHV0KDApLT5wdWxsKGRlc3RpbmF0aW9uQnVzLCBudW1iZXJPZkZyYW1l
cyk7CisgICAgaWYgKHdvcmtsZXRHbG9iYWxTY29wZSkKKyAgICAgICAgd29ya2xldEdsb2JhbFNj
b3BlLT5oYW5kbGVQcmVSZW5kZXJUYXNrcygpOwogCi0gICAgICAgIGlmICghcmVuZGVyZWRCdXMp
Ci0gICAgICAgICAgICBkZXN0aW5hdGlvbkJ1cy0+emVybygpOwotICAgICAgICBlbHNlIGlmIChy
ZW5kZXJlZEJ1cyAhPSBkZXN0aW5hdGlvbkJ1cykgewotICAgICAgICAgICAgLy8gaW4tcGxhY2Ug
cHJvY2Vzc2luZyB3YXMgbm90IHBvc3NpYmxlIC0gc28gY29weQotICAgICAgICAgICAgZGVzdGlu
YXRpb25CdXMtPmNvcHlGcm9tKCpyZW5kZXJlZEJ1cyk7Ci0gICAgICAgIH0KKyAgICAvLyBUaGlz
IHdpbGwgY2F1c2UgdGhlIG5vZGUocykgY29ubmVjdGVkIHRvIHVzIHRvIHByb2Nlc3MsIHdoaWNo
IGluIHR1cm4gd2lsbCBwdWxsIG9uIHRoZWlyIGlucHV0KHMpLAorICAgIC8vIGFsbCB0aGUgd2F5
IGJhY2t3YXJkcyB0aHJvdWdoIHRoZSByZW5kZXJpbmcgZ3JhcGguCisgICAgQXVkaW9CdXMqIHJl
bmRlcmVkQnVzID0gaW5wdXQoMCktPnB1bGwoZGVzdGluYXRpb25CdXMsIG51bWJlck9mRnJhbWVz
KTsKIAotICAgICAgICAvLyBQcm9jZXNzIG5vZGVzIHdoaWNoIG5lZWQgYSBsaXR0bGUgZXh0cmEg
aGVscCBiZWNhdXNlIHRoZXkgYXJlIG5vdCBjb25uZWN0ZWQgdG8gYW55dGhpbmcsIGJ1dCBzdGls
bCBuZWVkIHRvIHByb2Nlc3MuCi0gICAgICAgIGNvbnRleHQoKS5wcm9jZXNzQXV0b21hdGljUHVs
bE5vZGVzKG51bWJlck9mRnJhbWVzKTsKKyAgICBpZiAoIXJlbmRlcmVkQnVzKQorICAgICAgICBk
ZXN0aW5hdGlvbkJ1cy0+emVybygpOworICAgIGVsc2UgaWYgKHJlbmRlcmVkQnVzICE9IGRlc3Rp
bmF0aW9uQnVzKSB7CisgICAgICAgIC8vIGluLXBsYWNlIHByb2Nlc3Npbmcgd2FzIG5vdCBwb3Nz
aWJsZSAtIHNvIGNvcHkKKyAgICAgICAgZGVzdGluYXRpb25CdXMtPmNvcHlGcm9tKCpyZW5kZXJl
ZEJ1cyk7CiAgICAgfQogCi0gICAgLy8gTGV0IHRoZSBjb250ZXh0IHRha2UgY2FyZSBvZiBhbnkg
YnVzaW5lc3MgYXQgdGhlIGVuZCBvZiBlYWNoIHJlbmRlciBxdWFudHVtLgotICAgIGNvbnRleHQo
KS5oYW5kbGVQb3N0UmVuZGVyVGFza3MoKTsKKyAgICAvLyBQcm9jZXNzIG5vZGVzIHdoaWNoIG5l
ZWQgYSBsaXR0bGUgZXh0cmEgaGVscCBiZWNhdXNlIHRoZXkgYXJlIG5vdCBjb25uZWN0ZWQgdG8g
YW55dGhpbmcsIGJ1dCBzdGlsbCBuZWVkIHRvIHByb2Nlc3MuCisgICAgY29udGV4dCgpLnByb2Nl
c3NBdXRvbWF0aWNQdWxsTm9kZXMobnVtYmVyT2ZGcmFtZXMpOworCiAgICAgCiAgICAgLy8gQWR2
YW5jZSBjdXJyZW50IHNhbXBsZS1mcmFtZS4KICAgICBtX2N1cnJlbnRTYW1wbGVGcmFtZSArPSBu
dW1iZXJPZkZyYW1lczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Ob2RlSW5wdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb05vZGVJbnB1dC5jcHAKaW5kZXggMDIxYjZiZWVhNGQxMTdjZjIzNzYwZTA1Y2NiZWM0YzM1
ZGIzNGY4Yi4uM2UwMDNlODJjMGRiMzc1ZDhhNzEyMDQ4NWMwMWYyMmRmZTE3MjI3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAK
QEAgLTEwMyw2ICsxMDMsNyBAQCB2b2lkIEF1ZGlvTm9kZUlucHV0Ojp1cGRhdGVJbnRlcm5hbEJ1
cygpCiAgICAgaWYgKG51bWJlck9mSW5wdXRDaGFubmVscyA9PSBtX2ludGVybmFsU3VtbWluZ0J1
cy0+bnVtYmVyT2ZDaGFubmVscygpKQogICAgICAgICByZXR1cm47CiAKKyAgICBEaXNhYmxlTWFs
bG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmlj
dGlvbnM7CiAgICAgbV9pbnRlcm5hbFN1bW1pbmdCdXMgPSBBdWRpb0J1czo6Y3JlYXRlKG51bWJl
ck9mSW5wdXRDaGFubmVscywgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVP
dXRwdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPdXRw
dXQuY3BwCmluZGV4IGE0MGVjZTM0ZDRlZmU5ZjQ4OTI5MDQ4YzkyYjNmNzY5MDMyMWVlNjkuLjNi
ZDFjMzdjMTI1YmJmY2RjMmI1YTQ1NTZjN2Q3ZTBhZTU0MzRiNTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU91dHB1dC5jcHAKQEAgLTY4LDYg
KzY4LDcgQEAgdm9pZCBBdWRpb05vZGVPdXRwdXQ6OnVwZGF0ZUludGVybmFsQnVzKCkKICAgICBp
ZiAobnVtYmVyT2ZDaGFubmVscygpID09IG1faW50ZXJuYWxCdXMtPm51bWJlck9mQ2hhbm5lbHMo
KSkKICAgICAgICAgcmV0dXJuOwogCisgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1
cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOwogICAgIG1faW50ZXJu
YWxCdXMgPSBBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9mQ2hhbm5lbHMoKSwgQXVkaW9VdGlsaXRp
ZXM6OnJlbmRlclF1YW50dW1TaXplKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCBk
MmVlY2U2ZDU3MGM1MDE2MDA3ODQ4Zjc3MDdmNGE1ZDdkNDYyNjY1Li5kNTBjNWQ4NjRlYjcxYTQ3
OThlYzUzYzQwMGMzNDQ0NjBlODBhZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtMTg3
LDggKzE4NywxMSBAQCB2b2lkIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjpoYW5kbGVQb3N0UmVu
ZGVyVGFza3Moc2l6ZV90IGN1cnJlbnRGcmFtZSkKIHsKICAgICBtX2N1cnJlbnRGcmFtZSA9IGN1
cnJlbnRGcmFtZTsKIAotICAgIC8vIFRoaXMgdGFrZXMgY2FyZSBvZiBwcm9jZXNzaW5nIHRoZSBN
aWNyb1Rhc2sgcXVldWUgYWZ0ZXIgcmVuZGVyaW5nLgotICAgIG1fbG9ja0R1cmluZ1JlbmRlcmlu
ZyA9IFdURjo6bnVsbG9wdDsKKyAgICB7CisgICAgICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlv
bnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKKyAgICAg
ICAgLy8gVGhpcyB0YWtlcyBjYXJlIG9mIHByb2Nlc3NpbmcgdGhlIE1pY3JvVGFzayBxdWV1ZSBh
ZnRlciByZW5kZXJpbmcuCisgICAgICAgIG1fbG9ja0R1cmluZ1JlbmRlcmluZyA9IFdURjo6bnVs
bG9wdDsKKyAgICB9CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCmluZGV4IDA1
NjNmMjc4MzBiYWU4NGUwY2VhOWRiNmM3YWIwNDY4OTU3YjYxNzMuLjdmNGQxZGY5MjljYzU4ZTZl
NzllMDhmODc5MDQwOWNlMjM5MDQ4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcApAQCAtODcwLDYgKzg3MCw4IEBAIHZv
aWQgQmFzZUF1ZGlvQ29udGV4dDo6YWRkQXV0b21hdGljUHVsbE5vZGUoQXVkaW9Ob2RlJiBub2Rl
KQogewogICAgIEFTU0VSVChpc0dyYXBoT3duZXIoKSk7CiAKKyAgICAvLyBGSVhNRTogVGhpcyBt
YXkgY2F1c2UgaGVhcCBhbGxvY2F0aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFkLgorICAgIERpc2Fi
bGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jl
c3RyaWN0aW9uczsKICAgICBpZiAobV9hdXRvbWF0aWNQdWxsTm9kZXMuYWRkKCZub2RlKS5pc05l
d0VudHJ5KQogICAgICAgICBtX2F1dG9tYXRpY1B1bGxOb2Rlc05lZWRVcGRhdGluZyA9IHRydWU7
CiB9CkBAIC04ODcsNiArODg5LDkgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0Ojp1cGRhdGVBdXRv
bWF0aWNQdWxsTm9kZXMoKQogICAgIEFTU0VSVChpc0dyYXBoT3duZXIoKSk7CiAKICAgICBpZiAo
bV9hdXRvbWF0aWNQdWxsTm9kZXNOZWVkVXBkYXRpbmcpIHsKKyAgICAgICAgLy8gRklYTUU6IFRo
aXMgbWF5IGNhdXNlIGhlYXAgYWxsb2NhdGlvbnMgb24gdGhlIGF1ZGlvIHRocmVhZC4KKyAgICAg
ICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxl
TWFsbG9jUmVzdHJpY3Rpb25zOworCiAgICAgICAgIC8vIENvcHkgZnJvbSBtX2F1dG9tYXRpY1B1
bGxOb2RlcyB0byBtX3JlbmRlcmluZ0F1dG9tYXRpY1B1bGxOb2Rlcy4KICAgICAgICAgbV9yZW5k
ZXJpbmdBdXRvbWF0aWNQdWxsTm9kZXMucmVzaXplKG1fYXV0b21hdGljUHVsbE5vZGVzLnNpemUo
KSk7CiAKQEAgLTkxNSw2ICs5MjAsNyBAQCB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6OmlzUGxheWlu
Z0F1ZGlvRGlkQ2hhbmdlKCkKIHsKICAgICAvLyBNYWtlIHN1cmUgdG8gY2FsbCBEb2N1bWVudDo6
dXBkYXRlSXNQbGF5aW5nTWVkaWEoKSBvbiB0aGUgbWFpbiB0aHJlYWQsIHNpbmNlCiAgICAgLy8g
d2UgY291bGQgYmUgb24gdGhlIGF1ZGlvIEkvTyB0aHJlYWQgaGVyZSBhbmQgdGhlIGNhbGwgaW50
byBXZWJDb3JlIGNvdWxkIGJsb2NrLgorICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JD
dXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAgICBjYWxsT25N
YWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgaWYg
KHByb3RlY3RlZFRoaXMtPmRvY3VtZW50KCkpCiAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5k
b2N1bWVudCgpLT51cGRhdGVJc1BsYXlpbmdNZWRpYSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EU1BLZXJuZWxQcm9jZXNzb3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EU1BLZXJuZWxQcm9jZXNzb3IuY3BwCmluZGV4
IDk2ZmMyNTU2OTU5ZWU3MDg3ZmM5YTUzODg4NjM1OGM1MzMyMTJjODkuLmI0MTE2MjEwN2Y1NWQy
MDE2OWJkNjc1YmM4OTE0NjY5NGU3YjBkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0RTUEtlcm5lbFByb2Nlc3Nvci5jcHAKQEAgLTUxLDYg
KzUxLDkgQEAgdm9pZCBBdWRpb0RTUEtlcm5lbFByb2Nlc3Nvcjo6aW5pdGlhbGl6ZSgpCiAKICAg
ICBBU1NFUlQoIW1fa2VybmVscy5zaXplKCkpOwogCisgICAgLy8gRklYTUU6IFRoaXMgbWF5IGNh
dXNlIGhlYXAgYWxsb2NhdGlvbnMgb24gdGhlIGF1ZGlvIHRocmVhZC4KKyAgICBEaXNhYmxlTWFs
bG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmlj
dGlvbnM7CisKICAgICAvLyBDcmVhdGUgcHJvY2Vzc2luZyBrZXJuZWxzLCBvbmUgcGVyIGNoYW5u
ZWwuCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mQ2hhbm5lbHMoKTsgKytp
KQogICAgICAgICBtX2tlcm5lbHMuYXBwZW5kKGNyZWF0ZUtlcm5lbCgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424069</attachid>
            <date>2021-03-23 14:48:55 -0700</date>
            <delta_ts>2021-03-23 17:41:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223640-20210323144854.patch</filename>
            <type>text/plain</type>
            <size>8653</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDgxNGViNDQzN2UyOTky
ODUxYWRiMmQyNzMxNWJjZTJlZDdkYmUwMi4uZmJiMWEzMGJhNDkyOWE0ZWU5ZmM2NjhiOWM4NzEz
N2JjYjljNDMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTAzLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRXh0ZW5kIFdlYkF1ZGlvIGhl
YXAgYWxsb2NhdGlvbiBhc3NlcnRpb25zIHRvIGNvdmVyIHRoZSBwcmUgJiBwb3N0LXJlbmRlcmlu
ZyBwaGFzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMzY0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEV4dGVuZCBXZWJBdWRpbyBoZWFwIGFsbG9jYXRpb24gYXNzZXJ0aW9ucyB0byBjb3ZlciB0aGUg
cHJlICYgcG9zdC1yZW5kZXJpbmcgcGhhc2VzLiBJIGhhZCB0byBhZGQKKyAgICAgICAgZXhjZXB0
aW9ucyBmb3Igc29tZSBoZWFwIGFsbG9jYXRpb25zIHRoYXQgYXJlIGN1cnJlbnRseSBoYXBwZW5p
bmcgZHVyaW5nIHRoaXMgcGhhc2UgYnV0IEkKKyAgICAgICAgd2lsbCB3b3JrIHRvIHJlZHVjZSB0
aGUgbnVtYmVyIG9mIGV4Y2VwdGlvbnMgaW4gZm9sbG93LXVwcy4KKworICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlbmRlcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb05vZGVJbnB1dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGVJbnB1dDo6
dXBkYXRlSW50ZXJuYWxCdXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2Rl
T3V0cHV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZU91dHB1dDo6dXBkYXRlSW50
ZXJuYWxCdXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9Db250ZXh0OjphZGRBdXRvbWF0aWNQdWxs
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQXVkaW9Db250ZXh0Ojp1cGRhdGVBdXRvbWF0
aWNQdWxsTm9kZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvRFNQS2VybmVsUHJv
Y2Vzc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRFNQS2VybmVsUHJvY2Vzc29yOjpp
bml0aWFsaXplKToKKwogMjAyMS0wMy0yMyAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJl
ekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDTWFrZV0gVXNlIGFuIGltcG9ydGVkIHRhcmdldCBm
b3IgdGhlIExDTVMyIGxpYnJhcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggODdlOGUzMWE4MGQ1OTI5
MTM0MTExYjU1MjU0MDY1YmM2M2YwNzFlZi4uN2RhOWVhYTU4NzQyZmRjMzA0OTM1Njc4YTM1Zjhm
ZjMzOTBkMWYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTU3LDYgKzU3LDggQEAgQXVkaW9EZXN0
aW5hdGlvbk5vZGU6On5BdWRpb0Rlc3RpbmF0aW9uTm9kZSgpCiAKIHZvaWQgQXVkaW9EZXN0aW5h
dGlvbk5vZGU6OnJlbmRlcihBdWRpb0J1cyosIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6
ZV90IG51bWJlck9mRnJhbWVzLCBjb25zdCBBdWRpb0lPUG9zaXRpb24mIG91dHB1dFBvc2l0aW9u
KQogeworICAgIEZvcmJpZE1hbGxvY1VzZUZvckN1cnJlbnRUaHJlYWRTY29wZSBmb3JiaWRNYWxs
b2NVc2U7CisKICAgICAvLyBXZSBkb24ndCB3YW50IGRlbm9ybWFscyBzbG93aW5nIGRvd24gYW55
IG9mIHRoZSBhdWRpbyBwcm9jZXNzaW5nCiAgICAgLy8gc2luY2UgdGhleSBjYW4gdmVyeSBzZXJp
b3VzbHkgaHVydCBwZXJmb3JtYW5jZS4KICAgICAvLyBUaGlzIHdpbGwgdGFrZSBjYXJlIG9mIGFs
bCBBdWRpb05vZGVzIGJlY2F1c2UgdGhleSBhbGwgcHJvY2VzcyB3aXRoaW4gdGhpcyBzY29wZS4K
QEAgLTg2LDI0ICs4OCwyMCBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpyZW5kZXIoQXVk
aW9CdXMqLCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBudQogICAgIGlmICh3b3Jr
bGV0R2xvYmFsU2NvcGUpCiAgICAgICAgIHdvcmtsZXRHbG9iYWxTY29wZS0+aGFuZGxlUHJlUmVu
ZGVyVGFza3MoKTsKIAotICAgIHsKLSAgICAgICAgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVudFRo
cmVhZFNjb3BlIGZvcmJpZE1hbGxvY1VzZTsKLQotICAgICAgICAvLyBUaGlzIHdpbGwgY2F1c2Ug
dGhlIG5vZGUocykgY29ubmVjdGVkIHRvIHVzIHRvIHByb2Nlc3MsIHdoaWNoIGluIHR1cm4gd2ls
bCBwdWxsIG9uIHRoZWlyIGlucHV0KHMpLAotICAgICAgICAvLyBhbGwgdGhlIHdheSBiYWNrd2Fy
ZHMgdGhyb3VnaCB0aGUgcmVuZGVyaW5nIGdyYXBoLgotICAgICAgICBBdWRpb0J1cyogcmVuZGVy
ZWRCdXMgPSBpbnB1dCgwKS0+cHVsbChkZXN0aW5hdGlvbkJ1cywgbnVtYmVyT2ZGcmFtZXMpOwot
Ci0gICAgICAgIGlmICghcmVuZGVyZWRCdXMpCi0gICAgICAgICAgICBkZXN0aW5hdGlvbkJ1cy0+
emVybygpOwotICAgICAgICBlbHNlIGlmIChyZW5kZXJlZEJ1cyAhPSBkZXN0aW5hdGlvbkJ1cykg
ewotICAgICAgICAgICAgLy8gaW4tcGxhY2UgcHJvY2Vzc2luZyB3YXMgbm90IHBvc3NpYmxlIC0g
c28gY29weQotICAgICAgICAgICAgZGVzdGluYXRpb25CdXMtPmNvcHlGcm9tKCpyZW5kZXJlZEJ1
cyk7Ci0gICAgICAgIH0KKyAgICAvLyBUaGlzIHdpbGwgY2F1c2UgdGhlIG5vZGUocykgY29ubmVj
dGVkIHRvIHVzIHRvIHByb2Nlc3MsIHdoaWNoIGluIHR1cm4gd2lsbCBwdWxsIG9uIHRoZWlyIGlu
cHV0KHMpLAorICAgIC8vIGFsbCB0aGUgd2F5IGJhY2t3YXJkcyB0aHJvdWdoIHRoZSByZW5kZXJp
bmcgZ3JhcGguCisgICAgQXVkaW9CdXMqIHJlbmRlcmVkQnVzID0gaW5wdXQoMCktPnB1bGwoZGVz
dGluYXRpb25CdXMsIG51bWJlck9mRnJhbWVzKTsKIAotICAgICAgICAvLyBQcm9jZXNzIG5vZGVz
IHdoaWNoIG5lZWQgYSBsaXR0bGUgZXh0cmEgaGVscCBiZWNhdXNlIHRoZXkgYXJlIG5vdCBjb25u
ZWN0ZWQgdG8gYW55dGhpbmcsIGJ1dCBzdGlsbCBuZWVkIHRvIHByb2Nlc3MuCi0gICAgICAgIGNv
bnRleHQoKS5wcm9jZXNzQXV0b21hdGljUHVsbE5vZGVzKG51bWJlck9mRnJhbWVzKTsKKyAgICBp
ZiAoIXJlbmRlcmVkQnVzKQorICAgICAgICBkZXN0aW5hdGlvbkJ1cy0+emVybygpOworICAgIGVs
c2UgaWYgKHJlbmRlcmVkQnVzICE9IGRlc3RpbmF0aW9uQnVzKSB7CisgICAgICAgIC8vIGluLXBs
YWNlIHByb2Nlc3Npbmcgd2FzIG5vdCBwb3NzaWJsZSAtIHNvIGNvcHkKKyAgICAgICAgZGVzdGlu
YXRpb25CdXMtPmNvcHlGcm9tKCpyZW5kZXJlZEJ1cyk7CiAgICAgfQogCisgICAgLy8gUHJvY2Vz
cyBub2RlcyB3aGljaCBuZWVkIGEgbGl0dGxlIGV4dHJhIGhlbHAgYmVjYXVzZSB0aGV5IGFyZSBu
b3QgY29ubmVjdGVkIHRvIGFueXRoaW5nLCBidXQgc3RpbGwgbmVlZCB0byBwcm9jZXNzLgorICAg
IGNvbnRleHQoKS5wcm9jZXNzQXV0b21hdGljUHVsbE5vZGVzKG51bWJlck9mRnJhbWVzKTsKKwog
ICAgIC8vIExldCB0aGUgY29udGV4dCB0YWtlIGNhcmUgb2YgYW55IGJ1c2luZXNzIGF0IHRoZSBl
bmQgb2YgZWFjaCByZW5kZXIgcXVhbnR1bS4KICAgICBjb250ZXh0KCkuaGFuZGxlUG9zdFJlbmRl
clRhc2tzKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Ob2RlSW5wdXQuY3BwCmluZGV4IDAyMWI2YmVlYTRkMTE3Y2YyMzc2MGUwNWNjYmVjNGMz
NWRiMzRmOGIuLjNlMDAzZTgyYzBkYjM3NWQ4YTcxMjA0ODVjMDFmMjJkZmUxNzIyNzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5wdXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5wdXQuY3Bw
CkBAIC0xMDMsNiArMTAzLDcgQEAgdm9pZCBBdWRpb05vZGVJbnB1dDo6dXBkYXRlSW50ZXJuYWxC
dXMoKQogICAgIGlmIChudW1iZXJPZklucHV0Q2hhbm5lbHMgPT0gbV9pbnRlcm5hbFN1bW1pbmdC
dXMtPm51bWJlck9mQ2hhbm5lbHMoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgRGlzYWJsZU1h
bGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJp
Y3Rpb25zOwogICAgIG1faW50ZXJuYWxTdW1taW5nQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShudW1i
ZXJPZklucHV0Q2hhbm5lbHMsIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2Rl
T3V0cHV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3V0
cHV0LmNwcAppbmRleCBhNDBlY2UzNGQ0ZWZlOWY0ODkyOTA0OGM5MmIzZjc2OTAzMjFlZTY5Li4z
YmQxYzM3YzEyNWJiZmNkYzJiNWE0NTU2YzdkN2UwYWU1NDM0YjUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU91dHB1dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPdXRwdXQuY3BwCkBAIC02OCw2
ICs2OCw3IEBAIHZvaWQgQXVkaW9Ob2RlT3V0cHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cygpCiAgICAg
aWYgKG51bWJlck9mQ2hhbm5lbHMoKSA9PSBtX2ludGVybmFsQnVzLT5udW1iZXJPZkNoYW5uZWxz
KCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JD
dXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAgICBtX2ludGVy
bmFsQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShudW1iZXJPZkNoYW5uZWxzKCksIEF1ZGlvVXRpbGl0
aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKaW5kZXgg
ZDJlZWNlNmQ1NzBjNTAxNjAwNzg0OGY3NzA3ZjRhNWQ3ZDQ2MjY2NS4uZDUwYzVkODY0ZWI3MWE0
Nzk4ZWM1M2M0MDBjMzQ0NDYwZTgwYWU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTE4
Nyw4ICsxODcsMTEgQEAgdm9pZCBBdWRpb1dvcmtsZXRHbG9iYWxTY29wZTo6aGFuZGxlUG9zdFJl
bmRlclRhc2tzKHNpemVfdCBjdXJyZW50RnJhbWUpCiB7CiAgICAgbV9jdXJyZW50RnJhbWUgPSBj
dXJyZW50RnJhbWU7CiAKLSAgICAvLyBUaGlzIHRha2VzIGNhcmUgb2YgcHJvY2Vzc2luZyB0aGUg
TWljcm9UYXNrIHF1ZXVlIGFmdGVyIHJlbmRlcmluZy4KLSAgICBtX2xvY2tEdXJpbmdSZW5kZXJp
bmcgPSBXVEY6Om51bGxvcHQ7CisgICAgeworICAgICAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rp
b25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CisgICAg
ICAgIC8vIFRoaXMgdGFrZXMgY2FyZSBvZiBwcm9jZXNzaW5nIHRoZSBNaWNyb1Rhc2sgcXVldWUg
YWZ0ZXIgcmVuZGVyaW5nLgorICAgICAgICBtX2xvY2tEdXJpbmdSZW5kZXJpbmcgPSBXVEY6Om51
bGxvcHQ7CisgICAgfQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAppbmRleCAw
NTYzZjI3ODMwYmFlODRlMGNlYTlkYjZjN2FiMDQ2ODk1N2I2MTczLi43ZjRkMWRmOTI5Y2M1OGU2
ZTc5ZTA4Zjg3OTA0MDljZTIzOTA0ODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKQEAgLTg3MCw2ICs4NzAsOCBAQCB2
b2lkIEJhc2VBdWRpb0NvbnRleHQ6OmFkZEF1dG9tYXRpY1B1bGxOb2RlKEF1ZGlvTm9kZSYgbm9k
ZSkKIHsKICAgICBBU1NFUlQoaXNHcmFwaE93bmVyKCkpOwogCisgICAgLy8gRklYTUU6IFRoaXMg
bWF5IGNhdXNlIGhlYXAgYWxsb2NhdGlvbnMgb24gdGhlIGF1ZGlvIHRocmVhZC4KKyAgICBEaXNh
YmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NS
ZXN0cmljdGlvbnM7CiAgICAgaWYgKG1fYXV0b21hdGljUHVsbE5vZGVzLmFkZCgmbm9kZSkuaXNO
ZXdFbnRyeSkKICAgICAgICAgbV9hdXRvbWF0aWNQdWxsTm9kZXNOZWVkVXBkYXRpbmcgPSB0cnVl
OwogfQpAQCAtODg3LDYgKzg4OSw5IEBAIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6dXBkYXRlQXV0
b21hdGljUHVsbE5vZGVzKCkKICAgICBBU1NFUlQoaXNHcmFwaE93bmVyKCkpOwogCiAgICAgaWYg
KG1fYXV0b21hdGljUHVsbE5vZGVzTmVlZFVwZGF0aW5nKSB7CisgICAgICAgIC8vIEZJWE1FOiBU
aGlzIG1heSBjYXVzZSBoZWFwIGFsbG9jYXRpb25zIG9uIHRoZSBhdWRpbyB0aHJlYWQuCisgICAg
ICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJs
ZU1hbGxvY1Jlc3RyaWN0aW9uczsKKwogICAgICAgICAvLyBDb3B5IGZyb20gbV9hdXRvbWF0aWNQ
dWxsTm9kZXMgdG8gbV9yZW5kZXJpbmdBdXRvbWF0aWNQdWxsTm9kZXMuCiAgICAgICAgIG1fcmVu
ZGVyaW5nQXV0b21hdGljUHVsbE5vZGVzLnJlc2l6ZShtX2F1dG9tYXRpY1B1bGxOb2Rlcy5zaXpl
KCkpOwogCkBAIC05MTUsNiArOTIwLDcgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0Ojppc1BsYXlp
bmdBdWRpb0RpZENoYW5nZSgpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHRvIGNhbGwgRG9jdW1lbnQ6
OnVwZGF0ZUlzUGxheWluZ01lZGlhKCkgb24gdGhlIG1haW4gdGhyZWFkLCBzaW5jZQogICAgIC8v
IHdlIGNvdWxkIGJlIG9uIHRoZSBhdWRpbyBJL08gdGhyZWFkIGhlcmUgYW5kIHRoZSBjYWxsIGlu
dG8gV2ViQ29yZSBjb3VsZCBibG9jay4KKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9y
Q3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAgY2FsbE9u
TWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CiAgICAgICAgIGlm
IChwcm90ZWN0ZWRUaGlzLT5kb2N1bWVudCgpKQogICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+
ZG9jdW1lbnQoKS0+dXBkYXRlSXNQbGF5aW5nTWVkaWEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmNwcAppbmRl
eCA5NmZjMjU1Njk1OWVlNzA4N2ZjOWE1Mzg4ODYzNThjNTMzMjEyYzg5Li5iNDExNjIxMDdmNTVk
MjAxNjliZDY3NWJjODkxNDY2OTRlN2IwZDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9BdWRpb0RTUEtlcm5lbFByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EU1BLZXJuZWxQcm9jZXNzb3IuY3BwCkBAIC01MSw2
ICs1MSw5IEBAIHZvaWQgQXVkaW9EU1BLZXJuZWxQcm9jZXNzb3I6OmluaXRpYWxpemUoKQogCiAg
ICAgQVNTRVJUKCFtX2tlcm5lbHMuc2l6ZSgpKTsKIAorICAgIC8vIEZJWE1FOiBUaGlzIG1heSBj
YXVzZSBoZWFwIGFsbG9jYXRpb25zIG9uIHRoZSBhdWRpbyB0aHJlYWQuCisgICAgRGlzYWJsZU1h
bGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJp
Y3Rpb25zOworCiAgICAgLy8gQ3JlYXRlIHByb2Nlc3Npbmcga2VybmVscywgb25lIHBlciBjaGFu
bmVsLgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZkNoYW5uZWxzKCk7ICsr
aSkKICAgICAgICAgbV9rZXJuZWxzLmFwcGVuZChjcmVhdGVLZXJuZWwoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424082</attachid>
            <date>2021-03-23 17:41:15 -0700</date>
            <delta_ts>2021-03-24 08:08:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223640-20210323174114.patch</filename>
            <type>text/plain</type>
            <size>21439</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA4NjM0Nzg5NzBlYmEx
OGI4NWMyNTg0MWNhYmIxM2Q3YWQ1ZDU1ZC4uN2Y0YmNlYmM3MmRmZjg1MGY0MmM4NmQyNzE5OTAy
MzcyYTQyY2FjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTAzLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRXh0ZW5kIFdlYkF1ZGlvIGhl
YXAgYWxsb2NhdGlvbiBhc3NlcnRpb25zIHRvIGNvdmVyIHRoZSBwcmUgJiBwb3N0LXJlbmRlcmlu
ZyBwaGFzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMzY0MAorCisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgRXh0
ZW5kIFdlYkF1ZGlvIGhlYXAgYWxsb2NhdGlvbiBhc3NlcnRpb25zIHRvIGNvdmVyIHRoZSBwcmUg
JiBwb3N0LXJlbmRlcmluZyBwaGFzZXMuIEkgaGFkIHRvIGFkZAorICAgICAgICBleGNlcHRpb25z
IGZvciBzb21lIGhlYXAgYWxsb2NhdGlvbnMgdGhhdCBhcmUgY3VycmVudGx5IGhhcHBlbmluZyBk
dXJpbmcgdGhpcyBwaGFzZSBidXQgSQorICAgICAgICB3aWxsIHdvcmsgdG8gcmVkdWNlIHRoZSBu
dW1iZXIgb2YgZXhjZXB0aW9ucyBpbiBmb2xsb3ctdXBzLgorCisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b0Rlc3RpbmF0aW9uTm9kZTo6cmVuZGVyKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvTm9kZUlucHV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZUlucHV0Ojp1cGRh
dGVJbnRlcm5hbEJ1cyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPdXRw
dXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlT3V0cHV0Ojp1cGRhdGVJbnRlcm5h
bEJ1cyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OmFkZEF1dG9tYXRpY1B1bGxOb2Rl
KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OnVwZGF0ZUF1dG9tYXRpY1B1
bGxOb2Rlcyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EU1BLZXJuZWxQcm9jZXNz
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EU1BLZXJuZWxQcm9jZXNzb3I6OmluaXRp
YWxpemUpOgorCiAyMDIxLTAzLTIzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+
CiAKICAgICAgICAgW0pTQ10gRnVuY3RvciBmb3IgV2Vha0dDTWFwOjplbnN1cmVWYWx1ZSBtdXN0
IG5vdCBpbnZva2UgR0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggODdlOGUzMWE4MGQ1OTI5MTM0MTEx
YjU1MjU0MDY1YmM2M2YwNzFlZi4uMGVjN2M5YmVmYzNhZjMzMzBjY2Y5NDgzZjFkMjdkZDU0NWQ3
MTJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTU3LDYgKzU3LDExIEBAIEF1ZGlvRGVzdGluYXRp
b25Ob2RlOjp+QXVkaW9EZXN0aW5hdGlvbk5vZGUoKQogCiB2b2lkIEF1ZGlvRGVzdGluYXRpb25O
b2RlOjpyZW5kZXIoQXVkaW9CdXMqLCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBu
dW1iZXJPZkZyYW1lcywgY29uc3QgQXVkaW9JT1Bvc2l0aW9uJiBvdXRwdXRQb3NpdGlvbikKIHsK
KyAgICAvLyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgd2UgZm9yYmlkIGhlYXAgYWxsb2NhdGlv
bnMgd2hpbGUgZG9pbmcgcmVuZGVyaW5nIG9uIHRoZSBhdWRpbyB0aHJlYWQuCisgICAgLy8gSGVh
cCBhbGxvY2F0aW9ucyB0aGF0IGNhbm5vdCBiZSBhdm9pZGVkIG9yIGhhdmUgbm90IGJlZW4gZml4
ZWQgeWV0IGNhbiBiZSBhbGxvd2VkIHVzaW5nCisgICAgLy8gRGlzYWJsZU1hbGxvY1Jlc3RyaWN0
aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBzY29wZSB2YXJpYWJsZXMuCisgICAgRm9yYmlkTWFs
bG9jVXNlRm9yQ3VycmVudFRocmVhZFNjb3BlIGZvcmJpZE1hbGxvY1VzZTsKKwogICAgIC8vIFdl
IGRvbid0IHdhbnQgZGVub3JtYWxzIHNsb3dpbmcgZG93biBhbnkgb2YgdGhlIGF1ZGlvIHByb2Nl
c3NpbmcKICAgICAvLyBzaW5jZSB0aGV5IGNhbiB2ZXJ5IHNlcmlvdXNseSBodXJ0IHBlcmZvcm1h
bmNlLgogICAgIC8vIFRoaXMgd2lsbCB0YWtlIGNhcmUgb2YgYWxsIEF1ZGlvTm9kZXMgYmVjYXVz
ZSB0aGV5IGFsbCBwcm9jZXNzIHdpdGhpbiB0aGlzIHNjb3BlLgpAQCAtODYsMjQgKzkxLDIwIEBA
IHZvaWQgQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlbmRlcihBdWRpb0J1cyosIEF1ZGlvQnVzKiBk
ZXN0aW5hdGlvbkJ1cywgc2l6ZV90IG51CiAgICAgaWYgKHdvcmtsZXRHbG9iYWxTY29wZSkKICAg
ICAgICAgd29ya2xldEdsb2JhbFNjb3BlLT5oYW5kbGVQcmVSZW5kZXJUYXNrcygpOwogCi0gICAg
ewotICAgICAgICBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2NvcGUgZm9yYmlkTWFs
bG9jVXNlOwotCi0gICAgICAgIC8vIFRoaXMgd2lsbCBjYXVzZSB0aGUgbm9kZShzKSBjb25uZWN0
ZWQgdG8gdXMgdG8gcHJvY2Vzcywgd2hpY2ggaW4gdHVybiB3aWxsIHB1bGwgb24gdGhlaXIgaW5w
dXQocyksCi0gICAgICAgIC8vIGFsbCB0aGUgd2F5IGJhY2t3YXJkcyB0aHJvdWdoIHRoZSByZW5k
ZXJpbmcgZ3JhcGguCi0gICAgICAgIEF1ZGlvQnVzKiByZW5kZXJlZEJ1cyA9IGlucHV0KDApLT5w
dWxsKGRlc3RpbmF0aW9uQnVzLCBudW1iZXJPZkZyYW1lcyk7Ci0KLSAgICAgICAgaWYgKCFyZW5k
ZXJlZEJ1cykKLSAgICAgICAgICAgIGRlc3RpbmF0aW9uQnVzLT56ZXJvKCk7Ci0gICAgICAgIGVs
c2UgaWYgKHJlbmRlcmVkQnVzICE9IGRlc3RpbmF0aW9uQnVzKSB7Ci0gICAgICAgICAgICAvLyBp
bi1wbGFjZSBwcm9jZXNzaW5nIHdhcyBub3QgcG9zc2libGUgLSBzbyBjb3B5Ci0gICAgICAgICAg
ICBkZXN0aW5hdGlvbkJ1cy0+Y29weUZyb20oKnJlbmRlcmVkQnVzKTsKLSAgICAgICAgfQorICAg
IC8vIFRoaXMgd2lsbCBjYXVzZSB0aGUgbm9kZShzKSBjb25uZWN0ZWQgdG8gdXMgdG8gcHJvY2Vz
cywgd2hpY2ggaW4gdHVybiB3aWxsIHB1bGwgb24gdGhlaXIgaW5wdXQocyksCisgICAgLy8gYWxs
IHRoZSB3YXkgYmFja3dhcmRzIHRocm91Z2ggdGhlIHJlbmRlcmluZyBncmFwaC4KKyAgICBBdWRp
b0J1cyogcmVuZGVyZWRCdXMgPSBpbnB1dCgwKS0+cHVsbChkZXN0aW5hdGlvbkJ1cywgbnVtYmVy
T2ZGcmFtZXMpOwogCi0gICAgICAgIC8vIFByb2Nlc3Mgbm9kZXMgd2hpY2ggbmVlZCBhIGxpdHRs
ZSBleHRyYSBoZWxwIGJlY2F1c2UgdGhleSBhcmUgbm90IGNvbm5lY3RlZCB0byBhbnl0aGluZywg
YnV0IHN0aWxsIG5lZWQgdG8gcHJvY2Vzcy4KLSAgICAgICAgY29udGV4dCgpLnByb2Nlc3NBdXRv
bWF0aWNQdWxsTm9kZXMobnVtYmVyT2ZGcmFtZXMpOworICAgIGlmICghcmVuZGVyZWRCdXMpCisg
ICAgICAgIGRlc3RpbmF0aW9uQnVzLT56ZXJvKCk7CisgICAgZWxzZSBpZiAocmVuZGVyZWRCdXMg
IT0gZGVzdGluYXRpb25CdXMpIHsKKyAgICAgICAgLy8gaW4tcGxhY2UgcHJvY2Vzc2luZyB3YXMg
bm90IHBvc3NpYmxlIC0gc28gY29weQorICAgICAgICBkZXN0aW5hdGlvbkJ1cy0+Y29weUZyb20o
KnJlbmRlcmVkQnVzKTsKICAgICB9CiAKKyAgICAvLyBQcm9jZXNzIG5vZGVzIHdoaWNoIG5lZWQg
YSBsaXR0bGUgZXh0cmEgaGVscCBiZWNhdXNlIHRoZXkgYXJlIG5vdCBjb25uZWN0ZWQgdG8gYW55
dGhpbmcsIGJ1dCBzdGlsbCBuZWVkIHRvIHByb2Nlc3MuCisgICAgY29udGV4dCgpLnByb2Nlc3NB
dXRvbWF0aWNQdWxsTm9kZXMobnVtYmVyT2ZGcmFtZXMpOworCiAgICAgLy8gTGV0IHRoZSBjb250
ZXh0IHRha2UgY2FyZSBvZiBhbnkgYnVzaW5lc3MgYXQgdGhlIGVuZCBvZiBlYWNoIHJlbmRlciBx
dWFudHVtLgogICAgIGNvbnRleHQoKS5oYW5kbGVQb3N0UmVuZGVyVGFza3MoKTsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5wdXQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAK
aW5kZXggMDIxYjZiZWVhNGQxMTdjZjIzNzYwZTA1Y2NiZWM0YzM1ZGIzNGY4Yi4uMjFiYTVhN2Ji
MWE5NGY0MjRjYjJjNmFkZDY3YTYzNmIxNGYzM2JlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAKQEAgLTEwMyw2ICsxMDMsOSBA
QCB2b2lkIEF1ZGlvTm9kZUlucHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cygpCiAgICAgaWYgKG51bWJl
ck9mSW5wdXRDaGFubmVscyA9PSBtX2ludGVybmFsU3VtbWluZ0J1cy0+bnVtYmVyT2ZDaGFubmVs
cygpKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3Ji
aWRkZW4gb24gdGhlIGF1ZGlvIHRocmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBu
ZWVkIHRvCisgICAgLy8gZXhwbGljaXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9jYXRpb24o
cykuCisgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBk
aXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOwogICAgIG1faW50ZXJuYWxTdW1taW5nQnVzID0gQXVk
aW9CdXM6OmNyZWF0ZShudW1iZXJPZklucHV0Q2hhbm5lbHMsIEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcAppbmRleCBhNDBlY2UzNGQ0ZWZlOWY0ODkyOTA0OGM5
MmIzZjc2OTAzMjFlZTY5Li41NjUwMzVjZTk4YTlkYTU5YzY5ODRmZmQ2Yjc3NDM1MjE4NTQ5NjA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU91
dHB1dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVP
dXRwdXQuY3BwCkBAIC02OCw2ICs2OCw5IEBAIHZvaWQgQXVkaW9Ob2RlT3V0cHV0Ojp1cGRhdGVJ
bnRlcm5hbEJ1cygpCiAgICAgaWYgKG51bWJlck9mQ2hhbm5lbHMoKSA9PSBtX2ludGVybmFsQnVz
LT5udW1iZXJPZkNoYW5uZWxzKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIEhlYXAgYWxs
b2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgYXVkaW8gdGhyZWFkIGZvciBwZXJmb3JtYW5j
ZSByZWFzb25zIHNvIHdlIG5lZWQgdG8KKyAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xs
b3dpbmcgYWxsb2NhdGlvbihzKS4KKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3Vy
cmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAgbV9pbnRlcm5h
bEJ1cyA9IEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVscygpLCBBdWRpb1V0aWxpdGll
czo6cmVuZGVyUXVhbnR1bVNpemUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAKaW5kZXgg
MWY4N2Q4ODhjM2JjNDc2YWVhYmNlYTgxZjU4ZjM4YTIxNzc2MTllYi4uYmEwNjY2ZjQ5OGE5MDU4
Nzc2NTRiYTU1ZGQ4OGU0MjUwMGVmMjU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcApAQCAt
MTk3LDcgKzE5Nyw4IEBAIHZvaWQgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpmaW5pc2goKQog
ICAgIG1fcGxheWJhY2tTdGF0ZSA9IEZJTklTSEVEX1NUQVRFOwogICAgIGNvbnRleHQoKS5kZWNy
ZW1lbnRBY3RpdmVTb3VyY2VDb3VudCgpOwogCi0gICAgLy8gRGlzcGF0Y2hpbmcgYSBGdW5jdGlv
biB0byB0aGUgbWFpbiB0aHJlYWQgcmVxdWlyZXMgaGVhcCBhbGxvY2F0aW9ucy4KKyAgICAvLyBI
ZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGF1ZGlvIHRocmVhZCBmb3IgcGVy
Zm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCisgICAgLy8gZXhwbGljaXRseSBhbGxvdyB0
aGUgZm9sbG93aW5nIGFsbG9jYXRpb24ocykuCiAgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9u
c0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOwogICAgIGNh
bGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewog
ICAgICAgICBhdXRvIHJlbGVhc2UgPSBtYWtlU2NvcGVFeGl0KFsmXSAoKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3Bl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGUuY3BwCmluZGV4IGQyZWVjZTZkNTcwYzUwMTYwMDc4NDhmNzcwN2Y0YTVkN2Q0NjI2NjUu
LmFkNTYzZGE1M2MwNGNhMGQ2YmNiMDkyMjQ5N2VjZDQwOWI3MzExOTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFs
U2NvcGUuY3BwCkBAIC0xODcsOCArMTg3LDEzIEBAIHZvaWQgQXVkaW9Xb3JrbGV0R2xvYmFsU2Nv
cGU6OmhhbmRsZVBvc3RSZW5kZXJUYXNrcyhzaXplX3QgY3VycmVudEZyYW1lKQogewogICAgIG1f
Y3VycmVudEZyYW1lID0gY3VycmVudEZyYW1lOwogCi0gICAgLy8gVGhpcyB0YWtlcyBjYXJlIG9m
IHByb2Nlc3NpbmcgdGhlIE1pY3JvVGFzayBxdWV1ZSBhZnRlciByZW5kZXJpbmcuCi0gICAgbV9s
b2NrRHVyaW5nUmVuZGVyaW5nID0gV1RGOjpudWxsb3B0OworICAgIHsKKyAgICAgICAgLy8gSGVh
cCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBlcmZv
cm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0bworICAgICAgICAvLyBleHBsaWNpdGx5IGFsbG93
IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4KKyAgICAgICAgRGlzYWJsZU1hbGxvY1Jlc3Ry
aWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOwor
ICAgICAgICAvLyBUaGlzIHRha2VzIGNhcmUgb2YgcHJvY2Vzc2luZyB0aGUgTWljcm9UYXNrIHF1
ZXVlIGFmdGVyIHJlbmRlcmluZy4KKyAgICAgICAgbV9sb2NrRHVyaW5nUmVuZGVyaW5nID0gV1RG
OjpudWxsb3B0OworICAgIH0KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKaW5k
ZXggYzUzOWQ0OTZkNzM2NGMyM2NiYmM1NWUzMTdlYjg3NzFjNzFhNmQzNS4uNTkyMjY4MjcwYzMx
NmM4Njg5ZDYxOGU2Zjk0YjQ1MDdiN2NmMmY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCkBAIC0yNzYsNyArMjc2LDgg
QEAgdm9pZCBBdWRpb1dvcmtsZXROb2RlOjpmaXJlUHJvY2Vzc29yRXJyb3JPbk1haW5UaHJlYWQo
UHJvY2Vzc29yRXJyb3IgZXJyb3IpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAK
LSAgICAvLyBEaXNwYXRjaGluZyBhIEZ1bmN0aW9uIHRvIHRoZSBtYWluIHRocmVhZCByZXF1aXJl
cyBoZWFwIGFsbG9jYXRpb25zLgorICAgIC8vIEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZvcmJpZGRl
biBvbiB0aGUgYXVkaW8gdGhyZWFkIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQg
dG8KKyAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4K
ICAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2Fi
bGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBlcnJvcl0oKSBtdXRhYmxlIHsKICAgICAgICAgU3Ry
aW5nIGVycm9yTWVzc2FnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcAppbmRleCAwMmU0Y2M5MjA3ZTgwMDM1
MjVjN2VjYjI3MjY4MDY2ZjExYjFhYTM1Li4xNTMyMTljYTM1NjA3YTU4NTUxMTRjYTJkMDRiNDE4
MzgwZjc1MWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCkBAIC0yMzEsNyArMjMxLDEwIEBAIHZvaWQg
QXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpidWlsZEpTQXJndW1lbnRzKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QmIGdsb2JhbE9iamVjCiAKIGJvb2wgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpwcm9jZXNz
KGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlv
QnVzPj4mIG91dHB1dHMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVk
aW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwLCBib29sJiB0aHJld0V4Y2VwdGlvbikKIHsK
KyAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGF1ZGlvIHRocmVh
ZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCisgICAgLy8gZXhwbGljaXRs
eSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9jYXRpb24ocykuCiAgICAgRGlzYWJsZU1hbGxvY1Jl
c3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25z
OworCiAgICAgQVNTRVJUKG1fcHJvY2Vzc0NhbGxiYWNrKTsKICAgICBhdXRvJiBnbG9iYWxPYmpl
Y3QgPSAqbV9wcm9jZXNzQ2FsbGJhY2stPmdsb2JhbE9iamVjdCgpOwogICAgIEFTU0VSVChnbG9i
YWxPYmplY3Quc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCmluZGV4IDA1NjNmMjc4
MzBiYWU4NGUwY2VhOWRiNmM3YWIwNDY4OTU3YjYxNzMuLjBlZTgzN2RkMzk1MmViZTU0YjEyNjJj
YjZjODFhODdhMDk2MWU5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcApAQCAtODcwLDYgKzg3MCw5IEBAIHZvaWQgQmFz
ZUF1ZGlvQ29udGV4dDo6YWRkQXV0b21hdGljUHVsbE5vZGUoQXVkaW9Ob2RlJiBub2RlKQogewog
ICAgIEFTU0VSVChpc0dyYXBoT3duZXIoKSk7CiAKKyAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFy
ZSBmb3JiaWRkZW4gb24gdGhlIGF1ZGlvIHRocmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBz
byB3ZSBuZWVkIHRvCisgICAgLy8gZXhwbGljaXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9j
YXRpb24ocykuCisgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRT
Y29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOwogICAgIGlmIChtX2F1dG9tYXRpY1B1bGxO
b2Rlcy5hZGQoJm5vZGUpLmlzTmV3RW50cnkpCiAgICAgICAgIG1fYXV0b21hdGljUHVsbE5vZGVz
TmVlZFVwZGF0aW5nID0gdHJ1ZTsKIH0KQEAgLTg4Nyw2ICs4OTAsMTAgQEAgdm9pZCBCYXNlQXVk
aW9Db250ZXh0Ojp1cGRhdGVBdXRvbWF0aWNQdWxsTm9kZXMoKQogICAgIEFTU0VSVChpc0dyYXBo
T3duZXIoKSk7CiAKICAgICBpZiAobV9hdXRvbWF0aWNQdWxsTm9kZXNOZWVkVXBkYXRpbmcpIHsK
KyAgICAgICAgLy8gSGVhcCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0
aHJlYWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0bworICAgICAgICAvLyBl
eHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4KKyAgICAgICAgRGlz
YWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9j
UmVzdHJpY3Rpb25zOworCiAgICAgICAgIC8vIENvcHkgZnJvbSBtX2F1dG9tYXRpY1B1bGxOb2Rl
cyB0byBtX3JlbmRlcmluZ0F1dG9tYXRpY1B1bGxOb2Rlcy4KICAgICAgICAgbV9yZW5kZXJpbmdB
dXRvbWF0aWNQdWxsTm9kZXMucmVzaXplKG1fYXV0b21hdGljUHVsbE5vZGVzLnNpemUoKSk7CiAK
QEAgLTkxMyw2ICs5MjAsMTAgQEAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogQmFzZUF1ZGlvQ29u
dGV4dDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0CiAKIHZvaWQgQmFzZUF1ZGlvQ29u
dGV4dDo6aXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UoKQogeworICAgIC8vIEhlYXAgYWxsb2NhdGlv
bnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgYXVkaW8gdGhyZWFkIGZvciBwZXJmb3JtYW5jZSByZWFz
b25zIHNvIHdlIG5lZWQgdG8KKyAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcg
YWxsb2NhdGlvbihzKS4KKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRo
cmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CisKICAgICAvLyBNYWtlIHN1cmUg
dG8gY2FsbCBEb2N1bWVudDo6dXBkYXRlSXNQbGF5aW5nTWVkaWEoKSBvbiB0aGUgbWFpbiB0aHJl
YWQsIHNpbmNlCiAgICAgLy8gd2UgY291bGQgYmUgb24gdGhlIGF1ZGlvIEkvTyB0aHJlYWQgaGVy
ZSBhbmQgdGhlIGNhbGwgaW50byBXZWJDb3JlIGNvdWxkIGJsb2NrLgogICAgIGNhbGxPbk1haW5U
aHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2Eu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlQ29jb2EuY3BwCmluZGV4IDg3NWI5MjRjOGVjMTFiMzcyYTZmODhlMTRiZTczNDY1MTgwMmMy
ZGMuLjViMTM1YjM5YTVhMGExZDgwMWJlNjg3OGZiZGZmNjc2NmMyZThhY2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNv
Y29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VDb2NvYS5jcHAKQEAgLTc5LDcgKzc5LDggQEAgdm9pZCBNZWRpYVN0cmVhbUF1
ZGlvU291cmNlOjpjb25zdW1lQXVkaW8oQXVkaW9CdXMmIGJ1cywgc2l6ZV90IG51bWJlck9mRnJh
bWVzKQogCiAgICAgYXV0byBkZXNjcmlwdGlvbiA9IHN0cmVhbURlc2NyaXB0aW9uKG1fY3VycmVu
dFNldHRpbmdzLnNhbXBsZVJhdGUoKSwgYnVzLm51bWJlck9mQ2hhbm5lbHMoKSk7CiAgICAgaWYg
KCFhdWRpb0J1ZmZlciB8fCBhdWRpb0J1ZmZlci0+Y2hhbm5lbENvdW50KCkgIT0gYnVzLm51bWJl
ck9mQ2hhbm5lbHMoKSkgewotICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGF2b2lkIHRoaXMg
V2ViQXVkaW9CdWZmZXJMaXN0IGFsbG9jYXRpb24gb24gdGhlIGF1ZGlvIHRocmVhZC4KKyAgICAg
ICAgLy8gSGVhcCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0aHJlYWQg
Zm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0bworICAgICAgICAvLyBleHBsaWNp
dGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4KICAgICAgICAgRGlzYWJsZU1h
bGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJp
Y3Rpb25zOwogICAgICAgICBtX2F1ZGlvQnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZl
ckxpc3Q+KGRlc2NyaXB0aW9uLCBXVEY6OnNhZmVDYXN0PHVpbnQzMl90PihudW1iZXJPZkZyYW1l
cykpOwogICAgICAgICBhdWRpb0J1ZmZlciA9ICZkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+
KCptX2F1ZGlvQnVmZmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCmluZGV4IGZiZmQxY2E5ZTllNGIxYmVjYmQ1
NjVkMDUzOWJjZjcxN2YwYzg4ZTguLmYzZTQ1ZTc3ODA3ZTBkOGFkM2NmZWNiMWNhZjRlOGNiNzhl
NGZkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0
UHJvY2Vzc29yTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9T
Y3JpcHRQcm9jZXNzb3JOb2RlLmNwcApAQCAtMjEwLDcgKzIxMCw4IEBAIHZvaWQgU2NyaXB0UHJv
Y2Vzc29yTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgIC8vIG1fYnVm
ZmVyUmVhZFdyaXRlSW5kZXggd2lsbCB3cmFwIGJhY2sgYXJvdW5kIHRvIDAgd2hlbiB0aGUgY3Vy
cmVudCBpbnB1dCBhbmQgb3V0cHV0IGJ1ZmZlcnMgYXJlIGZ1bGwuCiAgICAgLy8gV2hlbiB0aGlz
IGhhcHBlbnMsIGZpcmUgYW4gZXZlbnQgYW5kIHN3YXAgYnVmZmVycy4KICAgICBpZiAoIW1fYnVm
ZmVyUmVhZFdyaXRlSW5kZXgpIHsKLSAgICAgICAgLy8gRGlzcGF0Y2hpbmcgYSBGdW5jdGlvbiB0
byB0aGUgbWFpbiB0aHJlYWQgcmVxdWlyZXMgaGVhcCBhbGxvY2F0aW9ucy4KKyAgICAgICAgLy8g
SGVhcCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBl
cmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0bworICAgICAgICAvLyBleHBsaWNpdGx5IGFs
bG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4KICAgICAgICAgRGlzYWJsZU1hbGxvY1Jl
c3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25z
OwogCiAgICAgICAgIC8vIFJlZmVyZW5jZSBvdXJzZWxmIHNvIHdlIGRvbid0IGFjY2lkZW50YWxs
eSBnZXQgZGVsZXRlZCBiZWZvcmUgZmlyZVByb2Nlc3NFdmVudCgpIGdldHMgY2FsbGVkLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EU1BLZXJuZWxQcm9j
ZXNzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EU1BLZXJuZWxQ
cm9jZXNzb3IuY3BwCmluZGV4IDk2ZmMyNTU2OTU5ZWU3MDg3ZmM5YTUzODg4NjM1OGM1MzMyMTJj
ODkuLjFjZjM5Y2FjZjMwMjQ1MDhlOGQxMmU4NjQ1YzUwODY3NzIxOTQzNWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0RTUEtlcm5lbFByb2Nl
c3Nvci5jcHAKQEAgLTUwLDExICs1MCwxNSBAQCB2b2lkIEF1ZGlvRFNQS2VybmVsUHJvY2Vzc29y
Ojppbml0aWFsaXplKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKCFtX2tlcm5lbHMu
c2l6ZSgpKTsKLQotICAgIC8vIENyZWF0ZSBwcm9jZXNzaW5nIGtlcm5lbHMsIG9uZSBwZXIgY2hh
bm5lbC4KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZDaGFubmVscygpOyAr
K2kpCi0gICAgICAgIG1fa2VybmVscy5hcHBlbmQoY3JlYXRlS2VybmVsKCkpOwotICAgICAgICAK
KyAgICB7CisgICAgICAgIC8vIEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUg
YXVkaW8gdGhyZWFkIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8KKyAgICAg
ICAgLy8gZXhwbGljaXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9jYXRpb24ocykuCisgICAg
ICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJs
ZU1hbGxvY1Jlc3RyaWN0aW9uczsKKworICAgICAgICAvLyBDcmVhdGUgcHJvY2Vzc2luZyBrZXJu
ZWxzLCBvbmUgcGVyIGNoYW5uZWwuCisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBu
dW1iZXJPZkNoYW5uZWxzKCk7ICsraSkKKyAgICAgICAgICAgIG1fa2VybmVscy5hcHBlbmQoY3Jl
YXRlS2VybmVsKCkpOworICAgIH0KICAgICBtX2luaXRpYWxpemVkID0gdHJ1ZTsKICAgICBtX2hh
c0p1c3RSZXNldCA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0KaW5kZXggYWQ5YWE5
NmU3MWYzZWQ3NjRlNDUwM2YzMjAwMmE4ZWFlYTZhYTQ0OC4uYTRhMTUzNjQ4ZWQ2YjBmZDZiNDEx
NzM1N2M3YTA3YWI2MzE0YzJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbQpAQCAtMTEyLDcg
KzExMiw4IEBAIE9TU3RhdHVzIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6c2V0T3V0cHV0Rm9ybWF0
KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYKICAgICBtX291dHB1dERlc2NyaXB0aW9u
ID0gQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIHsgZm9ybWF0IH07CiAKICAgICB7Ci0gICAgICAg
IC8vIEZJWE1FOiBUaGlzIGRvZXMgaGVhcCBhbGxvY2F0aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFk
LgorICAgICAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGF1ZGlv
IHRocmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCisgICAgICAgIC8v
IGV4cGxpY2l0bHkgYWxsb3cgdGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMpLgogICAgICAgICBE
aXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxs
b2NSZXN0cmljdGlvbnM7CiAgICAgICAgIG1fcmluZ0J1ZmZlci0+YWxsb2NhdGUoZm9ybWF0LCBz
dGF0aWNfY2FzdDxzaXplX3Q+KG1fbWF4aW11bVNhbXBsZUNvdW50KSk7CiAgICAgICAgIG1fc2Ny
YXRjaEJ1ZmZlciA9IEF1ZGlvU2FtcGxlQnVmZmVyTGlzdDo6Y3JlYXRlKG1fb3V0cHV0RGVzY3Jp
cHRpb24tPnN0cmVhbURlc2NyaXB0aW9uKCksIG1fbWF4aW11bVNhbXBsZUNvdW50KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
clByaXZhdGVNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcAppbmRleCA0YWVkNGY2MzI2ZmFkN2VmNzBkOGY5
MTBmOTc0YzMxZDFlY2FkZTA0Li4wMDBmNGE4ZjY0OTU0NzNjOTAxOWIyNDIxY2MyMTA1ZjFiNjcw
YTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwCkBAIC03Nyw2ICs3Nyw4
IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShN
ZWRpYVNhbXBsZSYpCiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrOjphdWRpb1NhbXBs
ZXNBdmFpbGFibGUoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpCiB7CisgICAgLy8gSGVh
cCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBlcmZv
cm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0bworICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhl
IGZvbGxvd2luZyBhbGxvY2F0aW9uKHMpLgogICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNG
b3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1fYnVmZmVyTG9jayk7CiAgICAgbV9idWZmZXIuYXBwZW5kKCJB
dWRpbyBUcmFjayBJRDogIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yLm1tCmluZGV4IDIwZTAxNzM0NjNmZmFmYWZlN2NiZjQ2M2ViZjkyNjljNzlhNDU1
NjcuLmQ4YjQwYjYxMTkxM2FlNWIyOTUyOTFlNTViZDVhNGJhOWFkNWNhNDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCkBAIC01MDksNiArNTA5
LDggQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZm
ZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyKQogCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3Nvcjo6YWRkU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsKKyAg
ICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGF1ZGlvIHRocmVhZCBm
b3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCisgICAgLy8gZXhwbGljaXRseSBh
bGxvdyB0aGUgZm9sbG93aW5nIGFsbG9jYXRpb24ocykuCiAgICAgRGlzYWJsZU1hbGxvY1Jlc3Ry
aWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOwog
ICAgIG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZS0+ZGlzcGF0Y2hTeW5jKFt0aGlzLCBidWZmZXJdIHsK
ICAgICAgICAgaWYgKG1faXNFbmNvZGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggN2Ix
ZDhlNWJhYjY4MDMxOGYwYjQxNDZkYTA0ZDZjODRiNWY1MjE5YS4uMjc4ZDE5Njc4ZGIzZWEzNDRk
NTc3MzE1ZmRmMDAzMGMxMGU5MGNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTE3NSw3
ICsxNzUsOCBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnVwZGF0ZUhhc1N0YXJ0ZWRQcm9k
dWNpbmdEYXRhKCkKICAgICBpZiAobV9oYXNTdGFydGVkUHJvZHVjaW5nRGF0YSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgLy8gRGlzcGF0Y2hpbmcgYSBGdW5jdGlvbiB0byB0aGUgbWFpbiB0aHJl
YWQgcmVxdWlyZXMgaGVhcCBhbGxvY2F0aW9ucy4KKyAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFy
ZSBmb3JiaWRkZW4gb24gdGhlIGF1ZGlvIHRocmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBz
byB3ZSBuZWVkIHRvCisgICAgLy8gZXhwbGljaXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9j
YXRpb24ocykuCiAgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRT
Y29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewogICAgICAgICBpZiAocHJvdGVjdGVkVGhp
cy0+bV9oYXNTdGFydGVkUHJvZHVjaW5nRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2Nv
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwCmluZGV4IGZjODNkZDJkZjE2ZmVkZjYyNDlmNjVk
MTgwYTJhMTE1YzIyMmQyNzUuLmZjZjVjOWZiYTQ4NTZiNjEyODFjMzMwNDY4MzI5NTg2MGM1YmEw
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29h
LmNwcApAQCAtMTE4LDYgKzExOCw4IEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
Q29jb2E6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjCiAgICAgaWYg
KCFoYXNCdWZmZXJlZEVub3VnaERhdGEoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gSGVh
cCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBlcmZv
cm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0bworICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhl
IGZvbGxvd2luZyBhbGxvY2F0aW9uKHMpLgogICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNG
b3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAgICBMaWJX
ZWJSVENQcm92aWRlcjo6Y2FsbE9uV2ViUlRDU2lnbmFsaW5nVGhyZWFkKFtwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgcHJvdGVjdGVkVGhpcy0+cHVsbEF1ZGlvRGF0
YSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVk
aWFSZWNvcmRlclByaXZhdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCmluZGV4IDYxY2NjZmQxYmMyZjMxNjc5OGM3MDY4
ZWM5NDNhODlkNGJlZmVhNTkuLmE3ZGFhZTFkNzhmYTIwZTUyZWIwNDFlZTEyMmZjMDhmMGQ2ZTYy
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlh
UmVjb3JkZXJQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKQEAgLTExOCw3ICsxMTgsOCBAQCB2b2lkIE1l
ZGlhUmVjb3JkZXJQcml2YXRlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2Ft
cGxlKQogCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUo
Y29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRh
LCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJl
ck9mRnJhbWVzKQogewotICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgaGVhcCBhbGxvY2F0aW9ucyBv
biB0aGUgYXVkaW8gdGhyZWFkLgorICAgIC8vIEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZvcmJpZGRl
biBvbiB0aGUgYXVkaW8gdGhyZWFkIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQg
dG8KKyAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4K
ICAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2Fi
bGVNYWxsb2NSZXN0cmljdGlvbnM7CiAKICAgICBpZiAobV9kZXNjcmlwdGlvbiAhPSBkZXNjcmlw
dGlvbikgewpAQCAtMTQ3LDcgKzE0OCw4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OmF1
ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsCiAKIHZv
aWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3Rv
cmFnZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNp
emVfdCBmcmFtZUNvdW50KQogewotICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgaGVhcCBhbGxvY2F0
aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFkLgorICAgIC8vIEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZv
cmJpZGRlbiBvbiB0aGUgYXVkaW8gdGhyZWFkIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdl
IG5lZWQgdG8KKyAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlv
bihzKS4KICAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3Bl
IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAKICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBo
YW5kbGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424135</attachid>
            <date>2021-03-24 08:09:01 -0700</date>
            <delta_ts>2021-03-24 12:28:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223640-20210324080900.patch</filename>
            <type>text/plain</type>
            <size>23407</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA4NjM0Nzg5NzBlYmEx
OGI4NWMyNTg0MWNhYmIxM2Q3YWQ1ZDU1ZC4uN2Y0YmNlYmM3MmRmZjg1MGY0MmM4NmQyNzE5OTAy
MzcyYTQyY2FjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTAzLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRXh0ZW5kIFdlYkF1ZGlvIGhl
YXAgYWxsb2NhdGlvbiBhc3NlcnRpb25zIHRvIGNvdmVyIHRoZSBwcmUgJiBwb3N0LXJlbmRlcmlu
ZyBwaGFzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMzY0MAorCisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgRXh0
ZW5kIFdlYkF1ZGlvIGhlYXAgYWxsb2NhdGlvbiBhc3NlcnRpb25zIHRvIGNvdmVyIHRoZSBwcmUg
JiBwb3N0LXJlbmRlcmluZyBwaGFzZXMuIEkgaGFkIHRvIGFkZAorICAgICAgICBleGNlcHRpb25z
IGZvciBzb21lIGhlYXAgYWxsb2NhdGlvbnMgdGhhdCBhcmUgY3VycmVudGx5IGhhcHBlbmluZyBk
dXJpbmcgdGhpcyBwaGFzZSBidXQgSQorICAgICAgICB3aWxsIHdvcmsgdG8gcmVkdWNlIHRoZSBu
dW1iZXIgb2YgZXhjZXB0aW9ucyBpbiBmb2xsb3ctdXBzLgorCisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b0Rlc3RpbmF0aW9uTm9kZTo6cmVuZGVyKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvTm9kZUlucHV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZUlucHV0Ojp1cGRh
dGVJbnRlcm5hbEJ1cyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPdXRw
dXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlT3V0cHV0Ojp1cGRhdGVJbnRlcm5h
bEJ1cyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OmFkZEF1dG9tYXRpY1B1bGxOb2Rl
KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OnVwZGF0ZUF1dG9tYXRpY1B1
bGxOb2Rlcyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EU1BLZXJuZWxQcm9jZXNz
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EU1BLZXJuZWxQcm9jZXNzb3I6OmluaXRp
YWxpemUpOgorCiAyMDIxLTAzLTIzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+
CiAKICAgICAgICAgW0pTQ10gRnVuY3RvciBmb3IgV2Vha0dDTWFwOjplbnN1cmVWYWx1ZSBtdXN0
IG5vdCBpbnZva2UgR0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggODdlOGUzMWE4MGQ1OTI5MTM0MTEx
YjU1MjU0MDY1YmM2M2YwNzFlZi4uMmQxMDA2MjllMGZhYzJjZjQyN2QwODQxM2MzM2IzYTM4NTM1
ZDgzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTYzLDYgKzYzLDExIEBAIHZvaWQgQXVkaW9EZXN0
aW5hdGlvbk5vZGU6OnJlbmRlcihBdWRpb0J1cyosIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywg
c2l6ZV90IG51CiAgICAgRGVub3JtYWxEaXNhYmxlciBkZW5vcm1hbERpc2FibGVyOwogICAgIAog
ICAgIGNvbnRleHQoKS5zZXRBdWRpb1RocmVhZChUaHJlYWQ6OmN1cnJlbnQoKSk7CisKKyAgICAv
LyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgd2UgZm9yYmlkIGhlYXAgYWxsb2NhdGlvbnMgd2hp
bGUgZG9pbmcgcmVuZGVyaW5nIG9uIHRoZSBhdWRpbyB0aHJlYWQuCisgICAgLy8gSGVhcCBhbGxv
Y2F0aW9ucyB0aGF0IGNhbm5vdCBiZSBhdm9pZGVkIG9yIGhhdmUgbm90IGJlZW4gZml4ZWQgeWV0
IGNhbiBiZSBhbGxvd2VkIHVzaW5nCisgICAgLy8gRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0Zv
ckN1cnJlbnRUaHJlYWRTY29wZSBzY29wZSB2YXJpYWJsZXMuCisgICAgRm9yYmlkTWFsbG9jVXNl
Rm9yQ3VycmVudFRocmVhZFNjb3BlIGZvcmJpZE1hbGxvY1VzZTsKICAgICAKICAgICBpZiAoIWNv
bnRleHQoKS5pc0luaXRpYWxpemVkKCkpIHsKICAgICAgICAgZGVzdGluYXRpb25CdXMtPnplcm8o
KTsKQEAgLTg2LDI0ICs5MSwyMCBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpyZW5kZXIo
QXVkaW9CdXMqLCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBudQogICAgIGlmICh3
b3JrbGV0R2xvYmFsU2NvcGUpCiAgICAgICAgIHdvcmtsZXRHbG9iYWxTY29wZS0+aGFuZGxlUHJl
UmVuZGVyVGFza3MoKTsKIAotICAgIHsKLSAgICAgICAgRm9yYmlkTWFsbG9jVXNlRm9yQ3VycmVu
dFRocmVhZFNjb3BlIGZvcmJpZE1hbGxvY1VzZTsKLQotICAgICAgICAvLyBUaGlzIHdpbGwgY2F1
c2UgdGhlIG5vZGUocykgY29ubmVjdGVkIHRvIHVzIHRvIHByb2Nlc3MsIHdoaWNoIGluIHR1cm4g
d2lsbCBwdWxsIG9uIHRoZWlyIGlucHV0KHMpLAotICAgICAgICAvLyBhbGwgdGhlIHdheSBiYWNr
d2FyZHMgdGhyb3VnaCB0aGUgcmVuZGVyaW5nIGdyYXBoLgotICAgICAgICBBdWRpb0J1cyogcmVu
ZGVyZWRCdXMgPSBpbnB1dCgwKS0+cHVsbChkZXN0aW5hdGlvbkJ1cywgbnVtYmVyT2ZGcmFtZXMp
OwotCi0gICAgICAgIGlmICghcmVuZGVyZWRCdXMpCi0gICAgICAgICAgICBkZXN0aW5hdGlvbkJ1
cy0+emVybygpOwotICAgICAgICBlbHNlIGlmIChyZW5kZXJlZEJ1cyAhPSBkZXN0aW5hdGlvbkJ1
cykgewotICAgICAgICAgICAgLy8gaW4tcGxhY2UgcHJvY2Vzc2luZyB3YXMgbm90IHBvc3NpYmxl
IC0gc28gY29weQotICAgICAgICAgICAgZGVzdGluYXRpb25CdXMtPmNvcHlGcm9tKCpyZW5kZXJl
ZEJ1cyk7Ci0gICAgICAgIH0KKyAgICAvLyBUaGlzIHdpbGwgY2F1c2UgdGhlIG5vZGUocykgY29u
bmVjdGVkIHRvIHVzIHRvIHByb2Nlc3MsIHdoaWNoIGluIHR1cm4gd2lsbCBwdWxsIG9uIHRoZWly
IGlucHV0KHMpLAorICAgIC8vIGFsbCB0aGUgd2F5IGJhY2t3YXJkcyB0aHJvdWdoIHRoZSByZW5k
ZXJpbmcgZ3JhcGguCisgICAgQXVkaW9CdXMqIHJlbmRlcmVkQnVzID0gaW5wdXQoMCktPnB1bGwo
ZGVzdGluYXRpb25CdXMsIG51bWJlck9mRnJhbWVzKTsKIAotICAgICAgICAvLyBQcm9jZXNzIG5v
ZGVzIHdoaWNoIG5lZWQgYSBsaXR0bGUgZXh0cmEgaGVscCBiZWNhdXNlIHRoZXkgYXJlIG5vdCBj
b25uZWN0ZWQgdG8gYW55dGhpbmcsIGJ1dCBzdGlsbCBuZWVkIHRvIHByb2Nlc3MuCi0gICAgICAg
IGNvbnRleHQoKS5wcm9jZXNzQXV0b21hdGljUHVsbE5vZGVzKG51bWJlck9mRnJhbWVzKTsKKyAg
ICBpZiAoIXJlbmRlcmVkQnVzKQorICAgICAgICBkZXN0aW5hdGlvbkJ1cy0+emVybygpOworICAg
IGVsc2UgaWYgKHJlbmRlcmVkQnVzICE9IGRlc3RpbmF0aW9uQnVzKSB7CisgICAgICAgIC8vIGlu
LXBsYWNlIHByb2Nlc3Npbmcgd2FzIG5vdCBwb3NzaWJsZSAtIHNvIGNvcHkKKyAgICAgICAgZGVz
dGluYXRpb25CdXMtPmNvcHlGcm9tKCpyZW5kZXJlZEJ1cyk7CiAgICAgfQogCisgICAgLy8gUHJv
Y2VzcyBub2RlcyB3aGljaCBuZWVkIGEgbGl0dGxlIGV4dHJhIGhlbHAgYmVjYXVzZSB0aGV5IGFy
ZSBub3QgY29ubmVjdGVkIHRvIGFueXRoaW5nLCBidXQgc3RpbGwgbmVlZCB0byBwcm9jZXNzLgor
ICAgIGNvbnRleHQoKS5wcm9jZXNzQXV0b21hdGljUHVsbE5vZGVzKG51bWJlck9mRnJhbWVzKTsK
KwogICAgIC8vIExldCB0aGUgY29udGV4dCB0YWtlIGNhcmUgb2YgYW55IGJ1c2luZXNzIGF0IHRo
ZSBlbmQgb2YgZWFjaCByZW5kZXIgcXVhbnR1bS4KICAgICBjb250ZXh0KCkuaGFuZGxlUG9zdFJl
bmRlclRhc2tzKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Ob2RlSW5wdXQuY3BwCmluZGV4IDAyMWI2YmVlYTRkMTE3Y2YyMzc2MGUwNWNjYmVj
NGMzNWRiMzRmOGIuLjIxYmE1YTdiYjFhOTRmNDI0Y2IyYzZhZGQ2N2E2MzZiMTRmMzNiZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5wdXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5wdXQu
Y3BwCkBAIC0xMDMsNiArMTAzLDkgQEAgdm9pZCBBdWRpb05vZGVJbnB1dDo6dXBkYXRlSW50ZXJu
YWxCdXMoKQogICAgIGlmIChudW1iZXJPZklucHV0Q2hhbm5lbHMgPT0gbV9pbnRlcm5hbFN1bW1p
bmdCdXMtPm51bWJlck9mQ2hhbm5lbHMoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gSGVh
cCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBlcmZv
cm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0bworICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhl
IGZvbGxvd2luZyBhbGxvY2F0aW9uKHMpLgorICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNG
b3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAgICBtX2lu
dGVybmFsU3VtbWluZ0J1cyA9IEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZJbnB1dENoYW5uZWxz
LCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU91dHB1dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZU91dHB1dC5jcHAKaW5kZXggYTQw
ZWNlMzRkNGVmZTlmNDg5MjkwNDhjOTJiM2Y3NjkwMzIxZWU2OS4uNTY1MDM1Y2U5OGE5ZGE1OWM2
OTg0ZmZkNmI3NzQzNTIxODU0OTYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb05vZGVPdXRwdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcApAQCAtNjgsNiArNjgsOSBAQCB2b2lkIEF1
ZGlvTm9kZU91dHB1dDo6dXBkYXRlSW50ZXJuYWxCdXMoKQogICAgIGlmIChudW1iZXJPZkNoYW5u
ZWxzKCkgPT0gbV9pbnRlcm5hbEJ1cy0+bnVtYmVyT2ZDaGFubmVscygpKQogICAgICAgICByZXR1
cm47CiAKKyAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGF1ZGlv
IHRocmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCisgICAgLy8gZXhw
bGljaXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9jYXRpb24ocykuCisgICAgRGlzYWJsZU1h
bGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJp
Y3Rpb25zOwogICAgIG1faW50ZXJuYWxCdXMgPSBBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9mQ2hh
bm5lbHMoKSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJj
ZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxl
ZFNvdXJjZU5vZGUuY3BwCmluZGV4IDFmODdkODg4YzNiYzQ3NmFlYWJjZWE4MWY1OGYzOGEyMTc3
NjE5ZWIuLmJhMDY2NmY0OThhOTA1ODc3NjU0YmE1NWRkODhlNDI1MDBlZjI1OTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VO
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1
bGVkU291cmNlTm9kZS5jcHAKQEAgLTE5Nyw3ICsxOTcsOCBAQCB2b2lkIEF1ZGlvU2NoZWR1bGVk
U291cmNlTm9kZTo6ZmluaXNoKCkKICAgICBtX3BsYXliYWNrU3RhdGUgPSBGSU5JU0hFRF9TVEFU
RTsKICAgICBjb250ZXh0KCkuZGVjcmVtZW50QWN0aXZlU291cmNlQ291bnQoKTsKIAotICAgIC8v
IERpc3BhdGNoaW5nIGEgRnVuY3Rpb24gdG8gdGhlIG1haW4gdGhyZWFkIHJlcXVpcmVzIGhlYXAg
YWxsb2NhdGlvbnMuCisgICAgLy8gSGVhcCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRo
ZSBhdWRpbyB0aHJlYWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0bworICAg
IC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMpLgogICAgIERp
c2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxv
Y1Jlc3RyaWN0aW9uczsKICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgYXV0byByZWxlYXNlID0gbWFrZVNjb3BlRXhp
dChbJl0gKCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1N1bW1pbmdKdW5jdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmNwcAppbmRleCAxMmNkYWJhNDUwN2RjMjE0NzIwZjgyNzQw
MTE2ZTU5MGIzMDFlODIzLi41NzQ1NDNmZTlhODNkN2U3ODMxYjJjOTQ1NGMzMDIxNzE2YTFiYjll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWlu
Z0p1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
U3VtbWluZ0p1bmN0aW9uLmNwcApAQCAtMTI5LDkgKzEyOSwxMiBAQCB1bnNpZ25lZCBBdWRpb1N1
bW1pbmdKdW5jdGlvbjo6bWF4aW11bU51bWJlck9mQ2hhbm5lbHMoKSBjb25zdAogdm9pZCBBdWRp
b1N1bW1pbmdKdW5jdGlvbjo6b3V0cHV0RW5hYmxlZFN0YXRlQ2hhbmdlZChBdWRpb05vZGVPdXRw
dXQmIG91dHB1dCkKIHsKICAgICBBU1NFUlQoY29udGV4dCgpLmlzR3JhcGhPd25lcigpKTsKLSAg
ICBpZiAoIW1fcGVuZGluZ1JlbmRlcmluZ091dHB1dHMpCisgICAgaWYgKCFtX3BlbmRpbmdSZW5k
ZXJpbmdPdXRwdXRzKSB7CisgICAgICAgIC8vIEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZvcmJpZGRl
biBvbiB0aGUgYXVkaW8gdGhyZWFkIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQg
dG8KKyAgICAgICAgLy8gZXhwbGljaXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9jYXRpb24o
cykuCisgICAgICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2Nv
cGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAgICAgICAgbV9wZW5kaW5nUmVuZGVyaW5n
T3V0cHV0cy5lbXBsYWNlKG1fb3V0cHV0cyk7Ci0gICAgZWxzZQorICAgIH0gZWxzZQogICAgICAg
ICBtX3BlbmRpbmdSZW5kZXJpbmdPdXRwdXRzLT51cGRhdGVkRW5hYmxlZFN0YXRlKG91dHB1dCk7
CiAgICAgbWFya1JlbmRlcmluZ1N0YXRlQXNEaXJ0eSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNw
cAppbmRleCBkMmVlY2U2ZDU3MGM1MDE2MDA3ODQ4Zjc3MDdmNGE1ZDdkNDYyNjY1Li5hZDU2M2Rh
NTNjMDRjYTBkNmJjYjA5MjI0OTdlY2Q0MDliNzMxMTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNw
cApAQCAtMTg3LDggKzE4NywxMyBAQCB2b2lkIEF1ZGlvV29ya2xldEdsb2JhbFNjb3BlOjpoYW5k
bGVQb3N0UmVuZGVyVGFza3Moc2l6ZV90IGN1cnJlbnRGcmFtZSkKIHsKICAgICBtX2N1cnJlbnRG
cmFtZSA9IGN1cnJlbnRGcmFtZTsKIAotICAgIC8vIFRoaXMgdGFrZXMgY2FyZSBvZiBwcm9jZXNz
aW5nIHRoZSBNaWNyb1Rhc2sgcXVldWUgYWZ0ZXIgcmVuZGVyaW5nLgotICAgIG1fbG9ja0R1cmlu
Z1JlbmRlcmluZyA9IFdURjo6bnVsbG9wdDsKKyAgICB7CisgICAgICAgIC8vIEhlYXAgYWxsb2Nh
dGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgYXVkaW8gdGhyZWFkIGZvciBwZXJmb3JtYW5jZSBy
ZWFzb25zIHNvIHdlIG5lZWQgdG8KKyAgICAgICAgLy8gZXhwbGljaXRseSBhbGxvdyB0aGUgZm9s
bG93aW5nIGFsbG9jYXRpb24ocykuCisgICAgICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNG
b3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKKyAgICAgICAg
Ly8gVGhpcyB0YWtlcyBjYXJlIG9mIHByb2Nlc3NpbmcgdGhlIE1pY3JvVGFzayBxdWV1ZSBhZnRl
ciByZW5kZXJpbmcuCisgICAgICAgIG1fbG9ja0R1cmluZ1JlbmRlcmluZyA9IFdURjo6bnVsbG9w
dDsKKyAgICB9CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCmluZGV4IGM1Mzlk
NDk2ZDczNjRjMjNjYmJjNTVlMzE3ZWI4NzcxYzcxYTZkMzUuLjU5MjI2ODI3MGMzMTZjODY4OWQ2
MThlNmY5NGI0NTA3YjdjZjJmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcApAQCAtMjc2LDcgKzI3Niw4IEBAIHZvaWQg
QXVkaW9Xb3JrbGV0Tm9kZTo6ZmlyZVByb2Nlc3NvckVycm9yT25NYWluVGhyZWFkKFByb2Nlc3Nv
ckVycm9yIGVycm9yKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogCi0gICAgLy8g
RGlzcGF0Y2hpbmcgYSBGdW5jdGlvbiB0byB0aGUgbWFpbiB0aHJlYWQgcmVxdWlyZXMgaGVhcCBh
bGxvY2F0aW9ucy4KKyAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhl
IGF1ZGlvIHRocmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCisgICAg
Ly8gZXhwbGljaXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9jYXRpb24ocykuCiAgICAgRGlz
YWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9j
UmVzdHJpY3Rpb25zOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgZXJyb3JdKCkgbXV0YWJsZSB7CiAgICAgICAgIFN0cmluZyBlcnJv
ck1lc3NhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKaW5kZXggMDJlNGNjOTIwN2U4MDAzNTI1YzdlY2Iy
NzI2ODA2NmYxMWIxYWEzNS4uMTUzMjE5Y2EzNTYwN2E1ODU1MTE0Y2EyZDA0YjQxODM4MGY3NTFl
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmts
ZXRQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Xb3JrbGV0UHJvY2Vzc29yLmNwcApAQCAtMjMxLDcgKzIzMSwxMCBAQCB2b2lkIEF1ZGlvV29y
a2xldFByb2Nlc3Nvcjo6YnVpbGRKU0FyZ3VtZW50cyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0JiBn
bG9iYWxPYmplYwogCiBib29sIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJvY2Vzcyhjb25zdCBW
ZWN0b3I8UmVmUHRyPEF1ZGlvQnVzPj4mIGlucHV0cywgVmVjdG9yPFJlZjxBdWRpb0J1cz4+JiBv
dXRwdXRzLCBjb25zdCBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRB
cnJheT4+JiBwYXJhbVZhbHVlc01hcCwgYm9vbCYgdGhyZXdFeGNlcHRpb24pCiB7CisgICAgLy8g
SGVhcCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBl
cmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0bworICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cg
dGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMpLgogICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlv
bnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKKwogICAg
IEFTU0VSVChtX3Byb2Nlc3NDYWxsYmFjayk7CiAgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKm1f
cHJvY2Vzc0NhbGxiYWNrLT5nbG9iYWxPYmplY3QoKTsKICAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0
LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAppbmRleCAwNTYzZjI3ODMwYmFlODRl
MGNlYTlkYjZjN2FiMDQ2ODk1N2I2MTczLi4yNDc2NzhmMjhkODIyOGQ0OTQ1MjBiNTg0ODE5ZTU1
MWE0MjI3MzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jh
c2VBdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QmFzZUF1ZGlvQ29udGV4dC5jcHAKQEAgLTc4Miw2ICs3ODIsMTAgQEAgdm9pZCBCYXNlQXVkaW9D
b250ZXh0OjpzY2hlZHVsZU5vZGVEZWxldGlvbigpCiAKICAgICAvLyBNYWtlIHN1cmUgdG8gY2Fs
bCBkZWxldGVNYXJrZWROb2RlcygpIG9uIG1haW4gdGhyZWFkLiAgICAKICAgICBpZiAobV9ub2Rl
c01hcmtlZEZvckRlbGV0aW9uLnNpemUoKSAmJiAhbV9pc0RlbGV0aW9uU2NoZWR1bGVkKSB7Cisg
ICAgICAgIC8vIEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgYXVkaW8gdGhy
ZWFkIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8KKyAgICAgICAgLy8gZXhw
bGljaXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9jYXRpb24ocykuCisgICAgICAgIERpc2Fi
bGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jl
c3RyaWN0aW9uczsKKwogICAgICAgICBtX25vZGVzVG9EZWxldGUuYXBwZW5kVmVjdG9yKG1fbm9k
ZXNNYXJrZWRGb3JEZWxldGlvbik7CiAgICAgICAgIG1fbm9kZXNNYXJrZWRGb3JEZWxldGlvbi5j
bGVhcigpOwogCkBAIC04MjQsNyArODI4LDEwIEBAIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6ZGVs
ZXRlTWFya2VkTm9kZXMoKQogCiB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6Om1hcmtTdW1taW5nSnVu
Y3Rpb25EaXJ0eShBdWRpb1N1bW1pbmdKdW5jdGlvbiogc3VtbWluZ0p1bmN0aW9uKQogewotICAg
IEFTU0VSVChpc0dyYXBoT3duZXIoKSk7ICAgIAorICAgIEFTU0VSVChpc0dyYXBoT3duZXIoKSk7
CisgICAgLy8gSGVhcCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0aHJl
YWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0bworICAgIC8vIGV4cGxpY2l0
bHkgYWxsb3cgdGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMpLgorICAgIERpc2FibGVNYWxsb2NS
ZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9u
czsKICAgICBtX2RpcnR5U3VtbWluZ0p1bmN0aW9ucy5hZGQoc3VtbWluZ0p1bmN0aW9uKTsKIH0K
IApAQCAtODcwLDYgKzg3Nyw5IEBAIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6YWRkQXV0b21hdGlj
UHVsbE5vZGUoQXVkaW9Ob2RlJiBub2RlKQogewogICAgIEFTU0VSVChpc0dyYXBoT3duZXIoKSk7
CiAKKyAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGF1ZGlvIHRo
cmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCisgICAgLy8gZXhwbGlj
aXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9jYXRpb24ocykuCisgICAgRGlzYWJsZU1hbGxv
Y1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rp
b25zOwogICAgIGlmIChtX2F1dG9tYXRpY1B1bGxOb2Rlcy5hZGQoJm5vZGUpLmlzTmV3RW50cnkp
CiAgICAgICAgIG1fYXV0b21hdGljUHVsbE5vZGVzTmVlZFVwZGF0aW5nID0gdHJ1ZTsKIH0KQEAg
LTg4Nyw2ICs4OTcsMTAgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0Ojp1cGRhdGVBdXRvbWF0aWNQ
dWxsTm9kZXMoKQogICAgIEFTU0VSVChpc0dyYXBoT3duZXIoKSk7CiAKICAgICBpZiAobV9hdXRv
bWF0aWNQdWxsTm9kZXNOZWVkVXBkYXRpbmcpIHsKKyAgICAgICAgLy8gSGVhcCBhbGxvY2F0aW9u
cyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNv
bnMgc28gd2UgbmVlZCB0bworICAgICAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dp
bmcgYWxsb2NhdGlvbihzKS4KKyAgICAgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1
cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOworCiAgICAgICAgIC8v
IENvcHkgZnJvbSBtX2F1dG9tYXRpY1B1bGxOb2RlcyB0byBtX3JlbmRlcmluZ0F1dG9tYXRpY1B1
bGxOb2Rlcy4KICAgICAgICAgbV9yZW5kZXJpbmdBdXRvbWF0aWNQdWxsTm9kZXMucmVzaXplKG1f
YXV0b21hdGljUHVsbE5vZGVzLnNpemUoKSk7CiAKQEAgLTkxMyw2ICs5MjcsMTAgQEAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogQmFzZUF1ZGlvQ29udGV4dDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIGNvbnN0CiAKIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6aXNQbGF5aW5nQXVkaW9EaWRDaGFu
Z2UoKQogeworICAgIC8vIEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgYXVk
aW8gdGhyZWFkIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8KKyAgICAvLyBl
eHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4KKyAgICBEaXNhYmxl
TWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0
cmljdGlvbnM7CisKICAgICAvLyBNYWtlIHN1cmUgdG8gY2FsbCBEb2N1bWVudDo6dXBkYXRlSXNQ
bGF5aW5nTWVkaWEoKSBvbiB0aGUgbWFpbiB0aHJlYWQsIHNpbmNlCiAgICAgLy8gd2UgY291bGQg
YmUgb24gdGhlIGF1ZGlvIEkvTyB0aHJlYWQgaGVyZSBhbmQgdGhlIGNhbGwgaW50byBXZWJDb3Jl
IGNvdWxkIGJsb2NrLgogICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKV0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCmluZGV4IDg3NWI5MjRj
OGVjMTFiMzcyYTZmODhlMTRiZTczNDY1MTgwMmMyZGMuLjViMTM1YjM5YTVhMGExZDgwMWJlNjg3
OGZiZGZmNjc2NmMyZThhY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAKQEAgLTc5
LDcgKzc5LDggQEAgdm9pZCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjb25zdW1lQXVkaW8oQXVk
aW9CdXMmIGJ1cywgc2l6ZV90IG51bWJlck9mRnJhbWVzKQogCiAgICAgYXV0byBkZXNjcmlwdGlv
biA9IHN0cmVhbURlc2NyaXB0aW9uKG1fY3VycmVudFNldHRpbmdzLnNhbXBsZVJhdGUoKSwgYnVz
Lm51bWJlck9mQ2hhbm5lbHMoKSk7CiAgICAgaWYgKCFhdWRpb0J1ZmZlciB8fCBhdWRpb0J1ZmZl
ci0+Y2hhbm5lbENvdW50KCkgIT0gYnVzLm51bWJlck9mQ2hhbm5lbHMoKSkgewotICAgICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGF2b2lkIHRoaXMgV2ViQXVkaW9CdWZmZXJMaXN0IGFsbG9jYXRp
b24gb24gdGhlIGF1ZGlvIHRocmVhZC4KKyAgICAgICAgLy8gSGVhcCBhbGxvY2F0aW9ucyBhcmUg
Zm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28g
d2UgbmVlZCB0bworICAgICAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxs
b2NhdGlvbihzKS4KICAgICAgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRU
aHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOwogICAgICAgICBtX2F1ZGlvQnVm
ZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBXVEY6OnNh
ZmVDYXN0PHVpbnQzMl90PihudW1iZXJPZkZyYW1lcykpOwogICAgICAgICBhdWRpb0J1ZmZlciA9
ICZkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KCptX2F1ZGlvQnVmZmVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUu
Y3BwCmluZGV4IGZiZmQxY2E5ZTllNGIxYmVjYmQ1NjVkMDUzOWJjZjcxN2YwYzg4ZTguLmYzZTQ1
ZTc3ODA3ZTBkOGFkM2NmZWNiMWNhZjRlOGNiNzhlNGZkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcApAQCAt
MjEwLDcgKzIxMCw4IEBAIHZvaWQgU2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJvY2VzcyhzaXplX3Qg
ZnJhbWVzVG9Qcm9jZXNzKQogICAgIC8vIG1fYnVmZmVyUmVhZFdyaXRlSW5kZXggd2lsbCB3cmFw
IGJhY2sgYXJvdW5kIHRvIDAgd2hlbiB0aGUgY3VycmVudCBpbnB1dCBhbmQgb3V0cHV0IGJ1ZmZl
cnMgYXJlIGZ1bGwuCiAgICAgLy8gV2hlbiB0aGlzIGhhcHBlbnMsIGZpcmUgYW4gZXZlbnQgYW5k
IHN3YXAgYnVmZmVycy4KICAgICBpZiAoIW1fYnVmZmVyUmVhZFdyaXRlSW5kZXgpIHsKLSAgICAg
ICAgLy8gRGlzcGF0Y2hpbmcgYSBGdW5jdGlvbiB0byB0aGUgbWFpbiB0aHJlYWQgcmVxdWlyZXMg
aGVhcCBhbGxvY2F0aW9ucy4KKyAgICAgICAgLy8gSGVhcCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlk
ZGVuIG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVl
ZCB0bworICAgICAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlv
bihzKS4KICAgICAgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRT
Y29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOwogCiAgICAgICAgIC8vIFJlZmVyZW5jZSBv
dXJzZWxmIHNvIHdlIGRvbid0IGFjY2lkZW50YWxseSBnZXQgZGVsZXRlZCBiZWZvcmUgZmlyZVBy
b2Nlc3NFdmVudCgpIGdldHMgY2FsbGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQXVkaW9EU1BLZXJuZWxQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9EU1BLZXJuZWxQcm9jZXNzb3IuY3BwCmluZGV4IDk2ZmMyNTU2
OTU5ZWU3MDg3ZmM5YTUzODg4NjM1OGM1MzMyMTJjODkuLjFjZjM5Y2FjZjMwMjQ1MDhlOGQxMmU4
NjQ1YzUwODY3NzIxOTQzNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0F1ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9BdWRpb0RTUEtlcm5lbFByb2Nlc3Nvci5jcHAKQEAgLTUwLDExICs1MCwxNSBA
QCB2b2lkIEF1ZGlvRFNQS2VybmVsUHJvY2Vzc29yOjppbml0aWFsaXplKCkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgQVNTRVJUKCFtX2tlcm5lbHMuc2l6ZSgpKTsKLQotICAgIC8vIENyZWF0ZSBw
cm9jZXNzaW5nIGtlcm5lbHMsIG9uZSBwZXIgY2hhbm5lbC4KLSAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbnVtYmVyT2ZDaGFubmVscygpOyArK2kpCi0gICAgICAgIG1fa2VybmVscy5hcHBl
bmQoY3JlYXRlS2VybmVsKCkpOwotICAgICAgICAKKyAgICB7CisgICAgICAgIC8vIEhlYXAgYWxs
b2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgYXVkaW8gdGhyZWFkIGZvciBwZXJmb3JtYW5j
ZSByZWFzb25zIHNvIHdlIG5lZWQgdG8KKyAgICAgICAgLy8gZXhwbGljaXRseSBhbGxvdyB0aGUg
Zm9sbG93aW5nIGFsbG9jYXRpb24ocykuCisgICAgICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlv
bnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKKworICAg
ICAgICAvLyBDcmVhdGUgcHJvY2Vzc2luZyBrZXJuZWxzLCBvbmUgcGVyIGNoYW5uZWwuCisgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZkNoYW5uZWxzKCk7ICsraSkKKyAg
ICAgICAgICAgIG1fa2VybmVscy5hcHBlbmQoY3JlYXRlS2VybmVsKCkpOworICAgIH0KICAgICBt
X2luaXRpYWxpemVkID0gdHJ1ZTsKICAgICBtX2hhc0p1c3RSZXNldCA9IHRydWU7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURh
dGFTb3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1Nh
bXBsZURhdGFTb3VyY2UubW0KaW5kZXggYWQ5YWE5NmU3MWYzZWQ3NjRlNDUwM2YzMjAwMmE4ZWFl
YTZhYTQ0OC4uYTRhMTUzNjQ4ZWQ2YjBmZDZiNDExNzM1N2M3YTA3YWI2MzE0YzJmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRh
U291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlv
U2FtcGxlRGF0YVNvdXJjZS5tbQpAQCAtMTEyLDcgKzExMiw4IEBAIE9TU3RhdHVzIEF1ZGlvU2Ft
cGxlRGF0YVNvdXJjZTo6c2V0T3V0cHV0Rm9ybWF0KGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYKICAgICBtX291dHB1dERlc2NyaXB0aW9uID0gQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
IHsgZm9ybWF0IH07CiAKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgaGVhcCBh
bGxvY2F0aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFkLgorICAgICAgICAvLyBIZWFwIGFsbG9jYXRp
b25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGF1ZGlvIHRocmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVh
c29ucyBzbyB3ZSBuZWVkIHRvCisgICAgICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhlIGZvbGxv
d2luZyBhbGxvY2F0aW9uKHMpLgogICAgICAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9y
Q3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAgICAgIG1f
cmluZ0J1ZmZlci0+YWxsb2NhdGUoZm9ybWF0LCBzdGF0aWNfY2FzdDxzaXplX3Q+KG1fbWF4aW11
bVNhbXBsZUNvdW50KSk7CiAgICAgICAgIG1fc2NyYXRjaEJ1ZmZlciA9IEF1ZGlvU2FtcGxlQnVm
ZmVyTGlzdDo6Y3JlYXRlKG1fb3V0cHV0RGVzY3JpcHRpb24tPnN0cmVhbURlc2NyaXB0aW9uKCks
IG1fbWF4aW11bVNhbXBsZUNvdW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNw
cAppbmRleCA0YWVkNGY2MzI2ZmFkN2VmNzBkOGY5MTBmOTc0YzMxZDFlY2FkZTA0Li4wMDBmNGE4
ZjY0OTU0NzNjOTAxOWIyNDIxY2MyMTA1ZjFiNjcwYTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9jay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJpdmF0ZU1vY2suY3BwCkBAIC03Nyw2ICs3Nyw4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGVNb2NrOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYpCiAKIHZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGVNb2NrOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgV1RGOjpNZWRp
YVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBzaXplX3QpCiB7CisgICAgLy8gSGVhcCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVu
IG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0
bworICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMpLgog
ICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJs
ZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYnVmZmVy
TG9jayk7CiAgICAgbV9idWZmZXIuYXBwZW5kKCJBdWRpbyBUcmFjayBJRDogIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCmluZGV4IDIwZTAxNzM0
NjNmZmFmYWZlN2NiZjQ2M2ViZjkyNjljNzlhNDU1NjcuLmQ4YjQwYjYxMTkxM2FlNWIyOTUyOTFl
NTViZDVhNGJhOWFkNWNhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yLm1tCkBAIC01MDksNiArNTA5LDggQEAgdm9pZCBBdWRpb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVy
KQogCiB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6YWRkU2FtcGxlQnVmZmVyKENN
U2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKIHsKKyAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBm
b3JiaWRkZW4gb24gdGhlIGF1ZGlvIHRocmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3
ZSBuZWVkIHRvCisgICAgLy8gZXhwbGljaXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9jYXRp
b24ocykuCiAgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29w
ZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOwogICAgIG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZS0+
ZGlzcGF0Y2hTeW5jKFt0aGlzLCBidWZmZXJdIHsKICAgICAgICAgaWYgKG1faXNFbmNvZGluZykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggN2IxZDhlNWJhYjY4MDMxOGYwYjQxNDZkYTA0ZDZj
ODRiNWY1MjE5YS4uMjc4ZDE5Njc4ZGIzZWEzNDRkNTc3MzE1ZmRmMDAzMGMxMGU5MGNhMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTE3NSw3ICsxNzUsOCBAQCB2b2lkIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OnVwZGF0ZUhhc1N0YXJ0ZWRQcm9kdWNpbmdEYXRhKCkKICAgICBpZiAobV9oYXNT
dGFydGVkUHJvZHVjaW5nRGF0YSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gRGlzcGF0Y2hp
bmcgYSBGdW5jdGlvbiB0byB0aGUgbWFpbiB0aHJlYWQgcmVxdWlyZXMgaGVhcCBhbGxvY2F0aW9u
cy4KKyAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGF1ZGlvIHRo
cmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCisgICAgLy8gZXhwbGlj
aXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9jYXRpb24ocykuCiAgICAgRGlzYWJsZU1hbGxv
Y1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rp
b25zOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KV0gewogICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9oYXNTdGFydGVkUHJvZHVjaW5nRGF0
YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3Bw
CmluZGV4IGZjODNkZDJkZjE2ZmVkZjYyNDlmNjVkMTgwYTJhMTE1YzIyMmQyNzUuLmZjZjVjOWZi
YTQ4NTZiNjEyODFjMzMwNDY4MzI5NTg2MGM1YmEwNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VD
b2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNwcApAQCAtMTE4LDYgKzExOCw4IEBAIHZv
aWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2E6OmF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShjb25zdCBNZWRpYVRpbWUmLCBjCiAgICAgaWYgKCFoYXNCdWZmZXJlZEVub3VnaERhdGEoKSkK
ICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gSGVhcCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVu
IG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0
bworICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMpLgog
ICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJs
ZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAgICBMaWJXZWJSVENQcm92aWRlcjo6Y2FsbE9uV2ViUlRD
U2lnbmFsaW5nVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAg
ICAgcHJvdGVjdGVkVGhpcy0+cHVsbEF1ZGlvRGF0YSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3Bw
CmluZGV4IDYxY2NjZmQxYmMyZjMxNjc5OGM3MDY4ZWM5NDNhODlkNGJlZmVhNTkuLmE3ZGFhZTFk
NzhmYTIwZTUyZWIwNDFlZTEyMmZjMDhmMGQ2ZTYyOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5j
cHAKQEAgLTExOCw3ICsxMTgsOCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjp2aWRlb1Nh
bXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogCiB2b2lkIE1lZGlhUmVjb3JkZXJQ
cml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25z
dCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVzKQogewotICAgIC8vIEZJWE1F
OiBUaGlzIGRvZXMgaGVhcCBhbGxvY2F0aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFkLgorICAgIC8v
IEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgYXVkaW8gdGhyZWFkIGZvciBw
ZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8KKyAgICAvLyBleHBsaWNpdGx5IGFsbG93
IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4KICAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rp
b25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAKICAg
ICBpZiAobV9kZXNjcmlwdGlvbiAhPSBkZXNjcmlwdGlvbikgewpAQCAtMTQ3LDcgKzE0OCw4IEBA
IHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBN
ZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsCiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnN0
b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSwgY29uc3QgV2ViQ29yZTo6Q0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50KQogewotICAgIC8v
IEZJWE1FOiBUaGlzIGRvZXMgaGVhcCBhbGxvY2F0aW9ucyBvbiB0aGUgYXVkaW8gdGhyZWFkLgor
ICAgIC8vIEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgYXVkaW8gdGhyZWFk
IGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8KKyAgICAvLyBleHBsaWNpdGx5
IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4KICAgICBEaXNhYmxlTWFsbG9jUmVz
dHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7
CiAKICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424166</attachid>
            <date>2021-03-24 12:28:41 -0700</date>
            <delta_ts>2021-03-24 17:46:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223640-20210324122841.patch</filename>
            <type>text/plain</type>
            <size>24537</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0OTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRkMWUzZDNkZDJkMjJl
ZjE0MGUxYzVlZmI1NzhiNGIyYjIwODFiNy4uZjQ3ZTA5YmJlMzE4ZTU4MzJiNmU5Y2UxNTY2NmEx
MDQ3YTJjMTlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTAzLTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRXh0ZW5kIFdlYkF1ZGlvIGhl
YXAgYWxsb2NhdGlvbiBhc3NlcnRpb25zIHRvIGNvdmVyIHRoZSBwcmUgJiBwb3N0LXJlbmRlcmlu
ZyBwaGFzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMzY0MAorCisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgRXh0
ZW5kIFdlYkF1ZGlvIGhlYXAgYWxsb2NhdGlvbiBhc3NlcnRpb25zIHRvIGNvdmVyIHRoZSBwcmUg
JiBwb3N0LXJlbmRlcmluZyBwaGFzZXMuIEkgaGFkIHRvIGFkZAorICAgICAgICBleGNlcHRpb25z
IGZvciBzb21lIGhlYXAgYWxsb2NhdGlvbnMgdGhhdCBhcmUgY3VycmVudGx5IGhhcHBlbmluZyBk
dXJpbmcgdGhpcyBwaGFzZSBidXQgSQorICAgICAgICB3aWxsIHdvcmsgdG8gcmVkdWNlIHRoZSBu
dW1iZXIgb2YgZXhjZXB0aW9ucyBpbiBmb2xsb3ctdXBzLgorCisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b0Rlc3RpbmF0aW9uTm9kZTo6cmVuZGVyKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvTm9kZUlucHV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTm9kZUlucHV0Ojp1cGRh
dGVJbnRlcm5hbEJ1cyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVPdXRw
dXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Ob2RlT3V0cHV0Ojp1cGRhdGVJbnRlcm5h
bEJ1cyk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OmFkZEF1dG9tYXRpY1B1bGxOb2Rl
KToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRleHQ6OnVwZGF0ZUF1dG9tYXRpY1B1
bGxOb2Rlcyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EU1BLZXJuZWxQcm9jZXNz
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EU1BLZXJuZWxQcm9jZXNzb3I6OmluaXRp
YWxpemUpOgorCiAyMDIxLTAzLTI0ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW2Nzcy1jb250YWluXSBQYXJzZSBDU1MgY29udGFpbiBwcm9wZXJ0eQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvTG9jay5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmNwcAppbmRl
eCBiZWMyYWZjNjM1NjVjNzI4NWQzODgyYmFkM2QzMjZkM2EzMWRlYmQzLi5iOTkzODNkNjk0ODBk
M2E0YzliNjIzZjBjMGJjYzdkZjkwZWFiMDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9M
b2NrLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmNwcApAQCAtNDIsMTEgKzQyLDE5IEBA
IHZvaWQgTG9jazo6bG9ja1Nsb3coKQogCiB2b2lkIExvY2s6OnVubG9ja1Nsb3coKQogeworICAg
IC8vIEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgY2VydGFpbiB0aHJlYWRz
IChlLmcuIGF1ZGlvIHJlbmRlcmluZyB0aHJlYWQpIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNv
IHdlIG5lZWQgdG8KKyAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2Nh
dGlvbihzKS4gSW4gc29tZSByYXJlIGNhc2VzLCB0aGUgdW5sb2NrU2xvdygpIGFsZ29yaXRoIG1h
eSBjYXVzZSBhbGxvY2F0aW9ucy4KKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3Vy
cmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CisKICAgICBEZWZhdWx0
TG9ja0FsZ29yaXRobTo6dW5sb2NrU2xvdyhtX2J5dGUsIERlZmF1bHRMb2NrQWxnb3JpdGhtOjpV
bmZhaXIpOwogfQogCiB2b2lkIExvY2s6OnVubG9ja0ZhaXJseVNsb3coKQogeworICAgIC8vIEhl
YXAgYWxsb2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgY2VydGFpbiB0aHJlYWRzIChlLmcu
IGF1ZGlvIHJlbmRlcmluZyB0aHJlYWQpIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5l
ZWQgdG8KKyAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihz
KS4gSW4gc29tZSByYXJlIGNhc2VzLCB0aGUgdW5sb2NrU2xvdygpIGFsZ29yaXRoIG1heSBjYXVz
ZSBhbGxvY2F0aW9ucy4KKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRo
cmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CisKICAgICBEZWZhdWx0TG9ja0Fs
Z29yaXRobTo6dW5sb2NrU2xvdyhtX2J5dGUsIERlZmF1bHRMb2NrQWxnb3JpdGhtOjpGYWlyKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
RGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCA4N2U4ZTMxYTgwZDU5MjkxMzQxMTFiNTUyNTQwNjVi
YzYzZjA3MWVmLi4yZDEwMDYyOWUwZmFjMmNmNDI3ZDA4NDEzYzMzYjNhMzg1MzVkODM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25O
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGlu
YXRpb25Ob2RlLmNwcApAQCAtNjMsNiArNjMsMTEgQEAgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uTm9k
ZTo6cmVuZGVyKEF1ZGlvQnVzKiwgQXVkaW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBzaXplX3QgbnUK
ICAgICBEZW5vcm1hbERpc2FibGVyIGRlbm9ybWFsRGlzYWJsZXI7CiAgICAgCiAgICAgY29udGV4
dCgpLnNldEF1ZGlvVGhyZWFkKFRocmVhZDo6Y3VycmVudCgpKTsKKworICAgIC8vIEZvciBwZXJm
b3JtYW5jZSByZWFzb25zLCB3ZSBmb3JiaWQgaGVhcCBhbGxvY2F0aW9ucyB3aGlsZSBkb2luZyBy
ZW5kZXJpbmcgb24gdGhlIGF1ZGlvIHRocmVhZC4KKyAgICAvLyBIZWFwIGFsbG9jYXRpb25zIHRo
YXQgY2Fubm90IGJlIGF2b2lkZWQgb3IgaGF2ZSBub3QgYmVlbiBmaXhlZCB5ZXQgY2FuIGJlIGFs
bG93ZWQgdXNpbmcKKyAgICAvLyBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRo
cmVhZFNjb3BlIHNjb3BlIHZhcmlhYmxlcy4KKyAgICBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50
VGhyZWFkU2NvcGUgZm9yYmlkTWFsbG9jVXNlOwogICAgIAogICAgIGlmICghY29udGV4dCgpLmlz
SW5pdGlhbGl6ZWQoKSkgewogICAgICAgICBkZXN0aW5hdGlvbkJ1cy0+emVybygpOwpAQCAtODYs
MjQgKzkxLDIwIEBAIHZvaWQgQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnJlbmRlcihBdWRpb0J1cyos
IEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6ZV90IG51CiAgICAgaWYgKHdvcmtsZXRHbG9i
YWxTY29wZSkKICAgICAgICAgd29ya2xldEdsb2JhbFNjb3BlLT5oYW5kbGVQcmVSZW5kZXJUYXNr
cygpOwogCi0gICAgewotICAgICAgICBGb3JiaWRNYWxsb2NVc2VGb3JDdXJyZW50VGhyZWFkU2Nv
cGUgZm9yYmlkTWFsbG9jVXNlOwotCi0gICAgICAgIC8vIFRoaXMgd2lsbCBjYXVzZSB0aGUgbm9k
ZShzKSBjb25uZWN0ZWQgdG8gdXMgdG8gcHJvY2Vzcywgd2hpY2ggaW4gdHVybiB3aWxsIHB1bGwg
b24gdGhlaXIgaW5wdXQocyksCi0gICAgICAgIC8vIGFsbCB0aGUgd2F5IGJhY2t3YXJkcyB0aHJv
dWdoIHRoZSByZW5kZXJpbmcgZ3JhcGguCi0gICAgICAgIEF1ZGlvQnVzKiByZW5kZXJlZEJ1cyA9
IGlucHV0KDApLT5wdWxsKGRlc3RpbmF0aW9uQnVzLCBudW1iZXJPZkZyYW1lcyk7Ci0KLSAgICAg
ICAgaWYgKCFyZW5kZXJlZEJ1cykKLSAgICAgICAgICAgIGRlc3RpbmF0aW9uQnVzLT56ZXJvKCk7
Ci0gICAgICAgIGVsc2UgaWYgKHJlbmRlcmVkQnVzICE9IGRlc3RpbmF0aW9uQnVzKSB7Ci0gICAg
ICAgICAgICAvLyBpbi1wbGFjZSBwcm9jZXNzaW5nIHdhcyBub3QgcG9zc2libGUgLSBzbyBjb3B5
Ci0gICAgICAgICAgICBkZXN0aW5hdGlvbkJ1cy0+Y29weUZyb20oKnJlbmRlcmVkQnVzKTsKLSAg
ICAgICAgfQorICAgIC8vIFRoaXMgd2lsbCBjYXVzZSB0aGUgbm9kZShzKSBjb25uZWN0ZWQgdG8g
dXMgdG8gcHJvY2Vzcywgd2hpY2ggaW4gdHVybiB3aWxsIHB1bGwgb24gdGhlaXIgaW5wdXQocyks
CisgICAgLy8gYWxsIHRoZSB3YXkgYmFja3dhcmRzIHRocm91Z2ggdGhlIHJlbmRlcmluZyBncmFw
aC4KKyAgICBBdWRpb0J1cyogcmVuZGVyZWRCdXMgPSBpbnB1dCgwKS0+cHVsbChkZXN0aW5hdGlv
bkJ1cywgbnVtYmVyT2ZGcmFtZXMpOwogCi0gICAgICAgIC8vIFByb2Nlc3Mgbm9kZXMgd2hpY2gg
bmVlZCBhIGxpdHRsZSBleHRyYSBoZWxwIGJlY2F1c2UgdGhleSBhcmUgbm90IGNvbm5lY3RlZCB0
byBhbnl0aGluZywgYnV0IHN0aWxsIG5lZWQgdG8gcHJvY2Vzcy4KLSAgICAgICAgY29udGV4dCgp
LnByb2Nlc3NBdXRvbWF0aWNQdWxsTm9kZXMobnVtYmVyT2ZGcmFtZXMpOworICAgIGlmICghcmVu
ZGVyZWRCdXMpCisgICAgICAgIGRlc3RpbmF0aW9uQnVzLT56ZXJvKCk7CisgICAgZWxzZSBpZiAo
cmVuZGVyZWRCdXMgIT0gZGVzdGluYXRpb25CdXMpIHsKKyAgICAgICAgLy8gaW4tcGxhY2UgcHJv
Y2Vzc2luZyB3YXMgbm90IHBvc3NpYmxlIC0gc28gY29weQorICAgICAgICBkZXN0aW5hdGlvbkJ1
cy0+Y29weUZyb20oKnJlbmRlcmVkQnVzKTsKICAgICB9CiAKKyAgICAvLyBQcm9jZXNzIG5vZGVz
IHdoaWNoIG5lZWQgYSBsaXR0bGUgZXh0cmEgaGVscCBiZWNhdXNlIHRoZXkgYXJlIG5vdCBjb25u
ZWN0ZWQgdG8gYW55dGhpbmcsIGJ1dCBzdGlsbCBuZWVkIHRvIHByb2Nlc3MuCisgICAgY29udGV4
dCgpLnByb2Nlc3NBdXRvbWF0aWNQdWxsTm9kZXMobnVtYmVyT2ZGcmFtZXMpOworCiAgICAgLy8g
TGV0IHRoZSBjb250ZXh0IHRha2UgY2FyZSBvZiBhbnkgYnVzaW5lc3MgYXQgdGhlIGVuZCBvZiBl
YWNoIHJlbmRlciBxdWFudHVtLgogICAgIGNvbnRleHQoKS5oYW5kbGVQb3N0UmVuZGVyVGFza3Mo
KTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Ob2RlSW5wdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05v
ZGVJbnB1dC5jcHAKaW5kZXggMDIxYjZiZWVhNGQxMTdjZjIzNzYwZTA1Y2NiZWM0YzM1ZGIzNGY4
Yi4uMjFiYTVhN2JiMWE5NGY0MjRjYjJjNmFkZDY3YTYzNmIxNGYzM2JlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5jcHAKQEAgLTEw
Myw2ICsxMDMsOSBAQCB2b2lkIEF1ZGlvTm9kZUlucHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cygpCiAg
ICAgaWYgKG51bWJlck9mSW5wdXRDaGFubmVscyA9PSBtX2ludGVybmFsU3VtbWluZ0J1cy0+bnVt
YmVyT2ZDaGFubmVscygpKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBIZWFwIGFsbG9jYXRp
b25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGF1ZGlvIHRocmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVh
c29ucyBzbyB3ZSBuZWVkIHRvCisgICAgLy8gZXhwbGljaXRseSBhbGxvdyB0aGUgZm9sbG93aW5n
IGFsbG9jYXRpb24ocykuCisgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRU
aHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOwogICAgIG1faW50ZXJuYWxTdW1t
aW5nQnVzID0gQXVkaW9CdXM6OmNyZWF0ZShudW1iZXJPZklucHV0Q2hhbm5lbHMsIEF1ZGlvVXRp
bGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcAppbmRleCBhNDBlY2UzNGQ0ZWZl
OWY0ODkyOTA0OGM5MmIzZjc2OTAzMjFlZTY5Li41NjUwMzVjZTk4YTlkYTU5YzY5ODRmZmQ2Yjc3
NDM1MjE4NTQ5NjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvTm9kZU91dHB1dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb05vZGVPdXRwdXQuY3BwCkBAIC02OCw2ICs2OCw5IEBAIHZvaWQgQXVkaW9Ob2RlT3V0
cHV0Ojp1cGRhdGVJbnRlcm5hbEJ1cygpCiAgICAgaWYgKG51bWJlck9mQ2hhbm5lbHMoKSA9PSBt
X2ludGVybmFsQnVzLT5udW1iZXJPZkNoYW5uZWxzKCkpCiAgICAgICAgIHJldHVybjsKIAorICAg
IC8vIEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgYXVkaW8gdGhyZWFkIGZv
ciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8KKyAgICAvLyBleHBsaWNpdGx5IGFs
bG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4KKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJp
Y3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAg
ICAgbV9pbnRlcm5hbEJ1cyA9IEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVscygpLCBB
dWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9k
ZS5jcHAKaW5kZXggMWY4N2Q4ODhjM2JjNDc2YWVhYmNlYTgxZjU4ZjM4YTIxNzc2MTllYi4uYmEw
NjY2ZjQ5OGE5MDU4Nzc2NTRiYTU1ZGQ4OGU0MjUwMGVmMjU5MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VO
b2RlLmNwcApAQCAtMTk3LDcgKzE5Nyw4IEBAIHZvaWQgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2Rl
OjpmaW5pc2goKQogICAgIG1fcGxheWJhY2tTdGF0ZSA9IEZJTklTSEVEX1NUQVRFOwogICAgIGNv
bnRleHQoKS5kZWNyZW1lbnRBY3RpdmVTb3VyY2VDb3VudCgpOwogCi0gICAgLy8gRGlzcGF0Y2hp
bmcgYSBGdW5jdGlvbiB0byB0aGUgbWFpbiB0aHJlYWQgcmVxdWlyZXMgaGVhcCBhbGxvY2F0aW9u
cy4KKyAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGF1ZGlvIHRo
cmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCisgICAgLy8gZXhwbGlj
aXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9jYXRpb24ocykuCiAgICAgRGlzYWJsZU1hbGxv
Y1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rp
b25zOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKV0gewogICAgICAgICBhdXRvIHJlbGVhc2UgPSBtYWtlU2NvcGVFeGl0KFsmXSAoKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWlu
Z0p1bmN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1t
aW5nSnVuY3Rpb24uY3BwCmluZGV4IDEyY2RhYmE0NTA3ZGMyMTQ3MjBmODI3NDAxMTZlNTkwYjMw
MWU4MjMuLjU3NDU0M2ZlOWE4M2Q3ZTc4MzFiMmM5NDU0YzMwMjE3MTZhMWJiOWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVu
Y3Rpb24uY3BwCkBAIC0xMjksOSArMTI5LDEyIEBAIHVuc2lnbmVkIEF1ZGlvU3VtbWluZ0p1bmN0
aW9uOjptYXhpbXVtTnVtYmVyT2ZDaGFubmVscygpIGNvbnN0CiB2b2lkIEF1ZGlvU3VtbWluZ0p1
bmN0aW9uOjpvdXRwdXRFbmFibGVkU3RhdGVDaGFuZ2VkKEF1ZGlvTm9kZU91dHB1dCYgb3V0cHV0
KQogewogICAgIEFTU0VSVChjb250ZXh0KCkuaXNHcmFwaE93bmVyKCkpOwotICAgIGlmICghbV9w
ZW5kaW5nUmVuZGVyaW5nT3V0cHV0cykKKyAgICBpZiAoIW1fcGVuZGluZ1JlbmRlcmluZ091dHB1
dHMpIHsKKyAgICAgICAgLy8gSGVhcCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBh
dWRpbyB0aHJlYWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0bworICAgICAg
ICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4KKyAgICAg
ICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxl
TWFsbG9jUmVzdHJpY3Rpb25zOwogICAgICAgICBtX3BlbmRpbmdSZW5kZXJpbmdPdXRwdXRzLmVt
cGxhY2UobV9vdXRwdXRzKTsKLSAgICBlbHNlCisgICAgfSBlbHNlCiAgICAgICAgIG1fcGVuZGlu
Z1JlbmRlcmluZ091dHB1dHMtPnVwZGF0ZWRFbmFibGVkU3RhdGUob3V0cHV0KTsKICAgICBtYXJr
UmVuZGVyaW5nU3RhdGVBc0RpcnR5KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IGQy
ZWVjZTZkNTcwYzUwMTYwMDc4NDhmNzcwN2Y0YTVkN2Q0NjI2NjUuLmFkNTYzZGE1M2MwNGNhMGQ2
YmNiMDkyMjQ5N2VjZDQwOWI3MzExOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC0xODcs
OCArMTg3LDEzIEBAIHZvaWQgQXVkaW9Xb3JrbGV0R2xvYmFsU2NvcGU6OmhhbmRsZVBvc3RSZW5k
ZXJUYXNrcyhzaXplX3QgY3VycmVudEZyYW1lKQogewogICAgIG1fY3VycmVudEZyYW1lID0gY3Vy
cmVudEZyYW1lOwogCi0gICAgLy8gVGhpcyB0YWtlcyBjYXJlIG9mIHByb2Nlc3NpbmcgdGhlIE1p
Y3JvVGFzayBxdWV1ZSBhZnRlciByZW5kZXJpbmcuCi0gICAgbV9sb2NrRHVyaW5nUmVuZGVyaW5n
ID0gV1RGOjpudWxsb3B0OworICAgIHsKKyAgICAgICAgLy8gSGVhcCBhbGxvY2F0aW9ucyBhcmUg
Zm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28g
d2UgbmVlZCB0bworICAgICAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxs
b2NhdGlvbihzKS4KKyAgICAgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRU
aHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOworICAgICAgICAvLyBUaGlzIHRh
a2VzIGNhcmUgb2YgcHJvY2Vzc2luZyB0aGUgTWljcm9UYXNrIHF1ZXVlIGFmdGVyIHJlbmRlcmlu
Zy4KKyAgICAgICAgbV9sb2NrRHVyaW5nUmVuZGVyaW5nID0gV1RGOjpudWxsb3B0OworICAgIH0K
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKaW5kZXggYzUzOWQ0OTZkNzM2NGMy
M2NiYmM1NWUzMTdlYjg3NzFjNzFhNmQzNS4uNTkyMjY4MjcwYzMxNmM4Njg5ZDYxOGU2Zjk0YjQ1
MDdiN2NmMmY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1dvcmtsZXROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldE5vZGUuY3BwCkBAIC0yNzYsNyArMjc2LDggQEAgdm9pZCBBdWRpb1dvcmts
ZXROb2RlOjpmaXJlUHJvY2Vzc29yRXJyb3JPbk1haW5UaHJlYWQoUHJvY2Vzc29yRXJyb3IgZXJy
b3IpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKLSAgICAvLyBEaXNwYXRjaGlu
ZyBhIEZ1bmN0aW9uIHRvIHRoZSBtYWluIHRocmVhZCByZXF1aXJlcyBoZWFwIGFsbG9jYXRpb25z
LgorICAgIC8vIEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgYXVkaW8gdGhy
ZWFkIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8KKyAgICAvLyBleHBsaWNp
dGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4KICAgICBEaXNhYmxlTWFsbG9j
UmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlv
bnM7CiAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCBlcnJvcl0oKSBtdXRhYmxlIHsKICAgICAgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0
UHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0UHJvY2Vzc29yLmNwcAppbmRleCAwMmU0Y2M5MjA3ZTgwMDM1MjVjN2VjYjI3MjY4MDY2ZjEx
YjFhYTM1Li4xNTMyMTljYTM1NjA3YTU4NTUxMTRjYTJkMDRiNDE4MzgwZjc1MWU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQ
cm9jZXNzb3IuY3BwCkBAIC0yMzEsNyArMjMxLDEwIEBAIHZvaWQgQXVkaW9Xb3JrbGV0UHJvY2Vz
c29yOjpidWlsZEpTQXJndW1lbnRzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVj
CiAKIGJvb2wgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpwcm9jZXNzKGNvbnN0IFZlY3RvcjxSZWZQ
dHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlvQnVzPj4mIG91dHB1dHMsIGNv
bnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9GbG9hdEFycmF5Pj4mIHBh
cmFtVmFsdWVzTWFwLCBib29sJiB0aHJld0V4Y2VwdGlvbikKIHsKKyAgICAvLyBIZWFwIGFsbG9j
YXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGF1ZGlvIHRocmVhZCBmb3IgcGVyZm9ybWFuY2Ug
cmVhc29ucyBzbyB3ZSBuZWVkIHRvCisgICAgLy8gZXhwbGljaXRseSBhbGxvdyB0aGUgZm9sbG93
aW5nIGFsbG9jYXRpb24ocykuCiAgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJl
bnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOworCiAgICAgQVNTRVJUKG1f
cHJvY2Vzc0NhbGxiYWNrKTsKICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqbV9wcm9jZXNzQ2Fs
bGJhY2stPmdsb2JhbE9iamVjdCgpOwogICAgIEFTU0VSVChnbG9iYWxPYmplY3Quc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCmluZGV4IDA1NjNmMjc4MzBiYWU4NGUwY2VhOWRiNmM3
YWIwNDY4OTU3YjYxNzMuLjI0NzY3OGYyOGQ4MjI4ZDQ5NDUyMGI1ODQ4MTllNTUxYTQyMjczNTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9D
b250ZXh0LmNwcApAQCAtNzgyLDYgKzc4MiwxMCBAQCB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6OnNj
aGVkdWxlTm9kZURlbGV0aW9uKCkKIAogICAgIC8vIE1ha2Ugc3VyZSB0byBjYWxsIGRlbGV0ZU1h
cmtlZE5vZGVzKCkgb24gbWFpbiB0aHJlYWQuICAgIAogICAgIGlmIChtX25vZGVzTWFya2VkRm9y
RGVsZXRpb24uc2l6ZSgpICYmICFtX2lzRGVsZXRpb25TY2hlZHVsZWQpIHsKKyAgICAgICAgLy8g
SGVhcCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBl
cmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0bworICAgICAgICAvLyBleHBsaWNpdGx5IGFs
bG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4KKyAgICAgICAgRGlzYWJsZU1hbGxvY1Jl
c3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25z
OworCiAgICAgICAgIG1fbm9kZXNUb0RlbGV0ZS5hcHBlbmRWZWN0b3IobV9ub2Rlc01hcmtlZEZv
ckRlbGV0aW9uKTsKICAgICAgICAgbV9ub2Rlc01hcmtlZEZvckRlbGV0aW9uLmNsZWFyKCk7CiAK
QEAgLTgyNCw3ICs4MjgsMTAgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjpkZWxldGVNYXJrZWRO
b2RlcygpCiAKIHZvaWQgQmFzZUF1ZGlvQ29udGV4dDo6bWFya1N1bW1pbmdKdW5jdGlvbkRpcnR5
KEF1ZGlvU3VtbWluZ0p1bmN0aW9uKiBzdW1taW5nSnVuY3Rpb24pCiB7Ci0gICAgQVNTRVJUKGlz
R3JhcGhPd25lcigpKTsgICAgCisgICAgQVNTRVJUKGlzR3JhcGhPd25lcigpKTsKKyAgICAvLyBI
ZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGF1ZGlvIHRocmVhZCBmb3IgcGVy
Zm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCisgICAgLy8gZXhwbGljaXRseSBhbGxvdyB0
aGUgZm9sbG93aW5nIGFsbG9jYXRpb24ocykuCisgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9u
c0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOwogICAgIG1f
ZGlydHlTdW1taW5nSnVuY3Rpb25zLmFkZChzdW1taW5nSnVuY3Rpb24pOwogfQogCkBAIC04NzAs
NiArODc3LDkgQEAgdm9pZCBCYXNlQXVkaW9Db250ZXh0OjphZGRBdXRvbWF0aWNQdWxsTm9kZShB
dWRpb05vZGUmIG5vZGUpCiB7CiAgICAgQVNTRVJUKGlzR3JhcGhPd25lcigpKTsKIAorICAgIC8v
IEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgYXVkaW8gdGhyZWFkIGZvciBw
ZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8KKyAgICAvLyBleHBsaWNpdGx5IGFsbG93
IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4KKyAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rp
b25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAg
aWYgKG1fYXV0b21hdGljUHVsbE5vZGVzLmFkZCgmbm9kZSkuaXNOZXdFbnRyeSkKICAgICAgICAg
bV9hdXRvbWF0aWNQdWxsTm9kZXNOZWVkVXBkYXRpbmcgPSB0cnVlOwogfQpAQCAtODg3LDYgKzg5
NywxMCBAQCB2b2lkIEJhc2VBdWRpb0NvbnRleHQ6OnVwZGF0ZUF1dG9tYXRpY1B1bGxOb2Rlcygp
CiAgICAgQVNTRVJUKGlzR3JhcGhPd25lcigpKTsKIAogICAgIGlmIChtX2F1dG9tYXRpY1B1bGxO
b2Rlc05lZWRVcGRhdGluZykgeworICAgICAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3Ji
aWRkZW4gb24gdGhlIGF1ZGlvIHRocmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBu
ZWVkIHRvCisgICAgICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhlIGZvbGxvd2luZyBhbGxvY2F0
aW9uKHMpLgorICAgICAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVh
ZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CisKICAgICAgICAgLy8gQ29weSBmcm9t
IG1fYXV0b21hdGljUHVsbE5vZGVzIHRvIG1fcmVuZGVyaW5nQXV0b21hdGljUHVsbE5vZGVzLgog
ICAgICAgICBtX3JlbmRlcmluZ0F1dG9tYXRpY1B1bGxOb2Rlcy5yZXNpemUobV9hdXRvbWF0aWNQ
dWxsTm9kZXMuc2l6ZSgpKTsKIApAQCAtOTEzLDYgKzkyNywxMCBAQCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBCYXNlQXVkaW9Db250ZXh0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QK
IAogdm9pZCBCYXNlQXVkaW9Db250ZXh0Ojppc1BsYXlpbmdBdWRpb0RpZENoYW5nZSgpCiB7Cisg
ICAgLy8gSGVhcCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0aHJlYWQg
Zm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0bworICAgIC8vIGV4cGxpY2l0bHkg
YWxsb3cgdGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMpLgorICAgIERpc2FibGVNYWxsb2NSZXN0
cmljdGlvbnNGb3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsK
KwogICAgIC8vIE1ha2Ugc3VyZSB0byBjYWxsIERvY3VtZW50Ojp1cGRhdGVJc1BsYXlpbmdNZWRp
YSgpIG9uIHRoZSBtYWluIHRocmVhZCwgc2luY2UKICAgICAvLyB3ZSBjb3VsZCBiZSBvbiB0aGUg
YXVkaW8gSS9PIHRocmVhZCBoZXJlIGFuZCB0aGUgY2FsbCBpbnRvIFdlYkNvcmUgY291bGQgYmxv
Y2suCiAgICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
XSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3Ry
ZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggODc1YjkyNGM4ZWMxMWIzNzJh
NmY4OGUxNGJlNzM0NjUxODAyYzJkYy4uNWIxMzViMzlhNWEwYTFkODAxYmU2ODc4ZmJkZmY2NzY2
YzJlOGFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRp
YVN0cmVhbUF1ZGlvU291cmNlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZUNvY29hLmNwcApAQCAtNzksNyArNzksOCBA
QCB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNvbnN1bWVBdWRpbyhBdWRpb0J1cyYgYnVz
LCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiAKICAgICBhdXRvIGRlc2NyaXB0aW9uID0gc3RyZWFt
RGVzY3JpcHRpb24obV9jdXJyZW50U2V0dGluZ3Muc2FtcGxlUmF0ZSgpLCBidXMubnVtYmVyT2ZD
aGFubmVscygpKTsKICAgICBpZiAoIWF1ZGlvQnVmZmVyIHx8IGF1ZGlvQnVmZmVyLT5jaGFubmVs
Q291bnQoKSAhPSBidXMubnVtYmVyT2ZDaGFubmVscygpKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgYXZvaWQgdGhpcyBXZWJBdWRpb0J1ZmZlckxpc3QgYWxsb2NhdGlvbiBvbiB0aGUg
YXVkaW8gdGhyZWFkLgorICAgICAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4g
b24gdGhlIGF1ZGlvIHRocmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRv
CisgICAgICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMp
LgogICAgICAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3Bl
IGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAgICAgIG1fYXVkaW9CdWZmZXIgPSBtYWtl
VW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGVzY3JpcHRpb24sIFdURjo6c2FmZUNhc3Q8dWlu
dDMyX3Q+KG51bWJlck9mRnJhbWVzKSk7CiAgICAgICAgIGF1ZGlvQnVmZmVyID0gJmRvd25jYXN0
PFdlYkF1ZGlvQnVmZmVyTGlzdD4oKm1fYXVkaW9CdWZmZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKaW5kZXgg
ZmJmZDFjYTllOWU0YjFiZWNiZDU2NWQwNTM5YmNmNzE3ZjBjODhlOC4uZjNlNDVlNzc4MDdlMGQ4
YWQzY2ZlY2IxY2FmNGU4Y2I3OGU0ZmQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCkBAIC0yMTAsNyArMjEw
LDggQEAgdm9pZCBTY3JpcHRQcm9jZXNzb3JOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MpCiAgICAgLy8gbV9idWZmZXJSZWFkV3JpdGVJbmRleCB3aWxsIHdyYXAgYmFjayBhcm91
bmQgdG8gMCB3aGVuIHRoZSBjdXJyZW50IGlucHV0IGFuZCBvdXRwdXQgYnVmZmVycyBhcmUgZnVs
bC4KICAgICAvLyBXaGVuIHRoaXMgaGFwcGVucywgZmlyZSBhbiBldmVudCBhbmQgc3dhcCBidWZm
ZXJzLgogICAgIGlmICghbV9idWZmZXJSZWFkV3JpdGVJbmRleCkgewotICAgICAgICAvLyBEaXNw
YXRjaGluZyBhIEZ1bmN0aW9uIHRvIHRoZSBtYWluIHRocmVhZCByZXF1aXJlcyBoZWFwIGFsbG9j
YXRpb25zLgorICAgICAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhl
IGF1ZGlvIHRocmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCisgICAg
ICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMpLgogICAg
ICAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2Fi
bGVNYWxsb2NSZXN0cmljdGlvbnM7CiAKICAgICAgICAgLy8gUmVmZXJlbmNlIG91cnNlbGYgc28g
d2UgZG9uJ3QgYWNjaWRlbnRhbGx5IGdldCBkZWxldGVkIGJlZm9yZSBmaXJlUHJvY2Vzc0V2ZW50
KCkgZ2V0cyBjYWxsZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9BdWRpb0RTUEtlcm5lbFByb2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb0RTUEtlcm5lbFByb2Nlc3Nvci5jcHAKaW5kZXggOTZmYzI1NTY5NTllZTcwODdm
YzlhNTM4ODg2MzU4YzUzMzIxMmM4OS4uMWNmMzljYWNmMzAyNDUwOGU4ZDEyZTg2NDVjNTA4Njc3
MjE5NDM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9E
U1BLZXJuZWxQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmNwcApAQCAtNTAsMTEgKzUwLDE1IEBAIHZvaWQgQXVk
aW9EU1BLZXJuZWxQcm9jZXNzb3I6OmluaXRpYWxpemUoKQogICAgICAgICByZXR1cm47CiAKICAg
ICBBU1NFUlQoIW1fa2VybmVscy5zaXplKCkpOwotCi0gICAgLy8gQ3JlYXRlIHByb2Nlc3Npbmcg
a2VybmVscywgb25lIHBlciBjaGFubmVsLgotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBu
dW1iZXJPZkNoYW5uZWxzKCk7ICsraSkKLSAgICAgICAgbV9rZXJuZWxzLmFwcGVuZChjcmVhdGVL
ZXJuZWwoKSk7Ci0gICAgICAgIAorICAgIHsKKyAgICAgICAgLy8gSGVhcCBhbGxvY2F0aW9ucyBh
cmUgZm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMg
c28gd2UgbmVlZCB0bworICAgICAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcg
YWxsb2NhdGlvbihzKS4KKyAgICAgICAgRGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJl
bnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zOworCisgICAgICAgIC8vIENy
ZWF0ZSBwcm9jZXNzaW5nIGtlcm5lbHMsIG9uZSBwZXIgY2hhbm5lbC4KKyAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mQ2hhbm5lbHMoKTsgKytpKQorICAgICAgICAgICAg
bV9rZXJuZWxzLmFwcGVuZChjcmVhdGVLZXJuZWwoKSk7CisgICAgfQogICAgIG1faW5pdGlhbGl6
ZWQgPSB0cnVlOwogICAgIG1faGFzSnVzdFJlc2V0ID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNv
dXJjZS5tbQppbmRleCBhZDlhYTk2ZTcxZjNlZDc2NGU0NTAzZjMyMDAyYThlYWVhNmFhNDQ4Li5h
NGExNTM2NDhlZDZiMGZkNmI0MTE3MzU3YzdhMDdhYjYzMTRjMmZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFTb3VyY2UubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRh
U291cmNlLm1tCkBAIC0xMTIsNyArMTEyLDggQEAgT1NTdGF0dXMgQXVkaW9TYW1wbGVEYXRhU291
cmNlOjpzZXRPdXRwdXRGb3JtYXQoY29uc3QgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJgogICAg
IG1fb3V0cHV0RGVzY3JpcHRpb24gPSBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24geyBmb3JtYXQg
fTsKIAogICAgIHsKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBoZWFwIGFsbG9jYXRpb25z
IG9uIHRoZSBhdWRpbyB0aHJlYWQuCisgICAgICAgIC8vIEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZv
cmJpZGRlbiBvbiB0aGUgYXVkaW8gdGhyZWFkIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdl
IG5lZWQgdG8KKyAgICAgICAgLy8gZXhwbGljaXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9j
YXRpb24ocykuCiAgICAgICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJyZW50VGhy
ZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKICAgICAgICAgbV9yaW5nQnVmZmVy
LT5hbGxvY2F0ZShmb3JtYXQsIHN0YXRpY19jYXN0PHNpemVfdD4obV9tYXhpbXVtU2FtcGxlQ291
bnQpKTsKICAgICAgICAgbV9zY3JhdGNoQnVmZmVyID0gQXVkaW9TYW1wbGVCdWZmZXJMaXN0Ojpj
cmVhdGUobV9vdXRwdXREZXNjcmlwdGlvbi0+c3RyZWFtRGVzY3JpcHRpb24oKSwgbV9tYXhpbXVt
U2FtcGxlQ291bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2suY3BwCmluZGV4IDRh
ZWQ0ZjYzMjZmYWQ3ZWY3MGQ4ZjkxMGY5NzRjMzFkMWVjYWRlMDQuLjAwMGY0YThmNjQ5NTQ3M2M5
MDE5YjI0MjFjYzIxMDVmMWI2NzBhNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlTW9j
ay5jcHAKQEAgLTc3LDYgKzc3LDggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZU1vY2s6OnZp
ZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJikKIAogdm9pZCBNZWRpYVJlY29yZGVyUHJp
dmF0ZU1vY2s6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYsIGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNp
emVfdCkKIHsKKyAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGF1
ZGlvIHRocmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCisgICAgLy8g
ZXhwbGljaXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9jYXRpb24ocykuCiAgICAgRGlzYWJs
ZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVz
dHJpY3Rpb25zOwogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9idWZmZXJMb2NrKTsKICAg
ICBtX2J1ZmZlci5hcHBlbmQoIkF1ZGlvIFRyYWNrIElEOiAiKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2Nv
YS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KaW5kZXggMjBlMDE3MzQ2M2ZmYWZhZmU3
Y2JmNDYzZWJmOTI2OWM3OWE0NTU2Ny4uZDhiNDBiNjExOTEzYWU1YjI5NTI5MWU1NWJkNWE0YmE5
YWQ1Y2E0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IubW0KQEAgLTUwOSw2ICs1MDksOCBAQCB2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCiAKIHZvaWQg
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjphZGRTYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZm
ZXJSZWYgYnVmZmVyKQogeworICAgIC8vIEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBv
biB0aGUgYXVkaW8gdGhyZWFkIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8K
KyAgICAvLyBleHBsaWNpdGx5IGFsbG93IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4KICAg
ICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rpb25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVN
YWxsb2NSZXN0cmljdGlvbnM7CiAgICAgbV9zZXJpYWxEaXNwYXRjaFF1ZXVlLT5kaXNwYXRjaFN5
bmMoW3RoaXMsIGJ1ZmZlcl0gewogICAgICAgICBpZiAobV9pc0VuY29kaW5nKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmNwcAppbmRleCA3YjFkOGU1YmFiNjgwMzE4ZjBiNDE0NmRhMDRkNmM4NGI1ZjUyMTlh
Li4yNzhkMTk2NzhkYjNlYTM0NGQ1NzczMTVmZGYwMDMwYzEwZTkwY2EwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmNwcApAQCAtMTc1LDcgKzE3NSw4IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
dXBkYXRlSGFzU3RhcnRlZFByb2R1Y2luZ0RhdGEoKQogICAgIGlmIChtX2hhc1N0YXJ0ZWRQcm9k
dWNpbmdEYXRhKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBEaXNwYXRjaGluZyBhIEZ1bmN0
aW9uIHRvIHRoZSBtYWluIHRocmVhZCByZXF1aXJlcyBoZWFwIGFsbG9jYXRpb25zLgorICAgIC8v
IEhlYXAgYWxsb2NhdGlvbnMgYXJlIGZvcmJpZGRlbiBvbiB0aGUgYXVkaW8gdGhyZWFkIGZvciBw
ZXJmb3JtYW5jZSByZWFzb25zIHNvIHdlIG5lZWQgdG8KKyAgICAvLyBleHBsaWNpdGx5IGFsbG93
IHRoZSBmb2xsb3dpbmcgYWxsb2NhdGlvbihzKS4KICAgICBEaXNhYmxlTWFsbG9jUmVzdHJpY3Rp
b25zRm9yQ3VycmVudFRocmVhZFNjb3BlIGRpc2FibGVNYWxsb2NSZXN0cmljdGlvbnM7CiAgICAg
Y2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CiAgICAg
ICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX2hhc1N0YXJ0ZWRQcm9kdWNpbmdEYXRhKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggZmM4
M2RkMmRmMTZmZWRmNjI0OWY2NWQxODBhMmExMTVjMjIyZDI3NS4uZmNmNWM5ZmJhNDg1NmI2MTI4
MWMzMzA0NjgzMjk1ODYwYzViYTA3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRn
b2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwCkBAIC0xMTgsNiArMTE4LDggQEAgdm9pZCBSZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1l
ZGlhVGltZSYsIGMKICAgICBpZiAoIWhhc0J1ZmZlcmVkRW5vdWdoRGF0YSgpKQogICAgICAgICBy
ZXR1cm47CiAKKyAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGF1
ZGlvIHRocmVhZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCisgICAgLy8g
ZXhwbGljaXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFsbG9jYXRpb24ocykuCiAgICAgRGlzYWJs
ZU1hbGxvY1Jlc3RyaWN0aW9uc0ZvckN1cnJlbnRUaHJlYWRTY29wZSBkaXNhYmxlTWFsbG9jUmVz
dHJpY3Rpb25zOwogICAgIExpYldlYlJUQ1Byb3ZpZGVyOjpjYWxsT25XZWJSVENTaWduYWxpbmdU
aHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewogICAgICAgICBwcm90ZWN0
ZWRUaGlzLT5wdWxsQXVkaW9EYXRhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKaW5kZXggNjFj
Y2NmZDFiYzJmMzE2Nzk4YzcwNjhlYzk0M2E4OWQ0YmVmZWE1OS4uYTdkYWFlMWQ3OGZhMjBlNTJl
YjA0MWVlMTIyZmMwOGYwZDZlNjI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcApAQCAtMTE4
LDcgKzExOCw4IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OnZpZGVvU2FtcGxlQXZhaWxh
YmxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGU6OmF1
ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3Jt
QXVkaW9EYXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2Ny
aXB0aW9uLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgZG9l
cyBoZWFwIGFsbG9jYXRpb25zIG9uIHRoZSBhdWRpbyB0aHJlYWQuCisgICAgLy8gSGVhcCBhbGxv
Y2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBlcmZvcm1hbmNl
IHJlYXNvbnMgc28gd2UgbmVlZCB0bworICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhlIGZvbGxv
d2luZyBhbGxvY2F0aW9uKHMpLgogICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNGb3JDdXJy
ZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKIAogICAgIGlmIChtX2Rl
c2NyaXB0aW9uICE9IGRlc2NyaXB0aW9uKSB7CkBAIC0xNDcsNyArMTQ4LDggQEAgdm9pZCBNZWRp
YVJlY29yZGVyUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYg
dGltZSwgY29uc3QgUGwKIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RvcmFnZUNoYW5n
ZWQoU2hhcmVkTWVtb3J5KiBzdG9yYWdlLCBjb25zdCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGZvcm1hdCwgc2l6ZV90IGZyYW1lQ291bnQpCiB7Ci0gICAgLy8gRklYTUU6IFRo
aXMgZG9lcyBoZWFwIGFsbG9jYXRpb25zIG9uIHRoZSBhdWRpbyB0aHJlYWQuCisgICAgLy8gSGVh
cCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBhdWRpbyB0aHJlYWQgZm9yIHBlcmZv
cm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0bworICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhl
IGZvbGxvd2luZyBhbGxvY2F0aW9uKHMpLgogICAgIERpc2FibGVNYWxsb2NSZXN0cmljdGlvbnNG
b3JDdXJyZW50VGhyZWFkU2NvcGUgZGlzYWJsZU1hbGxvY1Jlc3RyaWN0aW9uczsKIAogICAgIFNo
YXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>