<?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>103276</bug_id>
          
          <creation_ts>2012-11-26 10:59:51 -0800</creation_ts>
          <short_desc>Fix occlusion culling logic to handle css background layer clipping</short_desc>
          <delta_ts>2012-12-02 02:56:21 -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>Layout and Rendering</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="Justin Novosad">junov</reporter>
          <assigned_to name="Justin Novosad">junov</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>peter+ews</cc>
    
    <cc>senorblanco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>775678</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-26 10:59:51 -0800</bug_when>
    <thetext>Fix clipping issue raised in comment 25: https://bugs.webkit.org/show_bug.cgi?id=102557</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775806</commentid>
    <comment_count>1</comment_count>
      <attachid>176050</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-26 13:10:20 -0800</bug_when>
    <thetext>Created attachment 176050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775813</commentid>
    <comment_count>2</comment_count>
      <attachid>176050</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-26 13:18:33 -0800</bug_when>
    <thetext>Comment on attachment 176050
Patch

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

&gt; Source/WebCore/rendering/style/FillLayer.cpp:294
&gt; +bool FillLayer::clipOccludesNextLayers() const
&gt; +{
&gt; +    switch (clip()) {
&gt; +    case BorderFillBox:
&gt; +        break;
&gt; +    case PaddingFillBox:
&gt; +        {
&gt; +            for (const FillLayer* layer = this-&gt;next(); layer; layer = layer-&gt;next()) {
&gt; +                if (layer-&gt;clip() == BorderFillBox)
&gt; +                    return false;
&gt; +            }
&gt; +        }
&gt; +        break;
&gt; +    case ContentFillBox:
&gt; +        {
&gt; +            for (const FillLayer* layer = this-&gt;next(); layer; layer = layer-&gt;next()) {
&gt; +                if (layer-&gt;clip() == BorderFillBox || layer-&gt;clip() == PaddingFillBox)
&gt; +                    return false;
&gt; +            }
&gt; +        }
&gt; +        break;
&gt; +    case TextFillBox:
&gt; +        {
&gt; +            for (const FillLayer* layer = this-&gt;next(); layer; layer = layer-&gt;next()) {
&gt; +                if (layer-&gt;clip() != TextFillBox)
&gt; +                    return false;
&gt; +            }
&gt; +        }
&gt; +        break;
&gt; +    default:
&gt; +        ASSERT_NOT_REACHED();
&gt; +    }
&gt; +    return true;
&gt; +}

You&apos;ve made layer painting O(n^2) here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775818</commentid>
    <comment_count>3</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-26 13:25:43 -0800</bug_when>
    <thetext>@simon.fraser:
In your comment on bug 102557, you expressed concern that about a similar problem here:

&gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:913
&gt; +    if (!bgLayer-&gt;next() &amp;&amp; !(shouldPaintBackgroundImage &amp;&amp; bgLayer-&gt;hasOpaqueImage(this) &amp;&amp; bgLayer-&gt;hasRepeatXY())) {

AFAIK, the background color gets the same clipping applied to it as the bottom-most layer, so I think that case is OK.  I was unable to find a failing test case for it. Am I missing something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775822</commentid>
    <comment_count>4</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-26 13:29:39 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; 
&gt; 
&gt; You&apos;ve made layer painting O(n^2) here.

D&apos;Oh! I have an idea...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775895</commentid>
    <comment_count>5</comment_count>
      <attachid>176067</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-26 14:27:29 -0800</bug_when>
    <thetext>Created attachment 176067
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776932</commentid>
    <comment_count>6</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-27 10:19:29 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=176067) [details]
&gt; Patch

Pinging reviewers.  This fixes a regression. IWBN to commit it promptly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776939</commentid>
    <comment_count>7</comment_count>
      <attachid>176067</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-27 10:27:07 -0800</bug_when>
    <thetext>Comment on attachment 176067
Patch

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

&gt; Source/WebCore/rendering/RenderBox.cpp:1008
&gt; +void RenderBox::recursivePaintFillLayers(const PaintInfo&amp; paintInfo, const Color&amp; c, const FillLayer* fillLayer, const LayoutRect&amp; rect,
&gt; +    BackgroundBleedAvoidance bleedAvoidance, CompositeOperator op, RenderObject* backgroundObject, bool firstLayer)

I&apos;d prefer this not be recursive. I see no reason why we can&apos;t just paint layers in a loop.

&gt; Source/WebCore/rendering/style/FillLayer.cpp:268
&gt; +    if (clipA == BorderFillBox || clipB == BorderFillBox)
&gt; +        return BorderFillBox;
&gt; +    if (clipA == PaddingFillBox || clipB == PaddingFillBox)
&gt; +        return BorderFillBox;
&gt; +    if (clipA == ContentFillBox || clipB == ContentFillBox)
&gt; +        return BorderFillBox;

