<?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>46493</bug_id>
          
          <creation_ts>2010-09-24 12:04:35 -0700</creation_ts>
          <short_desc>[chromium] Add mipmap support for ImageLayerChromium</short_desc>
          <delta_ts>2010-10-05 20:42:06 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="W. James MacLean">wjmaclean</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>vangelis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>284597</commentid>
    <comment_count>0</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-09-24 12:04:35 -0700</bug_when>
    <thetext>Enable mipmap support for image textures rendered via GPU compositor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284601</commentid>
    <comment_count>1</comment_count>
      <attachid>68724</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-09-24 12:07:34 -0700</bug_when>
    <thetext>Created attachment 68724
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284721</commentid>
    <comment_count>2</comment_count>
      <attachid>68724</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-09-24 14:48:44 -0700</bug_when>
    <thetext>Comment on attachment 68724
Patch

You need a couple more things: 
1. Enable linear mip filtering (GL_LINEAR_MIPMAP_LINEAR) for texture accesses
2. Do this only when either the NPOT extension is supporter or the texture is POT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284994</commentid>
    <comment_count>3</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-09-25 05:52:46 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 68724 [details])
&gt; You need a couple more things: 
&gt; 1. Enable linear mip filtering (GL_LINEAR_MIPMAP_LINEAR) for texture accesses
&gt; 2. Do this only when either the NPOT extension is supporter or the texture is POT

I&apos;m trying to get confirmation from Ken Russell, but I think the context3D wrapper looks after the case where the NPOT extension is not available. Will revise and resubmit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285440</commentid>
    <comment_count>4</comment_count>
      <attachid>68906</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-09-27 07:16:35 -0700</bug_when>
    <thetext>Created attachment 68906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285467</commentid>
    <comment_count>5</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-09-27 08:15:53 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=68906) [details]
&gt; Patch

The code checking for NPOT support is a bit clunky, although could be simplified if a method &quot;bool checkExtension(const char *)&quot; was added to GraphicsContext3D (?) to do the check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285522</commentid>
    <comment_count>6</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-09-27 10:06:06 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Created an attachment (id=68906) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; The code checking for NPOT support is a bit clunky, although could be simplified if a method &quot;bool checkExtension(const char *)&quot; was added to GraphicsContext3D (?) to do the check.

A better place for checking the extension would be to put it in the constructor of ContentLayerChromium::SharedValues  .  GraphicsContext3D is supposed to mirror the GL ES 2 API pretty closely so it shouldn&apos;t be doing any texture adjustments behind the scenes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286200</commentid>
    <comment_count>7</comment_count>
      <attachid>69041</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-09-28 06:51:09 -0700</bug_when>
    <thetext>Created attachment 69041
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286205</commentid>
    <comment_count>8</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-09-28 07:00:06 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=69041) [details]
&gt; Patch

I&apos;ve moved the one-time check for npot support into the constructor for ContentLayerChromium::SharedValues. This will make access to this information, should it be needed, a little more universal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286231</commentid>
    <comment_count>9</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-09-28 08:01:27 -0700</bug_when>
    <thetext>Question:

Do we need to add

#extension GL_OES_texture_npot : enable

to the fragmentShaderString in ContentLayerChromium if npot support is available? If we do, this can easily be added in the SharedValues constructor also ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286486</commentid>
    <comment_count>10</comment_count>
      <attachid>69041</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-09-28 13:14:35 -0700</bug_when>
    <thetext>Comment on attachment 69041
Patch

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

&gt; WebCore/platform/graphics/chromium/ContentLayerChromium.cpp:109
&gt; +

can you use String::contains() here instead of converting to a char* ?

