<?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>48530</bug_id>
          
          <creation_ts>2010-10-28 09:55:20 -0700</creation_ts>
          <short_desc>Seeking by very small increment doesn&apos;t generate &apos;seeked&apos; event</short_desc>
          <delta_ts>2010-11-01 11:34:55 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>48612</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>jer.noble</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>301123</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-10-28 09:55:20 -0700</bug_when>
    <thetext>Seeking by an increment smaller than a movie&apos;s time scale can fail to generate a &apos;seeked&apos; event. This can happen because seeking to &quot;currentTime + &lt;value&gt;&quot; when &lt;value&gt; is smaller than the movie&apos;s time scale asks the engine to seek to the current time, which some engines consider a noop so the time changed callback to HTMLMediaElement is never fired, and the &apos;seeked&apos; event is never fired.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301134</commentid>
    <comment_count>1</comment_count>
      <attachid>72200</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-10-28 10:10:18 -0700</bug_when>
    <thetext>Created attachment 72200
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301236</commentid>
    <comment_count>2</comment_count>
      <attachid>72200</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-10-28 12:34:18 -0700</bug_when>
    <thetext>Comment on attachment 72200
Proposed patch

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

What about MediaPlayerPrivateQuickTimeWin?

&gt; WebCore/html/HTMLMediaElement.cpp:1116
&gt; +    // Ask the media engine for the time value in the movie&apos;s time scale before comparing with current time. This

Shouldn&apos;t we be converting to the movie&apos;s time scale before doing any comparisons at all, not just before comparing with the current time?

&gt; WebCore/platform/graphics/MediaPlayerPrivate.h:130
&gt; +    // Time value in the movie&apos;s time scale. It is only necessary to override this if the media
&gt; +    // engine does not use real numbers to represent media time.
&gt; +    virtual float mediaTimeForTimeValue(float timeValue) const { return timeValue; }

What does &quot;real numbers&quot; mean? I assume you don&apos;t mean it in the mathematical sense?

&gt; WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:1063
&gt; +    long mediaTimeValue = static_cast&lt;long&gt;(timeValue * timeScale);
&gt; +    return static_cast&lt;float&gt;(mediaTimeValue) / timeScale;

I assume the multiplication, truncation, and division is intentional here? (It&apos;s probably the whole point of this function!)

&gt; WebCore/platform/graphics/win/QTMovie.cpp:744
&gt; +    if (!m_private-&gt;m_movie)
&gt; +        0;

This won&apos;t compile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301305</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-10-28 13:43:55 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 72200 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=72200&amp;action=review
&gt; 
&gt; What about MediaPlayerPrivateQuickTimeWin?
&gt; 
  It isn&apos;t used any more and should be removed from the build - https://bugs.webkit.org/show_bug.cgi?id=48556

&gt; &gt; WebCore/html/HTMLMediaElement.cpp:1116
&gt; &gt; +    // Ask the media engine for the time value in the movie&apos;s time scale before comparing with current time. This
&gt; 
&gt; Shouldn&apos;t we be converting to the movie&apos;s time scale before doing any comparisons at all, not just before comparing with the current time?
&gt; 
  This is the only function that passes time values to the media engine. It wouldn&apos;t hurt to do the conversion earlier in this function but I don&apos;t think it is necessary because we only compare to clamp the value to the movie&apos;s min and max times. IOW, we only care that it is somewhere within the movie&apos;s timeline.

&gt; &gt; WebCore/platform/graphics/MediaPlayerPrivate.h:130
&gt; &gt; +    // Time value in the movie&apos;s time scale. It is only necessary to override this if the media
&gt; &gt; +    // engine does not use real numbers to represent media time.
&gt; &gt; +    virtual float mediaTimeForTimeValue(float timeValue) const { return timeValue; }
&gt; 
&gt; What does &quot;real numbers&quot; mean? I assume you don&apos;t mean it in the mathematical sense?
&gt; 
  I meant non-rational numbers. I will update the comment.

&gt; &gt; WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:1063
&gt; &gt; +    long mediaTimeValue = static_cast&lt;long&gt;(timeValue * timeScale);
&gt; &gt; +    return static_cast&lt;float&gt;(mediaTimeValue) / timeScale;
&gt; 
&gt; I assume the multiplication, truncation, and division is intentional here? (It&apos;s probably the whole point of this function!)
&gt; 
  Indeed the point is that some media engines us rational numbers for time values, so we need to convert the value into the one can be exactly represented in the movie&apos;s time scale.

&gt; &gt; WebCore/platform/graphics/win/QTMovie.cpp:744
&gt; &gt; +    if (!m_private-&gt;m_movie)
&gt; &gt; +        0;
&gt; 
&gt; This won&apos;t compile.
&gt;
  Hmm, it does compile though it clearly doesn&apos;t so what I intended!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301310</commentid>
    <comment_count>4</comment_count>
      <attachid>72230</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-10-28 13:46:02 -0700</bug_when>
    <thetext>Created attachment 72230
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301351</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-10-28 14:49:05 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/70814</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301386</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-28 15:39:40 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/70814 might have broken Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301531</commentid>
    <comment_count>7</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-10-28 19:01:37 -0700</bug_when>
    <thetext>It appears this may have broken media/controls-drag-timebar.html on leopard.  diff:

--- /Volumes/Big/WebKit-BuildSlave/leopard-intel-release-tests/build/layout-test-results/media/controls-drag-timebar-expected.txt	2010-10-28 15:14:44.000000000 -0700
+++ /Volumes/Big/WebKit-BuildSlave/leopard-intel-release-tests/build/layout-test-results/media/controls-drag-timebar-actual.txt	2010-10-28 15:14:44.000000000 -0700
@@ -6,8 +6,8 @@
 EVENT(seeked)
 Time: 0.3
 EVENT(seeked)
-Time: 1.1
+Time: 0.3
 EVENT(seeked)
-Time: 1.9
+Time: 1.1
 END OF TEST</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302780</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-11-01 10:53:29 -0700</bug_when>
    <thetext>Reopened because the changes were rolled out in http://trac.webkit.org/changeset/70837.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302788</commentid>
    <comment_count>9</comment_count>
      <attachid>72522</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-11-01 11:02:52 -0700</bug_when>
    <thetext>Created attachment 72522
Updated patch

The test that failed last time should succeed now because it was updated so its results are not timing dependent, https://bugs.webkit.org/show_bug.cgi?id=48662.

The only change in this patch is that the new test has been updated to not use setTimeout, it is not needed because media events are fired asynchronously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302797</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-11-01 11:20:37 -0700</bug_when>
    <thetext>Committed in http://trac.webkit.org/changeset/71039</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302808</commentid>
    <comment_count>11</comment_count>
      <attachid>72529</attachid>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2010-11-01 11:33:37 -0700</bug_when>
    <thetext>Created attachment 72529
webkit-patch upload fail</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302809</commentid>
    <comment_count>12</comment_count>
      <attachid>72529</attachid>
    <who name="Ilya Sherman">isherman</who>
    <bug_when>2010-11-01 11:34:55 -0700</bug_when>
    <thetext>Comment on attachment 72529
webkit-patch upload fail

Sorry, webkit-patch upload attached to the wrong bug...</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72200</attachid>
            <date>2010-10-28 10:10:18 -0700</date>
            <delta_ts>2010-10-28 13:46:02 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch_5.txt</filename>
            <type>text/plain</type>
            <size>12497</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDc4NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMTAtMTAtMjggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU2Vla2luZyBieSB2ZXJ5IHNtYWxsIGluY3JlbWVudCBkb2Vzbid0IGdlbmVyYXRlICdzZWVr
ZWQnIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00ODUzMAorCisgICAgICAgIFRlc3Q6IG1lZGlhL3ZpZGVvLXNlZWstYnktc21hbGwtaW5jcmVt
ZW50Lmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWVrKTogQXNrIHRoZSBtZWRpYSBlbmdpbmUg
Zm9yIGl0cyBjbG9zZXN0IHRpbWUgdmFsdWUgc28gd2UgY2FuCisgICAgICAgIGF2b2lkIGFza2lu
ZyBpdCB0byBzZWVrIHRvIHRoZSBjdXJyZW50IHRpbWUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6
bWVkaWFUaW1lRm9yVGltZVZhbHVlKTogTmV3LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQ
cml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6
Om1lZGlhVGltZUZvclRpbWVWYWx1ZSk6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjptZWRpYVRpbWVGb3JUaW1lVmFsdWUpOiBSZXR1cm4gdGhl
IGNsb3Nlc3QgdmFsdWUgaW4gdGhlIG1vdmllJ3MgdGltZSBzY2FsZS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZp
c3VhbENvbnRleHQ6Om1lZGlhVGltZUZvclRpbWVWYWx1ZSk6IERpdHRvCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRl
eHQuaDoKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9RVE1vdmllLmNwcDoKKyAg
ICAgICAgKFFUTW92aWU6OnRpbWVTY2FsZSk6IFJldHVybiB0aGUgbW92aWUncyB0aW1lIHNjYWxl
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9RVE1vdmllLmg6CisKIDIwMTAtMTAt
MjggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBZGFtIFJvYmVuLgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkocmV2aXNpb24g
NzA2NTUpCisrKyBXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTExMTMsNiArMTExMywxOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlZWsoZmxv
YXQgdGltZSwgCiAgICAgZmxvYXQgZWFybGllc3RUaW1lID0gbV9wbGF5ZXItPnN0YXJ0VGltZSgp
OwogICAgIHRpbWUgPSBtYXgodGltZSwgZWFybGllc3RUaW1lKTsKIAorICAgIC8vIEFzayB0aGUg
bWVkaWEgZW5naW5lIGZvciB0aGUgdGltZSB2YWx1ZSBpbiB0aGUgbW92aWUncyB0aW1lIHNjYWxl
IGJlZm9yZSBjb21wYXJpbmcgd2l0aCBjdXJyZW50IHRpbWUuIFRoaXMKKyAgICAvLyBpcyBuZWNl
c3NhcnkgYmVjYXVzZSBpZiB0aGUgc2VlayB0aW1lIGlzIG5vdCBlcXVhbCB0byBjdXJyZW50VGlt
ZSBidXQgdGhlIGRlbHRhIGlzIGxlc3MgdGhhbiB0aGUgbW92aWUncworICAgIC8vIHRpbWUgc2Nh
bGUsIHdlIHdpbGwgYXNrIHRoZSBtZWRpYSBlbmdpbmUgdG8gInNlZWsiIHRvIHRoZSBjdXJyZW50
IG1vdmllIHRpbWUsIHdoaWNoIG1heSBiZSBhIG5vb3AgYW5kCisgICAgLy8gbm90IGdlbmVyYXRl
IGEgdGltZWNoYW5nZWQgY2FsbGJhY2suIFRoaXMgbWVhbnMgbV9zZWVraW5nIHdpbGwgbmV2ZXIg
YmUgY2xlYXJlZCBhbmQgd2Ugd2lsbCBuZXZlciAKKyAgICAvLyBmaXJlIGEgJ3NlZWtlZCcgZXZl
bnQuCisjaWYgIUxPR19ESVNBQkxFRAorICAgIGZsb2F0IG1lZGlhVGltZSA9IG1fcGxheWVyLT5t
ZWRpYVRpbWVGb3JUaW1lVmFsdWUodGltZSk7CisgICAgaWYgKHRpbWUgIT0gbWVkaWFUaW1lKQor
ICAgICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpzZWVrKCVmKSAtIG1lZGlhIHRp
bWVsaW5lIGVxdWl2YWxlbnQgaXMgJWYiLCB0aW1lLCBtZWRpYVRpbWUpOworI2VuZGlmCisgICAg
dGltZSA9IG1fcGxheWVyLT5tZWRpYVRpbWVGb3JUaW1lVmFsdWUodGltZSk7CisKICAgICAvLyA3
IC0gSWYgdGhlIChwb3NzaWJseSBub3cgY2hhbmdlZCkgbmV3IHBsYXliYWNrIHBvc2l0aW9uIGlz
IG5vdCBpbiBvbmUgb2YgdGhlIHJhbmdlcyBnaXZlbiBpbiB0aGUgCiAgICAgLy8gc2Vla2FibGUg
YXR0cmlidXRlLCB0aGVuIGxldCBpdCBiZSB0aGUgcG9zaXRpb24gaW4gb25lIG9mIHRoZSByYW5n
ZXMgZ2l2ZW4gaW4gdGhlIHNlZWthYmxlIGF0dHJpYnV0ZSAKICAgICAvLyB0aGF0IGlzIHRoZSBu
ZWFyZXN0IHRvIHRoZSBuZXcgcGxheWJhY2sgcG9zaXRpb24uIC4uLiBJZiB0aGVyZSBhcmUgbm8g
cmFuZ2VzIGdpdmVuIGluIHRoZSBzZWVrYWJsZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAJKHJldmlzaW9uIDcwNjU1KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0Myw2ICs2NDMs
MTEgQEAgTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgTWVkaWFQbGF5ZXI6OgogICAgIHJldHVy
biBtX3ByaXZhdGUtPm1vdmllTG9hZFR5cGUoKTsKIH0KIAorZmxvYXQgTWVkaWFQbGF5ZXI6Om1l
ZGlhVGltZUZvclRpbWVWYWx1ZShmbG9hdCB0aW1lVmFsdWUpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fcHJpdmF0ZS0+bWVkaWFUaW1lRm9yVGltZVZhbHVlKHRpbWVWYWx1ZSk7Cit9CisKIC8vIENs
aWVudCBjYWxsYmFja3MuCiB2b2lkIE1lZGlhUGxheWVyOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKCkK
IHsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgJKHJldmlzaW9u
IDcwNjU1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNzQsNiArMjc0LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNTaW5n
bGVTZWN1cml0eU9yaWdpbigpIGNvbnN0OwogCisgICAgZmxvYXQgbWVkaWFUaW1lRm9yVGltZVZh
bHVlKGZsb2F0KSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllcihNZWRpYVBsYXll
ckNsaWVudCopOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgJKHJldmlzaW9uIDcwNjU1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDYgKzEyNSwx
MCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpIHsg
fQogCisgICAgLy8gVGltZSB2YWx1ZSBpbiB0aGUgbW92aWUncyB0aW1lIHNjYWxlLiBJdCBpcyBv
bmx5IG5lY2Vzc2FyeSB0byBvdmVycmlkZSB0aGlzIGlmIHRoZSBtZWRpYQorICAgIC8vIGVuZ2lu
ZSBkb2VzIG5vdCB1c2UgcmVhbCBudW1iZXJzIHRvIHJlcHJlc2VudCBtZWRpYSB0aW1lLgorICAg
IHZpcnR1YWwgZmxvYXQgbWVkaWFUaW1lRm9yVGltZVZhbHVlKGZsb2F0IHRpbWVWYWx1ZSkgY29u
c3QgeyByZXR1cm4gdGltZVZhbHVlOyB9CisKIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAko
cmV2aXNpb24gNzA2NTUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBs
YXllclByaXZhdGVRVEtpdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsNiArMTczLDggQEAgcHJp
dmF0ZToKIAogICAgIGJvb2wgaXNSZWFkeUZvclZpZGVvU2V0dXAoKSBjb25zdDsKICAgICAKKyAg
ICB2aXJ0dWFsIGZsb2F0IG1lZGlhVGltZUZvclRpbWVWYWx1ZShmbG9hdCkgY29uc3Q7CisKICAg
ICBNZWRpYVBsYXllciogbV9wbGF5ZXI7CiAgICAgUmV0YWluUHRyPFFUTW92aWU+IG1fcXRNb3Zp
ZTsKICAgICBSZXRhaW5QdHI8UVRNb3ZpZVZpZXc+IG1fcXRNb3ZpZVZpZXc7CkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZh
dGVRVEtpdC5tbQkocmV2aXNpb24gNzA2NTUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTU0MCw2
ICsxNTQwLDE1IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRQcmVsb2FkKE1lZGkKICAg
ICAgICAgcmVzdW1lTG9hZCgpOwogfQogCitmbG9hdCBNZWRpYVBsYXllclByaXZhdGU6Om1lZGlh
VGltZUZvclRpbWVWYWx1ZShmbG9hdCB0aW1lVmFsdWUpIGNvbnN0Cit7CisgICAgaWYgKCFtZXRh
RGF0YUF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gdGltZVZhbHVlOworCisgICAgUVRUaW1l
IHF0dGltZSA9IGNyZWF0ZVFUVGltZSh0aW1lVmFsdWUpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxmbG9hdD4ocXR0aW1lLnRpbWVWYWx1ZSkgLyBxdHRpbWUudGltZVNjYWxlOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlTW92aWVPYnNlcnZl
cgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRl
UXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5j
cHAJKHJldmlzaW9uIDcwNjU1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVk
aWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwNTMsNiArMTA1MywxNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZp
c3VhbENvCiAgICAgICAgIHJlc3VtZUxvYWQoKTsKIH0KIAorZmxvYXQgTWVkaWFQbGF5ZXJQcml2
YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6bWVkaWFUaW1lRm9yVGltZVZhbHVlKGZsb2F0IHRp
bWVWYWx1ZSkgY29uc3QKK3sKKyAgICBsb25nIHRpbWVTY2FsZTsKKyAgICBpZiAobV9yZWFkeVN0
YXRlIDwgTWVkaWFQbGF5ZXI6OkhhdmVNZXRhZGF0YSB8fCAhKHRpbWVTY2FsZSA9IG1fbW92aWUt
PnRpbWVTY2FsZSgpKSkKKyAgICAgICAgcmV0dXJuIHRpbWVWYWx1ZTsKKworICAgIGxvbmcgbWVk
aWFUaW1lVmFsdWUgPSBzdGF0aWNfY2FzdDxsb25nPih0aW1lVmFsdWUgKiB0aW1lU2NhbGUpOwor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4obWVkaWFUaW1lVmFsdWUpIC8gdGltZVNjYWxl
OworfQorCiBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpNZWRpYVJl
bmRlcmluZ01vZGUgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6Y3Vy
cmVudFJlbmRlcmluZ01vZGUoKSBjb25zdAogewogICAgIGlmICghbV9tb3ZpZSkKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZp
c3VhbENvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmgJKHJldmlzaW9uIDcw
NjU1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRl
UXVpY2tUaW1lVmlzdWFsQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsNiArMTczLDgg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmV0cmlldmVBbmRSZXNldE1vdmllVHJhbnNmb3JtKCk7
CiAKKyAgICB2aXJ0dWFsIGZsb2F0IG1lZGlhVGltZUZvclRpbWVWYWx1ZShmbG9hdCkgY29uc3Q7
CisKICAgICBNZWRpYVBsYXllciogbV9wbGF5ZXI7CiAgICAgUmVmUHRyPFFUTW92aWU+IG1fbW92
aWU7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vUVRNb3ZpZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vUVRNb3ZpZS5jcHAJKHJldmlzaW9uIDcwNjU1KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vUVRNb3ZpZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcz
OCw2ICs3MzgsMTQgQEAgdm9pZCBRVE1vdmllOjpzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYgog
ICAgIFFUU2V0VHJhY2tQcm9wZXJ0eShjY1RyYWNrLCBjbG9zZWRDYXB0aW9uVHJhY2tUeXBlLCBj
bG9zZWRDYXB0aW9uRGlzcGxheVByb3BlcnR5SUQsIHNpemVvZihkb0Rpc3BsYXkpLCAmZG9EaXNw
bGF5KTsKIH0KIAorbG9uZyBRVE1vdmllOjp0aW1lU2NhbGUoKSBjb25zdCAKK3sKKyAgICBpZiAo
IW1fcHJpdmF0ZS0+bV9tb3ZpZSkKKyAgICAgICAgMDsKKworICAgIHJldHVybiBHZXRNb3ZpZVRp
bWVTY2FsZShtX3ByaXZhdGUtPm1fbW92aWUpOworfQorCiBzdGF0aWMgdm9pZCBpbml0aWFsaXpl
U3VwcG9ydGVkVHlwZXMoKSAKIHsKICAgICBpZiAoZ1N1cHBvcnRlZFR5cGVzKQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vUVRNb3ZpZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1FUTW92aWUuaAkocmV2aXNpb24gNzA2NTUpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9RVE1vdmllLmgJKHdvcmtpbmcgY29weSkKQEAg
LTExNSw2ICsxMTUsOCBAQCBwdWJsaWM6CiAKICAgICBNb3ZpZSBnZXRNb3ZpZUhhbmRsZSgpIGNv
bnN0OwogCisgICAgbG9uZyB0aW1lU2NhbGUoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBRVE1v
dmllUHJpdmF0ZSogbV9wcml2YXRlOwogICAgIGZyaWVuZCBjbGFzcyBRVE1vdmllUHJpdmF0ZTsK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDcwNzg1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMTAtMjggIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU2Vla2luZyBieSB2ZXJ5IHNtYWxsIGluY3JlbWVudCBkb2Vzbid0IGdl
bmVyYXRlICdzZWVrZWQnIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00ODUzMAorCisgICAgICAgICogbWVkaWEvdmlkZW8tc2Vlay1ieS1zbWFs
bC1pbmNyZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS92aWRlby1z
ZWVrLWJ5LXNtYWxsLWluY3JlbWVudC5odG1sOiBBZGRlZC4KKwogMjAxMC0xMC0yOCAgRGFuIEJl
cm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9i
ZW4uCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS92aWRlby1zZWVrLWJ5LXNtYWxsLWluY3JlbWVu
dC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tc2Vl
ay1ieS1zbWFsbC1pbmNyZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8tc2Vlay1ieS1zbWFsbC1pbmNyZW1lbnQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM2IEBACitUZXN0IHNlZWtpbmcgYnkgdmVyeSBzbWFsbCBp
bmNyZW1lbnRzLgorCitFVkVOVChjYW5wbGF5dGhyb3VnaCkKK0VYUEVDVEVEIChzZWVrZWRFdmVu
dENvdW50ID09ICcwJykgT0sKK0VWRU5UKHNlZWtpbmcpCitFVkVOVChzZWVrZWQpCitFWFBFQ1RF
RCAoc2Vla2VkRXZlbnRDb3VudCA9PSAnMScpIE9LCitFVkVOVChzZWVraW5nKQorRVZFTlQoc2Vl
a2VkKQorRVhQRUNURUQgKHNlZWtlZEV2ZW50Q291bnQgPT0gJzInKSBPSworRVZFTlQoc2Vla2lu
ZykKK0VWRU5UKHNlZWtlZCkKK0VYUEVDVEVEIChzZWVrZWRFdmVudENvdW50ID09ICczJykgT0sK
K0VWRU5UKHNlZWtpbmcpCitFVkVOVChzZWVrZWQpCitFWFBFQ1RFRCAoc2Vla2VkRXZlbnRDb3Vu
dCA9PSAnNCcpIE9LCitFVkVOVChzZWVraW5nKQorRVZFTlQoc2Vla2VkKQorRVhQRUNURUQgKHNl
ZWtlZEV2ZW50Q291bnQgPT0gJzUnKSBPSworRVZFTlQoc2Vla2luZykKK0VWRU5UKHNlZWtlZCkK
K0VYUEVDVEVEIChzZWVrZWRFdmVudENvdW50ID09ICc2JykgT0sKK0VWRU5UKHNlZWtpbmcpCitF
VkVOVChzZWVrZWQpCitFWFBFQ1RFRCAoc2Vla2VkRXZlbnRDb3VudCA9PSAnNycpIE9LCitFVkVO
VChzZWVraW5nKQorRVZFTlQoc2Vla2VkKQorRVhQRUNURUQgKHNlZWtlZEV2ZW50Q291bnQgPT0g
JzgnKSBPSworRVZFTlQoc2Vla2luZykKK0VWRU5UKHNlZWtlZCkKK0VYUEVDVEVEIChzZWVrZWRF
dmVudENvdW50ID09ICc5JykgT0sKK0VWRU5UKHNlZWtpbmcpCitFVkVOVChzZWVrZWQpCitFWFBF
Q1RFRCAoc2Vla2VkRXZlbnRDb3VudCA9PSAnMTAnKSBPSworRU5EIE9GIFRFU1QKKwpJbmRleDog
TGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tc2Vlay1ieS1zbWFsbC1pbmNyZW1lbnQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS92aWRlby1zZWVrLWJ5LXNtYWxsLWluY3JlbWVu
dC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tc2Vlay1ieS1z
bWFsbC1pbmNyZW1lbnQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NSBAQAorPCFET0NU
WVBFIEhUTUw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9bWVkaWEt
ZmlsZS5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48L3Nj
cmlwdD4KKworICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgdmFyIHNlZWtlZEV2ZW50Q291
bnQgPSAwOworICAgICAgICAgICAgdmFyIHNlZWtzQXR0ZW1wdGVkID0gMDsKKyAgICAgICAgICAg
IHZhciBpbmNyZW1lbnQgPSAwLjAwMDQ7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHNlZWtJbmNy
ZW1lbnQoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8gdmVy
aWZ5IHRoYXQgc2Vla2luZyBieSBhbiBpbmNyZW1lbnQgc21hbGxlciB0aGFuIHRoZSB0ZXN0IG1v
dmllJ3MgdGltZSBzY2FsZQorICAgICAgICAgICAgICAgIC8vIHN1Y2NlZWRzLiB0ZXN0Lm1wNCBo
YXMgYSB0aW1lIHNjYWxlIG9mIDI1MDAgKHRoZSBzbWFsbGVzdCB1bml0IG9mIHRpbWUgaW4gdGhh
dCBmaWxlCisgICAgICAgICAgICAgICAgLy8gaXMgMC4wMDA0IHNlY29uZHMpLCBzbyBzdGFydCB3
aXRoIHRoYXQgYW5kIGRlY3JlYXNlIGJ5IGhhbGYgZWFjaCB0aW1lLgorICAgICAgICAgICAgICAg
IGluY3JlbWVudCAvPSAyOworICAgICAgICAgICAgICAgIHJldHVybiBpbmNyZW1lbnQ7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHNlZWtlZCgpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgKytzZWVrZWRFdmVudENvdW50OworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBmdW5jdGlvbiBhdHRlbXB0U2VlaygpCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgdmFyIG5vdyA9IHZpZGVvLmN1cnJlbnRUaW1lOworCisgICAgICAgICAgICAgICAg
dmlkZW8uY3VycmVudFRpbWUgPSBub3cgKyBzZWVrSW5jcmVtZW50KCk7CisgICAgICAgICAgICAg
ICAgKytzZWVrc0F0dGVtcHRlZDsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRlc3RBZ2Fp
biwgMTApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0QWdhaW4o
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJlcG9ydEV4cGVjdGVkKHNlZWtzQXR0
ZW1wdGVkID09IHNlZWtlZEV2ZW50Q291bnQsICJzZWVrZWRFdmVudENvdW50IiwgIj09Iiwgc2Vl
a3NBdHRlbXB0ZWQsIHNlZWtlZEV2ZW50Q291bnQpOworCisgICAgICAgICAgICAgICAgaWYgKHNl
ZWtzQXR0ZW1wdGVkID09IDEwKSB7CisgICAgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIHNldFRpbWVvdXQoYXR0ZW1wdFNlZWssIDEwMCk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBmaW5kTWVkaWFFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgdmlkZW8uc3JjID0gZmluZE1l
ZGlhRmlsZSgidmlkZW8iLCAiY29udGVudC90ZXN0Iik7CisKKyAgICAgICAgICAgICAgICB3YWl0
Rm9yRXZlbnQoJ2NhbnBsYXl0aHJvdWdoJywgdGVzdEFnYWluKTsKKyAgICAgICAgICAgICAgICB3
YWl0Rm9yRXZlbnQoJ3NlZWtlZCcsIHNlZWtlZCk7CisgICAgICAgICAgICAgICAgd2FpdEZvckV2
ZW50KCdzZWVraW5nJyk7CisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdwbGF5Jyk7Cisg
ICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdwYXVzZScpOworICAgICAgICAgICAgfQorICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDx2aWRlbyBj
b250cm9scz48L3ZpZGVvPgorICAgICAgICA8cD5UZXN0IHNlZWtpbmcgYnkgdmVyeSBzbWFsbCBp
bmNyZW1lbnRzLjwvcD4KKyAgICAgICAgPHNjcmlwdD5zdGFydCgpPC9zY3JpcHQ+CisgICAgPC9i
b2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="62407"
          type_id="1"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72230</attachid>
            <date>2010-10-28 13:46:02 -0700</date>
            <delta_ts>2010-10-28 14:49:28 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_6.txt</filename>
            <type>text/plain</type>
            <size>12500</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDc4NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMTAtMTAtMjggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU2Vla2luZyBieSB2ZXJ5IHNtYWxsIGluY3JlbWVudCBkb2Vzbid0IGdlbmVyYXRlICdzZWVr
ZWQnIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00ODUzMAorCisgICAgICAgIFRlc3Q6IG1lZGlhL3ZpZGVvLXNlZWstYnktc21hbGwtaW5jcmVt
ZW50Lmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWVrKTogQXNrIHRoZSBtZWRpYSBlbmdpbmUg
Zm9yIGl0cyBjbG9zZXN0IHRpbWUgdmFsdWUgc28gd2UgY2FuCisgICAgICAgIGF2b2lkIGFza2lu
ZyBpdCB0byBzZWVrIHRvIHRoZSBjdXJyZW50IHRpbWUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6
bWVkaWFUaW1lRm9yVGltZVZhbHVlKTogTmV3LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQ
cml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6
Om1lZGlhVGltZUZvclRpbWVWYWx1ZSk6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjptZWRpYVRpbWVGb3JUaW1lVmFsdWUpOiBSZXR1cm4gdGhl
IGNsb3Nlc3QgdmFsdWUgaW4gdGhlIG1vdmllJ3MgdGltZSBzY2FsZS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZp
c3VhbENvbnRleHQ6Om1lZGlhVGltZUZvclRpbWVWYWx1ZSk6IERpdHRvCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRl
eHQuaDoKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9RVE1vdmllLmNwcDoKKyAg
ICAgICAgKFFUTW92aWU6OnRpbWVTY2FsZSk6IFJldHVybiB0aGUgbW92aWUncyB0aW1lIHNjYWxl
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9RVE1vdmllLmg6CisKIDIwMTAtMTAt
MjggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBZGFtIFJvYmVuLgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkocmV2aXNpb24g
NzA2NTUpCisrKyBXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTExMTMsNiArMTExMywxOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlZWsoZmxv
YXQgdGltZSwgCiAgICAgZmxvYXQgZWFybGllc3RUaW1lID0gbV9wbGF5ZXItPnN0YXJ0VGltZSgp
OwogICAgIHRpbWUgPSBtYXgodGltZSwgZWFybGllc3RUaW1lKTsKIAorICAgIC8vIEFzayB0aGUg
bWVkaWEgZW5naW5lIGZvciB0aGUgdGltZSB2YWx1ZSBpbiB0aGUgbW92aWUncyB0aW1lIHNjYWxl
IGJlZm9yZSBjb21wYXJpbmcgd2l0aCBjdXJyZW50IHRpbWUuIFRoaXMKKyAgICAvLyBpcyBuZWNl
c3NhcnkgYmVjYXVzZSBpZiB0aGUgc2VlayB0aW1lIGlzIG5vdCBlcXVhbCB0byBjdXJyZW50VGlt
ZSBidXQgdGhlIGRlbHRhIGlzIGxlc3MgdGhhbiB0aGUgbW92aWUncworICAgIC8vIHRpbWUgc2Nh
bGUsIHdlIHdpbGwgYXNrIHRoZSBtZWRpYSBlbmdpbmUgdG8gInNlZWsiIHRvIHRoZSBjdXJyZW50
IG1vdmllIHRpbWUsIHdoaWNoIG1heSBiZSBhIG5vb3AgYW5kCisgICAgLy8gbm90IGdlbmVyYXRl
IGEgdGltZWNoYW5nZWQgY2FsbGJhY2suIFRoaXMgbWVhbnMgbV9zZWVraW5nIHdpbGwgbmV2ZXIg
YmUgY2xlYXJlZCBhbmQgd2Ugd2lsbCBuZXZlciAKKyAgICAvLyBmaXJlIGEgJ3NlZWtlZCcgZXZl
bnQuCisjaWYgIUxPR19ESVNBQkxFRAorICAgIGZsb2F0IG1lZGlhVGltZSA9IG1fcGxheWVyLT5t
ZWRpYVRpbWVGb3JUaW1lVmFsdWUodGltZSk7CisgICAgaWYgKHRpbWUgIT0gbWVkaWFUaW1lKQor
ICAgICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpzZWVrKCVmKSAtIG1lZGlhIHRp
bWVsaW5lIGVxdWl2YWxlbnQgaXMgJWYiLCB0aW1lLCBtZWRpYVRpbWUpOworI2VuZGlmCisgICAg
dGltZSA9IG1fcGxheWVyLT5tZWRpYVRpbWVGb3JUaW1lVmFsdWUodGltZSk7CisKICAgICAvLyA3
IC0gSWYgdGhlIChwb3NzaWJseSBub3cgY2hhbmdlZCkgbmV3IHBsYXliYWNrIHBvc2l0aW9uIGlz
IG5vdCBpbiBvbmUgb2YgdGhlIHJhbmdlcyBnaXZlbiBpbiB0aGUgCiAgICAgLy8gc2Vla2FibGUg
YXR0cmlidXRlLCB0aGVuIGxldCBpdCBiZSB0aGUgcG9zaXRpb24gaW4gb25lIG9mIHRoZSByYW5n
ZXMgZ2l2ZW4gaW4gdGhlIHNlZWthYmxlIGF0dHJpYnV0ZSAKICAgICAvLyB0aGF0IGlzIHRoZSBu
ZWFyZXN0IHRvIHRoZSBuZXcgcGxheWJhY2sgcG9zaXRpb24uIC4uLiBJZiB0aGVyZSBhcmUgbm8g
cmFuZ2VzIGdpdmVuIGluIHRoZSBzZWVrYWJsZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAJKHJldmlzaW9uIDcwNjU1KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0Myw2ICs2NDMs
MTEgQEAgTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgTWVkaWFQbGF5ZXI6OgogICAgIHJldHVy
biBtX3ByaXZhdGUtPm1vdmllTG9hZFR5cGUoKTsKIH0KIAorZmxvYXQgTWVkaWFQbGF5ZXI6Om1l
ZGlhVGltZUZvclRpbWVWYWx1ZShmbG9hdCB0aW1lVmFsdWUpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fcHJpdmF0ZS0+bWVkaWFUaW1lRm9yVGltZVZhbHVlKHRpbWVWYWx1ZSk7Cit9CisKIC8vIENs
aWVudCBjYWxsYmFja3MuCiB2b2lkIE1lZGlhUGxheWVyOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKCkK
IHsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgJKHJldmlzaW9u
IDcwNjU1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNzQsNiArMjc0LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNTaW5n
bGVTZWN1cml0eU9yaWdpbigpIGNvbnN0OwogCisgICAgZmxvYXQgbWVkaWFUaW1lRm9yVGltZVZh
bHVlKGZsb2F0KSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllcihNZWRpYVBsYXll
ckNsaWVudCopOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgJKHJldmlzaW9uIDcwNjU1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDYgKzEyNSwx
MCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpIHsg
fQogCisgICAgLy8gVGltZSB2YWx1ZSBpbiB0aGUgbW92aWUncyB0aW1lIHNjYWxlLiBJdCBpcyBv
bmx5IG5lY2Vzc2FyeSB0byBvdmVycmlkZSB0aGlzIGlmIHRoZSBtZWRpYQorICAgIC8vIGVuZ2lu
ZSB1c2VzIHJhdGlvbmFsIG51bWJlcnMgdG8gcmVwcmVzZW50IG1lZGlhIHRpbWUuCisgICAgdmly
dHVhbCBmbG9hdCBtZWRpYVRpbWVGb3JUaW1lVmFsdWUoZmxvYXQgdGltZVZhbHVlKSBjb25zdCB7
IHJldHVybiB0aW1lVmFsdWU7IH0KKwogfTsKIAogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCShyZXZp
c2lvbiA3MDY1NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3Myw2ICsxNzMsOCBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBpc1JlYWR5Rm9yVmlkZW9TZXR1cCgpIGNvbnN0OwogICAgIAorICAgIHZp
cnR1YWwgZmxvYXQgbWVkaWFUaW1lRm9yVGltZVZhbHVlKGZsb2F0KSBjb25zdDsKKwogICAgIE1l
ZGlhUGxheWVyKiBtX3BsYXllcjsKICAgICBSZXRhaW5QdHI8UVRNb3ZpZT4gbV9xdE1vdmllOwog
ICAgIFJldGFpblB0cjxRVE1vdmllVmlldz4gbV9xdE1vdmllVmlldzsKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0Lm1tCShyZXZpc2lvbiA3MDY1NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQwLDYgKzE1
NDAsMTUgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldFByZWxvYWQoTWVkaQogICAgICAg
ICByZXN1bWVMb2FkKCk7CiB9CiAKK2Zsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZTo6bWVkaWFUaW1l
Rm9yVGltZVZhbHVlKGZsb2F0IHRpbWVWYWx1ZSkgY29uc3QKK3sKKyAgICBpZiAoIW1ldGFEYXRh
QXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybiB0aW1lVmFsdWU7CisKKyAgICBRVFRpbWUgcXR0
aW1lID0gY3JlYXRlUVRUaW1lKHRpbWVWYWx1ZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZs
b2F0PihxdHRpbWUudGltZVZhbHVlKSAvIHF0dGltZS50aW1lU2NhbGU7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogQGltcGxlbWVudGF0aW9uIFdlYkNvcmVNb3ZpZU9ic2VydmVyCklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlj
a1RpbWVWaXN1YWxDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcAko
cmV2aXNpb24gNzA2NTUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBs
YXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTA1Myw2ICsxMDUzLDE2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFs
Q28KICAgICAgICAgcmVzdW1lTG9hZCgpOwogfQogCitmbG9hdCBNZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVWaXN1YWxDb250ZXh0OjptZWRpYVRpbWVGb3JUaW1lVmFsdWUoZmxvYXQgdGltZVZh
bHVlKSBjb25zdAoreworICAgIGxvbmcgdGltZVNjYWxlOworICAgIGlmIChtX3JlYWR5U3RhdGUg
PCBNZWRpYVBsYXllcjo6SGF2ZU1ldGFkYXRhIHx8ICEodGltZVNjYWxlID0gbV9tb3ZpZS0+dGlt
ZVNjYWxlKCkpKQorICAgICAgICByZXR1cm4gdGltZVZhbHVlOworCisgICAgbG9uZyBtZWRpYVRp
bWVWYWx1ZSA9IHN0YXRpY19jYXN0PGxvbmc+KHRpbWVWYWx1ZSAqIHRpbWVTY2FsZSk7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihtZWRpYVRpbWVWYWx1ZSkgLyB0aW1lU2NhbGU7Cit9
CisKIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQ6Ok1lZGlhUmVuZGVy
aW5nTW9kZSBNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpjdXJyZW50
UmVuZGVyaW5nTW9kZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX21vdmllKQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFs
Q29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01l
ZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuaAkocmV2aXNpb24gNzA2NTUp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlj
a1RpbWVWaXN1YWxDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3Myw2ICsxNzMsOCBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCByZXRyaWV2ZUFuZFJlc2V0TW92aWVUcmFuc2Zvcm0oKTsKIAor
ICAgIHZpcnR1YWwgZmxvYXQgbWVkaWFUaW1lRm9yVGltZVZhbHVlKGZsb2F0KSBjb25zdDsKKwog
ICAgIE1lZGlhUGxheWVyKiBtX3BsYXllcjsKICAgICBSZWZQdHI8UVRNb3ZpZT4gbV9tb3ZpZTsK
ICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9RVE1vdmllLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9RVE1vdmllLmNwcAkocmV2aXNpb24gNzA2NTUpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9RVE1vdmllLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzM4LDYg
KzczOCwxNCBAQCB2b2lkIFFUTW92aWU6OnNldENsb3NlZENhcHRpb25zVmlzaWJsZShiCiAgICAg
UVRTZXRUcmFja1Byb3BlcnR5KGNjVHJhY2ssIGNsb3NlZENhcHRpb25UcmFja1R5cGUsIGNsb3Nl
ZENhcHRpb25EaXNwbGF5UHJvcGVydHlJRCwgc2l6ZW9mKGRvRGlzcGxheSksICZkb0Rpc3BsYXkp
OwogfQogCitsb25nIFFUTW92aWU6OnRpbWVTY2FsZSgpIGNvbnN0IAoreworICAgIGlmICghbV9w
cml2YXRlLT5tX21vdmllKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBHZXRNb3Zp
ZVRpbWVTY2FsZShtX3ByaXZhdGUtPm1fbW92aWUpOworfQorCiBzdGF0aWMgdm9pZCBpbml0aWFs
aXplU3VwcG9ydGVkVHlwZXMoKSAKIHsKICAgICBpZiAoZ1N1cHBvcnRlZFR5cGVzKQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vUVRNb3ZpZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1FUTW92aWUuaAkocmV2aXNpb24gNzA2NTUpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9RVE1vdmllLmgJKHdvcmtpbmcgY29weSkK
QEAgLTExNSw2ICsxMTUsOCBAQCBwdWJsaWM6CiAKICAgICBNb3ZpZSBnZXRNb3ZpZUhhbmRsZSgp
IGNvbnN0OwogCisgICAgbG9uZyB0aW1lU2NhbGUoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBR
VE1vdmllUHJpdmF0ZSogbV9wcml2YXRlOwogICAgIGZyaWVuZCBjbGFzcyBRVE1vdmllUHJpdmF0
ZTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDcwNzg1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMTAtMjggIEVyaWMgQ2FybHNvbiAg
PGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2Vla2luZyBieSB2ZXJ5IHNtYWxsIGluY3JlbWVudCBkb2Vzbid0
IGdlbmVyYXRlICdzZWVrZWQnIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00ODUzMAorCisgICAgICAgICogbWVkaWEvdmlkZW8tc2Vlay1ieS1z
bWFsbC1pbmNyZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS92aWRl
by1zZWVrLWJ5LXNtYWxsLWluY3JlbWVudC5odG1sOiBBZGRlZC4KKwogMjAxMC0xMC0yOCAgRGFu
IEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0g
Um9iZW4uCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS92aWRlby1zZWVrLWJ5LXNtYWxsLWluY3Jl
bWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
c2Vlay1ieS1zbWFsbC1pbmNyZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvbWVkaWEvdmlkZW8tc2Vlay1ieS1zbWFsbC1pbmNyZW1lbnQtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM2IEBACitUZXN0IHNlZWtpbmcgYnkgdmVyeSBzbWFs
bCBpbmNyZW1lbnRzLgorCitFVkVOVChjYW5wbGF5dGhyb3VnaCkKK0VYUEVDVEVEIChzZWVrZWRF
dmVudENvdW50ID09ICcwJykgT0sKK0VWRU5UKHNlZWtpbmcpCitFVkVOVChzZWVrZWQpCitFWFBF
Q1RFRCAoc2Vla2VkRXZlbnRDb3VudCA9PSAnMScpIE9LCitFVkVOVChzZWVraW5nKQorRVZFTlQo
c2Vla2VkKQorRVhQRUNURUQgKHNlZWtlZEV2ZW50Q291bnQgPT0gJzInKSBPSworRVZFTlQoc2Vl
a2luZykKK0VWRU5UKHNlZWtlZCkKK0VYUEVDVEVEIChzZWVrZWRFdmVudENvdW50ID09ICczJykg
T0sKK0VWRU5UKHNlZWtpbmcpCitFVkVOVChzZWVrZWQpCitFWFBFQ1RFRCAoc2Vla2VkRXZlbnRD
b3VudCA9PSAnNCcpIE9LCitFVkVOVChzZWVraW5nKQorRVZFTlQoc2Vla2VkKQorRVhQRUNURUQg
KHNlZWtlZEV2ZW50Q291bnQgPT0gJzUnKSBPSworRVZFTlQoc2Vla2luZykKK0VWRU5UKHNlZWtl
ZCkKK0VYUEVDVEVEIChzZWVrZWRFdmVudENvdW50ID09ICc2JykgT0sKK0VWRU5UKHNlZWtpbmcp
CitFVkVOVChzZWVrZWQpCitFWFBFQ1RFRCAoc2Vla2VkRXZlbnRDb3VudCA9PSAnNycpIE9LCitF
VkVOVChzZWVraW5nKQorRVZFTlQoc2Vla2VkKQorRVhQRUNURUQgKHNlZWtlZEV2ZW50Q291bnQg
PT0gJzgnKSBPSworRVZFTlQoc2Vla2luZykKK0VWRU5UKHNlZWtlZCkKK0VYUEVDVEVEIChzZWVr
ZWRFdmVudENvdW50ID09ICc5JykgT0sKK0VWRU5UKHNlZWtpbmcpCitFVkVOVChzZWVrZWQpCitF
WFBFQ1RFRCAoc2Vla2VkRXZlbnRDb3VudCA9PSAnMTAnKSBPSworRU5EIE9GIFRFU1QKKwpJbmRl
eDogTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tc2Vlay1ieS1zbWFsbC1pbmNyZW1lbnQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS92aWRlby1zZWVrLWJ5LXNtYWxsLWluY3Jl
bWVudC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tc2Vlay1i
eS1zbWFsbC1pbmNyZW1lbnQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NSBAQAorPCFE
T0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9bWVk
aWEtZmlsZS5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48
L3NjcmlwdD4KKworICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgdmFyIHNlZWtlZEV2ZW50
Q291bnQgPSAwOworICAgICAgICAgICAgdmFyIHNlZWtzQXR0ZW1wdGVkID0gMDsKKyAgICAgICAg
ICAgIHZhciBpbmNyZW1lbnQgPSAwLjAwMDQ7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHNlZWtJ
bmNyZW1lbnQoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8g
dmVyaWZ5IHRoYXQgc2Vla2luZyBieSBhbiBpbmNyZW1lbnQgc21hbGxlciB0aGFuIHRoZSB0ZXN0
IG1vdmllJ3MgdGltZSBzY2FsZQorICAgICAgICAgICAgICAgIC8vIHN1Y2NlZWRzLiB0ZXN0Lm1w
NCBoYXMgYSB0aW1lIHNjYWxlIG9mIDI1MDAgKHRoZSBzbWFsbGVzdCB1bml0IG9mIHRpbWUgaW4g
dGhhdCBmaWxlCisgICAgICAgICAgICAgICAgLy8gaXMgMC4wMDA0IHNlY29uZHMpLCBzbyBzdGFy
dCB3aXRoIHRoYXQgYW5kIGRlY3JlYXNlIGJ5IGhhbGYgZWFjaCB0aW1lLgorICAgICAgICAgICAg
ICAgIGluY3JlbWVudCAvPSAyOworICAgICAgICAgICAgICAgIHJldHVybiBpbmNyZW1lbnQ7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHNlZWtlZCgpCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgKytzZWVrZWRFdmVudENvdW50OworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmdW5jdGlvbiBhdHRlbXB0U2VlaygpCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgdmFyIG5vdyA9IHZpZGVvLmN1cnJlbnRUaW1lOworCisgICAgICAgICAgICAg
ICAgdmlkZW8uY3VycmVudFRpbWUgPSBub3cgKyBzZWVrSW5jcmVtZW50KCk7CisgICAgICAgICAg
ICAgICAgKytzZWVrc0F0dGVtcHRlZDsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHRlc3RB
Z2FpbiwgMTApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0QWdh
aW4oKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJlcG9ydEV4cGVjdGVkKHNlZWtz
QXR0ZW1wdGVkID09IHNlZWtlZEV2ZW50Q291bnQsICJzZWVrZWRFdmVudENvdW50IiwgIj09Iiwg
c2Vla3NBdHRlbXB0ZWQsIHNlZWtlZEV2ZW50Q291bnQpOworCisgICAgICAgICAgICAgICAgaWYg
KHNlZWtzQXR0ZW1wdGVkID09IDEwKSB7CisgICAgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICAgIHNldFRpbWVvdXQoYXR0ZW1wdFNlZWssIDEwMCk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgdmlkZW8uc3JjID0gZmlu
ZE1lZGlhRmlsZSgidmlkZW8iLCAiY29udGVudC90ZXN0Iik7CisKKyAgICAgICAgICAgICAgICB3
YWl0Rm9yRXZlbnQoJ2NhbnBsYXl0aHJvdWdoJywgdGVzdEFnYWluKTsKKyAgICAgICAgICAgICAg
ICB3YWl0Rm9yRXZlbnQoJ3NlZWtlZCcsIHNlZWtlZCk7CisgICAgICAgICAgICAgICAgd2FpdEZv
ckV2ZW50KCdzZWVraW5nJyk7CisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdwbGF5Jyk7
CisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdwYXVzZScpOworICAgICAgICAgICAgfQor
ICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDx2aWRl
byBjb250cm9scz48L3ZpZGVvPgorICAgICAgICA8cD5UZXN0IHNlZWtpbmcgYnkgdmVyeSBzbWFs
bCBpbmNyZW1lbnRzLjwvcD4KKyAgICAgICAgPHNjcmlwdD5zdGFydCgpPC9zY3JpcHQ+CisgICAg
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72522</attachid>
            <date>2010-11-01 11:02:52 -0700</date>
            <delta_ts>2010-11-01 11:07:40 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_7.txt</filename>
            <type>text/plain</type>
            <size>12888</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTAyNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMTAtMTEtMDEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU2Vla2luZyBieSB2ZXJ5IHNtYWxsIGluY3JlbWVudCBkb2Vzbid0IGdlbmVyYXRlICdzZWVr
ZWQnIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00ODUzMAorCisgICAgICAgIFRlc3Q6IG1lZGlhL3ZpZGVvLXNlZWstYnktc21hbGwtaW5jcmVt
ZW50Lmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWVrKTogQXNrIHRoZSBtZWRpYSBlbmdpbmUg
Zm9yIGl0cyBjbG9zZXN0IHRpbWUgdmFsdWUgc28gd2UgY2FuCisgICAgICAgIGF2b2lkIGFza2lu
ZyBpdCB0byBzZWVrIHRvIHRoZSBjdXJyZW50IHRpbWUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6
bWVkaWFUaW1lRm9yVGltZVZhbHVlKTogTmV3LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQ
cml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6
Om1lZGlhVGltZUZvclRpbWVWYWx1ZSk6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjptZWRpYVRpbWVGb3JUaW1lVmFsdWUpOiBSZXR1cm4gdGhl
IGNsb3Nlc3QgdmFsdWUgaW4gdGhlIG1vdmllJ3MgdGltZSBzY2FsZS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZp
c3VhbENvbnRleHQ6Om1lZGlhVGltZUZvclRpbWVWYWx1ZSk6IERpdHRvCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRl
eHQuaDoKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9RVE1vdmllLmNwcDoKKyAg
ICAgICAgKFFUTW92aWU6OnRpbWVTY2FsZSk6IFJldHVybiB0aGUgbW92aWUncyB0aW1lIHNjYWxl
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9RVE1vdmllLmg6CisKIDIwMTAtMTEt
MDEgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTm90
IHJldmlld2VkOiBzaW1wbGlmeSBpbnNwZWN0b3Igc3R5bGVzIHRlc3QgdG8gbWFrZSBhbGwgYm90
cyBoYXBweS4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlzaW9uIDcxMDI0
KQorKysgV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTEzLDYgKzExMTMsMTggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZWVrKGZsb2F0IHRp
bWUsIAogICAgIGZsb2F0IGVhcmxpZXN0VGltZSA9IG1fcGxheWVyLT5zdGFydFRpbWUoKTsKICAg
ICB0aW1lID0gbWF4KHRpbWUsIGVhcmxpZXN0VGltZSk7CiAKKyAgICAvLyBBc2sgdGhlIG1lZGlh
IGVuZ2luZSBmb3IgdGhlIHRpbWUgdmFsdWUgaW4gdGhlIG1vdmllJ3MgdGltZSBzY2FsZSBiZWZv
cmUgY29tcGFyaW5nIHdpdGggY3VycmVudCB0aW1lLiBUaGlzCisgICAgLy8gaXMgbmVjZXNzYXJ5
IGJlY2F1c2UgaWYgdGhlIHNlZWsgdGltZSBpcyBub3QgZXF1YWwgdG8gY3VycmVudFRpbWUgYnV0
IHRoZSBkZWx0YSBpcyBsZXNzIHRoYW4gdGhlIG1vdmllJ3MKKyAgICAvLyB0aW1lIHNjYWxlLCB3
ZSB3aWxsIGFzayB0aGUgbWVkaWEgZW5naW5lIHRvICJzZWVrIiB0byB0aGUgY3VycmVudCBtb3Zp
ZSB0aW1lLCB3aGljaCBtYXkgYmUgYSBub29wIGFuZAorICAgIC8vIG5vdCBnZW5lcmF0ZSBhIHRp
bWVjaGFuZ2VkIGNhbGxiYWNrLiBUaGlzIG1lYW5zIG1fc2Vla2luZyB3aWxsIG5ldmVyIGJlIGNs
ZWFyZWQgYW5kIHdlIHdpbGwgbmV2ZXIgCisgICAgLy8gZmlyZSBhICdzZWVrZWQnIGV2ZW50Lgor
I2lmICFMT0dfRElTQUJMRUQKKyAgICBmbG9hdCBtZWRpYVRpbWUgPSBtX3BsYXllci0+bWVkaWFU
aW1lRm9yVGltZVZhbHVlKHRpbWUpOworICAgIGlmICh0aW1lICE9IG1lZGlhVGltZSkKKyAgICAg
ICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6c2VlayglZikgLSBtZWRpYSB0aW1lbGlu
ZSBlcXVpdmFsZW50IGlzICVmIiwgdGltZSwgbWVkaWFUaW1lKTsKKyNlbmRpZgorICAgIHRpbWUg
PSBtX3BsYXllci0+bWVkaWFUaW1lRm9yVGltZVZhbHVlKHRpbWUpOworCiAgICAgLy8gNyAtIElm
IHRoZSAocG9zc2libHkgbm93IGNoYW5nZWQpIG5ldyBwbGF5YmFjayBwb3NpdGlvbiBpcyBub3Qg
aW4gb25lIG9mIHRoZSByYW5nZXMgZ2l2ZW4gaW4gdGhlIAogICAgIC8vIHNlZWthYmxlIGF0dHJp
YnV0ZSwgdGhlbiBsZXQgaXQgYmUgdGhlIHBvc2l0aW9uIGluIG9uZSBvZiB0aGUgcmFuZ2VzIGdp
dmVuIGluIHRoZSBzZWVrYWJsZSBhdHRyaWJ1dGUgCiAgICAgLy8gdGhhdCBpcyB0aGUgbmVhcmVz
dCB0byB0aGUgbmV3IHBsYXliYWNrIHBvc2l0aW9uLiAuLi4gSWYgdGhlcmUgYXJlIG5vIHJhbmdl
cyBnaXZlbiBpbiB0aGUgc2Vla2FibGUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwCShyZXZpc2lvbiA3MTAyNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDMsNiArNjQzLDExIEBA
IE1lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBlIE1lZGlhUGxheWVyOjoKICAgICByZXR1cm4gbV9w
cml2YXRlLT5tb3ZpZUxvYWRUeXBlKCk7CiB9CiAKK2Zsb2F0IE1lZGlhUGxheWVyOjptZWRpYVRp
bWVGb3JUaW1lVmFsdWUoZmxvYXQgdGltZVZhbHVlKSBjb25zdAoreworICAgIHJldHVybiBtX3By
aXZhdGUtPm1lZGlhVGltZUZvclRpbWVWYWx1ZSh0aW1lVmFsdWUpOworfQorCiAvLyBDbGllbnQg
Y2FsbGJhY2tzLgogdm9pZCBNZWRpYVBsYXllcjo6bmV0d29ya1N0YXRlQ2hhbmdlZCgpCiB7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCShyZXZpc2lvbiA3MTAy
NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMjc0LDYgKzI3NCw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzU2luZ2xlU2Vj
dXJpdHlPcmlnaW4oKSBjb25zdDsKIAorICAgIGZsb2F0IG1lZGlhVGltZUZvclRpbWVWYWx1ZShm
bG9hdCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGll
bnQqKTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZh
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oCShyZXZpc2lvbiA3MTAyNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNSw2ICsxMjUsMTAgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JSZW5kZXJpbmcoKSB7IH0KIAor
ICAgIC8vIFRpbWUgdmFsdWUgaW4gdGhlIG1vdmllJ3MgdGltZSBzY2FsZS4gSXQgaXMgb25seSBu
ZWNlc3NhcnkgdG8gb3ZlcnJpZGUgdGhpcyBpZiB0aGUgbWVkaWEKKyAgICAvLyBlbmdpbmUgdXNl
cyByYXRpb25hbCBudW1iZXJzIHRvIHJlcHJlc2VudCBtZWRpYSB0aW1lLgorICAgIHZpcnR1YWwg
ZmxvYXQgbWVkaWFUaW1lRm9yVGltZVZhbHVlKGZsb2F0IHRpbWVWYWx1ZSkgY29uc3QgeyByZXR1
cm4gdGltZVZhbHVlOyB9CisKIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAkocmV2aXNpb24g
NzEwMjQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZh
dGVRVEtpdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsNiArMTczLDggQEAgcHJpdmF0ZToKIAog
ICAgIGJvb2wgaXNSZWFkeUZvclZpZGVvU2V0dXAoKSBjb25zdDsKICAgICAKKyAgICB2aXJ0dWFs
IGZsb2F0IG1lZGlhVGltZUZvclRpbWVWYWx1ZShmbG9hdCkgY29uc3Q7CisKICAgICBNZWRpYVBs
YXllciogbV9wbGF5ZXI7CiAgICAgUmV0YWluUHRyPFFUTW92aWU+IG1fcXRNb3ZpZTsKICAgICBS
ZXRhaW5QdHI8UVRNb3ZpZVZpZXc+IG1fcXRNb3ZpZVZpZXc7CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5t
bQkocmV2aXNpb24gNzEwMjQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRp
YVBsYXllclByaXZhdGVRVEtpdC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTU0MCw2ICsxNTQwLDE1
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRQcmVsb2FkKE1lZGkKICAgICAgICAgcmVz
dW1lTG9hZCgpOwogfQogCitmbG9hdCBNZWRpYVBsYXllclByaXZhdGU6Om1lZGlhVGltZUZvclRp
bWVWYWx1ZShmbG9hdCB0aW1lVmFsdWUpIGNvbnN0Cit7CisgICAgaWYgKCFtZXRhRGF0YUF2YWls
YWJsZSgpKQorICAgICAgICByZXR1cm4gdGltZVZhbHVlOworCisgICAgUVRUaW1lIHF0dGltZSA9
IGNyZWF0ZVFUVGltZSh0aW1lVmFsdWUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4o
cXR0aW1lLnRpbWVWYWx1ZSkgLyBxdHRpbWUudGltZVNjYWxlOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlTW92aWVPYnNlcnZlcgpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1l
VmlzdWFsQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAJKHJldmlz
aW9uIDcxMDI0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQ
cml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNTMs
NiArMTA1MywxNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvCiAg
ICAgICAgIHJlc3VtZUxvYWQoKTsKIH0KIAorZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tU
aW1lVmlzdWFsQ29udGV4dDo6bWVkaWFUaW1lRm9yVGltZVZhbHVlKGZsb2F0IHRpbWVWYWx1ZSkg
Y29uc3QKK3sKKyAgICBsb25nIHRpbWVTY2FsZTsKKyAgICBpZiAobV9yZWFkeVN0YXRlIDwgTWVk
aWFQbGF5ZXI6OkhhdmVNZXRhZGF0YSB8fCAhKHRpbWVTY2FsZSA9IG1fbW92aWUtPnRpbWVTY2Fs
ZSgpKSkKKyAgICAgICAgcmV0dXJuIHRpbWVWYWx1ZTsKKworICAgIGxvbmcgbWVkaWFUaW1lVmFs
dWUgPSBzdGF0aWNfY2FzdDxsb25nPih0aW1lVmFsdWUgKiB0aW1lU2NhbGUpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxmbG9hdD4obWVkaWFUaW1lVmFsdWUpIC8gdGltZVNjYWxlOworfQorCiBN
ZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0OjpNZWRpYVJlbmRlcmluZ01v
ZGUgTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dDo6Y3VycmVudFJlbmRl
cmluZ01vZGUoKSBjb25zdAogewogICAgIGlmICghbV9tb3ZpZSkKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRl
eHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBs
YXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmgJKHJldmlzaW9uIDcxMDI0KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1l
VmlzdWFsQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsNiArMTczLDggQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgcmV0cmlldmVBbmRSZXNldE1vdmllVHJhbnNmb3JtKCk7CiAKKyAgICB2
aXJ0dWFsIGZsb2F0IG1lZGlhVGltZUZvclRpbWVWYWx1ZShmbG9hdCkgY29uc3Q7CisKICAgICBN
ZWRpYVBsYXllciogbV9wbGF5ZXI7CiAgICAgUmVmUHRyPFFUTW92aWU+IG1fbW92aWU7CiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vUVRNb3ZpZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vUVRNb3ZpZS5jcHAJKHJldmlzaW9uIDcxMDI0KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vUVRNb3ZpZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczOCw2ICs3Mzgs
MTQgQEAgdm9pZCBRVE1vdmllOjpzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYgogICAgIFFUU2V0
VHJhY2tQcm9wZXJ0eShjY1RyYWNrLCBjbG9zZWRDYXB0aW9uVHJhY2tUeXBlLCBjbG9zZWRDYXB0
aW9uRGlzcGxheVByb3BlcnR5SUQsIHNpemVvZihkb0Rpc3BsYXkpLCAmZG9EaXNwbGF5KTsKIH0K
IAorbG9uZyBRVE1vdmllOjp0aW1lU2NhbGUoKSBjb25zdCAKK3sKKyAgICBpZiAoIW1fcHJpdmF0
ZS0+bV9tb3ZpZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gR2V0TW92aWVUaW1l
U2NhbGUobV9wcml2YXRlLT5tX21vdmllKTsKK30KKwogc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVN1
cHBvcnRlZFR5cGVzKCkgCiB7CiAgICAgaWYgKGdTdXBwb3J0ZWRUeXBlcykKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1FUTW92aWUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9RVE1vdmllLmgJKHJldmlzaW9uIDcxMDI0KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vUVRNb3ZpZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTUsNiArMTE1LDggQEAgcHVibGljOgogCiAgICAgTW92aWUgZ2V0TW92aWVIYW5kbGUoKSBjb25z
dDsKIAorICAgIGxvbmcgdGltZVNjYWxlKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgUVRNb3Zp
ZVByaXZhdGUqIG1fcHJpdmF0ZTsKICAgICBmcmllbmQgY2xhc3MgUVRNb3ZpZVByaXZhdGU7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA3MTAyNCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTExLTAxICBFcmljIENhcmxzb24gIDxlcmlj
LmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFNlZWtpbmcgYnkgdmVyeSBzbWFsbCBpbmNyZW1lbnQgZG9lc24ndCBnZW5l
cmF0ZSAnc2Vla2VkJyBldmVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDg1MzAKKworICAgICAgICAqIG1lZGlhL3ZpZGVvLXNlZWstYnktc21hbGwt
aW5jcmVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvdmlkZW8tc2Vl
ay1ieS1zbWFsbC1pbmNyZW1lbnQuaHRtbDogQWRkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9x
dC9Ta2lwcGVkOiBTa2lwIG5ldyB0ZXN0IGFzIGl0IGZhaWxzLgorCiAyMDEwLTExLTAxICBBZGFt
IFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc29tZSBmYWlsaW5nL3Rp
bWluZyBvdXQgdGVzdHMgdG8gdGhlIFdpbmRvd3MgU2tpcHBlZCBmaWxlCkluZGV4OiBMYXlvdXRU
ZXN0cy9tZWRpYS92aWRlby1zZWVrLWJ5LXNtYWxsLWluY3JlbWVudC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tc2Vlay1ieS1zbWFsbC1pbmNyZW1l
bnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
c2Vlay1ieS1zbWFsbC1pbmNyZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDM4IEBACitUZXN0IHNlZWtpbmcgYnkgdmVyeSBzbWFsbCBpbmNyZW1lbnRzLgorCitFVkVO
VChjYW5wbGF5dGhyb3VnaCkKKworKiogU2Vla2luZyBieSAwLjAwMDQKK0VWRU5UKHNlZWtpbmcp
CitFVkVOVChzZWVrZWQpCisKKyoqIFNlZWtpbmcgYnkgMC4wMDAyCitFVkVOVChzZWVraW5nKQor
RVZFTlQoc2Vla2VkKQorCisqKiBTZWVraW5nIGJ5IDAuMDAwMQorRVZFTlQoc2Vla2luZykKK0VW
RU5UKHNlZWtlZCkKKworKiogU2Vla2luZyBieSAwLjAwMDA1CitFVkVOVChzZWVraW5nKQorRVZF
TlQoc2Vla2VkKQorCisqKiBTZWVraW5nIGJ5IDAuMDAwMDI1CitFVkVOVChzZWVraW5nKQorRVZF
TlQoc2Vla2VkKQorCisqKiBTZWVraW5nIGJ5IDAuMDAwMDEyNQorRVZFTlQoc2Vla2luZykKK0VW
RU5UKHNlZWtlZCkKKworKiogU2Vla2luZyBieSAwLjAwMDAwNjI1CitFVkVOVChzZWVraW5nKQor
RVZFTlQoc2Vla2VkKQorCisqKiBTZWVraW5nIGJ5IDAuMDAwMDAzMTI1CitFVkVOVChzZWVraW5n
KQorRVZFTlQoc2Vla2VkKQorCitFTkQgT0YgVEVTVAorCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRp
YS92aWRlby1zZWVrLWJ5LXNtYWxsLWluY3JlbWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL21lZGlhL3ZpZGVvLXNlZWstYnktc21hbGwtaW5jcmVtZW50Lmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9tZWRpYS92aWRlby1zZWVrLWJ5LXNtYWxsLWluY3JlbWVudC5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1s
PgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz1tZWRpYS1maWxlLmpzPjwvc2NyaXB0
PgorICAgICAgICA8c2NyaXB0IHNyYz12aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorCisgICAgICAg
IDxzY3JpcHQ+CisgICAgICAgICAgICB2YXIgc2Vla2VkRXZlbnRDb3VudCA9IDA7CisgICAgICAg
ICAgICB2YXIgaW5jcmVtZW50ID0gMDsKKworICAgICAgICAgICAgZnVuY3Rpb24gc2Vla0luY3Jl
bWVudCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0byB2ZXJp
ZnkgdGhhdCBzZWVraW5nIGJ5IGFuIGluY3JlbWVudCBzbWFsbGVyIHRoYW4gdGhlIHRlc3QgbW92
aWUncyB0aW1lIHNjYWxlCisgICAgICAgICAgICAgICAgLy8gKHRoZSBzbWFsbGVzdCB1bml0IG9m
IHRpbWUgaW4gdGhhdCBmaWxlKSBzdWNjZWVkcy4gdGVzdC5tcDQgaGFzIGEgdGltZSBzY2FsZSBv
ZiAyNTAwLCAKKyAgICAgICAgICAgICAgICAvLyAwLjAwMDQgc2Vjb25kcywgc28gc3RhcnQgd2l0
aCB0aGF0IGFuZCBkZWNyZWFzZSBieSBoYWxmIGVhY2ggdGltZS4KKyAgICAgICAgICAgICAgICBp
ZiAoIWluY3JlbWVudCkKKyAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50ID0gMC4wMDA0Owor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50IC89IDI7
CisgICAgICAgICAgICAgICAgcmV0dXJuIGluY3JlbWVudDsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgZnVuY3Rpb24gc2Vla2VkKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBpZiAoKytzZWVrZWRFdmVudENvdW50ID09IDgpIHsKKyAgICAgICAgICAgICAgICAgICAgY29u
c29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGF0
dGVtcHRTZWVrKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGF0dGVt
cHRTZWVrKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB2YXIgaW5jcmVtZW50ID0g
c2Vla0luY3JlbWVudCgpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFNl
ZWtpbmcgYnkgIiArIGluY3JlbWVudCk7CisgICAgICAgICAgICAgICAgdmlkZW8uY3VycmVudFRp
bWUgKz0gaW5jcmVtZW50OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBz
dGFydCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgp
OworICAgICAgICAgICAgICAgIHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgImNv
bnRlbnQvdGVzdCIpOworCisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5dGhy
b3VnaCcsIGF0dGVtcHRTZWVrKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ3NlZWtl
ZCcsIHNlZWtlZCk7CisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdzZWVraW5nJyk7Cisg
ICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdwbGF5Jyk7CisgICAgICAgICAgICAgICAgd2Fp
dEZvckV2ZW50KCdwYXVzZScpOworICAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAg
ICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDx2aWRlbyBjb250cm9scz48L3ZpZGVvPgor
ICAgICAgICA8cD5UZXN0IHNlZWtpbmcgYnkgdmVyeSBzbWFsbCBpbmNyZW1lbnRzLjwvcD4KKyAg
ICAgICAgPHNjcmlwdD5zdGFydCgpPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCShyZXZpc2lvbiA3MTAyNCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTY3OCw2ICs2NzgsOSBAQCBt
ZWRpYS92aWRlby1kb2VzLW5vdC1sb29wLmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ1MDkzCiBtZWRpYS9tZWRpYS1jYW4tcGxheS1tcGVnNC12aWRlby5o
dG1sCiAKKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4NjE3Citt
ZWRpYS92aWRlby1zZWVrLWJ5LXNtYWxsLWluY3JlbWVudC5odG1sCisKICMgPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0gIwogIyBDcmFzaGluZyB0ZXN0cyBkdWUgdG8gcmUtZW5hYmxlZCBQaG9ub24gc3Vw
cG9ydCBpbiBCdWlsZGJvdCdzIFF0ICAgICAgICAgICAgICAjCiAjIFNraXAgdGhlc2UgdW50aWwg
YSBwcm9wZXIgc29sdXRpb24gZm9yIHRoZSBQaG9ub24gcmVsYXRlZCBjcmFzaGVzIGZvdW5kLiAg
ICAgICMK
</data>
<flag name="review"
          id="62785"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72529</attachid>
            <date>2010-11-01 11:33:37 -0700</date>
            <delta_ts>2010-11-01 11:34:54 -0700</delta_ts>
            <desc>webkit-patch upload fail</desc>
            <filename>bug-48530-20101101113335.patch</filename>
            <type>text/plain</type>
            <size>4166</size>
            <attacher name="Ilya Sherman">isherman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWE3NTllMjhjNDIyMzYwNmEwZjNiNWJlZDFiODYwYTNiNzU4ZDQ3Mi4uMWE4ZTliZDk5N2NhM2Vj
