<?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>47518</bug_id>
          
          <creation_ts>2010-10-11 16:51:24 -0700</creation_ts>
          <short_desc>Add DelayDSPKernel files</short_desc>
          <delta_ts>2010-10-14 00:10:50 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Chris Rogers">crogers</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cfleizach</cc>
    
    <cc>cmarrin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jamesr</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kbr</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>292762</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-10-11 16:51:24 -0700</bug_when>
    <thetext>Add DelayDSPKernel files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292763</commentid>
    <comment_count>1</comment_count>
      <attachid>70495</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-10-11 16:52:26 -0700</bug_when>
    <thetext>Created attachment 70495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293298</commentid>
    <comment_count>2</comment_count>
      <attachid>70495</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-10-13 00:58:58 -0700</bug_when>
    <thetext>Comment on attachment 70495
Patch

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

&gt; WebCore/webaudio/DelayDSPKernel.cpp:43
&gt; +    , m_buffer(static_cast&lt;size_t&gt;(processor-&gt;sampleRate() * DefaultMaxDelayTime))

do you need to worry about the case where someone calls DelayDSPKernel(0)

&gt; WebCore/webaudio/DelayDSPKernel.h:46
&gt; +    void setDelayFrames(double numberOfFrames);

this implementation looks like it should be in the header (it&apos;s one line in the cpp file)

&gt; WebCore/webaudio/DelayDSPKernel.h:48
&gt; +protected:

why protected and not private</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293569</commentid>
    <comment_count>3</comment_count>
      <attachid>70641</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-10-13 11:47:07 -0700</bug_when>
    <thetext>Created attachment 70641
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293570</commentid>
    <comment_count>4</comment_count>
      <attachid>70495</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-10-13 11:48:15 -0700</bug_when>
    <thetext>Comment on attachment 70495
Patch

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

&gt;&gt; WebCore/webaudio/DelayDSPKernel.cpp:43
&gt;&gt; +    , m_buffer(static_cast&lt;size_t&gt;(processor-&gt;sampleRate() * DefaultMaxDelayTime))
&gt; 
&gt; do you need to worry about the case where someone calls DelayDSPKernel(0)

Yes, good point.  I&apos;ve added extra checks for negative and zero values in this constructor.

&gt;&gt; WebCore/webaudio/DelayDSPKernel.h:46
&gt;&gt; +    void setDelayFrames(double numberOfFrames);
&gt; 
&gt; this implementation looks like it should be in the header (it&apos;s one line in the cpp file)

FIXED

&gt;&gt; WebCore/webaudio/DelayDSPKernel.h:48
&gt;&gt; +protected:
&gt; 
&gt; why protected and not private

FIXED</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293707</commentid>
    <comment_count>5</comment_count>
      <attachid>70659</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-10-13 14:20:45 -0700</bug_when>
    <thetext>Created attachment 70659
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293709</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-10-13 14:22:18 -0700</bug_when>
    <thetext>The last re-factoring introduced a new bug causing an uninitialized array - uploaded one more patch calling:

m_buffer.zero()

after m_buffer.resize()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293830</commentid>
    <comment_count>7</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-10-13 17:13:11 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 70495 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=70495&amp;action=review
&gt; 
&gt; &gt;&gt; WebCore/webaudio/DelayDSPKernel.cpp:43
&gt; &gt;&gt; +    , m_buffer(static_cast&lt;size_t&gt;(processor-&gt;sampleRate() * DefaultMaxDelayTime))
&gt; &gt; 
&gt; &gt; do you need to worry about the case where someone calls DelayDSPKernel(0)
&gt; 
&gt; Yes, good point.  I&apos;ve added extra checks for negative and zero values in this constructor.
&gt; 

In both patches I don&apos;t see the extra checks.. Can you point those out</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293864</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-10-13 17:50:28 -0700</bug_when>
    <thetext>Starting at line 57 of this patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293867</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-10-13 17:52:06 -0700</bug_when>
    <thetext>Sorry, Chris, I now see you meant &quot;NULL&quot; for the pointer and not zero for the other constructor.  I&apos;ll upload a new patch...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293874</commentid>
    <comment_count>10</comment_count>
      <attachid>70696</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-10-13 18:01:27 -0700</bug_when>
    <thetext>Created attachment 70696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293885</commentid>
    <comment_count>11</comment_count>
      <attachid>70696</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-10-13 18:11:15 -0700</bug_when>
    <thetext>Comment on attachment 70696
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293993</commentid>
    <comment_count>12</comment_count>
      <attachid>70696</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-14 00:10:44 -0700</bug_when>
    <thetext>Comment on attachment 70696
Patch

Clearing flags on attachment: 70696

Committed r69746: &lt;http://trac.webkit.org/changeset/69746&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293994</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-14 00:10:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70495</attachid>
            <date>2010-10-11 16:52:26 -0700</date>
            <delta_ts>2010-10-13 11:48:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47518-20101011165225.patch</filename>
            <type>text/plain</type>
            <size>8117</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTUzNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMTAtMTEgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgRGVsYXlEU1BLZXJuZWwgZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ3NTE4CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHNpbmNlIGF1ZGlv
