<?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>88570</bug_id>
          
          <creation_ts>2012-06-07 13:13:54 -0700</creation_ts>
          <short_desc>Cache RenderLayer::isRootLayer for better performance</short_desc>
          <delta_ts>2012-09-18 11:57:34 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>75001</blocked>
    
    <blocked>92258</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>ojan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>643832</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-06-07 13:13:54 -0700</bug_when>
    <thetext>The current implementation is:

bool isRootLayer() const { return renderer()-&gt;isRenderView(); }

Our renderer() won&apos;t change during the RenderLayer lifetime time, nor will its type. This means we could easily cache this information in the constructor.

Adding this caching seems to help with painting time on http://dglazkov.github.com/performance-tests/biggrid.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643854</commentid>
    <comment_count>1</comment_count>
      <attachid>146373</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-06-07 13:40:39 -0700</bug_when>
    <thetext>Created attachment 146373
Proposed new caching.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643917</commentid>
    <comment_count>2</comment_count>
      <attachid>146373</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-06-07 14:30:10 -0700</bug_when>
    <thetext>Comment on attachment 146373
Proposed new caching.

Much more readable now too!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643981</commentid>
    <comment_count>3</comment_count>
      <attachid>146373</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-07 15:27:50 -0700</bug_when>
    <thetext>Comment on attachment 146373
Proposed new caching.

Clearing flags on attachment: 146373

Committed r119761: &lt;http://trac.webkit.org/changeset/119761&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643982</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-07 15:27:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146373</attachid>
            <date>2012-06-07 13:40:39 -0700</date>
            <delta_ts>2012-06-07 15:27:50 -0700</delta_ts>
            <desc>Proposed new caching.</desc>
            <filename>bug-88570-20120607134039.patch</filename>
            <type>text/plain</type>
            <size>8528</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmFlMzBmYjUyNGQ5YWI4
