<?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>67952</bug_id>
          
          <creation_ts>2011-09-12 14:24:29 -0700</creation_ts>
          <short_desc>Ask for audio hardware buffer size instead of using hardwired constants.</short_desc>
          <delta_ts>2011-09-19 19:06:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Raymond Toy">rtoy</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>crogers</cc>
    
    <cc>fishd</cc>
    
    <cc>kbr</cc>
    
    <cc>rtoy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>465794</commentid>
    <comment_count>0</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-09-12 14:24:29 -0700</bug_when>
    <thetext>Ask for audio hardware buffer size instead of using hardwired constants.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465796</commentid>
    <comment_count>1</comment_count>
      <attachid>107084</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-09-12 14:30:42 -0700</bug_when>
    <thetext>Created attachment 107084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465798</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-12 14:32:48 -0700</bug_when>
    <thetext>Attachment 107084 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit/chromium/ChangeLog:10:  Line contains tab character.  [whitespace/tab] [5]
Source/WebKit/chromium/ChangeLog:12:  Line contains tab character.  [whitespace/tab] [5]
Source/WebKit/chromium/ChangeLog:13:  Line contains tab character.  [whitespace/tab] [5]
Source/WebKit/chromium/ChangeLog:15:  Line contains tab character.  [whitespace/tab] [5]
Source/WebKit/chromium/ChangeLog:16:  Line contains tab character.  [whitespace/tab] [5]
Source/WebKit/chromium/ChangeLog:18:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:11:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 7 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465814</commentid>
    <comment_count>3</comment_count>
      <attachid>107084</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-09-12 15:02:10 -0700</bug_when>
    <thetext>Comment on attachment 107084
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt; +	Add declaration for hardwareAudioBufferSize().
&gt; 
&gt; Line contains tab character.  [whitespace/tab] [5]

It looks like you&apos;re using tabs in this file.  I&apos;d recommend configuring your text editor to not use tabs, but instead use &quot;spaces for tabs&quot;.  In WebKit&apos;s case one tab should equal four spaces.

&gt; Source/WebCore/platform/audio/AudioDestination.h:55
&gt; +    static int hardwareAudioBufferSize();

I would remove this as a public method and instead simply get the buffer size in the .cpp file (see below)
This is just an implementation detail.

&gt;&gt; Source/WebKit/chromium/ChangeLog:10
&gt;&gt; +	Define default audioHardwareBufferSize().
&gt; 
&gt; Line contains tab character.  [whitespace/tab] [5]

As with the other ChangeLog it looks like you are using tab characters several places in this file.  Please use &quot;soft tabs&quot; with four spaces per tab

&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:46
&gt; +unsigned callbackBufferSize = 128;

Because this is no a longer hard-coded constant, we should remove this static global variable.  Instead, use local variables in the constructor as necessary.

&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:51
&gt; +unsigned renderCountPerCallback = callbackBufferSize / renderBufferSize;

renderCountPerCallback should no longer be a static global constant, but can be changed to a local variable in the constructor since its value is calculated there...

&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:69
&gt; +    callbackBufferSize = hardwareAudioBufferSize();

callbackBufferSize should be a local variable here.

Probably overkill to have a separate function &quot;hardwareAudioBufferSize()&quot;.  Instead it would be more direct to simply call:
webKitPlatformSupport()-&gt;audioHardwareBufferSize();

directly...

&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:70
&gt; +    renderCountPerCallback = callbackBufferSize / renderBufferSize;

Here we should probably check for exact divisibility by &quot;renderBufferSize&quot;.  We&apos;ll need to round up to the nearest multiple of renderBufferSize &gt;= callbackBufferSize

This is because in the chromium back-end, we&apos;re no longer guaranteeing that the buffer size value will be a multiple of renderBufferSize.

&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:102
&gt; +int AudioDestination::hardwareAudioBufferSize()

Probably best to remove this and directly call webKitPlatformSupport()-&gt;audioHardwareBufferSize() in the constructor...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465880</commentid>
    <comment_count>4</comment_count>
      <attachid>107096</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-09-12 15:50:34 -0700</bug_when>
    <thetext>Created attachment 107096
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465925</commentid>
    <comment_count>5</comment_count>
      <attachid>107096</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-09-12 16:19:16 -0700</bug_when>
    <thetext>Comment on attachment 107096
Patch

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

&gt; Source/WebKit/chromium/ChangeLog:13
&gt; +        Call hardwareAudioBufferSize to get buffer size; update 

minor nit: this function name should be: audioHardwareBufferSize()

&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:62
&gt; +    m_callbackBufferSize = webKitPlatformSupport()-&gt;audioHardwareBufferSize();

We need to round m_callbackBufferSize to an even multiple of renderBufferSize.  It&apos;s not sufficient to make the calculation only involve m_renderCountPerCallback below.  This is because when we call createAudioDevice() we need to pass in a buffer size which is of the proper multiple, otherwise the rendering will not work correctly in render()

&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:65
&gt; +    // renderBufferSize.

very minor nit: I&apos;d not wrap this comment and instead keep it on a single line

&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:68
&gt; +    m_audioDevice = adoptPtr(webKitPlatformSupport()-&gt;createAudioDevice(m_callbackBufferSize, numberOfChannels, sampleRate, this));

But, m_callbackBufferSize *must* be evenly divisible by renderBufferSize since otherwise we won&apos;t render properly each time the render() method is called.

&gt; Source/WebKit/chromium/src/AudioDestinationChromium.h:64
&gt; +    unsigned m_renderCountPerCallback;

To be consistent with what audioHardwareBufferSize() returns we should change &quot;unsigned&quot; -&gt; &quot;size_t&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466422</commentid>
    <comment_count>6</comment_count>
      <attachid>107201</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-09-13 11:38:44 -0700</bug_when>
    <thetext>Created attachment 107201
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466455</commentid>
    <comment_count>7</comment_count>
      <attachid>107201</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-09-13 12:06:04 -0700</bug_when>
    <thetext>Comment on attachment 107201
Patch

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

&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:61
&gt; +    m_callbackBufferSize = webKitPlatformSupport()-&gt;audioHardwareBufferSize();

I would add a comment here saying something like &quot;Get the minimum usable buffer size. We&apos;ll round this value up to a multiple of our render size.
Just to be extra careful, it would be a good idea to compare this value and make sure it&apos;s within a certain reasonable range.

I would propose creating a &quot;const size_t maxCallbackBufferSize = 16384;&quot; near the top of the file then check with an ASSERT:
ASSERT(m_callbackBufferSize &lt;= maxCallbackBufferSize);

&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:64
&gt; +    // needed.

nit: no need to wrap this comment on two lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466485</commentid>
    <comment_count>8</comment_count>
      <attachid>107216</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-09-13 13:02:50 -0700</bug_when>
    <thetext>Created attachment 107216
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466508</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-09-13 13:36:59 -0700</bug_when>
    <thetext>Thanks Ray, this looks fine to me.  I&apos;m adding Ken and Darin (for WebKit API) as reviewers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466808</commentid>
    <comment_count>10</comment_count>
      <attachid>107216</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-09-13 20:48:29 -0700</bug_when>
    <thetext>Comment on attachment 107216
Patch

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

&gt; Source/WebKit/chromium/public/WebKitPlatformSupport.h:310
&gt;      virtual double audioHardwareSampleRate() { return 0; }

It seems like we are growing enough audio specific functions here to perhaps
justify defining a WebAudioSupport interface.  This is a larger refactoring
though, and it doesn&apos;t have to be a pre-requisite for this patch.

&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:66
&gt; +    m_callbackBufferSize = webKitPlatformSupport()-&gt;audioHardwareBufferSize();

nit: I think it is a bit awkward to use this member variable to store the audioHardwareBufferSize result.  It seems like it would be better to create a local variable for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466832</commentid>
    <comment_count>11</comment_count>
      <attachid>107216</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-09-13 22:03:57 -0700</bug_when>
    <thetext>Comment on attachment 107216
Patch

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

&gt;&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:66
&gt;&gt; +    m_callbackBufferSize = webKitPlatformSupport()-&gt;audioHardwareBufferSize();
&gt; 
&gt; nit: I think it is a bit awkward to use this member variable to store the audioHardwareBufferSize result.  It seems like it would be better to create a local variable for this.

m_callbackBufferSize is also used in AudioDestinationChromium::render below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467380</commentid>
    <comment_count>12</comment_count>
      <attachid>107216</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-09-14 15:03:40 -0700</bug_when>
    <thetext>Comment on attachment 107216
Patch

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

&gt; Source/WebKit/chromium/public/WebKitPlatformSupport.h:310
&gt;      virtual double audioHardwareSampleRate() { return 0; }

Yes, this should probably be refactored.  I will look into it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467382</commentid>
    <comment_count>13</comment_count>
      <attachid>107400</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-09-14 15:07:03 -0700</bug_when>
    <thetext>Created attachment 107400
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467421</commentid>
    <comment_count>14</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-09-14 15:37:04 -0700</bug_when>
    <thetext>Forgot to mention that, as requested, I&apos;ve added the local variable callbackSize.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467475</commentid>
    <comment_count>15</comment_count>
      <attachid>107400</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-09-14 16:49:31 -0700</bug_when>
    <thetext>Comment on attachment 107400
Patch

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

This looks fine overall, but it has to wait to land until the downstream Chromium code implementing the new entry point has been checked in. At that point, Source/WebKit/chromium/DEPS will presumably need to be rolled forward. If so, then I&apos;d suggest incorporating that roll into this patch so the dependencies are clearer.

&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:72
&gt; +    ASSERT(m_callbackBufferSize &lt;= maximumCallbackBufferSize);

Is asserting really the best behavior in this case, rather than for example clamping to the maximum callback buffer size?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467492</commentid>
    <comment_count>16</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-09-14 17:35:45 -0700</bug_when>
    <thetext>*** Bug 67951 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468555</commentid>
    <comment_count>17</comment_count>
      <attachid>107400</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-09-16 10:02:12 -0700</bug_when>
    <thetext>Comment on attachment 107400
Patch

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

&gt;&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:72
&gt;&gt; +    ASSERT(m_callbackBufferSize &lt;= maximumCallbackBufferSize);
&gt; 
&gt; Is asserting really the best behavior in this case, rather than for example clamping to the maximum callback buffer size?

