<?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>199982</bug_id>
          
          <creation_ts>2019-07-20 12:20:08 -0700</creation_ts>
          <short_desc>Speed up HashTable decoding by reserving capacity and avoiding rehashing</short_desc>
          <delta_ts>2019-07-20 20:53:39 -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 Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1554529</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-20 12:20:08 -0700</bug_when>
    <thetext>Speed up HashTable decoding by reserving capacity and avoiding rehashing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554530</commentid>
    <comment_count>1</comment_count>
      <attachid>374560</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-20 12:27:31 -0700</bug_when>
    <thetext>Created attachment 374560
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554531</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-20 12:27:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/53351433&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554544</commentid>
    <comment_count>3</comment_count>
      <attachid>374560</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-07-20 14:26:42 -0700</bug_when>
    <thetext>Comment on attachment 374560
Patch

Attachment 374560 did not pass jsc-ews (mac):
Output: https://webkit-queues.webkit.org/results/12780815

New failing tests:
mozilla-tests.yaml/js1_5/Array/regress-101964.js.mozilla-no-ftl
apiTests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554548</commentid>
    <comment_count>4</comment_count>
      <attachid>374560</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-07-20 16:28:33 -0700</bug_when>
    <thetext>Comment on attachment 374560
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WTF/HashMap.cpp:1041
&gt; +TEST(WTF_HashMap, ReserveInitialCapacity)

Can you also add a test where you add more things past the initial capacity and ensure that the integrity of the table is maintained. Also, what happens when you reserve initial capacity then remove an entry from the table? Will we immediately rehash? (I’m not sure that’s terrible since that goes against the spirit of the API, but I’m just curious).

Might be worth adding a test where we do deletion after reserveInitialCapacity too just to ensure the integrity of the table</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554551</commentid>
    <comment_count>5</comment_count>
      <attachid>374560</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-07-20 17:39:02 -0700</bug_when>
    <thetext>Comment on attachment 374560
Patch

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

&gt;&gt; Tools/TestWebKitAPI/Tests/WTF/HashMap.cpp:1041
&gt;&gt; +TEST(WTF_HashMap, ReserveInitialCapacity)
&gt; 
&gt; Can you also add a test where you add more things past the initial capacity and ensure that the integrity of the table is maintained. Also, what happens when you reserve initial capacity then remove an entry from the table? Will we immediately rehash? (I’m not sure that’s terrible since that goes against the spirit of the API, but I’m just curious).
&gt; 
&gt; Might be worth adding a test where we do deletion after reserveInitialCapacity too just to ensure the integrity of the table

My reading is that remove() after reserveInitialCapacity() would indeed rehash in most cases (due to shouldShrink() and the minLoad constant). I think that&apos;s OK.

Subtly, it would rehash to half the reserved size, rather than the ideal size, due to the assumption that all calls to grow() happen after a limit is reached. I think that&apos;s also OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554557</commentid>
    <comment_count>6</comment_count>
      <attachid>374565</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-07-20 20:11:11 -0700</bug_when>
    <thetext>Created attachment 374565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554561</commentid>
    <comment_count>7</comment_count>
      <attachid>374565</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-20 20:53:37 -0700</bug_when>
    <thetext>Comment on attachment 374565
Patch

Clearing flags on attachment: 374565

Committed r247673: &lt;https://trac.webkit.org/changeset/247673&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554562</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-20 20:53:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374560</attachid>
            <date>2019-07-20 12:27:31 -0700</date>
            <delta_ts>2019-07-20 20:11:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199982-20190720122730.patch</filename>
            <type>text/plain</type>
            <size>8057</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJmZTk4YTkzYWY2YWM1NGFkN2QwNmE5
