<?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>103521</bug_id>
          
          <creation_ts>2012-11-28 06:32:58 -0800</creation_ts>
          <short_desc>Possible to resize out of bounds</short_desc>
          <delta_ts>2012-12-03 03:45:04 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>103875</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Allan Sandfeld Jensen">allan.jensen</reporter>
          <assigned_to name="Allan Sandfeld Jensen">allan.jensen</assigned_to>
          <cc>abecsi</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>777860</commentid>
    <comment_count>0</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-28 06:32:58 -0800</bug_when>
    <thetext>If you double-tap to zoom, and double-tap to zoom out, it is possible to resize the viewport while breaking the viewport zoom/resize bounds. 

While not problem for a full-screen application it could cause trouble for a QML application that resize the viewport to make room for keyboard or notifications. As soon as the user has performed a manual zoom, all the resize logic would act differently, even if the user has zoomed back to the initial state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777861</commentid>
    <comment_count>1</comment_count>
      <attachid>176476</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-28 06:35:11 -0800</bug_when>
    <thetext>Created attachment 176476
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777862</commentid>
    <comment_count>2</comment_count>
      <attachid>176476</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-28 06:36:38 -0800</bug_when>
    <thetext>Comment on attachment 176476
Patch

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

&gt; Source/WebKit2/UIProcess/PageViewportController.cpp:285
&gt; +    bool wasMinimumScale = (m_effectiveScale == toViewportScale(m_minimumScaleToFit));

wasAt ?

&gt; Source/WebKit2/UIProcess/PageViewportController.cpp:303
&gt; -            applyScaleAfterRenderingContents(toViewportScale(minimumScale));
&gt; +        if (!hasSuspendedContent()) {
&gt; +            if (wasMinimumScale)
&gt; +                applyScaleAfterRenderingContents(toViewportScale(m_minimumScaleToFit));
&gt; +            else {
&gt; +                float boundedScale = innerBoundedViewportScale(m_effectiveScale);
&gt; +                if (boundedScale != m_effectiveScale)
&gt; +                    applyScaleAfterRenderingContents(boundedScale);
&gt; +            }
&gt; +        }

Any QML test for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777962</commentid>
    <comment_count>3</comment_count>
      <attachid>176494</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-28 09:06:47 -0800</bug_when>
    <thetext>Created attachment 176494
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777964</commentid>
    <comment_count>4</comment_count>
      <attachid>176495</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-28 09:07:30 -0800</bug_when>
    <thetext>Created attachment 176495
Patch

Forgot to update the commit before uploading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777967</commentid>
    <comment_count>5</comment_count>
      <attachid>176495</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-11-28 09:11:05 -0800</bug_when>
    <thetext>Comment on attachment 176495
Patch

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

&gt; Source/WebKit2/UIProcess/PageViewportController.cpp:286
&gt; +    bool currentlyScaledToFit = (m_effectiveScale == toViewportScale(m_minimumScaleToFit));
&gt; +

It might be better to use fuzzyCompare for these float values.

&gt; Source/WebKit2/UIProcess/PageViewportController.cpp:302
&gt; +                if (boundedScale != m_effectiveScale)

fuzzyCompare here as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777969</commentid>
    <comment_count>6</comment_count>
      <attachid>176495</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-11-28 09:14:02 -0800</bug_when>
    <thetext>Comment on attachment 176495
Patch

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

&gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml:-94
&gt; -
&gt; -            // We had user interaction, size should change but not scale.
&gt; -            setDisplay(&quot;target&quot;, &quot;block&quot;)
&gt; -            compare(documentSize(), &quot;960x1440&quot;)
&gt; -            compare(test.contentsScale, 1.0)

Why remove this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777970</commentid>
    <comment_count>7</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-28 09:16:57 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 176495 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=176495&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml:-94
&gt; &gt; -
&gt; &gt; -            // We had user interaction, size should change but not scale.
&gt; &gt; -            setDisplay(&quot;target&quot;, &quot;block&quot;)
&gt; &gt; -            compare(documentSize(), &quot;960x1440&quot;)
&gt; &gt; -            compare(test.contentsScale, 1.0)
&gt; 
&gt; Why remove this?

Because it is no longer true. The since the viewport is scaled to fit, it will still resize to stay fit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777973</commentid>
    <comment_count>8</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-28 09:19:53 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 176495 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=176495&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/PageViewportController.cpp:286
&gt; &gt; +    bool currentlyScaledToFit = (m_effectiveScale == toViewportScale(m_minimumScaleToFit));
&gt; &gt; +
&gt; 
&gt; It might be better to use fuzzyCompare for these float values.
&gt; 

Here it doesn&apos;t matter because the values are not calculated. It is testing if the effectiveScale has been specifically set to the this value.

&gt; &gt; Source/WebKit2/UIProcess/PageViewportController.cpp:302
&gt; &gt; +                if (boundedScale != m_effectiveScale)
&gt; 
&gt; fuzzyCompare here as well?

I guess that could make sense, but again. It is more about testing if the effective scale has been set to this value, not if the values are close.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777983</commentid>
    <comment_count>9</comment_count>
      <attachid>176495</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-11-28 09:31:04 -0800</bug_when>
    <thetext>Comment on attachment 176495
Patch

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

&gt;&gt;&gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml:-94
&gt;&gt;&gt; -            compare(test.contentsScale, 1.0)
&gt;&gt; 
&gt;&gt; Why remove this?
&gt; 
&gt; Because it is no longer true. The since the viewport is scaled to fit, it will still resize to stay fit.

Hmm, but we shouldn&apos;t change the scale if there was user interaction and the viewport size did not change, we should leave the scale to the value set by the user, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778862</commentid>
    <comment_count>10</comment_count>
      <attachid>176495</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-11-29 02:43:08 -0800</bug_when>
    <thetext>Comment on attachment 176495
Patch

I&apos;m sorry, but this patch breaks expected behavior.
The above mentioned test should not be removed since it is still valid.
After a user interaction the scale should only be reset if the viewport size changes _and_ the current scale would result in the page being out of bounds eg. smaller than the allowed minimum-scale-to-fit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778958</commentid>
    <comment_count>11</comment_count>
      <attachid>176714</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-29 06:17:14 -0800</bug_when>
    <thetext>Created attachment 176714
Patch

Only enforce fitness on viewport resize, not on content size change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778960</commentid>
    <comment_count>12</comment_count>
      <attachid>176714</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-11-29 06:27:22 -0800</bug_when>
    <thetext>Comment on attachment 176714
Patch

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

