<?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>56929</bug_id>
          
          <creation_ts>2011-03-23 09:25:03 -0700</creation_ts>
          <short_desc>[Qt] Tiled painting still causes synchronous layout when accelerated compositing and texture mapper are enabled</short_desc>
          <delta_ts>2011-04-01 06:38:58 -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>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carol Szabo">carol</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>372191</commentid>
    <comment_count>0</comment_count>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-03-23 09:25:03 -0700</bug_when>
    <thetext>QWebFramePrivate::renderFromTiledBackingStore calls renderRelativeCoords to render scrollbars and pan icons.
Unfortunately renderRelativeCoords runs the layout if needed even if the content layer paint is not requested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372214</commentid>
    <comment_count>1</comment_count>
      <attachid>86634</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-03-23 09:53:59 -0700</bug_when>
    <thetext>Created attachment 86634
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372248</commentid>
    <comment_count>2</comment_count>
      <attachid>86634</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-03-23 10:37:50 -0700</bug_when>
    <thetext>Comment on attachment 86634
Proposed patch.

R- this one as discussed on IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372457</commentid>
    <comment_count>3</comment_count>
      <attachid>86696</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-03-23 14:58:13 -0700</bug_when>
    <thetext>Created attachment 86696
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373432</commentid>
    <comment_count>4</comment_count>
      <attachid>86696</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-03-25 03:35:39 -0700</bug_when>
    <thetext>Comment on attachment 86696
Proposed patch

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

&gt; Source/WebKit/qt/Api/qwebframe.cpp:316
&gt; -    renderRelativeCoords(context, (QWebFrame::RenderLayer)(QWebFrame::ScrollBarLayer | QWebFrame::PanIconLayer), clip);
&gt; +    renderFrameWidgets(context, (QWebFrame::RenderLayer)(QWebFrame::ScrollBarLayer | QWebFrame::PanIconLayer), clip);

Maybe change the signature to use QFlags and avoid the ugly cast?

&gt; Source/WebKit/qt/Api/qwebframe.cpp:391
&gt; +void QWebFramePrivate::renderFrameWidgets(GraphicsContext* context, QWebFrame::RenderLayer layer, QRegion clip)

I think the name Widgets is missleading here because of the PanIconLayer (and someone could think page&apos;s widgets are rendered here).

What about:
::renderFrameOverlayLayers()
or simply ::renderFrameScollbarAndPanIconLayer() :)

&gt; Source/WebKit/qt/Api/qwebframe.cpp:394
&gt; +    if (!layer &amp; (QWebFrame::PanIconLayer | QWebFrame::ScrollBarLayer))
&gt; +        return;

This could be an assertion instead of a runtime check.

If someone call the method with layer == Content, he clearly made a mistake and should be notified. In QWebFramePrivate::renderRelativeCoords(), you would mask the layer to get the right flags and make the call explicit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373437</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-03-25 03:52:52 -0700</bug_when>
    <thetext>I just had an idea for testing this, you tell me if that works :)

1) have a white page containing a big iframe without border but with scrollbar
2) render the top left corner (let say (0, 0, 100x100), it should only contain white since there is no content inside the iframe
3) resize the iframe programmatically so the scrollbars enter the top left corner
4) change the background color of the mainframe to green
4) re-render the top left rect. Check if all pixels are still white

Without your patch, the scrollbar of iframe will be in the way, over a white background.
With your patch, we should get only the white background.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373575</commentid>
    <comment_count>6</comment_count>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-03-25 10:10:32 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 86696 [details])
&gt; &gt; +    renderFrameWidgets(context, (QWebFrame::RenderLayer)(QWebFrame::ScrollBarLayer | QWebFrame::PanIconLayer), clip);

&gt; Maybe change the signature to use QFlags and avoid the ugly cast?

I would gladly do that, but I would like to do that on renderRelativeCoords as well in this case. Shouldn&apos;t I?

&gt; &gt; Source/WebKit/qt/Api/qwebframe.cpp:391
&gt; &gt; +void QWebFramePrivate::renderFrameWidgets(GraphicsContext* context, QWebFrame::RenderLayer layer, QRegion clip)

&gt; I think the name Widgets is missleading here because of the PanIconLayer (and someone could think page&apos;s widgets are rendered here).
&gt; What about:
&gt; ::renderFrameOverlayLayers()

I thought about OverlayLayers, but I found it more confusing since it might refer to content overlay layers.

&gt; or simply ::renderFrameScollbarAndPanIconLayer() :)

I considered this name as well, but I thought it is too long and too specific, other things such as title bar, title bar buttons, or who knows what might be included.

I also considered renderFrameDecorations and renderFrameControls but that may be confusing as well.

What do you think about renderFrameExtras / renderFrameVisuals ?

&gt; &gt; Source/WebKit/qt/Api/qwebframe.cpp:394
&gt; &gt; +    if (!layer &amp; (QWebFrame::PanIconLayer | QWebFrame::ScrollBarLayer))
&gt; &gt; +        return;
&gt; This could be an assertion instead of a runtime check.

This is a runtime check copied from renderRelativeCoords. It cannot simply be turned into an ASSERT as renderRelativeCoords can cause false assertions. I moved it here since I considered that the robustness added by it overweighs its low cost. I figured that most callers would have to do the test anyway so I save some memory by putting it here, rather then to do the check before every call. If you want I can totally remove the check in which case I uselessly walk through the rects of the region painting nothing if the function is called with neither of the interesting layers specified, or I can move the test to renderRelativeCoords and put an ASSERT in the function.

&gt; If someone call the method with layer == Content, he clearly made a mistake and should be notified. In QWebFramePrivate::renderRelativeCoords(), you would mask the layer to get the right flags and make the call explicit.

I do not understand the last sentence above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373578</commentid>
    <comment_count>7</comment_count>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-03-25 10:12:47 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; +    renderFrameWidgets(context, (QWebFrame::RenderLayer)(QWebFrame::ScrollBarLayer | QWebFrame::PanIconLayer), clip);

&gt; Maybe change the signature to use QFlags and avoid the ugly cast?

In my previous comment I meant to use QFlags wherever RenderLayer is used and can be potentially orred including the interface methods QFrame::render.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373670</commentid>
    <comment_count>8</comment_count>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-03-25 12:30:12 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I just had an idea for testing this, you tell me if that works :)
&gt; 1) have a white page containing a big iframe without border but with scrollbar
&gt; 2) render the top left corner (let say (0, 0, 100x100), it should only contain white since there is no content inside the iframe
&gt; 3) resize the iframe programmatically so the scrollbars enter the top left corner
&gt; 4) change the background color of the mainframe to green
&gt; 4) re-render the top left rect. Check if all pixels are still white
&gt; Without your patch, the scrollbar of iframe will be in the way, over a white background.
&gt; With your patch, we should get only the white background.

I assume that you want me to do the second render call on the IFRAME before passing through the message loop after the code that changed the size was run so that backing store refresh and layout do not have a chance to happen.
In this case I think that the scrollbars will show in the rendered area (if at all) only if they existed before the size change, as in the absence of layout there is noone to create them, so the patch would make a difference only if scrollbars did not exist before the resize.
I do not see why an IFRAME would be useful, furthermore I see it problematic, because the IFRAMEs may not get backingStores, thus the patch would not make a difference. If the IFRAME get&apos;s a backing store, the image would be ugly with and without my patch as the backing store of the parent would not be repainted, thus the scrollbars would show both with and without my patch in the middle of previous IFRAME content.

The test case I would imagine is a webpage with a Q(Graphics)WebView sized to 100x100 pix showing a webPage with white background containing a single empty div with: width 50; height 50; background-color: green. Resize this div to 150x150 pix and call Q(Graphics)WebView::paint right away. The same picture as before the resize should show (no scroll bars and white in the bottom and right halves), stay in the event loop a few seconds, call Q(Graphics)WebWebView::paint again, and the image should show the scrollbars and green all over. Before the patch in the first call scrollbars would show with white in the bottom and right areas which is an invalid state, the second call would be the same in both cases.

Does this test look goog to you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374556</commentid>
    <comment_count>9</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-03-28 09:51:11 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; Maybe change the signature to use QFlags and avoid the ugly cast?
&gt; 
&gt; I would gladly do that, but I would like to do that on renderRelativeCoords as well in this case. Shouldn&apos;t I?

Yep, sounds reasonable.

&gt; What do you think about renderFrameExtras / renderFrameVisuals ?

Yep, I like both, I let you pick the best one.

&gt; &gt; &gt; Source/WebKit/qt/Api/qwebframe.cpp:394
&gt; &gt; &gt; +    if (!layer &amp; (QWebFrame::PanIconLayer | QWebFrame::ScrollBarLayer))
&gt; &gt; &gt; +        return;
&gt; &gt; This could be an assertion instead of a runtime check.
&gt; 
&gt; This is a runtime check copied from renderRelativeCoords. It cannot simply be turned into an ASSERT as renderRelativeCoords can cause false assertions. 

Yep, I was obviously thinking about changing also the way it is called, like masking the layers.


&gt; I moved it here since I considered that the robustness added by it overweighs its low cost. I figured that most callers would have to do the test anyway so I save some memory by putting it here, rather then to do the check before every call. If you want I can totally remove the check in which case I uselessly walk through the rects of the region painting nothing if the function is called with neither of the interesting layers specified, or I can move the test to renderRelativeCoords and put an ASSERT in the function.

I was not talking about performance but code robustness. Your call on that, I don&apos;t mind the if() if you think it is more robust..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376661</commentid>
    <comment_count>10</comment_count>
      <attachid>87612</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-03-30 14:12:33 -0700</bug_when>
    <thetext>Created attachment 87612
Proposed Patch. With Test. Addressed benjamin&apos;s concerns.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376664</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-30 14:14:38 -0700</bug_when>
    <thetext>Attachment 87612 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/qt/Api/qwebframe.cpp&apos;, u&apos;Sou...&quot; exit_code: 1

Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp:221:  Missing spaces around /  [whitespace/operators] [3]
Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp:223:  Missing spaces around /  [whitespace/operators] [3]
Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp:226:  Missing spaces around /  [whitespace/operators] [3]
Total errors found: 3 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376675</commentid>
    <comment_count>12</comment_count>
      <attachid>87616</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-03-30 14:31:41 -0700</bug_when>
    <thetext>Created attachment 87616
Proposed Patch. Fixed style issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377067</commentid>
    <comment_count>13</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-03-31 04:53:36 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Created an attachment (id=87616) [details]
&gt; Proposed Patch. Fixed style issues

Have you tried WebKit-patch to upload your patches? It runs the style checker automatically. It is a neat tool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377149</commentid>
    <comment_count>14</comment_count>
      <attachid>87616</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-03-31 07:47:42 -0700</bug_when>
    <thetext>Comment on attachment 87616
Proposed Patch. Fixed style issues

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

&gt; Source/WebKit/qt/tests/qgraphicswebview/resources/56929.html:7
&gt; +//  resizeDiv();

??

&gt; Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp:25
&gt; +#if defined(ENABLE_TILED_BACKING_STORE) &amp;&amp; ENABLE_TILED_BACKING_STORE

You can remove the #ifdefine here. This will still build without ENABLE_TILED_BACKING_STORE so we can avoid adding complexity here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377156</commentid>
    <comment_count>15</comment_count>
      <attachid>87616</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-03-31 07:57:50 -0700</bug_when>
    <thetext>Comment on attachment 87616
Proposed Patch. Fixed style issues

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

I like that you made the test.

&gt; Source/WebKit/qt/Api/qwebframe.cpp:393
&gt; +    if (!layers &amp; (QWebFrame::PanIconLayer | QWebFrame::ScrollBarLayer))

I am pretty sure ! has precedence over &amp;.

If not, parenthesis would just make thing clearer and avoided me from saying false statement on bugs :)

&gt; Source/WebKit/qt/Api/qwebframe_p.h:107
&gt; +    void renderFrameExtras(WebCore::GraphicsContext*, QFlags&lt;QWebFrame::RenderLayer&gt;, QRegion clip);

const QRegion&amp; by convention

&gt;&gt; Source/WebKit/qt/tests/qgraphicswebview/resources/56929.html:7
&gt;&gt; +//  resizeDiv();
&gt; 
&gt; ??

??

&gt;&gt; Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp:25
&gt;&gt; +#if defined(ENABLE_TILED_BACKING_STORE) &amp;&amp; ENABLE_TILED_BACKING_STORE
&gt; 
&gt; You can remove the #ifdefine here. This will still build without ENABLE_TILED_BACKING_STORE so we can avoid adding complexity here.

You can remove the #ifdefine here. This will still build without ENABLE_TILED_BACKING_STORE so we can avoid adding complexity here.

&gt; Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp:205
&gt; +    QGraphicsView view(new QGraphicsScene(QRectF(0.0, 0.0, 100.0, 100.0)));

Aren&apos;t you leaking the QGraphicsScene? I don&apos;t think the scene is reparented to the view since you can have multiple views for a single scene.

&gt; Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp:208
&gt; +    webView.setGeometry(view.sceneRect());

This looks strange, isn&apos;t the sceneRect() depending on what is in the scene() (so webView in this case)?

&gt; Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp:217
&gt; +    // This will not paint anything as the tiles are not ready

&lt;Kenneth&gt;. at the end&lt;/Kenneth&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377231</commentid>
    <comment_count>16</comment_count>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-03-31 09:24:31 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; &gt; +    if (!layers &amp; (QWebFrame::PanIconLayer | QWebFrame::ScrollBarLayer))
&gt; I am pretty sure ! has precedence over &amp;.