NThlNzk2YjM3NWM1NTU0ODFlYTI3NDU4NC4uZTdiMDBlOTFiYWUzMWRiZWQ1NDBmNjBlMWM2MTM5
NWY2MDNhMTFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTA2LTA3ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIENhY2hlIFJl
bmRlckxheWVyOjppc1Jvb3RMYXllciBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODU3MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhY2hpbmcgY292ZXJlZCBieSBl
eGlzdGluZyB0ZXN0cy4KKworICAgICAgICBSZW5kZXJMYXllcjo6aXNSb290TGF5ZXIoKSdzIGFu
c3dlciB3aWxsIGJlIHRoZSBzYW1lIGR1cmluZyB0aGUgUmVuZGVyTGF5ZXIncworICAgICAgICBs
aWZldGltZSBhcyBhIFJlbmRlckxheWVyIGlzIHRpZWQgdG8gYSBSZW5kZXJCb3hNb2RlbE9iamVj
dC4gVGhpcyBjaGFuZ2UgY2FjaGVzCisgICAgICAgIGlzUm9vdExheWVyIHZhbHVlIGluIHRoZSBj
b25zdHJ1Y3Rvci4KKworICAgICAgICBPbiBodHRwOi8vZGdsYXprb3YuZ2l0aHViLmNvbS9wZXJm
b3JtYW5jZS10ZXN0cy9iaWdncmlkLmh0bWwgd2l0aCBhIDEwMCwwMDAgcm93cworICAgICAgICBi
eSAxMDAgY29sdW1ucyB0YWJsZSwgaXQgc2F2ZXMgYWJvdXQgMTAlIG9uIHRoZSBwYWludCB0aW1l
IGR1cmluZyBzY3JvbGxpbmcgb24KKyAgICAgICAgbXkgbWFjaGluZSAoZ29pbmcgZnJvbSA1MG1z
IHRvIDQ1bXMpLiBJdCB3b3VsZCBleHBlY3QgYWxsIGNvZGUgcGF0aHMgdG8gc2VlIHNvbWUKKyAg
ICAgICAgaW1wcm92ZW1lbnQgYXMgY2hlY2tpbmcgcmVuZGVyZXIoKS0+aXNSZW5kZXJWaWV3KCkg
d2FzIHByZXR0eSBjb21tb24uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OlJlbmRlckxheWVyKToKKyAgICAgICAg
QWRkZWQgY29kZSB0byBjYWNoZSB0aGUgcmVzdWx0IG9mIHJlbmRlcmVyKCktPmlzUmVuZGVyVmll
dygpIGhlcmUuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzdGFja2luZ0NvbnRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6aXNQb3NpdGlvbmVkQ29udGFpbmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OmlzRml4ZWRQb3NpdGlvbmVkQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjplbmNsb3NpbmdUcmFuc2Zvcm1lZEFuY2VzdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpjbGlwcGluZ1Jvb3RGb3JQYWludGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpzaG91bGRTdXBwcmVzc1BhaW50aW5nTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OmhpdFRlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Omlu
dGVyc2VjdHNEYW1hZ2VSZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjppc1N0YWNraW5nQ29udGV4dCk6CisgICAg
ICAgIFVwZGF0ZWQgYWxsIHRoZSBjYWxsIHNpdGVzIHRvIHVzZSBpc1Jvb3RMYXllcigpIGluc3Rl
YWQgb2YgcmVuZGVyZXIoKS0+aXNSZW5kZXJWaWV3KCkKKyAgICAgICAgYXMgaXQgaXMgZmFzdGVy
LgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aXNSb290TGF5ZXIpOgorICAgICAg
ICBBZGRlZCBvdXIgY2FjaGluZyBoZXJlLiBBbHNvIG1hZGUgbV9jYW5Ta2lwUmVwYWludFJlY3Rz
VXBkYXRlT25TY3JvbGwgdG8gZm9sbG93CisgICAgICAgIG1faXNSb290TGF5ZXIgZXhhbXBsZS4K
KwogMjAxMi0wNi0wNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBPcHRpbWl6ZSBGcmFtZVZpZXc6OnNjcm9sbFhGb3JGaXhlZFBvc2l0aW9uKCkgLyBz
Y3JvbGxZRm9yRml4ZWRQb3NpdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAppbmRleCBjNTFkODQ0NDQ4OWEzOTc5ZmMxODVkZDZmMTZmNWMwZDJmOTE5N2I2Li5k
NWU0ZmNiZDg2YWZiMTM5YTJlYTlkMDcyNTZkNDg5MTYyZWVkYTc0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTEyOSw2ICsxMjksNyBAQCBSZW5kZXJMYXll
cjo6UmVuZGVyTGF5ZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlbmRlcmVyKQogICAgIDogbV9p
blJlc2l6ZU1vZGUoZmFsc2UpCiAgICAgLCBtX3Njcm9sbERpbWVuc2lvbnNEaXJ0eSh0cnVlKQog
ICAgICwgbV9ub3JtYWxGbG93TGlzdERpcnR5KHRydWUpCisgICAgLCBtX2lzUm9vdExheWVyKHJl
bmRlcmVyLT5pc1JlbmRlclZpZXcoKSkKICAgICAsIG1fdXNlZFRyYW5zcGFyZW5jeShmYWxzZSkK
ICAgICAsIG1fcGFpbnRpbmdJbnNpZGVSZWZsZWN0aW9uKGZhbHNlKQogICAgICwgbV9pbk92ZXJm
bG93UmVsYXlvdXQoZmFsc2UpCkBAIC04NjUsMjEgKzg2NiwyMCBAQCBGbG9hdFBvaW50IFJlbmRl
ckxheWVyOjpwZXJzcGVjdGl2ZU9yaWdpbigpIGNvbnN0CiBSZW5kZXJMYXllciogUmVuZGVyTGF5
ZXI6OnN0YWNraW5nQ29udGV4dCgpIGNvbnN0CiB7CiAgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0g
cGFyZW50KCk7Ci0gICAgd2hpbGUgKGxheWVyICYmICFsYXllci0+cmVuZGVyZXIoKS0+aXNSZW5k
ZXJWaWV3KCkgJiYgIWxheWVyLT5yZW5kZXJlcigpLT5pc1Jvb3QoKSAmJiBsYXllci0+cmVuZGVy
ZXIoKS0+c3R5bGUoKS0+aGFzQXV0b1pJbmRleCgpKQorICAgIHdoaWxlIChsYXllciAmJiAhbGF5
ZXItPmlzUm9vdExheWVyKCkgJiYgIWxheWVyLT5yZW5kZXJlcigpLT5pc1Jvb3QoKSAmJiBsYXll
ci0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+aGFzQXV0b1pJbmRleCgpKQogICAgICAgICBsYXllciA9
IGxheWVyLT5wYXJlbnQoKTsKICAgICByZXR1cm4gbGF5ZXI7CiB9CiAKIHN0YXRpYyBpbmxpbmUg
Ym9vbCBpc1Bvc2l0aW9uZWRDb250YWluZXIoUmVuZGVyTGF5ZXIqIGxheWVyKQogewotICAgIFJl
bmRlck9iamVjdCogbyA9IGxheWVyLT5yZW5kZXJlcigpOwotICAgIHJldHVybiBvLT5pc1JlbmRl
clZpZXcoKSB8fCBvLT5pc1Bvc2l0aW9uZWQoKSB8fCBvLT5pc1JlbFBvc2l0aW9uZWQoKSB8fCBs
YXllci0+aGFzVHJhbnNmb3JtKCk7CisgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIGxheWVyUmVu
ZGVyZXIgPSBsYXllci0+cmVuZGVyZXIoKTsKKyAgICByZXR1cm4gbGF5ZXItPmlzUm9vdExheWVy
KCkgfHwgbGF5ZXJSZW5kZXJlci0+aXNQb3NpdGlvbmVkKCkgfHwgbGF5ZXJSZW5kZXJlci0+aXNS
ZWxQb3NpdGlvbmVkKCkgfHwgbGF5ZXItPmhhc1RyYW5zZm9ybSgpOwogfQogCiBzdGF0aWMgaW5s
aW5lIGJvb2wgaXNGaXhlZFBvc2l0aW9uZWRDb250YWluZXIoUmVuZGVyTGF5ZXIqIGxheWVyKQog
ewotICAgIFJlbmRlck9iamVjdCogbyA9IGxheWVyLT5yZW5kZXJlcigpOwotICAgIHJldHVybiBv
LT5pc1JlbmRlclZpZXcoKSB8fCBsYXllci0+aGFzVHJhbnNmb3JtKCk7CisgICAgcmV0dXJuIGxh
eWVyLT5pc1Jvb3RMYXllcigpIHx8IGxheWVyLT5oYXNUcmFuc2Zvcm0oKTsKIH0KIAogUmVuZGVy
TGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdQb3NpdGlvbmVkQW5jZXN0b3IoKSBjb25zdApA
QCAtOTA5LDcgKzkwOSw3IEBAIEludFJlY3QgUmVuZGVyTGF5ZXI6OnNjcm9sbGFibGVBcmVhQm91
bmRpbmdCb3goKSBjb25zdAogUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdUcmFu
c2Zvcm1lZEFuY2VzdG9yKCkgY29uc3QKIHsKICAgICBSZW5kZXJMYXllciogY3VyciA9IHBhcmVu
dCgpOwotICAgIHdoaWxlIChjdXJyICYmICFjdXJyLT5yZW5kZXJlcigpLT5pc1JlbmRlclZpZXco
KSAmJiAhY3Vyci0+dHJhbnNmb3JtKCkpCisgICAgd2hpbGUgKGN1cnIgJiYgIWN1cnItPmlzUm9v
dExheWVyKCkgJiYgIWN1cnItPnRyYW5zZm9ybSgpKQogICAgICAgICBjdXJyID0gY3Vyci0+cGFy
ZW50KCk7CiAKICAgICByZXR1cm4gY3VycjsKQEAgLTEwNTgsNyArMTA1OCw3IEBAIFJlbmRlckxh
eWVyKiBSZW5kZXJMYXllcjo6Y2xpcHBpbmdSb290Rm9yUGFpbnRpbmcoKSBjb25zdAogCiAgICAg
Y29uc3QgUmVuZGVyTGF5ZXIqIGN1cnJlbnQgPSB0aGlzOwogICAgIHdoaWxlIChjdXJyZW50KSB7
Ci0gICAgICAgIGlmIChjdXJyZW50LT5yZW5kZXJlcigpLT5pc1JlbmRlclZpZXcoKSkKKyAgICAg
ICAgaWYgKGN1cnJlbnQtPmlzUm9vdExheWVyKCkpCiAgICAgICAgICAgICByZXR1cm4gY29uc3Rf
Y2FzdDxSZW5kZXJMYXllcio+KGN1cnJlbnQpOwogCiAgICAgICAgIGN1cnJlbnQgPSBjb21wb3Np
dGluZ0NvbnRhaW5lcihjdXJyZW50KTsKQEAgLTI4NTEsNyArMjg1MSw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzaG91bGRTdXBwcmVzc1BhaW50aW5nTGF5ZXIoUmVuZGVyTGF5ZXIqIGxheWVyKQog
ICAgIC8vIEF2b2lkIHBhaW50aW5nIGRlc2NlbmRhbnRzIG9mIHRoZSByb290IGxheWVyIHdoZW4g
c3R5bGVzaGVldHMgaGF2ZW4ndCBsb2FkZWQuIFRoaXMgZWxpbWluYXRlcyBGT1VDLgogICAgIC8v
IEl0J3Mgb2sgbm90IHRvIGRyYXcsIGJlY2F1c2UgbGF0ZXIgb24sIHdoZW4gYWxsIHRoZSBzdHls
ZXNoZWV0cyBkbyBsb2FkLCB1cGRhdGVTdHlsZVNlbGVjdG9yIG9uIHRoZSBEb2N1bWVudAogICAg
IC8vIHdpbGwgZG8gYSBmdWxsIHJlcGFpbnQoKS4KLSAgICBpZiAobGF5ZXItPnJlbmRlcmVyKCkt
PmRvY3VtZW50KCktPmRpZExheW91dFdpdGhQZW5kaW5nU3R5bGVzaGVldHMoKSAmJiAhbGF5ZXIt
PnJlbmRlcmVyKCktPmlzUmVuZGVyVmlldygpICYmICFsYXllci0+cmVuZGVyZXIoKS0+aXNSb290
KCkpCisgICAgaWYgKGxheWVyLT5yZW5kZXJlcigpLT5kb2N1bWVudCgpLT5kaWRMYXlvdXRXaXRo
UGVuZGluZ1N0eWxlc2hlZXRzKCkgJiYgIWxheWVyLT5pc1Jvb3RMYXllcigpICYmICFsYXllci0+
cmVuZGVyZXIoKS0+aXNSb290KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gQXZv
aWQgcGFpbnRpbmcgYWxsIGxheWVycyBpZiB0aGUgZG9jdW1lbnQgaXMgaW4gYSBzdGF0ZSB3aGVy
ZSB2aXN1YWwgdXBkYXRlcyBhcmVuJ3QgYWxsb3dlZC4KQEAgLTMzMTcsNyArMzMxNyw3IEBAIGJv
b2wgUmVuZGVyTGF5ZXI6OmhpdFRlc3QoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhp
dFRlc3RSZXN1bHQmIHJlc3VsdCkKICAgICAgICAgLy8gV2UgZGlkbid0IGhpdCBhbnkgbGF5ZXIu
IElmIHdlIGFyZSB0aGUgcm9vdCBsYXllciBhbmQgdGhlIG1vdXNlIGlzIC0tIG9yIGp1c3Qgd2Fz
IC0tIGRvd24sIAogICAgICAgICAvLyByZXR1cm4gb3Vyc2VsdmVzLiBXZSBkbyB0aGlzIHNvIG1v
dXNlIGV2ZW50cyBjb250aW51ZSBnZXR0aW5nIGRlbGl2ZXJlZCBhZnRlciBhIGRyYWcgaGFzIAog
ICAgICAgICAvLyBleGl0ZWQgdGhlIFdlYlZpZXcsIGFuZCBzbyBoaXQgdGVzdGluZyBvdmVyIGEg
c2Nyb2xsYmFyIGhpdHMgdGhlIGNvbnRlbnQgZG9jdW1lbnQuCi0gICAgICAgIGlmICgocmVxdWVz
dC5hY3RpdmUoKSB8fCByZXF1ZXN0LnJlbGVhc2UoKSkgJiYgcmVuZGVyZXIoKS0+aXNSZW5kZXJW
aWV3KCkpIHsKKyAgICAgICAgaWYgKChyZXF1ZXN0LmFjdGl2ZSgpIHx8IHJlcXVlc3QucmVsZWFz
ZSgpKSAmJiBpc1Jvb3RMYXllcigpKSB7CiAgICAgICAgICAgICByZW5kZXJlcigpLT51cGRhdGVI
aXRUZXN0UmVzdWx0KHJlc3VsdCwgcmVzdWx0LnBvaW50KCkpOwogICAgICAgICAgICAgaW5zaWRl
TGF5ZXIgPSB0aGlzOwogICAgICAgICB9CkBAIC00MDM4LDcgKzQwMzgsNyBAQCBib29sIFJlbmRl
ckxheWVyOjppbnRlcnNlY3RzRGFtYWdlUmVjdChjb25zdCBMYXlvdXRSZWN0JiBsYXllckJvdW5k
cywgY29uc3QgTGF5bwogICAgIC8vIEFsd2F5cyBleGFtaW5lIHRoZSBjYW52YXMgYW5kIHRoZSBy
b290LgogICAgIC8vIEZJWE1FOiBDb3VsZCBlbGltaW5hdGUgdGhlIGlzUm9vdCgpIGNoZWNrIGlm
IHdlIGZpeCBiYWNrZ3JvdW5kIHBhaW50aW5nIHNvIHRoYXQgdGhlIFJlbmRlclZpZXcKICAgICAv
LyBwYWludHMgdGhlIHJvb3QncyBiYWNrZ3JvdW5kLgotICAgIGlmIChyZW5kZXJlcigpLT5pc1Jl
bmRlclZpZXcoKSB8fCByZW5kZXJlcigpLT5pc1Jvb3QoKSkKKyAgICBpZiAoaXNSb290TGF5ZXIo
KSB8fCByZW5kZXJlcigpLT5pc1Jvb3QoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAv
LyBJZiB3ZSBhcmVuJ3QgYW4gaW5saW5lIGZsb3csIGFuZCBvdXIgbGF5ZXIgYm91bmRzIGRvIGlu
dGVyc2VjdCB0aGUgZGFtYWdlIHJlY3QsIHRoZW4gd2UgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oCmluZGV4IDczZjU1Yjg1M2QxODUzODNkMDRlMTk3YTExMDk1YzI4M2UxYzdj
OWUuLmJkODFjOTUxMDVlZjVlYTRkOWEzYzlkOTI4MjU5N2VlMmE0NjhkYzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC0zNjgsOCArMzY4LDggQEAgcHVibGljOgog
ICAgIGJvb2wgaW5SZXNpemVNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9pblJlc2l6ZU1vZGU7IH0K
ICAgICB2b2lkIHNldEluUmVzaXplTW9kZShib29sIGIpIHsgbV9pblJlc2l6ZU1vZGUgPSBiOyB9
CiAKLSAgICBib29sIGlzUm9vdExheWVyKCkgY29uc3QgeyByZXR1cm4gcmVuZGVyZXIoKS0+aXNS
ZW5kZXJWaWV3KCk7IH0KLSAgICAKKyAgICBib29sIGlzUm9vdExheWVyKCkgY29uc3QgeyByZXR1
cm4gbV9pc1Jvb3RMYXllcjsgfQorCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQog
ICAgIFJlbmRlckxheWVyQ29tcG9zaXRvciogY29tcG9zaXRvcigpIGNvbnN0OwogICAgIApAQCAt
NjQ2LDcgKzY0Niw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHVwZGF0ZU5vcm1hbEZsb3dMaXN0
KCk7CiAKLSAgICBib29sIGlzU3RhY2tpbmdDb250ZXh0KGNvbnN0IFJlbmRlclN0eWxlKiBzdHls
ZSkgY29uc3QgeyByZXR1cm4gIXN0eWxlLT5oYXNBdXRvWkluZGV4KCkgfHwgcmVuZGVyZXIoKS0+
aXNSZW5kZXJWaWV3KCk7IH0KKyAgICBib29sIGlzU3RhY2tpbmdDb250ZXh0KGNvbnN0IFJlbmRl
clN0eWxlKiBzdHlsZSkgY29uc3QgeyByZXR1cm4gIXN0eWxlLT5oYXNBdXRvWkluZGV4KCkgfHwg
aXNSb290TGF5ZXIoKTsgfQogICAgIGJvb2wgaXNEaXJ0eVN0YWNraW5nQ29udGV4dCgpIGNvbnN0
IHsgcmV0dXJuIG1fek9yZGVyTGlzdHNEaXJ0eSAmJiBpc1N0YWNraW5nQ29udGV4dCgpOyB9CiAK
ICAgICB2b2lkIGNvbXB1dGVSZXBhaW50UmVjdHMoTGF5b3V0UG9pbnQqIG9mZnNldEZyb21Sb290
ID0gMCk7CkBAIC04NzEsNiArODcxLDggQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBtX2lzU2Vs
ZlBhaW50aW5nTGF5ZXIgOiAxOwogCisgICAgY29uc3QgYm9vbCBtX2lzUm9vdExheWVyIDogMTsK
KwogICAgIGJvb2wgbV91c2VkVHJhbnNwYXJlbmN5IDogMTsgLy8gVHJhY2tzIHdoZXRoZXIgd2Ug
bmVlZCB0byBjbG9zZSBhIHRyYW5zcGFyZW50IGxheWVyLCBpLmUuLCB3aGV0aGVyCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBlbmRlZCB1cCBwYWludGluZyB0aGlzIGxh
eWVyIG9yIGFueSBkZXNjZW5kYW50cyAoYW5kIHRoZXJlZm9yZSBuZWVkIHRvCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyBibGVuZCkuCkBAIC05MDAsNyArOTAyLDcgQEAgcHJv
dGVjdGVkOgogICAgIC8vIFRoaXMgaXMgYW4gb3B0aW1pemF0aW9uIGFkZGVkIGZvciA8dGFibGU+
LgogICAgIC8vIEN1cnJlbnRseSBjZWxscyBkbyBub3QgbmVlZCB0byB1cGRhdGUgdGhlaXIgcmVw
YWludCByZWN0YW5nbGVzIHdoZW4gc2Nyb2xsaW5nLiBUaGlzIGFsc28KICAgICAvLyBzYXZlcyBh
IGxvdCBvZiB0aW1lIHdoZW4gc2Nyb2xsaW5nIG9uIGEgdGFibGUuCi0gICAgYm9vbCBtX2NhblNr
aXBSZXBhaW50UmVjdHNVcGRhdGVPblNjcm9sbCA6IDE7CisgICAgY29uc3QgYm9vbCBtX2NhblNr
aXBSZXBhaW50UmVjdHNVcGRhdGVPblNjcm9sbCA6IDE7CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCiAgICAgYm9vbCBtX2hhc0ZpbHRlckluZm8gOiAxOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>