&gt; Source/WebKit2/UIProcess/PageViewportController.cpp:296
&gt; -        if (!m_hadUserInteraction &amp;&amp; !hasSuspendedContent())
&gt; -            applyScaleAfterRenderingContents(toViewportScale(minimumScale));
&gt; +        if (!hasSuspendedContent()) {
&gt; +            if (scaleToFit)

For the readability sake, could you try to put (!m_hadUserInteraction || userInitiatedUpdate) in the same statement?
I also liked the context that &quot;currentlyFitToViewport&quot; added in the previous patch, if that name can be preserved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778963</commentid>
    <comment_count>13</comment_count>
      <attachid>176716</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-29 06:37:10 -0800</bug_when>
    <thetext>Created attachment 176716
Patch

Minor style changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778970</commentid>
    <comment_count>14</comment_count>
      <attachid>176716</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-11-29 06:48:57 -0800</bug_when>
    <thetext>Comment on attachment 176716
Patch

Thanks, this is easier to read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778979</commentid>
    <comment_count>15</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-29 07:01:57 -0800</bug_when>
    <thetext>Committed r136129: &lt;http://trac.webkit.org/changeset/136129&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176476</attachid>
            <date>2012-11-28 06:35:11 -0800</date>
            <delta_ts>2012-11-28 09:06:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103521-20121128153219.patch</filename>
            <type>text/plain</type>
            <size>2404</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1OTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmFhZGQ1ZDNlZTEwNDZm
MzEzYzU1OWY5OGZlMWFlZDFhZjVlNTA5ZC4uOTA2NTJjZThlNThmN2Y5YmVhM2FiMTgzNDNlMTlm
MmUyMjQxZTQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTExLTI4ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFBv
c3NpYmxlIHRvIHJlc2l6ZSBvdXQgb2YgYm91bmRzIAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRW5mb3JjZSB0aGUgdmlld3BvcnRCb3VuZHMgYWZ0ZXIg
cmVzaXplLCBhbmQgYWx3YXlzIGFjdCBjb25zaXN0ZW50bHkgaWYKKyAgICAgICAgY29tcGxldGVs
eSB6b29tZWQgb3V0LgorCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyOjp1cGRhdGVN
aW5pbXVtU2NhbGVUb0ZpdCk6CisKIDIwMTItMTEtMjggIEpvb25lIEh1ciAgPGpvb25lLmh1ckBp
bnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXVtBQ10gQ2xlYXIgdGhlIHZpZXdwb3J0IHdp
dGggd2hpdGUgY29sb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdl
Vmlld3BvcnRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmll
d3BvcnRDb250cm9sbGVyLmNwcAppbmRleCBmZjEzNWEyY2Y5YWY1MjkyOTczNmM1YjA0MDJmMTE1
NjMyZTZmYmE0Li4yZTQ2YTI5ODIyNTQwYmYzYjIzMTU1MjQzNzhkYWUzMTRhYmFhYmYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIu
Y3BwCkBAIC0yODIsNiArMjgyLDggQEAgYm9vbCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjp1cGRh
dGVNaW5pbXVtU2NhbGVUb0ZpdCgpCiAgICAgaWYgKG1fdmlld3BvcnRTaXplLmlzRW1wdHkoKSB8
fCBtX2NvbnRlbnRzU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAg
IGJvb2wgd2FzTWluaW11bVNjYWxlID0gKG1fZWZmZWN0aXZlU2NhbGUgPT0gdG9WaWV3cG9ydFNj
YWxlKG1fbWluaW11bVNjYWxlVG9GaXQpKTsKKwogICAgIGZsb2F0IG1pbmltdW1TY2FsZSA9IFdl
YkNvcmU6OmNvbXB1dGVNaW5pbXVtU2NhbGVGYWN0b3JGb3JDb250ZW50Q29udGFpbmVkKG1fcmF3
QXR0cmlidXRlcywgV2ViQ29yZTo6cm91bmRlZEludFNpemUobV92aWV3cG9ydFNpemUpLCBXZWJD
b3JlOjpyb3VuZGVkSW50U2l6ZShtX2NvbnRlbnRzU2l6ZSksIGRldmljZVBpeGVsUmF0aW8oKSk7
CiAKICAgICBpZiAobWluaW11bVNjYWxlIDw9IDApCkBAIC0yOTAsOCArMjkyLDE1IEBAIGJvb2wg
UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6dXBkYXRlTWluaW11bVNjYWxlVG9GaXQoKQogICAgIGlm
ICghZnV6enlDb21wYXJlKG1pbmltdW1TY2FsZSwgbV9taW5pbXVtU2NhbGVUb0ZpdCwgMC4wMDEp
KSB7CiAgICAgICAgIG1fbWluaW11bVNjYWxlVG9GaXQgPSBtaW5pbXVtU2NhbGU7CiAKLSAgICAg
ICAgaWYgKCFtX2hhZFVzZXJJbnRlcmFjdGlvbiAmJiAhaGFzU3VzcGVuZGVkQ29udGVudCgpKQot
ICAgICAgICAgICAgYXBwbHlTY2FsZUFmdGVyUmVuZGVyaW5nQ29udGVudHModG9WaWV3cG9ydFNj
YWxlKG1pbmltdW1TY2FsZSkpOworICAgICAgICBpZiAoIWhhc1N1c3BlbmRlZENvbnRlbnQoKSkg
eworICAgICAgICAgICAgaWYgKHdhc01pbmltdW1TY2FsZSkKKyAgICAgICAgICAgICAgICBhcHBs
eVNjYWxlQWZ0ZXJSZW5kZXJpbmdDb250ZW50cyh0b1ZpZXdwb3J0U2NhbGUobV9taW5pbXVtU2Nh
bGVUb0ZpdCkpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZmxvYXQgYm91
bmRlZFNjYWxlID0gaW5uZXJCb3VuZGVkVmlld3BvcnRTY2FsZShtX2VmZmVjdGl2ZVNjYWxlKTsK
KyAgICAgICAgICAgICAgICBpZiAoYm91bmRlZFNjYWxlICE9IG1fZWZmZWN0aXZlU2NhbGUpCisg
ICAgICAgICAgICAgICAgICAgIGFwcGx5U2NhbGVBZnRlclJlbmRlcmluZ0NvbnRlbnRzKGJvdW5k
ZWRTY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176494</attachid>
            <date>2012-11-28 09:06:47 -0800</date>
            <delta_ts>2012-11-28 09:07:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103521-20121128180354.patch</filename>
            <type>text/plain</type>
            <size>8601</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTBiYzgzNGFjYjMyMzE3
OGQ5ZTY0MzNhNjI0ZmE0YjY5YzhlMzlkZC4uM2M1MTI1OTg4NjIyOTg0NjFlM2JmZjliNzBhOWFk
NmU0MmU4MDE0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTExLTI4ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFBv
c3NpYmxlIHRvIHJlc2l6ZSBvdXQgb2YgYm91bmRzIAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRW5mb3JjZSB0aGUgdmlld3BvcnRCb3VuZHMgYWZ0ZXIg
cmVzaXplLCBhbmQgYWx3YXlzIGFjdCBjb25zaXN0ZW50bHkgaWYKKyAgICAgICAgY29tcGxldGVs
eSB6b29tZWQgb3V0LgorCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyOjp1cGRhdGVN
aW5pbXVtU2NhbGVUb0ZpdCk6CisKIDIwMTItMTEtMjggIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFu
c2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtFRkxdW1dLMl0gTWluaUJyb3dz
ZXIgcmVuZGVyaW5nIHNob3VsZCBub3QgZ2V0IGJsdXJyeSB3aGVuIHNjcm9sbGVkIGRvd24gd2l0
aCBkaWZmZXJlbnQgc2NhbGUgdmFsdWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X3Jlc2l6ZS5xbWwgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X3Jl
c2l6ZS5xbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjdhM2U2YTQ0Njc2MDhhYmFhNDIxN2UzOTNhMmZmNjBlOTE1
ZDIwOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
dGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfcmVzaXplLnFtbApAQCAtMCwwICsxLDE5MCBAQAor
aW1wb3J0IFF0UXVpY2sgMi4wCitpbXBvcnQgUXRUZXN0IDEuMAoraW1wb3J0IFF0V2ViS2l0IDMu
MAoraW1wb3J0IFF0V2ViS2l0LmV4cGVyaW1lbnRhbCAxLjAKK2ltcG9ydCBUZXN0IDEuMAoraW1w
b3J0ICIuLi9jb21tb24iCisKK0l0ZW0geworICAgIFRlc3RXZWJWaWV3IHsKKyAgICAgICAgaWQ6
IHdlYlZpZXcKKyAgICAgICAgd2lkdGg6IDMyMAorICAgICAgICBoZWlnaHQ6IDQ4MAorCisgICAg
ICAgIHByb3BlcnR5IHZhcmlhbnQgcmVzdWx0CisKKyAgICAgICAgcHJvcGVydHkgdmFyaWFudCBj
b250ZW50OiAiZGF0YTp0ZXh0L2h0bWwsIiArCisgICAgICAgICAgICAiPGhlYWQ+IiArCisgICAg
ICAgICAgICAiICAgIDxtZXRhIG5hbWU9J3ZpZXdwb3J0JyBjb250ZW50PSd3aWR0aD1kZXZpY2Ut
d2lkdGgnPiIgKworICAgICAgICAgICAgIjwvaGVhZD4iICsKKyAgICAgICAgICAgICI8Ym9keT4i
ICsKKyAgICAgICAgICAgICIgICAgPGRpdiBpZD0ndGFyZ2V0JyBzdHlsZT0nd2lkdGg6IDI0MHB4
OyBoZWlnaHQ6IDM2MHB4Oyc+IiArCisgICAgICAgICAgICAiICAgIDwvZGl2PiIgKworICAgICAg
ICAgICAgIjwvYm9keT4iCisKKyAgICAgICAgc2lnbmFsIHJlc3VsdFJlY2VpdmVkCisgICAgfQor
CisgICAgU2lnbmFsU3B5IHsKKyAgICAgICAgaWQ6IHJlc3VsdFNweQorICAgICAgICB0YXJnZXQ6
IHdlYlZpZXcKKyAgICAgICAgc2lnbmFsTmFtZTogInJlc3VsdFJlY2VpdmVkIgorICAgIH0KKwor
ICAgIFNpZ25hbFNweSB7CisgICAgICAgIGlkOiBzY2FsZVNweQorICAgICAgICB0YXJnZXQ6IHdl
YlZpZXcuZXhwZXJpbWVudGFsLnRlc3QKKyAgICAgICAgc2lnbmFsTmFtZTogImNvbnRlbnRzU2Nh
bGVDb21taXR0ZWQiCisgICAgfQorCisgICAgVGVzdENhc2UgeworICAgICAgICBuYW1lOiAiUmVz
aXplIgorICAgICAgICB3aGVuOiB3aW5kb3dTaG93bgorCisgICAgICAgIHByb3BlcnR5IHZhcmlh
bnQgdGVzdDogd2ViVmlldy5leHBlcmltZW50YWwudGVzdAorCisgICAgICAgIGZ1bmN0aW9uIGlu
aXQoKSB7CisgICAgICAgICAgICByZXN1bHRTcHkuY2xlYXIoKQorICAgICAgICAgICAgc2NhbGVT
cHkuY2xlYXIoKQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuKHNpZ25hbFNweSwg
c2NyaXB0KSB7CisgICAgICAgICAgICBzaWduYWxTcHkuY2xlYXIoKTsKKyAgICAgICAgICAgIHZh
ciByZXN1bHQ7CisgICAgICAgICAgICB3ZWJWaWV3LmV4cGVyaW1lbnRhbC5ldmFsdWF0ZUphdmFT
Y3JpcHQoCisgICAgICAgICAgICAgICAgc2NyaXB0LAorICAgICAgICAgICAgICAgIGZ1bmN0aW9u
KHZhbHVlKSB7IHdlYlZpZXcucmVzdWx0UmVjZWl2ZWQoKTsgcmVzdWx0ID0gdmFsdWUgfSk7Cisg
ICAgICAgICAgICBzaWduYWxTcHkud2FpdCgpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRvY3VtZW50U2l6ZSgpIHsKKyAgICAgICAg
ICAgIHJldHVybiBydW4ocmVzdWx0U3B5LCAiZG9jdW1lbnQud2lkdGggKyAneCcgKyBkb2N1bWVu
dC5oZWlnaHQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGVsZW1lbnRSZWN0KGlk
KSB7CisgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShydW4ocmVzdWx0U3B5LCAiSlNPTi5z
dHJpbmdpZnkoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyIgKyBpZCArICInKS5nZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKSk7IikpCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBkb3VibGVU
YXBBdFBvaW50KHgsIHkpIHsKKyAgICAgICAgICAgIHNjYWxlU3B5LmNsZWFyKCkKKyAgICAgICAg
ICAgIHRlc3QudG91Y2hEb3VibGVUYXAod2ViVmlldywgeCwgeSkKKyAgICAgICAgICAgIHNjYWxl
U3B5LndhaXQoKQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcmVzaXplKHcsIGgpIHsK
KyAgICAgICAgICAgIHdlYlZpZXcud2lkdGggPSB3CisgICAgICAgICAgICB3ZWJWaWV3LmhlaWdo
dCA9IGgKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RfYmFzaWMoKSB7CisgICAg
ICAgICAgICB3ZWJWaWV3LnVybCA9IHdlYlZpZXcuY29udGVudAorICAgICAgICAgICAgdmVyaWZ5
KHdlYlZpZXcud2FpdEZvclZpZXdwb3J0UmVhZHkoKSkKKworICAgICAgICAgICAgY29tcGFyZShk
b2N1bWVudFNpemUoKSwgIjMyMHg0ODAiKQorICAgICAgICAgICAgY29tcGFyZSh0ZXN0LmNvbnRl
bnRzU2NhbGUsIDEuMCkKKworICAgICAgICAgICAgcmVzaXplKDQ4MCwgNzIwKQorICAgICAgICAg
ICAgY29tcGFyZShkb2N1bWVudFNpemUoKSwgIjQ4MHg3MjAiKQorICAgICAgICAgICAgY29tcGFy
ZSh0ZXN0LmNvbnRlbnRzU2NhbGUsIDEuMCkKKworICAgICAgICAgICAgcmVzaXplKDMyMCwgNDgw
KQorICAgICAgICAgICAgY29tcGFyZShkb2N1bWVudFNpemUoKSwgIjMyMHg0ODAiKQorICAgICAg
ICAgICAgY29tcGFyZSh0ZXN0LmNvbnRlbnRzU2NhbGUsIDEuMCkKKworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gdGVzdF9yZXNpemVBZnRlck5ldXRyYWxab29tKCkgeworICAgICAgICAg
ICAgd2ViVmlldy51cmwgPSB3ZWJWaWV3LmNvbnRlbnQKKyAgICAgICAgICAgIHZlcmlmeSh3ZWJW
aWV3LndhaXRGb3JWaWV3cG9ydFJlYWR5KCkpCisKKyAgICAgICAgICAgIGNvbXBhcmUoZG9jdW1l
bnRTaXplKCksICIzMjB4NDgwIikKKyAgICAgICAgICAgIGNvbXBhcmUodGVzdC5jb250ZW50c1Nj
YWxlLCAxLjApCisKKyAgICAgICAgICAgIHZhciB0YXJnZXQgPSBlbGVtZW50UmVjdCgidGFyZ2V0
Iik7CisgICAgICAgICAgICB2YXIgdGFyZ2V0U2NhbGUgPSB3ZWJWaWV3LndpZHRoIC8gKHRhcmdl
dC53aWR0aCArIDIgKiAxMCkgLy8gaW5mbGF0ZWQgYnkgMTBweAorCisgICAgICAgICAgICAvLyBa
b29tIGluIGFuZCBvdXQuCisgICAgICAgICAgICBkb3VibGVUYXBBdFBvaW50KDEwMCwgNTApCisK
KyAgICAgICAgICAgIGNvbXBhcmUodGVzdC5jb250ZW50c1NjYWxlLCB0YXJnZXRTY2FsZSkKKwor
ICAgICAgICAgICAgZG91YmxlVGFwQXRQb2ludCgxMDAsIDUwKQorCisgICAgICAgICAgICBjb21w
YXJlKHRlc3QuY29udGVudHNTY2FsZSwgMS4wKQorCisgICAgICAgICAgICAvLyBOb3cgY2hlY2sg
cmVzaXppbmcgc3RpbGwgd29ya3MgYXMgZXhwZWN0ZWQuCisgICAgICAgICAgICByZXNpemUoNDgw
LCA3MjApCisgICAgICAgICAgICBjb21wYXJlKGRvY3VtZW50U2l6ZSgpLCAiNDgweDcyMCIpCisg
ICAgICAgICAgICBjb21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgMS4wKQorCisgICAgICAgICAg
ICByZXNpemUoMzIwLCA0ODApCisgICAgICAgICAgICBjb21wYXJlKGRvY3VtZW50U2l6ZSgpLCAi
MzIweDQ4MCIpCisgICAgICAgICAgICBjb21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgMS4wKQor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9yZXNpemVGaXRUb1ZpZXdwb3J0KCkg
eworICAgICAgICAgICAgd2ViVmlldy51cmwgPSB3ZWJWaWV3LmNvbnRlbnQKKyAgICAgICAgICAg
IHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JWaWV3cG9ydFJlYWR5KCkpCisKKyAgICAgICAgICAgIGNv
bXBhcmUoZG9jdW1lbnRTaXplKCksICIzMjB4NDgwIikKKyAgICAgICAgICAgIGNvbXBhcmUodGVz
dC5jb250ZW50c1NjYWxlLCAxLjApCisKKyAgICAgICAgICAgIHZhciB0YXJnZXQgPSBlbGVtZW50
UmVjdCgidGFyZ2V0Iik7CisgICAgICAgICAgICB2YXIgdGFyZ2V0U2NhbGUgPSB3ZWJWaWV3Lndp
ZHRoIC8gKHRhcmdldC53aWR0aCArIDIgKiAxMCkgLy8gaW5mbGF0ZWQgYnkgMTBweAorCisgICAg
ICAgICAgICAvLyBab29tIGluLgorICAgICAgICAgICAgZG91YmxlVGFwQXRQb2ludCgxMDAsIDUw
KQorCisgICAgICAgICAgICBjb21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgdGFyZ2V0U2NhbGUp
CisKKyAgICAgICAgICAgIC8vIFJlc2l6ZSBlbm91Z2ggdGhhdCBjb250ZW50IGlzIGZpdCB0byB2
aWV3cG9ydC4KKyAgICAgICAgICAgIHJlc2l6ZSg0ODAsIDcyMCkKKyAgICAgICAgICAgIGNvbXBh
cmUoZG9jdW1lbnRTaXplKCksICI0ODB4NzIwIikKKyAgICAgICAgICAgIGNvbXBhcmUodGVzdC5j
b250ZW50c1NjYWxlLCAxLjApCisKKyAgICAgICAgICAgIC8vIFJlc2l6ZSBiYWNrIHRvIHNxdWFy
ZSBvbmUuCisgICAgICAgICAgICByZXNpemUoMzIwLCA0ODApCisgICAgICAgICAgICBjb21wYXJl
KGRvY3VtZW50U2l6ZSgpLCAiMzIweDQ4MCIpCisgICAgICAgICAgICBjb21wYXJlKHRlc3QuY29u
dGVudHNTY2FsZSwgMS4wKQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9yZXNp
emVab29tZWRJbigpIHsKKyAgICAgICAgICAgIC8vIE5vdGUgdGhhdCBpZiB3ZSBjaGFuZ2UgcmVz
aXppbmcgb2Ygem9vbWVkLWluIGJlaGF2aW9yIHRvIGFjdCBtb3JlIGxpa2Ugcm90YXRpb24sIHRo
aXMgdGVzdCBuZWVkIHRvIGJlIHVwZGF0ZWQuLgorICAgICAgICAgICAgd2ViVmlldy51cmwgPSB3
ZWJWaWV3LmNvbnRlbnQKKyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JWaWV3cG9y
dFJlYWR5KCkpCisKKyAgICAgICAgICAgIGNvbXBhcmUoZG9jdW1lbnRTaXplKCksICIzMjB4NDgw
IikKKyAgICAgICAgICAgIGNvbXBhcmUodGVzdC5jb250ZW50c1NjYWxlLCAxLjApCisKKyAgICAg
ICAgICAgIHZhciB0YXJnZXQgPSBlbGVtZW50UmVjdCgidGFyZ2V0Iik7CisgICAgICAgICAgICB2
YXIgdGFyZ2V0U2NhbGUgPSB3ZWJWaWV3LndpZHRoIC8gKHRhcmdldC53aWR0aCArIDIgKiAxMCkg
Ly8gaW5mbGF0ZWQgYnkgMTBweAorCisgICAgICAgICAgICAvLyBEb3VibGUgdGFwIHRvIHpvb20g
aW4uCisgICAgICAgICAgICBkb3VibGVUYXBBdFBvaW50KDEwMCwgNTApCisKKyAgICAgICAgICAg
IGNvbXBhcmUodGVzdC5jb250ZW50c1NjYWxlLCB0YXJnZXRTY2FsZSkKKworICAgICAgICAgICAg
Ly8gUmVzaXplIGp1c3QgYSBzbWFsbCBiaXQsIG5vdCBjaGFuZ2luZyBzY2FsZS4KKyAgICAgICAg
ICAgIHJlc2l6ZSgyODgsIDQzMikKKyAgICAgICAgICAgIGNvbXBhcmUoZG9jdW1lbnRTaXplKCks
ICIyODh4NDMyIikKKyAgICAgICAgICAgIGNvbXBhcmUodGVzdC5jb250ZW50c1NjYWxlLCB0YXJn
ZXRTY2FsZSkKKworICAgICAgICAgICAgLy8gQW5kIGRvdWJsZSB0YXAgdG8gcmVzZXQgem9vbS4K
KyAgICAgICAgICAgIHRhcmdldCA9IGVsZW1lbnRSZWN0KCJ0YXJnZXQiKTsKKyAgICAgICAgICAg
IHRhcmdldFNjYWxlID0gd2ViVmlldy53aWR0aCAvICh0YXJnZXQud2lkdGggKyAyICogMTApCisg
ICAgICAgICAgICBkb3VibGVUYXBBdFBvaW50KDEwMCwgNTApCisgICAgICAgICAgICBjb21wYXJl
KHRlc3QuY29udGVudHNTY2FsZSwgdGFyZ2V0U2NhbGUpCisKKyAgICAgICAgICAgIC8vIERvdWJs
ZSB0YXAgYWdhaW4gdG8gem9vbSBvdXQuCisgICAgICAgICAgICBkb3VibGVUYXBBdFBvaW50KDEw
MCwgNTApCisgICAgICAgICAgICBjb21wYXJlKGRvY3VtZW50U2l6ZSgpLCAiMjg4eDQzMiIpCisg
ICAgICAgICAgICBjb21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgMS4wKQorCisgICAgICAgICAg
ICAvLyBBbmQgcmVzZXQKKyAgICAgICAgICAgIHJlc2l6ZSgzMjAsIDQ4MCkKKyAgICAgICAgICAg
IGNvbXBhcmUoZG9jdW1lbnRTaXplKCksICIzMjB4NDgwIikKKyAgICAgICAgICAgIGNvbXBhcmUo
dGVzdC5jb250ZW50c1NjYWxlLCAxLjApCisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKaW5kZXgg
ZmYxMzVhMmNmOWFmNTI5Mjk3MzZjNWIwNDAyZjExNTYzMmU2ZmJhNC4uZWI5NjI2ZDc4Njg1ODUy
ZDRjMWJlZDM3NzE0MDI5MWI1YmFhZjJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcApAQCAtMjgyLDYgKzI4Miw4IEBAIGJv
b2wgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6dXBkYXRlTWluaW11bVNjYWxlVG9GaXQoKQogICAg
IGlmIChtX3ZpZXdwb3J0U2l6ZS5pc0VtcHR5KCkgfHwgbV9jb250ZW50c1NpemUuaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBib29sIGN1cnJlbnRseVNjYWxlZFRvRml0
ID0gKG1fZWZmZWN0aXZlU2NhbGUgPT0gdG9WaWV3cG9ydFNjYWxlKG1fbWluaW11bVNjYWxlVG9G
aXQpKTsKKwogICAgIGZsb2F0IG1pbmltdW1TY2FsZSA9IFdlYkNvcmU6OmNvbXB1dGVNaW5pbXVt
U2NhbGVGYWN0b3JGb3JDb250ZW50Q29udGFpbmVkKG1fcmF3QXR0cmlidXRlcywgV2ViQ29yZTo6
cm91bmRlZEludFNpemUobV92aWV3cG9ydFNpemUpLCBXZWJDb3JlOjpyb3VuZGVkSW50U2l6ZSht
X2NvbnRlbnRzU2l6ZSksIGRldmljZVBpeGVsUmF0aW8oKSk7CiAKICAgICBpZiAobWluaW11bVNj
YWxlIDw9IDApCkBAIC0yOTAsOCArMjkyLDE1IEBAIGJvb2wgUGFnZVZpZXdwb3J0Q29udHJvbGxl
cjo6dXBkYXRlTWluaW11bVNjYWxlVG9GaXQoKQogICAgIGlmICghZnV6enlDb21wYXJlKG1pbmlt
dW1TY2FsZSwgbV9taW5pbXVtU2NhbGVUb0ZpdCwgMC4wMDEpKSB7CiAgICAgICAgIG1fbWluaW11
bVNjYWxlVG9GaXQgPSBtaW5pbXVtU2NhbGU7CiAKLSAgICAgICAgaWYgKCFtX2hhZFVzZXJJbnRl
cmFjdGlvbiAmJiAhaGFzU3VzcGVuZGVkQ29udGVudCgpKQotICAgICAgICAgICAgYXBwbHlTY2Fs
ZUFmdGVyUmVuZGVyaW5nQ29udGVudHModG9WaWV3cG9ydFNjYWxlKG1pbmltdW1TY2FsZSkpOwor
ICAgICAgICBpZiAoIWhhc1N1c3BlbmRlZENvbnRlbnQoKSkgeworICAgICAgICAgICAgaWYgKGN1
cnJlbnRseVNjYWxlZFRvRml0KQorICAgICAgICAgICAgICAgIGFwcGx5U2NhbGVBZnRlclJlbmRl
cmluZ0NvbnRlbnRzKHRvVmlld3BvcnRTY2FsZShtX21pbmltdW1TY2FsZVRvRml0KSk7CisgICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBmbG9hdCBib3VuZGVkU2NhbGUgPSBpbm5l
ckJvdW5kZWRWaWV3cG9ydFNjYWxlKG1fZWZmZWN0aXZlU2NhbGUpOworICAgICAgICAgICAgICAg
IGlmIChib3VuZGVkU2NhbGUgIT0gbV9lZmZlY3RpdmVTY2FsZSkKKyAgICAgICAgICAgICAgICAg
ICAgYXBwbHlTY2FsZUFmdGVyUmVuZGVyaW5nQ29udGVudHMoYm91bmRlZFNjYWxlKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQogCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176495</attachid>
            <date>2012-11-28 09:07:30 -0800</date>
            <delta_ts>2012-11-29 06:17:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103521-20121128180437.patch</filename>
            <type>text/plain</type>
            <size>9579</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTBiYzgzNGFjYjMyMzE3
OGQ5ZTY0MzNhNjI0ZmE0YjY5YzhlMzlkZC4uM2M1MTI1OTg4NjIyOTg0NjFlM2JmZjliNzBhOWFk
NmU0MmU4MDE0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTExLTI4ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFBv
c3NpYmxlIHRvIHJlc2l6ZSBvdXQgb2YgYm91bmRzIAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRW5mb3JjZSB0aGUgdmlld3BvcnRCb3VuZHMgYWZ0ZXIg
cmVzaXplLCBhbmQgYWx3YXlzIGFjdCBjb25zaXN0ZW50bHkgaWYKKyAgICAgICAgY29tcGxldGVs
eSB6b29tZWQgb3V0LgorCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyOjp1cGRhdGVN
aW5pbXVtU2NhbGVUb0ZpdCk6CisKIDIwMTItMTEtMjggIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFu
c2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtFRkxdW1dLMl0gTWluaUJyb3dz
ZXIgcmVuZGVyaW5nIHNob3VsZCBub3QgZ2V0IGJsdXJyeSB3aGVuIHNjcm9sbGVkIGRvd24gd2l0
aCBkaWZmZXJlbnQgc2NhbGUgdmFsdWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X2ZpdFRvVmlldy5xbWwgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0
X2ZpdFRvVmlldy5xbWwKaW5kZXggMDExOTJhOGFmMzg4ZDUxNzM5NDhjYTk1MGZkODhkZDM3MWEx
ZDQyNi4uNDhkMDliYWI4YmJlNDlmYzQzYzQ1YTU1ZTZhMGI5NDBjM2ZkMGUyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3
L3RzdF9maXRUb1ZpZXcucW1sCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
dGVzdHMvcW1sdGVzdHMvV2ViVmlldy90c3RfZml0VG9WaWV3LnFtbApAQCAtODcsMTEgKzg3LDYg
QEAgSXRlbSB7CiAgICAgICAgICAgICBzZXREaXNwbGF5KCJ0YXJnZXQiLCAibm9uZSIpCiAgICAg
ICAgICAgICBjb21wYXJlKGRvY3VtZW50U2l6ZSgpLCAiNDgweDcyMCIpCiAgICAgICAgICAgICBj
b21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgMS4wKQotCi0gICAgICAgICAgICAvLyBXZSBoYWQg
dXNlciBpbnRlcmFjdGlvbiwgc2l6ZSBzaG91bGQgY2hhbmdlIGJ1dCBub3Qgc2NhbGUuCi0gICAg
ICAgICAgICBzZXREaXNwbGF5KCJ0YXJnZXQiLCAiYmxvY2siKQotICAgICAgICAgICAgY29tcGFy
ZShkb2N1bWVudFNpemUoKSwgIjk2MHgxNDQwIikKLSAgICAgICAgICAgIGNvbXBhcmUodGVzdC5j
b250ZW50c1NjYWxlLCAxLjApCiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiB0ZXN0X2xv
Y2FsUGFnZURldmljZVdpZHRoKCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9yZXNpemUucW1sIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9yZXNp
emUucW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI3YTNlNmE0NDY3NjA4YWJhYTQyMTdlMzkzYTJmZjYwZTkxNWQy
MDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X3Jlc2l6ZS5xbWwKQEAgLTAsMCArMSwxOTAgQEAKK2lt
cG9ydCBRdFF1aWNrIDIuMAoraW1wb3J0IFF0VGVzdCAxLjAKK2ltcG9ydCBRdFdlYktpdCAzLjAK
K2ltcG9ydCBRdFdlYktpdC5leHBlcmltZW50YWwgMS4wCitpbXBvcnQgVGVzdCAxLjAKK2ltcG9y
dCAiLi4vY29tbW9uIgorCitJdGVtIHsKKyAgICBUZXN0V2ViVmlldyB7CisgICAgICAgIGlkOiB3
ZWJWaWV3CisgICAgICAgIHdpZHRoOiAzMjAKKyAgICAgICAgaGVpZ2h0OiA0ODAKKworICAgICAg
ICBwcm9wZXJ0eSB2YXJpYW50IHJlc3VsdAorCisgICAgICAgIHByb3BlcnR5IHZhcmlhbnQgY29u
dGVudDogImRhdGE6dGV4dC9odG1sLCIgKworICAgICAgICAgICAgIjxoZWFkPiIgKworICAgICAg
ICAgICAgIiAgICA8bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0nd2lkdGg9ZGV2aWNlLXdp
ZHRoJz4iICsKKyAgICAgICAgICAgICI8L2hlYWQ+IiArCisgICAgICAgICAgICAiPGJvZHk+IiAr
CisgICAgICAgICAgICAiICAgIDxkaXYgaWQ9J3RhcmdldCcgc3R5bGU9J3dpZHRoOiAyNDBweDsg
aGVpZ2h0OiAzNjBweDsnPiIgKworICAgICAgICAgICAgIiAgICA8L2Rpdj4iICsKKyAgICAgICAg
ICAgICI8L2JvZHk+IgorCisgICAgICAgIHNpZ25hbCByZXN1bHRSZWNlaXZlZAorICAgIH0KKwor
ICAgIFNpZ25hbFNweSB7CisgICAgICAgIGlkOiByZXN1bHRTcHkKKyAgICAgICAgdGFyZ2V0OiB3
ZWJWaWV3CisgICAgICAgIHNpZ25hbE5hbWU6ICJyZXN1bHRSZWNlaXZlZCIKKyAgICB9CisKKyAg
ICBTaWduYWxTcHkgeworICAgICAgICBpZDogc2NhbGVTcHkKKyAgICAgICAgdGFyZ2V0OiB3ZWJW
aWV3LmV4cGVyaW1lbnRhbC50ZXN0CisgICAgICAgIHNpZ25hbE5hbWU6ICJjb250ZW50c1NjYWxl
Q29tbWl0dGVkIgorICAgIH0KKworICAgIFRlc3RDYXNlIHsKKyAgICAgICAgbmFtZTogIlJlc2l6
ZSIKKyAgICAgICAgd2hlbjogd2luZG93U2hvd24KKworICAgICAgICBwcm9wZXJ0eSB2YXJpYW50
IHRlc3Q6IHdlYlZpZXcuZXhwZXJpbWVudGFsLnRlc3QKKworICAgICAgICBmdW5jdGlvbiBpbml0
KCkgeworICAgICAgICAgICAgcmVzdWx0U3B5LmNsZWFyKCkKKyAgICAgICAgICAgIHNjYWxlU3B5
LmNsZWFyKCkKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1bihzaWduYWxTcHksIHNj
cmlwdCkgeworICAgICAgICAgICAgc2lnbmFsU3B5LmNsZWFyKCk7CisgICAgICAgICAgICB2YXIg
cmVzdWx0OworICAgICAgICAgICAgd2ViVmlldy5leHBlcmltZW50YWwuZXZhbHVhdGVKYXZhU2Ny
aXB0KAorICAgICAgICAgICAgICAgIHNjcmlwdCwKKyAgICAgICAgICAgICAgICBmdW5jdGlvbih2
YWx1ZSkgeyB3ZWJWaWV3LnJlc3VsdFJlY2VpdmVkKCk7IHJlc3VsdCA9IHZhbHVlIH0pOworICAg
ICAgICAgICAgc2lnbmFsU3B5LndhaXQoKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBkb2N1bWVudFNpemUoKSB7CisgICAgICAgICAg
ICByZXR1cm4gcnVuKHJlc3VsdFNweSwgImRvY3VtZW50LndpZHRoICsgJ3gnICsgZG9jdW1lbnQu
aGVpZ2h0Iik7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBlbGVtZW50UmVjdChpZCkg
eworICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UocnVuKHJlc3VsdFNweSwgIkpTT04uc3Ry
aW5naWZ5KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciICsgaWQgKyAiJykuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCkpOyIpKQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZG91YmxlVGFw
QXRQb2ludCh4LCB5KSB7CisgICAgICAgICAgICBzY2FsZVNweS5jbGVhcigpCisgICAgICAgICAg
ICB0ZXN0LnRvdWNoRG91YmxlVGFwKHdlYlZpZXcsIHgsIHkpCisgICAgICAgICAgICBzY2FsZVNw
eS53YWl0KCkKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJlc2l6ZSh3LCBoKSB7Cisg
ICAgICAgICAgICB3ZWJWaWV3LndpZHRoID0gdworICAgICAgICAgICAgd2ViVmlldy5oZWlnaHQg
PSBoCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiB0ZXN0X2Jhc2ljKCkgeworICAgICAg
ICAgICAgd2ViVmlldy51cmwgPSB3ZWJWaWV3LmNvbnRlbnQKKyAgICAgICAgICAgIHZlcmlmeSh3
ZWJWaWV3LndhaXRGb3JWaWV3cG9ydFJlYWR5KCkpCisKKyAgICAgICAgICAgIGNvbXBhcmUoZG9j
dW1lbnRTaXplKCksICIzMjB4NDgwIikKKyAgICAgICAgICAgIGNvbXBhcmUodGVzdC5jb250ZW50
c1NjYWxlLCAxLjApCisKKyAgICAgICAgICAgIHJlc2l6ZSg0ODAsIDcyMCkKKyAgICAgICAgICAg
IGNvbXBhcmUoZG9jdW1lbnRTaXplKCksICI0ODB4NzIwIikKKyAgICAgICAgICAgIGNvbXBhcmUo
dGVzdC5jb250ZW50c1NjYWxlLCAxLjApCisKKyAgICAgICAgICAgIHJlc2l6ZSgzMjAsIDQ4MCkK
KyAgICAgICAgICAgIGNvbXBhcmUoZG9jdW1lbnRTaXplKCksICIzMjB4NDgwIikKKyAgICAgICAg
ICAgIGNvbXBhcmUodGVzdC5jb250ZW50c1NjYWxlLCAxLjApCisKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIHRlc3RfcmVzaXplQWZ0ZXJOZXV0cmFsWm9vbSgpIHsKKyAgICAgICAgICAg
IHdlYlZpZXcudXJsID0gd2ViVmlldy5jb250ZW50CisgICAgICAgICAgICB2ZXJpZnkod2ViVmll
dy53YWl0Rm9yVmlld3BvcnRSZWFkeSgpKQorCisgICAgICAgICAgICBjb21wYXJlKGRvY3VtZW50
U2l6ZSgpLCAiMzIweDQ4MCIpCisgICAgICAgICAgICBjb21wYXJlKHRlc3QuY29udGVudHNTY2Fs
ZSwgMS4wKQorCisgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZWxlbWVudFJlY3QoInRhcmdldCIp
OworICAgICAgICAgICAgdmFyIHRhcmdldFNjYWxlID0gd2ViVmlldy53aWR0aCAvICh0YXJnZXQu
d2lkdGggKyAyICogMTApIC8vIGluZmxhdGVkIGJ5IDEwcHgKKworICAgICAgICAgICAgLy8gWm9v
bSBpbiBhbmQgb3V0LgorICAgICAgICAgICAgZG91YmxlVGFwQXRQb2ludCgxMDAsIDUwKQorCisg
ICAgICAgICAgICBjb21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgdGFyZ2V0U2NhbGUpCisKKyAg
ICAgICAgICAgIGRvdWJsZVRhcEF0UG9pbnQoMTAwLCA1MCkKKworICAgICAgICAgICAgY29tcGFy
ZSh0ZXN0LmNvbnRlbnRzU2NhbGUsIDEuMCkKKworICAgICAgICAgICAgLy8gTm93IGNoZWNrIHJl
c2l6aW5nIHN0aWxsIHdvcmtzIGFzIGV4cGVjdGVkLgorICAgICAgICAgICAgcmVzaXplKDQ4MCwg
NzIwKQorICAgICAgICAgICAgY29tcGFyZShkb2N1bWVudFNpemUoKSwgIjQ4MHg3MjAiKQorICAg
ICAgICAgICAgY29tcGFyZSh0ZXN0LmNvbnRlbnRzU2NhbGUsIDEuMCkKKworICAgICAgICAgICAg
cmVzaXplKDMyMCwgNDgwKQorICAgICAgICAgICAgY29tcGFyZShkb2N1bWVudFNpemUoKSwgIjMy
MHg0ODAiKQorICAgICAgICAgICAgY29tcGFyZSh0ZXN0LmNvbnRlbnRzU2NhbGUsIDEuMCkKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RfcmVzaXplRml0VG9WaWV3cG9ydCgpIHsK
KyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gd2ViVmlldy5jb250ZW50CisgICAgICAgICAgICB2
ZXJpZnkod2ViVmlldy53YWl0Rm9yVmlld3BvcnRSZWFkeSgpKQorCisgICAgICAgICAgICBjb21w
YXJlKGRvY3VtZW50U2l6ZSgpLCAiMzIweDQ4MCIpCisgICAgICAgICAgICBjb21wYXJlKHRlc3Qu
Y29udGVudHNTY2FsZSwgMS4wKQorCisgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZWxlbWVudFJl
Y3QoInRhcmdldCIpOworICAgICAgICAgICAgdmFyIHRhcmdldFNjYWxlID0gd2ViVmlldy53aWR0
aCAvICh0YXJnZXQud2lkdGggKyAyICogMTApIC8vIGluZmxhdGVkIGJ5IDEwcHgKKworICAgICAg
ICAgICAgLy8gWm9vbSBpbi4KKyAgICAgICAgICAgIGRvdWJsZVRhcEF0UG9pbnQoMTAwLCA1MCkK
KworICAgICAgICAgICAgY29tcGFyZSh0ZXN0LmNvbnRlbnRzU2NhbGUsIHRhcmdldFNjYWxlKQor
CisgICAgICAgICAgICAvLyBSZXNpemUgZW5vdWdoIHRoYXQgY29udGVudCBpcyBmaXQgdG8gdmll
d3BvcnQuCisgICAgICAgICAgICByZXNpemUoNDgwLCA3MjApCisgICAgICAgICAgICBjb21wYXJl
KGRvY3VtZW50U2l6ZSgpLCAiNDgweDcyMCIpCisgICAgICAgICAgICBjb21wYXJlKHRlc3QuY29u
dGVudHNTY2FsZSwgMS4wKQorCisgICAgICAgICAgICAvLyBSZXNpemUgYmFjayB0byBzcXVhcmUg
b25lLgorICAgICAgICAgICAgcmVzaXplKDMyMCwgNDgwKQorICAgICAgICAgICAgY29tcGFyZShk
b2N1bWVudFNpemUoKSwgIjMyMHg0ODAiKQorICAgICAgICAgICAgY29tcGFyZSh0ZXN0LmNvbnRl
bnRzU2NhbGUsIDEuMCkKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RfcmVzaXpl
Wm9vbWVkSW4oKSB7CisgICAgICAgICAgICAvLyBOb3RlIHRoYXQgaWYgd2UgY2hhbmdlIHJlc2l6
aW5nIG9mIHpvb21lZC1pbiBiZWhhdmlvciB0byBhY3QgbW9yZSBsaWtlIHJvdGF0aW9uLCB0aGlz
IHRlc3QgbmVlZCB0byBiZSB1cGRhdGVkLi4KKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gd2Vi
Vmlldy5jb250ZW50CisgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yVmlld3BvcnRS
ZWFkeSgpKQorCisgICAgICAgICAgICBjb21wYXJlKGRvY3VtZW50U2l6ZSgpLCAiMzIweDQ4MCIp
CisgICAgICAgICAgICBjb21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgMS4wKQorCisgICAgICAg
ICAgICB2YXIgdGFyZ2V0ID0gZWxlbWVudFJlY3QoInRhcmdldCIpOworICAgICAgICAgICAgdmFy
IHRhcmdldFNjYWxlID0gd2ViVmlldy53aWR0aCAvICh0YXJnZXQud2lkdGggKyAyICogMTApIC8v
IGluZmxhdGVkIGJ5IDEwcHgKKworICAgICAgICAgICAgLy8gRG91YmxlIHRhcCB0byB6b29tIGlu
LgorICAgICAgICAgICAgZG91YmxlVGFwQXRQb2ludCgxMDAsIDUwKQorCisgICAgICAgICAgICBj
b21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgdGFyZ2V0U2NhbGUpCisKKyAgICAgICAgICAgIC8v
IFJlc2l6ZSBqdXN0IGEgc21hbGwgYml0LCBub3QgY2hhbmdpbmcgc2NhbGUuCisgICAgICAgICAg
ICByZXNpemUoMjg4LCA0MzIpCisgICAgICAgICAgICBjb21wYXJlKGRvY3VtZW50U2l6ZSgpLCAi
Mjg4eDQzMiIpCisgICAgICAgICAgICBjb21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgdGFyZ2V0
U2NhbGUpCisKKyAgICAgICAgICAgIC8vIEFuZCBkb3VibGUgdGFwIHRvIHJlc2V0IHpvb20uCisg
ICAgICAgICAgICB0YXJnZXQgPSBlbGVtZW50UmVjdCgidGFyZ2V0Iik7CisgICAgICAgICAgICB0
YXJnZXRTY2FsZSA9IHdlYlZpZXcud2lkdGggLyAodGFyZ2V0LndpZHRoICsgMiAqIDEwKQorICAg
ICAgICAgICAgZG91YmxlVGFwQXRQb2ludCgxMDAsIDUwKQorICAgICAgICAgICAgY29tcGFyZSh0
ZXN0LmNvbnRlbnRzU2NhbGUsIHRhcmdldFNjYWxlKQorCisgICAgICAgICAgICAvLyBEb3VibGUg
dGFwIGFnYWluIHRvIHpvb20gb3V0LgorICAgICAgICAgICAgZG91YmxlVGFwQXRQb2ludCgxMDAs
IDUwKQorICAgICAgICAgICAgY29tcGFyZShkb2N1bWVudFNpemUoKSwgIjI4OHg0MzIiKQorICAg
ICAgICAgICAgY29tcGFyZSh0ZXN0LmNvbnRlbnRzU2NhbGUsIDEuMCkKKworICAgICAgICAgICAg
Ly8gQW5kIHJlc2V0CisgICAgICAgICAgICByZXNpemUoMzIwLCA0ODApCisgICAgICAgICAgICBj
b21wYXJlKGRvY3VtZW50U2l6ZSgpLCAiMzIweDQ4MCIpCisgICAgICAgICAgICBjb21wYXJlKHRl
c3QuY29udGVudHNTY2FsZSwgMS4wKQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCmluZGV4IGZm
MTM1YTJjZjlhZjUyOTI5NzM2YzViMDQwMmYxMTU2MzJlNmZiYTQuLjM3NjNiNWUwNzgyZWNmMmRm
OTJkMjk1YmYwYjE4NDY1MDdiMzE4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKQEAgLTI4Miw2ICsyODIsOCBAQCBib29s
IFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnVwZGF0ZU1pbmltdW1TY2FsZVRvRml0KCkKICAgICBp
ZiAobV92aWV3cG9ydFNpemUuaXNFbXB0eSgpIHx8IG1fY29udGVudHNTaXplLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgYm9vbCBjdXJyZW50bHlTY2FsZWRUb0ZpdCA9
IChtX2VmZmVjdGl2ZVNjYWxlID09IHRvVmlld3BvcnRTY2FsZShtX21pbmltdW1TY2FsZVRvRml0
KSk7CisKICAgICBmbG9hdCBtaW5pbXVtU2NhbGUgPSBXZWJDb3JlOjpjb21wdXRlTWluaW11bVNj
YWxlRmFjdG9yRm9yQ29udGVudENvbnRhaW5lZChtX3Jhd0F0dHJpYnV0ZXMsIFdlYkNvcmU6OnJv
dW5kZWRJbnRTaXplKG1fdmlld3BvcnRTaXplKSwgV2ViQ29yZTo6cm91bmRlZEludFNpemUobV9j
b250ZW50c1NpemUpLCBkZXZpY2VQaXhlbFJhdGlvKCkpOwogCiAgICAgaWYgKG1pbmltdW1TY2Fs
ZSA8PSAwKQpAQCAtMjkwLDggKzI5MiwxNyBAQCBib29sIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6
OnVwZGF0ZU1pbmltdW1TY2FsZVRvRml0KCkKICAgICBpZiAoIWZ1enp5Q29tcGFyZShtaW5pbXVt
U2NhbGUsIG1fbWluaW11bVNjYWxlVG9GaXQsIDAuMDAxKSkgewogICAgICAgICBtX21pbmltdW1T
Y2FsZVRvRml0ID0gbWluaW11bVNjYWxlOwogCi0gICAgICAgIGlmICghbV9oYWRVc2VySW50ZXJh
Y3Rpb24gJiYgIWhhc1N1c3BlbmRlZENvbnRlbnQoKSkKLSAgICAgICAgICAgIGFwcGx5U2NhbGVB
ZnRlclJlbmRlcmluZ0NvbnRlbnRzKHRvVmlld3BvcnRTY2FsZShtaW5pbXVtU2NhbGUpKTsKKyAg
ICAgICAgaWYgKCFoYXNTdXNwZW5kZWRDb250ZW50KCkpIHsKKyAgICAgICAgICAgIGlmIChjdXJy
ZW50bHlTY2FsZWRUb0ZpdCkgeworICAgICAgICAgICAgICAgIC8vIEVuc3VyZSBhIGZpdCB2aWV3
cG9ydCBzdGF5cyBmaXQuCisgICAgICAgICAgICAgICAgYXBwbHlTY2FsZUFmdGVyUmVuZGVyaW5n
Q29udGVudHModG9WaWV3cG9ydFNjYWxlKG1fbWluaW11bVNjYWxlVG9GaXQpKTsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gRW5zdXJlIHRoZSBlZmZlY3RpdmUgc2Nh
bGUgc3RheXMgd2l0aGluIGJvdW5kcy4KKyAgICAgICAgICAgICAgICBmbG9hdCBib3VuZGVkU2Nh
bGUgPSBpbm5lckJvdW5kZWRWaWV3cG9ydFNjYWxlKG1fZWZmZWN0aXZlU2NhbGUpOworICAgICAg
ICAgICAgICAgIGlmIChib3VuZGVkU2NhbGUgIT0gbV9lZmZlY3RpdmVTY2FsZSkKKyAgICAgICAg
ICAgICAgICAgICAgYXBwbHlTY2FsZUFmdGVyUmVuZGVyaW5nQ29udGVudHMoYm91bmRlZFNjYWxl
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogCiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176714</attachid>
            <date>2012-11-29 06:17:14 -0800</date>
            <delta_ts>2012-11-29 06:37:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103521-20121129151420.patch</filename>
            <type>text/plain</type>
            <size>10134</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjgwNTU5NDg4ZjU4Zjg2
MGZmNjIwNTZiOGE0MzQzYWU4NWZjMTZiNS4uOGYwZWNlZmQzZDc1MmRlYmQyN2JkMTBjMzA3MjUz
YmE0NzdjZjNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTExLTI5ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFBv
c3NpYmxlIHRvIHJlc2l6ZSBvdXQgb2YgYm91bmRzIAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRW5mb3JjZSB0aGUgdmlld3BvcnRCb3VuZHMgYWZ0ZXIg
cmVzaXplLCBhbmQgZW5zdXJlIGEgdXNlciBmaXR0ZWQgcGFnZSByZW1haW5zCisgICAgICAgIGZp
dCBvbiB2aWV3cG9ydCByZXNpemUsIGJ1dCBub3Qgb24gY29udGVudCBncm93dGguCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X3Jlc2l6ZS5x
bWw6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6ZGlkQ2hhbmdlQ29u
dGVudHNTaXplKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6ZGlk
Q2hhbmdlVmlld3BvcnRBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0
Q29udHJvbGxlcjo6dXBkYXRlTWluaW11bVNjYWxlVG9GaXQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmg6CisgICAgICAgIChQYWdlVmlld3BvcnRDb250cm9s
bGVyKToKKwogMjAxMi0xMS0yOCAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4udHVyY290dGVA
ZGlnaWEuY29tPgogCiAgICAgICAgIFtRdF0gVGhlIFdlYlZpZXcgc2hvdWxkIGJlIGZsaWNrYWJs
ZSBvbmx5IHVzaW5nIHRvdWNoIGV2ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9yZXNpemUucW1sIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9y
ZXNpemUucW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliMjM0YjE2ZjZkZjg4NWQ4ZGM1YTdjYTdhMmQ1MTkzMDcz
NDEzNWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X3Jlc2l6ZS5xbWwKQEAgLTAsMCArMSwxNzQgQEAK
K2ltcG9ydCBRdFF1aWNrIDIuMAoraW1wb3J0IFF0VGVzdCAxLjAKK2ltcG9ydCBRdFdlYktpdCAz
LjAKK2ltcG9ydCBRdFdlYktpdC5leHBlcmltZW50YWwgMS4wCitpbXBvcnQgVGVzdCAxLjAKK2lt
cG9ydCAiLi4vY29tbW9uIgorCitJdGVtIHsKKyAgICBUZXN0V2ViVmlldyB7CisgICAgICAgIGlk
OiB3ZWJWaWV3CisgICAgICAgIHdpZHRoOiAzMjAKKyAgICAgICAgaGVpZ2h0OiA0ODAKKworICAg
ICAgICBwcm9wZXJ0eSB2YXJpYW50IHJlc3VsdAorCisgICAgICAgIHByb3BlcnR5IHZhcmlhbnQg
Y29udGVudDogImRhdGE6dGV4dC9odG1sLCIgKworICAgICAgICAgICAgIjxoZWFkPiIgKworICAg
ICAgICAgICAgIiAgICA8bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0nd2lkdGg9ZGV2aWNl
LXdpZHRoJz4iICsKKyAgICAgICAgICAgICI8L2hlYWQ+IiArCisgICAgICAgICAgICAiPGJvZHk+
IiArCisgICAgICAgICAgICAiICAgIDxkaXYgaWQ9J3RhcmdldCcgc3R5bGU9J3dpZHRoOiAyNDBw
eDsgaGVpZ2h0OiAzNjBweDsnPiIgKworICAgICAgICAgICAgIiAgICA8L2Rpdj4iICsKKyAgICAg
ICAgICAgICI8L2JvZHk+IgorCisgICAgICAgIHNpZ25hbCByZXN1bHRSZWNlaXZlZAorICAgIH0K
KworICAgIFNpZ25hbFNweSB7CisgICAgICAgIGlkOiByZXN1bHRTcHkKKyAgICAgICAgdGFyZ2V0
OiB3ZWJWaWV3CisgICAgICAgIHNpZ25hbE5hbWU6ICJyZXN1bHRSZWNlaXZlZCIKKyAgICB9CisK
KyAgICBTaWduYWxTcHkgeworICAgICAgICBpZDogc2NhbGVTcHkKKyAgICAgICAgdGFyZ2V0OiB3
ZWJWaWV3LmV4cGVyaW1lbnRhbC50ZXN0CisgICAgICAgIHNpZ25hbE5hbWU6ICJjb250ZW50c1Nj
YWxlQ29tbWl0dGVkIgorICAgIH0KKworICAgIFNpZ25hbFNweSB7CisgICAgICAgIGlkOiBzaXpl
U3B5CisgICAgICAgIHRhcmdldDogd2ViVmlldy5leHBlcmltZW50YWwudGVzdAorICAgICAgICBz
aWduYWxOYW1lOiAiY29udGVudHNTaXplQ2hhbmdlZCIKKyAgICB9CisKKyAgICBUZXN0Q2FzZSB7
CisgICAgICAgIG5hbWU6ICJSZXNpemUiCisgICAgICAgIHdoZW46IHdpbmRvd1Nob3duCisKKyAg
ICAgICAgcHJvcGVydHkgdmFyaWFudCB0ZXN0OiB3ZWJWaWV3LmV4cGVyaW1lbnRhbC50ZXN0CisK
KyAgICAgICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAgICAgICAgICAgIHJlc3VsdFNweS5jbGVhcigp
CisgICAgICAgICAgICBzY2FsZVNweS5jbGVhcigpCisgICAgICAgICAgICB2aWV3cG9ydFNweS5j
bGVhcigpCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBydW4oc2lnbmFsU3B5LCBzY3Jp
cHQpIHsKKyAgICAgICAgICAgIHNpZ25hbFNweS5jbGVhcigpOworICAgICAgICAgICAgdmFyIHJl
c3VsdDsKKyAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLmV2YWx1YXRlSmF2YVNjcmlw
dCgKKyAgICAgICAgICAgICAgICBzY3JpcHQsCisgICAgICAgICAgICAgICAgZnVuY3Rpb24odmFs
dWUpIHsgd2ViVmlldy5yZXN1bHRSZWNlaXZlZCgpOyByZXN1bHQgPSB2YWx1ZSB9KTsKKyAgICAg
ICAgICAgIHNpZ25hbFNweS53YWl0KCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY29udGVudHNTaXplKCkgeworICAgICAgICAgICAg
cmV0dXJuIHRlc3QuY29udGVudHNTaXplLndpZHRoICsgIngiICsgdGVzdC5jb250ZW50c1NpemUu
aGVpZ2h0OworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZWxlbWVudFJlY3QoaWQpIHsK
KyAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJ1bihyZXN1bHRTcHksICJKU09OLnN0cmlu
Z2lmeShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIGlkICsgIicpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpKTsiKSkKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRvdWJsZVRhcEF0
UG9pbnQoeCwgeSkgeworICAgICAgICAgICAgc2NhbGVTcHkuY2xlYXIoKQorICAgICAgICAgICAg
dGVzdC50b3VjaERvdWJsZVRhcCh3ZWJWaWV3LCB4LCB5KQorICAgICAgICAgICAgc2NhbGVTcHku
d2FpdCgpCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiByZXNpemUodywgaCkgeworICAg
ICAgICAgICAgc2l6ZVNweS5jbGVhcigpCisgICAgICAgICAgICB3ZWJWaWV3LndpZHRoID0gdwor
ICAgICAgICAgICAgc2l6ZVNweS53YWl0KCkKKyAgICAgICAgICAgIHdlYlZpZXcuaGVpZ2h0ID0g
aAorICAgICAgICAgICAgc2l6ZVNweS53YWl0KCkKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIHRlc3RfYmFzaWMoKSB7CisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IHdlYlZpZXcuY29u
dGVudAorICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvclZpZXdwb3J0UmVhZHkoKSkK
KworICAgICAgICAgICAgY29tcGFyZShjb250ZW50c1NpemUoKSwgIjMyMHg0ODAiKQorICAgICAg
ICAgICAgY29tcGFyZSh0ZXN0LmNvbnRlbnRzU2NhbGUsIDEuMCkKKworICAgICAgICAgICAgcmVz
aXplKDQ4MCwgNzIwKQorICAgICAgICAgICAgY29tcGFyZShjb250ZW50c1NpemUoKSwgIjQ4MHg3
MjAiKQorICAgICAgICAgICAgY29tcGFyZSh0ZXN0LmNvbnRlbnRzU2NhbGUsIDEuMCkKKworICAg
ICAgICAgICAgcmVzaXplKDMyMCwgNDgwKQorICAgICAgICAgICAgY29tcGFyZShjb250ZW50c1Np
emUoKSwgIjMyMHg0ODAiKQorICAgICAgICAgICAgY29tcGFyZSh0ZXN0LmNvbnRlbnRzU2NhbGUs
IDEuMCkKKworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9yZXNpemVBZnRlck5l
dXRyYWxab29tKCkgeworICAgICAgICAgICAgd2ViVmlldy51cmwgPSB3ZWJWaWV3LmNvbnRlbnQK
KyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JWaWV3cG9ydFJlYWR5KCkpCisKKyAg
ICAgICAgICAgIGNvbXBhcmUoY29udGVudHNTaXplKCksICIzMjB4NDgwIikKKyAgICAgICAgICAg
IGNvbXBhcmUodGVzdC5jb250ZW50c1NjYWxlLCAxLjApCisKKyAgICAgICAgICAgIHZhciB0YXJn
ZXQgPSBlbGVtZW50UmVjdCgidGFyZ2V0Iik7CisgICAgICAgICAgICB2YXIgdGFyZ2V0U2NhbGUg
PSB3ZWJWaWV3LndpZHRoIC8gKHRhcmdldC53aWR0aCArIDIgKiAxMCkgLy8gaW5mbGF0ZWQgYnkg
MTBweAorCisgICAgICAgICAgICAvLyBab29tIGluIGFuZCBvdXQuCisgICAgICAgICAgICBkb3Vi
bGVUYXBBdFBvaW50KDEwMCwgNTApCisKKyAgICAgICAgICAgIGNvbXBhcmUodGVzdC5jb250ZW50
c1NjYWxlLCB0YXJnZXRTY2FsZSkKKworICAgICAgICAgICAgZG91YmxlVGFwQXRQb2ludCgxMDAs
IDUwKQorCisgICAgICAgICAgICBjb21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgMS4wKQorCisg
ICAgICAgICAgICAvLyBOb3cgY2hlY2sgcmVzaXppbmcgc3RpbGwgd29ya3MgYXMgZXhwZWN0ZWQu
CisgICAgICAgICAgICByZXNpemUoNDgwLCA3MjApCisgICAgICAgICAgICBjb21wYXJlKGNvbnRl
bnRzU2l6ZSgpLCAiNDgweDcyMCIpCisgICAgICAgICAgICBjb21wYXJlKHRlc3QuY29udGVudHNT
Y2FsZSwgMS4wKQorCisgICAgICAgICAgICByZXNpemUoMzIwLCA0ODApCisgICAgICAgICAgICBj
b21wYXJlKGNvbnRlbnRzU2l6ZSgpLCAiMzIweDQ4MCIpCisgICAgICAgICAgICBjb21wYXJlKHRl
c3QuY29udGVudHNTY2FsZSwgMS4wKQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVz
dF9yZXNpemVab29tZWRJbigpIHsKKyAgICAgICAgICAgIC8vIE5vdGUgdGhhdCBpZiB3ZSBjaGFu
Z2UgcmVzaXppbmcgb2Ygem9vbWVkLWluIGJlaGF2aW9yIHRvIGFjdCBtb3JlIGxpa2Ugcm90YXRp
b24sIHRoaXMgdGVzdCBuZWVkIHRvIGJlIHVwZGF0ZWQuLgorICAgICAgICAgICAgd2ViVmlldy51
cmwgPSB3ZWJWaWV3LmNvbnRlbnQKKyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JW
aWV3cG9ydFJlYWR5KCkpCisKKyAgICAgICAgICAgIGNvbXBhcmUoY29udGVudHNTaXplKCksICIz
MjB4NDgwIikKKyAgICAgICAgICAgIGNvbXBhcmUodGVzdC5jb250ZW50c1NjYWxlLCAxLjApCisK
KyAgICAgICAgICAgIHZhciB0YXJnZXQgPSBlbGVtZW50UmVjdCgidGFyZ2V0Iik7CisgICAgICAg
ICAgICB2YXIgdGFyZ2V0U2NhbGUgPSB3ZWJWaWV3LndpZHRoIC8gKHRhcmdldC53aWR0aCArIDIg
KiAxMCkgLy8gaW5mbGF0ZWQgYnkgMTBweAorCisgICAgICAgICAgICAvLyBEb3VibGUgdGFwIHRv
IHpvb20gaW4uCisgICAgICAgICAgICBkb3VibGVUYXBBdFBvaW50KDEwMCwgNTApCisKKyAgICAg
ICAgICAgIGNvbXBhcmUodGVzdC5jb250ZW50c1NjYWxlLCB0YXJnZXRTY2FsZSkKKworICAgICAg
ICAgICAgLy8gUmVzaXplIGp1c3QgYSBzbWFsbCBiaXQsIG5vdCBjaGFuZ2luZyBzY2FsZS4KKyAg
ICAgICAgICAgIHJlc2l6ZSgyODgsIDQzMikKKyAgICAgICAgICAgIGNvbXBhcmUoY29udGVudHNT
aXplKCksICIyODh4NDMyIikKKyAgICAgICAgICAgIGNvbXBhcmUodGVzdC5jb250ZW50c1NjYWxl
LCB0YXJnZXRTY2FsZSkKKworICAgICAgICAgICAgLy8gQW5kIGRvdWJsZSB0YXAgdG8gcmVzZXQg
em9vbS4KKyAgICAgICAgICAgIHRhcmdldCA9IGVsZW1lbnRSZWN0KCJ0YXJnZXQiKTsKKyAgICAg
ICAgICAgIHRhcmdldFNjYWxlID0gd2ViVmlldy53aWR0aCAvICh0YXJnZXQud2lkdGggKyAyICog
MTApCisgICAgICAgICAgICBkb3VibGVUYXBBdFBvaW50KDEwMCwgNTApCisgICAgICAgICAgICBj
b21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgdGFyZ2V0U2NhbGUpCisKKyAgICAgICAgICAgIC8v
IERvdWJsZSB0YXAgYWdhaW4gdG8gem9vbSBvdXQuCisgICAgICAgICAgICBkb3VibGVUYXBBdFBv
aW50KDEwMCwgNTApCisgICAgICAgICAgICBjb21wYXJlKGNvbnRlbnRzU2l6ZSgpLCAiMjg4eDQz
MiIpCisgICAgICAgICAgICBjb21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgMS4wKQorCisgICAg
ICAgICAgICAvLyBBbmQgcmVzZXQKKyAgICAgICAgICAgIHJlc2l6ZSgzMjAsIDQ4MCkKKyAgICAg
ICAgICAgIGNvbXBhcmUoY29udGVudHNTaXplKCksICIzMjB4NDgwIikKKyAgICAgICAgICAgIGNv
bXBhcmUodGVzdC5jb250ZW50c1NjYWxlLCAxLjApCisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAK
aW5kZXggZmYxMzVhMmNmOWFmNTI5Mjk3MzZjNWIwNDAyZjExNTYzMmU2ZmJhNC4uZGNjZWY1MDVi
MGFmYTM5MjA5Njc4NTA2Zjg2ZTI5MmQzOTJkYzE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcApAQCAtMTExLDcgKzExMSw3
IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKGNv
bnN0IEludFNpemUmIG5ld1NpemUpCiB7CiAgICAgbV9jb250ZW50c1NpemUgPSBuZXdTaXplOwog
Ci0gICAgYm9vbCBtaW5pbXVtU2NhbGVVcGRhdGVkID0gdXBkYXRlTWluaW11bVNjYWxlVG9GaXQo
KTsKKyAgICBib29sIG1pbmltdW1TY2FsZVVwZGF0ZWQgPSB1cGRhdGVNaW5pbXVtU2NhbGVUb0Zp
dChmYWxzZSk7CiAKICAgICBpZiAobV9pbml0aWFsbHlGaXRUb1ZpZXdwb3J0KSB7CiAgICAgICAg
IC8vIFJlc3RyaWN0IHNjYWxlIGZhY3RvcnMgdG8gbV9taW5pbXVtU2NhbGVUb0ZpdC4KQEAgLTIz
Miw3ICsyMzIsNyBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OmRpZENoYW5nZVZpZXdw
b3J0QXR0cmlidXRlcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydAogICAgIGlmICghbV9pbml0aWFs
bHlGaXRUb1ZpZXdwb3J0KQogICAgICAgICBXZWJDb3JlOjpyZXN0cmljdFNjYWxlRmFjdG9yVG9J
bml0aWFsU2NhbGVJZk5vdFVzZXJTY2FsYWJsZShtX3Jhd0F0dHJpYnV0ZXMpOwogCi0gICAgaWYg
KHVwZGF0ZU1pbmltdW1TY2FsZVRvRml0KCkpCisgICAgaWYgKHVwZGF0ZU1pbmltdW1TY2FsZVRv
Rml0KHRydWUpKQogICAgICAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlVmlld3BvcnRBdHRyaWJ1dGVz
KCk7CiAKICAgICBzeW5jVmlzaWJsZUNvbnRlbnRzKCk7CkBAIC0yNzcsMTEgKzI3NywxMyBAQCB2
b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OmFwcGx5UG9zaXRpb25BZnRlclJlbmRlcmluZ0Nv
bnRlbnRzKGNvbnN0IEZsb2F0UG9pbgogICAgIHN5bmNWaXNpYmxlQ29udGVudHMoKTsKIH0KIAot
Ym9vbCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjp1cGRhdGVNaW5pbXVtU2NhbGVUb0ZpdCgpCiti
b29sIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnVwZGF0ZU1pbmltdW1TY2FsZVRvRml0KGJvb2wg
dXNlckluaXRpYXRlZFVwZGF0ZSkKIHsKICAgICBpZiAobV92aWV3cG9ydFNpemUuaXNFbXB0eSgp
IHx8IG1fY29udGVudHNTaXplLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisg
ICAgYm9vbCBzY2FsZVRvRml0ID0gIW1faGFkVXNlckludGVyYWN0aW9uIHx8ICh1c2VySW5pdGlh
dGVkVXBkYXRlICYmIGZ1enp5Q29tcGFyZShtX2VmZmVjdGl2ZVNjYWxlLCB0b1ZpZXdwb3J0U2Nh
bGUobV9taW5pbXVtU2NhbGVUb0ZpdCksIDAuMDAxKSk7CisKICAgICBmbG9hdCBtaW5pbXVtU2Nh
bGUgPSBXZWJDb3JlOjpjb21wdXRlTWluaW11bVNjYWxlRmFjdG9yRm9yQ29udGVudENvbnRhaW5l
ZChtX3Jhd0F0dHJpYnV0ZXMsIFdlYkNvcmU6OnJvdW5kZWRJbnRTaXplKG1fdmlld3BvcnRTaXpl
KSwgV2ViQ29yZTo6cm91bmRlZEludFNpemUobV9jb250ZW50c1NpemUpLCBkZXZpY2VQaXhlbFJh
dGlvKCkpOwogCiAgICAgaWYgKG1pbmltdW1TY2FsZSA8PSAwKQpAQCAtMjkwLDggKzI5MiwxNiBA
QCBib29sIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnVwZGF0ZU1pbmltdW1TY2FsZVRvRml0KCkK
ICAgICBpZiAoIWZ1enp5Q29tcGFyZShtaW5pbXVtU2NhbGUsIG1fbWluaW11bVNjYWxlVG9GaXQs
IDAuMDAxKSkgewogICAgICAgICBtX21pbmltdW1TY2FsZVRvRml0ID0gbWluaW11bVNjYWxlOwog
Ci0gICAgICAgIGlmICghbV9oYWRVc2VySW50ZXJhY3Rpb24gJiYgIWhhc1N1c3BlbmRlZENvbnRl
bnQoKSkKLSAgICAgICAgICAgIGFwcGx5U2NhbGVBZnRlclJlbmRlcmluZ0NvbnRlbnRzKHRvVmll
d3BvcnRTY2FsZShtaW5pbXVtU2NhbGUpKTsKKyAgICAgICAgaWYgKCFoYXNTdXNwZW5kZWRDb250
ZW50KCkpIHsKKyAgICAgICAgICAgIGlmIChzY2FsZVRvRml0KQorICAgICAgICAgICAgICAgIGFw
cGx5U2NhbGVBZnRlclJlbmRlcmluZ0NvbnRlbnRzKHRvVmlld3BvcnRTY2FsZShtX21pbmltdW1T
Y2FsZVRvRml0KSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBFbnN1
cmUgdGhlIGVmZmVjdGl2ZSBzY2FsZSBzdGF5cyB3aXRoaW4gYm91bmRzLgorICAgICAgICAgICAg
ICAgIGZsb2F0IGJvdW5kZWRTY2FsZSA9IGlubmVyQm91bmRlZFZpZXdwb3J0U2NhbGUobV9lZmZl
Y3RpdmVTY2FsZSk7CisgICAgICAgICAgICAgICAgaWYgKCFmdXp6eUNvbXBhcmUoYm91bmRlZFNj
YWxlLCBtX2VmZmVjdGl2ZVNjYWxlLCAwLjAwMSkpCisgICAgICAgICAgICAgICAgICAgIGFwcGx5
U2NhbGVBZnRlclJlbmRlcmluZ0NvbnRlbnRzKGJvdW5kZWRTY2FsZSk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaAppbmRleCAwNTJlODlh
YjBhNzkzMjk4NGFlMjc0ZmVlMzVhMGRiZGM4YmIwZTUzLi4wMjkyMjhkZGU1YTY5YjcyYzdhNDBi
MGJkZjRhNTgyMDhkOTg2NWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGFnZVZpZXdwb3J0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
YWdlVmlld3BvcnRDb250cm9sbGVyLmgKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHN5bmNWaXNpYmxlQ29udGVudHMoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCAmdHJhamVj
dG9yeVZlY3RvciA9IFdlYkNvcmU6OkZsb2F0UG9pbnQ6Onplcm8oKSk7CiAgICAgdm9pZCBhcHBs
eVNjYWxlQWZ0ZXJSZW5kZXJpbmdDb250ZW50cyhmbG9hdCBzY2FsZSk7CiAgICAgdm9pZCBhcHBs
eVBvc2l0aW9uQWZ0ZXJSZW5kZXJpbmdDb250ZW50cyhjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBwb3MpOwotICAgIGJvb2wgdXBkYXRlTWluaW11bVNjYWxlVG9GaXQoKTsKKyAgICBib29sIHVw
ZGF0ZU1pbmltdW1TY2FsZVRvRml0KGJvb2wgdXNlckluaXRpYXRlZFVwZGF0ZSk7CiAgICAgV2Vi
Q29yZTo6RmxvYXRTaXplIHZpZXdwb3J0U2l6ZUluQ29udGVudHNDb29yZGluYXRlcygpIGNvbnN0
OwogCiAgICAgV2ViUGFnZVByb3h5KiBjb25zdCBtX3dlYlBhZ2VQcm94eTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176716</attachid>
            <date>2012-11-29 06:37:10 -0800</date>
            <delta_ts>2012-11-29 06:48:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103521-20121129153416.patch</filename>
            <type>text/plain</type>
            <size>10219</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjgwNTU5NDg4ZjU4Zjg2
MGZmNjIwNTZiOGE0MzQzYWU4NWZjMTZiNS4uOGYwZWNlZmQzZDc1MmRlYmQyN2JkMTBjMzA3MjUz
YmE0NzdjZjNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTExLTI5ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIFBv
c3NpYmxlIHRvIHJlc2l6ZSBvdXQgb2YgYm91bmRzIAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRW5mb3JjZSB0aGUgdmlld3BvcnRCb3VuZHMgYWZ0ZXIg
cmVzaXplLCBhbmQgZW5zdXJlIGEgdXNlciBmaXR0ZWQgcGFnZSByZW1haW5zCisgICAgICAgIGZp
dCBvbiB2aWV3cG9ydCByZXNpemUsIGJ1dCBub3Qgb24gY29udGVudCBncm93dGguCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X3Jlc2l6ZS5x
bWw6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6ZGlkQ2hhbmdlQ29u
dGVudHNTaXplKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6ZGlk
Q2hhbmdlVmlld3BvcnRBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0
Q29udHJvbGxlcjo6dXBkYXRlTWluaW11bVNjYWxlVG9GaXQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmg6CisgICAgICAgIChQYWdlVmlld3BvcnRDb250cm9s
bGVyKToKKwogMjAxMi0xMS0yOCAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4udHVyY290dGVA
ZGlnaWEuY29tPgogCiAgICAgICAgIFtRdF0gVGhlIFdlYlZpZXcgc2hvdWxkIGJlIGZsaWNrYWJs
ZSBvbmx5IHVzaW5nIHRvdWNoIGV2ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9yZXNpemUucW1sIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9XZWJWaWV3L3RzdF9y
ZXNpemUucW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmNmM2M2I1NzZmZjhkYzAwMDgwOTE2Zjk4MGZkYTIzM2Q1
NDBiMmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL1dlYlZpZXcvdHN0X3Jlc2l6ZS5xbWwKQEAgLTAsMCArMSwxNzUgQEAK
K2ltcG9ydCBRdFF1aWNrIDIuMAoraW1wb3J0IFF0VGVzdCAxLjAKK2ltcG9ydCBRdFdlYktpdCAz
LjAKK2ltcG9ydCBRdFdlYktpdC5leHBlcmltZW50YWwgMS4wCitpbXBvcnQgVGVzdCAxLjAKK2lt
cG9ydCAiLi4vY29tbW9uIgorCitJdGVtIHsKKyAgICBUZXN0V2ViVmlldyB7CisgICAgICAgIGlk
OiB3ZWJWaWV3CisgICAgICAgIHdpZHRoOiAzMjAKKyAgICAgICAgaGVpZ2h0OiA0ODAKKworICAg
ICAgICBwcm9wZXJ0eSB2YXJpYW50IHJlc3VsdAorCisgICAgICAgIHByb3BlcnR5IHZhcmlhbnQg
Y29udGVudDogImRhdGE6dGV4dC9odG1sLCIgKworICAgICAgICAgICAgIjxoZWFkPiIgKworICAg
ICAgICAgICAgIiAgICA8bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVudD0nd2lkdGg9ZGV2aWNl
LXdpZHRoJz4iICsKKyAgICAgICAgICAgICI8L2hlYWQ+IiArCisgICAgICAgICAgICAiPGJvZHk+
IiArCisgICAgICAgICAgICAiICAgIDxkaXYgaWQ9J3RhcmdldCcgc3R5bGU9J3dpZHRoOiAyNDBw
eDsgaGVpZ2h0OiAzNjBweDsnPiIgKworICAgICAgICAgICAgIiAgICA8L2Rpdj4iICsKKyAgICAg
ICAgICAgICI8L2JvZHk+IgorCisgICAgICAgIHNpZ25hbCByZXN1bHRSZWNlaXZlZAorICAgIH0K
KworICAgIFNpZ25hbFNweSB7CisgICAgICAgIGlkOiByZXN1bHRTcHkKKyAgICAgICAgdGFyZ2V0
OiB3ZWJWaWV3CisgICAgICAgIHNpZ25hbE5hbWU6ICJyZXN1bHRSZWNlaXZlZCIKKyAgICB9CisK
KyAgICBTaWduYWxTcHkgeworICAgICAgICBpZDogc2NhbGVTcHkKKyAgICAgICAgdGFyZ2V0OiB3
ZWJWaWV3LmV4cGVyaW1lbnRhbC50ZXN0CisgICAgICAgIHNpZ25hbE5hbWU6ICJjb250ZW50c1Nj
YWxlQ29tbWl0dGVkIgorICAgIH0KKworICAgIFNpZ25hbFNweSB7CisgICAgICAgIGlkOiBzaXpl
U3B5CisgICAgICAgIHRhcmdldDogd2ViVmlldy5leHBlcmltZW50YWwudGVzdAorICAgICAgICBz
aWduYWxOYW1lOiAiY29udGVudHNTaXplQ2hhbmdlZCIKKyAgICB9CisKKyAgICBUZXN0Q2FzZSB7
CisgICAgICAgIG5hbWU6ICJSZXNpemUiCisgICAgICAgIHdoZW46IHdpbmRvd1Nob3duCisKKyAg
ICAgICAgcHJvcGVydHkgdmFyaWFudCB0ZXN0OiB3ZWJWaWV3LmV4cGVyaW1lbnRhbC50ZXN0CisK
KyAgICAgICAgZnVuY3Rpb24gaW5pdCgpIHsKKyAgICAgICAgICAgIHJlc3VsdFNweS5jbGVhcigp
CisgICAgICAgICAgICBzY2FsZVNweS5jbGVhcigpCisgICAgICAgICAgICB2aWV3cG9ydFNweS5j
bGVhcigpCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBydW4oc2lnbmFsU3B5LCBzY3Jp
cHQpIHsKKyAgICAgICAgICAgIHNpZ25hbFNweS5jbGVhcigpOworICAgICAgICAgICAgdmFyIHJl
c3VsdDsKKyAgICAgICAgICAgIHdlYlZpZXcuZXhwZXJpbWVudGFsLmV2YWx1YXRlSmF2YVNjcmlw
dCgKKyAgICAgICAgICAgICAgICBzY3JpcHQsCisgICAgICAgICAgICAgICAgZnVuY3Rpb24odmFs
dWUpIHsgd2ViVmlldy5yZXN1bHRSZWNlaXZlZCgpOyByZXN1bHQgPSB2YWx1ZSB9KTsKKyAgICAg
ICAgICAgIHNpZ25hbFNweS53YWl0KCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY29udGVudHNTaXplKCkgeworICAgICAgICAgICAg
cmV0dXJuIHRlc3QuY29udGVudHNTaXplLndpZHRoICsgIngiICsgdGVzdC5jb250ZW50c1NpemUu
aGVpZ2h0OworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZWxlbWVudFJlY3QoaWQpIHsK
KyAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHJ1bihyZXN1bHRTcHksICJKU09OLnN0cmlu
Z2lmeShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIGlkICsgIicpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpKTsiKSkKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRvdWJsZVRhcEF0
UG9pbnQoeCwgeSkgeworICAgICAgICAgICAgc2NhbGVTcHkuY2xlYXIoKQorICAgICAgICAgICAg
dGVzdC50b3VjaERvdWJsZVRhcCh3ZWJWaWV3LCB4LCB5KQorICAgICAgICAgICAgc2NhbGVTcHku
d2FpdCgpCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiByZXNpemUodywgaCkgeworICAg
ICAgICAgICAgc2l6ZVNweS5jbGVhcigpCisgICAgICAgICAgICB3ZWJWaWV3LndpZHRoID0gdwor
ICAgICAgICAgICAgc2l6ZVNweS53YWl0KCkKKyAgICAgICAgICAgIHdlYlZpZXcuaGVpZ2h0ID0g
aAorICAgICAgICAgICAgc2l6ZVNweS53YWl0KCkKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIHRlc3RfYmFzaWMoKSB7CisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IHdlYlZpZXcuY29u
dGVudAorICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZvclZpZXdwb3J0UmVhZHkoKSkK
KworICAgICAgICAgICAgY29tcGFyZShjb250ZW50c1NpemUoKSwgIjMyMHg0ODAiKQorICAgICAg
ICAgICAgY29tcGFyZSh0ZXN0LmNvbnRlbnRzU2NhbGUsIDEuMCkKKworICAgICAgICAgICAgcmVz
aXplKDQ4MCwgNzIwKQorICAgICAgICAgICAgY29tcGFyZShjb250ZW50c1NpemUoKSwgIjQ4MHg3
MjAiKQorICAgICAgICAgICAgY29tcGFyZSh0ZXN0LmNvbnRlbnRzU2NhbGUsIDEuMCkKKworICAg
ICAgICAgICAgcmVzaXplKDMyMCwgNDgwKQorICAgICAgICAgICAgY29tcGFyZShjb250ZW50c1Np
emUoKSwgIjMyMHg0ODAiKQorICAgICAgICAgICAgY29tcGFyZSh0ZXN0LmNvbnRlbnRzU2NhbGUs
IDEuMCkKKworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9yZXNpemVBZnRlck5l
dXRyYWxab29tKCkgeworICAgICAgICAgICAgd2ViVmlldy51cmwgPSB3ZWJWaWV3LmNvbnRlbnQK
KyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRGb3JWaWV3cG9ydFJlYWR5KCkpCisKKyAg
ICAgICAgICAgIGNvbXBhcmUoY29udGVudHNTaXplKCksICIzMjB4NDgwIikKKyAgICAgICAgICAg
IGNvbXBhcmUodGVzdC5jb250ZW50c1NjYWxlLCAxLjApCisKKyAgICAgICAgICAgIHZhciB0YXJn
ZXQgPSBlbGVtZW50UmVjdCgidGFyZ2V0Iik7CisgICAgICAgICAgICB2YXIgdGFyZ2V0U2NhbGUg
PSB3ZWJWaWV3LndpZHRoIC8gKHRhcmdldC53aWR0aCArIDIgKiAxMCkgLy8gaW5mbGF0ZWQgYnkg
MTBweAorCisgICAgICAgICAgICAvLyBab29tIGluIGFuZCBvdXQuCisgICAgICAgICAgICBkb3Vi
bGVUYXBBdFBvaW50KDEwMCwgNTApCisKKyAgICAgICAgICAgIGNvbXBhcmUodGVzdC5jb250ZW50
c1NjYWxlLCB0YXJnZXRTY2FsZSkKKworICAgICAgICAgICAgZG91YmxlVGFwQXRQb2ludCgxMDAs
IDUwKQorCisgICAgICAgICAgICBjb21wYXJlKHRlc3QuY29udGVudHNTY2FsZSwgMS4wKQorCisg
ICAgICAgICAgICAvLyBOb3cgY2hlY2sgcmVzaXppbmcgc3RpbGwgd29ya3MgYXMgZXhwZWN0ZWQu
CisgICAgICAgICAgICByZXNpemUoNDgwLCA3MjApCisgICAgICAgICAgICBjb21wYXJlKGNvbnRl
bnRzU2l6ZSgpLCAiNDgweDcyMCIpCisgICAgICAgICAgICBjb21wYXJlKHRlc3QuY29udGVudHNT
Y2FsZSwgMS4wKQorCisgICAgICAgICAgICByZXNpemUoMzIwLCA0ODApCisgICAgICAgICAgICBj
b21wYXJlKGNvbnRlbnRzU2l6ZSgpLCAiMzIweDQ4MCIpCisgICAgICAgICAgICBjb21wYXJlKHRl
c3QuY29udGVudHNTY2FsZSwgMS4wKQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVz
dF9yZXNpemVab29tZWRJbigpIHsKKyAgICAgICAgICAgIC8vIE5vdGUgdGhhdCBpZiB3ZSBjaGFu
Z2UgdGhlIGJlaGF2aW9yIG9mIHJlc2l6ZSBvbiB6b29tZWQtaW4gY29udGVudCwgZm9yIGluc3Rh
bmNlCisgICAgICAgICAgICAvLyB0byBwcmVzZXJ2ZSB0aGUgdmlzaWJsZSB3aWR0aCAobGlrZSBy
b3RhdGUpLCB0aGlzIHRlc3Qgd2lsbCBuZWVkIHRvIGJlIHVwZGF0ZWQuCisgICAgICAgICAgICB3
ZWJWaWV3LnVybCA9IHdlYlZpZXcuY29udGVudAorICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcu
d2FpdEZvclZpZXdwb3J0UmVhZHkoKSkKKworICAgICAgICAgICAgY29tcGFyZShjb250ZW50c1Np
emUoKSwgIjMyMHg0ODAiKQorICAgICAgICAgICAgY29tcGFyZSh0ZXN0LmNvbnRlbnRzU2NhbGUs
IDEuMCkKKworICAgICAgICAgICAgdmFyIHRhcmdldCA9IGVsZW1lbnRSZWN0KCJ0YXJnZXQiKTsK
KyAgICAgICAgICAgIHZhciB0YXJnZXRTY2FsZSA9IHdlYlZpZXcud2lkdGggLyAodGFyZ2V0Lndp
ZHRoICsgMiAqIDEwKSAvLyBpbmZsYXRlZCBieSAxMHB4CisKKyAgICAgICAgICAgIC8vIERvdWJs
ZSB0YXAgdG8gem9vbSBpbi4KKyAgICAgICAgICAgIGRvdWJsZVRhcEF0UG9pbnQoMTAwLCA1MCkK
KworICAgICAgICAgICAgY29tcGFyZSh0ZXN0LmNvbnRlbnRzU2NhbGUsIHRhcmdldFNjYWxlKQor
CisgICAgICAgICAgICAvLyBSZXNpemUganVzdCBhIHNtYWxsIGJpdCwgbm90IGNoYW5naW5nIHNj
YWxlLgorICAgICAgICAgICAgcmVzaXplKDI4OCwgNDMyKQorICAgICAgICAgICAgY29tcGFyZShj
b250ZW50c1NpemUoKSwgIjI4OHg0MzIiKQorICAgICAgICAgICAgY29tcGFyZSh0ZXN0LmNvbnRl
bnRzU2NhbGUsIHRhcmdldFNjYWxlKQorCisgICAgICAgICAgICAvLyBBbmQgZG91YmxlIHRhcCB0
byByZXNldCB6b29tLgorICAgICAgICAgICAgdGFyZ2V0ID0gZWxlbWVudFJlY3QoInRhcmdldCIp
OworICAgICAgICAgICAgdGFyZ2V0U2NhbGUgPSB3ZWJWaWV3LndpZHRoIC8gKHRhcmdldC53aWR0
aCArIDIgKiAxMCkKKyAgICAgICAgICAgIGRvdWJsZVRhcEF0UG9pbnQoMTAwLCA1MCkKKyAgICAg
ICAgICAgIGNvbXBhcmUodGVzdC5jb250ZW50c1NjYWxlLCB0YXJnZXRTY2FsZSkKKworICAgICAg
ICAgICAgLy8gRG91YmxlIHRhcCBhZ2FpbiB0byB6b29tIG91dC4KKyAgICAgICAgICAgIGRvdWJs
ZVRhcEF0UG9pbnQoMTAwLCA1MCkKKyAgICAgICAgICAgIGNvbXBhcmUoY29udGVudHNTaXplKCks
ICIyODh4NDMyIikKKyAgICAgICAgICAgIGNvbXBhcmUodGVzdC5jb250ZW50c1NjYWxlLCAxLjAp
CisKKyAgICAgICAgICAgIC8vIEFuZCByZXNldAorICAgICAgICAgICAgcmVzaXplKDMyMCwgNDgw
KQorICAgICAgICAgICAgY29tcGFyZShjb250ZW50c1NpemUoKSwgIjMyMHg0ODAiKQorICAgICAg
ICAgICAgY29tcGFyZSh0ZXN0LmNvbnRlbnRzU2NhbGUsIDEuMCkKKyAgICAgICAgfQorICAgIH0K
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9s
bGVyLmNwcAppbmRleCBmZjEzNWEyY2Y5YWY1MjkyOTczNmM1YjA0MDJmMTE1NjMyZTZmYmE0Li43
YjRlNjY1NTY1NjIxZjdiZmEzOTQyY2IwNzgzZWU0ZDcwZGQ3OTk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCkBAIC0xMTEs
NyArMTExLDcgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjpkaWRDaGFuZ2VDb250ZW50
c1NpemUoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKIHsKICAgICBtX2NvbnRlbnRzU2l6ZSA9IG5l
d1NpemU7CiAKLSAgICBib29sIG1pbmltdW1TY2FsZVVwZGF0ZWQgPSB1cGRhdGVNaW5pbXVtU2Nh
bGVUb0ZpdCgpOworICAgIGJvb2wgbWluaW11bVNjYWxlVXBkYXRlZCA9IHVwZGF0ZU1pbmltdW1T
Y2FsZVRvRml0KGZhbHNlKTsKIAogICAgIGlmIChtX2luaXRpYWxseUZpdFRvVmlld3BvcnQpIHsK
ICAgICAgICAgLy8gUmVzdHJpY3Qgc2NhbGUgZmFjdG9ycyB0byBtX21pbmltdW1TY2FsZVRvRml0
LgpAQCAtMjMyLDcgKzIzMiw3IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6ZGlkQ2hh
bmdlVmlld3BvcnRBdHRyaWJ1dGVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0CiAgICAgaWYgKCFt
X2luaXRpYWxseUZpdFRvVmlld3BvcnQpCiAgICAgICAgIFdlYkNvcmU6OnJlc3RyaWN0U2NhbGVG
YWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxhYmxlKG1fcmF3QXR0cmlidXRlcyk7CiAK
LSAgICBpZiAodXBkYXRlTWluaW11bVNjYWxlVG9GaXQoKSkKKyAgICBpZiAodXBkYXRlTWluaW11
bVNjYWxlVG9GaXQodHJ1ZSkpCiAgICAgICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VWaWV3cG9ydEF0
dHJpYnV0ZXMoKTsKIAogICAgIHN5bmNWaXNpYmxlQ29udGVudHMoKTsKQEAgLTI3NywxMSArMjc3
LDEzIEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6YXBwbHlQb3NpdGlvbkFmdGVyUmVu
ZGVyaW5nQ29udGVudHMoY29uc3QgRmxvYXRQb2luCiAgICAgc3luY1Zpc2libGVDb250ZW50cygp
OwogfQogCi1ib29sIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnVwZGF0ZU1pbmltdW1TY2FsZVRv
Rml0KCkKK2Jvb2wgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6dXBkYXRlTWluaW11bVNjYWxlVG9G
aXQoYm9vbCB1c2VySW5pdGlhdGVkVXBkYXRlKQogewogICAgIGlmIChtX3ZpZXdwb3J0U2l6ZS5p
c0VtcHR5KCkgfHwgbV9jb250ZW50c1NpemUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKKyAgICBib29sIGN1cnJlbnRseVNjYWxlZFRvRml0ID0gZnV6enlDb21wYXJlKG1fZWZm
ZWN0aXZlU2NhbGUsIHRvVmlld3BvcnRTY2FsZShtX21pbmltdW1TY2FsZVRvRml0KSwgMC4wMDEp
OworCiAgICAgZmxvYXQgbWluaW11bVNjYWxlID0gV2ViQ29yZTo6Y29tcHV0ZU1pbmltdW1TY2Fs
ZUZhY3RvckZvckNvbnRlbnRDb250YWluZWQobV9yYXdBdHRyaWJ1dGVzLCBXZWJDb3JlOjpyb3Vu
ZGVkSW50U2l6ZShtX3ZpZXdwb3J0U2l6ZSksIFdlYkNvcmU6OnJvdW5kZWRJbnRTaXplKG1fY29u
dGVudHNTaXplKSwgZGV2aWNlUGl4ZWxSYXRpbygpKTsKIAogICAgIGlmIChtaW5pbXVtU2NhbGUg
PD0gMCkKQEAgLTI5MCw4ICsyOTIsMTYgQEAgYm9vbCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjp1
cGRhdGVNaW5pbXVtU2NhbGVUb0ZpdCgpCiAgICAgaWYgKCFmdXp6eUNvbXBhcmUobWluaW11bVNj
YWxlLCBtX21pbmltdW1TY2FsZVRvRml0LCAwLjAwMSkpIHsKICAgICAgICAgbV9taW5pbXVtU2Nh
bGVUb0ZpdCA9IG1pbmltdW1TY2FsZTsKIAotICAgICAgICBpZiAoIW1faGFkVXNlckludGVyYWN0
aW9uICYmICFoYXNTdXNwZW5kZWRDb250ZW50KCkpCi0gICAgICAgICAgICBhcHBseVNjYWxlQWZ0
ZXJSZW5kZXJpbmdDb250ZW50cyh0b1ZpZXdwb3J0U2NhbGUobWluaW11bVNjYWxlKSk7CisgICAg
ICAgIGlmICghaGFzU3VzcGVuZGVkQ29udGVudCgpKSB7CisgICAgICAgICAgICBpZiAoIW1faGFk
VXNlckludGVyYWN0aW9uIHx8ICh1c2VySW5pdGlhdGVkVXBkYXRlICYmIGN1cnJlbnRseVNjYWxl
ZFRvRml0KSkKKyAgICAgICAgICAgICAgICBhcHBseVNjYWxlQWZ0ZXJSZW5kZXJpbmdDb250ZW50
cyh0b1ZpZXdwb3J0U2NhbGUobV9taW5pbXVtU2NhbGVUb0ZpdCkpOworICAgICAgICAgICAgZWxz
ZSB7CisgICAgICAgICAgICAgICAgLy8gRW5zdXJlIHRoZSBlZmZlY3RpdmUgc2NhbGUgc3RheXMg
d2l0aGluIGJvdW5kcy4KKyAgICAgICAgICAgICAgICBmbG9hdCBib3VuZGVkU2NhbGUgPSBpbm5l
ckJvdW5kZWRWaWV3cG9ydFNjYWxlKG1fZWZmZWN0aXZlU2NhbGUpOworICAgICAgICAgICAgICAg
IGlmICghZnV6enlDb21wYXJlKGJvdW5kZWRTY2FsZSwgbV9lZmZlY3RpdmVTY2FsZSwgMC4wMDEp
KQorICAgICAgICAgICAgICAgICAgICBhcHBseVNjYWxlQWZ0ZXJSZW5kZXJpbmdDb250ZW50cyhi
b3VuZGVkU2NhbGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VW
aWV3cG9ydENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3Bv
cnRDb250cm9sbGVyLmgKaW5kZXggMDUyZTg5YWIwYTc5MzI5ODRhZTI3NGZlZTM1YTBkYmRjOGJi
MGU1My4uMDI5MjI4ZGRlNWE2OWI3MmM3YTQwYjBiZGY0YTU4MjA4ZDk4NjViMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oCkBAIC04
NCw3ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzeW5jVmlzaWJsZUNvbnRlbnRzKGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQgJnRyYWplY3RvcnlWZWN0b3IgPSBXZWJDb3JlOjpGbG9hdFBv
aW50Ojp6ZXJvKCkpOwogICAgIHZvaWQgYXBwbHlTY2FsZUFmdGVyUmVuZGVyaW5nQ29udGVudHMo
ZmxvYXQgc2NhbGUpOwogICAgIHZvaWQgYXBwbHlQb3NpdGlvbkFmdGVyUmVuZGVyaW5nQ29udGVu
dHMoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9zKTsKLSAgICBib29sIHVwZGF0ZU1pbmlt
dW1TY2FsZVRvRml0KCk7CisgICAgYm9vbCB1cGRhdGVNaW5pbXVtU2NhbGVUb0ZpdChib29sIHVz
ZXJJbml0aWF0ZWRVcGRhdGUpOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSB2aWV3cG9ydFNpemVJ
bkNvbnRlbnRzQ29vcmRpbmF0ZXMoKSBjb25zdDsKIAogICAgIFdlYlBhZ2VQcm94eSogY29uc3Qg
bV93ZWJQYWdlUHJveHk7Cg==
</data>
<flag name="review"
          id="192584"
          type_id="1"
          status="+"
          setter="jturcotte"
    />
          </attachment>
      

    </bug>

</bugzilla>