<?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>66830</bug_id>
          
          <creation_ts>2011-08-23 17:51:32 -0700</creation_ts>
          <short_desc>AudioPannerNode::setPanningModel() does not update m_panningModel properly</short_desc>
          <delta_ts>2012-01-27 19:12:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>1</everconfirmed>
          <reporter name="Chris Rogers">crogers</reporter>
          <assigned_to name="Raymond Toy">rtoy</assigned_to>
          <cc>crogers</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>455887</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-08-23 17:51:32 -0700</bug_when>
    <thetext>AudioPannerNode::setPanningModel() correctly creates a new panner object of the correct type, but does not update m_panningModel properly.
So the .panningModel attribute will not show the new model.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506046</commentid>
    <comment_count>1</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2011-11-18 14:10:41 -0800</bug_when>
    <thetext>Is the fix as simple as adding m_panningModel = model in AudioPannerNode::setPanningModel in AudioPannerNode.cpp?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530923</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-05 22:00:58 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Is the fix as simple as adding m_panningModel = model in AudioPannerNode::setPanningModel in AudioPannerNode.cpp?

It seems as simple as that :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540812</commentid>
    <comment_count>3</comment_count>
      <attachid>123615</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-01-23 13:52:04 -0800</bug_when>
    <thetext>Created attachment 123615
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540816</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-23 13:59:15 -0800</bug_when>
    <thetext>Attachment 123615 did not pass style-queue:

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

Source/WebCore/ChangeLog:12:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 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>540842</commentid>
    <comment_count>5</comment_count>
      <attachid>123622</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-01-23 14:32:13 -0800</bug_when>
    <thetext>Created attachment 123622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542680</commentid>
    <comment_count>6</comment_count>
      <attachid>123622</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-25 15:08:12 -0800</bug_when>
    <thetext>Comment on attachment 123622
Patch

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

&gt; LayoutTests/webaudio/panner-set-model.html:77
&gt; +          createTestAndRun(context);

This test seems more complicated than necessary.  Can&apos;t we just create a single AudioPannerNode and then set the panningModel attribute for each of the constant values, then check that the attribute returns the same value?

Then we can get rid of createTestAndRun() and all of the associated testing machinery around.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542743</commentid>
    <comment_count>7</comment_count>
      <attachid>123622</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-01-25 16:12:53 -0800</bug_when>
    <thetext>Comment on attachment 123622
Patch

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

&gt;&gt; LayoutTests/webaudio/panner-set-model.html:77
&gt;&gt; +          createTestAndRun(context);
&gt; 
&gt; This test seems more complicated than necessary.  Can&apos;t we just create a single AudioPannerNode and then set the panningModel attribute for each of the constant values, then check that the attribute returns the same value?
&gt; 
&gt; Then we can get rid of createTestAndRun() and all of the associated testing machinery around.

Simplified test as suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542744</commentid>
    <comment_count>8</comment_count>
      <attachid>124031</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-01-25 16:13:13 -0800</bug_when>
    <thetext>Created attachment 124031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542764</commentid>
    <comment_count>9</comment_count>
      <attachid>124031</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-25 16:44:20 -0800</bug_when>
    <thetext>Comment on attachment 124031
Patch

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

&gt; Source/WebCore/webaudio/AudioPannerNode.cpp:155
&gt;      if (!m_panner.get() || model != m_panningModel) {

I just noticed that we should do bounds checking on &quot;model&quot; and reject illegal values

&gt; LayoutTests/webaudio/panner-set-model.html:18
&gt; +      var renderLengthSeconds = 0.001;

We don&apos;t need these two variables since we don&apos;t need to use an offline audio context.

&gt; LayoutTests/webaudio/panner-set-model.html:30
&gt; +          var context = new webkitAudioContext(2, sampleRate * renderLengthSeconds, sampleRate);

I think we can use a &quot;regular&quot; AudioContext here (no constructor arguments)

&gt; LayoutTests/webaudio/panner-set-model.html:36
&gt; +          // correctly.

We should add a comment describing the &quot;magic&quot; number 3, describing the existing panning constant values...

&gt; LayoutTests/webaudio/panner-set-model.html:43
&gt; +                   success = false;

nit: extra space before &quot;success&quot;

&gt; LayoutTests/webaudio/panner-set-model.html:45
&gt; +          }

We can add a test case where we try to set the panning model to an illegal value, and make sure it doesn&apos;t get set to that value.

&gt; LayoutTests/webaudio/panner-set-model.html:54
&gt; +                  

nit: extra blank line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543161</commentid>
    <comment_count>10</comment_count>
      <attachid>124031</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-01-26 08:17:38 -0800</bug_when>
    <thetext>Comment on attachment 124031
Patch

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

&gt;&gt; LayoutTests/webaudio/panner-set-model.html:36
&gt;&gt; +          // correctly.
&gt; 
&gt; We should add a comment describing the &quot;magic&quot; number 3, describing the existing panning constant values...

Do you want to say something more than that there are currently 3 panner models numbered 0 to 2?

&gt;&gt; LayoutTests/webaudio/panner-set-model.html:45
&gt;&gt; +          }
&gt; 
&gt; We can add a test case where we try to set the panning model to an illegal value, and make sure it doesn&apos;t get set to that value.

I tried setting the model to 99.  .panningModel is 99.   Maybe we shouldn&apos;t add this test now and file a bug report about it and fix it there, updating this test appropriately?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543313</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-26 11:21:56 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 124031 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124031&amp;action=review
&gt; 
&gt; &gt;&gt; LayoutTests/webaudio/panner-set-model.html:36
&gt; &gt;&gt; +          // correctly.
&gt; &gt; 
&gt; &gt; We should add a comment describing the &quot;magic&quot; number 3, describing the existing panning constant values...
&gt; 
&gt; Do you want to say something more than that there are currently 3 panner models numbered 0 to 2?

Ideally, we wouldn&apos;t even have a loop and would create a testing function and do something like this:

testSet(panner.EQUALPOWER);
testSet(panner.HRTF);
testSet(panner.SOUNDFIELD);



&gt; 
&gt; &gt;&gt; LayoutTests/webaudio/panner-set-model.html:45
&gt; &gt;&gt; +          }
&gt; &gt; 
&gt; &gt; We can add a test case where we try to set the panning model to an illegal value, and make sure it doesn&apos;t get set to that value.
&gt; 
&gt; I tried setting the model to 99.  .panningModel is 99.   Maybe we shouldn&apos;t add this test now and file a bug report about it and fix it there, updating this test appropriately?

In another comment about the C++ implementation, I mention we should be doing bounds checking...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543615</commentid>
    <comment_count>12</comment_count>
      <attachid>124203</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-01-26 16:06:54 -0800</bug_when>
    <thetext>Created attachment 124203
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543675</commentid>
    <comment_count>13</comment_count>
      <attachid>124203</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-26 17:09:09 -0800</bug_when>
    <thetext>Comment on attachment 124203
Patch

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

