<?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>136796</bug_id>
          
          <creation_ts>2014-09-12 17:37:52 -0700</creation_ts>
          <short_desc>Web Inspector: subtract elapsed time while debugger is paused from profile nodes</short_desc>
          <delta_ts>2014-09-24 17:25:36 -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 Inspector</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>136352</dependson>
          <blocked>136292</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Burg">burg</reporter>
          <assigned_to name="Brian Burg">burg</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1035026</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-12 17:37:52 -0700</bug_when>
    <thetext>Currently it will zero out any ProfileNode::Call where the debugger paused further down in the call stack. Instead, we should subtract the elapsed paused time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035027</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-09-12 17:38:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/18327309&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035096</commentid>
    <comment_count>2</comment_count>
      <attachid>238091</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-14 01:47:16 -0700</bug_when>
    <thetext>Created attachment 238091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035097</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-14 01:49:22 -0700</bug_when>
    <thetext>Attachment 238091 did not pass style-queue:


ERROR: Source/JavaScriptCore/profiler/ProfileGenerator.cpp:51:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035674</commentid>
    <comment_count>4</comment_count>
      <attachid>238091</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-09-16 22:10:25 -0700</bug_when>
    <thetext>Comment on attachment 238091
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:13
&gt; +        Time for a node may elapse in a non-contiguous fashion depending on the interleaving of
&gt; +        didPause, didContinue, willExecute, and didExecute. A node&apos;s start time is set to the
&gt; +        start of the last such interval that accrues elapsed time.

This sounds like it could be confusing in the Timeline data grid. Maybe once TimelineRecords account for pausing it will be fine? Why does start time need to move?

If the profile data was visualized, I&apos;d expect to see start time stay put and end time stay put, but there would be gaps where the debugger paused and resumed. That would require more complex data in ProfileNode::Call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035675</commentid>
    <comment_count>5</comment_count>
      <attachid>238091</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-09-16 22:13:10 -0700</bug_when>
    <thetext>Comment on attachment 238091
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:13
&gt;&gt; +        start of the last such interval that accrues elapsed time.
&gt; 
&gt; This sounds like it could be confusing in the Timeline data grid. Maybe once TimelineRecords account for pausing it will be fine? Why does start time need to move?
&gt; 
&gt; If the profile data was visualized, I&apos;d expect to see start time stay put and end time stay put, but there would be gaps where the debugger paused and resumed. That would require more complex data in ProfileNode::Call.

The &quot;more complex data&quot; likely just needs to be a vector of debugger pause and resume timestamp pairs. It could even be global to the profile and the front end uses it when displaying the data or visuals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035677</commentid>
    <comment_count>6</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-16 22:36:56 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 238091 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=238091&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:13
&gt; &gt; +        Time for a node may elapse in a non-contiguous fashion depending on the interleaving of
&gt; &gt; +        didPause, didContinue, willExecute, and didExecute. A node&apos;s start time is set to the
&gt; &gt; +        start of the last such interval that accrues elapsed time.
&gt; 
&gt; This sounds like it could be confusing in the Timeline data grid. Maybe once TimelineRecords account for pausing it will be fine? Why does start time need to move?
&gt; 
&gt; If the profile data was visualized, I&apos;d expect to see start time stay put and end time stay put, but there would be gaps where the debugger paused and resumed. That would require more complex data in ProfileNode::Call.

I think it&apos;s worth clarifying: these proposed changes (and others for Timeline records) are moving away from wall-clock time and towards elapsed execution time (of which, time paused in the debugger does not count towards). IMO, the current wall-clock approach---including paused time in profile nodes and timeline records---is almost always going to make the timeline overview unusable. And for replay recordings, a user will probably pause the debugger at different places on different playbacks. It would be nice if the timeline looked more or less the same for all playbacks, otherwise it&apos;s not a very good navigation tool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037098</commentid>
    <comment_count>7</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-24 17:25:36 -0700</bug_when>
    <thetext>Committed r173939: &lt;http://trac.webkit.org/changeset/173939&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238091</attachid>
            <date>2014-09-14 01:47:16 -0700</date>
            <delta_ts>2014-09-16 22:43:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136796-20140914014708.patch</filename>
            <type>text/plain</type>
            <size>10765</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
