<?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>116431</bug_id>
          
          <creation_ts>2013-05-20 02:12:54 -0700</creation_ts>
          <short_desc>[GStreamer] Get rid of fill timer</short_desc>
          <delta_ts>2013-05-22 15:48:06 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>
          <dependson>116228</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Balazs Kelemen">kbalazs</reporter>
          <assigned_to name="Balazs Kelemen">kbalazs</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>hausmann</cc>
    
    <cc>jer.noble</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>891144</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-05-20 02:12:54 -0700</bug_when>
    <thetext>I don&apos;t think we need this timer. We can query buffering stats as needed. The fill timer only active when preload is auto. This is bad because our internal behavior is different in preload=&quot;none&quot; and nothing guarantees that tests that are passing with auto preload would pass with none or metadata.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891161</commentid>
    <comment_count>1</comment_count>
      <attachid>202269</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-05-20 04:11:56 -0700</bug_when>
    <thetext>Created attachment 202269
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891663</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-05-21 02:29:36 -0700</bug_when>
    <thetext>Can the patch be rebased against ToT so the EWS can process it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891703</commentid>
    <comment_count>3</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-05-21 04:27:56 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Can the patch be rebased against ToT so the EWS can process it?

I forgot to set the dependency. It&apos;s based on bug 11628. I only tested it upon the other. Can we resolve that one first? Than I can upload it again so we can see how it goes on ews.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891722</commentid>
    <comment_count>4</comment_count>
      <attachid>202418</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-05-21 05:47:16 -0700</bug_when>
    <thetext>Created attachment 202418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891753</commentid>
    <comment_count>5</comment_count>
      <attachid>202418</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-05-21 06:44:08 -0700</bug_when>
    <thetext>Comment on attachment 202418
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:-860
&gt; -        gst_element_set_state(m_playBin.get(), GST_STATE_PAUSED);

Please don&apos;t remove this, the pipeline really needs to be paused in this case.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:865
&gt; +        gst_query_parse_buffering_percent(query, 0, &amp;percent);

Does this really return the percentage of data buffered on-disk?

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:873
&gt; +        if (m_mediaDuration)
&gt; +            m_maxTimeLoaded = percent == 100 ? m_mediaDuration : (m_mediaDuration * percent) / 100.0f;

Perhaps this can be moved to a small private method, that code is called at two different places

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:-1170
&gt; -        if (m_fillTimer.isActive())
&gt; -            m_networkState = MediaPlayer::Loading;

So where is this done now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891755</commentid>
    <comment_count>6</comment_count>
      <attachid>202418</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2013-05-21 06:45:19 -0700</bug_when>
    <thetext>Comment on attachment 202418
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:-1170
&gt;&gt; -            m_networkState = MediaPlayer::Loading;
&gt; 
&gt; So where is this done now?

Sorry I see it&apos;s done above, line 1063 now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891798</commentid>
    <comment_count>7</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-05-21 08:49:44 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 202418 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=202418&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:-860
&gt; &gt; -        gst_element_set_state(m_playBin.get(), GST_STATE_PAUSED);
&gt; 
&gt; Please don&apos;t remove this, the pipeline really needs to be paused in this case.

Ok.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:865
&gt; &gt; +        gst_query_parse_buffering_percent(query, 0, &amp;percent);
&gt; 
&gt; Does this really return the percentage of data buffered on-disk?

Good observation. Only if we are doing download buffering (on-disk buffering in other words). I was not sure about what this function should tell, I just considered how it is used internally. Now I guess it should be the maximal position that has been loaded, no matter if we reached it by fetching into memory via normal buffering or by downloading the file.

Actually this reveals a few other things:
 - readystate should be updated based on the state of the playback (memory) buffer (not on |maxTimeLoaded() == duration()|)
 - Why do we only do download buffering if preload=auto? preload=none means don&apos;t download before playback starts, but it&apos;s our internal decision whether to use download buffering after that. As preload=none is work correctly after recent patches we maybe want to always do download buffering?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892574</commentid>
    <comment_count>8</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-05-22 15:44:56 -0700</bug_when>
    <thetext>I abandon this. Seems like a timer is really necessary to track the state of download buffering. The buffering messages only describe the state of the memory buffer. (The documentation is quite ambiguous here.) There are still things annoying me:
 1. there is no rationale of disabling download buffering with preload=&quot;none&quot;
 2. maxTimeLoaded()

float loaded = m_maxTimeLoaded;
if (!loaded &amp;&amp; !m_fillTimer.isActive())
    loaded = duration();

That&apos;s wrong. What if the fill timer was never active? What if duration is not known? I will try to fix these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892577</commentid>
    <comment_count>9</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-05-22 15:48:06 -0700</bug_when>
    <thetext>&gt; 
&gt; float loaded = m_maxTimeLoaded;
&gt; if (!loaded &amp;&amp; !m_fillTimer.isActive())
&gt;     loaded = duration();
&gt; 
&gt; That&apos;s wrong. What if the fill timer was never active? What if duration is not known? I will try to fix these.

Forgot the most annoying: if I remove the if, there are plenty of tests start failing mostly because canplaythrough does not fire.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202269</attachid>
            <date>2013-05-20 04:11:56 -0700</date>
            <delta_ts>2013-05-21 05:47:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116431-20130520131044.patch</filename>
            <type>text/plain</type>
            <size>9735</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwMDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNlY2RmMWM1Zjg3ZGI2
