<?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>76486</bug_id>
          
          <creation_ts>2012-01-17 15:39:43 -0800</creation_ts>
          <short_desc>RenderLayer ClipRect not accounting for transforms</short_desc>
          <delta_ts>2013-06-06 07:47:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>
          <dependson>117295</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Shawn Singh">shawnsingh</reporter>
          <assigned_to name="Shawn Singh">shawnsingh</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eae</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>leviw</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>537396</commentid>
    <comment_count>0</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-01-17 15:39:43 -0800</bug_when>
    <thetext>A reduced test case is attached.  It reproduces on both Chromium tip-of-tree and Webkit nightly.  On chromium, this bug is the cause of http://code.google.com/p/chromium/issues/detail?id=102943 but that maps bug does not reproduce on Safari.

Explanation: the ClipRect computed by the backgroundClipRect() does not include transforms.  If the layer is translated far enough, the intersection between layerbounds and cliprect is empty, and an empty rect is stored in the overlapMap.  As a result, the layer on top does not realize it should be composited, because it thinks it doesn&apos;t overlap anything.

Simon, can you please suggest the &quot;correct&quot; way to fix this is?  The fixes I&apos;ve tried so far break other layout tests, and I&apos;m probably just missing some simple detail about clipRect usage.   Thanks in advance!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537397</commentid>
    <comment_count>1</comment_count>
      <attachid>122826</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-01-17 15:40:29 -0800</bug_when>
    <thetext>Created attachment 122826
Reduced test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537400</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-01-17 15:42:46 -0800</bug_when>
    <thetext>Can you make a testcase that fails more obviously? I just see a green box in the attachment.

I not sure I get the issue. I would expect that backgroundClipRect() is never used &quot;across&quot; transform boundaries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537413</commentid>
    <comment_count>3</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-01-17 15:55:08 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Can you make a testcase that fails more obviously? I just see a green box in the attachment.
&gt; 
&gt; I not sure I get the issue. I would expect that backgroundClipRect() is never used &quot;across&quot; transform boundaries.

Thanks for the quick reply =)    If you&apos;re seeing green, then it passed; I just coded it up as a layout test.  I&apos;m able to reproduce this on today&apos;s WebKit nightly on a mac 10.6.

The way the code is now,  backgroundClipRect() (and convertToLayerCoords()) can indeed be used with a transform in-between... specifically this can happen in RenderLayerCompositor::addToOverlapMap(), where we convert between the local and root-layer space.

If that shouldn&apos;t happen, then what would be the correct way to transform from local-to-absolute space here?  I tried replacing convertToLayerCoords() with localToAbsolute(...)  in RenderLayer::calculateClipRects(), but I don&apos;t think that&apos;s correct.

I can enumerate exact lines of code and what is happening, if you wanted to hear more details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539209</commentid>
    <comment_count>4</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-01-19 18:12:48 -0800</bug_when>
    <thetext>I was able to bisect this issue down to revision 91114 - https://bugs.webkit.org/show_bug.cgi?id=63493

This validates the debugging I&apos;ve done, but doesn&apos;t add much information to the problem.  At least seeing this change should help clarify the problem.  In RenderLayerCompositor::addToOverlapMap(),  a new line was added that computes the clipRect.  That computation indirectly calls convertToLayerCoords(), which supposedly should not be called when transforms are involved, but in this situation transforms may be in the hierarchy.

Simon, did you have a chance to check again that the reduced test case reproduces in webkit nightly?  It still reproduces for me, I&apos;m on osx 10.6.8.  I see a red square indicating the green div does not get properly composited.  If you open the Inspector and reduce the x-translation, then there is a non-empty entry in the overlapMap, which causes the green div to be composited correctly (even though the clipRect is still not transformed correctly).

Also, both my attempted hacks do indeed fix the problem, but they break other layout tests.  I have tried two hacks:

(1) in RenderLayer::convertToLayerCoords, at the very bottom of the function before returning, I tried to add the 2-D component of m_transform.

(2) in RenderLayer::calculateClipRects  I tried replacing convertToLayerCoords with a call to localToAbsolute().

I can continue by debugging why other layout tests fail in those cases, but it would save me several days of frustration if someone can suggest what the correct fix might look like. =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539212</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-01-19 18:17:02 -0800</bug_when>
    <thetext>Testcase still fails in Safari TOT.

The overlap map is a huge hack and source of bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550402</commentid>
    <comment_count>6</comment_count>
      <attachid>125726</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-06 16:31:14 -0800</bug_when>
    <thetext>Created attachment 125726
Patch

Tested (before and after applying the fix) on osx, for chromium and safari... no obvious regressions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550405</commentid>
    <comment_count>7</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-06 16:33:02 -0800</bug_when>
    <thetext>Julien, when you have time could you please give this an unofficial review?   (unofficial, because I think this should also pass through Simon when he&apos;s back.)

Thanks in advance!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550680</commentid>
    <comment_count>8</comment_count>
      <attachid>125726</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-02-07 00:33:42 -0800</bug_when>
    <thetext>Comment on attachment 125726
Patch

I&apos;d rather we investigate how to fix this for all transforms, rather than have a hack that just works for translation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551207</commentid>
    <comment_count>9</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-07 11:58:27 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 125726 [details])
&gt; I&apos;d rather we investigate how to fix this for all transforms, rather than have a hack that just works for translation.

OK... Thanks for looking at this =)  Supporting all transforms will be a much deeper change.

Proposed Fix:

Create a second version of convertToLayerCoords.  Where appropriate, we&apos;ll use the new version instead of the old one.

Details:

Many calls to convertToLayerCoords assume that the top-left corner in local space will remain the top-left corner in the ancestor space.  However, this is incorrect - for example if a layer is rotated by 90 degrees.  So... to support transforms in general, we will need a new version of convertToLayerCoords that actually applies to all four corners (probably in a FloatQuad), and at the end, computes the bounding box.

As a side-note, there already is a convertToLayerCoords( LayoutRect ).  The new implementation I&apos;m proposing might replace that function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555894</commentid>
    <comment_count>10</comment_count>
      <attachid>126895</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-13 20:00:22 -0800</bug_when>
    <thetext>Created attachment 126895
ConvertToLayerCoords fixed for general transforms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555895</commentid>
    <comment_count>11</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-13 20:01:46 -0800</bug_when>
    <thetext>About the most recent patch:

This patch:
  - Tested manually and with all layout tests on osx for both chromium and safari.
  - The patch is not a &quot;hack&quot; anymore, but there will need to be a few follow-up patches.


I didn&apos;t put it all in one patch because:
- Chromium needs this fix to be back-ported to 18, and its too risky to do that with additional changes unrelated to our bug.  This bug is also becoming a priority since it will become visible to more users on Google Maps for version 18.
- To make it easier to review.  The main fix is in this patch already.


The follow-up patches that are needed:
1. implement support in clipRects for converting a full rect rather than just the offset.  Ideally to be accompanied by a rotation test case similar to the translation one provided in this patch.
2. check the FIXME in RenderLayerCompositor::recursiveRepaintLayerRects()... with this fix, this function may work correctly with transforms after being updated slightly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555919</commentid>
    <comment_count>12</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-13 20:45:41 -0800</bug_when>
    <thetext>+cc Levi and Emil in case they have feedback on the LayoutUnit/FloatPoint stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555921</commentid>
    <comment_count>13</comment_count>
      <attachid>126895</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 20:53:50 -0800</bug_when>
    <thetext>Comment on attachment 126895
ConvertToLayerCoords fixed for general transforms

Attachment 126895 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11515115

New failing tests:
fast/block/float/overhanging-tall-block.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556390</commentid>
    <comment_count>14</comment_count>
      <attachid>126895</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-02-14 10:29:53 -0800</bug_when>
    <thetext>Comment on attachment 126895
ConvertToLayerCoords fixed for general transforms

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:1335
&gt; +    if (useTransforms &amp;&amp; m_transform)
&gt; +        location = m_transform-&gt;mapPoint(location);

This doesn&apos;t do the right thing with 3D transform, because it will flatten the point at every layer. The code would need to use TransformState to get this right (or map points via RenderObjects).

I still think the right approach is to avoid calling convertToLayerCoords across transform boundaries (maybe just 3D boundaries)? I&apos;d have to wrap my head around what that implies for clip rects though.

&gt; Source/WebCore/rendering/RenderLayer.cpp:1354
&gt; +    FloatPoint p1 = FloatPoint(rect.minXMinYCorner());
&gt; +    FloatPoint p2 = FloatPoint(rect.maxXMinYCorner());
&gt; +    FloatPoint p3 = FloatPoint(rect.minXMaxYCorner());
&gt; +    FloatPoint p4 = FloatPoint(rect.maxXMaxYCorner());
&gt; +
&gt; +    convertToLayerCoordsInternal(ancestorLayer, p1, true);
&gt; +    convertToLayerCoordsInternal(ancestorLayer, p2, true);
&gt; +    convertToLayerCoordsInternal(ancestorLayer, p3, true);
&gt; +    convertToLayerCoordsInternal(ancestorLayer, p4, true);
&gt; +
&gt; +    // Create a LayoutRect from the four converted corners.
&gt; +    float xmin = min(min(p1.x(), p2.x()), min(p3.x(), p4.x()));
&gt; +    float ymin = min(min(p1.y(), p2.y()), min(p3.y(), p4.y()));
&gt; +    float xmax = max(max(p1.x(), p2.x()), max(p3.x(), p4.x()));
&gt; +    float ymax = max(max(p1.y(), p2.y()), max(p3.y(), p4.y()));

I think it would be better to write methods that take FloatQuads to avoid calling things 4 times.

&gt; Source/WebCore/rendering/RenderLayer.h:429
&gt; +    void convertToLayerCoords(const RenderLayer* ancestorLayer, LayoutPoint&amp; location, bool useTransforms = false) const;

The boolean argument makes the calling code less readable. It would be better to use an enum or have two separate methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556847</commentid>
    <comment_count>15</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-14 18:22:57 -0800</bug_when>
    <thetext>
Thanks for the comments...  I also found a few more details that finally shed more light on it =)

Will come back with a better patch in a few days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563286</commentid>
    <comment_count>16</comment_count>
      <attachid>128513</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-23 11:22:58 -0800</bug_when>
    <thetext>Created attachment 128513
Cleaner solution, please see follow-up comments

tested on osx, both webkit and chromium layout tests, no apparent regressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563288</commentid>
    <comment_count>17</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-23 11:23:21 -0800</bug_when>
    <thetext>The Bottom Line:

The proposed fix is essentially the last good option I can propose.   Simon, Julien, and Enne, thank you very much for your patience and feedback.


Details:

There was a cleaner option, to use selfClipRect().  I gave my sincerest effort to use that function in RenderLayerCompositor::addToOverlapMap, which should have been the correct solution.  However, doing this led to a deep rabbit hole of several issues, and eventually I reached a fundamental design knot between backgroundClipRect and clipping for composited layers.  This may come back to bite us, now that CSS transforms and clipping are more commonly used.   Simon if you think this is important, then let&apos;s discuss it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563651</commentid>
    <comment_count>18</comment_count>
      <attachid>128513</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-02-23 16:25:03 -0800</bug_when>
    <thetext>Comment on attachment 128513
Cleaner solution, please see follow-up comments

Rather than all this new code, could you use RenderObject::localToContainerQuad() to convert the clip rect?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563688</commentid>
    <comment_count>19</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-23 16:50:42 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 128513 [details])
&gt; Rather than all this new code, could you use RenderObject::localToContainerQuad() to convert the clip rect?

That should work, yes.  I&apos;ll try it out, test it fully, and submit a new patch.   Earlier I thought we had a strong preference to using the RenderLayer hierarchy when possible, for performance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563894</commentid>
    <comment_count>20</comment_count>
      <attachid>128644</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-23 21:02:43 -0800</bug_when>
    <thetext>Created attachment 128644
Patch

Tested on mac on both webkit and chromium, no obvious regressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565984</commentid>
    <comment_count>21</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-27 14:32:06 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; Created an attachment (id=128644) [details]
&gt; Patch
&gt; 
&gt; Tested on mac on both webkit and chromium, no obvious regressions.

Requesting this to be reviewed, hopefully early this week?  Thanks very much in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565987</commentid>
    <comment_count>22</comment_count>
      <attachid>128644</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-02-27 14:38:59 -0800</bug_when>
    <thetext>Comment on attachment 128644
Patch

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:3657
&gt; -        convertToLayerCoords(rootLayer, offset);
&gt; +        offset = roundedIntPoint(renderer()-&gt;localToContainerPoint(FloatPoint(), rootLayer-&gt;renderer()));

I think a comment here would be useful, explaining why you can&apos;t use convertToLayerCoords().

&gt; Source/WebCore/rendering/RenderObject.cpp:2098
&gt; +    // Track the point at the center of the quad&apos;s bounding box. As mapLocalToContainer() calls offsetFromContainer(),

This comment is confusing, since there is no other reference to a quad in this method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566001</commentid>
    <comment_count>23</comment_count>
      <attachid>129105</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-02-27 15:04:59 -0800</bug_when>
    <thetext>Created attachment 129105
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566236</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 18:32:44 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 129105:

