<?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>12867</bug_id>
          
          <creation_ts>2007-02-23 00:42:14 -0800</creation_ts>
          <short_desc>REGRESSION: BenchJS test 7 (dates) is 220% slower than in Safari 2.0.4</short_desc>
          <delta_ts>2007-03-02 09:56:06 -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>JavaScriptCore</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, NeedsReduction, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>kmccullough</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>22009</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-02-23 00:42:14 -0800</bug_when>
    <thetext>The 24Fun benchmark&apos;s flying date test (test 7) is 220% slower in current
WebKit than Safari 2.0.4.

I suspect this was due to adopting Mozilla&apos;s date computation code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22011</commentid>
    <comment_count>1</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-02-23 00:44:48 -0800</bug_when>
    <thetext>&lt;rdar://problem/5018674&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21962</commentid>
    <comment_count>2</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-02-23 05:38:49 -0800</bug_when>
    <thetext>May be related to Bug 12070 (r18584) or Bug 12057 (r18514) which were follow-on patches to the Mozilla date code.

http://trac.webkit.org/projects/webkit/changeset/18584
http://trac.webkit.org/projects/webkit/changeset/18514

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21963</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-02-23 05:55:20 -0800</bug_when>
    <thetext>Bug 12070 is the more likely culprit since it removed a caching mechanism.  If this is the cause, we probably need to determine how to cache the timezone value so that the UTC offset is only recomputed when needed.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21149</commentid>
    <comment_count>4</comment_count>
      <attachid>13397</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-02-27 07:06:04 -0800</bug_when>
    <thetext>Created attachment 13397
patch to restore time zone caching

If the regression is really due to the fact that the time zone isn&apos;t cached, then this patch might help. It restores caching of the time zone, using the same &quot;time zone change&quot; notification we have historically used on Mac OS X. It will still be slow on other platforms, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>21010</commentid>
    <comment_count>5</comment_count>
      <attachid>13397</attachid>
    <who name="Kevin McCullough">kmccullough</who>
    <bug_when>2007-02-27 18:09:48 -0800</bug_when>
    <thetext>Comment on attachment 13397
patch to restore time zone caching

do we have any quantification on performance improvement?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>20998</commentid>
    <comment_count>6</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-02-27 19:18:59 -0800</bug_when>
    <thetext>We need to measure to see if this patch is sufficient. I have a fresh release build so I can try that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>20932</commentid>
    <comment_count>7</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-02-27 22:38:20 -0800</bug_when>
    <thetext>Safari 2.0.4: 0.149s
TOT w/o patch: 0.479
TOT with patch: .13

It looks like Darin&apos;s patch gets us to faster than Safari 2.0.4. However, because JS execution speed has improved so much generally, and we replaced the date code wholesale, I think we should still compare profiles to see if anything leaps out as potentiall speed-upabble before closing this out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>20921</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-02-28 06:40:48 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; [...] I think we should still compare profiles to see if
&gt; anything leaps out as potentiall speed-upabble before closing this out.

Another potentially &quot;speed-uppable&quot; section of code is that code which calculates the DST offset:  getDSTOffsetSimple() and getDSTOffset().  As I recall it never had any caching mechanism, although that code *appears* to be a hot path since it&apos;s called from a lot of places.  (I have not profiled the code to know whether it&apos;s a hot path or not.)

Does Mac OS X generate a timezone change when DST takes effect, or is there an equivalent notification for DST changes that may be used?

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>20724</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-02 09:55:49 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Does Mac OS X generate a timezone change when DST takes effect, or is there an
&gt; equivalent notification for DST changes that may be used?

I don&apos;t think that&apos;s a relevant question, because that function doesn&apos;t depend on whether DST is in effect at the time it&apos;s called. It asks if DST is in effect at a given time that may be in the past or future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>20725</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-02 09:56:06 -0800</bug_when>
    <thetext>Committed revision 19943.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13397</attachid>
            <date>2007-02-27 07:06:04 -0800</date>
            <delta_ts>2007-02-27 18:09:48 -0800</delta_ts>
            <desc>patch to restore time zone caching</desc>
            <filename>TimeZoneCachePatch.txt</filename>
            <type>text/plain</type>
            <size>12255</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9EYXRlTWF0aC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2