Sorry, I was mostly just copying code here and I missed the issue.

&gt; &gt;&gt; Source/WebKit/qt/tests/qgraphicswebview/resources/56929.html:7
&gt; &gt;&gt; +//  resizeDiv();
This was here for easy debugging, I&apos;ll take it out, this is also why I put the page as a resource, so that it can be easily loaded in a browser to see what I am after.

&gt; &gt;&gt; Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp:25
&gt; &gt;&gt; +#if defined(ENABLE_TILED_BACKING_STORE) &amp;&amp; ENABLE_TILED_BACKING_STORE
&gt; &gt; 
&gt; &gt; You can remove the #ifdefine here. This will still build without ENABLE_TILED_BACKING_STORE so we can avoid adding complexity here.

Yes, it will build without TILED_BACKING_STORE enabled, but it will fail at runtime, because the assertions do not hold if TILED_BACKING_STORE is not enabled. Regular rendering requires layout in paint, which will show the scrollbars and an inconsistent image (remember bug 49184, still did not get around to it, and probably I never will as I am getting ready to leave the WebKit arena).

&gt; &gt; Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp:205
&gt; &gt; +    QGraphicsView view(new QGraphicsScene(QRectF(0.0, 0.0, 100.0, 100.0)));
&gt; Aren&apos;t you leaking the QGraphicsScene? I don&apos;t think the scene is reparented to the view since you can have multiple views for a single scene.
Yes, I am. Originally I constructed the scene passing view as its parent, but that caused a crash since the view was not yet initialized. I later removed the parent and have not accounted for that.

&gt; &gt; Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp:208
&gt; &gt; +    webView.setGeometry(view.sceneRect());
&gt; 
&gt; This looks strange, isn&apos;t the sceneRect() depending on what is in the scene() (so webView in this case)?
Actually not according to the 4.7 doc. What you are describing only applies if the said rect has not been explicitly set which I did in this case. (http://doc.qt.nokia.com/latest/qgraphicsscene.html#sceneRect-prop).

&gt; &gt; Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp:217
&gt; &gt; +    // This will not paint anything as the tiles are not ready
&gt; 
&gt; &lt;Kenneth&gt;. at the end&lt;/Kenneth&gt;
I like this it shows a really careful review (send my best to Kenneth, but this kind of review item is Darin Adler&apos;s trademark, I believe ;-)).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377403</commentid>
    <comment_count>17</comment_count>
      <attachid>87780</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-03-31 13:29:43 -0700</bug_when>
    <thetext>Created attachment 87780
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377719</commentid>
    <comment_count>18</comment_count>
      <attachid>87780</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-04-01 05:06:59 -0700</bug_when>
    <thetext>Comment on attachment 87780
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377758</commentid>
    <comment_count>19</comment_count>
      <attachid>87780</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-01 06:38:53 -0700</bug_when>
    <thetext>Comment on attachment 87780
Patch

Clearing flags on attachment: 87780

Committed r82676: &lt;http://trac.webkit.org/changeset/82676&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377759</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-01 06:38:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86634</attachid>
            <date>2011-03-23 09:53:59 -0700</date>
            <delta_ts>2011-03-30 14:12:33 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>patchForW56929.patch</filename>
            <type>text/plain</type>
            <size>1412</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCmluZGV4IGI0ZGFhYTQuLjdiNTdkMTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcApAQCAtMzU0LDkgKzM1NCw5IEBAIHZvaWQgUVdlYkZy
YW1lUHJpdmF0ZTo6cmVuZGVyUmVsYXRpdmVDb29yZHMoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBRV2ViRnJhbWU6CiAgICAgUVBhaW50ZXIqIHBhaW50ZXIgPSBjb250ZXh0LT5wbGF0Zm9ybUNv
bnRleHQoKTsKIAogICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldyA9IGZyYW1lLT52aWV3KCk7
Ci0gICAgdmlldy0+dXBkYXRlTGF5b3V0QW5kU3R5bGVJZk5lZWRlZFJlY3Vyc2l2ZSgpOwogCiAg
ICAgaWYgKGxheWVyICYgUVdlYkZyYW1lOjpDb250ZW50c0xheWVyKSB7CisgICAgICAgIHZpZXct
PnVwZGF0ZUxheW91dEFuZFN0eWxlSWZOZWVkZWRSZWN1cnNpdmUoKTsKICAgICAgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCB2ZWN0b3Iuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIGNvbnN0IFFS
ZWN0JiBjbGlwUmVjdCA9IHZlY3Rvci5hdChpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBjMjY3NGM0
Li4xMTUzZmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTAzLTIzICBD
YXJvbCBTemFibyAgPGNhcm9sLnN6YWJvQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHdWFyZGVkIHN5bmNocm9ub3VzIGxheW91dCBi
eSB0aGUgbmVlZCB0byBwYWludCBjb250ZW50IGluCisgICAgICAgIFFXZWJGcmFtZVByaXZhdGU6
OnJlbmRlclJlbGF0aXZlQ29vcmRzLgorCisgICAgICAgIFRpbGVkIHBhaW50aW5nIHN0aWxsIGNh
dXNlcyBzeW5jaHJvbm91cyBsYXlvdXQgd2hlbiBhY2NlbGVyYXRlZAorICAgICAgICBjb21wb3Np
dGluZyBhbmQgdGV4dHVyZSBtYXBwZXIgYXJlIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2OTI5CisKKyAgICAgICAgKiBBcGkvcXdlYmZy
YW1lLmNwcDoKKyAgICAgICAgKFFXZWJGcmFtZVByaXZhdGU6OnJlbmRlclJlbGF0aXZlQ29vcmRz
KToKKwogMjAxMS0wMy0yMiAgQW5kcmV3IFdhc29uICA8cmVjdGFsb2dpY0ByZWN0YWxvZ2ljLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBCZW5qYW1pbiBQb3VsYWluLgo=
</data>
<flag name="review"
          id="78937"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86696</attachid>
            <date>2011-03-23 14:58:13 -0700</date>
            <delta_ts>2011-03-30 14:12:33 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patchForW56929-2.patch</filename>
            <type>text/plain</type>
            <size>4809</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCmluZGV4IGI0ZGFhYTQuLmE2NmQ4ZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcApAQCAtMzEzLDcgKzMxMyw3IEBAIHZvaWQgUVdlYkZy
YW1lUHJpdmF0ZTo6cmVuZGVyRnJvbVRpbGVkQmFja2luZ1N0b3JlKEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShU
RVhUVVJFX01BUFBFUikKICAgICByZW5kZXJDb21wb3NpdGVkTGF5ZXJzKGNvbnRleHQsIEludFJl
Y3QoY2xpcC5ib3VuZGluZ1JlY3QoKSkpOwotICAgIHJlbmRlclJlbGF0aXZlQ29vcmRzKGNvbnRl
eHQsIChRV2ViRnJhbWU6OlJlbmRlckxheWVyKShRV2ViRnJhbWU6OlNjcm9sbEJhckxheWVyIHwg
UVdlYkZyYW1lOjpQYW5JY29uTGF5ZXIpLCBjbGlwKTsKKyAgICByZW5kZXJGcmFtZVdpZGdldHMo
Y29udGV4dCwgKFFXZWJGcmFtZTo6UmVuZGVyTGF5ZXIpKFFXZWJGcmFtZTo6U2Nyb2xsQmFyTGF5
ZXIgfCBRV2ViRnJhbWU6OlBhbkljb25MYXllciksIGNsaXApOwogI2VuZGlmCiB9CiAjZW5kaWYK
QEAgLTM4NSwzNyArMzg1LDQ0IEBAIHZvaWQgUVdlYkZyYW1lUHJpdmF0ZTo6cmVuZGVyUmVsYXRp
dmVDb29yZHMoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBRV2ViRnJhbWU6CiAgICAgICAgIHJl
bmRlckNvbXBvc2l0ZWRMYXllcnMoY29udGV4dCwgSW50UmVjdChjbGlwLmJvdW5kaW5nUmVjdCgp
KSk7CiAjZW5kaWYKICAgICB9Ci0gICAgaWYgKGxheWVyICYgKFFXZWJGcmFtZTo6UGFuSWNvbkxh
eWVyIHwgUVdlYkZyYW1lOjpTY3JvbGxCYXJMYXllcikpIHsKLSAgICAgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCB2ZWN0b3Iuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgIGNvbnN0IFFSZWN0JiBj
bGlwUmVjdCA9IHZlY3Rvci5hdChpKTsKKyAgICByZW5kZXJGcmFtZVdpZGdldHMoY29udGV4dCwg
bGF5ZXIsIGNsaXApOworfQogCi0gICAgICAgICAgICBRUmVjdCBpbnRlcnNlY3RlZFJlY3QgPSBj
bGlwUmVjdC5pbnRlcnNlY3RlZCh2aWV3LT5mcmFtZVJlY3QoKSk7Cit2b2lkIFFXZWJGcmFtZVBy
aXZhdGU6OnJlbmRlckZyYW1lV2lkZ2V0cyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFFXZWJG
cmFtZTo6UmVuZGVyTGF5ZXIgbGF5ZXIsIFFSZWdpb24gY2xpcCkKK3sKKyAgICBpZiAoIWxheWVy
ICYgKFFXZWJGcmFtZTo6UGFuSWNvbkxheWVyIHwgUVdlYkZyYW1lOjpTY3JvbGxCYXJMYXllcikp
CisgICAgICAgIHJldHVybjsKKyAgICBRUGFpbnRlciogcGFpbnRlciA9IGNvbnRleHQtPnBsYXRm
b3JtQ29udGV4dCgpOworICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldyA9IGZyYW1lLT52aWV3
KCk7CisgICAgUVZlY3RvcjxRUmVjdD4gdmVjdG9yID0gY2xpcC5yZWN0cygpOworICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgdmVjdG9yLnNpemUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IFFSZWN0
JiBjbGlwUmVjdCA9IHZlY3Rvci5hdChpKTsKIAotICAgICAgICAgICAgcGFpbnRlci0+c2F2ZSgp
OwotICAgICAgICAgICAgcGFpbnRlci0+c2V0Q2xpcFJlY3QoY2xpcFJlY3QsIFF0OjpJbnRlcnNl
Y3RDbGlwKTsKKyAgICAgICAgUVJlY3QgaW50ZXJzZWN0ZWRSZWN0ID0gY2xpcFJlY3QuaW50ZXJz
ZWN0ZWQodmlldy0+ZnJhbWVSZWN0KCkpOwogCi0gICAgICAgICAgICBpbnQgeCA9IHZpZXctPngo
KTsKLSAgICAgICAgICAgIGludCB5ID0gdmlldy0+eSgpOworICAgICAgICBwYWludGVyLT5zYXZl
KCk7CisgICAgICAgIHBhaW50ZXItPnNldENsaXBSZWN0KGNsaXBSZWN0LCBRdDo6SW50ZXJzZWN0
Q2xpcCk7CiAKLSAgICAgICAgICAgIGlmIChsYXllciAmIFFXZWJGcmFtZTo6U2Nyb2xsQmFyTGF5
ZXIKLSAgICAgICAgICAgICAgICAmJiAhdmlldy0+c2Nyb2xsYmFyc1N1cHByZXNzZWQoKQotICAg
ICAgICAgICAgICAgICYmICh2aWV3LT5ob3Jpem9udGFsU2Nyb2xsYmFyKCkgfHwgdmlldy0+dmVy
dGljYWxTY3JvbGxiYXIoKSkpIHsKLSAgICAgICAgICAgICAgICBRUmVjdCByZWN0ID0gaW50ZXJz
ZWN0ZWRSZWN0OwotICAgICAgICAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0ZSh4LCB5KTsKLSAg
ICAgICAgICAgICAgICByZWN0LnRyYW5zbGF0ZSgteCwgLXkpOworICAgICAgICBpbnQgeCA9IHZp
ZXctPngoKTsKKyAgICAgICAgaW50IHkgPSB2aWV3LT55KCk7CiAKLSAgICAgICAgICAgICAgICB2
aWV3LT5wYWludFNjcm9sbGJhcnMoY29udGV4dCwgcmVjdCk7CisgICAgICAgIGlmIChsYXllciAm
IFFXZWJGcmFtZTo6U2Nyb2xsQmFyTGF5ZXIKKyAgICAgICAgICAgICYmICF2aWV3LT5zY3JvbGxi
YXJzU3VwcHJlc3NlZCgpCisgICAgICAgICAgICAmJiAodmlldy0+aG9yaXpvbnRhbFNjcm9sbGJh
cigpIHx8IHZpZXctPnZlcnRpY2FsU2Nyb2xsYmFyKCkpKSB7CiAKLSAgICAgICAgICAgICAgICBj
b250ZXh0LT50cmFuc2xhdGUoLXgsIC15KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFFS
ZWN0IHJlY3QgPSBpbnRlcnNlY3RlZFJlY3Q7CisgICAgICAgICAgICBjb250ZXh0LT50cmFuc2xh
dGUoeCwgeSk7CisgICAgICAgICAgICByZWN0LnRyYW5zbGF0ZSgteCwgLXkpOworICAgICAgICAg
ICAgdmlldy0+cGFpbnRTY3JvbGxiYXJzKGNvbnRleHQsIHJlY3QpOworICAgICAgICAgICAgY29u
dGV4dC0+dHJhbnNsYXRlKC14LCAteSk7CisgICAgICAgIH0KIAogI2lmIEVOQUJMRShQQU5fU0NS
T0xMSU5HKQotICAgICAgICAgICAgaWYgKGxheWVyICYgUVdlYkZyYW1lOjpQYW5JY29uTGF5ZXIp
Ci0gICAgICAgICAgICAgICAgdmlldy0+cGFpbnRQYW5TY3JvbGxJY29uKGNvbnRleHQpOworICAg
ICAgICBpZiAobGF5ZXIgJiBRV2ViRnJhbWU6OlBhbkljb25MYXllcikKKyAgICAgICAgICAgIHZp
ZXctPnBhaW50UGFuU2Nyb2xsSWNvbihjb250ZXh0KTsKICNlbmRpZgogCi0gICAgICAgICAgICBw
YWludGVyLT5yZXN0b3JlKCk7Ci0gICAgICAgIH0KKyAgICAgICAgcGFpbnRlci0+cmVzdG9yZSgp
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1l
X3AuaCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZV9wLmgKaW5kZXggZWU4YzQ2My4u
YjkyZWY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lX3AuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWVfcC5oCkBAIC0xMDIsOCArMTAyLDkg
QEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYm
IFVTRShURVhUVVJFX01BUFBFUikKLSAgICB2b2lkIHJlbmRlckNvbXBvc2l0ZWRMYXllcnMoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBj
bGlwKTsKKyAgICB2b2lkIHJlbmRlckNvbXBvc2l0ZWRMYXllcnMoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcCk7CiAjZW5kaWYKKyAgICB2b2lk
IHJlbmRlckZyYW1lV2lkZ2V0cyhXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBRV2ViRnJhbWU6
OlJlbmRlckxheWVyLCBRUmVnaW9uIGNsaXApOwogICAgIFFXZWJGcmFtZSAqcTsKICAgICBRdDo6
U2Nyb2xsQmFyUG9saWN5IGhvcml6b250YWxTY3JvbGxCYXJQb2xpY3k7CiAgICAgUXQ6OlNjcm9s
bEJhclBvbGljeSB2ZXJ0aWNhbFNjcm9sbEJhclBvbGljeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggYzI2
NzRjNC4uYjEyMDk0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0wMy0y
MyAgQ2Fyb2wgU3phYm8gIDxjYXJvbC5zemFib0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlZCBRV2ViRnJhbWVQcml2YXRl
OjpyZW5kZXJGcm9tVGlsZWRCYWNraW5nU3RvcmUgdG8gY2FsbCBkaXJlY3RseSBpbnRvCisgICAg
ICAgIFNjcm9sbGJhci9QYW5JY29uIHJlbmRlcmluZywgYnlwYXNzaW5nIHRoZSBwb3RlbnRpYWwg
cmVsYXlvdXQgaW4gcmVuZGVyUmVsYXRpdmVDb29yZHMuCisKKyAgICAgICAgVGlsZWQgcGFpbnRp
bmcgc3RpbGwgY2F1c2VzIHN5bmNocm9ub3VzIGxheW91dCB3aGVuCisgICAgICAgIGFjY2VsZXJh
dGVkIGNvbXBvc2l0aW5nIGFuZCB0ZXh0dXJlIG1hcHBlciBhcmUgZW5hYmxlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY5MjkKKworICAgICAgICAq
IEFwaS9xd2ViZnJhbWUuY3BwOgorICAgICAgICAoUVdlYkZyYW1lUHJpdmF0ZTo6cmVuZGVyRnJv
bVRpbGVkQmFja2luZ1N0b3JlKToKKyAgICAgICAgKFFXZWJGcmFtZVByaXZhdGU6OnJlbmRlclJl
bGF0aXZlQ29vcmRzKToKKyAgICAgICAgKFFXZWJGcmFtZVByaXZhdGU6OnJlbmRlckZyYW1lV2lk
Z2V0cyk6CisgICAgICAgICogQXBpL3F3ZWJmcmFtZV9wLmg6CisKIDIwMTEtMDMtMjIgIEFuZHJl
dyBXYXNvbiAgPHJlY3RhbG9naWNAcmVjdGFsb2dpYy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQmVuamFtaW4gUG91bGFpbi4K
</data>
<flag name="review"
          id="79010"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87612</attachid>
            <date>2011-03-30 14:12:33 -0700</date>
            <delta_ts>2011-03-30 14:31:41 -0700</delta_ts>
            <desc>Proposed Patch. With Test. Addressed benjamin&apos;s concerns.</desc>
            <filename>patchFor56929-3.patch</filename>
            <type>text/plain</type>
            <size>10092</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCmluZGV4IGU1MTI0YmQuLjlmMmI4YjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcApAQCAtMzEzLDcgKzMxMyw3IEBAIHZvaWQgUVdlYkZy