NGZmNWI4NjYzNTc4ZTNjZjEuLmUxN2I0MjJlODQwZTFlOGY3YWExNGE0MTg4OGUwZTg5OTg1N2Q2
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMDctMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBTcGVlZCB1cCBIYXNoVGFibGUgZGVjb2RpbmcgYnkgcmVz
ZXJ2aW5nIGNhcGFjaXR5IGFuZCBhdm9pZGluZyByZWhhc2hpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTk4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSByZXNlcnZlSW5pdGlhbENh
cGFjaXR5KCkgb24gSGFzaE1hcCB0byByZXNlcnZlIGNhcGFjaXR5IG9uIGEKKyAgICAgICAgSGFz
aE1hcCBhbmQgY3V0IGRvd24gb24gcmVoYXNoaW5nIGNvc3Qgd2hlbiBwb3NzaWJsZS4KKworICAg
ICAgICAqIHd0Zi9IYXNoTWFwLmg6CisgICAgICAgICogd3RmL0hhc2hUYWJsZS5oOgorICAgICAg
ICAoV1RGOjpIYXNoVGFibGU6OnJlc2VydmVJbml0aWFsQ2FwYWNpdHkpOgorCisgICAgICAgICog
d3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRDb2RlcnMuaDoKKyAgICAgICAgVXNlIEhhc2hNYXA6
OnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoKSBpbiB0aGUgSGFzaE1hcCBwZXJzaXN0ZW50IGRlY29k
ZXIgZm9yCisgICAgICAgIHBlcmZvcm1hbmNlLgorCiAyMDE5LTA3LTE4ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgdG8gc2V0IGtDVEZvbnRG
YWxsYmFja09wdGlvbkF0dHJpYnV0ZSB0byBrQ1RGb250RmFsbGJhY2tPcHRpb25TeXN0ZW0gZm9y
IHN5c3RlbSBmb250cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmZWMyNDkyOTc4YWQzM2EwOTZkYjIyMmI2M2EwNGM0
ZDMwYTBjYWY1Li5kMjU5YWNhYmFhNzkyNzY2ZTc0Y2JlYjkwNzNiMWI3NDBhMTU1ZTk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTA3LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgU3BlZWQgdXAgSGFzaFRhYmxlIGRlY29kaW5nIGJ5IHJlc2Vy
dmluZyBjYXBhY2l0eSBhbmQgYXZvaWRpbmcgcmVoYXNoaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk5ODIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgSGFzaE1hcDo6cmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eSgpIGluIHRoZSBIYXNoTWFwIElQQyBkZWNvZGVyIGZvcgorICAgICAgICBwZXJmb3Jt
YW5jZS4gSSBtZWFzdXJlZCBhIH4zNSUgaW1wcm92ZW1lbnQgd2hlbiBkZWNvZGluZyBhIHZlcnkg
bGFyZ2UKKyAgICAgICAgSGFzaE1hcCBvZiBTdHJpbmdzICh+MTYwayBlbnRyaWVzKSBpbiB0aGUg
Y29udGV4dCBvZiB0aGUKKyAgICAgICAgU3RvcmFnZU1hbmFnZXI6OkdldFZhbHVlcyBJUEMuCisK
KyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFy
ZWQvQVBJL2MvV0tEaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdLRGljdGlvbmFyeUNyZWF0ZSk6
CisKIDIwMTktMDctMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW90ZSBXZWJJbnNwZWN0b3Igc2hvdWxkIGVuYWJsZSBtb2NrIGNhcHR1cmUgZGV2aWNl
cyBpbiBVSVByb2Nlc3MgaWYgZG9pbmcgaXQgaW4gV2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvSGFzaE1hcC5oIGIvU291cmNlL1dURi93dGYvSGFzaE1hcC5oCmluZGV4IDM0
MDZmNTQ0ZWJiMDNmNGZhMmVlZDgyNjJmNTQyMDFjNzYyMjk0MjMuLjJjODcyYTZiMTBhMzM3OWQx
ZTBmMTJkNTg4ZTZkMzY1ZTY4YTYwODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0hhc2hN
YXAuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmgKQEAgLTkyLDYgKzkyLDggQEAgcHVi
bGljOgogICAgIHVuc2lnbmVkIGNhcGFjaXR5KCkgY29uc3Q7CiAgICAgYm9vbCBpc0VtcHR5KCkg
Y29uc3Q7CiAKKyAgICB2b2lkIHJlc2VydmVJbml0aWFsQ2FwYWNpdHkodW5zaWduZWQga2V5Q291
bnQpIHsgbV9pbXBsLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoa2V5Q291bnQpOyB9CisKICAgICAv
LyBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHBhaXJzIG9mIGtleXMgYW5kIHZhbHVlcwogICAgIGl0
ZXJhdG9yIGJlZ2luKCk7CiAgICAgaXRlcmF0b3IgZW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9IYXNoVGFibGUuaCBiL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCmluZGV4IDIy
ODFkMWYyOGVkODU4OTk0ZmU2ZjlhYjc2NjNiMGZmMmNiMmNlYmMuLjk0MGIwNTIxNGQ5NDhkMmRk
NTVlMWIzYzJhMzQyNTVmZjM1ZDlhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0hhc2hU
YWJsZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5oCkBAIC0zOTgsNiArMzk4LDIw
IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICB1bnNpZ25lZCBjYXBhY2l0eSgpIGNvbnN0IHsg
cmV0dXJuIG1fdGFibGVTaXplOyB9CiAgICAgICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0
dXJuICFtX2tleUNvdW50OyB9CiAKKyAgICAgICAgdm9pZCByZXNlcnZlSW5pdGlhbENhcGFjaXR5
KHVuc2lnbmVkIGtleUNvdW50KQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoIW1fdGFi
bGUpOworICAgICAgICAgICAgQVNTRVJUKCFtX3RhYmxlU2l6ZSk7CisgICAgICAgICAgICBBU1NF
UlQoIW1fZGVsZXRlZENvdW50KTsKKworICAgICAgICAgICAgdW5zaWduZWQgbWluaW11bVRhYmxl
U2l6ZSA9IEtleVRyYWl0czo6bWluaW11bVRhYmxlU2l6ZTsKKyAgICAgICAgICAgIHVuc2lnbmVk
IG5ld1RhYmxlU2l6ZSA9IHN0ZDo6bWF4KG1pbmltdW1UYWJsZVNpemUsIGNvbXB1dGVCZXN0VGFi
bGVTaXplKGtleUNvdW50KSk7CisKKyAgICAgICAgICAgIG1fdGFibGVTaXplID0gbmV3VGFibGVT
aXplOworICAgICAgICAgICAgbV90YWJsZVNpemVNYXNrID0gbmV3VGFibGVTaXplIC0gMTsKKyAg
ICAgICAgICAgIG1fdGFibGUgPSBhbGxvY2F0ZVRhYmxlKG5ld1RhYmxlU2l6ZSk7CisgICAgICAg
IH0KKwogICAgICAgICBBZGRSZXN1bHQgYWRkKGNvbnN0IFZhbHVlVHlwZSYgdmFsdWUpIHsgcmV0
dXJuIGFkZDxJZGVudGl0eVRyYW5zbGF0b3JUeXBlPihFeHRyYWN0b3I6OmV4dHJhY3QodmFsdWUp
LCB2YWx1ZSk7IH0KICAgICAgICAgQWRkUmVzdWx0IGFkZChWYWx1ZVR5cGUmJiB2YWx1ZSkgeyBy
ZXR1cm4gYWRkPElkZW50aXR5VHJhbnNsYXRvclR5cGU+KEV4dHJhY3Rvcjo6ZXh0cmFjdCh2YWx1
ZSksIFdURk1vdmUodmFsdWUpKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9wZXJz
aXN0ZW5jZS9QZXJzaXN0ZW50Q29kZXJzLmggYi9Tb3VyY2UvV1RGL3d0Zi9wZXJzaXN0ZW5jZS9Q
ZXJzaXN0ZW50Q29kZXJzLmgKaW5kZXggN2VlM2M5MzI5NDAxZThjYzcwZGYxMzYxOTc5NjFmODY1
ODE2MGM4OC4uYjQxNmFkODRiOTIzYmVlODA2MTc5NDU2NjYzM2U3NWJiMTAwNWJmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudENvZGVycy5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRDb2RlcnMuaApAQCAtMTk2LDYg
KzE5Niw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJnLCB0
eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAgICAgSGFzaE1hcFR5cGUgdGVtcEhhc2hNYXA7CisgICAgICAgIHRlbXBIYXNo
TWFwLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoaGFzaE1hcFNpemUpOwogICAgICAgICBmb3IgKHVp
bnQ2NF90IGkgPSAwOyBpIDwgaGFzaE1hcFNpemU7ICsraSkgewogICAgICAgICAgICAgS2V5QXJn
IGtleTsKICAgICAgICAgICAgIE1hcHBlZEFyZyB2YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IGFhM2ZjZTY3Y2I5Mjc0ODg5NmIzMTRmYjRh
YmIzMDJkZWE1N2ZmYzIuLmQ0NGJhMTJlMzE4NGNjYTA2ZTZmYjJlMGYwZjU0YjVjMGY0OWE4MzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApAQCAtMzc4
LDYgKzM3OCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZywgdHlwZW5hbWUgTWFwcGVkQXJn
LCB0eXBlbmFtZSBIYXNoQXJnLCB0eXBlbmFtZSBLZXlUcmFpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICAgICAgSGFzaE1hcFR5cGUgdGVtcEhhc2hNYXA7CisgICAgICAgIHRlbXBI
YXNoTWFwLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoaGFzaE1hcFNpemUpOwogICAgICAgICBmb3Ig
KHVpbnQ2NF90IGkgPSAwOyBpIDwgaGFzaE1hcFNpemU7ICsraSkgewogICAgICAgICAgICAgS2V5
QXJnIGtleTsKICAgICAgICAgICAgIE1hcHBlZEFyZyB2YWx1ZTsKQEAgLTQwNCw2ICs0MDUsNyBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIE1hcHBlZEFyZywgdHlwZW5hbWUg
SGFzaEFyZywgdHlwZW5hbWUgS2V5VHJhaQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKIAogICAgICAgICBIYXNoTWFwVHlwZSBoYXNoTWFwOworICAgICAgICBoYXNoTWFwLnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkoaGFzaE1hcFNpemUpOwogICAgICAgICBmb3IgKHVpbnQ2NF90IGkg
PSAwOyBpIDwgaGFzaE1hcFNpemU7ICsraSkgewogICAgICAgICAgICAgT3B0aW9uYWw8S2V5QXJn
PiBrZXk7CiAgICAgICAgICAgICBkZWNvZGVyID4+IGtleTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9jL1dLRGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvYy9XS0RpY3Rpb25hcnkuY3BwCmluZGV4IDJmNWEwMGUwNDhhNGIyMTM5MjRiNjFjNjg1
MjFlOGQxYjFjODcwMGUuLjJlNDkwZmE2OWQ1MTc5ODUzMWNiZWE4ZDkwYjliMDliZWUwNjViZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLRGljdGlvbmFyeS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tEaWN0aW9uYXJ5LmNwcApAQCAtMzgs
NiArMzgsNyBAQCBXS1R5cGVJRCBXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKQogV0tfRVhQT1JUIFdL
RGljdGlvbmFyeVJlZiBXS0RpY3Rpb25hcnlDcmVhdGUoY29uc3QgV0tTdHJpbmdSZWYqIGtleXMs
IGNvbnN0IFdLVHlwZVJlZiogdmFsdWVzLCBzaXplX3QgbnVtYmVyT2ZWYWx1ZXMpCiB7CiAgICAg
QVBJOjpEaWN0aW9uYXJ5OjpNYXBUeXBlIG1hcDsKKyAgICBtYXAucmVzZXJ2ZUluaXRpYWxDYXBh
Y2l0eShudW1iZXJPZlZhbHVlcyk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1iZXJP
ZlZhbHVlczsgKytpKQogICAgICAgICBtYXAuYWRkKFdlYktpdDo6dG9JbXBsKGtleXNbaV0pLT5z
dHJpbmcoKSwgV2ViS2l0Ojp0b0ltcGwodmFsdWVzW2ldKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjOTMyNjY3MmIwNTliNjZjYjMzZjQ5
MGFiN2FiYWI0MWMwYzdkYzhiLi42M2RmOWUwZjVkMGJiZjc3MTdkYzdlZDZlY2VhNzY3YzkxYjNi
ODRiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTktMDctMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBTcGVlZCB1cCBIYXNoVGFibGUgZGVjb2RpbmcgYnkgcmVzZXJ2aW5nIGNh
cGFjaXR5IGFuZCBhdm9pZGluZyByZWhhc2hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTk4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaE1hcC5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxOS0wNy0xOSAgWmhpZmVp
IEZhbmcgIDx6aGlmZWlfZmFuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBSZWYuanMgdG8g
V2ViS2l0IHRvIHN1cHBvcnQgcmVzdWx0c2RicHkncyBmcm9udGVuZApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaE1hcC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcAppbmRleCBkNGJhMzVhMWZmYTA4ZGIyOWVlNWIwNjRk
NjM3N2QwZDFkM2E2OWI0Li5kMjZiMzk3Zjc4MmQ4NjhhZDEyZWRiZGZiOWQzMDgwMDk4NzljYTQ1
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcApAQCAtMzQsNiAr
MzQsNyBAQAogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51
bWJlcnMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKQEAgLTEwMzcsNiArMTAzOCwyNSBAQCBURVNUKFdURl9IYXNoTWFwLCBS
YW5kb21fSXNFdmVubHlEaXN0cmlidXRlZCkKICAgICBBU1NFUlRfTEUob25lcywgNjAwdSk7CiB9
CiAKK1RFU1QoV1RGX0hhc2hNYXAsIFJlc2VydmVJbml0aWFsQ2FwYWNpdHkpCit7CisgICAgSGFz
aE1hcDxTdHJpbmcsIFN0cmluZz4gbWFwOworICAgIEVYUEVDVF9FUSgwdSwgbWFwLnNpemUoKSk7
CisgICAgbWFwLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoOTk5OSk7CisgICAgRVhQRUNUX0VRKDB1
LCBtYXAuc2l6ZSgpKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDk5OTk7ICsraSkKKyAgICAg
ICAgbWFwLmFkZChtYWtlU3RyaW5nKCJmb28iLCBpKSwgbWFrZVN0cmluZygiYmFyIiwgaSkpOwor
ICAgIEVYUEVDVF9FUSg5OTk5dSwgbWFwLnNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUobWFwLmNv
bnRhaW5zKCJmb28zIl9zdHIpKTsKKyAgICBFWFBFQ1RfU1RSRVEoImJhcjMiLCBtYXAuZ2V0KCJm
b28zIl9zdHIpLnV0ZjgoKS5kYXRhKCkpOworICAgIG1hcC5hZGQoImhlbGxvIl9zdHIsICJ3b3Js
ZCJfc3RyKTsKKyAgICBFWFBFQ1RfRVEoMTAwMDB1LCBtYXAuc2l6ZSgpKTsKKyAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IDk5OTk7ICsraSkKKyAgICAgICAgRVhQRUNUX1RSVUUobWFwLnJlbW92ZSht
YWtlU3RyaW5nKCJmb28iLCBpKSkpOworICAgIEVYUEVDVF9FUSgxdSwgbWFwLnNpemUoKSk7Cisg
ICAgRVhQRUNUX1NUUkVRKCJ3b3JsZCIsIG1hcC5nZXQoImhlbGxvIl9zdHIpLnV0ZjgoKS5kYXRh
KCkpOworfQorCiBURVNUKFdURl9IYXNoTWFwLCBSYW5kb21fSXNFdmVubHlEaXN0cmlidXRlZEFm
dGVyUmVtb3ZlKQogewogICAgIGZvciAoc2l6ZV90IHRhYmxlU2l6ZSA9IDI7IHRhYmxlU2l6ZSA8
PSAyICogNjsgKyt0YWJsZVNpemUpIHsgLy8gT3VyIGhhc2ggdGFibGVzIHNocmluayBhdCBhIGxv
YWQgZmFjdG9yIG9mIDEgLyA2Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374565</attachid>
            <date>2019-07-20 20:11:11 -0700</date>
            <delta_ts>2019-07-20 20:53:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199982-20190720201110.patch</filename>
            <type>text/plain</type>
            <size>8274</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhlMDhmZGM1MzgzOTlhMzg2NzIyNWRh