OTVmYWYyYzZiOTIyOWQ2ZjViOGQ2YzAwYTE2YjVhOTMwMTQ4ZThhLi45OWJjNWRhYjQ3OTQ1YWYy
NjZjZDZjZjBlMjI5MmE5MzVhOWI0NTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAxNC0wOS0xNCAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjogc3VidHJhY3QgZWxhcHNlZCB0aW1lIHdo
aWxlIGRlYnVnZ2VyIGlzIHBhdXNlZCBmcm9tIHByb2ZpbGUgbm9kZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjc5NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJhdGhlciB0aGFuIGFjY3J1aW5nIG5v
IHRpbWUgdG8gYW55IHByb2ZpbGUgbm9kZSBjcmVhdGVkIHdoaWxlIHRoZSBkZWJ1Z2dlciBpcyBw
YXVzZWQsCisgICAgICAgIHdlIGNhbiBpbnN0ZWFkIGNvdW50IGEgbm9kZSdzIGVsYXBzZWQgdGlt
ZSBhbmQgZXhjbHVkZSB0aW1lIGVsYXBzZWQgd2hpbGUgcGF1c2VkLgorCisgICAgICAgIFRpbWUg
Zm9yIGEgbm9kZSBtYXkgZWxhcHNlIGluIGEgbm9uLWNvbnRpZ3VvdXMgZmFzaGlvbiBkZXBlbmRp
bmcgb24gdGhlIGludGVybGVhdmluZyBvZgorICAgICAgICBkaWRQYXVzZSwgZGlkQ29udGludWUs
IHdpbGxFeGVjdXRlLCBhbmQgZGlkRXhlY3V0ZS4gQSBub2RlJ3Mgc3RhcnQgdGltZSBpcyBzZXQg
dG8gdGhlCisgICAgICAgIHN0YXJ0IG9mIHRoZSBsYXN0IHN1Y2ggaW50ZXJ2YWwgdGhhdCBhY2Ny
dWVzIGVsYXBzZWQgdGltZS4KKworICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpQcm9maWxlR2VuZXJhdG9yOjpQcm9maWxlR2VuZXJhdG9yKToK
KyAgICAgICAgKEpTQzo6UHJvZmlsZUdlbmVyYXRvcjo6YmVnaW5DYWxsRW50cnkpOgorICAgICAg
ICAoSlNDOjpQcm9maWxlR2VuZXJhdG9yOjplbmRDYWxsRW50cnkpOgorICAgICAgICAoSlNDOjpQ
cm9maWxlR2VuZXJhdG9yOjpkaWRQYXVzZSk6IEFkZGVkLgorICAgICAgICAoSlNDOjpQcm9maWxl
R2VuZXJhdG9yOjpkaWRDb250aW51ZSk6IEFkZGVkLgorICAgICAgICAqIHByb2ZpbGVyL1Byb2Zp
bGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZUdlbmVyYXRvcjo6ZGlkUGF1c2Up
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpQcm9maWxlR2VuZXJhdG9yOjpkaWRDb250aW51ZSk6
IERlbGV0ZWQuCisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZU5vZGUuaDogUmVuYW1lIHRvdGFs
VGltZSB0byBlbGFwc2VkVGltZS4KKyAgICAgICAgKEpTQzo6UHJvZmlsZU5vZGU6OkNhbGw6OkNh
bGwpOgorICAgICAgICAoSlNDOjpQcm9maWxlTm9kZTo6Q2FsbDo6ZWxhcHNlZFRpbWUpOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6UHJvZmlsZU5vZGU6OkNhbGw6OnNldEVsYXBzZWRUaW1lKTogQWRk
ZWQuCisgICAgICAgIChKU0M6OkNhbGN1bGF0ZVByb2ZpbGVTdWJ0cmVlRGF0YUZ1bmN0b3I6Om9w
ZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpQcm9maWxlTm9kZTo6Q2FsbDo6dG90YWxUaW1lKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UHJvZmlsZU5vZGU6OkNhbGw6OnNldFRvdGFsVGltZSk6
IERlbGV0ZWQuCisKIDIwMTQtMDgtMjcgIEJyaWFuIEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0
b24uZWR1PgogCiAgICAgICAgIFdlYiBSZXBsYXk6IGNvZGUgZ2VuZXJhdG9yIHNob3VsZCBiZSBh
YmxlIHRvIGVuY29kZS9kZWNvZGUgVmlld1N0YXRlOjpGbGFncwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk3MTdi
ZjkwMDBjOTcyYWVlNGEzZjY5NDk5YzBlYWE0N2NjODcxM2UuLjE1YjdjZmFhZGYxOTllNjczZTQ1
Yzk4ZGY2ZDdjMzIwZDYxZTY2YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0w
OS0xNCAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5lZHU+CisKKyAgICAgICAg
V2ViIEluc3BlY3Rvcjogc3VidHJhY3QgZWxhcHNlZCB0aW1lIHdoaWxlIGRlYnVnZ2VyIGlzIHBh
dXNlZCBmcm9tIHByb2ZpbGUgbm9kZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzNjc5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpidWlsZEluc3BlY3Rvck9iamVjdCk6CisKIDIwMTQtMDgtMTEgIEJy
aWFuIEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1PgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IGFkZCBlamVjdCBjdXJyZW50IHJlY29yZGluZyBidXR0b24gdG8gdGhlIHJlcGxheSBk
YXNoYm9hcmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxl
R2VuZXJhdG9yLmNwcAppbmRleCBjZmY2NmFhNTY3YjdlNzVkMTI2OWEyZWQ5YWViMDlkYjZhZTJh
Mzk0Li43ZTQzNDQ2ZjM1MGE0NmU3NTNlOWNjYzRhOWQ5NzkxNDk0NTdiZDlhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwCkBA
IC00OCwxMSArNDgsMTEgQEAgUGFzc1JlZlB0cjxQcm9maWxlR2VuZXJhdG9yPiBQcm9maWxlR2Vu
ZXJhdG9yOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHIKIFByb2ZpbGVHZW5lcmF0
b3I6OlByb2ZpbGVHZW5lcmF0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxl
LCB1bnNpZ25lZCB1aWQpCiAgICAgOiBtX29yaWdpbihleGVjID8gZXhlYy0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpIDogbnVsbHB0cikKICAgICAsIG1fcHJvZmlsZUdyb3VwKGV4ZWMgPyBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpIDogMCkKKyAgICAsIG1fZGVidWdn
ZXJQYXVzZWRUaW1lc3RhbXAoTkFOKQogICAgICwgbV9mb3VuZENvbnNvbGVTdGFydFBhcmVudChm
YWxzZSkKLSAgICAsIG1fZGVidWdnZXJQYXVzZWQoZmFsc2UpCiB7CiAgICAgaWYgKERlYnVnZ2Vy
KiBkZWJ1Z2dlciA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+ZGVidWdnZXIoKSkKLSAg
ICAgICAgbV9kZWJ1Z2dlclBhdXNlZCA9IGRlYnVnZ2VyLT5pc1BhdXNlZCgpOworICAgICAgICBt
X2RlYnVnZ2VyUGF1c2VkVGltZXN0YW1wID0gZGVidWdnZXItPmlzUGF1c2VkKCkgPyBjdXJyZW50
VGltZSgpIDogTkFOOwogCiAgICAgbV9wcm9maWxlID0gUHJvZmlsZTo6Y3JlYXRlKHRpdGxlLCB1
aWQpOwogICAgIG1fY3VycmVudE5vZGUgPSBtX3Jvb3ROb2RlID0gbV9wcm9maWxlLT5yb290Tm9k
ZSgpOwpAQCAtMTE4LDYgKzExOCwxMiBAQCB2b2lkIFByb2ZpbGVHZW5lcmF0b3I6OmJlZ2luQ2Fs
bEVudHJ5KFByb2ZpbGVOb2RlKiBub2RlLCBkb3VibGUgc3RhcnRUaW1lKQogCiAgICAgaWYgKGlz
bmFuKHN0YXJ0VGltZSkpCiAgICAgICAgIHN0YXJ0VGltZSA9IGN1cnJlbnRUaW1lKCk7CisKKyAg
ICAvLyBJZiB0aGUgZGVidWdnZXIgaXMgcGF1c2VkIHdoZW4gYmVnaW5uaW5nLCB0aGVuIGRvbid0
IHNldCB0aGUgc3RhcnQgdGltZS4gSXQKKyAgICAvLyB3aWxsIGJlIGZpeGVkIHVwIHdoZW4gdGhl
IGRlYnVnZ2VyIHVucGF1c2VzIG9yIHRoZSBjYWxsIGVudHJ5IGVuZHMuCisgICAgaWYgKCFpc25h
bihtX2RlYnVnZ2VyUGF1c2VkVGltZXN0YW1wKSkKKyAgICAgICAgc3RhcnRUaW1lID0gTkFOOwor
CiAgICAgbm9kZS0+YXBwZW5kQ2FsbChQcm9maWxlTm9kZTo6Q2FsbChzdGFydFRpbWUpKTsKIH0K
IApAQCAtMTI2LDkgKzEzMiwyMyBAQCB2b2lkIFByb2ZpbGVHZW5lcmF0b3I6OmVuZENhbGxFbnRy
eShQcm9maWxlTm9kZSogbm9kZSkKICAgICBBU1NFUlRfQVJHKG5vZGUsIG5vZGUpOwogCiAgICAg
UHJvZmlsZU5vZGU6OkNhbGwmIGxhc3QgPSBub2RlLT5sYXN0Q2FsbCgpOwotICAgIEFTU0VSVChp
c25hbihsYXN0LnRvdGFsVGltZSgpKSk7CiAKLSAgICBsYXN0LnNldFRvdGFsVGltZShtX2RlYnVn
Z2VyUGF1c2VkID8gMC4wIDogY3VycmVudFRpbWUoKSAtIGxhc3Quc3RhcnRUaW1lKCkpOworICAg
IC8vIElmIHRoZSBkZWJ1Z2dlciBpcyBwYXVzZWQsIGlnbm9yZSB0aGUgaW50ZXJ2YWwgdGhhdCBl
bmRzIG5vdy4KKyAgICBpZiAoIWlzbmFuKG1fZGVidWdnZXJQYXVzZWRUaW1lc3RhbXApICYmICFp
c25hbihsYXN0LmVsYXBzZWRUaW1lKCkpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBJZiBw
YXVzZWQgYW5kIG5vIHRpbWUgd2FzIGFjY3J1ZWQgdGhlbiB0aGUgZGVidWdnZXIgd2FzIG5ldmVy
IHVucGF1c2VkLiBUaGUgY2FsbCB3aWxsCisgICAgLy8gaGF2ZSBubyB0aW1lIGFjY3J1ZWQgYW5k
IGFwcGVhciB0byBoYXZlIHN0YXJ0ZWQgd2hlbiB0aGUgZGVidWdnZXIgd2FzIHBhdXNlZC4KKyAg
ICBpZiAoIWlzbmFuKG1fZGVidWdnZXJQYXVzZWRUaW1lc3RhbXApKSB7CisgICAgICAgIGxhc3Qu
c2V0U3RhcnRUaW1lKG1fZGVidWdnZXJQYXVzZWRUaW1lc3RhbXApOworICAgICAgICBsYXN0LnNl
dEVsYXBzZWRUaW1lKDAuMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBPdGhl
cndpc2UsIGFkZCB0aGUgaW50ZXJ2YWwgZW5kaW5nIG5vdyB0byBlbGFwc2VkIHRpbWUuCisgICAg
ZG91YmxlIHByZXZpb3VzRWxhcHNlZFRpbWUgPSBpc25hbihsYXN0LmVsYXBzZWRUaW1lKCkpID8g
MC4wIDogbGFzdC5lbGFwc2VkVGltZSgpOworICAgIGRvdWJsZSBuZXdseUVsYXBzZWRUaW1lID0g
Y3VycmVudFRpbWUoKSAtIGxhc3Quc3RhcnRUaW1lKCk7CisgICAgbGFzdC5zZXRFbGFwc2VkVGlt
ZShwcmV2aW91c0VsYXBzZWRUaW1lICsgbmV3bHlFbGFwc2VkVGltZSk7CiB9CiAKIHZvaWQgUHJv
ZmlsZUdlbmVyYXRvcjo6d2lsbEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNv
bnN0IENhbGxJZGVudGlmaWVyJiBjYWxsSWRlbnRpZmllcikKQEAgLTE5Niw2ICsyMTYsMzMgQEAg
dm9pZCBQcm9maWxlR2VuZXJhdG9yOjpleGNlcHRpb25VbndpbmQoRXhlY1N0YXRlKiBoYW5kbGVy
Q2FsbEZyYW1lLCBjb25zdCBDYWxsSWQKICAgICB9CiB9CiAKK3ZvaWQgUHJvZmlsZUdlbmVyYXRv
cjo6ZGlkUGF1c2UoUGFzc1JlZlB0cjxEZWJ1Z2dlckNhbGxGcmFtZT4sIGNvbnN0IENhbGxJZGVu
dGlmaWVyJikKK3sKKyAgICBBU1NFUlQoaXNuYW4obV9kZWJ1Z2dlclBhdXNlZFRpbWVzdGFtcCkp
OworCisgICAgbV9kZWJ1Z2dlclBhdXNlZFRpbWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7CisKKyAg
ICBmb3IgKFByb2ZpbGVOb2RlKiBub2RlID0gbV9jdXJyZW50Tm9kZS5nZXQoKTsgbm9kZSAhPSBt
X3Byb2ZpbGUtPnJvb3ROb2RlKCk7IG5vZGUgPSBub2RlLT5wYXJlbnQoKSkgeworICAgICAgICBQ
cm9maWxlTm9kZTo6Q2FsbCYgbGFzdCA9IG5vZGUtPmxhc3RDYWxsKCk7CisgICAgICAgIEFTU0VS
VCghaXNuYW4obGFzdC5zdGFydFRpbWUoKSkpOworCisgICAgICAgIGRvdWJsZSBwcmV2aW91c0Vs
YXBzZWRUaW1lID0gaXNuYW4obGFzdC5lbGFwc2VkVGltZSgpKSA/IDAuMCA6IGxhc3QuZWxhcHNl
ZFRpbWUoKTsKKyAgICAgICAgZG91YmxlIGFkZGl0aW9uYWxFbGFwc2VkVGltZSA9IG1fZGVidWdn
ZXJQYXVzZWRUaW1lc3RhbXAgLSBsYXN0LnN0YXJ0VGltZSgpOworICAgICAgICBsYXN0LnNldFN0
YXJ0VGltZShOQU4pOworICAgICAgICBsYXN0LnNldEVsYXBzZWRUaW1lKHByZXZpb3VzRWxhcHNl
ZFRpbWUgKyBhZGRpdGlvbmFsRWxhcHNlZFRpbWUpOworICAgIH0KK30KKwordm9pZCBQcm9maWxl
R2VuZXJhdG9yOjpkaWRDb250aW51ZShQYXNzUmVmUHRyPERlYnVnZ2VyQ2FsbEZyYW1lPiwgY29u
c3QgQ2FsbElkZW50aWZpZXImKQoreworICAgIEFTU0VSVCghaXNuYW4obV9kZWJ1Z2dlclBhdXNl
ZFRpbWVzdGFtcCkpOworCisgICAgZm9yIChQcm9maWxlTm9kZSogbm9kZSA9IG1fY3VycmVudE5v
ZGUuZ2V0KCk7IG5vZGUgIT0gbV9wcm9maWxlLT5yb290Tm9kZSgpOyBub2RlID0gbm9kZS0+cGFy
ZW50KCkpCisgICAgICAgIG5vZGUtPmxhc3RDYWxsKCkuc2V0U3RhcnRUaW1lKG1fZGVidWdnZXJQ
YXVzZWRUaW1lc3RhbXApOworCisgICAgbV9kZWJ1Z2dlclBhdXNlZFRpbWVzdGFtcCA9IE5BTjsK
K30KKwogdm9pZCBQcm9maWxlR2VuZXJhdG9yOjpzdG9wUHJvZmlsaW5nKCkKIHsKICAgICBmb3Ig
KFByb2ZpbGVOb2RlKiBub2RlID0gbV9jdXJyZW50Tm9kZS5nZXQoKTsgbm9kZSAhPSBtX3Byb2Zp
bGUtPnJvb3ROb2RlKCk7IG5vZGUgPSBub2RlLT5wYXJlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oCmluZGV4IDNiNmI5NWEwOGE3
NjlhZjgyZWI1MzhkZTg1N2I2MWU5OTJkMTZmYTAuLjdjOTcwZDY5Y2M2NzhlYzY1ZGI2NzhjNmZl
ZGQ1OGJkMGZlZmZhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVHZW5lcmF0b3IuaApAQCAtNTQsOCArNTQsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgdm9pZCBkaWRFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBD
YWxsSWRlbnRpZmllciYpOwogICAgICAgICB2b2lkIGV4Y2VwdGlvblVud2luZChFeGVjU3RhdGUq
IGhhbmRsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJik7CiAKLSAgICAgICAgdm9p
ZCBkaWRQYXVzZShQYXNzUmVmUHRyPERlYnVnZ2VyQ2FsbEZyYW1lPiwgY29uc3QgQ2FsbElkZW50
aWZpZXImKSB7IG1fZGVidWdnZXJQYXVzZWQgPSB0cnVlOyB9Ci0gICAgICAgIHZvaWQgZGlkQ29u
dGludWUoUGFzc1JlZlB0cjxEZWJ1Z2dlckNhbGxGcmFtZT4sIGNvbnN0IENhbGxJZGVudGlmaWVy
JikgeyBtX2RlYnVnZ2VyUGF1c2VkID0gZmFsc2U7IH0KKyAgICAgICAgdm9pZCBkaWRQYXVzZShQ
YXNzUmVmUHRyPERlYnVnZ2VyQ2FsbEZyYW1lPiwgY29uc3QgQ2FsbElkZW50aWZpZXImKTsKKyAg
ICAgICAgdm9pZCBkaWRDb250aW51ZShQYXNzUmVmUHRyPERlYnVnZ2VyQ2FsbEZyYW1lPiwgY29u
c3QgQ2FsbElkZW50aWZpZXImKTsKIAogICAgICAgICB2b2lkIHN0b3BQcm9maWxpbmcoKTsKIApA
QCAtNzQsMTAgKzc0LDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWZQdHI8UHJvZmls
ZT4gbV9wcm9maWxlOwogICAgICAgICBKU0dsb2JhbE9iamVjdCogbV9vcmlnaW47CiAgICAgICAg
IHVuc2lnbmVkIG1fcHJvZmlsZUdyb3VwOworICAgICAgICAvLyBUaW1lc3RhbXAgaXMgc2V0IHRv
IE5BTiB3aGVuIHRoZSBkZWJ1Z2dlciBpcyBub3QgY3VycmVudGx5IHBhdXNlZC4KKyAgICAgICAg
ZG91YmxlIG1fZGVidWdnZXJQYXVzZWRUaW1lc3RhbXA7CiAgICAgICAgIFJlZlB0cjxQcm9maWxl
Tm9kZT4gbV9yb290Tm9kZTsKICAgICAgICAgUmVmUHRyPFByb2ZpbGVOb2RlPiBtX2N1cnJlbnRO
b2RlOwogICAgICAgICBib29sIG1fZm91bmRDb25zb2xlU3RhcnRQYXJlbnQ7Ci0gICAgICAgIGJv
b2wgbV9kZWJ1Z2dlclBhdXNlZDsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlTm9kZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmgKaW5kZXggNjY3NmU5MTBh
YjQ5NDdkMTc5NmQ0Nzc4ZjkzNjdlNWRhYjY4NjNjZi4uZGVhOTEzNzI5ZTU3M2U0NWI5NjA5Mjlm
ZjZmYjIyNzRjMzg2NjE5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2Zp
bGVyL1Byb2ZpbGVOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVOb2RlLmgKQEAgLTU2LDI5ICs1NiwyOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAg
ICBzdHJ1Y3QgQ2FsbCB7CiAgICAgICAgIHB1YmxpYzoKLSAgICAgICAgICAgIENhbGwoZG91Ymxl
IHN0YXJ0VGltZSwgZG91YmxlIHRvdGFsVGltZSA9IE5BTikKKyAgICAgICAgICAgIENhbGwoZG91
YmxlIHN0YXJ0VGltZSwgZG91YmxlIGVsYXBzZWRUaW1lID0gTkFOKQogICAgICAgICAgICAgICAg
IDogbV9zdGFydFRpbWUoc3RhcnRUaW1lKQotICAgICAgICAgICAgICAgICwgbV90b3RhbFRpbWUo
dG90YWxUaW1lKQorICAgICAgICAgICAgICAgICwgbV9lbGFwc2VkVGltZShlbGFwc2VkVGltZSkK
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZG91YmxlIHN0YXJ0
VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRUaW1lOyB9CiAgICAgICAgICAgICB2b2lkIHNl
dFN0YXJ0VGltZShkb3VibGUgdGltZSkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBB
U1NFUlRfQVJHKHRpbWUsIHRpbWUgPj0gMC4wKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfQVJH
KHRpbWUsIHRpbWUgPj0gMC4wIHx8IGlzbmFuKHRpbWUpKTsKICAgICAgICAgICAgICAgICBtX3N0
YXJ0VGltZSA9IHRpbWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGRvdWJsZSB0b3Rh
bFRpbWUoKSBjb25zdCB7IHJldHVybiBtX3RvdGFsVGltZTsgfQotICAgICAgICAgICAgdm9pZCBz
ZXRUb3RhbFRpbWUoZG91YmxlIHRpbWUpCisgICAgICAgICAgICBkb3VibGUgZWxhcHNlZFRpbWUo
KSBjb25zdCB7IHJldHVybiBtX2VsYXBzZWRUaW1lOyB9CisgICAgICAgICAgICB2b2lkIHNldEVs
YXBzZWRUaW1lKGRvdWJsZSB0aW1lKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEFT
U0VSVF9BUkcodGltZSwgdGltZSA+PSAwLjApOwotICAgICAgICAgICAgICAgIG1fdG90YWxUaW1l
ID0gdGltZTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfQVJHKHRpbWUsIHRpbWUgPj0gMC4wIHx8
IGlzbmFuKHRpbWUpKTsKKyAgICAgICAgICAgICAgICBtX2VsYXBzZWRUaW1lID0gdGltZTsKICAg
ICAgICAgICAgIH0KIAogICAgICAgICBwcml2YXRlOgogICAgICAgICAgICAgZG91YmxlIG1fc3Rh
cnRUaW1lOwotICAgICAgICAgICAgZG91YmxlIG1fdG90YWxUaW1lOworICAgICAgICAgICAgZG91
YmxlIG1fZWxhcHNlZFRpbWU7CiAgICAgICAgIH07CiAKICAgICAgICAgYm9vbCBvcGVyYXRvcj09
KFByb2ZpbGVOb2RlKiBub2RlKSB7IHJldHVybiBtX2NhbGxJZGVudGlmaWVyID09IG5vZGUtPmNh
bGxJZGVudGlmaWVyKCk7IH0KQEAgLTE3MCw3ICsxNzAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgewogICAgICAgICAgICAgZG91YmxlIHNlbGZUaW1lID0gMC4wOwogICAgICAgICAgICAg
Zm9yIChjb25zdCBQcm9maWxlTm9kZTo6Q2FsbCYgY2FsbCA6IG5vZGUtPmNhbGxzKCkpCi0gICAg
ICAgICAgICAgICAgc2VsZlRpbWUgKz0gY2FsbC50b3RhbFRpbWUoKTsKKyAgICAgICAgICAgICAg
ICBzZWxmVGltZSArPSBjYWxsLmVsYXBzZWRUaW1lKCk7CiAKICAgICAgICAgICAgIGRvdWJsZSB0
b3RhbFRpbWUgPSBzZWxmVGltZTsKICAgICAgICAgICAgIGZvciAoUmVmUHRyPFByb2ZpbGVOb2Rl
PiBjaGlsZCA6IG5vZGUtPmNoaWxkcmVuKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKaW5kZXggZDQ1OWRmYzk0MWFlMDE2N2Q4
ODFkMzU4NmFkOWY5YWEwYTBmNjVjNy4uMWQxODMzMjU0OWVjOTk3N2ZkOWYyNzU1NGQ5OWU2NzBl
Yzc2MzQxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVj
b3JkRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVj
b3JkRmFjdG9yeS5jcHAKQEAgLTI3NCw3ICsyNzQsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxQcm90
b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVOb2RlQ2FsbD4gYnVpbGRJbnNwZWN0b3JPYmplY3Qo
YwogewogICAgIFJlZlB0cjxQcm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVOb2RlQ2FsbD4g
cmVzdWx0ID0gUHJvdG9jb2w6OlRpbWVsaW5lOjpDUFVQcm9maWxlTm9kZUNhbGw6OmNyZWF0ZSgp
CiAgICAgICAgIC5zZXRTdGFydFRpbWUoY2FsbC5zdGFydFRpbWUoKSkKLSAgICAgICAgLnNldFRv
dGFsVGltZShjYWxsLnRvdGFsVGltZSgpKTsKKyAgICAgICAgLnNldFRvdGFsVGltZShjYWxsLmVs
YXBzZWRUaW1lKCkpOwogICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOwogfQogCg==
</data>
<flag name="review"
          id="262854"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>