<?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>99715</bug_id>
          
          <creation_ts>2012-10-18 07:01:50 -0700</creation_ts>
          <short_desc>[Qt][WK2] Fit-to-width broken on pages with viewport meta tag</short_desc>
          <delta_ts>2012-11-06 09:35:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andras Becsi">abecsi</reporter>
          <assigned_to name="Andras Becsi">abecsi</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>fsamuel</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kenneth</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>745229</commentid>
    <comment_count>0</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-10-18 07:01:50 -0700</bug_when>
    <thetext>[Qt][WK2] Fit-to-width broken on pages with viewport meta tag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745230</commentid>
    <comment_count>1</comment_count>
      <attachid>169407</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-10-18 07:03:40 -0700</bug_when>
    <thetext>Created attachment 169407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745238</commentid>
    <comment_count>2</comment_count>
      <attachid>169407</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-10-18 07:22:14 -0700</bug_when>
    <thetext>Comment on attachment 169407
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        The initial scale from the viewport attributes should only

It&apos;s better to keep ChangeLog details only with the relevant parts, else the full details will appear twice in the commit message.

&gt; Source/WebKit2/ChangeLog:12
&gt; +        The initial scale from the viewport attributes should only
&gt; +        be applied if it was explicitly specified in the viewport
&gt; +        meta tag. If the initial scale is auto the content should
&gt; +        initially be scaled to the minimum scale that fits the page
&gt; +        horizontally into the view.

Might be worth saying somehow that what we want is an initialScale calculated using the final contentsSize, which might be larger than the layoutSize.

&gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml:101
&gt; +            verify(webView.waitForLoadSucceeded())

For viewport tests it might be more reliable to use waitForViewportReady, which waits for the first DidRenderFrame and applied the initialScale. (and set &quot;when: windowShown&quot; on the TestCase)

&gt; Source/WebKit2/UIProcess/PageViewportController.cpp:162
&gt; +        applyScaleAfterRenderingContents(innerBoundedViewportScale(toViewportScale(initialScale)));

I&apos;m not sure but I think that didChangeContentsSize will already have called applyScaleAfterRenderingContents in updateMinimumScaleToFit, and here we would normally just overwrite it here. So if I&apos;m right in this case you could just check for m_rawAttributes.initiallyFitToWidth in the if() and avoid it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745286</commentid>
    <comment_count>3</comment_count>
      <attachid>169421</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-10-18 08:41:10 -0700</bug_when>
    <thetext>Created attachment 169421
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745294</commentid>
    <comment_count>4</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-10-18 08:51:17 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 169407 [details])
&gt; &gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml:101
&gt; &gt; +            verify(webView.waitForLoadSucceeded())
&gt; 
&gt; For viewport tests it might be more reliable to use waitForViewportReady, which waits for the first DidRenderFrame and applied the initialScale. (and set &quot;when: windowShown&quot; on the TestCase)

Both tests fail if using waitForViewportReady since it fires too early for the scale to propagate, so I left loadSucceeded.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/PageViewportController.cpp:162
&gt; &gt; +        applyScaleAfterRenderingContents(innerBoundedViewportScale(toViewportScale(initialScale)));
&gt; 
&gt; I&apos;m not sure but I think that didChangeContentsSize will already have called applyScaleAfterRenderingContents in updateMinimumScaleToFit, and here we would normally just overwrite it here. So if I&apos;m right in this case you could just check for m_rawAttributes.initiallyFitToWidth in the if() and avoid it.

The minimum scale is only applied in updateMinimumScaleToFit() if there was no user interaction and the content is not suspended, so for example the scale is not applied when transition completes when clicking a link after pinch zoom.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746154</commentid>
    <comment_count>5</comment_count>
      <attachid>169407</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-10-19 02:21:00 -0700</bug_when>
    <thetext>Comment on attachment 169407
Patch

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

&gt;&gt;&gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml:101
&gt;&gt;&gt; +            verify(webView.waitForLoadSucceeded())
&gt;&gt; 
&gt;&gt; For viewport tests it might be more reliable to use waitForViewportReady, which waits for the first DidRenderFrame and applied the initialScale. (and set &quot;when: windowShown&quot; on the TestCase)
&gt; 
&gt; Both tests fail if using waitForViewportReady since it fires too early for the scale to propagate, so I left loadSucceeded.

Ahh, this could be related to the change that didChangeContentsSize is now only called if the size changed in didRenderFrame, which took care of emitting contentsScaleCommitted.
The thing is that there is no guarantee that loadSucceeded gets emitted after, especially on local pages. There is no order enforced between those two signals.
Anyway we can see if that breaks on the bots first, and fix it then.

&gt;&gt;&gt; Source/WebKit2/UIProcess/PageViewportController.cpp:162
&gt;&gt;&gt; +        applyScaleAfterRenderingContents(innerBoundedViewportScale(toViewportScale(initialScale)));
&gt;&gt; 
&gt;&gt; I&apos;m not sure but I think that didChangeContentsSize will already have called applyScaleAfterRenderingContents in updateMinimumScaleToFit, and here we would normally just overwrite it here. So if I&apos;m right in this case you could just check for m_rawAttributes.initiallyFitToWidth in the if() and avoid it.
&gt; 
&gt; The minimum scale is only applied in updateMinimumScaleToFit() if there was no user interaction and the content is not suspended, so for example the scale is not applied when transition completes when clicking a link after pinch zoom.

Ok, makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746155</commentid>
    <comment_count>6</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-10-19 02:23:37 -0700</bug_when>
    <thetext>LGTM but it would be nice to know what Kenneth thinks about the boolean in ViewportAttributes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746307</commentid>
    <comment_count>7</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-10-19 08:13:54 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 169407 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169407&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml:101
&gt; &gt;&gt;&gt; +            verify(webView.waitForLoadSucceeded())
&gt; &gt;&gt; 
&gt; &gt;&gt; For viewport tests it might be more reliable to use waitForViewportReady, which waits for the first DidRenderFrame and applied the initialScale. (and set &quot;when: windowShown&quot; on the TestCase)
&gt; &gt; 
&gt; &gt; Both tests fail if using waitForViewportReady since it fires too early for the scale to propagate, so I left loadSucceeded.
&gt; 
&gt; Ahh, this could be related to the change that didChangeContentsSize is now only called if the size changed in didRenderFrame, which took care of emitting contentsScaleCommitted.
&gt; The thing is that there is no guarantee that loadSucceeded gets emitted after, especially on local pages. There is no order enforced between those two signals.
&gt; Anyway we can see if that breaks on the bots first, and fix it then.

That&apos;s also what I suspected, but removing the check for the changing size does not fix the tests with waitForViewportReady.
The problem seems to be that we get a couple of DidRenderFrame messages before pageTransitionViewportReady() or one of the updateMinimumScaleToFit() calls would actually apply the initial scale.
So loadVisuallyCommitted() is emitted before the correct scale is actually applied.

Maybe loadVisuallyCommitted should actually depend on pageTransitionViewportReady?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746317</commentid>
    <comment_count>8</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-10-19 08:32:45 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Maybe loadVisuallyCommitted should actually depend on pageTransitionViewportReady?

It does indirectly, there should be no rendering between provisionalLoadStarted and the commitPageTransitionViewport response in pageTransitionViewportReady. This call is actually responsible of resuming the rendering once we requested the scale that we want to show to the user for the first glimpse of the page. Then there should be a DidRenderFrame following and loadVisuallyCommitted would be emitted.
If loadVisuallyCommitted gets emitted before pageTransitionViewportReady there is definitely something wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746368</commentid>
    <comment_count>9</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-10-19 09:32:56 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Maybe loadVisuallyCommitted should actually depend on pageTransitionViewportReady?
&gt; 
&gt; It does indirectly, there should be no rendering between provisionalLoadStarted and the commitPageTransitionViewport response in pageTransitionViewportReady. This call is actually responsible of resuming the rendering once we requested the scale that we want to show to the user for the first glimpse of the page. Then there should be a DidRenderFrame following and loadVisuallyCommitted would be emitted.
&gt; If loadVisuallyCommitted gets emitted before pageTransitionViewportReady there is definitely something wrong.

Hmm, ok, in this case I have to verify my previous findings next week, since I&apos;m pretty sure there were multiple DidRenderFrame messages before pageTransitionViewportReady actually applied the initial scale.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747069</commentid>
    <comment_count>10</comment_count>
      <attachid>169421</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-21 03:11:39 -0700</bug_when>
    <thetext>Comment on attachment 169421
Patch

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

&gt; Source/WebKit2/ChangeLog:14
&gt; +        The initial scale from the viewport attributes should only
&gt; +        be applied if the scale was explicitly specified in the
&gt; +        viewport meta tag.
&gt; +        If the initial scale is auto it should be calculated using
&gt; +        the final contents size, which might be larger than the
&gt; +        layout size, so that the content fits horizontally into
&gt; +        the view.

that sounds right

&gt; Source/WebCore/dom/ViewportArguments.cpp:56
&gt;      result.devicePixelRatio = devicePixelRatio;
&gt; +    result.initiallyFitToWidth = args.initialScale == ViewportArguments::ValueAuto;

Why can&apos;t you just do this check outside ViewportArguments? Are we modifying initialScale in the algorithm? I guess we shouldn&apos;t do that.