NzllNTJiMjM5OTcwOGI1ODM4N2U5MmM4Zi4uZjY3ZjYxZWZiN2M4NTE1YWFkOWFjYWMwMTM4MmYz
NTk2M2FjZTE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTA1LTIwICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbR1N0cmVhbWVyXSBH
ZXQgcmlkIG9mIGZpbGwgdGltZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExNjQzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbW92ZSB0aGUgZmlsbCB0aW1lciBiZWNhdXNlIHdlIGRvbid0IG5lZWQg
aXQuIEluc3RlYWQgd2UgY2FuIHF1ZXJ5IGJ1ZmZlcmluZyBzdGF0ZSBvbiBkZW1hbmQuCisgICAg
ICAgIFRoZSB0aW1lciB3YXMgb25seSBhY3RpdmUgd2hpdGggcHJlbG9hZD1hdXRvLiBHZXR0aW5n
IHJpZCBvZiBpdCBpcyBnb29kIGZvciB0ZXN0IGNvdmVyYWdlIGJlY2F1c2UKKyAgICAgICAgbm93
IHRoZXJlIGlzIGxlc3MgZGlmZmVyZW5jZSBpbiBpbnRlcm5hbCBiZWhhdmlvciBiZXR3ZWVuIHBy
ZWxvYWQgbW9kZXMuIEl0IGlzIGltcG9ydGFudCBzaW5jZSAKKyAgICAgICAgd2UgcnVuIGFsbCBv
ZiBvdXIgdGVzdHMgdGhhdCBhcmUgbm90IGFib3V0IHByZWxvYWQgbW9kZSB3aXRoIGF1dG8gcHJl
bG9hZC4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Ok1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwcm9jZXNzQnVmZmVyaW5nU3Rh
dHMpOgorICAgICAgICBVcGRhdGUgbV9tYXhUaW1lTG9hZGVkLgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjptYXhUaW1lTG9hZGVkKToKKyAgICAgICAgUXVl
cnkgYnVmZmVyaW5nIHN0YXRzIGlmIG1fbWF4VGltZUxvYWRlZCBpcyBub3Qgc2V0IGJlZm9yZSAo
YW5kIGl0J3Mgbm90IGEgbGl2ZSBzb3VyY2UpLgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjp1cGRhdGVTdGF0ZXMpOiBJIGhhZCB0byBkbyBhIGNoYW5nZSB0byBtYWtlIGF1
ZGlvLW1wZWctc3VwcG9ydGVkLmh0bWwgcGFzcy4KKyAgICAgICAgSXQgdHVybmVkIG91dCB0aGF0
IEdTdHJlYW1lciBpcyBub3QgYWJsZSB0byBkZXRlY3QgdGhlIGR1cmF0aW9uIG9mIHRoZSBhdWRp
byBmaWxlLiBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbgorICAgICAgICB3b3JrcyBiZWNhdXNl
IGl0IGlzIGJ1Z2d5LiBJdCBzZXRzIG1fbWF4VGltZUxvYWRlZCB0byBkdXJhdGlvbigpIGlmIHRo
ZSBmaWxsIHRpbWVyIGlzIG5vdCBhY3RpdmUgYXNzdW1pbmcgdGhhdAorICAgICAgICBidWZmZXJp
bmcgaXMgZmluaXNoZWQuIE9idmlvdXNseSBpdCBkb2VzIG5vdCBjYXJlIGFib3V0IHRoZSBjYXNl
IHdoZW4gcHJlbG9hZD1ub25lIGFuZCB3ZSBuZXZlciBzdGFydCB0aGUgdGltZXIKKyAgICAgICAg
b3IgaWYgaXQgaGFzIGJlZW4gc3RvcHBlZCBiZWZvcmUgYnVmZmVyaW5nIGZpbmlzaGVkLiBIb3dl
dmVyIGl0IG1ha2VzIHRoZSB8bWF4VGltZUxvYWRlZCgpID09IGR1cmF0aW9uKCl8IGNvbmRpdGlv
bgorICAgICAgICBwYXNzIGluIHVwZGF0ZVN0YXRlcyB0aGF0IHVwZGF0ZXMgdGhlIG5ldHdvcmsg
YW5kIHJlYWR5IHN0YXRlcyBzbyB0aGUgY2FucGxheXRocm91Z2ggZXZlbiB3aWxsIGZpcmUuCisg
ICAgICAgIEZvcnR1bmF0ZWx5IHdlIGNhbiBoYW5kbGUgdGhlIHNpdHVhdGlvbiBvZiBub3Qga25v
d2luZyB0aGUgZHVyYXRpb24gYmV0dGVyLiBJZiB3ZSBrbm93IHRoYXQgYnVmZmVyaW5nIGlzIGRv
bmUKKyAgICAgICAgd2UgY2FuIHVwZGF0ZSBuZXR3b3JrIGFuZCByZWFkeSBzdGF0ZXMgdGhlIHNh
bWUgd2F5LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAgKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cik6IE1hZGUgbV9tYXhUaW1lTG9hZGVkIGFuZCBtX2J1ZmZlcmluZ1BlcmNlbnRhZ2UgbXV0YWJs
ZSBzbyB3ZSBjYW4gdXBkYXRlIHRoZW0KKyAgICAgICAgaW4gbWF4VGltZUxvYWRlZCgpIHdoaWNo
IGlzIGNvbnN0LiBUaGUgcHVycG9zZSBvZiB0aGVzZSBtZW1iZXJzIGlzIHRvIGNhY2hlIHRoZSBx
dWVyaWVkIHZhbHVlcyBzbyBpdCdzIG9rCisgICAgICAgIHRvIGNoYW5nZSB0aGVtIGluIGNvbnN0
IGZ1bmN0aW9ucy4KKwogMjAxMy0wNS0xNiAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gY2xlYW51cCBkdXJhdGlvbiBxdWVyeQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA5Zjdj
MzZlMTQ0YjUxYWVmZWY2OWMyZDUxNjUwNTY1NTUxY2Q3NGYyLi4wNTM0OGMwZGRjNmZmNjQ5NjAy
MDk4ZWNiMDIxNWZkODExNTI5MDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMjE3LDggKzIxNyw2IEBAIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKiBwbGF5
ZXIpCiAgICAgLCBtX3BsYXliYWNrUmF0ZSgxKQogICAgICwgbV9lcnJvck9jY3VyZWQoZmFsc2Up
CiAgICAgLCBtX21lZGlhRHVyYXRpb24oMCkKLSAgICAsIG1fc3RhcnRlZEJ1ZmZlcmluZyhmYWxz
ZSkKLSAgICAsIG1fZmlsbFRpbWVyKHRoaXMsICZNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmZpbGxUaW1lckZpcmVkKQogICAgICwgbV9tYXhUaW1lTG9hZGVkKDApCiAgICAgLCBtX2J1ZmZl
cmluZ1BlcmNlbnRhZ2UoMCkKICAgICAsIG1fcHJlbG9hZChwbGF5ZXItPnByZWxvYWQoKSkKQEAg
LTI0MCw5ICsyMzgsNiBAQCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciogcGxheWVyKQogCiBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoKQogewotICAgIGlmICht
X2ZpbGxUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBtX2ZpbGxUaW1lci5zdG9wKCk7Ci0KICAg
ICBpZiAobV9tZWRpYUxvY2F0aW9ucykgewogICAgICAgICBnc3Rfc3RydWN0dXJlX2ZyZWUobV9t
ZWRpYUxvY2F0aW9ucyk7CiAgICAgICAgIG1fbWVkaWFMb2NhdGlvbnMgPSAwOwpAQCAtODM1LDc1
ICs4MzAsOSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHJvY2Vzc0J1ZmZl
cmluZ1N0YXRzKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAKICAgICBMT0dfTUVESUFfTUVTU0FHRSgi
W0J1ZmZlcmluZ10gQnVmZmVyaW5nOiAlZCUlLiIsIG1fYnVmZmVyaW5nUGVyY2VudGFnZSk7CiAK
LSAgICBHc3RCdWZmZXJpbmdNb2RlIG1vZGU7Ci0gICAgZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVy
aW5nX3N0YXRzKG1lc3NhZ2UsICZtb2RlLCAwLCAwLCAwKTsKLSAgICBpZiAobW9kZSAhPSBHU1Rf
QlVGRkVSSU5HX0RPV05MT0FEKSB7Ci0gICAgICAgIHVwZGF0ZVN0YXRlcygpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgLy8gVGhpcyBpcyBvbi1kaXNrIGJ1ZmZlcmluZywgdGhhdCBh
bGxvd3MgdXMgdG8gZG93bmxvYWQgbXVjaCBtb3JlCi0gICAgLy8gdGhhbiBuZWVkZWQgZm9yIHJp
Z2h0IG5vdy4KLSAgICBpZiAoIW1fc3RhcnRlZEJ1ZmZlcmluZykgewotICAgICAgICBMT0dfTUVE
SUFfTUVTU0FHRSgiW0J1ZmZlcmluZ10gU3RhcnRpbmcgb24tZGlzayBidWZmZXJpbmcuIik7Ci0K
LSAgICAgICAgbV9zdGFydGVkQnVmZmVyaW5nID0gdHJ1ZTsKLQotICAgICAgICBpZiAobV9maWxs
VGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1fZmlsbFRpbWVyLnN0b3AoKTsKLQotICAg
ICAgICBtX2ZpbGxUaW1lci5zdGFydFJlcGVhdGluZygwLjIpOwotICAgIH0KLQotICAgIGlmICgh
bV9wYXVzZWQgJiYgbV9idWZmZXJpbmdQZXJjZW50YWdlIDwgMTAwKSB7Ci0gICAgICAgIExPR19N
RURJQV9NRVNTQUdFKCJbQnVmZmVyaW5nXSBEb3dubG9hZCBpbiBwcm9ncmVzcywgcGF1c2luZyBw
aXBlbGluZS4iKTsKLSAgICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGxheUJpbi5nZXQo
KSwgR1NUX1NUQVRFX1BBVVNFRCk7Ci0gICAgfQotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6ZmlsbFRpbWVyRmlyZWQoVGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyPiopCi17Ci0gICAgR3N0UXVlcnkqIHF1ZXJ5ID0gZ3N0X3F1ZXJ5X25ld19idWZmZXJpbmco
R1NUX0ZPUk1BVF9QRVJDRU5UKTsKLQotICAgIGlmICghZ3N0X2VsZW1lbnRfcXVlcnkobV9wbGF5
QmluLmdldCgpLCBxdWVyeSkpIHsKLSAgICAgICAgZ3N0X3F1ZXJ5X3VucmVmKHF1ZXJ5KTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGdpbnQ2NCBzdGFydCwgc3RvcDsKLSAgICBnZG91
YmxlIGZpbGxTdGF0dXMgPSAxMDAuMDsKLQotICAgIGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdf
cmFuZ2UocXVlcnksIDAsICZzdGFydCwgJnN0b3AsIDApOwotICAgIGdzdF9xdWVyeV91bnJlZihx
dWVyeSk7Ci0KLSAgICBpZiAoc3RvcCAhPSAtMSkKLSAgICAgICAgZmlsbFN0YXR1cyA9IDEwMC4w
ICogc3RvcCAvIEdTVF9GT1JNQVRfUEVSQ0VOVF9NQVg7Ci0KLSAgICBMT0dfTUVESUFfTUVTU0FH
RSgiW0J1ZmZlcmluZ10gRG93bmxvYWQgYnVmZmVyIGZpbGxlZCB1cCB0byAlZiUlIiwgZmlsbFN0
YXR1cyk7Ci0KLSAgICBpZiAoIW1fbWVkaWFEdXJhdGlvbikKLSAgICAgICAgZHVyYXRpb25DaGFu
Z2VkKCk7Ci0KLSAgICAvLyBVcGRhdGUgbWF4VGltZUxvYWRlZCBvbmx5IGlmIHRoZSBtZWRpYSBk
dXJhdGlvbiBpcwotICAgIC8vIGF2YWlsYWJsZS4gT3RoZXJ3aXNlIHdlIGNhbid0IGNvbXB1dGUg
aXQuCi0gICAgaWYgKG1fbWVkaWFEdXJhdGlvbikgewotICAgICAgICBpZiAoZmlsbFN0YXR1cyA9
PSAxMDAuMCkKLSAgICAgICAgICAgIG1fbWF4VGltZUxvYWRlZCA9IG1fbWVkaWFEdXJhdGlvbjsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9tYXhUaW1lTG9hZGVkID0gc3RhdGljX2Nhc3Q8
ZmxvYXQ+KChmaWxsU3RhdHVzICogbV9tZWRpYUR1cmF0aW9uKSAvIDEwMC4wKTsKLSAgICAgICAg
TE9HX01FRElBX01FU1NBR0UoIltCdWZmZXJpbmddIFVwZGF0ZWQgbWF4VGltZUxvYWRlZDogJWYi
LCBtX21heFRpbWVMb2FkZWQpOwotICAgIH0KLQotICAgIGlmIChmaWxsU3RhdHVzICE9IDEwMC4w
KSB7Ci0gICAgICAgIHVwZGF0ZVN0YXRlcygpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAg
IGlmIChtX21lZGlhRHVyYXRpb24pCisgICAgICAgIG1fbWF4VGltZUxvYWRlZCA9IG1fYnVmZmVy
aW5nUGVyY2VudGFnZSA9PSAxMDAgPyBtX21lZGlhRHVyYXRpb24gOiAobV9tZWRpYUR1cmF0aW9u
ICogbV9idWZmZXJpbmdQZXJjZW50YWdlKSAvIDEwMC4wZjsKIAotICAgIC8vIE1lZGlhIGlzIG5v
dyBmdWxseSBsb2FkZWQuIEl0IHdpbGwgcGxheSBldmVuIGlmIG5ldHdvcmsKLSAgICAvLyBjb25u
ZWN0aW9uIGlzIGN1dC4gQnVmZmVyaW5nIGlzIGRvbmUsIHJlbW92ZSB0aGUgZmlsbCBzb3VyY2UK
LSAgICAvLyBmcm9tIHRoZSBtYWluIGxvb3AuCi0gICAgbV9maWxsVGltZXIuc3RvcCgpOwotICAg
IG1fc3RhcnRlZEJ1ZmZlcmluZyA9IGZhbHNlOwogICAgIHVwZGF0ZVN0YXRlcygpOwogfQogCkBA
IC05MjUsMTEgKzg1NCwyNSBAQCBmbG9hdCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om1h
eFRpbWVMb2FkZWQoKSBjb25zdAogICAgIGlmIChtX2Vycm9yT2NjdXJlZCkKICAgICAgICAgcmV0
dXJuIDAuMGY7CiAKLSAgICBmbG9hdCBsb2FkZWQgPSBtX21heFRpbWVMb2FkZWQ7Ci0gICAgaWYg
KCFsb2FkZWQgJiYgIW1fZmlsbFRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIGxvYWRlZCA9IGR1
cmF0aW9uKCk7Ci0gICAgTE9HX01FRElBX01FU1NBR0UoIm1heFRpbWVMb2FkZWQ6ICVmIiwgbG9h
ZGVkKTsKLSAgICByZXR1cm4gbG9hZGVkOworICAgIGlmICghbV9tYXhUaW1lTG9hZGVkICYmICFp
c0xpdmVTdHJlYW0oKSkgeworICAgICAgICBHc3RRdWVyeSogcXVlcnkgPSBnc3RfcXVlcnlfbmV3
X2J1ZmZlcmluZyhHU1RfRk9STUFUX1BFUkNFTlQpOworICAgICAgICBpZiAoIWdzdF9lbGVtZW50
X3F1ZXJ5KG1fcGxheUJpbi5nZXQoKSwgcXVlcnkpKSB7CisgICAgICAgICAgICBnc3RfcXVlcnlf
dW5yZWYocXVlcnkpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAg
Z2ludCBwZXJjZW50OworICAgICAgICBnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3BlcmNlbnQo
cXVlcnksIDAsICZwZXJjZW50KTsKKworICAgICAgICAvLyBVcGRhdGluZyBidWZmZXJpbmcgcGVy
Y2VudGFnZSBoZXJlIGFsbG93cyB1cyB0byB1cGRhdGUgbmV0d29yayBhbmQgcmVhZHkgc3RhdGVz
CisgICAgICAgIC8vIGNvcnJlY3RseSBldmVuIGlmIHRoZSBkdXJhdGlvbiBpcyBub3Qga25vd24u
CisgICAgICAgIG1fYnVmZmVyaW5nUGVyY2VudGFnZSA9IHBlcmNlbnQ7CisKKyAgICAgICAgaWYg
KG1fbWVkaWFEdXJhdGlvbikKKyAgICAgICAgICAgIG1fbWF4VGltZUxvYWRlZCA9IHBlcmNlbnQg
PT0gMTAwID8gbV9tZWRpYUR1cmF0aW9uIDogKG1fbWVkaWFEdXJhdGlvbiAqIHBlcmNlbnQpIC8g
MTAwLjBmOworICAgIH0KKworICAgIExPR19NRURJQV9NRVNTQUdFKCJtYXhUaW1lTG9hZGVkOiAl
ZiIsIG1fbWF4VGltZUxvYWRlZCk7CisgICAgcmV0dXJuIG1fbWF4VGltZUxvYWRlZDsKIH0KIAog
Ym9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmRpZExvYWRpbmdQcm9ncmVzcygpIGNv
bnN0CkBAIC0xMTEwLDcgKzEwNTMsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6dXBkYXRlU3RhdGVzKCkKICAgICAgICAgaWYgKHN0YXRlID09IEdTVF9TVEFURV9SRUFEWSkg
ewogICAgICAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OkhhdmVNZXRhZGF0YTsK
ICAgICAgICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQbGF5ZXI6OkVtcHR5OwotICAgICAg
ICB9IGVsc2UgaWYgKChzdGF0ZSA9PSBHU1RfU1RBVEVfTlVMTCkgfHwgKG1heFRpbWVMb2FkZWQo
KSA9PSBkdXJhdGlvbigpKSkgeworICAgICAgICB9IGVsc2UgaWYgKChzdGF0ZSA9PSBHU1RfU1RB
VEVfTlVMTCkgfHwgKG1heFRpbWVMb2FkZWQoKSA9PSBkdXJhdGlvbigpIHx8IG1fYnVmZmVyaW5n
UGVyY2VudGFnZSA9PSAxMDApKSB7CiAgICAgICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IE1lZGlh
UGxheWVyOjpMb2FkZWQ7CiAgICAgICAgICAgICBtX3JlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6
SGF2ZUVub3VnaERhdGE7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xMTY1LDEwICsxMTA4LDYgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVN0YXRlcygpCiAgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgbV9wYXVzZWQgPSB0cnVlOwogCi0gICAgICAgIC8vIElzIG9u
LWRpc2sgYnVmZmVyaW5nIGluIHByb2dyZXNzPwotICAgICAgICBpZiAobV9maWxsVGltZXIuaXNB
Y3RpdmUoKSkKLSAgICAgICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQbGF5ZXI6OkxvYWRp
bmc7Ci0KICAgICAgICAgaWYgKG1fY2hhbmdpbmdSYXRlKSB7CiAgICAgICAgICAgICBtX3BsYXll
ci0+cmF0ZUNoYW5nZWQoKTsKICAgICAgICAgICAgIG1fY2hhbmdpbmdSYXRlID0gZmFsc2U7CkBA
IC0xMzM5LDcgKzEyNzgsNiBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9h
ZE5leHRMb2NhdGlvbigpCiAgICAgfQogICAgIG1fbWVkaWFMb2NhdGlvbkN1cnJlbnRJbmRleC0t
OwogICAgIHJldHVybiBmYWxzZTsKLQogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6bG9hZFN0YXRlQ2hhbmdlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmgKaW5kZXggOTljNmIxODY3MDU0YzgxOTA4YjhmYjkzYWQ3YjM4MmIzMTRm
ZWQ5MS4uN2E0ZTYwZDY3YjI0ZDVhYThjNjE5NjYyZjE1ZjZiOGI3NWIyNTRkNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtNzEsNyArNzEsNiBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmVzZXJ2ZXNQaXRjaChib29sKTsKIAogICAgIHZvaWQg
c2V0UHJlbG9hZChNZWRpYVBsYXllcjo6UHJlbG9hZCk7Ci0gICAgdm9pZCBmaWxsVGltZXJGaXJl
ZChUaW1lcjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+Kik7CiAKICAgICBQYXNzUmVmUHRy
PFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Q7CiAgICAgZmxvYXQgbWF4VGltZVNlZWthYmxl
KCkgY29uc3Q7CkBAIC0xNDgsMTAgKzE0Nyw4IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9wbGF5
YmFja1JhdGU7CiAgICAgYm9vbCBtX2Vycm9yT2NjdXJlZDsKICAgICBtdXRhYmxlIGdmbG9hdCBt
X21lZGlhRHVyYXRpb247Ci0gICAgYm9vbCBtX3N0YXJ0ZWRCdWZmZXJpbmc7Ci0gICAgVGltZXI8
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiBtX2ZpbGxUaW1lcjsKLSAgICBmbG9hdCBtX21h
eFRpbWVMb2FkZWQ7Ci0gICAgaW50IG1fYnVmZmVyaW5nUGVyY2VudGFnZTsKKyAgICBtdXRhYmxl
IGZsb2F0IG1fbWF4VGltZUxvYWRlZDsKKyAgICBtdXRhYmxlIGludCBtX2J1ZmZlcmluZ1BlcmNl
bnRhZ2U7CiAgICAgTWVkaWFQbGF5ZXI6OlByZWxvYWQgbV9wcmVsb2FkOwogICAgIGJvb2wgbV9k
ZWxheWluZ0xvYWQ7CiAgICAgYm9vbCBtX21lZGlhRHVyYXRpb25Lbm93bjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202418</attachid>
            <date>2013-05-21 05:47:16 -0700</date>
            <delta_ts>2013-05-22 15:45:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116431-20130521144604.patch</filename>
            <type>text/plain</type>
            <size>9769</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjA2NGIxMWRjMDI0Mjk2
