<?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>73485</bug_id>
          
          <creation_ts>2011-11-30 13:42:25 -0800</creation_ts>
          <short_desc>[chromium] Plumb damage from WebExternalTextureLayer and WebPluginContainer to CCDamageTracker</short_desc>
          <delta_ts>2011-12-07 10:46:13 -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>New Bugs</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="Jonathan Backer">backer</reporter>
          <assigned_to name="Jonathan Backer">backer</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>piman</cc>
    
    <cc>reveman</cc>
    
    <cc>shawnsingh</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>512084</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2011-11-30 13:42:25 -0800</bug_when>
    <thetext>[chromium] NOT FOR REVIEW Plumb damage in WebExternalTextureLayer to CCDamageTracker</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512086</commentid>
    <comment_count>1</comment_count>
      <attachid>117263</attachid>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2011-11-30 13:43:19 -0800</bug_when>
    <thetext>Created attachment 117263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512120</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 14:02:55 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512124</commentid>
    <comment_count>3</comment_count>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2011-11-30 14:11:06 -0800</bug_when>
    <thetext>Chromium side here: http://codereview.chromium.org/8764001/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512141</commentid>
    <comment_count>4</comment_count>
      <attachid>117263</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-11-30 14:38:25 -0800</bug_when>
    <thetext>Comment on attachment 117263
Patch

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

&gt; Source/WebKit/chromium/public/WebExternalTextureLayer.h:72
&gt; +    WEBKIT_EXPORT void setUpdateRect(const WebFloatRect&amp;);

Should that be named invalidateRect for consistency with WebContentLayer ?
Also, for the doc, it&apos;d be useful to explain if the region is in UV coordinates, or layer coordinates.
I think what makes the most sense is to have it in texture coordinates, as in &quot;the texels in the texture within this rect have changed&quot;. The layer&apos;s implementation can then apply the y flip and the uv scale/offset to transform to layer coordinates.

&gt; Source/WebKit/chromium/src/WebExternalTextureLayerImpl.cpp:71
&gt; +    m_updateRect = updateRect;

Instead of directly setting m_updateRect here, I would add a invalidateRect or something to PluginLayerChromium, that can do the transformation into layer coordinates and set m_updateRect. I&apos;d rather not touch m_updateRect directly in the WebKit API classes, and keep it inside of the layer itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512146</commentid>
    <comment_count>5</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2011-11-30 14:43:26 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 117263 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117263&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebExternalTextureLayer.h:72
&gt; &gt; +    WEBKIT_EXPORT void setUpdateRect(const WebFloatRect&amp;);
&gt; 
&gt; Should that be named invalidateRect for consistency with WebContentLayer ?
&gt; Also, for the doc, it&apos;d be useful to explain if the region is in UV coordinates, or layer coordinates.
&gt; I think what makes the most sense is to have it in texture coordinates, as in &quot;the texels in the texture within this rect have changed&quot;. The layer&apos;s implementation can then apply the y flip and the uv scale/offset to transform to layer coordinates.
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebExternalTextureLayerImpl.cpp:71
&gt; &gt; +    m_updateRect = updateRect;
&gt; 
&gt; Instead of directly setting m_updateRect here, I would add a invalidateRect or something to PluginLayerChromium, that can do the transformation into layer coordinates and set m_updateRect. I&apos;d rather not touch m_updateRect directly in the WebKit API classes, and keep it inside of the layer itself.

Two questions:

(1) Are there any other &quot;users&quot; of the PluginLayerChromium?  I am aware of this WebExternalTexture, and Flash.  are there any others?

(2) Do you have a sense of how we should propagate &quot;damage&quot; from Flash?  Before seeing this patch, I was going to blindly damage the entire PluginLayer.  but now it seems like we should be doing something more correct.  Is it as simple as doing a similar invalidation for flash?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512176</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-11-30 15:22:46 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 117263 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117263&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/chromium/public/WebExternalTextureLayer.h:72
&gt; &gt; &gt; +    WEBKIT_EXPORT void setUpdateRect(const WebFloatRect&amp;);
&gt; &gt; 
&gt; &gt; Should that be named invalidateRect for consistency with WebContentLayer ?
&gt; &gt; Also, for the doc, it&apos;d be useful to explain if the region is in UV coordinates, or layer coordinates.
&gt; &gt; I think what makes the most sense is to have it in texture coordinates, as in &quot;the texels in the texture within this rect have changed&quot;. The layer&apos;s implementation can then apply the y flip and the uv scale/offset to transform to layer coordinates.
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/chromium/src/WebExternalTextureLayerImpl.cpp:71
&gt; &gt; &gt; +    m_updateRect = updateRect;
&gt; &gt; 
&gt; &gt; Instead of directly setting m_updateRect here, I would add a invalidateRect or something to PluginLayerChromium, that can do the transformation into layer coordinates and set m_updateRect. I&apos;d rather not touch m_updateRect directly in the WebKit API classes, and keep it inside of the layer itself.
&gt; 
&gt; Two questions:
&gt; 
&gt; (1) Are there any other &quot;users&quot; of the PluginLayerChromium?  I am aware of this WebExternalTexture, and Flash.  are there any others?

More than just Flash, all pepper plugins that use GPU (Flash &amp; Netflix, but also NaCl plugins). They&apos;d all go through the same path though.

&gt; 
&gt; (2) Do you have a sense of how we should propagate &quot;damage&quot; from Flash?  Before seeing this patch, I was going to blindly damage the entire PluginLayer.  but now it seems like we should be doing something more correct.  Is it as simple as doing a similar invalidation for flash?

The Pepper API doesn&apos;t currently expose any way to swap a partial frame, so the damage is always currently the entire layer. Moving forward we could plumb that through (add the API to pepper, add the necessary hook in WebPluginContainer), and then change Flash etc. to use it and do partial frames.

This patch would be a prereq for all of this though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512193</commentid>
    <comment_count>7</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-11-30 15:45:32 -0800</bug_when>
    <thetext>Ok, following up from a discussion with S</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512197</commentid>
    <comment_count>8</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-11-30 15:54:20 -0800</bug_when>
    <thetext>Ok, following up from a discussion with Shawn.
WebExternalTextureLayer (WETL) should not touch m_updateRect directly, because that would conflict with the use of PluginLayerChromium by Pepper through WebPluginContainerImpl (WPCI).

What needs to happen is that both clients (WETL and WPCI) need to give a damage rect to PluginLayerChromium, so that PluginLayerChromium can generate the correct m_updateRect in updateCompositorResources like the other layers, and reset it in pushPropertiesTo.

One possible mechanism to do so is to use the m_dirtyRect, through setNeedsDisplay. The good news is that it&apos;s what WPCI does today. Then PluginLayerChromium::updateCompositorResources would generate the m_updateRect from the m_dirtyRect.

2 things:
- m_dirtyRect is going away with David&apos;s patch. We may want to keep it in PluginLayerChromium (and union it on each call to setNeedsDisplay)
- setNeedsDisplay is in layer space, and we may want to express the dirty rect in texture space instead, so we may want to use a different/new call on PluginLayerChromium and fix WPCI, or clarify the semantics of setNeedsDisplay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514167</commentid>
    <comment_count>9</comment_count>
      <attachid>117694</attachid>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2011-12-02 14:37:51 -0800</bug_when>
    <thetext>Created attachment 117694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514178</commentid>
    <comment_count>10</comment_count>
      <attachid>117694</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-02 14:46:12 -0800</bug_when>
    <thetext>Comment on attachment 117694
Patch

Use --no-review in webkit-patch if you don&apos;t wnat your things marked for review.  You can always submit patches to the EWSes manually using the bubble.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516042</commentid>
    <comment_count>11</comment_count>
      <attachid>117694</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2011-12-06 11:00:22 -0800</bug_when>
    <thetext>Comment on attachment 117694
Patch

This looks fine to me, with two tiny little nits.  Were you thinking of submitting this patch as-is, and we would fix the WebPluginContainerImpl separately?  Or did you want us to do it in the same patch?  It should just be one or two additional lines of code, right? 

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

&gt; Source/WebCore/platform/graphics/chromium/PluginLayerChromium.cpp:66
&gt; +    m_updateRect = m_dirtyLayerRect;

Could we add a comment here, explaining that plugin layers are updated outside of the compositor code, but they notify what regions are updated via the dirty rect?