Maybe we should remove
 
118 result.initialScale = availableWidth / desktopWidth;

I think that is fine with the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747399</commentid>
    <comment_count>11</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-10-22 03:57:02 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 169421 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169421&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:14
&gt; &gt; +        The initial scale from the viewport attributes should only
&gt; &gt; +        be applied if the scale was explicitly specified in the
&gt; &gt; +        viewport meta tag.
&gt; &gt; +        If the initial scale is auto it should be calculated using
&gt; &gt; +        the final contents size, which might be larger than the
&gt; &gt; +        layout size, so that the content fits horizontally into
&gt; &gt; +        the view.
&gt; 
&gt; that sounds right
&gt; 
&gt; &gt; Source/WebCore/dom/ViewportArguments.cpp:56
&gt; &gt;      result.devicePixelRatio = devicePixelRatio;
&gt; &gt; +    result.initiallyFitToWidth = args.initialScale == ViewportArguments::ValueAuto;
&gt; 
&gt; Why can&apos;t you just do this check outside ViewportArguments? Are we modifying initialScale in the algorithm? I guess we shouldn&apos;t do that.
&gt; 
The initial scale is resolved in computeViewportAttributes because the layout size depends on it being resolved.

&gt; Maybe we should remove
&gt; 
&gt; 118 result.initialScale = availableWidth / desktopWidth;
&gt; 
That would not help because in the width=device-width case args.width is already resolved to be deviceWidth. Additionally we would end up with a wrong initial scale after the initialScale is adjusted to be within valid boundaries because the resolved minimumScale is not yet the minimum scale to fit.

The problem here is that the layout size depends on the initial scale in the current implementation and the final contents size might be expanded after computeViewportAttributes.
Also clients assume that result.initialScale is within valid bounds, so leaving it as -1 would cause silent errors, which leaves us with the bool flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747428</commentid>
    <comment_count>12</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-22 04:59:03 -0700</bug_when>
    <thetext>Adding the Chrome for Android guy responsible(?) for this area</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750699</commentid>
    <comment_count>13</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-10-25 05:09:53 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; Maybe loadVisuallyCommitted should actually depend on pageTransitionViewportReady?
&gt; &gt; 
&gt; &gt; It does indirectly, there should be no rendering between provisionalLoadStarted and the commitPageTransitionViewport response in pageTransitionViewportReady. This call is actually responsible of resuming the rendering once we requested the scale that we want to show to the user for the first glimpse of the page. Then there should be a DidRenderFrame following and loadVisuallyCommitted would be emitted.
&gt; &gt; If loadVisuallyCommitted gets emitted before pageTransitionViewportReady there is definitely something wrong.
&gt; 
&gt; Hmm, ok, in this case I have to verify my previous findings next week, since I&apos;m pretty sure there were multiple DidRenderFrame messages before pageTransitionViewportReady actually applied the initial scale.

The loadVisuallyCommitted signal is emitted before the initial scale is applied because during transition the content size falls back to the size set by the basic test using js. This could be related to page caching behavior.
If the basic test is removed using waitForViewportReady works for the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754385</commentid>
    <comment_count>14</comment_count>
      <attachid>171456</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-10-30 08:24:11 -0700</bug_when>
    <thetext>Created attachment 171456
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759760</commentid>
    <comment_count>15</comment_count>
      <attachid>172602</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-11-06 09:22:51 -0800</bug_when>
    <thetext>Created attachment 172602
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759777</commentid>
    <comment_count>16</comment_count>
      <attachid>172602</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-11-06 09:35:12 -0800</bug_when>
    <thetext>Comment on attachment 172602
Patch

Clearing flags on attachment: 172602

Committed r133624: &lt;http://trac.webkit.org/changeset/133624&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759778</commentid>
    <comment_count>17</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-11-06 09:35:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169407</attachid>
            <date>2012-10-18 07:03:40 -0700</date>
            <delta_ts>2012-10-19 02:21:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99715-20121018160222.patch</filename>
            <type>text/plain</type>
            <size>7842</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q3MGIyYWM1YTVhYmE3
