<?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>72173</bug_id>
          
          <creation_ts>2011-11-11 13:25:09 -0800</creation_ts>
          <short_desc>Pause the media element for exiting TextTrackCues when pauseOnExit is set</short_desc>
          <delta_ts>2012-02-21 15:27:54 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          <blocked>43668</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Anna Cavender">annacc</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>vcarbune</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>501040</commentid>
    <comment_count>0</comment_count>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-11-11 13:25:09 -0800</bug_when>
    <thetext>4.8.10.8 Playing the media resource: http://www.whatwg.org/specs/web-apps/current-work/#playing-the-media-resource

Specifically, &quot;When the current playback position of a media element changes...&quot; Step 7.

For more info on the pause-on-exit flag, see http://www.whatwg.org/specs/web-apps/current-work/#text-track-cue-pause-on-exit-flag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505106</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-11-17 12:37:55 -0800</bug_when>
    <thetext>&lt;rdar://problem/10464464&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560335</commentid>
    <comment_count>2</comment_count>
      <attachid>127844</attachid>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2012-02-20 13:27:22 -0800</bug_when>
    <thetext>Created attachment 127844
Code for supporting TextTrackCue pause-on-exit

Pause-on-exit flag support and a minor improvement for missed cues processing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560347</commentid>
    <comment_count>3</comment_count>
      <attachid>127844</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-02-20 13:55:19 -0800</bug_when>
    <thetext>Comment on attachment 127844