YW1lUHJpdmF0ZTo6cmVuZGVyRnJvbVRpbGVkQmFja2luZ1N0b3JlKEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShU
RVhUVVJFX01BUFBFUikKICAgICByZW5kZXJDb21wb3NpdGVkTGF5ZXJzKGNvbnRleHQsIEludFJl
Y3QoY2xpcC5ib3VuZGluZ1JlY3QoKSkpOwotICAgIHJlbmRlclJlbGF0aXZlQ29vcmRzKGNvbnRl
eHQsIChRV2ViRnJhbWU6OlJlbmRlckxheWVyKShRV2ViRnJhbWU6OlNjcm9sbEJhckxheWVyIHwg
UVdlYkZyYW1lOjpQYW5JY29uTGF5ZXIpLCBjbGlwKTsKKyAgICByZW5kZXJGcmFtZUV4dHJhcyhj
b250ZXh0LCBRRmxhZ3M8UVdlYkZyYW1lOjpSZW5kZXJMYXllcj4oUVdlYkZyYW1lOjpTY3JvbGxC
YXJMYXllcikgfCBRV2ViRnJhbWU6OlBhbkljb25MYXllciwgY2xpcCk7CiAjZW5kaWYKIH0KICNl
bmRpZgpAQCAtMzQyLDcgKzM0Miw3IEBAIHZvaWQgUVdlYkZyYW1lUHJpdmF0ZTo6cmVuZGVyQ29t
cG9zaXRlZExheWVycyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEluCiB9CiAjZW5k
aWYKIAotdm9pZCBRV2ViRnJhbWVQcml2YXRlOjpyZW5kZXJSZWxhdGl2ZUNvb3JkcyhHcmFwaGlj
c0NvbnRleHQqIGNvbnRleHQsIFFXZWJGcmFtZTo6UmVuZGVyTGF5ZXIgbGF5ZXIsIGNvbnN0IFFS
ZWdpb24mIGNsaXApCit2b2lkIFFXZWJGcmFtZVByaXZhdGU6OnJlbmRlclJlbGF0aXZlQ29vcmRz
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgUUZsYWdzPFFXZWJGcmFtZTo6UmVuZGVyTGF5ZXI+
IGxheWVycywgY29uc3QgUVJlZ2lvbiYgY2xpcCkKIHsKICAgICBpZiAoIWZyYW1lLT52aWV3KCkg
fHwgIWZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzU2LDcg
KzM1Niw3IEBAIHZvaWQgUVdlYkZyYW1lUHJpdmF0ZTo6cmVuZGVyUmVsYXRpdmVDb29yZHMoR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBRV2ViRnJhbWU6CiAgICAgV2ViQ29yZTo6RnJhbWVWaWV3
KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKICAgICB2aWV3LT51cGRhdGVMYXlvdXRBbmRTdHlsZUlm
TmVlZGVkUmVjdXJzaXZlKCk7CiAKLSAgICBpZiAobGF5ZXIgJiBRV2ViRnJhbWU6OkNvbnRlbnRz
TGF5ZXIpIHsKKyAgICBpZiAobGF5ZXJzICYgUVdlYkZyYW1lOjpDb250ZW50c0xheWVyKSB7CiAg
ICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmVjdG9yLnNpemUoKTsgKytpKSB7CiAgICAgICAg
ICAgICBjb25zdCBRUmVjdCYgY2xpcFJlY3QgPSB2ZWN0b3IuYXQoaSk7CiAKQEAgLTM4NSwzNyAr
Mzg1LDQ0IEBAIHZvaWQgUVdlYkZyYW1lUHJpdmF0ZTo6cmVuZGVyUmVsYXRpdmVDb29yZHMoR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBRV2ViRnJhbWU6CiAgICAgICAgIHJlbmRlckNvbXBvc2l0
ZWRMYXllcnMoY29udGV4dCwgSW50UmVjdChjbGlwLmJvdW5kaW5nUmVjdCgpKSk7CiAjZW5kaWYK
ICAgICB9Ci0gICAgaWYgKGxheWVyICYgKFFXZWJGcmFtZTo6UGFuSWNvbkxheWVyIHwgUVdlYkZy
YW1lOjpTY3JvbGxCYXJMYXllcikpIHsKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2ZWN0
b3Iuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgIGNvbnN0IFFSZWN0JiBjbGlwUmVjdCA9IHZl
Y3Rvci5hdChpKTsKKyAgICByZW5kZXJGcmFtZUV4dHJhcyhjb250ZXh0LCBsYXllcnMsIGNsaXAp
OworfQogCi0gICAgICAgICAgICBRUmVjdCBpbnRlcnNlY3RlZFJlY3QgPSBjbGlwUmVjdC5pbnRl
cnNlY3RlZCh2aWV3LT5mcmFtZVJlY3QoKSk7Cit2b2lkIFFXZWJGcmFtZVByaXZhdGU6OnJlbmRl
ckZyYW1lRXh0cmFzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgUUZsYWdzPFFXZWJGcmFtZTo6
UmVuZGVyTGF5ZXI+IGxheWVycywgUVJlZ2lvbiBjbGlwKQoreworICAgIGlmICghbGF5ZXJzICYg
KFFXZWJGcmFtZTo6UGFuSWNvbkxheWVyIHwgUVdlYkZyYW1lOjpTY3JvbGxCYXJMYXllcikpCisg
ICAgICAgIHJldHVybjsKKyAgICBRUGFpbnRlciogcGFpbnRlciA9IGNvbnRleHQtPnBsYXRmb3Jt
Q29udGV4dCgpOworICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldyA9IGZyYW1lLT52aWV3KCk7
CisgICAgUVZlY3RvcjxRUmVjdD4gdmVjdG9yID0gY2xpcC5yZWN0cygpOworICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgdmVjdG9yLnNpemUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IFFSZWN0JiBj
bGlwUmVjdCA9IHZlY3Rvci5hdChpKTsKIAotICAgICAgICAgICAgcGFpbnRlci0+c2F2ZSgpOwot
ICAgICAgICAgICAgcGFpbnRlci0+c2V0Q2xpcFJlY3QoY2xpcFJlY3QsIFF0OjpJbnRlcnNlY3RD
bGlwKTsKKyAgICAgICAgUVJlY3QgaW50ZXJzZWN0ZWRSZWN0ID0gY2xpcFJlY3QuaW50ZXJzZWN0
ZWQodmlldy0+ZnJhbWVSZWN0KCkpOwogCi0gICAgICAgICAgICBpbnQgeCA9IHZpZXctPngoKTsK
LSAgICAgICAgICAgIGludCB5ID0gdmlldy0+eSgpOworICAgICAgICBwYWludGVyLT5zYXZlKCk7
CisgICAgICAgIHBhaW50ZXItPnNldENsaXBSZWN0KGNsaXBSZWN0LCBRdDo6SW50ZXJzZWN0Q2xp
cCk7CiAKLSAgICAgICAgICAgIGlmIChsYXllciAmIFFXZWJGcmFtZTo6U2Nyb2xsQmFyTGF5ZXIK
LSAgICAgICAgICAgICAgICAmJiAhdmlldy0+c2Nyb2xsYmFyc1N1cHByZXNzZWQoKQotICAgICAg
ICAgICAgICAgICYmICh2aWV3LT5ob3Jpem9udGFsU2Nyb2xsYmFyKCkgfHwgdmlldy0+dmVydGlj
YWxTY3JvbGxiYXIoKSkpIHsKLSAgICAgICAgICAgICAgICBRUmVjdCByZWN0ID0gaW50ZXJzZWN0
ZWRSZWN0OwotICAgICAgICAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0ZSh4LCB5KTsKLSAgICAg
ICAgICAgICAgICByZWN0LnRyYW5zbGF0ZSgteCwgLXkpOworICAgICAgICBpbnQgeCA9IHZpZXct
PngoKTsKKyAgICAgICAgaW50IHkgPSB2aWV3LT55KCk7CiAKLSAgICAgICAgICAgICAgICB2aWV3
LT5wYWludFNjcm9sbGJhcnMoY29udGV4dCwgcmVjdCk7CisgICAgICAgIGlmIChsYXllcnMgJiBR
V2ViRnJhbWU6OlNjcm9sbEJhckxheWVyCisgICAgICAgICAgICAmJiAhdmlldy0+c2Nyb2xsYmFy
c1N1cHByZXNzZWQoKQorICAgICAgICAgICAgJiYgKHZpZXctPmhvcml6b250YWxTY3JvbGxiYXIo
KSB8fCB2aWV3LT52ZXJ0aWNhbFNjcm9sbGJhcigpKSkgewogCi0gICAgICAgICAgICAgICAgY29u
dGV4dC0+dHJhbnNsYXRlKC14LCAteSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBRUmVj
dCByZWN0ID0gaW50ZXJzZWN0ZWRSZWN0OworICAgICAgICAgICAgY29udGV4dC0+dHJhbnNsYXRl
KHgsIHkpOworICAgICAgICAgICAgcmVjdC50cmFuc2xhdGUoLXgsIC15KTsKKyAgICAgICAgICAg
IHZpZXctPnBhaW50U2Nyb2xsYmFycyhjb250ZXh0LCByZWN0KTsKKyAgICAgICAgICAgIGNvbnRl
eHQtPnRyYW5zbGF0ZSgteCwgLXkpOworICAgICAgICB9CiAKICNpZiBFTkFCTEUoUEFOX1NDUk9M
TElORykKLSAgICAgICAgICAgIGlmIChsYXllciAmIFFXZWJGcmFtZTo6UGFuSWNvbkxheWVyKQot
ICAgICAgICAgICAgICAgIHZpZXctPnBhaW50UGFuU2Nyb2xsSWNvbihjb250ZXh0KTsKKyAgICAg
ICAgaWYgKGxheWVycyAmIFFXZWJGcmFtZTo6UGFuSWNvbkxheWVyKQorICAgICAgICAgICAgdmll
dy0+cGFpbnRQYW5TY3JvbGxJY29uKGNvbnRleHQpOwogI2VuZGlmCiAKLSAgICAgICAgICAgIHBh
aW50ZXItPnJlc3RvcmUoKTsKLSAgICAgICAgfQorICAgICAgICBwYWludGVyLT5yZXN0b3JlKCk7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWVf
cC5oIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lX3AuaAppbmRleCBlZThjNDYzLi5l
NTQ3MzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWVfcC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZV9wLmgKQEAgLTk2LDE0ICs5NiwxNSBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIFdlYkNvcmU6OkZyYW1lKiBjb3JlKGNvbnN0IFFXZWJGcmFt
ZSopOwogICAgIHN0YXRpYyBRV2ViRnJhbWUqIGtpdChjb25zdCBXZWJDb3JlOjpGcmFtZSopOwog
Ci0gICAgdm9pZCByZW5kZXJSZWxhdGl2ZUNvb3JkcyhXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQq
LCBRV2ViRnJhbWU6OlJlbmRlckxheWVyLCBjb25zdCBRUmVnaW9uJiBjbGlwKTsKKyAgICB2b2lk
IHJlbmRlclJlbGF0aXZlQ29vcmRzKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCosIFFGbGFnczxR
V2ViRnJhbWU6OlJlbmRlckxheWVyPiwgY29uc3QgUVJlZ2lvbiYgY2xpcCk7CiAjaWYgRU5BQkxF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdm9pZCByZW5kZXJGcm9tVGlsZWRCYWNraW5nU3Rv
cmUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgUVJlZ2lvbiYgY2xpcCk7CiAjZW5k
aWYKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQ
UEVSKQotICAgIHZvaWQgcmVuZGVyQ29tcG9zaXRlZExheWVycyhXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXApOworICAgIHZvaWQg
cmVuZGVyQ29tcG9zaXRlZExheWVycyhXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBjbGlwKTsKICNlbmRpZgorICAgIHZvaWQgcmVuZGVyRnJhbWVFeHRy
YXMoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0KiwgUUZsYWdzPFFXZWJGcmFtZTo6UmVuZGVyTGF5
ZXI+LCBRUmVnaW9uIGNsaXApOwogICAgIFFXZWJGcmFtZSAqcTsKICAgICBRdDo6U2Nyb2xsQmFy
UG9saWN5IGhvcml6b250YWxTY3JvbGxCYXJQb2xpY3k7CiAgICAgUXQ6OlNjcm9sbEJhclBvbGlj
eSB2ZXJ0aWNhbFNjcm9sbEJhclBvbGljeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMzA0YTZjOS4uMTEz
OTliMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0wMy0zMCAgQ2Fyb2wg
U3phYm8gIDxjYXJvbC5zemFib0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlZCBRV2ViRnJhbWVQcml2YXRlOjpyZW5kZXJG
cm9tVGlsZWRCYWNraW5nU3RvcmUgdG8gY2FsbCBkaXJlY3RseSBpbnRvCisgICAgICAgIFNjcm9s
bGJhci9QYW5JY29uIHJlbmRlcmluZywgYnlwYXNzaW5nIHRoZSBwb3RlbnRpYWwgcmVsYXlvdXQg
aW4gcmVuZGVyUmVsYXRpdmVDb29yZHMuCisKKyAgICAgICAgVGlsZWQgcGFpbnRpbmcgc3RpbGwg
Y2F1c2VzIHN5bmNocm9ub3VzIGxheW91dCB3aGVuCisgICAgICAgIGFjY2VsZXJhdGVkIGNvbXBv
c2l0aW5nIGFuZCB0ZXh0dXJlIG1hcHBlciBhcmUgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY5MjkKKworICAgICAgICAqIEFwaS9xd2Vi
ZnJhbWUuY3BwOgorICAgICAgICAoUVdlYkZyYW1lUHJpdmF0ZTo6cmVuZGVyRnJvbVRpbGVkQmFj
a2luZ1N0b3JlKToKKyAgICAgICAgKFFXZWJGcmFtZVByaXZhdGU6OnJlbmRlclJlbGF0aXZlQ29v
cmRzKToKKyAgICAgICAgKFFXZWJGcmFtZVByaXZhdGU6OnJlbmRlckZyYW1lV2lkZ2V0cyk6Cisg
ICAgICAgICogQXBpL3F3ZWJmcmFtZV9wLmg6CisKIDIwMTEtMDMtMjkgIEFsZXhpcyBNZW5hcmQg
IDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWls
ZCBmaXggZm9yIGJ1aWxkLXdlYmtpdCAtbWluaW1hbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvdGVzdHMvcWdyYXBoaWNzd2Vidmlldy9yZXNvdXJjZXMvNTY5MjkuaHRtbCBiL1NvdXJj
ZS9XZWJLaXQvcXQvdGVzdHMvcWdyYXBoaWNzd2Vidmlldy9yZXNvdXJjZXMvNTY5MjkuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDFkY2U3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3L3Jlc291cmNlcy81
NjkyOS5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGJvZHkgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6
IHdoaXRlIj4KKyA8ZGl2IGlkPSIxIiBzdHlsZT0id2lkdGg6IDUwJTsgaGVpZ2h0OiA1MCU7IGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuIi8+CisgPHNjcmlwdD4KKyAgZnVuY3Rpb24gcmVzaXplRGl2
KCkgeworICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIjEiKS5zZXRBdHRyaWJ1dGUoInN0
eWxlIiwgIndpZHRoOiAxNTAlOyBoZWlnaHQ6IDE1MCU7IGJhY2tncm91bmQtY29sb3I6IGdyZWVu
Iik7CisgIH0KKy8vICByZXNpemVEaXYoKTsKKyA8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWdyYXBoaWNzd2Vidmlldy90c3RfcWdyYXBoaWNz
d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0
X3FncmFwaGljc3dlYnZpZXcuY3BwCmluZGV4IDdjYzg4ZGIuLjFhYWU2MjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWdyYXBoaWNzd2Vidmlldy90c3RfcWdyYXBoaWNzd2Vi
dmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3L3Rz
dF9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcApAQCAtMjIsNiArMjIsOSBAQAogI2luY2x1ZGUgPFFHcmFw
aGljc1NjZW5lTW91c2VFdmVudD4KICNpbmNsdWRlIDxRR3JhcGhpY3NWaWV3PgogI2luY2x1ZGUg
PHFncmFwaGljc3dlYnZpZXcuaD4KKyNpZiBkZWZpbmVkKEVOQUJMRV9USUxFRF9CQUNLSU5HX1NU
T1JFKSAmJiBFTkFCTEVfVElMRURfQkFDS0lOR19TVE9SRQorI2luY2x1ZGUgPFFTdHlsZU9wdGlv
bkdyYXBoaWNzSXRlbT4KKyNlbmRpZgogI2luY2x1ZGUgPHF3ZWJwYWdlLmg+CiAjaW5jbHVkZSA8
cXdlYmZyYW1lLmg+CiAKQEAgLTQzLDcgKzQ2LDkgQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lk
IHNldFBhbGV0dGVfZGF0YSgpOwogICAgIHZvaWQgc2V0UGFsZXR0ZSgpOwogICAgIHZvaWQgcmVu
ZGVySGludHMoKTsKLQorI2lmIGRlZmluZWQoRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkUpICYm
IEVOQUJMRV9USUxFRF9CQUNLSU5HX1NUT1JFCisgICAgdm9pZCBidWc1NjkyOSgpOworI2VuZGlm
CiAjaWYgZGVmaW5lZChFTkFCTEVfV0VCR0wpICYmIEVOQUJMRV9XRUJHTAogICAgIHZvaWQgd2Vi
Z2xTb2Z0d2FyZUZhbGxiYWNrVmVydGljYWxPcmllbnRhdGlvbigpOwogICAgIHZvaWQgd2ViZ2xT
b2Z0d2FyZUZhbGxiYWNrSG9yaXpvbnRhbE9yaWVudGF0aW9uKCk7CkBAIC0xOTEsNiArMTk2LDM3
IEBAIHZvaWQgdHN0X1FHcmFwaGljc1dlYlZpZXc6OndpZGdldHNSZW5kZXJpbmdUaHJvdWdoQ2Fj
aGUoKQogICAgIFFDT01QQVJFKHJlZmVyZW5jZVBpeG1hcC50b0ltYWdlKCksIHZpZXdXaXRoVGls
aW5nLnRvSW1hZ2UoKSk7CiB9CiAKKyNpZiBkZWZpbmVkKEVOQUJMRV9USUxFRF9CQUNLSU5HX1NU
T1JFKSAmJiBFTkFCTEVfVElMRURfQkFDS0lOR19TVE9SRQordm9pZCB0c3RfUUdyYXBoaWNzV2Vi
Vmlldzo6YnVnNTY5MjkoKQoreworICAgIC8vIFdoZW4gcmVuZGVyaW5nIGZyb20gdGlsZXMgc3lj
aHJvbm91cyBsYXlvdXQgc2hvdWxkIG5vdCBiZSB0cmlnZ2VyZWQKKyAgICAvLyBhbmQgc2Nyb2xs
YmFycyBzaG91bGQgYmUgaW4gc3luYyB3aXRoIHRoZSBzaXplIG9mIHRoZSBkb2N1bWVudCBpbiB0
aGUgZGlzcGxheWVkIHN0YXRlLgorCisgICAgUUdyYXBoaWNzVmlldyB2aWV3KG5ldyBRR3JhcGhp
Y3NTY2VuZShRUmVjdEYoMC4wLCAwLjAsIDEwMC4wLCAxMDAuMCkpKTsKKyAgICBRR3JhcGhpY3NX
ZWJWaWV3IHdlYlZpZXc7CisgICAgdmlldy5zY2VuZSgpLT5hZGRJdGVtKCZ3ZWJWaWV3KTsKKyAg
ICB3ZWJWaWV3LnNldEdlb21ldHJ5KHZpZXcuc2NlbmVSZWN0KCkpOworICAgIHdlYlZpZXcuc2V0
dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6VGlsZWRCYWNraW5nU3RvcmVFbmFi
bGVkLCB0cnVlKTsKKyAgICBRVXJsIHVybCgicXJjOi8vL3Jlc291cmNlcy81NjkyOS5odG1sIik7
CisgICAgd2ViVmlldy5sb2FkKHVybCk7CisgICAgUVZFUklGWSh3YWl0Rm9yU2lnbmFsKCZ3ZWJW
aWV3LCBTSUdOQUwobG9hZEZpbmlzaGVkKGJvb2wpKSkpOworICAgIFFTdHlsZU9wdGlvbkdyYXBo
aWNzSXRlbSBvcHRpb247CisgICAgb3B0aW9uLmV4cG9zZWRSZWN0ID0gdmlldy5zY2VuZVJlY3Qo
KTsKKyAgICBRSW1hZ2UgaW1nKG9wdGlvbi5leHBvc2VkUmVjdC53aWR0aCgpLCBvcHRpb24uZXhw
b3NlZFJlY3QuaGVpZ2h0KCksIFFJbWFnZTo6Rm9ybWF0X0FSR0IzMl9QcmVtdWx0aXBsaWVkKTsK
KyAgICBRUGFpbnRlciBwYWludGVyKCZpbWcpOworICAgIC8vIFRoaXMgd2lsbCBub3QgcGFpbnQg
YW55dGhpbmcgYXMgdGhlIHRpbGVzIGFyZSBub3QgcmVhZHkKKyAgICB3ZWJWaWV3LnBhaW50KCZw
YWludGVyLCAmb3B0aW9uKTsKKyAgICBRQXBwbGljYXRpb246OnByb2Nlc3NFdmVudHMoKTsKKyAg
ICB3ZWJWaWV3LnBhaW50KCZwYWludGVyLCAmb3B0aW9uKTsKKyAgICBRQ09NUEFSRShpbWcucGl4
ZWwob3B0aW9uLmV4cG9zZWRSZWN0LndpZHRoKCktMiwgb3B0aW9uLmV4cG9zZWRSZWN0LmhlaWdo
dCgpLzIpLCBxUmdiYSgyNTUsIDI1NSwgMjU1LCAyNTUpKTsKKyAgICBwYWludGVyLmZpbGxSZWN0
KG9wdGlvbi5leHBvc2VkUmVjdCwgUXQ6OmJsYWNrKTsKKyAgICBRQ09NUEFSRShpbWcucGl4ZWwo
b3B0aW9uLmV4cG9zZWRSZWN0LndpZHRoKCktMiwgb3B0aW9uLmV4cG9zZWRSZWN0LmhlaWdodCgp
LzIpLCBxUmdiYSgwLCAwLCAwLCAyNTUpKTsKKyAgICB3ZWJWaWV3LnBhZ2UoKS0+bWFpbkZyYW1l
KCktPmV2YWx1YXRlSmF2YVNjcmlwdChRU3RyaW5nKCJyZXNpemVEaXYoKTsiKSk7CisgICAgd2Vi
Vmlldy5wYWludCgmcGFpbnRlciwgJm9wdGlvbik7CisgICAgUUNPTVBBUkUoaW1nLnBpeGVsKG9w
dGlvbi5leHBvc2VkUmVjdC53aWR0aCgpLTIsIG9wdGlvbi5leHBvc2VkUmVjdC5oZWlnaHQoKS8y
KSwgcVJnYmEoMjU1LCAyNTUsIDI1NSwgMjU1KSk7Cit9CisjZW5kaWYKKwogdm9pZCB0c3RfUUdy
YXBoaWNzV2ViVmlldzo6bWljcm9Gb2N1c0Nvb3JkaW5hdGVzKCkKIHsKICAgICBRV2ViUGFnZSog
cGFnZSA9IG5ldyBRV2ViUGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMv
cWdyYXBoaWNzd2Vidmlldy90c3RfcWdyYXBoaWNzd2Vidmlldy5xcmMgYi9Tb3VyY2UvV2ViS2l0
L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0X3FncmFwaGljc3dlYnZpZXcucXJjCmluZGV4
IDE0ODhmY2YuLmY5MjlmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWdy
YXBoaWNzd2Vidmlldy90c3RfcWdyYXBoaWNzd2Vidmlldy5xcmMKKysrIGIvU291cmNlL1dlYktp
dC9xdC90ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3L3RzdF9xZ3JhcGhpY3N3ZWJ2aWV3LnFyYwpAQCAt
Myw1ICszLDYgQEAKICAgICAgICAgPGZpbGU+cmVzb3VyY2VzL2lucHV0X3R5cGVzLmh0bWw8L2Zp
bGU+CiAgICAgICAgIDxmaWxlPnJlc291cmNlcy9wb2ludGluZ19yaWdodC5odG1sPC9maWxlPgog
ICAgICAgICA8ZmlsZT5yZXNvdXJjZXMvcG9pbnRpbmdfdXAuaHRtbDwvZmlsZT4KKyAgICAgICAg
PGZpbGU+cmVzb3VyY2VzLzU2OTI5Lmh0bWw8L2ZpbGU+CiAgICAgPC9xcmVzb3VyY2U+CiA8L1JD
Qz4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87616</attachid>
            <date>2011-03-30 14:31:41 -0700</date>
            <delta_ts>2011-03-31 13:29:40 -0700</delta_ts>
            <desc>Proposed Patch. Fixed style issues</desc>
            <filename>patchForW56929-4.patch</filename>
            <type>text/plain</type>
            <size>10104</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCmluZGV4IGU1MTI0YmQuLjlmMmI4YjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcApAQCAtMzEzLDcgKzMxMyw3IEBAIHZvaWQgUVdlYkZy