IEFQSSBpcyBub3QgeWV0IGltcGxlbWVudGVkLgorCisgICAgICAgICogd2ViYXVkaW8vRGVsYXlE
U1BLZXJuZWwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRlbGF5RFNQS2VybmVsOjpE
ZWxheURTUEtlcm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxheURTUEtlcm5lbDo6c2V0RGVs
YXlGcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGVsYXlEU1BLZXJuZWw6OnByb2Nlc3MpOgor
ICAgICAgICAoV2ViQ29yZTo6RGVsYXlEU1BLZXJuZWw6OnJlc2V0KToKKyAgICAgICAgKiB3ZWJh
dWRpby9EZWxheURTUEtlcm5lbC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRlbGF5RFNQ
S2VybmVsOjptYXhEZWxheVRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6RGVsYXlEU1BLZXJuZWw6
OmRlbGF5UHJvY2Vzc29yKToKKwogMjAxMC0xMC0xMSAgTWFydGluIFJvYmluc29uICA8bXJvYmlu
c29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KSW5kZXg6
IFdlYkNvcmUvd2ViYXVkaW8vRGVsYXlEU1BLZXJuZWwuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvd2ViYXVkaW8vRGVsYXlEU1BLZXJuZWwuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS93
ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwor
ICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQl9BVURJ
TykKKworI2luY2x1ZGUgIkRlbGF5RFNQS2VybmVsLmgiCisKKyNpbmNsdWRlICJBdWRpb1V0aWxp
dGllcy5oIgorI2luY2x1ZGUgPGFsZ29yaXRobT4KKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKyAg
Citjb25zdCBkb3VibGUgRGVmYXVsdE1heERlbGF5VGltZSA9IDEuMDsKK2NvbnN0IGRvdWJsZSBT
bW9vdGhpbmdUaW1lQ29uc3RhbnQgPSAwLjAyMDsgLy8gMjBtcworICAKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworRGVsYXlEU1BLZXJuZWw6OkRlbGF5RFNQS2VybmVsKERlbGF5UHJvY2Vzc29yKiBw
cm9jZXNzb3IpCisgICAgOiBBdWRpb0RTUEtlcm5lbChwcm9jZXNzb3IpCisgICAgLCBtX2J1ZmZl
cihzdGF0aWNfY2FzdDxzaXplX3Q+KHByb2Nlc3Nvci0+c2FtcGxlUmF0ZSgpICogRGVmYXVsdE1h
eERlbGF5VGltZSkpCisgICAgLCBtX21heERlbGF5VGltZShEZWZhdWx0TWF4RGVsYXlUaW1lKQor
ICAgICwgbV93cml0ZUluZGV4KDApCisgICAgLCBtX2ZpcnN0VGltZSh0cnVlKQoreworICAgIG1f
c21vb3RoaW5nUmF0ZSA9IEF1ZGlvVXRpbGl0aWVzOjpkaXNjcmV0ZVRpbWVDb25zdGFudEZvclNh
bXBsZVJhdGUoU21vb3RoaW5nVGltZUNvbnN0YW50LCBwcm9jZXNzb3ItPnNhbXBsZVJhdGUoKSk7
Cit9CisKK0RlbGF5RFNQS2VybmVsOjpEZWxheURTUEtlcm5lbChkb3VibGUgbWF4RGVsYXlUaW1l
LCBkb3VibGUgc2FtcGxlUmF0ZSkKKyAgICA6IEF1ZGlvRFNQS2VybmVsKHNhbXBsZVJhdGUpCisg
ICAgLCBtX2J1ZmZlcihzdGF0aWNfY2FzdDxzaXplX3Q+KHNhbXBsZVJhdGUgKiBtYXhEZWxheVRp
bWUpKQorICAgICwgbV9tYXhEZWxheVRpbWUobWF4RGVsYXlUaW1lKQorICAgICwgbV93cml0ZUlu
ZGV4KDApCisgICAgLCBtX2ZpcnN0VGltZSh0cnVlKQoreworICAgIG1fc21vb3RoaW5nUmF0ZSA9
IEF1ZGlvVXRpbGl0aWVzOjpkaXNjcmV0ZVRpbWVDb25zdGFudEZvclNhbXBsZVJhdGUoU21vb3Ro
aW5nVGltZUNvbnN0YW50LCBzYW1wbGVSYXRlKTsKK30KKwordm9pZCBEZWxheURTUEtlcm5lbDo6
c2V0RGVsYXlGcmFtZXMoZG91YmxlIG51bWJlck9mRnJhbWVzKQoreworICAgIG1fZGVzaXJlZERl
bGF5RnJhbWVzID0gbnVtYmVyT2ZGcmFtZXM7Cit9CisKK3ZvaWQgRGVsYXlEU1BLZXJuZWw6OnBy
b2Nlc3MoY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCBzaXplX3QgZnJh
bWVzVG9Qcm9jZXNzKQoreworICAgIGRvdWJsZSBzYW1wbGVSYXRlID0gdGhpcy0+c2FtcGxlUmF0
ZSgpOworICAgIGRvdWJsZSBkZWxheVRpbWUgPSBkZWxheVByb2Nlc3NvcigpID8gZGVsYXlQcm9j
ZXNzb3IoKS0+ZGVsYXlUaW1lKCktPnZhbHVlKCkgOiBtX2Rlc2lyZWREZWxheUZyYW1lcyAvIHNh
bXBsZVJhdGU7CisKKyAgICAvLyBNYWtlIHN1cmUgdGhlIGRlbGF5IHRpbWUgaXMgaW4gYSB2YWxp
ZCByYW5nZS4KKyAgICBkZWxheVRpbWUgPSBtaW4obWF4RGVsYXlUaW1lKCksIGRlbGF5VGltZSk7
CisgICAgZGVsYXlUaW1lID0gbWF4KDAuMCwgZGVsYXlUaW1lKTsKKworICAgIHNpemVfdCBidWZm
ZXJMZW5ndGggPSBtX2J1ZmZlci5zaXplKCk7CisgICAgZmxvYXQqIGJ1ZmZlciA9IG1fYnVmZmVy
LmRhdGEoKTsKKworICAgIGlmIChtX2ZpcnN0VGltZSkgeworICAgICAgICBtX2N1cnJlbnREZWxh
eVRpbWUgPSBkZWxheVRpbWU7CisgICAgICAgIG1fZmlyc3RUaW1lID0gZmFsc2U7CisgICAgfQor
ICAgIAorICAgIGludCBuID0gZnJhbWVzVG9Qcm9jZXNzOworICAgIHdoaWxlIChuLS0pIHsKKyAg
ICAgICAgLy8gQXBwcm9hY2ggZGVzaXJlZCBkZWxheSB0aW1lLgorICAgICAgICBtX2N1cnJlbnRE
ZWxheVRpbWUgKz0gKGRlbGF5VGltZSAtIG1fY3VycmVudERlbGF5VGltZSkgKiBtX3Ntb290aGlu
Z1JhdGU7CisKKyAgICAgICAgZG91YmxlIGRlc2lyZWREZWxheUZyYW1lcyA9IG1fY3VycmVudERl
bGF5VGltZSAqIHNhbXBsZVJhdGU7CisKKyAgICAgICAgZG91YmxlIHJlYWRQb3NpdGlvbiA9IG1f
d3JpdGVJbmRleCArIGJ1ZmZlckxlbmd0aCAtIGRlc2lyZWREZWxheUZyYW1lczsKKyAgICAgICAg
aWYgKHJlYWRQb3NpdGlvbiA+IGJ1ZmZlckxlbmd0aCkKKyAgICAgICAgICAgIHJlYWRQb3NpdGlv
biAtPSBidWZmZXJMZW5ndGg7CisKKyAgICAgICAgLy8gTGluZWFybHkgaW50ZXJwb2xhdGUgaW4t
YmV0d2VlbiBkZWxheSB0aW1lcy4KKyAgICAgICAgaW50IHJlYWRJbmRleDEgPSBzdGF0aWNfY2Fz
dDxpbnQ+KHJlYWRQb3NpdGlvbik7CisgICAgICAgIGludCByZWFkSW5kZXgyID0gKHJlYWRJbmRl
eDEgKyAxKSAlIGJ1ZmZlckxlbmd0aDsKKyAgICAgICAgZG91YmxlIGludGVycG9sYXRpb25GYWN0
b3IgPSByZWFkUG9zaXRpb24gLSByZWFkSW5kZXgxOworCisgICAgICAgIGRvdWJsZSBpbnB1dCA9
IHN0YXRpY19jYXN0PGZsb2F0Pigqc291cmNlKyspOworICAgICAgICBidWZmZXJbbV93cml0ZUlu
ZGV4XSA9IHN0YXRpY19jYXN0PGZsb2F0PihpbnB1dCk7CisgICAgICAgIG1fd3JpdGVJbmRleCA9
IChtX3dyaXRlSW5kZXggKyAxKSAlIGJ1ZmZlckxlbmd0aDsgICAgICAgIAorICAgICAgICAKKyAg
ICAgICAgZG91YmxlIHNhbXBsZTEgPSBidWZmZXJbcmVhZEluZGV4MV07CisgICAgICAgIGRvdWJs
ZSBzYW1wbGUyID0gYnVmZmVyW3JlYWRJbmRleDJdOworICAgICAgICAKKyAgICAgICAgZG91Ymxl
IG91dHB1dCA9ICgxLjAgLSBpbnRlcnBvbGF0aW9uRmFjdG9yKSAqIHNhbXBsZTEgKyBpbnRlcnBv
bGF0aW9uRmFjdG9yICogc2FtcGxlMjsKKworICAgICAgICAqZGVzdGluYXRpb24rKyA9IHN0YXRp
Y19jYXN0PGZsb2F0PihvdXRwdXQpOworICAgIH0gICAgICAgIAorfQorCit2b2lkIERlbGF5RFNQ
S2VybmVsOjpyZXNldCgpCit7CisgICAgbV9maXJzdFRpbWUgPSB0cnVlOworICAgIG1fYnVmZmVy
Lnplcm8oKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KFdFQl9BVURJTykKSW5kZXg6IFdlYkNvcmUvd2ViYXVkaW8vRGVsYXlEU1BLZXJuZWwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3dlYmF1ZGlvL0RlbGF5RFNQS2VybmVsLmgJKHJldmlzaW9uIDAp
CisrKyBXZWJDb3JlL3dlYmF1ZGlvL0RlbGF5RFNQS2VybmVsLmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERlbGF5RFNQS2VybmVsX2gKKyNkZWZp
bmUgRGVsYXlEU1BLZXJuZWxfaAorCisjaW5jbHVkZSAiQXVkaW9BcnJheS5oIgorI2luY2x1ZGUg
IkF1ZGlvRFNQS2VybmVsLmgiCisjaW5jbHVkZSAiRGVsYXlQcm9jZXNzb3IuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBEZWxheVByb2Nlc3NvcjsKKyAgICAKK2NsYXNzIERlbGF5
RFNQS2VybmVsIDogcHVibGljIEF1ZGlvRFNQS2VybmVsIHsKK3B1YmxpYzogIAorICAgIERlbGF5
RFNQS2VybmVsKERlbGF5UHJvY2Vzc29yKik7CisgICAgRGVsYXlEU1BLZXJuZWwoZG91YmxlIG1h
eERlbGF5VGltZSwgZG91YmxlIHNhbXBsZVJhdGUpOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBw
cm9jZXNzKGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgc2l6ZV90IGZy
YW1lc1RvUHJvY2Vzcyk7CisgICAgdmlydHVhbCB2b2lkIHJlc2V0KCk7CisgICAgCisgICAgZG91
YmxlIG1heERlbGF5VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4RGVsYXlUaW1lOyB9CisgICAg
CisgICAgdm9pZCBzZXREZWxheUZyYW1lcyhkb3VibGUgbnVtYmVyT2ZGcmFtZXMpOworICAgIAor
cHJvdGVjdGVkOgorICAgIEF1ZGlvRmxvYXRBcnJheSBtX2J1ZmZlcjsKKyAgICBkb3VibGUgbV9t
YXhEZWxheVRpbWU7CisgICAgaW50IG1fd3JpdGVJbmRleDsKKyAgICBkb3VibGUgbV9jdXJyZW50
RGVsYXlUaW1lOworICAgIGRvdWJsZSBtX3Ntb290aGluZ1JhdGU7CisgICAgYm9vbCBtX2ZpcnN0
VGltZTsKKyAgICBkb3VibGUgbV9kZXNpcmVkRGVsYXlGcmFtZXM7CisKKyAgICBEZWxheVByb2Nl
c3NvciogZGVsYXlQcm9jZXNzb3IoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxEZWxheVByb2Nlc3Nv
cio+KHByb2Nlc3NvcigpKTsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRGVsYXlEU1BLZXJuZWxfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70641</attachid>
            <date>2010-10-13 11:47:07 -0700</date>
            <delta_ts>2010-10-13 14:20:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47518-20101013114707.patch</filename>
            <type>text/plain</type>
            <size>8436</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTY3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMTAtMTMgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgRGVsYXlEU1BLZXJuZWwgZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ3NTE4CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHNpbmNlIGF1ZGlv