YVNjcmlwdENvcmUva2pzL0RhdGVNYXRoLmNwcAkocmV2aXNpb24gMTk4ODApCisrKyBKYXZhU2Ny
aXB0Q29yZS9ranMvRGF0ZU1hdGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCwxMCBA
QAogCiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN0ZGludC5oPgotI2luY2x1ZGUgPHd0
Zi9Pd25QdHIuaD4KKworI2lmIFBMQVRGT1JNKERBUldJTikKKyNpbmNsdWRlIDxub3RpZnkuaD4K
KyNlbmRpZgogCiBuYW1lc3BhY2UgS0pTIHsKIApAQCAtNTYsMjYgKzU5LDI5IEBAIHN0YXRpYyBj
b25zdCBkb3VibGUgc2Vjb25kc1BlclllYXIgPSAyNC4KIAogc3RhdGljIGNvbnN0IGRvdWJsZSB1
c2VjUGVyU2VjID0gMTAwMDAwMC4wOwogCi1zdGF0aWMgY29uc3QgZG91YmxlIG1heFVuaXhUaW1l
ID0gMjE0NTg1OTIwMC4wOyAvKmVxdWl2YWxlbnQgdG8gMTIvMzEvMjAzNyAqLworc3RhdGljIGNv
bnN0IGRvdWJsZSBtYXhVbml4VGltZSA9IDIxNDU4NTkyMDAuMDsgLy8gMTIvMzEvMjAzNwogCi0v
KgotICogVGhlIGZvbGxvd2luZyBhcnJheSBjb250YWlucyB0aGUgZGF5IG9mIHllYXIgZm9yIHRo
ZSBmaXJzdCBkYXkgb2YKLSAqIGVhY2ggbW9udGgsIHdoZXJlIGluZGV4IDAgaXMgSmFudWFyeSwg
YW5kIGRheSAwIGlzIEphbnVhcnkgMS4KLSAqLwotc3RhdGljIGludCBmaXJzdERheU9mTW9udGhb
Ml1bMTJdID0geworLy8gRGF5IG9mIHllYXIgZm9yIHRoZSBmaXJzdCBkYXkgb2YgZWFjaCBtb250
aCwgd2hlcmUgaW5kZXggMCBpcyBKYW51YXJ5LCBhbmQgZGF5IDAgaXMgSmFudWFyeSAxLgorLy8g
Rmlyc3QgZm9yIG5vbi1sZWFwIHllYXJzLCB0aGVuIGZvciBsZWFwIHllYXJzLgorc3RhdGljIGNv
bnN0IGludCBmaXJzdERheU9mTW9udGhbMl1bMTJdID0gewogICAgIHswLCAzMSwgNTksIDkwLCAx
MjAsIDE1MSwgMTgxLCAyMTIsIDI0MywgMjczLCAzMDQsIDMzNH0sCiAgICAgezAsIDMxLCA2MCwg
OTEsIDEyMSwgMTUyLCAxODIsIDIxMywgMjQ0LCAyNzQsIDMwNSwgMzM1fQogfTsKIAotc3RhdGlj
IGlubGluZSBpbnQgZGF5c0luWWVhcihpbnQgeWVhcikKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc0xl
YXBZZWFyKGludCB5ZWFyKQogewogICAgIGlmICh5ZWFyICUgNCAhPSAwKQotICAgICAgICByZXR1
cm4gMzY1OworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKHllYXIgJSA0MDAgPT0gMCkK
LSAgICAgICAgcmV0dXJuIDM2NjsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKHllYXIg
JSAxMDAgPT0gMCkKLSAgICAgICAgcmV0dXJuIDM2NTsKLSAgICByZXR1cm4gMzY2OworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50
IGRheXNJblllYXIoaW50IHllYXIpCit7CisgICAgcmV0dXJuIDM2NSArIGlzTGVhcFllYXIoeWVh
cik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgZG91YmxlIGRheXNGcm9tMTk3MFRvWWVhcihpbnQgeWVh
cikKQEAgLTk4LDkgKzEwNCw4IEBAIHN0YXRpYyBpbmxpbmUgZG91YmxlIG1zVG9EYXlzKGRvdWJs
ZSBtcykKIAogc3RhdGljIGlubGluZSBpbnQgbXNUb1llYXIoZG91YmxlIG1zKQogewotICAgIGlu
dCB5ID0gc3RhdGljX2Nhc3Q8aW50PihmbG9vcihtcyAvKG1zUGVyRGF5KjM2NS4yNDI1KSkgKyAx
OTcwKTsKKyAgICBpbnQgeSA9IHN0YXRpY19jYXN0PGludD4oZmxvb3IobXMgLyAobXNQZXJEYXkg
KiAzNjUuMjQyNSkpICsgMTk3MCk7CiAgICAgZG91YmxlIHQyID0gbXNGcm9tMTk3MFRvWWVhcih5
KTsKLQogICAgIGlmICh0MiA+IG1zKSB7CiAgICAgICAgIHktLTsKICAgICB9IGVsc2UgewpAQCAt
MTEwLDE3ICsxMTUsNiBAQCBzdGF0aWMgaW5saW5lIGludCBtc1RvWWVhcihkb3VibGUgbXMpCiAg
ICAgcmV0dXJuIHk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0xlYXBZZWFyKGludCB5ZWFy
KQotewotICAgIGlmICh5ZWFyICUgNCAhPSAwKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
aWYgKHllYXIgJSA0MDAgPT0gMCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKHllYXIg
JSAxMDAgPT0gMCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVlOwotfQot
CiBzdGF0aWMgaW5saW5lIGJvb2wgaXNJbkxlYXBZZWFyKGRvdWJsZSBtcykKIHsKICAgICByZXR1
cm4gaXNMZWFwWWVhcihtc1RvWWVhcihtcykpOwpAQCAtMTMzLDggKzEyNyw3IEBAIHN0YXRpYyBp
bmxpbmUgaW50IGRheUluWWVhcihkb3VibGUgbXMsIGkKIAogc3RhdGljIGlubGluZSBkb3VibGUg
bXNUb01pbGxpc2Vjb25kcyhkb3VibGUgbXMpCiB7Ci0gICAgZG91YmxlIHJlc3VsdDsKLSAgICBy
ZXN1bHQgPSBmbW9kKG1zLCBtc1BlckRheSk7CisgICAgZG91YmxlIHJlc3VsdCA9IGZtb2QobXMs
IG1zUGVyRGF5KTsKICAgICBpZiAocmVzdWx0IDwgMCkKICAgICAgICAgcmVzdWx0ICs9IG1zUGVy
RGF5OwogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xNDMsNyArMTM2LDcgQEAgc3RhdGljIGlubGlu
ZSBkb3VibGUgbXNUb01pbGxpc2Vjb25kcyhkbwogLy8gMDogU3VuZGF5LCAxOiBNb25kYXksIGV0
Yy4KIHN0YXRpYyBpbmxpbmUgaW50IG1zVG9XZWVrRGF5KGRvdWJsZSBtcykKIHsKLSAgICBpbnQg
d2QgPSAoKGludCltc1RvRGF5cyhtcykgKyA0KSAlIDc7CisgICAgaW50IHdkID0gKHN0YXRpY19j
YXN0PGludD4obXNUb0RheXMobXMpKSArIDQpICUgNzsKICAgICBpZiAod2QgPCAwKQogICAgICAg
ICB3ZCArPSA3OwogICAgIHJldHVybiB3ZDsKQEAgLTE1MSwzMyArMTQ0LDMzIEBAIHN0YXRpYyBp
bmxpbmUgaW50IG1zVG9XZWVrRGF5KGRvdWJsZSBtcykKIAogc3RhdGljIGlubGluZSBpbnQgbXNU
b1NlY29uZHMoZG91YmxlIG1zKQogewotICAgIGludCByZXN1bHQgPSAoaW50KSBmbW9kKGZsb29y
KG1zIC8gbXNQZXJTZWNvbmQpLCBzZWNvbmRzUGVyTWludXRlKTsKKyAgICBkb3VibGUgcmVzdWx0
ID0gZm1vZChmbG9vcihtcyAvIG1zUGVyU2Vjb25kKSwgc2Vjb25kc1Blck1pbnV0ZSk7CiAgICAg
aWYgKHJlc3VsdCA8IDApCi0gICAgICAgIHJlc3VsdCArPSAoaW50KXNlY29uZHNQZXJNaW51dGU7
Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0ICs9IHNlY29uZHNQZXJNaW51dGU7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4ocmVzdWx0KTsKIH0KIAogc3RhdGljIGlubGlu
ZSBpbnQgbXNUb01pbnV0ZXMoZG91YmxlIG1zKQogewotICAgIGludCByZXN1bHQgPSAoaW50KSBm
bW9kKGZsb29yKG1zIC8gbXNQZXJNaW51dGUpLCBtaW51dGVzUGVySG91cik7CisgICAgZG91Ymxl
IHJlc3VsdCA9IGZtb2QoZmxvb3IobXMgLyBtc1Blck1pbnV0ZSksIG1pbnV0ZXNQZXJIb3VyKTsK
ICAgICBpZiAocmVzdWx0IDwgMCkKLSAgICAgICAgcmVzdWx0ICs9IChpbnQpbWludXRlc1Blckhv
dXI7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0ICs9IG1pbnV0ZXNQZXJIb3Vy
OworICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHJlc3VsdCk7CiB9CiAKIHN0YXRpYyBpbmxp
bmUgaW50IG1zVG9Ib3Vycyhkb3VibGUgbXMpCiB7Ci0gICAgaW50IHJlc3VsdCA9IChpbnQpIGZt
b2QoZmxvb3IobXMvbXNQZXJIb3VyKSwgaG91cnNQZXJEYXkpOworICAgIGRvdWJsZSByZXN1bHQg
PSBmbW9kKGZsb29yKG1zL21zUGVySG91ciksIGhvdXJzUGVyRGF5KTsKICAgICBpZiAocmVzdWx0
IDwgMCkKLSAgICAgICAgcmVzdWx0ICs9IChpbnQpaG91cnNQZXJEYXk7Ci0gICAgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICAgcmVzdWx0ICs9IGhvdXJzUGVyRGF5OworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxpbnQ+KHJlc3VsdCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IG1zVG9Nb250aChkb3Vi
bGUgbXMpCiB7Ci0gICAgaW50IGQsIHN0ZXA7CisgICAgaW50IHN0ZXA7CiAgICAgaW50IHllYXIg
PSBtc1RvWWVhcihtcyk7Ci0gICAgZCA9IGRheUluWWVhcihtcywgeWVhcik7CisgICAgaW50IGQg
PSBkYXlJblllYXIobXMsIHllYXIpOwogCiAgICAgaWYgKGQgPCAoc3RlcCA9IDMxKSkKICAgICAg
ICAgcmV0dXJuIDA7CkBAIC0yMDcsOSArMjAwLDkgQEAgc3RhdGljIGlubGluZSBpbnQgbXNUb01v
bnRoKGRvdWJsZSBtcykKIAogc3RhdGljIGlubGluZSBpbnQgbXNUb0RheUluTW9udGgoZG91Ymxl
IG1zKQogewotICAgIGludCBkLCBzdGVwLCBuZXh0OworICAgIGludCBzdGVwLCBuZXh0OwogICAg
IGludCB5ZWFyID0gbXNUb1llYXIobXMpOwotICAgIGQgPSBkYXlJblllYXIobXMsIHllYXIpOwor
ICAgIGludCBkID0gZGF5SW5ZZWFyKG1zLCB5ZWFyKTsKIAogICAgIGlmIChkIDw9IChuZXh0ID0g
MzApKQogICAgICAgICByZXR1cm4gZCArIDE7CkBAIC0yOTMsNyArMjg2LDMyIEBAIGludCBlcXVp
dmFsZW50WWVhckZvckRTVChpbnQgeWVhcikKICAqIEdldCB0aGUgZGlmZmVyZW5jZSBpbiBtaWxs
aXNlY29uZHMgYmV0d2VlbiB0aGlzIHRpbWUgem9uZSBhbmQgVVRDIChHTVQpCiAgKiBOT1QgaW5j
bHVkaW5nIERTVC4KICAqLwotZG91YmxlIGdldFVUQ09mZnNldCgpIHsKK2RvdWJsZSBnZXRVVENP
ZmZzZXQoKQoreworI2lmIFBMQVRGT1JNKERBUldJTikKKyAgICAvLyBSZWdpc3RlciBmb3IgYSBu
b3RpZmljYXRpb24gd2hlbmV2ZXIgdGhlIHRpbWUgem9uZSBjaGFuZ2VzLgorICAgIHN0YXRpYyBi
b29sIHRyaWVkVG9SZWdpc3RlciA9IGZhbHNlOworICAgIHN0YXRpYyBib29sIGhhdmVOb3RpZmlj
YXRpb25Ub2tlbiA9IGZhbHNlOworICAgIHN0YXRpYyBpbnQgbm90aWZpY2F0aW9uVG9rZW47Cisg
ICAgaWYgKCF0cmllZFRvUmVnaXN0ZXIpIHsKKyAgICAgICAgdHJpZWRUb1JlZ2lzdGVyID0gdHJ1
ZTsKKyAgICAgICAgdWludDMyX3Qgc3RhdHVzID0gbm90aWZ5X3JlZ2lzdGVyX2NoZWNrKCJjb20u
YXBwbGUuc3lzdGVtLnRpbWV6b25lIiwgJm5vdGlmaWNhdGlvblRva2VuKTsKKyAgICAgICAgaWYg
KHN0YXR1cyA9PSBOT1RJRllfU1RBVFVTX09LKQorICAgICAgICAgICAgaGF2ZU5vdGlmaWNhdGlv
blRva2VuID0gdHJ1ZTsKKyAgICB9CisKKyAgICAvLyBJZiB3ZSBjYW4gdmVyaWZ5IHRoYXQgd2Ug
aGF2ZSBub3QgcmVjZWl2ZWQgYSB0aW1lIHpvbmUgbm90aWZpY2F0aW9uLAorICAgIC8vIHRoZW4g
dXNlIHRoZSBjYWNoZWQgb2Zmc2V0IGZyb20gdGhlIGxhc3QgdGltZSB0aGlzIGZ1bmN0aW9uIHdh
cyBjYWxsZWQuCisgICAgc3RhdGljIGJvb2wgaGF2ZUNhY2hlZE9mZnNldCA9IGZhbHNlOworICAg
IHN0YXRpYyBkb3VibGUgY2FjaGVkT2Zmc2V0OworICAgIGlmIChoYXZlTm90aWZpY2F0aW9uVG9r
ZW4gJiYgaGF2ZUNhY2hlZE9mZnNldCkgeworICAgICAgICBpbnQgbm90aWZpZWQ7CisgICAgICAg
IHVpbnQzMl90IHN0YXR1cyA9IG5vdGlmeV9jaGVjayhub3RpZmljYXRpb25Ub2tlbiwgJm5vdGlm
aWVkKTsKKyAgICAgICAgaWYgKHN0YXR1cyA9PSBOT1RJRllfU1RBVFVTX09LICYmICFub3RpZmll
ZCkKKyAgICAgICAgICAgIHJldHVybiBjYWNoZWRPZmZzZXQ7CisgICAgfQorI2VuZGlmCisKICAg
ICB0bSBsb2NhbHQ7CiAKICAgICBtZW1zZXQoJmxvY2FsdCwgMCwgc2l6ZW9mKGxvY2FsdCkpOwpA
QCAtMzA1LDYgKzMyMywxMSBAQCBkb3VibGUgZ2V0VVRDT2Zmc2V0KCkgewogCiAgICAgdXRjT2Zm
c2V0ICo9IG1zUGVyU2Vjb25kOwogCisjaWYgUExBVEZPUk0oREFSV0lOKQorICAgIGhhdmVDYWNo
ZWRPZmZzZXQgPSB0cnVlOworICAgIGNhY2hlZE9mZnNldCA9IHV0Y09mZnNldDsKKyNlbmRpZgor
CiAgICAgcmV0dXJuIHV0Y09mZnNldDsKIH0KIApAQCAtMzE1LDEzICszMzgsMTMgQEAgZG91Ymxl
IGdldFVUQ09mZnNldCgpIHsKICAqLwogc3RhdGljIGRvdWJsZSBnZXREU1RPZmZzZXRTaW1wbGUo
ZG91YmxlIGxvY2FsVGltZVNlY29uZHMpCiB7Ci0gICAgaWYobG9jYWxUaW1lU2Vjb25kcyA+IG1h
eFVuaXhUaW1lKQorICAgIGlmIChsb2NhbFRpbWVTZWNvbmRzID4gbWF4VW5peFRpbWUpCiAgICAg
ICAgIGxvY2FsVGltZVNlY29uZHMgPSBtYXhVbml4VGltZTsKICAgICBlbHNlIGlmKGxvY2FsVGlt
ZVNlY29uZHMgPCAwKSAvLyBHbyBhaGVhZCBhIGRheSB0byBtYWtlIGxvY2FsdGltZSB3b3JrIChk
b2VzIG5vdCB3b3JrIHdpdGggMCkKICAgICAgICAgbG9jYWxUaW1lU2Vjb25kcyArPSBzZWNvbmRz
UGVyRGF5OwogCiAgICAgLy9pbnB1dCBpcyBVVEMgc28gd2UgaGF2ZSB0byBzaGlmdCBiYWNrIHRv
IGxvY2FsIHRpbWUgdG8gZGV0ZXJtaW5lIERTVCB0aHVzIHRoZSArIGdldFVUQ09mZnNldCgpCi0g
ICAgZG91YmxlIG9mZnNldFRpbWUgPSAobG9jYWxUaW1lU2Vjb25kcyAqIG1zUGVyU2Vjb25kKSAr
IGdldFVUQ09mZnNldCgpIDsKKyAgICBkb3VibGUgb2Zmc2V0VGltZSA9IChsb2NhbFRpbWVTZWNv
bmRzICogbXNQZXJTZWNvbmQpICsgZ2V0VVRDT2Zmc2V0KCk7CiAKICAgICAvLyBPZmZzZXQgZnJv
bSBVVEMgYnV0IGRvZXNuJ3QgaW5jbHVkZSBEU1Qgb2J2aW91c2x5CiAgICAgaW50IG9mZnNldEhv
dXIgPSAgbXNUb0hvdXJzKG9mZnNldFRpbWUpOwpAQCAtMzMxLDEyICszNTQsMTIgQEAgc3RhdGlj
IGRvdWJsZSBnZXREU1RPZmZzZXRTaW1wbGUoZG91YmxlIAogICAgIHRpbWVfdCBsb2NhbFRpbWUg
PSBzdGF0aWNfY2FzdDx0aW1lX3Q+KGxvY2FsVGltZVNlY29uZHMpOwogCiAgICAgdG0gbG9jYWxU
TTsKLSAgICAjaWYgUExBVEZPUk0oV0lOX09TKQorI2lmIFBMQVRGT1JNKFdJTl9PUykKICAgICBs
b2NhbHRpbWVfcygmbG9jYWxUTSwgJmxvY2FsVGltZSk7Ci0gICAgI2Vsc2UKKyNlbHNlCiAgICAg
bG9jYWx0aW1lX3IoJmxvY2FsVGltZSwgJmxvY2FsVE0pOwotICAgICNlbmRpZgotICAgIAorI2Vu
ZGlmCisKICAgICBkb3VibGUgZGlmZiA9ICgobG9jYWxUTS50bV9ob3VyIC0gb2Zmc2V0SG91cikg
KiBzZWNvbmRzUGVySG91cikgKyAoKGxvY2FsVE0udG1fbWluIC0gb2Zmc2V0TWludXRlKSAqIDYw
KTsKIAogICAgIGlmKGRpZmYgPCAwKQpAQCAtMzQ1LDIzICszNjgsMTkgQEAgc3RhdGljIGRvdWJs
ZSBnZXREU1RPZmZzZXRTaW1wbGUoZG91YmxlIAogICAgIHJldHVybiAoZGlmZiAqIG1zUGVyU2Vj
b25kKTsKIH0KIAotLy8gR2V0IHRoZSBEU1Qgb2Zmc2V0IHRoZSB0aW1lIHBhc3NlZCBpbgotLy8g
bXMgaXMgaW4gVVRDCisvLyBHZXQgdGhlIERTVCBvZmZzZXQsIGdpdmVuIGEgdGltZSBpbiBVVEMK
IHN0YXRpYyBkb3VibGUgZ2V0RFNUT2Zmc2V0KGRvdWJsZSBtcykKIHsKLSAgICAvLyBPbiBtYWMg
dGhlIGNhbGwgdG8gbG9jYWx0aW1lIChzZWUgZ2V0RFNUT2Zmc2V0U2ltcGxlKSB3aWxsIHJldHVy
biBoaXN0b3JpY2FsbHkgYWNjdXJhdGUKKyAgICAvLyBPbiBNYWMgT1MgWCwgdGhlIGNhbGwgdG8g
bG9jYWx0aW1lIChzZWUgZ2V0RFNUT2Zmc2V0U2ltcGxlKSB3aWxsIHJldHVybiBoaXN0b3JpY2Fs
bHkgYWNjdXJhdGUKICAgICAvLyBEU1QgaW5mb3JtYXRpb24gKGUuZy4gTmV3IFplYWxhbmQgZGlk
IG5vdCBoYXZlIERTVCBmcm9tIDE5NDYgdG8gMTk3NCkgaG93ZXZlciB0aGUgSmF2YVNjcmlwdAog
ICAgIC8vIHN0YW5kYXJkIGV4cGxpY2l0bHkgZGljdGF0ZXMgdGhhdCBoaXN0b3JpY2FsIGluZm9y
bWF0aW9uIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCB3aGVuCi0gICAgLy8gZGV0ZXJtaW5pbmcg
RFNULiAgRm9yIHRoaXMgcmVhc29uIHdlIHNoaWZ0IHllYXJzIHRoYXQgbG9jYWx0aW1lIGNhbiBo
YW5kbGUgYnV0IHdvdWxkCisgICAgLy8gZGV0ZXJtaW5pbmcgRFNULiBGb3IgdGhpcyByZWFzb24g
d2Ugc2hpZnQgYXdheSBmcm9tIHllYXJzIHRoYXQgbG9jYWx0aW1lIGNhbiBoYW5kbGUgYnV0IHdv
dWxkCiAgICAgLy8gcmV0dXJuIGhpc3RvcmljYWxseSBhY2N1cmF0ZSBpbmZvcm1hdGlvbi4KIAog
ICAgIC8vIGlmIGJlZm9yZSBKYW4gMDEsIDIwMDAgMTI6MDA6MDAgQU0gVVRDIG9yIGFmdGVyIEph
biAwMSwgMjAzOCAxMjowMDowMCBBTSBVVEMKICAgICBpZiAobXMgPCA5NDY2ODQ4MDAwMDAuMCB8
fCBtcyA+IDIxNDU5MTY4MDAwMDAuMCkgewotICAgICAgICBpbnQgeWVhcjsKLSAgICAgICAgaW50
IGRheTsKLQotICAgICAgICB5ZWFyID0gZXF1aXZhbGVudFllYXJGb3JEU1QobXNUb1llYXIobXMp
KTsKLSAgICAgICAgZGF5ID0gZGF0ZVRvRGF5SW5ZZWFyKHllYXIsIG1zVG9Nb250aChtcyksIG1z
VG9EYXlJbk1vbnRoKG1zKSk7CisgICAgICAgIGludCB5ZWFyID0gZXF1aXZhbGVudFllYXJGb3JE
U1QobXNUb1llYXIobXMpKTsKKyAgICAgICAgaW50IGRheSA9IGRhdGVUb0RheUluWWVhcih5ZWFy
LCBtc1RvTW9udGgobXMpLCBtc1RvRGF5SW5Nb250aChtcykpOwogICAgICAgICBtcyA9IChkYXkg
KiBtc1BlckRheSkgKyBtc1RvTWlsbGlzZWNvbmRzKG1zKTsKICAgICB9CiAKQEAgLTM3MCwxMiAr
Mzg5LDExIEBAIHN0YXRpYyBkb3VibGUgZ2V0RFNUT2Zmc2V0KGRvdWJsZSBtcykKIAogZG91Ymxl
IGdyZWdvcmlhbkRhdGVUaW1lVG9NUyhjb25zdCBHcmVnb3JpYW5EYXRlVGltZSYgdCwgZG91Ymxl
IG1pbGxpU2Vjb25kcywgYm9vbCBpbnB1dElzVVRDKQogewotCiAgICAgaW50IGRheSA9IGRhdGVU
b0RheUluWWVhcih0LnllYXIgKyAxOTAwLCB0Lm1vbnRoLCB0Lm1vbnRoRGF5KTsKICAgICBkb3Vi
bGUgbXMgPSB0aW1lVG9NUyh0LmhvdXIsIHQubWludXRlLCB0LnNlY29uZCwgbWlsbGlTZWNvbmRz
KTsKICAgICBkb3VibGUgcmVzdWx0ID0gKGRheSAqIG1zUGVyRGF5KSArIG1zOwogCi0gICAgaWYo
IWlucHV0SXNVVEMpIHsgLy8gY29udmVydCB0byBVVEMKKyAgICBpZiAoIWlucHV0SXNVVEMpIHsg
Ly8gY29udmVydCB0byBVVEMKICAgICAgICAgcmVzdWx0IC09IGdldFVUQ09mZnNldCgpOyAgICAg
ICAKICAgICAgICAgcmVzdWx0IC09IGdldERTVE9mZnNldChyZXN1bHQpOwogICAgIH0KQEAgLTM4
OCw3ICs0MDYsNyBAQCB2b2lkIG1zVG9HcmVnb3JpYW5EYXRlVGltZShkb3VibGUgbXMsIGJvCiAg
ICAgLy8gaW5wdXQgaXMgVVRDCiAgICAgZG91YmxlIGRzdE9mZiA9IDAuMDsKICAgICAKLSAgICBp
Zighb3V0cHV0SXNVVEMpIHsgIC8vIGNvbnZlcnQgdG8gbG9jYWwgdGltZQorICAgIGlmICghb3V0
cHV0SXNVVEMpIHsgIC8vIGNvbnZlcnQgdG8gbG9jYWwgdGltZQogICAgICAgICBkc3RPZmYgPSBn
ZXREU1RPZmZzZXQobXMpOwogICAgICAgICBtcyArPSBkc3RPZmYgKyBnZXRVVENPZmZzZXQoKTsK
ICAgICB9CkBAIC00MDEsMTAgKzQxOSwxMCBAQCB2b2lkIG1zVG9HcmVnb3JpYW5EYXRlVGltZShk
b3VibGUgbXMsIGJvCiAgICAgdG0ueWVhckRheSAgPSAgZGF5SW5ZZWFyKG1zLCBtc1RvWWVhciht
cykpOwogICAgIHRtLm1vbnRoICAgID0gIG1zVG9Nb250aChtcyk7CiAgICAgdG0ueWVhciAgICAg
PSAgbXNUb1llYXIobXMpIC0gMTkwMDsKLSAgICB0bS5pc0RTVCA9ICBkc3RPZmYgIT0gMC4wOwor
ICAgIHRtLmlzRFNUICAgID0gIGRzdE9mZiAhPSAwLjA7CiAKICAgICB0bS51dGNPZmZzZXQgPSBz
dGF0aWNfY2FzdDxsb25nPigoZHN0T2ZmICsgZ2V0VVRDT2Zmc2V0KCkpIC8gbXNQZXJTZWNvbmQp
OwogICAgIHRtLnRpbWVab25lID0gTlVMTDsKIH0KIAotfSAgIC8vIG5hbWVzcGFjZSBLSlMKK30g
Ly8gbmFtZXNwYWNlIEtKUwpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL0RhdGVNYXRoLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL0RhdGVNYXRoLmgJKHJldmlzaW9uIDE5ODgw
KQorKysgSmF2YVNjcmlwdENvcmUva2pzL0RhdGVNYXRoLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChw
b3J0ZW5Aa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlcgorICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBWZXJzaW9uOiBNUEwgMS4xL0dQTCAyLjAvTEdQTCAyLjEKICAqCkBAIC00MywxMCAr
NDMsMTAgQEAKIAogI2luY2x1ZGUgPHRpbWUuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogbmFtZXNwYWNlIEtKUyB7CiAKLS8vIENvbnN0YW50
cyAvLwogY29uc3QgY2hhciAqIGNvbnN0IHdlZWtkYXlOYW1lWzddID0geyAiTW9uIiwgIlR1ZSIs
ICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiLCAiU3VuIiB9OwogY29uc3QgY2hhciAqIGNvbnN0
IG1vbnRoTmFtZVsxMl0gPSB7ICJKYW4iLCAiRmViIiwgIk1hciIsICJBcHIiLCAiTWF5IiwgIkp1
biIsICJKdWwiLCAiQXVnIiwgIlNlcCIsICJPY3QiLCAiTm92IiwgIkRlYyIgfTsKIApAQCAtNTks
MzggKzU5LDI3IEBAIGNvbnN0IGRvdWJsZSBtc1Blck1pbnV0ZSA9IDYwLjAgKiAxMDAwLjAKIGNv
bnN0IGRvdWJsZSBtc1BlckhvdXIgPSA2MC4wICogNjAuMCAqIDEwMDAuMDsKIGNvbnN0IGRvdWJs
ZSBtc1BlckRheSA9IDI0LjAgKiA2MC4wICogNjAuMCAqIDEwMDAuMDsKIAotCi0vLyBGb3J3YXJk
IC8vCi1zdHJ1Y3QgR3JlZ29yaWFuRGF0ZVRpbWU7Ci0KLS8vIEV4cG9ydGVkIEZ1bmN0aW9ucyAv
Lwotdm9pZCBtc1RvR3JlZ29yaWFuRGF0ZVRpbWUoZG91YmxlLCBib29sIG91dHB1dElzVVRDLCBz
dHJ1Y3QgR3JlZ29yaWFuRGF0ZVRpbWUmKTsKLWRvdWJsZSBncmVnb3JpYW5EYXRlVGltZVRvTVMo
Y29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUmLCBkb3VibGUsIGJvb2wgaW5wdXRJc1VUQyk7Ci1kb3Vi
bGUgZ2V0VVRDT2Zmc2V0KCk7Ci1pbnQgZXF1aXZhbGVudFllYXJGb3JEU1QoaW50IHllYXIpOwot
CiAvLyBJbnRlbnRpb25hbGx5IG92ZXJyaWRkaW5nIHRoZSBkZWZhdWx0IHRtIG9mIHRoZSBzeXN0
ZW0KIC8vIE5vdCBhbGwgT1MnIGhhdmUgdGhlIHNhbWUgbWVtYmVycyBvZiB0aGVpciB0bSdzCi1z
dHJ1Y3QgR3JlZ29yaWFuRGF0ZVRpbWUgeworc3RydWN0IEdyZWdvcmlhbkRhdGVUaW1lIDogTm9u
Y29weWFibGV7CiAgICAgR3JlZ29yaWFuRGF0ZVRpbWUoKQorICAgICAgICA6IHNlY29uZCgwKQor
ICAgICAgICAsIG1pbnV0ZSgwKQorICAgICAgICAsIGhvdXIoMCkKKyAgICAgICAgLCB3ZWVrRGF5
KDApCisgICAgICAgICwgbW9udGhEYXkoMCkKKyAgICAgICAgLCB5ZWFyRGF5KDApCisgICAgICAg
ICwgbW9udGgoMCkKKyAgICAgICAgLCB5ZWFyKDApCisgICAgICAgICwgaXNEU1QoMCkKKyAgICAg
ICAgLCB1dGNPZmZzZXQoMCkKKyAgICAgICAgLCB0aW1lWm9uZShOVUxMKQogICAgIHsKLSAgICAg
ICAgc2Vjb25kID0gMDsKLSAgICAgICAgbWludXRlID0gMDsKLSAgICAgICAgaG91ciA9IDA7Ci0g
ICAgICAgIHdlZWtEYXkgPSAwOwotICAgICAgICBtb250aERheSA9IDA7Ci0gICAgICAgIHllYXJE
YXkgPSAwOwotICAgICAgICBtb250aCA9IDA7Ci0gICAgICAgIHllYXIgPSAwOwotICAgICAgICBp
c0RTVCA9IDA7Ci0gICAgICAgIHV0Y09mZnNldCA9IDA7Ci0gICAgICAgIHRpbWVab25lID0gTlVM
TDsKICAgICB9CiAKICAgICB+R3JlZ29yaWFuRGF0ZVRpbWUoKQogICAgIHsKLSAgICAgICAgaWYg
KHRpbWVab25lKSAKLSAgICAgICAgICAgIGRlbGV0ZSB0aW1lWm9uZTsKKyAgICAgICAgZGVsZXRl
IHRpbWVab25lOwogICAgIH0KICAgICAKICAgICBHcmVnb3JpYW5EYXRlVGltZShjb25zdCB0bSYg
aW5UbSkKQEAgLTE0NywxMSArMTM2LDE2IEBAIHN0cnVjdCBHcmVnb3JpYW5EYXRlVGltZSB7CiAg
ICAgaW50IHllYXJEYXk7CiAgICAgaW50IG1vbnRoOwogICAgIGludCB5ZWFyOwotICAgIGludCAg
aXNEU1Q7CisgICAgaW50IGlzRFNUOwogICAgIGludCB1dGNPZmZzZXQ7CiAgICAgY2hhciogdGlt
ZVpvbmU7CiB9OwogCit2b2lkIG1zVG9HcmVnb3JpYW5EYXRlVGltZShkb3VibGUsIGJvb2wgb3V0
cHV0SXNVVEMsIHN0cnVjdCBHcmVnb3JpYW5EYXRlVGltZSYpOworZG91YmxlIGdyZWdvcmlhbkRh
dGVUaW1lVG9NUyhjb25zdCBHcmVnb3JpYW5EYXRlVGltZSYsIGRvdWJsZSwgYm9vbCBpbnB1dElz
VVRDKTsKK2RvdWJsZSBnZXRVVENPZmZzZXQoKTsKK2ludCBlcXVpdmFsZW50WWVhckZvckRTVChp
bnQgeWVhcik7CisKIH0gICAvL25hbWVzcGFjZSBLSlMKIAogI2VuZGlmIC8vIERhdGVNYXRoX2gK
</data>
<flag name="review"
          id="5280"
          type_id="1"
          status="+"
          setter="kmccullough"
    />
          </attachment>
      

    </bug>

</bugzilla>