&gt; Source/WebCore/platform/graphics/chromium/PluginLayerChromium.h:70
&gt; +    FloatRect m_dirtyLayerRect;

Would it be OK if called it either &quot;m_dirtyRect&quot; to follow tradition, or &quot;m_layerSpaceDirtyRect&quot; for clarity?   m_dirtyLayerRect feels a bit like dirty is describing the entire layer instead of the rect =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516047</commentid>
    <comment_count>12</comment_count>
      <attachid>117694</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-12-06 11:04:04 -0800</bug_when>
    <thetext>Comment on attachment 117694
Patch

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

&gt; Source/WebKit/chromium/public/WebExternalTextureLayer.h:72
&gt; +    WEBKIT_EXPORT void setNeedsDisplayRect(const WebFloatRect&amp;);

So, you&apos;re not setting the region, you&apos;re unioning it. Could we name this something like markRectForDisplay or something? (and fix the comment).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516263</commentid>
    <comment_count>13</comment_count>
      <attachid>118114</attachid>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2011-12-06 14:38:43 -0800</bug_when>
    <thetext>Created attachment 118114
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516360</commentid>
    <comment_count>14</comment_count>
      <attachid>118114</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-12-06 16:42:34 -0800</bug_when>
    <thetext>Comment on attachment 118114
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516369</commentid>
    <comment_count>15</comment_count>
      <attachid>118114</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-12-06 16:48:58 -0800</bug_when>
    <thetext>Comment on attachment 118114
Patch

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

&gt; Source/WebKit/chromium/public/platform/WebExternalTextureLayer.h:73
&gt; +    // Marks a region of the layer as needing a display. These are regions are
&gt; +    // collected in a union until the display occurs.
&gt; +    WEBKIT_EXPORT void markRectForDisplay(const WebFloatRect&amp;);

WebContentLayer spells this function &quot;invalidateRect()&quot;, can we try to be consistent?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516613</commentid>
    <comment_count>16</comment_count>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2011-12-07 06:46:50 -0800</bug_when>
    <thetext>As per jamesr@&apos;s suggestion, I renamed markRectForDisplay to invalidateRect.

I added a small change to WebPluginContainerImpl.cpp to propagate damage to CCDamageTracker using the same mechanism as used by WebExternalTextureLayer.

I have tested with both http://www.webkit.org/blog-files/3d-transforms/poster-circle.html (for WebExternalTexture on use_aura=1 builds of Chromium) and simple_vertex_shader_ppapi (for WebPluginContainer).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516616</commentid>
    <comment_count>17</comment_count>
      <attachid>118205</attachid>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2011-12-07 06:51:52 -0800</bug_when>
    <thetext>Created attachment 118205
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516694</commentid>
    <comment_count>18</comment_count>
      <attachid>118205</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-12-07 10:03:30 -0800</bug_when>
    <thetext>Comment on attachment 118205
Patch

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

This seems OK to me, but jamesr should give the final thumbs up.

&gt; Source/WebKit/chromium/public/platform/WebExternalTextureLayer.h:71
&gt; +    // Marks a region of the layer as needing a display. These are regions are

nit: &quot;These are regions are&quot;

So normal WebLayer&apos;s do not support partial invalidations?  Only external texture layers can do that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516696</commentid>
    <comment_count>19</comment_count>
      <attachid>118205</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-12-07 10:04:28 -0800</bug_when>
    <thetext>Comment on attachment 118205
Patch

