<?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>212201</bug_id>
          
          <creation_ts>2020-05-21 05:26:27 -0700</creation_ts>
          <short_desc>[css-grid] WPT test css/css-grid/grid-definition/grid-limits-001.html is very slow and uses too much RAM</short_desc>
          <delta_ts>2022-03-27 13:25:16 -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>CSS</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="Carlos Alberto Lopez Perez">clopez</reporter>
          <assigned_to name="Matt Woodrow">mattwoodrow</assigned_to>
          <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jfernandez</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mattwoodrow</cc>
    
    <cc>obrufau</cc>
    
    <cc>pdr</cc>
    
    <cc>rego</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1654871</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-05-21 05:26:27 -0700</bug_when>
    <thetext>The WPT test css/css-grid/grid-definition/grid-limits-001.html is very slow when executed in WebKit and uses too much RAM.

Sometimes it even crashes for me with this loud error coming from the WebProcess:

&quot;Unable to shrink memory footprint of process (9248 MB) below the kill thresold (4096 MB). Killed&quot;


The issue its both reproducible, either by running our imported layout test imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-limits-001.html (I&apos;m importing it on bug 212187) or by running the upstream wpt test from https://wpt.live/css/css-grid/grid-definition/grid-limits-001.html

You can see how the tests takes a while to execute (like 10-20 seconds) and the memory usage peaks around 9GB !

This issue its not reproducible with chrome or firefox:

 - with Chrome the test executes quickly, uses few RAM (~250M) but it fails the tests
 - with Firefox the test executes quickly, uses few RAM (~400M) and it passes ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654885</commentid>
    <comment_count>1</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2020-05-21 06:27:35 -0700</bug_when>
    <thetext>This is somehow expected, given the current memory structure in WebKit:
  typedef Vector&lt;Vector&lt;GridCell&gt;&gt; GridAsMatrix;

For very big grids we create cells for all the nodes and that&apos;s too many elements.

In Chromium we use a different memory structure, that we could eventually port into WebKit, but it&apos;s not a simple task at all (despite we could re-use most of Blink code for that).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832456</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-20 09:10:38 -0800</bug_when>
    <thetext>&lt;rdar://problem/87832267&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850785</commentid>
    <comment_count>3</comment_count>
      <attachid>454563</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-03-13 20:49:32 -0700</bug_when>
    <thetext>Created attachment 454563
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855455</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-27 13:25:13 -0700</bug_when>
    <thetext>Committed r291952 (248919@main): &lt;https://commits.webkit.org/248919@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454563.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454563</attachid>
            <date>2022-03-13 20:49:32 -0700</date>
            <delta_ts>2022-03-27 13:25:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212201-20220314164930.patch</filename>
            <type>text/plain</type>
            <size>12376</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE1MTAwYWUzZTdlNTA2