&gt; WebCore/platform/graphics/chromium/ContentLayerChromium.cpp:269
&gt; +        GLC(context, context-&gt;texParameterf(GraphicsContext3D::TEXTURE_2D, GraphicsContext3D::TEXTURE_MIN_FILTER, 

The filter mode setting can move up to the part that allocates the texture (where you call context-&gt;texImage2D) so you don&apos;t execute it every time.  You also need to make sure that you reset the filter modes when the tests fail as the layer size can change.

Also, it should be calling texParameteri instead of texParameterf (I think we have the same problem elsewhere in the code)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286519</commentid>
    <comment_count>11</comment_count>
      <attachid>69101</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-09-28 14:07:42 -0700</bug_when>
    <thetext>Created attachment 69101
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286549</commentid>
    <comment_count>12</comment_count>
      <attachid>69101</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-09-28 14:52:18 -0700</bug_when>
    <thetext>Comment on attachment 69101
Patch

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

&gt; WebCore/platform/graphics/chromium/ContentLayerChromium.cpp:281
&gt; +            GLC(context, context-&gt;generateMipmap(GraphicsContext3D::TEXTURE_2D));

You&apos;ll need to also call generateMipmap in the &quot;else&quot; clause as well, if the conditions are met. I suggest doing something like:

bool doMipmap =  generateMipmap &amp;&amp; (layerRenderer()-&gt;contentLayerSharedValues()-&gt;npotSupported() || (isPowerOfTwo(updateRect.width()) &amp;&amp; isPowerOfTwo(updateRect.height())))

outside the if statement and the in the &quot;if&quot; part do:

if (doMipmap)
  set filter modes


and outside the if statement
if (doMipmap)
  generateMipmap</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286658</commentid>
    <comment_count>13</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-09-28 17:26:44 -0700</bug_when>
    <thetext>D&apos;oh, sorry about that ... yes, you&apos;re quite right. I&apos;ll file a fix in the morning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286813</commentid>
    <comment_count>14</comment_count>
      <attachid>69182</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-09-29 05:48:15 -0700</bug_when>
    <thetext>Created attachment 69182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286895</commentid>
    <comment_count>15</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-09-29 08:32:14 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Question:
&gt; 
&gt; Do we need to add
&gt; 
&gt; #extension GL_OES_texture_npot : enable
&gt; 
&gt; to the fragmentShaderString in ContentLayerChromium if npot support is available? If we do, this can easily be added in the SharedValues constructor also ...

No ... only extensions that modify the shader language need this ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286931</commentid>
    <comment_count>16</comment_count>
      <attachid>69182</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-09-29 09:54:11 -0700</bug_when>
    <thetext>Comment on attachment 69182
Patch

Code looks good.  Can you please also add a layout test that demonstrates that this works? What I&apos;m after is making sure that we don&apos;t get hardware which fails to create mipmaps or reports that it supports mipmapping but doesn&apos;t. The test could for example create an image layer with a colored checkerboard texture, apply a perspective 3D transform on it and read back the pixels to make sure they are not black. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287093</commentid>
    <comment_count>17</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-09-29 13:29:31 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 69182 [details])
&gt; Code looks good.  Can you please also add a layout test that demonstrates that this works? What I&apos;m after is making sure that we don&apos;t get hardware which fails to create mipmaps or reports that it supports mipmapping but doesn&apos;t. The test could for example create an image layer with a colored checkerboard texture, apply a perspective 3D transform on it and read back the pixels to make sure they are not black. Thanks.

Sure, not a problem.

I have a question: if hardware claims to support mip-mapping, and doesn&apos;t, are we guaranteed to get black pixels? Might it possibly fall-back to linear/nearest interpolation of the raw texture, in which case the pixels won&apos;t be black?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287099</commentid>
    <comment_count>18</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-09-29 13:43:49 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; (From update of attachment 69182 [details] [details])
&gt; &gt; Code looks good.  Can you please also add a layout test that demonstrates that this works? What I&apos;m after is making sure that we don&apos;t get hardware which fails to create mipmaps or reports that it supports mipmapping but doesn&apos;t. The test could for example create an image layer with a colored checkerboard texture, apply a perspective 3D transform on it and read back the pixels to make sure they are not black. Thanks.
&gt; 
&gt; Sure, not a problem.
&gt; 
&gt; I have a question: if hardware claims to support mip-mapping, and doesn&apos;t, are we guaranteed to get black pixels? Might it possibly fall-back to linear/nearest interpolation of the raw texture, in which case the pixels won&apos;t be black?

If the drivers are faulty, they could really be doing anything.  If it does end up falling back to nearest, it would be somewhat fortunate. It would be nice to have a layout test in place that we can run on a number of machines to make sure there are no unexpected failures.  Probably worthwhile having both at POT and an NPOT layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287897</commentid>
    <comment_count>19</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-09-30 15:49:05 -0700</bug_when>
    <thetext>On second though, I think the existing layout tests on image layers (e.g. direct-image-background-color.html) would provide an early warning if something&apos;s wrong with the mipmapping and the image doesn&apos;t show up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288344</commentid>
    <comment_count>20</comment_count>
      <attachid>69182</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-10-01 10:52:33 -0700</bug_when>
    <thetext>Comment on attachment 69182
Patch

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

R- for nits, but overall looks fine.  I mostly want to make sure the testing situation is accurately reflected in the ChangeLog.

&gt; WebCore/ChangeLog:8
&gt; +        No change in behaviour, use existing tests.

Comment is not really accurate, this does change behavior.  Could you list some tests that would cover this?

&gt; WebCore/platform/graphics/chromium/ContentLayerChromium.cpp:270
&gt; +    bool doMipmap = generateMipmap &amp;&amp; (layerRenderer()-&gt;contentLayerSharedValues()-&gt;npotSupported()

Not sure what it means to &quot;do&quot; mipmap. It looks like this boolean is actually recording whether to generate mipmaps, so why isn&apos;t it called generateMipmaps?  The parameter to this function could be called something like &quot;requestMipmaps&quot; to indicate that the implementation will not necessarily respect the caller&apos;s wishes.

&gt; WebCore/platform/graphics/chromium/ContentLayerChromium.h:83
&gt; +                           const IntRect&amp; updateRect, unsigned textureId, bool generateMipmap = false);

In general, it&apos;s better to have a two-state enum for APIs like this so it&apos;s clearer at a callsite what true or false mean.

&gt; WebCore/platform/graphics/chromium/ImageLayerChromium.cpp:154
&gt; +    const bool generateMipmap = true;

Why does this local exist?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288946</commentid>
    <comment_count>21</comment_count>
      <attachid>69637</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-10-04 08:26:55 -0700</bug_when>
    <thetext>Created attachment 69637
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288949</commentid>
    <comment_count>22</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-10-04 08:29:51 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 69182 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=69182&amp;action=review
&gt; 
&gt; R- for nits, but overall looks fine.  I mostly want to make sure the testing situation is accurately reflected in the ChangeLog.
&gt; 
&gt; &gt; WebCore/ChangeLog:8
&gt; &gt; +        No change in behaviour, use existing tests.
&gt; 
&gt; Comment is not really accurate, this does change behavior.  Could you list some tests that would cover this?

Done.
 
&gt; &gt; WebCore/platform/graphics/chromium/ContentLayerChromium.cpp:270
&gt; &gt; +    bool doMipmap = generateMipmap &amp;&amp; (layerRenderer()-&gt;contentLayerSharedValues()-&gt;npotSupported()
&gt; 
&gt; Not sure what it means to &quot;do&quot; mipmap. It looks like this boolean is actually recording whether to generate mipmaps, so why isn&apos;t it called generateMipmaps?  The parameter to this function could be called something like &quot;requestMipmaps&quot; to indicate that the implementation will not necessarily respect the caller&apos;s wishes.

Done.

&gt; &gt; WebCore/platform/graphics/chromium/ContentLayerChromium.h:83
&gt; &gt; +                           const IntRect&amp; updateRect, unsigned textureId, bool generateMipmap = false);
&gt; 
&gt; In general, it&apos;s better to have a two-state enum for APIs like this so it&apos;s clearer at a callsite what true or false mean.

Agreed, this does make the code clearer ... done.

&gt; &gt; WebCore/platform/graphics/chromium/ImageLayerChromium.cpp:154
&gt; &gt; +    const bool generateMipmap = true;
&gt; 
&gt; Why does this local exist?

I think I was doing it to (1) make it clear what the final parameter was doing, and that (2) the compiler would not generate an actual local, but collapse it into a literal constant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289831</commentid>
    <comment_count>23</comment_count>
      <attachid>69637</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-10-05 13:14:29 -0700</bug_when>
    <thetext>Comment on attachment 69637
Patch

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

Looks good

&gt; WebCore/platform/graphics/chromium/ContentLayerChromium.cpp:272
&gt; +    bool generateMipmap = (requestMipmap == useMipmap)
&gt; +                          &amp;&amp; (layerRenderer()-&gt;contentLayerSharedValues()-&gt;npotSupported()
&gt; +                          || (isPowerOfTwo(updateRect.width()) &amp;&amp; isPowerOfTwo(updateRect.height())));

nit: the indentation is a little odd here.  Maybe indent the || line a bit more so it&apos;s clearer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289836</commentid>
    <comment_count>24</comment_count>
      <attachid>69832</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2010-10-05 13:26:44 -0700</bug_when>
    <thetext>Created attachment 69832
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290069</commentid>
    <comment_count>25</comment_count>
      <attachid>69832</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-05 20:42:00 -0700</bug_when>
    <thetext>Comment on attachment 69832
Patch

Clearing flags on attachment: 69832

Committed r69172: &lt;http://trac.webkit.org/changeset/69172&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290070</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-05 20:42:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68724</attachid>
            <date>2010-09-24 12:07:34 -0700</date>
            <delta_ts>2010-09-27 07:16:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46493-20100924150933.patch</filename>
            <type>text/plain</type>
            <size>3999</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWE0MTdkMDgwNWVkMmJlNTNjMTE4NGI3NjU3MGU3M2FhZjViZWFiOS4uZGZjMDk4NTc5ODBiZjAx
MDM0MjM2MmY5ZTQyYmIxMTFjM2NkZDFiOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wOS0yNCAgVy4g
SmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgbWlwbWFwIHN1
cHBvcnQgZm9yIEltYWdlTGF5ZXJDaHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY0OTMKKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZp
b3VyLCB1c2UgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlVGV4dHVyZVJlY3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudHMpOgorCiAyMDEwLTA5
LTIzICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFNpbW9uIEZyYXNlcgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAppbmRleCA4NmJlOGRh
OWU3OWY0MGRlZTYxMWJkNTUzOWUwOTYyYzc1MmU1MGYxLi4yYjIyZDg5M2FkYWM3ZDUwNTlkODky
YmMwOTU5ZjRiZDBkNmIwNzhkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcApAQCAtMjMxLDcgKzIz
MSw4IEBAIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRzKCkKICAgICAg
ICAgdXBkYXRlVGV4dHVyZVJlY3QocGl4ZWxzLCBiaXRtYXBTaXplLCByZXF1aXJlZFRleHR1cmVT
aXplLCAgZGlydHlSZWN0LCB0ZXh0dXJlSWQpOwogfQogCi12b2lkIENvbnRlbnRMYXllckNocm9t
aXVtOjp1cGRhdGVUZXh0dXJlUmVjdCh2b2lkKiBwaXhlbHMsIGNvbnN0IEludFNpemUmIGJpdG1h
cFNpemUsIGNvbnN0IEludFNpemUmIHJlcXVpcmVkVGV4dHVyZVNpemUsIGNvbnN0IEludFJlY3Qm
IHVwZGF0ZVJlY3QsIHVuc2lnbmVkIHRleHR1cmVJZCkKK3ZvaWQgQ29udGVudExheWVyQ2hyb21p
dW06OnVwZGF0ZVRleHR1cmVSZWN0KHZvaWQqIHBpeGVscywgY29uc3QgSW50U2l6ZSYgYml0bWFw
U2l6ZSwKKyAgICBjb25zdCBJbnRTaXplJiByZXF1aXJlZFRleHR1cmVTaXplLCBjb25zdCBJbnRS
ZWN0JiB1cGRhdGVSZWN0LCB1bnNpZ25lZCB0ZXh0dXJlSWQsIGJvb2wgZ2VuZXJhdGVNaXBtYXAp
CiB7CiAgICAgaWYgKCFwaXhlbHMpCiAgICAgICAgIHJldHVybjsKQEAgLTI1Miw2ICsyNTMsOCBA
QCB2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVUZXh0dXJlUmVjdCh2b2lkKiBwaXhl
bHMsIGNvbnN0IEludFNpemUmIGJpdG1hcAogICAgICAgICBBU1NFUlQodXBkYXRlUmVjdC53aWR0
aCgpID09IGJpdG1hcFNpemUud2lkdGgoKSAmJiB1cGRhdGVSZWN0LmhlaWdodCgpID09IGJpdG1h
cFNpemUuaGVpZ2h0KCkpOwogICAgICAgICBHTEMoY29udGV4dCwgY29udGV4dC0+dGV4U3ViSW1h
Z2UyRChHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgMCwgdXBkYXRlUmVjdC54KCksIHVw
ZGF0ZVJlY3QueSgpLCB1cGRhdGVSZWN0LndpZHRoKCksIHVwZGF0ZVJlY3QuaGVpZ2h0KCksIEdy
YXBoaWNzQ29udGV4dDNEOjpSR0JBLCBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSwg
cGl4ZWxzKSk7CiAgICAgfQorICAgIGlmIChnZW5lcmF0ZU1pcG1hcCkKKyAgICAgICAgR0xDKGNv
bnRleHQsIGNvbnRleHQtPmdlbmVyYXRlTWlwbWFwKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJF
XzJEKSk7CiAKICAgICBtX2RpcnR5UmVjdC5zZXRTaXplKEZsb2F0U2l6ZSgpKTsKICAgICBtX2Nv
bnRlbnRzRGlydHkgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaAppbmRleCBhNzkxODlmMzJhMDk2
M2M1MDM4MGRmZjAxNWY2MDZlOWE3OWZjMTQ2Li40YTA0ZWNjN2Y0MWI0Y2JkMDFkN2FjNWNjOTcz
YjM5MWFmMjJmZGFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oCkBAIC03Nyw3ICs3Nyw3IEBAIHByb3Rl
Y3RlZDoKICAgICBDb250ZW50TGF5ZXJDaHJvbWl1bShHcmFwaGljc0xheWVyQ2hyb21pdW0qIG93
bmVyKTsKIAogICAgIHZvaWQgdXBkYXRlVGV4dHVyZVJlY3Qodm9pZCogcGl4ZWxzLCBjb25zdCBJ
bnRTaXplJiBiaXRtYXBTaXplLCBjb25zdCBJbnRTaXplJiByZXF1aXJlZFRleHR1cmVTaXplLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgdW5z
aWduZWQgdGV4dHVyZUlkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEludFJl
Y3QmIHVwZGF0ZVJlY3QsIHVuc2lnbmVkIHRleHR1cmVJZCwgYm9vbCBnZW5lcmF0ZU1pcG1hcCA9
IGZhbHNlKTsKIAogICAgIHVuc2lnbmVkIG1fY29udGVudHNUZXh0dXJlOwogICAgIEludFNpemUg
bV9hbGxvY2F0ZWRUZXh0dXJlU2l6ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNwcAppbmRleCBjOTdiZTgyZjIx
MzJlNWRkMmNkZDNhZmQyMWM1YzQ3NDMwMGZlMDcxLi44Nzk3NDc4MGE4N2ZkYTAzYTA4NjczMDdi
NmFlODk5ZmZhN2Y3M2NjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCkBAIC0xNTEsOCArMTUxLDkgQEAg
dm9pZCBJbWFnZUxheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRzKCkKICAgICBJbnRSZWN0IGRp
cnR5UmVjdChtX2RpcnR5UmVjdCk7CiAgICAgZGlydHlSZWN0LmludGVyc2VjdChJbnRSZWN0KElu
dFBvaW50KDAsIDApLCBiaXRtYXBTaXplKSk7CiAKKyAgICBjb25zdCBib29sIGdlbmVyYXRlTWlw
bWFwID0gdHJ1ZTsKICAgICBpZiAocGl4ZWxzKQotICAgICAgICB1cGRhdGVUZXh0dXJlUmVjdChw
aXhlbHMsIGJpdG1hcFNpemUsIHJlcXVpcmVkVGV4dHVyZVNpemUsICBkaXJ0eVJlY3QsIHRleHR1
cmVJZCk7CisgICAgICAgIHVwZGF0ZVRleHR1cmVSZWN0KHBpeGVscywgYml0bWFwU2l6ZSwgcmVx
dWlyZWRUZXh0dXJlU2l6ZSwgIGRpcnR5UmVjdCwgdGV4dHVyZUlkLCBnZW5lcmF0ZU1pcG1hcCk7
CiB9CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68906</attachid>
            <date>2010-09-27 07:16:35 -0700</date>
            <delta_ts>2010-09-28 06:51:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46493-20100927101848.patch</filename>
            <type>text/plain</type>
            <size>4958</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWE0MTdkMDgwNWVkMmJlNTNjMTE4NGI3NjU3MGU3M2FhZjViZWFiOS4uZGZjMDk4NTc5ODBiZjAx
MDM0MjM2MmY5ZTQyYmIxMTFjM2NkZDFiOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wOS0yNCAgVy4g
SmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgbWlwbWFwIHN1
cHBvcnQgZm9yIEltYWdlTGF5ZXJDaHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY0OTMKKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZp
b3VyLCB1c2UgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlVGV4dHVyZVJlY3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudHMpOgorCiAyMDEwLTA5
LTIzICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFNpbW9uIEZyYXNlcgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAppbmRleCA4NmJlOGRh
OWU3OWY0MGRlZTYxMWJkNTUzOWUwOTYyYzc1MmU1MGYxLi41Mjc3ZTMwNDg4YTIzMTdkOGMwM2Vh
ODRkZTAxMGVkZGQ0ZGVkZjNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcApAQCAtMjMxLDEyICsy
MzEsMjAgQEAgdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudHMoKQogICAg
ICAgICB1cGRhdGVUZXh0dXJlUmVjdChwaXhlbHMsIGJpdG1hcFNpemUsIHJlcXVpcmVkVGV4dHVy
ZVNpemUsICBkaXJ0eVJlY3QsIHRleHR1cmVJZCk7CiB9CiAKLXZvaWQgQ29udGVudExheWVyQ2hy
b21pdW06OnVwZGF0ZVRleHR1cmVSZWN0KHZvaWQqIHBpeGVscywgY29uc3QgSW50U2l6ZSYgYml0
bWFwU2l6ZSwgY29uc3QgSW50U2l6ZSYgcmVxdWlyZWRUZXh0dXJlU2l6ZSwgY29uc3QgSW50UmVj
dCYgdXBkYXRlUmVjdCwgdW5zaWduZWQgdGV4dHVyZUlkKQorc3RhdGljIGlubGluZSBib29sIGlz
UG93ZXJPZlR3byhpbnQgeCkKK3sKKyAgICByZXR1cm4gISh4ICYgKHgtMSkpOworfQorCit2b2lk
IENvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVUZXh0dXJlUmVjdCh2b2lkKiBwaXhlbHMsIGNv
bnN0IEludFNpemUmIGJpdG1hcFNpemUsCisgICAgY29uc3QgSW50U2l6ZSYgcmVxdWlyZWRUZXh0
dXJlU2l6ZSwgY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgdW5zaWduZWQgdGV4dHVyZUlkLCBi
b29sIGdlbmVyYXRlTWlwbWFwKQogewogICAgIGlmICghcGl4ZWxzKQogICAgICAgICByZXR1cm47
CiAKICAgICBHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCA9IGxheWVyUmVuZGVyZXJDb250ZXh0
KCk7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgbnBvdEV4dGVuc2lvbiA9IEdMQyhjb250ZXh0LCBz
dHJzdHIoY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpFWFRFTlNJT05TKS51
dGY4KCkuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR0xfT0VTX3RleHR1cmVfbnBvdCIp
KTsKICAgICBjb250ZXh0LT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8y
RCwgdGV4dHVyZUlkKTsKIAogICAgIC8vIElmIHRoZSB0ZXh0dXJlIGlkIG9yIHNpemUgY2hhbmdl
ZCBzaW5jZSBsYXN0IHRpbWUgdGhlbiB3ZSBuZWVkIHRvIHRlbGwgR0wKQEAgLTI1Miw2ICsyNjAs
MTQgQEAgdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlVGV4dHVyZVJlY3Qodm9pZCog
cGl4ZWxzLCBjb25zdCBJbnRTaXplJiBiaXRtYXAKICAgICAgICAgQVNTRVJUKHVwZGF0ZVJlY3Qu
d2lkdGgoKSA9PSBiaXRtYXBTaXplLndpZHRoKCkgJiYgdXBkYXRlUmVjdC5oZWlnaHQoKSA9PSBi
aXRtYXBTaXplLmhlaWdodCgpKTsKICAgICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnRleFN1
YkltYWdlMkQoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIHVwZGF0ZVJlY3QueCgp
LCB1cGRhdGVSZWN0LnkoKSwgdXBkYXRlUmVjdC53aWR0aCgpLCB1cGRhdGVSZWN0LmhlaWdodCgp
LCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZ
VEUsIHBpeGVscykpOwogICAgIH0KKyAgICBpZiAoZ2VuZXJhdGVNaXBtYXAgJiYgKG5wb3RFeHRl
bnNpb24KKyAgICAgICAgfHwgKGlzUG93ZXJPZlR3byh1cGRhdGVSZWN0LndpZHRoKCkpICYmIGlz
UG93ZXJPZlR3byh1cGRhdGVSZWN0LmhlaWdodCgpKSkpKSB7CisgICAgICAgIEdMQyhjb250ZXh0
LCBjb250ZXh0LT5nZW5lcmF0ZU1pcG1hcChHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCkp
OworICAgICAgICBHTEMoY29udGV4dCwgY29udGV4dC0+dGV4UGFyYW1ldGVyZihHcmFwaGljc0Nv
bnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRF
UiwgCisgICAgICAgICAgICBHcmFwaGljc0NvbnRleHQzRDo6TElORUFSX01JUE1BUF9MSU5FQVIp
KTsKKyAgICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnRleFBhcmFtZXRlcmYoR3JhcGhpY3ND
b250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01BR19GSUxU
RVIsIAorICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUikpOworICAgIH0KIAog
ICAgIG1fZGlydHlSZWN0LnNldFNpemUoRmxvYXRTaXplKCkpOwogICAgIG1fY29udGVudHNEaXJ0
eSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oCmluZGV4IGE3OTE4OWYzMmEwOTYzYzUwMzgwZGZm
MDE1ZjYwNmU5YTc5ZmMxNDYuLjRhMDRlY2M3ZjQxYjRjYmQwMWQ3YWM1Y2M5NzNiMzkxYWYyMmZk
YWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVu
dExheWVyQ2hyb21pdW0uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0NvbnRlbnRMYXllckNocm9taXVtLmgKQEAgLTc3LDcgKzc3LDcgQEAgcHJvdGVjdGVkOgogICAg
IENvbnRlbnRMYXllckNocm9taXVtKEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSogb3duZXIpOwogCiAg
ICAgdm9pZCB1cGRhdGVUZXh0dXJlUmVjdCh2b2lkKiBwaXhlbHMsIGNvbnN0IEludFNpemUmIGJp
dG1hcFNpemUsIGNvbnN0IEludFNpemUmIHJlcXVpcmVkVGV4dHVyZVNpemUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCB1bnNpZ25lZCB0ZXh0
dXJlSWQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgdXBkYXRl
UmVjdCwgdW5zaWduZWQgdGV4dHVyZUlkLCBib29sIGdlbmVyYXRlTWlwbWFwID0gZmFsc2UpOwog
CiAgICAgdW5zaWduZWQgbV9jb250ZW50c1RleHR1cmU7CiAgICAgSW50U2l6ZSBtX2FsbG9jYXRl
ZFRleHR1cmVTaXplOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCmluZGV4IGM5N2JlODJmMjEzMmU1ZGQyY2Rk
M2FmZDIxYzVjNDc0MzAwZmUwNzEuLjg3OTc0NzgwYTg3ZmRhMDNhMDg2NzMwN2I2YWU4OTlmZmE3
ZjczY2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1h
Z2VMYXllckNocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTE1MSw4ICsxNTEsOSBAQCB2b2lkIEltYWdl
TGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudHMoKQogICAgIEludFJlY3QgZGlydHlSZWN0KG1f
ZGlydHlSZWN0KTsKICAgICBkaXJ0eVJlY3QuaW50ZXJzZWN0KEludFJlY3QoSW50UG9pbnQoMCwg
MCksIGJpdG1hcFNpemUpKTsKIAorICAgIGNvbnN0IGJvb2wgZ2VuZXJhdGVNaXBtYXAgPSB0cnVl
OwogICAgIGlmIChwaXhlbHMpCi0gICAgICAgIHVwZGF0ZVRleHR1cmVSZWN0KHBpeGVscywgYml0
bWFwU2l6ZSwgcmVxdWlyZWRUZXh0dXJlU2l6ZSwgIGRpcnR5UmVjdCwgdGV4dHVyZUlkKTsKKyAg
ICAgICAgdXBkYXRlVGV4dHVyZVJlY3QocGl4ZWxzLCBiaXRtYXBTaXplLCByZXF1aXJlZFRleHR1
cmVTaXplLCAgZGlydHlSZWN0LCB0ZXh0dXJlSWQsIGdlbmVyYXRlTWlwbWFwKTsKIH0KIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69041</attachid>
            <date>2010-09-28 06:51:09 -0700</date>
            <delta_ts>2010-09-28 14:07:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46493-20100928095328.patch</filename>
            <type>text/plain</type>
            <size>5792</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWE0MTdkMDgwNWVkMmJlNTNjMTE4NGI3NjU3MGU3M2FhZjViZWFiOS4uZGZjMDk4NTc5ODBiZjAx
MDM0MjM2MmY5ZTQyYmIxMTFjM2NkZDFiOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wOS0yNCAgVy4g
SmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgbWlwbWFwIHN1
cHBvcnQgZm9yIEltYWdlTGF5ZXJDaHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY0OTMKKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZp
b3VyLCB1c2UgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlVGV4dHVyZVJlY3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudHMpOgorCiAyMDEwLTA5
LTIzICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFNpbW9uIEZyYXNlcgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAppbmRleCA4NmJlOGRh
OWU3OWY0MGRlZTYxMWJkNTUzOWUwOTYyYzc1MmU1MGYxLi4wNGFmMGM1ZmZlNTQyNDlmMjViOTI4
OTBiOWI5ZWFjNDE2NmQ5OTFkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcApAQCAtNTcsNiArNTcs
NyBAQCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6U2hhcmVkVmFsdWVzOjpTaGFyZWRWYWx1ZXMoR3Jh
cGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiAgICAgLCBtX3NoYWRlck1hdHJpeExvY2F0aW9uKC0x
KQogICAgICwgbV9zaGFkZXJBbHBoYUxvY2F0aW9uKC0xKQogICAgICwgbV9pbml0aWFsaXplZChm
YWxzZSkKKyAgICAsIG1fbnBvdFN1cHBvcnRlZChmYWxzZSkKIHsKICAgICAvLyBTaGFkZXJzIGZv
ciBkcmF3aW5nIHRoZSBsYXllciBjb250ZW50cy4KICAgICBjaGFyIHZlcnRleFNoYWRlclN0cmlu
Z1tdID0KQEAgLTEwMyw2ICsxMDQsOSBAQCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6U2hhcmVkVmFs
dWVzOjpTaGFyZWRWYWx1ZXMoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiAgICAgQVNTRVJU
KG1fc2hhZGVyTWF0cml4TG9jYXRpb24gIT0gLTEpOwogICAgIEFTU0VSVChtX3NoYWRlckFscGhh
TG9jYXRpb24gIT0gLTEpOwogCisgICAgbV9ucG90U3VwcG9ydGVkID0gR0xDKGNvbnRleHQsIHN0
cnN0cihjb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OkVYVEVOU0lPTlMpLnV0
ZjgoKS5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
R0xfT0VTX3RleHR1cmVfbnBvdCIpKTsKKwogICAgIG1faW5pdGlhbGl6ZWQgPSB0cnVlOwogfQog
CkBAIC0yMzEsNyArMjM1LDE0IEBAIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OnVwZGF0ZUNv
bnRlbnRzKCkKICAgICAgICAgdXBkYXRlVGV4dHVyZVJlY3QocGl4ZWxzLCBiaXRtYXBTaXplLCBy
ZXF1aXJlZFRleHR1cmVTaXplLCAgZGlydHlSZWN0LCB0ZXh0dXJlSWQpOwogfQogCi12b2lkIENv
bnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVUZXh0dXJlUmVjdCh2b2lkKiBwaXhlbHMsIGNvbnN0
IEludFNpemUmIGJpdG1hcFNpemUsIGNvbnN0IEludFNpemUmIHJlcXVpcmVkVGV4dHVyZVNpemUs
IGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIHVuc2lnbmVkIHRleHR1cmVJZCkKK3N0YXRpYyBp
bmxpbmUgYm9vbCBpc1Bvd2VyT2ZUd28oaW50IHgpCit7CisgICAgQVNTRVJUKHggPj0gMCk7Cisg
ICAgcmV0dXJuICEoeCAmICh4LTEpKTsKK30KKwordm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6
dXBkYXRlVGV4dHVyZVJlY3Qodm9pZCogcGl4ZWxzLCBjb25zdCBJbnRTaXplJiBiaXRtYXBTaXpl
LAorICAgIGNvbnN0IEludFNpemUmIHJlcXVpcmVkVGV4dHVyZVNpemUsIGNvbnN0IEludFJlY3Qm
IHVwZGF0ZVJlY3QsIHVuc2lnbmVkIHRleHR1cmVJZCwgYm9vbCBnZW5lcmF0ZU1pcG1hcCkKIHsK
ICAgICBpZiAoIXBpeGVscykKICAgICAgICAgcmV0dXJuOwpAQCAtMjUyLDYgKzI2MywxNCBAQCB2
b2lkIENvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVUZXh0dXJlUmVjdCh2b2lkKiBwaXhlbHMs
IGNvbnN0IEludFNpemUmIGJpdG1hcAogICAgICAgICBBU1NFUlQodXBkYXRlUmVjdC53aWR0aCgp
ID09IGJpdG1hcFNpemUud2lkdGgoKSAmJiB1cGRhdGVSZWN0LmhlaWdodCgpID09IGJpdG1hcFNp
emUuaGVpZ2h0KCkpOwogICAgICAgICBHTEMoY29udGV4dCwgY29udGV4dC0+dGV4U3ViSW1hZ2Uy
RChHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgMCwgdXBkYXRlUmVjdC54KCksIHVwZGF0
ZVJlY3QueSgpLCB1cGRhdGVSZWN0LndpZHRoKCksIHVwZGF0ZVJlY3QuaGVpZ2h0KCksIEdyYXBo
aWNzQ29udGV4dDNEOjpSR0JBLCBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSwgcGl4
ZWxzKSk7CiAgICAgfQorICAgIGlmIChnZW5lcmF0ZU1pcG1hcCAmJiAobGF5ZXJSZW5kZXJlcigp
LT5jb250ZW50TGF5ZXJTaGFyZWRWYWx1ZXMoKS0+bnBvdFN1cHBvcnRlZCgpCisgICAgICAgIHx8
IChpc1Bvd2VyT2ZUd28odXBkYXRlUmVjdC53aWR0aCgpKSAmJiBpc1Bvd2VyT2ZUd28odXBkYXRl
UmVjdC5oZWlnaHQoKSkpKSkgeworICAgICAgICBHTEMoY29udGV4dCwgY29udGV4dC0+Z2VuZXJh
dGVNaXBtYXAoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQpKTsKKyAgICAgICAgR0xDKGNv
bnRleHQsIGNvbnRleHQtPnRleFBhcmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVf
MkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01JTl9GSUxURVIsIAorICAgICAgICAgICAg
R3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUl9NSVBNQVBfTElORUFSKSk7CisgICAgICAgIEdMQyhj
b250ZXh0LCBjb250ZXh0LT50ZXhQYXJhbWV0ZXJmKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJF
XzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9NQUdfRklMVEVSLCAKKyAgICAgICAgICAg
IEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpKTsKKyAgICB9CiAKICAgICBtX2RpcnR5UmVjdC5z
ZXRTaXplKEZsb2F0U2l6ZSgpKTsKICAgICBtX2NvbnRlbnRzRGlydHkgPSBmYWxzZTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hy
b21pdW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVy
Q2hyb21pdW0uaAppbmRleCBhNzkxODlmMzJhMDk2M2M1MDM4MGRmZjAxNWY2MDZlOWE3OWZjMTQ2
Li5jYjQxYjIzNzZiYTRhNGIxYTY5Mzg4NzY3MDQwMTIxYWNjMzdjOTU0IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJv
bWl1bS5oCkBAIC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICAgICAgaW50IHNoYWRlck1hdHJp
eExvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zaGFkZXJNYXRyaXhMb2NhdGlvbjsgfQogICAg
ICAgICBpbnQgc2hhZGVyQWxwaGFMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2hhZGVyQWxw
aGFMb2NhdGlvbjsgfQogICAgICAgICBpbnQgaW5pdGlhbGl6ZWQoKSBjb25zdCB7IHJldHVybiBt
X2luaXRpYWxpemVkOyB9CisgICAgICAgIGJvb2wgbnBvdFN1cHBvcnRlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fbnBvdFN1cHBvcnRlZDsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgR3JhcGhpY3ND
b250ZXh0M0QqIG1fY29udGV4dDsKQEAgLTcxLDEzICs3MiwxNCBAQCBwdWJsaWM6CiAgICAgICAg
IGludCBtX3NoYWRlck1hdHJpeExvY2F0aW9uOwogICAgICAgICBpbnQgbV9zaGFkZXJBbHBoYUxv
Y2F0aW9uOwogICAgICAgICBpbnQgbV9pbml0aWFsaXplZDsKKyAgICAgICAgYm9vbCBtX25wb3RT
dXBwb3J0ZWQ7CiAgICAgfTsKIAogcHJvdGVjdGVkOgogICAgIENvbnRlbnRMYXllckNocm9taXVt
KEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSogb3duZXIpOwogCiAgICAgdm9pZCB1cGRhdGVUZXh0dXJl
UmVjdCh2b2lkKiBwaXhlbHMsIGNvbnN0IEludFNpemUmIGJpdG1hcFNpemUsIGNvbnN0IEludFNp
emUmIHJlcXVpcmVkVGV4dHVyZVNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBJbnRSZWN0JiB1cGRhdGVSZWN0LCB1bnNpZ25lZCB0ZXh0dXJlSWQpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgdW5zaWduZWQgdGV4dHVy
ZUlkLCBib29sIGdlbmVyYXRlTWlwbWFwID0gZmFsc2UpOwogCiAgICAgdW5zaWduZWQgbV9jb250
ZW50c1RleHR1cmU7CiAgICAgSW50U2l6ZSBtX2FsbG9jYXRlZFRleHR1cmVTaXplOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21p
dW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hy
b21pdW0uY3BwCmluZGV4IGM5N2JlODJmMjEzMmU1ZGQyY2RkM2FmZDIxYzVjNDc0MzAwZmUwNzEu
Ljg3OTc0NzgwYTg3ZmRhMDNhMDg2NzMwN2I2YWU4OTlmZmE3ZjczY2MgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1
bS5jcHAKQEAgLTE1MSw4ICsxNTEsOSBAQCB2b2lkIEltYWdlTGF5ZXJDaHJvbWl1bTo6dXBkYXRl
Q29udGVudHMoKQogICAgIEludFJlY3QgZGlydHlSZWN0KG1fZGlydHlSZWN0KTsKICAgICBkaXJ0
eVJlY3QuaW50ZXJzZWN0KEludFJlY3QoSW50UG9pbnQoMCwgMCksIGJpdG1hcFNpemUpKTsKIAor
ICAgIGNvbnN0IGJvb2wgZ2VuZXJhdGVNaXBtYXAgPSB0cnVlOwogICAgIGlmIChwaXhlbHMpCi0g
ICAgICAgIHVwZGF0ZVRleHR1cmVSZWN0KHBpeGVscywgYml0bWFwU2l6ZSwgcmVxdWlyZWRUZXh0
dXJlU2l6ZSwgIGRpcnR5UmVjdCwgdGV4dHVyZUlkKTsKKyAgICAgICAgdXBkYXRlVGV4dHVyZVJl
Y3QocGl4ZWxzLCBiaXRtYXBTaXplLCByZXF1aXJlZFRleHR1cmVTaXplLCAgZGlydHlSZWN0LCB0
ZXh0dXJlSWQsIGdlbmVyYXRlTWlwbWFwKTsKIH0KIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69101</attachid>
            <date>2010-09-28 14:07:42 -0700</date>
            <delta_ts>2010-09-29 05:48:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46493-20100928171003.patch</filename>
            <type>text/plain</type>
            <size>6344</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTg1YTAxODFjMTAzODNhYzkxMzg1YjhkMWM3YWNiYmNkOWI1ZjI1NC4uZTViMjI2NzY4MjI3Y2Ez
N2Y5NmRmNTMxYjAyYjc0M2Q3MzdjN2JjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wOS0yOCAgVy4g
SmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgbWlwbWFwIHN1
cHBvcnQgZm9yIEltYWdlTGF5ZXJDaHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY0OTMKKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZp
b3VyLCB1c2UgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50TGF5ZXJDaHJvbWl1bTo6U2hhcmVkVmFsdWVzOjpTaGFyZWRWYWx1ZXMpOgorICAgICAgICAo
V2ViQ29yZTo6aXNQb3dlck9mVHdvKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRMYXllckNo
cm9taXVtOjp1cGRhdGVUZXh0dXJlUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRMYXllckNocm9taXVtOjpTaGFyZWRWYWx1ZXM6Om5wb3RTdXBwb3J0ZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUxheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRzKToKKwogMjAx
MC0wOS0yOCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJv
bWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXll
ckNocm9taXVtLmNwcAppbmRleCA4ZGRhNGQ2YzVlZWY4NzMyYWZkN2U3ZTRlMjFiNzJiODFkMTk2
YzI0Li44NDJiNWM4MTk2NGVhMDM1NTNhNzVjNWE2NDAxMGU5YjRhMmI3MWRhIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVt
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXll
ckNocm9taXVtLmNwcApAQCAtNTcsNiArNTcsNyBAQCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6U2hh
cmVkVmFsdWVzOjpTaGFyZWRWYWx1ZXMoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiAgICAg
LCBtX3NoYWRlck1hdHJpeExvY2F0aW9uKC0xKQogICAgICwgbV9zaGFkZXJBbHBoYUxvY2F0aW9u
KC0xKQogICAgICwgbV9pbml0aWFsaXplZChmYWxzZSkKKyAgICAsIG1fbnBvdFN1cHBvcnRlZChm
YWxzZSkKIHsKICAgICAvLyBTaGFkZXJzIGZvciBkcmF3aW5nIHRoZSBsYXllciBjb250ZW50cy4K
ICAgICBjaGFyIHZlcnRleFNoYWRlclN0cmluZ1tdID0KQEAgLTEwMyw2ICsxMDQsOCBAQCBDb250
ZW50TGF5ZXJDaHJvbWl1bTo6U2hhcmVkVmFsdWVzOjpTaGFyZWRWYWx1ZXMoR3JhcGhpY3NDb250
ZXh0M0QqIGNvbnRleHQpCiAgICAgQVNTRVJUKG1fc2hhZGVyTWF0cml4TG9jYXRpb24gIT0gLTEp
OwogICAgIEFTU0VSVChtX3NoYWRlckFscGhhTG9jYXRpb24gIT0gLTEpOwogCisgICAgbV9ucG90
U3VwcG9ydGVkID0gR0xDKGNvbnRleHQsIGNvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRl
eHQzRDo6RVhURU5TSU9OUykuY29udGFpbnMoIkdMX09FU190ZXh0dXJlX25wb3QiKSk7CisKICAg
ICBtX2luaXRpYWxpemVkID0gdHJ1ZTsKIH0KIApAQCAtMjQ5LDcgKzI1MiwxNCBAQCB2b2lkIENv
bnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50cygpCiAgICAgICAgIHVwZGF0ZVRleHR1
cmVSZWN0KHBpeGVscywgYml0bWFwU2l6ZSwgcmVxdWlyZWRUZXh0dXJlU2l6ZSwgIGRpcnR5UmVj
dCwgdGV4dHVyZUlkKTsKIH0KIAotdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlVGV4
dHVyZVJlY3Qodm9pZCogcGl4ZWxzLCBjb25zdCBJbnRTaXplJiBiaXRtYXBTaXplLCBjb25zdCBJ
bnRTaXplJiByZXF1aXJlZFRleHR1cmVTaXplLCBjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCB1
bnNpZ25lZCB0ZXh0dXJlSWQpCitzdGF0aWMgaW5saW5lIGJvb2wgaXNQb3dlck9mVHdvKGludCB4
KQoreworICAgIEFTU0VSVCh4ID49IDApOworICAgIHJldHVybiAhKHggJiAoeC0xKSk7Cit9CisK
K3ZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OnVwZGF0ZVRleHR1cmVSZWN0KHZvaWQqIHBpeGVs
cywgY29uc3QgSW50U2l6ZSYgYml0bWFwU2l6ZSwKKyAgICBjb25zdCBJbnRTaXplJiByZXF1aXJl
ZFRleHR1cmVTaXplLCBjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCB1bnNpZ25lZCB0ZXh0dXJl
SWQsIGJvb2wgZ2VuZXJhdGVNaXBtYXApCiB7CiAgICAgaWYgKCFwaXhlbHMpCiAgICAgICAgIHJl
dHVybjsKQEAgLTI2Miw2ICsyNzIsMTkgQEAgdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBk
YXRlVGV4dHVyZVJlY3Qodm9pZCogcGl4ZWxzLCBjb25zdCBJbnRTaXplJiBiaXRtYXAKICAgICBp
ZiAobV9jb250ZW50c1RleHR1cmUgIT0gdGV4dHVyZUlkIHx8IHJlcXVpcmVkVGV4dHVyZVNpemUg
IT0gbV9hbGxvY2F0ZWRUZXh0dXJlU2l6ZSkgewogICAgICAgICBBU1NFUlQoYml0bWFwU2l6ZSA9
PSByZXF1aXJlZFRleHR1cmVTaXplKTsKICAgICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnRl
eEltYWdlMkQoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBLCByZXF1aXJlZFRleHR1cmVTaXplLndpZHRoKCksIHJlcXVpcmVkVGV4dHVyZVNp
emUuaGVpZ2h0KCksIDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBHcmFwaGljc0NvbnRleHQz
RDo6VU5TSUdORURfQllURSwgcGl4ZWxzKSk7CisgICAgICAgIGlmIChnZW5lcmF0ZU1pcG1hcCAm
JiAobGF5ZXJSZW5kZXJlcigpLT5jb250ZW50TGF5ZXJTaGFyZWRWYWx1ZXMoKS0+bnBvdFN1cHBv
cnRlZCgpCisgICAgICAgICAgICB8fCAoaXNQb3dlck9mVHdvKHVwZGF0ZVJlY3Qud2lkdGgoKSkg
JiYgaXNQb3dlck9mVHdvKHVwZGF0ZVJlY3QuaGVpZ2h0KCkpKSkpIHsKKyAgICAgICAgICAgIEdM
Qyhjb250ZXh0LCBjb250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhU
VVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9NSU5fRklMVEVSLAorICAgICAgICAg
ICAgICAgIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVJfTUlQTUFQX0xJTkVBUikpOworICAgICAg
ICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0
M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01BR19GSUxURVIsCisg
ICAgICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUikpOworICAgICAgICAgICAg
R0xDKGNvbnRleHQsIGNvbnRleHQtPmdlbmVyYXRlTWlwbWFwKEdyYXBoaWNzQ29udGV4dDNEOjpU
RVhUVVJFXzJEKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBHTEMoY29udGV4dCwg
Y29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUlOX0ZJTFRFUiwKKyAgICAgICAgICAgICAgICAgR3Jh
cGhpY3NDb250ZXh0M0Q6OkxJTkVBUikpOworICAgICAgICAgICAgR0xDKGNvbnRleHQsIGNvbnRl
eHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNz
Q29udGV4dDNEOjpURVhUVVJFX01BR19GSUxURVIsCisgICAgICAgICAgICAgICAgR3JhcGhpY3ND
b250ZXh0M0Q6OkxJTkVBUikpOworICAgICAgICB9CiAKICAgICAgICAgbV9jb250ZW50c1RleHR1
cmUgPSB0ZXh0dXJlSWQ7CiAgICAgICAgIG1fYWxsb2NhdGVkVGV4dHVyZVNpemUgPSByZXF1aXJl
ZFRleHR1cmVTaXplOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oCmluZGV4IDQxMmJhMDZjNjRiZjU4ZTI0YTY0
YTA0MjIwMmE1ZWQzNGVkOTQyZjYuLmUzMzlmMDczNjlmMzgyNmRhY2M5NzY0ZmZkZjdiM2EyOTVj
ZDE1MWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29u
dGVudExheWVyQ2hyb21pdW0uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAg
ICAgICBpbnQgc2hhZGVyTWF0cml4TG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3NoYWRlck1h
dHJpeExvY2F0aW9uOyB9CiAgICAgICAgIGludCBzaGFkZXJBbHBoYUxvY2F0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9zaGFkZXJBbHBoYUxvY2F0aW9uOyB9CiAgICAgICAgIGludCBpbml0aWFsaXpl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbGl6ZWQ7IH0KKyAgICAgICAgYm9vbCBucG90U3Vw
cG9ydGVkKCkgY29uc3QgeyByZXR1cm4gbV9ucG90U3VwcG9ydGVkOyB9CiAKICAgICBwcml2YXRl
OgogICAgICAgICBHcmFwaGljc0NvbnRleHQzRCogbV9jb250ZXh0OwpAQCAtNzIsMTMgKzczLDE0
IEBAIHB1YmxpYzoKICAgICAgICAgaW50IG1fc2hhZGVyTWF0cml4TG9jYXRpb247CiAgICAgICAg
IGludCBtX3NoYWRlckFscGhhTG9jYXRpb247CiAgICAgICAgIGludCBtX2luaXRpYWxpemVkOwor
ICAgICAgICBib29sIG1fbnBvdFN1cHBvcnRlZDsKICAgICB9OwogCiBwcm90ZWN0ZWQ6CiAgICAg
Q29udGVudExheWVyQ2hyb21pdW0oR3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lcik7CiAKICAg
ICB2b2lkIHVwZGF0ZVRleHR1cmVSZWN0KHZvaWQqIHBpeGVscywgY29uc3QgSW50U2l6ZSYgYml0
bWFwU2l6ZSwgY29uc3QgSW50U2l6ZSYgcmVxdWlyZWRUZXh0dXJlU2l6ZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIHVuc2lnbmVkIHRleHR1
cmVJZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiB1cGRhdGVS
ZWN0LCB1bnNpZ25lZCB0ZXh0dXJlSWQsIGJvb2wgZ2VuZXJhdGVNaXBtYXAgPSBmYWxzZSk7CiAK
ICAgICB2b2lkIGNsZWFudXBSZXNvdXJjZXMoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCmluZGV4IGM5
N2JlODJmMjEzMmU1ZGQyY2RkM2FmZDIxYzVjNDc0MzAwZmUwNzEuLjg3OTc0NzgwYTg3ZmRhMDNh
MDg2NzMwN2I2YWU4OTlmZmE3ZjczY2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTE1MSw4ICsx
NTEsOSBAQCB2b2lkIEltYWdlTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudHMoKQogICAgIElu
dFJlY3QgZGlydHlSZWN0KG1fZGlydHlSZWN0KTsKICAgICBkaXJ0eVJlY3QuaW50ZXJzZWN0KElu
dFJlY3QoSW50UG9pbnQoMCwgMCksIGJpdG1hcFNpemUpKTsKIAorICAgIGNvbnN0IGJvb2wgZ2Vu
ZXJhdGVNaXBtYXAgPSB0cnVlOwogICAgIGlmIChwaXhlbHMpCi0gICAgICAgIHVwZGF0ZVRleHR1
cmVSZWN0KHBpeGVscywgYml0bWFwU2l6ZSwgcmVxdWlyZWRUZXh0dXJlU2l6ZSwgIGRpcnR5UmVj
dCwgdGV4dHVyZUlkKTsKKyAgICAgICAgdXBkYXRlVGV4dHVyZVJlY3QocGl4ZWxzLCBiaXRtYXBT
aXplLCByZXF1aXJlZFRleHR1cmVTaXplLCAgZGlydHlSZWN0LCB0ZXh0dXJlSWQsIGdlbmVyYXRl
TWlwbWFwKTsKIH0KIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69182</attachid>
            <date>2010-09-29 05:48:15 -0700</date>
            <delta_ts>2010-10-04 08:26:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46493-20100929085040.patch</filename>
            <type>text/plain</type>
            <size>7051</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTg1YTAxODFjMTAzODNhYzkxMzg1YjhkMWM3YWNiYmNkOWI1ZjI1NC4uZTViMjI2NzY4MjI3Y2Ez
N2Y5NmRmNTMxYjAyYjc0M2Q3MzdjN2JjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wOS0yOCAgVy4g
SmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgbWlwbWFwIHN1
cHBvcnQgZm9yIEltYWdlTGF5ZXJDaHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY0OTMKKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZp
b3VyLCB1c2UgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50TGF5ZXJDaHJvbWl1bTo6U2hhcmVkVmFsdWVzOjpTaGFyZWRWYWx1ZXMpOgorICAgICAgICAo
V2ViQ29yZTo6aXNQb3dlck9mVHdvKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRMYXllckNo
cm9taXVtOjp1cGRhdGVUZXh0dXJlUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRMYXllckNocm9taXVtOjpTaGFyZWRWYWx1ZXM6Om5wb3RTdXBwb3J0ZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUxheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRzKToKKwogMjAx
MC0wOS0yOCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluLnBvdWxhaW5Abm9raWEuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJv
bWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXll
ckNocm9taXVtLmNwcAppbmRleCA4ZGRhNGQ2YzVlZWY4NzMyYWZkN2U3ZTRlMjFiNzJiODFkMTk2
YzI0Li5lMWQ0MWRjNjRiNzgzOTNlMTJhZGE2M2NiZmMzZTUyNTgyNjJkYzcyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVt
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXll
ckNocm9taXVtLmNwcApAQCAtNTcsNiArNTcsNyBAQCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6U2hh
cmVkVmFsdWVzOjpTaGFyZWRWYWx1ZXMoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiAgICAg
LCBtX3NoYWRlck1hdHJpeExvY2F0aW9uKC0xKQogICAgICwgbV9zaGFkZXJBbHBoYUxvY2F0aW9u
KC0xKQogICAgICwgbV9pbml0aWFsaXplZChmYWxzZSkKKyAgICAsIG1fbnBvdFN1cHBvcnRlZChm
YWxzZSkKIHsKICAgICAvLyBTaGFkZXJzIGZvciBkcmF3aW5nIHRoZSBsYXllciBjb250ZW50cy4K
ICAgICBjaGFyIHZlcnRleFNoYWRlclN0cmluZ1tdID0KQEAgLTEwMyw2ICsxMDQsOCBAQCBDb250
ZW50TGF5ZXJDaHJvbWl1bTo6U2hhcmVkVmFsdWVzOjpTaGFyZWRWYWx1ZXMoR3JhcGhpY3NDb250
ZXh0M0QqIGNvbnRleHQpCiAgICAgQVNTRVJUKG1fc2hhZGVyTWF0cml4TG9jYXRpb24gIT0gLTEp
OwogICAgIEFTU0VSVChtX3NoYWRlckFscGhhTG9jYXRpb24gIT0gLTEpOwogCisgICAgbV9ucG90
U3VwcG9ydGVkID0gR0xDKGNvbnRleHQsIGNvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRl
eHQzRDo6RVhURU5TSU9OUykuY29udGFpbnMoIkdMX09FU190ZXh0dXJlX25wb3QiKSk7CisKICAg
ICBtX2luaXRpYWxpemVkID0gdHJ1ZTsKIH0KIApAQCAtMjQ5LDcgKzI1MiwxNCBAQCB2b2lkIENv
bnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50cygpCiAgICAgICAgIHVwZGF0ZVRleHR1
cmVSZWN0KHBpeGVscywgYml0bWFwU2l6ZSwgcmVxdWlyZWRUZXh0dXJlU2l6ZSwgIGRpcnR5UmVj
dCwgdGV4dHVyZUlkKTsKIH0KIAotdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlVGV4
dHVyZVJlY3Qodm9pZCogcGl4ZWxzLCBjb25zdCBJbnRTaXplJiBiaXRtYXBTaXplLCBjb25zdCBJ
bnRTaXplJiByZXF1aXJlZFRleHR1cmVTaXplLCBjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCB1
bnNpZ25lZCB0ZXh0dXJlSWQpCitzdGF0aWMgaW5saW5lIGJvb2wgaXNQb3dlck9mVHdvKGludCB4
KQoreworICAgIEFTU0VSVCh4ID49IDApOworICAgIHJldHVybiAhKHggJiAoeC0xKSk7Cit9CisK
K3ZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OnVwZGF0ZVRleHR1cmVSZWN0KHZvaWQqIHBpeGVs
cywgY29uc3QgSW50U2l6ZSYgYml0bWFwU2l6ZSwKKyAgICBjb25zdCBJbnRTaXplJiByZXF1aXJl
ZFRleHR1cmVTaXplLCBjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCB1bnNpZ25lZCB0ZXh0dXJl
SWQsIGJvb2wgZ2VuZXJhdGVNaXBtYXApCiB7CiAgICAgaWYgKCFwaXhlbHMpCiAgICAgICAgIHJl
dHVybjsKQEAgLTI1NywxMSArMjY3LDI1IEBAIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OnVw
ZGF0ZVRleHR1cmVSZWN0KHZvaWQqIHBpeGVscywgY29uc3QgSW50U2l6ZSYgYml0bWFwCiAgICAg
R3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQgPSBsYXllclJlbmRlcmVyQ29udGV4dCgpOwogICAg
IGNvbnRleHQtPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCB0ZXh0
dXJlSWQpOwogCisgICAgYm9vbCBkb01pcG1hcCA9IGdlbmVyYXRlTWlwbWFwICYmIChsYXllclJl
bmRlcmVyKCktPmNvbnRlbnRMYXllclNoYXJlZFZhbHVlcygpLT5ucG90U3VwcG9ydGVkKCkKKyAg
ICAgICAgICAgICAgICAgICAgfHwgKGlzUG93ZXJPZlR3byh1cGRhdGVSZWN0LndpZHRoKCkpICYm
IGlzUG93ZXJPZlR3byh1cGRhdGVSZWN0LmhlaWdodCgpKSkpOworCiAgICAgLy8gSWYgdGhlIHRl
eHR1cmUgaWQgb3Igc2l6ZSBjaGFuZ2VkIHNpbmNlIGxhc3QgdGltZSB0aGVuIHdlIG5lZWQgdG8g
dGVsbCBHTAogICAgIC8vIHRvIHJlLWFsbG9jYXRlIGEgdGV4dHVyZS4KICAgICBpZiAobV9jb250
ZW50c1RleHR1cmUgIT0gdGV4dHVyZUlkIHx8IHJlcXVpcmVkVGV4dHVyZVNpemUgIT0gbV9hbGxv
Y2F0ZWRUZXh0dXJlU2l6ZSkgewogICAgICAgICBBU1NFUlQoYml0bWFwU2l6ZSA9PSByZXF1aXJl
ZFRleHR1cmVTaXplKTsKICAgICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnRleEltYWdlMkQo
R3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JB
LCByZXF1aXJlZFRleHR1cmVTaXplLndpZHRoKCksIHJlcXVpcmVkVGV4dHVyZVNpemUuaGVpZ2h0
KCksIDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdO
RURfQllURSwgcGl4ZWxzKSk7CisgICAgICAgIGlmIChkb01pcG1hcCkgeworICAgICAgICAgICAg
R0xDKGNvbnRleHQsIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRF
WFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01JTl9GSUxURVIsCisgICAgICAg
ICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUl9NSVBNQVBfTElORUFSKSk7CisgICAg
ICAgICAgICBHTEMoY29udGV4dCwgY29udGV4dC0+dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfTUFHX0ZJTFRFUiwK
KyAgICAgICAgICAgICAgICBHcmFwaGljc0NvbnRleHQzRDo6TElORUFSKSk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBHTEMoY29udGV4dCwgY29udGV4dC0+dGV4UGFyYW1ldGVyaShH
cmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVf
TUlOX0ZJTFRFUiwKKyAgICAgICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUikp
OworICAgICAgICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhp
Y3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01BR19G
SUxURVIsCisgICAgICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUikpOworICAg
ICAgICB9CiAKICAgICAgICAgbV9jb250ZW50c1RleHR1cmUgPSB0ZXh0dXJlSWQ7CiAgICAgICAg
IG1fYWxsb2NhdGVkVGV4dHVyZVNpemUgPSByZXF1aXJlZFRleHR1cmVTaXplOwpAQCAtMjcxLDYg
KzI5NSw5IEBAIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OnVwZGF0ZVRleHR1cmVSZWN0KHZv
aWQqIHBpeGVscywgY29uc3QgSW50U2l6ZSYgYml0bWFwCiAgICAgICAgIEdMQyhjb250ZXh0LCBj
b250ZXh0LT50ZXhTdWJJbWFnZTJEKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCAwLCB1
cGRhdGVSZWN0LngoKSwgdXBkYXRlUmVjdC55KCksIHVwZGF0ZVJlY3Qud2lkdGgoKSwgdXBkYXRl
UmVjdC5oZWlnaHQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29udGV4dDNE
OjpVTlNJR05FRF9CWVRFLCBwaXhlbHMpKTsKICAgICB9CiAKKyAgICBpZiAoZG9NaXBtYXApCisg
ICAgICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT5nZW5lcmF0ZU1pcG1hcChHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRV8yRCkpOworCiAgICAgbV9kaXJ0eVJlY3Quc2V0U2l6ZShGbG9hdFNpemUo
KSk7CiAgICAgbV9jb250ZW50c0RpcnR5ID0gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmggYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgKaW5k
ZXggNDEyYmEwNmM2NGJmNThlMjRhNjRhMDQyMjAyYTVlZDM0ZWQ5NDJmNi4uZTMzOWYwNzM2OWYz
ODI2ZGFjYzk3NjRmZmRmN2IzYTI5NWNkMTUxZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaApAQCAtNjQs
NiArNjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGludCBzaGFkZXJNYXRyaXhMb2NhdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fc2hhZGVyTWF0cml4TG9jYXRpb247IH0KICAgICAgICAgaW50IHNoYWRl
ckFscGhhTG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3NoYWRlckFscGhhTG9jYXRpb247IH0K
ICAgICAgICAgaW50IGluaXRpYWxpemVkKCkgY29uc3QgeyByZXR1cm4gbV9pbml0aWFsaXplZDsg
fQorICAgICAgICBib29sIG5wb3RTdXBwb3J0ZWQoKSBjb25zdCB7IHJldHVybiBtX25wb3RTdXBw
b3J0ZWQ7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dDNEKiBtX2Nv
bnRleHQ7CkBAIC03MiwxMyArNzMsMTQgQEAgcHVibGljOgogICAgICAgICBpbnQgbV9zaGFkZXJN
YXRyaXhMb2NhdGlvbjsKICAgICAgICAgaW50IG1fc2hhZGVyQWxwaGFMb2NhdGlvbjsKICAgICAg
ICAgaW50IG1faW5pdGlhbGl6ZWQ7CisgICAgICAgIGJvb2wgbV9ucG90U3VwcG9ydGVkOwogICAg
IH07CiAKIHByb3RlY3RlZDoKICAgICBDb250ZW50TGF5ZXJDaHJvbWl1bShHcmFwaGljc0xheWVy
Q2hyb21pdW0qIG93bmVyKTsKIAogICAgIHZvaWQgdXBkYXRlVGV4dHVyZVJlY3Qodm9pZCogcGl4
ZWxzLCBjb25zdCBJbnRTaXplJiBiaXRtYXBTaXplLCBjb25zdCBJbnRTaXplJiByZXF1aXJlZFRl
eHR1cmVTaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgdXBk
YXRlUmVjdCwgdW5zaWduZWQgdGV4dHVyZUlkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIHVuc2lnbmVkIHRleHR1cmVJZCwgYm9vbCBnZW5l
cmF0ZU1pcG1hcCA9IGZhbHNlKTsKIAogICAgIHZvaWQgY2xlYW51cFJlc291cmNlcygpOwogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJD
aHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5
ZXJDaHJvbWl1bS5jcHAKaW5kZXggYzk3YmU4MmYyMTMyZTVkZDJjZGQzYWZkMjFjNWM0NzQzMDBm
ZTA3MS4uODc5NzQ3ODBhODdmZGEwM2EwODY3MzA3YjZhZTg5OWZmYTdmNzNjYyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0u
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNo
cm9taXVtLmNwcApAQCAtMTUxLDggKzE1MSw5IEBAIHZvaWQgSW1hZ2VMYXllckNocm9taXVtOjp1
cGRhdGVDb250ZW50cygpCiAgICAgSW50UmVjdCBkaXJ0eVJlY3QobV9kaXJ0eVJlY3QpOwogICAg
IGRpcnR5UmVjdC5pbnRlcnNlY3QoSW50UmVjdChJbnRQb2ludCgwLCAwKSwgYml0bWFwU2l6ZSkp
OwogCisgICAgY29uc3QgYm9vbCBnZW5lcmF0ZU1pcG1hcCA9IHRydWU7CiAgICAgaWYgKHBpeGVs
cykKLSAgICAgICAgdXBkYXRlVGV4dHVyZVJlY3QocGl4ZWxzLCBiaXRtYXBTaXplLCByZXF1aXJl
ZFRleHR1cmVTaXplLCAgZGlydHlSZWN0LCB0ZXh0dXJlSWQpOworICAgICAgICB1cGRhdGVUZXh0
dXJlUmVjdChwaXhlbHMsIGJpdG1hcFNpemUsIHJlcXVpcmVkVGV4dHVyZVNpemUsICBkaXJ0eVJl
Y3QsIHRleHR1cmVJZCwgZ2VuZXJhdGVNaXBtYXApOwogfQogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69637</attachid>
            <date>2010-10-04 08:26:55 -0700</date>
            <delta_ts>2010-10-05 13:26:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46493-20101004112651.patch</filename>
            <type>text/plain</type>
            <size>7192</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
M2I4NTE2NGY1OGMwMjk2OTk1MzA5ODkwNTkzOTE4NzYyMDk2NDc1OS4uOTliMDc2YWYzYjBiNzQx
ZmQ0YTc2NDRjMzY4ZmNiMjMxOGU5Yjc5YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wOS0yOCAgVy4g
SmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgbWlwbWFwIHN1
cHBvcnQgZm9yIEltYWdlTGF5ZXJDaHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY0OTMKKworICAgICAgICBNaXBtYXAgYmVoYXZpb3VyIGNh
biBiZSB0ZXN0ZWQgd2l0aCBleGlzdGluZyB0ZXN0cy4KKyAgICAgICAgVGVzdHMgaW4gTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvaW1hZ2VzLyB3aWxsIGRldGVjdCBpZgorICAgICAgICBtaXBtYXBz
IGZhaWwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5
ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50TGF5ZXJDaHJvbWl1bTo6
U2hhcmVkVmFsdWVzOjpTaGFyZWRWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6aXNQb3dlck9m
VHdvKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVUZXh0
dXJlUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExh
eWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRMYXllckNocm9taXVtOjpT
aGFyZWRWYWx1ZXM6Om5wb3RTdXBwb3J0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUxheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRzKToKKwogMjAxMC0xMC0wMSAgUmFnbmVyIE1h
Z2FsaGFlcyAgPHJhZ25lci5tYWdhbGhhZXNAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHAK
aW5kZXggOGRkYTRkNmM1ZWVmODczMmFmZDdlN2U0ZTIxYjcyYjgxZDE5NmMyNC4uMTY1YmIwZjA2
Y2E5MTMyZjNkMzY1MzY5YTE3MmUzMDBiMTIxYzY4YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHAK
QEAgLTU3LDYgKzU3LDcgQEAgQ29udGVudExheWVyQ2hyb21pdW06OlNoYXJlZFZhbHVlczo6U2hh
cmVkVmFsdWVzKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KQogICAgICwgbV9zaGFkZXJNYXRy
aXhMb2NhdGlvbigtMSkKICAgICAsIG1fc2hhZGVyQWxwaGFMb2NhdGlvbigtMSkKICAgICAsIG1f
aW5pdGlhbGl6ZWQoZmFsc2UpCisgICAgLCBtX25wb3RTdXBwb3J0ZWQoZmFsc2UpCiB7CiAgICAg
Ly8gU2hhZGVycyBmb3IgZHJhd2luZyB0aGUgbGF5ZXIgY29udGVudHMuCiAgICAgY2hhciB2ZXJ0
ZXhTaGFkZXJTdHJpbmdbXSA9CkBAIC0xMDMsNiArMTA0LDggQEAgQ29udGVudExheWVyQ2hyb21p
dW06OlNoYXJlZFZhbHVlczo6U2hhcmVkVmFsdWVzKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0
KQogICAgIEFTU0VSVChtX3NoYWRlck1hdHJpeExvY2F0aW9uICE9IC0xKTsKICAgICBBU1NFUlQo
bV9zaGFkZXJBbHBoYUxvY2F0aW9uICE9IC0xKTsKIAorICAgIG1fbnBvdFN1cHBvcnRlZCA9IEdM
Qyhjb250ZXh0LCBjb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OkVYVEVOU0lP
TlMpLmNvbnRhaW5zKCJHTF9PRVNfdGV4dHVyZV9ucG90IikpOworCiAgICAgbV9pbml0aWFsaXpl
ZCA9IHRydWU7CiB9CiAKQEAgLTI0OSw3ICsyNTIsMTQgQEAgdm9pZCBDb250ZW50TGF5ZXJDaHJv
bWl1bTo6dXBkYXRlQ29udGVudHMoKQogICAgICAgICB1cGRhdGVUZXh0dXJlUmVjdChwaXhlbHMs
IGJpdG1hcFNpemUsIHJlcXVpcmVkVGV4dHVyZVNpemUsICBkaXJ0eVJlY3QsIHRleHR1cmVJZCk7
CiB9CiAKLXZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OnVwZGF0ZVRleHR1cmVSZWN0KHZvaWQq
IHBpeGVscywgY29uc3QgSW50U2l6ZSYgYml0bWFwU2l6ZSwgY29uc3QgSW50U2l6ZSYgcmVxdWly
ZWRUZXh0dXJlU2l6ZSwgY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgdW5zaWduZWQgdGV4dHVy
ZUlkKQorc3RhdGljIGlubGluZSBib29sIGlzUG93ZXJPZlR3byhpbnQgeCkKK3sKKyAgICBBU1NF
UlQoeCA+PSAwKTsKKyAgICByZXR1cm4gISh4ICYgKHgtMSkpOworfQorCit2b2lkIENvbnRlbnRM
YXllckNocm9taXVtOjp1cGRhdGVUZXh0dXJlUmVjdCh2b2lkKiBwaXhlbHMsIGNvbnN0IEludFNp
emUmIGJpdG1hcFNpemUsCisgICAgY29uc3QgSW50U2l6ZSYgcmVxdWlyZWRUZXh0dXJlU2l6ZSwg
Y29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgdW5zaWduZWQgdGV4dHVyZUlkLCBNaXBtYXBVc2Ug
cmVxdWVzdE1pcG1hcCkKIHsKICAgICBpZiAoIXBpeGVscykKICAgICAgICAgcmV0dXJuOwpAQCAt
MjU3LDExICsyNjcsMjYgQEAgdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlVGV4dHVy
ZVJlY3Qodm9pZCogcGl4ZWxzLCBjb25zdCBJbnRTaXplJiBiaXRtYXAKICAgICBHcmFwaGljc0Nv
bnRleHQzRCogY29udGV4dCA9IGxheWVyUmVuZGVyZXJDb250ZXh0KCk7CiAgICAgY29udGV4dC0+
YmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIHRleHR1cmVJZCk7CiAK
KyAgICBib29sIGdlbmVyYXRlTWlwbWFwID0gKHJlcXVlc3RNaXBtYXAgPT0gdXNlTWlwbWFwKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAobGF5ZXJSZW5kZXJlcigpLT5jb250ZW50TGF5
ZXJTaGFyZWRWYWx1ZXMoKS0+bnBvdFN1cHBvcnRlZCgpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIHx8IChpc1Bvd2VyT2ZUd28odXBkYXRlUmVjdC53aWR0aCgpKSAmJiBpc1Bvd2VyT2ZUd28o
dXBkYXRlUmVjdC5oZWlnaHQoKSkpKTsKKwogICAgIC8vIElmIHRoZSB0ZXh0dXJlIGlkIG9yIHNp
emUgY2hhbmdlZCBzaW5jZSBsYXN0IHRpbWUgdGhlbiB3ZSBuZWVkIHRvIHRlbGwgR0wKICAgICAv
LyB0byByZS1hbGxvY2F0ZSBhIHRleHR1cmUuCiAgICAgaWYgKG1fY29udGVudHNUZXh0dXJlICE9
IHRleHR1cmVJZCB8fCByZXF1aXJlZFRleHR1cmVTaXplICE9IG1fYWxsb2NhdGVkVGV4dHVyZVNp
emUpIHsKICAgICAgICAgQVNTRVJUKGJpdG1hcFNpemUgPT0gcmVxdWlyZWRUZXh0dXJlU2l6ZSk7
CiAgICAgICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT50ZXhJbWFnZTJEKEdyYXBoaWNzQ29udGV4
dDNEOjpURVhUVVJFXzJELCAwLCBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSwgcmVxdWlyZWRUZXh0
dXJlU2l6ZS53aWR0aCgpLCByZXF1aXJlZFRleHR1cmVTaXplLmhlaWdodCgpLCAwLCBHcmFwaGlj
c0NvbnRleHQzRDo6UkdCQSwgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEUsIHBpeGVs
cykpOworICAgICAgICBpZiAoZ2VuZXJhdGVNaXBtYXApIHsKKyAgICAgICAgICAgIEdMQyhjb250
ZXh0LCBjb250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJE
LCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9NSU5fRklMVEVSLAorICAgICAgICAgICAgICAg
IEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVJfTUlQTUFQX0xJTkVBUikpOworICAgICAgICAgICAg
R0xDKGNvbnRleHQsIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRF
WFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01BR19GSUxURVIsCisgICAgICAg
ICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkxJTkVBUikpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3ND
b250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01JTl9GSUxU
RVIsCisgICAgICAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpKTsKKyAgICAg
ICAgICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4
dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9NQUdfRklMVEVSLAor
ICAgICAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpKTsKKyAgICAgICAgfQog
CiAgICAgICAgIG1fY29udGVudHNUZXh0dXJlID0gdGV4dHVyZUlkOwogICAgICAgICBtX2FsbG9j
YXRlZFRleHR1cmVTaXplID0gcmVxdWlyZWRUZXh0dXJlU2l6ZTsKQEAgLTI3MSw2ICsyOTYsOSBA
QCB2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVUZXh0dXJlUmVjdCh2b2lkKiBwaXhl
bHMsIGNvbnN0IEludFNpemUmIGJpdG1hcAogICAgICAgICBHTEMoY29udGV4dCwgY29udGV4dC0+
dGV4U3ViSW1hZ2UyRChHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgMCwgdXBkYXRlUmVj
dC54KCksIHVwZGF0ZVJlY3QueSgpLCB1cGRhdGVSZWN0LndpZHRoKCksIHVwZGF0ZVJlY3QuaGVp
Z2h0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdO
RURfQllURSwgcGl4ZWxzKSk7CiAgICAgfQogCisgICAgaWYgKGdlbmVyYXRlTWlwbWFwKQorICAg
ICAgICBHTEMoY29udGV4dCwgY29udGV4dC0+Z2VuZXJhdGVNaXBtYXAoR3JhcGhpY3NDb250ZXh0
M0Q6OlRFWFRVUkVfMkQpKTsKKwogICAgIG1fZGlydHlSZWN0LnNldFNpemUoRmxvYXRTaXplKCkp
OwogICAgIG1fY29udGVudHNEaXJ0eSA9IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oCmluZGV4
IDQxMmJhMDZjNjRiZjU4ZTI0YTY0YTA0MjIwMmE1ZWQzNGVkOTQyZjYuLjMzMTA2N2VmN2Q4MTYw
YmU1OWRlYWMwYWU2NzJlOWUxNjJhZTQwMmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgKQEAgLTY0LDYg
KzY0LDcgQEAgcHVibGljOgogICAgICAgICBpbnQgc2hhZGVyTWF0cml4TG9jYXRpb24oKSBjb25z
dCB7IHJldHVybiBtX3NoYWRlck1hdHJpeExvY2F0aW9uOyB9CiAgICAgICAgIGludCBzaGFkZXJB
bHBoYUxvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zaGFkZXJBbHBoYUxvY2F0aW9uOyB9CiAg
ICAgICAgIGludCBpbml0aWFsaXplZCgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbGl6ZWQ7IH0K
KyAgICAgICAgYm9vbCBucG90U3VwcG9ydGVkKCkgY29uc3QgeyByZXR1cm4gbV9ucG90U3VwcG9y
dGVkOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBHcmFwaGljc0NvbnRleHQzRCogbV9jb250
ZXh0OwpAQCAtNzIsMTMgKzczLDE2IEBAIHB1YmxpYzoKICAgICAgICAgaW50IG1fc2hhZGVyTWF0
cml4TG9jYXRpb247CiAgICAgICAgIGludCBtX3NoYWRlckFscGhhTG9jYXRpb247CiAgICAgICAg
IGludCBtX2luaXRpYWxpemVkOworICAgICAgICBib29sIG1fbnBvdFN1cHBvcnRlZDsKICAgICB9
OwogCiBwcm90ZWN0ZWQ6CiAgICAgQ29udGVudExheWVyQ2hyb21pdW0oR3JhcGhpY3NMYXllckNo
cm9taXVtKiBvd25lcik7CiAKKyAgICBlbnVtIE1pcG1hcFVzZSB7bm9NaXBtYXAsIHVzZU1pcG1h
cH07CisKICAgICB2b2lkIHVwZGF0ZVRleHR1cmVSZWN0KHZvaWQqIHBpeGVscywgY29uc3QgSW50
U2l6ZSYgYml0bWFwU2l6ZSwgY29uc3QgSW50U2l6ZSYgcmVxdWlyZWRUZXh0dXJlU2l6ZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIHVuc2ln
bmVkIHRleHR1cmVJZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0
JiB1cGRhdGVSZWN0LCB1bnNpZ25lZCB0ZXh0dXJlSWQsIE1pcG1hcFVzZSBnZW5lcmF0ZU1pcG1h
cCA9IG5vTWlwbWFwKTsKIAogICAgIHZvaWQgY2xlYW51cFJlc291cmNlcygpOwogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1
bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJv
bWl1bS5jcHAKaW5kZXggYzk3YmU4MmYyMTMyZTVkZDJjZGQzYWZkMjFjNWM0NzQzMDBmZTA3MS4u
NDJiYzFmZjNlZGZjNjM0NjcwNTMxNjZlNGUxYmEzYWQwZjU5NWU3NyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVt
LmNwcApAQCAtMTUyLDcgKzE1Miw3IEBAIHZvaWQgSW1hZ2VMYXllckNocm9taXVtOjp1cGRhdGVD
b250ZW50cygpCiAgICAgZGlydHlSZWN0LmludGVyc2VjdChJbnRSZWN0KEludFBvaW50KDAsIDAp
LCBiaXRtYXBTaXplKSk7CiAKICAgICBpZiAocGl4ZWxzKQotICAgICAgICB1cGRhdGVUZXh0dXJl
UmVjdChwaXhlbHMsIGJpdG1hcFNpemUsIHJlcXVpcmVkVGV4dHVyZVNpemUsICBkaXJ0eVJlY3Qs
IHRleHR1cmVJZCk7CisgICAgICAgIHVwZGF0ZVRleHR1cmVSZWN0KHBpeGVscywgYml0bWFwU2l6
ZSwgcmVxdWlyZWRUZXh0dXJlU2l6ZSwgIGRpcnR5UmVjdCwgdGV4dHVyZUlkLCB1c2VNaXBtYXAp
OwogfQogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69832</attachid>
            <date>2010-10-05 13:26:44 -0700</date>
            <delta_ts>2010-10-05 20:42:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46493-20101005162640.patch</filename>
            <type>text/plain</type>
            <size>7163</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWYyOWUyYzk2N2ViYmFlZTZhZDUxODBhMmFiMDU5MjhmMjhhY2ZhYS4uMmYwMWQ0ODgzNDNhYTdi
NTBhYjYwYmFiZjVhNzBjOGNiYzU0MWQ1MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0xMC0wNSAgVy4g
SmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgbWlwbWFwIHN1
cHBvcnQgZm9yIEltYWdlTGF5ZXJDaHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY0OTMKKworICAgICAgICBNaXBtYXAgYmVoYXZpb3VyIGNh
biBiZSB0ZXN0ZWQgd2l0aCBleGlzdGluZyB0ZXN0cy4KKyAgICAgICAgVGVzdHMgaW4gTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvaW1hZ2VzLyB3aWxsIGRldGVjdCBpZgorICAgICAgICBtaXBtYXBz
IGZhaWwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5
ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50TGF5ZXJDaHJvbWl1bTo6
U2hhcmVkVmFsdWVzOjpTaGFyZWRWYWx1ZXMpOgorICAgICAgICAoV2ViQ29yZTo6aXNQb3dlck9m
VHdvKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVUZXh0
dXJlUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExh
eWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRMYXllckNocm9taXVtOjpT
aGFyZWRWYWx1ZXM6Om5wb3RTdXBwb3J0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUxheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRzKToKKwogMjAxMC0xMC0wNSAgQWRhbSBSb2Jl
biAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2luZG93cyBsaW5rZXIgd2FybmluZyBm
aXgKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVu
dExheWVyQ2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9D
b250ZW50TGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggOGRkYTRkNmM1ZWVmODczMmFmZDdlN2U0ZTIx
YjcyYjgxZDE5NmMyNC4uYzE5NWIwMTkyMmYxZjE3NTNiZjA0MzMwOGE3Y2QxYWJjNzY5YjA5ZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5
ZXJDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9D
b250ZW50TGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTU3LDYgKzU3LDcgQEAgQ29udGVudExheWVyQ2hy
b21pdW06OlNoYXJlZFZhbHVlczo6U2hhcmVkVmFsdWVzKEdyYXBoaWNzQ29udGV4dDNEKiBjb250
ZXh0KQogICAgICwgbV9zaGFkZXJNYXRyaXhMb2NhdGlvbigtMSkKICAgICAsIG1fc2hhZGVyQWxw
aGFMb2NhdGlvbigtMSkKICAgICAsIG1faW5pdGlhbGl6ZWQoZmFsc2UpCisgICAgLCBtX25wb3RT
dXBwb3J0ZWQoZmFsc2UpCiB7CiAgICAgLy8gU2hhZGVycyBmb3IgZHJhd2luZyB0aGUgbGF5ZXIg
Y29udGVudHMuCiAgICAgY2hhciB2ZXJ0ZXhTaGFkZXJTdHJpbmdbXSA9CkBAIC0xMDMsNiArMTA0
LDggQEAgQ29udGVudExheWVyQ2hyb21pdW06OlNoYXJlZFZhbHVlczo6U2hhcmVkVmFsdWVzKEdy
YXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KQogICAgIEFTU0VSVChtX3NoYWRlck1hdHJpeExvY2F0
aW9uICE9IC0xKTsKICAgICBBU1NFUlQobV9zaGFkZXJBbHBoYUxvY2F0aW9uICE9IC0xKTsKIAor
ICAgIG1fbnBvdFN1cHBvcnRlZCA9IEdMQyhjb250ZXh0LCBjb250ZXh0LT5nZXRTdHJpbmcoR3Jh
cGhpY3NDb250ZXh0M0Q6OkVYVEVOU0lPTlMpLmNvbnRhaW5zKCJHTF9PRVNfdGV4dHVyZV9ucG90
IikpOworCiAgICAgbV9pbml0aWFsaXplZCA9IHRydWU7CiB9CiAKQEAgLTI0OSw3ICsyNTIsMTQg
QEAgdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudHMoKQogICAgICAgICB1
cGRhdGVUZXh0dXJlUmVjdChwaXhlbHMsIGJpdG1hcFNpemUsIHJlcXVpcmVkVGV4dHVyZVNpemUs
ICBkaXJ0eVJlY3QsIHRleHR1cmVJZCk7CiB9CiAKLXZvaWQgQ29udGVudExheWVyQ2hyb21pdW06
OnVwZGF0ZVRleHR1cmVSZWN0KHZvaWQqIHBpeGVscywgY29uc3QgSW50U2l6ZSYgYml0bWFwU2l6
ZSwgY29uc3QgSW50U2l6ZSYgcmVxdWlyZWRUZXh0dXJlU2l6ZSwgY29uc3QgSW50UmVjdCYgdXBk
YXRlUmVjdCwgdW5zaWduZWQgdGV4dHVyZUlkKQorc3RhdGljIGlubGluZSBib29sIGlzUG93ZXJP
ZlR3byhpbnQgeCkKK3sKKyAgICBBU1NFUlQoeCA+PSAwKTsKKyAgICByZXR1cm4gISh4ICYgKHgt
MSkpOworfQorCit2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVUZXh0dXJlUmVjdCh2
b2lkKiBwaXhlbHMsIGNvbnN0IEludFNpemUmIGJpdG1hcFNpemUsCisgICAgY29uc3QgSW50U2l6
ZSYgcmVxdWlyZWRUZXh0dXJlU2l6ZSwgY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgdW5zaWdu
ZWQgdGV4dHVyZUlkLCBNaXBtYXBVc2UgcmVxdWVzdE1pcG1hcCkKIHsKICAgICBpZiAoIXBpeGVs
cykKICAgICAgICAgcmV0dXJuOwpAQCAtMjU3LDExICsyNjcsMjYgQEAgdm9pZCBDb250ZW50TGF5
ZXJDaHJvbWl1bTo6dXBkYXRlVGV4dHVyZVJlY3Qodm9pZCogcGl4ZWxzLCBjb25zdCBJbnRTaXpl
JiBiaXRtYXAKICAgICBHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCA9IGxheWVyUmVuZGVyZXJD
b250ZXh0KCk7CiAgICAgY29udGV4dC0+YmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRF
WFRVUkVfMkQsIHRleHR1cmVJZCk7CiAKKyAgICBib29sIGdlbmVyYXRlTWlwbWFwID0gKHJlcXVl
c3RNaXBtYXAgPT0gdXNlTWlwbWFwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAobGF5
ZXJSZW5kZXJlcigpLT5jb250ZW50TGF5ZXJTaGFyZWRWYWx1ZXMoKS0+bnBvdFN1cHBvcnRlZCgp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAoaXNQb3dlck9mVHdvKHVwZGF0ZVJl
Y3Qud2lkdGgoKSkgJiYgaXNQb3dlck9mVHdvKHVwZGF0ZVJlY3QuaGVpZ2h0KCkpKSk7CisKICAg
ICAvLyBJZiB0aGUgdGV4dHVyZSBpZCBvciBzaXplIGNoYW5nZWQgc2luY2UgbGFzdCB0aW1lIHRo
ZW4gd2UgbmVlZCB0byB0ZWxsIEdMCiAgICAgLy8gdG8gcmUtYWxsb2NhdGUgYSB0ZXh0dXJlLgog
ICAgIGlmIChtX2NvbnRlbnRzVGV4dHVyZSAhPSB0ZXh0dXJlSWQgfHwgcmVxdWlyZWRUZXh0dXJl
U2l6ZSAhPSBtX2FsbG9jYXRlZFRleHR1cmVTaXplKSB7CiAgICAgICAgIEFTU0VSVChiaXRtYXBT
aXplID09IHJlcXVpcmVkVGV4dHVyZVNpemUpOwogICAgICAgICBHTEMoY29udGV4dCwgY29udGV4
dC0+dGV4SW1hZ2UyRChHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgMCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlJHQkEsIHJlcXVpcmVkVGV4dHVyZVNpemUud2lkdGgoKSwgcmVxdWlyZWRUZXh0
dXJlU2l6ZS5oZWlnaHQoKSwgMCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEsIEdyYXBoaWNzQ29u
dGV4dDNEOjpVTlNJR05FRF9CWVRFLCBwaXhlbHMpKTsKKyAgICAgICAgaWYgKGdlbmVyYXRlTWlw
bWFwKSB7CisgICAgICAgICAgICBHTEMoY29udGV4dCwgY29udGV4dC0+dGV4UGFyYW1ldGVyaShH
cmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVf
TUlOX0ZJTFRFUiwKKyAgICAgICAgICAgICAgICBHcmFwaGljc0NvbnRleHQzRDo6TElORUFSX01J
UE1BUF9MSU5FQVIpKTsKKyAgICAgICAgICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT50ZXhQYXJh
bWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6
VEVYVFVSRV9NQUdfRklMVEVSLAorICAgICAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dDNEOjpM
SU5FQVIpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEdMQyhjb250ZXh0LCBjb250
ZXh0LT50ZXhQYXJhbWV0ZXJpKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGlj
c0NvbnRleHQzRDo6VEVYVFVSRV9NSU5fRklMVEVSLAorICAgICAgICAgICAgICAgICBHcmFwaGlj
c0NvbnRleHQzRDo6TElORUFSKSk7CisgICAgICAgICAgICBHTEMoY29udGV4dCwgY29udGV4dC0+
dGV4UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkVfTUFHX0ZJTFRFUiwKKyAgICAgICAgICAgICAgICBHcmFwaGljc0NvbnRl
eHQzRDo6TElORUFSKSk7CisgICAgICAgIH0KIAogICAgICAgICBtX2NvbnRlbnRzVGV4dHVyZSA9
IHRleHR1cmVJZDsKICAgICAgICAgbV9hbGxvY2F0ZWRUZXh0dXJlU2l6ZSA9IHJlcXVpcmVkVGV4
dHVyZVNpemU7CkBAIC0yNzEsNiArMjk2LDkgQEAgdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6
dXBkYXRlVGV4dHVyZVJlY3Qodm9pZCogcGl4ZWxzLCBjb25zdCBJbnRTaXplJiBiaXRtYXAKICAg
ICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnRleFN1YkltYWdlMkQoR3JhcGhpY3NDb250ZXh0
M0Q6OlRFWFRVUkVfMkQsIDAsIHVwZGF0ZVJlY3QueCgpLCB1cGRhdGVSZWN0LnkoKSwgdXBkYXRl
UmVjdC53aWR0aCgpLCB1cGRhdGVSZWN0LmhlaWdodCgpLCBHcmFwaGljc0NvbnRleHQzRDo6UkdC
QSwgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEUsIHBpeGVscykpOwogICAgIH0KIAor
ICAgIGlmIChnZW5lcmF0ZU1pcG1hcCkKKyAgICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPmdl
bmVyYXRlTWlwbWFwKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJEKSk7CisKICAgICBtX2Rp
cnR5UmVjdC5zZXRTaXplKEZsb2F0U2l6ZSgpKTsKICAgICBtX2NvbnRlbnRzRGlydHkgPSBmYWxz
ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29u
dGVudExheWVyQ2hyb21pdW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Q29udGVudExheWVyQ2hyb21pdW0uaAppbmRleCA0MTJiYTA2YzY0YmY1OGUyNGE2NGEwNDIyMDJh
NWVkMzRlZDk0MmY2Li4zMzEwNjdlZjdkODE2MGJlNTlkZWFjMGFlNjcyZTllMTYyYWU0MDJiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXll
ckNocm9taXVtLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250
ZW50TGF5ZXJDaHJvbWl1bS5oCkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICAgICAgaW50
IHNoYWRlck1hdHJpeExvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zaGFkZXJNYXRyaXhMb2Nh
dGlvbjsgfQogICAgICAgICBpbnQgc2hhZGVyQWxwaGFMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fc2hhZGVyQWxwaGFMb2NhdGlvbjsgfQogICAgICAgICBpbnQgaW5pdGlhbGl6ZWQoKSBjb25z
dCB7IHJldHVybiBtX2luaXRpYWxpemVkOyB9CisgICAgICAgIGJvb2wgbnBvdFN1cHBvcnRlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fbnBvdFN1cHBvcnRlZDsgfQogCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgR3JhcGhpY3NDb250ZXh0M0QqIG1fY29udGV4dDsKQEAgLTcyLDEzICs3MywxNiBAQCBwdWJs
aWM6CiAgICAgICAgIGludCBtX3NoYWRlck1hdHJpeExvY2F0aW9uOwogICAgICAgICBpbnQgbV9z
aGFkZXJBbHBoYUxvY2F0aW9uOwogICAgICAgICBpbnQgbV9pbml0aWFsaXplZDsKKyAgICAgICAg
Ym9vbCBtX25wb3RTdXBwb3J0ZWQ7CiAgICAgfTsKIAogcHJvdGVjdGVkOgogICAgIENvbnRlbnRM
YXllckNocm9taXVtKEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSogb3duZXIpOwogCisgICAgZW51bSBN
aXBtYXBVc2Uge25vTWlwbWFwLCB1c2VNaXBtYXB9OworCiAgICAgdm9pZCB1cGRhdGVUZXh0dXJl
UmVjdCh2b2lkKiBwaXhlbHMsIGNvbnN0IEludFNpemUmIGJpdG1hcFNpemUsIGNvbnN0IEludFNp
emUmIHJlcXVpcmVkVGV4dHVyZVNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBJbnRSZWN0JiB1cGRhdGVSZWN0LCB1bnNpZ25lZCB0ZXh0dXJlSWQpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgdW5zaWduZWQgdGV4dHVy
ZUlkLCBNaXBtYXBVc2UgZ2VuZXJhdGVNaXBtYXAgPSBub01pcG1hcCk7CiAKICAgICB2b2lkIGNs
ZWFudXBSZXNvdXJjZXMoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCmluZGV4IGM5N2JlODJmMjEzMmU1
ZGQyY2RkM2FmZDIxYzVjNDc0MzAwZmUwNzEuLjQyYmMxZmYzZWRmYzYzNDY3MDUzMTY2ZTRlMWJh
M2FkMGY1OTVlNzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vSW1hZ2VMYXllckNocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTE1Miw3ICsxNTIsNyBAQCB2b2lk
IEltYWdlTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudHMoKQogICAgIGRpcnR5UmVjdC5pbnRl
cnNlY3QoSW50UmVjdChJbnRQb2ludCgwLCAwKSwgYml0bWFwU2l6ZSkpOwogCiAgICAgaWYgKHBp
eGVscykKLSAgICAgICAgdXBkYXRlVGV4dHVyZVJlY3QocGl4ZWxzLCBiaXRtYXBTaXplLCByZXF1
aXJlZFRleHR1cmVTaXplLCAgZGlydHlSZWN0LCB0ZXh0dXJlSWQpOworICAgICAgICB1cGRhdGVU
ZXh0dXJlUmVjdChwaXhlbHMsIGJpdG1hcFNpemUsIHJlcXVpcmVkVGV4dHVyZVNpemUsICBkaXJ0
eVJlY3QsIHRleHR1cmVJZCwgdXNlTWlwbWFwKTsKIH0KIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>