<?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>99382</bug_id>
          
          <creation_ts>2012-10-15 16:17:50 -0700</creation_ts>
          <short_desc>Fold setCellLogicalWidths logic into RenderTableSection layout</short_desc>
          <delta_ts>2012-10-16 09:42:08 -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>Tables</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>bdakin</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>inferno</cc>
    
    <cc>robert</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>742564</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-10-15 16:17:50 -0700</bug_when>
    <thetext>RenderTable&apos;s and RenderTableSection&apos;s setCellLogicalWidths propagate the table layout&apos;s logical widths to the cells. This is done as a pre-step to doing RenderTableSection::layout as it may dirty the sections.

Our implementation is artificial and adds an extra unneeded cells&apos; walking: if any column&apos;s logical width change, we have to relayout all our sections anyway. As we lay our sections / rows, we can mark the cells as we go.

Following the previous paradigm as several advantages:
* avoids calling setNeedsLayout(true, MarkContainingBlockChain) which is a programming error.
* removes the clunky cell&apos;s repainting code.
* avoids a cells&apos; walking.
* removes the artificial split between this &quot;phase&quot; and the regular layout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742587</commentid>
    <comment_count>1</comment_count>
      <attachid>168809</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-10-15 16:45:37 -0700</bug_when>
    <thetext>Created attachment 168809
Proposed change v1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742590</commentid>
    <comment_count>2</comment_count>
      <attachid>168809</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-15 16:53:50 -0700</bug_when>
    <thetext>Comment on attachment 168809
Proposed change v1.

The logic looks fine.  I wonder what (if any) perf benefit this has.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742696</commentid>
    <comment_count>3</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-10-15 18:28:30 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 168809 [details])
&gt; The logic looks fine.  I wonder what (if any) perf benefit this has.

Following our discussion, I tried http://www.robohornet.org/#e=resizecol:

Before:

500x10	510.43ms ± 0.69%
500x50	884.67s ± 1.48%

After:

500x10	509.21ms ± 0.75%
500x50	878.89ms ± 1.40%

It&apos;s really a wash, which confirmed some of my rough testing on http://dglazkov.github.com/performance-tests/redraw.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742698</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-15 18:31:34 -0700</bug_when>
    <thetext>Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743217</commentid>
    <comment_count>5</comment_count>
      <attachid>168809</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 09:42:05 -0700</bug_when>
    <thetext>Comment on attachment 168809
Proposed change v1.

Clearing flags on attachment: 168809

Committed r131465: &lt;http://trac.webkit.org/changeset/131465&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743218</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 09:42:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168809</attachid>
            <date>2012-10-15 16:45:37 -0700</date>
            <delta_ts>2012-10-16 09:42:05 -0700</delta_ts>
            <desc>Proposed change v1.</desc>
            <filename>bug-99382-20121015164427.patch</filename>
            <type>text/plain</type>
            <size>11947</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzA4MjQwMjYxZTJkMTM0