css3/filters/effect-invert-hw.html bug 79639 (author: cmarrin@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566244</commentid>
    <comment_count>25</comment_count>
      <attachid>129105</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 18:37:21 -0800</bug_when>
    <thetext>Comment on attachment 129105
Patch for landing

Clearing flags on attachment: 129105

Committed r109060: &lt;http://trac.webkit.org/changeset/109060&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566245</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 18:37:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>122826</attachid>
            <date>2012-01-17 15:40:29 -0800</date>
            <delta_ts>2012-01-17 15:40:29 -0800</delta_ts>
            <desc>Reduced test case</desc>
            <filename>overlap-transformed-and-clipped.html</filename>
            <type>text/html</type>
            <size>1358</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHN0eWxlPgogICAgICBkaXYgewog
ICAgICAgICAgd2lkdGg6IDEwMHB4OwogICAgICAgICAgaGVpZ2h0OiAxMDBweDsKICAgICAgfQoK
ICAgICAgLmNvbXBvc2l0ZWQgewogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0
ZVooMHB4KTsKICAgICAgfQoKICAgICAgLmNsaXBzIHsKICAgICAgICAgIG92ZXJmbG93OiBoaWRk
ZW47CiAgICAgIH0KCiAgICAgIC5jb250YWluZXIgewogICAgICAgICAgcG9zaXRpb246IGFic29s
dXRlOwogICAgICAgICAgbGVmdDogMHB4OwogICAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgICBv
dmVyZmxvdzogaGlkZGVuOwogICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgo
MTEwcHgpOwogICAgICB9CgogICAgICAudW5kZXIgewogICAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogcmVkOwogICAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7CiAgICAgICAgICBsZWZ0OiAwcHg7
CiAgICAgICAgICB0b3A6IDBweDsKICAgICAgfQoKICAgICAgLm92ZXIgewogICAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogZ3JlZW47CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAg
ICAgICBsZWZ0OiAwcHg7CiAgICAgICAgICB0b3A6IDBweDsKICAgICAgfQoKICAgICAgI2xheWVy
dHJlZSB7CiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICBsZWZ0OiAxMDAw
MHB4OwogICAgICAgICAgdG9wOiAwcHg7CiAgICAgIH0KICAgIDwvc3R5bGU+CgogICAgPHNjcmlw
dD4KICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dChmYWxzZSk7CiAgICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJsYXllcnRyZWUiKS5pbm5lclRleHQgPSBsYXlvdXRUZXN0Q29udHJv
bGxlci5sYXllclRyZWVBc1RleHQoKTsKICAgICAgICAgIH0sIGZhbHNlKTsKICAgICAgfQogICAg
PC9zY3JpcHQ+CiAgPC9oZWFkPgoKICA8Ym9keT4KICAgIDwhLS0gVGVzdHMgdGhhdCBDU1MgdHJh
bnNmb3JtcyBhbmQgY2xpcHBpbmcgd29yayBwcm9wZXJseSB0b2dldGhlci4gLS0+CiAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIgY2xpcHMiPgogICAgICA8ZGl2IGNsYXNzPSJ1bmRlciBjb21wb3Np
dGVkIj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ib3ZlciI+PC9kaXY+CiAgICA8L2Rpdj4KCiAg
ICA8cHJlIGlkPSJsYXllcnRyZWUiPjwvcHJlPgogIDwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125726</attachid>
            <date>2012-02-06 16:31:14 -0800</date>
            <delta_ts>2012-02-13 20:00:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76486-20120206163113.patch</filename>
            <type>text/plain</type>
            <size>12170</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2ODU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODYwZTVkZTZlZDkyM2Ji
YWE1ZjQ3MGRlMDI4ZjczYmJkYWU2MzI4YS4uNWMwYTMzNGFjYjA3ZjM4MjIwZmZjMTVkM2ZjYzIy
ZTFkY2YzYjA0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAyLTA2ICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbmRlckxheWVy
IENsaXBSZWN0IG5vdCBhY2NvdW50aW5nIGZvciB0cmFuc2Zvcm1zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ4NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL2xheWVyLWNy
ZWF0aW9uL292ZXJsYXAtdHJhbnNmb3JtZWQtYW5kLWNsaXBwZWQuaHRtbAorCisgICAgICAgIEl0
IHNlZW1zIHRoZSBpbXBsaWNpdCBjb252ZW50aW9uIGhhcyBiZWVuIHRoYXQgY29udmVydFRvTGF5
ZXJDb29yZHMoKSBzaG91bGQgbm90CisgICAgICAgIGJlIGNhbGxlZCBhY3Jvc3MgbGF5ZXJzIHRo
YXQgaGF2ZSB0cmFuc2Zvcm1zLiBIb3dldmVyLCBpdCBpcyBpbmRlZWQgYmVpbmcgY2FsbGVkCisg
ICAgICAgIGluIG1hbnkgcGxhY2VzIChwYXJ0aWN1bGFybHksIHRoZSBwYXR0ZXJuIGNvbnZlcnRU
b0xheWVyQ29vcmRzKHJvb3QsIC4uLikgd2hlcmUKKyAgICAgICAgdGhlcmUgbWF5IGJlIHRyYW5z
Zm9ybXMgaW4gdGhlIGhpZXJhcmNoeS4gVGhpcyBjYXVzZWQgYSBidWcgaW4gUmVuZGVyTGF5ZXJD
b21wb3NpdG9yJ3MKKyAgICAgICAgb3ZlcmxhcE1hcCwgYmVjYXVzZSBjbGlwUmVjdHMgd2VyZSBu
b3QgYmVpbmcgdHJhbnNsYXRlZCBieSB0aGUgY29ycmVjdCBhbW91bnQuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBpcyBhIGZpeCBpbiB0aGUgcmlnaHQgZGlyZWN0aW9uLCBidXQgdGhlIGxvbmctdGVy
bSBzb2x1dGlvbiB3aWxsIGxpa2VseQorICAgICAgICByZXF1aXJlIHNldmVyYWwgZGVlcCBjaGFu
Z2VzLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpjb252ZXJ0VG9MYXllckNvb3Jkcyk6IEFkZGVkIGEgdGhpcmQg
YXJnLCBpbmNsdWRlVHJhbnNmb3Jtcy4gV2hlbiB0aGlzIGlzIHRydWUsIGFueQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmcgdHJh
bnNsYXRpb24gdHJhbnNmb3JtIGlzIGluY2x1ZGVkIGluIHRoZSBjb252ZXJzaW9uLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyk6IEFzayBjb252ZXJ0
VG9MYXllckNvb3JkcyB0byBhY2NvdW50IGZvciB0cmFuc2Zvcm1zIG9uIHRoaXMgcGFydGljdWxh
ciBpbnZvY2F0aW9uLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAg
ICAoUmVuZGVyTGF5ZXIpOiBBZGRlZCBhIHRoaXJkIGFyZyB0byBjb252ZXJ0VG9MYXllckNvb3Jk
cywgd2l0aCBhIGRlZmF1bHQgdmFsdWUgb2YgaW5jbHVkZVRyYW5zZm9ybXMgPSBmYWxzZS4KKwog
MjAxMi0wMi0wNiAgV2VpIEphbWVzICA8amFtZXMud2VpQGludGVsLmNvbT4KIAogICAgICAgICBB
dWRpb0J1cyBuZWVkIHRvIHN1cHBvcnQgc3RlcmVvLT5tb25vIGRvd24gbWl4IGluIGNvcHlGcm9t
IHN1bUZyb20gZXRjLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5k
ZXggYmRlYzVmOTk4MTg5OTA4NzAzMmQ4OTNiMzFmMmRhM2I4ZTE3MmNmYS4uZjg1Zjk5MDIwNWIw
ZGQ3M2IyNGY5ZjI2YzA0Mzk3ZTI0ODYxYjRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwCkBAIC0xMjMyLDcgKzEyMzIsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpp
bnNlcnRPbmx5VGhpc0xheWVyKCkKIH0KIAogdm9pZCAKLVJlbmRlckxheWVyOjpjb252ZXJ0VG9M
YXllckNvb3Jkcyhjb25zdCBSZW5kZXJMYXllciogYW5jZXN0b3JMYXllciwgTGF5b3V0UG9pbnQm
IGxvY2F0aW9uKSBjb25zdAorUmVuZGVyTGF5ZXI6OmNvbnZlcnRUb0xheWVyQ29vcmRzKGNvbnN0
IFJlbmRlckxheWVyKiBhbmNlc3RvckxheWVyLCBMYXlvdXRQb2ludCYgbG9jYXRpb24sIGJvb2wg
aW5jbHVkZVRyYW5zZm9ybSkgY29uc3QKIHsKICAgICBpZiAoYW5jZXN0b3JMYXllciA9PSB0aGlz
KQogICAgICAgICByZXR1cm47CkBAIC0xMjQ4LDcgKzEyNDgsNyBAQCBSZW5kZXJMYXllcjo6Y29u
dmVydFRvTGF5ZXJDb29yZHMoY29uc3QgUmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIsIExheW91
dFBvaW50JgogIAogICAgIGlmIChwb3NpdGlvbiA9PSBGaXhlZFBvc2l0aW9uKSB7CiAgICAgICAg
IC8vIEZvciBhIGZpeGVkIGxheWVycywgd2UgbmVlZCB0byB3YWxrIHVwIHRvIHRoZSByb290IHRv
IHNlZSBpZiB0aGVyZSdzIGEgZml4ZWQgcG9zaXRpb24gY29udGFpbmVyCi0gICAgICAgIC8vIChl
LmcuIGEgdHJhbnNmb3JtZWQgbGF5ZXIpLiBJdCdzIGFuIGVycm9yIHRvIGNhbGwgY29udmVydFRv
TGF5ZXJDb29yZHMoKSBhY3Jvc3MgYSBsYXllciB3aXRoIGEgdHJhbnNmb3JtLAorICAgICAgICAv
LyAoZS5nLiBhIHRyYW5zZm9ybWVkIGxheWVyKS4gSW4gdGhpcyBjYXNlIGl0J3MgYW4gZXJyb3Ig
dG8gY2FsbCBjb252ZXJ0VG9MYXllckNvb3JkcygpIGFjcm9zcyBhIGxheWVyIHdpdGggYSB0cmFu
c2Zvcm0sCiAgICAgICAgIC8vIHNvIHdlIHNob3VsZCBhbHdheXMgZmluZCB0aGUgYW5jZXN0b3Ig
YXQgb3IgYmVmb3JlIHdlIGZpbmQgdGhlIGZpeGVkIHBvc2l0aW9uIGNvbnRhaW5lci4KICAgICAg
ICAgUmVuZGVyTGF5ZXIqIGZpeGVkUG9zaXRpb25Db250YWluZXJMYXllciA9IDA7CiAgICAgICAg
IGJvb2wgZm91bmRBbmNlc3RvciA9IGZhbHNlOwpAQCAtMTI2NywxMCArMTI2NywxMCBAQCBSZW5k
ZXJMYXllcjo6Y29udmVydFRvTGF5ZXJDb29yZHMoY29uc3QgUmVuZGVyTGF5ZXIqIGFuY2VzdG9y
TGF5ZXIsIExheW91dFBvaW50JgogCiAgICAgICAgIGlmIChmaXhlZFBvc2l0aW9uQ29udGFpbmVy
TGF5ZXIgIT0gYW5jZXN0b3JMYXllcikgewogICAgICAgICAgICAgTGF5b3V0UG9pbnQgZml4ZWRD
b250YWluZXJDb29yZHM7Ci0gICAgICAgICAgICBjb252ZXJ0VG9MYXllckNvb3JkcyhmaXhlZFBv
c2l0aW9uQ29udGFpbmVyTGF5ZXIsIGZpeGVkQ29udGFpbmVyQ29vcmRzKTsKKyAgICAgICAgICAg
IGNvbnZlcnRUb0xheWVyQ29vcmRzKGZpeGVkUG9zaXRpb25Db250YWluZXJMYXllciwgZml4ZWRD
b250YWluZXJDb29yZHMsIGluY2x1ZGVUcmFuc2Zvcm0pOwogCiAgICAgICAgICAgICBMYXlvdXRQ
b2ludCBhbmNlc3RvckNvb3JkczsKLSAgICAgICAgICAgIGFuY2VzdG9yTGF5ZXItPmNvbnZlcnRU
b0xheWVyQ29vcmRzKGZpeGVkUG9zaXRpb25Db250YWluZXJMYXllciwgYW5jZXN0b3JDb29yZHMp
OworICAgICAgICAgICAgYW5jZXN0b3JMYXllci0+Y29udmVydFRvTGF5ZXJDb29yZHMoZml4ZWRQ
b3NpdGlvbkNvbnRhaW5lckxheWVyLCBhbmNlc3RvckNvb3JkcywgaW5jbHVkZVRyYW5zZm9ybSk7
CiAKICAgICAgICAgICAgIGxvY2F0aW9uICs9IChmaXhlZENvbnRhaW5lckNvb3JkcyAtIGFuY2Vz
dG9yQ29vcmRzKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEzMDAsMTAgKzEzMDAsMTAgQEAg
UmVuZGVyTGF5ZXI6OmNvbnZlcnRUb0xheWVyQ29vcmRzKGNvbnN0IFJlbmRlckxheWVyKiBhbmNl
c3RvckxheWVyLCBMYXlvdXRQb2ludCYKICAgICAgICAgICAgIFJlbmRlckxheWVyKiBwb3NpdGlv
bmVkQW5jZXN0b3IgPSBwYXJlbnRMYXllci0+ZW5jbG9zaW5nUG9zaXRpb25lZEFuY2VzdG9yKCk7
CiAKICAgICAgICAgICAgIExheW91dFBvaW50IHRoaXNDb29yZHM7Ci0gICAgICAgICAgICBjb252
ZXJ0VG9MYXllckNvb3Jkcyhwb3NpdGlvbmVkQW5jZXN0b3IsIHRoaXNDb29yZHMpOworICAgICAg
ICAgICAgY29udmVydFRvTGF5ZXJDb29yZHMocG9zaXRpb25lZEFuY2VzdG9yLCB0aGlzQ29vcmRz
LCBpbmNsdWRlVHJhbnNmb3JtKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgTGF5b3V0UG9p
bnQgYW5jZXN0b3JDb29yZHM7Ci0gICAgICAgICAgICBhbmNlc3RvckxheWVyLT5jb252ZXJ0VG9M
YXllckNvb3Jkcyhwb3NpdGlvbmVkQW5jZXN0b3IsIGFuY2VzdG9yQ29vcmRzKTsKKyAgICAgICAg
ICAgIGFuY2VzdG9yTGF5ZXItPmNvbnZlcnRUb0xheWVyQ29vcmRzKHBvc2l0aW9uZWRBbmNlc3Rv
ciwgYW5jZXN0b3JDb29yZHMsIGluY2x1ZGVUcmFuc2Zvcm0pOwogCiAgICAgICAgICAgICBsb2Nh
dGlvbiArPSAodGhpc0Nvb3JkcyAtIGFuY2VzdG9yQ29vcmRzKTsKICAgICAgICAgICAgIHJldHVy
bjsKQEAgLTEzMTQsOSArMTMxNCwyMiBAQCBSZW5kZXJMYXllcjo6Y29udmVydFRvTGF5ZXJDb29y
ZHMoY29uc3QgUmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIsIExheW91dFBvaW50JgogICAgIGlm
ICghcGFyZW50TGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhcmVudExheWVyLT5jb252
ZXJ0VG9MYXllckNvb3JkcyhhbmNlc3RvckxheWVyLCBsb2NhdGlvbik7CisgICAgcGFyZW50TGF5
ZXItPmNvbnZlcnRUb0xheWVyQ29vcmRzKGFuY2VzdG9yTGF5ZXIsIGxvY2F0aW9uLCBpbmNsdWRl
VHJhbnNmb3JtKTsKIAogICAgIGxvY2F0aW9uICs9IHRvU2l6ZShtX3RvcExlZnQpOworCisgICAg
Ly8gRklYTUU6IG9yaWdpbmFsbHksIGNvbnZlcnRUb0xheWVyQ29vcmRzIHdhcyBub3QgaW50ZW5k
ZWQgdG8gdXNlIGFjcm9zcyBhIGxheWVyIHRoYXQKKyAgICAvLyAgICAgICAgaGFzIGEgdHJhbnNm
b3JtLiBIb3dldmVyIHRoaXMgdXNhZ2UgaXMgaGFwcGVuaW5nIGluIG1hbnkgcGxhY2VzLCBzdWNo
IGFzIGFueQorICAgIC8vICAgICAgICBjb2RlIHRoYXQgY2FsbHMgY29udmVydFRvTGF5ZXJDb29y
ZHMocm9vdExheWVyLC4uLikgb24gYSBwYWdlIHdpdGggYQorICAgIC8vICAgICAgICB0cmFuc2Zv
cm0uIFRoZSBmb2xsb3dpbmcgdHdvIGxpbmVzIG9mIGNvZGUgYWRkcyBzdXBwb3J0IGZvciB0cmFu
c2xhdGlvbgorICAgIC8vICAgICAgICBwb3J0aW9uIG9mIHRoZSB0cmFuc2Zvcm0sIHdoaWNoIHdp
bGwgbm90IGZsaXAgb3Igc2tldyB0aGUKKyAgICAvLyAgICAgICAgY29vcmRpbmF0ZXMuIFJvdGF0
aW9ucywgbmVnYXRpdmUgc2NhbGVzLCBwZXJzcGVjdGl2ZSB0cmFuc2Zvcm1zLCBldGMuIHdpbGwK
KyAgICAvLyAgICAgICAgYmUgdHJpY2tlciB0byBkZWFsIHdpdGgsIGJlY2F1c2UgKDEpIHRoZXkg
Y2FuIGZsaXAgdGhlIGNvb3JkaW5hdGVzIChsZWZ0CisgICAgLy8gICAgICAgIGNvcm5lciBtYXkg
YmVjb21lIHJpZ2h0IGNvcm5lciksIGFuZCAoMikgdGhpcyBwbGFjZW1lbnQgb2YgdHJhbnNmb3Jt
IG1heQorICAgIC8vICAgICAgICBuZWVkIHRvIGJlIHJlLW9yZGVyZWQgd2l0aCByZXNwZWN0IHRv
IHRoZSBvcmlnaW5hbCBsb2NhdGlvbiBvZmZzZXRzIGluIHRoaXMgY29kZS4KKyAgICAvLworICAg
IGlmIChpbmNsdWRlVHJhbnNmb3JtICYmIG1fdHJhbnNmb3JtICYmIG1fdHJhbnNmb3JtLT5pc0lk
ZW50aXR5T3JUcmFuc2xhdGlvbigpKQorICAgICAgICBsb2NhdGlvbiArPSB0b1NpemUoSW50UG9p
bnQobV90cmFuc2Zvcm0tPm00MSgpLCBtX3RyYW5zZm9ybS0+bTQyKCkpKTsKIH0KIAogdm9pZApA
QCAtMzYzOCw3ICszNjUxLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3Rz
KGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIFJlbmRlclJlZ2lvbioKICAgICBpZiAocmVu
ZGVyZXIoKS0+aGFzT3ZlcmZsb3dDbGlwKCkgfHwgcmVuZGVyZXIoKS0+aGFzQ2xpcCgpKSB7CiAg
ICAgICAgIC8vIFRoaXMgbGF5ZXIgZXN0YWJsaXNoZXMgYSBjbGlwIG9mIHNvbWUga2luZC4KICAg
ICAgICAgTGF5b3V0UG9pbnQgb2Zmc2V0OwotICAgICAgICBjb252ZXJ0VG9MYXllckNvb3Jkcyhy
b290TGF5ZXIsIG9mZnNldCk7CisgICAgICAgIGNvbnZlcnRUb0xheWVyQ29vcmRzKHJvb3RMYXll
ciwgb2Zmc2V0LCB0cnVlKTsKICAgICAgICAgUmVuZGVyVmlldyogdmlldyA9IHJlbmRlcmVyKCkt
PnZpZXcoKTsKICAgICAgICAgQVNTRVJUKHZpZXcpOwogICAgICAgICBpZiAodmlldyAmJiBjbGlw
UmVjdHMuZml4ZWQoKSAmJiByb290TGF5ZXItPnJlbmRlcmVyKCkgPT0gdmlldykgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCBkZTc1ZjI0NWRhNDM3MDE2YmRhZjE5
YjAyYmNmODNjYjZhMjY4YjU0Li5jNTMyNWUxODM2M2EyMGQ1NGJjNWE2MTNhZjBhMGNiYTZkOWRh
ZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNDI1LDcgKzQy
NSw3IEBAIHB1YmxpYzoKICAgICBSZW5kZXJMYXllciogYW5jZXN0b3JDb21wb3NpdGluZ0xheWVy
KCkgY29uc3QgeyByZXR1cm4gZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllcihmYWxzZSk7IH0KICNl
bmRpZgogCi0gICAgdm9pZCBjb252ZXJ0VG9MYXllckNvb3Jkcyhjb25zdCBSZW5kZXJMYXllciog
YW5jZXN0b3JMYXllciwgTGF5b3V0UG9pbnQmIGxvY2F0aW9uKSBjb25zdDsKKyAgICB2b2lkIGNv
bnZlcnRUb0xheWVyQ29vcmRzKGNvbnN0IFJlbmRlckxheWVyKiBhbmNlc3RvckxheWVyLCBMYXlv
dXRQb2ludCYgbG9jYXRpb24sIGJvb2wgaW5jbHVkZVRyYW5zZm9ybSA9IGZhbHNlKSBjb25zdDsK
ICAgICB2b2lkIGNvbnZlcnRUb0xheWVyQ29vcmRzKGNvbnN0IFJlbmRlckxheWVyKiBhbmNlc3Rv
ckxheWVyLCBMYXlvdXRSZWN0JikgY29uc3Q7CiAKICAgICBib29sIGhhc0F1dG9aSW5kZXgoKSBj
b25zdCB7IHJldHVybiByZW5kZXJlcigpLT5zdHlsZSgpLT5oYXNBdXRvWkluZGV4KCk7IH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA2ZDUzMmFjMzNjN2M0OTlmNWM4NGIwZjljYzhkOTdjZWM0YTA3ZDQ5Li4xMTAwZTljYjU3
Y2I3NzFiMjgzM2ZiMzZhYTQzMGJkMjE2ZGNmYThhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTItMDItMDYgIFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmVuZGVyTGF5ZXIgQ2xpcFJlY3Qgbm90IGFjY291bnRpbmcgZm9yIHRyYW5zZm9ybXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDg2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGF5b3V0IHRlc3Qg
YW5kIGJhc2VsaW5lcyBhZGRlZCB0byBjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbgorCisgICAg
ICAgICogY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC10cmFuc2Zvcm1lZC1hbmQt
Y2xpcHBlZC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL2xheWVy
LWNyZWF0aW9uL292ZXJsYXAtdHJhbnNmb3JtZWQtYW5kLWNsaXBwZWQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9vdmVybGFwLXRyYW5z
Zm9ybWVkLWFuZC1jbGlwcGVkLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAyLTA2ICBKb3NodWEgQmVs
bCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBzdG9yYWdlL2lu
ZGV4ZWRkYi9pbmRleC1jdXJzb3IuaHRtbCB0aW1lb3V0cyBvbiBNYWMgRGVidWcKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL292ZXJsYXAtdHJhbnNm
b3JtZWQtYW5kLWNsaXBwZWQtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
bGF5ZXItY3JlYXRpb24vb3ZlcmxhcC10cmFuc2Zvcm1lZC1hbmQtY2xpcHBlZC1leHBlY3RlZC5w
bmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDVmMWYyNmQ5ZGY0MzI4MzE0ZWE5YjlkY2E5NmMyYmQwMGZkODVhMgpH
SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzMxMQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7
K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdDQ000NyQ9U3VGeGVVZUAKekRNQEIjV2A+Q3RZMzUwV3Nj
REkzQ1RTK2dOdjRLbyN1bGxEWDZEe1NTPWtIPkpkS18lanYqQ3Utcmg5aVlqTk9WCnphaCVxIzlH
Nz5BVG1PfmxxRjFid0VpeCs0b3tgeWVackFtOW9QVERWbVNrbDNeWjFTfSg1QGVSajckcytESiZj
ZQp6Mz07JV9FXiU7YzBFJFlFM1hZJXZpOE1DZT9HQjlmYHd5NSQpNTImejclYy12JWZIYklWWUQo
RlozdjlraE5IRk4KZ1hsK1BiWlRPNWFJZntSfChFZmMxej9MTH5yPm1kS0k7VnN0MEEtSnBmQipt
aAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC10cmFuc2Zvcm1lZC1hbmQtY2xpcHBlZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9vdmVybGFw
LXRyYW5zZm9ybWVkLWFuZC1jbGlwcGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OWM5Y2Jj
MTMxZDRjZjFhMTdhOTczMmQ1NjdjNTZhYzkwYjk4OWU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC10cmFuc2Zvcm1lZC1h
bmQtY2xpcHBlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMCBAQAorKEdyYXBoaWNzTGF5ZXIK
KyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xh
eWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgICAgICAoY2hpbGRyZW4gMQorICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChib3VuZHMgMTAwLjAwIDEwMC4wMCkKKyAg
ICAgICAgICAodHJhbnNmb3JtIFsxLjAwIDAuMDAgMC4wMCAwLjAwXSBbMC4wMCAxLjAwIDAuMDAg
MC4wMF0gWzAuMDAgMC4wMCAxLjAwIDAuMDBdIFsxMTAuMDAgMC4wMCAwLjAwIDEuMDBdKQorICAg
ICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
ICAgICAoYm91bmRzIDEwMC4wMCAxMDAuMDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAyCisg
ICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMg
MTAwLjAwIDEwMC4wMCkKKyAgICAgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgICAgIChib3VuZHMgMTAwLjAwIDEwMC4wMCkKKyAgICAgICAgICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC10
cmFuc2Zvcm1lZC1hbmQtY2xpcHBlZC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5
ZXItY3JlYXRpb24vb3ZlcmxhcC10cmFuc2Zvcm1lZC1hbmQtY2xpcHBlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjNjMmI2NmVhZTZjNjRlYmZhN2I2MmY0N2NjNzllMmU2M2RlODM5YTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9vdmVybGFwLXRy
YW5zZm9ybWVkLWFuZC1jbGlwcGVkLmh0bWwKQEAgLTAsMCArMSw3NyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAgIGRpdiB7CisgICAgICAgIHdpZHRoOiAx
MDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9CisKKyAgICAuY29tcG9zaXRlZCB7
CisgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDBweCk7CisgICAgfQorCisg
ICAgLmNsaXBzIHsKKyAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgICB9CisKKyAgICAuY29u
dGFpbmVyIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwcHg7
CisgICAgICAgIHRvcDogMHB4OworICAgICAgICBvdmVyZmxvdzogaGlkZGVuOworICAgICAgICAt
d2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMTBweCk7CisgICAgfQorCisgICAgLnVuZGVy
IHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgICBwb3NpdGlvbjphYnNv
bHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6IDBweDsKKyAgICB9CisKKyAg
ICAub3ZlciB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7Cisg
ICAgfQorCisgICAgI2xheWVydHJlZSB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
ICAgICAgbGVmdDogMTAwMDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgfQorCisgICAgYm9k
eSB7CisgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgfQorPC9zdHlsZT4KKworPHNjcmlw
dD4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibGF5ZXJ0cmVlIikuaW5uZXJUZXh0ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIu
bGF5ZXJUcmVlQXNUZXh0KCk7CisgICAgICAgIH0sIGZhbHNlKTsKKyAgICB9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKworPGJvZHk+CisgIDwhLS0gVGVzdHMgdGhhdCBDU1MgdHJhbnNmb3JtcyBhbmQg
Y2xpcHBpbmcgd29yayBwcm9wZXJseSB0b2dldGhlci4gLS0+CisgIDwhLS0gVGhpcyByZXByb2R1
Y2VzIGFuIGVycm9yIHJlcG9ydGVkIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NjQ4NgorICAgICAgIHdoZXJlIHRoZSBjbGlwUmVjdCB3YXMgbm90IGFjY291bnRp
bmcgZm9yIHRyYW5zZm9ybXMuIEFzIGEgcmVzdWx0LCBpbiB0aGUgb3ZlcmxhcE1hcCwKKyAgICAg
ICB0aGUgaW50ZXJzZWN0aW9uIG9mIGNsaXBSZWN0IGFuZCBsYXllciBib3VuZHMgYmVjb21lcyBl
bXB0eSwgYW5kIGxheWVycyBvbiB0b3AgZG8gbm90CisgICAgICAgZ2V0IHByb3Blcmx5IGNvbXBv
c2l0ZWQuIElmIHRoaXMgaGFwcGVucywgdGhlIHJlZCAidW5kZXIgY29tcG9zaXRlZCIgbGF5ZXIg
d2lsbCBiZQorICAgICAgIGV4cG9zZWQsIGJlY2F1c2UgdGhlICJvdmVyIiBkaXYgZG9lcyBub3Qg
YmVjb21lIGEgY29tcG9zaXRlZCBsYXllci4gLS0+CisgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciBj
bGlwcyI+CisgICAgPGRpdiBjbGFzcz0idW5kZXIgY29tcG9zaXRlZCI+PC9kaXY+CisgICAgPGRp
diBjbGFzcz0ib3ZlciI+PC9kaXY+CisgIDwvZGl2PgorCisgIDxwcmUgaWQ9ImxheWVydHJlZSI+
PC9wcmU+CisKKzwvYm9keT4KKworPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126895</attachid>
            <date>2012-02-13 20:00:22 -0800</date>
            <delta_ts>2012-02-23 11:22:54 -0800</delta_ts>
            <desc>ConvertToLayerCoords fixed for general transforms</desc>
            <filename>bug-76486-20120213200021.patch</filename>
            <type>text/plain</type>
            <size>14445</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2NhOGZkMzI3MjYwYmJi
OTgxNDRlOTY2MTkzNTQ0NzliYTNiZDk4Mi4uYTA3Yjc0NGMyZWU2Y2UzZWMwNmJiYmNmYzQ1NTIz
NDUwYzE4YzdiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAyLTEzICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbmRlckxheWVy
IENsaXBSZWN0IG5vdCBhY2NvdW50aW5nIGZvciB0cmFuc2Zvcm1zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ4NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL2xheWVyLWNy
ZWF0aW9uL292ZXJsYXAtdHJhbnNmb3JtZWQtYW5kLWNsaXBwZWQuaHRtbAorCisgICAgICAgIEl0
IHNlZW1zIHRoZSBpbXBsaWNpdCBjb252ZW50aW9uIGhhcyBiZWVuIHRoYXQgY29udmVydFRvTGF5
ZXJDb29yZHMoKSBzaG91bGQgbm90CisgICAgICAgIGJlIGNhbGxlZCBhY3Jvc3MgbGF5ZXJzIHRo
YXQgaGF2ZSB0cmFuc2Zvcm1zLiBIb3dldmVyLCBpdCBpcyBpbmRlZWQgYmVpbmcgY2FsbGVkCisg
ICAgICAgIGluIG1hbnkgcGxhY2VzIChwYXJ0aWN1bGFybHksIHRoZSBwYXR0ZXJuIGNvbnZlcnRU
b0xheWVyQ29vcmRzKHJvb3QsIC4uLikgd2hlcmUKKyAgICAgICAgdGhlcmUgbWF5IGJlIHRyYW5z
Zm9ybXMgaW4gdGhlIGhpZXJhcmNoeS4gVGhpcyBjYXVzZWQgYSBidWcgaW4gUmVuZGVyTGF5ZXJD
b21wb3NpdG9yJ3MKKyAgICAgICAgb3ZlcmxhcE1hcCwgYmVjYXVzZSBjbGlwUmVjdHMgd2VyZSBu
b3QgYmVpbmcgdHJhbnNsYXRlZCBieSB0aGUgY29ycmVjdCBhbW91bnQuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBlbmFibGVzIGNvbnZlcnRUb0xheWVyQ29vcmRzIHRvIHdvcmsgYWNyb3NzIGxheWVy
cyB3aXRoCisgICAgICAgIHRyYW5zZm9ybXMuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNvbnZlcnRUb0xheWVy
Q29vcmRzKTogQWRkZWQgYSB0aGlyZCBhcmcsCisgICAgICAgIHVzZVRyYW5zZm9ybXMuIFdoZW4g
dGhpcyBpcyB0cnVlLCBjb252ZXJ0VG9MYXllckNvb3JkcyB3aWxsCisgICAgICAgIGluY2x1ZGUg
dHJhbnNmb3JtcyBpbiB0aGUgY29udmVyc2lvbi4gQm90aCBwdWJsaWMgb3ZlcmxvYWRlZAorICAg
ICAgICB2ZXJzaW9ucyBvZiBjb252ZXJ0VG9MYXllckNvb3JkcyBhcmUgbm93IHdyYXBwZXJzIGZv
ciB0aGUgaW50ZXJuYWwKKyAgICAgICAgdmVyc2lvbi4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNvbnZlcnRUb0xheWVyQ29vcmRzSW50ZXJuYWwp
OiBDcmVhdGVkIGEKKyAgICAgICAgZmxvYXRpbmctcG9pbnQgdmVyc2lvbiBvZiBjb252ZXJ0VG9M
YXllckNvb3JkcyBzbyB0aGF0IHRyYW5zZm9ybXMKKyAgICAgICAgd2lsbCBub3QgYWNjdW11bGF0
ZSBlcnJvcnMgZHVlIHRvIHJlcGVhdGVkIHJvdW5kLW9mZi4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXIpOgorCiAyMDEyLTAyLTEzICBQYXRyaWNr
IEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIFBvcnQgUnVuTG9vcCB0
byBXaW5DRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggNjk2
MzBmNzc5MzJhMzUzYzlmNzYyN2NhZjMxYjE0M2EyOWU1Yzg0Mi4uMzYyNjVjZDE2YzliZjFlOWY5
ZjI1ZWUyN2Y3Mjg4ODY5YjMyOWJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCkBAIC0xMjM3LDggKzEyMzcsMTQgQEAgdm9pZCBSZW5kZXJMYXllcjo6aW5zZXJ0
T25seVRoaXNMYXllcigpCiAgICAgY2xlYXJDbGlwUmVjdHNJbmNsdWRpbmdEZXNjZW5kYW50cygp
OwogfQogCi12b2lkIAotUmVuZGVyTGF5ZXI6OmNvbnZlcnRUb0xheWVyQ29vcmRzKGNvbnN0IFJl
bmRlckxheWVyKiBhbmNlc3RvckxheWVyLCBMYXlvdXRQb2ludCYgbG9jYXRpb24pIGNvbnN0Cit2
b2lkIFJlbmRlckxheWVyOjpjb252ZXJ0VG9MYXllckNvb3Jkcyhjb25zdCBSZW5kZXJMYXllciog
YW5jZXN0b3JMYXllciwgTGF5b3V0UG9pbnQmIGxvY2F0aW9uLCBib29sIHVzZVRyYW5zZm9ybXMp
IGNvbnN0Cit7CisgICAgRmxvYXRQb2ludCBmbG9hdExvY2F0aW9uID0gRmxvYXRQb2ludChsb2Nh
dGlvbik7CisgICAgY29udmVydFRvTGF5ZXJDb29yZHNJbnRlcm5hbChhbmNlc3RvckxheWVyLCBm
bG9hdExvY2F0aW9uLCB1c2VUcmFuc2Zvcm1zKTsKKyAgICBsb2NhdGlvbiA9IHJvdW5kZWRMYXlv
dXRQb2ludChmbG9hdExvY2F0aW9uKTsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6Y29udmVydFRv
TGF5ZXJDb29yZHNJbnRlcm5hbChjb25zdCBSZW5kZXJMYXllciogYW5jZXN0b3JMYXllciwgRmxv
YXRQb2ludCYgbG9jYXRpb24sIGJvb2wgdXNlVHJhbnNmb3JtcykgY29uc3QKIHsKICAgICBpZiAo
YW5jZXN0b3JMYXllciA9PSB0aGlzKQogICAgICAgICByZXR1cm47CkBAIC0xMjQ4LDE0ICsxMjU0
LDE0IEBAIFJlbmRlckxheWVyOjpjb252ZXJ0VG9MYXllckNvb3Jkcyhjb25zdCBSZW5kZXJMYXll
ciogYW5jZXN0b3JMYXllciwgTGF5b3V0UG9pbnQmCiAgICAgICAgIC8vIElmIHRoZSBmaXhlZCBs
YXllcidzIGNvbnRhaW5lciBpcyB0aGUgcm9vdCwganVzdCBhZGQgaW4gdGhlIG9mZnNldCBvZiB0
aGUgdmlldy4gV2UgY2FuIG9idGFpbiB0aGlzIGJ5IGNhbGxpbmcKICAgICAgICAgLy8gbG9jYWxU
b0Fic29sdXRlKCkgb24gdGhlIFJlbmRlclZpZXcuCiAgICAgICAgIEZsb2F0UG9pbnQgYWJzUG9z
ID0gcmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgdHJ1ZSk7Ci0gICAg
ICAgIGxvY2F0aW9uICs9IGZsb29yZWRMYXlvdXRTaXplKGFic1Bvcyk7CisgICAgICAgIGxvY2F0
aW9uICs9IGFic1BvczsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAKICAgICBpZiAocG9zaXRp
b24gPT0gRml4ZWRQb3NpdGlvbikgewotICAgICAgICAvLyBGb3IgYSBmaXhlZCBsYXllcnMsIHdl
IG5lZWQgdG8gd2FsayB1cCB0byB0aGUgcm9vdCB0byBzZWUgaWYgdGhlcmUncyBhIGZpeGVkIHBv
c2l0aW9uIGNvbnRhaW5lcgotICAgICAgICAvLyAoZS5nLiBhIHRyYW5zZm9ybWVkIGxheWVyKS4g
SXQncyBhbiBlcnJvciB0byBjYWxsIGNvbnZlcnRUb0xheWVyQ29vcmRzKCkgYWNyb3NzIGEgbGF5
ZXIgd2l0aCBhIHRyYW5zZm9ybSwKLSAgICAgICAgLy8gc28gd2Ugc2hvdWxkIGFsd2F5cyBmaW5k
IHRoZSBhbmNlc3RvciBhdCBvciBiZWZvcmUgd2UgZmluZCB0aGUgZml4ZWQgcG9zaXRpb24gY29u
dGFpbmVyLgorICAgICAgICAvLyBGb3IgZml4ZWQgbGF5ZXJzLCB3ZSBuZWVkIHRvIHdhbGsgdXAg
dG8gdGhlIHJvb3QgdG8gc2VlIGlmIHRoZXJlJ3MgYSBmaXhlZAorICAgICAgICAvLyBwb3NpdGlv
biBjb250YWluZXIgKGUuZy4gYSB0cmFuc2Zvcm1lZCBsYXllcikuIEluIHRoaXMgY2FzZSB3ZSBl
eHBlY3QgdG8gYWx3YXlzCisgICAgICAgIC8vIGZpbmQgdGhlIGFuY2VzdG9yIGF0IG9yIGJlZm9y
ZSB3ZSBmaW5kIHRoZSBmaXhlZCBwb3NpdGlvbiBjb250YWluZXIuCiAgICAgICAgIFJlbmRlckxh
eWVyKiBmaXhlZFBvc2l0aW9uQ29udGFpbmVyTGF5ZXIgPSAwOwogICAgICAgICBib29sIGZvdW5k
QW5jZXN0b3IgPSBmYWxzZTsKICAgICAgICAgZm9yIChSZW5kZXJMYXllciogY3VyckxheWVyID0g
cGFyZW50KCk7IGN1cnJMYXllcjsgY3VyckxheWVyID0gY3VyckxheWVyLT5wYXJlbnQoKSkgewpA
QCAtMTI3MiwxMyArMTI3OCwxNCBAQCBSZW5kZXJMYXllcjo6Y29udmVydFRvTGF5ZXJDb29yZHMo
Y29uc3QgUmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIsIExheW91dFBvaW50JgogICAgICAgICBB
U1NFUlQoZml4ZWRQb3NpdGlvbkNvbnRhaW5lckxheWVyKTsgLy8gV2Ugc2hvdWxkIGhhdmUgaGl0
IHRoZSBSZW5kZXJWaWV3J3MgbGF5ZXIgYXQgbGVhc3QuCiAKICAgICAgICAgaWYgKGZpeGVkUG9z
aXRpb25Db250YWluZXJMYXllciAhPSBhbmNlc3RvckxheWVyKSB7Ci0gICAgICAgICAgICBMYXlv
dXRQb2ludCBmaXhlZENvbnRhaW5lckNvb3JkczsKLSAgICAgICAgICAgIGNvbnZlcnRUb0xheWVy
Q29vcmRzKGZpeGVkUG9zaXRpb25Db250YWluZXJMYXllciwgZml4ZWRDb250YWluZXJDb29yZHMp
OworICAgICAgICAgICAgRmxvYXRQb2ludCBmaXhlZENvbnRhaW5lckNvb3JkczsKKyAgICAgICAg
ICAgIGNvbnZlcnRUb0xheWVyQ29vcmRzSW50ZXJuYWwoZml4ZWRQb3NpdGlvbkNvbnRhaW5lckxh
eWVyLCBmaXhlZENvbnRhaW5lckNvb3JkcywgdXNlVHJhbnNmb3Jtcyk7CiAKLSAgICAgICAgICAg
IExheW91dFBvaW50IGFuY2VzdG9yQ29vcmRzOwotICAgICAgICAgICAgYW5jZXN0b3JMYXllci0+
Y29udmVydFRvTGF5ZXJDb29yZHMoZml4ZWRQb3NpdGlvbkNvbnRhaW5lckxheWVyLCBhbmNlc3Rv
ckNvb3Jkcyk7CisgICAgICAgICAgICBGbG9hdFBvaW50IGFuY2VzdG9yQ29vcmRzOworICAgICAg
ICAgICAgYW5jZXN0b3JMYXllci0+Y29udmVydFRvTGF5ZXJDb29yZHNJbnRlcm5hbChmaXhlZFBv
c2l0aW9uQ29udGFpbmVyTGF5ZXIsIGFuY2VzdG9yQ29vcmRzLCB1c2VUcmFuc2Zvcm1zKTsKIAog
ICAgICAgICAgICAgbG9jYXRpb24gKz0gKGZpeGVkQ29udGFpbmVyQ29vcmRzIC0gYW5jZXN0b3JD
b29yZHMpOworCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CkBAIC0xMzA1
LDExICsxMzEyLDExIEBAIFJlbmRlckxheWVyOjpjb252ZXJ0VG9MYXllckNvb3Jkcyhjb25zdCBS
ZW5kZXJMYXllciogYW5jZXN0b3JMYXllciwgTGF5b3V0UG9pbnQmCiAgICAgICAgICAgICAvLyB0
byBlbmNsb3NpbmdQb3NpdGlvbmVkQW5jZXN0b3IgYW5kIHN1YnRyYWN0LgogICAgICAgICAgICAg
UmVuZGVyTGF5ZXIqIHBvc2l0aW9uZWRBbmNlc3RvciA9IHBhcmVudExheWVyLT5lbmNsb3NpbmdQ
b3NpdGlvbmVkQW5jZXN0b3IoKTsKIAotICAgICAgICAgICAgTGF5b3V0UG9pbnQgdGhpc0Nvb3Jk
czsKLSAgICAgICAgICAgIGNvbnZlcnRUb0xheWVyQ29vcmRzKHBvc2l0aW9uZWRBbmNlc3Rvciwg
dGhpc0Nvb3Jkcyk7CisgICAgICAgICAgICBGbG9hdFBvaW50IHRoaXNDb29yZHM7CisgICAgICAg
ICAgICBjb252ZXJ0VG9MYXllckNvb3Jkc0ludGVybmFsKHBvc2l0aW9uZWRBbmNlc3RvciwgdGhp
c0Nvb3JkcywgdXNlVHJhbnNmb3Jtcyk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIExheW91
dFBvaW50IGFuY2VzdG9yQ29vcmRzOwotICAgICAgICAgICAgYW5jZXN0b3JMYXllci0+Y29udmVy
dFRvTGF5ZXJDb29yZHMocG9zaXRpb25lZEFuY2VzdG9yLCBhbmNlc3RvckNvb3Jkcyk7CisgICAg
ICAgICAgICBGbG9hdFBvaW50IGFuY2VzdG9yQ29vcmRzOworICAgICAgICAgICAgYW5jZXN0b3JM
YXllci0+Y29udmVydFRvTGF5ZXJDb29yZHNJbnRlcm5hbChwb3NpdGlvbmVkQW5jZXN0b3IsIGFu
Y2VzdG9yQ29vcmRzLCB1c2VUcmFuc2Zvcm1zKTsKIAogICAgICAgICAgICAgbG9jYXRpb24gKz0g
KHRoaXNDb29yZHMgLSBhbmNlc3RvckNvb3Jkcyk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0x
MzIwLDE3ICsxMzI3LDMyIEBAIFJlbmRlckxheWVyOjpjb252ZXJ0VG9MYXllckNvb3Jkcyhjb25z
dCBSZW5kZXJMYXllciogYW5jZXN0b3JMYXllciwgTGF5b3V0UG9pbnQmCiAgICAgaWYgKCFwYXJl
bnRMYXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFyZW50TGF5ZXItPmNvbnZlcnRUb0xh
eWVyQ29vcmRzKGFuY2VzdG9yTGF5ZXIsIGxvY2F0aW9uKTsKKyAgICBwYXJlbnRMYXllci0+Y29u
dmVydFRvTGF5ZXJDb29yZHNJbnRlcm5hbChhbmNlc3RvckxheWVyLCBsb2NhdGlvbiwgdXNlVHJh
bnNmb3Jtcyk7CisKKyAgICBsb2NhdGlvbiArPSBGbG9hdFNpemUodG9TaXplKG1fdG9wTGVmdCkp
OwogCi0gICAgbG9jYXRpb24gKz0gdG9TaXplKG1fdG9wTGVmdCk7CisgICAgaWYgKHVzZVRyYW5z
Zm9ybXMgJiYgbV90cmFuc2Zvcm0pCisgICAgICAgIGxvY2F0aW9uID0gbV90cmFuc2Zvcm0tPm1h
cFBvaW50KGxvY2F0aW9uKTsKIH0KIAotdm9pZAotUmVuZGVyTGF5ZXI6OmNvbnZlcnRUb0xheWVy
Q29vcmRzKGNvbnN0IFJlbmRlckxheWVyKiBhbmNlc3RvckxheWVyLCBMYXlvdXRSZWN0JiByZWN0
KSBjb25zdAordm9pZCBSZW5kZXJMYXllcjo6Y29udmVydFRvTGF5ZXJDb29yZHMoY29uc3QgUmVu
ZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIsIExheW91dFJlY3QmIHJlY3QpIGNvbnN0CiB7Ci0gICAg
TGF5b3V0UG9pbnQgZGVsdGE7Ci0gICAgY29udmVydFRvTGF5ZXJDb29yZHMoYW5jZXN0b3JMYXll
ciwgZGVsdGEpOwotICAgIHJlY3QubW92ZSgtZGVsdGEueCgpLCAtZGVsdGEueSgpKTsKKyAgICBG
bG9hdFBvaW50IHAxID0gRmxvYXRQb2ludChyZWN0Lm1pblhNaW5ZQ29ybmVyKCkpOworICAgIEZs
b2F0UG9pbnQgcDIgPSBGbG9hdFBvaW50KHJlY3QubWF4WE1pbllDb3JuZXIoKSk7CisgICAgRmxv
YXRQb2ludCBwMyA9IEZsb2F0UG9pbnQocmVjdC5taW5YTWF4WUNvcm5lcigpKTsKKyAgICBGbG9h
dFBvaW50IHA0ID0gRmxvYXRQb2ludChyZWN0Lm1heFhNYXhZQ29ybmVyKCkpOworCisgICAgY29u
dmVydFRvTGF5ZXJDb29yZHNJbnRlcm5hbChhbmNlc3RvckxheWVyLCBwMSwgdHJ1ZSk7CisgICAg
Y29udmVydFRvTGF5ZXJDb29yZHNJbnRlcm5hbChhbmNlc3RvckxheWVyLCBwMiwgdHJ1ZSk7Cisg
ICAgY29udmVydFRvTGF5ZXJDb29yZHNJbnRlcm5hbChhbmNlc3RvckxheWVyLCBwMywgdHJ1ZSk7
CisgICAgY29udmVydFRvTGF5ZXJDb29yZHNJbnRlcm5hbChhbmNlc3RvckxheWVyLCBwNCwgdHJ1
ZSk7CisKKyAgICAvLyBDcmVhdGUgYSBMYXlvdXRSZWN0IGZyb20gdGhlIGZvdXIgY29udmVydGVk
IGNvcm5lcnMuCisgICAgZmxvYXQgeG1pbiA9IG1pbihtaW4ocDEueCgpLCBwMi54KCkpLCBtaW4o
cDMueCgpLCBwNC54KCkpKTsKKyAgICBmbG9hdCB5bWluID0gbWluKG1pbihwMS55KCksIHAyLnko
KSksIG1pbihwMy55KCksIHA0LnkoKSkpOworICAgIGZsb2F0IHhtYXggPSBtYXgobWF4KHAxLngo
KSwgcDIueCgpKSwgbWF4KHAzLngoKSwgcDQueCgpKSk7CisgICAgZmxvYXQgeW1heCA9IG1heCht
YXgocDEueSgpLCBwMi55KCkpLCBtYXgocDMueSgpLCBwNC55KCkpKTsKKyAgICByZWN0ID0gZW5j
bG9zaW5nSW50UmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCh4bWluLCB5bWluKSwgRmxvYXRTaXpl
KHhtYXgteG1pbiwgeW1heC15bWluKSkpOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBhZGp1c3Rl
ZFNjcm9sbERlbHRhKGludCBiZWdpbm5pbmdEZWx0YSkgewpAQCAtMzY0MSw3ICszNjYzLDcgQEAg
dm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKGNvbnN0IFJlbmRlckxheWVyKiBy
b290TGF5ZXIsIFJlbmRlclJlZ2lvbioKICAgICBpZiAocmVuZGVyZXIoKS0+aGFzT3ZlcmZsb3dD
bGlwKCkgfHwgcmVuZGVyZXIoKS0+aGFzQ2xpcCgpKSB7CiAgICAgICAgIC8vIFRoaXMgbGF5ZXIg
ZXN0YWJsaXNoZXMgYSBjbGlwIG9mIHNvbWUga2luZC4KICAgICAgICAgTGF5b3V0UG9pbnQgb2Zm
c2V0OwotICAgICAgICBjb252ZXJ0VG9MYXllckNvb3Jkcyhyb290TGF5ZXIsIG9mZnNldCk7Cisg
ICAgICAgIGNvbnZlcnRUb0xheWVyQ29vcmRzKHJvb3RMYXllciwgb2Zmc2V0LCB0cnVlKTsKICAg
ICAgICAgUmVuZGVyVmlldyogdmlldyA9IHJlbmRlcmVyKCktPnZpZXcoKTsKICAgICAgICAgQVNT
RVJUKHZpZXcpOwogICAgICAgICBpZiAodmlldyAmJiBjbGlwUmVjdHMuZml4ZWQoKSAmJiByb290
TGF5ZXItPnJlbmRlcmVyKCkgPT0gdmlldykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaAppbmRleCBlZGRjMmY0NzM0NDFmNWRkNDY3NmViYTFhZGU0MDFkNjJhMGE2ZGFjLi44
NTQ0MzljYjNhMmE0MTZlMTBhMDQ4YjI0YzIxNzZhZDdjN2U3OTRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNDI1LDcgKzQyNSw5IEBAIHB1YmxpYzoKICAgICBS
ZW5kZXJMYXllciogYW5jZXN0b3JDb21wb3NpdGluZ0xheWVyKCkgY29uc3QgeyByZXR1cm4gZW5j
bG9zaW5nQ29tcG9zaXRpbmdMYXllcihmYWxzZSk7IH0KICNlbmRpZgogCi0gICAgdm9pZCBjb252
ZXJ0VG9MYXllckNvb3Jkcyhjb25zdCBSZW5kZXJMYXllciogYW5jZXN0b3JMYXllciwgTGF5b3V0
UG9pbnQmIGxvY2F0aW9uKSBjb25zdDsKKyAgICAvLyBNYW55IGxheW91dC1yZWxhdGVkIGNhbGxz
IG5lZWQgdG8gY29udmVydCB3aXRob3V0IGluY2x1ZGluZyB0cmFuc2Zvcm1zLCBidXQgc29tZSBk
by4KKyAgICB2b2lkIGNvbnZlcnRUb0xheWVyQ29vcmRzKGNvbnN0IFJlbmRlckxheWVyKiBhbmNl
c3RvckxheWVyLCBMYXlvdXRQb2ludCYgbG9jYXRpb24sIGJvb2wgdXNlVHJhbnNmb3JtcyA9IGZh
bHNlKSBjb25zdDsKKyAgICAvLyBDb252ZXJ0aW5nIGEgTGF5b3V0UmVjdCBhbHdheXMgbmVlZHMg
dG8gaW5jbHVkZSB0cmFuc2Zvcm1zLCBvdGhlcndpc2UgaXQgY2FuIGJlIGluY29ycmVjdC4KICAg
ICB2b2lkIGNvbnZlcnRUb0xheWVyQ29vcmRzKGNvbnN0IFJlbmRlckxheWVyKiBhbmNlc3Rvckxh
eWVyLCBMYXlvdXRSZWN0JikgY29uc3Q7CiAKICAgICBib29sIGhhc0F1dG9aSW5kZXgoKSBjb25z
dCB7IHJldHVybiByZW5kZXJlcigpLT5zdHlsZSgpLT5oYXNBdXRvWkluZGV4KCk7IH0KQEAgLTU2
Niw2ICs1NjgsMTAgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6CisKKyAgICAvLyBJbnRl
cm5hbCBpbXBsZW1lbnRhdGlvbiB1c2VkIGJ5IHRoZSBwdWJsaWMgY29udmVydFRvTGF5ZXJDb29y
ZHMgZnVuY3Rpb25zLgorICAgIHZvaWQgY29udmVydFRvTGF5ZXJDb29yZHNJbnRlcm5hbChjb25z
dCBSZW5kZXJMYXllciogYW5jZXN0b3JMYXllciwgRmxvYXRQb2ludCYgbG9jYXRpb24sIGJvb2wg
dXNlVHJhbnNmb3JtcykgY29uc3Q7CisKICAgICB2b2lkIHVwZGF0ZVpPcmRlckxpc3RzU2xvd0Nh
c2UoKTsKIAogICAgIHZvaWQgY29tcHV0ZVJlcGFpbnRSZWN0cyhJbnRQb2ludCogb2Zmc2V0RnJv
bVJvb3QgPSAwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA5YWU0YjBjMTE5NzEwMjE2OGNlNzhjODFjN2FkZmY4NTExZmNk
ZjdjLi44NzMwNTJhNTNhMzgyYzJhMGViN2U2M2QxMzI2MWRkNmI0ZDc5M2RmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTItMDItMTMgIFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmVuZGVyTGF5ZXIgQ2xpcFJlY3Qgbm90IGFjY291bnRpbmcgZm9y
IHRyYW5zZm9ybXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc2NDg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9vdmVybGFwLXRyYW5zZm9ybWVkLWFuZC1j
bGlwcGVkLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvbGF5ZXIt
Y3JlYXRpb24vb3ZlcmxhcC10cmFuc2Zvcm1lZC1hbmQtY2xpcHBlZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL292ZXJsYXAtdHJhbnNm
b3JtZWQtYW5kLWNsaXBwZWQuaHRtbDogQWRkZWQuCisKIDIwMTItMDItMTMgIFRvbnkgQ2hhbmcg
IDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVucmV2aWV3ZWQsIHVw
ZGF0ZSBtYWMtc25vd2xlb3BhcmQgcmVzdWx0LiAgVGhpcyBtYXRjaGVzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9vdmVybGFwLXRyYW5zZm9ybWVk
LWFuZC1jbGlwcGVkLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVy
LWNyZWF0aW9uL292ZXJsYXAtdHJhbnNmb3JtZWQtYW5kLWNsaXBwZWQtZXhwZWN0ZWQucG5nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ1ZjFmMjZkOWRmNDMyODMxNGVhOWI5ZGNhOTZjMmJkMDBmZDg1YTIKR0lUIGJp
bmFyeSBwYXRjaApsaXRlcmFsIDMzMTEKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYy
YT5pMUIlUWxZYnBSem5rQjlnQ0NNNDckPVN1RnhlVWVACnpETUBCI1dgPkN0WTM1MFdzY0RJM0NU
UytnTnY0S28jdWxsRFg2RHtTUz1rSD5KZEtfJWp2KkN1LXJoOWlZak5PVgp6YWglcSM5Rzc+QVRt
T35scUYxYndFaXgrNG97YHllWnJBbTlvUFREVm1Ta2wzXloxU30oNUBlUmo3JHMrREomY2UKejM9
OyVfRV4lO2MwRSRZRTNYWSV2aThNQ2U/R0I5ZmB3eTUkKTUyJno3JWMtdiVmSGJJVllEKEZaM3Y5
a2hOSEZOCmdYbCtQYlpUTzVhSWZ7UnwoRWZjMXo/TEx+cj5tZEtJO1ZzdDBBLUpwZkIqbWgKCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2xheWVyLWNyZWF0aW9uL292ZXJsYXAtdHJhbnNmb3JtZWQtYW5kLWNsaXBwZWQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC10cmFu
c2Zvcm1lZC1hbmQtY2xpcHBlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTljOWNiYzEzMWQ0
Y2YxYTE3YTk3MzJkNTY3YzU2YWM5MGI5ODllNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL292ZXJsYXAtdHJhbnNmb3JtZWQtYW5kLWNs
aXBwZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzAgQEAKKyhHcmFwaGljc0xheWVyCisgIChi
b3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAoYm91bmRzIDEwMC4wMCAxMDAuMDApCisgICAgICAg
ICAgKHRyYW5zZm9ybSBbMS4wMCAwLjAwIDAuMDAgMC4wMF0gWzAuMDAgMS4wMCAwLjAwIDAuMDBd
IFswLjAwIDAuMDAgMS4wMCAwLjAwXSBbMTEwLjAwIDAuMDAgMC4wMCAxLjAwXSkKKyAgICAgICAg
ICAoY2hpbGRyZW4gMQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAg
KGJvdW5kcyAxMDAuMDAgMTAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMgorICAgICAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDEwMC4w
MCAxMDAuMDApCisgICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
ICAgICAgKQorICAgICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAg
ICAoYm91bmRzIDEwMC4wMCAxMDAuMDApCisgICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50
IDEpCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisg
ICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQorICApCispCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL292ZXJsYXAtdHJhbnNm
b3JtZWQtYW5kLWNsaXBwZWQuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNy
ZWF0aW9uL292ZXJsYXAtdHJhbnNmb3JtZWQtYW5kLWNsaXBwZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
YzJiNjZlYWU2YzY0ZWJmYTdiNjJmNDdjYzc5ZTJlNjNkZTgzOWEzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC10cmFuc2Zv
cm1lZC1hbmQtY2xpcHBlZC5odG1sCkBAIC0wLDAgKzEsNzcgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICBkaXYgeworICAgICAgICB3aWR0aDogMTAwcHg7
CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgfQorCisgICAgLmNvbXBvc2l0ZWQgeworICAg
ICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwcHgpOworICAgIH0KKworICAgIC5j
bGlwcyB7CisgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgfQorCisgICAgLmNvbnRhaW5l
ciB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAg
ICAgICB0b3A6IDBweDsKKyAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgICAgICAgLXdlYmtp
dC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTEwcHgpOworICAgIH0KKworICAgIC51bmRlciB7Cisg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7
CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgfQorCisgICAgLm92
ZXIgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgIH0K
KworICAgICNsYXllcnRyZWUgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAg
IGxlZnQ6IDEwMDAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgIH0KKworICAgIGJvZHkgewor
ICAgICAgICBvdmVyZmxvdzogaGlkZGVuOworICAgIH0KKzwvc3R5bGU+CisKKzxzY3JpcHQ+Cisg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbG9hZCcsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImxheWVydHJlZSIpLmlubmVyVGV4dCA9IGxheW91dFRlc3RDb250cm9sbGVyLmxheWVy
VHJlZUFzVGV4dCgpOworICAgICAgICB9LCBmYWxzZSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+CisKKzxib2R5PgorICA8IS0tIFRlc3RzIHRoYXQgQ1NTIHRyYW5zZm9ybXMgYW5kIGNsaXBw
aW5nIHdvcmsgcHJvcGVybHkgdG9nZXRoZXIuIC0tPgorICA8IS0tIFRoaXMgcmVwcm9kdWNlcyBh
biBlcnJvciByZXBvcnRlZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzY0ODYKKyAgICAgICB3aGVyZSB0aGUgY2xpcFJlY3Qgd2FzIG5vdCBhY2NvdW50aW5nIGZv
ciB0cmFuc2Zvcm1zLiBBcyBhIHJlc3VsdCwgaW4gdGhlIG92ZXJsYXBNYXAsCisgICAgICAgdGhl
IGludGVyc2VjdGlvbiBvZiBjbGlwUmVjdCBhbmQgbGF5ZXIgYm91bmRzIGJlY29tZXMgZW1wdHks
IGFuZCBsYXllcnMgb24gdG9wIGRvIG5vdAorICAgICAgIGdldCBwcm9wZXJseSBjb21wb3NpdGVk
LiBJZiB0aGlzIGhhcHBlbnMsIHRoZSByZWQgInVuZGVyIGNvbXBvc2l0ZWQiIGxheWVyIHdpbGwg
YmUKKyAgICAgICBleHBvc2VkLCBiZWNhdXNlIHRoZSAib3ZlciIgZGl2IGRvZXMgbm90IGJlY29t
ZSBhIGNvbXBvc2l0ZWQgbGF5ZXIuIC0tPgorICA8ZGl2IGNsYXNzPSJjb250YWluZXIgY2xpcHMi
PgorICAgIDxkaXYgY2xhc3M9InVuZGVyIGNvbXBvc2l0ZWQiPjwvZGl2PgorICAgIDxkaXYgY2xh
c3M9Im92ZXIiPjwvZGl2PgorICA8L2Rpdj4KKworICA8cHJlIGlkPSJsYXllcnRyZWUiPjwvcHJl
PgorCis8L2JvZHk+CisKKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128513</attachid>
            <date>2012-02-23 11:22:58 -0800</date>
            <delta_ts>2012-02-23 21:02:38 -0800</delta_ts>
            <desc>Cleaner solution, please see follow-up comments</desc>
            <filename>bug-76486-20120223112257.patch</filename>
            <type>text/plain</type>
            <size>13400</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmY4N2JjY2Q1MzkzZjll
YWNkMjgxYjE4ODdhNGQ2NmZkODViZjE4My4uNmU3ZGE5ZTJlODhjMTRlMmJiZDUyZWUwMGQyNmU2
ZTg3MGVhYTUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAyLTIzICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbmRlckxheWVy
IENsaXBSZWN0IG5vdCBhY2NvdW50aW5nIGZvciB0cmFuc2Zvcm1zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ4NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL2xheWVyLWNy
ZWF0aW9uL292ZXJsYXAtdHJhbnNmb3JtZWQtYW5kLWNsaXBwZWQuaHRtbAorCisgICAgICAgIFRo
aXMgcGF0Y2ggY3JlYXRlcyBhIG5ldyB2ZXJzaW9uIG9mIGNvbnZlcnRUb0xheWVyQ29vcmRzIHRo
YXQKKyAgICAgICAgd29ya3MgYWNyb3NzIGxheWVycyB3aXRoIHRyYW5zZm9ybXMsIHNvIHRoYXQg
dGhlIGNsaXBSZWN0IGNhbiBiZQorICAgICAgICBjb3JyZWN0bHkgY29tcHV0ZWQuCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OmNvbnZlcnRUb0xheWVyQ29vcmRzV2l0aFRyYW5zZm9ybXMpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y29udmVydFRvTGF5ZXJDb29y
ZHNXaXRoVHJhbnNmb3Jtc0ludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
OjpjYWxjdWxhdGVDbGlwUmVjdHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSZW5kZXJMYXllcik6CisKIDIwMTItMDIt
MjMgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLiBSZWJhc2VsaW5lIGJpbmRpbmcgdGVzdCBmaWxlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDJjZDBhOTI2MmJmODYyMGEyOWZiZTQ5NTJlMzAyNzFm
NzJiYWExYWUuLjVkNzNkMWU4ZDg3MjA4OTI1ZmEwOGJiOTAzMDIwZDRmMTc5ODFmMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtOTMsNiArOTMsNyBAQAog
I2luY2x1ZGUgIlNvdXJjZUdyYXBoaWMuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnR5U2V0Lmgi
CiAjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgorI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCiAj
aW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlICJUcmFuc2xhdGVUcmFu
c2Zvcm1PcGVyYXRpb24uaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC0xMzQ3
LDYgKzEzNDgsMTExIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNvbnZlcnRUb0xheWVyQ29vcmRzKGNv
bnN0IFJlbmRlckxheWVyKiBhbmNlc3RvckxheWVyLCBMYXlvdXRSCiAgICAgcmVjdC5tb3ZlKC1k
ZWx0YS54KCksIC1kZWx0YS55KCkpOwogfQogCit2b2lkIFJlbmRlckxheWVyOjpjb252ZXJ0VG9M
YXllckNvb3Jkc1dpdGhUcmFuc2Zvcm1zKGNvbnN0IFJlbmRlckxheWVyKiBhbmNlc3RvckxheWVy
LCBMYXlvdXRSZWN0JiByZWN0KSBjb25zdAoreworICAgIEZsb2F0UXVhZCBxdWFkKHJlY3QpOwor
ICAgIFRyYW5zZm9ybVN0YXRlIHRyYW5zZm9ybVN0YXRlKFRyYW5zZm9ybVN0YXRlOjpBcHBseVRy
YW5zZm9ybURpcmVjdGlvbiwgcXVhZCk7CisgICAgY29udmVydFRvTGF5ZXJDb29yZHNXaXRoVHJh
bnNmb3Jtc0ludGVybmFsKGFuY2VzdG9yTGF5ZXIsIHRyYW5zZm9ybVN0YXRlKTsKKyAgICByZWN0
ID0gdHJhbnNmb3JtU3RhdGUubWFwcGVkUXVhZCgpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7Cit9
CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OmNvbnZlcnRUb0xheWVyQ29vcmRzV2l0aFRyYW5zZm9ybXMo
Y29uc3QgUmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIsIExheW91dFBvaW50JiBsb2NhdGlvbikg
Y29uc3QKK3sKKyAgICBUcmFuc2Zvcm1TdGF0ZSB0cmFuc2Zvcm1TdGF0ZShUcmFuc2Zvcm1TdGF0
ZTo6QXBwbHlUcmFuc2Zvcm1EaXJlY3Rpb24sIGxvY2F0aW9uKTsKKyAgICBjb252ZXJ0VG9MYXll
ckNvb3Jkc1dpdGhUcmFuc2Zvcm1zSW50ZXJuYWwoYW5jZXN0b3JMYXllciwgdHJhbnNmb3JtU3Rh
dGUpOworICAgIGxvY2F0aW9uID0gcm91bmRlZEludFBvaW50KHRyYW5zZm9ybVN0YXRlLm1hcHBl
ZFBvaW50KCkpOworfQorCit2b2lkIFJlbmRlckxheWVyOjpjb252ZXJ0VG9MYXllckNvb3Jkc1dp
dGhUcmFuc2Zvcm1zSW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5ZXIsIFRy
YW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkgY29uc3QKK3sKKyAgICBpZiAoYW5jZXN0b3JM
YXllciA9PSB0aGlzKQorICAgICAgICByZXR1cm47CisKKyAgICBFUG9zaXRpb24gcG9zaXRpb24g
PSByZW5kZXJlcigpLT5zdHlsZSgpLT5wb3NpdGlvbigpOworICAgIGlmIChwb3NpdGlvbiA9PSBG
aXhlZFBvc2l0aW9uICYmICghYW5jZXN0b3JMYXllciB8fCBhbmNlc3RvckxheWVyID09IHJlbmRl
cmVyKCktPnZpZXcoKS0+bGF5ZXIoKSkpIHsKKyAgICAgICAgLy8gSWYgdGhlIGZpeGVkIGxheWVy
J3MgY29udGFpbmVyIGlzIHRoZSByb290LCBqdXN0IGFkZCBpbiB0aGUgb2Zmc2V0IG9mIHRoZSB2
aWV3LiBXZSBjYW4gb2J0YWluIHRoaXMgYnkgY2FsbGluZworICAgICAgICAvLyBsb2NhbFRvQWJz
b2x1dGUoKSBvbiB0aGUgUmVuZGVyVmlldy4KKyAgICAgICAgRmxvYXRQb2ludCBhYnNQb3MgPSBy
ZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCB0cnVlKTsKKyAgICAgICAg
dHJhbnNmb3JtU3RhdGUubW92ZShmbG9vcmVkTGF5b3V0U2l6ZShhYnNQb3MpLCBUcmFuc2Zvcm1T
dGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBpZiAocG9zaXRpb24gPT0gRml4ZWRQb3NpdGlvbikgeworICAgICAgICAvLyBGb3IgYSBmaXhl
ZCBsYXllcnMsIHdlIG5lZWQgdG8gd2FsayB1cCB0byB0aGUgcm9vdCB0byBzZWUgaWYgdGhlcmUn
cyBhIGZpeGVkIHBvc2l0aW9uIGNvbnRhaW5lcgorICAgICAgICAvLyAoZS5nLiBhIHRyYW5zZm9y
bWVkIGxheWVyKS4gSXQncyBhbiBlcnJvciB0byBjYWxsIGNvbnZlcnRUb0xheWVyQ29vcmRzKCkg
YWNyb3NzIGEgbGF5ZXIgd2l0aCBhIHRyYW5zZm9ybSwKKyAgICAgICAgLy8gc28gd2Ugc2hvdWxk
IGFsd2F5cyBmaW5kIHRoZSBhbmNlc3RvciBhdCBvciBiZWZvcmUgd2UgZmluZCB0aGUgZml4ZWQg
cG9zaXRpb24gY29udGFpbmVyLgorICAgICAgICBSZW5kZXJMYXllciogZml4ZWRQb3NpdGlvbkNv
bnRhaW5lckxheWVyID0gMDsKKyAgICAgICAgYm9vbCBmb3VuZEFuY2VzdG9yID0gZmFsc2U7Cisg
ICAgICAgIGZvciAoUmVuZGVyTGF5ZXIqIGN1cnJMYXllciA9IHBhcmVudCgpOyBjdXJyTGF5ZXI7
IGN1cnJMYXllciA9IGN1cnJMYXllci0+cGFyZW50KCkpIHsKKyAgICAgICAgICAgIGlmIChjdXJy
TGF5ZXIgPT0gYW5jZXN0b3JMYXllcikKKyAgICAgICAgICAgICAgICBmb3VuZEFuY2VzdG9yID0g
dHJ1ZTsKKworICAgICAgICAgICAgaWYgKGlzRml4ZWRQb3NpdGlvbmVkQ29udGFpbmVyKGN1cnJM
YXllcikpIHsKKyAgICAgICAgICAgICAgICBmaXhlZFBvc2l0aW9uQ29udGFpbmVyTGF5ZXIgPSBj
dXJyTGF5ZXI7CisgICAgICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChmb3VuZEFuY2VzdG9yLCBm
b3VuZEFuY2VzdG9yKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorCisgICAgICAgIEFTU0VSVChmaXhlZFBvc2l0aW9uQ29udGFpbmVyTGF5ZXIpOyAv
LyBXZSBzaG91bGQgaGF2ZSBoaXQgdGhlIFJlbmRlclZpZXcncyBsYXllciBhdCBsZWFzdC4KKwor
ICAgICAgICBpZiAoZml4ZWRQb3NpdGlvbkNvbnRhaW5lckxheWVyICE9IGFuY2VzdG9yTGF5ZXIp
IHsKKyAgICAgICAgICAgIExheW91dFBvaW50IGZpeGVkQ29udGFpbmVyQ29vcmRzOworICAgICAg
ICAgICAgY29udmVydFRvTGF5ZXJDb29yZHNXaXRoVHJhbnNmb3JtcyhmaXhlZFBvc2l0aW9uQ29u
dGFpbmVyTGF5ZXIsIGZpeGVkQ29udGFpbmVyQ29vcmRzKTsKKworICAgICAgICAgICAgTGF5b3V0
UG9pbnQgYW5jZXN0b3JDb29yZHM7CisgICAgICAgICAgICBhbmNlc3RvckxheWVyLT5jb252ZXJ0
VG9MYXllckNvb3Jkc1dpdGhUcmFuc2Zvcm1zKGZpeGVkUG9zaXRpb25Db250YWluZXJMYXllciwg
YW5jZXN0b3JDb29yZHMpOworCisgICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGZpeGVk
Q29udGFpbmVyQ29vcmRzIC0gYW5jZXN0b3JDb29yZHMsIFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVs
YXRlVHJhbnNmb3JtKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIFJlbmRlckxheWVyKiBwYXJlbnRMYXllcjsKKyAgICBpZiAocG9zaXRpb24gPT0gQWJzb2x1
dGVQb3NpdGlvbiB8fCBwb3NpdGlvbiA9PSBGaXhlZFBvc2l0aW9uKSB7CisgICAgICAgIC8vIERv
IHdoYXQgZW5jbG9zaW5nUG9zaXRpb25lZEFuY2VzdG9yKCkgZG9lcywgYnV0IGNoZWNrIGZvciBh
bmNlc3RvckxheWVyIGFsb25nIHRoZSB3YXkuCisgICAgICAgIHBhcmVudExheWVyID0gcGFyZW50
KCk7CisgICAgICAgIGJvb2wgZm91bmRBbmNlc3RvckZpcnN0ID0gZmFsc2U7CisgICAgICAgIHdo
aWxlIChwYXJlbnRMYXllcikgeworICAgICAgICAgICAgaWYgKGlzUG9zaXRpb25lZENvbnRhaW5l
cihwYXJlbnRMYXllcikpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGlm
IChwYXJlbnRMYXllciA9PSBhbmNlc3RvckxheWVyKSB7CisgICAgICAgICAgICAgICAgZm91bmRB
bmNlc3RvckZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgcGFyZW50TGF5ZXIgPSBwYXJlbnRMYXllci0+cGFyZW50KCk7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAoZm91bmRBbmNlc3RvckZpcnN0KSB7CisgICAgICAgICAg
ICAvLyBGb3VuZCBhbmNlc3RvckxheWVyIGJlZm9yZSB0aGUgYWJzLiBwb3NpdGlvbmVkIGNvbnRh
aW5lciwgc28gY29tcHV0ZSBvZmZzZXQgb2YgYm90aCByZWxhdGl2ZQorICAgICAgICAgICAgLy8g
dG8gZW5jbG9zaW5nUG9zaXRpb25lZEFuY2VzdG9yIGFuZCBzdWJ0cmFjdC4KKyAgICAgICAgICAg
IFJlbmRlckxheWVyKiBwb3NpdGlvbmVkQW5jZXN0b3IgPSBwYXJlbnRMYXllci0+ZW5jbG9zaW5n
UG9zaXRpb25lZEFuY2VzdG9yKCk7CisKKyAgICAgICAgICAgIExheW91dFBvaW50IHRoaXNDb29y
ZHM7CisgICAgICAgICAgICBjb252ZXJ0VG9MYXllckNvb3Jkc1dpdGhUcmFuc2Zvcm1zKHBvc2l0
aW9uZWRBbmNlc3RvciwgdGhpc0Nvb3Jkcyk7CisKKyAgICAgICAgICAgIExheW91dFBvaW50IGFu
Y2VzdG9yQ29vcmRzOworICAgICAgICAgICAgYW5jZXN0b3JMYXllci0+Y29udmVydFRvTGF5ZXJD
b29yZHNXaXRoVHJhbnNmb3Jtcyhwb3NpdGlvbmVkQW5jZXN0b3IsIGFuY2VzdG9yQ29vcmRzKTsK
KworICAgICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZSh0aGlzQ29vcmRzIC0gYW5jZXN0b3JD
b29yZHMsIFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAgICBwYXJlbnRMYXllciA9IHBh
cmVudCgpOworCisgICAgaWYgKCFwYXJlbnRMYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAg
cGFyZW50TGF5ZXItPmNvbnZlcnRUb0xheWVyQ29vcmRzV2l0aFRyYW5zZm9ybXNJbnRlcm5hbChh
bmNlc3RvckxheWVyLCB0cmFuc2Zvcm1TdGF0ZSk7CisKKyAgICB0cmFuc2Zvcm1TdGF0ZS5tb3Zl
KHRvU2l6ZShtX3RvcExlZnQpLCBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSk7
CisKKyAgICBpZiAobV90cmFuc2Zvcm0pCisgICAgICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJh
bnNmb3JtKCgqbV90cmFuc2Zvcm0pLCBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9y
bSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgaW50IGFkanVzdGVkU2Nyb2xsRGVsdGEoaW50IGJlZ2lu
bmluZ0RlbHRhKSB7CiAgICAgLy8gVGhpcyBpbXBsZW1lbnRpb24gbWF0Y2hlcyBGaXJlZm94J3Mu
CiAgICAgLy8gaHR0cDovL214ci5tb3ppbGxhLm9yZy9maXJlZm94L3NvdXJjZS90b29sa2l0L2Nv
bnRlbnQvd2lkZ2V0cy9icm93c2VyLnhtbCM4NTYuCkBAIC0zNjU1LDcgKzM3NjEsNyBAQCB2b2lk
IFJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMoY29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RM
YXllciwgUmVuZGVyUmVnaW9uKgogICAgIGlmIChyZW5kZXJlcigpLT5oYXNPdmVyZmxvd0NsaXAo
KSB8fCByZW5kZXJlcigpLT5oYXNDbGlwKCkpIHsKICAgICAgICAgLy8gVGhpcyBsYXllciBlc3Rh
Ymxpc2hlcyBhIGNsaXAgb2Ygc29tZSBraW5kLgogICAgICAgICBMYXlvdXRQb2ludCBvZmZzZXQ7
Ci0gICAgICAgIGNvbnZlcnRUb0xheWVyQ29vcmRzKHJvb3RMYXllciwgb2Zmc2V0KTsKKyAgICAg
ICAgY29udmVydFRvTGF5ZXJDb29yZHNXaXRoVHJhbnNmb3Jtcyhyb290TGF5ZXIsIG9mZnNldCk7
CiAgICAgICAgIFJlbmRlclZpZXcqIHZpZXcgPSByZW5kZXJlcigpLT52aWV3KCk7CiAgICAgICAg
IEFTU0VSVCh2aWV3KTsKICAgICAgICAgaWYgKHZpZXcgJiYgY2xpcFJlY3RzLmZpeGVkKCkgJiYg
cm9vdExheWVyLT5yZW5kZXJlcigpID09IHZpZXcpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmgKaW5kZXggNGM1YmUwY2RjNTVlOTE2MjUyY2VkODI3YjNhYmM1MmM5ZDU3MDJh
OS4uYzNjOWFiNjc4ZDUzNTZmZDAxN2RlMjRkNDNmODMzZjk4NWUzZWY3ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTY4LDYgKzY4LDcgQEAgY2xhc3MgUmVuZGVy
U3R5bGU7CiBjbGFzcyBSZW5kZXJWaWV3OwogY2xhc3MgU2Nyb2xsYmFyOwogY2xhc3MgVHJhbnNm
b3JtYXRpb25NYXRyaXg7CitjbGFzcyBUcmFuc2Zvcm1TdGF0ZTsKIAogI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKIGNsYXNzIFJlbmRlckxheWVyQmFja2luZzsKQEAgLTQyNyw2ICs0
MjgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb252ZXJ0VG9QaXhlbFNuYXBwZWRMYXllckNvb3Jk
cyhjb25zdCBSZW5kZXJMYXllciogYW5jZXN0b3JMYXllciwgSW50UmVjdCYpIGNvbnN0OwogICAg
IHZvaWQgY29udmVydFRvTGF5ZXJDb29yZHMoY29uc3QgUmVuZGVyTGF5ZXIqIGFuY2VzdG9yTGF5
ZXIsIExheW91dFBvaW50JiBsb2NhdGlvbikgY29uc3Q7CiAgICAgdm9pZCBjb252ZXJ0VG9MYXll
ckNvb3Jkcyhjb25zdCBSZW5kZXJMYXllciogYW5jZXN0b3JMYXllciwgTGF5b3V0UmVjdCYpIGNv
bnN0OworICAgIHZvaWQgY29udmVydFRvTGF5ZXJDb29yZHNXaXRoVHJhbnNmb3Jtcyhjb25zdCBS
ZW5kZXJMYXllciogYW5jZXN0b3JMYXllciwgTGF5b3V0UG9pbnQmIGxvY2F0aW9uKSBjb25zdDsK
KyAgICB2b2lkIGNvbnZlcnRUb0xheWVyQ29vcmRzV2l0aFRyYW5zZm9ybXMoY29uc3QgUmVuZGVy
TGF5ZXIqIGFuY2VzdG9yTGF5ZXIsIExheW91dFJlY3QmKSBjb25zdDsKIAogICAgIGJvb2wgaGFz
QXV0b1pJbmRleCgpIGNvbnN0IHsgcmV0dXJuIHJlbmRlcmVyKCktPnN0eWxlKCktPmhhc0F1dG9a
SW5kZXgoKTsgfQogICAgIGludCB6SW5kZXgoKSBjb25zdCB7IHJldHVybiByZW5kZXJlcigpLT5z
dHlsZSgpLT56SW5kZXgoKTsgfQpAQCAtNTY2LDYgKzU2OSw4IEBAIHB1YmxpYzoKICNlbmRpZgog
CiBwcml2YXRlOgorICAgIHZvaWQgY29udmVydFRvTGF5ZXJDb29yZHNXaXRoVHJhbnNmb3Jtc0lu
dGVybmFsKGNvbnN0IFJlbmRlckxheWVyKiBhbmNlc3RvckxheWVyLCBUcmFuc2Zvcm1TdGF0ZSYp
IGNvbnN0OworCiAgICAgdm9pZCB1cGRhdGVaT3JkZXJMaXN0c1Nsb3dDYXNlKCk7CiAKICAgICB2
b2lkIGNvbXB1dGVSZXBhaW50UmVjdHMoTGF5b3V0UG9pbnQqIG9mZnNldEZyb21Sb290ID0gMCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNjczNTU1MDM4ZjMzMDZlYzkxYWU1ZjM1NDE5M2E5ZWVmMWY3OGE4Ny4uYzcxZWRl
YTczNGIyOTk1ZDAyZWQ4OTg1OTI0M2Q0ZGE3ZTg3ZTk0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDEyLTAyLTIzICBTaGF3biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJlbmRlckxheWVyIENsaXBSZWN0IG5vdCBhY2NvdW50aW5nIGZvciB0cmFuc2Zvcm1z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ4Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY29tcG9z
aXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC10cmFuc2Zvcm1lZC1hbmQtY2xpcHBlZC1leHBl
Y3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL292
ZXJsYXAtdHJhbnNmb3JtZWQtYW5kLWNsaXBwZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9vdmVybGFwLXRyYW5zZm9ybWVkLWFuZC1j
bGlwcGVkLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAyLTIzICBDaGFuZ1Nlb2sgT2ggIDxzaGl2YW1p
ZG93QGdtYWlsLmNvbT4KIAogICAgICAgICBbR1RLXSBEUlQgZG9lc24ndCBzdXBwb3J0IHNjaGVk
dWxlQXN5bmNocm9ub3VzS2V5RG93bi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2xheWVyLWNyZWF0aW9uL292ZXJsYXAtdHJhbnNmb3JtZWQtYW5kLWNsaXBwZWQtZXhwZWN0
ZWQucG5nIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC10
cmFuc2Zvcm1lZC1hbmQtY2xpcHBlZC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDVmMWYyNmQ5
ZGY0MzI4MzE0ZWE5YjlkY2E5NmMyYmQwMGZkODVhMgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
MzMxMQp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdD
Q000NyQ9U3VGeGVVZUAKekRNQEIjV2A+Q3RZMzUwV3NjREkzQ1RTK2dOdjRLbyN1bGxEWDZEe1NT
PWtIPkpkS18lanYqQ3Utcmg5aVlqTk9WCnphaCVxIzlHNz5BVG1PfmxxRjFid0VpeCs0b3tgeWVa
ckFtOW9QVERWbVNrbDNeWjFTfSg1QGVSajckcytESiZjZQp6Mz07JV9FXiU7YzBFJFlFM1hZJXZp
OE1DZT9HQjlmYHd5NSQpNTImejclYy12JWZIYklWWUQoRlozdjlraE5IRk4KZ1hsK1BiWlRPNWFJ
ZntSfChFZmMxej9MTH5yPm1kS0k7VnN0MEEtSnBmQiptaAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3Zl
cmxhcC10cmFuc2Zvcm1lZC1hbmQtY2xpcHBlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9vdmVybGFwLXRyYW5zZm9ybWVkLWFuZC1jbGlwcGVk
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OWM5Y2JjMTMxZDRjZjFhMTdhOTczMmQ1NjdjNTZh
YzkwYjk4OWU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5
ZXItY3JlYXRpb24vb3ZlcmxhcC10cmFuc2Zvcm1lZC1hbmQtY2xpcHBlZC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzMCBAQAorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAw
KQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDgwMC4w
MCA2MDAuMDApCisgICAgICAoY2hpbGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAg
ICAgICAgIChib3VuZHMgMTAwLjAwIDEwMC4wMCkKKyAgICAgICAgICAodHJhbnNmb3JtIFsxLjAw
IDAuMDAgMC4wMCAwLjAwXSBbMC4wMCAxLjAwIDAuMDAgMC4wMF0gWzAuMDAgMC4wMCAxLjAwIDAu
MDBdIFsxMTAuMDAgMC4wMCAwLjAwIDEuMDBdKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAg
ICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAoYm91bmRzIDEwMC4wMCAxMDAu
MDApCisgICAgICAgICAgICAgIChjaGlsZHJlbiAyCisgICAgICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTAwLjAwIDEwMC4wMCkKKyAgICAgICAg
ICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTAwLjAwIDEw
MC4wMCkKKyAgICAgICAgICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICAg
ICApCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAg
ICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC10cmFuc2Zvcm1lZC1hbmQtY2xpcHBlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC10cmFu
c2Zvcm1lZC1hbmQtY2xpcHBlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMmI2NmVhZTZjNjRlYmZhN2I2
MmY0N2NjNzllMmU2M2RlODM5YTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9sYXllci1jcmVhdGlvbi9vdmVybGFwLXRyYW5zZm9ybWVkLWFuZC1jbGlwcGVkLmh0
bWwKQEAgLTAsMCArMSw3NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0
eWxlPgorICAgIGRpdiB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiAx
MDBweDsKKyAgICB9CisKKyAgICAuY29tcG9zaXRlZCB7CisgICAgICAgIC13ZWJraXQtdHJhbnNm
b3JtOiB0cmFuc2xhdGVaKDBweCk7CisgICAgfQorCisgICAgLmNsaXBzIHsKKyAgICAgICAgb3Zl
cmZsb3c6IGhpZGRlbjsKKyAgICB9CisKKyAgICAuY29udGFpbmVyIHsKKyAgICAgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAg
ICAgICBvdmVyZmxvdzogaGlkZGVuOworICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNs
YXRlWCgxMTBweCk7CisgICAgfQorCisgICAgLnVuZGVyIHsKKyAgICAgICAgYmFja2dyb3VuZC1j
b2xvcjogcmVkOworICAgICAgICBwb3NpdGlvbjphYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4
OworICAgICAgICB0b3A6IDBweDsKKyAgICB9CisKKyAgICAub3ZlciB7CisgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAg
IGxlZnQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgfQorCisgICAgI2xheWVydHJlZSB7
CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMTAwMDBweDsKKyAg
ICAgICAgdG9wOiAwcHg7CisgICAgfQorCisgICAgYm9keSB7CisgICAgICAgIG92ZXJmbG93OiBo
aWRkZW47CisgICAgfQorPC9zdHlsZT4KKworPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQodHJ1ZSk7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGF5ZXJ0cmVlIiku
aW5uZXJUZXh0ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIubGF5ZXJUcmVlQXNUZXh0KCk7CisgICAg
ICAgIH0sIGZhbHNlKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+CisgIDwh
LS0gVGVzdHMgdGhhdCBDU1MgdHJhbnNmb3JtcyBhbmQgY2xpcHBpbmcgd29yayBwcm9wZXJseSB0
b2dldGhlci4gLS0+CisgIDwhLS0gVGhpcyByZXByb2R1Y2VzIGFuIGVycm9yIHJlcG9ydGVkIGlu
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ4NgorICAgICAgIHdo
ZXJlIHRoZSBjbGlwUmVjdCB3YXMgbm90IGFjY291bnRpbmcgZm9yIHRyYW5zZm9ybXMuIEFzIGEg
cmVzdWx0LCBpbiB0aGUgb3ZlcmxhcE1hcCwKKyAgICAgICB0aGUgaW50ZXJzZWN0aW9uIG9mIGNs
aXBSZWN0IGFuZCBsYXllciBib3VuZHMgYmVjb21lcyBlbXB0eSwgYW5kIGxheWVycyBvbiB0b3Ag
ZG8gbm90CisgICAgICAgZ2V0IHByb3Blcmx5IGNvbXBvc2l0ZWQuIElmIHRoaXMgaGFwcGVucywg
dGhlIHJlZCAidW5kZXIgY29tcG9zaXRlZCIgbGF5ZXIgd2lsbCBiZQorICAgICAgIGV4cG9zZWQs
IGJlY2F1c2UgdGhlICJvdmVyIiBkaXYgZG9lcyBub3QgYmVjb21lIGEgY29tcG9zaXRlZCBsYXll
ci4gLS0+CisgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciBjbGlwcyI+CisgICAgPGRpdiBjbGFzcz0i
dW5kZXIgY29tcG9zaXRlZCI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ib3ZlciI+PC9kaXY+Cisg
IDwvZGl2PgorCisgIDxwcmUgaWQ9ImxheWVydHJlZSI+PC9wcmU+CisKKzwvYm9keT4KKworPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128644</attachid>
            <date>2012-02-23 21:02:43 -0800</date>
            <delta_ts>2012-02-27 15:04:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76486-20120223210242.patch</filename>
            <type>text/plain</type>
            <size>9221</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZThmNDA3MzMyZTZhMGY4
ZjczMTc4Yjc4OWY2YzhkYmU4NjliZTcyNy4uYWE1N2IyMjdjOTg5NWMxY2I5OThmN2U2ZGFiZGU2
ZDFiMjkxYmU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAyLTIzICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbmRlckxheWVy
IENsaXBSZWN0IG5vdCBhY2NvdW50aW5nIGZvciB0cmFuc2Zvcm1zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ4NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGNvbXBvc2l0aW5nL2xheWVyLWNy
ZWF0aW9uL292ZXJsYXAtdHJhbnNmb3JtZWQtYW5kLWNsaXBwZWQuaHRtbAorCisgICAgICAgIFRo
aXMgcGF0Y2ggY2hhbmdlcyBjYWxjdWxhdGVDbGlwUmVjdHMoKSBzbyB0aGF0IHRoZSBjbGlwUmVj
dAorICAgICAgICBvZmZzZXQgaXMgYWxsb3dlZCB0byBiZSBjb252ZXJ0ZWQgYWNyb3NzIGxheWVy
cyB3aXRoCisgICAgICAgIHRyYW5zZm9ybXMuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhl
IFJlbmRlckxheWVyQ29tcG9zaXRvcgorICAgICAgICBuZWVkcyBjbGlwUmVjdHMgaW4gZG9jdW1l
bnQgc3BhY2UsIHJhdGhlciB0aGFuIHdpdGggcmVzcGVjdCB0bworICAgICAgICBzb21lIGxvY2Fs
IGNsaXBwaW5nIGxheWVyLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyT2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUG9pbnQpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoUmVuZGVyT2JqZWN0
KToKKwogMjAxMi0wMi0yMyAgTGVvIFlhbmcgIDxsZW8ueWFuZ0B0b3JjaG1vYmlsZS5jb20uY24+
CiAKICAgICAgICAgW0JsYWNrQmVycnldIFVwc3RyZWFtIHRoZSBCbGFja0JlcnJ5IGNoYW5nZSB0
byBwbGF0Zm9ybS9ncmFwaGljcy9JbnRQb2ludC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcAppbmRleCBhNWIwMjhiNjUxMGZhMjA5OTgxZjkzZTExYTNkNzZkZjk0YTk3
Y2Y4Li4yNDRjZThkNTYwMGNmMzQ2NDUyMTAxODE5MTFjM2VjNmE0ODg2MzJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTM2NTQsNyArMzY1NCw3IEBAIHZv
aWQgUmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyhjb25zdCBSZW5kZXJMYXllciogcm9v
dExheWVyLCBSZW5kZXJSZWdpb24qCiAgICAgaWYgKHJlbmRlcmVyKCktPmhhc092ZXJmbG93Q2xp
cCgpIHx8IHJlbmRlcmVyKCktPmhhc0NsaXAoKSkgewogICAgICAgICAvLyBUaGlzIGxheWVyIGVz
dGFibGlzaGVzIGEgY2xpcCBvZiBzb21lIGtpbmQuCiAgICAgICAgIExheW91dFBvaW50IG9mZnNl
dDsKLSAgICAgICAgY29udmVydFRvTGF5ZXJDb29yZHMocm9vdExheWVyLCBvZmZzZXQpOworICAg
ICAgICBvZmZzZXQgPSByb3VuZGVkSW50UG9pbnQocmVuZGVyZXIoKS0+bG9jYWxUb0NvbnRhaW5l
clBvaW50KEZsb2F0UG9pbnQoKSwgcm9vdExheWVyLT5yZW5kZXJlcigpKSk7CiAgICAgICAgIFJl
bmRlclZpZXcqIHZpZXcgPSByZW5kZXJlcigpLT52aWV3KCk7CiAgICAgICAgIEFTU0VSVCh2aWV3
KTsKICAgICAgICAgaWYgKHZpZXcgJiYgY2xpcFJlY3RzLmZpeGVkKCkgJiYgcm9vdExheWVyLT5y
ZW5kZXJlcigpID09IHZpZXcpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAKaW5kZXggODVhMmJhOWY5NGVkNDk1NjE2YTM3ZjQyN2YzZmQ1YjUyYzVkMTZjNi4uNmFk
ZjYyN2NmYzEzZTRmYjNmYjRkY2E0YzU4M2Y2MmM4NTVhMmE0YyAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTIwOTMsNiArMjA5MywxNyBAQCBGbG9hdFF1
YWQgUmVuZGVyT2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUXVhZChjb25zdCBGbG9hdFF1YWQmIGxv
Y2FsUXVhZCwgUmVuZGVyQgogICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5sYXN0UGxhbmFyUXVh
ZCgpOwogfQogCitGbG9hdFBvaW50IFJlbmRlck9iamVjdDo6bG9jYWxUb0NvbnRhaW5lclBvaW50
KGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsUG9pbnQsIFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBib29sIGZpeGVkLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3sKKyAgICAv
LyBUcmFjayB0aGUgcG9pbnQgYXQgdGhlIGNlbnRlciBvZiB0aGUgcXVhZCdzIGJvdW5kaW5nIGJv
eC4gQXMgbWFwTG9jYWxUb0NvbnRhaW5lcigpIGNhbGxzIG9mZnNldEZyb21Db250YWluZXIoKSwK
KyAgICAvLyBpdCB3aWxsIHVzZSB0aGF0IHBvaW50IGFzIHRoZSByZWZlcmVuY2UgcG9pbnQgdG8g
ZGVjaWRlIHdoaWNoIGNvbHVtbidzIHRyYW5zZm9ybSB0byBhcHBseSBpbiBtdWx0aXBsZS1jb2x1
bW4gYmxvY2tzLgorICAgIFRyYW5zZm9ybVN0YXRlIHRyYW5zZm9ybVN0YXRlKFRyYW5zZm9ybVN0
YXRlOjpBcHBseVRyYW5zZm9ybURpcmVjdGlvbiwgbG9jYWxQb2ludCk7CisgICAgbWFwTG9jYWxU
b0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBmaXhlZCwgdHJ1ZSwgdHJhbnNmb3JtU3RhdGUs
IHdhc0ZpeGVkKTsKKyAgICB0cmFuc2Zvcm1TdGF0ZS5mbGF0dGVuKCk7CisKKyAgICByZXR1cm4g
dHJhbnNmb3JtU3RhdGUubGFzdFBsYW5hclBvaW50KCk7Cit9CisKIExheW91dFNpemUgUmVuZGVy
T2JqZWN0OjpvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlck9iamVjdCogbywgY29uc3QgTGF5b3V0
UG9pbnQmIHBvaW50KSBjb25zdAogewogICAgIEFTU0VSVChvID09IGNvbnRhaW5lcigpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCA1ODI3YmM4NWRmMDA3Mzdm
ZWI4MWMzMTNkZWU3ZmY1YjNlYWUzNTJmLi5kOTIzMWI1YTFiMWI4NTFkNDMxNDNhOTc3NmFmZDc0
ZDQ5NmJiNGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC02
NDQsOCArNjQ0LDEwIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBsb2NhbFRvQ29u
dGFpbmVyUXVhZChxdWFkLCAwLCBmaXhlZCwgd2FzRml4ZWQpOwogICAgIH0KKwogICAgIC8vIENv
bnZlcnQgYSBsb2NhbCBxdWFkIGludG8gdGhlIGNvb3JkaW5hdGUgc3lzdGVtIG9mIGNvbnRhaW5l
ciwgdGFraW5nIHRyYW5zZm9ybXMgaW50byBhY2NvdW50LgogICAgIEZsb2F0UXVhZCBsb2NhbFRv
Q29udGFpbmVyUXVhZChjb25zdCBGbG9hdFF1YWQmLCBSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgYm9vbCBmaXhlZCA9IGZhbHNlLCBib29sKiB3YXNGaXhlZCA9IDApIGNv
bnN0OworICAgIEZsb2F0UG9pbnQgbG9jYWxUb0NvbnRhaW5lclBvaW50KGNvbnN0IEZsb2F0UG9p
bnQmLCBSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCA9
IGZhbHNlLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0OwogCiAgICAgLy8gUmV0dXJuIHRoZSBv
ZmZzZXQgZnJvbSB0aGUgY29udGFpbmVyKCkgcmVuZGVyZXIgKGV4Y2x1ZGluZyB0cmFuc2Zvcm1z
KS4gSW4gbXVsdGktY29sdW1uIGxheW91dCwKICAgICAvLyBkaWZmZXJlbnQgb2Zmc2V0cyBhcHBs
eSBhdCBkaWZmZXJlbnQgcG9pbnRzLCBzbyByZXR1cm4gdGhlIG9mZnNldCB0aGF0IGFwcGxpZXMg
dG8gdGhlIGdpdmVuIHBvaW50LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGMwN2E0ZTMyZGQ3NDQzZjM2ZGQxNTk0NjA4YTEw
ZDg0MzE5ZmYwMjMuLmUzMzRiN2JmNzAzNzE5ODZhZTE1ZjMyM2E3M2ExOGMxOTFjNGUzNWYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wMi0yMyAgU2hhd24gU2luZ2ggIDxzaGF3bnNpbmdo
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW5kZXJMYXllciBDbGlwUmVjdCBub3QgYWNjb3Vu
dGluZyBmb3IgdHJhbnNmb3JtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzY0ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL292ZXJsYXAtdHJhbnNmb3Jt
ZWQtYW5kLWNsaXBwZWQtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9sYXllci1jcmVhdGlvbi9vdmVybGFwLXRyYW5zZm9ybWVkLWFuZC1jbGlwcGVkLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3Zlcmxh
cC10cmFuc2Zvcm1lZC1hbmQtY2xpcHBlZC5odG1sOiBBZGRlZC4KKwogMjAxMi0wMi0yMyAgQWRy
aWVubmUgV2Fsa2VyICA8ZW5uZUBnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVW5y
ZXZpZXdlZCBnYXJkZW5pbmcuIEFwcGx5IGJ1ZyBudW1iZXIgdG8gc3ZnL2NhcnRvLm5ldCBmYWls
dXJlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9u
L292ZXJsYXAtdHJhbnNmb3JtZWQtYW5kLWNsaXBwZWQtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC10cmFuc2Zvcm1lZC1hbmQtY2xp
cHBlZC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDVmMWYyNmQ5ZGY0MzI4MzE0ZWE5YjlkY2E5
NmMyYmQwMGZkODVhMgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzMxMQp6Y21lQVNATj8ob2xI
eWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdDQ000NyQ9U3VGeGVVZUAKekRN
QEIjV2A+Q3RZMzUwV3NjREkzQ1RTK2dOdjRLbyN1bGxEWDZEe1NTPWtIPkpkS18lanYqQ3Utcmg5
aVlqTk9WCnphaCVxIzlHNz5BVG1PfmxxRjFid0VpeCs0b3tgeWVackFtOW9QVERWbVNrbDNeWjFT
fSg1QGVSajckcytESiZjZQp6Mz07JV9FXiU7YzBFJFlFM1hZJXZpOE1DZT9HQjlmYHd5NSQpNTIm
ejclYy12JWZIYklWWUQoRlozdjlraE5IRk4KZ1hsK1BiWlRPNWFJZntSfChFZmMxej9MTH5yPm1k
S0k7VnN0MEEtSnBmQiptaAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC10cmFuc2Zvcm1lZC1h
bmQtY2xpcHBlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9sYXllci1j
cmVhdGlvbi9vdmVybGFwLXRyYW5zZm9ybWVkLWFuZC1jbGlwcGVkLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45OWM5Y2JjMTMxZDRjZjFhMTdhOTczMmQ1NjdjNTZhYzkwYjk4OWU3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3Zlcmxh
cC10cmFuc2Zvcm1lZC1hbmQtY2xpcHBlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMCBAQAor
KEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRyZW4gMQor
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgICAgICAo
Y2hpbGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChib3VuZHMgMTAw
LjAwIDEwMC4wMCkKKyAgICAgICAgICAodHJhbnNmb3JtIFsxLjAwIDAuMDAgMC4wMCAwLjAwXSBb
MC4wMCAxLjAwIDAuMDAgMC4wMF0gWzAuMDAgMC4wMCAxLjAwIDAuMDBdIFsxMTAuMDAgMC4wMCAw
LjAwIDEuMDBdKQorICAgICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoR3JhcGhpY3NM
YXllcgorICAgICAgICAgICAgICAoYm91bmRzIDEwMC4wMCAxMDAuMDApCisgICAgICAgICAgICAg
IChjaGlsZHJlbiAyCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAg
ICAgICAgIChib3VuZHMgMTAwLjAwIDEwMC4wMCkKKyAgICAgICAgICAgICAgICAgIChkcmF3c0Nv
bnRlbnQgMSkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgICAgIChib3VuZHMgMTAwLjAwIDEwMC4wMCkKKyAgICAgICAgICAg
ICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAg
ICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICAp
CisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbGF5ZXItY3Jl
YXRpb24vb3ZlcmxhcC10cmFuc2Zvcm1lZC1hbmQtY2xpcHBlZC5odG1sIGIvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC10cmFuc2Zvcm1lZC1hbmQtY2xpcHBl
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNjMmI2NmVhZTZjNjRlYmZhN2I2MmY0N2NjNzllMmU2M2RlODM5
YTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9sYXllci1jcmVh
dGlvbi9vdmVybGFwLXRyYW5zZm9ybWVkLWFuZC1jbGlwcGVkLmh0bWwKQEAgLTAsMCArMSw3NyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAgIGRpdiB7Cisg
ICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB9CisKKyAg
ICAuY29tcG9zaXRlZCB7CisgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDBw
eCk7CisgICAgfQorCisgICAgLmNsaXBzIHsKKyAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAg
ICB9CisKKyAgICAuY29udGFpbmVyIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAg
ICAgICBsZWZ0OiAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgICAgICBvdmVyZmxvdzogaGlk
ZGVuOworICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMTBweCk7CisgICAg
fQorCisgICAgLnVuZGVyIHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgICAg
ICBwb3NpdGlvbjphYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6IDBw
eDsKKyAgICB9CisKKyAgICAub3ZlciB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVu
OworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAg
ICAgdG9wOiAwcHg7CisgICAgfQorCisgICAgI2xheWVydHJlZSB7CisgICAgICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMTAwMDBweDsKKyAgICAgICAgdG9wOiAwcHg7Cisg
ICAgfQorCisgICAgYm9keSB7CisgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgfQorPC9z
dHlsZT4KKworPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CisgICAgICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGF5ZXJ0cmVlIikuaW5uZXJUZXh0ID0gbGF5b3V0
VGVzdENvbnRyb2xsZXIubGF5ZXJUcmVlQXNUZXh0KCk7CisgICAgICAgIH0sIGZhbHNlKTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+CisgIDwhLS0gVGVzdHMgdGhhdCBDU1Mg
dHJhbnNmb3JtcyBhbmQgY2xpcHBpbmcgd29yayBwcm9wZXJseSB0b2dldGhlci4gLS0+CisgIDwh
LS0gVGhpcyByZXByb2R1Y2VzIGFuIGVycm9yIHJlcG9ydGVkIGluIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ4NgorICAgICAgIHdoZXJlIHRoZSBjbGlwUmVjdCB3
YXMgbm90IGFjY291bnRpbmcgZm9yIHRyYW5zZm9ybXMuIEFzIGEgcmVzdWx0LCBpbiB0aGUgb3Zl
cmxhcE1hcCwKKyAgICAgICB0aGUgaW50ZXJzZWN0aW9uIG9mIGNsaXBSZWN0IGFuZCBsYXllciBi
b3VuZHMgYmVjb21lcyBlbXB0eSwgYW5kIGxheWVycyBvbiB0b3AgZG8gbm90CisgICAgICAgZ2V0
IHByb3Blcmx5IGNvbXBvc2l0ZWQuIElmIHRoaXMgaGFwcGVucywgdGhlIHJlZCAidW5kZXIgY29t
cG9zaXRlZCIgbGF5ZXIgd2lsbCBiZQorICAgICAgIGV4cG9zZWQsIGJlY2F1c2UgdGhlICJvdmVy
IiBkaXYgZG9lcyBub3QgYmVjb21lIGEgY29tcG9zaXRlZCBsYXllci4gLS0+CisgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciBjbGlwcyI+CisgICAgPGRpdiBjbGFzcz0idW5kZXIgY29tcG9zaXRlZCI+
PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ib3ZlciI+PC9kaXY+CisgIDwvZGl2PgorCisgIDxwcmUg
aWQ9ImxheWVydHJlZSI+PC9wcmU+CisKKzwvYm9keT4KKworPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129105</attachid>
            <date>2012-02-27 15:04:59 -0800</date>
            <delta_ts>2012-02-27 18:37:21 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-76486-20120227150458.patch</filename>
            <type>text/plain</type>
            <size>9300</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGFjZDU5NDA4MjE5MmU0
NGYzOTJiMGI3N2E2MzViNWMyN2JlYmMzMi4uMGY4MTQ2M2I0NzkwYjE0YmUyYTVlMjY3OTA5ZTg2
MjhjZGE1YzY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTAyLTIzICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbmRlckxheWVy
IENsaXBSZWN0IG5vdCBhY2NvdW50aW5nIGZvciB0cmFuc2Zvcm1zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ4NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBUZXN0OiBjb21wb3NpdGluZy9sYXllci1jcmVh
dGlvbi9vdmVybGFwLXRyYW5zZm9ybWVkLWFuZC1jbGlwcGVkLmh0bWwKKworICAgICAgICBUaGlz
IHBhdGNoIGNoYW5nZXMgY2FsY3VsYXRlQ2xpcFJlY3RzKCkgc28gdGhhdCB0aGUgY2xpcFJlY3QK
KyAgICAgICAgb2Zmc2V0IGlzIGFsbG93ZWQgdG8gYmUgY29udmVydGVkIGFjcm9zcyBsYXllcnMg
d2l0aAorICAgICAgICB0cmFuc2Zvcm1zLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBS
ZW5kZXJMYXllckNvbXBvc2l0b3IKKyAgICAgICAgbmVlZHMgY2xpcFJlY3RzIGluIGRvY3VtZW50
IHNwYWNlLCByYXRoZXIgdGhhbiB3aXRoIHJlc3BlY3QgdG8KKyAgICAgICAgc29tZSBsb2NhbCBj
bGlwcGluZyBsYXllci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck9iamVjdDo6bG9jYWxUb0NvbnRhaW5lclBvaW50KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFJlbmRlck9iamVjdCk6
CisKIDIwMTItMDItMjcgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgTW92ZSBXZWJDb3JlLWludGVybmFsIERPTSBub3RpZmljYXRpb24gbWV0aG9kcyBmcm9tIE5v
ZGUgdG8gQ29udGFpbmVyTm9kZSB3aGVyZSBhcHByb3ByaWF0ZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggYTViMDI4YjY1MTBmYTIwOTk4MWY5M2UxMWEzZDc2
ZGY5NGE5N2NmOC4uNzcyMGNlNmI4MDY0YzBmNWY0ZDJiZGQ0OWFhNjI3MjE1MGRlOGY0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0zNjUzLDggKzM2NTMs
MTIgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKGNvbnN0IFJlbmRlckxh
eWVyKiByb290TGF5ZXIsIFJlbmRlclJlZ2lvbioKICAgICAvLyBVcGRhdGUgdGhlIGNsaXAgcmVj
dHMgdGhhdCB3aWxsIGJlIHBhc3NlZCB0byBjaGlsZCBsYXllcnMuCiAgICAgaWYgKHJlbmRlcmVy
KCktPmhhc092ZXJmbG93Q2xpcCgpIHx8IHJlbmRlcmVyKCktPmhhc0NsaXAoKSkgewogICAgICAg
ICAvLyBUaGlzIGxheWVyIGVzdGFibGlzaGVzIGEgY2xpcCBvZiBzb21lIGtpbmQuCisKKyAgICAg
ICAgLy8gVGhpcyBvZmZzZXQgY2Fubm90IHVzZSBjb252ZXJ0VG9MYXllckNvb3JkcywgYmVjYXVz
ZSBzb21ldGltZXMgb3VyIHJvb3RMYXllciBtYXkgYmUgYWNyb3NzCisgICAgICAgIC8vIHNvbWUg
dHJhbnNmb3JtZWQgbGF5ZXIgYm91bmRhcnksIGZvciBleGFtcGxlLCBpbiB0aGUgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yIG92ZXJsYXBNYXAsIHdoZXJlCisgICAgICAgIC8vIGNsaXBSZWN0cyBhcmUg
bmVlZGVkIGluIHZpZXcgc3BhY2UuCiAgICAgICAgIExheW91dFBvaW50IG9mZnNldDsKLSAgICAg
ICAgY29udmVydFRvTGF5ZXJDb29yZHMocm9vdExheWVyLCBvZmZzZXQpOworICAgICAgICBvZmZz
ZXQgPSByb3VuZGVkSW50UG9pbnQocmVuZGVyZXIoKS0+bG9jYWxUb0NvbnRhaW5lclBvaW50KEZs
b2F0UG9pbnQoKSwgcm9vdExheWVyLT5yZW5kZXJlcigpKSk7CiAgICAgICAgIFJlbmRlclZpZXcq
IHZpZXcgPSByZW5kZXJlcigpLT52aWV3KCk7CiAgICAgICAgIEFTU0VSVCh2aWV3KTsKICAgICAg
ICAgaWYgKHZpZXcgJiYgY2xpcFJlY3RzLmZpeGVkKCkgJiYgcm9vdExheWVyLT5yZW5kZXJlcigp
ID09IHZpZXcpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5k
ZXggMzlkZGM0OTE1MWMwMzFkNTBiM2MyYjJmZDlhOTVjOGM3ZmIxYmY5Ny4uODQ2NzJiMWZmN2I2
MmZjMzI2ZjcyZDQwNzUyMjQyYWIyNTA0YmVlNiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKQEAgLTIwOTQsNiArMjA5NCwxNSBAQCBGbG9hdFF1YWQgUmVuZGVy
T2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUXVhZChjb25zdCBGbG9hdFF1YWQmIGxvY2FsUXVhZCwg
UmVuZGVyQgogICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5sYXN0UGxhbmFyUXVhZCgpOwogfQog
CitGbG9hdFBvaW50IFJlbmRlck9iamVjdDo6bG9jYWxUb0NvbnRhaW5lclBvaW50KGNvbnN0IEZs
b2F0UG9pbnQmIGxvY2FsUG9pbnQsIFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBib29sIGZpeGVkLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3sKKyAgICBUcmFuc2Zvcm1T
dGF0ZSB0cmFuc2Zvcm1TdGF0ZShUcmFuc2Zvcm1TdGF0ZTo6QXBwbHlUcmFuc2Zvcm1EaXJlY3Rp
b24sIGxvY2FsUG9pbnQpOworICAgIG1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5l
ciwgZml4ZWQsIHRydWUsIHRyYW5zZm9ybVN0YXRlLCB3YXNGaXhlZCk7CisgICAgdHJhbnNmb3Jt
U3RhdGUuZmxhdHRlbigpOworCisgICAgcmV0dXJuIHRyYW5zZm9ybVN0YXRlLmxhc3RQbGFuYXJQ
b2ludCgpOworfQorCiBMYXlvdXRTaXplIFJlbmRlck9iamVjdDo6b2Zmc2V0RnJvbUNvbnRhaW5l
cihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IExheW91dFBvaW50JiBwb2ludCkgY29uc3QKIHsKICAg
ICBBU1NFUlQobyA9PSBjb250YWluZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmgKaW5kZXggYWMxYmZjNzZkZGEzZmNjY2E1ZjFkMDU4OGNhYzQxOGE2YTlkYjdhOC4u
M2U5OWNiYzQ2OWU4ZmIzMWZhZjYxMTk0OGNkMTVkNWY0YzgzZjA4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNjQ0LDggKzY0NCwxMCBAQCBwdWJsaWM6CiAg
ICAgewogICAgICAgICByZXR1cm4gbG9jYWxUb0NvbnRhaW5lclF1YWQocXVhZCwgMCwgZml4ZWQs
IHdhc0ZpeGVkKTsKICAgICB9CisKICAgICAvLyBDb252ZXJ0IGEgbG9jYWwgcXVhZCBpbnRvIHRo
ZSBjb29yZGluYXRlIHN5c3RlbSBvZiBjb250YWluZXIsIHRha2luZyB0cmFuc2Zvcm1zIGludG8g
YWNjb3VudC4KICAgICBGbG9hdFF1YWQgbG9jYWxUb0NvbnRhaW5lclF1YWQoY29uc3QgRmxvYXRR
dWFkJiwgUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQg
PSBmYWxzZSwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdDsKKyAgICBGbG9hdFBvaW50IGxvY2Fs
VG9Db250YWluZXJQb2ludChjb25zdCBGbG9hdFBvaW50JiwgUmVuZGVyQm94TW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQgPSBmYWxzZSwgYm9vbCogd2FzRml4ZWQgPSAw
KSBjb25zdDsKIAogICAgIC8vIFJldHVybiB0aGUgb2Zmc2V0IGZyb20gdGhlIGNvbnRhaW5lcigp
IHJlbmRlcmVyIChleGNsdWRpbmcgdHJhbnNmb3JtcykuIEluIG11bHRpLWNvbHVtbiBsYXlvdXQs
CiAgICAgLy8gZGlmZmVyZW50IG9mZnNldHMgYXBwbHkgYXQgZGlmZmVyZW50IHBvaW50cywgc28g
cmV0dXJuIHRoZSBvZmZzZXQgdGhhdCBhcHBsaWVzIHRvIHRoZSBnaXZlbiBwb2ludC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA2Yzk3N2RhODEwZDBiNTk0YTUzYmI4N2YyODQ1YTBhNTNjMjc2MDQ1Li44N2NiZTVkZGExM2Ri
NzhmYzAxYWY5Y2Y0Yzk2MTAxZDdjZWE3MGZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTIt
MDItMjcgIFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmVuZGVyTGF5ZXIgQ2xpcFJlY3Qgbm90IGFjY291bnRpbmcgZm9yIHRyYW5zZm9ybXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDg2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogY29tcG9zaXRpbmcvbGF5
ZXItY3JlYXRpb24vb3ZlcmxhcC10cmFuc2Zvcm1lZC1hbmQtY2xpcHBlZC1leHBlY3RlZC5wbmc6
IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL292ZXJsYXAtdHJh
bnNmb3JtZWQtYW5kLWNsaXBwZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21w
b3NpdGluZy9sYXllci1jcmVhdGlvbi9vdmVybGFwLXRyYW5zZm9ybWVkLWFuZC1jbGlwcGVkLmh0
bWw6IEFkZGVkLgorCiAyMDEyLTAyLTI3ICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5j
b20+CiAKICAgICAgICAgW2Nocm9taXVtXSBVbnJldmlld2VkIGdhcmRlbmluZywgbWFyayB0d28g
ZmFzdC9yZWdleCB0ZXN0cyBhcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9sYXllci1jcmVhdGlvbi9vdmVybGFwLXRyYW5zZm9ybWVkLWFuZC1jbGlwcGVkLWV4
cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL292ZXJs
YXAtdHJhbnNmb3JtZWQtYW5kLWNsaXBwZWQtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1ZjFm
MjZkOWRmNDMyODMxNGVhOWI5ZGNhOTZjMmJkMDBmZDg1YTIKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDMzMTEKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMUIlUWxZYnBSem5r
QjlnQ0NNNDckPVN1RnhlVWVACnpETUBCI1dgPkN0WTM1MFdzY0RJM0NUUytnTnY0S28jdWxsRFg2
RHtTUz1rSD5KZEtfJWp2KkN1LXJoOWlZak5PVgp6YWglcSM5Rzc+QVRtT35scUYxYndFaXgrNG97
YHllWnJBbTlvUFREVm1Ta2wzXloxU30oNUBlUmo3JHMrREomY2UKejM9OyVfRV4lO2MwRSRZRTNY
WSV2aThNQ2U/R0I5ZmB3eTUkKTUyJno3JWMtdiVmSGJJVllEKEZaM3Y5a2hOSEZOCmdYbCtQYlpU
TzVhSWZ7UnwoRWZjMXo/TEx+cj5tZEtJO1ZzdDBBLUpwZkIqbWgKCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9u
L292ZXJsYXAtdHJhbnNmb3JtZWQtYW5kLWNsaXBwZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC10cmFuc2Zvcm1lZC1hbmQtY2xp
cHBlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTljOWNiYzEzMWQ0Y2YxYTE3YTk3MzJkNTY3
YzU2YWM5MGI5ODllNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2xheWVyLWNyZWF0aW9uL292ZXJsYXAtdHJhbnNmb3JtZWQtYW5kLWNsaXBwZWQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMzAgQEAKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMgODAwLjAwIDYw
MC4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA4
MDAuMDAgNjAwLjAwKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAoYm91bmRzIDEwMC4wMCAxMDAuMDApCisgICAgICAgICAgKHRyYW5zZm9ybSBb
MS4wMCAwLjAwIDAuMDAgMC4wMF0gWzAuMDAgMS4wMCAwLjAwIDAuMDBdIFswLjAwIDAuMDAgMS4w
MCAwLjAwXSBbMTEwLjAwIDAuMDAgMC4wMCAxLjAwXSkKKyAgICAgICAgICAoY2hpbGRyZW4gMQor
ICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKGJvdW5kcyAxMDAuMDAg
MTAwLjAwKQorICAgICAgICAgICAgICAoY2hpbGRyZW4gMgorICAgICAgICAgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDEwMC4wMCAxMDAuMDApCisgICAg
ICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAgICAgICAgKQorICAgICAg
ICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgICAgICAoYm91bmRzIDEwMC4w
MCAxMDAuMDApCisgICAgICAgICAgICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICAg
ICAgICAgKQorICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICAgKQorICAg
ICAgICApCisgICAgICApCisgICAgKQorICApCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL292ZXJsYXAtdHJhbnNmb3JtZWQtYW5kLWNsaXBw
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL292ZXJsYXAt
dHJhbnNmb3JtZWQtYW5kLWNsaXBwZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzJiNjZlYWU2YzY0ZWJm
YTdiNjJmNDdjYzc5ZTJlNjNkZTgzOWEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vb3ZlcmxhcC10cmFuc2Zvcm1lZC1hbmQtY2xpcHBl
ZC5odG1sCkBAIC0wLDAgKzEsNzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KKyAgICBkaXYgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdo
dDogMTAwcHg7CisgICAgfQorCisgICAgLmNvbXBvc2l0ZWQgeworICAgICAgICAtd2Via2l0LXRy
YW5zZm9ybTogdHJhbnNsYXRlWigwcHgpOworICAgIH0KKworICAgIC5jbGlwcyB7CisgICAgICAg
IG92ZXJmbG93OiBoaWRkZW47CisgICAgfQorCisgICAgLmNvbnRhaW5lciB7CisgICAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6IDBweDsK
KyAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRy
YW5zbGF0ZVgoMTEwcHgpOworICAgIH0KKworICAgIC51bmRlciB7CisgICAgICAgIGJhY2tncm91
bmQtY29sb3I6IHJlZDsKKyAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7CisgICAgICAgIGxlZnQ6
IDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgfQorCisgICAgLm92ZXIgeworICAgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAg
ICAgICBsZWZ0OiAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgIH0KKworICAgICNsYXllcnRy
ZWUgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDEwMDAwcHg7
CisgICAgICAgIHRvcDogMHB4OworICAgIH0KKworICAgIGJvZHkgeworICAgICAgICBvdmVyZmxv
dzogaGlkZGVuOworICAgIH0KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KHRydWUpOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxheWVydHJl
ZSIpLmlubmVyVGV4dCA9IGxheW91dFRlc3RDb250cm9sbGVyLmxheWVyVHJlZUFzVGV4dCgpOwor
ICAgICAgICB9LCBmYWxzZSk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5Pgor
ICA8IS0tIFRlc3RzIHRoYXQgQ1NTIHRyYW5zZm9ybXMgYW5kIGNsaXBwaW5nIHdvcmsgcHJvcGVy
bHkgdG9nZXRoZXIuIC0tPgorICA8IS0tIFRoaXMgcmVwcm9kdWNlcyBhbiBlcnJvciByZXBvcnRl
ZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0ODYKKyAgICAg
ICB3aGVyZSB0aGUgY2xpcFJlY3Qgd2FzIG5vdCBhY2NvdW50aW5nIGZvciB0cmFuc2Zvcm1zLiBB
cyBhIHJlc3VsdCwgaW4gdGhlIG92ZXJsYXBNYXAsCisgICAgICAgdGhlIGludGVyc2VjdGlvbiBv
ZiBjbGlwUmVjdCBhbmQgbGF5ZXIgYm91bmRzIGJlY29tZXMgZW1wdHksIGFuZCBsYXllcnMgb24g
dG9wIGRvIG5vdAorICAgICAgIGdldCBwcm9wZXJseSBjb21wb3NpdGVkLiBJZiB0aGlzIGhhcHBl
bnMsIHRoZSByZWQgInVuZGVyIGNvbXBvc2l0ZWQiIGxheWVyIHdpbGwgYmUKKyAgICAgICBleHBv
c2VkLCBiZWNhdXNlIHRoZSAib3ZlciIgZGl2IGRvZXMgbm90IGJlY29tZSBhIGNvbXBvc2l0ZWQg
bGF5ZXIuIC0tPgorICA8ZGl2IGNsYXNzPSJjb250YWluZXIgY2xpcHMiPgorICAgIDxkaXYgY2xh
c3M9InVuZGVyIGNvbXBvc2l0ZWQiPjwvZGl2PgorICAgIDxkaXYgY2xhc3M9Im92ZXIiPjwvZGl2
PgorICA8L2Rpdj4KKworICA8cHJlIGlkPSJsYXllcnRyZWUiPjwvcHJlPgorCis8L2JvZHk+CisK
KzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>