<?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>222658</bug_id>
          
          <creation_ts>2021-03-03 09:01:21 -0800</creation_ts>
          <short_desc>Limit HashTable entry size to 500 bytes</short_desc>
          <delta_ts>2021-03-03 21:00:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=222696</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1735303</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-03 09:01:21 -0800</bug_when>
    <thetext>Limit HashTable entry size to 500 bytes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735306</commentid>
    <comment_count>1</comment_count>
      <attachid>422097</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-03 09:05:04 -0800</bug_when>
    <thetext>Created attachment 422097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735372</commentid>
    <comment_count>2</comment_count>
      <attachid>422121</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-03 10:56:35 -0800</bug_when>
    <thetext>Created attachment 422121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735415</commentid>
    <comment_count>3</comment_count>
      <attachid>422121</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-03-03 11:40:31 -0800</bug_when>
    <thetext>Comment on attachment 422121
Patch

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

r=me

&gt; Source/WebCore/ChangeLog:14
&gt; +        Moving large structures inside HashTables is slower than just moving a pointer.
&gt; +        There is a point at which it becomes more efficient to add a separate allocation
&gt; +        rather than have gigantic HashTables that use all that memory for each empty slot
&gt; +        and use all those read and write operations to move when rehashing.  I&apos;m not sure
&gt; +        exactly where that point is, but I&apos;m pretty sure it&apos;s less than 500 bytes.  This
&gt; +        introduces a limit and removes the two largest HashTables in WebKit, replacing their
&gt; +        values with std::unique_ptr to save memory and time.

Totally right. Furthermore, HashTable allocates large spaces to keep O(1) access. If entry size is large, we waste much more memory than using a pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735454</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-03 12:54:32 -0800</bug_when>
    <thetext>Committed r273832: &lt;https://commits.webkit.org/r273832&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 422121.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735457</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-03 12:55:35 -0800</bug_when>
    <thetext>&lt;rdar://problem/74999075&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735609</commentid>
    <comment_count>6</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-03-03 16:49:41 -0800</bug_when>
    <thetext>Reverted r273832 for reason:

26 inspector tests failing a new assert added with this change

Committed r273859 (234825@main): &lt;https://commits.webkit.org/234825@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735612</commentid>
    <comment_count>7</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-03-03 16:51:23 -0800</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #6)
&gt; Reverted r273832 for reason:
&gt; 
&gt; 26 inspector tests failing a new assert added with this change
Details in https://bugs.webkit.org/show_bug.cgi?id=222696