ODg0YTZmMDJkNDUzZjE4ZjkyOWZhZjhiNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTIyMzgsNiArMjIzOCwyMCBAQAogICAgICAgICAq
IHBsYXRmb3JtL1VVSUQuY3BwOgogICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ2Fub25pY2FsVVVJ
RFN0cmluZyk6CiAKKzIwMTAtMTAtMjggIElseWEgU2hlcm1hbiAgPGlzaGVybWFuQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
dm9pZCBvdmVybGFwcGluZyBsYWJlbCB0ZXh0IGluIGF1dG9maWxsIHBvcHVwIHdpdGggaWNvbi4K
KyAgICAgICAgVXBkYXRlcyB0aGUgbWVudSB3aWR0aCBjb21wdXRhdGlvbiB0byB0YWtlIHRoZSBp
Y29uIHdpZHRoIGludG8gYWNjb3VudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ4NDk3CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQb3B1cExpc3RCb3g6OnBhaW50Um93KToKKyAgICAgICAgKFdlYkNvcmU6
OlBvcHVwTGlzdEJveDo6bGF5b3V0KToKKwogMjAxMC0xMC0yOCAgSmlhIFB1ICA8anB1QGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Qb3B1cE1lbnVDaHJvbWl1bS5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVudUNocm9taXVtLmNwcAppbmRleCAzYzgwN2JhMTA4
YWFkZWMzN2IxYmU1ZGI1MWQwYWJjMTQwZDdkZTIzLi4zZmY0ZmYwZGExYTA4NjNkNjA0ODg4M2Q0
ODM4MWVkYzE1NjYwNTgzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bv
cHVwTWVudUNocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BvcHVw
TWVudUNocm9taXVtLmNwcApAQCAtOTI3LDE1ICs5MjcsMTYgQEAgdm9pZCBQb3B1cExpc3RCb3g6
OnBhaW50Um93KEdyYXBoaWNzQ29udGV4dCogZ2MsIGNvbnN0IEludFJlY3QmIHJlY3QsIGludCBy
b3dJbmQKICAgICAvLyBQcmVwYXJlIHRleHQgdG8gYmUgZHJhd24uCiAgICAgU3RyaW5nIGl0ZW1U
ZXh0ID0gbV9wb3B1cENsaWVudC0+aXRlbVRleHQocm93SW5kZXgpOwogICAgIFN0cmluZyBpdGVt
TGFiZWwgPSBtX3BvcHVwQ2xpZW50LT5pdGVtTGFiZWwocm93SW5kZXgpOworICAgIFN0cmluZyBp
dGVtSWNvbiA9IG1fcG9wdXBDbGllbnQtPml0ZW1JY29uKHJvd0luZGV4KTsKICAgICBpZiAobV9z
ZXR0aW5ncy5yZXN0cmljdFdpZHRoT2ZMaXN0Qm94KSB7IC8vIFRydW5jYXRlIHN0cmluZ3MgdG8g
Zml0IGluLgogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGxlZnRUcnVuY2F0ZSBmb3IgdGhl
IHJ0bCBjYXNlLgogICAgICAgICAvLyBTdHJpbmdUcnVuY2F0b3I6OmxlZnRUcnVuY2F0ZSB3b3Vs
ZCBoYXZlIHRvIGJlIGltcGxlbWVudGVkLgogICAgICAgICBTdHJpbmcgc3RyID0gU3RyaW5nVHJ1
bmNhdG9yOjpyaWdodFRydW5jYXRlKGl0ZW1UZXh0LCBtYXhXaWR0aCwgaXRlbUZvbnQpOwogICAg
ICAgICBpZiAoc3RyICE9IGl0ZW1UZXh0KSB7CiAgICAgICAgICAgICBpdGVtVGV4dCA9IHN0cjsK
LSAgICAgICAgICAgIC8vIERvbid0IGRpc3BsYXkgdGhlIGxhYmVsLCB3ZSBhbHJlYWR5IGRvbid0
IGhhdmUgZW5vdWdoIHJvb20gZm9yIHRoZQotICAgICAgICAgICAgLy8gaXRlbSB0ZXh0LgorICAg
ICAgICAgICAgLy8gRG9uJ3QgZGlzcGxheSB0aGUgbGFiZWwgb3IgaWNvbiwgd2UgYWxyZWFkeSBk
b24ndCBoYXZlIGVub3VnaCByb29tIGZvciB0aGUgaXRlbSB0ZXh0LgogICAgICAgICAgICAgaXRl
bUxhYmVsID0gIiI7CisgICAgICAgICAgICBpdGVtSWNvbiA9ICIiOwogICAgICAgICB9IGVsc2Ug
aWYgKCFpdGVtTGFiZWwuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBpbnQgYXZhaWxhYmxlV2lk
dGggPSBtYXhXaWR0aCAtIGtUZXh0VG9MYWJlbFBhZGRpbmcgLQogICAgICAgICAgICAgICAgIFN0
cmluZ1RydW5jYXRvcjo6d2lkdGgoaXRlbVRleHQsIGl0ZW1Gb250KTsKQEAgLTk2Niw3ICs5Njcs
NiBAQCB2b2lkIFBvcHVwTGlzdEJveDo6cGFpbnRSb3coR3JhcGhpY3NDb250ZXh0KiBnYywgY29u
c3QgSW50UmVjdCYgcmVjdCwgaW50IHJvd0luZAogICAgIGludCByZW1haW5pbmdXaWR0aCA9IHJv
d1JlY3Qud2lkdGgoKSAtIHJpZ2h0UGFkZGluZzsKIAogICAgIC8vIERyYXcgdGhlIGljb24gaWYg
YXBwbGljYWJsZS4KLSAgICBTdHJpbmcgaXRlbUljb24gPSBtX3BvcHVwQ2xpZW50LT5pdGVtSWNv
bihyb3dJbmRleCk7CiAgICAgUmVmUHRyPEltYWdlPiBpbWFnZShJbWFnZTo6bG9hZFBsYXRmb3Jt
UmVzb3VyY2UoaXRlbUljb24udXRmOCgpLmRhdGEoKSkpOwogICAgIGlmIChpbWFnZSAmJiAhaW1h
Z2UtPmlzTnVsbCgpKSB7CiAgICAgICAgIEludFJlY3QgaW1hZ2VSZWN0ID0gaW1hZ2UtPnJlY3Qo
KTsKQEAgLTEwODksNyArMTA4OSwxMyBAQCBpbnQgUG9wdXBMaXN0Qm94OjpnZXRSb3dIZWlnaHQo
aW50IGluZGV4KQogICAgIGlmIChpbmRleCA8IDApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg
cmV0dXJuIGdldFJvd0ZvbnQoaW5kZXgpLmhlaWdodCgpOworICAgIFN0cmluZyBpY29uID0gbV9w
b3B1cENsaWVudC0+aXRlbUljb24oaW5kZXgpOworICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UoSW1h
Z2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKGljb24udXRmOCgpLmRhdGEoKSkpOworCisgICAgaW50
IGZvbnRIZWlnaHQgPSBnZXRSb3dGb250KGluZGV4KS5oZWlnaHQoKTsKKyAgICBpbnQgaWNvbkhl
aWdodCA9IChpbWFnZSAmJiAhaW1hZ2UtPmlzTnVsbCgpKSA/IGltYWdlLT5yZWN0KCkuaGVpZ2h0
KCkgOiAwOworCisgICAgcmV0dXJuIG1heChmb250SGVpZ2h0LCBpY29uSGVpZ2h0KTsKIH0KIAog
SW50UmVjdCBQb3B1cExpc3RCb3g6OmdldFJvd0JvdW5kcyhpbnQgaW5kZXgpCkBAIC0xMjU3LDYg
KzEyNjMsOCBAQCB2b2lkIFBvcHVwTGlzdEJveDo6bGF5b3V0KCkKICAgICAgICAgLy8gRW5zdXJl
IHRoZSBwb3B1cCBpcyB3aWRlIGVub3VnaCB0byBmaXQgdGhpcyBpdGVtLgogICAgICAgICBTdHJp
bmcgdGV4dCA9IG1fcG9wdXBDbGllbnQtPml0ZW1UZXh0KGkpOwogICAgICAgICBTdHJpbmcgbGFi
ZWwgPSBtX3BvcHVwQ2xpZW50LT5pdGVtTGFiZWwoaSk7CisgICAgICAgIFN0cmluZyBpY29uID0g
bV9wb3B1cENsaWVudC0+aXRlbUljb24oaSk7CisgICAgICAgIFJlZlB0cjxJbWFnZT4gaWNvbklt
YWdlKEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShpY29uLnV0ZjgoKS5kYXRhKCkpKTsKICAg
ICAgICAgaW50IHdpZHRoID0gMDsKICAgICAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKICAgICAg
ICAgICAgIHdpZHRoID0gaXRlbUZvbnQud2lkdGgoVGV4dFJ1bih0ZXh0KSk7CkBAIC0xMjY1LDYg
KzEyNzMsMTIgQEAgdm9pZCBQb3B1cExpc3RCb3g6OmxheW91dCgpCiAgICAgICAgICAgICAgICAg
d2lkdGggKz0ga1RleHRUb0xhYmVsUGFkZGluZzsKICAgICAgICAgICAgIHdpZHRoICs9IGl0ZW1G
b250LndpZHRoKFRleHRSdW4obGFiZWwpKTsKICAgICAgICAgfQorICAgICAgICBpZiAoaWNvbklt
YWdlICYmICFpY29uSW1hZ2UtPmlzTnVsbCgpKSB7CisgICAgICAgICAgICBpZiAod2lkdGggPiAw
KQorICAgICAgICAgICAgICAgIHdpZHRoICs9IGtMYWJlbFRvSWNvblBhZGRpbmc7CisgICAgICAg
ICAgICB3aWR0aCArPSBpY29uSW1hZ2UtPnJlY3QoKS53aWR0aCgpOworICAgICAgICB9CisKICAg
ICAgICAgYmFzZVdpZHRoID0gbWF4KGJhc2VXaWR0aCwgd2lkdGgpOwogICAgICAgICAvLyBGSVhN
RTogaHR0cDovL2IvMTIxMDQ4MSBXZSBzaG91bGQgZ2V0IHRoZSBwYWRkaW5nIG9mIGluZGl2aWR1
YWwgb3B0aW9uIGVsZW1lbnRzLgogICAgICAgICBwYWRkaW5nV2lkdGggPSBtYXgocGFkZGluZ1dp
ZHRoLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>