YW1lUHJpdmF0ZTo6cmVuZGVyRnJvbVRpbGVkQmFja2luZ1N0b3JlKEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uCiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShU
RVhUVVJFX01BUFBFUikKICAgICByZW5kZXJDb21wb3NpdGVkTGF5ZXJzKGNvbnRleHQsIEludFJl
Y3QoY2xpcC5ib3VuZGluZ1JlY3QoKSkpOwotICAgIHJlbmRlclJlbGF0aXZlQ29vcmRzKGNvbnRl
eHQsIChRV2ViRnJhbWU6OlJlbmRlckxheWVyKShRV2ViRnJhbWU6OlNjcm9sbEJhckxheWVyIHwg
UVdlYkZyYW1lOjpQYW5JY29uTGF5ZXIpLCBjbGlwKTsKKyAgICByZW5kZXJGcmFtZUV4dHJhcyhj
b250ZXh0LCBRRmxhZ3M8UVdlYkZyYW1lOjpSZW5kZXJMYXllcj4oUVdlYkZyYW1lOjpTY3JvbGxC
YXJMYXllcikgfCBRV2ViRnJhbWU6OlBhbkljb25MYXllciwgY2xpcCk7CiAjZW5kaWYKIH0KICNl
bmRpZgpAQCAtMzQyLDcgKzM0Miw3IEBAIHZvaWQgUVdlYkZyYW1lUHJpdmF0ZTo6cmVuZGVyQ29t
cG9zaXRlZExheWVycyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEluCiB9CiAjZW5k
aWYKIAotdm9pZCBRV2ViRnJhbWVQcml2YXRlOjpyZW5kZXJSZWxhdGl2ZUNvb3JkcyhHcmFwaGlj
c0NvbnRleHQqIGNvbnRleHQsIFFXZWJGcmFtZTo6UmVuZGVyTGF5ZXIgbGF5ZXIsIGNvbnN0IFFS
ZWdpb24mIGNsaXApCit2b2lkIFFXZWJGcmFtZVByaXZhdGU6OnJlbmRlclJlbGF0aXZlQ29vcmRz
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgUUZsYWdzPFFXZWJGcmFtZTo6UmVuZGVyTGF5ZXI+
IGxheWVycywgY29uc3QgUVJlZ2lvbiYgY2xpcCkKIHsKICAgICBpZiAoIWZyYW1lLT52aWV3KCkg
fHwgIWZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzU2LDcg
KzM1Niw3IEBAIHZvaWQgUVdlYkZyYW1lUHJpdmF0ZTo6cmVuZGVyUmVsYXRpdmVDb29yZHMoR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBRV2ViRnJhbWU6CiAgICAgV2ViQ29yZTo6RnJhbWVWaWV3
KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKICAgICB2aWV3LT51cGRhdGVMYXlvdXRBbmRTdHlsZUlm
TmVlZGVkUmVjdXJzaXZlKCk7CiAKLSAgICBpZiAobGF5ZXIgJiBRV2ViRnJhbWU6OkNvbnRlbnRz
TGF5ZXIpIHsKKyAgICBpZiAobGF5ZXJzICYgUVdlYkZyYW1lOjpDb250ZW50c0xheWVyKSB7CiAg
ICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmVjdG9yLnNpemUoKTsgKytpKSB7CiAgICAgICAg
ICAgICBjb25zdCBRUmVjdCYgY2xpcFJlY3QgPSB2ZWN0b3IuYXQoaSk7CiAKQEAgLTM4NSwzNyAr
Mzg1LDQ0IEBAIHZvaWQgUVdlYkZyYW1lUHJpdmF0ZTo6cmVuZGVyUmVsYXRpdmVDb29yZHMoR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBRV2ViRnJhbWU6CiAgICAgICAgIHJlbmRlckNvbXBvc2l0
ZWRMYXllcnMoY29udGV4dCwgSW50UmVjdChjbGlwLmJvdW5kaW5nUmVjdCgpKSk7CiAjZW5kaWYK
ICAgICB9Ci0gICAgaWYgKGxheWVyICYgKFFXZWJGcmFtZTo6UGFuSWNvbkxheWVyIHwgUVdlYkZy
YW1lOjpTY3JvbGxCYXJMYXllcikpIHsKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2ZWN0
b3Iuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgIGNvbnN0IFFSZWN0JiBjbGlwUmVjdCA9IHZl
Y3Rvci5hdChpKTsKKyAgICByZW5kZXJGcmFtZUV4dHJhcyhjb250ZXh0LCBsYXllcnMsIGNsaXAp
OworfQogCi0gICAgICAgICAgICBRUmVjdCBpbnRlcnNlY3RlZFJlY3QgPSBjbGlwUmVjdC5pbnRl
cnNlY3RlZCh2aWV3LT5mcmFtZVJlY3QoKSk7Cit2b2lkIFFXZWJGcmFtZVByaXZhdGU6OnJlbmRl
ckZyYW1lRXh0cmFzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgUUZsYWdzPFFXZWJGcmFtZTo6
UmVuZGVyTGF5ZXI+IGxheWVycywgUVJlZ2lvbiBjbGlwKQoreworICAgIGlmICghbGF5ZXJzICYg
KFFXZWJGcmFtZTo6UGFuSWNvbkxheWVyIHwgUVdlYkZyYW1lOjpTY3JvbGxCYXJMYXllcikpCisg
ICAgICAgIHJldHVybjsKKyAgICBRUGFpbnRlciogcGFpbnRlciA9IGNvbnRleHQtPnBsYXRmb3Jt
Q29udGV4dCgpOworICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldyA9IGZyYW1lLT52aWV3KCk7
CisgICAgUVZlY3RvcjxRUmVjdD4gdmVjdG9yID0gY2xpcC5yZWN0cygpOworICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgdmVjdG9yLnNpemUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IFFSZWN0JiBj
bGlwUmVjdCA9IHZlY3Rvci5hdChpKTsKIAotICAgICAgICAgICAgcGFpbnRlci0+c2F2ZSgpOwot
ICAgICAgICAgICAgcGFpbnRlci0+c2V0Q2xpcFJlY3QoY2xpcFJlY3QsIFF0OjpJbnRlcnNlY3RD
bGlwKTsKKyAgICAgICAgUVJlY3QgaW50ZXJzZWN0ZWRSZWN0ID0gY2xpcFJlY3QuaW50ZXJzZWN0
ZWQodmlldy0+ZnJhbWVSZWN0KCkpOwogCi0gICAgICAgICAgICBpbnQgeCA9IHZpZXctPngoKTsK
LSAgICAgICAgICAgIGludCB5ID0gdmlldy0+eSgpOworICAgICAgICBwYWludGVyLT5zYXZlKCk7
CisgICAgICAgIHBhaW50ZXItPnNldENsaXBSZWN0KGNsaXBSZWN0LCBRdDo6SW50ZXJzZWN0Q2xp
cCk7CiAKLSAgICAgICAgICAgIGlmIChsYXllciAmIFFXZWJGcmFtZTo6U2Nyb2xsQmFyTGF5ZXIK
LSAgICAgICAgICAgICAgICAmJiAhdmlldy0+c2Nyb2xsYmFyc1N1cHByZXNzZWQoKQotICAgICAg
ICAgICAgICAgICYmICh2aWV3LT5ob3Jpem9udGFsU2Nyb2xsYmFyKCkgfHwgdmlldy0+dmVydGlj
YWxTY3JvbGxiYXIoKSkpIHsKLSAgICAgICAgICAgICAgICBRUmVjdCByZWN0ID0gaW50ZXJzZWN0
ZWRSZWN0OwotICAgICAgICAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0ZSh4LCB5KTsKLSAgICAg
ICAgICAgICAgICByZWN0LnRyYW5zbGF0ZSgteCwgLXkpOworICAgICAgICBpbnQgeCA9IHZpZXct
PngoKTsKKyAgICAgICAgaW50IHkgPSB2aWV3LT55KCk7CiAKLSAgICAgICAgICAgICAgICB2aWV3
LT5wYWludFNjcm9sbGJhcnMoY29udGV4dCwgcmVjdCk7CisgICAgICAgIGlmIChsYXllcnMgJiBR
V2ViRnJhbWU6OlNjcm9sbEJhckxheWVyCisgICAgICAgICAgICAmJiAhdmlldy0+c2Nyb2xsYmFy
c1N1cHByZXNzZWQoKQorICAgICAgICAgICAgJiYgKHZpZXctPmhvcml6b250YWxTY3JvbGxiYXIo
KSB8fCB2aWV3LT52ZXJ0aWNhbFNjcm9sbGJhcigpKSkgewogCi0gICAgICAgICAgICAgICAgY29u
dGV4dC0+dHJhbnNsYXRlKC14LCAteSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBRUmVj
dCByZWN0ID0gaW50ZXJzZWN0ZWRSZWN0OworICAgICAgICAgICAgY29udGV4dC0+dHJhbnNsYXRl
KHgsIHkpOworICAgICAgICAgICAgcmVjdC50cmFuc2xhdGUoLXgsIC15KTsKKyAgICAgICAgICAg
IHZpZXctPnBhaW50U2Nyb2xsYmFycyhjb250ZXh0LCByZWN0KTsKKyAgICAgICAgICAgIGNvbnRl
eHQtPnRyYW5zbGF0ZSgteCwgLXkpOworICAgICAgICB9CiAKICNpZiBFTkFCTEUoUEFOX1NDUk9M
TElORykKLSAgICAgICAgICAgIGlmIChsYXllciAmIFFXZWJGcmFtZTo6UGFuSWNvbkxheWVyKQot
ICAgICAgICAgICAgICAgIHZpZXctPnBhaW50UGFuU2Nyb2xsSWNvbihjb250ZXh0KTsKKyAgICAg
ICAgaWYgKGxheWVycyAmIFFXZWJGcmFtZTo6UGFuSWNvbkxheWVyKQorICAgICAgICAgICAgdmll
dy0+cGFpbnRQYW5TY3JvbGxJY29uKGNvbnRleHQpOwogI2VuZGlmCiAKLSAgICAgICAgICAgIHBh
aW50ZXItPnJlc3RvcmUoKTsKLSAgICAgICAgfQorICAgICAgICBwYWludGVyLT5yZXN0b3JlKCk7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWVf
cC5oIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lX3AuaAppbmRleCBlZThjNDYzLi5l
NTQ3MzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWVfcC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZV9wLmgKQEAgLTk2LDE0ICs5NiwxNSBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIFdlYkNvcmU6OkZyYW1lKiBjb3JlKGNvbnN0IFFXZWJGcmFt
ZSopOwogICAgIHN0YXRpYyBRV2ViRnJhbWUqIGtpdChjb25zdCBXZWJDb3JlOjpGcmFtZSopOwog
Ci0gICAgdm9pZCByZW5kZXJSZWxhdGl2ZUNvb3JkcyhXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQq
LCBRV2ViRnJhbWU6OlJlbmRlckxheWVyLCBjb25zdCBRUmVnaW9uJiBjbGlwKTsKKyAgICB2b2lk
IHJlbmRlclJlbGF0aXZlQ29vcmRzKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCosIFFGbGFnczxR
V2ViRnJhbWU6OlJlbmRlckxheWVyPiwgY29uc3QgUVJlZ2lvbiYgY2xpcCk7CiAjaWYgRU5BQkxF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdm9pZCByZW5kZXJGcm9tVGlsZWRCYWNraW5nU3Rv
cmUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgUVJlZ2lvbiYgY2xpcCk7CiAjZW5k
aWYKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQ
UEVSKQotICAgIHZvaWQgcmVuZGVyQ29tcG9zaXRlZExheWVycyhXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXApOworICAgIHZvaWQg
cmVuZGVyQ29tcG9zaXRlZExheWVycyhXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBjbGlwKTsKICNlbmRpZgorICAgIHZvaWQgcmVuZGVyRnJhbWVFeHRy
YXMoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0KiwgUUZsYWdzPFFXZWJGcmFtZTo6UmVuZGVyTGF5
ZXI+LCBRUmVnaW9uIGNsaXApOwogICAgIFFXZWJGcmFtZSAqcTsKICAgICBRdDo6U2Nyb2xsQmFy
UG9saWN5IGhvcml6b250YWxTY3JvbGxCYXJQb2xpY3k7CiAgICAgUXQ6OlNjcm9sbEJhclBvbGlj
eSB2ZXJ0aWNhbFNjcm9sbEJhclBvbGljeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMzA0YTZjOS4uMTEz
OTliMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMS0wMy0zMCAgQ2Fyb2wg
U3phYm8gIDxjYXJvbC5zemFib0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlZCBRV2ViRnJhbWVQcml2YXRlOjpyZW5kZXJG
cm9tVGlsZWRCYWNraW5nU3RvcmUgdG8gY2FsbCBkaXJlY3RseSBpbnRvCisgICAgICAgIFNjcm9s
bGJhci9QYW5JY29uIHJlbmRlcmluZywgYnlwYXNzaW5nIHRoZSBwb3RlbnRpYWwgcmVsYXlvdXQg
aW4gcmVuZGVyUmVsYXRpdmVDb29yZHMuCisKKyAgICAgICAgVGlsZWQgcGFpbnRpbmcgc3RpbGwg
Y2F1c2VzIHN5bmNocm9ub3VzIGxheW91dCB3aGVuCisgICAgICAgIGFjY2VsZXJhdGVkIGNvbXBv
c2l0aW5nIGFuZCB0ZXh0dXJlIG1hcHBlciBhcmUgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY5MjkKKworICAgICAgICAqIEFwaS9xd2Vi
ZnJhbWUuY3BwOgorICAgICAgICAoUVdlYkZyYW1lUHJpdmF0ZTo6cmVuZGVyRnJvbVRpbGVkQmFj
a2luZ1N0b3JlKToKKyAgICAgICAgKFFXZWJGcmFtZVByaXZhdGU6OnJlbmRlclJlbGF0aXZlQ29v
cmRzKToKKyAgICAgICAgKFFXZWJGcmFtZVByaXZhdGU6OnJlbmRlckZyYW1lV2lkZ2V0cyk6Cisg
ICAgICAgICogQXBpL3F3ZWJmcmFtZV9wLmg6CisKIDIwMTEtMDMtMjkgIEFsZXhpcyBNZW5hcmQg
IDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWls
ZCBmaXggZm9yIGJ1aWxkLXdlYmtpdCAtbWluaW1hbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvdGVzdHMvcWdyYXBoaWNzd2Vidmlldy9yZXNvdXJjZXMvNTY5MjkuaHRtbCBiL1NvdXJj
ZS9XZWJLaXQvcXQvdGVzdHMvcWdyYXBoaWNzd2Vidmlldy9yZXNvdXJjZXMvNTY5MjkuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDFkY2U3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3L3Jlc291cmNlcy81
NjkyOS5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGJvZHkgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6
IHdoaXRlIj4KKyA8ZGl2IGlkPSIxIiBzdHlsZT0id2lkdGg6IDUwJTsgaGVpZ2h0OiA1MCU7IGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuIi8+CisgPHNjcmlwdD4KKyAgZnVuY3Rpb24gcmVzaXplRGl2
KCkgeworICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIjEiKS5zZXRBdHRyaWJ1dGUoInN0
eWxlIiwgIndpZHRoOiAxNTAlOyBoZWlnaHQ6IDE1MCU7IGJhY2tncm91bmQtY29sb3I6IGdyZWVu
Iik7CisgIH0KKy8vICByZXNpemVEaXYoKTsKKyA8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWdyYXBoaWNzd2Vidmlldy90c3RfcWdyYXBoaWNz
d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0
X3FncmFwaGljc3dlYnZpZXcuY3BwCmluZGV4IDdjYzg4ZGIuLjQwODI1YzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWdyYXBoaWNzd2Vidmlldy90c3RfcWdyYXBoaWNzd2Vi
dmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3L3Rz
dF9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcApAQCAtMjIsNiArMjIsOSBAQAogI2luY2x1ZGUgPFFHcmFw
aGljc1NjZW5lTW91c2VFdmVudD4KICNpbmNsdWRlIDxRR3JhcGhpY3NWaWV3PgogI2luY2x1ZGUg
PHFncmFwaGljc3dlYnZpZXcuaD4KKyNpZiBkZWZpbmVkKEVOQUJMRV9USUxFRF9CQUNLSU5HX1NU
T1JFKSAmJiBFTkFCTEVfVElMRURfQkFDS0lOR19TVE9SRQorI2luY2x1ZGUgPFFTdHlsZU9wdGlv
bkdyYXBoaWNzSXRlbT4KKyNlbmRpZgogI2luY2x1ZGUgPHF3ZWJwYWdlLmg+CiAjaW5jbHVkZSA8
cXdlYmZyYW1lLmg+CiAKQEAgLTQzLDcgKzQ2LDkgQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lk
IHNldFBhbGV0dGVfZGF0YSgpOwogICAgIHZvaWQgc2V0UGFsZXR0ZSgpOwogICAgIHZvaWQgcmVu
ZGVySGludHMoKTsKLQorI2lmIGRlZmluZWQoRU5BQkxFX1RJTEVEX0JBQ0tJTkdfU1RPUkUpICYm
IEVOQUJMRV9USUxFRF9CQUNLSU5HX1NUT1JFCisgICAgdm9pZCBidWc1NjkyOSgpOworI2VuZGlm
CiAjaWYgZGVmaW5lZChFTkFCTEVfV0VCR0wpICYmIEVOQUJMRV9XRUJHTAogICAgIHZvaWQgd2Vi
Z2xTb2Z0d2FyZUZhbGxiYWNrVmVydGljYWxPcmllbnRhdGlvbigpOwogICAgIHZvaWQgd2ViZ2xT
b2Z0d2FyZUZhbGxiYWNrSG9yaXpvbnRhbE9yaWVudGF0aW9uKCk7CkBAIC0xOTEsNiArMTk2LDM3
IEBAIHZvaWQgdHN0X1FHcmFwaGljc1dlYlZpZXc6OndpZGdldHNSZW5kZXJpbmdUaHJvdWdoQ2Fj
aGUoKQogICAgIFFDT01QQVJFKHJlZmVyZW5jZVBpeG1hcC50b0ltYWdlKCksIHZpZXdXaXRoVGls
aW5nLnRvSW1hZ2UoKSk7CiB9CiAKKyNpZiBkZWZpbmVkKEVOQUJMRV9USUxFRF9CQUNLSU5HX1NU
T1JFKSAmJiBFTkFCTEVfVElMRURfQkFDS0lOR19TVE9SRQordm9pZCB0c3RfUUdyYXBoaWNzV2Vi
Vmlldzo6YnVnNTY5MjkoKQoreworICAgIC8vIFdoZW4gcmVuZGVyaW5nIGZyb20gdGlsZXMgc3lj
aHJvbm91cyBsYXlvdXQgc2hvdWxkIG5vdCBiZSB0cmlnZ2VyZWQKKyAgICAvLyBhbmQgc2Nyb2xs
YmFycyBzaG91bGQgYmUgaW4gc3luYyB3aXRoIHRoZSBzaXplIG9mIHRoZSBkb2N1bWVudCBpbiB0
aGUgZGlzcGxheWVkIHN0YXRlLgorCisgICAgUUdyYXBoaWNzVmlldyB2aWV3KG5ldyBRR3JhcGhp
Y3NTY2VuZShRUmVjdEYoMC4wLCAwLjAsIDEwMC4wLCAxMDAuMCkpKTsKKyAgICBRR3JhcGhpY3NX
ZWJWaWV3IHdlYlZpZXc7CisgICAgdmlldy5zY2VuZSgpLT5hZGRJdGVtKCZ3ZWJWaWV3KTsKKyAg
ICB3ZWJWaWV3LnNldEdlb21ldHJ5KHZpZXcuc2NlbmVSZWN0KCkpOworICAgIHdlYlZpZXcuc2V0
dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6VGlsZWRCYWNraW5nU3RvcmVFbmFi
bGVkLCB0cnVlKTsKKyAgICBRVXJsIHVybCgicXJjOi8vL3Jlc291cmNlcy81NjkyOS5odG1sIik7
CisgICAgd2ViVmlldy5sb2FkKHVybCk7CisgICAgUVZFUklGWSh3YWl0Rm9yU2lnbmFsKCZ3ZWJW
aWV3LCBTSUdOQUwobG9hZEZpbmlzaGVkKGJvb2wpKSkpOworICAgIFFTdHlsZU9wdGlvbkdyYXBo
aWNzSXRlbSBvcHRpb247CisgICAgb3B0aW9uLmV4cG9zZWRSZWN0ID0gdmlldy5zY2VuZVJlY3Qo
KTsKKyAgICBRSW1hZ2UgaW1nKG9wdGlvbi5leHBvc2VkUmVjdC53aWR0aCgpLCBvcHRpb24uZXhw
b3NlZFJlY3QuaGVpZ2h0KCksIFFJbWFnZTo6Rm9ybWF0X0FSR0IzMl9QcmVtdWx0aXBsaWVkKTsK
KyAgICBRUGFpbnRlciBwYWludGVyKCZpbWcpOworICAgIC8vIFRoaXMgd2lsbCBub3QgcGFpbnQg
YW55dGhpbmcgYXMgdGhlIHRpbGVzIGFyZSBub3QgcmVhZHkKKyAgICB3ZWJWaWV3LnBhaW50KCZw
YWludGVyLCAmb3B0aW9uKTsKKyAgICBRQXBwbGljYXRpb246OnByb2Nlc3NFdmVudHMoKTsKKyAg
ICB3ZWJWaWV3LnBhaW50KCZwYWludGVyLCAmb3B0aW9uKTsKKyAgICBRQ09NUEFSRShpbWcucGl4
ZWwob3B0aW9uLmV4cG9zZWRSZWN0LndpZHRoKCkgLSAyLCBvcHRpb24uZXhwb3NlZFJlY3QuaGVp
Z2h0KCkgLyAyKSwgcVJnYmEoMjU1LCAyNTUsIDI1NSwgMjU1KSk7CisgICAgcGFpbnRlci5maWxs
UmVjdChvcHRpb24uZXhwb3NlZFJlY3QsIFF0OjpibGFjayk7CisgICAgUUNPTVBBUkUoaW1nLnBp
eGVsKG9wdGlvbi5leHBvc2VkUmVjdC53aWR0aCgpIC0gMiwgb3B0aW9uLmV4cG9zZWRSZWN0Lmhl
aWdodCgpIC8gMiksIHFSZ2JhKDAsIDAsIDAsIDI1NSkpOworICAgIHdlYlZpZXcucGFnZSgpLT5t
YWluRnJhbWUoKS0+ZXZhbHVhdGVKYXZhU2NyaXB0KFFTdHJpbmcoInJlc2l6ZURpdigpOyIpKTsK
KyAgICB3ZWJWaWV3LnBhaW50KCZwYWludGVyLCAmb3B0aW9uKTsKKyAgICBRQ09NUEFSRShpbWcu
cGl4ZWwob3B0aW9uLmV4cG9zZWRSZWN0LndpZHRoKCkgLSAyLCBvcHRpb24uZXhwb3NlZFJlY3Qu
aGVpZ2h0KCkgLyAyKSwgcVJnYmEoMjU1LCAyNTUsIDI1NSwgMjU1KSk7Cit9CisjZW5kaWYKKwog
dm9pZCB0c3RfUUdyYXBoaWNzV2ViVmlldzo6bWljcm9Gb2N1c0Nvb3JkaW5hdGVzKCkKIHsKICAg
ICBRV2ViUGFnZSogcGFnZSA9IG5ldyBRV2ViUGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvdGVzdHMvcWdyYXBoaWNzd2Vidmlldy90c3RfcWdyYXBoaWNzd2Vidmlldy5xcmMgYi9T
b3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0X3FncmFwaGljc3dlYnZp
ZXcucXJjCmluZGV4IDE0ODhmY2YuLmY5MjlmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvdGVzdHMvcWdyYXBoaWNzd2Vidmlldy90c3RfcWdyYXBoaWNzd2Vidmlldy5xcmMKKysrIGIv
U291cmNlL1dlYktpdC9xdC90ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3L3RzdF9xZ3JhcGhpY3N3ZWJ2
aWV3LnFyYwpAQCAtMyw1ICszLDYgQEAKICAgICAgICAgPGZpbGU+cmVzb3VyY2VzL2lucHV0X3R5
cGVzLmh0bWw8L2ZpbGU+CiAgICAgICAgIDxmaWxlPnJlc291cmNlcy9wb2ludGluZ19yaWdodC5o
dG1sPC9maWxlPgogICAgICAgICA8ZmlsZT5yZXNvdXJjZXMvcG9pbnRpbmdfdXAuaHRtbDwvZmls
ZT4KKyAgICAgICAgPGZpbGU+cmVzb3VyY2VzLzU2OTI5Lmh0bWw8L2ZpbGU+CiAgICAgPC9xcmVz
b3VyY2U+CiA8L1JDQz4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87780</attachid>
            <date>2011-03-31 13:29:43 -0700</date>
            <delta_ts>2011-04-01 06:38:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56929-20110331162945.patch</filename>
            <type>text/plain</type>
            <size>10531</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODI0NTcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