Is this right? Why return BorderFillBox every time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776964</commentid>
    <comment_count>8</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-27 10:44:01 -0800</bug_when>
    <thetext>(In reply to comment #7)

&gt; 
&gt; I&apos;d prefer this not be recursive. I see no reason why we can&apos;t just paint layers in a loop.
&gt; 
BTW, it was already recursive before. 
It&apos;s easy to refactor, so I guess I can do it here...

&gt; &gt; Source/WebCore/rendering/style/FillLayer.cpp:268
&gt; &gt; +    if (clipA == BorderFillBox || clipB == BorderFillBox)
&gt; &gt; +        return BorderFillBox;
&gt; &gt; +    if (clipA == PaddingFillBox || clipB == PaddingFillBox)
&gt; &gt; +        return BorderFillBox;
&gt; &gt; +    if (clipA == ContentFillBox || clipB == ContentFillBox)
&gt; &gt; +        return BorderFillBox;
&gt; 
&gt; Is this right? Why return BorderFillBox every time?

Ooh, thanks for catching that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777155</commentid>
    <comment_count>9</comment_count>
      <attachid>176332</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-27 13:11:32 -0800</bug_when>
    <thetext>Created attachment 176332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777158</commentid>
    <comment_count>10</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-27 13:14:08 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Created an attachment (id=176332) [details]
&gt; Patch

Requesting another review because change to RenderBox::paintFillLayers are substantial.  Because FillLayers not a doubly linked list, changing the recursion into a loop was non-trivial.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777263</commentid>
    <comment_count>11</comment_count>
      <attachid>176332</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-11-27 15:13:41 -0800</bug_when>
    <thetext>Comment on attachment 176332
Patch

Attachment 176332 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15023187</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777852</commentid>
    <comment_count>12</comment_count>
      <attachid>176475</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-28 06:22:55 -0800</bug_when>
    <thetext>Created attachment 176475
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777910</commentid>
    <comment_count>13</comment_count>
      <attachid>176475</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-11-28 07:54:01 -0800</bug_when>
    <thetext>Comment on attachment 176475
Patch

Attachment 176475 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15026439</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777917</commentid>
    <comment_count>14</comment_count>
      <attachid>176487</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-28 08:07:27 -0800</bug_when>
    <thetext>Created attachment 176487
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779414</commentid>
    <comment_count>15</comment_count>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-29 13:59:21 -0800</bug_when>
    <thetext>Pinging reviewers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779427</commentid>
    <comment_count>16</comment_count>
      <attachid>176487</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-29 14:16:09 -0800</bug_when>
    <thetext>Comment on attachment 176487
Patch

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

&gt; Source/WebCore/ChangeLog:19
&gt; +        (WebCore):

Useless line.

&gt; Source/WebCore/rendering/RenderBox.cpp:1001
&gt; +    Vector&lt;const FillLayer*&gt; layers;

You should use some inline capacity here to avoid a malloc in most cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780293</commentid>
    <comment_count>17</comment_count>
      <attachid>177005</attachid>
    <who name="Justin Novosad">junov</who>
    <bug_when>2012-11-30 12:14:13 -0800</bug_when>
    <thetext>Created attachment 177005
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780897</commentid>
    <comment_count>18</comment_count>
      <attachid>177005</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-02 02:56:17 -0800</bug_when>
    <thetext>Comment on attachment 177005
Patch for landing

Clearing flags on attachment: 177005

Committed r136326: &lt;http://trac.webkit.org/changeset/136326&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780898</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-02 02:56:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176050</attachid>
            <date>2012-11-26 13:10:20 -0800</date>
            <delta_ts>2012-11-26 14:27:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103276-20121126160758.patch</filename>
            <type>text/plain</type>
            <size>6848</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNTc1NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEyLTExLTI2ICBKdXN0aW4g
Tm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgRml4IG9jY2x1c2lvbiBjdWxs
aW5nIGxvZ2ljIHRvIGhhbmRsZSBjc3MgYmFja2dyb3VuZCBsYXllciBjbGlwcGluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjc2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIHdhcyBpbnRyb2R1
Y2VkIGJ5IHIxMzU2MjkKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBpdCBieSB2ZXJpZnlpbmcg
bGF5ZXIgY2xpcC4gIEEgZmlsbCBsYXllciBtdXN0CisgICAgICAgIG5vdCBiZSB0cmVhdGVkIGFz
IGlmIGl0IG9jY2x1ZGVzIHRoZSBsYXllcnMgdW5kZXIgaXQgdW5sZXNzIGl0IGhhcworICAgICAg
ICBhIGxhcmdlciBvciBlcXVhbCBjbGlwIHNldHRpbmcgdGhhbiB0aGUgbGF5ZXJzIHVuZGVyIGl0
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvYmFja2dyb3VuZHMvYmFja2dyb3VuZC1vcGFxdWUtY2xp
cHBlZC1ncmFkaWVudHMuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBhaW50RmlsbExheWVycyk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxs
TGF5ZXI6OmNsaXBPY2NsdWRlc05leHRMYXllcnMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oOgorICAgICAgICAoRmlsbExheWVyKToK
KwogMjAxMi0xMS0yNiAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IE1vdmUgbW9yZSBmdW5jdGlvbnMgZnJvbSBpbnRlcm5hbHMuc2V0dGluZ3MgdG8gaW50ZXJuYWxz
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNpb24gMTM1
NzQwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEwMDcsNyArMTAwNyw3IEBAIHZvaWQgUmVuZGVyQm94OjpwYWludEZpbGxMYXll
cnMoY29uc3QgUGEKICAgICAvLyBSZW5kZXJCb3hNb2RlbE9CamVjdDo6cGFpbnRGaWxsTGF5ZXJF
eHRlbmRlZC4gQSBtb3JlIGVmZmljaWVudCBzb2x1dGlvbiBtaWdodCBiZSB0byBtb3ZlCiAgICAg
Ly8gdGhlIGxheWVyIHJlY3Vyc2lvbiBpbnRvIHBhaW50RmlsbExheWVyRXh0ZW5kZWQsIG9yIHRv
IGNvbXB1dGUgdGhlIGxheWVyIGdlb21ldHJ5IGhlcmUKICAgICAvLyBhbmQgcGFzcyBpdCBkb3du
LgotICAgIGlmIChmaWxsTGF5ZXItPm5leHQoKSAmJiAoIWZpbGxMYXllci0+aGFzT3BhcXVlSW1h
Z2UodGhpcykgfHwgIWZpbGxMYXllci0+aW1hZ2UoKS0+Y2FuUmVuZGVyKHRoaXMsIHN0eWxlKCkt
PmVmZmVjdGl2ZVpvb20oKSkgfHwgIWZpbGxMYXllci0+aGFzUmVwZWF0WFkoKSkpCisgICAgaWYg
KGZpbGxMYXllci0+bmV4dCgpICYmICghZmlsbExheWVyLT5oYXNPcGFxdWVJbWFnZSh0aGlzKSB8
fCAhZmlsbExheWVyLT5jbGlwT2NjbHVkZXNOZXh0TGF5ZXJzKCkgfHwgIWZpbGxMYXllci0+aW1h
Z2UoKS0+Y2FuUmVuZGVyKHRoaXMsIHN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSkgfHwgIWZpbGxM
YXllci0+aGFzUmVwZWF0WFkoKSkpCiAgICAgICAgIHBhaW50RmlsbExheWVycyhwYWludEluZm8s
IGMsIGZpbGxMYXllci0+bmV4dCgpLCByZWN0LCBibGVlZEF2b2lkYW5jZSwgb3AsIGJhY2tncm91
bmRPYmplY3QpOwogICAgIHBhaW50RmlsbExheWVyKHBhaW50SW5mbywgYywgZmlsbExheWVyLCBy
ZWN0LCBibGVlZEF2b2lkYW5jZSwgb3AsIGJhY2tncm91bmRPYmplY3QpOwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAJKHJldmlzaW9uIDEz
NTc0MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTgsNiArMjU4LDQxIEBAIHZvaWQgRmlsbExheWVyOjpjdWxsRW1w
dHlMYXllcnMoKQogICAgIH0KIH0KIAorYm9vbCBGaWxsTGF5ZXI6OmNsaXBPY2NsdWRlc05leHRM
YXllcnMoKSBjb25zdAoreworICAgIHN3aXRjaCAoY2xpcCgpKSB7CisgICAgY2FzZSBCb3JkZXJG
aWxsQm94OgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhZGRpbmdGaWxsQm94OgorICAgICAg
ICB7CisgICAgICAgICAgICBmb3IgKGNvbnN0IEZpbGxMYXllciogbGF5ZXIgPSB0aGlzLT5uZXh0
KCk7IGxheWVyOyBsYXllciA9IGxheWVyLT5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAo
bGF5ZXItPmNsaXAoKSA9PSBCb3JkZXJGaWxsQm94KQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBDb250ZW50RmlsbEJveDoKKyAgICAgICAgeworICAgICAgICAgICAgZm9yIChjb25zdCBG
aWxsTGF5ZXIqIGxheWVyID0gdGhpcy0+bmV4dCgpOyBsYXllcjsgbGF5ZXIgPSBsYXllci0+bmV4
dCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGxheWVyLT5jbGlwKCkgPT0gQm9yZGVyRmlsbEJv
eCB8fCBsYXllci0+Y2xpcCgpID09IFBhZGRpbmdGaWxsQm94KQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBUZXh0RmlsbEJveDoKKyAgICAgICAgeworICAgICAgICAgICAgZm9yIChjb25z
dCBGaWxsTGF5ZXIqIGxheWVyID0gdGhpcy0+bmV4dCgpOyBsYXllcjsgbGF5ZXIgPSBsYXllci0+
bmV4dCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGxheWVyLT5jbGlwKCkgIT0gVGV4dEZpbGxC
b3gpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgRmlsbExheWVy
Ojpjb250YWluc0ltYWdlKFN0eWxlSW1hZ2UqIHMpIGNvbnN0CiB7CiAgICAgaWYgKCFzKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaAkocmV2aXNpb24g
MTM1NzQwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNDYsNiArMTQ2LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNP
cGFxdWVJbWFnZShjb25zdCBSZW5kZXJPYmplY3QqKSBjb25zdDsKICAgICBib29sIGhhc1JlcGVh
dFhZKCkgY29uc3Q7CisgICAgYm9vbCBjbGlwT2NjbHVkZXNOZXh0TGF5ZXJzKCkgY29uc3Q7CiAK
ICAgICBFRmlsbExheWVyVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUZp
bGxMYXllclR5cGU+KG1fdHlwZSk7IH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM1NzU0KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTItMTEtMjYgIEp1c3RpbiBOb3Zvc2FkICA8anVub3ZAZ29vZ2xlLmNvbT4KKworICAgICAgICBG
aXggb2NjbHVzaW9uIGN1bGxpbmcgbG9naWMgdG8gaGFuZGxlIGNzcyBiYWNrZ3JvdW5kIGxheWVy
IGNsaXBwaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDMyNzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBOZXcgcmVmIHRlc3QgdGhhdCB2ZXJpZmllcyB0aGUgc3VwZXJwb3NpdGlvbiBvZiBiYWNrZ3Jv
dW5kIGxheWVycyB3aXRoCisgICAgICAgIHRoZSBsYXllcnMgaGF2aW5nIHNtYWxsZXIgY2xpcCBy
ZWdpb25zIHRoYW4gdGhlIGxheWVycyBiZW5lYXRoIHRoZW0uCisgICAgICAgIFRoaXMgdGVzdCBl
bnN1cmVzIHRoZSBib3R0b20gbGF5ZXJzIGFyZSBub3QgcmVtb3ZlZCBieSBjdWxsaW5nCisgICAg
ICAgIG9wdGltaXphdGlvbnMuCisKKyAgICAgICAgKiBmYXN0L2JhY2tncm91bmRzL2JhY2tncm91
bmQtb3BhcXVlLWNsaXBwZWQtZ3JhZGllbnRzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvYmFja2dyb3VuZHMvYmFja2dyb3VuZC1vcGFxdWUtY2xpcHBlZC1ncmFkaWVudHMu
aHRtbDogQWRkZWQuCisKIDIwMTItMTEtMjYgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBNb3ZlIG1vcmUgZnVuY3Rpb25zIGZyb20gaW50ZXJuYWxzLnNldHRpbmdz
IHRvIGludGVybmFscwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9iYWNrZ3Jv
dW5kLW9wYXF1ZS1jbGlwcGVkLWdyYWRpZW50cy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvYmFja2dyb3VuZC1vcGFxdWUtY2xpcHBlZC1n
cmFkaWVudHMtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
YmFja2dyb3VuZHMvYmFja2dyb3VuZC1vcGFxdWUtY2xpcHBlZC1ncmFkaWVudHMtZXhwZWN0ZWQu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyNkaXYx
Cit7Cit3aWR0aDogMTUwcHg7CitoZWlnaHQ6IDE1MHB4OworYm9yZGVyOjI1cHggZG90dGVkOwor
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9CisjZGl2Mgoreword2lkdGg6IDEwMHB4OworaGVp
Z2h0OiAxMDBweDsKK3BhZGRpbmc6IDI1cHg7CitiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworfQor
I2RpdjMKK3sKK3dpZHRoOiAxMDBweDsKK2hlaWdodDogMTAwcHg7CitiYWNrZ3JvdW5kLWNvbG9y
OiB5ZWxsb3c7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CitUZXN0IHBhc3NlcyBpZiB0
aGUgaW1hZ2UgYmVsb3cgc2hvd3MgbmVzdGVkIGdyZWVuLCBibHVlIGFuZCB5ZWxsb3cgc3F1YXJl
cyB3aXRoIGEgZG90dGVkIGJsYWNrIGJvcmRlci4KKzxkaXYgaWQ9ImRpdjEiPjxkaXYgaWQ9ImRp
djIiPjxkaXYgaWQ9ImRpdjMiPjwvZGl2PjwvZGl2PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9iYWNrZ3JvdW5kLW9wYXF1ZS1jbGlw
cGVkLWdyYWRpZW50cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmFja2dy
b3VuZHMvYmFja2dyb3VuZC1vcGFxdWUtY2xpcHBlZC1ncmFkaWVudHMuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvYmFja2dyb3VuZC1vcGFxdWUtY2xp
cHBlZC1ncmFkaWVudHMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0i
c2NyZWVuIj4KKyAgICAjZGl2MSB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICAgICAgcGFkZGluZzogMjVweDsKKyAgICAgICAgYm9yZGVyOiAyNXB4
IGRvdHRlZDsKKyAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGll
bnQodG9wLCB5ZWxsb3csIHllbGxvdyksIC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgYmx1
ZSwgYmx1ZSksIC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgZ3JlZW4sIGdyZWVuKTsKKyAg
ICAgICAgYmFja2dyb3VuZC1jbGlwOiBjb250ZW50LWJveCwgcGFkZGluZy1ib3gsIGJvcmRlci1i
b3g7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CitUZXN0IHBhc3NlcyBpZiB0aGUgaW1h
Z2UgYmVsb3cgc2hvd3MgbmVzdGVkIGdyZWVuLCBibHVlIGFuZCB5ZWxsb3cgc3F1YXJlcyB3aXRo
IGEgZG90dGVkIGJsYWNrIGJvcmRlci4KKzxkaXYgaWQ9ImRpdjEiPjwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176067</attachid>
            <date>2012-11-26 14:27:29 -0800</date>
            <delta_ts>2012-11-27 13:11:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103276-20121126172507.patch</filename>
            <type>text/plain</type>
            <size>9418</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNTc2NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDEyLTExLTI2ICBKdXN0aW4g
Tm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgRml4IG9jY2x1c2lvbiBjdWxs
aW5nIGxvZ2ljIHRvIGhhbmRsZSBjc3MgYmFja2dyb3VuZCBsYXllciBjbGlwcGluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjc2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIHdhcyBpbnRyb2R1
Y2VkIGJ5IHIxMzU2MjkKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBpdCBieSB2ZXJpZnlpbmcg
bGF5ZXIgY2xpcC4gIEEgZmlsbCBsYXllciBtdXN0CisgICAgICAgIG5vdCBiZSB0cmVhdGVkIGFz
IGlmIGl0IG9jY2x1ZGVzIHRoZSBsYXllcnMgdW5kZXIgaXQgdW5sZXNzIGl0IGhhcworICAgICAg
ICBhIGxhcmdlciBvciBlcXVhbCBjbGlwIHNldHRpbmcgdGhhbiB0aGUgbGF5ZXJzIHVuZGVyIGl0
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvYmFja2dyb3VuZHMvYmFja2dyb3VuZC1vcGFxdWUtY2xp
cHBlZC1ncmFkaWVudHMuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBhaW50RmlsbExheWVycyk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cmVjdXJzaXZlUGFpbnRG
aWxsTGF5ZXJzKToKKyAgICAgICAgUmVjdXJzaXZlIHBhcnQgb2YgcGFpbnRGaWxsTGF5ZXJzLCB3
aXRoIGV4dHJhIHBhcmFtZXRlcgorICAgICAgICB0byBpZGVudGlmeSB0aGUgZmlyc3QgbGF5ZXIg
aW4gdGhlIHJlY3Vyc2lvbi4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAg
ICAgIChSZW5kZXJCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y2xpcE1heCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6Y29tcHV0ZUNsaXBNYXgpOgorICAgICAgICBIZWxwZXIg
bWV0aG9kIHRoYXQgcHJlLWNvbXB1dGVzIHRoZSBtYXhpbXVtIGNsaXAoKSB2YWx1ZSBmcm9tIHRo
aXMKKyAgICAgICAgbGF5ZXIgdG8gdGhlIGJvdHRvbSBsYXllci4gR2V0cyBleGVjdXRlZCByZWN1
cnNpdmVseSB3aGlsZSBwcm9jZXNzaW5nCisgICAgICAgIHRoZSB0b3AgbGF5ZXIuIENhY2hlcyBp
dHMgcmVzdWx0IHNvIHRoYXQgY2xpcE9jY2x1ZGVzTmV4dExheWVycyBjYW4KKyAgICAgICAgcnVu
IGluIGNvbnN0YW50IHRpbWUuIFRoaXMgYWxnb3JpdGhtIGtlZXBzIGxheWVyIHBhaW50aW5nIE8o
TikuCisgICAgICAgIFdpdGhvdXQgdGhlIGNhY2hpbmcgaXQgd291bGQgYmUgTyhOXjIpLgorICAg
ICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpjbGlwT2NjbHVkZXNOZXh0TGF5ZXJzKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmg6CisgICAgICAgIChGaWxsTGF5ZXIpOgor
CiAyMDEyLTExLTI2ICBBbGV4IENocmlzdGVuc2VuICA8YWxleC5jaHJpc3RlbnNlbkBmbGV4c2lt
LmNvbT4KIAogICAgICAgICBjbGlwYm9hcmR3aW4gY29tcGlsZSBlcnJvciBmb3Igd2luNjQKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCShyZXZpc2lvbiAxMzU3NDAp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTAwMSwxNCArMTAwMSwyMCBAQCB2b2lkIFJlbmRlckJveDo6cGFpbnRGaWxsTGF5ZXJz
KGNvbnN0IFBhCiAgICAgaWYgKCFmaWxsTGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAorICAgIHJl
Y3Vyc2l2ZVBhaW50RmlsbExheWVycyhwYWludEluZm8sIGMsIGZpbGxMYXllciwgcmVjdCwgYmxl
ZWRBdm9pZGFuY2UsIG9wLCBiYWNrZ3JvdW5kT2JqZWN0LCB0cnVlKTsKK30KKwordm9pZCBSZW5k
ZXJCb3g6OnJlY3Vyc2l2ZVBhaW50RmlsbExheWVycyhjb25zdCBQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgQ29sb3ImIGMsIGNvbnN0IEZpbGxMYXllciogZmlsbExheWVyLCBjb25zdCBMYXlv
dXRSZWN0JiByZWN0LAorICAgIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBibGVlZEF2b2lkYW5j
ZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlbmRlck9iamVjdCogYmFja2dyb3VuZE9iamVjdCwg
Ym9vbCBmaXJzdExheWVyKQorewogICAgIC8vIEZJWE1FIDogSXQgd291bGQgYmUgcG9zc2libGUg
Zm9yIHRoZSBmb2xsb3dpbmcgb2NjbHVzaW9uIGN1bGxpbmcgdGVzdCB0byBiZSBtb3JlIGFnZ3Jl
c3NpdmUgCiAgICAgLy8gb24gbGF5ZXJzIHdpdGggbm8gcmVwZWF0IGJ5IHRlc3Rpbmcgd2hldGhl
ciB0aGUgaW1hZ2UgY292ZXJzIHRoZSBsYXlvdXQgcmVjdC4KICAgICAvLyBUZXN0aW5nIHRoYXQg
aGVyZSB3b3VsZCBpbXBseSBkdXBsaWNhdGluZyBhIGxvdCBvZiBjYWxjdWxhdGlvbnMgdGhhdCBh
cmUgY3VycmVudGx5IGRvbmUgaW4KICAgICAvLyBSZW5kZXJCb3hNb2RlbE9CamVjdDo6cGFpbnRG
aWxsTGF5ZXJFeHRlbmRlZC4gQSBtb3JlIGVmZmljaWVudCBzb2x1dGlvbiBtaWdodCBiZSB0byBt
b3ZlCiAgICAgLy8gdGhlIGxheWVyIHJlY3Vyc2lvbiBpbnRvIHBhaW50RmlsbExheWVyRXh0ZW5k
ZWQsIG9yIHRvIGNvbXB1dGUgdGhlIGxheWVyIGdlb21ldHJ5IGhlcmUKICAgICAvLyBhbmQgcGFz
cyBpdCBkb3duLgotICAgIGlmIChmaWxsTGF5ZXItPm5leHQoKSAmJiAoIWZpbGxMYXllci0+aGFz
T3BhcXVlSW1hZ2UodGhpcykgfHwgIWZpbGxMYXllci0+aW1hZ2UoKS0+Y2FuUmVuZGVyKHRoaXMs
IHN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKSkgfHwgIWZpbGxMYXllci0+aGFzUmVwZWF0WFkoKSkp
Ci0gICAgICAgIHBhaW50RmlsbExheWVycyhwYWludEluZm8sIGMsIGZpbGxMYXllci0+bmV4dCgp
LCByZWN0LCBibGVlZEF2b2lkYW5jZSwgb3AsIGJhY2tncm91bmRPYmplY3QpOworICAgIGlmIChm
aWxsTGF5ZXItPm5leHQoKSAmJiAoIWZpbGxMYXllci0+aGFzT3BhcXVlSW1hZ2UodGhpcykgfHwg
IWZpbGxMYXllci0+Y2xpcE9jY2x1ZGVzTmV4dExheWVycyhmaXJzdExheWVyKSB8fCAhZmlsbExh
eWVyLT5pbWFnZSgpLT5jYW5SZW5kZXIodGhpcywgc3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKSB8
fCAhZmlsbExheWVyLT5oYXNSZXBlYXRYWSgpKSkKKyAgICAgICAgcmVjdXJzaXZlUGFpbnRGaWxs
TGF5ZXJzKHBhaW50SW5mbywgYywgZmlsbExheWVyLT5uZXh0KCksIHJlY3QsIGJsZWVkQXZvaWRh
bmNlLCBvcCwgYmFja2dyb3VuZE9iamVjdCwgZmFsc2UpOwogICAgIHBhaW50RmlsbExheWVyKHBh
aW50SW5mbywgYywgZmlsbExheWVyLCByZWN0LCBibGVlZEF2b2lkYW5jZSwgb3AsIGJhY2tncm91
bmRPYmplY3QpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShy
ZXZpc2lvbiAxMzU3NDApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU2Niw2ICs1NjYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAg
dm9pZCBwYWludEZpbGxMYXllcihjb25zdCBQYWludEluZm8mLCBjb25zdCBDb2xvciYsIGNvbnN0
IEZpbGxMYXllciosIGNvbnN0IExheW91dFJlY3QmLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2Us
IENvbXBvc2l0ZU9wZXJhdG9yLCBSZW5kZXJPYmplY3QqIGJhY2tncm91bmRPYmplY3QpOwogICAg
IHZvaWQgcGFpbnRGaWxsTGF5ZXJzKGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IENvbG9yJiwgY29u
c3QgRmlsbExheWVyKiwgY29uc3QgTGF5b3V0UmVjdCYsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5j
ZSA9IEJhY2tncm91bmRCbGVlZE5vbmUsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291
cmNlT3ZlciwgUmVuZGVyT2JqZWN0KiBiYWNrZ3JvdW5kT2JqZWN0ID0gMCk7CisgICAgdm9pZCBy
ZWN1cnNpdmVQYWludEZpbGxMYXllcnMoY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgQ29sb3ImLCBj
b25zdCBGaWxsTGF5ZXIqLCBjb25zdCBMYXlvdXRSZWN0JiwgQmFja2dyb3VuZEJsZWVkQXZvaWRh
bmNlLCBDb21wb3NpdGVPcGVyYXRvciwgUmVuZGVyT2JqZWN0KiBiYWNrZ3JvdW5kT2JqZWN0LCBi
b29sIGlzRmlyc3RMYXllcik7CiAKICAgICB2b2lkIHBhaW50TWFza0ltYWdlcyhjb25zdCBQYWlu
dEluZm8mLCBjb25zdCBMYXlvdXRSZWN0Jik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCShyZXZpc2lvbiAxMzU3NDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjU4LDYgKzI1OCwzMyBAQCB2b2lkIEZpbGxMYXllcjo6Y3VsbEVtcHR5TGF5ZXJzKCkKICAgICB9
CiB9CiAKK3N0YXRpYyBFRmlsbEJveCBjbGlwTWF4KEVGaWxsQm94IGNsaXBBLCBFRmlsbEJveCBj
bGlwQikKK3sKKyAgICBpZiAoY2xpcEEgPT0gQm9yZGVyRmlsbEJveCB8fCBjbGlwQiA9PSBCb3Jk
ZXJGaWxsQm94KQorICAgICAgICByZXR1cm4gQm9yZGVyRmlsbEJveDsKKyAgICBpZiAoY2xpcEEg
PT0gUGFkZGluZ0ZpbGxCb3ggfHwgY2xpcEIgPT0gUGFkZGluZ0ZpbGxCb3gpCisgICAgICAgIHJl
dHVybiBCb3JkZXJGaWxsQm94OworICAgIGlmIChjbGlwQSA9PSBDb250ZW50RmlsbEJveCB8fCBj
bGlwQiA9PSBDb250ZW50RmlsbEJveCkKKyAgICAgICAgcmV0dXJuIEJvcmRlckZpbGxCb3g7Cisg
ICAgcmV0dXJuIFRleHRGaWxsQm94OworfQorCit2b2lkIEZpbGxMYXllcjo6Y29tcHV0ZUNsaXBN
YXgoKSBjb25zdAoreworICAgIGlmIChtX25leHQpIHsKKyAgICAgICAgbV9uZXh0LT5jb21wdXRl
Q2xpcE1heCgpOworICAgICAgICBtX2NsaXBNYXggPSBjbGlwTWF4KGNsaXAoKSwgbV9uZXh0LT5j
bGlwKCkpOworICAgIH0gZWxzZQorICAgICAgICBtX2NsaXBNYXggPSBtX2NsaXA7Cit9CisKK2Jv
b2wgRmlsbExheWVyOjpjbGlwT2NjbHVkZXNOZXh0TGF5ZXJzKGJvb2wgZmlyc3RMYXllcikgY29u
c3QKK3sKKyAgICBpZiAoZmlyc3RMYXllcikKKyAgICAgICAgY29tcHV0ZUNsaXBNYXgoKTsKKyAg
ICByZXR1cm4gbV9jbGlwID09IG1fY2xpcE1heDsKK30KKwogYm9vbCBGaWxsTGF5ZXI6OmNvbnRh
aW5zSW1hZ2UoU3R5bGVJbWFnZSogcykgY29uc3QKIHsKICAgICBpZiAoIXMpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCShyZXZpc2lvbiAxMzU3NDAp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE0Niw2ICsxNDYsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc09wYXF1ZUlt
YWdlKGNvbnN0IFJlbmRlck9iamVjdCopIGNvbnN0OwogICAgIGJvb2wgaGFzUmVwZWF0WFkoKSBj
b25zdDsKKyAgICBib29sIGNsaXBPY2NsdWRlc05leHRMYXllcnMoYm9vbCBmaXJzdExheWVyKSBj
b25zdDsKIAogICAgIEVGaWxsTGF5ZXJUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxFRmlsbExheWVyVHlwZT4obV90eXBlKTsgfQogCkBAIC0xNjgsNiArMTY5LDggQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUmVuZGVyU3R5bGU7CiAKKyAgICB2b2lk
IGNvbXB1dGVDbGlwTWF4KCkgY29uc3Q7CisKICAgICBGaWxsTGF5ZXIoKSB7IH0KIAogICAgIEZp
bGxMYXllciogbV9uZXh0OwpAQCAtMTk4LDYgKzIwMSw4IEBAIHByaXZhdGU6CiAgICAgdW5zaWdu
ZWQgbV9jb21wb3NpdGVTZXQgOiAxOwogICAgIAogICAgIHVuc2lnbmVkIG1fdHlwZSA6IDE7IC8v
IEVGaWxsTGF5ZXJUeXBlCisKKyAgICBtdXRhYmxlIHVuc2lnbmVkIG1fY2xpcE1heCA6IDI7IC8v
IEVGaWxsQm94LCBtYXhpbXVtIG1fY2xpcCB2YWx1ZSBmcm9tIHRoaXMgdG8gYm90dG9tIGxheWVy
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzU3NjQp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBA
QAorMjAxMi0xMS0yNiAgSnVzdGluIE5vdm9zYWQgIDxqdW5vdkBnb29nbGUuY29tPgorCisgICAg
ICAgIEZpeCBvY2NsdXNpb24gY3VsbGluZyBsb2dpYyB0byBoYW5kbGUgY3NzIGJhY2tncm91bmQg
bGF5ZXIgY2xpcHBpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMzI3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5ldyByZWYgdGVzdCB0aGF0IHZlcmlmaWVzIHRoZSBzdXBlcnBvc2l0aW9uIG9mIGJh
Y2tncm91bmQgbGF5ZXJzIHdpdGgKKyAgICAgICAgdGhlIGxheWVycyBoYXZpbmcgc21hbGxlciBj
bGlwIHJlZ2lvbnMgdGhhbiB0aGUgbGF5ZXJzIGJlbmVhdGggdGhlbS4KKyAgICAgICAgVGhpcyB0
ZXN0IGVuc3VyZXMgdGhlIGJvdHRvbSBsYXllcnMgYXJlIG5vdCByZW1vdmVkIGJ5IGN1bGxpbmcK
KyAgICAgICAgb3B0aW1pemF0aW9ucy4KKworICAgICAgICAqIGZhc3QvYmFja2dyb3VuZHMvYmFj
a2dyb3VuZC1vcGFxdWUtY2xpcHBlZC1ncmFkaWVudHMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9iYWNrZ3JvdW5kcy9iYWNrZ3JvdW5kLW9wYXF1ZS1jbGlwcGVkLWdyYWRp
ZW50cy5odG1sOiBBZGRlZC4KKwogMjAxMi0xMS0yNiAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIE1vdmUgbW9yZSBmdW5jdGlvbnMgZnJvbSBpbnRlcm5hbHMuc2V0
dGluZ3MgdG8gaW50ZXJuYWxzCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL2Jh
Y2tncm91bmQtb3BhcXVlLWNsaXBwZWQtZ3JhZGllbnRzLWV4cGVjdGVkLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9iYWNrZ3JvdW5kLW9wYXF1ZS1jbGlw
cGVkLWdyYWRpZW50cy1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9iYWNrZ3JvdW5kcy9iYWNrZ3JvdW5kLW9wYXF1ZS1jbGlwcGVkLWdyYWRpZW50cy1leHBl
Y3RlZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMxIEBACis8IWRvY3R5cGUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgor
I2RpdjEKK3sKK3dpZHRoOiAxNTBweDsKK2hlaWdodDogMTUwcHg7Citib3JkZXI6MjVweCBkb3R0
ZWQ7CitiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30KKyNkaXYyCit7Cit3aWR0aDogMTAwcHg7
CitoZWlnaHQ6IDEwMHB4OworcGFkZGluZzogMjVweDsKK2JhY2tncm91bmQtY29sb3I6IGJsdWU7
Cit9CisjZGl2Mworeword2lkdGg6IDEwMHB4OworaGVpZ2h0OiAxMDBweDsKK2JhY2tncm91bmQt
Y29sb3I6IHllbGxvdzsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KK1Rlc3QgcGFzc2Vz
IGlmIHRoZSBpbWFnZSBiZWxvdyBzaG93cyBuZXN0ZWQgZ3JlZW4sIGJsdWUgYW5kIHllbGxvdyBz
cXVhcmVzIHdpdGggYSBkb3R0ZWQgYmxhY2sgYm9yZGVyLgorPGRpdiBpZD0iZGl2MSI+PGRpdiBp
ZD0iZGl2MiI+PGRpdiBpZD0iZGl2MyI+PC9kaXY+PC9kaXY+PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL2JhY2tncm91bmQtb3BhcXVl
LWNsaXBwZWQtZ3JhZGllbnRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9i
YWNrZ3JvdW5kcy9iYWNrZ3JvdW5kLW9wYXF1ZS1jbGlwcGVkLWdyYWRpZW50cy5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9iYWNrZ3JvdW5kLW9wYXF1
ZS1jbGlwcGVkLWdyYWRpZW50cy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACis8
IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1l
ZGlhPSJzY3JlZW4iPgorICAgICNkaXYxIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAg
ICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBwYWRkaW5nOiAyNXB4OworICAgICAgICBib3JkZXI6
IDI1cHggZG90dGVkOworICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1n
cmFkaWVudCh0b3AsIHllbGxvdywgeWVsbG93KSwgLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9w
LCBibHVlLCBibHVlKSwgLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCBncmVlbiwgZ3JlZW4p
OworICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6IGNvbnRlbnQtYm94LCBwYWRkaW5nLWJveCwgYm9y
ZGVyLWJveDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KK1Rlc3QgcGFzc2VzIGlmIHRo
ZSBpbWFnZSBiZWxvdyBzaG93cyBuZXN0ZWQgZ3JlZW4sIGJsdWUgYW5kIHllbGxvdyBzcXVhcmVz
IHdpdGggYSBkb3R0ZWQgYmxhY2sgYm9yZGVyLgorPGRpdiBpZD0iZGl2MSI+PC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176332</attachid>
            <date>2012-11-27 13:11:32 -0800</date>
            <delta_ts>2012-11-28 06:22:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103276-20121127160909.patch</filename>
            <type>text/plain</type>
            <size>8708</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEyLTExLTI3ICBKdXN0aW4g
Tm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgRml4IG9jY2x1c2lvbiBjdWxs
aW5nIGxvZ2ljIHRvIGhhbmRsZSBjc3MgYmFja2dyb3VuZCBsYXllciBjbGlwcGluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjc2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIHdhcyBpbnRyb2R1
Y2VkIGJ5IHIxMzU2MjkKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBpdCBieSB2ZXJpZnlpbmcg
bGF5ZXIgY2xpcC4gIEEgZmlsbCBsYXllciBtdXN0CisgICAgICAgIG5vdCBiZSB0cmVhdGVkIGFz
IGlmIGl0IG9jY2x1ZGVzIHRoZSBsYXllcnMgdW5kZXIgaXQgdW5sZXNzIGl0IGhhcworICAgICAg
ICBhIGxhcmdlciBvciBlcXVhbCBjbGlwIHNldHRpbmcgdGhhbiB0aGUgbGF5ZXJzIHVuZGVyIGl0
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvYmFja2dyb3VuZHMvYmFja2dyb3VuZC1vcGFxdWUtY2xp
cHBlZC1ncmFkaWVudHMuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBhaW50RmlsbExheWVycyk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjbGlw
TWF4KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpj
b21wdXRlQ2xpcE1heCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OmNsaXBPY2NsdWRl
c05leHRMYXllcnMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaDoKKyAg
ICAgICAgKEZpbGxMYXllcik6CisKIDIwMTItMTEtMjcgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBFeHBhbmRpbmcgdmFyaWFibGUgbmFtZXMgaW4gQ29uc29sZU1l
c3NhZ2UuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNp
b24gMTM1ODcyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTk5OCwxOCArOTk4LDI0IEBAIExheW91dFJlY3QgUmVuZGVyQm94Ojpt
YXNrQ2xpcFJlY3QoKQogdm9pZCBSZW5kZXJCb3g6OnBhaW50RmlsbExheWVycyhjb25zdCBQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgQ29sb3ImIGMsIGNvbnN0IEZpbGxMYXllciogZmlsbExh
eWVyLCBjb25zdCBMYXlvdXRSZWN0JiByZWN0LAogICAgIEJhY2tncm91bmRCbGVlZEF2b2lkYW5j
ZSBibGVlZEF2b2lkYW5jZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlbmRlck9iamVjdCogYmFj
a2dyb3VuZE9iamVjdCkKIHsKLSAgICBpZiAoIWZpbGxMYXllcikKLSAgICAgICAgcmV0dXJuOwor
ICAgIFZlY3Rvcjxjb25zdCBGaWxsTGF5ZXIqPiBsYXllcnM7CisgICAgY29uc3QgRmlsbExheWVy
KiBjdXJMYXllciA9IGZpbGxMYXllcjsKKyAgICB3aGlsZSAoY3VyTGF5ZXIpIHsKKyAgICAgICAg
bGF5ZXJzLmFwcGVuZChjdXJMYXllcik7CisgICAgICAgIC8vIFN0b3AgdHJhdmVyc2FsIHdoZW4g
YW4gb3BhcXVlIGxheWVyIGlzIGVuY291bnRlcmVkLgorICAgICAgICAvLyBGSVhNRSA6IEl0IHdv
dWxkIGJlIHBvc3NpYmxlIGZvciB0aGUgZm9sbG93aW5nIG9jY2x1c2lvbiBjdWxsaW5nIHRlc3Qg
dG8gYmUgbW9yZSBhZ2dyZXNzaXZlIAorICAgICAgICAvLyBvbiBsYXllcnMgd2l0aCBubyByZXBl
YXQgYnkgdGVzdGluZyB3aGV0aGVyIHRoZSBpbWFnZSBjb3ZlcnMgdGhlIGxheW91dCByZWN0Lgor
ICAgICAgICAvLyBUZXN0aW5nIHRoYXQgaGVyZSB3b3VsZCBpbXBseSBkdXBsaWNhdGluZyBhIGxv
dCBvZiBjYWxjdWxhdGlvbnMgdGhhdCBhcmUgY3VycmVudGx5IGRvbmUgaW4KKyAgICAgICAgLy8g
UmVuZGVyQm94TW9kZWxPQmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQuIEEgbW9yZSBlZmZp
Y2llbnQgc29sdXRpb24gbWlnaHQgYmUgdG8gbW92ZQorICAgICAgICAvLyB0aGUgbGF5ZXIgcmVj
dXJzaW9uIGludG8gcGFpbnRGaWxsTGF5ZXJFeHRlbmRlZCwgb3IgdG8gY29tcHV0ZSB0aGUgbGF5
ZXIgZ2VvbWV0cnkgaGVyZQorICAgICAgICAvLyBhbmQgcGFzcyBpdCBkb3duLgorICAgICAgICBp
ZiAoY3VyTGF5ZXItPmhhc09wYXF1ZUltYWdlKHRoaXMpICYmIGN1ckxheWVyLT5jbGlwT2NjbHVk
ZXNOZXh0TGF5ZXJzKGN1ckxheWVyID09IGZpbGxMYXllcikgJiYgY3VyTGF5ZXItPmltYWdlKCkt
PmNhblJlbmRlcih0aGlzLCBzdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpICYmIGN1ckxheWVyLT5o
YXNSZXBlYXRYWSgpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGN1ckxheWVyID0gY3Vy
TGF5ZXItPm5leHQoKTsKKyAgICB9CiAKLSAgICAvLyBGSVhNRSA6IEl0IHdvdWxkIGJlIHBvc3Np
YmxlIGZvciB0aGUgZm9sbG93aW5nIG9jY2x1c2lvbiBjdWxsaW5nIHRlc3QgdG8gYmUgbW9yZSBh
Z2dyZXNzaXZlIAotICAgIC8vIG9uIGxheWVycyB3aXRoIG5vIHJlcGVhdCBieSB0ZXN0aW5nIHdo
ZXRoZXIgdGhlIGltYWdlIGNvdmVycyB0aGUgbGF5b3V0IHJlY3QuCi0gICAgLy8gVGVzdGluZyB0
aGF0IGhlcmUgd291bGQgaW1wbHkgZHVwbGljYXRpbmcgYSBsb3Qgb2YgY2FsY3VsYXRpb25zIHRo
YXQgYXJlIGN1cnJlbnRseSBkb25lIGluCi0gICAgLy8gUmVuZGVyQm94TW9kZWxPQmplY3Q6OnBh
aW50RmlsbExheWVyRXh0ZW5kZWQuIEEgbW9yZSBlZmZpY2llbnQgc29sdXRpb24gbWlnaHQgYmUg
dG8gbW92ZQotICAgIC8vIHRoZSBsYXllciByZWN1cnNpb24gaW50byBwYWludEZpbGxMYXllckV4
dGVuZGVkLCBvciB0byBjb21wdXRlIHRoZSBsYXllciBnZW9tZXRyeSBoZXJlCi0gICAgLy8gYW5k
IHBhc3MgaXQgZG93bi4KLSAgICBpZiAoZmlsbExheWVyLT5uZXh0KCkgJiYgKCFmaWxsTGF5ZXIt
Pmhhc09wYXF1ZUltYWdlKHRoaXMpIHx8ICFmaWxsTGF5ZXItPmltYWdlKCktPmNhblJlbmRlcih0
aGlzLCBzdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpIHx8ICFmaWxsTGF5ZXItPmhhc1JlcGVhdFhZ
KCkpKQotICAgICAgICBwYWludEZpbGxMYXllcnMocGFpbnRJbmZvLCBjLCBmaWxsTGF5ZXItPm5l
eHQoKSwgcmVjdCwgYmxlZWRBdm9pZGFuY2UsIG9wLCBiYWNrZ3JvdW5kT2JqZWN0KTsKLSAgICBw
YWludEZpbGxMYXllcihwYWludEluZm8sIGMsIGZpbGxMYXllciwgcmVjdCwgYmxlZWRBdm9pZGFu
Y2UsIG9wLCBiYWNrZ3JvdW5kT2JqZWN0KTsKKyAgICBmb3IgKFZlY3Rvcjxjb25zdCBGaWxsTGF5
ZXIqPjo6Y29uc3RfcmV2ZXJzZV9pdGVyYXRvciBpdCA9IGxheWVycy5yYmVnaW4oKTsgaXQgPCBs
YXllcnMucmVuZCgpOyArK2l0KQorICAgICAgICBwYWludEZpbGxMYXllcihwYWludEluZm8sIGMs
ICppdCwgcmVjdCwgYmxlZWRBdm9pZGFuY2UsIG9wLCBiYWNrZ3JvdW5kT2JqZWN0KTsKIH0KIAog
dm9pZCBSZW5kZXJCb3g6OnBhaW50RmlsbExheWVyKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBDb2xvciYgYywgY29uc3QgRmlsbExheWVyKiBmaWxsTGF5ZXIsIGNvbnN0IExheW91
dFJlY3QmIHJlY3QsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExh
eWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmls
bExheWVyLmNwcAkocmV2aXNpb24gMTM1ODcyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0ZpbGxMYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1OCw2ICsyNTgsMzMgQEAg
dm9pZCBGaWxsTGF5ZXI6OmN1bGxFbXB0eUxheWVycygpCiAgICAgfQogfQogCitzdGF0aWMgRUZp
bGxCb3ggY2xpcE1heChFRmlsbEJveCBjbGlwQSwgRUZpbGxCb3ggY2xpcEIpCit7CisgICAgaWYg
KGNsaXBBID09IEJvcmRlckZpbGxCb3ggfHwgY2xpcEIgPT0gQm9yZGVyRmlsbEJveCkKKyAgICAg
ICAgcmV0dXJuIEJvcmRlckZpbGxCb3g7CisgICAgaWYgKGNsaXBBID09IFBhZGRpbmdGaWxsQm94
IHx8IGNsaXBCID09IFBhZGRpbmdGaWxsQm94KQorICAgICAgICByZXR1cm4gUGFkZGluZ0ZpbGxC
b3g7CisgICAgaWYgKGNsaXBBID09IENvbnRlbnRGaWxsQm94IHx8IGNsaXBCID09IENvbnRlbnRG
aWxsQm94KQorICAgICAgICByZXR1cm4gQ29udGVudEZpbGxCb3g7CisgICAgcmV0dXJuIFRleHRG
aWxsQm94OworfQorCit2b2lkIEZpbGxMYXllcjo6Y29tcHV0ZUNsaXBNYXgoKSBjb25zdAorewor
ICAgIGlmIChtX25leHQpIHsKKyAgICAgICAgbV9uZXh0LT5jb21wdXRlQ2xpcE1heCgpOworICAg
ICAgICBtX2NsaXBNYXggPSBjbGlwTWF4KGNsaXAoKSwgbV9uZXh0LT5jbGlwKCkpOworICAgIH0g
ZWxzZQorICAgICAgICBtX2NsaXBNYXggPSBtX2NsaXA7Cit9CisKK2Jvb2wgRmlsbExheWVyOjpj
bGlwT2NjbHVkZXNOZXh0TGF5ZXJzKGJvb2wgZmlyc3RMYXllcikgY29uc3QKK3sKKyAgICBpZiAo
Zmlyc3RMYXllcikKKyAgICAgICAgY29tcHV0ZUNsaXBNYXgoKTsKKyAgICByZXR1cm4gbV9jbGlw
ID09IG1fY2xpcE1heDsKK30KKwogYm9vbCBGaWxsTGF5ZXI6OmNvbnRhaW5zSW1hZ2UoU3R5bGVJ
bWFnZSogcykgY29uc3QKIHsKICAgICBpZiAoIXMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvRmlsbExheWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCShyZXZpc2lvbiAxMzU4NzIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Niw2
ICsxNDYsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc09wYXF1ZUltYWdlKGNvbnN0IFJlbmRl
ck9iamVjdCopIGNvbnN0OwogICAgIGJvb2wgaGFzUmVwZWF0WFkoKSBjb25zdDsKKyAgICBib29s
IGNsaXBPY2NsdWRlc05leHRMYXllcnMoYm9vbCBmaXJzdExheWVyKSBjb25zdDsKIAogICAgIEVG
aWxsTGF5ZXJUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFRmlsbExheWVy
VHlwZT4obV90eXBlKTsgfQogCkBAIC0xNjgsNiArMTY5LDggQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBmcmllbmQgY2xhc3MgUmVuZGVyU3R5bGU7CiAKKyAgICB2b2lkIGNvbXB1dGVDbGlwTWF4
KCkgY29uc3Q7CisKICAgICBGaWxsTGF5ZXIoKSB7IH0KIAogICAgIEZpbGxMYXllciogbV9uZXh0
OwpAQCAtMTk4LDYgKzIwMSw4IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jb21wb3NpdGVT
ZXQgOiAxOwogICAgIAogICAgIHVuc2lnbmVkIG1fdHlwZSA6IDE7IC8vIEVGaWxsTGF5ZXJUeXBl
CisKKyAgICBtdXRhYmxlIHVuc2lnbmVkIG1fY2xpcE1heCA6IDI7IC8vIEVGaWxsQm94LCBtYXhp
bXVtIG1fY2xpcCB2YWx1ZSBmcm9tIHRoaXMgdG8gYm90dG9tIGxheWVyCiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzU5MDgpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0xMS0yNyAg
SnVzdGluIE5vdm9zYWQgIDxqdW5vdkBnb29nbGUuY29tPgorCisgICAgICAgIEZpeCBvY2NsdXNp
b24gY3VsbGluZyBsb2dpYyB0byBoYW5kbGUgY3NzIGJhY2tncm91bmQgbGF5ZXIgY2xpcHBpbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzI3Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyByZWYg
dGVzdCB0aGF0IHZlcmlmaWVzIHRoZSBzdXBlcnBvc2l0aW9uIG9mIGJhY2tncm91bmQgbGF5ZXJz
IHdpdGgKKyAgICAgICAgdGhlIGxheWVycyBoYXZpbmcgc21hbGxlciBjbGlwIHJlZ2lvbnMgdGhh
biB0aGUgbGF5ZXJzIGJlbmVhdGggdGhlbS4KKyAgICAgICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhl
IGJvdHRvbSBsYXllcnMgYXJlIG5vdCByZW1vdmVkIGJ5IGN1bGxpbmcKKyAgICAgICAgb3B0aW1p
emF0aW9ucy4KKworICAgICAgICAqIGZlc3QvYmFja2dyb3VuZHMvYmFja2dyb3VuZC1vcGFxdWUt
Y2xpcHBlZC1ncmFkaWVudHMtZXhwZWN0ZWQuaHRtbDogQWRkZWQKKyAgICAgICAgKiBmYXN0L2Jh
Y2tncm91bmRzL2JhY2tncm91bmQtb3BhcXVlLWNsaXBwZWQtZ3JhZGllbnRzLmh0bWw6IEFkZGVk
LgorCiAyMDEyLTExLTI3ICBBYXJvbiBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFVzZS1hZnRlci1mcmVlIGluIG1lZGlhIHBsYXllciBoYW5kbGluZwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9iYWNrZ3JvdW5kLW9wYXF1ZS1jbGlwcGVkLWdy
YWRpZW50cy1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmFj
a2dyb3VuZHMvYmFja2dyb3VuZC1vcGFxdWUtY2xpcHBlZC1ncmFkaWVudHMtZXhwZWN0ZWQuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvYmFja2dyb3Vu
ZC1vcGFxdWUtY2xpcHBlZC1ncmFkaWVudHMtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzMSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlIHR5
cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyNkaXYxCit7Cit3aWR0aDogMTUwcHg7Cito
ZWlnaHQ6IDE1MHB4OworYm9yZGVyOjI1cHggZG90dGVkOworYmFja2dyb3VuZC1jb2xvcjogZ3Jl
ZW47Cit9CisjZGl2Mgoreword2lkdGg6IDEwMHB4OworaGVpZ2h0OiAxMDBweDsKK3BhZGRpbmc6
IDI1cHg7CitiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworfQorI2RpdjMKK3sKK3dpZHRoOiAxMDBw
eDsKK2hlaWdodDogMTAwcHg7CitiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7Cit9Cis8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+CitUZXN0IHBhc3NlcyBpZiB0aGUgaW1hZ2UgYmVsb3cgc2hvd3Mg
bmVzdGVkIGdyZWVuLCBibHVlIGFuZCB5ZWxsb3cgc3F1YXJlcyB3aXRoIGEgZG90dGVkIGJsYWNr
IGJvcmRlci4KKzxkaXYgaWQ9ImRpdjEiPjxkaXYgaWQ9ImRpdjIiPjxkaXYgaWQ9ImRpdjMiPjwv
ZGl2PjwvZGl2PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9iYWNrZ3JvdW5kcy9iYWNrZ3JvdW5kLW9wYXF1ZS1jbGlwcGVkLWdyYWRpZW50cy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvYmFja2dyb3VuZC1vcGFx
dWUtY2xpcHBlZC1ncmFkaWVudHMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvYmFja2dyb3VuZHMvYmFja2dyb3VuZC1vcGFxdWUtY2xpcHBlZC1ncmFkaWVudHMuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAjZGl2MSB7
CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAg
cGFkZGluZzogMjVweDsKKyAgICAgICAgYm9yZGVyOiAyNXB4IGRvdHRlZDsKKyAgICAgICAgYmFj
a2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCB5ZWxsb3csIHllbGxv
dyksIC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgYmx1ZSwgYmx1ZSksIC13ZWJraXQtbGlu
ZWFyLWdyYWRpZW50KHRvcCwgZ3JlZW4sIGdyZWVuKTsKKyAgICAgICAgYmFja2dyb3VuZC1jbGlw
OiBjb250ZW50LWJveCwgcGFkZGluZy1ib3gsIGJvcmRlci1ib3g7Cit9Cis8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHk+CitUZXN0IHBhc3NlcyBpZiB0aGUgaW1hZ2UgYmVsb3cgc2hvd3MgbmVzdGVk
IGdyZWVuLCBibHVlIGFuZCB5ZWxsb3cgc3F1YXJlcyB3aXRoIGEgZG90dGVkIGJsYWNrIGJvcmRl
ci4KKzxkaXYgaWQ9ImRpdjEiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176475</attachid>
            <date>2012-11-28 06:22:55 -0800</date>
            <delta_ts>2012-11-28 08:07:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103276-20121128092030.patch</filename>
            <type>text/plain</type>
            <size>8709</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEyLTExLTI3ICBKdXN0aW4g
Tm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgRml4IG9jY2x1c2lvbiBjdWxs
aW5nIGxvZ2ljIHRvIGhhbmRsZSBjc3MgYmFja2dyb3VuZCBsYXllciBjbGlwcGluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjc2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIHdhcyBpbnRyb2R1
Y2VkIGJ5IHIxMzU2MjkKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBpdCBieSB2ZXJpZnlpbmcg
bGF5ZXIgY2xpcC4gIEEgZmlsbCBsYXllciBtdXN0CisgICAgICAgIG5vdCBiZSB0cmVhdGVkIGFz
IGlmIGl0IG9jY2x1ZGVzIHRoZSBsYXllcnMgdW5kZXIgaXQgdW5sZXNzIGl0IGhhcworICAgICAg
ICBhIGxhcmdlciBvciBlcXVhbCBjbGlwIHNldHRpbmcgdGhhbiB0aGUgbGF5ZXJzIHVuZGVyIGl0
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvYmFja2dyb3VuZHMvYmFja2dyb3VuZC1vcGFxdWUtY2xp
cHBlZC1ncmFkaWVudHMuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBhaW50RmlsbExheWVycyk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjbGlw
TWF4KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpj
b21wdXRlQ2xpcE1heCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OmNsaXBPY2NsdWRl
c05leHRMYXllcnMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaDoKKyAg
ICAgICAgKEZpbGxMYXllcik6CisKIDIwMTItMTEtMjcgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBFeHBhbmRpbmcgdmFyaWFibGUgbmFtZXMgaW4gQ29uc29sZU1l
c3NhZ2UuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNp
b24gMTM1ODcyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTk5OCwxOCArOTk4LDI0IEBAIExheW91dFJlY3QgUmVuZGVyQm94Ojpt
YXNrQ2xpcFJlY3QoKQogdm9pZCBSZW5kZXJCb3g6OnBhaW50RmlsbExheWVycyhjb25zdCBQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgQ29sb3ImIGMsIGNvbnN0IEZpbGxMYXllciogZmlsbExh
eWVyLCBjb25zdCBMYXlvdXRSZWN0JiByZWN0LAogICAgIEJhY2tncm91bmRCbGVlZEF2b2lkYW5j
ZSBibGVlZEF2b2lkYW5jZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlbmRlck9iamVjdCogYmFj
a2dyb3VuZE9iamVjdCkKIHsKLSAgICBpZiAoIWZpbGxMYXllcikKLSAgICAgICAgcmV0dXJuOwor
ICAgIFZlY3Rvcjxjb25zdCBGaWxsTGF5ZXIqPiBsYXllcnM7CisgICAgY29uc3QgRmlsbExheWVy
KiBjdXJMYXllciA9IGZpbGxMYXllcjsKKyAgICB3aGlsZSAoY3VyTGF5ZXIpIHsKKyAgICAgICAg
bGF5ZXJzLmFwcGVuZChjdXJMYXllcik7CisgICAgICAgIC8vIFN0b3AgdHJhdmVyc2FsIHdoZW4g
YW4gb3BhcXVlIGxheWVyIGlzIGVuY291bnRlcmVkLgorICAgICAgICAvLyBGSVhNRSA6IEl0IHdv
dWxkIGJlIHBvc3NpYmxlIGZvciB0aGUgZm9sbG93aW5nIG9jY2x1c2lvbiBjdWxsaW5nIHRlc3Qg
dG8gYmUgbW9yZSBhZ2dyZXNzaXZlIAorICAgICAgICAvLyBvbiBsYXllcnMgd2l0aCBubyByZXBl
YXQgYnkgdGVzdGluZyB3aGV0aGVyIHRoZSBpbWFnZSBjb3ZlcnMgdGhlIGxheW91dCByZWN0Lgor
ICAgICAgICAvLyBUZXN0aW5nIHRoYXQgaGVyZSB3b3VsZCBpbXBseSBkdXBsaWNhdGluZyBhIGxv
dCBvZiBjYWxjdWxhdGlvbnMgdGhhdCBhcmUgY3VycmVudGx5IGRvbmUgaW4KKyAgICAgICAgLy8g
UmVuZGVyQm94TW9kZWxPQmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQuIEEgbW9yZSBlZmZp
Y2llbnQgc29sdXRpb24gbWlnaHQgYmUgdG8gbW92ZQorICAgICAgICAvLyB0aGUgbGF5ZXIgcmVj
dXJzaW9uIGludG8gcGFpbnRGaWxsTGF5ZXJFeHRlbmRlZCwgb3IgdG8gY29tcHV0ZSB0aGUgbGF5
ZXIgZ2VvbWV0cnkgaGVyZQorICAgICAgICAvLyBhbmQgcGFzcyBpdCBkb3duLgorICAgICAgICBp
ZiAoY3VyTGF5ZXItPmhhc09wYXF1ZUltYWdlKHRoaXMpICYmIGN1ckxheWVyLT5jbGlwT2NjbHVk
ZXNOZXh0TGF5ZXJzKGN1ckxheWVyID09IGZpbGxMYXllcikgJiYgY3VyTGF5ZXItPmltYWdlKCkt
PmNhblJlbmRlcih0aGlzLCBzdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpICYmIGN1ckxheWVyLT5o
YXNSZXBlYXRYWSgpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGN1ckxheWVyID0gY3Vy
TGF5ZXItPm5leHQoKTsKKyAgICB9CiAKLSAgICAvLyBGSVhNRSA6IEl0IHdvdWxkIGJlIHBvc3Np
YmxlIGZvciB0aGUgZm9sbG93aW5nIG9jY2x1c2lvbiBjdWxsaW5nIHRlc3QgdG8gYmUgbW9yZSBh
Z2dyZXNzaXZlIAotICAgIC8vIG9uIGxheWVycyB3aXRoIG5vIHJlcGVhdCBieSB0ZXN0aW5nIHdo
ZXRoZXIgdGhlIGltYWdlIGNvdmVycyB0aGUgbGF5b3V0IHJlY3QuCi0gICAgLy8gVGVzdGluZyB0
aGF0IGhlcmUgd291bGQgaW1wbHkgZHVwbGljYXRpbmcgYSBsb3Qgb2YgY2FsY3VsYXRpb25zIHRo
YXQgYXJlIGN1cnJlbnRseSBkb25lIGluCi0gICAgLy8gUmVuZGVyQm94TW9kZWxPQmplY3Q6OnBh
aW50RmlsbExheWVyRXh0ZW5kZWQuIEEgbW9yZSBlZmZpY2llbnQgc29sdXRpb24gbWlnaHQgYmUg
dG8gbW92ZQotICAgIC8vIHRoZSBsYXllciByZWN1cnNpb24gaW50byBwYWludEZpbGxMYXllckV4
dGVuZGVkLCBvciB0byBjb21wdXRlIHRoZSBsYXllciBnZW9tZXRyeSBoZXJlCi0gICAgLy8gYW5k
IHBhc3MgaXQgZG93bi4KLSAgICBpZiAoZmlsbExheWVyLT5uZXh0KCkgJiYgKCFmaWxsTGF5ZXIt
Pmhhc09wYXF1ZUltYWdlKHRoaXMpIHx8ICFmaWxsTGF5ZXItPmltYWdlKCktPmNhblJlbmRlcih0
aGlzLCBzdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpIHx8ICFmaWxsTGF5ZXItPmhhc1JlcGVhdFhZ
KCkpKQotICAgICAgICBwYWludEZpbGxMYXllcnMocGFpbnRJbmZvLCBjLCBmaWxsTGF5ZXItPm5l
eHQoKSwgcmVjdCwgYmxlZWRBdm9pZGFuY2UsIG9wLCBiYWNrZ3JvdW5kT2JqZWN0KTsKLSAgICBw
YWludEZpbGxMYXllcihwYWludEluZm8sIGMsIGZpbGxMYXllciwgcmVjdCwgYmxlZWRBdm9pZGFu
Y2UsIG9wLCBiYWNrZ3JvdW5kT2JqZWN0KTsKKyAgICBmb3IgKFZlY3Rvcjxjb25zdCBGaWxsTGF5
ZXIqPjo6Y29uc3RfcmV2ZXJzZV9pdGVyYXRvciBpdCA9IGxheWVycy5yYmVnaW4oKTsgaXQgIT0g
bGF5ZXJzLnJlbmQoKTsgKytpdCkKKyAgICAgICAgcGFpbnRGaWxsTGF5ZXIocGFpbnRJbmZvLCBj
LCAqaXQsIHJlY3QsIGJsZWVkQXZvaWRhbmNlLCBvcCwgYmFja2dyb3VuZE9iamVjdCk7CiB9CiAK
IHZvaWQgUmVuZGVyQm94OjpwYWludEZpbGxMYXllcihjb25zdCBQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgQ29sb3ImIGMsIGNvbnN0IEZpbGxMYXllciogZmlsbExheWVyLCBjb25zdCBMYXlv
dXRSZWN0JiByZWN0LApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxM
YXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Zp
bGxMYXllci5jcHAJKHJldmlzaW9uIDEzNTg3MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9GaWxsTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTgsNiArMjU4LDMzIEBA
IHZvaWQgRmlsbExheWVyOjpjdWxsRW1wdHlMYXllcnMoKQogICAgIH0KIH0KIAorc3RhdGljIEVG
aWxsQm94IGNsaXBNYXgoRUZpbGxCb3ggY2xpcEEsIEVGaWxsQm94IGNsaXBCKQoreworICAgIGlm
IChjbGlwQSA9PSBCb3JkZXJGaWxsQm94IHx8IGNsaXBCID09IEJvcmRlckZpbGxCb3gpCisgICAg
ICAgIHJldHVybiBCb3JkZXJGaWxsQm94OworICAgIGlmIChjbGlwQSA9PSBQYWRkaW5nRmlsbEJv
eCB8fCBjbGlwQiA9PSBQYWRkaW5nRmlsbEJveCkKKyAgICAgICAgcmV0dXJuIFBhZGRpbmdGaWxs
Qm94OworICAgIGlmIChjbGlwQSA9PSBDb250ZW50RmlsbEJveCB8fCBjbGlwQiA9PSBDb250ZW50
RmlsbEJveCkKKyAgICAgICAgcmV0dXJuIENvbnRlbnRGaWxsQm94OworICAgIHJldHVybiBUZXh0
RmlsbEJveDsKK30KKwordm9pZCBGaWxsTGF5ZXI6OmNvbXB1dGVDbGlwTWF4KCkgY29uc3QKK3sK
KyAgICBpZiAobV9uZXh0KSB7CisgICAgICAgIG1fbmV4dC0+Y29tcHV0ZUNsaXBNYXgoKTsKKyAg
ICAgICAgbV9jbGlwTWF4ID0gY2xpcE1heChjbGlwKCksIG1fbmV4dC0+Y2xpcCgpKTsKKyAgICB9
IGVsc2UKKyAgICAgICAgbV9jbGlwTWF4ID0gbV9jbGlwOworfQorCitib29sIEZpbGxMYXllcjo6
Y2xpcE9jY2x1ZGVzTmV4dExheWVycyhib29sIGZpcnN0TGF5ZXIpIGNvbnN0Cit7CisgICAgaWYg
KGZpcnN0TGF5ZXIpCisgICAgICAgIGNvbXB1dGVDbGlwTWF4KCk7CisgICAgcmV0dXJuIG1fY2xp
cCA9PSBtX2NsaXBNYXg7Cit9CisKIGJvb2wgRmlsbExheWVyOjpjb250YWluc0ltYWdlKFN0eWxl
SW1hZ2UqIHMpIGNvbnN0CiB7CiAgICAgaWYgKCFzKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaAkocmV2aXNpb24gMTM1ODcyKQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDYs
NiArMTQ2LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNPcGFxdWVJbWFnZShjb25zdCBSZW5k
ZXJPYmplY3QqKSBjb25zdDsKICAgICBib29sIGhhc1JlcGVhdFhZKCkgY29uc3Q7CisgICAgYm9v
bCBjbGlwT2NjbHVkZXNOZXh0TGF5ZXJzKGJvb2wgZmlyc3RMYXllcikgY29uc3Q7CiAKICAgICBF
RmlsbExheWVyVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUZpbGxMYXll
clR5cGU+KG1fdHlwZSk7IH0KIApAQCAtMTY4LDYgKzE2OSw4IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgZnJpZW5kIGNsYXNzIFJlbmRlclN0eWxlOwogCisgICAgdm9pZCBjb21wdXRlQ2xpcE1h
eCgpIGNvbnN0OworCiAgICAgRmlsbExheWVyKCkgeyB9CiAKICAgICBGaWxsTGF5ZXIqIG1fbmV4
dDsKQEAgLTE5OCw2ICsyMDEsOCBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fY29tcG9zaXRl
U2V0IDogMTsKICAgICAKICAgICB1bnNpZ25lZCBtX3R5cGUgOiAxOyAvLyBFRmlsbExheWVyVHlw
ZQorCisgICAgbXV0YWJsZSB1bnNpZ25lZCBtX2NsaXBNYXggOiAyOyAvLyBFRmlsbEJveCwgbWF4
aW11bSBtX2NsaXAgdmFsdWUgZnJvbSB0aGlzIHRvIGJvdHRvbSBsYXllcgogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM1OTA4KQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTEtMjcg
IEp1c3RpbiBOb3Zvc2FkICA8anVub3ZAZ29vZ2xlLmNvbT4KKworICAgICAgICBGaXggb2NjbHVz
aW9uIGN1bGxpbmcgbG9naWMgdG8gaGFuZGxlIGNzcyBiYWNrZ3JvdW5kIGxheWVyIGNsaXBwaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMyNzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgcmVm
IHRlc3QgdGhhdCB2ZXJpZmllcyB0aGUgc3VwZXJwb3NpdGlvbiBvZiBiYWNrZ3JvdW5kIGxheWVy
cyB3aXRoCisgICAgICAgIHRoZSBsYXllcnMgaGF2aW5nIHNtYWxsZXIgY2xpcCByZWdpb25zIHRo
YW4gdGhlIGxheWVycyBiZW5lYXRoIHRoZW0uCisgICAgICAgIFRoaXMgdGVzdCBlbnN1cmVzIHRo
ZSBib3R0b20gbGF5ZXJzIGFyZSBub3QgcmVtb3ZlZCBieSBjdWxsaW5nCisgICAgICAgIG9wdGlt
aXphdGlvbnMuCisKKyAgICAgICAgKiBmZXN0L2JhY2tncm91bmRzL2JhY2tncm91bmQtb3BhcXVl
LWNsaXBwZWQtZ3JhZGllbnRzLWV4cGVjdGVkLmh0bWw6IEFkZGVkCisgICAgICAgICogZmFzdC9i
YWNrZ3JvdW5kcy9iYWNrZ3JvdW5kLW9wYXF1ZS1jbGlwcGVkLWdyYWRpZW50cy5odG1sOiBBZGRl
ZC4KKwogMjAxMi0xMS0yNyAgQWFyb24gQ29sd2VsbCAgPGFjb2x3ZWxsQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVc2UtYWZ0ZXItZnJlZSBpbiBtZWRpYSBwbGF5ZXIgaGFuZGxpbmcKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvYmFja2dyb3VuZC1vcGFxdWUtY2xpcHBlZC1n
cmFkaWVudHMtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Jh
Y2tncm91bmRzL2JhY2tncm91bmQtb3BhcXVlLWNsaXBwZWQtZ3JhZGllbnRzLWV4cGVjdGVkLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL2JhY2tncm91
bmQtb3BhcXVlLWNsaXBwZWQtZ3JhZGllbnRzLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMzEgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisjZGl2MQoreword2lkdGg6IDE1MHB4Owor
aGVpZ2h0OiAxNTBweDsKK2JvcmRlcjoyNXB4IGRvdHRlZDsKK2JhY2tncm91bmQtY29sb3I6IGdy
ZWVuOworfQorI2RpdjIKK3sKK3dpZHRoOiAxMDBweDsKK2hlaWdodDogMTAwcHg7CitwYWRkaW5n
OiAyNXB4OworYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKK30KKyNkaXYzCit7Cit3aWR0aDogMTAw
cHg7CitoZWlnaHQ6IDEwMHB4OworYmFja2dyb3VuZC1jb2xvcjogeWVsbG93OworfQorPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorVGVzdCBwYXNzZXMgaWYgdGhlIGltYWdlIGJlbG93IHNob3dz
IG5lc3RlZCBncmVlbiwgYmx1ZSBhbmQgeWVsbG93IHNxdWFyZXMgd2l0aCBhIGRvdHRlZCBibGFj
ayBib3JkZXIuCis8ZGl2IGlkPSJkaXYxIj48ZGl2IGlkPSJkaXYyIj48ZGl2IGlkPSJkaXYzIj48
L2Rpdj48L2Rpdj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvYmFja2dyb3VuZHMvYmFja2dyb3VuZC1vcGFxdWUtY2xpcHBlZC1ncmFkaWVudHMuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL2JhY2tncm91bmQtb3Bh
cXVlLWNsaXBwZWQtZ3JhZGllbnRzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2JhY2tncm91bmRzL2JhY2tncm91bmQtb3BhcXVlLWNsaXBwZWQtZ3JhZGllbnRzLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgI2RpdjEg
eworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAg
IHBhZGRpbmc6IDI1cHg7CisgICAgICAgIGJvcmRlcjogMjVweCBkb3R0ZWQ7CisgICAgICAgIGJh
Y2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgeWVsbG93LCB5ZWxs
b3cpLCAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIGJsdWUsIGJsdWUpLCAtd2Via2l0LWxp
bmVhci1ncmFkaWVudCh0b3AsIGdyZWVuLCBncmVlbik7CisgICAgICAgIGJhY2tncm91bmQtY2xp
cDogY29udGVudC1ib3gsIHBhZGRpbmctYm94LCBib3JkZXItYm94OworfQorPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorVGVzdCBwYXNzZXMgaWYgdGhlIGltYWdlIGJlbG93IHNob3dzIG5lc3Rl
ZCBncmVlbiwgYmx1ZSBhbmQgeWVsbG93IHNxdWFyZXMgd2l0aCBhIGRvdHRlZCBibGFjayBib3Jk
ZXIuCis8ZGl2IGlkPSJkaXYxIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176487</attachid>
            <date>2012-11-28 08:07:27 -0800</date>
            <delta_ts>2012-11-30 12:14:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103276-20121128110502.patch</filename>
            <type>text/plain</type>
            <size>8784</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEyLTExLTI3ICBKdXN0aW4g
Tm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgRml4IG9jY2x1c2lvbiBjdWxs
aW5nIGxvZ2ljIHRvIGhhbmRsZSBjc3MgYmFja2dyb3VuZCBsYXllciBjbGlwcGluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjc2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIHdhcyBpbnRyb2R1
Y2VkIGJ5IHIxMzU2MjkKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBpdCBieSB2ZXJpZnlpbmcg
bGF5ZXIgY2xpcC4gIEEgZmlsbCBsYXllciBtdXN0CisgICAgICAgIG5vdCBiZSB0cmVhdGVkIGFz
IGlmIGl0IG9jY2x1ZGVzIHRoZSBsYXllcnMgdW5kZXIgaXQgdW5sZXNzIGl0IGhhcworICAgICAg
ICBhIGxhcmdlciBvciBlcXVhbCBjbGlwIHNldHRpbmcgdGhhbiB0aGUgbGF5ZXJzIHVuZGVyIGl0
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvYmFja2dyb3VuZHMvYmFja2dyb3VuZC1vcGFxdWUtY2xp
cHBlZC1ncmFkaWVudHMuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBhaW50RmlsbExheWVycyk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjbGlw
TWF4KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsbExheWVyOjpj
b21wdXRlQ2xpcE1heCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OmNsaXBPY2NsdWRl
c05leHRMYXllcnMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaDoKKyAg
ICAgICAgKEZpbGxMYXllcik6CisKIDIwMTItMTEtMjcgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBFeHBhbmRpbmcgdmFyaWFibGUgbmFtZXMgaW4gQ29uc29sZU1l
c3NhZ2UuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNp
b24gMTM1ODcyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTk5OCwxOCArOTk4LDI1IEBAIExheW91dFJlY3QgUmVuZGVyQm94Ojpt
YXNrQ2xpcFJlY3QoKQogdm9pZCBSZW5kZXJCb3g6OnBhaW50RmlsbExheWVycyhjb25zdCBQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgQ29sb3ImIGMsIGNvbnN0IEZpbGxMYXllciogZmlsbExh
eWVyLCBjb25zdCBMYXlvdXRSZWN0JiByZWN0LAogICAgIEJhY2tncm91bmRCbGVlZEF2b2lkYW5j
ZSBibGVlZEF2b2lkYW5jZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlbmRlck9iamVjdCogYmFj
a2dyb3VuZE9iamVjdCkKIHsKLSAgICBpZiAoIWZpbGxMYXllcikKLSAgICAgICAgcmV0dXJuOwor
ICAgIFZlY3Rvcjxjb25zdCBGaWxsTGF5ZXIqPiBsYXllcnM7CisgICAgY29uc3QgRmlsbExheWVy
KiBjdXJMYXllciA9IGZpbGxMYXllcjsKKyAgICB3aGlsZSAoY3VyTGF5ZXIpIHsKKyAgICAgICAg
bGF5ZXJzLmFwcGVuZChjdXJMYXllcik7CisgICAgICAgIC8vIFN0b3AgdHJhdmVyc2FsIHdoZW4g
YW4gb3BhcXVlIGxheWVyIGlzIGVuY291bnRlcmVkLgorICAgICAgICAvLyBGSVhNRSA6IEl0IHdv
dWxkIGJlIHBvc3NpYmxlIGZvciB0aGUgZm9sbG93aW5nIG9jY2x1c2lvbiBjdWxsaW5nIHRlc3Qg
dG8gYmUgbW9yZSBhZ2dyZXNzaXZlIAorICAgICAgICAvLyBvbiBsYXllcnMgd2l0aCBubyByZXBl
YXQgYnkgdGVzdGluZyB3aGV0aGVyIHRoZSBpbWFnZSBjb3ZlcnMgdGhlIGxheW91dCByZWN0Lgor
ICAgICAgICAvLyBUZXN0aW5nIHRoYXQgaGVyZSB3b3VsZCBpbXBseSBkdXBsaWNhdGluZyBhIGxv
dCBvZiBjYWxjdWxhdGlvbnMgdGhhdCBhcmUgY3VycmVudGx5IGRvbmUgaW4KKyAgICAgICAgLy8g
UmVuZGVyQm94TW9kZWxPQmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQuIEEgbW9yZSBlZmZp
Y2llbnQgc29sdXRpb24gbWlnaHQgYmUgdG8gbW92ZQorICAgICAgICAvLyB0aGUgbGF5ZXIgcmVj
dXJzaW9uIGludG8gcGFpbnRGaWxsTGF5ZXJFeHRlbmRlZCwgb3IgdG8gY29tcHV0ZSB0aGUgbGF5
ZXIgZ2VvbWV0cnkgaGVyZQorICAgICAgICAvLyBhbmQgcGFzcyBpdCBkb3duLgorICAgICAgICBp
ZiAoY3VyTGF5ZXItPmhhc09wYXF1ZUltYWdlKHRoaXMpICYmIGN1ckxheWVyLT5jbGlwT2NjbHVk
ZXNOZXh0TGF5ZXJzKGN1ckxheWVyID09IGZpbGxMYXllcikgJiYgY3VyTGF5ZXItPmltYWdlKCkt
PmNhblJlbmRlcih0aGlzLCBzdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpICYmIGN1ckxheWVyLT5o
YXNSZXBlYXRYWSgpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGN1ckxheWVyID0gY3Vy
TGF5ZXItPm5leHQoKTsKKyAgICB9CiAKLSAgICAvLyBGSVhNRSA6IEl0IHdvdWxkIGJlIHBvc3Np
YmxlIGZvciB0aGUgZm9sbG93aW5nIG9jY2x1c2lvbiBjdWxsaW5nIHRlc3QgdG8gYmUgbW9yZSBh
Z2dyZXNzaXZlIAotICAgIC8vIG9uIGxheWVycyB3aXRoIG5vIHJlcGVhdCBieSB0ZXN0aW5nIHdo
ZXRoZXIgdGhlIGltYWdlIGNvdmVycyB0aGUgbGF5b3V0IHJlY3QuCi0gICAgLy8gVGVzdGluZyB0
aGF0IGhlcmUgd291bGQgaW1wbHkgZHVwbGljYXRpbmcgYSBsb3Qgb2YgY2FsY3VsYXRpb25zIHRo
YXQgYXJlIGN1cnJlbnRseSBkb25lIGluCi0gICAgLy8gUmVuZGVyQm94TW9kZWxPQmplY3Q6OnBh
aW50RmlsbExheWVyRXh0ZW5kZWQuIEEgbW9yZSBlZmZpY2llbnQgc29sdXRpb24gbWlnaHQgYmUg
dG8gbW92ZQotICAgIC8vIHRoZSBsYXllciByZWN1cnNpb24gaW50byBwYWludEZpbGxMYXllckV4
dGVuZGVkLCBvciB0byBjb21wdXRlIHRoZSBsYXllciBnZW9tZXRyeSBoZXJlCi0gICAgLy8gYW5k
IHBhc3MgaXQgZG93bi4KLSAgICBpZiAoZmlsbExheWVyLT5uZXh0KCkgJiYgKCFmaWxsTGF5ZXIt
Pmhhc09wYXF1ZUltYWdlKHRoaXMpIHx8ICFmaWxsTGF5ZXItPmltYWdlKCktPmNhblJlbmRlcih0
aGlzLCBzdHlsZSgpLT5lZmZlY3RpdmVab29tKCkpIHx8ICFmaWxsTGF5ZXItPmhhc1JlcGVhdFhZ
KCkpKQotICAgICAgICBwYWludEZpbGxMYXllcnMocGFpbnRJbmZvLCBjLCBmaWxsTGF5ZXItPm5l
eHQoKSwgcmVjdCwgYmxlZWRBdm9pZGFuY2UsIG9wLCBiYWNrZ3JvdW5kT2JqZWN0KTsKLSAgICBw
YWludEZpbGxMYXllcihwYWludEluZm8sIGMsIGZpbGxMYXllciwgcmVjdCwgYmxlZWRBdm9pZGFu
Y2UsIG9wLCBiYWNrZ3JvdW5kT2JqZWN0KTsKKyAgICBWZWN0b3I8Y29uc3QgRmlsbExheWVyKj46
OmNvbnN0X3JldmVyc2VfaXRlcmF0b3IgdG9wTGF5ZXIgPSBsYXllcnMucmVuZCgpOworICAgIGZv
ciAoVmVjdG9yPGNvbnN0IEZpbGxMYXllcio+Ojpjb25zdF9yZXZlcnNlX2l0ZXJhdG9yIGl0ID0g
bGF5ZXJzLnJiZWdpbigpOyBpdCAhPSB0b3BMYXllcjsgKytpdCkKKyAgICAgICAgcGFpbnRGaWxs
TGF5ZXIocGFpbnRJbmZvLCBjLCAqaXQsIHJlY3QsIGJsZWVkQXZvaWRhbmNlLCBvcCwgYmFja2dy
b3VuZE9iamVjdCk7CiB9CiAKIHZvaWQgUmVuZGVyQm94OjpwYWludEZpbGxMYXllcihjb25zdCBQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgQ29sb3ImIGMsIGNvbnN0IEZpbGxMYXllciogZmls
bExheWVyLCBjb25zdCBMYXlvdXRSZWN0JiByZWN0LApJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAJKHJldmlzaW9uIDEzNTg3MikKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNTgsNiArMjU4LDMzIEBAIHZvaWQgRmlsbExheWVyOjpjdWxsRW1wdHlMYXllcnMoKQogICAg
IH0KIH0KIAorc3RhdGljIEVGaWxsQm94IGNsaXBNYXgoRUZpbGxCb3ggY2xpcEEsIEVGaWxsQm94
IGNsaXBCKQoreworICAgIGlmIChjbGlwQSA9PSBCb3JkZXJGaWxsQm94IHx8IGNsaXBCID09IEJv
cmRlckZpbGxCb3gpCisgICAgICAgIHJldHVybiBCb3JkZXJGaWxsQm94OworICAgIGlmIChjbGlw
QSA9PSBQYWRkaW5nRmlsbEJveCB8fCBjbGlwQiA9PSBQYWRkaW5nRmlsbEJveCkKKyAgICAgICAg
cmV0dXJuIFBhZGRpbmdGaWxsQm94OworICAgIGlmIChjbGlwQSA9PSBDb250ZW50RmlsbEJveCB8
fCBjbGlwQiA9PSBDb250ZW50RmlsbEJveCkKKyAgICAgICAgcmV0dXJuIENvbnRlbnRGaWxsQm94
OworICAgIHJldHVybiBUZXh0RmlsbEJveDsKK30KKwordm9pZCBGaWxsTGF5ZXI6OmNvbXB1dGVD
bGlwTWF4KCkgY29uc3QKK3sKKyAgICBpZiAobV9uZXh0KSB7CisgICAgICAgIG1fbmV4dC0+Y29t
cHV0ZUNsaXBNYXgoKTsKKyAgICAgICAgbV9jbGlwTWF4ID0gY2xpcE1heChjbGlwKCksIG1fbmV4
dC0+Y2xpcCgpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9jbGlwTWF4ID0gbV9jbGlwOworfQor
Citib29sIEZpbGxMYXllcjo6Y2xpcE9jY2x1ZGVzTmV4dExheWVycyhib29sIGZpcnN0TGF5ZXIp
IGNvbnN0Cit7CisgICAgaWYgKGZpcnN0TGF5ZXIpCisgICAgICAgIGNvbXB1dGVDbGlwTWF4KCk7
CisgICAgcmV0dXJuIG1fY2xpcCA9PSBtX2NsaXBNYXg7Cit9CisKIGJvb2wgRmlsbExheWVyOjpj
b250YWluc0ltYWdlKFN0eWxlSW1hZ2UqIHMpIGNvbnN0CiB7CiAgICAgaWYgKCFzKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaAkocmV2aXNpb24gMTM1
ODcyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNDYsNiArMTQ2LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBoYXNPcGFx
dWVJbWFnZShjb25zdCBSZW5kZXJPYmplY3QqKSBjb25zdDsKICAgICBib29sIGhhc1JlcGVhdFhZ
KCkgY29uc3Q7CisgICAgYm9vbCBjbGlwT2NjbHVkZXNOZXh0TGF5ZXJzKGJvb2wgZmlyc3RMYXll
cikgY29uc3Q7CiAKICAgICBFRmlsbExheWVyVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8RUZpbGxMYXllclR5cGU+KG1fdHlwZSk7IH0KIApAQCAtMTY4LDYgKzE2OSw4IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFJlbmRlclN0eWxlOwogCisgICAg
dm9pZCBjb21wdXRlQ2xpcE1heCgpIGNvbnN0OworCiAgICAgRmlsbExheWVyKCkgeyB9CiAKICAg
ICBGaWxsTGF5ZXIqIG1fbmV4dDsKQEAgLTE5OCw2ICsyMDEsOCBAQCBwcml2YXRlOgogICAgIHVu
c2lnbmVkIG1fY29tcG9zaXRlU2V0IDogMTsKICAgICAKICAgICB1bnNpZ25lZCBtX3R5cGUgOiAx
OyAvLyBFRmlsbExheWVyVHlwZQorCisgICAgbXV0YWJsZSB1bnNpZ25lZCBtX2NsaXBNYXggOiAy
OyAvLyBFRmlsbEJveCwgbWF4aW11bSBtX2NsaXAgdmFsdWUgZnJvbSB0aGlzIHRvIGJvdHRvbSBs
YXllcgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM1
OTA4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTItMTEtMjcgIEp1c3RpbiBOb3Zvc2FkICA8anVub3ZAZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBGaXggb2NjbHVzaW9uIGN1bGxpbmcgbG9naWMgdG8gaGFuZGxlIGNzcyBiYWNrZ3Jv
dW5kIGxheWVyIGNsaXBwaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDMyNzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBOZXcgcmVmIHRlc3QgdGhhdCB2ZXJpZmllcyB0aGUgc3VwZXJwb3NpdGlvbiBv
ZiBiYWNrZ3JvdW5kIGxheWVycyB3aXRoCisgICAgICAgIHRoZSBsYXllcnMgaGF2aW5nIHNtYWxs
ZXIgY2xpcCByZWdpb25zIHRoYW4gdGhlIGxheWVycyBiZW5lYXRoIHRoZW0uCisgICAgICAgIFRo
aXMgdGVzdCBlbnN1cmVzIHRoZSBib3R0b20gbGF5ZXJzIGFyZSBub3QgcmVtb3ZlZCBieSBjdWxs
aW5nCisgICAgICAgIG9wdGltaXphdGlvbnMuCisKKyAgICAgICAgKiBmZXN0L2JhY2tncm91bmRz
L2JhY2tncm91bmQtb3BhcXVlLWNsaXBwZWQtZ3JhZGllbnRzLWV4cGVjdGVkLmh0bWw6IEFkZGVk
CisgICAgICAgICogZmFzdC9iYWNrZ3JvdW5kcy9iYWNrZ3JvdW5kLW9wYXF1ZS1jbGlwcGVkLWdy
YWRpZW50cy5odG1sOiBBZGRlZC4KKwogMjAxMi0xMS0yNyAgQWFyb24gQ29sd2VsbCAgPGFjb2x3
ZWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVc2UtYWZ0ZXItZnJlZSBpbiBtZWRpYSBwbGF5
ZXIgaGFuZGxpbmcKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvYmFja2dyb3Vu
ZC1vcGFxdWUtY2xpcHBlZC1ncmFkaWVudHMtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL2JhY2tncm91bmQtb3BhcXVlLWNsaXBwZWQtZ3Jh
ZGllbnRzLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Jh
Y2tncm91bmRzL2JhY2tncm91bmQtb3BhcXVlLWNsaXBwZWQtZ3JhZGllbnRzLWV4cGVjdGVkLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzEgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisjZGl2MQor
eword2lkdGg6IDE1MHB4OworaGVpZ2h0OiAxNTBweDsKK2JvcmRlcjoyNXB4IGRvdHRlZDsKK2Jh
Y2tncm91bmQtY29sb3I6IGdyZWVuOworfQorI2RpdjIKK3sKK3dpZHRoOiAxMDBweDsKK2hlaWdo
dDogMTAwcHg7CitwYWRkaW5nOiAyNXB4OworYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKK30KKyNk
aXYzCit7Cit3aWR0aDogMTAwcHg7CitoZWlnaHQ6IDEwMHB4OworYmFja2dyb3VuZC1jb2xvcjog
eWVsbG93OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorVGVzdCBwYXNzZXMgaWYgdGhl
IGltYWdlIGJlbG93IHNob3dzIG5lc3RlZCBncmVlbiwgYmx1ZSBhbmQgeWVsbG93IHNxdWFyZXMg
d2l0aCBhIGRvdHRlZCBibGFjayBib3JkZXIuCis8ZGl2IGlkPSJkaXYxIj48ZGl2IGlkPSJkaXYy
Ij48ZGl2IGlkPSJkaXYzIj48L2Rpdj48L2Rpdj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvYmFja2dyb3VuZC1vcGFxdWUtY2xpcHBl
ZC1ncmFkaWVudHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91
bmRzL2JhY2tncm91bmQtb3BhcXVlLWNsaXBwZWQtZ3JhZGllbnRzLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL2JhY2tncm91bmQtb3BhcXVlLWNsaXBw
ZWQtZ3JhZGllbnRzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKKzwhZG9jdHlw
ZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNj
cmVlbiI+CisgICAgI2RpdjEgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdo
dDogMTAwcHg7CisgICAgICAgIHBhZGRpbmc6IDI1cHg7CisgICAgICAgIGJvcmRlcjogMjVweCBk
b3R0ZWQ7CisgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50
KHRvcCwgeWVsbG93LCB5ZWxsb3cpLCAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIGJsdWUs
IGJsdWUpLCAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIGdyZWVuLCBncmVlbik7CisgICAg
ICAgIGJhY2tncm91bmQtY2xpcDogY29udGVudC1ib3gsIHBhZGRpbmctYm94LCBib3JkZXItYm94
OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorVGVzdCBwYXNzZXMgaWYgdGhlIGltYWdl
IGJlbG93IHNob3dzIG5lc3RlZCBncmVlbiwgYmx1ZSBhbmQgeWVsbG93IHNxdWFyZXMgd2l0aCBh
IGRvdHRlZCBibGFjayBib3JkZXIuCis8ZGl2IGlkPSJkaXYxIj48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177005</attachid>
            <date>2012-11-30 12:14:13 -0800</date>
            <delta_ts>2012-12-02 02:56:17 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-103276-20121130151144.patch</filename>
            <type>text/plain</type>
            <size>8805</size>
            <attacher name="Justin Novosad">junov</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjI1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEyLTExLTMwICBKdXN0aW4g
Tm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+CisKKyAgICAgICAgRml4IG9jY2x1c2lvbiBjdWxs
aW5nIGxvZ2ljIHRvIGhhbmRsZSBjc3MgYmFja2dyb3VuZCBsYXllciBjbGlwcGluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjc2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEJ1ZyB3YXMgaW50cm9kdWNl
ZCBieSByMTM1NjI5CisgICAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgaXQgYnkgdmVyaWZ5aW5nIGxh
eWVyIGNsaXAuICBBIGZpbGwgbGF5ZXIgbXVzdAorICAgICAgICBub3QgYmUgdHJlYXRlZCBhcyBp
ZiBpdCBvY2NsdWRlcyB0aGUgbGF5ZXJzIHVuZGVyIGl0IHVubGVzcyBpdCBoYXMKKyAgICAgICAg
YSBsYXJnZXIgb3IgZXF1YWwgY2xpcCBzZXR0aW5nIHRoYW4gdGhlIGxheWVycyB1bmRlciBpdC4K
KworICAgICAgICBUZXN0OiBmYXN0L2JhY2tncm91bmRzL2JhY2tncm91bmQtb3BhcXVlLWNsaXBw
ZWQtZ3JhZGllbnRzLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludEZpbGxMYXllcnMpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2xpcE1h
eCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxsTGF5ZXI6OmNvbXB1dGVDbGlwTWF4KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGxMYXllcjo6Y2xpcE9jY2x1ZGVzTmV4dExheWVycyk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oOgorICAgICAgICAoRmlsbExheWVyKToKKwog
MjAxMi0xMS0zMCAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmVwb3J0IENTUyBhcyBpbml0aWF0b3IgaW5zdGVhZCBvZiBlbGVtZW50cywgZXhjZXB0
IGJvZHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCShyZXZpc2lv
biAxMzYyNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTA0OCwxOCArMTA0OCwyNSBAQCBMYXlvdXRSZWN0IFJlbmRlckJveDo6
bWFza0NsaXBSZWN0KCkKIHZvaWQgUmVuZGVyQm94OjpwYWludEZpbGxMYXllcnMoY29uc3QgUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IENvbG9yJiBjLCBjb25zdCBGaWxsTGF5ZXIqIGZpbGxM
YXllciwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwKICAgICBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFu
Y2UgYmxlZWRBdm9pZGFuY2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBSZW5kZXJPYmplY3QqIGJh
Y2tncm91bmRPYmplY3QpCiB7Ci0gICAgaWYgKCFmaWxsTGF5ZXIpCi0gICAgICAgIHJldHVybjsK
KyAgICBWZWN0b3I8Y29uc3QgRmlsbExheWVyKiwgOD4gbGF5ZXJzOworICAgIGNvbnN0IEZpbGxM
YXllciogY3VyTGF5ZXIgPSBmaWxsTGF5ZXI7CisgICAgd2hpbGUgKGN1ckxheWVyKSB7CisgICAg
ICAgIGxheWVycy5hcHBlbmQoY3VyTGF5ZXIpOworICAgICAgICAvLyBTdG9wIHRyYXZlcnNhbCB3
aGVuIGFuIG9wYXF1ZSBsYXllciBpcyBlbmNvdW50ZXJlZC4KKyAgICAgICAgLy8gRklYTUUgOiBJ
dCB3b3VsZCBiZSBwb3NzaWJsZSBmb3IgdGhlIGZvbGxvd2luZyBvY2NsdXNpb24gY3VsbGluZyB0
ZXN0IHRvIGJlIG1vcmUgYWdncmVzc2l2ZSAKKyAgICAgICAgLy8gb24gbGF5ZXJzIHdpdGggbm8g
cmVwZWF0IGJ5IHRlc3Rpbmcgd2hldGhlciB0aGUgaW1hZ2UgY292ZXJzIHRoZSBsYXlvdXQgcmVj
dC4KKyAgICAgICAgLy8gVGVzdGluZyB0aGF0IGhlcmUgd291bGQgaW1wbHkgZHVwbGljYXRpbmcg
YSBsb3Qgb2YgY2FsY3VsYXRpb25zIHRoYXQgYXJlIGN1cnJlbnRseSBkb25lIGluCisgICAgICAg
IC8vIFJlbmRlckJveE1vZGVsT0JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkLiBBIG1vcmUg
ZWZmaWNpZW50IHNvbHV0aW9uIG1pZ2h0IGJlIHRvIG1vdmUKKyAgICAgICAgLy8gdGhlIGxheWVy
IHJlY3Vyc2lvbiBpbnRvIHBhaW50RmlsbExheWVyRXh0ZW5kZWQsIG9yIHRvIGNvbXB1dGUgdGhl
IGxheWVyIGdlb21ldHJ5IGhlcmUKKyAgICAgICAgLy8gYW5kIHBhc3MgaXQgZG93bi4KKyAgICAg
ICAgaWYgKGN1ckxheWVyLT5oYXNPcGFxdWVJbWFnZSh0aGlzKSAmJiBjdXJMYXllci0+Y2xpcE9j
Y2x1ZGVzTmV4dExheWVycyhjdXJMYXllciA9PSBmaWxsTGF5ZXIpICYmIGN1ckxheWVyLT5pbWFn
ZSgpLT5jYW5SZW5kZXIodGhpcywgc3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKSAmJiBjdXJMYXll
ci0+aGFzUmVwZWF0WFkoKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjdXJMYXllciA9
IGN1ckxheWVyLT5uZXh0KCk7CisgICAgfQogCi0gICAgLy8gRklYTUUgOiBJdCB3b3VsZCBiZSBw
b3NzaWJsZSBmb3IgdGhlIGZvbGxvd2luZyBvY2NsdXNpb24gY3VsbGluZyB0ZXN0IHRvIGJlIG1v
cmUgYWdncmVzc2l2ZSAKLSAgICAvLyBvbiBsYXllcnMgd2l0aCBubyByZXBlYXQgYnkgdGVzdGlu
ZyB3aGV0aGVyIHRoZSBpbWFnZSBjb3ZlcnMgdGhlIGxheW91dCByZWN0LgotICAgIC8vIFRlc3Rp
bmcgdGhhdCBoZXJlIHdvdWxkIGltcGx5IGR1cGxpY2F0aW5nIGEgbG90IG9mIGNhbGN1bGF0aW9u
cyB0aGF0IGFyZSBjdXJyZW50bHkgZG9uZSBpbgotICAgIC8vIFJlbmRlckJveE1vZGVsT0JqZWN0
OjpwYWludEZpbGxMYXllckV4dGVuZGVkLiBBIG1vcmUgZWZmaWNpZW50IHNvbHV0aW9uIG1pZ2h0
IGJlIHRvIG1vdmUKLSAgICAvLyB0aGUgbGF5ZXIgcmVjdXJzaW9uIGludG8gcGFpbnRGaWxsTGF5
ZXJFeHRlbmRlZCwgb3IgdG8gY29tcHV0ZSB0aGUgbGF5ZXIgZ2VvbWV0cnkgaGVyZQotICAgIC8v
IGFuZCBwYXNzIGl0IGRvd24uCi0gICAgaWYgKGZpbGxMYXllci0+bmV4dCgpICYmICghZmlsbExh
eWVyLT5oYXNPcGFxdWVJbWFnZSh0aGlzKSB8fCAhZmlsbExheWVyLT5pbWFnZSgpLT5jYW5SZW5k
ZXIodGhpcywgc3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpKSB8fCAhZmlsbExheWVyLT5oYXNSZXBl
YXRYWSgpKSkKLSAgICAgICAgcGFpbnRGaWxsTGF5ZXJzKHBhaW50SW5mbywgYywgZmlsbExheWVy
LT5uZXh0KCksIHJlY3QsIGJsZWVkQXZvaWRhbmNlLCBvcCwgYmFja2dyb3VuZE9iamVjdCk7Ci0g
ICAgcGFpbnRGaWxsTGF5ZXIocGFpbnRJbmZvLCBjLCBmaWxsTGF5ZXIsIHJlY3QsIGJsZWVkQXZv
aWRhbmNlLCBvcCwgYmFja2dyb3VuZE9iamVjdCk7CisgICAgVmVjdG9yPGNvbnN0IEZpbGxMYXll
cio+Ojpjb25zdF9yZXZlcnNlX2l0ZXJhdG9yIHRvcExheWVyID0gbGF5ZXJzLnJlbmQoKTsKKyAg
ICBmb3IgKFZlY3Rvcjxjb25zdCBGaWxsTGF5ZXIqPjo6Y29uc3RfcmV2ZXJzZV9pdGVyYXRvciBp
dCA9IGxheWVycy5yYmVnaW4oKTsgaXQgIT0gdG9wTGF5ZXI7ICsraXQpCisgICAgICAgIHBhaW50
RmlsbExheWVyKHBhaW50SW5mbywgYywgKml0LCByZWN0LCBibGVlZEF2b2lkYW5jZSwgb3AsIGJh
Y2tncm91bmRPYmplY3QpOwogfQogCiB2b2lkIFJlbmRlckJveDo6cGFpbnRGaWxsTGF5ZXIoY29u
c3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IENvbG9yJiBjLCBjb25zdCBGaWxsTGF5ZXIq
IGZpbGxMYXllciwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCShyZXZpc2lvbiAxMzYyNTcpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjU4LDYgKzI1OCwzMyBAQCB2b2lkIEZpbGxMYXllcjo6Y3VsbEVtcHR5TGF5ZXJzKCkK
ICAgICB9CiB9CiAKK3N0YXRpYyBFRmlsbEJveCBjbGlwTWF4KEVGaWxsQm94IGNsaXBBLCBFRmls
bEJveCBjbGlwQikKK3sKKyAgICBpZiAoY2xpcEEgPT0gQm9yZGVyRmlsbEJveCB8fCBjbGlwQiA9
PSBCb3JkZXJGaWxsQm94KQorICAgICAgICByZXR1cm4gQm9yZGVyRmlsbEJveDsKKyAgICBpZiAo
Y2xpcEEgPT0gUGFkZGluZ0ZpbGxCb3ggfHwgY2xpcEIgPT0gUGFkZGluZ0ZpbGxCb3gpCisgICAg
ICAgIHJldHVybiBQYWRkaW5nRmlsbEJveDsKKyAgICBpZiAoY2xpcEEgPT0gQ29udGVudEZpbGxC
b3ggfHwgY2xpcEIgPT0gQ29udGVudEZpbGxCb3gpCisgICAgICAgIHJldHVybiBDb250ZW50Rmls
bEJveDsKKyAgICByZXR1cm4gVGV4dEZpbGxCb3g7Cit9CisKK3ZvaWQgRmlsbExheWVyOjpjb21w
dXRlQ2xpcE1heCgpIGNvbnN0Cit7CisgICAgaWYgKG1fbmV4dCkgeworICAgICAgICBtX25leHQt
PmNvbXB1dGVDbGlwTWF4KCk7CisgICAgICAgIG1fY2xpcE1heCA9IGNsaXBNYXgoY2xpcCgpLCBt
X25leHQtPmNsaXAoKSk7CisgICAgfSBlbHNlCisgICAgICAgIG1fY2xpcE1heCA9IG1fY2xpcDsK
K30KKworYm9vbCBGaWxsTGF5ZXI6OmNsaXBPY2NsdWRlc05leHRMYXllcnMoYm9vbCBmaXJzdExh
eWVyKSBjb25zdAoreworICAgIGlmIChmaXJzdExheWVyKQorICAgICAgICBjb21wdXRlQ2xpcE1h
eCgpOworICAgIHJldHVybiBtX2NsaXAgPT0gbV9jbGlwTWF4OworfQorCiBib29sIEZpbGxMYXll
cjo6Y29udGFpbnNJbWFnZShTdHlsZUltYWdlKiBzKSBjb25zdAogewogICAgIGlmICghcykKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmgJKHJldmlzaW9u
IDEzNjI1NykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMTQ2LDYgKzE0Niw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFz
T3BhcXVlSW1hZ2UoY29uc3QgUmVuZGVyT2JqZWN0KikgY29uc3Q7CiAgICAgYm9vbCBoYXNSZXBl
YXRYWSgpIGNvbnN0OworICAgIGJvb2wgY2xpcE9jY2x1ZGVzTmV4dExheWVycyhib29sIGZpcnN0
TGF5ZXIpIGNvbnN0OwogCiAgICAgRUZpbGxMYXllclR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IHN0YXRpY19jYXN0PEVGaWxsTGF5ZXJUeXBlPihtX3R5cGUpOyB9CiAKQEAgLTE2OCw2ICsxNjks
OCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBSZW5kZXJTdHlsZTsKIAor
ICAgIHZvaWQgY29tcHV0ZUNsaXBNYXgoKSBjb25zdDsKKwogICAgIEZpbGxMYXllcigpIHsgfQog
CiAgICAgRmlsbExheWVyKiBtX25leHQ7CkBAIC0xOTgsNiArMjAxLDggQEAgcHJpdmF0ZToKICAg
ICB1bnNpZ25lZCBtX2NvbXBvc2l0ZVNldCA6IDE7CiAgICAgCiAgICAgdW5zaWduZWQgbV90eXBl
IDogMTsgLy8gRUZpbGxMYXllclR5cGUKKworICAgIG11dGFibGUgdW5zaWduZWQgbV9jbGlwTWF4
IDogMjsgLy8gRUZpbGxCb3gsIG1heGltdW0gbV9jbGlwIHZhbHVlIGZyb20gdGhpcyB0byBib3R0
b20gbGF5ZXIKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDEzNjI1NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDEyLTExLTMwICBKdXN0aW4gTm92b3NhZCAgPGp1bm92QGdvb2dsZS5jb20+
CisKKyAgICAgICAgRml4IG9jY2x1c2lvbiBjdWxsaW5nIGxvZ2ljIHRvIGhhbmRsZSBjc3MgYmFj
a2dyb3VuZCBsYXllciBjbGlwcGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAzMjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2Vy
LgorCisgICAgICAgIE5ldyByZWYgdGVzdCB0aGF0IHZlcmlmaWVzIHRoZSBzdXBlcnBvc2l0aW9u
IG9mIGJhY2tncm91bmQgbGF5ZXJzIHdpdGgKKyAgICAgICAgdGhlIGxheWVycyBoYXZpbmcgc21h
bGxlciBjbGlwIHJlZ2lvbnMgdGhhbiB0aGUgbGF5ZXJzIGJlbmVhdGggdGhlbS4KKyAgICAgICAg
VGhpcyB0ZXN0IGVuc3VyZXMgdGhlIGJvdHRvbSBsYXllcnMgYXJlIG5vdCByZW1vdmVkIGJ5IGN1
bGxpbmcKKyAgICAgICAgb3B0aW1pemF0aW9ucy4KKworICAgICAgICAqIGZhc3QvYmFja2dyb3Vu
ZHMvYmFja2dyb3VuZC1vcGFxdWUtY2xpcHBlZC1ncmFkaWVudHMtZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9iYWNrZ3JvdW5kcy9iYWNrZ3JvdW5kLW9wYXF1ZS1jbGlwcGVk
LWdyYWRpZW50cy5odG1sOiBBZGRlZC4KKwogMjAxMi0xMS0zMCAgSmFtZXMgU2ltb25zZW4gIDxz
aW1vbmphbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVwb3J0IENTUyBhcyBpbml0aWF0b3Ig
aW5zdGVhZCBvZiBlbGVtZW50cywgZXhjZXB0IGJvZHkKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
YmFja2dyb3VuZHMvYmFja2dyb3VuZC1vcGFxdWUtY2xpcHBlZC1ncmFkaWVudHMtZXhwZWN0ZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL2JhY2tncm91
bmQtb3BhcXVlLWNsaXBwZWQtZ3JhZGllbnRzLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL2JhY2tncm91bmQtb3BhcXVlLWNsaXBwZWQt
Z3JhZGllbnRzLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzEgQEAKKzwh
ZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVk
aWE9InNjcmVlbiI+CisjZGl2MQoreword2lkdGg6IDE1MHB4OworaGVpZ2h0OiAxNTBweDsKK2Jv
cmRlcjoyNXB4IGRvdHRlZDsKK2JhY2tncm91bmQtY29sb3I6IGdyZWVuOworfQorI2RpdjIKK3sK
K3dpZHRoOiAxMDBweDsKK2hlaWdodDogMTAwcHg7CitwYWRkaW5nOiAyNXB4OworYmFja2dyb3Vu
ZC1jb2xvcjogYmx1ZTsKK30KKyNkaXYzCit7Cit3aWR0aDogMTAwcHg7CitoZWlnaHQ6IDEwMHB4
OworYmFja2dyb3VuZC1jb2xvcjogeWVsbG93OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorVGVzdCBwYXNzZXMgaWYgdGhlIGltYWdlIGJlbG93IHNob3dzIG5lc3RlZCBncmVlbiwgYmx1
ZSBhbmQgeWVsbG93IHNxdWFyZXMgd2l0aCBhIGRvdHRlZCBibGFjayBib3JkZXIuCis8ZGl2IGlk
PSJkaXYxIj48ZGl2IGlkPSJkaXYyIj48ZGl2IGlkPSJkaXYzIj48L2Rpdj48L2Rpdj48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvYmFj
a2dyb3VuZC1vcGFxdWUtY2xpcHBlZC1ncmFkaWVudHMuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL2JhY2tncm91bmQtb3BhcXVlLWNsaXBwZWQtZ3JhZGll
bnRzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL2Jh
Y2tncm91bmQtb3BhcXVlLWNsaXBwZWQtZ3JhZGllbnRzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTkgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgI2RpdjEgeworICAgICAgICB3aWR0aDog
MTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICAgIHBhZGRpbmc6IDI1cHg7Cisg
ICAgICAgIGJvcmRlcjogMjVweCBkb3R0ZWQ7CisgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13
ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgeWVsbG93LCB5ZWxsb3cpLCAtd2Via2l0LWxpbmVh
ci1ncmFkaWVudCh0b3AsIGJsdWUsIGJsdWUpLCAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3As
IGdyZWVuLCBncmVlbik7CisgICAgICAgIGJhY2tncm91bmQtY2xpcDogY29udGVudC1ib3gsIHBh
ZGRpbmctYm94LCBib3JkZXItYm94OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorVGVz
dCBwYXNzZXMgaWYgdGhlIGltYWdlIGJlbG93IHNob3dzIG5lc3RlZCBncmVlbiwgYmx1ZSBhbmQg
eWVsbG93IHNxdWFyZXMgd2l0aCBhIGRvdHRlZCBibGFjayBib3JkZXIuCis8ZGl2IGlkPSJkaXYx
Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>