&gt; Source/WebCore/webaudio/AudioPannerNode.cpp:155
&gt;      if (!m_panner.get() || model != m_panningModel) {

Please do bounds checking on &quot;model&quot; and silently fail if model is not valid

&gt; LayoutTests/webaudio/panner-set-model.html:55
&gt; +

Please add one additional test setting to an illegal value and validating that the value did *not* change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543729</commentid>
    <comment_count>14</comment_count>
      <attachid>124234</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-01-26 18:59:13 -0800</bug_when>
    <thetext>Created attachment 124234
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543731</commentid>
    <comment_count>15</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-01-26 19:01:25 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 124203 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124203&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/webaudio/AudioPannerNode.cpp:155
&gt; &gt;      if (!m_panner.get() || model != m_panningModel) {
&gt; 
&gt; Please do bounds checking on &quot;model&quot; and silently fail if model is not valid

Done.  Not sure if this is how you want me to test for a valid model, though.
&gt; 
&gt; &gt; LayoutTests/webaudio/panner-set-model.html:55
&gt; &gt; +
&gt; 
&gt; Please add one additional test setting to an illegal value and validating that the value did *not* change.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543733</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-26 19:04:01 -0800</bug_when>
    <thetext>Attachment 124234 did not pass style-queue:

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

Source/WebCore/ChangeLog:13:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 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>543747</commentid>
    <comment_count>17</comment_count>
      <attachid>124240</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-01-26 19:35:04 -0800</bug_when>
    <thetext>Created attachment 124240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544169</commentid>
    <comment_count>18</comment_count>
      <attachid>124240</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-27 10:31:41 -0800</bug_when>
    <thetext>Comment on attachment 124240
Patch

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

Looks great if the comments are addressed.

&gt; Source/WebCore/webaudio/AudioPannerNode.cpp:166
&gt; +        // Silently fail, without doing anything.

I wouldn&apos;t use the word &quot;fail&quot; since it implies a defect in the implementation.  How about:

// Ignore illegal panner values.

Or, even better yet, no comment at all since it&apos;s quite obvious from the code itself.  WebKit style is to try to avoid obvious comments.

One thing we could consider is throwing an exception here, so another option is:

// FIXME: consider throwing exception for illegal model value.

&gt; LayoutTests/webaudio/panner-set-model.html:62
&gt; +              testFailed(&quot;Panner set to invalid model, but the panningModel changed fomr 2 to &quot; + panner.panningModel);

typo: &quot;fomr&quot; -&gt; &quot;from&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544266</commentid>
    <comment_count>19</comment_count>
      <attachid>124352</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-01-27 12:42:27 -0800</bug_when>
    <thetext>Created attachment 124352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544269</commentid>
    <comment_count>20</comment_count>
      <attachid>124240</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-01-27 12:43:48 -0800</bug_when>
    <thetext>Comment on attachment 124240
Patch

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

&gt;&gt; Source/WebCore/webaudio/AudioPannerNode.cpp:166
&gt;&gt; +        // Silently fail, without doing anything.
&gt; 
&gt; I wouldn&apos;t use the word &quot;fail&quot; since it implies a defect in the implementation.  How about:
&gt; 
&gt; // Ignore illegal panner values.
&gt; 
&gt; Or, even better yet, no comment at all since it&apos;s quite obvious from the code itself.  WebKit style is to try to avoid obvious comments.
&gt; 
&gt; One thing we could consider is throwing an exception here, so another option is:
&gt; 
&gt; // FIXME: consider throwing exception for illegal model value.

Added FIXME comment.  Will file a bug on this so we don&apos;t forget.

&gt;&gt; LayoutTests/webaudio/panner-set-model.html:62
&gt;&gt; +              testFailed(&quot;Panner set to invalid model, but the panningModel changed fomr 2 to &quot; + panner.panningModel);
&gt; 
&gt; typo: &quot;fomr&quot; -&gt; &quot;from&quot;

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544301</commentid>
    <comment_count>21</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-27 13:06:27 -0800</bug_when>
    <thetext>Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544334</commentid>
    <comment_count>22</comment_count>
      <attachid>124352</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-27 13:54:08 -0800</bug_when>
    <thetext>Comment on attachment 124352
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544411</commentid>
    <comment_count>23</comment_count>
      <attachid>124352</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-27 15:06:42 -0800</bug_when>
    <thetext>Comment on attachment 124352
Patch

Rejecting attachment 124352 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
t/git/webkit-commit-queue/Source/WebKit/chromium/v8 --revision 10507 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
46&gt;At revision 10507.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/11360166</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544424</commentid>
    <comment_count>24</comment_count>
      <attachid>124380</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-01-27 15:20:01 -0800</bug_when>
    <thetext>Created attachment 124380
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544426</commentid>
    <comment_count>25</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-01-27 15:21:29 -0800</bug_when>
    <thetext>Update patch to current sources.  Only changed the changelogs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544454</commentid>
    <comment_count>26</comment_count>
      <attachid>124380</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-01-27 15:41:35 -0800</bug_when>
    <thetext>Comment on attachment 124380
Patch

r=me again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544591</commentid>
    <comment_count>27</comment_count>
      <attachid>124380</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-27 19:11:58 -0800</bug_when>
    <thetext>Comment on attachment 124380
Patch

Clearing flags on attachment: 124380

Committed r106174: &lt;http://trac.webkit.org/changeset/106174&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544592</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-27 19:12:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123615</attachid>
            <date>2012-01-23 13:52:04 -0800</date>
            <delta_ts>2012-01-23 14:32:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66830-20120123135201.patch</filename>
            <type>text/plain</type>
            <size>5702</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQ3OGUzMDU3NjgxNTY2
YTQyZWYwYjQ4Nzk3ZTBiNGNmZTU1ZjgzNC4uNjY3MzAwODg3M2Y1NDJjM2ZhYTg5YzE4YjRmZTQy
MjlkYTRmNzY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAxLTIzICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBdWRpb1Bhbm5lck5vZGU6OnNl
dFBhbm5pbmdNb2RlbCgpIGRvZXMgbm90IHVwZGF0ZSBtX3Bhbm5pbmdNb2RlbCBwcm9wZXJseQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4MzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiB3ZWJh
dWRpby9wYW5uZXItc2V0LW1vZGVsLmh0bWwKKworICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFu
bmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Bhbm5lck5vZGU6OnNldFBhbm5p
bmdNb2RlbCk6ICBVcGRhdGUKKwltX3Bhbm5pbmdNb2RlbCBhcHByb3ByaWF0ZWx5LgorCiAyMDEy
LTAxLTIzICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgogCiAgICAg
ICAgIFNWRyBhbmltYXRpb24gcmVwYWludCBpc3N1ZSB3aXRoIGltYWdlIGFuZCBkeW5hbWljIGNs
aXBQYXRoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb1Bhbm5lck5v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmNwcAppbmRl
eCBmYWY3ZjE1OWU0NDMyMTQ0NmVkNjQzNjFjMmRmNDQ1ZDMwNWE4ZGRhLi5kZmZiZjNhNDU4ZmE4
YTJiNmU0MzE1OTBmZDcwOGNlNDBkMmU2NjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlv
L0F1ZGlvUGFubmVyTm9kZS5jcHAKQEAgLTE1NSw2ICsxNTUsNyBAQCB2b2lkIEF1ZGlvUGFubmVy
Tm9kZTo6c2V0UGFubmluZ01vZGVsKHVuc2lnbmVkIHNob3J0IG1vZGVsKQogICAgIGlmICghbV9w
YW5uZXIuZ2V0KCkgfHwgbW9kZWwgIT0gbV9wYW5uaW5nTW9kZWwpIHsKICAgICAgICAgT3duUHRy
PFBhbm5lcj4gbmV3UGFubmVyID0gUGFubmVyOjpjcmVhdGUobW9kZWwsIHNhbXBsZVJhdGUoKSk7
CiAgICAgICAgIG1fcGFubmVyID0gbmV3UGFubmVyLnJlbGVhc2UoKTsKKyAgICAgICAgbV9wYW5u
aW5nTW9kZWwgPSBtb2RlbDsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhYTE5YWJlZjQxYTVmZjJiNjBk
NTkzMjYyYmI5ZjEyOWM2ZDU4ZTQ2Li40N2MzZjI2YzlmOGY5ZjQ2NWJkYTE2NmRiYWQyYmIzMzcw
NGE4YjllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDEtMjMgIFJheW1vbmQgVG95ICA8
cnRveUBnb29nbGUuY29tPgorCisgICAgICAgIEF1ZGlvUGFubmVyTm9kZTo6c2V0UGFubmluZ01v
ZGVsKCkgZG9lcyBub3QgdXBkYXRlIG1fcGFubmluZ01vZGVsIHByb3Blcmx5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjgzMAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViYXVkaW8vcGFubmVyLXNl
dC1tb2RlbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL3Bhbm5lci1z
ZXQtbW9kZWwuaHRtbDogQWRkZWQuCisKIDIwMTItMDEtMjMgIEFudG9uIE11aGluICA8YW50b25t
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIHR3ZWFraW5nIG9mIHRlc3QgZXhw
ZWN0YXRpb25zOiBpdCBzaG91bGQgYmUgSU1BR0UgaW5zdGVhZCBvZiBJTUFHRStURVhULgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItc2V0LW1vZGVsLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mZjI4Njg2MDkxZGY1OGI5ZTU3YWEzYzY2YjkzNzc1NTE1NWU3YTc3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdCBpZiBwYW5uaW5nTW9kZWwgaXMgc2V0Lgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1MgcGFubmVyc1swXS5wYW5uaW5nTW9k
ZWwgPSAwLgorUEFTUyBwYW5uZXJzWzFdLnBhbm5pbmdNb2RlbCA9IDEuCitQQVNTIHBhbm5lcnNb
Ml0ucGFubmluZ01vZGVsID0gMi4KK1BBU1MgUGFubmluZyBtb2RlbCB0ZXN0IHBhc3NlZC4KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItc2V0LW1vZGVsLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9wYW5uZXItc2V0LW1vZGVsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmNlNTI0OThi
NGQ2YTdkZjg0ZTAyM2JlMDg3NzIxZTFkZjUzMzhjNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1zZXQtbW9kZWwuaHRtbApAQCAtMCwwICsxLDg3IEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwv
L0VOIj4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+CisgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDx0
aXRsZT5UZXN0IFBhbm5lciBzZXRQYW5uaW5nTW9kZWwgdmFsdWVzLjwvdGl0bGU+CisgIDwvaGVh
ZD4KKworICA8Ym9keT4KKyAgICA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+CisgICAgPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+CisKKyAgICA8c2NyaXB0PgorICAgICAgZGVzY3JpcHRpb24o
IlRlc3QgaWYgcGFubmluZ01vZGVsIGlzIHNldC4iKTsKKworICAgICAgdmFyIHNhbXBsZVJhdGUg
PSA0NDEwMDsKKyAgICAgIHZhciByZW5kZXJMZW5ndGhTZWNvbmRzID0gMC4xOworCisgICAgICAv
LyBBcnJheSBvZiBwYW5uZXJzIGZvciB0ZXN0aW5nLgorICAgICAgdmFyIHBhbm5lcnM7CisgICAg
ICAKKyAgICAgIGZ1bmN0aW9uIGNoZWNrUmVzdWx0KGV2ZW50KSB7CisgICAgICAgICAgdmFyIHN1
Y2Nlc3MgPSB0cnVlOworICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgcGFubmVycy5sZW5n
dGg7ICsraykgeworICAgICAgICAgICAgICBpZiAocGFubmVyc1trXS5wYW5uaW5nTW9kZWwgPT0g
aykgeworICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgicGFubmVyc1siICsgayArICJdLnBh
bm5pbmdNb2RlbCA9ICIgKyBrICsgIi4iKTsKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoInBhbm5lcnNbIiArIGsgKyAiXS5wYW5uaW5nTW9kZWwg
PSAiICsgcGFubmVyc1trXS5wYW5uaW5nTW9kZWwgKyAiLCBidXQgZXhwZWN0ZWQgIiArIGsgKyAi
LiIpOworICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgICAgICAg
fQorICAgICAgICAgIH0KKworICAgICAgICAgIGlmIChzdWNjZXNzKSB7CisgICAgICAgICAgICAg
IHRlc3RQYXNzZWQoIlBhbm5pbmcgbW9kZWwgdGVzdCBwYXNzZWQuIik7CisgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUGFubmluZyBtb2RlbCB0ZXN0IGZhaWxl
ZC4iKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgIH0K
KyAgICAgIAorICAgICAgZnVuY3Rpb24gY3JlYXRlVGVzdEFuZFJ1bihjb250ZXh0KSB7CisgICAg
ICAgICAgdmFyIGJ1ZmZlclNvdXJjZSA9IG5ldyBBcnJheSgzKTsKKyAgICAgICAgICB2YXIgaW1w
dWxzZSA9IGNyZWF0ZUltcHVsc2VCdWZmZXIoY29udGV4dCwgLjAwMSk7CisKKyAgICAgICAgICBw
YW5uZXJzID0gbmV3IEFycmF5KDMpOworICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgcGFu
bmVycy5sZW5ndGg7ICsraykgeworICAgICAgICAgICAgIGJ1ZmZlclNvdXJjZVtrXSA9IGNvbnRl
eHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CisgICAgICAgICAgICAgYnVmZmVyU291cmNlW2tdLmJ1
ZmZlciA9IGltcHVsc2U7CisKKyAgICAgICAgICAgICBwYW5uZXJzW2tdID0gY29udGV4dC5jcmVh
dGVQYW5uZXIoKTsKKyAgICAgICAgICAgICBwYW5uZXJzW2tdLnBhbm5pbmdNb2RlbCA9IGs7CisK
KyAgICAgICAgICAgICBidWZmZXJTb3VyY2Vba10uY29ubmVjdChwYW5uZXJzW2tdKTsKKyAgICAg
ICAgICAgICBwYW5uZXJzW2tdLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAgICAg
ICAgICAgICBidWZmZXJTb3VyY2Vba10ubm90ZU9uKGsqLjAwMSk7CisgICAgICAgICAgfQorCisg
ICAgICAgICAgY29udGV4dC5vbmNvbXBsZXRlID0gY2hlY2tSZXN1bHQ7CisgICAgICAgICAgY29u
dGV4dC5zdGFydFJlbmRlcmluZygpOworICAgICAgfQorCisgICAgICAvLyBUZXN0IHRvIHNlZSBp
ZiB3ZSBwYW5uaW5nTW9kZWwgaXMgdXBkYXRlZCB3aGVuIHdlIHNldCBpdC4KKyAgICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAg
ICAgICB9CisKKyAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAg
ICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgorICAgICAgICAgIHZhciBjb250
ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3Ro
U2Vjb25kcywgc2FtcGxlUmF0ZSk7CisKKyAgICAgICAgICBjcmVhdGVUZXN0QW5kUnVuKGNvbnRl
eHQpOworICAgICAgfQorCisgICAgICBydW5UZXN0KCk7CisgICAgICBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOworCisgICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0IHNyYz0iLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123622</attachid>
            <date>2012-01-23 14:32:13 -0800</date>
            <delta_ts>2012-01-25 16:13:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66830-20120123143209.patch</filename>
            <type>text/plain</type>
            <size>5709</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQ3OGUzMDU3NjgxNTY2
YTQyZWYwYjQ4Nzk3ZTBiNGNmZTU1ZjgzNC4uNTJjZDFmZTNlYWMwNDdhNWU1MmE4ZGM3ZjE1NjBh
YjBkYzBlODYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAxLTIzICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBdWRpb1Bhbm5lck5vZGU6OnNl
dFBhbm5pbmdNb2RlbCgpIGRvZXMgbm90IHVwZGF0ZSBtX3Bhbm5pbmdNb2RlbCBwcm9wZXJseQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4MzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiB3ZWJh
dWRpby9wYW5uZXItc2V0LW1vZGVsLmh0bWwKKworICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFu
bmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Bhbm5lck5vZGU6OnNldFBhbm5p
bmdNb2RlbCk6ICBVcGRhdGUKKyAgICAgICAgbV9wYW5uaW5nTW9kZWwgYXBwcm9wcmlhdGVseS4K
KwogMjAxMi0wMS0yMyAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4K
IAogICAgICAgICBTVkcgYW5pbWF0aW9uIHJlcGFpbnQgaXNzdWUgd2l0aCBpbWFnZSBhbmQgZHlu
YW1pYyBjbGlwUGF0aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9Q
YW5uZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5j
cHAKaW5kZXggZmFmN2YxNTllNDQzMjE0NDZlZDY0MzYxYzJkZjQ0NWQzMDVhOGRkYS4uZGZmYmYz
YTQ1OGZhOGEyYjZlNDMxNTkwZmQ3MDhjZTQwZDJlNjYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuY3BwCkBAIC0xNTUsNiArMTU1LDcgQEAgdm9pZCBBdWRp
b1Bhbm5lck5vZGU6OnNldFBhbm5pbmdNb2RlbCh1bnNpZ25lZCBzaG9ydCBtb2RlbCkKICAgICBp
ZiAoIW1fcGFubmVyLmdldCgpIHx8IG1vZGVsICE9IG1fcGFubmluZ01vZGVsKSB7CiAgICAgICAg
IE93blB0cjxQYW5uZXI+IG5ld1Bhbm5lciA9IFBhbm5lcjo6Y3JlYXRlKG1vZGVsLCBzYW1wbGVS
YXRlKCkpOwogICAgICAgICBtX3Bhbm5lciA9IG5ld1Bhbm5lci5yZWxlYXNlKCk7CisgICAgICAg
IG1fcGFubmluZ01vZGVsID0gbW9kZWw7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWExOWFiZWY0MWE1
ZmYyYjYwZDU5MzI2MmJiOWYxMjljNmQ1OGU0Ni4uNDdjM2YyNmM5ZjhmOWY0NjViZGExNjZkYmFk
MmJiMzM3MDRhOGI5ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTIzICBSYXltb25k
IFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBdWRpb1Bhbm5lck5vZGU6OnNldFBh
bm5pbmdNb2RlbCgpIGRvZXMgbm90IHVwZGF0ZSBtX3Bhbm5pbmdNb2RlbCBwcm9wZXJseQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4MzAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYmF1ZGlvL3Bh
bm5lci1zZXQtbW9kZWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9w
YW5uZXItc2V0LW1vZGVsLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAxLTIzICBBbnRvbiBNdWhpbiAg
PGFudG9ubUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCB0d2Vha2luZyBvZiB0
ZXN0IGV4cGVjdGF0aW9uczogaXQgc2hvdWxkIGJlIElNQUdFIGluc3RlYWQgb2YgSU1BR0UrVEVY
VC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1zZXQtbW9kZWwtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZmYyODY4NjA5MWRmNThiOWU1N2FhM2M2NmI5Mzc3NTUxNTVlN2E3
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1zZXQtbW9k
ZWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3QgaWYgcGFubmluZ01vZGVsIGlz
IHNldC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIHBhbm5lcnNbMF0ucGFu
bmluZ01vZGVsID0gMC4KK1BBU1MgcGFubmVyc1sxXS5wYW5uaW5nTW9kZWwgPSAxLgorUEFTUyBw
YW5uZXJzWzJdLnBhbm5pbmdNb2RlbCA9IDIuCitQQVNTIFBhbm5pbmcgbW9kZWwgdGVzdCBwYXNz
ZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJj
ZTUyNDk4YjRkNmE3ZGY4NGUwMjNiZTA4NzcyMWUxZGY1MzM4YzYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItc2V0LW1vZGVsLmh0bWwKQEAgLTAsMCArMSw4
NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNp
dGlvbmFsLy9FTiI+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KyAgICA8dGl0bGU+VGVzdCBQYW5uZXIgc2V0UGFubmluZ01vZGVsIHZhbHVlcy48L3RpdGxlPgor
ICA8L2hlYWQ+CisKKyAgPGJvZHk+CisgICAgPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2Pgor
ICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCisgICAgPHNjcmlwdD4KKyAgICAgIGRlc2Ny
aXB0aW9uKCJUZXN0IGlmIHBhbm5pbmdNb2RlbCBpcyBzZXQuIik7CisKKyAgICAgIHZhciBzYW1w
bGVSYXRlID0gNDQxMDA7CisgICAgICB2YXIgcmVuZGVyTGVuZ3RoU2Vjb25kcyA9IDAuMTsKKwor
ICAgICAgLy8gQXJyYXkgb2YgcGFubmVycyBmb3IgdGVzdGluZy4KKyAgICAgIHZhciBwYW5uZXJz
OworICAgICAgCisgICAgICBmdW5jdGlvbiBjaGVja1Jlc3VsdChldmVudCkgeworICAgICAgICAg
IHZhciBzdWNjZXNzID0gdHJ1ZTsKKyAgICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IHBhbm5l
cnMubGVuZ3RoOyArK2spIHsKKyAgICAgICAgICAgICAgaWYgKHBhbm5lcnNba10ucGFubmluZ01v
ZGVsID09IGspIHsKKyAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoInBhbm5lcnNbIiArIGsg
KyAiXS5wYW5uaW5nTW9kZWwgPSAiICsgayArICIuIik7CisgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJwYW5uZXJzWyIgKyBrICsgIl0ucGFubmlu
Z01vZGVsID0gIiArIHBhbm5lcnNba10ucGFubmluZ01vZGVsICsgIiwgYnV0IGV4cGVjdGVkICIg
KyBrICsgIi4iKTsKKyAgICAgICAgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7CisgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAoc3VjY2VzcykgeworICAgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJQYW5uaW5nIG1vZGVsIHRlc3QgcGFzc2VkLiIpOworICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlBhbm5pbmcgbW9kZWwgdGVz
dCBmYWlsZWQuIik7CisgICAgICAgICAgfQorCisgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICB9CisgICAgICAKKyAgICAgIGZ1bmN0aW9uIGNyZWF0ZVRlc3RBbmRSdW4oY29udGV4dCkg
eworICAgICAgICAgIHZhciBidWZmZXJTb3VyY2UgPSBuZXcgQXJyYXkoMyk7CisgICAgICAgICAg
dmFyIGltcHVsc2UgPSBjcmVhdGVJbXB1bHNlQnVmZmVyKGNvbnRleHQsIC4wMDEpOworCisgICAg
ICAgICAgcGFubmVycyA9IG5ldyBBcnJheSgzKTsKKyAgICAgICAgICBmb3IgKHZhciBrID0gMDsg
ayA8IHBhbm5lcnMubGVuZ3RoOyArK2spIHsKKyAgICAgICAgICAgICBidWZmZXJTb3VyY2Vba10g
PSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOworICAgICAgICAgICAgIGJ1ZmZlclNvdXJj
ZVtrXS5idWZmZXIgPSBpbXB1bHNlOworCisgICAgICAgICAgICAgcGFubmVyc1trXSA9IGNvbnRl
eHQuY3JlYXRlUGFubmVyKCk7CisgICAgICAgICAgICAgcGFubmVyc1trXS5wYW5uaW5nTW9kZWwg
PSBrOworCisgICAgICAgICAgICAgYnVmZmVyU291cmNlW2tdLmNvbm5lY3QocGFubmVyc1trXSk7
CisgICAgICAgICAgICAgcGFubmVyc1trXS5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOwor
CisgICAgICAgICAgICAgYnVmZmVyU291cmNlW2tdLm5vdGVPbihrKi4wMDEpOworICAgICAgICAg
IH0KKworICAgICAgICAgIGNvbnRleHQub25jb21wbGV0ZSA9IGNoZWNrUmVzdWx0OworICAgICAg
ICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKTsKKyAgICAgIH0KKworICAgICAgLy8gVGVzdCB0
byBzZWUgaWYgd2UgcGFubmluZ01vZGVsIGlzIHVwZGF0ZWQgd2hlbiB3ZSBzZXQgaXQuCisgICAg
ICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisgICAgICAgICAgfQorCisgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwor
CisgICAgICAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KKyAgICAgICAgICB2
YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRl
ckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworCisgICAgICAgICAgY3JlYXRlVGVzdEFuZFJ1
bihjb250ZXh0KTsKKyAgICAgIH0KKworICAgICAgcnVuVGVzdCgpOworICAgICAgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKworICAgIDwvc2NyaXB0PgorCisgICAgPHNjcmlwdCBzcmM9Ii4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124031</attachid>
            <date>2012-01-25 16:13:13 -0800</date>
            <delta_ts>2012-01-26 16:06:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66830-20120125161312.patch</filename>
            <type>text/plain</type>
            <size>4963</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzZkZTk0M2NhNTcwM2Zl
ZmJhMTcwZjdlOWYyZGMyZTM4OTc1MzAyYy4uZjgwOGY3NTZhODlhMjYwNjRiYzUxMzk1MGFlZDgz
ZWQzZDU2MTUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAxLTIzICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBdWRpb1Bhbm5lck5vZGU6OnNl
dFBhbm5pbmdNb2RlbCgpIGRvZXMgbm90IHVwZGF0ZSBtX3Bhbm5pbmdNb2RlbCBwcm9wZXJseQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4MzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiB3ZWJh
dWRpby9wYW5uZXItc2V0LW1vZGVsLmh0bWwKKworICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFu
bmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Bhbm5lck5vZGU6OnNldFBhbm5p
bmdNb2RlbCk6ICBVcGRhdGUKKyAgICAgICAgbV9wYW5uaW5nTW9kZWwgYXBwcm9wcmlhdGVseS4K
KwogMjAxMi0wMS0yNSAgQW50b24gTXVoaW4gIDxhbnRvbm1AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3IG1hbnVhbCByZXZlcnQgb2YgcjEwNTg0My4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuY3BwCmluZGV4IGZhZjdmMTU5ZTQ0MzIxNDQ2ZWQ2NDM2
MWMyZGY0NDVkMzA1YThkZGEuLmRmZmJmM2E0NThmYThhMmI2ZTQzMTU5MGZkNzA4Y2U0MGQyZTY2
MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmNwcApAQCAt
MTU1LDYgKzE1NSw3IEBAIHZvaWQgQXVkaW9QYW5uZXJOb2RlOjpzZXRQYW5uaW5nTW9kZWwodW5z
aWduZWQgc2hvcnQgbW9kZWwpCiAgICAgaWYgKCFtX3Bhbm5lci5nZXQoKSB8fCBtb2RlbCAhPSBt
X3Bhbm5pbmdNb2RlbCkgewogICAgICAgICBPd25QdHI8UGFubmVyPiBuZXdQYW5uZXIgPSBQYW5u
ZXI6OmNyZWF0ZShtb2RlbCwgc2FtcGxlUmF0ZSgpKTsKICAgICAgICAgbV9wYW5uZXIgPSBuZXdQ
YW5uZXIucmVsZWFzZSgpOworICAgICAgICBtX3Bhbm5pbmdNb2RlbCA9IG1vZGVsOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGJhM2I2MmM5YzM2ODkwNzY2ODYzYTI3YjM2ZmM2ZWY2YjhkOTUyNDcuLjk1
ZjgxNzMyMTZmZTY3YzVjYjcyZDljODA3ZTQ3NGM0MzRjNmRiYjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxMi0wMS0yMyAgUmF5bW9uZCBUb3kgIDxydG95QGdvb2dsZS5jb20+CisKKyAgICAg
ICAgQXVkaW9QYW5uZXJOb2RlOjpzZXRQYW5uaW5nTW9kZWwoKSBkb2VzIG5vdCB1cGRhdGUgbV9w
YW5uaW5nTW9kZWwgcHJvcGVybHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY2ODMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB3ZWJhdWRpby9wYW5uZXItc2V0LW1vZGVsLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC5odG1sOiBBZGRlZC4KKwog
MjAxMi0wMS0yNSAgTm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBmYXN0L2Nzcy90ZXh0LW92ZXJmbG93LWlucHV0Lmh0bWwgcmViYXNlbGlu
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItc2V0LW1vZGVsLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mM2Y2NDM1ZGNlY2U2NDlmNDZkNzk2N2RlM2E4ZWQwNzczOTA3ODQz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2Rl
bC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdCBpZiBwYW5uaW5nTW9kZWwgY2Fu
IGJlIHNldCBhbmQgcmVhZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIHBh
bm5lci5wYW5uaW5nTW9kZWwgPSAwLgorUEFTUyBwYW5uZXIucGFubmluZ01vZGVsID0gMS4KK1BB
U1MgcGFubmVyLnBhbm5pbmdNb2RlbCA9IDIuCitQQVNTIFBhbm5pbmcgbW9kZWwgdGVzdHMgcGFz
c2VkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1zZXQtbW9kZWwuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1zZXQtbW9kZWwuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
MjM0NDMyZTJjZmY1NjdkM2ZjZDhjOTUyZGRlMzgwZTZmMjZhYjgzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC5odG1sCkBAIC0wLDAgKzEs
NjQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5z
aXRpb25hbC8vRU4iPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKyAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
CisgICAgPHRpdGxlPlRlc3QgUGFubmVyIHNldFBhbm5pbmdNb2RlbCB2YWx1ZXMuPC90aXRsZT4K
KyAgPC9oZWFkPgorCisgIDxib2R5PgorICAgIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4K
KyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisgICAgICBkZXNj
cmlwdGlvbigiVGVzdCBpZiBwYW5uaW5nTW9kZWwgY2FuIGJlIHNldCBhbmQgcmVhZC4iKTsKKwor
ICAgICAgdmFyIHNhbXBsZVJhdGUgPSA0NDEwMDsKKyAgICAgIHZhciByZW5kZXJMZW5ndGhTZWNv
bmRzID0gMC4wMDE7CisgICAgICAKKyAgICAgIC8vIFRlc3QgdG8gc2VlIGlmIHdlIHBhbm5pbmdN
b2RlbCBpcyB1cGRhdGVkIHdoZW4gd2Ugc2V0IGl0LgorICAgICAgZnVuY3Rpb24gcnVuVGVzdCgp
IHsKKyAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgIH0KKworICAg
ICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICAgIC8vIENyZWF0
ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCisgICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Vi
a2l0QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1w
bGVSYXRlKTsKKworICAgICAgICAgIHZhciBzdWNjZXNzID0gdHJ1ZTsKKyAgICAgICAgICB2YXIg
cGFubmVyID0gY29udGV4dC5jcmVhdGVQYW5uZXIoKTsKKworICAgICAgICAgIC8vIFNldCB0aGUg
cGFubmluZyBtb2RlbCBhbmQgc2VlIGlmIGl0IGNhbiBiZSByZWFkIGJhY2sKKyAgICAgICAgICAv
LyBjb3JyZWN0bHkuCisgICAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCAzOyArK2spIHsKKyAg
ICAgICAgICAgICAgcGFubmVyLnBhbm5pbmdNb2RlbCA9IGs7CisgICAgICAgICAgICAgIGlmIChw
YW5uZXIucGFubmluZ01vZGVsID09IGspIHsKKyAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQo
InBhbm5lci5wYW5uaW5nTW9kZWwgPSAiICsgayArICIuIik7CisgICAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJwYW5uZXIucGFubmluZ01vZGVsID0g
IiArIHBhbm5lci5wYW5uaW5nTW9kZWwgKyAiLCBidXQgZXhwZWN0ZWQgIiArIGsgKyAiLiIpOwor
ICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgICAgICAgfQorICAg
ICAgICAgIH0KKworICAgICAgICAgIGlmIChzdWNjZXNzKSB7CisgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIlBhbm5pbmcgbW9kZWwgdGVzdHMgcGFzc2VkLiIpOworICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlBhbm5pbmcgbW9kZWwgdGVzdHMgZmFpbGVkLiIp
OworICAgICAgICAgIH0KKworICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAg
ICAgICAgCisgICAgICB9CisKKyAgICAgIHJ1blRlc3QoKTsKKyAgICAgIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CisKKyAgICA8L3NjcmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124203</attachid>
            <date>2012-01-26 16:06:54 -0800</date>
            <delta_ts>2012-01-26 18:59:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66830-20120126160652.patch</filename>
            <type>text/plain</type>
            <size>5472</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzZkZTk0M2NhNTcwM2Zl
ZmJhMTcwZjdlOWYyZGMyZTM4OTc1MzAyYy4uZjgwOGY3NTZhODlhMjYwNjRiYzUxMzk1MGFlZDgz
ZWQzZDU2MTUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAxLTIzICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBdWRpb1Bhbm5lck5vZGU6OnNl
dFBhbm5pbmdNb2RlbCgpIGRvZXMgbm90IHVwZGF0ZSBtX3Bhbm5pbmdNb2RlbCBwcm9wZXJseQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4MzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiB3ZWJh
dWRpby9wYW5uZXItc2V0LW1vZGVsLmh0bWwKKworICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFu
bmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Bhbm5lck5vZGU6OnNldFBhbm5p
bmdNb2RlbCk6ICBVcGRhdGUKKyAgICAgICAgbV9wYW5uaW5nTW9kZWwgYXBwcm9wcmlhdGVseS4K
KwogMjAxMi0wMS0yNSAgQW50b24gTXVoaW4gIDxhbnRvbm1AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3IG1hbnVhbCByZXZlcnQgb2YgcjEwNTg0My4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuY3BwCmluZGV4IGZhZjdmMTU5ZTQ0MzIxNDQ2ZWQ2NDM2
MWMyZGY0NDVkMzA1YThkZGEuLmRmZmJmM2E0NThmYThhMmI2ZTQzMTU5MGZkNzA4Y2U0MGQyZTY2
MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmNwcApAQCAt
MTU1LDYgKzE1NSw3IEBAIHZvaWQgQXVkaW9QYW5uZXJOb2RlOjpzZXRQYW5uaW5nTW9kZWwodW5z
aWduZWQgc2hvcnQgbW9kZWwpCiAgICAgaWYgKCFtX3Bhbm5lci5nZXQoKSB8fCBtb2RlbCAhPSBt
X3Bhbm5pbmdNb2RlbCkgewogICAgICAgICBPd25QdHI8UGFubmVyPiBuZXdQYW5uZXIgPSBQYW5u
ZXI6OmNyZWF0ZShtb2RlbCwgc2FtcGxlUmF0ZSgpKTsKICAgICAgICAgbV9wYW5uZXIgPSBuZXdQ
YW5uZXIucmVsZWFzZSgpOworICAgICAgICBtX3Bhbm5pbmdNb2RlbCA9IG1vZGVsOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGJhM2I2MmM5YzM2ODkwNzY2ODYzYTI3YjM2ZmM2ZWY2YjhkOTUyNDcuLjk1
ZjgxNzMyMTZmZTY3YzVjYjcyZDljODA3ZTQ3NGM0MzRjNmRiYjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxMi0wMS0yMyAgUmF5bW9uZCBUb3kgIDxydG95QGdvb2dsZS5jb20+CisKKyAgICAg
ICAgQXVkaW9QYW5uZXJOb2RlOjpzZXRQYW5uaW5nTW9kZWwoKSBkb2VzIG5vdCB1cGRhdGUgbV9w
YW5uaW5nTW9kZWwgcHJvcGVybHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY2ODMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB3ZWJhdWRpby9wYW5uZXItc2V0LW1vZGVsLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC5odG1sOiBBZGRlZC4KKwog
MjAxMi0wMS0yNSAgTm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBmYXN0L2Nzcy90ZXh0LW92ZXJmbG93LWlucHV0Lmh0bWwgcmViYXNlbGlu
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItc2V0LW1vZGVsLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44YTNhZTczNmJlYWUyMTNkMjNjOGJkMTA1YzI3MzJmYTQyYjc5OGMw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2Rl
bC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdCBpZiBwYW5uaW5nTW9kZWwgY2Fu
IGJlIHNldCBhbmQgcmVhZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIFBh
bm5lciBzZXQgdG8gRVFVQUxQT1dFUiBtb2RlbCBhbmQgcmVhZCBjb3JyZWN0bHkuCitQQVNTIFBh
bm5lciBzZXQgdG8gSFJURiBtb2RlbCBhbmQgcmVhZCBjb3JyZWN0bHkuCitQQVNTIFBhbm5lciBz
ZXQgdG8gU09VTkRGSUVMRCBtb2RlbCBhbmQgcmVhZCBjb3JyZWN0bHkuCitQQVNTIFBhbm5pbmcg
bW9kZWwgdGVzdHMgcGFzc2VkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1z
ZXQtbW9kZWwuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1zZXQtbW9kZWwuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jNjdiZGFkMmQ4YWUzNGZkNzZhNTZjODY1YjgxMGM0Mjc1ZTVlYTA2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC5o
dG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQg
SFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiLz4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CisgICAgPHRpdGxlPlRlc3QgUGFubmVyIHNldFBhbm5pbmdNb2RlbCB2
YWx1ZXMuPC90aXRsZT4KKyAgPC9oZWFkPgorCisgIDxib2R5PgorICAgIDxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworICAgIDxzY3Jp
cHQ+CisgICAgICBkZXNjcmlwdGlvbigiVGVzdCBpZiBwYW5uaW5nTW9kZWwgY2FuIGJlIHNldCBh
bmQgcmVhZC4iKTsKKworICAgICAgLy8gVGVzdCB0byBzZWUgaWYgd2UgcGFubmluZ01vZGVsIGlz
IHVwZGF0ZWQgd2hlbiB3ZSBzZXQgaXQuCisgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAg
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgfQorCisgICAgICAgICAg
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgICAgdmFyIGNvbnRleHQgPSBu
ZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgICAgICAgdmFyIHN1Y2Nlc3MgPSB0cnVlOwor
ICAgICAgICAgIHZhciBwYW5uZXIgPSBjb250ZXh0LmNyZWF0ZVBhbm5lcigpOworCisgICAgICAg
ICAgLy8gU2V0IHRoZSBwYW5uaW5nIG1vZGVsIGFuZCBzZWUgaWYgaXQgY2FuIGJlIHJlYWQgYmFj
aworICAgICAgICAgIC8vIGNvcnJlY3RseS4KKyAgICAgICAgICBwYW5uZXIucGFubmluZ01vZGVs
ID0gcGFubmVyLkVRVUFMUE9XRVI7CisgICAgICAgICAgaWYgKHBhbm5lci5wYW5uaW5nTW9kZWwg
PT0gMCkgeworICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJQYW5uZXIgc2V0IHRvIEVRVUFMUE9X
RVIgbW9kZWwgYW5kIHJlYWQgY29ycmVjdGx5LiIpOworICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlBhbm5lciBtb2RlbCBzZXQgdG8gRVFVQUxQT1dFUiAoMCkg
YnV0IHJldHVybmVkICIgKyBwYW5uZXIucGFubmluZ01vZGVsKTsKKyAgICAgICAgICAgICAgc3Vj
Y2VzcyA9IGZhbHNlOworICAgICAgICAgIH0KKyAgICAgIAorICAgICAgICAgIHBhbm5lci5wYW5u
aW5nTW9kZWwgPSBwYW5uZXIuSFJURjsKKyAgICAgICAgICBpZiAocGFubmVyLnBhbm5pbmdNb2Rl
bCA9PSAxKSB7CisgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlBhbm5lciBzZXQgdG8gSFJURiBt
b2RlbCBhbmQgcmVhZCBjb3JyZWN0bHkuIik7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiUGFubmVyIG1vZGVsIHNldCB0byBIUlRGICgxKSBidXQgcmV0dXJu
ZWQgIiArIHBhbm5lci5wYW5uaW5nTW9kZWwpOworICAgICAgICAgICAgICBzdWNjZXNzID0gZmFs
c2U7CisgICAgICAgICAgfQorICAgICAgCisgICAgICAgICAgcGFubmVyLnBhbm5pbmdNb2RlbCA9
IHBhbm5lci5TT1VOREZJRUxEOworICAgICAgICAgIGlmIChwYW5uZXIucGFubmluZ01vZGVsID09
IDIpIHsKKyAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiUGFubmVyIHNldCB0byBTT1VOREZJRUxE
IG1vZGVsIGFuZCByZWFkIGNvcnJlY3RseS4iKTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJQYW5uZXIgbW9kZWwgc2V0IHRvIFNPVU5ERklFTEQgKDIpIGJ1
dCByZXR1cm5lZCAiICsgcGFubmVyLnBhbm5pbmdNb2RlbCk7CisgICAgICAgICAgICAgIHN1Y2Nl
c3MgPSBmYWxzZTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAoc3VjY2VzcykgeworICAg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJQYW5uaW5nIG1vZGVsIHRlc3RzIHBhc3NlZC4iKTsKKyAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQYW5uaW5nIG1vZGVs
IHRlc3RzIGZhaWxlZC4iKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgIH0KKworICAgICAgcnVuVGVzdCgpOworICAgICAgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKworICAgIDwvc2NyaXB0PgorCisgICAgPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124234</attachid>
            <date>2012-01-26 18:59:13 -0800</date>
            <delta_ts>2012-01-26 19:34:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66830-20120126185912.patch</filename>
            <type>text/plain</type>
            <size>6501</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzZkZTk0M2NhNTcwM2Zl
ZmJhMTcwZjdlOWYyZGMyZTM4OTc1MzAyYy4uNTY1OTVlZTRiODM4MjYwNTFhNzliZjY1NDUwM2E1
NzBhZDZiYzY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAxLTIzICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBdWRpb1Bhbm5lck5vZGU6OnNl
dFBhbm5pbmdNb2RlbCgpIGRvZXMgbm90IHVwZGF0ZSBtX3Bhbm5pbmdNb2RlbCBwcm9wZXJseQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4MzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiB3ZWJh
dWRpby9wYW5uZXItc2V0LW1vZGVsLmh0bWwKKworICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFu
bmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Bhbm5lck5vZGU6OnNldFBhbm5p
bmdNb2RlbCk6ICBVcGRhdGUKKyAgICAgICAgbV9wYW5uaW5nTW9kZWwgYXBwcm9wcmlhdGVseS4g
IEFsc28gc2lsZW50bHkgZG8gbm90aGluZyBpZiB0aGUKKwltb2RlbCBpcyBpbnZhbGlkLgorCiAy
MDEyLTAxLTI1ICBBbnRvbiBNdWhpbiAgPGFudG9ubUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXcgbWFudWFsIHJldmVydCBvZiByMTA1ODQzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1
ZGlvL0F1ZGlvUGFubmVyTm9kZS5jcHAKaW5kZXggZmFmN2YxNTllNDQzMjE0NDZlZDY0MzYxYzJk
ZjQ0NWQzMDVhOGRkYS4uMjE3MDZkNTc1Y2Q1ZDkyOWNmY2YwNGM5OTEyOTY0YTMwMzIxMGZiYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuY3BwCkBAIC0xNTIs
OSArMTUyLDE5IEBAIEF1ZGlvTGlzdGVuZXIqIEF1ZGlvUGFubmVyTm9kZTo6bGlzdGVuZXIoKQog
CiB2b2lkIEF1ZGlvUGFubmVyTm9kZTo6c2V0UGFubmluZ01vZGVsKHVuc2lnbmVkIHNob3J0IG1v
ZGVsKQogewotICAgIGlmICghbV9wYW5uZXIuZ2V0KCkgfHwgbW9kZWwgIT0gbV9wYW5uaW5nTW9k
ZWwpIHsKLSAgICAgICAgT3duUHRyPFBhbm5lcj4gbmV3UGFubmVyID0gUGFubmVyOjpjcmVhdGUo
bW9kZWwsIHNhbXBsZVJhdGUoKSk7Ci0gICAgICAgIG1fcGFubmVyID0gbmV3UGFubmVyLnJlbGVh
c2UoKTsKKyAgICBzd2l0Y2ggKG1vZGVsKSB7CisgICAgY2FzZSBFUVVBTFBPV0VSOgorICAgIGNh
c2UgSFJURjoKKyAgICBjYXNlIFNPVU5ERklFTEQ6CisgICAgICAgIGlmICghbV9wYW5uZXIuZ2V0
KCkgfHwgbW9kZWwgIT0gbV9wYW5uaW5nTW9kZWwpIHsKKyAgICAgICAgICAgIE93blB0cjxQYW5u
ZXI+IG5ld1Bhbm5lciA9IFBhbm5lcjo6Y3JlYXRlKG1vZGVsLCBzYW1wbGVSYXRlKCkpOworICAg
ICAgICAgICAgbV9wYW5uZXIgPSBuZXdQYW5uZXIucmVsZWFzZSgpOworICAgICAgICAgICAgbV9w
YW5uaW5nTW9kZWwgPSBtb2RlbDsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBkZWZh
dWx0OgorICAgICAgICAvLyBTaWxlbnRseSBmYWlsLCB3aXRob3V0IGRvaW5nIGFueXRoaW5nLgor
ICAgICAgICBicmVhazsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiYTNiNjJjOWMzNjg5MDc2Njg2M2Ey
N2IzNmZjNmVmNmI4ZDk1MjQ3Li45NWY4MTczMjE2ZmU2N2M1Y2I3MmQ5YzgwN2U0NzRjNDM0YzZk
YmIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDEtMjMgIFJheW1vbmQgVG95ICA8cnRv
eUBnb29nbGUuY29tPgorCisgICAgICAgIEF1ZGlvUGFubmVyTm9kZTo6c2V0UGFubmluZ01vZGVs
KCkgZG9lcyBub3QgdXBkYXRlIG1fcGFubmluZ01vZGVsIHByb3Blcmx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjgzMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViYXVkaW8vcGFubmVyLXNldC1t
b2RlbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL3Bhbm5lci1zZXQt
bW9kZWwuaHRtbDogQWRkZWQuCisKIDIwMTItMDEtMjUgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jk
b25AZ21haWwuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gZmFzdC9jc3MvdGV4dC1vdmVyZmxv
dy1pbnB1dC5odG1sIHJlYmFzZWxpbmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L3Bhbm5lci1zZXQtbW9kZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFu
bmVyLXNldC1tb2RlbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWI3Mzk2NGU0ZWI5Y2M5MjMy
ZTk1YzIyYTA3ZTdiOTdkZTJhYTg4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL3Bhbm5lci1zZXQtbW9kZWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rl
c3QgaWYgcGFubmluZ01vZGVsIGNhbiBiZSBzZXQgYW5kIHJlYWQuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworUEFTUyBQYW5uZXIgc2V0IHRvIEVRVUFMUE9XRVIgbW9kZWwgYW5kIHJl
YWQgY29ycmVjdGx5LgorUEFTUyBQYW5uZXIgc2V0IHRvIEhSVEYgbW9kZWwgYW5kIHJlYWQgY29y
cmVjdGx5LgorUEFTUyBQYW5uZXIgc2V0IHRvIFNPVU5ERklFTEQgbW9kZWwgYW5kIHJlYWQgY29y
cmVjdGx5LgorUEFTUyBQYW5uZXIgc2V0IHRvIGludmFsaWQgbW9kZWwgYW5kIHBhbm5pbmdNb2Rl
bCBkaWQgbm90IGNoYW5nZS4KK1BBU1MgUGFubmluZyBtb2RlbCB0ZXN0cyBwYXNzZWQuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiZmI5NDFiYzVh
NDhmMDhhNGIxYzFiMTVmM2YwYmE3OTJkMGU2NDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9wYW5uZXItc2V0LW1vZGVsLmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9F
TiI+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8dGl0
bGU+VGVzdCBQYW5uZXIgc2V0UGFubmluZ01vZGVsIHZhbHVlcy48L3RpdGxlPgorICA8L2hlYWQ+
CisKKyAgPGJvZHk+CisgICAgPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorICAgIDxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorCisgICAgPHNjcmlwdD4KKyAgICAgIGRlc2NyaXB0aW9uKCJU
ZXN0IGlmIHBhbm5pbmdNb2RlbCBjYW4gYmUgc2V0IGFuZCByZWFkLiIpOworCisgICAgICAvLyBU
ZXN0IHRvIHNlZSBpZiB3ZSBwYW5uaW5nTW9kZWwgaXMgdXBkYXRlZCB3aGVuIHdlIHNldCBpdC4K
KyAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICAgICAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsK
KyAgICAgICAgICB2YXIgc3VjY2VzcyA9IHRydWU7CisgICAgICAgICAgdmFyIHBhbm5lciA9IGNv
bnRleHQuY3JlYXRlUGFubmVyKCk7CisKKyAgICAgICAgICAvLyBTZXQgdGhlIHBhbm5pbmcgbW9k
ZWwgYW5kIHNlZSBpZiBpdCBjYW4gYmUgcmVhZCBiYWNrCisgICAgICAgICAgLy8gY29ycmVjdGx5
LgorICAgICAgICAgIHBhbm5lci5wYW5uaW5nTW9kZWwgPSBwYW5uZXIuRVFVQUxQT1dFUjsKKyAg
ICAgICAgICBpZiAocGFubmVyLnBhbm5pbmdNb2RlbCA9PSAwKSB7CisgICAgICAgICAgICAgIHRl
c3RQYXNzZWQoIlBhbm5lciBzZXQgdG8gRVFVQUxQT1dFUiBtb2RlbCBhbmQgcmVhZCBjb3JyZWN0
bHkuIik7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUGFu
bmVyIG1vZGVsIHNldCB0byBFUVVBTFBPV0VSICgwKSBidXQgcmV0dXJuZWQgIiArIHBhbm5lci5w
YW5uaW5nTW9kZWwpOworICAgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7CisgICAgICAgICAg
fQorICAgICAgCisgICAgICAgICAgcGFubmVyLnBhbm5pbmdNb2RlbCA9IHBhbm5lci5IUlRGOwor
ICAgICAgICAgIGlmIChwYW5uZXIucGFubmluZ01vZGVsID09IDEpIHsKKyAgICAgICAgICAgICAg
dGVzdFBhc3NlZCgiUGFubmVyIHNldCB0byBIUlRGIG1vZGVsIGFuZCByZWFkIGNvcnJlY3RseS4i
KTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQYW5uZXIg
bW9kZWwgc2V0IHRvIEhSVEYgKDEpIGJ1dCByZXR1cm5lZCAiICsgcGFubmVyLnBhbm5pbmdNb2Rl
bCk7CisgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgICB9CisgICAgICAK
KyAgICAgICAgICBwYW5uZXIucGFubmluZ01vZGVsID0gcGFubmVyLlNPVU5ERklFTEQ7CisgICAg
ICAgICAgaWYgKHBhbm5lci5wYW5uaW5nTW9kZWwgPT0gMikgeworICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKCJQYW5uZXIgc2V0IHRvIFNPVU5ERklFTEQgbW9kZWwgYW5kIHJlYWQgY29ycmVjdGx5
LiIpOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlBhbm5l
ciBtb2RlbCBzZXQgdG8gU09VTkRGSUVMRCAoMikgYnV0IHJldHVybmVkICIgKyBwYW5uZXIucGFu
bmluZ01vZGVsKTsKKyAgICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOworICAgICAgICAgIH0K
KworICAgICAgICAgIC8vIFNldCB0byBpbnZhbGlkIHZhbHVlIGFuZCBtYWtlIHN1cmUgaXQgZGlk
bid0IGNoYW5nZSBmcm9tCisgICAgICAgICAgLy8gaXQncyBwcmV2aW91cyBzZXR0aW5nIChvZiAy
KS4KKyAgICAgICAgICBwYW5uZXIucGFubmluZ01vZGVsID0gOTk7CisgICAgICAgICAgaWYgKHBh
bm5lci5wYW5uaW5nTW9kZWwgPT0gMikgeworICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJQYW5u
ZXIgc2V0IHRvIGludmFsaWQgbW9kZWwgYW5kIHBhbm5pbmdNb2RlbCBkaWQgbm90IGNoYW5nZS4i
KTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQYW5uZXIg
c2V0IHRvIGludmFsaWQgbW9kZWwsIGJ1dCB0aGUgcGFubmluZ01vZGVsIGNoYW5nZWQgZm9tciAy
IHRvICIgKyBwYW5uZXIucGFubmluZ01vZGVsKTsKKyAgICAgICAgICAgICAgc3VjY2VzcyA9IGZh
bHNlOworICAgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgICBpZiAoc3VjY2Vzcykgewor
ICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJQYW5uaW5nIG1vZGVsIHRlc3RzIHBhc3NlZC4iKTsK
KyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQYW5uaW5nIG1v
ZGVsIHRlc3RzIGZhaWxlZC4iKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICAgIH0KKworICAgICAgcnVuVGVzdCgpOworICAgICAgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKKworICAgIDwvc2NyaXB0PgorCisgICAgPHNjcmlwdCBzcmM9Ii4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124240</attachid>
            <date>2012-01-26 19:35:04 -0800</date>
            <delta_ts>2012-01-27 12:43:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66830-20120126193503.patch</filename>
            <type>text/plain</type>
            <size>6508</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzZkZTk0M2NhNTcwM2Zl
ZmJhMTcwZjdlOWYyZGMyZTM4OTc1MzAyYy4uYzQ0YTg0OGVmYWM4ZGJlZWY1NTdhMjQ2ZGRiNzll
Nzc4Zjk1Mzg5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAxLTIzICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBdWRpb1Bhbm5lck5vZGU6OnNl
dFBhbm5pbmdNb2RlbCgpIGRvZXMgbm90IHVwZGF0ZSBtX3Bhbm5pbmdNb2RlbCBwcm9wZXJseQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4MzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiB3ZWJh
dWRpby9wYW5uZXItc2V0LW1vZGVsLmh0bWwKKworICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFu
bmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Bhbm5lck5vZGU6OnNldFBhbm5p
bmdNb2RlbCk6ICBVcGRhdGUKKyAgICAgICAgbV9wYW5uaW5nTW9kZWwgYXBwcm9wcmlhdGVseS4g
IEFsc28gc2lsZW50bHkgZG8gbm90aGluZyBpZiB0aGUKKyAgICAgICAgbW9kZWwgaXMgaW52YWxp
ZC4KKwogMjAxMi0wMS0yNSAgQW50b24gTXVoaW4gIDxhbnRvbm1AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3IG1hbnVhbCByZXZlcnQgb2YgcjEwNTg0My4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuY3BwCmluZGV4IGZhZjdmMTU5ZTQ0MzIxNDQ2ZWQ2
NDM2MWMyZGY0NDVkMzA1YThkZGEuLjIxNzA2ZDU3NWNkNWQ5MjljZmNmMDRjOTkxMjk2NGEzMDMy
MTBmYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9k
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmNwcApA
QCAtMTUyLDkgKzE1MiwxOSBAQCBBdWRpb0xpc3RlbmVyKiBBdWRpb1Bhbm5lck5vZGU6Omxpc3Rl
bmVyKCkKIAogdm9pZCBBdWRpb1Bhbm5lck5vZGU6OnNldFBhbm5pbmdNb2RlbCh1bnNpZ25lZCBz
aG9ydCBtb2RlbCkKIHsKLSAgICBpZiAoIW1fcGFubmVyLmdldCgpIHx8IG1vZGVsICE9IG1fcGFu
bmluZ01vZGVsKSB7Ci0gICAgICAgIE93blB0cjxQYW5uZXI+IG5ld1Bhbm5lciA9IFBhbm5lcjo6
Y3JlYXRlKG1vZGVsLCBzYW1wbGVSYXRlKCkpOwotICAgICAgICBtX3Bhbm5lciA9IG5ld1Bhbm5l
ci5yZWxlYXNlKCk7CisgICAgc3dpdGNoIChtb2RlbCkgeworICAgIGNhc2UgRVFVQUxQT1dFUjoK
KyAgICBjYXNlIEhSVEY6CisgICAgY2FzZSBTT1VOREZJRUxEOgorICAgICAgICBpZiAoIW1fcGFu
bmVyLmdldCgpIHx8IG1vZGVsICE9IG1fcGFubmluZ01vZGVsKSB7CisgICAgICAgICAgICBPd25Q
dHI8UGFubmVyPiBuZXdQYW5uZXIgPSBQYW5uZXI6OmNyZWF0ZShtb2RlbCwgc2FtcGxlUmF0ZSgp
KTsKKyAgICAgICAgICAgIG1fcGFubmVyID0gbmV3UGFubmVyLnJlbGVhc2UoKTsKKyAgICAgICAg
ICAgIG1fcGFubmluZ01vZGVsID0gbW9kZWw7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgLy8gU2lsZW50bHkgZmFpbCwgd2l0aG91dCBkb2luZyBhbnl0
aGluZy4KKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmEzYjYyYzljMzY4OTA3
NjY4NjNhMjdiMzZmYzZlZjZiOGQ5NTI0Ny4uOTVmODE3MzIxNmZlNjdjNWNiNzJkOWM4MDdlNDc0
YzQzNGM2ZGJiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTIzICBSYXltb25kIFRv
eSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBdWRpb1Bhbm5lck5vZGU6OnNldFBhbm5p
bmdNb2RlbCgpIGRvZXMgbm90IHVwZGF0ZSBtX3Bhbm5pbmdNb2RlbCBwcm9wZXJseQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4MzAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYmF1ZGlvL3Bhbm5l
ci1zZXQtbW9kZWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9wYW5u
ZXItc2V0LW1vZGVsLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAxLTI1ICBOb2VsIEdvcmRvbiAgPG5v
ZWwuZ29yZG9uQGdtYWlsLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIGZhc3QvY3NzL3RleHQt
b3ZlcmZsb3ctaW5wdXQuaHRtbCByZWJhc2VsaW5lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9wYW5uZXItc2V0LW1vZGVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL3Bhbm5lci1zZXQtbW9kZWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiNzM5NjRlNGVi
OWNjOTIzMmU5NWMyMmEwN2U3Yjk3ZGUyYWE4OGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9wYW5uZXItc2V0LW1vZGVsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEz
IEBACitUZXN0IGlmIHBhbm5pbmdNb2RlbCBjYW4gYmUgc2V0IGFuZCByZWFkLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1MgUGFubmVyIHNldCB0byBFUVVBTFBPV0VSIG1vZGVs
IGFuZCByZWFkIGNvcnJlY3RseS4KK1BBU1MgUGFubmVyIHNldCB0byBIUlRGIG1vZGVsIGFuZCBy
ZWFkIGNvcnJlY3RseS4KK1BBU1MgUGFubmVyIHNldCB0byBTT1VOREZJRUxEIG1vZGVsIGFuZCBy
ZWFkIGNvcnJlY3RseS4KK1BBU1MgUGFubmVyIHNldCB0byBpbnZhbGlkIG1vZGVsIGFuZCBwYW5u
aW5nTW9kZWwgZGlkIG5vdCBjaGFuZ2UuCitQQVNTIFBhbm5pbmcgbW9kZWwgdGVzdHMgcGFzc2Vk
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1zZXQtbW9kZWwuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1zZXQtbW9kZWwuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YmZi
OTQxYmM1YTQ4ZjA4YTRiMWMxYjE1ZjNmMGJhNzkyZDBlNjQwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC5odG1sCkBAIC0wLDAgKzEsODIg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRp
b25hbC8vRU4iPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKyAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHRpdGxlPlRlc3QgUGFubmVyIHNldFBhbm5pbmdNb2RlbCB2YWx1ZXMuPC90aXRsZT4KKyAg
PC9oZWFkPgorCisgIDxib2R5PgorICAgIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKyAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisgICAgICBkZXNjcmlw
dGlvbigiVGVzdCBpZiBwYW5uaW5nTW9kZWwgY2FuIGJlIHNldCBhbmQgcmVhZC4iKTsKKworICAg
ICAgLy8gVGVzdCB0byBzZWUgaWYgd2UgcGFubmluZ01vZGVsIGlzIHVwZGF0ZWQgd2hlbiB3ZSBz
ZXQgaXQuCisgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CisgICAgICAgICAgfQorCisgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworCisgICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250
ZXh0KCk7CisgICAgICAgICAgdmFyIHN1Y2Nlc3MgPSB0cnVlOworICAgICAgICAgIHZhciBwYW5u
ZXIgPSBjb250ZXh0LmNyZWF0ZVBhbm5lcigpOworCisgICAgICAgICAgLy8gU2V0IHRoZSBwYW5u
aW5nIG1vZGVsIGFuZCBzZWUgaWYgaXQgY2FuIGJlIHJlYWQgYmFjaworICAgICAgICAgIC8vIGNv
cnJlY3RseS4KKyAgICAgICAgICBwYW5uZXIucGFubmluZ01vZGVsID0gcGFubmVyLkVRVUFMUE9X
RVI7CisgICAgICAgICAgaWYgKHBhbm5lci5wYW5uaW5nTW9kZWwgPT0gMCkgeworICAgICAgICAg
ICAgICB0ZXN0UGFzc2VkKCJQYW5uZXIgc2V0IHRvIEVRVUFMUE9XRVIgbW9kZWwgYW5kIHJlYWQg
Y29ycmVjdGx5LiIpOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlBhbm5lciBtb2RlbCBzZXQgdG8gRVFVQUxQT1dFUiAoMCkgYnV0IHJldHVybmVkICIgKyBw
YW5uZXIucGFubmluZ01vZGVsKTsKKyAgICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOworICAg
ICAgICAgIH0KKyAgICAgIAorICAgICAgICAgIHBhbm5lci5wYW5uaW5nTW9kZWwgPSBwYW5uZXIu
SFJURjsKKyAgICAgICAgICBpZiAocGFubmVyLnBhbm5pbmdNb2RlbCA9PSAxKSB7CisgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIlBhbm5lciBzZXQgdG8gSFJURiBtb2RlbCBhbmQgcmVhZCBjb3Jy
ZWN0bHkuIik7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
UGFubmVyIG1vZGVsIHNldCB0byBIUlRGICgxKSBidXQgcmV0dXJuZWQgIiArIHBhbm5lci5wYW5u
aW5nTW9kZWwpOworICAgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7CisgICAgICAgICAgfQor
ICAgICAgCisgICAgICAgICAgcGFubmVyLnBhbm5pbmdNb2RlbCA9IHBhbm5lci5TT1VOREZJRUxE
OworICAgICAgICAgIGlmIChwYW5uZXIucGFubmluZ01vZGVsID09IDIpIHsKKyAgICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiUGFubmVyIHNldCB0byBTT1VOREZJRUxEIG1vZGVsIGFuZCByZWFkIGNv
cnJlY3RseS4iKTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJQYW5uZXIgbW9kZWwgc2V0IHRvIFNPVU5ERklFTEQgKDIpIGJ1dCByZXR1cm5lZCAiICsgcGFu
bmVyLnBhbm5pbmdNb2RlbCk7CisgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAg
ICAgICB9CisKKyAgICAgICAgICAvLyBTZXQgdG8gaW52YWxpZCB2YWx1ZSBhbmQgbWFrZSBzdXJl
IGl0IGRpZG4ndCBjaGFuZ2UgZnJvbQorICAgICAgICAgIC8vIGl0J3MgcHJldmlvdXMgc2V0dGlu
ZyAob2YgMikuCisgICAgICAgICAgcGFubmVyLnBhbm5pbmdNb2RlbCA9IDk5OworICAgICAgICAg
IGlmIChwYW5uZXIucGFubmluZ01vZGVsID09IDIpIHsKKyAgICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgiUGFubmVyIHNldCB0byBpbnZhbGlkIG1vZGVsIGFuZCBwYW5uaW5nTW9kZWwgZGlkIG5vdCBj
aGFuZ2UuIik7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
UGFubmVyIHNldCB0byBpbnZhbGlkIG1vZGVsLCBidXQgdGhlIHBhbm5pbmdNb2RlbCBjaGFuZ2Vk
IGZvbXIgMiB0byAiICsgcGFubmVyLnBhbm5pbmdNb2RlbCk7CisgICAgICAgICAgICAgIHN1Y2Nl
c3MgPSBmYWxzZTsKKyAgICAgICAgICB9CisgICAgICAgICAgCisgICAgICAgICAgaWYgKHN1Y2Nl
c3MpIHsKKyAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiUGFubmluZyBtb2RlbCB0ZXN0cyBwYXNz
ZWQuIik7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUGFu
bmluZyBtb2RlbCB0ZXN0cyBmYWlsZWQuIik7CisgICAgICAgICAgfQorCisgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgICB9CisKKyAgICAgIHJ1blRlc3QoKTsKKyAgICAgIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CisKKyAgICA8L3NjcmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIu
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124352</attachid>
            <date>2012-01-27 12:42:27 -0800</date>
            <delta_ts>2012-01-27 15:19:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66830-20120127124226.patch</filename>
            <type>text/plain</type>
            <size>6533</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzZkZTk0M2NhNTcwM2Zl
ZmJhMTcwZjdlOWYyZGMyZTM4OTc1MzAyYy4uYzQ0YTg0OGVmYWM4ZGJlZWY1NTdhMjQ2ZGRiNzll
Nzc4Zjk1Mzg5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAxLTIzICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBdWRpb1Bhbm5lck5vZGU6OnNl
dFBhbm5pbmdNb2RlbCgpIGRvZXMgbm90IHVwZGF0ZSBtX3Bhbm5pbmdNb2RlbCBwcm9wZXJseQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4MzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiB3ZWJh
dWRpby9wYW5uZXItc2V0LW1vZGVsLmh0bWwKKworICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFu
bmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Bhbm5lck5vZGU6OnNldFBhbm5p
bmdNb2RlbCk6ICBVcGRhdGUKKyAgICAgICAgbV9wYW5uaW5nTW9kZWwgYXBwcm9wcmlhdGVseS4g
IEFsc28gc2lsZW50bHkgZG8gbm90aGluZyBpZiB0aGUKKyAgICAgICAgbW9kZWwgaXMgaW52YWxp
ZC4KKwogMjAxMi0wMS0yNSAgQW50b24gTXVoaW4gIDxhbnRvbm1AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3IG1hbnVhbCByZXZlcnQgb2YgcjEwNTg0My4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuY3BwCmluZGV4IGZhZjdmMTU5ZTQ0MzIxNDQ2ZWQ2
NDM2MWMyZGY0NDVkMzA1YThkZGEuLmQ4OGFiYTRlYWQ5ZmYyMTkwMGNmMTZkOWMxNDhlZDY3MjZk
NjE4YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9k
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmNwcApA
QCAtMTUyLDkgKzE1MiwxOSBAQCBBdWRpb0xpc3RlbmVyKiBBdWRpb1Bhbm5lck5vZGU6Omxpc3Rl
bmVyKCkKIAogdm9pZCBBdWRpb1Bhbm5lck5vZGU6OnNldFBhbm5pbmdNb2RlbCh1bnNpZ25lZCBz
aG9ydCBtb2RlbCkKIHsKLSAgICBpZiAoIW1fcGFubmVyLmdldCgpIHx8IG1vZGVsICE9IG1fcGFu
bmluZ01vZGVsKSB7Ci0gICAgICAgIE93blB0cjxQYW5uZXI+IG5ld1Bhbm5lciA9IFBhbm5lcjo6
Y3JlYXRlKG1vZGVsLCBzYW1wbGVSYXRlKCkpOwotICAgICAgICBtX3Bhbm5lciA9IG5ld1Bhbm5l
ci5yZWxlYXNlKCk7CisgICAgc3dpdGNoIChtb2RlbCkgeworICAgIGNhc2UgRVFVQUxQT1dFUjoK
KyAgICBjYXNlIEhSVEY6CisgICAgY2FzZSBTT1VOREZJRUxEOgorICAgICAgICBpZiAoIW1fcGFu
bmVyLmdldCgpIHx8IG1vZGVsICE9IG1fcGFubmluZ01vZGVsKSB7CisgICAgICAgICAgICBPd25Q
dHI8UGFubmVyPiBuZXdQYW5uZXIgPSBQYW5uZXI6OmNyZWF0ZShtb2RlbCwgc2FtcGxlUmF0ZSgp
KTsKKyAgICAgICAgICAgIG1fcGFubmVyID0gbmV3UGFubmVyLnJlbGVhc2UoKTsKKyAgICAgICAg
ICAgIG1fcGFubmluZ01vZGVsID0gbW9kZWw7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgLy8gRklYTUU6IGNvbnNpZGVyIHRocm93aW5nIGFuIGV4Y2Vw
dGlvbiBmb3IgaWxsZWdhbCBtb2RlbCB2YWx1ZXMuCisgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGJhM2I2MmM5YzM2ODkwNzY2ODYzYTI3YjM2ZmM2ZWY2YjhkOTUyNDcuLjk1Zjgx
NzMyMTZmZTY3YzVjYjcyZDljODA3ZTQ3NGM0MzRjNmRiYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxMi0wMS0yMyAgUmF5bW9uZCBUb3kgIDxydG95QGdvb2dsZS5jb20+CisKKyAgICAgICAg
QXVkaW9QYW5uZXJOb2RlOjpzZXRQYW5uaW5nTW9kZWwoKSBkb2VzIG5vdCB1cGRhdGUgbV9wYW5u
aW5nTW9kZWwgcHJvcGVybHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY2ODMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3ZWJhdWRpby9wYW5uZXItc2V0LW1vZGVsLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC5odG1sOiBBZGRlZC4KKwogMjAx
Mi0wMS0yNSAgTm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAgICAg
W2Nocm9taXVtXSBmYXN0L2Nzcy90ZXh0LW92ZXJmbG93LWlucHV0Lmh0bWwgcmViYXNlbGluZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItc2V0LW1vZGVsLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xYjczOTY0ZTRlYjljYzkyMzJlOTVjMjJhMDdlN2I5N2RlMmFhODhkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdCBpZiBwYW5uaW5nTW9kZWwgY2FuIGJl
IHNldCBhbmQgcmVhZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIFBhbm5l
ciBzZXQgdG8gRVFVQUxQT1dFUiBtb2RlbCBhbmQgcmVhZCBjb3JyZWN0bHkuCitQQVNTIFBhbm5l
ciBzZXQgdG8gSFJURiBtb2RlbCBhbmQgcmVhZCBjb3JyZWN0bHkuCitQQVNTIFBhbm5lciBzZXQg
dG8gU09VTkRGSUVMRCBtb2RlbCBhbmQgcmVhZCBjb3JyZWN0bHkuCitQQVNTIFBhbm5lciBzZXQg
dG8gaW52YWxpZCBtb2RlbCBhbmQgcGFubmluZ01vZGVsIGRpZCBub3QgY2hhbmdlLgorUEFTUyBQ
YW5uaW5nIG1vZGVsIHRlc3RzIHBhc3NlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9w
YW5uZXItc2V0LW1vZGVsLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItc2V0LW1v
ZGVsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzViMTcxZjkwOWRiN2NhZDE4Y2Q0MmM2YjhhMmRiYmUxMzZj
OThjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1zZXQt
bW9kZWwuaHRtbApAQCAtMCwwICsxLDgyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1cz
Qy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIj4KKzxodG1sPgorICA8aGVhZD4KKyAg
ICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIi8+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5n
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDx0aXRsZT5UZXN0IFBhbm5lciBzZXRQYW5uaW5n
TW9kZWwgdmFsdWVzLjwvdGl0bGU+CisgIDwvaGVhZD4KKworICA8Ym9keT4KKyAgICA8ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+PC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKyAg
ICA8c2NyaXB0PgorICAgICAgZGVzY3JpcHRpb24oIlRlc3QgaWYgcGFubmluZ01vZGVsIGNhbiBi
ZSBzZXQgYW5kIHJlYWQuIik7CisKKyAgICAgIC8vIFRlc3QgdG8gc2VlIGlmIHdlIHBhbm5pbmdN
b2RlbCBpcyB1cGRhdGVkIHdoZW4gd2Ugc2V0IGl0LgorICAgICAgZnVuY3Rpb24gcnVuVGVzdCgp
IHsKKyAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgIH0KKworICAg
ICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICAgIHZhciBjb250
ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOworICAgICAgICAgIHZhciBzdWNjZXNzID0g
dHJ1ZTsKKyAgICAgICAgICB2YXIgcGFubmVyID0gY29udGV4dC5jcmVhdGVQYW5uZXIoKTsKKwor
ICAgICAgICAgIC8vIFNldCB0aGUgcGFubmluZyBtb2RlbCBhbmQgc2VlIGlmIGl0IGNhbiBiZSBy
ZWFkIGJhY2sKKyAgICAgICAgICAvLyBjb3JyZWN0bHkuCisgICAgICAgICAgcGFubmVyLnBhbm5p
bmdNb2RlbCA9IHBhbm5lci5FUVVBTFBPV0VSOworICAgICAgICAgIGlmIChwYW5uZXIucGFubmlu
Z01vZGVsID09IDApIHsKKyAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiUGFubmVyIHNldCB0byBF
UVVBTFBPV0VSIG1vZGVsIGFuZCByZWFkIGNvcnJlY3RseS4iKTsKKyAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQYW5uZXIgbW9kZWwgc2V0IHRvIEVRVUFMUE9X
RVIgKDApIGJ1dCByZXR1cm5lZCAiICsgcGFubmVyLnBhbm5pbmdNb2RlbCk7CisgICAgICAgICAg
ICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgICB9CisgICAgICAKKyAgICAgICAgICBwYW5u
ZXIucGFubmluZ01vZGVsID0gcGFubmVyLkhSVEY7CisgICAgICAgICAgaWYgKHBhbm5lci5wYW5u
aW5nTW9kZWwgPT0gMSkgeworICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJQYW5uZXIgc2V0IHRv
IEhSVEYgbW9kZWwgYW5kIHJlYWQgY29ycmVjdGx5LiIpOworICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlBhbm5lciBtb2RlbCBzZXQgdG8gSFJURiAoMSkgYnV0
IHJldHVybmVkICIgKyBwYW5uZXIucGFubmluZ01vZGVsKTsKKyAgICAgICAgICAgICAgc3VjY2Vz
cyA9IGZhbHNlOworICAgICAgICAgIH0KKyAgICAgIAorICAgICAgICAgIHBhbm5lci5wYW5uaW5n
TW9kZWwgPSBwYW5uZXIuU09VTkRGSUVMRDsKKyAgICAgICAgICBpZiAocGFubmVyLnBhbm5pbmdN
b2RlbCA9PSAyKSB7CisgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlBhbm5lciBzZXQgdG8gU09V
TkRGSUVMRCBtb2RlbCBhbmQgcmVhZCBjb3JyZWN0bHkuIik7CisgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUGFubmVyIG1vZGVsIHNldCB0byBTT1VOREZJRUxE
ICgyKSBidXQgcmV0dXJuZWQgIiArIHBhbm5lci5wYW5uaW5nTW9kZWwpOworICAgICAgICAgICAg
ICBzdWNjZXNzID0gZmFsc2U7CisgICAgICAgICAgfQorCisgICAgICAgICAgLy8gU2V0IHRvIGlu
dmFsaWQgdmFsdWUgYW5kIG1ha2Ugc3VyZSBpdCBkaWRuJ3QgY2hhbmdlIGZyb20KKyAgICAgICAg
ICAvLyBpdCdzIHByZXZpb3VzIHNldHRpbmcgKG9mIDIpLgorICAgICAgICAgIHBhbm5lci5wYW5u
aW5nTW9kZWwgPSA5OTsKKyAgICAgICAgICBpZiAocGFubmVyLnBhbm5pbmdNb2RlbCA9PSAyKSB7
CisgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlBhbm5lciBzZXQgdG8gaW52YWxpZCBtb2RlbCBh
bmQgcGFubmluZ01vZGVsIGRpZCBub3QgY2hhbmdlLiIpOworICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlBhbm5lciBzZXQgdG8gaW52YWxpZCBtb2RlbCwgYnV0
IHRoZSBwYW5uaW5nTW9kZWwgY2hhbmdlZCBmcm9tIDIgdG8gIiArIHBhbm5lci5wYW5uaW5nTW9k
ZWwpOworICAgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7CisgICAgICAgICAgfQorICAgICAg
ICAgIAorICAgICAgICAgIGlmIChzdWNjZXNzKSB7CisgICAgICAgICAgICAgIHRlc3RQYXNzZWQo
IlBhbm5pbmcgbW9kZWwgdGVzdHMgcGFzc2VkLiIpOworICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlBhbm5pbmcgbW9kZWwgdGVzdHMgZmFpbGVkLiIpOworICAg
ICAgICAgIH0KKworICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgfQorCisgICAgICBy
dW5UZXN0KCk7CisgICAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCisgICAgPC9zY3Jp
cHQ+CisKKyAgICA8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124380</attachid>
            <date>2012-01-27 15:20:01 -0800</date>
            <delta_ts>2012-01-27 19:11:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66830-20120127152000.patch</filename>
            <type>text/plain</type>
            <size>6616</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzE2YTQ2NDgwYjIyNmQ2
M2I0NGJlNTE2OTY3NTlhMWUzNmY3MzEyNi4uOTUwZjI1Nzg2NzU0OTE4NDg2ODJiMTNkN2E0YjM3
ZGFkYjBmZjIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAxLTI3ICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBBdWRpb1Bhbm5lck5vZGU6OnNl
dFBhbm5pbmdNb2RlbCgpIGRvZXMgbm90IHVwZGF0ZSBtX3Bhbm5pbmdNb2RlbCBwcm9wZXJseQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY4MzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiB3ZWJh
dWRpby9wYW5uZXItc2V0LW1vZGVsLmh0bWwKKworICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFu
bmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Bhbm5lck5vZGU6OnNldFBhbm5p
bmdNb2RlbCk6ICBVcGRhdGUKKyAgICAgICAgbV9wYW5uaW5nTW9kZWwgYXBwcm9wcmlhdGVseS4g
IEFsc28gc2lsZW50bHkgZG8gbm90aGluZyBpZiB0aGUKKyAgICAgICAgbW9kZWwgaXMgaW52YWxp
ZC4KKwogMjAxMi0wMS0yNyAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZW5hbWUgc2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSBh
bmQgbWFrZSBpdCBhIHNldHRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlv
L0F1ZGlvUGFubmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb1Bhbm5l
ck5vZGUuY3BwCmluZGV4IGZhZjdmMTU5ZTQ0MzIxNDQ2ZWQ2NDM2MWMyZGY0NDVkMzA1YThkZGEu
LmQ4OGFiYTRlYWQ5ZmYyMTkwMGNmMTZkOWMxNDhlZDY3MjZkNjE4YjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmNwcApAQCAtMTUyLDkgKzE1MiwxOSBAQCBB
dWRpb0xpc3RlbmVyKiBBdWRpb1Bhbm5lck5vZGU6Omxpc3RlbmVyKCkKIAogdm9pZCBBdWRpb1Bh
bm5lck5vZGU6OnNldFBhbm5pbmdNb2RlbCh1bnNpZ25lZCBzaG9ydCBtb2RlbCkKIHsKLSAgICBp
ZiAoIW1fcGFubmVyLmdldCgpIHx8IG1vZGVsICE9IG1fcGFubmluZ01vZGVsKSB7Ci0gICAgICAg
IE93blB0cjxQYW5uZXI+IG5ld1Bhbm5lciA9IFBhbm5lcjo6Y3JlYXRlKG1vZGVsLCBzYW1wbGVS
YXRlKCkpOwotICAgICAgICBtX3Bhbm5lciA9IG5ld1Bhbm5lci5yZWxlYXNlKCk7CisgICAgc3dp
dGNoIChtb2RlbCkgeworICAgIGNhc2UgRVFVQUxQT1dFUjoKKyAgICBjYXNlIEhSVEY6CisgICAg
Y2FzZSBTT1VOREZJRUxEOgorICAgICAgICBpZiAoIW1fcGFubmVyLmdldCgpIHx8IG1vZGVsICE9
IG1fcGFubmluZ01vZGVsKSB7CisgICAgICAgICAgICBPd25QdHI8UGFubmVyPiBuZXdQYW5uZXIg
PSBQYW5uZXI6OmNyZWF0ZShtb2RlbCwgc2FtcGxlUmF0ZSgpKTsKKyAgICAgICAgICAgIG1fcGFu
bmVyID0gbmV3UGFubmVyLnJlbGVhc2UoKTsKKyAgICAgICAgICAgIG1fcGFubmluZ01vZGVsID0g
bW9kZWw7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
Ly8gRklYTUU6IGNvbnNpZGVyIHRocm93aW5nIGFuIGV4Y2VwdGlvbiBmb3IgaWxsZWdhbCBtb2Rl
bCB2YWx1ZXMuCisgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYxNmQwN2NhMWZi
YmNmNDAzMjZlMTc4MWM1NzUxZjgzYzQyNTIyNTMuLmNhMzk5MzIxODZmZjkxM2VhMTY4MjBhYzVi
Yzc5Mzc3OGM5NmY3YjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMS0yNyAgUmF5bW9u
ZCBUb3kgIDxydG95QGdvb2dsZS5jb20+CisKKyAgICAgICAgQXVkaW9QYW5uZXJOb2RlOjpzZXRQ
YW5uaW5nTW9kZWwoKSBkb2VzIG5vdCB1cGRhdGUgbV9wYW5uaW5nTW9kZWwgcHJvcGVybHkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2ODMwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJhdWRpby9w
YW5uZXItc2V0LW1vZGVsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8v
cGFubmVyLXNldC1tb2RlbC5odG1sOiBBZGRlZC4KKwogMjAxMi0wMS0yNyAgTGV2aSBXZWludHJh
dWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcu
IEFkZGluZyBuZXcgd2luZG93cyBpbWFnZSBleHBlY3RhdGlvbnMgZm9yIGNzczMvZmxleGJveC9j
cm9zcy1heGlzLXNjcm9sbGJhci5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9wYW5uZXItc2V0LW1vZGVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bh
bm5lci1zZXQtbW9kZWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiNzM5NjRlNGViOWNjOTIz
MmU5NWMyMmEwN2U3Yjk3ZGUyYWE4OGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9wYW5uZXItc2V0LW1vZGVsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitU
ZXN0IGlmIHBhbm5pbmdNb2RlbCBjYW4gYmUgc2V0IGFuZCByZWFkLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKK1BBU1MgUGFubmVyIHNldCB0byBFUVVBTFBPV0VSIG1vZGVsIGFuZCBy
ZWFkIGNvcnJlY3RseS4KK1BBU1MgUGFubmVyIHNldCB0byBIUlRGIG1vZGVsIGFuZCByZWFkIGNv
cnJlY3RseS4KK1BBU1MgUGFubmVyIHNldCB0byBTT1VOREZJRUxEIG1vZGVsIGFuZCByZWFkIGNv
cnJlY3RseS4KK1BBU1MgUGFubmVyIHNldCB0byBpbnZhbGlkIG1vZGVsIGFuZCBwYW5uaW5nTW9k
ZWwgZGlkIG5vdCBjaGFuZ2UuCitQQVNTIFBhbm5pbmcgbW9kZWwgdGVzdHMgcGFzc2VkLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1zZXQtbW9kZWwuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL3Bhbm5lci1zZXQtbW9kZWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNWIxNzFmOTA5
ZGI3Y2FkMThjZDQyYzZiOGEyZGJiZTEzNmM5OGM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vcGFubmVyLXNldC1tb2RlbC5odG1sCkBAIC0wLDAgKzEsODIgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8v
RU4iPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKyAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHRp
dGxlPlRlc3QgUGFubmVyIHNldFBhbm5pbmdNb2RlbCB2YWx1ZXMuPC90aXRsZT4KKyAgPC9oZWFk
PgorCisgIDxib2R5PgorICAgIDxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKyAgICA8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKworICAgIDxzY3JpcHQ+CisgICAgICBkZXNjcmlwdGlvbigi
VGVzdCBpZiBwYW5uaW5nTW9kZWwgY2FuIGJlIHNldCBhbmQgcmVhZC4iKTsKKworICAgICAgLy8g
VGVzdCB0byBzZWUgaWYgd2UgcGFubmluZ01vZGVsIGlzIHVwZGF0ZWQgd2hlbiB3ZSBzZXQgaXQu
CisgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgICAgICAgICAgfQorCisgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KCk7
CisgICAgICAgICAgdmFyIHN1Y2Nlc3MgPSB0cnVlOworICAgICAgICAgIHZhciBwYW5uZXIgPSBj
b250ZXh0LmNyZWF0ZVBhbm5lcigpOworCisgICAgICAgICAgLy8gU2V0IHRoZSBwYW5uaW5nIG1v
ZGVsIGFuZCBzZWUgaWYgaXQgY2FuIGJlIHJlYWQgYmFjaworICAgICAgICAgIC8vIGNvcnJlY3Rs
eS4KKyAgICAgICAgICBwYW5uZXIucGFubmluZ01vZGVsID0gcGFubmVyLkVRVUFMUE9XRVI7Cisg
ICAgICAgICAgaWYgKHBhbm5lci5wYW5uaW5nTW9kZWwgPT0gMCkgeworICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJQYW5uZXIgc2V0IHRvIEVRVUFMUE9XRVIgbW9kZWwgYW5kIHJlYWQgY29ycmVj
dGx5LiIpOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlBh
bm5lciBtb2RlbCBzZXQgdG8gRVFVQUxQT1dFUiAoMCkgYnV0IHJldHVybmVkICIgKyBwYW5uZXIu
cGFubmluZ01vZGVsKTsKKyAgICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOworICAgICAgICAg
IH0KKyAgICAgIAorICAgICAgICAgIHBhbm5lci5wYW5uaW5nTW9kZWwgPSBwYW5uZXIuSFJURjsK
KyAgICAgICAgICBpZiAocGFubmVyLnBhbm5pbmdNb2RlbCA9PSAxKSB7CisgICAgICAgICAgICAg
IHRlc3RQYXNzZWQoIlBhbm5lciBzZXQgdG8gSFJURiBtb2RlbCBhbmQgcmVhZCBjb3JyZWN0bHku
Iik7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUGFubmVy
IG1vZGVsIHNldCB0byBIUlRGICgxKSBidXQgcmV0dXJuZWQgIiArIHBhbm5lci5wYW5uaW5nTW9k
ZWwpOworICAgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7CisgICAgICAgICAgfQorICAgICAg
CisgICAgICAgICAgcGFubmVyLnBhbm5pbmdNb2RlbCA9IHBhbm5lci5TT1VOREZJRUxEOworICAg
ICAgICAgIGlmIChwYW5uZXIucGFubmluZ01vZGVsID09IDIpIHsKKyAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgiUGFubmVyIHNldCB0byBTT1VOREZJRUxEIG1vZGVsIGFuZCByZWFkIGNvcnJlY3Rs
eS4iKTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQYW5u
ZXIgbW9kZWwgc2V0IHRvIFNPVU5ERklFTEQgKDIpIGJ1dCByZXR1cm5lZCAiICsgcGFubmVyLnBh
bm5pbmdNb2RlbCk7CisgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgICB9
CisKKyAgICAgICAgICAvLyBTZXQgdG8gaW52YWxpZCB2YWx1ZSBhbmQgbWFrZSBzdXJlIGl0IGRp
ZG4ndCBjaGFuZ2UgZnJvbQorICAgICAgICAgIC8vIGl0J3MgcHJldmlvdXMgc2V0dGluZyAob2Yg
MikuCisgICAgICAgICAgcGFubmVyLnBhbm5pbmdNb2RlbCA9IDk5OworICAgICAgICAgIGlmIChw
YW5uZXIucGFubmluZ01vZGVsID09IDIpIHsKKyAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiUGFu
bmVyIHNldCB0byBpbnZhbGlkIG1vZGVsIGFuZCBwYW5uaW5nTW9kZWwgZGlkIG5vdCBjaGFuZ2Uu
Iik7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUGFubmVy
IHNldCB0byBpbnZhbGlkIG1vZGVsLCBidXQgdGhlIHBhbm5pbmdNb2RlbCBjaGFuZ2VkIGZyb20g
MiB0byAiICsgcGFubmVyLnBhbm5pbmdNb2RlbCk7CisgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBm
YWxzZTsKKyAgICAgICAgICB9CisgICAgICAgICAgCisgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsK
KyAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiUGFubmluZyBtb2RlbCB0ZXN0cyBwYXNzZWQuIik7
CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUGFubmluZyBt
b2RlbCB0ZXN0cyBmYWlsZWQuIik7CisgICAgICAgICAgfQorCisgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICB9CisKKyAgICAgIHJ1blRlc3QoKTsKKyAgICAgIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CisKKyAgICA8L3NjcmlwdD4KKworICAgIDxzY3JpcHQgc3JjPSIuLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>