ODkwNmI2M2VkY2Y4ODZkMjRkMzdmMmFiNS4uNjI5NDRhODY3ZjljMjI1ZDQ2YjBkNWE0M2FiNjJj
MDczMGZiMWI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEwLTE4ICBBbmRy
YXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAZGlnaWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBG
aXQtdG8td2lkdGggYnJva2VuIG9uIHBhZ2VzIHdpdGggdmlld3BvcnQgbWV0YSB0YWcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NzE1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGluaXRpYWwgc2Nh
bGUgZnJvbSB0aGUgdmlld3BvcnQgYXR0cmlidXRlcyBzaG91bGQgb25seQorICAgICAgICBiZSBh
cHBsaWVkIGlmIGl0IHdhcyBleHBsaWNpdGx5IHNwZWNpZmllZCBpbiB0aGUgdmlld3BvcnQKKyAg
ICAgICAgbWV0YSB0YWcuIElmIHRoZSBpbml0aWFsIHNjYWxlIGlzIGF1dG8gdGhlIGNvbnRlbnQg
c2hvdWxkCisgICAgICAgIGluaXRpYWxseSBiZSBzY2FsZWQgdG8gdGhlIG1pbmltdW0gc2NhbGUg
dGhhdCBmaXRzIHRoZSBwYWdlCisgICAgICAgIGhvcml6b250YWxseSBpbnRvIHRoZSB2aWV3Lgor
CisgICAgICAgIEFsc28gYWRkIFFNTCB1bml0IHRlc3RzIHRoYXQgY292ZXIgdGhpcyBmdW5jdGlv
bmFsaXR5LgorCisgICAgICAgICogZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMpOgorICAgICAgICAqIGRvbS9WaWV3
cG9ydEFyZ3VtZW50cy5oOiBBZGQgYSBib29sIHRoYXQgaW5kaWNhdGVzIGlmIHRoZQorICAgICAg
ICBjb250ZW50IGhhZCBhbiBleHBsaWNpdCBpbml0aWFsLXNjYWxlIGluIHRoZSB2aWV3cG9ydCBt
ZXRhIHRhZy4KKyAgICAgICAgKFZpZXdwb3J0QXR0cmlidXRlcyk6CisKIDIwMTItMTAtMTggIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogYWRkIFgtV2ViS2l0LUNTUCBoZWFkZXIgaW50byBpbnNwZWN0b3IuaHRtbApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDIxZWU0MzUyNDhhNGYyMzNmN2E2NWM2ZTlkYjYyYTc1ZDViYjQzOGIuLmQwOTIzMGMy
ZDYyNzZkYzZlNWY1OWY3YTZjYWE4OGNkZDI2NDhmMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NCBAQAorMjAxMi0xMC0xOCAgQW5kcmFzIEJlY3NpICA8YW5kcmFzLmJlY3NpQGRpZ2lhLmNvbT4K
KworICAgICAgICBbUXRdW1dLMl0gRml0LXRvLXdpZHRoIGJyb2tlbiBvbiBwYWdlcyB3aXRoIHZp
ZXdwb3J0IG1ldGEgdGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05OTcxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBpbml0aWFsIHNjYWxlIGZyb20gdGhlIHZpZXdwb3J0IGF0dHJpYnV0ZXMgc2hv
dWxkIG9ubHkKKyAgICAgICAgYmUgYXBwbGllZCBpZiBpdCB3YXMgZXhwbGljaXRseSBzcGVjaWZp
ZWQgaW4gdGhlIHZpZXdwb3J0CisgICAgICAgIG1ldGEgdGFnLiBJZiB0aGUgaW5pdGlhbCBzY2Fs
ZSBpcyBhdXRvIHRoZSBjb250ZW50IHNob3VsZAorICAgICAgICBpbml0aWFsbHkgYmUgc2NhbGVk
IHRvIHRoZSBtaW5pbXVtIHNjYWxlIHRoYXQgZml0cyB0aGUgcGFnZQorICAgICAgICBob3Jpem9u
dGFsbHkgaW50byB0aGUgdmlldy4KKworICAgICAgICBBbHNvIGFkZCBRTUwgdW5pdCB0ZXN0cyB0
aGF0IGNvdmVyIHRoaXMgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZml0VG9WaWV3LnFtbDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi90ZXN0NS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXIp
OgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyOjpwYWdlVHJhbnNpdGlv
blZpZXdwb3J0UmVhZHkpOgorCiAyMDEyLTEwLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBGaXggR1RLKyBkZWJ1ZyBi
dWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCmluZGV4IGU0NTdi
MDM3YTJkMjAyNDE2NjllMmRlMGQ0MGU3ZGQ4NGZlNTI4ZGIuLjEyNGVjNDQ0ZDgwOWU4NGVmZWM5
NGQwOGU0YThhZmU2YzQxNWMwNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3
cG9ydEFyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1l
bnRzLmNwcApAQCAtNTMsNiArNTMsNyBAQCBWaWV3cG9ydEF0dHJpYnV0ZXMgY29tcHV0ZVZpZXdw
b3J0QXR0cmlidXRlcyhWaWV3cG9ydEFyZ3VtZW50cyBhcmdzLCBpbnQgZGVza3RvcAogICAgIEFT
U0VSVChhdmFpbGFibGVXaWR0aCA+IDAgJiYgYXZhaWxhYmxlSGVpZ2h0ID4gMCk7CiAKICAgICBy
ZXN1bHQuZGV2aWNlUGl4ZWxSYXRpbyA9IGRldmljZVBpeGVsUmF0aW87CisgICAgcmVzdWx0Lmlu
aXRpYWxseUZpdFRvV2lkdGggPSBhcmdzLmluaXRpYWxTY2FsZSA9PSBWaWV3cG9ydEFyZ3VtZW50
czo6VmFsdWVBdXRvOwogCiAgICAgLy8gUmVzb2x2ZSBub24tJ2F1dG8nIHdpZHRoIGFuZCBoZWln
aHQgdG8gcGl4ZWwgdmFsdWVzLgogICAgIGlmIChyZXN1bHQuZGV2aWNlUGl4ZWxSYXRpbyAhPSAx
LjApIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgKaW5kZXggOTRmYjFmYWI4
MGFlNzBkZDgzZWQxYzIzMjUwNjY4NmJlNGQwMWY0Zi4uZTI3ODliMmU0ZjliNzE3NzIwOGQ2ZjVh
ZTE3N2I1MjVjYjlkZjIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0
QXJndW1lbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgK
QEAgLTUyLDYgKzUyLDcgQEAgc3RydWN0IFZpZXdwb3J0QXR0cmlidXRlcyB7CiAgICAgZmxvYXQg
bWF4aW11bVNjYWxlOwogCiAgICAgZmxvYXQgdXNlclNjYWxhYmxlOworICAgIGJvb2wgaW5pdGlh
bGx5Rml0VG9XaWR0aDsKIH07CiAKIHN0cnVjdCBWaWV3cG9ydEFyZ3VtZW50cyB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZp
ZXcvdHN0X2ZpdFRvVmlldy5xbWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2ZpdFRvVmlldy5xbWwKaW5kZXggZmNkM2Q5MzAxMTkz
NDBiYmQyNWUyNTc0YTg2MTZhYTVhNjU3NjU4NC4uN2JkNzA2ZGU1MzhjZWUyYTRiZThmYmNlNDM4
ZDk3NjQ3MDAwOWY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9maXRUb1ZpZXcucW1sCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZml0VG9W
aWV3LnFtbApAQCAtOTMsNSArOTMsMzYgQEAgSXRlbSB7CiAgICAgICAgICAgICBjb21wYXJlKGRv
Y3VtZW50U2l6ZSgpLCAiOTYweDE0NDAiKQogICAgICAgICAgICAgY29tcGFyZSh0ZXN0LmNvbnRl
bnRzU2NhbGUsIDEuMCkKICAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RfbG9jYWxQ
YWdlRGV2aWNlV2lkdGgoKSB7CisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9ICJhYm91dDpibGFu
ayIKKyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCisg
ICAgICAgICAgICB3ZWJWaWV3LnVybCA9ICIuLi9jb21tb24vdGVzdDUuaHRtbCIKKyAgICAgICAg
ICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCisgICAgICAgICAgICBj
b21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgMC41KQorCisgICAgICAgICAgICAvLyBBZGQgdXNl
ciBpbnRlcmFjdGlvbi4KKyAgICAgICAgICAgIHRlc3QudG91Y2hUYXAod2ViVmlldywgMTAsIDEw
KQorCisgICAgICAgICAgICB3ZWJWaWV3LnJlbG9hZCgpCisgICAgICAgICAgICB2ZXJpZnkod2Vi
Vmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQorICAgICAgICAgICAgLy8gVGhlIHBhZ2Ugc2hv
dWxkIHN0aWxsIGZpdCB0byB2aWV3IGFmdGVyIGEgcmVsb2FkCisgICAgICAgICAgICBjb21wYXJl
KHRlc3QuY29udGVudHNTY2FsZSwgMC41KQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
dGVzdF9sb2NhbFBhZ2VJbml0aWFsU2NhbGUoKSB7CisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9
ICJhYm91dDpibGFuayIKKyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3Vj
Y2VlZGVkKCkpCisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9ICIuLi9jb21tb24vdGVzdDQuaHRt
bCIKKyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCisg
ICAgICAgICAgICBjb21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgMi4wKQorCisgICAgICAgICAg
ICAvLyBBZGQgdXNlciBpbnRlcmFjdGlvbi4KKyAgICAgICAgICAgIHRlc3QudG91Y2hUYXAod2Vi
VmlldywgMTAsIDEwKQorCisgICAgICAgICAgICB3ZWJWaWV3LnJlbG9hZCgpCisgICAgICAgICAg
ICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQorICAgICAgICAgICAgY29t
cGFyZSh0ZXN0LmNvbnRlbnRzU2NhbGUsIDIuMCkKKyAgICAgICAgfQogICAgIH0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29t
bW9uL3Rlc3Q0Lmh0bWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Ft
bHRlc3RzL2NvbW1vbi90ZXN0NC5odG1sCmluZGV4IGUzMWQ2ODlkODc5NTFkMTYxYTQxOTRhYmI5
ODllMzk1NzQ1NDcxNGUuLjhmNzVhZjYwNjk5ZDFjMmVhN2UxOTZiZjNlMTRmYjk5YTBmODdhNTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVz
dHMvY29tbW9uL3Rlc3Q0Lmh0bWwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vdGVzdDQuaHRtbApAQCAtOSw2ICs5LDcgQEAKICAgICAg
ICAgICAgICAgICAgZm9udC1zaXplOiA1MHB4OwogICAgICAgICAgICAgfQogICAgICAgICA8L3N0
eWxlPgorICAgICAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2Fs
ZT0yLjAiLz4KICAgICA8L2hlYWQ+CiAgICAgPGJvZHk+CiAgICAgICAgIDxkaXYgaWQ9ImNvbnRl
bnQiPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9x
bWx0ZXN0cy9jb21tb24vdGVzdDUuaHRtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL3Rlc3Q1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzYzMGVhNmJk
NmQ5ZGEwZDljYzE5ZWFiYzc4YWZhZmM2MzBhMzBmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL3Rlc3Q1Lmh0
bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT5Mb2NhbCBw
YWdlIHdpdGggdmlld3BvcnQgbWV0YSB0YWc6IHdpZHRoPWRldmljZS13aWR0aDwvdGl0bGU+Cisg
ICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCIvPgor
ICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ym9keSB7d2lk
dGg6IDk2MHB4OyBoZWlnaHQ6IDE0NDBweDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwO308L3N0eWxl
PgorICAgIDxkaXY+YmxhaDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKaW5kZXggMDJm
ZDNiNjk5ZGI1MDIzYWFhMjBlMzAxZmI1ZWNhMTgwMjMzNmZlOC4uOGQzNDVhMWE4YTBmNTNlNjI5
MGI1ZmU2ZTUzNzY4YTEyMWVlOTQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcApAQCAtNzIsNiArNzIsNyBAQCBQYWdlVmll
d3BvcnRDb250cm9sbGVyOjpQYWdlVmlld3BvcnRDb250cm9sbGVyKFdlYktpdDo6V2ViUGFnZVBy
b3h5KiBwcm94eSwgUGFnZQogICAgIG1fcmF3QXR0cmlidXRlcy5taW5pbXVtU2NhbGUgPSAxOwog
ICAgIG1fcmF3QXR0cmlidXRlcy5tYXhpbXVtU2NhbGUgPSAxOwogICAgIG1fcmF3QXR0cmlidXRl
cy51c2VyU2NhbGFibGUgPSBtX2FsbG93c1VzZXJTY2FsaW5nOworICAgIG1fcmF3QXR0cmlidXRl
cy5pbml0aWFsbHlGaXRUb1dpZHRoID0gdHJ1ZTsKIAogICAgIEFTU0VSVChtX2NsaWVudCk7CiAg
ICAgbV9jbGllbnQtPnNldENvbnRyb2xsZXIodGhpcyk7CkBAIC0xNTcsNyArMTU4LDggQEAgdm9p
ZCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjpwYWdlVHJhbnNpdGlvblZpZXdwb3J0UmVhZHkoKQog
ewogICAgIGlmICghbV9yYXdBdHRyaWJ1dGVzLmxheW91dFNpemUuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIG1faGFkVXNlckludGVyYWN0aW9uID0gZmFsc2U7Ci0gICAgICAgIGFwcGx5U2NhbGVBZnRl
clJlbmRlcmluZ0NvbnRlbnRzKGlubmVyQm91bmRlZFZpZXdwb3J0U2NhbGUodG9WaWV3cG9ydFNj
YWxlKG1fcmF3QXR0cmlidXRlcy5pbml0aWFsU2NhbGUpKSk7CisgICAgICAgIGZsb2F0IGluaXRp
YWxTY2FsZSA9IG1fcmF3QXR0cmlidXRlcy5pbml0aWFsbHlGaXRUb1dpZHRoID8gbV9taW5pbXVt
U2NhbGVUb0ZpdCA6IG1fcmF3QXR0cmlidXRlcy5pbml0aWFsU2NhbGU7CisgICAgICAgIGFwcGx5
U2NhbGVBZnRlclJlbmRlcmluZ0NvbnRlbnRzKGlubmVyQm91bmRlZFZpZXdwb3J0U2NhbGUodG9W
aWV3cG9ydFNjYWxlKGluaXRpYWxTY2FsZSkpKTsKICAgICB9CiAKICAgICAvLyBBdCB0aGlzIHBv
aW50IHdlIHNob3VsZCBhbHJlYWR5IGhhdmUgcmVjZWl2ZWQgdGhlIGZpcnN0IHZpZXdwb3J0IGFy
Z3VtZW50cyBhbmQgdGhlIHJlcXVlc3RlZCBzY3JvbGwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169421</attachid>
            <date>2012-10-18 08:41:10 -0700</date>
            <delta_ts>2012-10-30 08:24:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99715-20121018173953.patch</filename>
            <type>text/plain</type>
            <size>7576</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWNlYTA1MjFmOGUwYjI3