IEFQSSBpcyBub3QgeWV0IGltcGxlbWVudGVkLgorCisgICAgICAgICogd2ViYXVkaW8vRGVsYXlE
U1BLZXJuZWwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRlbGF5RFNQS2VybmVsOjpE
ZWxheURTUEtlcm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxheURTUEtlcm5lbDo6cHJvY2Vz
cyk6CisgICAgICAgIChXZWJDb3JlOjpEZWxheURTUEtlcm5lbDo6cmVzZXQpOgorICAgICAgICAq
IHdlYmF1ZGlvL0RlbGF5RFNQS2VybmVsLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGVs
YXlEU1BLZXJuZWw6Om1heERlbGF5VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxheURTUEtl
cm5lbDo6c2V0RGVsYXlGcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGVsYXlEU1BLZXJuZWw6
OmRlbGF5UHJvY2Vzc29yKToKKwogMjAxMC0xMC0xMyAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90
dGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KSW5k
ZXg6IFdlYkNvcmUvd2ViYXVkaW8vRGVsYXlEU1BLZXJuZWwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvd2ViYXVkaW8vRGVsYXlEU1BLZXJuZWwuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29y
ZS93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQl9B
VURJTykKKworI2luY2x1ZGUgIkRlbGF5RFNQS2VybmVsLmgiCisKKyNpbmNsdWRlICJBdWRpb1V0
aWxpdGllcy5oIgorI2luY2x1ZGUgPGFsZ29yaXRobT4KKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsK
KyAgCitjb25zdCBkb3VibGUgRGVmYXVsdE1heERlbGF5VGltZSA9IDEuMDsKK2NvbnN0IGRvdWJs
ZSBTbW9vdGhpbmdUaW1lQ29uc3RhbnQgPSAwLjAyMDsgLy8gMjBtcworICAKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworRGVsYXlEU1BLZXJuZWw6OkRlbGF5RFNQS2VybmVsKERlbGF5UHJvY2Vzc29y
KiBwcm9jZXNzb3IpCisgICAgOiBBdWRpb0RTUEtlcm5lbChwcm9jZXNzb3IpCisgICAgLCBtX2J1
ZmZlcihzdGF0aWNfY2FzdDxzaXplX3Q+KHByb2Nlc3Nvci0+c2FtcGxlUmF0ZSgpICogRGVmYXVs
dE1heERlbGF5VGltZSkpCisgICAgLCBtX21heERlbGF5VGltZShEZWZhdWx0TWF4RGVsYXlUaW1l
KQorICAgICwgbV93cml0ZUluZGV4KDApCisgICAgLCBtX2ZpcnN0VGltZSh0cnVlKQoreworICAg
IG1fc21vb3RoaW5nUmF0ZSA9IEF1ZGlvVXRpbGl0aWVzOjpkaXNjcmV0ZVRpbWVDb25zdGFudEZv
clNhbXBsZVJhdGUoU21vb3RoaW5nVGltZUNvbnN0YW50LCBwcm9jZXNzb3ItPnNhbXBsZVJhdGUo
KSk7Cit9CisKK0RlbGF5RFNQS2VybmVsOjpEZWxheURTUEtlcm5lbChkb3VibGUgbWF4RGVsYXlU
aW1lLCBkb3VibGUgc2FtcGxlUmF0ZSkKKyAgICA6IEF1ZGlvRFNQS2VybmVsKHNhbXBsZVJhdGUp
CisgICAgLCBtX21heERlbGF5VGltZShtYXhEZWxheVRpbWUpCisgICAgLCBtX3dyaXRlSW5kZXgo
MCkKKyAgICAsIG1fZmlyc3RUaW1lKHRydWUpCit7CisgICAgQVNTRVJUKG1heERlbGF5VGltZSA+
IDAuMCk7CisgICAgaWYgKG1heERlbGF5VGltZSA8PSAwLjApCisgICAgICAgIHJldHVybjsKKyAg
ICAgICAgCisgICAgc2l6ZV90IGJ1ZmZlckxlbmd0aCA9IHN0YXRpY19jYXN0PHNpemVfdD4oc2Ft
cGxlUmF0ZSAqIG1heERlbGF5VGltZSk7CisgICAgQVNTRVJUKGJ1ZmZlckxlbmd0aCk7CisgICAg
aWYgKCFidWZmZXJMZW5ndGgpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2J1ZmZlci5y
ZXNpemUoYnVmZmVyTGVuZ3RoKTsKKworICAgIG1fc21vb3RoaW5nUmF0ZSA9IEF1ZGlvVXRpbGl0
aWVzOjpkaXNjcmV0ZVRpbWVDb25zdGFudEZvclNhbXBsZVJhdGUoU21vb3RoaW5nVGltZUNvbnN0
YW50LCBzYW1wbGVSYXRlKTsKK30KKwordm9pZCBEZWxheURTUEtlcm5lbDo6cHJvY2Vzcyhjb25z
dCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHNpemVfdCBmcmFtZXNUb1Byb2Nl
c3MpCit7CisgICAgc2l6ZV90IGJ1ZmZlckxlbmd0aCA9IG1fYnVmZmVyLnNpemUoKTsKKyAgICBm
bG9hdCogYnVmZmVyID0gbV9idWZmZXIuZGF0YSgpOworCisgICAgQVNTRVJUKGJ1ZmZlckxlbmd0
aCk7CisgICAgaWYgKCFidWZmZXJMZW5ndGgpCisgICAgICAgIHJldHVybjsKKyAgICAgICAgCisg
ICAgQVNTRVJUKHNvdXJjZSAmJiBkZXN0aW5hdGlvbik7CisgICAgaWYgKCFzb3VyY2UgfHwgIWRl
c3RpbmF0aW9uKQorICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgIGRvdWJsZSBzYW1wbGVS
YXRlID0gdGhpcy0+c2FtcGxlUmF0ZSgpOworICAgIGRvdWJsZSBkZWxheVRpbWUgPSBkZWxheVBy
b2Nlc3NvcigpID8gZGVsYXlQcm9jZXNzb3IoKS0+ZGVsYXlUaW1lKCktPnZhbHVlKCkgOiBtX2Rl
c2lyZWREZWxheUZyYW1lcyAvIHNhbXBsZVJhdGU7CisKKyAgICAvLyBNYWtlIHN1cmUgdGhlIGRl
bGF5IHRpbWUgaXMgaW4gYSB2YWxpZCByYW5nZS4KKyAgICBkZWxheVRpbWUgPSBtaW4obWF4RGVs
YXlUaW1lKCksIGRlbGF5VGltZSk7CisgICAgZGVsYXlUaW1lID0gbWF4KDAuMCwgZGVsYXlUaW1l
KTsKKworICAgIGlmIChtX2ZpcnN0VGltZSkgeworICAgICAgICBtX2N1cnJlbnREZWxheVRpbWUg
PSBkZWxheVRpbWU7CisgICAgICAgIG1fZmlyc3RUaW1lID0gZmFsc2U7CisgICAgfQorICAgIAor
ICAgIGludCBuID0gZnJhbWVzVG9Qcm9jZXNzOworICAgIHdoaWxlIChuLS0pIHsKKyAgICAgICAg
Ly8gQXBwcm9hY2ggZGVzaXJlZCBkZWxheSB0aW1lLgorICAgICAgICBtX2N1cnJlbnREZWxheVRp
bWUgKz0gKGRlbGF5VGltZSAtIG1fY3VycmVudERlbGF5VGltZSkgKiBtX3Ntb290aGluZ1JhdGU7
CisKKyAgICAgICAgZG91YmxlIGRlc2lyZWREZWxheUZyYW1lcyA9IG1fY3VycmVudERlbGF5VGlt
ZSAqIHNhbXBsZVJhdGU7CisKKyAgICAgICAgZG91YmxlIHJlYWRQb3NpdGlvbiA9IG1fd3JpdGVJ
bmRleCArIGJ1ZmZlckxlbmd0aCAtIGRlc2lyZWREZWxheUZyYW1lczsKKyAgICAgICAgaWYgKHJl
YWRQb3NpdGlvbiA+IGJ1ZmZlckxlbmd0aCkKKyAgICAgICAgICAgIHJlYWRQb3NpdGlvbiAtPSBi
dWZmZXJMZW5ndGg7CisKKyAgICAgICAgLy8gTGluZWFybHkgaW50ZXJwb2xhdGUgaW4tYmV0d2Vl
biBkZWxheSB0aW1lcy4KKyAgICAgICAgaW50IHJlYWRJbmRleDEgPSBzdGF0aWNfY2FzdDxpbnQ+
KHJlYWRQb3NpdGlvbik7CisgICAgICAgIGludCByZWFkSW5kZXgyID0gKHJlYWRJbmRleDEgKyAx
KSAlIGJ1ZmZlckxlbmd0aDsKKyAgICAgICAgZG91YmxlIGludGVycG9sYXRpb25GYWN0b3IgPSBy
ZWFkUG9zaXRpb24gLSByZWFkSW5kZXgxOworCisgICAgICAgIGRvdWJsZSBpbnB1dCA9IHN0YXRp
Y19jYXN0PGZsb2F0Pigqc291cmNlKyspOworICAgICAgICBidWZmZXJbbV93cml0ZUluZGV4XSA9
IHN0YXRpY19jYXN0PGZsb2F0PihpbnB1dCk7CisgICAgICAgIG1fd3JpdGVJbmRleCA9IChtX3dy
aXRlSW5kZXggKyAxKSAlIGJ1ZmZlckxlbmd0aDsgICAgICAgIAorICAgICAgICAKKyAgICAgICAg
ZG91YmxlIHNhbXBsZTEgPSBidWZmZXJbcmVhZEluZGV4MV07CisgICAgICAgIGRvdWJsZSBzYW1w
bGUyID0gYnVmZmVyW3JlYWRJbmRleDJdOworICAgICAgICAKKyAgICAgICAgZG91YmxlIG91dHB1
dCA9ICgxLjAgLSBpbnRlcnBvbGF0aW9uRmFjdG9yKSAqIHNhbXBsZTEgKyBpbnRlcnBvbGF0aW9u
RmFjdG9yICogc2FtcGxlMjsKKworICAgICAgICAqZGVzdGluYXRpb24rKyA9IHN0YXRpY19jYXN0
PGZsb2F0PihvdXRwdXQpOworICAgIH0gICAgICAgIAorfQorCit2b2lkIERlbGF5RFNQS2VybmVs
OjpyZXNldCgpCit7CisgICAgbV9maXJzdFRpbWUgPSB0cnVlOworICAgIG1fYnVmZmVyLnplcm8o
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9B
VURJTykKSW5kZXg6IFdlYkNvcmUvd2ViYXVkaW8vRGVsYXlEU1BLZXJuZWwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3dlYmF1ZGlvL0RlbGF5RFNQS2VybmVsLmgJKHJldmlzaW9uIDApCisrKyBX
ZWJDb3JlL3dlYmF1ZGlvL0RlbGF5RFNQS2VybmVsLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERlbGF5RFNQS2VybmVsX2gKKyNkZWZpbmUgRGVs
YXlEU1BLZXJuZWxfaAorCisjaW5jbHVkZSAiQXVkaW9BcnJheS5oIgorI2luY2x1ZGUgIkF1ZGlv
RFNQS2VybmVsLmgiCisjaW5jbHVkZSAiRGVsYXlQcm9jZXNzb3IuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBEZWxheVByb2Nlc3NvcjsKKyAgICAKK2NsYXNzIERlbGF5RFNQS2Vy
bmVsIDogcHVibGljIEF1ZGlvRFNQS2VybmVsIHsKK3B1YmxpYzogIAorICAgIERlbGF5RFNQS2Vy
bmVsKERlbGF5UHJvY2Vzc29yKik7CisgICAgRGVsYXlEU1BLZXJuZWwoZG91YmxlIG1heERlbGF5
VGltZSwgZG91YmxlIHNhbXBsZVJhdGUpOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNz
KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgc2l6ZV90IGZyYW1lc1Rv
UHJvY2Vzcyk7CisgICAgdmlydHVhbCB2b2lkIHJlc2V0KCk7CisgICAgCisgICAgZG91YmxlIG1h
eERlbGF5VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4RGVsYXlUaW1lOyB9CisgICAgCisgICAg
dm9pZCBzZXREZWxheUZyYW1lcyhkb3VibGUgbnVtYmVyT2ZGcmFtZXMpIHsgbV9kZXNpcmVkRGVs
YXlGcmFtZXMgPSBudW1iZXJPZkZyYW1lczsgfQorICAgIAorcHJpdmF0ZToKKyAgICBBdWRpb0Zs
b2F0QXJyYXkgbV9idWZmZXI7CisgICAgZG91YmxlIG1fbWF4RGVsYXlUaW1lOworICAgIGludCBt
X3dyaXRlSW5kZXg7CisgICAgZG91YmxlIG1fY3VycmVudERlbGF5VGltZTsKKyAgICBkb3VibGUg
bV9zbW9vdGhpbmdSYXRlOworICAgIGJvb2wgbV9maXJzdFRpbWU7CisgICAgZG91YmxlIG1fZGVz
aXJlZERlbGF5RnJhbWVzOworCisgICAgRGVsYXlQcm9jZXNzb3IqIGRlbGF5UHJvY2Vzc29yKCkg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8RGVsYXlQcm9jZXNzb3IqPihwcm9jZXNzb3IoKSk7IH0KK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERlbGF5RFNQS2VybmVsX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70659</attachid>
            <date>2010-10-13 14:20:45 -0700</date>
            <delta_ts>2010-10-13 18:01:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47518-20101013142044.patch</filename>
            <type>text/plain</type>
            <size>8458</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTY5OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMTAtMTMgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgRGVsYXlEU1BLZXJuZWwgZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ3NTE4CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHNpbmNlIGF1ZGlv