NDViMjE1MWRjYTc5NDNiNGQuLjkxMTA4MTQ3YjYxOWNmNWEyYTczOGJlNWE0OGZhNWVhYjZlN2My
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMDctMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBTcGVlZCB1cCBIYXNoVGFibGUgZGVjb2RpbmcgYnkgcmVz
ZXJ2aW5nIGNhcGFjaXR5IGFuZCBhdm9pZGluZyByZWhhc2hpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTk4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgIEludHJvZHVjZSByZXNlcnZlSW5pdGlhbENhcGFj
aXR5KCkgb24gSGFzaE1hcCB0byByZXNlcnZlIGNhcGFjaXR5IG9uIGEKKyAgICAgICAgSGFzaE1h
cCBhbmQgY3V0IGRvd24gb24gcmVoYXNoaW5nIGNvc3Qgd2hlbiBwb3NzaWJsZS4KKworICAgICAg
ICAqIHd0Zi9IYXNoTWFwLmg6CisgICAgICAgICogd3RmL0hhc2hUYWJsZS5oOgorICAgICAgICAo
V1RGOjpIYXNoVGFibGU6OnJlc2VydmVJbml0aWFsQ2FwYWNpdHkpOgorCisgICAgICAgICogd3Rm
L3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRDb2RlcnMuaDoKKyAgICAgICAgVXNlIEhhc2hNYXA6OnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkoKSBpbiB0aGUgSGFzaE1hcCBwZXJzaXN0ZW50IGRlY29kZXIg
Zm9yCisgICAgICAgIHBlcmZvcm1hbmNlLgorCiAyMDE5LTA3LTIwICBBbGV4YW5kZXIgTWlraGF5
bGVua28gIDxleGFsbTc2NTlAZ21haWwuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI0NjAz
My9yMjQ2NDk2KTogW0dUS10gS2luZXRpYyBzY3JvbGxpbmcgZG9lc24ndCB3b3JrCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IGQxNzEwOTEwMjQ3NzA0MGY4ZjRiYTEzNjk4ZTkyMjZlNTYxZjE5MzIuLjNmM2IwNGFkMjgy
M2U5N2VkNmMxZjNlZTg4NDRiZmRjM2ExMmMwOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTktMDctMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBT
cGVlZCB1cCBIYXNoVGFibGUgZGVjb2RpbmcgYnkgcmVzZXJ2aW5nIGNhcGFjaXR5IGFuZCBhdm9p
ZGluZyByZWhhc2hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5OTk4MgorCisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisgICAg
ICAgIFVzZSBIYXNoTWFwOjpyZXNlcnZlSW5pdGlhbENhcGFjaXR5KCkgaW4gdGhlIEhhc2hNYXAg
SVBDIGRlY29kZXIgZm9yCisgICAgICAgIHBlcmZvcm1hbmNlLiBJIG1lYXN1cmVkIGEgfjM1JSBp
bXByb3ZlbWVudCB3aGVuIGRlY29kaW5nIGEgdmVyeSBsYXJnZQorICAgICAgICBIYXNoTWFwIG9m
IFN0cmluZ3MgKH4xNjBrIGVudHJpZXMpIGluIHRoZSBjb250ZXh0IG9mIHRoZQorICAgICAgICBT
dG9yYWdlTWFuYWdlcjo6R2V0VmFsdWVzIElQQy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9B
cmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0RpY3Rpb25hcnkuY3Bw
OgorICAgICAgICAoV0tEaWN0aW9uYXJ5Q3JlYXRlKToKKwogMjAxOS0wNy0yMCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIE1pY3JvLW9wdGltaXplIEhhc2hNYXAg
JiBTdHJpbmcgSVBDIGRlY29kaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoTWFw
LmggYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmgKaW5kZXggMzQwNmY1NDRlYmIwM2Y0ZmEyZWVk
ODI2MmY1NDIwMWM3NjIyOTQyMy4uMmM4NzJhNmIxMGEzMzc5ZDFlMGYxMmQ1ODhlNmQzNjVlNjhh
NjA4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGFzaE1hcC5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL0hhc2hNYXAuaApAQCAtOTIsNiArOTIsOCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQg
Y2FwYWNpdHkoKSBjb25zdDsKICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKIAorICAgIHZvaWQg
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh1bnNpZ25lZCBrZXlDb3VudCkgeyBtX2ltcGwucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShrZXlDb3VudCk7IH0KKwogICAgIC8vIGl0ZXJhdG9ycyBpdGVyYXRl
IG92ZXIgcGFpcnMgb2Yga2V5cyBhbmQgdmFsdWVzCiAgICAgaXRlcmF0b3IgYmVnaW4oKTsKICAg
ICBpdGVyYXRvciBlbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0hhc2hUYWJsZS5o
IGIvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmgKaW5kZXggMjI4MWQxZjI4ZWQ4NTg5OTRmZTZm
OWFiNzY2M2IwZmYyY2IyY2ViYy4uOTQwYjA1MjE0ZDk0OGQyZGQ1NWUxYjNjMmEzNDI1NWZmMzVk
OWEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmgKKysrIGIvU291cmNl
L1dURi93dGYvSGFzaFRhYmxlLmgKQEAgLTM5OCw2ICszOTgsMjAgQEAgbmFtZXNwYWNlIFdURiB7
CiAgICAgICAgIHVuc2lnbmVkIGNhcGFjaXR5KCkgY29uc3QgeyByZXR1cm4gbV90YWJsZVNpemU7
IH0KICAgICAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIW1fa2V5Q291bnQ7IH0K
IAorICAgICAgICB2b2lkIHJlc2VydmVJbml0aWFsQ2FwYWNpdHkodW5zaWduZWQga2V5Q291bnQp
CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCghbV90YWJsZSk7CisgICAgICAgICAgICBB
U1NFUlQoIW1fdGFibGVTaXplKTsKKyAgICAgICAgICAgIEFTU0VSVCghbV9kZWxldGVkQ291bnQp
OworCisgICAgICAgICAgICB1bnNpZ25lZCBtaW5pbXVtVGFibGVTaXplID0gS2V5VHJhaXRzOjpt
aW5pbXVtVGFibGVTaXplOworICAgICAgICAgICAgdW5zaWduZWQgbmV3VGFibGVTaXplID0gc3Rk
OjptYXgobWluaW11bVRhYmxlU2l6ZSwgY29tcHV0ZUJlc3RUYWJsZVNpemUoa2V5Q291bnQpKTsK
KworICAgICAgICAgICAgbV90YWJsZVNpemUgPSBuZXdUYWJsZVNpemU7CisgICAgICAgICAgICBt
X3RhYmxlU2l6ZU1hc2sgPSBuZXdUYWJsZVNpemUgLSAxOworICAgICAgICAgICAgbV90YWJsZSA9
IGFsbG9jYXRlVGFibGUobmV3VGFibGVTaXplKTsKKyAgICAgICAgfQorCiAgICAgICAgIEFkZFJl
c3VsdCBhZGQoY29uc3QgVmFsdWVUeXBlJiB2YWx1ZSkgeyByZXR1cm4gYWRkPElkZW50aXR5VHJh
bnNsYXRvclR5cGU+KEV4dHJhY3Rvcjo6ZXh0cmFjdCh2YWx1ZSksIHZhbHVlKTsgfQogICAgICAg
ICBBZGRSZXN1bHQgYWRkKFZhbHVlVHlwZSYmIHZhbHVlKSB7IHJldHVybiBhZGQ8SWRlbnRpdHlU
cmFuc2xhdG9yVHlwZT4oRXh0cmFjdG9yOjpleHRyYWN0KHZhbHVlKSwgV1RGTW92ZSh2YWx1ZSkp
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRD
b2RlcnMuaCBiL1NvdXJjZS9XVEYvd3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRDb2RlcnMuaApp
bmRleCA3ZWUzYzkzMjk0MDFlOGNjNzBkZjEzNjE5Nzk2MWY4NjU4MTYwYzg4Li5iNDE2YWQ4NGI5
MjNiZWU4MDYxNzk0NTY2NjMzZTc1YmIxMDA1YmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dURi93dGYvcGVy
c2lzdGVuY2UvUGVyc2lzdGVudENvZGVycy5oCkBAIC0xOTYsNiArMTk2LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5
cGVuYW1lIEtleVRyYWkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBIYXNo
TWFwVHlwZSB0ZW1wSGFzaE1hcDsKKyAgICAgICAgdGVtcEhhc2hNYXAucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eShoYXNoTWFwU2l6ZSk7CiAgICAgICAgIGZvciAodWludDY0X3QgaSA9IDA7IGkgPCBo
YXNoTWFwU2l6ZTsgKytpKSB7CiAgICAgICAgICAgICBLZXlBcmcga2V5OwogICAgICAgICAgICAg
TWFwcGVkQXJnIHZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
QXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29k
ZXJzLmgKaW5kZXggYTkzMDJiNDU1N2EyYjY5YjVlNWM2ODNkMDgzNmQwMTIyYmM3Y2Y4My4uMmNk
NjA5NmFkNTdmMTI5MWU5ODQyMDU2MTU5NjY5MGJiZjEzZGUzNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0zNzgsNiArMzc4LDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBNYXBwZWRBcmcsIHR5cGVuYW1lIEhhc2hBcmcs
IHR5cGVuYW1lIEtleVRyYWkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKICAg
ICAgICAgSGFzaE1hcFR5cGUgaGFzaE1hcDsKKyAgICAgICAgaGFzaE1hcC5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KGhhc2hNYXBTaXplKTsKICAgICAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8
IGhhc2hNYXBTaXplOyArK2kpIHsKICAgICAgICAgICAgIE9wdGlvbmFsPEtleUFyZz4ga2V5Owog
ICAgICAgICAgICAgZGVjb2RlciA+PiBrZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvYy9XS0RpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2Mv
V0tEaWN0aW9uYXJ5LmNwcAppbmRleCAyZjVhMDBlMDQ4YTRiMjEzOTI0YjYxYzY4NTIxZThkMWIx
Yzg3MDBlLi4yZTQ5MGZhNjlkNTE3OTg1MzFjYmVhOGQ5MGI5YjA5YmVlMDY1YmVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0RpY3Rpb25hcnkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLRGljdGlvbmFyeS5jcHAKQEAgLTM4LDYgKzM4LDcg
QEAgV0tUeXBlSUQgV0tEaWN0aW9uYXJ5R2V0VHlwZUlEKCkKIFdLX0VYUE9SVCBXS0RpY3Rpb25h
cnlSZWYgV0tEaWN0aW9uYXJ5Q3JlYXRlKGNvbnN0IFdLU3RyaW5nUmVmKiBrZXlzLCBjb25zdCBX
S1R5cGVSZWYqIHZhbHVlcywgc2l6ZV90IG51bWJlck9mVmFsdWVzKQogewogICAgIEFQSTo6RGlj
dGlvbmFyeTo6TWFwVHlwZSBtYXA7CisgICAgbWFwLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobnVt
YmVyT2ZWYWx1ZXMpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtYmVyT2ZWYWx1ZXM7
ICsraSkKICAgICAgICAgbWFwLmFkZChXZWJLaXQ6OnRvSW1wbChrZXlzW2ldKS0+c3RyaW5nKCks
IFdlYktpdDo6dG9JbXBsKHZhbHVlc1tpXSkpOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzgyNjExOWY4ZDFkY2U3YzkyNjFhODViMmQyMDli
OTk1NzBmYWU4MS4uZGQ0YjllMTRlZjQ1MjY1MWUxNDUzMDlkMDNhYzYzOGMzMzgyOGY5MSAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDE5LTA3LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgU3BlZWQgdXAgSGFzaFRhYmxlIGRlY29kaW5nIGJ5IHJlc2VydmluZyBjYXBhY2l0eSBh
bmQgYXZvaWRpbmcgcmVoYXNoaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTk5ODIKKworICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJhcmF0aS4K
KworICAgICAgICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorCiAyMDE5LTA3LTIwICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4K
IAogICAgICAgICBBZGQgYWNjZXNzaWJpbGl0eUluc2VydFRleHQgZm9yIHRleHQgaW5zZXJ0aW9u
IGluIGVkaXQgZmllbGRzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvSGFzaE1hcC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNw
cAppbmRleCBkNGJhMzVhMWZmYTA4ZGIyOWVlNWIwNjRkNjM3N2QwZDFkM2E2OWI0Li4xZTE2M2Qz
ODk5OGU2YmFiZmZmNTM4NDEzY2NhMjhhYTZkMjk4OTgyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9IYXNoTWFwLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHN0cmlu
Zz4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKQEAgLTEwMzcs
NiArMTAzOCwzOSBAQCBURVNUKFdURl9IYXNoTWFwLCBSYW5kb21fSXNFdmVubHlEaXN0cmlidXRl
ZCkKICAgICBBU1NFUlRfTEUob25lcywgNjAwdSk7CiB9CiAKK1RFU1QoV1RGX0hhc2hNYXAsIFJl
c2VydmVJbml0aWFsQ2FwYWNpdHkpCit7CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbWFw
OworICAgIEVYUEVDVF9FUSgwdSwgbWFwLnNpemUoKSk7CisgICAgbWFwLnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkoOTk5OSk7CisgICAgRVhQRUNUX0VRKDB1LCBtYXAuc2l6ZSgpKTsKKyAgICBmb3Ig
KGludCBpID0gMDsgaSA8IDk5OTk7ICsraSkKKyAgICAgICAgbWFwLmFkZChtYWtlU3RyaW5nKCJm
b28iLCBpKSwgbWFrZVN0cmluZygiYmFyIiwgaSkpOworICAgIEVYUEVDVF9FUSg5OTk5dSwgbWFw
LnNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUobWFwLmNvbnRhaW5zKCJmb28zIl9zdHIpKTsKKyAg
ICBFWFBFQ1RfU1RSRVEoImJhcjMiLCBtYXAuZ2V0KCJmb28zIl9zdHIpLnV0ZjgoKS5kYXRhKCkp
OworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgOTk5OTsgKytpKQorICAgICAgICBtYXAuYWRkKG1h
a2VTdHJpbmcoImV4Y2VzcyIsIGkpLCBtYWtlU3RyaW5nKCJiYXoiLCBpKSk7CisgICAgRVhQRUNU
X0VRKDk5OTl1ICsgOTk5OXUsIG1hcC5zaXplKCkpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
OTk5OTsgKytpKQorICAgICAgICBFWFBFQ1RfVFJVRShtYXAucmVtb3ZlKG1ha2VTdHJpbmcoImZv
byIsIGkpKSk7CisgICAgRVhQRUNUX0VRKDk5OTl1LCBtYXAuc2l6ZSgpKTsKKyAgICBFWFBFQ1Rf
U1RSRVEoImJhejMiLCBtYXAuZ2V0KCJleGNlc3MzIl9zdHIpLnV0ZjgoKS5kYXRhKCkpOworICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgOTk5OTsgKytpKQorICAgICAgICBFWFBFQ1RfVFJVRShtYXAu
cmVtb3ZlKG1ha2VTdHJpbmcoImV4Y2VzcyIsIGkpKSk7CisgICAgRVhQRUNUX0VRKDB1LCBtYXAu
c2l6ZSgpKTsKKyAgICAKKyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBtYXAyOworICAgIG1h
cDIucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSg5OTk5KTsKKyAgICBFWFBFQ1RfRkFMU0UobWFwMi5y
ZW1vdmUoImZvbzEiX3MpKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDIwMDA7ICsraSkKKyAg
ICAgICAgbWFwMi5hZGQobWFrZVN0cmluZygiZm9vIiwgaSksIG1ha2VTdHJpbmcoImJhciIsIGkp
KTsKKyAgICBFWFBFQ1RfRVEoMjAwMHUsIG1hcDIuc2l6ZSgpKTsKKyAgICBmb3IgKGludCBpID0g
MDsgaSA8IDIwMDA7ICsraSkKKyAgICAgICAgRVhQRUNUX1RSVUUobWFwMi5yZW1vdmUobWFrZVN0
cmluZygiZm9vIiwgaSkpKTsKKyAgICBFWFBFQ1RfRVEoMHUsIG1hcDIuc2l6ZSgpKTsKK30KKwog
VEVTVChXVEZfSGFzaE1hcCwgUmFuZG9tX0lzRXZlbmx5RGlzdHJpYnV0ZWRBZnRlclJlbW92ZSkK
IHsKICAgICBmb3IgKHNpemVfdCB0YWJsZVNpemUgPSAyOyB0YWJsZVNpemUgPD0gMiAqIDY7ICsr
dGFibGVTaXplKSB7IC8vIE91ciBoYXNoIHRhYmxlcyBzaHJpbmsgYXQgYSBsb2FkIGZhY3RvciBv
ZiAxIC8gNi4K
</data>

          </attachment>
      

    </bug>

</bugzilla>