MzUxZTM3Yzg4M2M3MGIxNjI3Mzc2OTJlNC4uNGJiMWQxZTY3MGMxMGJiYjQzMDU2MGUzZmQwYTlj
YmFjNDRlM2RiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTEwLTE4ICBBbmRy
YXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAZGlnaWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBG
aXQtdG8td2lkdGggYnJva2VuIG9uIHBhZ2VzIHdpdGggdmlld3BvcnQgbWV0YSB0YWcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NzE1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgYm9vbCB0aGF0
IGluZGljYXRlcyBpZiB0aGUgY29udGVudCBoYWQgYW4gZXhwbGljaXQKKyAgICAgICAgaW5pdGlh
bC1zY2FsZSBpbiB0aGUgdmlld3BvcnQgbWV0YSB0YWcuCisKKyAgICAgICAgKiBkb20vVmlld3Bv
cnRBcmd1bWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZVZpZXdwb3J0QXR0cmli
dXRlcyk6CisgICAgICAgICogZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmg6CisgICAgICAgIChWaWV3
cG9ydEF0dHJpYnV0ZXMpOgorCiAyMDEyLTEwLTE3ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1h
bmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBdWRpb0J1c0d0ayBzb21ldGltZXMgZmFp
bHMgdG8gbG9hZCB0aGUgSFJURiBkYXRhYmFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGI0NmNjNDc1NTU1NmYx
ZTljOTg5ODAwMTViNGM5MTkyNzljZTFhMjcuLjY3MzU3NWVjNTQwM2VmNjE3ZGUxZGM2MmZmZGU1
ZjkxZGZlODYxNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0xMC0xOCAgQW5k
cmFzIEJlY3NpICA8YW5kcmFzLmJlY3NpQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0g
Rml0LXRvLXdpZHRoIGJyb2tlbiBvbiBwYWdlcyB3aXRoIHZpZXdwb3J0IG1ldGEgdGFnCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTcxNQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBpbml0aWFsIHNj
YWxlIGZyb20gdGhlIHZpZXdwb3J0IGF0dHJpYnV0ZXMgc2hvdWxkIG9ubHkKKyAgICAgICAgYmUg
YXBwbGllZCBpZiB0aGUgc2NhbGUgd2FzIGV4cGxpY2l0bHkgc3BlY2lmaWVkIGluIHRoZQorICAg
ICAgICB2aWV3cG9ydCBtZXRhIHRhZy4KKyAgICAgICAgSWYgdGhlIGluaXRpYWwgc2NhbGUgaXMg
YXV0byBpdCBzaG91bGQgYmUgY2FsY3VsYXRlZCB1c2luZworICAgICAgICB0aGUgZmluYWwgY29u
dGVudHMgc2l6ZSwgd2hpY2ggbWlnaHQgYmUgbGFyZ2VyIHRoYW4gdGhlCisgICAgICAgIGxheW91
dCBzaXplLCBzbyB0aGF0IHRoZSBjb250ZW50IGZpdHMgaG9yaXpvbnRhbGx5IGludG8KKyAgICAg
ICAgdGhlIHZpZXcuCisKKyAgICAgICAgQWxzbyBhZGQgUU1MIHVuaXQgdGVzdHMgdGhhdCBjb3Zl
ciB0aGlzIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3Rz
L3FtbHRlc3RzL1dlYlZpZXcvdHN0X2ZpdFRvVmlldy5xbWw6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vdGVzdDUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpQYWdlVmlld3BvcnRDb250cm9sbGVyOjpQYWdlVmlld3BvcnRDb250cm9sbGVyKToKKyAgICAg
ICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6cGFnZVRyYW5zaXRpb25WaWV3cG9y
dFJlYWR5KToKKwogMjAxMi0xMC0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gRG9uJ3QgdXNlIHRoZSBDIEFQSSBpbnRlcm5hbGx5
IGluIFdlYktpdFNldHRpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3Bv
cnRBcmd1bWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNw
cAppbmRleCBlNDU3YjAzN2EyZDIwMjQxNjY5ZTJkZTBkNDBlN2RkODRmZTUyOGRiLi4xMjRlYzQ0
NGQ4MDllODRlZmVjOTRkMDhlNGE4YWZlNmM0MTVjMDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9W
aWV3cG9ydEFyZ3VtZW50cy5jcHAKQEAgLTUzLDYgKzUzLDcgQEAgVmlld3BvcnRBdHRyaWJ1dGVz
IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoVmlld3BvcnRBcmd1bWVudHMgYXJncywgaW50IGRl
c2t0b3AKICAgICBBU1NFUlQoYXZhaWxhYmxlV2lkdGggPiAwICYmIGF2YWlsYWJsZUhlaWdodCA+
IDApOwogCiAgICAgcmVzdWx0LmRldmljZVBpeGVsUmF0aW8gPSBkZXZpY2VQaXhlbFJhdGlvOwor
ICAgIHJlc3VsdC5pbml0aWFsbHlGaXRUb1dpZHRoID0gYXJncy5pbml0aWFsU2NhbGUgPT0gVmll
d3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bzsKIAogICAgIC8vIFJlc29sdmUgbm9uLSdhdXRvJyB3
aWR0aCBhbmQgaGVpZ2h0IHRvIHBpeGVsIHZhbHVlcy4KICAgICBpZiAocmVzdWx0LmRldmljZVBp
eGVsUmF0aW8gIT0gMS4wKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3Bv
cnRBcmd1bWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oCmlu
ZGV4IDk0ZmIxZmFiODBhZTcwZGQ4M2VkMWMyMzI1MDY2ODZiZTRkMDFmNGYuLmUyNzg5YjJlNGY5
YjcxNzcyMDhkNmY1YWUxNzdiNTI1Y2I5ZGYyMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9y
dEFyZ3VtZW50cy5oCkBAIC01Miw2ICs1Miw3IEBAIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXMg
ewogICAgIGZsb2F0IG1heGltdW1TY2FsZTsKIAogICAgIGZsb2F0IHVzZXJTY2FsYWJsZTsKKyAg
ICBib29sIGluaXRpYWxseUZpdFRvV2lkdGg7CiB9OwogCiBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVu
dHMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9x
bWx0ZXN0cy9XZWJWaWV3L3RzdF9maXRUb1ZpZXcucW1sIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9maXRUb1ZpZXcucW1sCmluZGV4
IGZjZDNkOTMwMTE5MzQwYmJkMjVlMjU3NGE4NjE2YWE1YTY1NzY1ODQuLjAxMTkyYThhZjM4OGQ1
MTczOTQ4Y2E5NTBmZDg4ZGQzNzFhMWQ0MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZml0VG9WaWV3LnFtbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZp
ZXcvdHN0X2ZpdFRvVmlldy5xbWwKQEAgLTkzLDUgKzkzLDM5IEBAIEl0ZW0gewogICAgICAgICAg
ICAgY29tcGFyZShkb2N1bWVudFNpemUoKSwgIjk2MHgxNDQwIikKICAgICAgICAgICAgIGNvbXBh
cmUodGVzdC5jb250ZW50c1NjYWxlLCAxLjApCiAgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biB0ZXN0X2xvY2FsUGFnZURldmljZVdpZHRoKCkgeworICAgICAgICAgICAgd2ViVmlldy51cmwg
PSAiYWJvdXQ6YmxhbmsiCisgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1
Y2NlZWRlZCgpKQorCisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9ICIuLi9jb21tb24vdGVzdDUu
aHRtbCIKKyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkp
CisgICAgICAgICAgICBjb21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgMC41KQorCisgICAgICAg
ICAgICAvLyBBZGQgdXNlciBpbnRlcmFjdGlvbi4KKyAgICAgICAgICAgIHRlc3QudG91Y2hUYXAo
d2ViVmlldywgMTAsIDEwKQorCisgICAgICAgICAgICB3ZWJWaWV3LnJlbG9hZCgpCisgICAgICAg
ICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQorICAgICAgICAgICAg
Ly8gVGhlIHBhZ2Ugc2hvdWxkIHN0aWxsIGZpdCB0byB2aWV3IGFmdGVyIGEgcmVsb2FkCisgICAg
ICAgICAgICBjb21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgMC41KQorICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gdGVzdF9sb2NhbFBhZ2VJbml0aWFsU2NhbGUoKSB7CisgICAgICAgICAg
ICB3ZWJWaWV3LnVybCA9ICJhYm91dDpibGFuayIKKyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3
LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCisKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gIi4u
L2NvbW1vbi90ZXN0NC5odG1sIgorICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvckxv
YWRTdWNjZWVkZWQoKSkKKworICAgICAgICAgICAgY29tcGFyZSh0ZXN0LmNvbnRlbnRzU2NhbGUs
IDIuMCkKKworICAgICAgICAgICAgLy8gQWRkIHVzZXIgaW50ZXJhY3Rpb24uCisgICAgICAgICAg
ICB0ZXN0LnRvdWNoVGFwKHdlYlZpZXcsIDEwLCAxMCkKKworICAgICAgICAgICAgd2ViVmlldy5y
ZWxvYWQoKQorICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQo
KSkKKyAgICAgICAgICAgIGNvbXBhcmUodGVzdC5jb250ZW50c1NjYWxlLCAyLjApCisgICAgICAg
IH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi90ZXN0NC5odG1sIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vdGVzdDQuaHRtbAppbmRleCBlMzFkNjg5
ZDg3OTUxZDE2MWE0MTk0YWJiOTg5ZTM5NTc0NTQ3MTRlLi44Zjc1YWY2MDY5OWQxYzJlYTdlMTk2
YmYzZTE0ZmI5OWEwZjg3YTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi90ZXN0NC5odG1sCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL3Rlc3Q0Lmh0bWwKQEAg
LTksNiArOSw3IEBACiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNTBweDsKICAgICAgICAg
ICAgIH0KICAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNv
bnRlbnQ9ImluaXRpYWwtc2NhbGU9Mi4wIi8+CiAgICAgPC9oZWFkPgogICAgIDxib2R5PgogICAg
ICAgICA8ZGl2IGlkPSJjb250ZW50Ij4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL3Rlc3Q1Lmh0bWwgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi90ZXN0NS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM2MzBlYTZiZDZkOWRhMGQ5Y2MxOWVhYmM3OGFmYWZjNjMwYTMwZjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRl
c3RzL2NvbW1vbi90ZXN0NS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorICA8aGVhZD4K
KyAgICA8dGl0bGU+TG9jYWwgcGFnZSB3aXRoIHZpZXdwb3J0IG1ldGEgdGFnOiB3aWR0aD1kZXZp
Y2Utd2lkdGg8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0
aD1kZXZpY2Utd2lkdGgiLz4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c3R5bGUgdHlwZT0i
dGV4dC9jc3MiPmJvZHkge3dpZHRoOiA5NjBweDsgaGVpZ2h0OiAxNDQwcHg7IG1hcmdpbjogMDsg
cGFkZGluZzogMDt9PC9zdHlsZT4KKyAgICA8ZGl2PmJsYWg8L2Rpdj4KKyAgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRy
b2xsZXIuY3BwCmluZGV4IDAyZmQzYjY5OWRiNTAyM2FhYTIwZTMwMWZiNWVjYTE4MDIzMzZmZTgu
LjhkMzQ1YTFhOGEwZjUzZTYyOTBiNWZlNmU1Mzc2OGExMjFlZTk0NWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKQEAgLTcy
LDYgKzcyLDcgQEAgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6UGFnZVZpZXdwb3J0Q29udHJvbGxl
cihXZWJLaXQ6OldlYlBhZ2VQcm94eSogcHJveHksIFBhZ2UKICAgICBtX3Jhd0F0dHJpYnV0ZXMu
bWluaW11bVNjYWxlID0gMTsKICAgICBtX3Jhd0F0dHJpYnV0ZXMubWF4aW11bVNjYWxlID0gMTsK
ICAgICBtX3Jhd0F0dHJpYnV0ZXMudXNlclNjYWxhYmxlID0gbV9hbGxvd3NVc2VyU2NhbGluZzsK
KyAgICBtX3Jhd0F0dHJpYnV0ZXMuaW5pdGlhbGx5Rml0VG9XaWR0aCA9IHRydWU7CiAKICAgICBB
U1NFUlQobV9jbGllbnQpOwogICAgIG1fY2xpZW50LT5zZXRDb250cm9sbGVyKHRoaXMpOwpAQCAt
MTU3LDcgKzE1OCw4IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6cGFnZVRyYW5zaXRp
b25WaWV3cG9ydFJlYWR5KCkKIHsKICAgICBpZiAoIW1fcmF3QXR0cmlidXRlcy5sYXlvdXRTaXpl
LmlzRW1wdHkoKSkgewogICAgICAgICBtX2hhZFVzZXJJbnRlcmFjdGlvbiA9IGZhbHNlOwotICAg
ICAgICBhcHBseVNjYWxlQWZ0ZXJSZW5kZXJpbmdDb250ZW50cyhpbm5lckJvdW5kZWRWaWV3cG9y
dFNjYWxlKHRvVmlld3BvcnRTY2FsZShtX3Jhd0F0dHJpYnV0ZXMuaW5pdGlhbFNjYWxlKSkpOwor
ICAgICAgICBmbG9hdCBpbml0aWFsU2NhbGUgPSBtX3Jhd0F0dHJpYnV0ZXMuaW5pdGlhbGx5Rml0
VG9XaWR0aCA/IG1fbWluaW11bVNjYWxlVG9GaXQgOiBtX3Jhd0F0dHJpYnV0ZXMuaW5pdGlhbFNj
YWxlOworICAgICAgICBhcHBseVNjYWxlQWZ0ZXJSZW5kZXJpbmdDb250ZW50cyhpbm5lckJvdW5k
ZWRWaWV3cG9ydFNjYWxlKHRvVmlld3BvcnRTY2FsZShpbml0aWFsU2NhbGUpKSk7CiAgICAgfQog
CiAgICAgLy8gQXQgdGhpcyBwb2ludCB3ZSBzaG91bGQgYWxyZWFkeSBoYXZlIHJlY2VpdmVkIHRo
ZSBmaXJzdCB2aWV3cG9ydCBhcmd1bWVudHMgYW5kIHRoZSByZXF1ZXN0ZWQgc2Nyb2xsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171456</attachid>
            <date>2012-10-30 08:24:11 -0700</date>
            <delta_ts>2012-11-06 09:22:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99715-20121030162244.patch</filename>
            <type>text/plain</type>
            <size>7753</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyOTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZlYjEwYjg4ZjUxMjJh