QXBpL3F3ZWJmcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCmlu
ZGV4IGU1MTI0YmRkOWJiYTMxZDZlMzc1YWVlNmY2YzEyMDA1NmQzNGEzNzMuLmEwMWQzMmNmMzE2
MmIwNTU1MGI4OGJhMDRjZjJkNDc2OTBjNDU3YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvQXBpL3F3ZWJmcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1l
LmNwcApAQCAtMzEzLDcgKzMxMyw3IEBAIHZvaWQgUVdlYkZyYW1lUHJpdmF0ZTo6cmVuZGVyRnJv
bVRpbGVkQmFja2luZ1N0b3JlKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uCiAKICNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShURVhUVVJFX01BUFBFUikKICAgICBy
ZW5kZXJDb21wb3NpdGVkTGF5ZXJzKGNvbnRleHQsIEludFJlY3QoY2xpcC5ib3VuZGluZ1JlY3Qo
KSkpOwotICAgIHJlbmRlclJlbGF0aXZlQ29vcmRzKGNvbnRleHQsIChRV2ViRnJhbWU6OlJlbmRl
ckxheWVyKShRV2ViRnJhbWU6OlNjcm9sbEJhckxheWVyIHwgUVdlYkZyYW1lOjpQYW5JY29uTGF5
ZXIpLCBjbGlwKTsKKyAgICByZW5kZXJGcmFtZUV4dHJhcyhjb250ZXh0LCBRRmxhZ3M8UVdlYkZy
YW1lOjpSZW5kZXJMYXllcj4oUVdlYkZyYW1lOjpTY3JvbGxCYXJMYXllcikgfCBRV2ViRnJhbWU6
OlBhbkljb25MYXllciwgY2xpcCk7CiAjZW5kaWYKIH0KICNlbmRpZgpAQCAtMzQyLDcgKzM0Miw3
IEBAIHZvaWQgUVdlYkZyYW1lUHJpdmF0ZTo6cmVuZGVyQ29tcG9zaXRlZExheWVycyhHcmFwaGlj
c0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEluCiB9CiAjZW5kaWYKIAotdm9pZCBRV2ViRnJhbWVQ
cml2YXRlOjpyZW5kZXJSZWxhdGl2ZUNvb3JkcyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFFX
ZWJGcmFtZTo6UmVuZGVyTGF5ZXIgbGF5ZXIsIGNvbnN0IFFSZWdpb24mIGNsaXApCit2b2lkIFFX
ZWJGcmFtZVByaXZhdGU6OnJlbmRlclJlbGF0aXZlQ29vcmRzKEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgUUZsYWdzPFFXZWJGcmFtZTo6UmVuZGVyTGF5ZXI+IGxheWVycywgY29uc3QgUVJlZ2lv
biYgY2xpcCkKIHsKICAgICBpZiAoIWZyYW1lLT52aWV3KCkgfHwgIWZyYW1lLT5jb250ZW50UmVu
ZGVyZXIoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzU2LDcgKzM1Niw3IEBAIHZvaWQgUVdlYkZy
YW1lUHJpdmF0ZTo6cmVuZGVyUmVsYXRpdmVDb29yZHMoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBRV2ViRnJhbWU6CiAgICAgV2ViQ29yZTo6RnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXco
KTsKICAgICB2aWV3LT51cGRhdGVMYXlvdXRBbmRTdHlsZUlmTmVlZGVkUmVjdXJzaXZlKCk7CiAK
LSAgICBpZiAobGF5ZXIgJiBRV2ViRnJhbWU6OkNvbnRlbnRzTGF5ZXIpIHsKKyAgICBpZiAobGF5
ZXJzICYgUVdlYkZyYW1lOjpDb250ZW50c0xheWVyKSB7CiAgICAgICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgdmVjdG9yLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICBjb25zdCBRUmVjdCYgY2xp
cFJlY3QgPSB2ZWN0b3IuYXQoaSk7CiAKQEAgLTM4NSwzNyArMzg1LDQ0IEBAIHZvaWQgUVdlYkZy
YW1lUHJpdmF0ZTo6cmVuZGVyUmVsYXRpdmVDb29yZHMoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBRV2ViRnJhbWU6CiAgICAgICAgIHJlbmRlckNvbXBvc2l0ZWRMYXllcnMoY29udGV4dCwgSW50
UmVjdChjbGlwLmJvdW5kaW5nUmVjdCgpKSk7CiAjZW5kaWYKICAgICB9Ci0gICAgaWYgKGxheWVy
ICYgKFFXZWJGcmFtZTo6UGFuSWNvbkxheWVyIHwgUVdlYkZyYW1lOjpTY3JvbGxCYXJMYXllcikp
IHsKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2ZWN0b3Iuc2l6ZSgpOyArK2kpIHsKLSAg
ICAgICAgICAgIGNvbnN0IFFSZWN0JiBjbGlwUmVjdCA9IHZlY3Rvci5hdChpKTsKKyAgICByZW5k
ZXJGcmFtZUV4dHJhcyhjb250ZXh0LCBsYXllcnMsIGNsaXApOworfQogCi0gICAgICAgICAgICBR
UmVjdCBpbnRlcnNlY3RlZFJlY3QgPSBjbGlwUmVjdC5pbnRlcnNlY3RlZCh2aWV3LT5mcmFtZVJl
Y3QoKSk7Cit2b2lkIFFXZWJGcmFtZVByaXZhdGU6OnJlbmRlckZyYW1lRXh0cmFzKEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgUUZsYWdzPFFXZWJGcmFtZTo6UmVuZGVyTGF5ZXI+IGxheWVycywg
Y29uc3QgUVJlZ2lvbiYgY2xpcCkKK3sKKyAgICBpZiAoIShsYXllcnMgJiAoUVdlYkZyYW1lOjpQ
YW5JY29uTGF5ZXIgfCBRV2ViRnJhbWU6OlNjcm9sbEJhckxheWVyKSkpCisgICAgICAgIHJldHVy
bjsKKyAgICBRUGFpbnRlciogcGFpbnRlciA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOwor
ICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldyA9IGZyYW1lLT52aWV3KCk7CisgICAgUVZlY3Rv
cjxRUmVjdD4gdmVjdG9yID0gY2xpcC5yZWN0cygpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
dmVjdG9yLnNpemUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IFFSZWN0JiBjbGlwUmVjdCA9IHZl
Y3Rvci5hdChpKTsKIAotICAgICAgICAgICAgcGFpbnRlci0+c2F2ZSgpOwotICAgICAgICAgICAg
cGFpbnRlci0+c2V0Q2xpcFJlY3QoY2xpcFJlY3QsIFF0OjpJbnRlcnNlY3RDbGlwKTsKKyAgICAg
ICAgUVJlY3QgaW50ZXJzZWN0ZWRSZWN0ID0gY2xpcFJlY3QuaW50ZXJzZWN0ZWQodmlldy0+ZnJh
bWVSZWN0KCkpOwogCi0gICAgICAgICAgICBpbnQgeCA9IHZpZXctPngoKTsKLSAgICAgICAgICAg
IGludCB5ID0gdmlldy0+eSgpOworICAgICAgICBwYWludGVyLT5zYXZlKCk7CisgICAgICAgIHBh
aW50ZXItPnNldENsaXBSZWN0KGNsaXBSZWN0LCBRdDo6SW50ZXJzZWN0Q2xpcCk7CiAKLSAgICAg
ICAgICAgIGlmIChsYXllciAmIFFXZWJGcmFtZTo6U2Nyb2xsQmFyTGF5ZXIKLSAgICAgICAgICAg
ICAgICAmJiAhdmlldy0+c2Nyb2xsYmFyc1N1cHByZXNzZWQoKQotICAgICAgICAgICAgICAgICYm
ICh2aWV3LT5ob3Jpem9udGFsU2Nyb2xsYmFyKCkgfHwgdmlldy0+dmVydGljYWxTY3JvbGxiYXIo
KSkpIHsKLSAgICAgICAgICAgICAgICBRUmVjdCByZWN0ID0gaW50ZXJzZWN0ZWRSZWN0OwotICAg
ICAgICAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0ZSh4LCB5KTsKLSAgICAgICAgICAgICAgICBy
ZWN0LnRyYW5zbGF0ZSgteCwgLXkpOworICAgICAgICBpbnQgeCA9IHZpZXctPngoKTsKKyAgICAg
ICAgaW50IHkgPSB2aWV3LT55KCk7CiAKLSAgICAgICAgICAgICAgICB2aWV3LT5wYWludFNjcm9s
bGJhcnMoY29udGV4dCwgcmVjdCk7CisgICAgICAgIGlmIChsYXllcnMgJiBRV2ViRnJhbWU6OlNj
cm9sbEJhckxheWVyCisgICAgICAgICAgICAmJiAhdmlldy0+c2Nyb2xsYmFyc1N1cHByZXNzZWQo
KQorICAgICAgICAgICAgJiYgKHZpZXctPmhvcml6b250YWxTY3JvbGxiYXIoKSB8fCB2aWV3LT52
ZXJ0aWNhbFNjcm9sbGJhcigpKSkgewogCi0gICAgICAgICAgICAgICAgY29udGV4dC0+dHJhbnNs
YXRlKC14LCAteSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBRUmVjdCByZWN0ID0gaW50
ZXJzZWN0ZWRSZWN0OworICAgICAgICAgICAgY29udGV4dC0+dHJhbnNsYXRlKHgsIHkpOworICAg
ICAgICAgICAgcmVjdC50cmFuc2xhdGUoLXgsIC15KTsKKyAgICAgICAgICAgIHZpZXctPnBhaW50
U2Nyb2xsYmFycyhjb250ZXh0LCByZWN0KTsKKyAgICAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0
ZSgteCwgLXkpOworICAgICAgICB9CiAKICNpZiBFTkFCTEUoUEFOX1NDUk9MTElORykKLSAgICAg
ICAgICAgIGlmIChsYXllciAmIFFXZWJGcmFtZTo6UGFuSWNvbkxheWVyKQotICAgICAgICAgICAg
ICAgIHZpZXctPnBhaW50UGFuU2Nyb2xsSWNvbihjb250ZXh0KTsKKyAgICAgICAgaWYgKGxheWVy
cyAmIFFXZWJGcmFtZTo6UGFuSWNvbkxheWVyKQorICAgICAgICAgICAgdmlldy0+cGFpbnRQYW5T
Y3JvbGxJY29uKGNvbnRleHQpOwogI2VuZGlmCiAKLSAgICAgICAgICAgIHBhaW50ZXItPnJlc3Rv
cmUoKTsKLSAgICAgICAgfQorICAgICAgICBwYWludGVyLT5yZXN0b3JlKCk7CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWVfcC5oIGIvU291cmNl
L1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lX3AuaAppbmRleCBlZThjNDYzN2EyNGVhNWNlZTVmN2Yw
M2Q2MjdmODkwM2RlMGEzOWIwLi45NWFlY2NkZmMyYjU3ZjhlYjVhM2EwOTlmZjNmMDEwYWY3ZTAz
MzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWVfcC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZV9wLmgKQEAgLTk2LDE0ICs5NiwxNSBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIFdlYkNvcmU6OkZyYW1lKiBjb3JlKGNvbnN0IFFXZWJGcmFtZSop
OwogICAgIHN0YXRpYyBRV2ViRnJhbWUqIGtpdChjb25zdCBXZWJDb3JlOjpGcmFtZSopOwogCi0g
ICAgdm9pZCByZW5kZXJSZWxhdGl2ZUNvb3JkcyhXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBR
V2ViRnJhbWU6OlJlbmRlckxheWVyLCBjb25zdCBRUmVnaW9uJiBjbGlwKTsKKyAgICB2b2lkIHJl
bmRlclJlbGF0aXZlQ29vcmRzKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCosIFFGbGFnczxRV2Vi
RnJhbWU6OlJlbmRlckxheWVyPiwgY29uc3QgUVJlZ2lvbiYgY2xpcCk7CiAjaWYgRU5BQkxFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdm9pZCByZW5kZXJGcm9tVGlsZWRCYWNraW5nU3RvcmUo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgUVJlZ2lvbiYgY2xpcCk7CiAjZW5kaWYK
IAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKFRFWFRVUkVfTUFQUEVS
KQotICAgIHZvaWQgcmVuZGVyQ29tcG9zaXRlZExheWVycyhXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXApOworICAgIHZvaWQgcmVu
ZGVyQ29tcG9zaXRlZExheWVycyhXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiBjbGlwKTsKICNlbmRpZgorICAgIHZvaWQgcmVuZGVyRnJhbWVFeHRyYXMo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0KiwgUUZsYWdzPFFXZWJGcmFtZTo6UmVuZGVyTGF5ZXI+
LCBjb25zdCBRUmVnaW9uJiBjbGlwKTsKICAgICBRV2ViRnJhbWUgKnE7CiAgICAgUXQ6OlNjcm9s
bEJhclBvbGljeSBob3Jpem9udGFsU2Nyb2xsQmFyUG9saWN5OwogICAgIFF0OjpTY3JvbGxCYXJQ
b2xpY3kgdmVydGljYWxTY3JvbGxCYXJQb2xpY3k7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDMwNGE2Yzlh
YmM4NTQ2YjcyMDFiZGJhOGU4ZDJhNThjYWIzZGNkOTIuLjExMzk5YjBlMmU2Y2NiYTdjMTMyNmM5
OWU4YjNmMzU4ODQ3YjBhZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEt
MDMtMzAgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9raWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZWQgUVdlYkZyYW1lUHJp
dmF0ZTo6cmVuZGVyRnJvbVRpbGVkQmFja2luZ1N0b3JlIHRvIGNhbGwgZGlyZWN0bHkgaW50bwor
ICAgICAgICBTY3JvbGxiYXIvUGFuSWNvbiByZW5kZXJpbmcsIGJ5cGFzc2luZyB0aGUgcG90ZW50
aWFsIHJlbGF5b3V0IGluIHJlbmRlclJlbGF0aXZlQ29vcmRzLgorCisgICAgICAgIFRpbGVkIHBh
aW50aW5nIHN0aWxsIGNhdXNlcyBzeW5jaHJvbm91cyBsYXlvdXQgd2hlbgorICAgICAgICBhY2Nl
bGVyYXRlZCBjb21wb3NpdGluZyBhbmQgdGV4dHVyZSBtYXBwZXIgYXJlIGVuYWJsZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2OTI5CisKKyAgICAg
ICAgKiBBcGkvcXdlYmZyYW1lLmNwcDoKKyAgICAgICAgKFFXZWJGcmFtZVByaXZhdGU6OnJlbmRl
ckZyb21UaWxlZEJhY2tpbmdTdG9yZSk6CisgICAgICAgIChRV2ViRnJhbWVQcml2YXRlOjpyZW5k
ZXJSZWxhdGl2ZUNvb3Jkcyk6CisgICAgICAgIChRV2ViRnJhbWVQcml2YXRlOjpyZW5kZXJGcmFt
ZVdpZGdldHMpOgorICAgICAgICAqIEFwaS9xd2ViZnJhbWVfcC5oOgorCiAyMDExLTAzLTI5ICBB
bGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQgYnVpbGQgZml4IGZvciBidWlsZC13ZWJraXQgLW1pbmltYWwuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvcmVzb3VyY2VzLzU2OTI5
Lmh0bWwgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvcmVzb3VyY2Vz
LzU2OTI5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY3ZmE5N2NhYzM1ZDZiZjMxMjU0ZWM3NDVkMGZkZTZi
MGUzOTJmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWdyYXBo
aWNzd2Vidmlldy9yZXNvdXJjZXMvNTY5MjkuaHRtbApAQCAtMCwwICsxLDggQEAKKzxib2R5IHN0
eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSI+CisgPGRpdiBpZD0iMSIgc3R5bGU9IndpZHRo
OiA1MCU7IGhlaWdodDogNTAlOyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbiIvPgorIDxzY3JpcHQ+
CisgIGZ1bmN0aW9uIHJlc2l6ZURpdigpIHsKKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCIxIikuc2V0QXR0cmlidXRlKCJzdHlsZSIsICJ3aWR0aDogMTUwJTsgaGVpZ2h0OiAxNTAlOyBi
YWNrZ3JvdW5kLWNvbG9yOiBncmVlbiIpOworICB9CisgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0X3FncmFw
aGljc3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3
L3RzdF9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcAppbmRleCA3Y2M4OGRiNTZlNzExNGY5ZGJkZTFmOTdh
Yzc4M2Q2MjcyMGE0NGMwLi5lZDE2MmM0MTg5ZDM2MTI2NmRmMTAyNTM1ZmZiMzhjYWNlZWQ1NjFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0
X3FncmFwaGljc3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWdyYXBo
aWNzd2Vidmlldy90c3RfcWdyYXBoaWNzd2Vidmlldy5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKICNp
bmNsdWRlIDxRdFRlc3QvUXRUZXN0PgogI2luY2x1ZGUgPFFHcmFwaGljc1NjZW5lTW91c2VFdmVu
dD4KICNpbmNsdWRlIDxRR3JhcGhpY3NWaWV3PgorI2luY2x1ZGUgPFFTdHlsZU9wdGlvbkdyYXBo
aWNzSXRlbT4KICNpbmNsdWRlIDxxZ3JhcGhpY3N3ZWJ2aWV3Lmg+CiAjaW5jbHVkZSA8cXdlYnBh
Z2UuaD4KICNpbmNsdWRlIDxxd2ViZnJhbWUuaD4KQEAgLTQzLDcgKzQ0LDkgQEAgcHJpdmF0ZSBz
bG90czoKICAgICB2b2lkIHNldFBhbGV0dGVfZGF0YSgpOwogICAgIHZvaWQgc2V0UGFsZXR0ZSgp
OwogICAgIHZvaWQgcmVuZGVySGludHMoKTsKLQorI2lmIGRlZmluZWQoRU5BQkxFX1RJTEVEX0JB
Q0tJTkdfU1RPUkUpICYmIEVOQUJMRV9USUxFRF9CQUNLSU5HX1NUT1JFCisgICAgdm9pZCBidWc1
NjkyOSgpOworI2VuZGlmCiAjaWYgZGVmaW5lZChFTkFCTEVfV0VCR0wpICYmIEVOQUJMRV9XRUJH
TAogICAgIHZvaWQgd2ViZ2xTb2Z0d2FyZUZhbGxiYWNrVmVydGljYWxPcmllbnRhdGlvbigpOwog
ICAgIHZvaWQgd2ViZ2xTb2Z0d2FyZUZhbGxiYWNrSG9yaXpvbnRhbE9yaWVudGF0aW9uKCk7CkBA
IC0xOTEsNiArMTk0LDM4IEBAIHZvaWQgdHN0X1FHcmFwaGljc1dlYlZpZXc6OndpZGdldHNSZW5k
ZXJpbmdUaHJvdWdoQ2FjaGUoKQogICAgIFFDT01QQVJFKHJlZmVyZW5jZVBpeG1hcC50b0ltYWdl
KCksIHZpZXdXaXRoVGlsaW5nLnRvSW1hZ2UoKSk7CiB9CiAKKyNpZiBkZWZpbmVkKEVOQUJMRV9U
SUxFRF9CQUNLSU5HX1NUT1JFKSAmJiBFTkFCTEVfVElMRURfQkFDS0lOR19TVE9SRQordm9pZCB0
c3RfUUdyYXBoaWNzV2ViVmlldzo6YnVnNTY5MjkoKQoreworICAgIC8vIFdoZW4gcmVuZGVyaW5n
IGZyb20gdGlsZXMgc3ljaHJvbm91cyBsYXlvdXQgc2hvdWxkIG5vdCBiZSB0cmlnZ2VyZWQKKyAg
ICAvLyBhbmQgc2Nyb2xsYmFycyBzaG91bGQgYmUgaW4gc3luYyB3aXRoIHRoZSBzaXplIG9mIHRo
ZSBkb2N1bWVudCBpbiB0aGUgZGlzcGxheWVkIHN0YXRlLgorCisgICAgUUdyYXBoaWNzV2ViVmll
dyogd2ViVmlldyA9IG5ldyBRR3JhcGhpY3NXZWJWaWV3KCk7CisgICAgd2ViVmlldy0+c2V0R2Vv
bWV0cnkoUVJlY3RGKDAuMCwgMC4wLCAxMDAuMCwgMTAwLjApKTsKKyAgICBRR3JhcGhpY3NWaWV3
IHZpZXcobmV3IFFHcmFwaGljc1NjZW5lKCkpOworICAgIHZpZXcuc2NlbmUoKS0+c2V0UGFyZW50
KCZ2aWV3KTsKKyAgICB2aWV3LnNjZW5lKCktPmFkZEl0ZW0od2ViVmlldyk7CisgICAgd2ViVmll
dy0+c2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6VGlsZWRCYWNraW5nU3Rv
cmVFbmFibGVkLCB0cnVlKTsKKyAgICBRVXJsIHVybCgicXJjOi8vL3Jlc291cmNlcy81NjkyOS5o
dG1sIik7CisgICAgd2ViVmlldy0+bG9hZCh1cmwpOworICAgIFFWRVJJRlkod2FpdEZvclNpZ25h
bCh3ZWJWaWV3LCBTSUdOQUwobG9hZEZpbmlzaGVkKGJvb2wpKSkpOworICAgIFFTdHlsZU9wdGlv
bkdyYXBoaWNzSXRlbSBvcHRpb247CisgICAgb3B0aW9uLmV4cG9zZWRSZWN0ID0gd2ViVmlldy0+
Z2VvbWV0cnkoKTsKKyAgICBRSW1hZ2UgaW1nKG9wdGlvbi5leHBvc2VkUmVjdC53aWR0aCgpLCBv
cHRpb24uZXhwb3NlZFJlY3QuaGVpZ2h0KCksIFFJbWFnZTo6Rm9ybWF0X0FSR0IzMl9QcmVtdWx0
aXBsaWVkKTsKKyAgICBRUGFpbnRlciBwYWludGVyKCZpbWcpOworICAgIC8vIFRoaXMgd2lsbCBu
b3QgcGFpbnQgYW55dGhpbmcgYXMgdGhlIHRpbGVzIGFyZSBub3QgcmVhZHksIHlldC4KKyAgICB3
ZWJWaWV3LT5wYWludCgmcGFpbnRlciwgJm9wdGlvbik7CisgICAgUUFwcGxpY2F0aW9uOjpwcm9j
ZXNzRXZlbnRzKCk7CisgICAgd2ViVmlldy0+cGFpbnQoJnBhaW50ZXIsICZvcHRpb24pOworICAg
IFFDT01QQVJFKGltZy5waXhlbChvcHRpb24uZXhwb3NlZFJlY3Qud2lkdGgoKSAtIDIsIG9wdGlv
bi5leHBvc2VkUmVjdC5oZWlnaHQoKSAvIDIpLCBxUmdiYSgyNTUsIDI1NSwgMjU1LCAyNTUpKTsK
KyAgICBwYWludGVyLmZpbGxSZWN0KG9wdGlvbi5leHBvc2VkUmVjdCwgUXQ6OmJsYWNrKTsKKyAg
ICBRQ09NUEFSRShpbWcucGl4ZWwob3B0aW9uLmV4cG9zZWRSZWN0LndpZHRoKCkgLSAyLCBvcHRp
b24uZXhwb3NlZFJlY3QuaGVpZ2h0KCkgLyAyKSwgcVJnYmEoMCwgMCwgMCwgMjU1KSk7CisgICAg
d2ViVmlldy0+cGFnZSgpLT5tYWluRnJhbWUoKS0+ZXZhbHVhdGVKYXZhU2NyaXB0KFFTdHJpbmco
InJlc2l6ZURpdigpOyIpKTsKKyAgICB3ZWJWaWV3LT5wYWludCgmcGFpbnRlciwgJm9wdGlvbik7
CisgICAgUUNPTVBBUkUoaW1nLnBpeGVsKG9wdGlvbi5leHBvc2VkUmVjdC53aWR0aCgpIC0gMiwg
b3B0aW9uLmV4cG9zZWRSZWN0LmhlaWdodCgpIC8gMiksIHFSZ2JhKDI1NSwgMjU1LCAyNTUsIDI1
NSkpOworfQorI2VuZGlmCisKIHZvaWQgdHN0X1FHcmFwaGljc1dlYlZpZXc6Om1pY3JvRm9jdXND
b29yZGluYXRlcygpCiB7CiAgICAgUVdlYlBhZ2UqIHBhZ2UgPSBuZXcgUVdlYlBhZ2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0X3FncmFw
aGljc3dlYnZpZXcucXJjIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3
L3RzdF9xZ3JhcGhpY3N3ZWJ2aWV3LnFyYwppbmRleCAxNDg4ZmNmYjEyZmY4NjIwYmRiYTY1YjZm
ZjMyYzg0NzIyNWI4YzhmLi5mOTI5ZmU3MjFiNDFiZWJkZGU0NzJiYWVkMjYyMWIxZjlhNTcxNzRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0
X3FncmFwaGljc3dlYnZpZXcucXJjCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWdyYXBo
aWNzd2Vidmlldy90c3RfcWdyYXBoaWNzd2Vidmlldy5xcmMKQEAgLTMsNSArMyw2IEBACiAgICAg
ICAgIDxmaWxlPnJlc291cmNlcy9pbnB1dF90eXBlcy5odG1sPC9maWxlPgogICAgICAgICA8Zmls
ZT5yZXNvdXJjZXMvcG9pbnRpbmdfcmlnaHQuaHRtbDwvZmlsZT4KICAgICAgICAgPGZpbGU+cmVz
b3VyY2VzL3BvaW50aW5nX3VwLmh0bWw8L2ZpbGU+CisgICAgICAgIDxmaWxlPnJlc291cmNlcy81
NjkyOS5odG1sPC9maWxlPgogICAgIDwvcXJlc291cmNlPgogPC9SQ0M+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>