IEFQSSBpcyBub3QgeWV0IGltcGxlbWVudGVkLgorCisgICAgICAgICogd2ViYXVkaW8vRGVsYXlE
U1BLZXJuZWwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRlbGF5RFNQS2VybmVsOjpE
ZWxheURTUEtlcm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxheURTUEtlcm5lbDo6cHJvY2Vz
cyk6CisgICAgICAgIChXZWJDb3JlOjpEZWxheURTUEtlcm5lbDo6cmVzZXQpOgorICAgICAgICAq
IHdlYmF1ZGlvL0RlbGF5RFNQS2VybmVsLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGVs
YXlEU1BLZXJuZWw6Om1heERlbGF5VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxheURTUEtl
cm5lbDo6c2V0RGVsYXlGcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGVsYXlEU1BLZXJuZWw6
OmRlbGF5UHJvY2Vzc29yKToKKwogMjAxMC0xMC0xMyAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJy
YWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hyb21pdW0gYnVpbGQgZml4IHB0MS4KSW5k
ZXg6IFdlYkNvcmUvd2ViYXVkaW8vRGVsYXlEU1BLZXJuZWwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvd2ViYXVkaW8vRGVsYXlEU1BLZXJuZWwuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29y
ZS93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTM0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQl9B
VURJTykKKworI2luY2x1ZGUgIkRlbGF5RFNQS2VybmVsLmgiCisKKyNpbmNsdWRlICJBdWRpb1V0
aWxpdGllcy5oIgorI2luY2x1ZGUgPGFsZ29yaXRobT4KKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsK
KyAgCitjb25zdCBkb3VibGUgRGVmYXVsdE1heERlbGF5VGltZSA9IDEuMDsKK2NvbnN0IGRvdWJs
ZSBTbW9vdGhpbmdUaW1lQ29uc3RhbnQgPSAwLjAyMDsgLy8gMjBtcworICAKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworRGVsYXlEU1BLZXJuZWw6OkRlbGF5RFNQS2VybmVsKERlbGF5UHJvY2Vzc29y
KiBwcm9jZXNzb3IpCisgICAgOiBBdWRpb0RTUEtlcm5lbChwcm9jZXNzb3IpCisgICAgLCBtX2J1
ZmZlcihzdGF0aWNfY2FzdDxzaXplX3Q+KHByb2Nlc3Nvci0+c2FtcGxlUmF0ZSgpICogRGVmYXVs
dE1heERlbGF5VGltZSkpCisgICAgLCBtX21heERlbGF5VGltZShEZWZhdWx0TWF4RGVsYXlUaW1l
KQorICAgICwgbV93cml0ZUluZGV4KDApCisgICAgLCBtX2ZpcnN0VGltZSh0cnVlKQoreworICAg
IG1fc21vb3RoaW5nUmF0ZSA9IEF1ZGlvVXRpbGl0aWVzOjpkaXNjcmV0ZVRpbWVDb25zdGFudEZv
clNhbXBsZVJhdGUoU21vb3RoaW5nVGltZUNvbnN0YW50LCBwcm9jZXNzb3ItPnNhbXBsZVJhdGUo
KSk7Cit9CisKK0RlbGF5RFNQS2VybmVsOjpEZWxheURTUEtlcm5lbChkb3VibGUgbWF4RGVsYXlU
aW1lLCBkb3VibGUgc2FtcGxlUmF0ZSkKKyAgICA6IEF1ZGlvRFNQS2VybmVsKHNhbXBsZVJhdGUp
CisgICAgLCBtX21heERlbGF5VGltZShtYXhEZWxheVRpbWUpCisgICAgLCBtX3dyaXRlSW5kZXgo
MCkKKyAgICAsIG1fZmlyc3RUaW1lKHRydWUpCit7CisgICAgQVNTRVJUKG1heERlbGF5VGltZSA+
IDAuMCk7CisgICAgaWYgKG1heERlbGF5VGltZSA8PSAwLjApCisgICAgICAgIHJldHVybjsKKyAg
ICAgICAgCisgICAgc2l6ZV90IGJ1ZmZlckxlbmd0aCA9IHN0YXRpY19jYXN0PHNpemVfdD4oc2Ft
cGxlUmF0ZSAqIG1heERlbGF5VGltZSk7CisgICAgQVNTRVJUKGJ1ZmZlckxlbmd0aCk7CisgICAg
aWYgKCFidWZmZXJMZW5ndGgpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2J1ZmZlci5y
ZXNpemUoYnVmZmVyTGVuZ3RoKTsKKyAgICBtX2J1ZmZlci56ZXJvKCk7CisKKyAgICBtX3Ntb290
aGluZ1JhdGUgPSBBdWRpb1V0aWxpdGllczo6ZGlzY3JldGVUaW1lQ29uc3RhbnRGb3JTYW1wbGVS
YXRlKFNtb290aGluZ1RpbWVDb25zdGFudCwgc2FtcGxlUmF0ZSk7Cit9CisKK3ZvaWQgRGVsYXlE
U1BLZXJuZWw6OnByb2Nlc3MoY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9u
LCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQoreworICAgIHNpemVfdCBidWZmZXJMZW5ndGggPSBt
X2J1ZmZlci5zaXplKCk7CisgICAgZmxvYXQqIGJ1ZmZlciA9IG1fYnVmZmVyLmRhdGEoKTsKKwor
ICAgIEFTU0VSVChidWZmZXJMZW5ndGgpOworICAgIGlmICghYnVmZmVyTGVuZ3RoKQorICAgICAg
ICByZXR1cm47CisgICAgICAgIAorICAgIEFTU0VSVChzb3VyY2UgJiYgZGVzdGluYXRpb24pOwor
ICAgIGlmICghc291cmNlIHx8ICFkZXN0aW5hdGlvbikKKyAgICAgICAgcmV0dXJuOworICAgICAg
ICAKKyAgICBkb3VibGUgc2FtcGxlUmF0ZSA9IHRoaXMtPnNhbXBsZVJhdGUoKTsKKyAgICBkb3Vi
bGUgZGVsYXlUaW1lID0gZGVsYXlQcm9jZXNzb3IoKSA/IGRlbGF5UHJvY2Vzc29yKCktPmRlbGF5
VGltZSgpLT52YWx1ZSgpIDogbV9kZXNpcmVkRGVsYXlGcmFtZXMgLyBzYW1wbGVSYXRlOworCisg
ICAgLy8gTWFrZSBzdXJlIHRoZSBkZWxheSB0aW1lIGlzIGluIGEgdmFsaWQgcmFuZ2UuCisgICAg
ZGVsYXlUaW1lID0gbWluKG1heERlbGF5VGltZSgpLCBkZWxheVRpbWUpOworICAgIGRlbGF5VGlt
ZSA9IG1heCgwLjAsIGRlbGF5VGltZSk7CisKKyAgICBpZiAobV9maXJzdFRpbWUpIHsKKyAgICAg
ICAgbV9jdXJyZW50RGVsYXlUaW1lID0gZGVsYXlUaW1lOworICAgICAgICBtX2ZpcnN0VGltZSA9
IGZhbHNlOworICAgIH0KKyAgICAKKyAgICBpbnQgbiA9IGZyYW1lc1RvUHJvY2VzczsKKyAgICB3
aGlsZSAobi0tKSB7CisgICAgICAgIC8vIEFwcHJvYWNoIGRlc2lyZWQgZGVsYXkgdGltZS4KKyAg
ICAgICAgbV9jdXJyZW50RGVsYXlUaW1lICs9IChkZWxheVRpbWUgLSBtX2N1cnJlbnREZWxheVRp
bWUpICogbV9zbW9vdGhpbmdSYXRlOworCisgICAgICAgIGRvdWJsZSBkZXNpcmVkRGVsYXlGcmFt
ZXMgPSBtX2N1cnJlbnREZWxheVRpbWUgKiBzYW1wbGVSYXRlOworCisgICAgICAgIGRvdWJsZSBy
ZWFkUG9zaXRpb24gPSBtX3dyaXRlSW5kZXggKyBidWZmZXJMZW5ndGggLSBkZXNpcmVkRGVsYXlG
cmFtZXM7CisgICAgICAgIGlmIChyZWFkUG9zaXRpb24gPiBidWZmZXJMZW5ndGgpCisgICAgICAg
ICAgICByZWFkUG9zaXRpb24gLT0gYnVmZmVyTGVuZ3RoOworCisgICAgICAgIC8vIExpbmVhcmx5
IGludGVycG9sYXRlIGluLWJldHdlZW4gZGVsYXkgdGltZXMuCisgICAgICAgIGludCByZWFkSW5k
ZXgxID0gc3RhdGljX2Nhc3Q8aW50PihyZWFkUG9zaXRpb24pOworICAgICAgICBpbnQgcmVhZElu
ZGV4MiA9IChyZWFkSW5kZXgxICsgMSkgJSBidWZmZXJMZW5ndGg7CisgICAgICAgIGRvdWJsZSBp
bnRlcnBvbGF0aW9uRmFjdG9yID0gcmVhZFBvc2l0aW9uIC0gcmVhZEluZGV4MTsKKworICAgICAg
ICBkb3VibGUgaW5wdXQgPSBzdGF0aWNfY2FzdDxmbG9hdD4oKnNvdXJjZSsrKTsKKyAgICAgICAg
YnVmZmVyW21fd3JpdGVJbmRleF0gPSBzdGF0aWNfY2FzdDxmbG9hdD4oaW5wdXQpOworICAgICAg
ICBtX3dyaXRlSW5kZXggPSAobV93cml0ZUluZGV4ICsgMSkgJSBidWZmZXJMZW5ndGg7ICAgICAg
ICAKKyAgICAgICAgCisgICAgICAgIGRvdWJsZSBzYW1wbGUxID0gYnVmZmVyW3JlYWRJbmRleDFd
OworICAgICAgICBkb3VibGUgc2FtcGxlMiA9IGJ1ZmZlcltyZWFkSW5kZXgyXTsKKyAgICAgICAg
CisgICAgICAgIGRvdWJsZSBvdXRwdXQgPSAoMS4wIC0gaW50ZXJwb2xhdGlvbkZhY3RvcikgKiBz
YW1wbGUxICsgaW50ZXJwb2xhdGlvbkZhY3RvciAqIHNhbXBsZTI7CisKKyAgICAgICAgKmRlc3Rp
bmF0aW9uKysgPSBzdGF0aWNfY2FzdDxmbG9hdD4ob3V0cHV0KTsKKyAgICB9ICAgICAgICAKK30K
Kwordm9pZCBEZWxheURTUEtlcm5lbDo6cmVzZXQoKQoreworICAgIG1fZmlyc3RUaW1lID0gdHJ1
ZTsKKyAgICBtX2J1ZmZlci56ZXJvKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCkluZGV4OiBXZWJDb3JlL3dlYmF1ZGlvL0RlbGF5
RFNQS2VybmVsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93ZWJhdWRpby9EZWxheURTUEtlcm5l
bC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5oCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEZWxheURT
UEtlcm5lbF9oCisjZGVmaW5lIERlbGF5RFNQS2VybmVsX2gKKworI2luY2x1ZGUgIkF1ZGlvQXJy
YXkuaCIKKyNpbmNsdWRlICJBdWRpb0RTUEtlcm5lbC5oIgorI2luY2x1ZGUgIkRlbGF5UHJvY2Vz
c29yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGVsYXlQcm9jZXNzb3I7Cisg
ICAgCitjbGFzcyBEZWxheURTUEtlcm5lbCA6IHB1YmxpYyBBdWRpb0RTUEtlcm5lbCB7CitwdWJs
aWM6ICAKKyAgICBEZWxheURTUEtlcm5lbChEZWxheVByb2Nlc3NvciopOworICAgIERlbGF5RFNQ
S2VybmVsKGRvdWJsZSBtYXhEZWxheVRpbWUsIGRvdWJsZSBzYW1wbGVSYXRlKTsKKyAgICAKKyAg
ICB2aXJ0dWFsIHZvaWQgcHJvY2Vzcyhjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGlu
YXRpb24sIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOworICAgIHZpcnR1YWwgdm9pZCByZXNldCgp
OworICAgIAorICAgIGRvdWJsZSBtYXhEZWxheVRpbWUoKSBjb25zdCB7IHJldHVybiBtX21heERl
bGF5VGltZTsgfQorICAgIAorICAgIHZvaWQgc2V0RGVsYXlGcmFtZXMoZG91YmxlIG51bWJlck9m
RnJhbWVzKSB7IG1fZGVzaXJlZERlbGF5RnJhbWVzID0gbnVtYmVyT2ZGcmFtZXM7IH0KKyAgICAK
K3ByaXZhdGU6CisgICAgQXVkaW9GbG9hdEFycmF5IG1fYnVmZmVyOworICAgIGRvdWJsZSBtX21h
eERlbGF5VGltZTsKKyAgICBpbnQgbV93cml0ZUluZGV4OworICAgIGRvdWJsZSBtX2N1cnJlbnRE
ZWxheVRpbWU7CisgICAgZG91YmxlIG1fc21vb3RoaW5nUmF0ZTsKKyAgICBib29sIG1fZmlyc3RU
aW1lOworICAgIGRvdWJsZSBtX2Rlc2lyZWREZWxheUZyYW1lczsKKworICAgIERlbGF5UHJvY2Vz
c29yKiBkZWxheVByb2Nlc3NvcigpIHsgcmV0dXJuIHN0YXRpY19jYXN0PERlbGF5UHJvY2Vzc29y
Kj4ocHJvY2Vzc29yKCkpOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBEZWxheURTUEtlcm5lbF9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70696</attachid>
            <date>2010-10-13 18:01:27 -0700</date>
            <delta_ts>2010-10-14 00:10:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47518-20101013180125.patch</filename>
            <type>text/plain</type>
            <size>8579</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTcyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMTAtMTMgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgRGVsYXlEU1BLZXJuZWwgZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ3NTE4CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHNpbmNlIGF1ZGlv