Code for supporting TextTrackCue pause-on-exit

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:1061
&gt; +    for (size_t i = 0; !m_paused &amp;&amp; i &lt; previousCues.size(); ++i) {

Nit: is there any reason to not use previousCuesSize instead of previousCues.size()?

&gt; LayoutTests/media/track/captions-webvtt/pause-on-exit.vtt:17
&gt; +ï»¿WEBVTT
&gt; +
&gt; +0
&gt; +00:00:05.000 --&gt; 00:00:05.200
&gt; +First cue
&gt; +
&gt; +1
&gt; +00:00:05.210 --&gt; 00:00:05.400
&gt; +Lorem
&gt; +
&gt; +2
&gt; +00:00:05.410 --&gt; 00:00:05.600
&gt; +ipsum
&gt; +
&gt; +3
&gt; +00:00:05.610 --&gt; 00:00:05.700
&gt; +dolor

Nit: I think the name of this file is misleading, it doesn&apos;t necessarily have anything to do with pause-on-exit.

&gt; LayoutTests/media/track/track-cues-pause-on-exit-expected.txt:15
&gt; +RUN(video.play())
&gt; +EXPECTED (video.paused == &apos;false&apos;) OK
&gt; +EXPECTED (currentCue.id == &apos;0&apos;) OK
&gt; +EXPECTED (video.paused == &apos;true&apos;) OK
&gt; +RUN(video.play())
&gt; +EXPECTED (currentCue.id == &apos;1&apos;) OK
&gt; +EXPECTED (video.paused == &apos;false&apos;) OK
&gt; +EXPECTED (currentCue.id == &apos;2&apos;) OK
&gt; +EXPECTED (video.paused == &apos;true&apos;) OK
&gt; +RUN(video.play())
&gt; +EXPECTED (currentCue.id == &apos;3&apos;) OK

Nit: I try to make it possible to understand how a test works just from the results. I think these results would be easier to understand if you log the &apos;exit&apos; event and put a blank line between test steps: 

RUN(video.play())
EXPECTED (video.paused == &apos;false&apos;) OK

EVENT(exit)
EXPECTED (currentCue.id == &apos;0&apos;) OK
EXPECTED (video.paused == &apos;true&apos;) OK
RUN(video.play())

EVENT(exit)
EXPECTED (currentCue.id == &apos;1&apos;) OK
EXPECTED (video.paused == &apos;false&apos;) OK

EVENT(exit)
EXPECTED (currentCue.id == &apos;2&apos;) OK
EXPECTED (video.paused == &apos;true&apos;) OK
RUN(video.play())

&gt; LayoutTests/media/track/track-cues-pause-on-exit.html:13
&gt; +            var currentCueNo = 0;

Nit: I don&apos;t think the abbreviation of &quot;Number&quot; is helpful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560800</commentid>
    <comment_count>4</comment_count>
      <attachid>127952</attachid>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2012-02-21 04:12:20 -0800</bug_when>
    <thetext>Created attachment 127952
Fixed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560815</commentid>
    <comment_count>5</comment_count>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2012-02-21 05:03:33 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 127844 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=127844&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElement.cpp:1061
&gt; &gt; +    for (size_t i = 0; !m_paused &amp;&amp; i &lt; previousCues.size(); ++i) {
&gt; 
&gt; Nit: is there any reason to not use previousCuesSize instead of previousCues.size()?

I&apos;m just worried about readability - maybe I should change the function call everywhere within the method? But isn&apos;t the Vector::size() function call itself cheap? It seems to be just a const method returning a member variable.

&gt; &gt; LayoutTests/media/track/captions-webvtt/pause-on-exit.vtt:17
&gt; &gt; +ï»¿WEBVTT
&gt; &gt; +
&gt; &gt; +0
&gt; &gt; +00:00:05.000 --&gt; 00:00:05.200
&gt; &gt; +First cue
&gt; &gt; +
&gt; &gt; +1
&gt; &gt; +00:00:05.210 --&gt; 00:00:05.400
&gt; &gt; +Lorem
&gt; &gt; +
&gt; &gt; +2
&gt; &gt; +00:00:05.410 --&gt; 00:00:05.600
&gt; &gt; +ipsum
&gt; &gt; +
&gt; &gt; +3
&gt; &gt; +00:00:05.610 --&gt; 00:00:05.700
&gt; &gt; +dolor
&gt; 
&gt; Nit: I think the name of this file is misleading, it doesn&apos;t necessarily have anything to do with pause-on-exit.

Indeed. Changed it to simple-captions.vtt.

&gt; &gt; LayoutTests/media/track/track-cues-pause-on-exit-expected.txt:15
&gt; &gt; +RUN(video.play())
&gt; &gt; +EXPECTED (video.paused == &apos;false&apos;) OK
&gt; &gt; +EXPECTED (currentCue.id == &apos;0&apos;) OK
&gt; &gt; +EXPECTED (video.paused == &apos;true&apos;) OK
&gt; &gt; +RUN(video.play())
&gt; &gt; +EXPECTED (currentCue.id == &apos;1&apos;) OK
&gt; &gt; +EXPECTED (video.paused == &apos;false&apos;) OK
&gt; &gt; +EXPECTED (currentCue.id == &apos;2&apos;) OK
&gt; &gt; +EXPECTED (video.paused == &apos;true&apos;) OK
&gt; &gt; +RUN(video.play())
&gt; &gt; +EXPECTED (currentCue.id == &apos;3&apos;) OK
&gt; 
&gt; Nit: I try to make it possible to understand how a test works just from the results. I think these results would be easier to understand if you log the &apos;exit&apos; event and put a blank line between test steps: 
&gt; 
&gt; RUN(video.play())
&gt; EXPECTED (video.paused == &apos;false&apos;) OK
&gt; 
&gt; EVENT(exit)
&gt; EXPECTED (currentCue.id == &apos;0&apos;) OK
&gt; EXPECTED (video.paused == &apos;true&apos;) OK
&gt; RUN(video.play())
&gt; 
&gt; EVENT(exit)
&gt; EXPECTED (currentCue.id == &apos;1&apos;) OK
&gt; EXPECTED (video.paused == &apos;false&apos;) OK
&gt; 
&gt; EVENT(exit)
&gt; EXPECTED (currentCue.id == &apos;2&apos;) OK
&gt; EXPECTED (video.paused == &apos;true&apos;) OK
&gt; RUN(video.play())
Done.

&gt; &gt; LayoutTests/media/track/track-cues-pause-on-exit.html:13
&gt; &gt; +            var currentCueNo = 0;
&gt; 
&gt; Nit: I don&apos;t think the abbreviation of &quot;Number&quot; is helpful.
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560868</commentid>
    <comment_count>6</comment_count>
      <attachid>127952</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-02-21 07:33:57 -0800</bug_when>
    <thetext>Comment on attachment 127952
Fixed patch

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

&gt; LayoutTests/ChangeLog:10
&gt; +        * media/track/captions-webvtt/pause-on-exit.vtt: Added.

You forgot to update after changing the file name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560871</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-02-21 07:37:16 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 127844 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=127844&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/html/HTMLMediaElement.cpp:1061
&gt; &gt; &gt; +    for (size_t i = 0; !m_paused &amp;&amp; i &lt; previousCues.size(); ++i) {
&gt; &gt; 
&gt; &gt; Nit: is there any reason to not use previousCuesSize instead of previousCues.size()?
&gt; 
&gt; I&apos;m just worried about readability - maybe I should change the function call everywhere within the method? But isn&apos;t the Vector::size() function call itself cheap? It seems to be just a const method returning a member variable.

I see now that most of the loops in updateActiveTextTrackCues don&apos;t cache the vector size before the loop. One way or the other, we should try to be consistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561007</commentid>
    <comment_count>8</comment_count>
      <attachid>127994</attachid>
    <who name="Victor Carbune">vcarbune</who>
    <bug_when>2012-02-21 10:38:44 -0800</bug_when>
    <thetext>Created attachment 127994
Patch with cached size of vectors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561279</commentid>
    <comment_count>9</comment_count>
      <attachid>127994</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-21 15:27:48 -0800</bug_when>
    <thetext>Comment on attachment 127994
Patch with cached size of vectors

Clearing flags on attachment: 127994

Committed r108406: &lt;http://trac.webkit.org/changeset/108406&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561280</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-21 15:27:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127844</attachid>
            <date>2012-02-20 13:27:22 -0800</date>
            <delta_ts>2012-02-21 04:12:11 -0800</delta_ts>
            <desc>Code for supporting TextTrackCue pause-on-exit</desc>
            <filename>bug-72173-20120220232719.patch</filename>
            <type>text/plain</type>
            <size>8642</size>
            <attacher name="Victor Carbune">vcarbune</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MjU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTBmMjgwOTE3MTdiYzA2
YzBhOGYyNjhkNTgwOTdkNWY5NmEzOTA5NC4uMmJmNWQ0NjZmODFiN2NkZjA4MWYxZGFlNDZhOTA1
NmU3YWNkNTFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTIwICBWaWN0
b3IgQ2FyYnVuZSAgPHZjYXJidW5lQGFkb2JlLmNvbT4KKworICAgICAgICBBZGRlZCBzdXBwb3J0
IGZvciBwYXVzZS1vbi1leGl0IGZsYWcgb24gYSBUZXh0VHJhY2tDdWUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjE3MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3RyYWNrL3RyYWNr
LWN1ZXMtcGF1c2Utb24tZXhpdC5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlQWN0aXZl
VGV4dFRyYWNrQ3Vlcyk6IEltcGxlbWVudGVkCisgICAgICAgIHN1cHBvcnQgZm9yIHBhdXNpbmcg
dGhlIHZpZGVvIGlmIHRoZSBwYXVzZS1vbi1leGl0IGZsYWcgaXMgc2V0IG9uCisgICAgICAgIGEg
Y3VlIHRoYXQgaXMgY3VycmVudGx5IGV4aXRpbmcuCisKIDIwMTItMDItMjAgIEJlbmphbWluIFBv
dWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgSlNDU1NTdHlsZURl
Y2xhcmF0aW9uIHdvcmsgZGlyZWN0bHkgd2l0aCBDU1MgUHJvcGVydHkgSUQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGE0MDkyZTFlNWE2OTc0Yjc4MjA5NjZl
N2U0N2QyNWM5NTUyYzhjMzQuLmVhN2FjNTFkYTIxNGU1ZDgyODBmZWI1MTEzMjM4YjdjNTUyMTY4
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTAwNyw3
ICsxMDA3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVBY3RpdmVUZXh0VHJhY2tD
dWVzKGZsb2F0IG1vdmllVGltZSkKICAgICAvLyBjdWVzIHdob3NlIHN0YXJ0IHRpbWVzIGFyZSBn
cmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gbGFzdCB0aW1lIGFuZCB3aG9zZQogICAgIC8vIGVuZCB0
aW1lcyBhcmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBjdXJyZW50IHBsYXliYWNrIHBvc2l0
aW9uLgogICAgIC8vIE90aGVyd2lzZSwgbGV0IG1pc3NlZCBjdWVzIGJlIGFuIGVtcHR5IGxpc3Qu
Ci0gICAgaWYgKGxhc3RUaW1lID49IDAgJiYgbV9sYXN0U2Vla1RpbWUgPD0gbGFzdFRpbWUpIHsK
KyAgICBpZiAobGFzdFRpbWUgPj0gMCAmJiBtX2xhc3RTZWVrVGltZSA8IG1vdmllVGltZSkgewog
ICAgICAgICBWZWN0b3I8Q3VlSW50ZXJ2YWxUcmVlOjpJbnRlcnZhbFR5cGU+IHBvdGVudGlhbGx5
U2tpcHBlZEN1ZXMgPQogICAgICAgICAgICAgbV9jdWVUcmVlLmFsbE92ZXJsYXBzKG1fY3VlVHJl
ZS5jcmVhdGVJbnRlcnZhbChsYXN0VGltZSwgbW92aWVUaW1lKSk7CiAKQEAgLTEwMTUsNyArMTAx
NSw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3Vlcyhm
bG9hdCBtb3ZpZVRpbWUpCiAgICAgICAgICAgICBmbG9hdCBjdWVTdGFydFRpbWUgPSBwb3RlbnRp
YWxseVNraXBwZWRDdWVzW2ldLmxvdygpOwogICAgICAgICAgICAgZmxvYXQgY3VlRW5kVGltZSA9
IHBvdGVudGlhbGx5U2tpcHBlZEN1ZXNbaV0uaGlnaCgpOwogCi0gICAgICAgICAgICBpZiAoY3Vl
U3RhcnRUaW1lID4gbGFzdFRpbWUgJiYgY3VlRW5kVGltZSA8IG1vdmllVGltZSkKKyAgICAgICAg
ICAgIC8vIENvbnNpZGVyIGN1ZXMgdGhhdCBtYXkgaGF2ZSBiZWVuIG1pc3NlZCBzaW5jZSB0aGUg
bGFzdCBzZWVrIHRpbWUuCisgICAgICAgICAgICBpZiAoY3VlU3RhcnRUaW1lID4gbWF4KG1fbGFz
dFNlZWtUaW1lLCBsYXN0VGltZSkgJiYgY3VlRW5kVGltZSA8IG1vdmllVGltZSkKICAgICAgICAg
ICAgICAgICBtaXNzZWRDdWVzLmFwcGVuZChwb3RlbnRpYWxseVNraXBwZWRDdWVzW2ldKTsKICAg
ICAgICAgfQogICAgIH0KQEAgLTEwNTIsMTEgKzEwNTMsMjIgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50Ojp1cGRhdGVBY3RpdmVUZXh0VHJhY2tDdWVzKGZsb2F0IG1vdmllVGltZSkKICAgICBpZiAo
IWFjdGl2ZVNldENoYW5nZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FKDcyMTcz
KTogNyAtIElmIHRoZSB0aW1lIHdhcyByZWFjaGVkIHRocm91Z2ggdGhlIHVzdWFsIG1vbm90b25p
YwotICAgIC8vIGluY3JlYXNlIG9mIHRoZSBjdXJyZW50IHBsYXliYWNrIHBvc2l0aW9uIGR1cmlu
ZyBub3JtYWwgcGxheWJhY2ssIGFuZAotICAgIC8vIHRoZXJlIGFyZSBjdWVzIGluIG90aGVyIGN1
ZXMgdGhhdCBoYXZlIHRoZWlyIHRleHQgdHJhY2sgY3VlIHBhdXNlLW9uLWV4aXQKLSAgICAvLyBm
bGFnIHNldCBhbmQgdGhhdCBlaXRoZXIgaGF2ZSB0aGVpciB0ZXh0IHRyYWNrIGN1ZSBhY3RpdmUg
ZmxhZyBzZXQgb3IgYXJlCi0gICAgLy8gYWxzbyBpbiBtaXNzZWQgY3VlcywgdGhlbiBpbW1lZGlh
dGVseSBwYXVzZSB0aGUgbWVkaWEgZWxlbWVudC4KKyAgICAvLyA3IC0gSWYgdGhlIHRpbWUgd2Fz
IHJlYWNoZWQgdGhyb3VnaCB0aGUgdXN1YWwgbW9ub3RvbmljIGluY3JlYXNlIG9mIHRoZQorICAg
IC8vIGN1cnJlbnQgcGxheWJhY2sgcG9zaXRpb24gZHVyaW5nIG5vcm1hbCBwbGF5YmFjaywgYW5k
IHRoZXJlIGFyZSBjdWVzIGluCisgICAgLy8gb3RoZXIgY3VlcyB0aGF0IGhhdmUgdGhlaXIgdGV4
dCB0cmFjayBjdWUgcGF1c2Utb24tZXhpIGZsYWcgc2V0IGFuZCB0aGF0CisgICAgLy8gZWl0aGVy
IGhhdmUgdGhlaXIgdGV4dCB0cmFjayBjdWUgYWN0aXZlIGZsYWcgc2V0IG9yIGFyZSBhbHNvIGlu
IG1pc3NlZAorICAgIC8vIGN1ZXMsIHRoZW4gaW1tZWRpYXRlbHkgcGF1c2UgdGhlIG1lZGlhIGVs
ZW1lbnQuCisgICAgZm9yIChzaXplX3QgaSA9IDA7ICFtX3BhdXNlZCAmJiBpIDwgcHJldmlvdXND
dWVzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChwcmV2aW91c0N1ZXNbaV0uZGF0YSgpLT5w
YXVzZU9uRXhpdCgpCisgICAgICAgICAgICAmJiBwcmV2aW91c0N1ZXNbaV0uZGF0YSgpLT5pc0Fj
dGl2ZSgpCisgICAgICAgICAgICAmJiAhY3VycmVudEN1ZXMuY29udGFpbnMocHJldmlvdXNDdWVz
W2ldKSkKKyAgICAgICAgICAgIHBhdXNlKCk7CisgICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9
IDA7ICFtX3BhdXNlZCAmJiBpIDwgbWlzc2VkQ3Vlcy5zaXplKCk7ICsraSkgeworICAgICAgICBp
ZiAobWlzc2VkQ3Vlc1tpXS5kYXRhKCktPnBhdXNlT25FeGl0KCkpCisgICAgICAgICAgICBwYXVz
ZSgpOworICAgIH0KIAogICAgIC8vIDggLSBMZXQgZXZlbnRzIGJlIGEgbGlzdCBvZiB0YXNrcywg
aW5pdGlhbGx5IGVtcHR5LiBFYWNoIHRhc2sgaW4gdGhpcwogICAgIC8vIGxpc3Qgd2lsbCBiZSBh
c3NvY2lhdGVkIHdpdGggYSB0ZXh0IHRyYWNrLCBhIHRleHQgdHJhY2sgY3VlLCBhbmQgYSB0aW1l
LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDJjZjE4NzAwN2Q1ZWM1ZjcyMTBkMjNjNWQwYzZiNmYxZDlhNGRlZjIuLjA4YTM3
ODMwZDI5ZDE4MGQxNjdhNGExYzAzZDE4MjU4ZjA3NmM4YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxMi0wMi0yMCAgVmljdG9yIENhcmJ1bmUgIDx2Y2FyYnVuZUBhZG9iZS5jb20+CisKKyAg
ICAgICAgQWRkZWQgcmVsZXZhbnQgdGVzdHMgYW5kIGZ1bmN0aW9uYWxpdHkgZm9yIHN1cHBvcnRp
bmcgcGF1c2Utb24tZXhpdAorICAgICAgICBmbGFnIGZvciBhIFRleHRUcmFja0N1ZS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxNzMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL3RyYWNr
L2NhcHRpb25zLXdlYnZ0dC9wYXVzZS1vbi1leGl0LnZ0dDogQWRkZWQuCisgICAgICAgICogbWVk
aWEvdHJhY2svdHJhY2stY3Vlcy1wYXVzZS1vbi1leGl0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogbWVkaWEvdHJhY2svdHJhY2stY3Vlcy1wYXVzZS1vbi1leGl0Lmh0bWw6IEFkZGVk
LgorCiAyMDEyLTAyLTIwICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBNYWtlIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbiB3b3JrIGRpcmVjdGx5IHdpdGgg
Q1NTIFByb3BlcnR5IElECmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9jYXB0
aW9ucy13ZWJ2dHQvcGF1c2Utb24tZXhpdC52dHQgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay9j
YXB0aW9ucy13ZWJ2dHQvcGF1c2Utb24tZXhpdC52dHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzAwODJlNDQ1OTQw
ODVmMzE5NTYwOWEzNDllMTgyODFiNzZiZTg4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9wYXVzZS1vbi1leGl0LnZ0dApAQCAtMCww
ICsxLDE3IEBACivvu79XRUJWVFQKKworMAorMDA6MDA6MDUuMDAwIC0tPiAwMDowMDowNS4yMDAK
K0ZpcnN0IGN1ZQorCisxCiswMDowMDowNS4yMTAgLS0+IDAwOjAwOjA1LjQwMAorTG9yZW0KKwor
MgorMDA6MDA6MDUuNDEwIC0tPiAwMDowMDowNS42MDAKK2lwc3VtCisKKzMKKzAwOjAwOjA1LjYx
MCAtLT4gMDA6MDA6MDUuNzAwCitkb2xvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
dHJhY2svdHJhY2stY3Vlcy1wYXVzZS1vbi1leGl0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L21lZGlhL3RyYWNrL3RyYWNrLWN1ZXMtcGF1c2Utb24tZXhpdC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjZlYWMzYWM3NjgwOWYzNzQ0NWUwYjdiNWNmNDljZmE5Njk5ODA1NwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZXMtcGF1c2Utb24tZXhp
dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGVzdHMgdGhhdCB0aGUgdmlkZW8gaXMg
cGF1c2VkIGFmdGVyIGN1ZXMgdGhhdCBoYXZlIHBhdXNlLW9uLWV4aXQgZmxhZyBhcmUgcHJvY2Vz
c2VkCisKK0VWRU5UKGNhbnBsYXl0aHJvdWdoKQorRVhQRUNURUQgKHRlc3RUcmFjay50cmFjay5j
dWVzLmxlbmd0aCA9PSAnNCcpIE9LCitSVU4odmlkZW8ucGxheSgpKQorRVhQRUNURUQgKHZpZGVv
LnBhdXNlZCA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKGN1cnJlbnRDdWUuaWQgPT0gJzAnKSBP
SworRVhQRUNURUQgKHZpZGVvLnBhdXNlZCA9PSAndHJ1ZScpIE9LCitSVU4odmlkZW8ucGxheSgp
KQorRVhQRUNURUQgKGN1cnJlbnRDdWUuaWQgPT0gJzEnKSBPSworRVhQRUNURUQgKHZpZGVvLnBh
dXNlZCA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKGN1cnJlbnRDdWUuaWQgPT0gJzInKSBPSwor
RVhQRUNURUQgKHZpZGVvLnBhdXNlZCA9PSAndHJ1ZScpIE9LCitSVU4odmlkZW8ucGxheSgpKQor
RVhQRUNURUQgKGN1cnJlbnRDdWUuaWQgPT0gJzMnKSBPSworRVhQRUNURUQgKHZpZGVvLnBhdXNl
ZCA9PSAnZmFsc2UnKSBPSworRVZFTlQoZW5kZWQpCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWVzLXBhdXNlLW9uLWV4aXQuaHRtbCBi
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZXMtcGF1c2Utb24tZXhpdC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZiNGNmMWQyOTdhN2ZiZjU5YzkxZjgxM2YwM2Y5MDEyZjAxYTViZjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWVzLXBhdXNlLW9u
LWV4aXQuaHRtbApAQCAtMCwwICsxLDc2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9
InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KKworICAgICAgICA8c2NyaXB0IHNyYz0uLi9t
ZWRpYS1maWxlLmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0uLi92aWRlby10ZXN0
LmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgdmFyIHZpZGVvQ2Fu
UGxheVRocm91Z2ggPSBmYWxzZTsKKyAgICAgICAgICAgIHZhciB0cmFja0xvYWRlZCA9IGZhbHNl
OworCisgICAgICAgICAgICB2YXIgY3VycmVudEN1ZTsKKyAgICAgICAgICAgIHZhciBjdXJyZW50
Q3VlTm8gPSAwOworCisgICAgICAgICAgICBmdW5jdGlvbiBydW5UZXN0cygpCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgaWYgKCF0cmFja0xvYWRlZCB8fCAhdmlkZW9DYW5QbGF5VGhy
b3VnaCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgdGVz
dFRyYWNrID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RUcmFjayIpOworICAgICAgICAg
ICAgICAgIHRlc3RFeHBlY3RlZCgidGVzdFRyYWNrLnRyYWNrLmN1ZXMubGVuZ3RoIiwgNCk7CisK
KyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RUcmFjay50cmFjay5jdWVz
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RUcmFjay50cmFjay5jdWVz
W2ldLnBhdXNlT25FeGl0ID0gKGkgJSAyID09IDApOworICAgICAgICAgICAgICAgICAgICB0ZXN0
VHJhY2sudHJhY2suY3Vlc1tpXS5hZGRFdmVudExpc3RlbmVyKCdleGl0JywgY3VlRXhpdGVkKTsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBydW4oInZpZGVvLnBsYXkoKSIp
OworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ucGF1c2VkIiwgZmFsc2UpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBjdWVFeGl0ZWQoZXZ0KQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIGN1cnJlbnRDdWUgPSBldnQudGFyZ2V0OworCisg
ICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJjdXJyZW50Q3VlLmlkIiwgY3VycmVudEN1ZU5v
KTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLnBhdXNlZCIsIGN1cnJlbnRD
dWVObyAlIDIgPT0gMCk7CisKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudEN1ZU5vICUgMiA9
PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJ1bigidmlkZW8ucGxheSgpIik7CisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY3VycmVudEN1ZU5vKys7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGxvYWRlZCgpCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgdHJhY2tMb2FkZWQgPSB0cnVlOworCisgICAgICAgICAgICAgICAgcnVuVGVz
dHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gYm9keUxvYWRlZCgp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworICAg
ICAgICAgICAgICAgIHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgIi4uL2NvbnRl
bnQvdGVzdCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ2Vu
ZGVkJywgZW5kVGVzdCk7CisKKyAgICAgICAgICAgIHdhaXRGb3JFdmVudCgnY2FucGxheXRocm91
Z2gnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB2aWRlby5jdXJyZW50VGltZSA9IDQu
NzA7CisgICAgICAgICAgICAgICAgdmlkZW9DYW5QbGF5VGhyb3VnaCA9IHRydWU7CisKKyAgICAg
ICAgICAgICAgICBydW5UZXN0cygpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgPC9zY3Jp
cHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0iYm9keUxvYWRlZCgpIj4KKyAgICAg
ICAgPHA+VGVzdHMgdGhhdCB0aGUgdmlkZW8gaXMgcGF1c2VkIGFmdGVyIGN1ZXMgdGhhdCBoYXZl
IHBhdXNlLW9uLWV4aXQgZmxhZyBhcmUgcHJvY2Vzc2VkPC9wPgorICAgICAgICA8dmlkZW8gY29u
dHJvbHM+CisgICAgICAgICAgICA8dHJhY2sgaWQ9InRlc3RUcmFjayIgc3JjPSJjYXB0aW9ucy13
ZWJ2dHQvcGF1c2Utb24tZXhpdC52dHQiIG9ubG9hZD0ibG9hZGVkKCkiIGRlZmF1bHQ+CisgICAg
ICAgIDwvdmlkZW8+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127952</attachid>
            <date>2012-02-21 04:12:20 -0800</date>
            <delta_ts>2012-02-21 10:38:34 -0800</delta_ts>
            <desc>Fixed patch</desc>
            <filename>bug-72173-20120221141217.patch</filename>
            <type>text/plain</type>
            <size>8804</size>
            <attacher name="Victor Carbune">vcarbune</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyZTgzZjNkYjg0ZDkz
ZDNlZTRhMjY0MGUyMTc0MDg5N2I2ZmRlNi4uZWQ4ZTAzNWJmNGJkNWIzOTBmY2I2ZDExZjZhYzRk
YTAwZmIyNDYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTIxICBWaWN0
b3IgQ2FyYnVuZSAgPHZjYXJidW5lQGFkb2JlLmNvbT4KKworICAgICAgICBBZGRlZCBzdXBwb3J0
IGZvciBwYXVzZS1vbi1leGl0IGZsYWcgb24gYSBUZXh0VHJhY2tDdWUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjE3MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3RyYWNrL3RyYWNr
LWN1ZXMtcGF1c2Utb24tZXhpdC5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlQWN0aXZl
VGV4dFRyYWNrQ3Vlcyk6IEltcGxlbWVudGVkCisgICAgICAgIHN1cHBvcnQgZm9yIHBhdXNpbmcg
dGhlIHZpZGVvIGlmIHRoZSBwYXVzZS1vbi1leGl0IGZsYWcgaXMgc2V0IG9uCisgICAgICAgIGEg
Y3VlIHRoYXQgaXMgY3VycmVudGx5IGV4aXRpbmcuCisKIDIwMTItMDItMjEgIEFuZHJhcyBCZWNz
aSAgPGFuZHJhcy5iZWNzaUBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBDbGVhbi11cCBwcm9q
ZWN0IGZpbGUgYWZ0ZXIgcjEwODMxMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKaW5kZXggYTQwOTJlMWU1YTY5NzRiNzgyMDk2NmU3ZTQ3ZDI1Yzk1NTJjOGMzNC4uYWU2
MjAwZTFkMTdiMGQ5ODBmYTRiOTdhOTU3ZDg3OGMyOTA5NGIxOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xMDA3LDcgKzEwMDcsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMoZmxvYXQgbW92aWVUaW1lKQog
ICAgIC8vIGN1ZXMgd2hvc2Ugc3RhcnQgdGltZXMgYXJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0
byBsYXN0IHRpbWUgYW5kIHdob3NlCiAgICAgLy8gZW5kIHRpbWVzIGFyZSBsZXNzIHRoYW4gb3Ig
ZXF1YWwgdG8gdGhlIGN1cnJlbnQgcGxheWJhY2sgcG9zaXRpb24uCiAgICAgLy8gT3RoZXJ3aXNl
LCBsZXQgbWlzc2VkIGN1ZXMgYmUgYW4gZW1wdHkgbGlzdC4KLSAgICBpZiAobGFzdFRpbWUgPj0g
MCAmJiBtX2xhc3RTZWVrVGltZSA8PSBsYXN0VGltZSkgeworICAgIGlmIChsYXN0VGltZSA+PSAw
ICYmIG1fbGFzdFNlZWtUaW1lIDwgbW92aWVUaW1lKSB7CiAgICAgICAgIFZlY3RvcjxDdWVJbnRl
cnZhbFRyZWU6OkludGVydmFsVHlwZT4gcG90ZW50aWFsbHlTa2lwcGVkQ3VlcyA9CiAgICAgICAg
ICAgICBtX2N1ZVRyZWUuYWxsT3ZlcmxhcHMobV9jdWVUcmVlLmNyZWF0ZUludGVydmFsKGxhc3RU
aW1lLCBtb3ZpZVRpbWUpKTsKIApAQCAtMTAxNSw3ICsxMDE1LDggQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojp1cGRhdGVBY3RpdmVUZXh0VHJhY2tDdWVzKGZsb2F0IG1vdmllVGltZSkKICAgICAg
ICAgICAgIGZsb2F0IGN1ZVN0YXJ0VGltZSA9IHBvdGVudGlhbGx5U2tpcHBlZEN1ZXNbaV0ubG93
KCk7CiAgICAgICAgICAgICBmbG9hdCBjdWVFbmRUaW1lID0gcG90ZW50aWFsbHlTa2lwcGVkQ3Vl
c1tpXS5oaWdoKCk7CiAKLSAgICAgICAgICAgIGlmIChjdWVTdGFydFRpbWUgPiBsYXN0VGltZSAm
JiBjdWVFbmRUaW1lIDwgbW92aWVUaW1lKQorICAgICAgICAgICAgLy8gQ29uc2lkZXIgY3VlcyB0
aGF0IG1heSBoYXZlIGJlZW4gbWlzc2VkIHNpbmNlIHRoZSBsYXN0IHNlZWsgdGltZS4KKyAgICAg
ICAgICAgIGlmIChjdWVTdGFydFRpbWUgPiBtYXgobV9sYXN0U2Vla1RpbWUsIGxhc3RUaW1lKSAm
JiBjdWVFbmRUaW1lIDwgbW92aWVUaW1lKQogICAgICAgICAgICAgICAgIG1pc3NlZEN1ZXMuYXBw
ZW5kKHBvdGVudGlhbGx5U2tpcHBlZEN1ZXNbaV0pOwogICAgICAgICB9CiAgICAgfQpAQCAtMTA1
MiwxMSArMTA1MywyMiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZUFjdGl2ZVRleHRU
cmFja0N1ZXMoZmxvYXQgbW92aWVUaW1lKQogICAgIGlmICghYWN0aXZlU2V0Q2hhbmdlZCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUUoNzIxNzMpOiA3IC0gSWYgdGhlIHRpbWUgd2Fz
IHJlYWNoZWQgdGhyb3VnaCB0aGUgdXN1YWwgbW9ub3RvbmljCi0gICAgLy8gaW5jcmVhc2Ugb2Yg
dGhlIGN1cnJlbnQgcGxheWJhY2sgcG9zaXRpb24gZHVyaW5nIG5vcm1hbCBwbGF5YmFjaywgYW5k
Ci0gICAgLy8gdGhlcmUgYXJlIGN1ZXMgaW4gb3RoZXIgY3VlcyB0aGF0IGhhdmUgdGhlaXIgdGV4
dCB0cmFjayBjdWUgcGF1c2Utb24tZXhpdAotICAgIC8vIGZsYWcgc2V0IGFuZCB0aGF0IGVpdGhl
ciBoYXZlIHRoZWlyIHRleHQgdHJhY2sgY3VlIGFjdGl2ZSBmbGFnIHNldCBvciBhcmUKLSAgICAv
LyBhbHNvIGluIG1pc3NlZCBjdWVzLCB0aGVuIGltbWVkaWF0ZWx5IHBhdXNlIHRoZSBtZWRpYSBl
bGVtZW50LgorICAgIC8vIDcgLSBJZiB0aGUgdGltZSB3YXMgcmVhY2hlZCB0aHJvdWdoIHRoZSB1
c3VhbCBtb25vdG9uaWMgaW5jcmVhc2Ugb2YgdGhlCisgICAgLy8gY3VycmVudCBwbGF5YmFjayBw
b3NpdGlvbiBkdXJpbmcgbm9ybWFsIHBsYXliYWNrLCBhbmQgdGhlcmUgYXJlIGN1ZXMgaW4KKyAg
ICAvLyBvdGhlciBjdWVzIHRoYXQgaGF2ZSB0aGVpciB0ZXh0IHRyYWNrIGN1ZSBwYXVzZS1vbi1l
eGkgZmxhZyBzZXQgYW5kIHRoYXQKKyAgICAvLyBlaXRoZXIgaGF2ZSB0aGVpciB0ZXh0IHRyYWNr
IGN1ZSBhY3RpdmUgZmxhZyBzZXQgb3IgYXJlIGFsc28gaW4gbWlzc2VkCisgICAgLy8gY3Vlcywg
dGhlbiBpbW1lZGlhdGVseSBwYXVzZSB0aGUgbWVkaWEgZWxlbWVudC4KKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgIW1fcGF1c2VkICYmIGkgPCBwcmV2aW91c0N1ZXNTaXplOyArK2kpIHsKKyAgICAg
ICAgaWYgKHByZXZpb3VzQ3Vlc1tpXS5kYXRhKCktPnBhdXNlT25FeGl0KCkKKyAgICAgICAgICAg
ICYmIHByZXZpb3VzQ3Vlc1tpXS5kYXRhKCktPmlzQWN0aXZlKCkKKyAgICAgICAgICAgICYmICFj
dXJyZW50Q3Vlcy5jb250YWlucyhwcmV2aW91c0N1ZXNbaV0pKQorICAgICAgICAgICAgcGF1c2Uo
KTsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgIW1fcGF1c2VkICYmIGkgPCBtaXNz
ZWRDdWVzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChtaXNzZWRDdWVzW2ldLmRhdGEoKS0+
cGF1c2VPbkV4aXQoKSkKKyAgICAgICAgICAgIHBhdXNlKCk7CisgICAgfQogCiAgICAgLy8gOCAt
IExldCBldmVudHMgYmUgYSBsaXN0IG9mIHRhc2tzLCBpbml0aWFsbHkgZW1wdHkuIEVhY2ggdGFz
ayBpbiB0aGlzCiAgICAgLy8gbGlzdCB3aWxsIGJlIGFzc29jaWF0ZWQgd2l0aCBhIHRleHQgdHJh
Y2ssIGEgdGV4dCB0cmFjayBjdWUsIGFuZCBhIHRpbWUsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDY2ZjMyNjUxZjkzNjk1
MGUzYWU1MDJlMGRkOTRjNGY4NDA0MjUxYS4uMDk5ODY0NjNkNzg1YTQxM2Q1MTAzNTRlMjUzYTY4
M2RmM2JiMmQ3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAyLTIxICBWaWN0b3IgQ2Fy
YnVuZSAgPHZjYXJidW5lQGFkb2JlLmNvbT4KKworICAgICAgICBBZGRlZCByZWxldmFudCB0ZXN0
cyBhbmQgZnVuY3Rpb25hbGl0eSBmb3Igc3VwcG9ydGluZyBwYXVzZS1vbi1leGl0CisgICAgICAg
IGZsYWcgZm9yIGEgVGV4dFRyYWNrQ3VlLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03MjE3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L3BhdXNlLW9u
LWV4aXQudnR0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jdWVzLXBhdXNl
LW9uLWV4aXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFj
ay1jdWVzLXBhdXNlLW9uLWV4aXQuaHRtbDogQWRkZWQuCisKIDIwMTItMDItMTcgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIG1l
ZGlhL1czQyBmYWlsdXJlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svY2Fw
dGlvbnMtd2VidnR0L3NpbXBsZS1jYXB0aW9ucy52dHQgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay9jYXB0aW9ucy13ZWJ2dHQvc2ltcGxlLWNhcHRpb25zLnZ0dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDA4MmU0
NDU5NDA4NWYzMTk1NjA5YTM0OWUxODI4MWI3NmJlODg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L3NpbXBsZS1jYXB0aW9ucy52dHQK
QEAgLTAsMCArMSwxNyBAQAor77u/V0VCVlRUCisKKzAKKzAwOjAwOjA1LjAwMCAtLT4gMDA6MDA6
MDUuMjAwCitGaXJzdCBjdWUKKworMQorMDA6MDA6MDUuMjEwIC0tPiAwMDowMDowNS40MDAKK0xv
cmVtCisKKzIKKzAwOjAwOjA1LjQxMCAtLT4gMDA6MDA6MDUuNjAwCitpcHN1bQorCiszCiswMDow
MDowNS42MTAgLS0+IDAwOjAwOjA1LjcwMAorZG9sb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL3RyYWNrL3RyYWNrLWN1ZXMtcGF1c2Utb24tZXhpdC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWVzLXBhdXNlLW9uLWV4aXQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhlZWY1MGFmNjFjOThlYzFlMzkzOTQzMTVmMzQwZWRhN2NiOTM0ZDEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWVzLXBhdXNl
LW9uLWV4aXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjggQEAKK1Rlc3RzIHRoYXQgdGhlIHZp
ZGVvIGlzIHBhdXNlZCBhZnRlciBjdWVzIHRoYXQgaGF2ZSBwYXVzZS1vbi1leGl0IGZsYWcgYXJl
IHByb2Nlc3NlZAorCitFVkVOVChjYW5wbGF5dGhyb3VnaCkKK0VYUEVDVEVEICh0ZXN0VHJhY2su
dHJhY2suY3Vlcy5sZW5ndGggPT0gJzQnKSBPSworCitSVU4odmlkZW8ucGxheSgpKQorRVhQRUNU
RUQgKHZpZGVvLnBhdXNlZCA9PSAnZmFsc2UnKSBPSworCitFVkVOVChleGl0KQorRVhQRUNURUQg
KGN1cnJlbnRDdWUuaWQgPT0gJzAnKSBPSworRVhQRUNURUQgKHZpZGVvLnBhdXNlZCA9PSAndHJ1
ZScpIE9LCitSVU4odmlkZW8ucGxheSgpKQorCitFVkVOVChleGl0KQorRVhQRUNURUQgKGN1cnJl
bnRDdWUuaWQgPT0gJzEnKSBPSworRVhQRUNURUQgKHZpZGVvLnBhdXNlZCA9PSAnZmFsc2UnKSBP
SworCitFVkVOVChleGl0KQorRVhQRUNURUQgKGN1cnJlbnRDdWUuaWQgPT0gJzInKSBPSworRVhQ
RUNURUQgKHZpZGVvLnBhdXNlZCA9PSAndHJ1ZScpIE9LCitSVU4odmlkZW8ucGxheSgpKQorCitF
VkVOVChleGl0KQorRVhQRUNURUQgKGN1cnJlbnRDdWUuaWQgPT0gJzMnKSBPSworRVhQRUNURUQg
KHZpZGVvLnBhdXNlZCA9PSAnZmFsc2UnKSBPSworRVZFTlQoZW5kZWQpCitFTkQgT0YgVEVTVAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWVzLXBhdXNlLW9u
LWV4aXQuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZXMtcGF1c2Utb24t
ZXhpdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyOGNmOTZiZjY2MjA2ZDE3OTRjOTczMjgxM2ZlNjBiNmJh
MDRhM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1j
dWVzLXBhdXNlLW9uLWV4aXQuaHRtbApAQCAtMCwwICsxLDgxIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5
cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KKworICAgICAgICA8c2Ny
aXB0IHNyYz0uLi9tZWRpYS1maWxlLmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0u
Li92aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAg
dmFyIHZpZGVvQ2FuUGxheVRocm91Z2ggPSBmYWxzZTsKKyAgICAgICAgICAgIHZhciB0cmFja0xv
YWRlZCA9IGZhbHNlOworCisgICAgICAgICAgICB2YXIgY3VycmVudEN1ZTsKKyAgICAgICAgICAg
IHZhciBjdXJyZW50Q3VlTnVtYmVyID0gMDsKKworICAgICAgICAgICAgZnVuY3Rpb24gcnVuVGVz
dHMoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICghdHJhY2tMb2FkZWQgfHwg
IXZpZGVvQ2FuUGxheVRocm91Z2gpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICAgICAgICAgIHRlc3RUcmFjayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0VHJh
Y2siKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInRlc3RUcmFjay50cmFjay5jdWVz
Lmxlbmd0aCIsIDQpOworCisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKworICAg
ICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdFRyYWNrLnRyYWNrLmN1ZXMubGVu
Z3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFRyYWNrLnRyYWNrLmN1ZXNbaV0u
cGF1c2VPbkV4aXQgPSAoaSAlIDIgPT0gMCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RUcmFj
ay50cmFjay5jdWVzW2ldLmFkZEV2ZW50TGlzdGVuZXIoJ2V4aXQnLCBjdWVFeGl0ZWQpOworICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJ1bigidmlkZW8ucGxheSgpIik7Cisg
ICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5wYXVzZWQiLCBmYWxzZSk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGN1ZUV4aXRlZChldnQpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgY3VycmVudEN1ZSA9IGV2dC50YXJnZXQ7CisKKyAgICAg
ICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0
ZSgiRVZFTlQoIitldnQudHlwZSsiKSIpOworCisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCJjdXJyZW50Q3VlLmlkIiwgY3VycmVudEN1ZU51bWJlcik7CisgICAgICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCJ2aWRlby5wYXVzZWQiLCBjdXJyZW50Q3VlTnVtYmVyICUgMiA9PSAwKTsKKwor
ICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Q3VlTnVtYmVyICUgMiA9PSAwKSB7CisgICAgICAg
ICAgICAgICAgICAgIHJ1bigidmlkZW8ucGxheSgpIik7CisgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgY3VycmVudEN1ZU51bWJlcisrOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBmdW5jdGlvbiBsb2FkZWQoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IHRyYWNrTG9hZGVkID0gdHJ1ZTsKKworICAgICAgICAgICAgICAgIHJ1blRlc3RzKCk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGJvZHlMb2FkZWQoKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgICAgICAg
ICB2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICIuLi9jb250ZW50L3Rlc3QiKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdlbmRlZCcsIGVuZFRl
c3QpOworCisgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ2NhbnBsYXl0aHJvdWdoJywgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgdmlkZW8uY3VycmVudFRpbWUgPSA0LjcwOworICAgICAg
ICAgICAgICAgIHZpZGVvQ2FuUGxheVRocm91Z2ggPSB0cnVlOworCisgICAgICAgICAgICAgICAg
cnVuVGVzdHMoKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgIDwvc2NyaXB0PgorICAgIDwv
aGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9ImJvZHlMb2FkZWQoKSI+CisgICAgICAgIDxwPlRlc3Rz
IHRoYXQgdGhlIHZpZGVvIGlzIHBhdXNlZCBhZnRlciBjdWVzIHRoYXQgaGF2ZSBwYXVzZS1vbi1l
eGl0IGZsYWcgYXJlIHByb2Nlc3NlZDwvcD4KKyAgICAgICAgPHZpZGVvIGNvbnRyb2xzPgorICAg
ICAgICAgICAgPHRyYWNrIGlkPSJ0ZXN0VHJhY2siIHNyYz0iY2FwdGlvbnMtd2VidnR0L3NpbXBs
ZS1jYXB0aW9ucy52dHQiIG9ubG9hZD0ibG9hZGVkKCkiIGRlZmF1bHQ+CisgICAgICAgIDwvdmlk
ZW8+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127994</attachid>
            <date>2012-02-21 10:38:44 -0800</date>
            <delta_ts>2012-02-21 15:27:48 -0800</delta_ts>
            <desc>Patch with cached size of vectors</desc>
            <filename>bug-72173-20120221203841.patch</filename>
            <type>text/plain</type>
            <size>12177</size>
            <attacher name="Victor Carbune">vcarbune</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FlMTYyZWQzMzNkNDBj
ZTFmZDgzZTJmYWMyODg0ZmM2ZDczZDBjNy4uNDU5YWIwYWI5YjY3YWY2N2VlMzI0NDgxMzM2M2I2
MmQzMTFjYjBlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAyLTIxICBWaWN0
b3IgQ2FyYnVuZSAgPHZjYXJidW5lQGFkb2JlLmNvbT4KKworICAgICAgICBBZGRlZCBzdXBwb3J0
IGZvciBwYXVzZS1vbi1leGl0IGZsYWcgb24gYSBUZXh0VHJhY2tDdWUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjE3MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3RyYWNrL3RyYWNr
LWN1ZXMtcGF1c2Utb24tZXhpdC5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlQWN0aXZl
VGV4dFRyYWNrQ3Vlcyk6IEltcGxlbWVudGVkCisgICAgICAgIHN1cHBvcnQgZm9yIHBhdXNpbmcg
dGhlIHZpZGVvIGlmIHRoZSBwYXVzZS1vbi1leGl0IGZsYWcgaXMgc2V0IG9uCisgICAgICAgIGEg
Y3VlIHRoYXQgaXMgY3VycmVudGx5IGV4aXRpbmcuCisKIDIwMTItMDItMjEgICdQYXZlbCBGZWxk
bWFuJyAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgTm90IHJldmlld2VkOiBmaXhp
bmcgTWFjIGJ1aWxkICh0YWtlIDIpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKaW5kZXggYTQwOTJlMWU1YTY5NzRiNzgyMDk2NmU3ZTQ3ZDI1Yzk1NTJjOGMzNC4uNTMy
YzBmOWE4N2VkZGZkYTU0OGRkYjk1OGY2MjBmM2I3NWU5YmIwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xMDA3LDcgKzEwMDcsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMoZmxvYXQgbW92aWVUaW1lKQog
ICAgIC8vIGN1ZXMgd2hvc2Ugc3RhcnQgdGltZXMgYXJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0
byBsYXN0IHRpbWUgYW5kIHdob3NlCiAgICAgLy8gZW5kIHRpbWVzIGFyZSBsZXNzIHRoYW4gb3Ig
ZXF1YWwgdG8gdGhlIGN1cnJlbnQgcGxheWJhY2sgcG9zaXRpb24uCiAgICAgLy8gT3RoZXJ3aXNl
LCBsZXQgbWlzc2VkIGN1ZXMgYmUgYW4gZW1wdHkgbGlzdC4KLSAgICBpZiAobGFzdFRpbWUgPj0g
MCAmJiBtX2xhc3RTZWVrVGltZSA8PSBsYXN0VGltZSkgeworICAgIGlmIChsYXN0VGltZSA+PSAw
ICYmIG1fbGFzdFNlZWtUaW1lIDwgbW92aWVUaW1lKSB7CiAgICAgICAgIFZlY3RvcjxDdWVJbnRl
cnZhbFRyZWU6OkludGVydmFsVHlwZT4gcG90ZW50aWFsbHlTa2lwcGVkQ3VlcyA9CiAgICAgICAg
ICAgICBtX2N1ZVRyZWUuYWxsT3ZlcmxhcHMobV9jdWVUcmVlLmNyZWF0ZUludGVydmFsKGxhc3RU
aW1lLCBtb3ZpZVRpbWUpKTsKIApAQCAtMTAxNSw3ICsxMDE1LDggQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojp1cGRhdGVBY3RpdmVUZXh0VHJhY2tDdWVzKGZsb2F0IG1vdmllVGltZSkKICAgICAg
ICAgICAgIGZsb2F0IGN1ZVN0YXJ0VGltZSA9IHBvdGVudGlhbGx5U2tpcHBlZEN1ZXNbaV0ubG93
KCk7CiAgICAgICAgICAgICBmbG9hdCBjdWVFbmRUaW1lID0gcG90ZW50aWFsbHlTa2lwcGVkQ3Vl
c1tpXS5oaWdoKCk7CiAKLSAgICAgICAgICAgIGlmIChjdWVTdGFydFRpbWUgPiBsYXN0VGltZSAm
JiBjdWVFbmRUaW1lIDwgbW92aWVUaW1lKQorICAgICAgICAgICAgLy8gQ29uc2lkZXIgY3VlcyB0
aGF0IG1heSBoYXZlIGJlZW4gbWlzc2VkIHNpbmNlIHRoZSBsYXN0IHNlZWsgdGltZS4KKyAgICAg
ICAgICAgIGlmIChjdWVTdGFydFRpbWUgPiBtYXgobV9sYXN0U2Vla1RpbWUsIGxhc3RUaW1lKSAm
JiBjdWVFbmRUaW1lIDwgbW92aWVUaW1lKQogICAgICAgICAgICAgICAgIG1pc3NlZEN1ZXMuYXBw
ZW5kKHBvdGVudGlhbGx5U2tpcHBlZEN1ZXNbaV0pOwogICAgICAgICB9CiAgICAgfQpAQCAtMTAz
MywxNyArMTAzNCwyMCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZUFjdGl2ZVRleHRU
cmFja0N1ZXMoZmxvYXQgbW92aWVUaW1lKQogICAgIGlmIChtX2xhc3RTZWVrVGltZSA8PSBsYXN0
VGltZSkKICAgICAgICAgc2NoZWR1bGVUaW1ldXBkYXRlRXZlbnQoZmFsc2UpOwogCisgICAgLy8g
RXhwbGljaXRseSBjYWNoZSB2ZWN0b3Igc2l6ZXMsIGFzIHRoZWlyIGNvbnRlbnQgaXMgY29uc3Rh
bnQgZnJvbSBoZXJlLgorICAgIHNpemVfdCBjdXJyZW50Q3Vlc1NpemUgPSBjdXJyZW50Q3Vlcy5z
aXplKCk7CisgICAgc2l6ZV90IG1pc3NlZEN1ZXNTaXplID0gbWlzc2VkQ3Vlcy5zaXplKCk7Cisg
ICAgc2l6ZV90IHByZXZpb3VzQ3Vlc1NpemUgPSBwcmV2aW91c0N1ZXMuc2l6ZSgpOworCiAgICAg
Ly8gNiAtIElmIGFsbCBvZiB0aGUgY3VlcyBpbiBjdXJyZW50IGN1ZXMgaGF2ZSB0aGVpciB0ZXh0
IHRyYWNrIGN1ZSBhY3RpdmUKICAgICAvLyBmbGFnIHNldCwgbm9uZSBvZiB0aGUgY3VlcyBpbiBv
dGhlciBjdWVzIGhhdmUgdGhlaXIgdGV4dCB0cmFjayBjdWUgYWN0aXZlCiAgICAgLy8gZmxhZyBz
ZXQsIGFuZCBtaXNzZWQgY3VlcyBpcyBlbXB0eSwgdGhlbiBhYm9ydCB0aGVzZSBzdGVwcy4KLSAg
ICBib29sIGFjdGl2ZVNldENoYW5nZWQgPSBtaXNzZWRDdWVzLnNpemUoKTsKKyAgICBib29sIGFj
dGl2ZVNldENoYW5nZWQgPSBtaXNzZWRDdWVzU2l6ZTsKIAotICAgIHNpemVfdCBwcmV2aW91c0N1
ZXNTaXplID0gcHJldmlvdXNDdWVzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgIWFj
dGl2ZVNldENoYW5nZWQgJiYgaSA8IHByZXZpb3VzQ3Vlc1NpemU7ICsraSkKICAgICAgICAgaWYg
KCFjdXJyZW50Q3Vlcy5jb250YWlucyhwcmV2aW91c0N1ZXNbaV0pICYmIHByZXZpb3VzQ3Vlc1tp
XS5kYXRhKCktPmlzQWN0aXZlKCkpCiAgICAgICAgICAgICBhY3RpdmVTZXRDaGFuZ2VkID0gdHJ1
ZTsKIAotICAgIHNpemVfdCBjdXJyZW50Q3Vlc1NpemUgPSBjdXJyZW50Q3Vlcy5zaXplKCk7CiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7ICFhY3RpdmVTZXRDaGFuZ2VkICYmIGkgPCBjdXJyZW50Q3Vl
c1NpemU7ICsraSkgewogICAgICAgICBpZiAoIWN1cnJlbnRDdWVzW2ldLmRhdGEoKS0+aXNBY3Rp
dmUoKSkKICAgICAgICAgICAgIGFjdGl2ZVNldENoYW5nZWQgPSB0cnVlOwpAQCAtMTA1MiwxMSAr
MTA1NiwyMiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1
ZXMoZmxvYXQgbW92aWVUaW1lKQogICAgIGlmICghYWN0aXZlU2V0Q2hhbmdlZCkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgLy8gRklYTUUoNzIxNzMpOiA3IC0gSWYgdGhlIHRpbWUgd2FzIHJlYWNo
ZWQgdGhyb3VnaCB0aGUgdXN1YWwgbW9ub3RvbmljCi0gICAgLy8gaW5jcmVhc2Ugb2YgdGhlIGN1
cnJlbnQgcGxheWJhY2sgcG9zaXRpb24gZHVyaW5nIG5vcm1hbCBwbGF5YmFjaywgYW5kCi0gICAg
Ly8gdGhlcmUgYXJlIGN1ZXMgaW4gb3RoZXIgY3VlcyB0aGF0IGhhdmUgdGhlaXIgdGV4dCB0cmFj
ayBjdWUgcGF1c2Utb24tZXhpdAotICAgIC8vIGZsYWcgc2V0IGFuZCB0aGF0IGVpdGhlciBoYXZl
IHRoZWlyIHRleHQgdHJhY2sgY3VlIGFjdGl2ZSBmbGFnIHNldCBvciBhcmUKLSAgICAvLyBhbHNv
IGluIG1pc3NlZCBjdWVzLCB0aGVuIGltbWVkaWF0ZWx5IHBhdXNlIHRoZSBtZWRpYSBlbGVtZW50
LgorICAgIC8vIDcgLSBJZiB0aGUgdGltZSB3YXMgcmVhY2hlZCB0aHJvdWdoIHRoZSB1c3VhbCBt
b25vdG9uaWMgaW5jcmVhc2Ugb2YgdGhlCisgICAgLy8gY3VycmVudCBwbGF5YmFjayBwb3NpdGlv
biBkdXJpbmcgbm9ybWFsIHBsYXliYWNrLCBhbmQgdGhlcmUgYXJlIGN1ZXMgaW4KKyAgICAvLyBv
dGhlciBjdWVzIHRoYXQgaGF2ZSB0aGVpciB0ZXh0IHRyYWNrIGN1ZSBwYXVzZS1vbi1leGkgZmxh
ZyBzZXQgYW5kIHRoYXQKKyAgICAvLyBlaXRoZXIgaGF2ZSB0aGVpciB0ZXh0IHRyYWNrIGN1ZSBh
Y3RpdmUgZmxhZyBzZXQgb3IgYXJlIGFsc28gaW4gbWlzc2VkCisgICAgLy8gY3VlcywgdGhlbiBp
bW1lZGlhdGVseSBwYXVzZSB0aGUgbWVkaWEgZWxlbWVudC4KKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgIW1fcGF1c2VkICYmIGkgPCBwcmV2aW91c0N1ZXNTaXplOyArK2kpIHsKKyAgICAgICAgaWYg
KHByZXZpb3VzQ3Vlc1tpXS5kYXRhKCktPnBhdXNlT25FeGl0KCkKKyAgICAgICAgICAgICYmIHBy
ZXZpb3VzQ3Vlc1tpXS5kYXRhKCktPmlzQWN0aXZlKCkKKyAgICAgICAgICAgICYmICFjdXJyZW50
Q3Vlcy5jb250YWlucyhwcmV2aW91c0N1ZXNbaV0pKQorICAgICAgICAgICAgcGF1c2UoKTsKKyAg
ICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgIW1fcGF1c2VkICYmIGkgPCBtaXNzZWRDdWVz
U2l6ZTsgKytpKSB7CisgICAgICAgIGlmIChtaXNzZWRDdWVzW2ldLmRhdGEoKS0+cGF1c2VPbkV4
aXQoKSkKKyAgICAgICAgICAgIHBhdXNlKCk7CisgICAgfQogCiAgICAgLy8gOCAtIExldCBldmVu
dHMgYmUgYSBsaXN0IG9mIHRhc2tzLCBpbml0aWFsbHkgZW1wdHkuIEVhY2ggdGFzayBpbiB0aGlz
CiAgICAgLy8gbGlzdCB3aWxsIGJlIGFzc29jaWF0ZWQgd2l0aCBhIHRleHQgdHJhY2ssIGEgdGV4
dCB0cmFjayBjdWUsIGFuZCBhIHRpbWUsCkBAIC0xMDY2LDcgKzEwODEsNyBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMoZmxvYXQgbW92aWVUaW1lKQog
ICAgIC8vIDggLSBMZXQgYWZmZWN0ZWQgdHJhY2tzIGJlIGEgbGlzdCBvZiB0ZXh0IHRyYWNrcywg
aW5pdGlhbGx5IGVtcHR5LgogICAgIFZlY3RvcjxUZXh0VHJhY2sqPiBhZmZlY3RlZFRyYWNrczsK
IAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbWlzc2VkQ3Vlcy5zaXplKCk7ICsraSkgewor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbWlzc2VkQ3Vlc1NpemU7ICsraSkgewogICAgICAg
ICAvLyA5IC0gRm9yIGVhY2ggdGV4dCB0cmFjayBjdWUgaW4gbWlzc2VkIGN1ZXMsIHByZXBhcmUg
YW4gZXZlbnQgbmFtZWQgZW50ZXIKICAgICAgICAgLy8gZm9yIHRoZSBUZXh0VHJhY2tDdWUgb2Jq
ZWN0IHdpdGggdGhlIHRleHQgdHJhY2sgY3VlIHN0YXJ0IHRpbWUuCiAgICAgICAgIGV2ZW50VGFz
a3MuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKG1pc3NlZEN1ZXNbaV0uZGF0YSgpLT5zdGFydFRpbWUo
KSwKQEAgLTEwNzksNyArMTA5NCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlQWN0
aXZlVGV4dFRyYWNrQ3VlcyhmbG9hdCBtb3ZpZVRpbWUpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1pc3NlZEN1ZXNbaV0uZGF0YSgpKSk7CiAgICAgfQogCi0gICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBwcmV2aW91c0N1ZXMuc2l6ZSgpOyArK2kpIHsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHByZXZpb3VzQ3Vlc1NpemU7ICsraSkgewogICAgICAgICAv
LyAxMCAtIEZvciBlYWNoIHRleHQgdHJhY2sgY3VlIGluIG90aGVyIGN1ZXMgdGhhdCBoYXMgaXRz
IHRleHQKICAgICAgICAgLy8gdHJhY2sgY3VlIGFjdGl2ZSBmbGFnIHNldCBwcmVwYXJlIGFuIGV2
ZW50IG5hbWVkIGV4aXQgZm9yIHRoZQogICAgICAgICAvLyBUZXh0VHJhY2tDdWUgb2JqZWN0IHdp
dGggdGhlIHRleHQgdHJhY2sgY3VlIGVuZCB0aW1lLgpAQCAtMTA4OCw3ICsxMTAzLDcgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVBY3RpdmVUZXh0VHJhY2tDdWVzKGZsb2F0IG1vdmll
VGltZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZp
b3VzQ3Vlc1tpXS5kYXRhKCkpKTsKICAgICB9CiAKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGN1cnJlbnRDdWVzLnNpemUoKTsgKytpKSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBj
dXJyZW50Q3Vlc1NpemU7ICsraSkgewogICAgICAgICAvLyAxMSAtIEZvciBlYWNoIHRleHQgdHJh
Y2sgY3VlIGluIGN1cnJlbnQgY3VlcyB0aGF0IGRvZXMgbm90IGhhdmUgaXRzCiAgICAgICAgIC8v
IHRleHQgdHJhY2sgY3VlIGFjdGl2ZSBmbGFnIHNldCwgcHJlcGFyZSBhbiBldmVudCBuYW1lZCBl
bnRlciBmb3IgdGhlCiAgICAgICAgIC8vIFRleHRUcmFja0N1ZSBvYmplY3Qgd2l0aCB0aGUgdGV4
dCB0cmFjayBjdWUgc3RhcnQgdGltZS4KQEAgLTExNDMsMTAgKzExNTgsMTAgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50Ojp1cGRhdGVBY3RpdmVUZXh0VHJhY2tDdWVzKGZsb2F0IG1vdmllVGltZSkK
ICAgICAvLyAxNiAtIFNldCB0aGUgdGV4dCB0cmFjayBjdWUgYWN0aXZlIGZsYWcgb2YgYWxsIHRo
ZSBjdWVzIGluIHRoZSBjdXJyZW50CiAgICAgLy8gY3VlcywgYW5kIHVuc2V0IHRoZSB0ZXh0IHRy
YWNrIGN1ZSBhY3RpdmUgZmxhZyBvZiBhbGwgdGhlIGN1ZXMgaW4gdGhlCiAgICAgLy8gb3RoZXIg
Y3Vlcy4KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGN1cnJlbnRDdWVzLnNpemUoKTsgKytp
KQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY3VycmVudEN1ZXNTaXplOyArK2kpCiAgICAg
ICAgIGN1cnJlbnRDdWVzW2ldLmRhdGEoKS0+c2V0SXNBY3RpdmUodHJ1ZSk7CiAKLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHByZXZpb3VzQ3Vlcy5zaXplKCk7ICsraSkKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHByZXZpb3VzQ3Vlc1NpemU7ICsraSkKICAgICAgICAgaWYgKCFjdXJy
ZW50Q3Vlcy5jb250YWlucyhwcmV2aW91c0N1ZXNbaV0pKQogICAgICAgICAgICAgcHJldmlvdXND
dWVzW2ldLmRhdGEoKS0+c2V0SXNBY3RpdmUoZmFsc2UpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTA0ODI3YTYwM2Zl
MDI4OTMxMDAzZTlhZmMyYTg5YmVhMzhlZjYxNC4uMDQ0ZjQ4NTQxNTUyNGQwNzk2M2Y2MzQxZmNh
NzQ3YWZiYTcwN2I3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAyLTIxICBWaWN0b3Ig
Q2FyYnVuZSAgPHZjYXJidW5lQGFkb2JlLmNvbT4KKworICAgICAgICBBZGRlZCByZWxldmFudCB0
ZXN0cyBhbmQgZnVuY3Rpb25hbGl0eSBmb3Igc3VwcG9ydGluZyBwYXVzZS1vbi1leGl0CisgICAg
ICAgIGZsYWcgZm9yIGEgVGV4dFRyYWNrQ3VlLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjE3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L3NpbXBs
ZS1jYXB0aW9ucy52dHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWN1ZXMt
cGF1c2Utb24tZXhpdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3RyYWNr
L3RyYWNrLWN1ZXMtcGF1c2Utb24tZXhpdC5odG1sOiBBZGRlZC4KKwogMjAxMi0wMi0yMSAgQ3Nh
YmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gMyBTVkcg
dGVzdHMgYXNzZXJ0IGFmdGVyIHIxMDcyMDcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zaW1wbGUtY2FwdGlvbnMudnR0IGIvTGF5b3V0VGVzdHMv
bWVkaWEvdHJhY2svY2FwdGlvbnMtd2VidnR0L3NpbXBsZS1jYXB0aW9ucy52dHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzAwODJlNDQ1OTQwODVmMzE5NTYwOWEzNDllMTgyODFiNzZiZTg4NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL2NhcHRpb25zLXdlYnZ0dC9zaW1wbGUtY2Fw
dGlvbnMudnR0CkBAIC0wLDAgKzEsMTcgQEAKK++7v1dFQlZUVAorCiswCiswMDowMDowNS4wMDAg
LS0+IDAwOjAwOjA1LjIwMAorRmlyc3QgY3VlCisKKzEKKzAwOjAwOjA1LjIxMCAtLT4gMDA6MDA6
MDUuNDAwCitMb3JlbQorCisyCiswMDowMDowNS40MTAgLS0+IDAwOjAwOjA1LjYwMAoraXBzdW0K
KworMworMDA6MDA6MDUuNjEwIC0tPiAwMDowMDowNS43MDAKK2RvbG9yCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWVzLXBhdXNlLW9uLWV4aXQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3Vlcy1wYXVzZS1vbi1leGl0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZWVmNTBhZjYxYzk4ZWMxZTM5Mzk0MzE1ZjM0MGVkYTdj
YjkzNGQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2st
Y3Vlcy1wYXVzZS1vbi1leGl0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4IEBACitUZXN0cyB0
aGF0IHRoZSB2aWRlbyBpcyBwYXVzZWQgYWZ0ZXIgY3VlcyB0aGF0IGhhdmUgcGF1c2Utb24tZXhp
dCBmbGFnIGFyZSBwcm9jZXNzZWQKKworRVZFTlQoY2FucGxheXRocm91Z2gpCitFWFBFQ1RFRCAo
dGVzdFRyYWNrLnRyYWNrLmN1ZXMubGVuZ3RoID09ICc0JykgT0sKKworUlVOKHZpZGVvLnBsYXko
KSkKK0VYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ2ZhbHNlJykgT0sKKworRVZFTlQoZXhpdCkK
K0VYUEVDVEVEIChjdXJyZW50Q3VlLmlkID09ICcwJykgT0sKK0VYUEVDVEVEICh2aWRlby5wYXVz
ZWQgPT0gJ3RydWUnKSBPSworUlVOKHZpZGVvLnBsYXkoKSkKKworRVZFTlQoZXhpdCkKK0VYUEVD
VEVEIChjdXJyZW50Q3VlLmlkID09ICcxJykgT0sKK0VYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0g
J2ZhbHNlJykgT0sKKworRVZFTlQoZXhpdCkKK0VYUEVDVEVEIChjdXJyZW50Q3VlLmlkID09ICcy
JykgT0sKK0VYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ3RydWUnKSBPSworUlVOKHZpZGVvLnBs
YXkoKSkKKworRVZFTlQoZXhpdCkKK0VYUEVDVEVEIChjdXJyZW50Q3VlLmlkID09ICczJykgT0sK
K0VYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ2ZhbHNlJykgT0sKK0VWRU5UKGVuZGVkKQorRU5E
IE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3Vl
cy1wYXVzZS1vbi1leGl0Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWVz
LXBhdXNlLW9uLWV4aXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjhjZjk2YmY2NjIwNmQxNzk0Yzk3MzI4
MTNmZTYwYjZiYTA0YTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svdHJhY2stY3Vlcy1wYXVzZS1vbi1leGl0Lmh0bWwKQEAgLTAsMCArMSw4MSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CisKKyAg
ICAgICAgPHNjcmlwdCBzcmM9Li4vbWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Li4vdmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAg
ICAgICAgICAgIHZhciB2aWRlb0NhblBsYXlUaHJvdWdoID0gZmFsc2U7CisgICAgICAgICAgICB2
YXIgdHJhY2tMb2FkZWQgPSBmYWxzZTsKKworICAgICAgICAgICAgdmFyIGN1cnJlbnRDdWU7Cisg
ICAgICAgICAgICB2YXIgY3VycmVudEN1ZU51bWJlciA9IDA7CisKKyAgICAgICAgICAgIGZ1bmN0
aW9uIHJ1blRlc3RzKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRyYWNr
TG9hZGVkIHx8ICF2aWRlb0NhblBsYXlUaHJvdWdoKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgICAgICAgICB0ZXN0VHJhY2sgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGVzdFRyYWNrIik7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ0ZXN0VHJhY2su
dHJhY2suY3Vlcy5sZW5ndGgiLCA0KTsKKworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgi
Iik7CisKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RUcmFjay50cmFj
ay5jdWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RUcmFjay50cmFj
ay5jdWVzW2ldLnBhdXNlT25FeGl0ID0gKGkgJSAyID09IDApOworICAgICAgICAgICAgICAgICAg
ICB0ZXN0VHJhY2sudHJhY2suY3Vlc1tpXS5hZGRFdmVudExpc3RlbmVyKCdleGl0JywgY3VlRXhp
dGVkKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBydW4oInZpZGVvLnBs
YXkoKSIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ucGF1c2VkIiwgZmFs
c2UpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBjdWVFeGl0ZWQoZXZ0
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGN1cnJlbnRDdWUgPSBldnQudGFyZ2V0
OworCisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoIkVWRU5UKCIrZXZ0LnR5cGUrIikiKTsKKworICAgICAgICAgICAgICAgIHRl
c3RFeHBlY3RlZCgiY3VycmVudEN1ZS5pZCIsIGN1cnJlbnRDdWVOdW1iZXIpOworICAgICAgICAg
ICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ucGF1c2VkIiwgY3VycmVudEN1ZU51bWJlciAlIDIg
PT0gMCk7CisKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudEN1ZU51bWJlciAlIDIgPT0gMCkg
eworICAgICAgICAgICAgICAgICAgICBydW4oInZpZGVvLnBsYXkoKSIpOworICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgIGN1cnJlbnRDdWVOdW1iZXIrKzsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZnVuY3Rpb24gbG9hZGVkKCkKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICB0cmFja0xvYWRlZCA9IHRydWU7CisKKyAgICAgICAgICAgICAgICBydW5UZXN0
cygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBib2R5TG9hZGVkKCkK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CisgICAg
ICAgICAgICAgICAgdmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiLi4vY29udGVu
dC90ZXN0Iik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHdhaXRGb3JFdmVudCgnZW5k
ZWQnLCBlbmRUZXN0KTsKKworICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5dGhyb3Vn
aCcsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHZpZGVvLmN1cnJlbnRUaW1lID0gNC43
MDsKKyAgICAgICAgICAgICAgICB2aWRlb0NhblBsYXlUaHJvdWdoID0gdHJ1ZTsKKworICAgICAg
ICAgICAgICAgIHJ1blRlc3RzKCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICA8L3Njcmlw
dD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJib2R5TG9hZGVkKCkiPgorICAgICAg
ICA8cD5UZXN0cyB0aGF0IHRoZSB2aWRlbyBpcyBwYXVzZWQgYWZ0ZXIgY3VlcyB0aGF0IGhhdmUg
cGF1c2Utb24tZXhpdCBmbGFnIGFyZSBwcm9jZXNzZWQ8L3A+CisgICAgICAgIDx2aWRlbyBjb250
cm9scz4KKyAgICAgICAgICAgIDx0cmFjayBpZD0idGVzdFRyYWNrIiBzcmM9ImNhcHRpb25zLXdl
YnZ0dC9zaW1wbGUtY2FwdGlvbnMudnR0IiBvbmxvYWQ9ImxvYWRlZCgpIiBkZWZhdWx0PgorICAg
ICAgICA8L3ZpZGVvPgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>