NWUwZWIzOTYxMTZhYzdhNWUzMzE0YWZlMC4uYzVhMmMyY2U3YWM4YjY2NmFjZjMyYzIxYjkxM2Rh
NTJmM2JkYzI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTA1LTIwICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbR1N0cmVhbWVyXSBH
ZXQgcmlkIG9mIGZpbGwgdGltZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExNjQzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbW92ZSB0aGUgZmlsbCB0aW1lciBiZWNhdXNlIHdlIGRvbid0IG5lZWQg
aXQuIEluc3RlYWQgd2UgY2FuIHF1ZXJ5IGJ1ZmZlcmluZyBzdGF0ZSBvbiBkZW1hbmQuCisgICAg
ICAgIFRoZSB0aW1lciB3YXMgb25seSBhY3RpdmUgd2hpdGggcHJlbG9hZD1hdXRvLiBHZXR0aW5n
IHJpZCBvZiBpdCBpcyBnb29kIGZvciB0ZXN0IGNvdmVyYWdlIGJlY2F1c2UKKyAgICAgICAgbm93
IHRoZXJlIGlzIGxlc3MgZGlmZmVyZW5jZSBpbiBpbnRlcm5hbCBiZWhhdmlvciBiZXR3ZWVuIHBy
ZWxvYWQgbW9kZXMuIEl0IGlzIGltcG9ydGFudCBzaW5jZQorICAgICAgICB3ZSBydW4gYWxsIG9m
IG91ciB0ZXN0cyB0aGF0IGFyZSBub3QgYWJvdXQgcHJlbG9hZCBtb2RlIHdpdGggYXV0byBwcmVs
b2FkLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnByb2Nlc3NCdWZmZXJpbmdTdGF0
cyk6CisgICAgICAgIFVwZGF0ZSBtX21heFRpbWVMb2FkZWQuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om1heFRpbWVMb2FkZWQpOgorICAgICAgICBRdWVy
eSBidWZmZXJpbmcgc3RhdHMgaWYgbV9tYXhUaW1lTG9hZGVkIGlzIG5vdCBzZXQgYmVmb3JlIChh
bmQgaXQncyBub3QgYSBsaXZlIHNvdXJjZSkuCisgICAgICAgIChNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OnVwZGF0ZVN0YXRlcyk6IEkgaGFkIHRvIGRvIGEgY2hhbmdlIHRvIG1ha2UgYXVk
aW8tbXBlZy1zdXBwb3J0ZWQuaHRtbCBwYXNzLgorICAgICAgICBJdCB0dXJuZWQgb3V0IHRoYXQg
R1N0cmVhbWVyIGlzIG5vdCBhYmxlIHRvIGRldGVjdCB0aGUgZHVyYXRpb24gb2YgdGhlIGF1ZGlv
IGZpbGUuIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uCisgICAgICAgIHdvcmtzIGJlY2F1c2Ug
aXQgaXMgYnVnZ3kuIEl0IHNldHMgbV9tYXhUaW1lTG9hZGVkIHRvIGR1cmF0aW9uKCkgaWYgdGhl
IGZpbGwgdGltZXIgaXMgbm90IGFjdGl2ZSBhc3N1bWluZyB0aGF0CisgICAgICAgIGJ1ZmZlcmlu
ZyBpcyBmaW5pc2hlZC4gT2J2aW91c2x5IGl0IGRvZXMgbm90IGNhcmUgYWJvdXQgdGhlIGNhc2Ug
d2hlbiBwcmVsb2FkPW5vbmUgYW5kIHdlIG5ldmVyIHN0YXJ0IHRoZSB0aW1lcgorICAgICAgICBv
ciBpZiBpdCBoYXMgYmVlbiBzdG9wcGVkIGJlZm9yZSBidWZmZXJpbmcgZmluaXNoZWQuIEhvd2V2
ZXIgaXQgbWFrZXMgdGhlIHxtYXhUaW1lTG9hZGVkKCkgPT0gZHVyYXRpb24oKXwgY29uZGl0aW9u
CisgICAgICAgIHBhc3MgaW4gdXBkYXRlU3RhdGVzIHRoYXQgdXBkYXRlcyB0aGUgbmV0d29yayBh
bmQgcmVhZHkgc3RhdGVzIHNvIHRoZSBjYW5wbGF5dGhyb3VnaCBldmVuIHdpbGwgZmlyZS4KKyAg
ICAgICAgRm9ydHVuYXRlbHkgd2UgY2FuIGhhbmRsZSB0aGUgc2l0dWF0aW9uIG9mIG5vdCBrbm93
aW5nIHRoZSBkdXJhdGlvbiBiZXR0ZXIuIElmIHdlIGtub3cgdGhhdCBidWZmZXJpbmcgaXMgZG9u
ZQorICAgICAgICB3ZSBjYW4gdXBkYXRlIG5ldHdvcmsgYW5kIHJlYWR5IHN0YXRlcyB0aGUgc2Ft
ZSB3YXkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oOgorICAgICAgICAoTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
KTogTWFkZSBtX21heFRpbWVMb2FkZWQgYW5kIG1fYnVmZmVyaW5nUGVyY2VudGFnZSBtdXRhYmxl
IHNvIHdlIGNhbiB1cGRhdGUgdGhlbQorICAgICAgICBpbiBtYXhUaW1lTG9hZGVkKCkgd2hpY2gg
aXMgY29uc3QuIFRoZSBwdXJwb3NlIG9mIHRoZXNlIG1lbWJlcnMgaXMgdG8gY2FjaGUgdGhlIHF1
ZXJpZWQgdmFsdWVzIHNvIGl0J3Mgb2sKKyAgICAgICAgdG8gY2hhbmdlIHRoZW0gaW4gY29uc3Qg
ZnVuY3Rpb25zLgorCiAyMDEzLTA1LTIxICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0
Lm9yZz4KIAogICAgICAgICBbR1N0cmVhbWVyXSBjbGVhbnVwIGR1cmF0aW9uIHF1ZXJ5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDlmN2Mz
NmUxNDRiNTFhZWZlZjY5YzJkNTE2NTA1NjU1NTFjZDc0ZjIuLmM2MzE1NzJhNTYzMmNiY2Q1ODM2
MTBlMzY5Nzg0OTgyZWFhNDdmYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0yMTcsOCArMjE3LDYgQEAgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqIHBsYXll
cikKICAgICAsIG1fcGxheWJhY2tSYXRlKDEpCiAgICAgLCBtX2Vycm9yT2NjdXJlZChmYWxzZSkK
ICAgICAsIG1fbWVkaWFEdXJhdGlvbigwKQotICAgICwgbV9zdGFydGVkQnVmZmVyaW5nKGZhbHNl
KQotICAgICwgbV9maWxsVGltZXIodGhpcywgJk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
ZmlsbFRpbWVyRmlyZWQpCiAgICAgLCBtX21heFRpbWVMb2FkZWQoMCkKICAgICAsIG1fYnVmZmVy
aW5nUGVyY2VudGFnZSgwKQogICAgICwgbV9wcmVsb2FkKHBsYXllci0+cHJlbG9hZCgpKQpAQCAt
MjQwLDkgKzIzOCw2IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAKIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcigpCiB7Ci0gICAgaWYgKG1f
ZmlsbFRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIG1fZmlsbFRpbWVyLnN0b3AoKTsKLQogICAg
IGlmIChtX21lZGlhTG9jYXRpb25zKSB7CiAgICAgICAgIGdzdF9zdHJ1Y3R1cmVfZnJlZShtX21l
ZGlhTG9jYXRpb25zKTsKICAgICAgICAgbV9tZWRpYUxvY2F0aW9ucyA9IDA7CkBAIC04MzUsNzUg
KzgzMCw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpwcm9jZXNzQnVmZmVy
aW5nU3RhdHMoR3N0TWVzc2FnZSogbWVzc2FnZSkKIAogICAgIExPR19NRURJQV9NRVNTQUdFKCJb
QnVmZmVyaW5nXSBCdWZmZXJpbmc6ICVkJSUuIiwgbV9idWZmZXJpbmdQZXJjZW50YWdlKTsKIAot
ICAgIEdzdEJ1ZmZlcmluZ01vZGUgbW9kZTsKLSAgICBnc3RfbWVzc2FnZV9wYXJzZV9idWZmZXJp
bmdfc3RhdHMobWVzc2FnZSwgJm1vZGUsIDAsIDAsIDApOwotICAgIGlmIChtb2RlICE9IEdTVF9C
VUZGRVJJTkdfRE9XTkxPQUQpIHsKLSAgICAgICAgdXBkYXRlU3RhdGVzKCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICAvLyBUaGlzIGlzIG9uLWRpc2sgYnVmZmVyaW5nLCB0aGF0IGFs
bG93cyB1cyB0byBkb3dubG9hZCBtdWNoIG1vcmUKLSAgICAvLyB0aGFuIG5lZWRlZCBmb3Igcmln
aHQgbm93LgotICAgIGlmICghbV9zdGFydGVkQnVmZmVyaW5nKSB7Ci0gICAgICAgIExPR19NRURJ
QV9NRVNTQUdFKCJbQnVmZmVyaW5nXSBTdGFydGluZyBvbi1kaXNrIGJ1ZmZlcmluZy4iKTsKLQot
ICAgICAgICBtX3N0YXJ0ZWRCdWZmZXJpbmcgPSB0cnVlOwotCi0gICAgICAgIGlmIChtX2ZpbGxU
aW1lci5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgbV9maWxsVGltZXIuc3RvcCgpOwotCi0gICAg
ICAgIG1fZmlsbFRpbWVyLnN0YXJ0UmVwZWF0aW5nKDAuMik7Ci0gICAgfQotCi0gICAgaWYgKCFt
X3BhdXNlZCAmJiBtX2J1ZmZlcmluZ1BlcmNlbnRhZ2UgPCAxMDApIHsKLSAgICAgICAgTE9HX01F
RElBX01FU1NBR0UoIltCdWZmZXJpbmddIERvd25sb2FkIGluIHByb2dyZXNzLCBwYXVzaW5nIHBp
cGVsaW5lLiIpOwotICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9wbGF5QmluLmdldCgp
LCBHU1RfU1RBVEVfUEFVU0VEKTsKLSAgICB9Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpmaWxsVGltZXJGaXJlZChUaW1lcjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI+KikKLXsKLSAgICBHc3RRdWVyeSogcXVlcnkgPSBnc3RfcXVlcnlfbmV3X2J1ZmZlcmluZyhH
U1RfRk9STUFUX1BFUkNFTlQpOwotCi0gICAgaWYgKCFnc3RfZWxlbWVudF9xdWVyeShtX3BsYXlC
aW4uZ2V0KCksIHF1ZXJ5KSkgewotICAgICAgICBnc3RfcXVlcnlfdW5yZWYocXVlcnkpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZ2ludDY0IHN0YXJ0LCBzdG9wOwotICAgIGdkb3Vi
bGUgZmlsbFN0YXR1cyA9IDEwMC4wOwotCi0gICAgZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19y
YW5nZShxdWVyeSwgMCwgJnN0YXJ0LCAmc3RvcCwgMCk7Ci0gICAgZ3N0X3F1ZXJ5X3VucmVmKHF1
ZXJ5KTsKLQotICAgIGlmIChzdG9wICE9IC0xKQotICAgICAgICBmaWxsU3RhdHVzID0gMTAwLjAg
KiBzdG9wIC8gR1NUX0ZPUk1BVF9QRVJDRU5UX01BWDsKLQotICAgIExPR19NRURJQV9NRVNTQUdF
KCJbQnVmZmVyaW5nXSBEb3dubG9hZCBidWZmZXIgZmlsbGVkIHVwIHRvICVmJSUiLCBmaWxsU3Rh
dHVzKTsKLQotICAgIGlmICghbV9tZWRpYUR1cmF0aW9uKQotICAgICAgICBkdXJhdGlvbkNoYW5n
ZWQoKTsKLQotICAgIC8vIFVwZGF0ZSBtYXhUaW1lTG9hZGVkIG9ubHkgaWYgdGhlIG1lZGlhIGR1
cmF0aW9uIGlzCi0gICAgLy8gYXZhaWxhYmxlLiBPdGhlcndpc2Ugd2UgY2FuJ3QgY29tcHV0ZSBp
dC4KLSAgICBpZiAobV9tZWRpYUR1cmF0aW9uKSB7Ci0gICAgICAgIGlmIChmaWxsU3RhdHVzID09
IDEwMC4wKQotICAgICAgICAgICAgbV9tYXhUaW1lTG9hZGVkID0gbV9tZWRpYUR1cmF0aW9uOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX21heFRpbWVMb2FkZWQgPSBzdGF0aWNfY2FzdDxm
bG9hdD4oKGZpbGxTdGF0dXMgKiBtX21lZGlhRHVyYXRpb24pIC8gMTAwLjApOwotICAgICAgICBM
T0dfTUVESUFfTUVTU0FHRSgiW0J1ZmZlcmluZ10gVXBkYXRlZCBtYXhUaW1lTG9hZGVkOiAlZiIs
IG1fbWF4VGltZUxvYWRlZCk7Ci0gICAgfQotCi0gICAgaWYgKGZpbGxTdGF0dXMgIT0gMTAwLjAp
IHsKLSAgICAgICAgdXBkYXRlU3RhdGVzKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAg
aWYgKG1fbWVkaWFEdXJhdGlvbikKKyAgICAgICAgbV9tYXhUaW1lTG9hZGVkID0gbV9idWZmZXJp
bmdQZXJjZW50YWdlID09IDEwMCA/IG1fbWVkaWFEdXJhdGlvbiA6IChtX21lZGlhRHVyYXRpb24g
KiBtX2J1ZmZlcmluZ1BlcmNlbnRhZ2UpIC8gMTAwLjBmOwogCi0gICAgLy8gTWVkaWEgaXMgbm93
IGZ1bGx5IGxvYWRlZC4gSXQgd2lsbCBwbGF5IGV2ZW4gaWYgbmV0d29yawotICAgIC8vIGNvbm5l
Y3Rpb24gaXMgY3V0LiBCdWZmZXJpbmcgaXMgZG9uZSwgcmVtb3ZlIHRoZSBmaWxsIHNvdXJjZQot
ICAgIC8vIGZyb20gdGhlIG1haW4gbG9vcC4KLSAgICBtX2ZpbGxUaW1lci5zdG9wKCk7Ci0gICAg
bV9zdGFydGVkQnVmZmVyaW5nID0gZmFsc2U7CiAgICAgdXBkYXRlU3RhdGVzKCk7CiB9CiAKQEAg
LTkyNSwxMSArODU0LDI3IEBAIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bWF4
VGltZUxvYWRlZCgpIGNvbnN0CiAgICAgaWYgKG1fZXJyb3JPY2N1cmVkKQogICAgICAgICByZXR1
cm4gMC4wZjsKIAotICAgIGZsb2F0IGxvYWRlZCA9IG1fbWF4VGltZUxvYWRlZDsKLSAgICBpZiAo
IWxvYWRlZCAmJiAhbV9maWxsVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgbG9hZGVkID0gZHVy
YXRpb24oKTsKLSAgICBMT0dfTUVESUFfTUVTU0FHRSgibWF4VGltZUxvYWRlZDogJWYiLCBsb2Fk
ZWQpOwotICAgIHJldHVybiBsb2FkZWQ7CisgICAgaWYgKCFtX21heFRpbWVMb2FkZWQgJiYgIWlz
TGl2ZVN0cmVhbSgpKSB7CisgICAgICAgIEdzdFF1ZXJ5KiBxdWVyeSA9IGdzdF9xdWVyeV9uZXdf
YnVmZmVyaW5nKEdTVF9GT1JNQVRfUEVSQ0VOVCk7CisgICAgICAgIGlmICghZ3N0X2VsZW1lbnRf
cXVlcnkobV9wbGF5QmluLmdldCgpLCBxdWVyeSkpIHsKKyAgICAgICAgICAgIGdzdF9xdWVyeV91
bnJlZihxdWVyeSk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorCisgICAgICAg
IGdpbnQgcGVyY2VudDsKKyAgICAgICAgZ3N0X3F1ZXJ5X3BhcnNlX2J1ZmZlcmluZ19wZXJjZW50
KHF1ZXJ5LCAwLCAmcGVyY2VudCk7CisgICAgICAgIGdzdF9xdWVyeV91bnJlZihxdWVyeSk7CisK
KyAgICAgICAgLy8gVXBkYXRpbmcgYnVmZmVyaW5nIHBlcmNlbnRhZ2UgaGVyZSBhbGxvd3MgdXMg
dG8gdXBkYXRlIG5ldHdvcmsgYW5kIHJlYWR5IHN0YXRlcworICAgICAgICAvLyBjb3JyZWN0bHkg
ZXZlbiBpZiB0aGUgZHVyYXRpb24gaXMgbm90IGtub3duLgorICAgICAgICBtX2J1ZmZlcmluZ1Bl
cmNlbnRhZ2UgPSBwZXJjZW50OworCisgICAgICAgIGlmIChtX21lZGlhRHVyYXRpb24pCisgICAg
ICAgICAgICBtX21heFRpbWVMb2FkZWQgPSBwZXJjZW50ID09IDEwMCA/IG1fbWVkaWFEdXJhdGlv
biA6IChtX21lZGlhRHVyYXRpb24gKiBwZXJjZW50KSAvIDEwMC4wZjsKKyAgICB9CisKKyAgICBM
T0dfTUVESUFfTUVTU0FHRSgibWF4VGltZUxvYWRlZDogJWYiLCBtX21heFRpbWVMb2FkZWQpOwor
ICAgIHJldHVybiBtX21heFRpbWVMb2FkZWQ7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdApAQCAtMTExMCw3ICsxMDU1LDcg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnVwZGF0ZVN0YXRlcygpCiAgICAg
ICAgIGlmIChzdGF0ZSA9PSBHU1RfU1RBVEVfUkVBRFkpIHsKICAgICAgICAgICAgIG1fcmVhZHlT
dGF0ZSA9IE1lZGlhUGxheWVyOjpIYXZlTWV0YWRhdGE7CiAgICAgICAgICAgICBtX25ldHdvcmtT
dGF0ZSA9IE1lZGlhUGxheWVyOjpFbXB0eTsKLSAgICAgICAgfSBlbHNlIGlmICgoc3RhdGUgPT0g
R1NUX1NUQVRFX05VTEwpIHx8IChtYXhUaW1lTG9hZGVkKCkgPT0gZHVyYXRpb24oKSkpIHsKKyAg
ICAgICAgfSBlbHNlIGlmICgoc3RhdGUgPT0gR1NUX1NUQVRFX05VTEwpIHx8IChtYXhUaW1lTG9h
ZGVkKCkgPT0gZHVyYXRpb24oKSB8fCBtX2J1ZmZlcmluZ1BlcmNlbnRhZ2UgPT0gMTAwKSkgewog
ICAgICAgICAgICAgbV9uZXR3b3JrU3RhdGUgPSBNZWRpYVBsYXllcjo6TG9hZGVkOwogICAgICAg
ICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OkhhdmVFbm91Z2hEYXRhOwogICAgICAg
ICB9IGVsc2UgewpAQCAtMTE2NSwxMCArMTExMCw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjp1cGRhdGVTdGF0ZXMoKQogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIG1f
cGF1c2VkID0gdHJ1ZTsKIAotICAgICAgICAvLyBJcyBvbi1kaXNrIGJ1ZmZlcmluZyBpbiBwcm9n
cmVzcz8KLSAgICAgICAgaWYgKG1fZmlsbFRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgICAgICBt
X25ldHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpMb2FkaW5nOwotCiAgICAgICAgIGlmIChtX2No
YW5naW5nUmF0ZSkgewogICAgICAgICAgICAgbV9wbGF5ZXItPnJhdGVDaGFuZ2VkKCk7CiAgICAg
ICAgICAgICBtX2NoYW5naW5nUmF0ZSA9IGZhbHNlOwpAQCAtMTMzOSw3ICsxMjgwLDYgQEAgYm9v
bCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWROZXh0TG9jYXRpb24oKQogICAgIH0K
ICAgICBtX21lZGlhTG9jYXRpb25DdXJyZW50SW5kZXgtLTsKICAgICByZXR1cm4gZmFsc2U7Ci0K
IH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmxvYWRTdGF0ZUNoYW5nZWQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDk5
YzZiMTg2NzA1NGM4MTkwOGI4ZmI5M2FkN2IzODJiMzE0ZmVkOTEuLjdhNGU2MGQ2N2IyNGQ1YWE4
YzYxOTY2MmYxNWY2YjhiNzViMjU0ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyLmgKQEAgLTcxLDcgKzcxLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
UHJlc2VydmVzUGl0Y2goYm9vbCk7CiAKICAgICB2b2lkIHNldFByZWxvYWQoTWVkaWFQbGF5ZXI6
OlByZWxvYWQpOwotICAgIHZvaWQgZmlsbFRpbWVyRmlyZWQoVGltZXI8TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyPiopOwogCiAgICAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgp
IGNvbnN0OwogICAgIGZsb2F0IG1heFRpbWVTZWVrYWJsZSgpIGNvbnN0OwpAQCAtMTQ4LDEwICsx
NDcsOCBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fcGxheWJhY2tSYXRlOwogICAgIGJvb2wgbV9l
cnJvck9jY3VyZWQ7CiAgICAgbXV0YWJsZSBnZmxvYXQgbV9tZWRpYUR1cmF0aW9uOwotICAgIGJv
b2wgbV9zdGFydGVkQnVmZmVyaW5nOwotICAgIFRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcj4gbV9maWxsVGltZXI7Ci0gICAgZmxvYXQgbV9tYXhUaW1lTG9hZGVkOwotICAgIGludCBt
X2J1ZmZlcmluZ1BlcmNlbnRhZ2U7CisgICAgbXV0YWJsZSBmbG9hdCBtX21heFRpbWVMb2FkZWQ7
CisgICAgbXV0YWJsZSBpbnQgbV9idWZmZXJpbmdQZXJjZW50YWdlOwogICAgIE1lZGlhUGxheWVy
OjpQcmVsb2FkIG1fcHJlbG9hZDsKICAgICBib29sIG1fZGVsYXlpbmdMb2FkOwogICAgIGJvb2wg
bV9tZWRpYUR1cmF0aW9uS25vd247Cg==
</data>
<flag name="review"
          id="223821"
          type_id="1"
          status="-"
          setter="kbalazs"
    />
          </attachment>
      

    </bug>

</bugzilla>