(Looks like James already reviewed this, and it looks like his concerns were addressed.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516706</commentid>
    <comment_count>20</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-12-07 10:15:08 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; So normal WebLayer&apos;s do not support partial invalidations?  Only external texture layers can do that?

WebContentLayer has partial invalidations too. Though they mean something a bit different: invalidating a WebContentLayer is telling it pixels need to be painted, and the layer needs to be drawn; invalidating a WebExternalTextureLayer means the layer needs to be drawn (pixels have already changed).
WebLayer doesn&apos;t have pixels, so invalidation doesn&apos;t mean anything on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516714</commentid>
    <comment_count>21</comment_count>
      <attachid>118227</attachid>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2011-12-07 10:23:22 -0800</bug_when>
    <thetext>Created attachment 118227
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516720</commentid>
    <comment_count>22</comment_count>
      <attachid>118227</attachid>
    <who name="Jonathan Backer">backer</who>
    <bug_when>2011-12-07 10:24:56 -0800</bug_when>
    <thetext>Comment on attachment 118227
Patch

Fixed nits. Used proper bounds in WebPluginContainerImpl.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516741</commentid>
    <comment_count>23</comment_count>
      <attachid>118227</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-07 10:46:06 -0800</bug_when>
    <thetext>Comment on attachment 118227
Patch

Clearing flags on attachment: 118227

Committed r102250: &lt;http://trac.webkit.org/changeset/102250&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516742</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-07 10:46:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117263</attachid>
            <date>2011-11-30 13:43:19 -0800</date>
            <delta_ts>2011-12-02 14:37:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73485-20111130164317.patch</filename>
            <type>text/plain</type>
            <size>3946</size>
            <attacher name="Jonathan Backer">backer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGI5NTQ5N2E1NTgzNzYzYjE1MzY0NGExYjNkODYxOGZhZjMyOTcxZjUuLjNkMTY2MGM1NjVlNmVi
ZWY0Y2RjYTdkZDAxM2U5NzcwMmRlMTdiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTEtMTEtMzAgIEpvbmF0aGFuIEJhY2tlciAgPGJhY2tlckBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBOT1QgRk9SIFJFVklFVyBQbHVtYiBkYW1h
Z2UgaW4gV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIgdG8gQ0NEYW1hZ2VUcmFja2VyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ4NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYkV4dGVy
bmFsVGV4dHVyZUxheWVyLmg6CisgICAgICAgICogc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI6OnNldFVwZGF0
ZVJlY3QpOgorICAgICAgICAqIHNyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGw6OnNldFVwZGF0ZVJl
Y3QpOgorICAgICAgICAqIHNyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGwuaDoKKwogMjAx
MS0xMS0zMCAgTWljaGFlbCBOb3JkbWFuICA8bWljaGFlbG5AZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBbY2hyb21pdW1dIFdlYlNRTERhdGFiYXNlIGNvdWxkIHVzZSBzb21lIGJldHRlciBlcnJvciBy
ZXBvcnRpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJF
eHRlcm5hbFRleHR1cmVMYXllci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
RXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaAppbmRleCBkYjk3ODg3Y2Y3NDViMjkzOGJkN2E3MzM2NWQ1
YTQyNjRmYWM3MDdkLi5iNzBiM2U0OTdiMmM1N2Y3NzQ2YWIyN2JmNGE4MDg5MGY0ZjUxZDlhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJFeHRlcm5hbFRleHR1
cmVMYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkV4dGVybmFs
VGV4dHVyZUxheWVyLmgKQEAgLTY4LDYgKzY4LDkgQEAgcHVibGljOgogICAgIFdFQktJVF9FWFBP
UlQgdm9pZCBzZXRVVlJlY3QoY29uc3QgV2ViRmxvYXRSZWN0Jik7CiAgICAgV0VCS0lUX0VYUE9S
VCBXZWJGbG9hdFJlY3QgdXZSZWN0KCkgY29uc3Q7CiAKKyAgICAvLyBTZXRzIHRoZSByZWdpb24g
b2YgdGV4dHVyZSB0aGF0IGhhcyBjaGFuZ2VkIGFuZCBuZWVkcyB0byBiZSBkaXNwbGF5ZWQuCisg
ICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFVwZGF0ZVJlY3QoY29uc3QgV2ViRmxvYXRSZWN0Jik7
CisKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KICAgICBXZWJFeHRlcm5hbFRleHR1cmVMYXll
cihjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsPiYpOwog
ICAgIFdlYkV4dGVybmFsVGV4dHVyZUxheWVyJiBvcGVyYXRvcj0oY29uc3QgV1RGOjpQYXNzUmVm
UHRyPFdlYkV4dGVybmFsVGV4dHVyZUxheWVySW1wbD4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmNwcAppbmRleCBiOWQy
NTg5MmUzYjg3MDg3YmMwNTJiNWNlNzZkOGFiOGJiYjA3OTk4Li5iNzZkNDFmN2Y2NWE0MjJhZmJk
Mjc5MmRmNWQ4NzIxOWFkYjhiNzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuY3BwCkBAIC02Niw2ICs2NiwxMSBAQCBX
ZWJGbG9hdFJlY3QgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI6OnV2UmVjdCgpIGNvbnN0CiAgICAg
cmV0dXJuIFdlYkZsb2F0UmVjdChjb25zdFVud3JhcDxXZWJFeHRlcm5hbFRleHR1cmVMYXllcklt
cGw+KCktPnV2UmVjdCgpKTsKIH0KIAordm9pZCBXZWJFeHRlcm5hbFRleHR1cmVMYXllcjo6c2V0
VXBkYXRlUmVjdChjb25zdCBXZWJGbG9hdFJlY3QmIHVwZGF0ZVJlY3QpCit7CisgICAgdW53cmFw
PFdlYkV4dGVybmFsVGV4dHVyZUxheWVySW1wbD4oKS0+c2V0VXBkYXRlUmVjdCh1cGRhdGVSZWN0
KTsKK30KKwogV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI6OldlYkV4dGVybmFsVGV4dHVyZUxheWVy
KGNvbnN0IFBhc3NSZWZQdHI8V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsPiYgbm9kZSkKICAg
ICA6IFdlYkxheWVyKG5vZGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsLmNwcAppbmRleCA3NDM3ODZmNDAx
ODExNDYyNTU4ZDFkZTFjZTI0M2UwOWUxMDdhNzAwLi45NzkwODQ5NGJkZWQ5ZDRmMmE0NzAzNDYz
ZTk3YTBlZDVmNzMyMDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVySW1wbC5jcHAKQEAgLTY2LDQgKzY2LDEwIEBA
IHZvaWQgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsOjpub3RpZnlTeW5jUmVxdWlyZWQoKQog
ICAgICAgICBtX2NsaWVudC0+bm90aWZ5TmVlZHNDb21wb3NpdGUoKTsKIH0KIAordm9pZCBXZWJF
eHRlcm5hbFRleHR1cmVMYXllckltcGw6OnNldFVwZGF0ZVJlY3QoY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiB1cGRhdGVSZWN0KQoreworICAgIG1fdXBkYXRlUmVjdCA9IHVwZGF0ZVJlY3Q7Cisg
ICAgcmVzZXROZWVkc0Rpc3BsYXkoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXll
ckltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxh
eWVySW1wbC5oCmluZGV4IDRmOWE5ODcyN2M5N2Q5YjVjOTU4NzQ0YzI2OWI4ODRkMTg1M2U3NmYu
LjFkZjBiMzY1NjE2YzBjZmZiMmU0NDgxNjA3MDUzZWZlMTA1YzJhYjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVySW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVySW1w
bC5oCkBAIC0zNSw2ICszNSw3IEBAIGNsYXNzIFdlYkxheWVyQ2xpZW50OwogY2xhc3MgV2ViRXh0
ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsIDogcHVibGljIFdlYkNvcmU6OlBsdWdpbkxheWVyQ2hyb21p
dW0sIHB1YmxpYyBXZWJDb3JlOjpDQ0xheWVyRGVsZWdhdGUgewogcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYkV4dGVybmFsVGV4dHVyZUxheWVySW1wbD4gY3JlYXRlKFdlYkxheWVy
Q2xpZW50Kik7CisgICAgdm9pZCBzZXRVcGRhdGVSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYpOwogCiBwcm90ZWN0ZWQ6CiAgICAgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsKFdlYkxh
eWVyQ2xpZW50Kik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117694</attachid>
            <date>2011-12-02 14:37:51 -0800</date>
            <delta_ts>2011-12-06 14:38:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73485-20111202173749.patch</filename>
            <type>text/plain</type>
            <size>5272</size>
            <attacher name="Jonathan Backer">backer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDNjNzk5ODUxZTdmMGZk
NTE3MzgxZTkyM2VhNDAxZGRiMTU3MmMwYy4uYjZmN2EyYmMwYTQyMTAwYTEyY2UxNWE4YzMzNTMz
MWU1OWIzZTY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEyLTAyICBKb25h
dGhhbiBCYWNrZXIgIDxiYWNrZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
Tk9UIEZPUiBSRVZJRVcgUGx1bWIgZGFtYWdlIGluIFdlYkV4dGVybmFsVGV4dHVyZUxheWVyIHRv
IENDRGFtYWdlVHJhY2tlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzM0ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsdWdpbkxheWVyQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luTGF5ZXJDaHJvbWl1bTo6c2V0TmVlZHNEaXNw
bGF5UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5MYXllckNocm9taXVtOjp1cGRhdGVD
b21wb3NpdG9yUmVzb3VyY2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9QbHVnaW5MYXllckNocm9taXVtLmg6CisKIDIwMTEtMTItMDIgIFNhbWkgS3lvc3RpbGEgIDxz
a3lvc3RpbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBNYWtlIENDSW5wdXRI
YW5kbGVyIHNjcm9sbGluZyBzdGF0ZWZ1bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAw
OGI4N2Q4ZDFmOTI3YjBiOWQzMmJmMzc3NjdkNjkwYjY4NzNjZTkyLi45NDdlMTQ3Mzc5NTQyNzQx
YjQ3ZGZjOTJlYjRhYWUyNTI2Y2NjYWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDExLTEyLTAyICBKb25hdGhhbiBCYWNrZXIgIDxiYWNrZXJAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gTk9UIEZPUiBSRVZJRVcgUGx1bWIgZGFtYWdl
IGluIFdlYkV4dGVybmFsVGV4dHVyZUxheWVyIHRvIENDRGFtYWdlVHJhY2tlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0ODUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJFeHRlcm5h
bFRleHR1cmVMYXllci5oOgorICAgICAgICAqIHNyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkV4dGVybmFsVGV4dHVyZUxheWVyOjpzZXROZWVkc0Rp
c3BsYXlSZWN0KToKKwogMjAxMS0xMi0wMiAgU2FtaSBLeW9zdGlsYSAgPHNreW9zdGlsQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIE1ha2UgQ0NJbnB1dEhhbmRsZXIgc2Nyb2xs
aW5nIHN0YXRlZnVsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9QbHVnaW5MYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsdWdpbkxheWVyQ2hyb21pdW0uY3BwCmluZGV4IGJlYzMz
MTliZWY5YmFmMWM0ZWU5OTJmMThjZGE0NjA4MTZiZmUyZmEuLjkwYzAwNzQ0ZTJlODA2MzZmMTcz
ZDhlODk1MTRjZTA2Y2YwZTNiZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1BsdWdpbkxheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsdWdpbkxheWVyQ2hyb21pdW0uY3Bw
CkBAIC01Miw2ICs1MiwyMSBAQCBQbHVnaW5MYXllckNocm9taXVtOjpQbHVnaW5MYXllckNocm9t
aXVtKENDTGF5ZXJEZWxlZ2F0ZSogZGVsZWdhdGUpCiB7CiB9CiAKK3ZvaWQgUGx1Z2luTGF5ZXJD
aHJvbWl1bTo6c2V0TmVlZHNEaXNwbGF5UmVjdChjb25zdCBGbG9hdFJlY3QmIGRpcnR5UmVjdCkK
K3sKKyAgICBMYXllckNocm9taXVtOjpzZXROZWVkc0Rpc3BsYXlSZWN0KGRpcnR5UmVjdCk7Cisg
ICAgbV9kaXJ0eUxheWVyUmVjdC51bml0ZShkaXJ0eVJlY3QpOworfQorCit2b2lkIFBsdWdpbkxh
eWVyQ2hyb21pdW06OnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoR3JhcGhpY3NDb250ZXh0M0Qq
IHJlbmRlcmVyQ29udGV4dCwgQ0NUZXh0dXJlVXBkYXRlciYpCit7CisgICAgaWYgKCFtX25lZWRz
RGlzcGxheSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV91cGRhdGVSZWN0ID0gbV9kaXJ0eUxh
eWVyUmVjdDsKKyAgICBtX2RpcnR5TGF5ZXJSZWN0ID0gRmxvYXRSZWN0KCk7Cit9CisKIFBhc3NS
ZWZQdHI8Q0NMYXllckltcGw+IFBsdWdpbkxheWVyQ2hyb21pdW06OmNyZWF0ZUNDTGF5ZXJJbXBs
KCkKIHsKICAgICByZXR1cm4gQ0NQbHVnaW5MYXllckltcGw6OmNyZWF0ZShtX2xheWVySWQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGx1
Z2luTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vUGx1Z2luTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDU1YjhkZjZiOTUzOTQyZGE4NGU2NWM4
MmUyNWFmMDNkMWJmMWFiOGMuLjQ5ZGE0Njg3YzM4YmIxZTZkNzZkZGU3NDU1ZDRlMjhlY2NmMjQ3
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L1BsdWdpbkxheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9QbHVnaW5MYXllckNocm9taXVtLmgKQEAgLTM3LDcgKzM3LDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUGx1Z2luTGF5ZXJDaHJvbWl1bSA6IHB1YmxpYyBMYXll
ckNocm9taXVtIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbHVnaW5MYXllckNo
cm9taXVtPiBjcmVhdGUoQ0NMYXllckRlbGVnYXRlKiA9IDApOworICAgIHZpcnR1YWwgdm9pZCBz
ZXROZWVkc0Rpc3BsYXlSZWN0KGNvbnN0IEZsb2F0UmVjdCYgZGlydHlSZWN0KTsKICAgICB2aXJ0
dWFsIGJvb2wgZHJhd3NDb250ZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKEdyYXBoaWNzQ29udGV4dDNEKiwgQ0NU
ZXh0dXJlVXBkYXRlciYpOwogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPENDTGF5ZXJJbXBsPiBj
cmVhdGVDQ0xheWVySW1wbCgpOwogCkBAIC02NSw2ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgaW50
IG1faW9TdXJmYWNlV2lkdGg7CiAgICAgaW50IG1faW9TdXJmYWNlSGVpZ2h0OwogICAgIHVpbnQz
Ml90IG1faW9TdXJmYWNlSWQ7CisgICAgRmxvYXRSZWN0IG1fZGlydHlMYXllclJlY3Q7CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJFeHRlcm5h
bFRleHR1cmVMYXllci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRXh0ZXJu
YWxUZXh0dXJlTGF5ZXIuaAppbmRleCBkYjk3ODg3Y2Y3NDViMjkzOGJkN2E3MzM2NWQ1YTQyNjRm
YWM3MDdkLi5mNTVhNWVhOGRmMTEyM2JiNTMzMjU5MWU0MTlmOGY5NjBjZDU5MzhmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJFeHRlcm5hbFRleHR1cmVMYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkV4dGVybmFsVGV4dHVy
ZUxheWVyLmgKQEAgLTY4LDYgKzY4LDkgQEAgcHVibGljOgogICAgIFdFQktJVF9FWFBPUlQgdm9p
ZCBzZXRVVlJlY3QoY29uc3QgV2ViRmxvYXRSZWN0Jik7CiAgICAgV0VCS0lUX0VYUE9SVCBXZWJG
bG9hdFJlY3QgdXZSZWN0KCkgY29uc3Q7CiAKKyAgICAvLyBTZXRzIHRoZSByZWdpb24gb2YgdGhl
IGxheWVyIHRoYXQgaGFzIGNoYW5nZWQgYW5kIG5lZWRzIGRpc3BsYXkuCisgICAgV0VCS0lUX0VY
UE9SVCB2b2lkIHNldE5lZWRzRGlzcGxheVJlY3QoY29uc3QgV2ViRmxvYXRSZWN0Jik7CisKICNp
ZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KICAgICBXZWJFeHRlcm5hbFRleHR1cmVMYXllcihjb25z
dCBXVEY6OlBhc3NSZWZQdHI8V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsPiYpOwogICAgIFdl
YkV4dGVybmFsVGV4dHVyZUxheWVyJiBvcGVyYXRvcj0oY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdl
YkV4dGVybmFsVGV4dHVyZUxheWVySW1wbD4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmNwcAppbmRleCBiOWQyNTg5MmUz
Yjg3MDg3YmMwNTJiNWNlNzZkOGFiOGJiYjA3OTk4Li5iMmRkMWIyY2Y0NTYxMzc5ZTQzMWIxYmMz
N2RiZDZlN2UxYjJjN2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJFeHRlcm5hbFRleHR1cmVMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuY3BwCkBAIC02Niw2ICs2NiwxMSBAQCBXZWJGbG9h
dFJlY3QgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI6OnV2UmVjdCgpIGNvbnN0CiAgICAgcmV0dXJu
IFdlYkZsb2F0UmVjdChjb25zdFVud3JhcDxXZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGw+KCkt
PnV2UmVjdCgpKTsKIH0KIAordm9pZCBXZWJFeHRlcm5hbFRleHR1cmVMYXllcjo6c2V0TmVlZHNE
aXNwbGF5UmVjdChjb25zdCBXZWJGbG9hdFJlY3QmIHVwZGF0ZVJlY3QpCit7CisgICAgdW53cmFw
PFdlYkV4dGVybmFsVGV4dHVyZUxheWVySW1wbD4oKS0+c2V0TmVlZHNEaXNwbGF5UmVjdCh1cGRh
dGVSZWN0KTsKK30KKwogV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI6OldlYkV4dGVybmFsVGV4dHVy
ZUxheWVyKGNvbnN0IFBhc3NSZWZQdHI8V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsPiYgbm9k
ZSkKICAgICA6IFdlYkxheWVyKG5vZGUpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118114</attachid>
            <date>2011-12-06 14:38:43 -0800</date>
            <delta_ts>2011-12-07 06:51:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73485-20111206173842.patch</filename>
            <type>text/plain</type>
            <size>5818</size>
            <attacher name="Jonathan Backer">backer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjYzMGZjMWRjODg4MmFh
MzYzMjQ5NGMzNGI5NjNlMzg5MGI3MzAyNC4uODE3YWRiMzE0OTMwNjAwMjJkMGYxMDA3NWU1ODNl
YmJiYmM4NThhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEyLTA2ICBKb25h
dGhhbiBCYWNrZXIgIDxiYWNrZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
Tk9UIEZPUiBSRVZJRVcgUGx1bWIgZGFtYWdlIGluIFdlYkV4dGVybmFsVGV4dHVyZUxheWVyIHRv
IENDRGFtYWdlVHJhY2tlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzM0ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsdWdpbkxheWVyQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29tcG9z
aXRvclJlc291cmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5MYXllckNocm9taXVtOjpt
YXJrUmVjdEZvckRpc3BsYXkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L1BsdWdpbkxheWVyQ2hyb21pdW0uaDoKKwogMjAxMS0xMi0wNiAgQmVuamFtaW4gUG91bGFpbiAg
PGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU2ltcGxpZnkgS1VSTCdzIGNoZWNrRW5j
b2RlZFN0cmluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDI0ZjQ3ODM0OTM4ZDFm
NzM2OTBlYTAzMmMwYTMwNTUyNDRhNzFmNjcuLjg0NDVmMjM0YmU5MWJkNjNjM2E0NTExZGRhYmU4
N2Y4ZTk2ZWEwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMTItMDYgIEpvbmF0aGFuIEJhY2tlciAgPGJhY2tlckBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW2Nocm9taXVtXSBOT1QgRk9SIFJFVklFVyBQbHVtYiBkYW1hZ2UgaW4gV2ViRXh0ZXJu
YWxUZXh0dXJlTGF5ZXIgdG8gQ0NEYW1hZ2VUcmFja2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL3BsYXRmb3JtL1dlYkV4dGVybmFsVGV4
dHVyZUxheWVyLmg6CisgICAgICAgICogc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI6Om1hcmtSZWN0Rm9yRGlz
cGxheSk6CisKIDIwMTEtMTItMDYgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBjaHJvbWl1bSBleHBlY3RhdGlvbnMgdXBkYXRlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGx1
Z2luTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9QbHVnaW5MYXllckNocm9taXVtLmNwcAppbmRleCBiZWMzMzE5YmVmOWJhZjFjNGVl
OTkyZjE4Y2RhNDYwODE2YmZlMmZhLi5hMGJlMzM4YTY1ZTM1OTk3NzE4OGFkNDE5N2Y2NzVmMmVk
ZWYxM2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9QbHVnaW5MYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9QbHVnaW5MYXllckNocm9taXVtLmNwcApAQCAtNTIsNiArNTIs
MTcgQEAgUGx1Z2luTGF5ZXJDaHJvbWl1bTo6UGx1Z2luTGF5ZXJDaHJvbWl1bShDQ0xheWVyRGVs
ZWdhdGUqIGRlbGVnYXRlKQogewogfQogCit2b2lkIFBsdWdpbkxheWVyQ2hyb21pdW06OnVwZGF0
ZUNvbXBvc2l0b3JSZXNvdXJjZXMoR3JhcGhpY3NDb250ZXh0M0QqIHJlbmRlcmVyQ29udGV4dCwg
Q0NUZXh0dXJlVXBkYXRlciYpCit7CisgICAgaWYgKCFtX25lZWRzRGlzcGxheSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgLy8gUGx1Z2luTGF5ZXJzIGFyZSB1cGRhdGVkIGV4dGVybmFsbHkgKG91
dHNpZGUgb2YgdGhlIGNvbXBvc2l0b3IpLgorICAgIC8vIHxtX2RpcnR5UmVjdHwgY292ZXJzIHRo
ZSByZWdpb24gdGhhdCBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgbGFzdCBjb21wb3NpdGUuCisgICAg
bV91cGRhdGVSZWN0ID0gbV9kaXJ0eVJlY3Q7CisgICAgbV9kaXJ0eVJlY3QgPSBGbG9hdFJlY3Qo
KTsKK30KKwogUGFzc1JlZlB0cjxDQ0xheWVySW1wbD4gUGx1Z2luTGF5ZXJDaHJvbWl1bTo6Y3Jl
YXRlQ0NMYXllckltcGwoKQogewogICAgIHJldHVybiBDQ1BsdWdpbkxheWVySW1wbDo6Y3JlYXRl
KG1fbGF5ZXJJZCk7CkBAIC05OSw1ICsxMTAsMTEgQEAgdm9pZCBQbHVnaW5MYXllckNocm9taXVt
OjpwdXNoUHJvcGVydGllc1RvKENDTGF5ZXJJbXBsKiBsYXllcikKICAgICBwbHVnaW5MYXllci0+
c2V0SU9TdXJmYWNlUHJvcGVydGllcyhtX2lvU3VyZmFjZVdpZHRoLCBtX2lvU3VyZmFjZUhlaWdo
dCwgbV9pb1N1cmZhY2VJZCk7CiB9CiAKK3ZvaWQgUGx1Z2luTGF5ZXJDaHJvbWl1bTo6bWFya1Jl
Y3RGb3JEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCYgZGlydHlSZWN0KQoreworICAgIHNldE5lZWRz
RGlzcGxheVJlY3QoZGlydHlSZWN0KTsKKyAgICBtX2RpcnR5UmVjdC51bml0ZShkaXJ0eVJlY3Qp
OworfQorCiB9CiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGx1Z2luTGF5
ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
UGx1Z2luTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDU1YjhkZjZiOTUzOTQyZGE4NGU2NWM4MmUyNWFm
MDNkMWJmMWFiOGMuLmU5YjA1ZDBlZTRmNTg0NDFiY2RiYjZlMjk4ZjBjMWY5MTEwZTFlNzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsdWdp
bkxheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9QbHVnaW5MYXllckNocm9taXVtLmgKQEAgLTM4LDYgKzM4LDcgQEAgY2xhc3MgUGx1
Z2luTGF5ZXJDaHJvbWl1bSA6IHB1YmxpYyBMYXllckNocm9taXVtIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxQbHVnaW5MYXllckNocm9taXVtPiBjcmVhdGUoQ0NMYXllckRlbGVn
YXRlKiA9IDApOwogICAgIHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoR3Jh
cGhpY3NDb250ZXh0M0QqLCBDQ1RleHR1cmVVcGRhdGVyJik7CiAKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8Q0NMYXllckltcGw+IGNyZWF0ZUNDTGF5ZXJJbXBsKCk7CiAKQEAgLTU1LDYgKzU2LDgg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHB1c2hQcm9wZXJ0aWVzVG8oQ0NMYXllcklt
cGwqKTsKIAorICAgIHZvaWQgbWFya1JlY3RGb3JEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCYgZGly
dHlSZWN0KTsKKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFBsdWdpbkxheWVyQ2hyb21pdW0o
Q0NMYXllckRlbGVnYXRlKik7CiAKQEAgLTY1LDYgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBpbnQg
bV9pb1N1cmZhY2VXaWR0aDsKICAgICBpbnQgbV9pb1N1cmZhY2VIZWlnaHQ7CiAgICAgdWludDMy
X3QgbV9pb1N1cmZhY2VJZDsKKyAgICBGbG9hdFJlY3QgbV9kaXJ0eVJlY3Q7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJFeHRl
cm5hbFRleHR1cmVMYXllci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZv
cm0vV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaAppbmRleCAwYTkwMmYxZWVlNDFjODAwYzljYzUy
MGQ0MzUxY2E5OGI4MjlhMGIzLi5hNWYxODE4MGUwYTYxNTFkNTY3OTNhN2ZjYzk2OTIyMDA0NDlk
OGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9X
ZWJFeHRlcm5hbFRleHR1cmVMYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL3BsYXRmb3JtL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmgKQEAgLTY4LDYgKzY4LDEwIEBA
IHB1YmxpYzoKICAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0VVZSZWN0KGNvbnN0IFdlYkZsb2F0
UmVjdCYpOwogICAgIFdFQktJVF9FWFBPUlQgV2ViRmxvYXRSZWN0IHV2UmVjdCgpIGNvbnN0Owog
CisgICAgLy8gTWFya3MgYSByZWdpb24gb2YgdGhlIGxheWVyIGFzIG5lZWRpbmcgYSBkaXNwbGF5
LiBUaGVzZSBhcmUgcmVnaW9ucyBhcmUKKyAgICAvLyBjb2xsZWN0ZWQgaW4gYSB1bmlvbiB1bnRp
bCB0aGUgZGlzcGxheSBvY2N1cnMuCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIG1hcmtSZWN0Rm9y
RGlzcGxheShjb25zdCBXZWJGbG9hdFJlY3QmKTsKKwogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElP
TgogICAgIFdlYkV4dGVybmFsVGV4dHVyZUxheWVyKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJF
eHRlcm5hbFRleHR1cmVMYXllckltcGw+Jik7CiAgICAgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIm
IG9wZXJhdG9yPShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJ
bXBsPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJu
YWxUZXh0dXJlTGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJu
YWxUZXh0dXJlTGF5ZXIuY3BwCmluZGV4IDgzZmE5Y2NlYTg0ZWY5ZWVjNDE1MzE5NWYxMjA1Mjc5
MWIwYzRlNGEuLjkzNWExZjJiNGQ1YTQ4ZWVhNWM1MDI3YTc1MDVjNmQ4ZTRlMjkzYzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVM
YXllci5jcHAKQEAgLTY2LDYgKzY2LDExIEBAIFdlYkZsb2F0UmVjdCBXZWJFeHRlcm5hbFRleHR1
cmVMYXllcjo6dXZSZWN0KCkgY29uc3QKICAgICByZXR1cm4gV2ViRmxvYXRSZWN0KGNvbnN0VW53
cmFwPFdlYkV4dGVybmFsVGV4dHVyZUxheWVySW1wbD4oKS0+dXZSZWN0KCkpOwogfQogCit2b2lk
IFdlYkV4dGVybmFsVGV4dHVyZUxheWVyOjptYXJrUmVjdEZvckRpc3BsYXkoY29uc3QgV2ViRmxv
YXRSZWN0JiB1cGRhdGVSZWN0KQoreworICAgIHVud3JhcDxXZWJFeHRlcm5hbFRleHR1cmVMYXll
ckltcGw+KCktPm1hcmtSZWN0Rm9yRGlzcGxheSh1cGRhdGVSZWN0KTsKK30KKwogV2ViRXh0ZXJu
YWxUZXh0dXJlTGF5ZXI6OldlYkV4dGVybmFsVGV4dHVyZUxheWVyKGNvbnN0IFBhc3NSZWZQdHI8
V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsPiYgbm9kZSkKICAgICA6IFdlYkxheWVyKG5vZGUp
CiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118205</attachid>
            <date>2011-12-07 06:51:52 -0800</date>
            <delta_ts>2011-12-07 10:23:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73485-20111207095150.patch</filename>
            <type>text/plain</type>
            <size>6646</size>
            <attacher name="Jonathan Backer">backer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjYzMGZjMWRjODg4MmFh
MzYzMjQ5NGMzNGI5NjNlMzg5MGI3MzAyNC4uMzhjZWUzZDY3MjNlZmQ3N2E4Y2U5YzRhOTU0ZmI0
YTU1NzhlMjk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEyLTA3ICBKb25h
dGhhbiBCYWNrZXIgIDxiYWNrZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
UGx1bWIgZGFtYWdlIGZyb20gV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIgYW5kIFdlYlBsdWdpbkNv
bnRhaW5lciB0byBDQ0RhbWFnZVRyYWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTczNDg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbHVnaW5MYXll
ckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkxheWVyQ2hyb21pdW06OnVw
ZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luTGF5ZXJD
aHJvbWl1bTo6aW52YWxpZGF0ZVJlY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1BsdWdpbkxheWVyQ2hyb21pdW0uaDoKKwogMjAxMS0xMi0wNiAgQmVuamFtaW4gUG91
bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU2ltcGxpZnkgS1VSTCdzIGNo
ZWNrRW5jb2RlZFN0cmluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDI0ZjQ3ODM0
OTM4ZDFmNzM2OTBlYTAzMmMwYTMwNTUyNDRhNzFmNjcuLmQxNmM4YmExMDU2YWE4OTdhNDk3MzYw
MzIzY2M3NjM1M2ZkOGEzNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTEtMTItMDcgIEpvbmF0aGFuIEJhY2tlciAgPGJhY2tlckBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgW2Nocm9taXVtXSBQbHVtYiBkYW1hZ2UgZnJvbSBXZWJFeHRlcm5hbFRleHR1
cmVMYXllciBhbmQgV2ViUGx1Z2luQ29udGFpbmVyIHRvIENDRGFtYWdlVHJhY2tlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0ODUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9wbGF0Zm9y
bS9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5oOgorICAgICAgICAqIHNyYy9XZWJFeHRlcm5hbFRl
eHR1cmVMYXllci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkV4dGVybmFsVGV4dHVyZUxheWVy
OjppbnZhbGlkYXRlUmVjdCk6CisgICAgICAgICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjpjb21taXRCYWNr
aW5nVGV4dHVyZSk6CisKIDIwMTEtMTItMDYgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBjaHJvbWl1bSBleHBlY3RhdGlvbnMgdXBk
YXRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vUGx1Z2luTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9QbHVnaW5MYXllckNocm9taXVtLmNwcAppbmRleCBiZWMzMzE5YmVmOWJh
ZjFjNGVlOTkyZjE4Y2RhNDYwODE2YmZlMmZhLi5lM2M1YzQ4Zjc5MjBmZWVjNzA4ZTRkYWM3YWVm
NjRlMjNlOGFhZjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9QbHVnaW5MYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbHVnaW5MYXllckNocm9taXVtLmNwcApAQCAtNTIs
NiArNTIsMTcgQEAgUGx1Z2luTGF5ZXJDaHJvbWl1bTo6UGx1Z2luTGF5ZXJDaHJvbWl1bShDQ0xh
eWVyRGVsZWdhdGUqIGRlbGVnYXRlKQogewogfQogCit2b2lkIFBsdWdpbkxheWVyQ2hyb21pdW06
OnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoR3JhcGhpY3NDb250ZXh0M0QqIHJlbmRlcmVyQ29u
dGV4dCwgQ0NUZXh0dXJlVXBkYXRlciYpCit7CisgICAgaWYgKCFtX25lZWRzRGlzcGxheSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgLy8gUGx1Z2luTGF5ZXJzIGFyZSB1cGRhdGVkIGV4dGVybmFs
bHkgKG91dHNpZGUgb2YgdGhlIGNvbXBvc2l0b3IpLgorICAgIC8vIHxtX2RpcnR5UmVjdHwgY292
ZXJzIHRoZSByZWdpb24gdGhhdCBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgbGFzdCBjb21wb3NpdGUu
CisgICAgbV91cGRhdGVSZWN0ID0gbV9kaXJ0eVJlY3Q7CisgICAgbV9kaXJ0eVJlY3QgPSBGbG9h
dFJlY3QoKTsKK30KKwogUGFzc1JlZlB0cjxDQ0xheWVySW1wbD4gUGx1Z2luTGF5ZXJDaHJvbWl1
bTo6Y3JlYXRlQ0NMYXllckltcGwoKQogewogICAgIHJldHVybiBDQ1BsdWdpbkxheWVySW1wbDo6
Y3JlYXRlKG1fbGF5ZXJJZCk7CkBAIC05OSw1ICsxMTAsMTEgQEAgdm9pZCBQbHVnaW5MYXllckNo
cm9taXVtOjpwdXNoUHJvcGVydGllc1RvKENDTGF5ZXJJbXBsKiBsYXllcikKICAgICBwbHVnaW5M
YXllci0+c2V0SU9TdXJmYWNlUHJvcGVydGllcyhtX2lvU3VyZmFjZVdpZHRoLCBtX2lvU3VyZmFj
ZUhlaWdodCwgbV9pb1N1cmZhY2VJZCk7CiB9CiAKK3ZvaWQgUGx1Z2luTGF5ZXJDaHJvbWl1bTo6
aW52YWxpZGF0ZVJlY3QoY29uc3QgRmxvYXRSZWN0JiBkaXJ0eVJlY3QpCit7CisgICAgc2V0TmVl
ZHNEaXNwbGF5UmVjdChkaXJ0eVJlY3QpOworICAgIG1fZGlydHlSZWN0LnVuaXRlKGRpcnR5UmVj
dCk7Cit9CisKIH0KICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbHVnaW5M
YXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9QbHVnaW5MYXllckNocm9taXVtLmgKaW5kZXggNTViOGRmNmI5NTM5NDJkYTg0ZTY1YzgyZTI1
YWYwM2QxYmYxYWI4Yy4uMjc3YTk2OWM1OGNjM2Y1ODM0NTg3ZTA3NzhmZmQxYzYyNzdkNjZmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGx1
Z2luTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1BsdWdpbkxheWVyQ2hyb21pdW0uaApAQCAtMzgsNiArMzgsNyBAQCBjbGFzcyBQ
bHVnaW5MYXllckNocm9taXVtIDogcHVibGljIExheWVyQ2hyb21pdW0gewogcHVibGljOgogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFBsdWdpbkxheWVyQ2hyb21pdW0+IGNyZWF0ZShDQ0xheWVyRGVs
ZWdhdGUqID0gMCk7CiAgICAgdmlydHVhbCBib29sIGRyYXdzQ29udGVudCgpIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyhH
cmFwaGljc0NvbnRleHQzRCosIENDVGV4dHVyZVVwZGF0ZXImKTsKIAogICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxDQ0xheWVySW1wbD4gY3JlYXRlQ0NMYXllckltcGwoKTsKIApAQCAtNTUsNiArNTYs
OCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcHVzaFByb3BlcnRpZXNUbyhDQ0xheWVy
SW1wbCopOwogCisgICAgdm9pZCBpbnZhbGlkYXRlUmVjdChjb25zdCBGbG9hdFJlY3QmIGRpcnR5
UmVjdCk7CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBQbHVnaW5MYXllckNocm9taXVtKEND
TGF5ZXJEZWxlZ2F0ZSopOwogCkBAIC02NSw2ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgaW50IG1f
aW9TdXJmYWNlV2lkdGg7CiAgICAgaW50IG1faW9TdXJmYWNlSGVpZ2h0OwogICAgIHVpbnQzMl90
IG1faW9TdXJmYWNlSWQ7CisgICAgRmxvYXRSZWN0IG1fZGlydHlSZWN0OwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViRXh0ZXJu
YWxUZXh0dXJlTGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3Jt
L1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmgKaW5kZXggMGE5MDJmMWVlZTQxYzgwMGM5Y2M1MjBk
NDM1MWNhOThiODI5YTBiMy4uZDdmNWVjZGE0NTFkNmJmNjIyMjFmOTQ2MmNlNjE5YWU2OWE3ZjAw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2Vi
RXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9wbGF0Zm9ybS9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5oCkBAIC02OCw2ICs2OCwxMCBAQCBw
dWJsaWM6CiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFVWUmVjdChjb25zdCBXZWJGbG9hdFJl
Y3QmKTsKICAgICBXRUJLSVRfRVhQT1JUIFdlYkZsb2F0UmVjdCB1dlJlY3QoKSBjb25zdDsKIAor
ICAgIC8vIE1hcmtzIGEgcmVnaW9uIG9mIHRoZSBsYXllciBhcyBuZWVkaW5nIGEgZGlzcGxheS4g
VGhlc2UgYXJlIHJlZ2lvbnMgYXJlCisgICAgLy8gY29sbGVjdGVkIGluIGEgdW5pb24gdW50aWwg
dGhlIGRpc3BsYXkgb2NjdXJzLgorICAgIFdFQktJVF9FWFBPUlQgdm9pZCBpbnZhbGlkYXRlUmVj
dChjb25zdCBXZWJGbG9hdFJlY3QmKTsKKwogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgogICAg
IFdlYkV4dGVybmFsVGV4dHVyZUxheWVyKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJFeHRlcm5h
bFRleHR1cmVMYXllckltcGw+Jik7CiAgICAgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXImIG9wZXJh
dG9yPShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsPiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0
dXJlTGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0
dXJlTGF5ZXIuY3BwCmluZGV4IDgzZmE5Y2NlYTg0ZWY5ZWVjNDE1MzE5NWYxMjA1Mjc5MWIwYzRl
NGEuLjVhMDZjMTc2YjI1MjdlNWNkNmRmZDIxODEzMjM4MWI1MDYwN2Y1MTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5j
cHAKQEAgLTY2LDYgKzY2LDExIEBAIFdlYkZsb2F0UmVjdCBXZWJFeHRlcm5hbFRleHR1cmVMYXll
cjo6dXZSZWN0KCkgY29uc3QKICAgICByZXR1cm4gV2ViRmxvYXRSZWN0KGNvbnN0VW53cmFwPFdl
YkV4dGVybmFsVGV4dHVyZUxheWVySW1wbD4oKS0+dXZSZWN0KCkpOwogfQogCit2b2lkIFdlYkV4
dGVybmFsVGV4dHVyZUxheWVyOjppbnZhbGlkYXRlUmVjdChjb25zdCBXZWJGbG9hdFJlY3QmIHVw
ZGF0ZVJlY3QpCit7CisgICAgdW53cmFwPFdlYkV4dGVybmFsVGV4dHVyZUxheWVySW1wbD4oKS0+
aW52YWxpZGF0ZVJlY3QodXBkYXRlUmVjdCk7Cit9CisKIFdlYkV4dGVybmFsVGV4dHVyZUxheWVy
OjpXZWJFeHRlcm5hbFRleHR1cmVMYXllcihjb25zdCBQYXNzUmVmUHRyPFdlYkV4dGVybmFsVGV4
dHVyZUxheWVySW1wbD4mIG5vZGUpCiAgICAgOiBXZWJMYXllcihub2RlKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcApp
bmRleCAwOTExYjQ1ZGZlZDUyMDZhYTI5YjUwNTg0NGI1MjEyODg4OWUzNGFkLi5iMmRkY2Q3OTRm
YjdjOTY5Y2NmOWNiZDM0N2JhNjM4ZWYyYmE3NzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcApAQCAtMzY5LDggKzM2
OSw4IEBAIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c2V0QmFja2luZ0lPU3VyZmFjZUlk
KGludCB3aWR0aCwKIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6Y29tbWl0QmFja2luZ1Rl
eHR1cmUoKQogewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBpZiAocGxh
dGZvcm1MYXllcigpKQotICAgICAgICBwbGF0Zm9ybUxheWVyKCktPnNldE5lZWRzRGlzcGxheSgp
OworICAgIGlmIChtX3BsYXRmb3JtTGF5ZXIuZ2V0KCkpCisgICAgICAgIG1fcGxhdGZvcm1MYXll
ci0+aW52YWxpZGF0ZVJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgbV9wbGF0Zm9ybUxheWVy
LT5jb250ZW50Qm91bmRzKCkpKTsKICNlbmRpZgogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118227</attachid>
            <date>2011-12-07 10:23:22 -0800</date>
            <delta_ts>2011-12-07 10:46:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73485-20111207132320.patch</filename>
            <type>text/plain</type>
            <size>6635</size>
            <attacher name="Jonathan Backer">backer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjYzMGZjMWRjODg4MmFh
MzYzMjQ5NGMzNGI5NjNlMzg5MGI3MzAyNC4uMzhjZWUzZDY3MjNlZmQ3N2E4Y2U5YzRhOTU0ZmI0
YTU1NzhlMjk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEyLTA3ICBKb25h
dGhhbiBCYWNrZXIgIDxiYWNrZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
UGx1bWIgZGFtYWdlIGZyb20gV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIgYW5kIFdlYlBsdWdpbkNv
bnRhaW5lciB0byBDQ0RhbWFnZVRyYWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTczNDg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbHVnaW5MYXll
ckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkxheWVyQ2hyb21pdW06OnVw
ZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luTGF5ZXJD
aHJvbWl1bTo6aW52YWxpZGF0ZVJlY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1BsdWdpbkxheWVyQ2hyb21pdW0uaDoKKwogMjAxMS0xMi0wNiAgQmVuamFtaW4gUG91
bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU2ltcGxpZnkgS1VSTCdzIGNo
ZWNrRW5jb2RlZFN0cmluZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDI0ZjQ3ODM0
OTM4ZDFmNzM2OTBlYTAzMmMwYTMwNTUyNDRhNzFmNjcuLmQxNmM4YmExMDU2YWE4OTdhNDk3MzYw
MzIzY2M3NjM1M2ZkOGEzNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTEtMTItMDcgIEpvbmF0aGFuIEJhY2tlciAgPGJhY2tlckBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgW2Nocm9taXVtXSBQbHVtYiBkYW1hZ2UgZnJvbSBXZWJFeHRlcm5hbFRleHR1
cmVMYXllciBhbmQgV2ViUGx1Z2luQ29udGFpbmVyIHRvIENDRGFtYWdlVHJhY2tlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0ODUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9wbGF0Zm9y
bS9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5oOgorICAgICAgICAqIHNyYy9XZWJFeHRlcm5hbFRl
eHR1cmVMYXllci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkV4dGVybmFsVGV4dHVyZUxheWVy
OjppbnZhbGlkYXRlUmVjdCk6CisgICAgICAgICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjpjb21taXRCYWNr
aW5nVGV4dHVyZSk6CisKIDIwMTEtMTItMDYgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBjaHJvbWl1bSBleHBlY3RhdGlvbnMgdXBk
YXRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vUGx1Z2luTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9QbHVnaW5MYXllckNocm9taXVtLmNwcAppbmRleCBiZWMzMzE5YmVmOWJh
ZjFjNGVlOTkyZjE4Y2RhNDYwODE2YmZlMmZhLi5lM2M1YzQ4Zjc5MjBmZWVjNzA4ZTRkYWM3YWVm
NjRlMjNlOGFhZjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9QbHVnaW5MYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbHVnaW5MYXllckNocm9taXVtLmNwcApAQCAtNTIs
NiArNTIsMTcgQEAgUGx1Z2luTGF5ZXJDaHJvbWl1bTo6UGx1Z2luTGF5ZXJDaHJvbWl1bShDQ0xh
eWVyRGVsZWdhdGUqIGRlbGVnYXRlKQogewogfQogCit2b2lkIFBsdWdpbkxheWVyQ2hyb21pdW06
OnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoR3JhcGhpY3NDb250ZXh0M0QqIHJlbmRlcmVyQ29u
dGV4dCwgQ0NUZXh0dXJlVXBkYXRlciYpCit7CisgICAgaWYgKCFtX25lZWRzRGlzcGxheSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgLy8gUGx1Z2luTGF5ZXJzIGFyZSB1cGRhdGVkIGV4dGVybmFs
bHkgKG91dHNpZGUgb2YgdGhlIGNvbXBvc2l0b3IpLgorICAgIC8vIHxtX2RpcnR5UmVjdHwgY292
ZXJzIHRoZSByZWdpb24gdGhhdCBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgbGFzdCBjb21wb3NpdGUu
CisgICAgbV91cGRhdGVSZWN0ID0gbV9kaXJ0eVJlY3Q7CisgICAgbV9kaXJ0eVJlY3QgPSBGbG9h
dFJlY3QoKTsKK30KKwogUGFzc1JlZlB0cjxDQ0xheWVySW1wbD4gUGx1Z2luTGF5ZXJDaHJvbWl1
bTo6Y3JlYXRlQ0NMYXllckltcGwoKQogewogICAgIHJldHVybiBDQ1BsdWdpbkxheWVySW1wbDo6
Y3JlYXRlKG1fbGF5ZXJJZCk7CkBAIC05OSw1ICsxMTAsMTEgQEAgdm9pZCBQbHVnaW5MYXllckNo
cm9taXVtOjpwdXNoUHJvcGVydGllc1RvKENDTGF5ZXJJbXBsKiBsYXllcikKICAgICBwbHVnaW5M
YXllci0+c2V0SU9TdXJmYWNlUHJvcGVydGllcyhtX2lvU3VyZmFjZVdpZHRoLCBtX2lvU3VyZmFj
ZUhlaWdodCwgbV9pb1N1cmZhY2VJZCk7CiB9CiAKK3ZvaWQgUGx1Z2luTGF5ZXJDaHJvbWl1bTo6
aW52YWxpZGF0ZVJlY3QoY29uc3QgRmxvYXRSZWN0JiBkaXJ0eVJlY3QpCit7CisgICAgc2V0TmVl
ZHNEaXNwbGF5UmVjdChkaXJ0eVJlY3QpOworICAgIG1fZGlydHlSZWN0LnVuaXRlKGRpcnR5UmVj
dCk7Cit9CisKIH0KICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbHVnaW5M
YXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9QbHVnaW5MYXllckNocm9taXVtLmgKaW5kZXggNTViOGRmNmI5NTM5NDJkYTg0ZTY1YzgyZTI1
YWYwM2QxYmYxYWI4Yy4uMjc3YTk2OWM1OGNjM2Y1ODM0NTg3ZTA3NzhmZmQxYzYyNzdkNjZmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGx1
Z2luTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1BsdWdpbkxheWVyQ2hyb21pdW0uaApAQCAtMzgsNiArMzgsNyBAQCBjbGFzcyBQ
bHVnaW5MYXllckNocm9taXVtIDogcHVibGljIExheWVyQ2hyb21pdW0gewogcHVibGljOgogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFBsdWdpbkxheWVyQ2hyb21pdW0+IGNyZWF0ZShDQ0xheWVyRGVs
ZWdhdGUqID0gMCk7CiAgICAgdmlydHVhbCBib29sIGRyYXdzQ29udGVudCgpIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyhH
cmFwaGljc0NvbnRleHQzRCosIENDVGV4dHVyZVVwZGF0ZXImKTsKIAogICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxDQ0xheWVySW1wbD4gY3JlYXRlQ0NMYXllckltcGwoKTsKIApAQCAtNTUsNiArNTYs
OCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcHVzaFByb3BlcnRpZXNUbyhDQ0xheWVy
SW1wbCopOwogCisgICAgdm9pZCBpbnZhbGlkYXRlUmVjdChjb25zdCBGbG9hdFJlY3QmIGRpcnR5
UmVjdCk7CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBQbHVnaW5MYXllckNocm9taXVtKEND
TGF5ZXJEZWxlZ2F0ZSopOwogCkBAIC02NSw2ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgaW50IG1f
aW9TdXJmYWNlV2lkdGg7CiAgICAgaW50IG1faW9TdXJmYWNlSGVpZ2h0OwogICAgIHVpbnQzMl90
IG1faW9TdXJmYWNlSWQ7CisgICAgRmxvYXRSZWN0IG1fZGlydHlSZWN0OwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViRXh0ZXJu
YWxUZXh0dXJlTGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3Jt
L1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmgKaW5kZXggMGE5MDJmMWVlZTQxYzgwMGM5Y2M1MjBk
NDM1MWNhOThiODI5YTBiMy4uNjNkNTQ4NWYyZWUxYmIzOGMwM2UxOGQ2NjM1ZDEyMGQwMDYxZDk4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2Vi
RXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9wbGF0Zm9ybS9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5oCkBAIC02OCw2ICs2OCwxMCBAQCBw
dWJsaWM6CiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFVWUmVjdChjb25zdCBXZWJGbG9hdFJl
Y3QmKTsKICAgICBXRUJLSVRfRVhQT1JUIFdlYkZsb2F0UmVjdCB1dlJlY3QoKSBjb25zdDsKIAor
ICAgIC8vIE1hcmtzIGEgcmVnaW9uIG9mIHRoZSBsYXllciBhcyBuZWVkaW5nIGEgZGlzcGxheS4g
VGhlc2UgcmVnaW9ucyBhcmUKKyAgICAvLyBjb2xsZWN0ZWQgaW4gYSB1bmlvbiB1bnRpbCB0aGUg
ZGlzcGxheSBvY2N1cnMuCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGludmFsaWRhdGVSZWN0KGNv
bnN0IFdlYkZsb2F0UmVjdCYpOworCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiAgICAgV2Vi
RXh0ZXJuYWxUZXh0dXJlTGF5ZXIoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkV4dGVybmFsVGV4
dHVyZUxheWVySW1wbD4mKTsKICAgICBXZWJFeHRlcm5hbFRleHR1cmVMYXllciYgb3BlcmF0b3I9
KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGw+Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVM
YXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVM
YXllci5jcHAKaW5kZXggODNmYTljY2VhODRlZjllZWM0MTUzMTk1ZjEyMDUyNzkxYjBjNGU0YS4u
NWEwNmMxNzZiMjUyN2U1Y2Q2ZGZkMjE4MTMyMzgxYjUwNjA3ZjUxNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmNwcApA
QCAtNjYsNiArNjYsMTEgQEAgV2ViRmxvYXRSZWN0IFdlYkV4dGVybmFsVGV4dHVyZUxheWVyOjp1
dlJlY3QoKSBjb25zdAogICAgIHJldHVybiBXZWJGbG9hdFJlY3QoY29uc3RVbndyYXA8V2ViRXh0
ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsPigpLT51dlJlY3QoKSk7CiB9CiAKK3ZvaWQgV2ViRXh0ZXJu
YWxUZXh0dXJlTGF5ZXI6OmludmFsaWRhdGVSZWN0KGNvbnN0IFdlYkZsb2F0UmVjdCYgdXBkYXRl
UmVjdCkKK3sKKyAgICB1bndyYXA8V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsPigpLT5pbnZh
bGlkYXRlUmVjdCh1cGRhdGVSZWN0KTsKK30KKwogV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI6Oldl
YkV4dGVybmFsVGV4dHVyZUxheWVyKGNvbnN0IFBhc3NSZWZQdHI8V2ViRXh0ZXJuYWxUZXh0dXJl
TGF5ZXJJbXBsPiYgbm9kZSkKICAgICA6IFdlYkxheWVyKG5vZGUpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCmluZGV4
IDA5MTFiNDVkZmVkNTIwNmFhMjliNTA1ODQ0YjUyMTI4ODg5ZTM0YWQuLjk0OGY1ZDZjN2I4ZTk0
ZGUxNTQ1ZDFiMGZhYzJjZjc5OGMxODBjYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCkBAIC0zNjksOCArMzY5LDgg
QEAgdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpzZXRCYWNraW5nSU9TdXJmYWNlSWQoaW50
IHdpZHRoLAogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpjb21taXRCYWNraW5nVGV4dHVy
ZSgpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmIChwbGF0Zm9y
bUxheWVyKCkpCi0gICAgICAgIHBsYXRmb3JtTGF5ZXIoKS0+c2V0TmVlZHNEaXNwbGF5KCk7Cisg
ICAgaWYgKG1fcGxhdGZvcm1MYXllci5nZXQoKSkKKyAgICAgICAgbV9wbGF0Zm9ybUxheWVyLT5p
bnZhbGlkYXRlUmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBtX3BsYXRmb3JtTGF5ZXItPmJv
dW5kcygpKSk7CiAjZW5kaWYKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>