Good question.  This was suggested by Chris in an earlier comment (#7).

This also begs the question if we should check for a minimum too.  I think ALSA can actually return a value as low as 1, which would be way too small for us.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468592</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-09-16 10:38:51 -0700</bug_when>
    <thetext>I would just go ahead and add the complete bounds checking to keep the callback size sane.  If audioHardwareBufferSize() returns 0, for example...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468740</commentid>
    <comment_count>19</comment_count>
      <attachid>107710</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-09-16 13:01:41 -0700</bug_when>
    <thetext>Created attachment 107710
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468743</commentid>
    <comment_count>20</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-09-16 13:03:53 -0700</bug_when>
    <thetext>Lower and upper bounds check added for m_callbackBufferSize.  I did not address the comment about the ASSERT, but I can change the ASSERT to clip the value to either the min or max value, if that makes more sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468787</commentid>
    <comment_count>21</comment_count>
      <attachid>107710</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-09-16 13:41:00 -0700</bug_when>
    <thetext>Comment on attachment 107710
Patch

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

&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:47
&gt; +const size_t minimumCallbackBufferSize = 128;

I wouldn&apos;t create a new constant here, but instead use the already existing constant &quot;renderBufferSize&quot;

&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:74
&gt; +    ASSERT((minimumCallbackBuffersize &lt;= m_callbackBuffersize)

I would suggest something like this:

bool isSizeGood = m_callbackBuffersize &gt;= renderBufferSize &amp;&amp; m_callbackBuffersize &lt;= maximumCallbackBufferSize;
ASSERT(isSizeGood);
if (!isSizeGood)
    return;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468834</commentid>
    <comment_count>22</comment_count>
      <attachid>107710</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-09-16 15:15:41 -0700</bug_when>
    <thetext>Comment on attachment 107710
Patch

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

&gt;&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:47
&gt;&gt; +const size_t minimumCallbackBufferSize = 128;
&gt; 
&gt; I wouldn&apos;t create a new constant here, but instead use the already existing constant &quot;renderBufferSize&quot;

Although they have the same value, they&apos;re conceptually different things.  Do you think overloading the meaning is appropriate?

&gt;&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:74
&gt;&gt; +    ASSERT((minimumCallbackBuffersize &lt;= m_callbackBuffersize)
&gt; 
&gt; I would suggest something like this:
&gt; 
&gt; bool isSizeGood = m_callbackBuffersize &gt;= renderBufferSize &amp;&amp; m_callbackBuffersize &lt;= maximumCallbackBufferSize;
&gt; ASSERT(isSizeGood);
&gt; if (!isSizeGood)
&gt;     return;

Yes, I&apos;ll do this in the next patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468838</commentid>
    <comment_count>23</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-09-16 15:22:22 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 107710 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=107710&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:47
&gt; &gt;&gt; +const size_t minimumCallbackBufferSize = 128;
&gt; &gt; 
&gt; &gt; I wouldn&apos;t create a new constant here, but instead use the already existing constant &quot;renderBufferSize&quot;
&gt; 
&gt; Although they have the same value, they&apos;re conceptually different things.  Do you think overloading the meaning is appropriate?

The problem with having two different constants is that one could be changed, and the other value would no longer be consistent.  I think two values would be more bug prone.  If you really wanted two constants then you could define one in terms of the other (equal to the other).  But this really seems overkill.


&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:74
&gt; &gt;&gt; +    ASSERT((minimumCallbackBuffersize &lt;= m_callbackBuffersize)
&gt; &gt; 
&gt; &gt; I would suggest something like this:
&gt; &gt; 
&gt; &gt; bool isSizeGood = m_callbackBuffersize &gt;= renderBufferSize &amp;&amp; m_callbackBuffersize &lt;= maximumCallbackBufferSize;
&gt; &gt; ASSERT(isSizeGood);
&gt; &gt; if (!isSizeGood)
&gt; &gt;     return;
&gt; 
&gt; Yes, I&apos;ll do this in the next patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469526</commentid>
    <comment_count>24</comment_count>
      <attachid>107888</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-09-19 10:58:17 -0700</bug_when>
    <thetext>Created attachment 107888
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469528</commentid>
    <comment_count>25</comment_count>
      <attachid>107710</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-09-19 10:59:20 -0700</bug_when>
    <thetext>Comment on attachment 107710
Patch

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

&gt;&gt;&gt;&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:47
&gt;&gt;&gt;&gt; +const size_t minimumCallbackBufferSize = 128;
&gt;&gt;&gt; 
&gt;&gt;&gt; I wouldn&apos;t create a new constant here, but instead use the already existing constant &quot;renderBufferSize&quot;
&gt;&gt; 
&gt;&gt; Although they have the same value, they&apos;re conceptually different things.  Do you think overloading the meaning is appropriate?
&gt; 
&gt; The problem with having two different constants is that one could be changed, and the other value would no longer be consistent.  I think two values would be more bug prone.  If you really wanted two constants then you could define one in terms of the other (equal to the other).  But this really seems overkill.

Fair enough.  I&apos;ll make the change.  (Actually, as long as  callbackSize is not 0, it is rounded up to a multiple of renderBufferSize anyway since we&apos;re testing m_callbackBufferSize, not callbackSize.  Maybe just test against 1 instead of renderBufferSize?)

&gt;&gt;&gt;&gt; Source/WebKit/chromium/src/AudioDestinationChromium.cpp:74
&gt;&gt;&gt;&gt; +    ASSERT((minimumCallbackBuffersize &lt;= m_callbackBuffersize)
&gt;&gt;&gt; 
&gt;&gt;&gt; I would suggest something like this:
&gt;&gt;&gt; 
&gt;&gt;&gt; bool isSizeGood = m_callbackBuffersize &gt;= renderBufferSize &amp;&amp; m_callbackBuffersize &lt;= maximumCallbackBufferSize;
&gt;&gt;&gt; ASSERT(isSizeGood);
&gt;&gt;&gt; if (!isSizeGood)
&gt;&gt;&gt;     return;
&gt;&gt; 
&gt;&gt; Yes, I&apos;ll do this in the next patch.
&gt; 
&gt; 

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469654</commentid>
    <comment_count>26</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-09-19 13:39:33 -0700</bug_when>
    <thetext>Thanks Ray, looks fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469665</commentid>
    <comment_count>27</comment_count>
      <attachid>107888</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-09-19 13:51:52 -0700</bug_when>
    <thetext>Comment on attachment 107888
Patch

Looks good to me too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469701</commentid>
    <comment_count>28</comment_count>
      <attachid>107888</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-09-19 14:46:36 -0700</bug_when>
    <thetext>Comment on attachment 107888
Patch

R=me too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469865</commentid>
    <comment_count>29</comment_count>
      <attachid>107888</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-19 19:06:28 -0700</bug_when>
    <thetext>Comment on attachment 107888
Patch

Clearing flags on attachment: 107888

Committed r95508: &lt;http://trac.webkit.org/changeset/95508&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469866</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-19 19:06:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107084</attachid>
            <date>2011-09-12 14:30:42 -0700</date>
            <delta_ts>2011-09-12 15:50:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67952-20110912143040.patch</filename>
            <type>text/plain</type>
            <size>5614</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ5NDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiMTY3ZjM3YzBjYTRjYmQ4
NGY2OWE3MDJkYzA2MjNjNGZjYmY2ODQ5Li40NmFiMWQwMDdiZDFhZGU1NTkzNWRmYjAxYmUxMjU1
ZGJmODhkOTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDktMTIgIFJheW1v
bmQgVG95ICA8cnRveUBnb29nbGUuY29tPgorCisgICAgICAgIEFzayBmb3IgYXVkaW8gaGFyZHdh
cmUgYnVmZmVyIHNpemUgaW5zdGVhZCBvZiB1c2luZyBoYXJkd2lyZWQgY29uc3RhbnRzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMu
IChPT1BTISkKKworICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaDoK
KwlBZGQgZGVjbGFyYXRpb24gZm9yIGhhcmR3YXJlQXVkaW9CdWZmZXJTaXplKCkuCisKIDIwMTEt
MDktMTIgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KIAogICAgICAgICBD
aGFyYWN0ZXJzIGJleW9uZCBVKzEwMDAwIHNob3VsZCBiZSBkZWxldGVkIGJ5IG9uZSBwcmVzc2lu
ZyBkZWxldGUga2V5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9EZXN0aW5hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9E
ZXN0aW5hdGlvbi5oCmluZGV4IDk0OTgxMTAzNzEzOThmMGI1NWJkZTg5NzE2ZDg1MGYzOGE4ZGU2
ODcuLjIwZmI4ZGJmODFjY2MxNGE3ZGE0YzcyZmMxNWUwNjkxMzdmNTM4MTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKQEAgLTUyLDYg
KzUyLDcgQEAgcHVibGljOgogICAgIC8vIFNhbXBsZS1yYXRlIGNvbnZlcnNpb24gbWF5IGhhcHBl
biBpbiBBdWRpb0Rlc3RpbmF0aW9uIHRvIHRoZSBoYXJkd2FyZSBzYW1wbGUtcmF0ZQogICAgIHZp
cnR1YWwgZG91YmxlIHNhbXBsZVJhdGUoKSBjb25zdCA9IDA7CiAgICAgc3RhdGljIGRvdWJsZSBo
YXJkd2FyZVNhbXBsZVJhdGUoKTsKKyAgICBzdGF0aWMgaW50IGhhcmR3YXJlQXVkaW9CdWZmZXJT
aXplKCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IGVlZmM4MWFlOGJlNjNlMjU3ODQyNDk0NzBkZTM3OGVmNTAzYmM5ZTkuLmFlY2Ez
NTZhMDVkOTllNTVjNjI4OWVkODEyNzUyNGRhNmRjODgxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDktMTIgIFJheW1vbmQgVG95ICA8cnRveUBn
b29nbGUuY29tPgorCisgICAgICAgIEFzayBmb3IgYXVkaW8gaGFyZHdhcmUgYnVmZmVyIHNpemUg
aW5zdGVhZCBvZiB1c2luZyBoYXJkd2lyZWQgY29uc3RhbnRzLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NTIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJLaXRQbGF0Zm9ybVN1cHBv
cnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViS2l0UGxhdGZvcm1TdXBwb3J0OjphdWRpb0hhcmR3
YXJlQnVmZmVyU2l6ZSk6CisJRGVmaW5lIGRlZmF1bHQgYXVkaW9IYXJkd2FyZUJ1ZmZlclNpemUo
KS4KKyAgICAgICAgKiBzcmMvQXVkaW9EZXN0aW5hdGlvbkNocm9taXVtLmNwcDoKKwlEZWNsYXJl
IG9ubHkgb25lIGNhbGxiYWNrQnVmZmVyU2l6ZS4gIEl0IGlzIG5vIGxvbmdlciBjb25zdGFudC4g
IAorCXJlbmRlckNvdW50UGVyQ2FsbGJhY2sgaXMgbm8gbG9uZ2VyIGEgY29uc3RhbnQgZWl0aGVy
LgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNocm9taXVtOjpBdWRpb0Rlc3Rp
bmF0aW9uQ2hyb21pdW0pOgorCUNhbGwgaGFyZHdhcmVBdWRpb0J1ZmZlclNpemUgdG8gZ2V0IGJ1
ZmZlciBzaXplOyB1cGRhdGUgCisJcmVuZGVyQ291bnRQZXJDYWxsYmFjayBhcHByb3ByaWF0ZWx5
LgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbjo6aGFyZHdhcmVBdWRpb0J1ZmZl
clNpemUpOgorCU1ha2UgY2FsbCB0byBhdWRpb0hhcmR3YXJlQnVmZmVyc2l6ZSgpIHRvIGdldCBi
dWZmZXIgc2l6ZS4KKwogMjAxMS0wOS0xMSAgSmVyZW15IE1vc2tvdmljaCAgPGplcmVteUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBDaGFuZ2UgT09QIEZvbnQgbG9hZGluZyBj
b2RlIHRvIHVzZSBDR0ZvbnQqKCkgQVBJcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgKaW5kZXggN2U0NzE2NDAxN2EzMWY5
MDljODU1MjQ3YmU1OTE1YjUwYzVhYTk1Mi4uYjMzMTQ5OTM2NzljNWY1YWIxZjZhYjNlYmYxNmY2
ZWViYTNlMDBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
S2l0UGxhdGZvcm1TdXBwb3J0LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgKQEAgLTMwOCw2ICszMDgsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gQXVkaW8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAogICAgIHZpcnR1YWwgZG91YmxlIGF1ZGlvSGFyZHdhcmVTYW1wbGVS
YXRlKCkgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgc2l6ZV90IGF1ZGlvSGFyZHdhcmVCdWZm
ZXJTaXplKCkgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgV2ViQXVkaW9EZXZpY2UqIGNyZWF0
ZUF1ZGlvRGV2aWNlKHNpemVfdCBidWZmZXJTaXplLCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxz
LCBkb3VibGUgc2FtcGxlUmF0ZSwgV2ViQXVkaW9EZXZpY2U6OlJlbmRlckNhbGxiYWNrKikgeyBy
ZXR1cm4gMDsgfQogCiAgICAgLy8gRmlsZVN5c3RlbSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQXVkaW9EZXN0aW5hdGlvbkNocm9taXVtLmNwcAppbmRleCA4NjI3
OTVhNjY0N2EyM2Q4YWIwYTE4MThjNzQ3YzFlMmQ0MWJjOGJjLi5mYmYzNmYyZGQ5M2M5YTJkMTdj
N2E3N2NlNWUyMjczN2EyOGQyZDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0F1ZGlvRGVzdGluYXRpb25DaHJvbWl1bS5jcHAKQEAgLTQxLDIwICs0MSwxNCBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBCdWZm
ZXIgc2l6ZSB0aGF0IHRoZSBDaHJvbWl1bSBhdWRpbyBzeXN0ZW0gd2lsbCBjYWxsIHVzIGJhY2sg
d2l0aC4KLSNpZiBPUyhEQVJXSU4pCi0vLyBGb3IgTWFjIE9TIFggdGhlIGNocm9taXVtIGF1ZGlv
IGJhY2tlbmQgdXNlcyBhIGxvdy1sYXRlbmN5IENvcmVBdWRpbyBBUEksIHNvIGEgbG93IGJ1ZmZl
ciBzaXplIGlzIHBvc3NpYmxlLgotY29uc3QgdW5zaWduZWQgY2FsbGJhY2tCdWZmZXJTaXplID0g
MTI4OwotI2Vsc2UKLS8vIFRoaXMgdmFsdWUgbWF5IG5lZWQgdG8gYmUgdHVuZWQgYmFzZWQgb24g
dGhlIE9TLgotLy8gRklYTUU6IEl0IG1heSBiZSBwb3NzaWJsZSB0byByZWR1Y2UgdGhpcyB2YWx1
ZSBvbmNlIHJlYWwtdGltZSB0aHJlYWRzCi0vLyBhbmQgb3RoZXIgQ2hyb21pdW0gYXVkaW8gaW1w
cm92ZW1lbnRzIGFyZSBtYWRlLgotY29uc3QgdW5zaWduZWQgY2FsbGJhY2tCdWZmZXJTaXplID0g
MjA0ODsKLSNlbmRpZgorLy8gVGhlIGFjdHVhbCB2YWx1ZSB3aWxsIGJlIHNldCBpbiBBdWRpb0Rl
c3RpbmF0aW9uQ2hyb21pdW0KKy8vIGNvbnN0cnVjdG9yLgordW5zaWduZWQgY2FsbGJhY2tCdWZm
ZXJTaXplID0gMTI4OwogCiAvLyBCdWZmZXIgc2l6ZSBhdCB3aGljaCB0aGUgd2ViIGF1ZGlvIGVu
Z2luZSB3aWxsIHJlbmRlci4KIGNvbnN0IHVuc2lnbmVkIHJlbmRlckJ1ZmZlclNpemUgPSAxMjg7
CiAKLWNvbnN0IHVuc2lnbmVkIHJlbmRlckNvdW50UGVyQ2FsbGJhY2sgPSBjYWxsYmFja0J1ZmZl
clNpemUgLyByZW5kZXJCdWZmZXJTaXplOwordW5zaWduZWQgcmVuZGVyQ291bnRQZXJDYWxsYmFj
ayA9IGNhbGxiYWNrQnVmZmVyU2l6ZSAvIHJlbmRlckJ1ZmZlclNpemU7CiAKIC8vIEZJWE1FOiBh
ZGQgc3VwcG9ydCBmb3IgbXVsdGktY2hhbm5lbC4KIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQ2hh
bm5lbHMgPSAyOwpAQCAtNzEsNiArNjUsMTAgQEAgQXVkaW9EZXN0aW5hdGlvbkNocm9taXVtOjpB
dWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0oQXVkaW9Tb3VyY2VQcm92aWRlciYgcHJvdmlkZXIKICAg
ICAsIG1fc2FtcGxlUmF0ZShzYW1wbGVSYXRlKQogICAgICwgbV9pc1BsYXlpbmcoZmFsc2UpCiB7
CisKKyAgICBjYWxsYmFja0J1ZmZlclNpemUgPSBoYXJkd2FyZUF1ZGlvQnVmZmVyU2l6ZSgpOwor
ICAgIHJlbmRlckNvdW50UGVyQ2FsbGJhY2sgPSBjYWxsYmFja0J1ZmZlclNpemUgLyByZW5kZXJC
dWZmZXJTaXplOworCiAgICAgbV9hdWRpb0RldmljZSA9IGFkb3B0UHRyKHdlYktpdFBsYXRmb3Jt
U3VwcG9ydCgpLT5jcmVhdGVBdWRpb0RldmljZShjYWxsYmFja0J1ZmZlclNpemUsIG51bWJlck9m
Q2hhbm5lbHMsIHNhbXBsZVJhdGUsIHRoaXMpKTsKICAgICBBU1NFUlQobV9hdWRpb0RldmljZS5n
ZXQoKSk7CiB9CkBAIC0xMDEsNiArOTksMTEgQEAgZG91YmxlIEF1ZGlvRGVzdGluYXRpb246Omhh
cmR3YXJlU2FtcGxlUmF0ZSgpCiAgICAgcmV0dXJuIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5h
dWRpb0hhcmR3YXJlU2FtcGxlUmF0ZSgpOwogfQogCitpbnQgQXVkaW9EZXN0aW5hdGlvbjo6aGFy
ZHdhcmVBdWRpb0J1ZmZlclNpemUoKQoreworICAgIHJldHVybiB3ZWJLaXRQbGF0Zm9ybVN1cHBv
cnQoKS0+YXVkaW9IYXJkd2FyZUJ1ZmZlclNpemUoKTsKK30KKwogLy8gUHVsbHMgb24gb3VyIHBy
b3ZpZGVyIHRvIGdldCB0aGUgcmVuZGVyZWQgYXVkaW8gc3RyZWFtLgogdm9pZCBBdWRpb0Rlc3Rp
bmF0aW9uQ2hyb21pdW06OnJlbmRlcihjb25zdCBXZWJWZWN0b3I8ZmxvYXQqPiYgYXVkaW9EYXRh
LCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107096</attachid>
            <date>2011-09-12 15:50:34 -0700</date>
            <delta_ts>2011-09-13 11:38:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67952-20110912155033.patch</filename>
            <type>text/plain</type>
            <size>5164</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ5NDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
ZWVmYzgxYWU4YmU2M2UyNTc4NDI0OTQ3MGRlMzc4ZWY1MDNiYzllOS4uODk5NjljNjdhY2JkMTM5
MjFjZjNkN2MwYTA0OTI2OWFkYTAwZDg3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOCBAQAorMjAxMS0wOS0xMiAgUmF5bW9uZCBUb3kgIDxydG95QGdvb2dsZS5jb20+
CisKKyAgICAgICAgQXNrIGZvciBhdWRpbyBoYXJkd2FyZSBidWZmZXIgc2l6ZSBpbnN0ZWFkIG9m
IHVzaW5nIGhhcmR3aXJlZCBjb25zdGFudHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogc3JjL0F1ZGlvRGVzdGluYXRpb25DaHJvbWl1bS5oOgorICAg
ICAgICBBZGQgbmV3IG1lbWJlciB2YXJpYWJsZXM6IG1fY2FsbGJhY2tCdWZmZXJTaXplIGFuZAor
ICAgICAgICBtX3JlbmRlckNvdW50UGVyQ2FsbGJhY2suCisgICAgICAgICogc3JjL0F1ZGlvRGVz
dGluYXRpb25DaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
Q2hyb21pdW06OkF1ZGlvRGVzdGluYXRpb25DaHJvbWl1bSk6CisgICAgICAgIENhbGwgaGFyZHdh
cmVBdWRpb0J1ZmZlclNpemUgdG8gZ2V0IGJ1ZmZlciBzaXplOyB1cGRhdGUgCisgICAgICAgIG1f
Y2FsbGJhY2tCdWZmZXJTaXplIGFuZCBtX3JlbmRlckNvdW50UGVyQ2FsbGJhY2sgYXBwcm9wcmlh
dGVseS4KKwogMjAxMS0wOS0xMSAgSmVyZW15IE1vc2tvdmljaCAgPGplcmVteUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBDaGFuZ2UgT09QIEZvbnQgbG9hZGluZyBjb2RlIHRv
IHVzZSBDR0ZvbnQqKCkgQVBJcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgKaW5kZXggN2U0NzE2NDAxN2EzMWY5MDljODU1
MjQ3YmU1OTE1YjUwYzVhYTk1Mi4uYjMzMTQ5OTM2NzljNWY1YWIxZjZhYjNlYmYxNmY2ZWViYTNl
MDBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViS2l0UGxh
dGZvcm1TdXBwb3J0LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViS2l0
UGxhdGZvcm1TdXBwb3J0LmgKQEAgLTMwOCw2ICszMDgsNyBAQCBwdWJsaWM6CiAgICAgLy8gQXVk
aW8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KIAogICAgIHZpcnR1YWwgZG91YmxlIGF1ZGlvSGFyZHdhcmVTYW1wbGVSYXRlKCkg
eyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgc2l6ZV90IGF1ZGlvSGFyZHdhcmVCdWZmZXJTaXpl
KCkgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgV2ViQXVkaW9EZXZpY2UqIGNyZWF0ZUF1ZGlv
RGV2aWNlKHNpemVfdCBidWZmZXJTaXplLCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBkb3Vi
bGUgc2FtcGxlUmF0ZSwgV2ViQXVkaW9EZXZpY2U6OlJlbmRlckNhbGxiYWNrKikgeyByZXR1cm4g
MDsgfQogCiAgICAgLy8gRmlsZVN5c3RlbSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQXVkaW9EZXN0aW5hdGlvbkNocm9taXVtLmNwcAppbmRleCA4NjI3OTVhNjY0
N2EyM2Q4YWIwYTE4MThjNzQ3YzFlMmQ0MWJjOGJjLi4yMzAwZTViYjhmZjQzNjY5OWNlOWY5NGFi
YWU1YzQyNWRkMThkM2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9B
dWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0F1ZGlvRGVzdGluYXRpb25DaHJvbWl1bS5jcHAKQEAgLTQwLDIyICs0MCw5IEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gQnVmZmVyIHNp
emUgdGhhdCB0aGUgQ2hyb21pdW0gYXVkaW8gc3lzdGVtIHdpbGwgY2FsbCB1cyBiYWNrIHdpdGgu
Ci0jaWYgT1MoREFSV0lOKQotLy8gRm9yIE1hYyBPUyBYIHRoZSBjaHJvbWl1bSBhdWRpbyBiYWNr
ZW5kIHVzZXMgYSBsb3ctbGF0ZW5jeSBDb3JlQXVkaW8gQVBJLCBzbyBhIGxvdyBidWZmZXIgc2l6
ZSBpcyBwb3NzaWJsZS4KLWNvbnN0IHVuc2lnbmVkIGNhbGxiYWNrQnVmZmVyU2l6ZSA9IDEyODsK
LSNlbHNlCi0vLyBUaGlzIHZhbHVlIG1heSBuZWVkIHRvIGJlIHR1bmVkIGJhc2VkIG9uIHRoZSBP
Uy4KLS8vIEZJWE1FOiBJdCBtYXkgYmUgcG9zc2libGUgdG8gcmVkdWNlIHRoaXMgdmFsdWUgb25j
ZSByZWFsLXRpbWUgdGhyZWFkcwotLy8gYW5kIG90aGVyIENocm9taXVtIGF1ZGlvIGltcHJvdmVt
ZW50cyBhcmUgbWFkZS4KLWNvbnN0IHVuc2lnbmVkIGNhbGxiYWNrQnVmZmVyU2l6ZSA9IDIwNDg7
Ci0jZW5kaWYKLQogLy8gQnVmZmVyIHNpemUgYXQgd2hpY2ggdGhlIHdlYiBhdWRpbyBlbmdpbmUg
d2lsbCByZW5kZXIuCiBjb25zdCB1bnNpZ25lZCByZW5kZXJCdWZmZXJTaXplID0gMTI4OwogCi1j
b25zdCB1bnNpZ25lZCByZW5kZXJDb3VudFBlckNhbGxiYWNrID0gY2FsbGJhY2tCdWZmZXJTaXpl
IC8gcmVuZGVyQnVmZmVyU2l6ZTsKLQogLy8gRklYTUU6IGFkZCBzdXBwb3J0IGZvciBtdWx0aS1j
aGFubmVsLgogY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscyA9IDI7CiAKQEAgLTcxLDcg
KzU4LDE0IEBAIEF1ZGlvRGVzdGluYXRpb25DaHJvbWl1bTo6QXVkaW9EZXN0aW5hdGlvbkNocm9t
aXVtKEF1ZGlvU291cmNlUHJvdmlkZXImIHByb3ZpZGVyCiAgICAgLCBtX3NhbXBsZVJhdGUoc2Ft
cGxlUmF0ZSkKICAgICAsIG1faXNQbGF5aW5nKGZhbHNlKQogewotICAgIG1fYXVkaW9EZXZpY2Ug
PSBhZG9wdFB0cih3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRlQXVkaW9EZXZpY2UoY2Fs
bGJhY2tCdWZmZXJTaXplLCBudW1iZXJPZkNoYW5uZWxzLCBzYW1wbGVSYXRlLCB0aGlzKSk7CisK
KyAgICBtX2NhbGxiYWNrQnVmZmVyU2l6ZSA9IHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5hdWRp
b0hhcmR3YXJlQnVmZmVyU2l6ZSgpOworCisgICAgLy8gRWZmZWN0aXZlbHkgcm91bmQgdXAgY2Fs
bGJhY2tCdWZmZXJTaXplIHRvIGEgbXVsdGlwbGUgb2YKKyAgICAvLyByZW5kZXJCdWZmZXJTaXpl
LgorICAgIG1fcmVuZGVyQ291bnRQZXJDYWxsYmFjayA9IChtX2NhbGxiYWNrQnVmZmVyU2l6ZSAr
IHJlbmRlckJ1ZmZlclNpemUgLSAxKSAvIHJlbmRlckJ1ZmZlclNpemU7CisKKyAgICBtX2F1ZGlv
RGV2aWNlID0gYWRvcHRQdHIod2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmNyZWF0ZUF1ZGlvRGV2
aWNlKG1fY2FsbGJhY2tCdWZmZXJTaXplLCBudW1iZXJPZkNoYW5uZWxzLCBzYW1wbGVSYXRlLCB0
aGlzKSk7CiAgICAgQVNTRVJUKG1fYXVkaW9EZXZpY2UuZ2V0KCkpOwogfQogCkBAIC0xMTAsMTQg
KzEwNCwxNCBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25DaHJvbWl1bTo6cmVuZGVyKGNvbnN0IFdl
YlZlY3RvcjxmbG9hdCo+JiBhdWRpb0RhdGEsIHNpemVfdAogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgICAgICAKLSAgICBib29sIGlzQnVmZmVyU2l6ZUdvb2QgPSBudW1iZXJPZkZyYW1lcyA9
PSBjYWxsYmFja0J1ZmZlclNpemU7CisgICAgYm9vbCBpc0J1ZmZlclNpemVHb29kID0gbnVtYmVy
T2ZGcmFtZXMgPT0gbV9jYWxsYmFja0J1ZmZlclNpemU7CiAgICAgaWYgKCFpc0J1ZmZlclNpemVH
b29kKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCiAgICAgLy8gU3BsaXQgdXAgdGhlIGNhbGxiYWNrIGJ1ZmZlciBpbnRvIHNtYWxsZXIg
Y2h1bmtzIHdoaWNoIHdlJ2xsIHJlbmRlciBvbmUgYWZ0ZXIgdGhlIG90aGVyLgotICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCByZW5kZXJDb3VudFBlckNhbGxiYWNrOyArK2kpIHsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9yZW5kZXJDb3VudFBlckNhbGxiYWNrOyArK2kpIHsK
ICAgICAgICAgbV9yZW5kZXJCdXMuc2V0Q2hhbm5lbE1lbW9yeSgwLCBhdWRpb0RhdGFbMF0gKyBp
ICogcmVuZGVyQnVmZmVyU2l6ZSwgcmVuZGVyQnVmZmVyU2l6ZSk7CiAgICAgICAgIG1fcmVuZGVy
QnVzLnNldENoYW5uZWxNZW1vcnkoMSwgYXVkaW9EYXRhWzFdICsgaSAqIHJlbmRlckJ1ZmZlclNp
emUsIHJlbmRlckJ1ZmZlclNpemUpOwogICAgICAgICBtX3Byb3ZpZGVyLnByb3ZpZGVJbnB1dCgm
bV9yZW5kZXJCdXMsIHJlbmRlckJ1ZmZlclNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQXVkaW9EZXN0aW5hdGlvbkNocm9taXVtLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uaAppbmRleCBhMmEyYjU4ZGJj
YTEzM2VkYTIzMWNjOTU2ZWNiOTBmM2U3YzkxMjY4Li5jY2ZkN2M3ZDFjOGQ1YmIwMjQzNGY0Njlk
MjBlNzFkZjZjMDAyOTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9B
dWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uaApAQCAtNjAsNiArNjAsOCBAQCBwcml2YXRlOgog
ICAgIGRvdWJsZSBtX3NhbXBsZVJhdGU7CiAgICAgYm9vbCBtX2lzUGxheWluZzsKICAgICBPd25Q
dHI8V2ViS2l0OjpXZWJBdWRpb0RldmljZT4gbV9hdWRpb0RldmljZTsKKyAgICB1bnNpZ25lZCBt
X2NhbGxiYWNrQnVmZmVyU2l6ZTsKKyAgICB1bnNpZ25lZCBtX3JlbmRlckNvdW50UGVyQ2FsbGJh
Y2s7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107201</attachid>
            <date>2011-09-13 11:38:44 -0700</date>
            <delta_ts>2011-09-13 13:02:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67952-20110913113843.patch</filename>
            <type>text/plain</type>
            <size>5750</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ5NzQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
Mzc5ZjlkNTBmYzE1ODYwNjBmZTU3MGQ1MmRmODA4YWRhYjQ0MDI1ZC4uNTJlM2E3M2Q0NjcyYzU0
Mjc2N2I4ZmIxMDMyNjJhMGZjMDFmMjhlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMyBAQAorMjAxMS0wOS0xMyAgUmF5bW9uZCBUb3kgIDxydG95QGdvb2dsZS5jb20+
CisKKyAgICAgICAgQXNrIGZvciBhdWRpbyBoYXJkd2FyZSBidWZmZXIgc2l6ZSBpbnN0ZWFkIG9m
IHVzaW5nIGhhcmR3aXJlZCBjb25zdGFudHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OmF1ZGlvSGFyZHdhcmVCdWZmZXJT
aXplKToKKyAgICAgICAgRGVjbGFyZSBuZXcgbWVtYmVyIGZ1bmN0aW9uIGF1ZGlvSGFyZHdhcmVC
dWZmZXJTaXplLgorICAgICAgICAqIHNyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNocm9taXVtOjpBdWRpb0Rlc3RpbmF0
aW9uQ2hyb21pdW0pOgorICAgICAgICBDYWxsIGF1ZGlvSGFyZHdhcmVCdWZmZXJTaXplKCkgdG8g
Z2V0IGJ1ZmZlciBzaXplOyB1cGRhdGUgbV9jYWxsYmFja0J1ZmZlcnNpemUKKyAgICAgICAgYW5k
IG1fcmVuZGVyQ291bnRQZXJDYWxsYmFjayBhcHByb3ByaWF0ZWx5LiAgUmVtb3ZlIGdsb2JhbCB2
YXJpYWJsZXMgCisgICAgICAgIGNhbGxiYWNrQnVmZmVyU2l6ZSBhbmQgcmVuZGVyQ291bnRQZXJD
YWxsYmFjay4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25DaHJvbWl1bTo6cmVu
ZGVyKToKKyAgICAgICAgVXNlIG5ldyBtZW1iZXIgdmFyaWFibGVzIGluc3RlYWQgb2YgZ2xvYmFs
cy4KKyAgICAgICAgKiBzcmMvQXVkaW9EZXN0aW5hdGlvbkNocm9taXVtLmg6CisgICAgICAgIERl
ZmluZSBuZXcgbWVtYmVyIHZhcmlhYmxlcyBtX2NhbGxiYWNrQnVmZmVyU2l6ZSBhbmQgbV9yZW5k
ZXJDb3VudFBlckNhbGxiYWNrCisKIDIwMTEtMDktMDggIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQWRkIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZTpjcmVhdGVHcmFwaGljc0NvbnRleHRGb3JBbm90aGVyVGhyZWFkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oCmluZGV4IDdl
NDcxNjQwMTdhMzFmOTA5Yzg1NTI0N2JlNTkxNWI1MGM1YWE5NTIuLmIzMzE0OTkzNjc5YzVmNWFi
MWY2YWIzZWJmMTZmNmVlYmEzZTAwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oCkBAIC0zMDgsNiArMzA4LDcgQEAg
cHVibGljOgogICAgIC8vIEF1ZGlvIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICB2aXJ0dWFsIGRvdWJsZSBhdWRpb0hh
cmR3YXJlU2FtcGxlUmF0ZSgpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHNpemVfdCBhdWRp
b0hhcmR3YXJlQnVmZmVyU2l6ZSgpIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIFdlYkF1ZGlv
RGV2aWNlKiBjcmVhdGVBdWRpb0RldmljZShzaXplX3QgYnVmZmVyU2l6ZSwgdW5zaWduZWQgbnVt
YmVyT2ZDaGFubmVscywgZG91YmxlIHNhbXBsZVJhdGUsIFdlYkF1ZGlvRGV2aWNlOjpSZW5kZXJD
YWxsYmFjayopIHsgcmV0dXJuIDA7IH0KIAogICAgIC8vIEZpbGVTeXN0ZW0gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXVkaW9EZXN0aW5hdGlvbkNocm9taXVtLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1ZGlvRGVzdGluYXRpb25DaHJvbWl1bS5j
cHAKaW5kZXggODYyNzk1YTY2NDdhMjNkOGFiMGExODE4Yzc0N2MxZTJkNDFiYzhiYy4uMTJmY2Y1
NWE3MTU1NTE4YzBjYjZkZjkwNGExMjI0NGNiMTBiM2M2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQXVkaW9EZXN0aW5hdGlvbkNocm9taXVtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uY3BwCkBAIC00
MCwyMiArNDAsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLS8vIEJ1ZmZlciBzaXplIHRoYXQgdGhlIENocm9taXVtIGF1ZGlvIHN5c3RlbSB3aWxs
IGNhbGwgdXMgYmFjayB3aXRoLgotI2lmIE9TKERBUldJTikKLS8vIEZvciBNYWMgT1MgWCB0aGUg
Y2hyb21pdW0gYXVkaW8gYmFja2VuZCB1c2VzIGEgbG93LWxhdGVuY3kgQ29yZUF1ZGlvIEFQSSwg
c28gYSBsb3cgYnVmZmVyIHNpemUgaXMgcG9zc2libGUuCi1jb25zdCB1bnNpZ25lZCBjYWxsYmFj
a0J1ZmZlclNpemUgPSAxMjg7Ci0jZWxzZQotLy8gVGhpcyB2YWx1ZSBtYXkgbmVlZCB0byBiZSB0
dW5lZCBiYXNlZCBvbiB0aGUgT1MuCi0vLyBGSVhNRTogSXQgbWF5IGJlIHBvc3NpYmxlIHRvIHJl
ZHVjZSB0aGlzIHZhbHVlIG9uY2UgcmVhbC10aW1lIHRocmVhZHMKLS8vIGFuZCBvdGhlciBDaHJv
bWl1bSBhdWRpbyBpbXByb3ZlbWVudHMgYXJlIG1hZGUuCi1jb25zdCB1bnNpZ25lZCBjYWxsYmFj
a0J1ZmZlclNpemUgPSAyMDQ4OwotI2VuZGlmCi0KIC8vIEJ1ZmZlciBzaXplIGF0IHdoaWNoIHRo
ZSB3ZWIgYXVkaW8gZW5naW5lIHdpbGwgcmVuZGVyLgogY29uc3QgdW5zaWduZWQgcmVuZGVyQnVm
ZmVyU2l6ZSA9IDEyODsKIAotY29uc3QgdW5zaWduZWQgcmVuZGVyQ291bnRQZXJDYWxsYmFjayA9
IGNhbGxiYWNrQnVmZmVyU2l6ZSAvIHJlbmRlckJ1ZmZlclNpemU7Ci0KIC8vIEZJWE1FOiBhZGQg
c3VwcG9ydCBmb3IgbXVsdGktY2hhbm5lbC4KIGNvbnN0IHVuc2lnbmVkIG51bWJlck9mQ2hhbm5l
bHMgPSAyOwogCkBAIC03MSw3ICs1OCwxOCBAQCBBdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW06OkF1
ZGlvRGVzdGluYXRpb25DaHJvbWl1bShBdWRpb1NvdXJjZVByb3ZpZGVyJiBwcm92aWRlcgogICAg
ICwgbV9zYW1wbGVSYXRlKHNhbXBsZVJhdGUpCiAgICAgLCBtX2lzUGxheWluZyhmYWxzZSkKIHsK
LSAgICBtX2F1ZGlvRGV2aWNlID0gYWRvcHRQdHIod2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmNy
ZWF0ZUF1ZGlvRGV2aWNlKGNhbGxiYWNrQnVmZmVyU2l6ZSwgbnVtYmVyT2ZDaGFubmVscywgc2Ft
cGxlUmF0ZSwgdGhpcykpOworICAgIG1fY2FsbGJhY2tCdWZmZXJTaXplID0gd2ViS2l0UGxhdGZv
cm1TdXBwb3J0KCktPmF1ZGlvSGFyZHdhcmVCdWZmZXJTaXplKCk7CisKKyAgICAvLyBGaWd1cmUg
b3V0IGhvdyBtYW55IHJlbmRlciBjYWxscyBwZXIgY2FsbCBiYWNrLCByb3VuZGluZyB1cCBpZgor
ICAgIC8vIG5lZWRlZC4KKyAgICBtX3JlbmRlckNvdW50UGVyQ2FsbGJhY2sgPSAobV9jYWxsYmFj
a0J1ZmZlclNpemUgKyByZW5kZXJCdWZmZXJTaXplIC0gMSkgLyByZW5kZXJCdWZmZXJTaXplOwor
CisgICAgLy8gUm91bmQgdXAgdGhlIGNhbGxiYWNrIGJ1ZmZlciBzaXplIHRvIGEgbXVsdGlwbGUg
b2YKKyAgICAvLyByZW5kZXJCdWZmZXJTaXplIHNvIHRoYXQgZWFjaCBjYWxsYmFjayBwcm9kdWNl
cyBhbiBpbnRlZ2VyCisgICAgLy8gbnVtYmVyIG9mIHJlbmRlciBjYWxscy4KKyAgICBtX2NhbGxi
YWNrQnVmZmVyU2l6ZSA9IG1fcmVuZGVyQ291bnRQZXJDYWxsYmFjayAqIHJlbmRlckJ1ZmZlclNp
emU7CisKKyAgICBtX2F1ZGlvRGV2aWNlID0gYWRvcHRQdHIod2ViS2l0UGxhdGZvcm1TdXBwb3J0
KCktPmNyZWF0ZUF1ZGlvRGV2aWNlKG1fY2FsbGJhY2tCdWZmZXJTaXplLCBudW1iZXJPZkNoYW5u
ZWxzLCBzYW1wbGVSYXRlLCB0aGlzKSk7CiAgICAgQVNTRVJUKG1fYXVkaW9EZXZpY2UuZ2V0KCkp
OwogfQogCkBAIC0xMTAsMTQgKzEwOCwxNCBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25DaHJvbWl1
bTo6cmVuZGVyKGNvbnN0IFdlYlZlY3RvcjxmbG9hdCo+JiBhdWRpb0RhdGEsIHNpemVfdAogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKLSAgICBib29sIGlzQnVmZmVyU2l6ZUdvb2Qg
PSBudW1iZXJPZkZyYW1lcyA9PSBjYWxsYmFja0J1ZmZlclNpemU7CisgICAgYm9vbCBpc0J1ZmZl
clNpemVHb29kID0gbnVtYmVyT2ZGcmFtZXMgPT0gbV9jYWxsYmFja0J1ZmZlclNpemU7CiAgICAg
aWYgKCFpc0J1ZmZlclNpemVHb29kKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgLy8gU3BsaXQgdXAgdGhlIGNhbGxiYWNrIGJ1
ZmZlciBpbnRvIHNtYWxsZXIgY2h1bmtzIHdoaWNoIHdlJ2xsIHJlbmRlciBvbmUgYWZ0ZXIgdGhl
IG90aGVyLgotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZW5kZXJDb3VudFBlckNhbGxi
YWNrOyArK2kpIHsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9yZW5kZXJDb3VudFBl
ckNhbGxiYWNrOyArK2kpIHsKICAgICAgICAgbV9yZW5kZXJCdXMuc2V0Q2hhbm5lbE1lbW9yeSgw
LCBhdWRpb0RhdGFbMF0gKyBpICogcmVuZGVyQnVmZmVyU2l6ZSwgcmVuZGVyQnVmZmVyU2l6ZSk7
CiAgICAgICAgIG1fcmVuZGVyQnVzLnNldENoYW5uZWxNZW1vcnkoMSwgYXVkaW9EYXRhWzFdICsg
aSAqIHJlbmRlckJ1ZmZlclNpemUsIHJlbmRlckJ1ZmZlclNpemUpOwogICAgICAgICBtX3Byb3Zp
ZGVyLnByb3ZpZGVJbnB1dCgmbV9yZW5kZXJCdXMsIHJlbmRlckJ1ZmZlclNpemUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXVkaW9EZXN0aW5hdGlvbkNocm9taXVt
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0u
aAppbmRleCBhMmEyYjU4ZGJjYTEzM2VkYTIzMWNjOTU2ZWNiOTBmM2U3YzkxMjY4Li5lY2ZjNGIw
N2Q0YjRlYzI0MThkYWYxNDI4NDEwNmY3YjZmMjZmZDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uaApAQCAtNjAsNiAr
NjAsOCBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtX3NhbXBsZVJhdGU7CiAgICAgYm9vbCBtX2lz
UGxheWluZzsKICAgICBPd25QdHI8V2ViS2l0OjpXZWJBdWRpb0RldmljZT4gbV9hdWRpb0Rldmlj
ZTsKKyAgICBzaXplX3QgbV9jYWxsYmFja0J1ZmZlclNpemU7CisgICAgdW5zaWduZWQgbV9yZW5k
ZXJDb3VudFBlckNhbGxiYWNrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107216</attachid>
            <date>2011-09-13 13:02:50 -0700</date>
            <delta_ts>2011-09-14 15:06:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67952-20110913130248.patch</filename>
            <type>text/plain</type>
            <size>5933</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ5NzQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
Mzc5ZjlkNTBmYzE1ODYwNjBmZTU3MGQ1MmRmODA4YWRhYjQ0MDI1ZC4uYTc2YjAwNzAwNzRkMDA4
NDVjN2NjNTcyYTBmZjBkMWQ3MDJmOTRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNCBAQAorMjAxMS0wOS0xMyAgUmF5bW9uZCBUb3kgIDxydG95QGdvb2dsZS5jb20+
CisKKyAgICAgICAgQXNrIGZvciBhdWRpbyBoYXJkd2FyZSBidWZmZXIgc2l6ZSBpbnN0ZWFkIG9m
IHVzaW5nIGhhcmR3aXJlZCBjb25zdGFudHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OmF1ZGlvSGFyZHdhcmVCdWZmZXJT
aXplKToKKyAgICAgICAgRGVjbGFyZSBuZXcgbWVtYmVyIGZ1bmN0aW9uIGF1ZGlvSGFyZHdhcmVC
dWZmZXJTaXplLgorICAgICAgICAqIHNyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNocm9taXVtOjpBdWRpb0Rlc3RpbmF0
aW9uQ2hyb21pdW0pOgorICAgICAgICBDYWxsIGF1ZGlvSGFyZHdhcmVCdWZmZXJTaXplKCkgdG8g
Z2V0IGJ1ZmZlciBzaXplOyB1cGRhdGUgbV9jYWxsYmFja0J1ZmZlcnNpemUKKyAgICAgICAgYW5k
IG1fcmVuZGVyQ291bnRQZXJDYWxsYmFjayBhcHByb3ByaWF0ZWx5LiAgUmVtb3ZlIGdsb2JhbCB2
YXJpYWJsZXMgCisgICAgICAgIGNhbGxiYWNrQnVmZmVyU2l6ZSBhbmQgcmVuZGVyQ291bnRQZXJD
YWxsYmFjay4gIEFkZCBjb25zdGFudCBmb3IgbWF4aW11bSAKKyAgICAgICAgYWxsb3dlZCBidWZm
ZXIgc2l6ZSBhbmQgdmVyaWZ5IHdlIGRvbid0IGV4Y2VlZCBpdC4KKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvRGVzdGluYXRpb25DaHJvbWl1bTo6cmVuZGVyKToKKyAgICAgICAgVXNlIG5ldyBtZW1i
ZXIgdmFyaWFibGVzIGluc3RlYWQgb2YgZ2xvYmFscy4KKyAgICAgICAgKiBzcmMvQXVkaW9EZXN0
aW5hdGlvbkNocm9taXVtLmg6CisgICAgICAgIERlZmluZSBuZXcgbWVtYmVyIHZhcmlhYmxlcyBt
X2NhbGxiYWNrQnVmZmVyU2l6ZSBhbmQgbV9yZW5kZXJDb3VudFBlckNhbGxiYWNrCisKIDIwMTEt
MDktMDggIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1
bV0gQWRkIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTpjcmVhdGVHcmFwaGljc0NvbnRleHRGb3JB
bm90aGVyVGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YktpdFBsYXRmb3JtU3VwcG9ydC5oCmluZGV4IDdlNDcxNjQwMTdhMzFmOTA5Yzg1NTI0N2JlNTkx
NWI1MGM1YWE5NTIuLmIzMzE0OTkzNjc5YzVmNWFiMWY2YWIzZWJmMTZmNmVlYmEzZTAwYzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYktpdFBsYXRmb3JtU3Vw
cG9ydC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYktpdFBsYXRmb3Jt
U3VwcG9ydC5oCkBAIC0zMDgsNiArMzA4LDcgQEAgcHVibGljOgogICAgIC8vIEF1ZGlvIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKICAgICB2aXJ0dWFsIGRvdWJsZSBhdWRpb0hhcmR3YXJlU2FtcGxlUmF0ZSgpIHsgcmV0dXJu
IDA7IH0KKyAgICB2aXJ0dWFsIHNpemVfdCBhdWRpb0hhcmR3YXJlQnVmZmVyU2l6ZSgpIHsgcmV0
dXJuIDA7IH0KICAgICB2aXJ0dWFsIFdlYkF1ZGlvRGV2aWNlKiBjcmVhdGVBdWRpb0RldmljZShz
aXplX3QgYnVmZmVyU2l6ZSwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgZG91YmxlIHNhbXBs
ZVJhdGUsIFdlYkF1ZGlvRGV2aWNlOjpSZW5kZXJDYWxsYmFjayopIHsgcmV0dXJuIDA7IH0KIAog
ICAgIC8vIEZpbGVTeXN0ZW0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQXVkaW9EZXN0aW5hdGlvbkNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0F1ZGlvRGVzdGluYXRpb25DaHJvbWl1bS5jcHAKaW5kZXggODYyNzk1YTY2NDdhMjNkOGFi
MGExODE4Yzc0N2MxZTJkNDFiYzhiYy4uNmMwMDZhODI1Y2E2ZDU0ODZjZjUxOTNiNjc5YjBmNThl
MWU3MTY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXVkaW9EZXN0
aW5hdGlvbkNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdWRp
b0Rlc3RpbmF0aW9uQ2hyb21pdW0uY3BwCkBAIC00MCwyMSArNDAsMTEgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBCdWZmZXIgc2l6ZSB0aGF0
IHRoZSBDaHJvbWl1bSBhdWRpbyBzeXN0ZW0gd2lsbCBjYWxsIHVzIGJhY2sgd2l0aC4KLSNpZiBP
UyhEQVJXSU4pCi0vLyBGb3IgTWFjIE9TIFggdGhlIGNocm9taXVtIGF1ZGlvIGJhY2tlbmQgdXNl
cyBhIGxvdy1sYXRlbmN5IENvcmVBdWRpbyBBUEksIHNvIGEgbG93IGJ1ZmZlciBzaXplIGlzIHBv
c3NpYmxlLgotY29uc3QgdW5zaWduZWQgY2FsbGJhY2tCdWZmZXJTaXplID0gMTI4OwotI2Vsc2UK
LS8vIFRoaXMgdmFsdWUgbWF5IG5lZWQgdG8gYmUgdHVuZWQgYmFzZWQgb24gdGhlIE9TLgotLy8g
RklYTUU6IEl0IG1heSBiZSBwb3NzaWJsZSB0byByZWR1Y2UgdGhpcyB2YWx1ZSBvbmNlIHJlYWwt
dGltZSB0aHJlYWRzCi0vLyBhbmQgb3RoZXIgQ2hyb21pdW0gYXVkaW8gaW1wcm92ZW1lbnRzIGFy
ZSBtYWRlLgotY29uc3QgdW5zaWduZWQgY2FsbGJhY2tCdWZmZXJTaXplID0gMjA0ODsKLSNlbmRp
ZgotCiAvLyBCdWZmZXIgc2l6ZSBhdCB3aGljaCB0aGUgd2ViIGF1ZGlvIGVuZ2luZSB3aWxsIHJl
bmRlci4KIGNvbnN0IHVuc2lnbmVkIHJlbmRlckJ1ZmZlclNpemUgPSAxMjg7CiAKLWNvbnN0IHVu
c2lnbmVkIHJlbmRlckNvdW50UGVyQ2FsbGJhY2sgPSBjYWxsYmFja0J1ZmZlclNpemUgLyByZW5k
ZXJCdWZmZXJTaXplOworLy8gTWF4aW11bSBhbGxvd2VkIGJ1ZmZlciBzaXplCitjb25zdCBzaXpl
X3QgbWF4aW11bUNhbGxiYWNrQnVmZmVyU2l6ZSA9IDE2Mzg0OwogCiAvLyBGSVhNRTogYWRkIHN1
cHBvcnQgZm9yIG11bHRpLWNoYW5uZWwuCiBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxz
ID0gMjsKQEAgLTcxLDcgKzYxLDE4IEBAIEF1ZGlvRGVzdGluYXRpb25DaHJvbWl1bTo6QXVkaW9E
ZXN0aW5hdGlvbkNocm9taXVtKEF1ZGlvU291cmNlUHJvdmlkZXImIHByb3ZpZGVyCiAgICAgLCBt
X3NhbXBsZVJhdGUoc2FtcGxlUmF0ZSkKICAgICAsIG1faXNQbGF5aW5nKGZhbHNlKQogewotICAg
IG1fYXVkaW9EZXZpY2UgPSBhZG9wdFB0cih3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRl
QXVkaW9EZXZpY2UoY2FsbGJhY2tCdWZmZXJTaXplLCBudW1iZXJPZkNoYW5uZWxzLCBzYW1wbGVS
YXRlLCB0aGlzKSk7CisgICAgLy8gR2V0IHRoZSBtaW5pbXVtIHVzYWJsZSBidWZmZXIgc2l6ZS4g
V2UnbGwgcm91bmQgdGhpcyB2YWx1ZSB1cAorICAgIC8vIHRvIGEgbXVsdGlwbGUgb2Ygb3VyIHJl
bmRlciBzaXplLgorICAgIG1fY2FsbGJhY2tCdWZmZXJTaXplID0gd2ViS2l0UGxhdGZvcm1TdXBw
b3J0KCktPmF1ZGlvSGFyZHdhcmVCdWZmZXJTaXplKCk7CisKKyAgICBBU1NFUlQobV9jYWxsYmFj
a0J1ZmZlclNpemUgPD0gbWF4aW11bUNhbGxiYWNrQnVmZmVyU2l6ZSk7CisgICAgCisgICAgLy8g
RmlndXJlIG91dCBob3cgbWFueSByZW5kZXIgY2FsbHMgcGVyIGNhbGwgYmFjaywgcm91bmRpbmcg
dXAgaWYgbmVlZGVkLgorICAgIG1fcmVuZGVyQ291bnRQZXJDYWxsYmFjayA9IChtX2NhbGxiYWNr
QnVmZmVyU2l6ZSArIHJlbmRlckJ1ZmZlclNpemUgLSAxKSAvIHJlbmRlckJ1ZmZlclNpemU7CisK
KyAgICBtX2NhbGxiYWNrQnVmZmVyU2l6ZSA9IG1fcmVuZGVyQ291bnRQZXJDYWxsYmFjayAqIHJl
bmRlckJ1ZmZlclNpemU7CisKKyAgICBtX2F1ZGlvRGV2aWNlID0gYWRvcHRQdHIod2ViS2l0UGxh
dGZvcm1TdXBwb3J0KCktPmNyZWF0ZUF1ZGlvRGV2aWNlKG1fY2FsbGJhY2tCdWZmZXJTaXplLCBu
dW1iZXJPZkNoYW5uZWxzLCBzYW1wbGVSYXRlLCB0aGlzKSk7CiAgICAgQVNTRVJUKG1fYXVkaW9E
ZXZpY2UuZ2V0KCkpOwogfQogCkBAIC0xMTAsMTQgKzExMSwxNCBAQCB2b2lkIEF1ZGlvRGVzdGlu
YXRpb25DaHJvbWl1bTo6cmVuZGVyKGNvbnN0IFdlYlZlY3RvcjxmbG9hdCo+JiBhdWRpb0RhdGEs
IHNpemVfdAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKLSAgICBib29sIGlzQnVm
ZmVyU2l6ZUdvb2QgPSBudW1iZXJPZkZyYW1lcyA9PSBjYWxsYmFja0J1ZmZlclNpemU7CisgICAg
Ym9vbCBpc0J1ZmZlclNpemVHb29kID0gbnVtYmVyT2ZGcmFtZXMgPT0gbV9jYWxsYmFja0J1ZmZl
clNpemU7CiAgICAgaWYgKCFpc0J1ZmZlclNpemVHb29kKSB7CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgLy8gU3BsaXQgdXAgdGhl
IGNhbGxiYWNrIGJ1ZmZlciBpbnRvIHNtYWxsZXIgY2h1bmtzIHdoaWNoIHdlJ2xsIHJlbmRlciBv
bmUgYWZ0ZXIgdGhlIG90aGVyLgotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZW5kZXJD
b3VudFBlckNhbGxiYWNrOyArK2kpIHsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9y
ZW5kZXJDb3VudFBlckNhbGxiYWNrOyArK2kpIHsKICAgICAgICAgbV9yZW5kZXJCdXMuc2V0Q2hh
bm5lbE1lbW9yeSgwLCBhdWRpb0RhdGFbMF0gKyBpICogcmVuZGVyQnVmZmVyU2l6ZSwgcmVuZGVy
QnVmZmVyU2l6ZSk7CiAgICAgICAgIG1fcmVuZGVyQnVzLnNldENoYW5uZWxNZW1vcnkoMSwgYXVk
aW9EYXRhWzFdICsgaSAqIHJlbmRlckJ1ZmZlclNpemUsIHJlbmRlckJ1ZmZlclNpemUpOwogICAg
ICAgICBtX3Byb3ZpZGVyLnByb3ZpZGVJbnB1dCgmbV9yZW5kZXJCdXMsIHJlbmRlckJ1ZmZlclNp
emUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXVkaW9EZXN0aW5h
dGlvbkNocm9taXVtLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdWRpb0Rlc3RpbmF0
aW9uQ2hyb21pdW0uaAppbmRleCBhMmEyYjU4ZGJjYTEzM2VkYTIzMWNjOTU2ZWNiOTBmM2U3Yzkx
MjY4Li5lY2ZjNGIwN2Q0YjRlYzI0MThkYWYxNDI4NDEwNmY3YjZmMjZmZDc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0u
aApAQCAtNjAsNiArNjAsOCBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtX3NhbXBsZVJhdGU7CiAg
ICAgYm9vbCBtX2lzUGxheWluZzsKICAgICBPd25QdHI8V2ViS2l0OjpXZWJBdWRpb0RldmljZT4g
bV9hdWRpb0RldmljZTsKKyAgICBzaXplX3QgbV9jYWxsYmFja0J1ZmZlclNpemU7CisgICAgdW5z
aWduZWQgbV9yZW5kZXJDb3VudFBlckNhbGxiYWNrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107400</attachid>
            <date>2011-09-14 15:07:03 -0700</date>
            <delta_ts>2011-09-16 13:01:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67952-20110914150702.patch</filename>
            <type>text/plain</type>
            <size>5922</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ5NzQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
Mzc5ZjlkNTBmYzE1ODYwNjBmZTU3MGQ1MmRmODA4YWRhYjQ0MDI1ZC4uYTc2YjAwNzAwNzRkMDA4
NDVjN2NjNTcyYTBmZjBkMWQ3MDJmOTRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNCBAQAorMjAxMS0wOS0xMyAgUmF5bW9uZCBUb3kgIDxydG95QGdvb2dsZS5jb20+
CisKKyAgICAgICAgQXNrIGZvciBhdWRpbyBoYXJkd2FyZSBidWZmZXIgc2l6ZSBpbnN0ZWFkIG9m
IHVzaW5nIGhhcmR3aXJlZCBjb25zdGFudHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OmF1ZGlvSGFyZHdhcmVCdWZmZXJT
aXplKToKKyAgICAgICAgRGVjbGFyZSBuZXcgbWVtYmVyIGZ1bmN0aW9uIGF1ZGlvSGFyZHdhcmVC
dWZmZXJTaXplLgorICAgICAgICAqIHNyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNocm9taXVtOjpBdWRpb0Rlc3RpbmF0
aW9uQ2hyb21pdW0pOgorICAgICAgICBDYWxsIGF1ZGlvSGFyZHdhcmVCdWZmZXJTaXplKCkgdG8g
Z2V0IGJ1ZmZlciBzaXplOyB1cGRhdGUgbV9jYWxsYmFja0J1ZmZlcnNpemUKKyAgICAgICAgYW5k
IG1fcmVuZGVyQ291bnRQZXJDYWxsYmFjayBhcHByb3ByaWF0ZWx5LiAgUmVtb3ZlIGdsb2JhbCB2
YXJpYWJsZXMgCisgICAgICAgIGNhbGxiYWNrQnVmZmVyU2l6ZSBhbmQgcmVuZGVyQ291bnRQZXJD
YWxsYmFjay4gIEFkZCBjb25zdGFudCBmb3IgbWF4aW11bSAKKyAgICAgICAgYWxsb3dlZCBidWZm
ZXIgc2l6ZSBhbmQgdmVyaWZ5IHdlIGRvbid0IGV4Y2VlZCBpdC4KKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvRGVzdGluYXRpb25DaHJvbWl1bTo6cmVuZGVyKToKKyAgICAgICAgVXNlIG5ldyBtZW1i
ZXIgdmFyaWFibGVzIGluc3RlYWQgb2YgZ2xvYmFscy4KKyAgICAgICAgKiBzcmMvQXVkaW9EZXN0
aW5hdGlvbkNocm9taXVtLmg6CisgICAgICAgIERlZmluZSBuZXcgbWVtYmVyIHZhcmlhYmxlcyBt
X2NhbGxiYWNrQnVmZmVyU2l6ZSBhbmQgbV9yZW5kZXJDb3VudFBlckNhbGxiYWNrCisKIDIwMTEt
MDktMDggIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1
bV0gQWRkIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTpjcmVhdGVHcmFwaGljc0NvbnRleHRGb3JB
bm90aGVyVGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YktpdFBsYXRmb3JtU3VwcG9ydC5oCmluZGV4IDdlNDcxNjQwMTdhMzFmOTA5Yzg1NTI0N2JlNTkx
NWI1MGM1YWE5NTIuLmIzMzE0OTkzNjc5YzVmNWFiMWY2YWIzZWJmMTZmNmVlYmEzZTAwYzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYktpdFBsYXRmb3JtU3Vw
cG9ydC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYktpdFBsYXRmb3Jt
U3VwcG9ydC5oCkBAIC0zMDgsNiArMzA4LDcgQEAgcHVibGljOgogICAgIC8vIEF1ZGlvIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKICAgICB2aXJ0dWFsIGRvdWJsZSBhdWRpb0hhcmR3YXJlU2FtcGxlUmF0ZSgpIHsgcmV0dXJu
IDA7IH0KKyAgICB2aXJ0dWFsIHNpemVfdCBhdWRpb0hhcmR3YXJlQnVmZmVyU2l6ZSgpIHsgcmV0
dXJuIDA7IH0KICAgICB2aXJ0dWFsIFdlYkF1ZGlvRGV2aWNlKiBjcmVhdGVBdWRpb0RldmljZShz
aXplX3QgYnVmZmVyU2l6ZSwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgZG91YmxlIHNhbXBs
ZVJhdGUsIFdlYkF1ZGlvRGV2aWNlOjpSZW5kZXJDYWxsYmFjayopIHsgcmV0dXJuIDA7IH0KIAog
ICAgIC8vIEZpbGVTeXN0ZW0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQXVkaW9EZXN0aW5hdGlvbkNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0F1ZGlvRGVzdGluYXRpb25DaHJvbWl1bS5jcHAKaW5kZXggODYyNzk1YTY2NDdhMjNkOGFi
MGExODE4Yzc0N2MxZTJkNDFiYzhiYy4uY2ZkYTE0N2FkYzkyNTZhMzliZjE0ZGFkOWJmOTM2ODhj
ZWM0ZjRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXVkaW9EZXN0
aW5hdGlvbkNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdWRp
b0Rlc3RpbmF0aW9uQ2hyb21pdW0uY3BwCkBAIC00MCwyMSArNDAsMTEgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBCdWZmZXIgc2l6ZSB0aGF0
IHRoZSBDaHJvbWl1bSBhdWRpbyBzeXN0ZW0gd2lsbCBjYWxsIHVzIGJhY2sgd2l0aC4KLSNpZiBP
UyhEQVJXSU4pCi0vLyBGb3IgTWFjIE9TIFggdGhlIGNocm9taXVtIGF1ZGlvIGJhY2tlbmQgdXNl
cyBhIGxvdy1sYXRlbmN5IENvcmVBdWRpbyBBUEksIHNvIGEgbG93IGJ1ZmZlciBzaXplIGlzIHBv
c3NpYmxlLgotY29uc3QgdW5zaWduZWQgY2FsbGJhY2tCdWZmZXJTaXplID0gMTI4OwotI2Vsc2UK
LS8vIFRoaXMgdmFsdWUgbWF5IG5lZWQgdG8gYmUgdHVuZWQgYmFzZWQgb24gdGhlIE9TLgotLy8g
RklYTUU6IEl0IG1heSBiZSBwb3NzaWJsZSB0byByZWR1Y2UgdGhpcyB2YWx1ZSBvbmNlIHJlYWwt
dGltZSB0aHJlYWRzCi0vLyBhbmQgb3RoZXIgQ2hyb21pdW0gYXVkaW8gaW1wcm92ZW1lbnRzIGFy
ZSBtYWRlLgotY29uc3QgdW5zaWduZWQgY2FsbGJhY2tCdWZmZXJTaXplID0gMjA0ODsKLSNlbmRp
ZgotCiAvLyBCdWZmZXIgc2l6ZSBhdCB3aGljaCB0aGUgd2ViIGF1ZGlvIGVuZ2luZSB3aWxsIHJl
bmRlci4KIGNvbnN0IHVuc2lnbmVkIHJlbmRlckJ1ZmZlclNpemUgPSAxMjg7CiAKLWNvbnN0IHVu
c2lnbmVkIHJlbmRlckNvdW50UGVyQ2FsbGJhY2sgPSBjYWxsYmFja0J1ZmZlclNpemUgLyByZW5k
ZXJCdWZmZXJTaXplOworLy8gTWF4aW11bSBhbGxvd2VkIGJ1ZmZlciBzaXplCitjb25zdCBzaXpl
X3QgbWF4aW11bUNhbGxiYWNrQnVmZmVyU2l6ZSA9IDE2Mzg0OwogCiAvLyBGSVhNRTogYWRkIHN1
cHBvcnQgZm9yIG11bHRpLWNoYW5uZWwuCiBjb25zdCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxz
ID0gMjsKQEAgLTcxLDcgKzYxLDE3IEBAIEF1ZGlvRGVzdGluYXRpb25DaHJvbWl1bTo6QXVkaW9E
ZXN0aW5hdGlvbkNocm9taXVtKEF1ZGlvU291cmNlUHJvdmlkZXImIHByb3ZpZGVyCiAgICAgLCBt
X3NhbXBsZVJhdGUoc2FtcGxlUmF0ZSkKICAgICAsIG1faXNQbGF5aW5nKGZhbHNlKQogewotICAg
IG1fYXVkaW9EZXZpY2UgPSBhZG9wdFB0cih3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRl
QXVkaW9EZXZpY2UoY2FsbGJhY2tCdWZmZXJTaXplLCBudW1iZXJPZkNoYW5uZWxzLCBzYW1wbGVS
YXRlLCB0aGlzKSk7CisgICAgLy8gR2V0IHRoZSBtaW5pbXVtIHVzYWJsZSBidWZmZXIgc2l6ZS4g
V2UnbGwgcm91bmQgdGhpcyB2YWx1ZSB1cAorICAgIC8vIHRvIGEgbXVsdGlwbGUgb2Ygb3VyIHJl
bmRlciBzaXplLgorICAgIHNpemVfdCBjYWxsYmFja1NpemUgPSB3ZWJLaXRQbGF0Zm9ybVN1cHBv
cnQoKS0+YXVkaW9IYXJkd2FyZUJ1ZmZlclNpemUoKTsKKworICAgIC8vIEZpZ3VyZSBvdXQgaG93
IG1hbnkgcmVuZGVyIGNhbGxzIHBlciBjYWxsIGJhY2ssIHJvdW5kaW5nIHVwIGlmIG5lZWRlZC4K
KyAgICBtX3JlbmRlckNvdW50UGVyQ2FsbGJhY2sgPSAoY2FsbGJhY2tTaXplICsgcmVuZGVyQnVm
ZmVyU2l6ZSAtIDEpIC8gcmVuZGVyQnVmZmVyU2l6ZTsKKworICAgIG1fY2FsbGJhY2tCdWZmZXJT
aXplID0gbV9yZW5kZXJDb3VudFBlckNhbGxiYWNrICogcmVuZGVyQnVmZmVyU2l6ZTsKKyAgICBB
U1NFUlQobV9jYWxsYmFja0J1ZmZlclNpemUgPD0gbWF4aW11bUNhbGxiYWNrQnVmZmVyU2l6ZSk7
CisgICAgCisgICAgbV9hdWRpb0RldmljZSA9IGFkb3B0UHRyKHdlYktpdFBsYXRmb3JtU3VwcG9y
dCgpLT5jcmVhdGVBdWRpb0RldmljZShtX2NhbGxiYWNrQnVmZmVyU2l6ZSwgbnVtYmVyT2ZDaGFu
bmVscywgc2FtcGxlUmF0ZSwgdGhpcykpOwogICAgIEFTU0VSVChtX2F1ZGlvRGV2aWNlLmdldCgp
KTsKIH0KIApAQCAtMTEwLDE0ICsxMTAsMTQgQEAgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ2hyb21p
dW06OnJlbmRlcihjb25zdCBXZWJWZWN0b3I8ZmxvYXQqPiYgYXVkaW9EYXRhLCBzaXplX3QKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICAgICAgCi0gICAgYm9vbCBpc0J1ZmZlclNpemVHb29k
ID0gbnVtYmVyT2ZGcmFtZXMgPT0gY2FsbGJhY2tCdWZmZXJTaXplOworICAgIGJvb2wgaXNCdWZm
ZXJTaXplR29vZCA9IG51bWJlck9mRnJhbWVzID09IG1fY2FsbGJhY2tCdWZmZXJTaXplOwogICAg
IGlmICghaXNCdWZmZXJTaXplR29vZCkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIC8vIFNwbGl0IHVwIHRoZSBjYWxsYmFjayBi
dWZmZXIgaW50byBzbWFsbGVyIGNodW5rcyB3aGljaCB3ZSdsbCByZW5kZXIgb25lIGFmdGVyIHRo
ZSBvdGhlci4KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVuZGVyQ291bnRQZXJDYWxs
YmFjazsgKytpKSB7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fcmVuZGVyQ291bnRQ
ZXJDYWxsYmFjazsgKytpKSB7CiAgICAgICAgIG1fcmVuZGVyQnVzLnNldENoYW5uZWxNZW1vcnko
MCwgYXVkaW9EYXRhWzBdICsgaSAqIHJlbmRlckJ1ZmZlclNpemUsIHJlbmRlckJ1ZmZlclNpemUp
OwogICAgICAgICBtX3JlbmRlckJ1cy5zZXRDaGFubmVsTWVtb3J5KDEsIGF1ZGlvRGF0YVsxXSAr
IGkgKiByZW5kZXJCdWZmZXJTaXplLCByZW5kZXJCdWZmZXJTaXplKTsKICAgICAgICAgbV9wcm92
aWRlci5wcm92aWRlSW5wdXQoJm1fcmVuZGVyQnVzLCByZW5kZXJCdWZmZXJTaXplKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1ZGlvRGVzdGluYXRpb25DaHJvbWl1
bS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXVkaW9EZXN0aW5hdGlvbkNocm9taXVt
LmgKaW5kZXggYTJhMmI1OGRiY2ExMzNlZGEyMzFjYzk1NmVjYjkwZjNlN2M5MTI2OC4uZWNmYzRi
MDdkNGI0ZWMyNDE4ZGFmMTQyODQxMDZmN2I2ZjI2ZmQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQXVkaW9EZXN0aW5hdGlvbkNocm9taXVtLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQXVkaW9EZXN0aW5hdGlvbkNocm9taXVtLmgKQEAgLTYwLDYg
KzYwLDggQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9zYW1wbGVSYXRlOwogICAgIGJvb2wgbV9p
c1BsYXlpbmc7CiAgICAgT3duUHRyPFdlYktpdDo6V2ViQXVkaW9EZXZpY2U+IG1fYXVkaW9EZXZp
Y2U7CisgICAgc2l6ZV90IG1fY2FsbGJhY2tCdWZmZXJTaXplOworICAgIHVuc2lnbmVkIG1fcmVu
ZGVyQ291bnRQZXJDYWxsYmFjazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107710</attachid>
            <date>2011-09-16 13:01:41 -0700</date>
            <delta_ts>2011-09-19 10:59:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67952-20110916130140.patch</filename>
            <type>text/plain</type>
            <size>6117</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTUxODcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
N2RkMmFhNzhiZmRiNjM1MzlmMDAxZWU0MzBhMGI3YTVhMDVhODEzYy4uYzFjZTRkOTY3YWEyYzQz
NzgwMTc0YmFmNzMxOGYyZDVlY2E5ZDY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNiBAQAorMjAxMS0wOS0xNiAgUmF5bW9uZCBUb3kgIDxydG95QGdvb2dsZS5jb20+
CisKKyAgICAgICAgQXNrIGZvciBhdWRpbyBoYXJkd2FyZSBidWZmZXIgc2l6ZSBpbnN0ZWFkIG9m
IHVzaW5nIGhhcmR3aXJlZCBjb25zdGFudHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OmF1ZGlvSGFyZHdhcmVCdWZmZXJT
aXplKTogRGVjbGFyZQorICAgICAgICBuZXcgbWVtYmVyIGZ1bmN0aW9uIGF1ZGlvSGFyZHdhcmVC
dWZmZXJTaXplLgorICAgICAgICAqIHNyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNocm9taXVtOjpBdWRpb0Rlc3RpbmF0
aW9uQ2hyb21pdW0pOgorICAgICAgICBDYWxsIGF1ZGlvSGFyZHdhcmVCdWZmZXJTaXplKCkgdG8g
Z2V0IGJ1ZmZlciBzaXplOyB1cGRhdGUKKyAgICAgICAgbV9jYWxsYmFja0J1ZmZlcnNpemUgYW5k
IG1fcmVuZGVyQ291bnRQZXJDYWxsYmFjayBhcHByb3ByaWF0ZWx5LgorICAgICAgICBSZW1vdmUg
Z2xvYmFsIHZhcmlhYmxlcyBjYWxsYmFja0J1ZmZlclNpemUgYW5kCisgICAgICAgIHJlbmRlckNv
dW50UGVyQ2FsbGJhY2suICBBZGQgY29uc3RhbnQgZm9yIG1pbmltdW0gYW5kIG1heGltdW0KKyAg
ICAgICAgYWxsb3dlZCBidWZmZXIgc2l6ZSBhbmQgdmVyaWZ5IHdlIGRvbid0IGV4Y2VlZCB0aGVt
LgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNocm9taXVtOjpyZW5kZXIpOiBV
c2UgbmV3IG1lbWJlcgorICAgICAgICB2YXJpYWJsZXMgaW5zdGVhZCBvZiBnbG9iYWxzLgorICAg
ICAgICAqIHNyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uaDoKKyAgICAgICAgRGVmaW5lIG5l
dyBtZW1iZXIgdmFyaWFibGVzIG1fY2FsbGJhY2tCdWZmZXJTaXplIGFuZAorICAgICAgICBtX3Jl
bmRlckNvdW50UGVyQ2FsbGJhY2sKKwogMjAxMS0wOS0xNCAgSGFvIFpoZW5nICA8emhlbmdoYW9A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBzb21lIGRlcGVuZGVuY2llcyBvZiBEUlQg
Zm9yIEFuZHJvaWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YktpdFBsYXRmb3JtU3VwcG9ydC5oCmluZGV4IDdlNDcxNjQwMTdhMzFmOTA5Yzg1NTI0N2JlNTkx
NWI1MGM1YWE5NTIuLmIzMzE0OTkzNjc5YzVmNWFiMWY2YWIzZWJmMTZmNmVlYmEzZTAwYzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYktpdFBsYXRmb3JtU3Vw
cG9ydC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYktpdFBsYXRmb3Jt
U3VwcG9ydC5oCkBAIC0zMDgsNiArMzA4LDcgQEAgcHVibGljOgogICAgIC8vIEF1ZGlvIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKICAgICB2aXJ0dWFsIGRvdWJsZSBhdWRpb0hhcmR3YXJlU2FtcGxlUmF0ZSgpIHsgcmV0dXJu
IDA7IH0KKyAgICB2aXJ0dWFsIHNpemVfdCBhdWRpb0hhcmR3YXJlQnVmZmVyU2l6ZSgpIHsgcmV0
dXJuIDA7IH0KICAgICB2aXJ0dWFsIFdlYkF1ZGlvRGV2aWNlKiBjcmVhdGVBdWRpb0RldmljZShz
aXplX3QgYnVmZmVyU2l6ZSwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgZG91YmxlIHNhbXBs
ZVJhdGUsIFdlYkF1ZGlvRGV2aWNlOjpSZW5kZXJDYWxsYmFjayopIHsgcmV0dXJuIDA7IH0KIAog
ICAgIC8vIEZpbGVTeXN0ZW0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQXVkaW9EZXN0aW5hdGlvbkNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0F1ZGlvRGVzdGluYXRpb25DaHJvbWl1bS5jcHAKaW5kZXggODYyNzk1YTY2NDdhMjNkOGFi
MGExODE4Yzc0N2MxZTJkNDFiYzhiYy4uZjMzOGY5M2NkMzg5NGZkNmFkZmNlYjNlODIyNDU3NWM4
N2Y3MmViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXVkaW9EZXN0
aW5hdGlvbkNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdWRp
b0Rlc3RpbmF0aW9uQ2hyb21pdW0uY3BwCkBAIC00MCwyMSArNDAsMTMgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBCdWZmZXIgc2l6ZSB0aGF0
IHRoZSBDaHJvbWl1bSBhdWRpbyBzeXN0ZW0gd2lsbCBjYWxsIHVzIGJhY2sgd2l0aC4KLSNpZiBP
UyhEQVJXSU4pCi0vLyBGb3IgTWFjIE9TIFggdGhlIGNocm9taXVtIGF1ZGlvIGJhY2tlbmQgdXNl
cyBhIGxvdy1sYXRlbmN5IENvcmVBdWRpbyBBUEksIHNvIGEgbG93IGJ1ZmZlciBzaXplIGlzIHBv
c3NpYmxlLgotY29uc3QgdW5zaWduZWQgY2FsbGJhY2tCdWZmZXJTaXplID0gMTI4OwotI2Vsc2UK
LS8vIFRoaXMgdmFsdWUgbWF5IG5lZWQgdG8gYmUgdHVuZWQgYmFzZWQgb24gdGhlIE9TLgotLy8g
RklYTUU6IEl0IG1heSBiZSBwb3NzaWJsZSB0byByZWR1Y2UgdGhpcyB2YWx1ZSBvbmNlIHJlYWwt
dGltZSB0aHJlYWRzCi0vLyBhbmQgb3RoZXIgQ2hyb21pdW0gYXVkaW8gaW1wcm92ZW1lbnRzIGFy
ZSBtYWRlLgotY29uc3QgdW5zaWduZWQgY2FsbGJhY2tCdWZmZXJTaXplID0gMjA0ODsKLSNlbmRp
ZgotCiAvLyBCdWZmZXIgc2l6ZSBhdCB3aGljaCB0aGUgd2ViIGF1ZGlvIGVuZ2luZSB3aWxsIHJl
bmRlci4KIGNvbnN0IHVuc2lnbmVkIHJlbmRlckJ1ZmZlclNpemUgPSAxMjg7CiAKLWNvbnN0IHVu
c2lnbmVkIHJlbmRlckNvdW50UGVyQ2FsbGJhY2sgPSBjYWxsYmFja0J1ZmZlclNpemUgLyByZW5k
ZXJCdWZmZXJTaXplOworLy8gTWluaW11bSBhbGxvd2VkIGJ1ZmZlciBzaXplLiAgKE1pbmltdW0g
YmFzZWQgb24gdGhlIHdlYmF1ZGlvIHJlbmRlciBzaXplKS4KK2NvbnN0IHNpemVfdCBtaW5pbXVt
Q2FsbGJhY2tCdWZmZXJTaXplID0gMTI4OworLy8gTWF4aW11bSBhbGxvd2VkIGJ1ZmZlciBzaXpl
Citjb25zdCBzaXplX3QgbWF4aW11bUNhbGxiYWNrQnVmZmVyU2l6ZSA9IDE2Mzg0OwogCiAvLyBG
SVhNRTogYWRkIHN1cHBvcnQgZm9yIG11bHRpLWNoYW5uZWwuCiBjb25zdCB1bnNpZ25lZCBudW1i
ZXJPZkNoYW5uZWxzID0gMjsKQEAgLTcxLDcgKzYzLDE4IEBAIEF1ZGlvRGVzdGluYXRpb25DaHJv
bWl1bTo6QXVkaW9EZXN0aW5hdGlvbkNocm9taXVtKEF1ZGlvU291cmNlUHJvdmlkZXImIHByb3Zp
ZGVyCiAgICAgLCBtX3NhbXBsZVJhdGUoc2FtcGxlUmF0ZSkKICAgICAsIG1faXNQbGF5aW5nKGZh
bHNlKQogewotICAgIG1fYXVkaW9EZXZpY2UgPSBhZG9wdFB0cih3ZWJLaXRQbGF0Zm9ybVN1cHBv
cnQoKS0+Y3JlYXRlQXVkaW9EZXZpY2UoY2FsbGJhY2tCdWZmZXJTaXplLCBudW1iZXJPZkNoYW5u
ZWxzLCBzYW1wbGVSYXRlLCB0aGlzKSk7CisgICAgLy8gR2V0IHRoZSBtaW5pbXVtIHVzYWJsZSBi
dWZmZXIgc2l6ZS4gV2UnbGwgcm91bmQgdGhpcyB2YWx1ZSB1cAorICAgIC8vIHRvIGEgbXVsdGlw
bGUgb2Ygb3VyIHJlbmRlciBzaXplLgorICAgIHNpemVfdCBjYWxsYmFja1NpemUgPSB3ZWJLaXRQ
bGF0Zm9ybVN1cHBvcnQoKS0+YXVkaW9IYXJkd2FyZUJ1ZmZlclNpemUoKTsKKworICAgIC8vIEZp
Z3VyZSBvdXQgaG93IG1hbnkgcmVuZGVyIGNhbGxzIHBlciBjYWxsIGJhY2ssIHJvdW5kaW5nIHVw
IGlmIG5lZWRlZC4KKyAgICBtX3JlbmRlckNvdW50UGVyQ2FsbGJhY2sgPSAoY2FsbGJhY2tTaXpl
ICsgcmVuZGVyQnVmZmVyU2l6ZSAtIDEpIC8gcmVuZGVyQnVmZmVyU2l6ZTsKKworICAgIG1fY2Fs
bGJhY2tCdWZmZXJTaXplID0gbV9yZW5kZXJDb3VudFBlckNhbGxiYWNrICogcmVuZGVyQnVmZmVy
U2l6ZTsKKyAgICBBU1NFUlQoKG1pbmltdW1DYWxsYmFja0J1ZmZlcnNpemUgPD0gbV9jYWxsYmFj
a0J1ZmZlcnNpemUpCisgICAgICAgICAgICYmIChtX2NhbGxiYWNrQnVmZmVyU2l6ZSA8PSBtYXhp
bXVtQ2FsbGJhY2tCdWZmZXJTaXplKSk7CisgICAgCisgICAgbV9hdWRpb0RldmljZSA9IGFkb3B0
UHRyKHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5jcmVhdGVBdWRpb0RldmljZShtX2NhbGxiYWNr
QnVmZmVyU2l6ZSwgbnVtYmVyT2ZDaGFubmVscywgc2FtcGxlUmF0ZSwgdGhpcykpOwogICAgIEFT
U0VSVChtX2F1ZGlvRGV2aWNlLmdldCgpKTsKIH0KIApAQCAtMTEwLDE0ICsxMTMsMTQgQEAgdm9p
ZCBBdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW06OnJlbmRlcihjb25zdCBXZWJWZWN0b3I8ZmxvYXQq
PiYgYXVkaW9EYXRhLCBzaXplX3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAgICAgCi0g
ICAgYm9vbCBpc0J1ZmZlclNpemVHb29kID0gbnVtYmVyT2ZGcmFtZXMgPT0gY2FsbGJhY2tCdWZm
ZXJTaXplOworICAgIGJvb2wgaXNCdWZmZXJTaXplR29vZCA9IG51bWJlck9mRnJhbWVzID09IG1f
Y2FsbGJhY2tCdWZmZXJTaXplOwogICAgIGlmICghaXNCdWZmZXJTaXplR29vZCkgewogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIC8v
IFNwbGl0IHVwIHRoZSBjYWxsYmFjayBidWZmZXIgaW50byBzbWFsbGVyIGNodW5rcyB3aGljaCB3
ZSdsbCByZW5kZXIgb25lIGFmdGVyIHRoZSBvdGhlci4KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgcmVuZGVyQ291bnRQZXJDYWxsYmFjazsgKytpKSB7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG1fcmVuZGVyQ291bnRQZXJDYWxsYmFjazsgKytpKSB7CiAgICAgICAgIG1fcmVu
ZGVyQnVzLnNldENoYW5uZWxNZW1vcnkoMCwgYXVkaW9EYXRhWzBdICsgaSAqIHJlbmRlckJ1ZmZl
clNpemUsIHJlbmRlckJ1ZmZlclNpemUpOwogICAgICAgICBtX3JlbmRlckJ1cy5zZXRDaGFubmVs
TWVtb3J5KDEsIGF1ZGlvRGF0YVsxXSArIGkgKiByZW5kZXJCdWZmZXJTaXplLCByZW5kZXJCdWZm
ZXJTaXplKTsKICAgICAgICAgbV9wcm92aWRlci5wcm92aWRlSW5wdXQoJm1fcmVuZGVyQnVzLCBy
ZW5kZXJCdWZmZXJTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0F1ZGlvRGVzdGluYXRpb25DaHJvbWl1bS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
QXVkaW9EZXN0aW5hdGlvbkNocm9taXVtLmgKaW5kZXggYTJhMmI1OGRiY2ExMzNlZGEyMzFjYzk1
NmVjYjkwZjNlN2M5MTI2OC4uZWNmYzRiMDdkNGI0ZWMyNDE4ZGFmMTQyODQxMDZmN2I2ZjI2ZmQ3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXVkaW9EZXN0aW5hdGlv
bkNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXVkaW9EZXN0aW5h
dGlvbkNocm9taXVtLmgKQEAgLTYwLDYgKzYwLDggQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9z
YW1wbGVSYXRlOwogICAgIGJvb2wgbV9pc1BsYXlpbmc7CiAgICAgT3duUHRyPFdlYktpdDo6V2Vi
QXVkaW9EZXZpY2U+IG1fYXVkaW9EZXZpY2U7CisgICAgc2l6ZV90IG1fY2FsbGJhY2tCdWZmZXJT
aXplOworICAgIHVuc2lnbmVkIG1fcmVuZGVyQ291bnRQZXJDYWxsYmFjazsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107888</attachid>
            <date>2011-09-19 10:58:17 -0700</date>
            <delta_ts>2011-09-19 19:06:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67952-20110919105816.patch</filename>
            <type>text/plain</type>
            <size>6035</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTUxODcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
N2RkMmFhNzhiZmRiNjM1MzlmMDAxZWU0MzBhMGI3YTVhMDVhODEzYy4uNzU5MDUwMGU2MGJjY2Vk
Yjc3Yjc1YzBjMzVmMzdjMTQ0YmJiMmU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNiBAQAorMjAxMS0wOS0xNiAgUmF5bW9uZCBUb3kgIDxydG95QGdvb2dsZS5jb20+
CisKKyAgICAgICAgQXNrIGZvciBhdWRpbyBoYXJkd2FyZSBidWZmZXIgc2l6ZSBpbnN0ZWFkIG9m
IHVzaW5nIGhhcmR3aXJlZCBjb25zdGFudHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJLaXRQbGF0Zm9ybVN1cHBvcnQ6OmF1ZGlvSGFyZHdhcmVCdWZmZXJT
aXplKTogRGVjbGFyZQorICAgICAgICBuZXcgbWVtYmVyIGZ1bmN0aW9uIGF1ZGlvSGFyZHdhcmVC
dWZmZXJTaXplLgorICAgICAgICAqIHNyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNocm9taXVtOjpBdWRpb0Rlc3RpbmF0
aW9uQ2hyb21pdW0pOgorICAgICAgICBDYWxsIGF1ZGlvSGFyZHdhcmVCdWZmZXJTaXplKCkgdG8g
Z2V0IGJ1ZmZlciBzaXplOyB1cGRhdGUKKyAgICAgICAgbV9jYWxsYmFja0J1ZmZlcnNpemUgYW5k
IG1fcmVuZGVyQ291bnRQZXJDYWxsYmFjayBhcHByb3ByaWF0ZWx5LgorICAgICAgICBSZW1vdmUg
Z2xvYmFsIHZhcmlhYmxlcyBjYWxsYmFja0J1ZmZlclNpemUgYW5kCisgICAgICAgIHJlbmRlckNv
dW50UGVyQ2FsbGJhY2suICBBZGQgY29uc3RhbnQgZm9yIG1heGltdW0KKyAgICAgICAgYWxsb3dl
ZCBidWZmZXIgc2l6ZSBhbmQgdmVyaWZ5IHdlIGRvbid0IGV4Y2VlZCBpdC4KKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvRGVzdGluYXRpb25DaHJvbWl1bTo6cmVuZGVyKTogVXNlIG5ldyBtZW1iZXIK
KyAgICAgICAgdmFyaWFibGVzIGluc3RlYWQgb2YgZ2xvYmFscy4KKyAgICAgICAgKiBzcmMvQXVk
aW9EZXN0aW5hdGlvbkNocm9taXVtLmg6CisgICAgICAgIERlZmluZSBuZXcgbWVtYmVyIHZhcmlh
YmxlcyBtX2NhbGxiYWNrQnVmZmVyU2l6ZSBhbmQKKyAgICAgICAgbV9yZW5kZXJDb3VudFBlckNh
bGxiYWNrCisKIDIwMTEtMDktMTQgIEhhbyBaaGVuZyAgPHpoZW5naGFvQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZW1vdmUgc29tZSBkZXBlbmRlbmNpZXMgb2YgRFJUIGZvciBBbmRyb2lkLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViS2l0UGxhdGZvcm1T
dXBwb3J0LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRQbGF0Zm9ybVN1
cHBvcnQuaAppbmRleCA3ZTQ3MTY0MDE3YTMxZjkwOWM4NTUyNDdiZTU5MTViNTBjNWFhOTUyLi5i
MzMxNDk5MzY3OWM1ZjVhYjFmNmFiM2ViZjE2ZjZlZWJhM2UwMGM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaApAQCAt
MzA4LDYgKzMwOCw3IEBAIHB1YmxpYzoKICAgICAvLyBBdWRpbyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgICAgdmlydHVh
bCBkb3VibGUgYXVkaW9IYXJkd2FyZVNhbXBsZVJhdGUoKSB7IHJldHVybiAwOyB9CisgICAgdmly
dHVhbCBzaXplX3QgYXVkaW9IYXJkd2FyZUJ1ZmZlclNpemUoKSB7IHJldHVybiAwOyB9CiAgICAg
dmlydHVhbCBXZWJBdWRpb0RldmljZSogY3JlYXRlQXVkaW9EZXZpY2Uoc2l6ZV90IGJ1ZmZlclNp
emUsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIGRvdWJsZSBzYW1wbGVSYXRlLCBXZWJBdWRp
b0RldmljZTo6UmVuZGVyQ2FsbGJhY2sqKSB7IHJldHVybiAwOyB9CiAKICAgICAvLyBGaWxlU3lz
dGVtIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1ZGlvRGVzdGlu
YXRpb25DaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdWRpb0Rlc3Rp
bmF0aW9uQ2hyb21pdW0uY3BwCmluZGV4IDg2Mjc5NWE2NjQ3YTIzZDhhYjBhMTgxOGM3NDdjMWUy
ZDQxYmM4YmMuLjJiZTFmZjVkZTIyOThlN2E3NmJkMzdkZmI2MGFmYzQ5NjJkNTMwYTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1ZGlvRGVzdGluYXRpb25DaHJvbWl1
bS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXVkaW9EZXN0aW5hdGlvbkNo
cm9taXVtLmNwcApAQCAtNDAsMjEgKzQwLDExIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gQnVmZmVyIHNpemUgdGhhdCB0aGUgQ2hyb21pdW0g
YXVkaW8gc3lzdGVtIHdpbGwgY2FsbCB1cyBiYWNrIHdpdGguCi0jaWYgT1MoREFSV0lOKQotLy8g
Rm9yIE1hYyBPUyBYIHRoZSBjaHJvbWl1bSBhdWRpbyBiYWNrZW5kIHVzZXMgYSBsb3ctbGF0ZW5j
eSBDb3JlQXVkaW8gQVBJLCBzbyBhIGxvdyBidWZmZXIgc2l6ZSBpcyBwb3NzaWJsZS4KLWNvbnN0
IHVuc2lnbmVkIGNhbGxiYWNrQnVmZmVyU2l6ZSA9IDEyODsKLSNlbHNlCi0vLyBUaGlzIHZhbHVl
IG1heSBuZWVkIHRvIGJlIHR1bmVkIGJhc2VkIG9uIHRoZSBPUy4KLS8vIEZJWE1FOiBJdCBtYXkg
YmUgcG9zc2libGUgdG8gcmVkdWNlIHRoaXMgdmFsdWUgb25jZSByZWFsLXRpbWUgdGhyZWFkcwot
Ly8gYW5kIG90aGVyIENocm9taXVtIGF1ZGlvIGltcHJvdmVtZW50cyBhcmUgbWFkZS4KLWNvbnN0
IHVuc2lnbmVkIGNhbGxiYWNrQnVmZmVyU2l6ZSA9IDIwNDg7Ci0jZW5kaWYKLQogLy8gQnVmZmVy
IHNpemUgYXQgd2hpY2ggdGhlIHdlYiBhdWRpbyBlbmdpbmUgd2lsbCByZW5kZXIuCiBjb25zdCB1
bnNpZ25lZCByZW5kZXJCdWZmZXJTaXplID0gMTI4OwogCi1jb25zdCB1bnNpZ25lZCByZW5kZXJD
b3VudFBlckNhbGxiYWNrID0gY2FsbGJhY2tCdWZmZXJTaXplIC8gcmVuZGVyQnVmZmVyU2l6ZTsK
Ky8vIE1heGltdW0gYWxsb3dlZCBidWZmZXIgc2l6ZQorY29uc3Qgc2l6ZV90IG1heGltdW1DYWxs
YmFja0J1ZmZlclNpemUgPSAxNjM4NDsKIAogLy8gRklYTUU6IGFkZCBzdXBwb3J0IGZvciBtdWx0
aS1jaGFubmVsLgogY29uc3QgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscyA9IDI7CkBAIC03MSw3
ICs2MSwyMiBAQCBBdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW06OkF1ZGlvRGVzdGluYXRpb25DaHJv
bWl1bShBdWRpb1NvdXJjZVByb3ZpZGVyJiBwcm92aWRlcgogICAgICwgbV9zYW1wbGVSYXRlKHNh
bXBsZVJhdGUpCiAgICAgLCBtX2lzUGxheWluZyhmYWxzZSkKIHsKLSAgICBtX2F1ZGlvRGV2aWNl
ID0gYWRvcHRQdHIod2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmNyZWF0ZUF1ZGlvRGV2aWNlKGNh
bGxiYWNrQnVmZmVyU2l6ZSwgbnVtYmVyT2ZDaGFubmVscywgc2FtcGxlUmF0ZSwgdGhpcykpOwor
ICAgIC8vIEdldCB0aGUgbWluaW11bSB1c2FibGUgYnVmZmVyIHNpemUuIFdlJ2xsIHJvdW5kIHRo
aXMgdmFsdWUgdXAKKyAgICAvLyB0byBhIG11bHRpcGxlIG9mIG91ciByZW5kZXIgc2l6ZS4KKyAg
ICBzaXplX3QgY2FsbGJhY2tTaXplID0gd2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmF1ZGlvSGFy
ZHdhcmVCdWZmZXJTaXplKCk7CisKKyAgICAvLyBGaWd1cmUgb3V0IGhvdyBtYW55IHJlbmRlciBj
YWxscyBwZXIgY2FsbCBiYWNrLCByb3VuZGluZyB1cCBpZiBuZWVkZWQuCisgICAgbV9yZW5kZXJD
b3VudFBlckNhbGxiYWNrID0gKGNhbGxiYWNrU2l6ZSArIHJlbmRlckJ1ZmZlclNpemUgLSAxKSAv
IHJlbmRlckJ1ZmZlclNpemU7CisKKyAgICBtX2NhbGxiYWNrQnVmZmVyU2l6ZSA9IG1fcmVuZGVy
Q291bnRQZXJDYWxsYmFjayAqIHJlbmRlckJ1ZmZlclNpemU7CisKKyAgICBib29sIGlzU2l6ZUdv
b2QgPSBtX2NhbGxiYWNrQnVmZmVyU2l6ZSA+PSByZW5kZXJCdWZmZXJTaXplCisgICAgICAgICYm
IG1fY2FsbGJhY2tCdWZmZXJTaXplIDw9IG1heGltdW1DYWxsYmFja0J1ZmZlclNpemU7CisgICAg
QVNTRVJUKGlzU2l6ZUdvb2QpOworICAgIGlmICghaXNTaXplR29vZCkKKyAgICAgIHJldHVybjsK
KyAgICAKKyAgICBtX2F1ZGlvRGV2aWNlID0gYWRvcHRQdHIod2ViS2l0UGxhdGZvcm1TdXBwb3J0
KCktPmNyZWF0ZUF1ZGlvRGV2aWNlKG1fY2FsbGJhY2tCdWZmZXJTaXplLCBudW1iZXJPZkNoYW5u
ZWxzLCBzYW1wbGVSYXRlLCB0aGlzKSk7CiAgICAgQVNTRVJUKG1fYXVkaW9EZXZpY2UuZ2V0KCkp
OwogfQogCkBAIC0xMTAsMTQgKzExNSwxNCBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25DaHJvbWl1
bTo6cmVuZGVyKGNvbnN0IFdlYlZlY3RvcjxmbG9hdCo+JiBhdWRpb0RhdGEsIHNpemVfdAogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKLSAgICBib29sIGlzQnVmZmVyU2l6ZUdvb2Qg
PSBudW1iZXJPZkZyYW1lcyA9PSBjYWxsYmFja0J1ZmZlclNpemU7CisgICAgYm9vbCBpc0J1ZmZl
clNpemVHb29kID0gbnVtYmVyT2ZGcmFtZXMgPT0gbV9jYWxsYmFja0J1ZmZlclNpemU7CiAgICAg
aWYgKCFpc0J1ZmZlclNpemVHb29kKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgLy8gU3BsaXQgdXAgdGhlIGNhbGxiYWNrIGJ1
ZmZlciBpbnRvIHNtYWxsZXIgY2h1bmtzIHdoaWNoIHdlJ2xsIHJlbmRlciBvbmUgYWZ0ZXIgdGhl
IG90aGVyLgotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZW5kZXJDb3VudFBlckNhbGxi
YWNrOyArK2kpIHsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9yZW5kZXJDb3VudFBl
ckNhbGxiYWNrOyArK2kpIHsKICAgICAgICAgbV9yZW5kZXJCdXMuc2V0Q2hhbm5lbE1lbW9yeSgw
LCBhdWRpb0RhdGFbMF0gKyBpICogcmVuZGVyQnVmZmVyU2l6ZSwgcmVuZGVyQnVmZmVyU2l6ZSk7
CiAgICAgICAgIG1fcmVuZGVyQnVzLnNldENoYW5uZWxNZW1vcnkoMSwgYXVkaW9EYXRhWzFdICsg
aSAqIHJlbmRlckJ1ZmZlclNpemUsIHJlbmRlckJ1ZmZlclNpemUpOwogICAgICAgICBtX3Byb3Zp
ZGVyLnByb3ZpZGVJbnB1dCgmbV9yZW5kZXJCdXMsIHJlbmRlckJ1ZmZlclNpemUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXVkaW9EZXN0aW5hdGlvbkNocm9taXVt
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0u
aAppbmRleCBhMmEyYjU4ZGJjYTEzM2VkYTIzMWNjOTU2ZWNiOTBmM2U3YzkxMjY4Li5lY2ZjNGIw
N2Q0YjRlYzI0MThkYWYxNDI4NDEwNmY3YjZmMjZmZDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9BdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0uaApAQCAtNjAsNiAr
NjAsOCBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtX3NhbXBsZVJhdGU7CiAgICAgYm9vbCBtX2lz
UGxheWluZzsKICAgICBPd25QdHI8V2ViS2l0OjpXZWJBdWRpb0RldmljZT4gbV9hdWRpb0Rldmlj
ZTsKKyAgICBzaXplX3QgbV9jYWxsYmFja0J1ZmZlclNpemU7CisgICAgdW5zaWduZWQgbV9yZW5k
ZXJDb3VudFBlckNhbGxiYWNrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>