SHOULD NEVER BE REACHED
/Volumes/Data/worker/bigsur-debug/build/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h(145) : void WebKit::NetworkConnectionToWebProcess::takeNetworkLoadInformationMetrics(WebKit::ResourceLoadIdentifier, CompletionHandler&lt;void (const WebCore::NetworkLoadMetrics &amp;)&gt; &amp;&amp;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735654</commentid>
    <comment_count>8</comment_count>
      <attachid>422177</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-03 19:54:27 -0800</bug_when>
    <thetext>Created attachment 422177
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735660</commentid>
    <comment_count>9</comment_count>
      <attachid>422177</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-03-03 20:27:36 -0800</bug_when>
    <thetext>Comment on attachment 422177
Patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735665</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-03 21:00:15 -0800</bug_when>
    <thetext>Committed r273872: &lt;https://commits.webkit.org/r273872&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 422177.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422097</attachid>
            <date>2021-03-03 09:05:04 -0800</date>
            <delta_ts>2021-03-03 10:56:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222658-20210303090504.patch</filename>
            <type>text/plain</type>
            <size>11010</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVmOWUwMjcxNjU1YWUzNjJhYzcxMzEx
YWZjNzhiZDJiNGI1YTMwM2IuLjRlNTc5MTY5ZDFiYWQ0N2JmYzNjZmM1NGNjMGY3NDlmZmZkYjkz
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDMtMDMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBMaW1pdCBIYXNoVGFibGUgZW50cnkg
c2l6ZSB0byA1MDAgYnl0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMjY1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd3RmL0hhc2hUYWJsZS5oOgorICAgICAgICAoV1RGOjpLZXlUcmFpdHM+Ojpp
bmxpbmVMb29rdXApOgorCiAyMDIxLTAzLTAyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KIAogICAgICAgICBFbmFibGUgTUVESUFfU09VUkNFIGluIElPUyBTaW11bGF0b3IKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA0ZTI0NDBkM2I2MmI5YjQwODMyODQ2YjUyZDQxMTUyOTJlMGJhZDkzLi41MTBl
ZmJhYWY1MDU3MmE5NzU4NjE5YjQ1NTU5NWFhYmU3YzIzMTU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMjEtMDMtMDMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBMaW1pdCBIYXNoVGFibGUgZW50cnkgc2l6ZSB0byA1MDAgYnl0
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjY1
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmlu
ZyBsYXJnZSBzdHJ1Y3R1cmVzIGluc2lkZSBIYXNoVGFibGVzIGlzIHNsb3dlciB0aGFuIGp1c3Qg
bW92aW5nIGEgcG9pbnRlci4KKyAgICAgICAgVGhlcmUgaXMgYSBwb2ludCBhdCB3aGljaCBpdCBi
ZWNvbWVzIG1vcmUgZWZmaWNpZW50IHRvIGFkZCBhIHNlcGFyYXRlIGFsbG9jYXRpb24KKyAgICAg
ICAgcmF0aGVyIHRoYW4gaGF2ZSBnaWdhbnRpYyBIYXNoVGFibGVzIHRoYXQgdXNlIGFsbCB0aGF0
IG1lbW9yeSBmb3IgZWFjaCBlbXB0eSBzbG90CisgICAgICAgIGFuZCB1c2UgYWxsIHRob3NlIHJl
YWQgYW5kIHdyaXRlIG9wZXJhdGlvbnMgdG8gbW92ZSB3aGVuIHJlaGFzaGluZy4gIEknbSBub3Qg
c3VyZQorICAgICAgICBleGFjdGx5IHdoZXJlIHRoYXQgcG9pbnQgaXMsIGJ1dCBJJ20gcHJldHR5
IHN1cmUgaXQncyBsZXNzIHRoYW4gNTAwIGJ5dGVzLiAgVGhpcworICAgICAgICBpbnRyb2R1Y2Vz
IGEgbGltaXQgYW5kIHJlbW92ZXMgdGhlIHR3byBsYXJnZXN0IEhhc2hUYWJsZXMgaW4gV2ViS2l0
LCByZXBsYWNpbmcgdGhlaXIKKyAgICAgICAgdmFsdWVzIHdpdGggc3RkOjp1bmlxdWVfcHRyIHRv
IHNhdmUgbWVtb3J5IGFuZCB0aW1lLgorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9ET01DYWNo
ZUVuZ2luZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRJbmZvcm1h
dGlvbi5oOgorCiAyMDIxLTAzLTAyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29t
PgogCiAgICAgICAgIFRoZSBsYXlvdXQgb2YgU1ZHSW1hZ2Ugc2hvdWxkIGZvcmNlIHRoZSBsYXlv
dXQgZm9yIGl0cyBjbGllbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYyODA0Mzc5ZWRlNmM4ZGUyMjQ5NjFhM2Jj
MTdjMTZiYWJiZGM4YzguLmNkODViN2ZlNGE5Mjc0M2Q3ZGNlZWRhYzczODA5ODYxOGFhYWJiN2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDMtMDMgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBMaW1pdCBIYXNoVGFibGUgZW50
cnkgc2l6ZSB0byA1MDAgYnl0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjY1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omdl
dE5ldHdvcmtMb2FkSW5mb3JtYXRpb25SZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXROZXR3b3JrTG9hZEludGVybWVkaWF0ZUluZm9y
bWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnRha2VOZXR3b3JrTG9hZEluZm9ybWF0aW9uTWV0cmljcyk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphZGROZXR3b3JrTG9hZEluZm9ybWF0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmFkZE5ldHdv
cmtMb2FkSW5mb3JtYXRpb25NZXRyaWNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0
b3JhZ2U6OkNhY2hlczo6d3JpdGVSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3Jh
Z2U6OkNhY2hlczo6cmVhZFJlY29yZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUv
Q2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmg6CisKIDIwMjEtMDMtMDIgIFJpY2t5IE1vbmRlbGxv
ICA8cm1vbmRlbGxvQGFwcGxlLmNvbT4KIAogICAgICAgICBVbmNvbmRpdGlvbmFsbHkgcmV0dXJu
IGluZm9ybWF0aW9uIGluIF9hdXRvZmlsbENvbnRleHQgU1BJIHdoZW4gYSBmaWVsZCBpcyBmb2N1
c2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuaCBiL1NvdXJjZS9XVEYv
d3RmL0hhc2hUYWJsZS5oCmluZGV4IDI3MmYwODY2OTc0NzY4YzZhMGJlZTBhNzdjMWQ3NzNmOTZl
OWE5YTIuLjM0OWZlNzY4NWI4N2YwZjU4OWFkYWEyYjU3ZTViODRlZDMzNjFiYTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hhc2hU
YWJsZS5oCkBAIC02NjUsNiArNjY1LDggQEAgREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lE
RU5USUZJRVIoSGFzaFRhYmxlKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoVHJhbnNsYXRv
ciwgdHlwZW5hbWUgVD4KICAgICBBTFdBWVNfSU5MSU5FIGF1dG8gSGFzaFRhYmxlPEtleSwgVmFs
dWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHM+OjppbmxpbmVM
b29rdXAoY29uc3QgVCYga2V5KSAtPiBWYWx1ZVR5cGUqCiAgICAgeworICAgICAgICBzdGF0aWNf
YXNzZXJ0KHNpemVvZihLZXkpICsgc2l6ZW9mKFZhbHVlKSA8IDUwMCwgIllvdXIgSGFzaFRhYmxl
IHR5cGVzIGFyZSB0b28gYmlnIHRvIGVmZmljaWVudGx5IG1vdmUgd2hlbiByZWhhc2hpbmcuICBD
b25zaWRlciB1c2luZyBzdGQ6OnVuaXF1ZV9wdHIgaW5zdGVhZCIpOworCiAgICAgICAgIGNoZWNr
S2V5PEhhc2hUcmFuc2xhdG9yPihrZXkpOwogCiAgICAgICAgIHVuc2lnbmVkIGsgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5oCmluZGV4IDQ5NTk0
ZTU4MmI4MDFjNjcxZGM1YjIzOTA3YWEwMGYyYzg0ZDMxZWIuLjA3YTE4MjNlNTlkMjY4NjQ3NDhk
NDEwNzBlZTRhMjI4M2U4ZjM1NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvRE9NQ2FjaGVFbmdpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L0RPTUNhY2hlRW5naW5lLmgKQEAgLTYxLDYgKzYxLDcgQEAgUmVzcG9uc2VCb2R5IGlzb2xhdGVk
UmVzcG9uc2VCb2R5KGNvbnN0IFJlc3BvbnNlQm9keSYpOwogV0VCQ09SRV9FWFBPUlQgUmVzcG9u
c2VCb2R5IGNvcHlSZXNwb25zZUJvZHkoY29uc3QgUmVzcG9uc2VCb2R5Jik7CiAKIHN0cnVjdCBS
ZWNvcmQgeworICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKICAgICBXRUJDT1JF
X0VYUE9SVCBSZWNvcmQgY29weSgpIGNvbnN0OwogCiAgICAgdWludDY0X3QgaWRlbnRpZmllcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRJ
bmZvcm1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9h
ZEluZm9ybWF0aW9uLmgKaW5kZXggODZiMzdkZGE1NDczNDdjZjYyZDEzODJjNjNkMmM1YmFjMjgx
MGU1Ny4uYzFiMjIzNzhmZTU1NmVkMjI3NWY2ZDNkNWJhNjM4Nzk3YTgyZjQyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZEluZm9ybWF0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZEluZm9y
bWF0aW9uLmgKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0
IE5ldHdvcmtUcmFuc2FjdGlvbkluZm9ybWF0aW9uIHsKLSAgICBlbnVtIGNsYXNzIFR5cGUgeyBS
ZWRpcmVjdGlvbiwgUHJlZmxpZ2h0IH07CisgICAgZW51bSBjbGFzcyBUeXBlIDogYm9vbCB7IFJl
ZGlyZWN0aW9uLCBQcmVmbGlnaHQgfTsKICAgICBUeXBlIHR5cGU7CiAgICAgUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3Q7CiAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZTsKQEAgLTQ0LDI2ICs0
NCwxMyBAQCBzdHJ1Y3QgTmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24gewogfTsKIAogc3Ry
dWN0IE5ldHdvcmtMb2FkSW5mb3JtYXRpb24geworICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FM
TE9DQVRFRDsKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBSZXNvdXJjZVJlc3Bv
bnNlIHJlc3BvbnNlOwogICAgIE5ldHdvcmtMb2FkTWV0cmljcyBtZXRyaWNzOwogICAgIFZlY3Rv
cjxOZXR3b3JrVHJhbnNhY3Rpb25JbmZvcm1hdGlvbj4gdHJhbnNhY3Rpb25zOwogfTsKIAotfQot
Ci1uYW1lc3BhY2UgV1RGIHsKLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb246OlR5cGU+IHsKLSAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpOZXR3b3JrVHJhbnNhY3Rpb25JbmZvcm1h
dGlvbjo6VHlwZSwKLSAgICAgICAgV2ViQ29yZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRp
b246OlR5cGU6OlJlZGlyZWN0aW9uLAotICAgICAgICBXZWJDb3JlOjpOZXR3b3JrVHJhbnNhY3Rp
b25JbmZvcm1hdGlvbjo6VHlwZTo6UHJlZmxpZ2h0Ci0gICAgPjsKLX07Ci19Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gaW5saW5lIHZvaWQgTmV0d29y
a1RyYW5zYWN0aW9uSW5mb3JtYXRpb246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ewogICAgIGVuY29kZXIgPDwgdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCA1YTRi
MmI4OTM3ZDI1MDEzMTJlOWQ3ZTE5NDIyMjkxZWJmMjE4MGYyLi41NWMzMGVkNTYzZjI1ZWVkMjc5
NTA5NjQ2Y2FmMjlmZTRlMjFlZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0xMjQs
MzEgKzEyNCw0MCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldE5ldHdvcmtMb2FkSW5mb3JtYXRp
b25SZXNwb25zZShSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogICAgIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobV9uZXR3b3JrTG9h
ZEluZm9ybWF0aW9uQnlJRC5nZXQoaWRlbnRpZmllcikucmVzcG9uc2UpOworICAgICAgICBpZiAo
YXV0byogaW5mbyA9IG1fbmV0d29ya0xvYWRJbmZvcm1hdGlvbkJ5SUQuZ2V0KGlkZW50aWZpZXIp
KQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGluZm8tPnJlc3BvbnNlKTsK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KHsgfSk7CiAgICAgfQogCiAgICAgdm9pZCBnZXROZXR3b3JrTG9hZEludGVybWVkaWF0ZUluZm9y
bWF0aW9uKFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRp
b24+Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihtX25ldHdvcmtMb2FkSW5mb3JtYXRpb25CeUlELmdldChpZGVudGlmaWVyKS50cmFuc2Fj
dGlvbnMpOworICAgICAgICBpZiAoYXV0byogaW5mbyA9IG1fbmV0d29ya0xvYWRJbmZvcm1hdGlv
bkJ5SUQuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoaW5m
by0+dHJhbnNhY3Rpb25zKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CiAgICAgfQogCiAgICAgdm9pZCB0YWtlTmV0d29ya0xv
YWRJbmZvcm1hdGlvbk1ldHJpY3MoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAgIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
bV9uZXR3b3JrTG9hZEluZm9ybWF0aW9uQnlJRC50YWtlKGlkZW50aWZpZXIpLm1ldHJpY3MpOwor
ICAgICAgICBpZiAoYXV0byBpbmZvID0gbV9uZXR3b3JrTG9hZEluZm9ybWF0aW9uQnlJRC50YWtl
KGlkZW50aWZpZXIpKQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoaW5mby0+bWV0cmlj
cyk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcih7IH0pOwogICAgIH0KIAogICAgIHZvaWQgYWRkTmV0d29ya0xvYWRJbmZvcm1hdGlvbihS
ZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6Ok5ldHdvcmtMb2FkSW5m
b3JtYXRpb24mJiBpbmZvcm1hdGlvbikKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9uZXR3b3Jr
TG9hZEluZm9ybWF0aW9uQnlJRC5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgICAgIG1fbmV0
d29ya0xvYWRJbmZvcm1hdGlvbkJ5SUQuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUoaW5mb3JtYXRp
b24pKTsKKyAgICAgICAgbV9uZXR3b3JrTG9hZEluZm9ybWF0aW9uQnlJRC5hZGQoaWRlbnRpZmll
ciwgbWFrZVVuaXF1ZTxXZWJDb3JlOjpOZXR3b3JrTG9hZEluZm9ybWF0aW9uPihXVEZNb3ZlKGlu
Zm9ybWF0aW9uKSkpOwogICAgIH0KIAogICAgIHZvaWQgYWRkTmV0d29ya0xvYWRJbmZvcm1hdGlv
bk1ldHJpY3MoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpOZXR3b3JrTG9hZE1ldHJpY3MmIG1ldHJpY3MpCiAgICAgewogICAgICAgICBBU1NFUlQobV9u
ZXR3b3JrTG9hZEluZm9ybWF0aW9uQnlJRC5jb250YWlucyhpZGVudGlmaWVyKSk7CiAgICAgICAg
IG1fbmV0d29ya0xvYWRJbmZvcm1hdGlvbkJ5SUQuZW5zdXJlKGlkZW50aWZpZXIsIFtdIHsKLSAg
ICAgICAgICAgIHJldHVybiBXZWJDb3JlOjpOZXR3b3JrTG9hZEluZm9ybWF0aW9uIHsgfTsKLSAg
ICAgICAgfSkuaXRlcmF0b3ItPnZhbHVlLm1ldHJpY3MgPSBtZXRyaWNzOworICAgICAgICAgICAg
cmV0dXJuIG1ha2VVbmlxdWU8V2ViQ29yZTo6TmV0d29ya0xvYWRJbmZvcm1hdGlvbj4oKTsKKyAg
ICAgICAgfSkuaXRlcmF0b3ItPnZhbHVlLT5tZXRyaWNzID0gbWV0cmljczsKICAgICB9CiAKICAg
ICB2b2lkIHJlbW92ZU5ldHdvcmtMb2FkSW5mb3JtYXRpb24oUmVzb3VyY2VMb2FkSWRlbnRpZmll
ciBpZGVudGlmaWVyKQpAQCAtMzU3LDcgKzM2Niw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxT
dHJpbmcsIFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U+PiBtX2Jsb2JEYXRh
RmlsZVJlZmVyZW5jZXM7CiAgICAgVmVjdG9yPFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tl
cj4gbV9uZXR3b3JrQWN0aXZpdHlUcmFja2VyczsKIAotICAgIEhhc2hNYXA8UmVzb3VyY2VMb2Fk
SWRlbnRpZmllciwgV2ViQ29yZTo6TmV0d29ya0xvYWRJbmZvcm1hdGlvbj4gbV9uZXR3b3JrTG9h
ZEluZm9ybWF0aW9uQnlJRDsKKyAgICBIYXNoTWFwPFJlc291cmNlTG9hZElkZW50aWZpZXIsIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpOZXR3b3JrTG9hZEluZm9ybWF0aW9uPj4gbV9uZXR3b3Jr
TG9hZEluZm9ybWF0aW9uQnlJRDsKIAogCiAjaWYgVVNFKExJQldFQlJUQykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2Fj
aGVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdl
RW5naW5lQ2FjaGVzLmNwcAppbmRleCAwYjA5YjgwNjc0ZGJjMTc0ZDJhZTUzNTEzMjE1NjE1Njcz
ZTc1Mzg1Li4wNWI4NzVkMTg0NDM1ZjEzNDY5YTYyNWE3MmI3MzE1YjUxOTZmZmJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2lu
ZUNhY2hlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNo
ZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwCkBAIC01NDQsNyArNTQ0LDcgQEAgdm9pZCBDYWNoZXM6
OndyaXRlUmVjb3JkKGNvbnN0IENhY2hlJiBjYWNoZSwgY29uc3QgUmVjb3JkSW5mb3JtYXRpb24m
IHJlY29yZEluZm8KICAgICBtX3NpemUgLT0gcHJldmlvdXNSZWNvcmRTaXplOwogCiAgICAgaWYg
KCFzaG91bGRQZXJzaXN0KCkpIHsKLSAgICAgICAgbV92b2xhdGlsZVN0b3JhZ2Uuc2V0KHJlY29y
ZEluZm9ybWF0aW9uLmtleSwgV1RGTW92ZShyZWNvcmQpKTsKKyAgICAgICAgbV92b2xhdGlsZVN0
b3JhZ2Uuc2V0KHJlY29yZEluZm9ybWF0aW9uLmtleSwgbWFrZVVuaXF1ZTxSZWNvcmQ+KFdURk1v
dmUocmVjb3JkKSkpOwogICAgICAgICBjYWxsYmFjayhXVEY6Om51bGxvcHQpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtNTcxLDcgKzU3MSw3IEBAIHZvaWQgQ2FjaGVzOjpyZWFkUmVjb3Jk
KGNvbnN0IE5ldHdvcmtDYWNoZTo6S2V5JiBrZXksIFdURjo6RnVuY3Rpb248dm9pZChFeHBlY3Rl
CiAgICAgICAgICAgICBjYWxsYmFjayhtYWtlVW5leHBlY3RlZChFcnJvcjo6SW50ZXJuYWwpKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBjYWxsYmFjayhpdGVyYXRv
ci0+dmFsdWUuY29weSgpKTsKKyAgICAgICAgY2FsbGJhY2soaXRlcmF0b3ItPnZhbHVlLT5jb3B5
KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuaApp
bmRleCA1ZDM5NGEwZTQ4ODU3YjAyNWNhYTQ4MzRhZDI2YmU4NDdkZDlmNTU2Li4wNjAxZWU2YjJk
NzRlYzFiZjg3MWIxNGViYTlkMWEyNTZlNDY4ZGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVz
LmgKQEAgLTEwOSw3ICsxMDksNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxDYWNoZT4gbV9jYWNo
ZXM7CiAgICAgVmVjdG9yPENhY2hlPiBtX3JlbW92ZWRDYWNoZXM7CiAgICAgUmVmUHRyPE5ldHdv
cmtDYWNoZTo6U3RvcmFnZT4gbV9zdG9yYWdlOwotICAgIEhhc2hNYXA8TmV0d29ya0NhY2hlOjpL
ZXksIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmQ+IG1fdm9sYXRpbGVTdG9yYWdlOwor
ICAgIEhhc2hNYXA8TmV0d29ya0NhY2hlOjpLZXksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpE
T01DYWNoZUVuZ2luZTo6UmVjb3JkPj4gbV92b2xhdGlsZVN0b3JhZ2U7CiAgICAgbXV0YWJsZSBP
cHRpb25hbDxOZXR3b3JrQ2FjaGU6OlNhbHQ+IG1fdm9sYXRpbGVTYWx0OwogICAgIFZlY3RvcjxX
ZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q29tcGxldGlvbkNhbGxiYWNrPiBtX3BlbmRpbmdJbml0
aWFsaXphdGlvbkNhbGxiYWNrczsKICAgICBib29sIG1faXNXcml0aW5nQ2FjaGVzVG9EaXNrIHsg
ZmFsc2UgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422121</attachid>
            <date>2021-03-03 10:56:35 -0800</date>
            <delta_ts>2021-03-03 19:54:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222658-20210303105634.patch</filename>
            <type>text/plain</type>
            <size>11490</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVmOWUwMjcxNjU1YWUzNjJhYzcxMzEx
YWZjNzhiZDJiNGI1YTMwM2IuLjRlNTc5MTY5ZDFiYWQ0N2JmYzNjZmM1NGNjMGY3NDlmZmZkYjkz
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDMtMDMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBMaW1pdCBIYXNoVGFibGUgZW50cnkg
c2l6ZSB0byA1MDAgYnl0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMjY1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd3RmL0hhc2hUYWJsZS5oOgorICAgICAgICAoV1RGOjpLZXlUcmFpdHM+Ojpp
bmxpbmVMb29rdXApOgorCiAyMDIxLTAzLTAyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KIAogICAgICAgICBFbmFibGUgTUVESUFfU09VUkNFIGluIElPUyBTaW11bGF0b3IKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA0ZTI0NDBkM2I2MmI5YjQwODMyODQ2YjUyZDQxMTUyOTJlMGJhZDkzLi41MTBl
ZmJhYWY1MDU3MmE5NzU4NjE5YjQ1NTU5NWFhYmU3YzIzMTU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMjEtMDMtMDMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBMaW1pdCBIYXNoVGFibGUgZW50cnkgc2l6ZSB0byA1MDAgYnl0
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjY1
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmlu
ZyBsYXJnZSBzdHJ1Y3R1cmVzIGluc2lkZSBIYXNoVGFibGVzIGlzIHNsb3dlciB0aGFuIGp1c3Qg
bW92aW5nIGEgcG9pbnRlci4KKyAgICAgICAgVGhlcmUgaXMgYSBwb2ludCBhdCB3aGljaCBpdCBi
ZWNvbWVzIG1vcmUgZWZmaWNpZW50IHRvIGFkZCBhIHNlcGFyYXRlIGFsbG9jYXRpb24KKyAgICAg
ICAgcmF0aGVyIHRoYW4gaGF2ZSBnaWdhbnRpYyBIYXNoVGFibGVzIHRoYXQgdXNlIGFsbCB0aGF0
IG1lbW9yeSBmb3IgZWFjaCBlbXB0eSBzbG90CisgICAgICAgIGFuZCB1c2UgYWxsIHRob3NlIHJl
YWQgYW5kIHdyaXRlIG9wZXJhdGlvbnMgdG8gbW92ZSB3aGVuIHJlaGFzaGluZy4gIEknbSBub3Qg
c3VyZQorICAgICAgICBleGFjdGx5IHdoZXJlIHRoYXQgcG9pbnQgaXMsIGJ1dCBJJ20gcHJldHR5
IHN1cmUgaXQncyBsZXNzIHRoYW4gNTAwIGJ5dGVzLiAgVGhpcworICAgICAgICBpbnRyb2R1Y2Vz
IGEgbGltaXQgYW5kIHJlbW92ZXMgdGhlIHR3byBsYXJnZXN0IEhhc2hUYWJsZXMgaW4gV2ViS2l0
LCByZXBsYWNpbmcgdGhlaXIKKyAgICAgICAgdmFsdWVzIHdpdGggc3RkOjp1bmlxdWVfcHRyIHRv
IHNhdmUgbWVtb3J5IGFuZCB0aW1lLgorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9ET01DYWNo
ZUVuZ2luZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRJbmZvcm1h
dGlvbi5oOgorCiAyMDIxLTAzLTAyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29t
PgogCiAgICAgICAgIFRoZSBsYXlvdXQgb2YgU1ZHSW1hZ2Ugc2hvdWxkIGZvcmNlIHRoZSBsYXlv
dXQgZm9yIGl0cyBjbGllbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYyODA0Mzc5ZWRlNmM4ZGUyMjQ5NjFhM2Jj
MTdjMTZiYWJiZGM4YzguLmNkODViN2ZlNGE5Mjc0M2Q3ZGNlZWRhYzczODA5ODYxOGFhYWJiN2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDMtMDMgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBMaW1pdCBIYXNoVGFibGUgZW50
cnkgc2l6ZSB0byA1MDAgYnl0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjY1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omdl
dE5ldHdvcmtMb2FkSW5mb3JtYXRpb25SZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXROZXR3b3JrTG9hZEludGVybWVkaWF0ZUluZm9y
bWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnRha2VOZXR3b3JrTG9hZEluZm9ybWF0aW9uTWV0cmljcyk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphZGROZXR3b3JrTG9hZEluZm9ybWF0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmFkZE5ldHdv
cmtMb2FkSW5mb3JtYXRpb25NZXRyaWNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0
b3JhZ2U6OkNhY2hlczo6d3JpdGVSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3Jh
Z2U6OkNhY2hlczo6cmVhZFJlY29yZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUv
Q2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmg6CisKIDIwMjEtMDMtMDIgIFJpY2t5IE1vbmRlbGxv
ICA8cm1vbmRlbGxvQGFwcGxlLmNvbT4KIAogICAgICAgICBVbmNvbmRpdGlvbmFsbHkgcmV0dXJu
IGluZm9ybWF0aW9uIGluIF9hdXRvZmlsbENvbnRleHQgU1BJIHdoZW4gYSBmaWVsZCBpcyBmb2N1
c2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuaCBiL1NvdXJjZS9XVEYv
d3RmL0hhc2hUYWJsZS5oCmluZGV4IDI3MmYwODY2OTc0NzY4YzZhMGJlZTBhNzdjMWQ3NzNmOTZl
OWE5YTIuLjM0OWZlNzY4NWI4N2YwZjU4OWFkYWEyYjU3ZTViODRlZDMzNjFiYTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hhc2hU
YWJsZS5oCkBAIC02NjUsNiArNjY1LDggQEAgREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lE
RU5USUZJRVIoSGFzaFRhYmxlKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoVHJhbnNsYXRv
ciwgdHlwZW5hbWUgVD4KICAgICBBTFdBWVNfSU5MSU5FIGF1dG8gSGFzaFRhYmxlPEtleSwgVmFs
dWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHM+OjppbmxpbmVM
b29rdXAoY29uc3QgVCYga2V5KSAtPiBWYWx1ZVR5cGUqCiAgICAgeworICAgICAgICBzdGF0aWNf
YXNzZXJ0KHNpemVvZihLZXkpICsgc2l6ZW9mKFZhbHVlKSA8IDUwMCwgIllvdXIgSGFzaFRhYmxl
IHR5cGVzIGFyZSB0b28gYmlnIHRvIGVmZmljaWVudGx5IG1vdmUgd2hlbiByZWhhc2hpbmcuICBD
b25zaWRlciB1c2luZyBzdGQ6OnVuaXF1ZV9wdHIgaW5zdGVhZCIpOworCiAgICAgICAgIGNoZWNr
S2V5PEhhc2hUcmFuc2xhdG9yPihrZXkpOwogCiAgICAgICAgIHVuc2lnbmVkIGsgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5oCmluZGV4IDQ5NTk0
ZTU4MmI4MDFjNjcxZGM1YjIzOTA3YWEwMGYyYzg0ZDMxZWIuLjA3YTE4MjNlNTlkMjY4NjQ3NDhk
NDEwNzBlZTRhMjI4M2U4ZjM1NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvRE9NQ2FjaGVFbmdpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L0RPTUNhY2hlRW5naW5lLmgKQEAgLTYxLDYgKzYxLDcgQEAgUmVzcG9uc2VCb2R5IGlzb2xhdGVk
UmVzcG9uc2VCb2R5KGNvbnN0IFJlc3BvbnNlQm9keSYpOwogV0VCQ09SRV9FWFBPUlQgUmVzcG9u
c2VCb2R5IGNvcHlSZXNwb25zZUJvZHkoY29uc3QgUmVzcG9uc2VCb2R5Jik7CiAKIHN0cnVjdCBS
ZWNvcmQgeworICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKICAgICBXRUJDT1JF
X0VYUE9SVCBSZWNvcmQgY29weSgpIGNvbnN0OwogCiAgICAgdWludDY0X3QgaWRlbnRpZmllcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRJ
bmZvcm1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9h
ZEluZm9ybWF0aW9uLmgKaW5kZXggODZiMzdkZGE1NDczNDdjZjYyZDEzODJjNjNkMmM1YmFjMjgx
MGU1Ny4uYzFiMjIzNzhmZTU1NmVkMjI3NWY2ZDNkNWJhNjM4Nzk3YTgyZjQyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZEluZm9ybWF0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZEluZm9y
bWF0aW9uLmgKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0
IE5ldHdvcmtUcmFuc2FjdGlvbkluZm9ybWF0aW9uIHsKLSAgICBlbnVtIGNsYXNzIFR5cGUgeyBS
ZWRpcmVjdGlvbiwgUHJlZmxpZ2h0IH07CisgICAgZW51bSBjbGFzcyBUeXBlIDogYm9vbCB7IFJl
ZGlyZWN0aW9uLCBQcmVmbGlnaHQgfTsKICAgICBUeXBlIHR5cGU7CiAgICAgUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3Q7CiAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZTsKQEAgLTQ0LDI2ICs0
NCwxMyBAQCBzdHJ1Y3QgTmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24gewogfTsKIAogc3Ry
dWN0IE5ldHdvcmtMb2FkSW5mb3JtYXRpb24geworICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FM
TE9DQVRFRDsKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBSZXNvdXJjZVJlc3Bv
bnNlIHJlc3BvbnNlOwogICAgIE5ldHdvcmtMb2FkTWV0cmljcyBtZXRyaWNzOwogICAgIFZlY3Rv
cjxOZXR3b3JrVHJhbnNhY3Rpb25JbmZvcm1hdGlvbj4gdHJhbnNhY3Rpb25zOwogfTsKIAotfQot
Ci1uYW1lc3BhY2UgV1RGIHsKLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb246OlR5cGU+IHsKLSAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpOZXR3b3JrVHJhbnNhY3Rpb25JbmZvcm1h
dGlvbjo6VHlwZSwKLSAgICAgICAgV2ViQ29yZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRp
b246OlR5cGU6OlJlZGlyZWN0aW9uLAotICAgICAgICBXZWJDb3JlOjpOZXR3b3JrVHJhbnNhY3Rp
b25JbmZvcm1hdGlvbjo6VHlwZTo6UHJlZmxpZ2h0Ci0gICAgPjsKLX07Ci19Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gaW5saW5lIHZvaWQgTmV0d29y
a1RyYW5zYWN0aW9uSW5mb3JtYXRpb246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ewogICAgIGVuY29kZXIgPDwgdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCA1YTRi
MmI4OTM3ZDI1MDEzMTJlOWQ3ZTE5NDIyMjkxZWJmMjE4MGYyLi45OTIxMTBhYzk3MDI0MzgyNGFh
YWM1MDg3MzAxZWE1NGRhYmQxOGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0xMjQs
MzEgKzEyNCw0MCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldE5ldHdvcmtMb2FkSW5mb3JtYXRp
b25SZXNwb25zZShSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogICAgIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobV9uZXR3b3JrTG9h
ZEluZm9ybWF0aW9uQnlJRC5nZXQoaWRlbnRpZmllcikucmVzcG9uc2UpOworICAgICAgICBpZiAo
YXV0byogaW5mbyA9IG1fbmV0d29ya0xvYWRJbmZvcm1hdGlvbkJ5SUQuZ2V0KGlkZW50aWZpZXIp
KQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGluZm8tPnJlc3BvbnNlKTsK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KHsgfSk7CiAgICAgfQogCiAgICAgdm9pZCBnZXROZXR3b3JrTG9hZEludGVybWVkaWF0ZUluZm9y
bWF0aW9uKFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRp
b24+Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihtX25ldHdvcmtMb2FkSW5mb3JtYXRpb25CeUlELmdldChpZGVudGlmaWVyKS50cmFuc2Fj
dGlvbnMpOworICAgICAgICBpZiAoYXV0byogaW5mbyA9IG1fbmV0d29ya0xvYWRJbmZvcm1hdGlv
bkJ5SUQuZ2V0KGlkZW50aWZpZXIpKQorICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKGluZm8tPnRyYW5zYWN0aW9ucyk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwogICAgIH0KIAogICAgIHZvaWQgdGFrZU5l
dHdvcmtMb2FkSW5mb3JtYXRpb25NZXRyaWNzKFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpOZXR3b3JrTG9hZE1l
dHJpY3MmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAgICB7Ci0gICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKG1fbmV0d29ya0xvYWRJbmZvcm1hdGlvbkJ5SUQudGFrZShpZGVudGlmaWVyKS5tZXRy
aWNzKTsKKyAgICAgICAgaWYgKGF1dG8gaW5mbyA9IG1fbmV0d29ya0xvYWRJbmZvcm1hdGlvbkJ5
SUQudGFrZShpZGVudGlmaWVyKSkKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxl
cihpbmZvLT5tZXRyaWNzKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CiAgICAgfQogCiAgICAgdm9pZCBhZGROZXR3b3JrTG9h
ZEluZm9ybWF0aW9uKFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6
TmV0d29ya0xvYWRJbmZvcm1hdGlvbiYmIGluZm9ybWF0aW9uKQogICAgIHsKICAgICAgICAgQVNT
RVJUKCFtX25ldHdvcmtMb2FkSW5mb3JtYXRpb25CeUlELmNvbnRhaW5zKGlkZW50aWZpZXIpKTsK
LSAgICAgICAgbV9uZXR3b3JrTG9hZEluZm9ybWF0aW9uQnlJRC5hZGQoaWRlbnRpZmllciwgV1RG
TW92ZShpbmZvcm1hdGlvbikpOworICAgICAgICBtX25ldHdvcmtMb2FkSW5mb3JtYXRpb25CeUlE
LmFkZChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPFdlYkNvcmU6Ok5ldHdvcmtMb2FkSW5mb3JtYXRp
b24+KFdURk1vdmUoaW5mb3JtYXRpb24pKSk7CiAgICAgfQogCiAgICAgdm9pZCBhZGROZXR3b3Jr
TG9hZEluZm9ybWF0aW9uTWV0cmljcyhSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbWV0cmljcykKICAgICB7CiAgICAg
ICAgIEFTU0VSVChtX25ldHdvcmtMb2FkSW5mb3JtYXRpb25CeUlELmNvbnRhaW5zKGlkZW50aWZp
ZXIpKTsKICAgICAgICAgbV9uZXR3b3JrTG9hZEluZm9ybWF0aW9uQnlJRC5lbnN1cmUoaWRlbnRp
ZmllciwgW10gewotICAgICAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5ldHdvcmtMb2FkSW5mb3Jt
YXRpb24geyB9OwotICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWUubWV0cmljcyA9IG1ldHJpY3M7
CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxXZWJDb3JlOjpOZXR3b3JrTG9hZEluZm9y
bWF0aW9uPigpOworICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWUtPm1ldHJpY3MgPSBtZXRyaWNz
OwogICAgIH0KIAogICAgIHZvaWQgcmVtb3ZlTmV0d29ya0xvYWRJbmZvcm1hdGlvbihSZXNvdXJj
ZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIpCkBAIC0zNTcsNyArMzY2LDcgQEAgcHJpdmF0ZToK
ICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5j
ZT4+IG1fYmxvYkRhdGFGaWxlUmVmZXJlbmNlczsKICAgICBWZWN0b3I8UmVzb3VyY2VOZXR3b3Jr
QWN0aXZpdHlUcmFja2VyPiBtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzOwogCi0gICAgSGFzaE1h
cDxSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpOZXR3b3JrTG9hZEluZm9ybWF0aW9u
PiBtX25ldHdvcmtMb2FkSW5mb3JtYXRpb25CeUlEOworICAgIEhhc2hNYXA8UmVzb3VyY2VMb2Fk
SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok5ldHdvcmtMb2FkSW5mb3JtYXRp
b24+PiBtX25ldHdvcmtMb2FkSW5mb3JtYXRpb25CeUlEOwogCiAKICNpZiBVU0UoTElCV0VCUlRD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0
b3JhZ2VFbmdpbmVDYWNoZXMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwCmluZGV4IDBiMDliODA2NzRkYmMxNzRkMmFl
NTM1MTMyMTU2MTU2NzNlNzUzODUuLjhmMzFjOTg1NDc3ZjViY2U1YzEzZDBlMGY3YzI1M2QyZjBj
MzYxNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2Fj
aGVTdG9yYWdlRW5naW5lQ2FjaGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5jcHAKQEAgLTU0NCw3ICs1NDQsNyBA
QCB2b2lkIENhY2hlczo6d3JpdGVSZWNvcmQoY29uc3QgQ2FjaGUmIGNhY2hlLCBjb25zdCBSZWNv
cmRJbmZvcm1hdGlvbiYgcmVjb3JkSW5mbwogICAgIG1fc2l6ZSAtPSBwcmV2aW91c1JlY29yZFNp
emU7CiAKICAgICBpZiAoIXNob3VsZFBlcnNpc3QoKSkgewotICAgICAgICBtX3ZvbGF0aWxlU3Rv
cmFnZS5zZXQocmVjb3JkSW5mb3JtYXRpb24ua2V5LCBXVEZNb3ZlKHJlY29yZCkpOworICAgICAg
ICBtX3ZvbGF0aWxlU3RvcmFnZS5zZXQocmVjb3JkSW5mb3JtYXRpb24ua2V5LCBtYWtlVW5pcXVl
PFJlY29yZD4oV1RGTW92ZShyZWNvcmQpKSk7CiAgICAgICAgIGNhbGxiYWNrKFdURjo6bnVsbG9w
dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC01NjYsMTMgKzU2Niw5IEBAIHZvaWQgQ2Fj
aGVzOjpyZWFkUmVjb3JkKGNvbnN0IE5ldHdvcmtDYWNoZTo6S2V5JiBrZXksIFdURjo6RnVuY3Rp
b248dm9pZChFeHBlY3RlCiAgICAgQVNTRVJUKG1faXNJbml0aWFsaXplZCk7CiAKICAgICBpZiAo
IXNob3VsZFBlcnNpc3QoKSkgewotICAgICAgICBhdXRvIGl0ZXJhdG9yID0gbV92b2xhdGlsZVN0
b3JhZ2UuZmluZChrZXkpOwotICAgICAgICBpZiAoaXRlcmF0b3IgPT0gbV92b2xhdGlsZVN0b3Jh
Z2UuZW5kKCkpIHsKLSAgICAgICAgICAgIGNhbGxiYWNrKG1ha2VVbmV4cGVjdGVkKEVycm9yOjpJ
bnRlcm5hbCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGNhbGxi
YWNrKGl0ZXJhdG9yLT52YWx1ZS5jb3B5KCkpOwotICAgICAgICByZXR1cm47CisgICAgICAgIGlm
IChhdXRvKiByZWNvcmQgPSBtX3ZvbGF0aWxlU3RvcmFnZS5nZXQoa2V5KSkKKyAgICAgICAgICAg
IHJldHVybiBjYWxsYmFjayhyZWNvcmQtPmNvcHkoKSk7CisgICAgICAgIHJldHVybiBjYWxsYmFj
ayhtYWtlVW5leHBlY3RlZChFcnJvcjo6SW50ZXJuYWwpKTsKICAgICB9CiAKICAgICBtX3N0b3Jh
Z2UtPnJldHJpZXZlKGtleSwgNCwgW3Byb3RlY3RlZFN0b3JhZ2UgPSBtYWtlUmVmKCptX3N0b3Jh
Z2UpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShzdGQ6OnVuaXF1ZV9wdHI8U3RvcmFn
ZTo6UmVjb3JkPiBzdG9yYWdlLCBjb25zdCBTdG9yYWdlOjpUaW1pbmdzJikgbXV0YWJsZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFn
ZUVuZ2luZUNhY2hlcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNo
ZVN0b3JhZ2VFbmdpbmVDYWNoZXMuaAppbmRleCA1ZDM5NGEwZTQ4ODU3YjAyNWNhYTQ4MzRhZDI2
YmU4NDdkZDlmNTU2Li4wNjAxZWU2YjJkNzRlYzFiZjg3MWIxNGViYTlkMWEyNTZlNDY4ZGU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFn
ZUVuZ2luZUNhY2hlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
Q2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmgKQEAgLTEwOSw3ICsxMDksNyBAQCBwcml2YXRlOgog
ICAgIFZlY3RvcjxDYWNoZT4gbV9jYWNoZXM7CiAgICAgVmVjdG9yPENhY2hlPiBtX3JlbW92ZWRD
YWNoZXM7CiAgICAgUmVmUHRyPE5ldHdvcmtDYWNoZTo6U3RvcmFnZT4gbV9zdG9yYWdlOwotICAg
IEhhc2hNYXA8TmV0d29ya0NhY2hlOjpLZXksIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNv
cmQ+IG1fdm9sYXRpbGVTdG9yYWdlOworICAgIEhhc2hNYXA8TmV0d29ya0NhY2hlOjpLZXksIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkPj4gbV92b2xhdGls
ZVN0b3JhZ2U7CiAgICAgbXV0YWJsZSBPcHRpb25hbDxOZXR3b3JrQ2FjaGU6OlNhbHQ+IG1fdm9s
YXRpbGVTYWx0OwogICAgIFZlY3RvcjxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q29tcGxldGlv
bkNhbGxiYWNrPiBtX3BlbmRpbmdJbml0aWFsaXphdGlvbkNhbGxiYWNrczsKICAgICBib29sIG1f
aXNXcml0aW5nQ2FjaGVzVG9EaXNrIHsgZmFsc2UgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422177</attachid>
            <date>2021-03-03 19:54:27 -0800</date>
            <delta_ts>2021-03-03 21:00:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222658-20210303195426.patch</filename>
            <type>text/plain</type>
            <size>11394</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVmOWUwMjcxNjU1YWUzNjJhYzcxMzEx
YWZjNzhiZDJiNGI1YTMwM2IuLmZkNDRjMTU3YjBmOWVmYjI1MjczYjY4NjgzMjBmMzMzMzZkNTY0
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDMtMDMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBMaW1pdCBIYXNoVGFibGUgZW50cnkg
c2l6ZSB0byA1MDAgYnl0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMjY1OAorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisK
KyAgICAgICAgKiB3dGYvSGFzaFRhYmxlLmg6CisgICAgICAgIChXVEY6OktleVRyYWl0cz46Omlu
bGluZUxvb2t1cCk6CisKIDIwMjEtMDMtMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEVuYWJsZSBNRURJQV9TT1VSQ0UgaW4gSU9TIFNpbXVsYXRvcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDRlMjQ0MGQzYjYyYjliNDA4MzI4NDZiNTJkNDExNTI5MmUwYmFkOTMuLmQ3MGMw
NzIzYzg3M2U4N2U5NWQwYzJhZWUwOGI0MTM3MjVlYjIyNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMSBAQAorMjAyMS0wMy0wMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJr
aXQub3JnPgorCisgICAgICAgIExpbWl0IEhhc2hUYWJsZSBlbnRyeSBzaXplIHRvIDUwMCBieXRl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNjU4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAgICBNb3Zpbmcg
bGFyZ2Ugc3RydWN0dXJlcyBpbnNpZGUgSGFzaFRhYmxlcyBpcyBzbG93ZXIgdGhhbiBqdXN0IG1v
dmluZyBhIHBvaW50ZXIuCisgICAgICAgIFRoZXJlIGlzIGEgcG9pbnQgYXQgd2hpY2ggaXQgYmVj
b21lcyBtb3JlIGVmZmljaWVudCB0byBhZGQgYSBzZXBhcmF0ZSBhbGxvY2F0aW9uCisgICAgICAg
IHJhdGhlciB0aGFuIGhhdmUgZ2lnYW50aWMgSGFzaFRhYmxlcyB0aGF0IHVzZSBhbGwgdGhhdCBt
ZW1vcnkgZm9yIGVhY2ggZW1wdHkgc2xvdAorICAgICAgICBhbmQgdXNlIGFsbCB0aG9zZSByZWFk
IGFuZCB3cml0ZSBvcGVyYXRpb25zIHRvIG1vdmUgd2hlbiByZWhhc2hpbmcuICBJJ20gbm90IHN1
cmUKKyAgICAgICAgZXhhY3RseSB3aGVyZSB0aGF0IHBvaW50IGlzLCBidXQgSSdtIHByZXR0eSBz
dXJlIGl0J3MgbGVzcyB0aGFuIDUwMCBieXRlcy4gIFRoaXMKKyAgICAgICAgaW50cm9kdWNlcyBh
IGxpbWl0IGFuZCByZW1vdmVzIHRoZSB0d28gbGFyZ2VzdCBIYXNoVGFibGVzIGluIFdlYktpdCwg
cmVwbGFjaW5nIHRoZWlyCisgICAgICAgIHZhbHVlcyB3aXRoIHN0ZDo6dW5pcXVlX3B0ciB0byBz
YXZlIG1lbW9yeSBhbmQgdGltZS4KKworICAgICAgICAqIE1vZHVsZXMvY2FjaGUvRE9NQ2FjaGVF
bmdpbmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtMb2FkSW5mb3JtYXRp
b24uaDoKKwogMjAyMS0wMy0wMiAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4K
IAogICAgICAgICBUaGUgbGF5b3V0IG9mIFNWR0ltYWdlIHNob3VsZCBmb3JjZSB0aGUgbGF5b3V0
IGZvciBpdHMgY2xpZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2MjgwNDM3OWVkZTZjOGRlMjI0OTYxYTNiYzE3
YzE2YmFiYmRjOGM4Li5lYjVhNjc2N2E4NTNiOTAwNWFkZjc2NGFkN2Q2NjkwMTM0MGYwOWEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTAzLTAzICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTGltaXQgSGFzaFRhYmxlIGVudHJ5
IHNpemUgdG8gNTAwIGJ5dGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjI2NTgKKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpLgor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldE5l
dHdvcmtMb2FkSW5mb3JtYXRpb25SZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXROZXR3b3JrTG9hZEludGVybWVkaWF0ZUluZm9ybWF0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnRh
a2VOZXR3b3JrTG9hZEluZm9ybWF0aW9uTWV0cmljcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphZGROZXR3b3JrTG9hZEluZm9ybWF0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmFkZE5ldHdvcmtM
b2FkSW5mb3JtYXRpb25NZXRyaWNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9D
YWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3Jh
Z2U6OkNhY2hlczo6d3JpdGVSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6
OkNhY2hlczo6cmVhZFJlY29yZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2Fj
aGVTdG9yYWdlRW5naW5lQ2FjaGVzLmg6CisKIDIwMjEtMDMtMDIgIFJpY2t5IE1vbmRlbGxvICA8
cm1vbmRlbGxvQGFwcGxlLmNvbT4KIAogICAgICAgICBVbmNvbmRpdGlvbmFsbHkgcmV0dXJuIGlu
Zm9ybWF0aW9uIGluIF9hdXRvZmlsbENvbnRleHQgU1BJIHdoZW4gYSBmaWVsZCBpcyBmb2N1c2Vk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuaCBiL1NvdXJjZS9XVEYvd3Rm
L0hhc2hUYWJsZS5oCmluZGV4IDI3MmYwODY2OTc0NzY4YzZhMGJlZTBhNzdjMWQ3NzNmOTZlOWE5
YTIuLjM0OWZlNzY4NWI4N2YwZjU4OWFkYWEyYjU3ZTViODRlZDMzNjFiYTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJs
ZS5oCkBAIC02NjUsNiArNjY1LDggQEAgREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5U
SUZJRVIoSGFzaFRhYmxlKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoVHJhbnNsYXRvciwg
dHlwZW5hbWUgVD4KICAgICBBTFdBWVNfSU5MSU5FIGF1dG8gSGFzaFRhYmxlPEtleSwgVmFsdWUs
IEV4dHJhY3RvciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHM+OjppbmxpbmVMb29r
dXAoY29uc3QgVCYga2V5KSAtPiBWYWx1ZVR5cGUqCiAgICAgeworICAgICAgICBzdGF0aWNfYXNz
ZXJ0KHNpemVvZihLZXkpICsgc2l6ZW9mKFZhbHVlKSA8IDUwMCwgIllvdXIgSGFzaFRhYmxlIHR5
cGVzIGFyZSB0b28gYmlnIHRvIGVmZmljaWVudGx5IG1vdmUgd2hlbiByZWhhc2hpbmcuICBDb25z
aWRlciB1c2luZyBzdGQ6OnVuaXF1ZV9wdHIgaW5zdGVhZCIpOworCiAgICAgICAgIGNoZWNrS2V5
PEhhc2hUcmFuc2xhdG9yPihrZXkpOwogCiAgICAgICAgIHVuc2lnbmVkIGsgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5oCmluZGV4IDQ5NTk0ZTU4
MmI4MDFjNjcxZGM1YjIzOTA3YWEwMGYyYzg0ZDMxZWIuLjA3YTE4MjNlNTlkMjY4NjQ3NDhkNDEw
NzBlZTRhMjI4M2U4ZjM1NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2Fj
aGUvRE9NQ2FjaGVFbmdpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RP
TUNhY2hlRW5naW5lLmgKQEAgLTYxLDYgKzYxLDcgQEAgUmVzcG9uc2VCb2R5IGlzb2xhdGVkUmVz
cG9uc2VCb2R5KGNvbnN0IFJlc3BvbnNlQm9keSYpOwogV0VCQ09SRV9FWFBPUlQgUmVzcG9uc2VC
b2R5IGNvcHlSZXNwb25zZUJvZHkoY29uc3QgUmVzcG9uc2VCb2R5Jik7CiAKIHN0cnVjdCBSZWNv
cmQgeworICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKICAgICBXRUJDT1JFX0VY
UE9SVCBSZWNvcmQgY29weSgpIGNvbnN0OwogCiAgICAgdWludDY0X3QgaWRlbnRpZmllcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya0xvYWRJbmZv
cm1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZElu
Zm9ybWF0aW9uLmgKaW5kZXggODZiMzdkZGE1NDczNDdjZjYyZDEzODJjNjNkMmM1YmFjMjgxMGU1
Ny4uYzFiMjIzNzhmZTU1NmVkMjI3NWY2ZDNkNWJhNjM4Nzk3YTgyZjQyYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZEluZm9ybWF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrTG9hZEluZm9ybWF0
aW9uLmgKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IE5l
dHdvcmtUcmFuc2FjdGlvbkluZm9ybWF0aW9uIHsKLSAgICBlbnVtIGNsYXNzIFR5cGUgeyBSZWRp
cmVjdGlvbiwgUHJlZmxpZ2h0IH07CisgICAgZW51bSBjbGFzcyBUeXBlIDogYm9vbCB7IFJlZGly
ZWN0aW9uLCBQcmVmbGlnaHQgfTsKICAgICBUeXBlIHR5cGU7CiAgICAgUmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3Q7CiAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZTsKQEAgLTQ0LDI2ICs0NCwx
MyBAQCBzdHJ1Y3QgTmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb24gewogfTsKIAogc3RydWN0
IE5ldHdvcmtMb2FkSW5mb3JtYXRpb24geworICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9D
QVRFRDsKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBSZXNvdXJjZVJlc3BvbnNl
IHJlc3BvbnNlOwogICAgIE5ldHdvcmtMb2FkTWV0cmljcyBtZXRyaWNzOwogICAgIFZlY3RvcjxO
ZXR3b3JrVHJhbnNhY3Rpb25JbmZvcm1hdGlvbj4gdHJhbnNhY3Rpb25zOwogfTsKIAotfQotCi1u
YW1lc3BhY2UgV1RGIHsKLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TmV0
d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb246OlR5cGU+IHsKLSAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpOZXR3b3JrVHJhbnNhY3Rpb25JbmZvcm1hdGlv
bjo6VHlwZSwKLSAgICAgICAgV2ViQ29yZTo6TmV0d29ya1RyYW5zYWN0aW9uSW5mb3JtYXRpb246
OlR5cGU6OlJlZGlyZWN0aW9uLAotICAgICAgICBXZWJDb3JlOjpOZXR3b3JrVHJhbnNhY3Rpb25J
bmZvcm1hdGlvbjo6VHlwZTo6UHJlZmxpZ2h0Ci0gICAgPjsKLX07Ci19Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gaW5saW5lIHZvaWQgTmV0d29ya1Ry
YW5zYWN0aW9uSW5mb3JtYXRpb246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewog
ICAgIGVuY29kZXIgPDwgdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCA1YTRiMmI4
OTM3ZDI1MDEzMTJlOWQ3ZTE5NDIyMjkxZWJmMjE4MGYyLi40OGQxYzE4ZTkzNDVlNWJmYmRiOGZm
ODBjY2M5YjgyY2FjNTA3MDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0xMjQsMzEg
KzEyNCwzNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldE5ldHdvcmtMb2FkSW5mb3JtYXRpb25S
ZXNwb25zZShSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogICAgIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobV9uZXR3b3JrTG9hZElu
Zm9ybWF0aW9uQnlJRC5nZXQoaWRlbnRpZmllcikucmVzcG9uc2UpOworICAgICAgICBpZiAoYXV0
byogaW5mbyA9IG1fbmV0d29ya0xvYWRJbmZvcm1hdGlvbkJ5SUQuZ2V0KGlkZW50aWZpZXIpKQor
ICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGluZm8tPnJlc3BvbnNlKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKICAgICB9CiAKICAgICB2b2lkIGdldE5ldHdv
cmtMb2FkSW50ZXJtZWRpYXRlSW5mb3JtYXRpb24oUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpOZXR3
b3JrVHJhbnNhY3Rpb25JbmZvcm1hdGlvbj4mKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAgICB7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fbmV0d29ya0xvYWRJbmZvcm1hdGlvbkJ5SUQu
Z2V0KGlkZW50aWZpZXIpLnRyYW5zYWN0aW9ucyk7CisgICAgICAgIGlmIChhdXRvKiBpbmZvID0g
bV9uZXR3b3JrTG9hZEluZm9ybWF0aW9uQnlJRC5nZXQoaWRlbnRpZmllcikpCisgICAgICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoaW5mby0+dHJhbnNhY3Rpb25zKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoeyB9KTsKICAgICB9CiAKICAgICB2b2lkIHRha2VOZXR3b3JrTG9h
ZEluZm9ybWF0aW9uTWV0cmljcyhSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlciht
X25ldHdvcmtMb2FkSW5mb3JtYXRpb25CeUlELnRha2UoaWRlbnRpZmllcikubWV0cmljcyk7Cisg
ICAgICAgIGlmIChhdXRvIGluZm8gPSBtX25ldHdvcmtMb2FkSW5mb3JtYXRpb25CeUlELnRha2Uo
aWRlbnRpZmllcikpCisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoaW5mby0+
bWV0cmljcyk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CiAgICAgfQogCiAgICAg
dm9pZCBhZGROZXR3b3JrTG9hZEluZm9ybWF0aW9uKFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRl
bnRpZmllciwgV2ViQ29yZTo6TmV0d29ya0xvYWRJbmZvcm1hdGlvbiYmIGluZm9ybWF0aW9uKQog
ICAgIHsKICAgICAgICAgQVNTRVJUKCFtX25ldHdvcmtMb2FkSW5mb3JtYXRpb25CeUlELmNvbnRh
aW5zKGlkZW50aWZpZXIpKTsKLSAgICAgICAgbV9uZXR3b3JrTG9hZEluZm9ybWF0aW9uQnlJRC5h
ZGQoaWRlbnRpZmllciwgV1RGTW92ZShpbmZvcm1hdGlvbikpOworICAgICAgICBtX25ldHdvcmtM
b2FkSW5mb3JtYXRpb25CeUlELmFkZChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPFdlYkNvcmU6Ok5l
dHdvcmtMb2FkSW5mb3JtYXRpb24+KFdURk1vdmUoaW5mb3JtYXRpb24pKSk7CiAgICAgfQogCiAg
ICAgdm9pZCBhZGROZXR3b3JrTG9hZEluZm9ybWF0aW9uTWV0cmljcyhSZXNvdXJjZUxvYWRJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbWV0
cmljcykKICAgICB7CiAgICAgICAgIEFTU0VSVChtX25ldHdvcmtMb2FkSW5mb3JtYXRpb25CeUlE
LmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKICAgICAgICAgbV9uZXR3b3JrTG9hZEluZm9ybWF0aW9u
QnlJRC5lbnN1cmUoaWRlbnRpZmllciwgW10gewotICAgICAgICAgICAgcmV0dXJuIFdlYkNvcmU6
Ok5ldHdvcmtMb2FkSW5mb3JtYXRpb24geyB9OwotICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWUu
bWV0cmljcyA9IG1ldHJpY3M7CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxXZWJDb3Jl
OjpOZXR3b3JrTG9hZEluZm9ybWF0aW9uPigpOworICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWUt
Pm1ldHJpY3MgPSBtZXRyaWNzOwogICAgIH0KIAogICAgIHZvaWQgcmVtb3ZlTmV0d29ya0xvYWRJ
bmZvcm1hdGlvbihSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIpCkBAIC0zNTcsNyAr
MzYzLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPFdlYkNvcmU6OkJs
b2JEYXRhRmlsZVJlZmVyZW5jZT4+IG1fYmxvYkRhdGFGaWxlUmVmZXJlbmNlczsKICAgICBWZWN0
b3I8UmVzb3VyY2VOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBtX25ldHdvcmtBY3Rpdml0eVRyYWNr
ZXJzOwogCi0gICAgSGFzaE1hcDxSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpOZXR3
b3JrTG9hZEluZm9ybWF0aW9uPiBtX25ldHdvcmtMb2FkSW5mb3JtYXRpb25CeUlEOworICAgIEhh
c2hNYXA8UmVzb3VyY2VMb2FkSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Ok5l
dHdvcmtMb2FkSW5mb3JtYXRpb24+PiBtX25ldHdvcmtMb2FkSW5mb3JtYXRpb25CeUlEOwogCiAK
ICNpZiBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwCmluZGV4IDBi
MDliODA2NzRkYmMxNzRkMmFlNTM1MTMyMTU2MTU2NzNlNzUzODUuLjhmMzFjOTg1NDc3ZjViY2U1
YzEzZDBlMGY3YzI1M2QyZjBjMzYxNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5jcHAK
QEAgLTU0NCw3ICs1NDQsNyBAQCB2b2lkIENhY2hlczo6d3JpdGVSZWNvcmQoY29uc3QgQ2FjaGUm
IGNhY2hlLCBjb25zdCBSZWNvcmRJbmZvcm1hdGlvbiYgcmVjb3JkSW5mbwogICAgIG1fc2l6ZSAt
PSBwcmV2aW91c1JlY29yZFNpemU7CiAKICAgICBpZiAoIXNob3VsZFBlcnNpc3QoKSkgewotICAg
ICAgICBtX3ZvbGF0aWxlU3RvcmFnZS5zZXQocmVjb3JkSW5mb3JtYXRpb24ua2V5LCBXVEZNb3Zl
KHJlY29yZCkpOworICAgICAgICBtX3ZvbGF0aWxlU3RvcmFnZS5zZXQocmVjb3JkSW5mb3JtYXRp
b24ua2V5LCBtYWtlVW5pcXVlPFJlY29yZD4oV1RGTW92ZShyZWNvcmQpKSk7CiAgICAgICAgIGNh
bGxiYWNrKFdURjo6bnVsbG9wdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC01NjYsMTMg
KzU2Niw5IEBAIHZvaWQgQ2FjaGVzOjpyZWFkUmVjb3JkKGNvbnN0IE5ldHdvcmtDYWNoZTo6S2V5
JiBrZXksIFdURjo6RnVuY3Rpb248dm9pZChFeHBlY3RlCiAgICAgQVNTRVJUKG1faXNJbml0aWFs
aXplZCk7CiAKICAgICBpZiAoIXNob3VsZFBlcnNpc3QoKSkgewotICAgICAgICBhdXRvIGl0ZXJh
dG9yID0gbV92b2xhdGlsZVN0b3JhZ2UuZmluZChrZXkpOwotICAgICAgICBpZiAoaXRlcmF0b3Ig
PT0gbV92b2xhdGlsZVN0b3JhZ2UuZW5kKCkpIHsKLSAgICAgICAgICAgIGNhbGxiYWNrKG1ha2VV
bmV4cGVjdGVkKEVycm9yOjpJbnRlcm5hbCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0gICAgICAgIGNhbGxiYWNrKGl0ZXJhdG9yLT52YWx1ZS5jb3B5KCkpOwotICAgICAgICBy
ZXR1cm47CisgICAgICAgIGlmIChhdXRvKiByZWNvcmQgPSBtX3ZvbGF0aWxlU3RvcmFnZS5nZXQo
a2V5KSkKKyAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhyZWNvcmQtPmNvcHkoKSk7CisgICAg
ICAgIHJldHVybiBjYWxsYmFjayhtYWtlVW5leHBlY3RlZChFcnJvcjo6SW50ZXJuYWwpKTsKICAg
ICB9CiAKICAgICBtX3N0b3JhZ2UtPnJldHJpZXZlKGtleSwgNCwgW3Byb3RlY3RlZFN0b3JhZ2Ug
PSBtYWtlUmVmKCptX3N0b3JhZ2UpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShzdGQ6
OnVuaXF1ZV9wdHI8U3RvcmFnZTo6UmVjb3JkPiBzdG9yYWdlLCBjb25zdCBTdG9yYWdlOjpUaW1p
bmdzJikgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuaAppbmRleCA1ZDM5NGEwZTQ4
ODU3YjAyNWNhYTQ4MzRhZDI2YmU4NDdkZDlmNTU2Li4wNjAxZWU2YjJkNzRlYzFiZjg3MWIxNGVi
YTlkMWEyNTZlNDY4ZGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmgKQEAgLTEwOSw3ICsx
MDksNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxDYWNoZT4gbV9jYWNoZXM7CiAgICAgVmVjdG9y
PENhY2hlPiBtX3JlbW92ZWRDYWNoZXM7CiAgICAgUmVmUHRyPE5ldHdvcmtDYWNoZTo6U3RvcmFn
ZT4gbV9zdG9yYWdlOwotICAgIEhhc2hNYXA8TmV0d29ya0NhY2hlOjpLZXksIFdlYkNvcmU6OkRP
TUNhY2hlRW5naW5lOjpSZWNvcmQ+IG1fdm9sYXRpbGVTdG9yYWdlOworICAgIEhhc2hNYXA8TmV0
d29ya0NhY2hlOjpLZXksIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6
UmVjb3JkPj4gbV92b2xhdGlsZVN0b3JhZ2U7CiAgICAgbXV0YWJsZSBPcHRpb25hbDxOZXR3b3Jr
Q2FjaGU6OlNhbHQ+IG1fdm9sYXRpbGVTYWx0OwogICAgIFZlY3RvcjxXZWJDb3JlOjpET01DYWNo
ZUVuZ2luZTo6Q29tcGxldGlvbkNhbGxiYWNrPiBtX3BlbmRpbmdJbml0aWFsaXphdGlvbkNhbGxi
YWNrczsKICAgICBib29sIG1faXNXcml0aW5nQ2FjaGVzVG9EaXNrIHsgZmFsc2UgfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>