YjI0ZGI5ZTdiNjk3ZmFkMjk0YmY0YzdiNi4uMzY5NDdlNmQxMTY3MjE2OThhM2UwNzVkNWQwZDJm
ODBhOGFkZjZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTEwLTMwICBBbmRy
YXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAZGlnaWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBG
aXQtdG8td2lkdGggYnJva2VuIG9uIHBhZ2VzIHdpdGggdmlld3BvcnQgbWV0YSB0YWcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NzE1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgYm9vbCB0aGF0
IGluZGljYXRlcyBpZiB0aGUgY29udGVudCBoYWQgYW4gZXhwbGljaXQKKyAgICAgICAgaW5pdGlh
bC1zY2FsZSBpbiB0aGUgdmlld3BvcnQgbWV0YSB0YWcuCisKKyAgICAgICAgKiBkb20vVmlld3Bv
cnRBcmd1bWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZVZpZXdwb3J0QXR0cmli
dXRlcyk6CisgICAgICAgICogZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmg6CisgICAgICAgIChWaWV3
cG9ydEF0dHJpYnV0ZXMpOgorCiAyMDEyLTEwLTMwICBBbmRyZXkgTHVzaG5pa292ICA8bHVzaG5p
a292QGdvb2dsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkcyBpc093blByb3Bl
cnR5IHRvIHJlbW90ZSBwcm90b2NvbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDU4NzYwY2QwOTE2MTBkMjE1NjY5
ZjdjYTFiM2UxZjcxMzU5MDBjOTMuLjQwZDVjOWQ1NDMzYTA0M2Y0OGRkMzg3MWExNzAzNDBmMGIw
ZTQ4MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyOCBAQAogMjAxMi0xMC0zMCAgQW5kcmFzIEJl
Y3NpICA8YW5kcmFzLmJlY3NpQGRpZ2lhLmNvbT4KIAorICAgICAgICBbUXRdW1dLMl0gRml0LXRv
LXdpZHRoIGJyb2tlbiBvbiBwYWdlcyB3aXRoIHZpZXdwb3J0IG1ldGEgdGFnCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTcxNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBpbml0aWFsIHNjYWxlIGZy
b20gdGhlIHZpZXdwb3J0IGF0dHJpYnV0ZXMgc2hvdWxkIG9ubHkKKyAgICAgICAgYmUgYXBwbGll
ZCBpZiB0aGUgc2NhbGUgd2FzIGV4cGxpY2l0bHkgc3BlY2lmaWVkIGluIHRoZQorICAgICAgICB2
aWV3cG9ydCBtZXRhIHRhZy4KKyAgICAgICAgSWYgdGhlIGluaXRpYWwgc2NhbGUgaXMgYXV0byBp
dCBzaG91bGQgYmUgY2FsY3VsYXRlZCB1c2luZworICAgICAgICB0aGUgZmluYWwgY29udGVudHMg
c2l6ZSwgd2hpY2ggbWlnaHQgYmUgbGFyZ2VyIHRoYW4gdGhlCisgICAgICAgIGxheW91dCBzaXpl
LCBzbyB0aGF0IHRoZSBjb250ZW50IGZpdHMgaG9yaXpvbnRhbGx5IGludG8KKyAgICAgICAgdGhl
IHZpZXcuCisKKyAgICAgICAgQWxzbyBhZGQgUU1MIHVuaXQgdGVzdHMgdGhhdCBjb3ZlciB0aGlz
IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRl
c3RzL1dlYlZpZXcvdHN0X2ZpdFRvVmlldy5xbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vdGVzdDUuaHRtbDogQWRkZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdl
Vmlld3BvcnRDb250cm9sbGVyOjpQYWdlVmlld3BvcnRDb250cm9sbGVyKToKKyAgICAgICAgKFdl
YktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6cGFnZVRyYW5zaXRpb25WaWV3cG9ydFJlYWR5
KToKKworMjAxMi0xMC0zMCAgQW5kcmFzIEJlY3NpICA8YW5kcmFzLmJlY3NpQGRpZ2lhLmNvbT4K
KwogICAgICAgICBbUXRdW1dLMl0gUmVtb3ZlIFZpZXdwb3J0VXBkYXRlRGVmZXJyZXIgZnJvbSBQ
YWdlVmlld3BvcnRDb250cm9sbGVyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDA2NjUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Zp
ZXdwb3J0QXJndW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50
cy5jcHAKaW5kZXggMDE1MTI5NGNjNmUyMDM2ZGY0ZTNkZmUwMWU1YmMxYmRiZjE1ZmEwMC4uMjg5
OWI2ZjU3OGVkYzIzZWRkM2I1OGFlMjIzM2M4NmRlODMwZjNkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVmlld3BvcnRBcmd1bWVudHMuY3BwCkBAIC05MCw2ICs5MCw4IEBAIFZpZXdwb3J0QXR0cmli
dXRlcyBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKFZpZXdwb3J0QXJndW1lbnRzIGFyZ3MsIGlu
dCBkZXNrdG9wCiAgICAgaWYgKGFyZ3MuaGVpZ2h0ICE9IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1
ZUF1dG8pCiAgICAgICAgIGFyZ3MuaGVpZ2h0ID0gbWluKGZsb2F0KDEwMDAwKSwgbWF4KGFyZ3Mu
aGVpZ2h0LCBmbG9hdCgxKSkpOwogCisgICAgcmVzdWx0LmluaXRpYWxseUZpdFRvV2lkdGggPSBh
cmdzLmluaXRpYWxTY2FsZSA9PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvOworCiAgICAg
aWYgKGFyZ3MuaW5pdGlhbFNjYWxlICE9IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8pCiAg
ICAgICAgIGFyZ3MuaW5pdGlhbFNjYWxlID0gbWluKGZsb2F0KDEwKSwgbWF4KGFyZ3MuaW5pdGlh
bFNjYWxlLCBmbG9hdCgwLjEpKSk7CiAgICAgaWYgKGFyZ3MubWluaW11bVNjYWxlICE9IFZpZXdw
b3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Vmlld3BvcnRBcmd1bWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50
cy5oCmluZGV4IGZjMGQxMjVmMDcwZTQ5MTRhZTY3MjlkMTJhNmM5OWVhYTZmMmFhOWYuLmU2NDM2
ZGMxNmUxYWIzMzljZjM3M2NkZTcwMGI2ZGQ5ZjUxNzM0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9W
aWV3cG9ydEFyZ3VtZW50cy5oCkBAIC01MCw2ICs1MCw3IEBAIHN0cnVjdCBWaWV3cG9ydEF0dHJp
YnV0ZXMgewogICAgIGZsb2F0IG1heGltdW1TY2FsZTsKIAogICAgIGZsb2F0IHVzZXJTY2FsYWJs
ZTsKKyAgICBib29sIGluaXRpYWxseUZpdFRvV2lkdGg7CiB9OwogCiBzdHJ1Y3QgVmlld3BvcnRB
cmd1bWVudHMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9maXRUb1ZpZXcucW1sIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9maXRUb1ZpZXcucW1s
CmluZGV4IGZjZDNkOTMwMTE5MzQwYmJkMjVlMjU3NGE4NjE2YWE1YTY1NzY1ODQuLjAxMTkyYThh
ZjM4OGQ1MTczOTQ4Y2E5NTBmZDg4ZGQzNzFhMWQ0MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZml0VG9WaWV3
LnFtbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3Rz
L1dlYlZpZXcvdHN0X2ZpdFRvVmlldy5xbWwKQEAgLTkzLDUgKzkzLDM5IEBAIEl0ZW0gewogICAg
ICAgICAgICAgY29tcGFyZShkb2N1bWVudFNpemUoKSwgIjk2MHgxNDQwIikKICAgICAgICAgICAg
IGNvbXBhcmUodGVzdC5jb250ZW50c1NjYWxlLCAxLjApCiAgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiB0ZXN0X2xvY2FsUGFnZURldmljZVdpZHRoKCkgeworICAgICAgICAgICAgd2ViVmll
dy51cmwgPSAiYWJvdXQ6YmxhbmsiCisgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9y
TG9hZFN1Y2NlZWRlZCgpKQorCisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9ICIuLi9jb21tb24v
dGVzdDUuaHRtbCIKKyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2Vl
ZGVkKCkpCisgICAgICAgICAgICBjb21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgMC41KQorCisg
ICAgICAgICAgICAvLyBBZGQgdXNlciBpbnRlcmFjdGlvbi4KKyAgICAgICAgICAgIHRlc3QudG91
Y2hUYXAod2ViVmlldywgMTAsIDEwKQorCisgICAgICAgICAgICB3ZWJWaWV3LnJlbG9hZCgpCisg
ICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQorICAgICAg
ICAgICAgLy8gVGhlIHBhZ2Ugc2hvdWxkIHN0aWxsIGZpdCB0byB2aWV3IGFmdGVyIGEgcmVsb2Fk
CisgICAgICAgICAgICBjb21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgMC41KQorICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9sb2NhbFBhZ2VJbml0aWFsU2NhbGUoKSB7CisgICAg
ICAgICAgICB3ZWJWaWV3LnVybCA9ICJhYm91dDpibGFuayIKKyAgICAgICAgICAgIHZlcmlmeSh3
ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCisKKyAgICAgICAgICAgIHdlYlZpZXcudXJs
ID0gIi4uL2NvbW1vbi90ZXN0NC5odG1sIgorICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2Fp
dEZvckxvYWRTdWNjZWVkZWQoKSkKKworICAgICAgICAgICAgY29tcGFyZSh0ZXN0LmNvbnRlbnRz
U2NhbGUsIDIuMCkKKworICAgICAgICAgICAgLy8gQWRkIHVzZXIgaW50ZXJhY3Rpb24uCisgICAg
ICAgICAgICB0ZXN0LnRvdWNoVGFwKHdlYlZpZXcsIDEwLCAxMCkKKworICAgICAgICAgICAgd2Vi
Vmlldy5yZWxvYWQoKQorICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvckxvYWRTdWNj
ZWVkZWQoKSkKKyAgICAgICAgICAgIGNvbXBhcmUodGVzdC5jb250ZW50c1NjYWxlLCAyLjApCisg
ICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi90ZXN0NC5odG1sIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vdGVzdDQuaHRtbAppbmRleCBl
MzFkNjg5ZDg3OTUxZDE2MWE0MTk0YWJiOTg5ZTM5NTc0NTQ3MTRlLi44Zjc1YWY2MDY5OWQxYzJl
YTdlMTk2YmYzZTE0ZmI5OWEwZjg3YTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi90ZXN0NC5odG1sCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL3Rlc3Q0Lmh0
bWwKQEAgLTksNiArOSw3IEBACiAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNTBweDsKICAg
ICAgICAgICAgIH0KICAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPG1ldGEgbmFtZT0idmlld3Bv
cnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9Mi4wIi8+CiAgICAgPC9oZWFkPgogICAgIDxib2R5
PgogICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL3Rlc3Q1Lmh0bWwgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi90ZXN0NS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM2MzBlYTZiZDZkOWRhMGQ5Y2MxOWVhYmM3OGFmYWZjNjMwYTMwZjUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3Rz
L3FtbHRlc3RzL2NvbW1vbi90ZXN0NS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorICA8
aGVhZD4KKyAgICA8dGl0bGU+TG9jYWwgcGFnZSB3aXRoIHZpZXdwb3J0IG1ldGEgdGFnOiB3aWR0
aD1kZXZpY2Utd2lkdGg8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50
PSJ3aWR0aD1kZXZpY2Utd2lkdGgiLz4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c3R5bGUg
dHlwZT0idGV4dC9jc3MiPmJvZHkge3dpZHRoOiA5NjBweDsgaGVpZ2h0OiAxNDQwcHg7IG1hcmdp
bjogMDsgcGFkZGluZzogMDt9PC9zdHlsZT4KKyAgICA8ZGl2PmJsYWg8L2Rpdj4KKyAgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3
cG9ydENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9y
dENvbnRyb2xsZXIuY3BwCmluZGV4IGM3MTBkNmFiZTJjYzY5Y2M1YTFiMzJmZTQ3NGViYTI1OWUx
ZmY0NmQuLmI4YTFkZmE3ZjdjMjNiOGMyNjRjN2IzN2RjNDlkODY2OTA5M2U1ZDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAK
QEAgLTU0LDYgKzU0LDcgQEAgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6UGFnZVZpZXdwb3J0Q29u
dHJvbGxlcihXZWJLaXQ6OldlYlBhZ2VQcm94eSogcHJveHksIFBhZ2UKICAgICBtX3Jhd0F0dHJp
YnV0ZXMubWluaW11bVNjYWxlID0gMTsKICAgICBtX3Jhd0F0dHJpYnV0ZXMubWF4aW11bVNjYWxl
ID0gMTsKICAgICBtX3Jhd0F0dHJpYnV0ZXMudXNlclNjYWxhYmxlID0gbV9hbGxvd3NVc2VyU2Nh
bGluZzsKKyAgICBtX3Jhd0F0dHJpYnV0ZXMuaW5pdGlhbGx5Rml0VG9XaWR0aCA9IHRydWU7CiAK
ICAgICBBU1NFUlQobV9jbGllbnQpOwogICAgIG1fY2xpZW50LT5zZXRDb250cm9sbGVyKHRoaXMp
OwpAQCAtMTM5LDcgKzE0MCw4IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6cGFnZVRy
YW5zaXRpb25WaWV3cG9ydFJlYWR5KCkKIHsKICAgICBpZiAoIW1fcmF3QXR0cmlidXRlcy5sYXlv
dXRTaXplLmlzRW1wdHkoKSkgewogICAgICAgICBtX2hhZFVzZXJJbnRlcmFjdGlvbiA9IGZhbHNl
OwotICAgICAgICBhcHBseVNjYWxlQWZ0ZXJSZW5kZXJpbmdDb250ZW50cyhpbm5lckJvdW5kZWRW
aWV3cG9ydFNjYWxlKHRvVmlld3BvcnRTY2FsZShtX3Jhd0F0dHJpYnV0ZXMuaW5pdGlhbFNjYWxl
KSkpOworICAgICAgICBmbG9hdCBpbml0aWFsU2NhbGUgPSBtX3Jhd0F0dHJpYnV0ZXMuaW5pdGlh
bGx5Rml0VG9XaWR0aCA/IG1fbWluaW11bVNjYWxlVG9GaXQgOiBtX3Jhd0F0dHJpYnV0ZXMuaW5p
dGlhbFNjYWxlOworICAgICAgICBhcHBseVNjYWxlQWZ0ZXJSZW5kZXJpbmdDb250ZW50cyhpbm5l
ckJvdW5kZWRWaWV3cG9ydFNjYWxlKHRvVmlld3BvcnRTY2FsZShpbml0aWFsU2NhbGUpKSk7CiAg
ICAgfQogCiAgICAgLy8gQXQgdGhpcyBwb2ludCB3ZSBzaG91bGQgYWxyZWFkeSBoYXZlIHJlY2Vp
dmVkIHRoZSBmaXJzdCB2aWV3cG9ydCBhcmd1bWVudHMgYW5kIHRoZSByZXF1ZXN0ZWQgc2Nyb2xs
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172602</attachid>
            <date>2012-11-06 09:22:51 -0800</date>
            <delta_ts>2012-11-06 09:35:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99715-20121106182134.patch</filename>
            <type>text/plain</type>
            <size>7704</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGRjZDAwYmRmZjU0MzM0
YTJkNTJiZjNlMjI4M2QyNzU5NmI1Zjc3Zi4uY2JlYTc4YWYwMjBkYTgzNTM0ZWUwNjkxMWE0NTZh
MjNhNTdjNTgwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTExLTA2ICBBbmRy
YXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAZGlnaWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBG
aXQtdG8td2lkdGggYnJva2VuIG9uIHBhZ2VzIHdpdGggdmlld3BvcnQgbWV0YSB0YWcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NzE1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgYm9vbCB0aGF0
IGluZGljYXRlcyBpZiB0aGUgY29udGVudCBoYWQgYW4gZXhwbGljaXQKKyAgICAgICAgaW5pdGlh
bC1zY2FsZSBpbiB0aGUgdmlld3BvcnQgbWV0YSB0YWcuCisKKyAgICAgICAgKiBkb20vVmlld3Bv
cnRBcmd1bWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZVZpZXdwb3J0QXR0cmli
dXRlcyk6CisgICAgICAgICogZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmg6CisgICAgICAgIChWaWV3
cG9ydEF0dHJpYnV0ZXMpOgorCiAyMDEyLTExLTA2ICBBYXJvbiBDb2x3ZWxsICA8YWNvbHdlbGxA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIEhlYXAtYnVmZmVyLW92ZXJmbG93IGluIFdlYkNvcmU6
OlRleHRUcmFja0N1ZUxpc3Q6OmFkZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDlkMDYyYjdiNGU1Mzk3MmQ0ZGI2
MTI0MzE1NjEzYzljMDhjZDExNjIuLjBiYTVjMDY0NTQ5MDQzM2ExZWJmMDg0N2Q0NTY1OTUwZmFi
ODI1YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0xMS0wNiAgQW5kcmFzIEJl
Y3NpICA8YW5kcmFzLmJlY3NpQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gRml0LXRv
LXdpZHRoIGJyb2tlbiBvbiBwYWdlcyB3aXRoIHZpZXdwb3J0IG1ldGEgdGFnCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTcxNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBpbml0aWFsIHNjYWxlIGZy
b20gdGhlIHZpZXdwb3J0IGF0dHJpYnV0ZXMgc2hvdWxkIG9ubHkKKyAgICAgICAgYmUgYXBwbGll
ZCBpZiB0aGUgc2NhbGUgd2FzIGV4cGxpY2l0bHkgc3BlY2lmaWVkIGluIHRoZQorICAgICAgICB2
aWV3cG9ydCBtZXRhIHRhZy4KKyAgICAgICAgSWYgdGhlIGluaXRpYWwgc2NhbGUgaXMgYXV0byBp
dCBzaG91bGQgYmUgY2FsY3VsYXRlZCB1c2luZworICAgICAgICB0aGUgZmluYWwgY29udGVudHMg
c2l6ZSwgd2hpY2ggbWlnaHQgYmUgbGFyZ2VyIHRoYW4gdGhlCisgICAgICAgIGxheW91dCBzaXpl
LCBzbyB0aGF0IHRoZSBjb250ZW50IGZpdHMgaG9yaXpvbnRhbGx5IGludG8KKyAgICAgICAgdGhl
IHZpZXcuCisKKyAgICAgICAgQWxzbyBhZGQgUU1MIHVuaXQgdGVzdHMgdGhhdCBjb3ZlciB0aGlz
IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRl
c3RzL1dlYlZpZXcvdHN0X2ZpdFRvVmlldy5xbWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vdGVzdDUuaHRtbDogQWRkZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdl
Vmlld3BvcnRDb250cm9sbGVyOjpQYWdlVmlld3BvcnRDb250cm9sbGVyKToKKyAgICAgICAgKFdl
YktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6cGFnZVRyYW5zaXRpb25WaWV3cG9ydFJlYWR5
KToKKwogMjAxMi0xMS0wNiAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5l
dD4KIAogICAgICAgICBDb29yZGluYXRlZCBHcmFwaGljczogUmVtb3ZlIGEgcGFyZW50IG1lbWJl
ciBpbiBXZWJMYXllckluZm8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3Bv
cnRBcmd1bWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNw
cAppbmRleCAwMTUxMjk0Y2M2ZTIwMzZkZjRlM2RmZTAxZTViYzFiZGJmMTVmYTAwLi4xMTkxMjJk
MjA4YTI0MjJkMGUyYWQzOGQzNDhjMjIzYmFiZGY5MTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9W
aWV3cG9ydEFyZ3VtZW50cy5jcHAKQEAgLTkwLDYgKzkwLDggQEAgVmlld3BvcnRBdHRyaWJ1dGVz
IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoVmlld3BvcnRBcmd1bWVudHMgYXJncywgaW50IGRl
c2t0b3AKICAgICBpZiAoYXJncy5oZWlnaHQgIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0
bykKICAgICAgICAgYXJncy5oZWlnaHQgPSBtaW4oZmxvYXQoMTAwMDApLCBtYXgoYXJncy5oZWln
aHQsIGZsb2F0KDEpKSk7CiAKKyAgICByZXN1bHQuaW5pdGlhbGx5Rml0VG9WaWV3cG9ydCA9IGFy
Z3MuaW5pdGlhbFNjYWxlID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG87CisKICAgICBp
ZiAoYXJncy5pbml0aWFsU2NhbGUgIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykKICAg
ICAgICAgYXJncy5pbml0aWFsU2NhbGUgPSBtaW4oZmxvYXQoMTApLCBtYXgoYXJncy5pbml0aWFs
U2NhbGUsIGZsb2F0KDAuMSkpKTsKICAgICBpZiAoYXJncy5taW5pbXVtU2NhbGUgIT0gVmlld3Bv
cnRBcmd1bWVudHM6OlZhbHVlQXV0bykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9W
aWV3cG9ydEFyZ3VtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRz
LmgKaW5kZXggZmMwZDEyNWYwNzBlNDkxNGFlNjcyOWQxMmE2Yzk5ZWFhNmYyYWE5Zi4uNmJmZWIw
YTQzOTRjNzkzNGJmMzQ2MDcyOTc5ZTA4OTEzZGMyY2EwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Zp
ZXdwb3J0QXJndW1lbnRzLmgKQEAgLTUwLDYgKzUwLDcgQEAgc3RydWN0IFZpZXdwb3J0QXR0cmli
dXRlcyB7CiAgICAgZmxvYXQgbWF4aW11bVNjYWxlOwogCiAgICAgZmxvYXQgdXNlclNjYWxhYmxl
OworICAgIGJvb2wgaW5pdGlhbGx5Rml0VG9WaWV3cG9ydDsKIH07CiAKIHN0cnVjdCBWaWV3cG9y
dEFyZ3VtZW50cyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2ZpdFRvVmlldy5xbWwgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2ZpdFRvVmlldy5x
bWwKaW5kZXggZmNkM2Q5MzAxMTkzNDBiYmQyNWUyNTc0YTg2MTZhYTVhNjU3NjU4NC4uMDExOTJh
OGFmMzg4ZDUxNzM5NDhjYTk1MGZkODhkZDM3MWExZDQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9maXRUb1Zp
ZXcucW1sCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVz
dHMvV2ViVmlldy90c3RfZml0VG9WaWV3LnFtbApAQCAtOTMsNSArOTMsMzkgQEAgSXRlbSB7CiAg
ICAgICAgICAgICBjb21wYXJlKGRvY3VtZW50U2l6ZSgpLCAiOTYweDE0NDAiKQogICAgICAgICAg
ICAgY29tcGFyZSh0ZXN0LmNvbnRlbnRzU2NhbGUsIDEuMCkKICAgICAgICAgfQorCisgICAgICAg
IGZ1bmN0aW9uIHRlc3RfbG9jYWxQYWdlRGV2aWNlV2lkdGgoKSB7CisgICAgICAgICAgICB3ZWJW
aWV3LnVybCA9ICJhYm91dDpibGFuayIKKyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRG
b3JMb2FkU3VjY2VlZGVkKCkpCisKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gIi4uL2NvbW1v
bi90ZXN0NS5odG1sIgorICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvckxvYWRTdWNj
ZWVkZWQoKSkKKyAgICAgICAgICAgIGNvbXBhcmUodGVzdC5jb250ZW50c1NjYWxlLCAwLjUpCisK
KyAgICAgICAgICAgIC8vIEFkZCB1c2VyIGludGVyYWN0aW9uLgorICAgICAgICAgICAgdGVzdC50
b3VjaFRhcCh3ZWJWaWV3LCAxMCwgMTApCisKKyAgICAgICAgICAgIHdlYlZpZXcucmVsb2FkKCkK
KyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JMb2FkU3VjY2VlZGVkKCkpCisgICAg
ICAgICAgICAvLyBUaGUgcGFnZSBzaG91bGQgc3RpbGwgZml0IHRvIHZpZXcgYWZ0ZXIgYSByZWxv
YWQKKyAgICAgICAgICAgIGNvbXBhcmUodGVzdC5jb250ZW50c1NjYWxlLCAwLjUpCisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiB0ZXN0X2xvY2FsUGFnZUluaXRpYWxTY2FsZSgpIHsKKyAg
ICAgICAgICAgIHdlYlZpZXcudXJsID0gImFib3V0OmJsYW5rIgorICAgICAgICAgICAgdmVyaWZ5
KHdlYlZpZXcud2FpdEZvckxvYWRTdWNjZWVkZWQoKSkKKworICAgICAgICAgICAgd2ViVmlldy51
cmwgPSAiLi4vY29tbW9uL3Rlc3Q0Lmh0bWwiCisgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53
YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQorCisgICAgICAgICAgICBjb21wYXJlKHRlc3QuY29udGVu
dHNTY2FsZSwgMi4wKQorCisgICAgICAgICAgICAvLyBBZGQgdXNlciBpbnRlcmFjdGlvbi4KKyAg
ICAgICAgICAgIHRlc3QudG91Y2hUYXAod2ViVmlldywgMTAsIDEwKQorCisgICAgICAgICAgICB3
ZWJWaWV3LnJlbG9hZCgpCisgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1
Y2NlZWRlZCgpKQorICAgICAgICAgICAgY29tcGFyZSh0ZXN0LmNvbnRlbnRzU2NhbGUsIDIuMCkK
KyAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL3Rlc3Q0Lmh0bWwgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi90ZXN0NC5odG1sCmluZGV4
IGUzMWQ2ODlkODc5NTFkMTYxYTQxOTRhYmI5ODllMzk1NzQ1NDcxNGUuLjhmNzVhZjYwNjk5ZDFj
MmVhN2UxOTZiZjNlMTRmYjk5YTBmODdhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL3Rlc3Q0Lmh0bWwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vdGVzdDQu
aHRtbApAQCAtOSw2ICs5LDcgQEAKICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiA1MHB4Owog
ICAgICAgICAgICAgfQogICAgICAgICA8L3N0eWxlPgorICAgICAgICA8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0yLjAiLz4KICAgICA8L2hlYWQ+CiAgICAgPGJv
ZHk+CiAgICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQiPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vdGVzdDUuaHRtbCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL3Rlc3Q1
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzYzMGVhNmJkNmQ5ZGEwZDljYzE5ZWFiYzc4YWZhZmM2MzBhMzBm
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVz
dHMvcW1sdGVzdHMvY29tbW9uL3Rlc3Q1Lmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cisg
IDxoZWFkPgorICAgIDx0aXRsZT5Mb2NhbCBwYWdlIHdpdGggdmlld3BvcnQgbWV0YSB0YWc6IHdp
ZHRoPWRldmljZS13aWR0aDwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRl
bnQ9IndpZHRoPWRldmljZS13aWR0aCIvPgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzdHls
ZSB0eXBlPSJ0ZXh0L2NzcyI+Ym9keSB7d2lkdGg6IDk2MHB4OyBoZWlnaHQ6IDE0NDBweDsgbWFy
Z2luOiAwOyBwYWRkaW5nOiAwO308L3N0eWxlPgorICAgIDxkaXY+YmxhaDwvZGl2PgorICA8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZp
ZXdwb3J0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdw
b3J0Q29udHJvbGxlci5jcHAKaW5kZXggYzliZDEzM2VkOTJkZDE4MDE4YzQxMzQ1MTE0M2M0YWE2
ZTljNjZjMS4uMDI2NDU4NzRlM2EyNDM0NTkwNTBjNDc0ZTJhZWZlODYzYmQyNzBhOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNw
cApAQCAtNTYsNiArNTYsNyBAQCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjpQYWdlVmlld3BvcnRD
b250cm9sbGVyKFdlYktpdDo6V2ViUGFnZVByb3h5KiBwcm94eSwgUGFnZQogICAgIG1fcmF3QXR0
cmlidXRlcy5taW5pbXVtU2NhbGUgPSAxOwogICAgIG1fcmF3QXR0cmlidXRlcy5tYXhpbXVtU2Nh
bGUgPSAxOwogICAgIG1fcmF3QXR0cmlidXRlcy51c2VyU2NhbGFibGUgPSBtX2FsbG93c1VzZXJT
Y2FsaW5nOworICAgIG1fcmF3QXR0cmlidXRlcy5pbml0aWFsbHlGaXRUb1ZpZXdwb3J0ID0gdHJ1
ZTsKIAogICAgIEFTU0VSVChtX2NsaWVudCk7CiAgICAgbV9jbGllbnQtPnNldENvbnRyb2xsZXIo
dGhpcyk7CkBAIC0xNDEsNyArMTQyLDggQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjpw
YWdlVHJhbnNpdGlvblZpZXdwb3J0UmVhZHkoKQogewogICAgIGlmICghbV9yYXdBdHRyaWJ1dGVz
LmxheW91dFNpemUuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1faGFkVXNlckludGVyYWN0aW9uID0g
ZmFsc2U7Ci0gICAgICAgIGFwcGx5U2NhbGVBZnRlclJlbmRlcmluZ0NvbnRlbnRzKGlubmVyQm91
bmRlZFZpZXdwb3J0U2NhbGUodG9WaWV3cG9ydFNjYWxlKG1fcmF3QXR0cmlidXRlcy5pbml0aWFs
U2NhbGUpKSk7CisgICAgICAgIGZsb2F0IGluaXRpYWxTY2FsZSA9IG1fcmF3QXR0cmlidXRlcy5p
bml0aWFsbHlGaXRUb1ZpZXdwb3J0ID8gbV9taW5pbXVtU2NhbGVUb0ZpdCA6IG1fcmF3QXR0cmli
dXRlcy5pbml0aWFsU2NhbGU7CisgICAgICAgIGFwcGx5U2NhbGVBZnRlclJlbmRlcmluZ0NvbnRl
bnRzKGlubmVyQm91bmRlZFZpZXdwb3J0U2NhbGUodG9WaWV3cG9ydFNjYWxlKGluaXRpYWxTY2Fs
ZSkpKTsKICAgICB9CiAKICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIHNob3VsZCBhbHJlYWR5IGhh
dmUgcmVjZWl2ZWQgdGhlIGZpcnN0IHZpZXdwb3J0IGFyZ3VtZW50cyBhbmQgdGhlIHJlcXVlc3Rl
ZCBzY3JvbGwK
</data>

          </attachment>
      

    </bug>

</bugzilla>