ZDY0NzI3NWM3NWJhMWM4ZTc3MTg0ZmRiYS4uNmRlNjEzNjQ5ZTA1N2Q3ZWNkZGIzNGEyYzcwNzg2
YTBjODViZWQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ4IEBACiAyMDEyLTEwLTE1ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCisgICAgICAgIEZvbGQgc2V0
Q2VsbExvZ2ljYWxXaWR0aHMgbG9naWMgaW50byBSZW5kZXJUYWJsZVNlY3Rpb24gbGF5b3V0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTM4MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNldENlbGxMb2dp
Y2FsV2lkdGhzIHdhcyBpbXBsZW1lbnRlZCBhcyBhIHByZS1waGFzZSB0byBsYXlpbmcgb3V0Cisg
ICAgICAgIHRoZSB0YWJsZSdzIHNlY3Rpb25zLiBUaGlzIHNwbGl0IHdhcyBhcnRpZmljaWFsIGFz
IGFueSBjaGFuZ2UgaW4KKyAgICAgICAgdGhlIGNvbHVtbnMnIGxvZ2ljYWwgd2lkdGggc2hvdWxk
IHRyaWdnZXIgYSBzZWN0aW9ucycgcmVsYXlvdXQsIHdoaWNoCisgICAgICAgIGNvdWxkIHByb3Bh
Z2F0ZSBhbmQgbWFyayB0aGUgY2VsbHMgLyByb3dzIGFzIG5lZWRlZC4KKworICAgICAgICBNZXJn
aW5nIHNldENlbGxMb2dpY2FsV2lkdGhzIGludG8gUmVuZGVyVGFibGVTZWN0aW9uOjpsYXlvdXQg
cmVtb3ZlcworICAgICAgICBhbiB1bm5lZWRlZCBjZWxscyB3YWxraW5nIGFuZCBzb21lIGNsdW5r
aW5lc3MgZnJvbSBvdXIgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgUmVmYWN0b3JpbmcgY292
ZXJlZCBieSB0aGUgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OlJlbmRlclRhYmxlKTog
SW5pdGlhbGl6ZSBvdXIgbmV3IGJvb2xlYW4uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJs
ZTo6bGF5b3V0KToKKyAgICAgICAgSWYgbV9jb2x1bW5Mb2dpY2FsV2lkdGhDaGFuZ2VkLCB3ZSBm
b3JjZSBhIHJlbGF5b3V0IG9uIG91ciBzZWN0aW9ucyBzbyB0aGF0IHRoZSBjZWxscyBhbmQgcm93
cworICAgICAgICBhcmUgbWFya2VkIGZvciBsYXlvdXQgaWYgdGhlcmUgaXMgdGhlIGxvZ2ljYWwg
d2lkdGggY2hhbmdlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZSk6CisgICAgICAgIEFkZGVkIGEgbmV3IGJvb2xlYW4g
dG8gdHJhY2sgaWYgYSBjb2x1bW4gbG9naWNhbCB3aWR0aCBjaGFuZ2VkIChtX2NvbHVtbkxvZ2lj
YWxXaWR0aENoYW5nZWQpLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZTo6c2V0Q29s
dW1uUG9zaXRpb24pOgorICAgICAgICBJZiBhIGNvbHVtbiBwb3NpdGlvbiBjaGFuZ2VkLCByZWdp
c3RlciB0aGF0IG91ciBjb2x1bW4gbG9naWNhbCB3aWR0aHMgY2hhbmdlZC4gVGhpcyBpcyBub3QK
KyAgICAgICAgdG90YWxseSB0cnVlLCBzbyBhZGRlZCBhIGNvbW1lbnQgYWJvdXQgd2hlbiBpdCB3
aWxsIGJlIHdyb25nLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGFibGVDZWxsOjpzZXRDZWxsTG9naWNhbFdpZHRoKToKKyAgICAgICAgVXBkYXRl
ZCB0aGUgZnVuY3Rpb24gdG8gbWFyayB0aGUgY2VsbCBhbmQgdGhlIHJvdyBmb3IgbGF5b3V0LiBB
bHNvIGNoYW5nZWQgdGhlIGFyZ3VtZW50IHRvCisgICAgICAgIGJlIGFuICdpbnQnIGFzIHRoaXMg
d2FzIHdoYXQgd2FzIHBhc3NlZCBpbi4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJs
ZVNlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9uOjpsYXlv
dXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaDoKKyAgICAgICAg
UmVtb3ZlZCBzZXRDZWxsTG9naWNhbFdpZHRocyBhbmQgbWVyZ2VkIHRoZSBsb2dpYyBpbnRvIFJl
bmRlclRhYmxlU2VjdGlvbjo6bGF5b3V0LiBXZSBwcm9wYWdhdGUKKyAgICAgICAgdGhlIHRhYmxl
IGxheW91dCdzIGxvZ2ljYWwgd2lkdGhzIGZpcnN0IHNvIHRoYXQgcm93cyBhcmUgbWFya2VkIGFz
IG5lZWRpbmcgbGF5b3V0IGFzIGFwcHJvcHJpYXRlLgorCisyMDEyLTEwLTE1ICBKdWxpZW4gQ2hh
ZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCiAgICAgICAgIE1ha2UgUmVuZGVyVGFi
bGUgY29sdW1ucygpIGFuZCBjb2x1bW5Qb3NpdGlvbnMoKSByZXR1cm4gYSBjb25zdCByZWZlcmVu
Y2UKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5MzM5
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCmluZGV4IDI2OThmNzg0
MWQxYjYyNzZhOTRkN2M2MjlkZThhNzMxN2ZhM2NmOWQuLmVlN2M4YjgwNzA1ZTg4NWJhMGUxNDM1
ZWFjNThiZWE4ZDA3N2IyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
LmNwcApAQCAtNTgsNiArNTgsNyBAQCBSZW5kZXJUYWJsZTo6UmVuZGVyVGFibGUoTm9kZSogbm9k
ZSkKICAgICAsIG1fY29sbGFwc2VkQm9yZGVyc1ZhbGlkKGZhbHNlKQogICAgICwgbV9oYXNDb2xF
bGVtZW50cyhmYWxzZSkKICAgICAsIG1fbmVlZHNTZWN0aW9uUmVjYWxjKGZhbHNlKQorICAgICwg
bV9jb2x1bW5Mb2dpY2FsV2lkdGhDaGFuZ2VkKGZhbHNlKQogICAgICwgbV9oU3BhY2luZygwKQog
ICAgICwgbV92U3BhY2luZygwKQogICAgICwgbV9ib3JkZXJTdGFydCgwKQpAQCAtMzY5LDggKzM3
MCw2IEBAIHZvaWQgUmVuZGVyVGFibGU6OmxheW91dCgpCiAvLyAgICAgaWYgKCBvbGRXaWR0aCAh
PSB3aWR0aCgpIHx8IGNvbHVtbnMuc2l6ZSgpICsgMSAhPSBjb2x1bW5Qb3Muc2l6ZSgpICkKICAg
ICBtX3RhYmxlTGF5b3V0LT5sYXlvdXQoKTsKIAotICAgIHNldENlbGxMb2dpY2FsV2lkdGhzKCk7
Ci0KICAgICBMYXlvdXRVbml0IHRvdGFsU2VjdGlvbkxvZ2ljYWxIZWlnaHQgPSAwOwogICAgIExh
eW91dFVuaXQgb2xkVGFibGVMb2dpY2FsVG9wID0gMDsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbV9jYXB0aW9ucy5zaXplKCk7IGkrKykKQEAgLTM4MCw4ICszNzksMTAgQEAgdm9pZCBS
ZW5kZXJUYWJsZTo6bGF5b3V0KCkKIAogICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjaGlsZCA9IGZp
cnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAg
ICAgaWYgKGNoaWxkLT5pc1RhYmxlU2VjdGlvbigpKSB7Ci0gICAgICAgICAgICBjaGlsZC0+bGF5
b3V0SWZOZWVkZWQoKTsKICAgICAgICAgICAgIFJlbmRlclRhYmxlU2VjdGlvbiogc2VjdGlvbiA9
IHRvUmVuZGVyVGFibGVTZWN0aW9uKGNoaWxkKTsKKyAgICAgICAgICAgIGlmIChtX2NvbHVtbkxv
Z2ljYWxXaWR0aENoYW5nZWQpCisgICAgICAgICAgICAgICAgc2VjdGlvbi0+c2V0Q2hpbGROZWVk
c0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOworICAgICAgICAgICAgc2VjdGlvbi0+bGF5b3V0
SWZOZWVkZWQoKTsKICAgICAgICAgICAgIHRvdGFsU2VjdGlvbkxvZ2ljYWxIZWlnaHQgKz0gc2Vj
dGlvbi0+Y2FsY1Jvd0xvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgICAgIGlmIChjb2xsYXBzaW5n
KQogICAgICAgICAgICAgICAgIHNlY3Rpb24tPnJlY2FsY091dGVyQm9yZGVyKCk7CkBAIC00OTYs
NiArNDk3LDcgQEAgdm9pZCBSZW5kZXJUYWJsZTo6bGF5b3V0KCkKICAgICAgICAgICAgIHJlcGFp
bnRSZWN0YW5nbGUoTGF5b3V0UmVjdChtb3ZlZFNlY3Rpb25Mb2dpY2FsVG9wLCB2aXN1YWxPdmVy
Zmxvd1JlY3QoKS55KCksIHZpc3VhbE92ZXJmbG93UmVjdCgpLm1heFgoKSAtIG1vdmVkU2VjdGlv
bkxvZ2ljYWxUb3AsIHZpc3VhbE92ZXJmbG93UmVjdCgpLmhlaWdodCgpKSk7CiAgICAgfQogCisg
ICAgbV9jb2x1bW5Mb2dpY2FsV2lkdGhDaGFuZ2VkID0gZmFsc2U7CiAgICAgc2V0TmVlZHNMYXlv
dXQoZmFsc2UpOwogfQogCkBAIC01NTAsMTIgKzU1Miw2IEBAIHZvaWQgUmVuZGVyVGFibGU6OmFk
ZE92ZXJmbG93RnJvbUNoaWxkcmVuKCkKICAgICAgICAgYWRkT3ZlcmZsb3dGcm9tQ2hpbGQoc2Vj
dGlvbik7CiB9CiAKLXZvaWQgUmVuZGVyVGFibGU6OnNldENlbGxMb2dpY2FsV2lkdGhzKCkKLXsK
LSAgICBmb3IgKFJlbmRlclRhYmxlU2VjdGlvbiogc2VjdGlvbiA9IHRvcFNlY3Rpb24oKTsgc2Vj
dGlvbjsgc2VjdGlvbiA9IHNlY3Rpb25CZWxvdyhzZWN0aW9uKSkKLSAgICAgICAgc2VjdGlvbi0+
c2V0Q2VsbExvZ2ljYWxXaWR0aHMoKTsKLX0KLQogdm9pZCBSZW5kZXJUYWJsZTo6cGFpbnQoUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIHsKICAg
ICBMYXlvdXRQb2ludCBhZGp1c3RlZFBhaW50T2Zmc2V0ID0gcGFpbnRPZmZzZXQgKyBsb2NhdGlv
bigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaAppbmRleCA2YTc3NjQ2ODQ3
ODg3Y2QxODI3ZDM5ZTllZjIwMTZmZGMxNmU2MTgzLi5kZTRiNWE2YjAyYjcyNjhlNzg5NTE2NWM3
ZDQyZGE4Y2JmNjQwYjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaApA
QCAtMTQ3LDYgKzE0Nyw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8aW50PiYgY29sdW1u
UG9zaXRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9jb2x1bW5Qb3M7IH0KICAgICB2b2lkIHNldENv
bHVtblBvc2l0aW9uKHVuc2lnbmVkIGluZGV4LCBpbnQgcG9zaXRpb24pCiAgICAgeworICAgICAg
ICAvLyBOb3RlIHRoYXQgaWYgb3VyIGhvcml6b250YWwgYm9yZGVyLXNwYWNpbmcgY2hhbmdlZCwg
b3VyIHBvc2l0aW9uIHdpbGwgY2hhbmdlIGJ1dCBub3QKKyAgICAgICAgLy8gb3VyIGNvbHVtbidz
IHdpZHRoLiBJbiBwcmFjdGljZSwgaG9yaXpvbnRhbCBib3JkZXItc3BhY2luZyB3b24ndCBjaGFu
Z2Ugb2Z0ZW4uCisgICAgICAgIG1fY29sdW1uTG9naWNhbFdpZHRoQ2hhbmdlZCB8PSBtX2NvbHVt
blBvc1tpbmRleF0gIT0gcG9zaXRpb247CiAgICAgICAgIG1fY29sdW1uUG9zW2luZGV4XSA9IHBv
c2l0aW9uOwogICAgIH0KIApAQCAtMjgzLDggKzI4Niw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBSZW5kZXJCbG9jayogZmlyc3RMaW5lQmxvY2soKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlRmlyc3RMZXR0ZXIoKTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q2VsbExvZ2lj
YWxXaWR0aHMoKTsKLQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMb2dpY2FsV2lkdGgoKSBPVkVS
UklERTsKIAogICAgIExheW91dFVuaXQgY29udmVydFN0eWxlTG9naWNhbFdpZHRoVG9Db21wdXRl
ZFdpZHRoKGNvbnN0IExlbmd0aCYgc3R5bGVMb2dpY2FsV2lkdGgsIExheW91dFVuaXQgYXZhaWxh
YmxlV2lkdGgpOwpAQCAtMzE3LDcgKzMxOCw4IEBAIHByaXZhdGU6CiAgICAgCiAgICAgbXV0YWJs
ZSBib29sIG1faGFzQ29sRWxlbWVudHMgOiAxOwogICAgIG11dGFibGUgYm9vbCBtX25lZWRzU2Vj
dGlvblJlY2FsYyA6IDE7Ci0gICAgCisgICAgYm9vbCBtX2NvbHVtbkxvZ2ljYWxXaWR0aENoYW5n
ZWQgOiAxOworCiAgICAgc2hvcnQgbV9oU3BhY2luZzsKICAgICBzaG9ydCBtX3ZTcGFjaW5nOwog
ICAgIGludCBtX2JvcmRlclN0YXJ0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVDZWxsLmNwcAppbmRleCBmNTNmYjA3MGEwM2U4NDg2MjE0OTAwOGQzYzdlZWJmM2RmYTQ3
ZDAyLi41NWFjNTUzZGQ5NGRkNWFkN2M4OTc1YWVlNTk1YzgzNzExNWI2MTNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcApAQCAtMjI0LDEyICsyMjQs
MTggQEAgdm9pZCBSZW5kZXJUYWJsZUNlbGw6OnVwZGF0ZUxvZ2ljYWxXaWR0aCgpCiB7CiB9CiAK
LXZvaWQgUmVuZGVyVGFibGVDZWxsOjpzZXRDZWxsTG9naWNhbFdpZHRoKExheW91dFVuaXQgdykK
K3ZvaWQgUmVuZGVyVGFibGVDZWxsOjpzZXRDZWxsTG9naWNhbFdpZHRoKGludCB0YWJsZUxheW91
dExvZ2ljYWxXaWR0aCkKIHsKLSAgICBpZiAodyA9PSBsb2dpY2FsV2lkdGgoKSkKKyAgICBpZiAo
dGFibGVMYXlvdXRMb2dpY2FsV2lkdGggPT0gbG9naWNhbFdpZHRoKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIHNldExvZ2ljYWxXaWR0aCh3KTsKKyAgICBzZXROZWVkc0xheW91dCh0cnVlLCBN
YXJrT25seVRoaXMpOworICAgIHJvdygpLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtP
bmx5VGhpcyk7CisKKyAgICBpZiAoIXRhYmxlKCktPnNlbGZOZWVkc0xheW91dCgpICYmIGNoZWNr
Rm9yUmVwYWludER1cmluZ0xheW91dCgpKQorICAgICAgICByZXBhaW50KCk7CisKKyAgICBzZXRM
b2dpY2FsV2lkdGgodGFibGVMYXlvdXRMb2dpY2FsV2lkdGgpOwogICAgIHNldENlbGxXaWR0aENo
YW5nZWQodHJ1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZUNlbGwuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNl
bGwuaAppbmRleCBhODczYTUxOTdlMmJhMDhlZDg1NjcyMjZiM2JhZjc3NzdjMGMzODNhLi5mMjkw
M2EzNDc0NzhlNTUwM2E2OGNlNzI3MzFmZDcxNTEyYjcwOTExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCkBAIC0xMDQsNyArMTA0LDcgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCk7CiAKLSAg
ICB2b2lkIHNldENlbGxMb2dpY2FsV2lkdGgoTGF5b3V0VW5pdCk7CisgICAgdm9pZCBzZXRDZWxs
TG9naWNhbFdpZHRoKGludCBjb25zdHJhaW5lZExvZ2ljYWxXaWR0aCk7CiAKICAgICB2aXJ0dWFs
IGludCBib3JkZXJMZWZ0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgYm9yZGVyUmlnaHQoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNl
Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5j
cHAKaW5kZXggNzJlODI2ZDg4YzUyODEzYTRjNDk5ZDUwZDkyMjk2MzYyMTk5OTBlMi4uN2RjZTYw
MjQ5ZTk5ODk4OGQ5YzJlODViODlmOTE2YjBkY2RlZGYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKQEAgLTI2MSw0NyArMjYxLDYgQEAg
dm9pZCBSZW5kZXJUYWJsZVNlY3Rpb246OmFkZENlbGwoUmVuZGVyVGFibGVDZWxsKiBjZWxsLCBS
ZW5kZXJUYWJsZVJvdyogcm93KQogICAgIGNlbGwtPnNldENvbCh0YWJsZSgpLT5lZmZDb2xUb0Nv
bChjb2wpKTsKIH0KIAotdm9pZCBSZW5kZXJUYWJsZVNlY3Rpb246OnNldENlbGxMb2dpY2FsV2lk
dGhzKCkKLXsKLSAgICBjb25zdCBWZWN0b3I8aW50PiYgY29sdW1uUG9zID0gdGFibGUoKS0+Y29s
dW1uUG9zaXRpb25zKCk7Ci0KLSAgICBMYXlvdXRTdGF0ZU1haW50YWluZXIgc3RhdGVQdXNoZXIo
dmlldygpKTsKLQotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2dyaWQuc2l6ZSgpOyBp
KyspIHsKLSAgICAgICAgUm93JiByb3cgPSBtX2dyaWRbaV0ucm93OwotICAgICAgICB1bnNpZ25l
ZCBjb2xzID0gcm93LnNpemUoKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBqID0gMDsgaiA8IGNv
bHM7IGorKykgewotICAgICAgICAgICAgQ2VsbFN0cnVjdCYgY3VycmVudCA9IHJvd1tqXTsKLSAg
ICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCogY2VsbCA9IGN1cnJlbnQucHJpbWFyeUNlbGwoKTsK
LSAgICAgICAgICAgIGlmICghY2VsbCB8fCBjdXJyZW50LmluQ29sU3BhbikKLSAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICB1bnNpZ25lZCBlbmRDb2wgPSBqOwotICAgICAgICAg
ICAgdW5zaWduZWQgY3NwYW4gPSBjZWxsLT5jb2xTcGFuKCk7Ci0gICAgICAgICAgICB3aGlsZSAo
Y3NwYW4gJiYgZW5kQ29sIDwgY29scykgewotICAgICAgICAgICAgICAgIEFTU0VSVChlbmRDb2wg
PCB0YWJsZSgpLT5jb2x1bW5zKCkuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICBjc3BhbiAtPSB0
YWJsZSgpLT5jb2x1bW5zKClbZW5kQ29sXS5zcGFuOwotICAgICAgICAgICAgICAgIGVuZENvbCsr
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaW50IHcgPSBjb2x1bW5Qb3NbZW5kQ29sXSAt
IGNvbHVtblBvc1tqXSAtIHRhYmxlKCktPmhCb3JkZXJTcGFjaW5nKCk7Ci0gICAgICAgICAgICBp
bnQgb2xkTG9naWNhbFdpZHRoID0gY2VsbC0+bG9naWNhbFdpZHRoKCk7Ci0gICAgICAgICAgICBp
ZiAodyAhPSBvbGRMb2dpY2FsV2lkdGgpIHsKLSAgICAgICAgICAgICAgICBjZWxsLT5zZXROZWVk
c0xheW91dCh0cnVlKTsKLSAgICAgICAgICAgICAgICBpZiAoIXRhYmxlKCktPnNlbGZOZWVkc0xh
eW91dCgpICYmIGNlbGwtPmNoZWNrRm9yUmVwYWludER1cmluZ0xheW91dCgpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmICghc3RhdGVQdXNoZXIuZGlkUHVzaCgpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAvLyBUZWNobmljYWxseSwgd2Ugc2hvdWxkIGFsc28gcHVzaCBzdGF0ZSBmb3Ig
dGhlIHJvdywgYnV0IHNpbmNlCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyByb3dzIGRvbid0
IHB1c2ggYSBjb29yZGluYXRlIHRyYW5zZm9ybSwgdGhhdCdzIG5vdCBuZWNlc3NhcnkuCi0gICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0ZVB1c2hlci5wdXNoKHRoaXMsIGxvY2F0aW9uT2Zmc2V0
KCkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGNlbGwtPnJl
cGFpbnQoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY2VsbC0+c2V0Q2Vs
bExvZ2ljYWxXaWR0aCh3KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICAK
LSAgICBzdGF0ZVB1c2hlci5wb3AoKTsgLy8gb25seSBwb3BzIGlmIHdlIHB1c2hlZAotfQotCiBp
bnQgUmVuZGVyVGFibGVTZWN0aW9uOjpjYWxjUm93TG9naWNhbEhlaWdodCgpCiB7CiAjaWZuZGVm
IE5ERUJVRwpAQCAtNDA0LDEyICszNjMsMzUgQEAgdm9pZCBSZW5kZXJUYWJsZVNlY3Rpb246Omxh
eW91dCgpCiAgICAgbV9ncmlkLnNocmlua1RvRml0KCk7CiAKICAgICBMYXlvdXRTdGF0ZU1haW50
YWluZXIgc3RhdGVQdXNoZXIodmlldygpLCB0aGlzLCBsb2NhdGlvbk9mZnNldCgpLCBzdHlsZSgp
LT5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKTsKLSAgICBmb3IgKFJlbmRlck9iamVjdCog
Y2hpbGQgPSBjaGlsZHJlbigpLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5u
ZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmIChjaGlsZC0+aXNUYWJsZVJvdygpKSB7Ci0gICAg
ICAgICAgICBjaGlsZC0+bGF5b3V0SWZOZWVkZWQoKTsKLSAgICAgICAgICAgIEFTU0VSVCghY2hp
bGQtPm5lZWRzTGF5b3V0KCkpOworCisgICAgY29uc3QgVmVjdG9yPGludD4mIGNvbHVtblBvcyA9
IHRhYmxlKCktPmNvbHVtblBvc2l0aW9ucygpOworCisgICAgZm9yICh1bnNpZ25lZCByID0gMDsg
ciA8IG1fZ3JpZC5zaXplKCk7ICsrcikgeworICAgICAgICBSb3cmIHJvdyA9IG1fZ3JpZFtyXS5y
b3c7CisgICAgICAgIHVuc2lnbmVkIGNvbHMgPSByb3cuc2l6ZSgpOworICAgICAgICAvLyBGaXJz
dCwgcHJvcGFnYXRlIG91ciB0YWJsZSBsYXlvdXQncyBpbmZvcm1hdGlvbiB0byB0aGUgY2VsbHMu
IFRoaXMgd2lsbCBtYXJrIHRoZSByb3cgYXMgbmVlZGluZyBsYXlvdXQKKyAgICAgICAgLy8gaWYg
dGhlcmUgd2FzIGEgY29sdW1uIGxvZ2ljYWwgd2lkdGggY2hhbmdlLgorICAgICAgICBmb3IgKHVu
c2lnbmVkIHN0YXJ0Q29sdW1uID0gMDsgc3RhcnRDb2x1bW4gPCBjb2xzOyArK3N0YXJ0Q29sdW1u
KSB7CisgICAgICAgICAgICBDZWxsU3RydWN0JiBjdXJyZW50ID0gcm93W3N0YXJ0Q29sdW1uXTsK
KyAgICAgICAgICAgIFJlbmRlclRhYmxlQ2VsbCogY2VsbCA9IGN1cnJlbnQucHJpbWFyeUNlbGwo
KTsKKyAgICAgICAgICAgIGlmICghY2VsbCB8fCBjdXJyZW50LmluQ29sU3BhbikKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgdW5zaWduZWQgZW5kQ29sID0gc3RhcnRD
b2x1bW47CisgICAgICAgICAgICB1bnNpZ25lZCBjc3BhbiA9IGNlbGwtPmNvbFNwYW4oKTsKKyAg
ICAgICAgICAgIHdoaWxlIChjc3BhbiAmJiBlbmRDb2wgPCBjb2xzKSB7CisgICAgICAgICAgICAg
ICAgQVNTRVJUKGVuZENvbCA8IHRhYmxlKCktPmNvbHVtbnMoKS5zaXplKCkpOworICAgICAgICAg
ICAgICAgIGNzcGFuIC09IHRhYmxlKCktPmNvbHVtbnMoKVtlbmRDb2xdLnNwYW47CisgICAgICAg
ICAgICAgICAgZW5kQ29sKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgdGFibGVM
YXlvdXRMb2dpY2FsV2lkdGggPSBjb2x1bW5Qb3NbZW5kQ29sXSAtIGNvbHVtblBvc1tzdGFydENv
bHVtbl0gLSB0YWJsZSgpLT5oQm9yZGVyU3BhY2luZygpOworICAgICAgICAgICAgY2VsbC0+c2V0
Q2VsbExvZ2ljYWxXaWR0aCh0YWJsZUxheW91dExvZ2ljYWxXaWR0aCk7CiAgICAgICAgIH0KKwor
ICAgICAgICBpZiAoUmVuZGVyVGFibGVSb3cqIHJvd1JlbmRlcmVyID0gbV9ncmlkW3JdLnJvd1Jl
bmRlcmVyKQorICAgICAgICAgICAgcm93UmVuZGVyZXItPmxheW91dElmTmVlZGVkKCk7CiAgICAg
fQorCiAgICAgc3RhdGVQdXNoZXIucG9wKCk7CiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oCmluZGV4
IDAyYTUyOTk5NDQ2MDljOWY5N2QyODI1YWM4OGYxN2FlOGM3YzIyMGYuLjJiYjljZTM2NDkxOWZk
MDQ5MDljMDJmODU5N2MxOGJiN2RhNjQ5ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGVTZWN0aW9uLmgKQEAgLTc0LDcgKzc0LDYgQEAgcHVibGljOgogCiAgICAg
dm9pZCBhZGRDZWxsKFJlbmRlclRhYmxlQ2VsbCosIFJlbmRlclRhYmxlUm93KiByb3cpOwogCi0g
ICAgdm9pZCBzZXRDZWxsTG9naWNhbFdpZHRocygpOwogICAgIGludCBjYWxjUm93TG9naWNhbEhl
aWdodCgpOwogICAgIHZvaWQgbGF5b3V0Um93cygpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>