NmQ3NTVmZDcwNzg0ZmYxODdhNWY1ZTgxNS4uOTZhYTM1M2RhNjFmYTM0MjgyNzIzNDAwMDA3YmU4
ZjkxZGY2ZmM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTAzLTEzICBNYXR0
IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAgICAgTGF6aWx5IGFsbG9j
YXRlIGJhY2tpbmcgc3RvcmUgZm9yIGdyaWQgY29sdW1ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjIwMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4aXN0aW5nIFdQVCB0ZXN0IGdyaWQtbGltaXRz
LTAwMS5odG1sIG1hcmtlZCBhcyBwYXNzaW5nLgorCisgICAgICAgICogcmVuZGVyaW5nL0dyaWQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JpZDo6ZW5zdXJlR3JpZFNpemUpOgorICAgICAgICAo
V2ViQ29yZTo6R3JpZDo6ZW5zdXJlU3RvcmFnZUZvclJvdyk6CisgICAgICAgIChXZWJDb3JlOjpH
cmlkOjppbnNlcnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZDo6Y2VsbCBjb25zdCk6CisKKyAg
ICAgICAgT25seSBncm93IHRoZSBmaXJzdCByb3cncyBjb2x1bW4gc3RvcmFnZSAoc2luY2Ugd2Ug
dXNlIHRoaXMKKyAgICAgICAgdG8gcmVtZW1iZXIgdGhlIGNvbHVtbiBjb3VudCkgYW5kIGxhemls
eSBncm93IHRoZSBvdGhlcnMgd2hlbgorICAgICAgICB3ZSB0cnkgd3JpdGUgdG8gdGhlbS4KKwor
ICAgICAgICAoV2ViQ29yZTo6R3JpZEl0ZXJhdG9yOjpHcmlkSXRlcmF0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6R3JpZEl0ZXJhdG9yOjpuZXh0R3JpZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6
R3JpZEl0ZXJhdG9yOjppc0VtcHR5QXJlYUVub3VnaCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmlkSXRlcmF0b3I6Om5leHRFbXB0eUdyaWRBcmVhKToKKyAgICAgICAgKiByZW5kZXJpbmcv
R3JpZC5oOgorCisgICAgICAgIENoYW5nZXMgR3JpZEl0ZXJhdG9yIHRvIHVzZSB0aGUgR3JpZCBB
UEkgcmF0aGVyIHRoYW4gZGlyZWN0bHkKKyAgICAgICAgYWNjZXNzaW5nIHRoZSBpbm5lciBWZWN0
b3IgdXNpbmcgJ2ZyaWVuZCcuIFRoaXMgbWFrZXMgaXQgZWFzaWVyIHRvCisgICAgICAgIGVuc3Vy
ZSB0aGF0IHdlIG5ldmVyIGFjY2VzcyBhcmVhcyBvdXRzaWRlIG9mIG91ciBsYXp5IGFsbG9jYXRp
b25zLgorCiAyMDIyLTAzLTA5ICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+
CiAKICAgICAgICAgR3JpZCBpdGVtcyB0aGF0IGVzdGFibGlzaCBhbiBpbmRlcGVuZGVudCBmb3Jt
YXR0aW5nIGNvbnRleHQgc2hvdWxkIG5vdCBiZSBzdWJncmlkcy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9H
cmlkLmNwcAppbmRleCAzNGU3NTE0YWY5YTNiMWUxNzVmYTZhOGYzZTQwMzYyMmUwNDY0MWQ0Li41
YTM3ZWMwNzcyMDU4ZDM1Y2QzODI4ODg0NTNkNGY5YzliODhhNTNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0dyaWQuY3BwCkBAIC01MSwxNiArNTEsMjAgQEAgdm9pZCBHcmlkOjplbnN1cmVHcmlkU2l6
ZSh1bnNpZ25lZCBtYXhpbXVtUm93U2l6ZSwgdW5zaWduZWQgbWF4aW11bUNvbHVtblNpemUpCiAg
ICAgY29uc3Qgc2l6ZV90IG9sZFJvd1NpemUgPSBudW1UcmFja3MoRm9yUm93cyk7CiAgICAgaWYg
KG1heGltdW1Sb3dTaXplID4gb2xkUm93U2l6ZSkgewogICAgICAgICBtX2dyaWQuZ3JvdyhtYXhp
bXVtUm93U2l6ZSk7Ci0gICAgICAgIGZvciAoc2l6ZV90IHJvdyA9IG9sZFJvd1NpemU7IHJvdyA8
IG1heGltdW1Sb3dTaXplOyArK3JvdykKLSAgICAgICAgICAgIG1fZ3JpZFtyb3ddLmdyb3cob2xk
Q29sdW1uU2l6ZSk7CiAgICAgfQogCi0gICAgaWYgKG1heGltdW1Db2x1bW5TaXplID4gb2xkQ29s
dW1uU2l6ZSkgewotICAgICAgICBmb3IgKHNpemVfdCByb3cgPSAwOyByb3cgPCBudW1UcmFja3Mo
Rm9yUm93cyk7ICsrcm93KQotICAgICAgICAgICAgbV9ncmlkW3Jvd10uZ3JvdyhtYXhpbXVtQ29s
dW1uU2l6ZSk7CisgICAgLy8gSnVzdCBncm93IHRoZSBmaXJzdCByb3cgZm9yIG5vdyBzbyB0aGF0
IHdlIGtub3cgdGhlIHJlcXVlc3RlZCBzaXplLAorICAgIC8vIGFuZCB3ZSdsbCBsYXppbHkgYWxs
b2NhdGUgdGhlIG90aGVycyB3aGVuIHRoZXkgZ2V0IHVzZWQuCisgICAgaWYgKG1heGltdW1Db2x1
bW5TaXplID4gb2xkQ29sdW1uU2l6ZSAmJiBtYXhpbXVtUm93U2l6ZSkgeworICAgICAgICBtX2dy
aWRbMF0uZ3JvdyhtYXhpbXVtQ29sdW1uU2l6ZSk7CiAgICAgfQogfQogCit2b2lkIEdyaWQ6OmVu
c3VyZVN0b3JhZ2VGb3JSb3codW5zaWduZWQgcm93KQoreworICAgIG1fZ3JpZFtyb3ddLmdyb3co
bV9ncmlkWzBdLnNpemUoKSk7Cit9CisKIEdyaWRBcmVhIEdyaWQ6Omluc2VydChSZW5kZXJCb3gm
IGNoaWxkLCBjb25zdCBHcmlkQXJlYSYgYXJlYSkKIHsKICAgICBHcmlkQXJlYSBjbGFtcGVkQXJl
YSA9IGFyZWE7CkBAIC03Myw2ICs3Nyw3IEBAIEdyaWRBcmVhIEdyaWQ6Omluc2VydChSZW5kZXJC
b3gmIGNoaWxkLCBjb25zdCBHcmlkQXJlYSYgYXJlYSkKICAgICBlbnN1cmVHcmlkU2l6ZShjbGFt
cGVkQXJlYS5yb3dzLmVuZExpbmUoKSwgY2xhbXBlZEFyZWEuY29sdW1ucy5lbmRMaW5lKCkpOwog
CiAgICAgZm9yIChhdXRvIHJvdyA6IGNsYW1wZWRBcmVhLnJvd3MpIHsKKyAgICAgICAgZW5zdXJl
U3RvcmFnZUZvclJvdyhyb3cpOwogICAgICAgICBmb3IgKGF1dG8gY29sdW1uIDogY2xhbXBlZEFy
ZWEuY29sdW1ucykKICAgICAgICAgICAgIG1fZ3JpZFtyb3ddW2NvbHVtbl0uYXBwZW5kKGNoaWxk
KTsKICAgICB9CkBAIC04MSw2ICs4NiwxOCBAQCBHcmlkQXJlYSBHcmlkOjppbnNlcnQoUmVuZGVy
Qm94JiBjaGlsZCwgY29uc3QgR3JpZEFyZWEmIGFyZWEpCiAgICAgcmV0dXJuIGNsYW1wZWRBcmVh
OwogfQogCitjb25zdCBHcmlkQ2VsbCYgR3JpZDo6Y2VsbCh1bnNpZ25lZCByb3csIHVuc2lnbmVk
IGNvbHVtbikgY29uc3QKK3sKKyAgICAvLyBTdG9yYWdlIGZvciByb3dzIG90aGVyIHRoYW4gdGhl
IGZpcnN0IGlzIGxhemlseSBhbGxvY2F0ZWQuIFdlIGNhbgorICAgIC8vIGp1c3QgcmV0dXJuIGEg
ZmFrZSBlbnRyeSBpZiB0aGUgcmVxdWVzdCBpcyBvdXRzaWRlIHRoZSBhbGxvY2F0ZWQgYXJlYSwK
KyAgICAvLyBzaW5jZSBpdCBtdXN0IGJlIGVtcHR5LgorICAgIHN0YXRpYyBjb25zdCBOZXZlckRl
c3Ryb3llZDxHcmlkQ2VsbD4gZW1wdHlDZWxsOworICAgIGlmIChyb3cgJiYgbV9ncmlkW3Jvd10u
c2l6ZSgpIDw9IGNvbHVtbikKKyAgICAgICAgcmV0dXJuIGVtcHR5Q2VsbDsKKworICAgIHJldHVy
biBtX2dyaWRbcm93XVtjb2x1bW5dOworfQorCiB2b2lkIEdyaWQ6OnNldEV4cGxpY2l0R3JpZFN0
YXJ0KHVuc2lnbmVkIHJvd1N0YXJ0LCB1bnNpZ25lZCBjb2x1bW5TdGFydCkKIHsKICAgICBtX2V4
cGxpY2l0Um93U3RhcnQgPSByb3dTdGFydDsKQEAgLTE5MSwyNyArMjA4LDI3IEBAIHZvaWQgR3Jp
ZDo6c2V0TmVlZHNJdGVtc1BsYWNlbWVudChib29sIG5lZWRzSXRlbXNQbGFjZW1lbnQpCiB9CiAK
IEdyaWRJdGVyYXRvcjo6R3JpZEl0ZXJhdG9yKGNvbnN0IEdyaWQmIGdyaWQsIEdyaWRUcmFja1Np
emluZ0RpcmVjdGlvbiBkaXJlY3Rpb24sIHVuc2lnbmVkIGZpeGVkVHJhY2tJbmRleCwgdW5zaWdu
ZWQgdmFyeWluZ1RyYWNrSW5kZXgpCi0gICAgOiBtX2dyaWQoZ3JpZC5tX2dyaWQpCisgICAgOiBt
X2dyaWQoZ3JpZCkKICAgICAsIG1fZGlyZWN0aW9uKGRpcmVjdGlvbikKICAgICAsIG1fcm93SW5k
ZXgoKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IHZhcnlpbmdUcmFja0luZGV4IDogZml4ZWRU
cmFja0luZGV4KQogICAgICwgbV9jb2x1bW5JbmRleCgoZGlyZWN0aW9uID09IEZvckNvbHVtbnMp
ID8gZml4ZWRUcmFja0luZGV4IDogdmFyeWluZ1RyYWNrSW5kZXgpCiAgICAgLCBtX2NoaWxkSW5k
ZXgoMCkKIHsKLSAgICBBU1NFUlQoIW1fZ3JpZC5pc0VtcHR5KCkpOwotICAgIEFTU0VSVCghbV9n
cmlkWzBdLmlzRW1wdHkoKSk7Ci0gICAgQVNTRVJUKG1fcm93SW5kZXggPCBtX2dyaWQuc2l6ZSgp
KTsKLSAgICBBU1NFUlQobV9jb2x1bW5JbmRleCA8IG1fZ3JpZFswXS5zaXplKCkpOworICAgIEFT
U0VSVChtX2dyaWQubnVtVHJhY2tzKEZvclJvd3MpKTsKKyAgICBBU1NFUlQobV9ncmlkLm51bVRy
YWNrcyhGb3JDb2x1bW5zKSk7CisgICAgQVNTRVJUKG1fcm93SW5kZXggPCBtX2dyaWQubnVtVHJh
Y2tzKEZvclJvd3MpKTsKKyAgICBBU1NFUlQobV9jb2x1bW5JbmRleCA8IG1fZ3JpZC5udW1UcmFj
a3MoRm9yQ29sdW1ucykpOwogfQogCiBSZW5kZXJCb3gqIEdyaWRJdGVyYXRvcjo6bmV4dEdyaWRJ
dGVtKCkKIHsKLSAgICBBU1NFUlQoIW1fZ3JpZC5pc0VtcHR5KCkpOwotICAgIEFTU0VSVCghbV9n
cmlkWzBdLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUKG1fZ3JpZC5udW1UcmFja3MoRm9yUm93cykp
OworICAgIEFTU0VSVChtX2dyaWQubnVtVHJhY2tzKEZvckNvbHVtbnMpKTsKIAogICAgIHVuc2ln
bmVkJiB2YXJ5aW5nVHJhY2tJbmRleCA9IChtX2RpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IG1f
cm93SW5kZXggOiBtX2NvbHVtbkluZGV4OwotICAgIGNvbnN0IHVuc2lnbmVkIGVuZE9mVmFyeWlu
Z1RyYWNrSW5kZXggPSAobV9kaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBtX2dyaWQuc2l6ZSgp
IDogbV9ncmlkWzBdLnNpemUoKTsKKyAgICBjb25zdCB1bnNpZ25lZCBlbmRPZlZhcnlpbmdUcmFj
a0luZGV4ID0gKG1fZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gbV9ncmlkLm51bVRyYWNrcyhG
b3JSb3dzKSA6IG1fZ3JpZC5udW1UcmFja3MoRm9yQ29sdW1ucyk7CiAgICAgZm9yICg7IHZhcnlp
bmdUcmFja0luZGV4IDwgZW5kT2ZWYXJ5aW5nVHJhY2tJbmRleDsgKyt2YXJ5aW5nVHJhY2tJbmRl
eCkgewotICAgICAgICBjb25zdCBhdXRvJiBjaGlsZHJlbiA9IG1fZ3JpZFttX3Jvd0luZGV4XVtt
X2NvbHVtbkluZGV4XTsKKyAgICAgICAgY29uc3QgYXV0byYgY2hpbGRyZW4gPSBtX2dyaWQuY2Vs
bChtX3Jvd0luZGV4LCBtX2NvbHVtbkluZGV4KTsKICAgICAgICAgaWYgKG1fY2hpbGRJbmRleCA8
IGNoaWxkcmVuLnNpemUoKSkKICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlblttX2NoaWxkSW5k
ZXgrK10uZ2V0KCk7CiAKQEAgLTIyMiwxNyArMjM5LDE3IEBAIFJlbmRlckJveCogR3JpZEl0ZXJh
dG9yOjpuZXh0R3JpZEl0ZW0oKQogCiBib29sIEdyaWRJdGVyYXRvcjo6aXNFbXB0eUFyZWFFbm91
Z2godW5zaWduZWQgcm93U3BhbiwgdW5zaWduZWQgY29sdW1uU3BhbikgY29uc3QKIHsKLSAgICBB
U1NFUlQoIW1fZ3JpZC5pc0VtcHR5KCkpOwotICAgIEFTU0VSVCghbV9ncmlkWzBdLmlzRW1wdHko
KSk7CisgICAgQVNTRVJUKG1fZ3JpZC5udW1UcmFja3MoRm9yUm93cykpOworICAgIEFTU0VSVCht
X2dyaWQubnVtVHJhY2tzKEZvckNvbHVtbnMpKTsKIAogICAgIC8vIElnbm9yZSBjZWxscyBvdXRz
aWRlIGN1cnJlbnQgZ3JpZCBhcyB3ZSB3aWxsIGdyb3cgaXQgbGF0ZXIgaWYgbmVlZGVkLgotICAg
IHVuc2lnbmVkIG1heFJvd3MgPSBzdGQ6Om1pbjx1bnNpZ25lZD4obV9yb3dJbmRleCArIHJvd1Nw
YW4sIG1fZ3JpZC5zaXplKCkpOwotICAgIHVuc2lnbmVkIG1heENvbHVtbnMgPSBzdGQ6Om1pbjx1
bnNpZ25lZD4obV9jb2x1bW5JbmRleCArIGNvbHVtblNwYW4sIG1fZ3JpZFswXS5zaXplKCkpOwor
ICAgIHVuc2lnbmVkIG1heFJvd3MgPSBzdGQ6Om1pbjx1bnNpZ25lZD4obV9yb3dJbmRleCArIHJv
d1NwYW4sIG1fZ3JpZC5udW1UcmFja3MoRm9yUm93cykpOworICAgIHVuc2lnbmVkIG1heENvbHVt
bnMgPSBzdGQ6Om1pbjx1bnNpZ25lZD4obV9jb2x1bW5JbmRleCArIGNvbHVtblNwYW4sIG1fZ3Jp
ZC5udW1UcmFja3MoRm9yQ29sdW1ucykpOwogCiAgICAgLy8gVGhpcyBhZGRzIGEgTyhOXjIpIGJl
aGF2aW9yIHRoYXQgc2hvdWxkbid0IGJlIGEgYmlnIGRlYWwgYXMgd2UgZXhwZWN0IHNwYW5uaW5n
IGFyZWFzIHRvIGJlIHNtYWxsLgogICAgIGZvciAodW5zaWduZWQgcm93ID0gbV9yb3dJbmRleDsg
cm93IDwgbWF4Um93czsgKytyb3cpIHsKICAgICAgICAgZm9yICh1bnNpZ25lZCBjb2x1bW4gPSBt
X2NvbHVtbkluZGV4OyBjb2x1bW4gPCBtYXhDb2x1bW5zOyArK2NvbHVtbikgewotICAgICAgICAg
ICAgYXV0byYgY2hpbGRyZW4gPSBtX2dyaWRbcm93XVtjb2x1bW5dOworICAgICAgICAgICAgYXV0
byYgY2hpbGRyZW4gPSBtX2dyaWQuY2VsbChyb3csIGNvbHVtbik7CiAgICAgICAgICAgICBpZiAo
IWNoaWxkcmVuLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIH0KQEAgLTI0MywxOSArMjYwLDE5IEBAIGJvb2wgR3JpZEl0ZXJhdG9yOjppc0VtcHR5QXJl
YUVub3VnaCh1bnNpZ25lZCByb3dTcGFuLCB1bnNpZ25lZCBjb2x1bW5TcGFuKSBjb25zCiAKIHN0
ZDo6dW5pcXVlX3B0cjxHcmlkQXJlYT4gR3JpZEl0ZXJhdG9yOjpuZXh0RW1wdHlHcmlkQXJlYSh1
bnNpZ25lZCBmaXhlZFRyYWNrU3BhbiwgdW5zaWduZWQgdmFyeWluZ1RyYWNrU3BhbikKIHsKLSAg
ICBBU1NFUlQoIW1fZ3JpZC5pc0VtcHR5KCkpOwotICAgIEFTU0VSVCghbV9ncmlkWzBdLmlzRW1w
dHkoKSk7CisgICAgQVNTRVJUKG1fZ3JpZC5udW1UcmFja3MoRm9yUm93cykpOworICAgIEFTU0VS
VChtX2dyaWQubnVtVHJhY2tzKEZvckNvbHVtbnMpKTsKICAgICBBU1NFUlQoZml4ZWRUcmFja1Nw
YW4gPj0gMSk7CiAgICAgQVNTRVJUKHZhcnlpbmdUcmFja1NwYW4gPj0gMSk7CiAKLSAgICBpZiAo
bV9ncmlkLmlzRW1wdHkoKSkKKyAgICBpZiAoIW1fZ3JpZC5oYXNHcmlkSXRlbXMoKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICB1bnNpZ25lZCByb3dTcGFuID0gKG1fZGlyZWN0aW9u
ID09IEZvckNvbHVtbnMpID8gdmFyeWluZ1RyYWNrU3BhbiA6IGZpeGVkVHJhY2tTcGFuOwogICAg
IHVuc2lnbmVkIGNvbHVtblNwYW4gPSAobV9kaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBmaXhl
ZFRyYWNrU3BhbiA6IHZhcnlpbmdUcmFja1NwYW47CiAKICAgICB1bnNpZ25lZCYgdmFyeWluZ1Ry
YWNrSW5kZXggPSAobV9kaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBtX3Jvd0luZGV4IDogbV9j
b2x1bW5JbmRleDsKLSAgICBjb25zdCB1bnNpZ25lZCBlbmRPZlZhcnlpbmdUcmFja0luZGV4ID0g
KG1fZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gbV9ncmlkLnNpemUoKSA6IG1fZ3JpZFswXS5z
aXplKCk7CisgICAgY29uc3QgdW5zaWduZWQgZW5kT2ZWYXJ5aW5nVHJhY2tJbmRleCA9IChtX2Rp
cmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IG1fZ3JpZC5udW1UcmFja3MoRm9yUm93cykgOiBtX2dy
aWQubnVtVHJhY2tzKEZvckNvbHVtbnMpOwogICAgIGZvciAoOyB2YXJ5aW5nVHJhY2tJbmRleCA8
IGVuZE9mVmFyeWluZ1RyYWNrSW5kZXg7ICsrdmFyeWluZ1RyYWNrSW5kZXgpIHsKICAgICAgICAg
aWYgKGlzRW1wdHlBcmVhRW5vdWdoKHJvd1NwYW4sIGNvbHVtblNwYW4pKSB7CiAgICAgICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZEFyZWE+IHJlc3VsdCA9IG1ha2VVbmlxdWU8R3JpZEFyZWE+
KEdyaWRTcGFuOjp0cmFuc2xhdGVkRGVmaW5pdGVHcmlkU3BhbihtX3Jvd0luZGV4LCBtX3Jvd0lu
ZGV4ICsgcm93U3BhbiksIEdyaWRTcGFuOjp0cmFuc2xhdGVkRGVmaW5pdGVHcmlkU3BhbihtX2Nv
bHVtbkluZGV4LCBtX2NvbHVtbkluZGV4ICsgY29sdW1uU3BhbikpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9H
cmlkLmgKaW5kZXggZWMyODMwNmNkMDMzN2E1OGIxYjk4ZjA2MDRmMmMyYThlMDgzMDhhYy4uOWQ1
NzllMWNmMmJmNDVjNTE3MThiNjkyNWExZWFkZTFkMmNjYzVhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0dyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
R3JpZC5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKIAogICAgIEdyaWRTcGFuIGdyaWRJdGVt
U3Bhbihjb25zdCBSZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0Owog
Ci0gICAgY29uc3QgR3JpZENlbGwmIGNlbGwodW5zaWduZWQgcm93LCB1bnNpZ25lZCBjb2x1bW4p
IGNvbnN0IHsgcmV0dXJuIG1fZ3JpZFtyb3ddW2NvbHVtbl07IH0KKyAgICBjb25zdCBHcmlkQ2Vs
bCYgY2VsbCh1bnNpZ25lZCByb3csIHVuc2lnbmVkIGNvbHVtbikgY29uc3Q7CiAKICAgICB1bnNp
Z25lZCBleHBsaWNpdEdyaWRTdGFydChHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0Owog
ICAgIHZvaWQgc2V0RXhwbGljaXRHcmlkU3RhcnQodW5zaWduZWQgcm93U3RhcnQsIHVuc2lnbmVk
IGNvbHVtblN0YXJ0KTsKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogICAgIGJvb2wgbmVlZHNJ
dGVtc1BsYWNlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmVlZHNJdGVtc1BsYWNlbWVudDsgfTsK
IAogcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgR3JpZEl0ZXJhdG9yOworICAgIHZvaWQgZW5z
dXJlU3RvcmFnZUZvclJvdyh1bnNpZ25lZCByb3cpOwogCiAgICAgT3JkZXJJdGVyYXRvciBtX29y
ZGVySXRlcmF0b3I7CiAKQEAgLTEyOCw3ICsxMjgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2
YXRlOgotICAgIGNvbnN0IEdyaWRBc01hdHJpeCYgbV9ncmlkOworICAgIGNvbnN0IEdyaWQmIG1f
Z3JpZDsKICAgICBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gbV9kaXJlY3Rpb247CiAgICAgdW5z
aWduZWQgbV9yb3dJbmRleDsKICAgICB1bnNpZ25lZCBtX2NvbHVtbkluZGV4OwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYx
MmQzMzUxMjBkZjgzMTY0NjJjOWI0ZjZkOThlNDAyNTFlOGNjNmEuLjBiZjNjYWI3MzA3Zjk2YzQ5
ZGEwMTNkMGViYjRhZWViMjg3NGYzYmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMi0wMy0x
MyAgTWF0dCBXb29kcm93ICA8bWF0dHdvb2Ryb3dAYXBwbGUuY29tPgorCisgICAgICAgIExhemls
eSBhbGxvY2F0ZSBiYWNraW5nIHN0b3JlIGZvciBncmlkIGNvbHVtbnMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIyMDEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisK
KyAgICAgICAgUmVtb3ZlIHNraXAgYW5ub3RhdGlvbiBmb3IgdGVzdCBncmlkLWxpbWl0cy0wMDEg
dGhhdCBub3cgcGFzc2VzLgorCiAyMDIyLTAzLTA4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gbWV0YWRhdGEgY3VlIGVuZFRpbWUgbWF5
IG5vdCBiZSB1cGRhdGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA0ZjViZjc1
YWQwMTBjZTUxMjIxMTZhYjkwMTNlZGYxOWQ0OWY2ZWRjLi41Mzc3ZWZiZWFiODVhN2UwMGU1ZWZj
ZWIyYjM2ODBkMTE1Njg0NmYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMi0wMy0xMyAgTWF0dCBXb29kcm93ICA8bWF0dHdvb2Ryb3dAYXBwbGUu
Y29tPgorCisgICAgICAgIExhemlseSBhbGxvY2F0ZSBiYWNraW5nIHN0b3JlIGZvciBncmlkIGNv
bHVtbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTIyMDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1kZWZpbml0aW9uL2dyaWQtbGlt
aXRzLTAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorCisgICAgICAgIEFkZCBwYXNzaW5nIGV4cGVj
dGF0aW9ucyBmaWxlIGZvciBwcmV2aW91c2x5IHNraXBwZWQgdGVzdC4KKwogMjAyMi0wMy0wOSAg
TWF0dCBXb29kcm93ICA8bWF0dHdvb2Ryb3dAYXBwbGUuY29tPgogCiAgICAgICAgIEdyaWQgaXRl
bXMgdGhhdCBlc3RhYmxpc2ggYW4gaW5kZXBlbmRlbnQgZm9ybWF0dGluZyBjb250ZXh0IHNob3Vs
ZCBub3QgYmUgc3ViZ3JpZHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzNzAzNWYzMDY1YzgyOTI5
OWJiZjBlMWIyNTgwMTM4MDY3YzI3NTYxLi5iYjAzNTljNjk2ZGMyNWQ4ZTlhNjlkYzNiZTQ4ZTZi
NDFhMmNkMGI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQyMTUsNyArNDIxNSw2IEBAIHdlYmtp
dC5vcmcvYi8yMDQ1ODAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvYW5pbWF0aW9uL2dyaWQtCiB3ZWJraXQub3JnL2IvMjA5NDYwIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2Fic3Bvcy9kZXNjZW5kYW50LXN0YXRpYy1wb3Np
dGlvbi0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIwOTQ2MCBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9hYnNwb3MvZGVzY2Vu
ZGFudC1zdGF0aWMtcG9zaXRpb24tMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtp
dC5vcmcvYi8yMDk0NjAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvYWJzcG9zL2Rlc2NlbmRhbnQtc3RhdGljLXBvc2l0aW9uLTAwMy5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjEyMjAxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1ncmlkL2dyaWQtZGVmaW5pdGlvbi9ncmlkLWxpbWl0cy0wMDEuaHRtbCBb
IFNraXAgXQogd2Via2l0Lm9yZy9iLzIxMjI0NiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtZ3JpZC9hbGlnbm1lbnQvZ3JpZC1iYXNlbGluZS1hbGlnbi1jeWNsZXMtMDAx
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMzEwMjEgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvYWxpZ25tZW50L2dyaWQtaW5saW5l
LWJhc2VsaW5lLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMTIyNDYg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvYWxpZ25tZW50L2dy
aWQtaXRlbS1jb250ZW50LWJhc2VsaW5lLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtZ3JpZC9ncmlkLWRlZmluaXRpb24vZ3JpZC1saW1pdHMtMDAxLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlk
L2dyaWQtZGVmaW5pdGlvbi9ncmlkLWxpbWl0cy0wMDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQ4OTRkOGRlMjQxYmU3M2ZlNjNmYmY5YmQ0NDBhODZjZTMzNzI3NTQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Z3JpZC9ncmlkLWRlZmluaXRpb24vZ3JpZC1saW1pdHMtMDAxLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDQgQEAKKworUEFTUyByZXBlYXQoOTk5OSkgc2hvdWxkIGJlIHN1cHBvcnRlZCBpbiBib3Ro
IGF4aXNlcworUEFTUyBJbXBsaWNpdCBncmlkIHNob3VsZCBzdXBwb3J0IGxpbmVzIFstMTBrLCAx
MGtdLgorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>