IEFQSSBpcyBub3QgeWV0IGltcGxlbWVudGVkLgorCisgICAgICAgICogd2ViYXVkaW8vRGVsYXlE
U1BLZXJuZWwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRlbGF5RFNQS2VybmVsOjpE
ZWxheURTUEtlcm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpEZWxheURTUEtlcm5lbDo6cHJvY2Vz
cyk6CisgICAgICAgIChXZWJDb3JlOjpEZWxheURTUEtlcm5lbDo6cmVzZXQpOgorICAgICAgICAq
IHdlYmF1ZGlvL0RlbGF5RFNQS2VybmVsLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGVs
YXlEU1BLZXJuZWw6Om1heERlbGF5VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxheURTUEtl
cm5lbDo6c2V0RGVsYXlGcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGVsYXlEU1BLZXJuZWw6
OmRlbGF5UHJvY2Vzc29yKToKKwogMjAxMC0xMC0xMyAgS3dhbmcgWXVsIFNlbyAgPHNreXVsQGNv
bXBhbnkxMDAubmV0PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpJbmRleDog
V2ViQ29yZS93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3dl
YmF1ZGlvL0RlbGF5RFNQS2VybmVsLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNDAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisg
KiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVRElP
KQorCisjaW5jbHVkZSAiRGVsYXlEU1BLZXJuZWwuaCIKKworI2luY2x1ZGUgIkF1ZGlvVXRpbGl0
aWVzLmgiCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworICAK
K2NvbnN0IGRvdWJsZSBEZWZhdWx0TWF4RGVsYXlUaW1lID0gMS4wOworY29uc3QgZG91YmxlIFNt
b290aGluZ1RpbWVDb25zdGFudCA9IDAuMDIwOyAvLyAyMG1zCisgIAorbmFtZXNwYWNlIFdlYkNv
cmUgeworCitEZWxheURTUEtlcm5lbDo6RGVsYXlEU1BLZXJuZWwoRGVsYXlQcm9jZXNzb3IqIHBy
b2Nlc3NvcikKKyAgICA6IEF1ZGlvRFNQS2VybmVsKHByb2Nlc3NvcikKKyAgICAsIG1fbWF4RGVs
YXlUaW1lKERlZmF1bHRNYXhEZWxheVRpbWUpCisgICAgLCBtX3dyaXRlSW5kZXgoMCkKKyAgICAs
IG1fZmlyc3RUaW1lKHRydWUpCit7CisgICAgQVNTRVJUKHByb2Nlc3NvciAmJiBwcm9jZXNzb3It
PnNhbXBsZVJhdGUoKSA+IDApOworICAgIGlmICghcHJvY2Vzc29yKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2J1ZmZlci5yZXNpemUoc3RhdGljX2Nhc3Q8c2l6ZV90Pihwcm9jZXNzb3ItPnNh
bXBsZVJhdGUoKSAqIERlZmF1bHRNYXhEZWxheVRpbWUpKTsKKyAgICBtX2J1ZmZlci56ZXJvKCk7
CisKKyAgICBtX3Ntb290aGluZ1JhdGUgPSBBdWRpb1V0aWxpdGllczo6ZGlzY3JldGVUaW1lQ29u
c3RhbnRGb3JTYW1wbGVSYXRlKFNtb290aGluZ1RpbWVDb25zdGFudCwgcHJvY2Vzc29yLT5zYW1w
bGVSYXRlKCkpOworfQorCitEZWxheURTUEtlcm5lbDo6RGVsYXlEU1BLZXJuZWwoZG91YmxlIG1h
eERlbGF5VGltZSwgZG91YmxlIHNhbXBsZVJhdGUpCisgICAgOiBBdWRpb0RTUEtlcm5lbChzYW1w
bGVSYXRlKQorICAgICwgbV9tYXhEZWxheVRpbWUobWF4RGVsYXlUaW1lKQorICAgICwgbV93cml0
ZUluZGV4KDApCisgICAgLCBtX2ZpcnN0VGltZSh0cnVlKQoreworICAgIEFTU0VSVChtYXhEZWxh
eVRpbWUgPiAwLjApOworICAgIGlmIChtYXhEZWxheVRpbWUgPD0gMC4wKQorICAgICAgICByZXR1
cm47CisgICAgICAgIAorICAgIHNpemVfdCBidWZmZXJMZW5ndGggPSBzdGF0aWNfY2FzdDxzaXpl
X3Q+KHNhbXBsZVJhdGUgKiBtYXhEZWxheVRpbWUpOworICAgIEFTU0VSVChidWZmZXJMZW5ndGgp
OworICAgIGlmICghYnVmZmVyTGVuZ3RoKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9i
dWZmZXIucmVzaXplKGJ1ZmZlckxlbmd0aCk7CisgICAgbV9idWZmZXIuemVybygpOworCisgICAg
bV9zbW9vdGhpbmdSYXRlID0gQXVkaW9VdGlsaXRpZXM6OmRpc2NyZXRlVGltZUNvbnN0YW50Rm9y
U2FtcGxlUmF0ZShTbW9vdGhpbmdUaW1lQ29uc3RhbnQsIHNhbXBsZVJhdGUpOworfQorCit2b2lk
IERlbGF5RFNQS2VybmVsOjpwcm9jZXNzKGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0
aW5hdGlvbiwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKK3sKKyAgICBzaXplX3QgYnVmZmVyTGVu
Z3RoID0gbV9idWZmZXIuc2l6ZSgpOworICAgIGZsb2F0KiBidWZmZXIgPSBtX2J1ZmZlci5kYXRh
KCk7CisKKyAgICBBU1NFUlQoYnVmZmVyTGVuZ3RoKTsKKyAgICBpZiAoIWJ1ZmZlckxlbmd0aCkK
KyAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICBBU1NFUlQoc291cmNlICYmIGRlc3RpbmF0
aW9uKTsKKyAgICBpZiAoIXNvdXJjZSB8fCAhZGVzdGluYXRpb24pCisgICAgICAgIHJldHVybjsK
KyAgICAgICAgCisgICAgZG91YmxlIHNhbXBsZVJhdGUgPSB0aGlzLT5zYW1wbGVSYXRlKCk7Cisg
ICAgZG91YmxlIGRlbGF5VGltZSA9IGRlbGF5UHJvY2Vzc29yKCkgPyBkZWxheVByb2Nlc3Nvcigp
LT5kZWxheVRpbWUoKS0+dmFsdWUoKSA6IG1fZGVzaXJlZERlbGF5RnJhbWVzIC8gc2FtcGxlUmF0
ZTsKKworICAgIC8vIE1ha2Ugc3VyZSB0aGUgZGVsYXkgdGltZSBpcyBpbiBhIHZhbGlkIHJhbmdl
LgorICAgIGRlbGF5VGltZSA9IG1pbihtYXhEZWxheVRpbWUoKSwgZGVsYXlUaW1lKTsKKyAgICBk
ZWxheVRpbWUgPSBtYXgoMC4wLCBkZWxheVRpbWUpOworCisgICAgaWYgKG1fZmlyc3RUaW1lKSB7
CisgICAgICAgIG1fY3VycmVudERlbGF5VGltZSA9IGRlbGF5VGltZTsKKyAgICAgICAgbV9maXJz
dFRpbWUgPSBmYWxzZTsKKyAgICB9CisgICAgCisgICAgaW50IG4gPSBmcmFtZXNUb1Byb2Nlc3M7
CisgICAgd2hpbGUgKG4tLSkgeworICAgICAgICAvLyBBcHByb2FjaCBkZXNpcmVkIGRlbGF5IHRp
bWUuCisgICAgICAgIG1fY3VycmVudERlbGF5VGltZSArPSAoZGVsYXlUaW1lIC0gbV9jdXJyZW50
RGVsYXlUaW1lKSAqIG1fc21vb3RoaW5nUmF0ZTsKKworICAgICAgICBkb3VibGUgZGVzaXJlZERl
bGF5RnJhbWVzID0gbV9jdXJyZW50RGVsYXlUaW1lICogc2FtcGxlUmF0ZTsKKworICAgICAgICBk
b3VibGUgcmVhZFBvc2l0aW9uID0gbV93cml0ZUluZGV4ICsgYnVmZmVyTGVuZ3RoIC0gZGVzaXJl
ZERlbGF5RnJhbWVzOworICAgICAgICBpZiAocmVhZFBvc2l0aW9uID4gYnVmZmVyTGVuZ3RoKQor
ICAgICAgICAgICAgcmVhZFBvc2l0aW9uIC09IGJ1ZmZlckxlbmd0aDsKKworICAgICAgICAvLyBM
aW5lYXJseSBpbnRlcnBvbGF0ZSBpbi1iZXR3ZWVuIGRlbGF5IHRpbWVzLgorICAgICAgICBpbnQg
cmVhZEluZGV4MSA9IHN0YXRpY19jYXN0PGludD4ocmVhZFBvc2l0aW9uKTsKKyAgICAgICAgaW50
IHJlYWRJbmRleDIgPSAocmVhZEluZGV4MSArIDEpICUgYnVmZmVyTGVuZ3RoOworICAgICAgICBk
b3VibGUgaW50ZXJwb2xhdGlvbkZhY3RvciA9IHJlYWRQb3NpdGlvbiAtIHJlYWRJbmRleDE7CisK
KyAgICAgICAgZG91YmxlIGlucHV0ID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KCpzb3VyY2UrKyk7Cisg
ICAgICAgIGJ1ZmZlclttX3dyaXRlSW5kZXhdID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGlucHV0KTsK
KyAgICAgICAgbV93cml0ZUluZGV4ID0gKG1fd3JpdGVJbmRleCArIDEpICUgYnVmZmVyTGVuZ3Ro
OyAgICAgICAgCisgICAgICAgIAorICAgICAgICBkb3VibGUgc2FtcGxlMSA9IGJ1ZmZlcltyZWFk
SW5kZXgxXTsKKyAgICAgICAgZG91YmxlIHNhbXBsZTIgPSBidWZmZXJbcmVhZEluZGV4Ml07Cisg
ICAgICAgIAorICAgICAgICBkb3VibGUgb3V0cHV0ID0gKDEuMCAtIGludGVycG9sYXRpb25GYWN0
b3IpICogc2FtcGxlMSArIGludGVycG9sYXRpb25GYWN0b3IgKiBzYW1wbGUyOworCisgICAgICAg
ICpkZXN0aW5hdGlvbisrID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG91dHB1dCk7CisgICAgfSAgICAg
ICAgCit9CisKK3ZvaWQgRGVsYXlEU1BLZXJuZWw6OnJlc2V0KCkKK3sKKyAgICBtX2ZpcnN0VGlt
ZSA9IHRydWU7CisgICAgbV9idWZmZXIuemVybygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpJbmRleDogV2ViQ29yZS93ZWJhdWRp
by9EZWxheURTUEtlcm5lbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd2ViYXVkaW8vRGVsYXlE
U1BLZXJuZWwuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvd2ViYXVkaW8vRGVsYXlEU1BLZXJu
ZWwuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
RGVsYXlEU1BLZXJuZWxfaAorI2RlZmluZSBEZWxheURTUEtlcm5lbF9oCisKKyNpbmNsdWRlICJB
dWRpb0FycmF5LmgiCisjaW5jbHVkZSAiQXVkaW9EU1BLZXJuZWwuaCIKKyNpbmNsdWRlICJEZWxh
eVByb2Nlc3Nvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERlbGF5UHJvY2Vz
c29yOworICAgIAorY2xhc3MgRGVsYXlEU1BLZXJuZWwgOiBwdWJsaWMgQXVkaW9EU1BLZXJuZWwg
eworcHVibGljOiAgCisgICAgRGVsYXlEU1BLZXJuZWwoRGVsYXlQcm9jZXNzb3IqKTsKKyAgICBE
ZWxheURTUEtlcm5lbChkb3VibGUgbWF4RGVsYXlUaW1lLCBkb3VibGUgc2FtcGxlUmF0ZSk7Cisg
ICAgCisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3MoY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQq
IGRlc3RpbmF0aW9uLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVzZXQoKTsKKyAgICAKKyAgICBkb3VibGUgbWF4RGVsYXlUaW1lKCkgY29uc3QgeyByZXR1cm4g
bV9tYXhEZWxheVRpbWU7IH0KKyAgICAKKyAgICB2b2lkIHNldERlbGF5RnJhbWVzKGRvdWJsZSBu
dW1iZXJPZkZyYW1lcykgeyBtX2Rlc2lyZWREZWxheUZyYW1lcyA9IG51bWJlck9mRnJhbWVzOyB9
CisgICAgCitwcml2YXRlOgorICAgIEF1ZGlvRmxvYXRBcnJheSBtX2J1ZmZlcjsKKyAgICBkb3Vi
bGUgbV9tYXhEZWxheVRpbWU7CisgICAgaW50IG1fd3JpdGVJbmRleDsKKyAgICBkb3VibGUgbV9j
dXJyZW50RGVsYXlUaW1lOworICAgIGRvdWJsZSBtX3Ntb290aGluZ1JhdGU7CisgICAgYm9vbCBt
X2ZpcnN0VGltZTsKKyAgICBkb3VibGUgbV9kZXNpcmVkRGVsYXlGcmFtZXM7CisKKyAgICBEZWxh
eVByb2Nlc3NvciogZGVsYXlQcm9jZXNzb3IoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxEZWxheVBy
b2Nlc3Nvcio+KHByb2Nlc3NvcigpKTsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRGVsYXlEU1BLZXJuZWxfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>