<?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>83091</bug_id>
          
          <creation_ts>2012-04-03 16:18:14 -0700</creation_ts>
          <short_desc>[Qt][WK2] Click, mouse and links rely on touch mocking</short_desc>
          <delta_ts>2012-08-02 07:42:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</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>Qt</keywords>
          <priority>P1</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>83033</dependson>
          <blocked>76773</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Andras Becsi">abecsi</assigned_to>
          <cc>abecsi</cc>
    
    <cc>alex.bravo</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>hausmann</cc>
    
    <cc>menard</cc>
    
    <cc>rafael.lobo</cc>
    
    <cc>shanhong.chen</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>595007</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-04-03 16:18:14 -0700</bug_when>
    <thetext>When loading an HTML file from QML without MiniBrowser, in &quot;mobile&quot; mode, links and mouse-events don&apos;t work.
Those start to work again when using touch-mocking, or when disabling Flickable.

This makes the mobile-version of QQuickWebView unusable without MiniBrowser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595009</commentid>
    <comment_count>1</comment_count>
      <attachid>135448</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-04-03 16:20:41 -0700</bug_when>
    <thetext>Created attachment 135448
QML loader

QML file showing the problem</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595010</commentid>
    <comment_count>2</comment_count>
      <attachid>135449</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-04-03 16:21:14 -0700</bug_when>
    <thetext>Created attachment 135449
HTML file with some mouse/links.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595051</commentid>
    <comment_count>3</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-04-03 17:21:30 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=83033 Seems to fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595563</commentid>
    <comment_count>4</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-04-04 08:37:14 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; When loading an HTML file from QML without MiniBrowser, in &quot;mobile&quot; mode, links and mouse-events don&apos;t work.
&gt; Those start to work again when using touch-mocking, or when disabling Flickable.

Subclassing from flickable should not change the behaviour for links so I wonder why it fixed your issue.

In &quot;mobile&quot; mode on a device which has only touch events clicking on links happens with tap gestures.
If this does not work with touch events then there is something wrong with the tap gesture recognizer.

The mouse events are disabled for the flickable webview for now, since it would select text when panning, but after http://codereview.qt-project.org/21896 we can enable it again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595667</commentid>
    <comment_count>5</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-04-04 10:31:25 -0700</bug_when>
    <thetext>&gt; Subclassing from flickable should not change the behaviour for links so I wonder why it fixed your issue.

It didn&apos;t, I tested again. Might have been a testing error.

&gt; In &quot;mobile&quot; mode on a device which has only touch events clicking on links happens with tap gestures.

There&apos;s no way to disable mobile mode

&gt; If this does not work with touch events then there is something wrong with the tap gesture recognizer.
&gt; 
&gt; The mouse events are disabled for the flickable webview for now, since it would select text when panning, but after http://codereview.qt-project.org/21896 we can enable it again.

So, right now, there&apos;s still no way to get pages with links running with pure QML... Let&apos;s see if that gets fixed after that Qt bug is in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638657</commentid>
    <comment_count>6</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2012-05-31 13:04:53 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; The mouse events are disabled for the flickable webview for now, since it would select text when panning, but after http://codereview.qt-project.org/21896 we can enable it again.

For the record: the mentioned change was abandoned in favor of another one https://codereview.qt-project.org/#change,24189</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682009</commentid>
    <comment_count>7</comment_count>
      <attachid>155290</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-07-30 07:55:22 -0700</bug_when>
    <thetext>Created attachment 155290
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682034</commentid>
    <comment_count>8</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-07-30 08:23:49 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=155290) [details]
&gt; proposed patch

Simon, is this similar to what you had in mind when we were discussing this issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685228</commentid>
    <comment_count>9</comment_count>
      <attachid>155290</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-08-02 05:03:01 -0700</bug_when>
    <thetext>Comment on attachment 155290
proposed patch

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

Looks good in general, a couple of small issues and questions :)

&gt; Source/WebKit2/UIProcess/qt/QtWebPageEventHandler.cpp:460
&gt; +        isMouseEvent = true;
&gt;      case QEvent::TouchBegin:

I think between those two lines we usually add a &quot;// Fall through&quot; comment, to indicate that the &quot;fall through&quot; is deliberate.

&gt; Source/WebKit2/UIProcess/qt/QtWebPageEventHandler.cpp:463
&gt; +        m_isMouseButtonPressed = true;

Shouldn&apos;t this be set in QEvent::MouseButtonPress?

&gt; Source/WebKit2/UIProcess/qt/QtWebPageEventHandler.cpp:476
&gt; +        isMouseEvent = true;
&gt;      case QEvent::TouchUpdate:

Fall through comment.

&gt; Source/WebKit2/UIProcess/qt/QtWebPageEventHandler.cpp:483
&gt; +        isMouseEvent = true;
&gt;      case QEvent::TouchEnd:

And here :)

&gt; Source/WebKit2/UIProcess/qt/QtWebPageEventHandler.cpp:484
&gt; +        m_isMouseButtonPressed = false;

Same question as above: Should this be in case QEvent::MouseButtonRelease?

&gt; Source/WebKit2/UIProcess/qt/QtWebPageEventHandler.cpp:515
&gt; +        currentTouchPoint.setId(mouseEvent-&gt;buttons());

Maybe worth a comment, it&apos;s easy to overlook this trick when glancing through the code :)

&gt; Source/WebKit2/UIProcess/qt/QtWebPageEventHandler.cpp:517
&gt; +        currentTouchPoint.setRect(QRectF(mouseEvent-&gt;localPos(), QSizeF(40, 40)));

Hm, why 40, 40 instead of 1, 1?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685353</commentid>
    <comment_count>10</comment_count>
      <attachid>156077</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-08-02 07:20:31 -0700</bug_when>
    <thetext>Created attachment 156077
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685367</commentid>
    <comment_count>11</comment_count>
      <attachid>156077</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-08-02 07:38:50 -0700</bug_when>
    <thetext>Comment on attachment 156077
proposed patch

r=me nice :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685370</commentid>
    <comment_count>12</comment_count>
      <attachid>156077</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-08-02 07:42:44 -0700</bug_when>
    <thetext>Comment on attachment 156077
proposed patch

Clearing flags on attachment: 156077

Committed r124455: &lt;http://trac.webkit.org/changeset/124455&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685371</commentid>
    <comment_count>13</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-08-02 07:42:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>135448</attachid>
            <date>2012-04-03 16:20:41 -0700</date>
            <delta_ts>2012-04-03 16:20:41 -0700</delta_ts>
            <desc>QML loader</desc>
            <filename>load.qml</filename>
            <type>text/x-qml</type>
            <size>105</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">aW1wb3J0IFF0UXVpY2sgMi4wCmltcG9ydCBRdFdlYktpdCAzLjAKCldlYlZpZXcgewogICAgd2lk
dGg6IDQwMAogICAgaGVpZ2h0OiA0MDAKICAgIHVybDogIm1vdXNlLmh0bWwiCn0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>135449</attachid>
            <date>2012-04-03 16:21:14 -0700</date>
            <delta_ts>2012-04-03 16:21:14 -0700</delta_ts>
            <desc>HTML file with some mouse/links.</desc>
            <filename>mouse.html</filename>
            <type>text/html</type>
            <size>405</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">PGh0bWw+CiAgICA8aGVhZD4KICAgICAgICA8dGl0bGU+ITwvdGl0bGU+CiAgICAgICAgPHN0eWxl
PgogICAgICAgICAgICAqIHsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTAwcHg7CiAgICAg
ICAgICAgIH0KICAgICAgICA8L3N0eWxlPgogICAgPC9oZWFkPgogICAgPGJvZHk+CiAgICA8YSBo
cmVmPSJ0aGlzLnN0eWxlLmNvbG9yPSdyZWQnIj5BPC9hPjxici8+CiAgICA8YSBvbmNsaWNrPSJ0
aGlzLnN0eWxlLmNvbG9yPSdyZWQnIj5DbGljazwvYT48YnIvPgogICAgPGEgb250b3VjaHN0YXJ0
PSJ0aGlzLnN0eWxlLmNvbG9yPSdyZWQnIj5Ub3VjaDwvYT48YnIvPgogICAgPGEgb25tb3VzZWRv
d249InRoaXMuc3R5bGUuY29sb3I9J3JlZCciPk1vdXNlPC9hPjxici8+CiAgICA8L2JvZHk+Cjwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155290</attachid>
            <date>2012-07-30 07:55:22 -0700</date>
            <delta_ts>2012-08-02 07:20:31 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>mouse-event-gestures.patch</filename>
            <type>text/plain</type>
            <size>14733</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAxMWUxNWQ2Li45MmNhMmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTItMDctMzAgIEFuZHJhcyBCZWNzaSAgPGFuZHJhcy5iZWNzaUBub2tpYS5jb20+CisK
KyAgICAgICAgW1F0XVtXSzJdIENsaWNrLCBtb3VzZSBhbmQgbGlua3MgcmVseSBvbiB0b3VjaCBt
b2NraW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODMwOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
ZW5kIHRoZSBpbmNvbWluZyBtb3VzZSBldmVudHMgZGlyZWN0bHkgdG8gdGhlIGdlc3R1cmUgcmVj
b2duaXplcnMgdG8gbWFrZQorICAgICAgICB0aGUgV2ViVmlldyBiZWhhdmUgY29uc2lzdGVudCB3
aXRoIG90aGVyIEZsaWNrYWJsZXMuCisgICAgICAgIFRoaXMgcGF0Y2ggdW5pZmllcyB0aGUgY29k
ZSBwYXRocyBmb3IgaW5wdXQgZXZlbnRzIGFuZCBtYWtlcyBpdCBwb3NzaWJsZQorICAgICAgICB0
byBlbmFibGUgbW91c2UgZXZlbnRzIG9uIHRoZSBmbGlja2FibGUgd2ViIHZpZXcgYWdhaW4sIHRo
dXMgbWFrZXMgdGhlCisgICAgICAgIG1vYmlsZS12ZXJzaW9uIG9mIFFRdWlja1dlYlZpZXcgdXNh
YmxlIG9uIGRlc2t0b3AuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZp
ZXcuY3BwOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OmhhbmRsZU1vdXNlRXZlbnQp
OgorICAgICAgICAoUVF1aWNrV2ViVmlld0ZsaWNrYWJsZVByaXZhdGU6OlFRdWlja1dlYlZpZXdG
bGlja2FibGVQcml2YXRlKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRl
OjpoYW5kbGVNb3VzZUV2ZW50KToKKyAgICAgICAgKFFRdWlja1dlYlZpZXc6Om1vdXNlUHJlc3NF
dmVudCk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3Ojptb3VzZU1vdmVFdmVudCk6CisgICAgICAg
IChRUXVpY2tXZWJWaWV3Ojptb3VzZVJlbGVhc2VFdmVudCk6CisgICAgICAgIChRUXVpY2tXZWJW
aWV3Ojptb3VzZURvdWJsZUNsaWNrRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlld19wX3AuaDoKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlKToKKyAg
ICAgICAgKFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvcXQvUXRQYW5HZXN0dXJlUmVjb2duaXplci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0UGFu
R2VzdHVyZVJlY29nbml6ZXI6OnVwZGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2Vi
UGFnZUV2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0V2ViUGFnZUV2ZW50SGFu
ZGxlcjo6UXRXZWJQYWdlRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6UXRXZWJQYWdl
RXZlbnRIYW5kbGVyOjpoYW5kbGVJbnB1dEV2ZW50KToKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChXZWJLaXQ6OlF0V2ViUGFnZUV2ZW50SGFuZGxlcjo6ZG9uZVdpdGhUb3VjaEV2ZW50KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRXZWJQYWdlRXZlbnRIYW5kbGVyLmg6CisgICAgICAg
IChRdFdlYlBhZ2VFdmVudEhhbmRsZXIpOgorCiAyMDEyLTA3LTMwICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTI0MDAwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlldy5jcHAKaW5kZXggYmMwOWNjYy4uMTIwNGVmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCkBAIC00MDgsNiArNDA4
LDI3IEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmxvYWREaWRGYWlsKGNvbnN0IFF0V2Vi
RXJyb3ImIGVycm9yKQogICAgIGVtaXQgcS0+bG9hZGluZ0NoYW5nZWQoJmxvYWRSZXF1ZXN0KTsK
IH0KIAordm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6aGFuZGxlTW91c2VFdmVudChRTW91c2VF
dmVudCogZXZlbnQpCit7CisgICAgc3dpdGNoIChldmVudC0+dHlwZSgpKSB7CisgICAgY2FzZSBR
RXZlbnQ6Ok1vdXNlQnV0dG9uUHJlc3M6CisgICAgY2FzZSBRRXZlbnQ6Ok1vdXNlQnV0dG9uRGJs
Q2xpY2s6CisgICAgICAgIC8vIElmIGEgTW91c2VCdXR0b25EYmxDbGljayB3YXMgcmVjZWl2ZWQg
dGhlbiB3ZSBnb3QgYSBNb3VzZUJ1dHRvblByZXNzIGJlZm9yZQorICAgICAgICAvLyBoYW5kbGVN
b3VzZVByZXNzRXZlbnQgd2lsbCB0YWtlIGNhcmUgb2YgZG91YmxlIGNsaWNrcy4KKyAgICAgICAg
cGFnZVZpZXctPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZVByZXNzRXZlbnQoZXZlbnQpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFFFdmVudDo6TW91c2VNb3ZlOgorICAgICAgICBwYWdl
Vmlldy0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZU1vdXNlTW92ZUV2ZW50KGV2ZW50KTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRRXZlbnQ6Ok1vdXNlQnV0dG9uUmVsZWFzZToKKyAgICAgICAg
cGFnZVZpZXctPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChldmVudCk7
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZh
dGU6OnNldE5lZWRzRGlzcGxheSgpCiB7CiAgICAgUV9RKFFRdWlja1dlYlZpZXcpOwpAQCAtODE1
LDEyICs4MzYsNiBAQCB2b2lkIFFRdWlja1dlYlZpZXdMZWdhY3lQcml2YXRlOjpzZXRab29tRmFj
dG9yKHFyZWFsIGZhY3RvcikKIFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRlOjpRUXVpY2tX
ZWJWaWV3RmxpY2thYmxlUHJpdmF0ZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCkKICAgICA6IFFR
dWlja1dlYlZpZXdQcml2YXRlKHZpZXdwb3J0KQogewotICAgIC8vIERpc2FibGUgbW91c2UgZXZl
bnRzIG9uIHRoZSBmbGlja2FibGUgd2ViIHZpZXcgc28gd2UgZG8gbm90Ci0gICAgLy8gc2VsZWN0
IHRleHQgZHVyaW5nIHBhbiBnZXN0dXJlcyBvbiBwbGF0Zm9ybXMgd2hpY2ggc2VuZCBib3RoCi0g
ICAgLy8gdG91Y2ggYW5kIG1vdXNlIGV2ZW50cyBzaW11bHRhbmVvdXNseS4KLSAgICAvLyBGSVhN
RTogVGVtcG9yYXJ5IHdvcmthcm91bmQgY29kZSB3aGljaCBzaG91bGQgYmUgcmVtb3ZlZCB3aGVu
Ci0gICAgLy8gYnVnIGh0dHA6Ly9jb2RlcmV2aWV3LnF0LXByb2plY3Qub3JnLzIxODk2IGlzIGZp
eGVkLgotICAgIHZpZXdwb3J0LT5zZXRBY2NlcHRlZE1vdXNlQnV0dG9ucyhRdDo6Tm9CdXR0b24p
OwogICAgIHZpZXdwb3J0LT5zZXRBY2NlcHRIb3ZlckV2ZW50cyhmYWxzZSk7CiB9CiAKQEAgLTg3
Miw2ICs4ODcsMTUgQEAgdm9pZCBRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZTo6ZGlkQ2hh
bmdlQ29udGVudHNTaXplKGNvbnN0IFFTaXplJiBuZXdTaXplKQogICAgIG1fdmlld3BvcnRIYW5k
bGVyLT5wYWdlQ29udGVudHNTaXplQ2hhbmdlZChuZXdTaXplLCBxLT5ib3VuZGluZ1JlY3QoKS5z
aXplKCkudG9TaXplKCkpOwogfQogCit2b2lkIFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRl
OjpoYW5kbGVNb3VzZUV2ZW50KFFNb3VzZUV2ZW50KiBldmVudCkKK3sKKyAgICBpZiAoIXBhZ2VW
aWV3LT5ldmVudEhhbmRsZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFVw
ZGF0ZSB0aGUgYXhpcyBsb2NrZXIgZm9yIG1vdXNlIGV2ZW50cyBhcyB3ZWxsLgorICAgIHBhZ2VW
aWV3LT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7Cit9CisKIC8qIQog
ICAgIFxxbWxzaWduYWwgV2ViVmlldzo6b25OYXZpZ2F0aW9uUmVxdWVzdGVkKFdlYk5hdmlnYXRp
b25SZXF1ZXN0IHJlcXVlc3QpCiAKQEAgLTE3NjYsMjkgKzE3OTAsMjYgQEAgdm9pZCBRUXVpY2tX
ZWJWaWV3Ojptb3VzZVByZXNzRXZlbnQoUU1vdXNlRXZlbnQqIGV2ZW50KQogewogICAgIFFfRChR
UXVpY2tXZWJWaWV3KTsKICAgICBmb3JjZUFjdGl2ZUZvY3VzKCk7Ci0gICAgZC0+cGFnZVZpZXct
PmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZVByZXNzRXZlbnQoZXZlbnQpOworICAgIGQtPmhh
bmRsZU1vdXNlRXZlbnQoZXZlbnQpOwogfQogCiB2b2lkIFFRdWlja1dlYlZpZXc6Om1vdXNlTW92
ZUV2ZW50KFFNb3VzZUV2ZW50KiBldmVudCkKIHsKICAgICBRX0QoUVF1aWNrV2ViVmlldyk7Ci0g
ICAgZC0+cGFnZVZpZXctPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZU1vdmVFdmVudChldmVu
dCk7CisgICAgZC0+aGFuZGxlTW91c2VFdmVudChldmVudCk7CiB9CiAKIHZvaWQgUVF1aWNrV2Vi
Vmlldzo6bW91c2VSZWxlYXNlRXZlbnQoUU1vdXNlRXZlbnQqIGV2ZW50KQogewogICAgIFFfRChR
UXVpY2tXZWJWaWV3KTsKLSAgICBkLT5wYWdlVmlldy0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZU1v
dXNlUmVsZWFzZUV2ZW50KGV2ZW50KTsKKyAgICBkLT5oYW5kbGVNb3VzZUV2ZW50KGV2ZW50KTsK
IH0KIAogdm9pZCBRUXVpY2tXZWJWaWV3Ojptb3VzZURvdWJsZUNsaWNrRXZlbnQoUU1vdXNlRXZl
bnQqIGV2ZW50KQogewogICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKLQogICAgIGZvcmNlQWN0aXZl
Rm9jdXMoKTsKLSAgICAvLyBJZiBhIE1vdXNlQnV0dG9uRGJsQ2xpY2sgd2FzIHJlY2VpdmVkIHRo
ZW4gd2UgZ290IGEgTW91c2VCdXR0b25QcmVzcyBiZWZvcmUKLSAgICAvLyBoYW5kbGVNb3VzZVBy
ZXNzRXZlbnQgd2lsbCB0YWtlIGNhcmUgb2YgZG91YmxlIGNsaWNrcy4KLSAgICBkLT5wYWdlVmll
dy0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZU1vdXNlUHJlc3NFdmVudChldmVudCk7CisgICAgZC0+
aGFuZGxlTW91c2VFdmVudChldmVudCk7CiB9CiAKIHZvaWQgUVF1aWNrV2ViVmlldzo6d2hlZWxF
dmVudChRV2hlZWxFdmVudCogZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKaW5kZXggZjEwMmY2MC4uMjZhZGZjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3Bf
cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19w
X3AuaApAQCAtODMsNiArODMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGJhY2tGb3J3
YXJkTGlzdERpZENoYW5nZSgpOwogICAgIHZpcnR1YWwgdm9pZCBsb2FkRGlkU3VjY2VlZCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBsb2FkRGlkRmFpbChjb25zdCBXZWJLaXQ6OlF0V2ViRXJyb3ImIGVy
cm9yKTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlTW91c2VFdmVudChRTW91c2VFdmVudCopOwog
CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJD
b3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHIpIHsgfQogCkBAIC0yMjgsNiArMjI5LDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IFFQ
b2ludCYgcG9zKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0
IFFTaXplJiBuZXdTaXplKTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlTW91c2VFdmVudChRTW91
c2VFdmVudCopOwogCiBwcml2YXRlOgogICAgIFFTY29wZWRQb2ludGVyPFdlYktpdDo6UXRWaWV3
cG9ydEhhbmRsZXI+IG1fdmlld3BvcnRIYW5kbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1F0UGFuR2VzdHVyZVJlY29nbml6ZXIuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1F0UGFuR2VzdHVyZVJlY29nbml6ZXIuY3BwCmluZGV4IDRjMjhiOTMu
LmJhOWM5MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhbkdl
c3R1cmVSZWNvZ25pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQ
YW5HZXN0dXJlUmVjb2duaXplci5jcHAKQEAgLTQ3LDEzICs0NywxMyBAQCBib29sIFF0UGFuR2Vz
dHVyZVJlY29nbml6ZXI6OnVwZGF0ZShjb25zdCBRVG91Y2hFdmVudDo6VG91Y2hQb2ludCYgdG91
Y2hQb2ludCwgcQogICAgIHN3aXRjaCAobV9zdGF0ZSkgewogICAgIGNhc2UgTm9HZXN0dXJlOgog
ICAgICAgICBtX3N0YXRlID0gR2VzdHVyZVJlY29nbml0aW9uU3RhcnRlZDsKLSAgICAgICAgbV9m
aXJzdFNjcmVlblBvc2l0aW9uID0gdG91Y2hQb2ludC5zY2VuZVBvcygpOworICAgICAgICBtX2Zp
cnN0U2NyZWVuUG9zaXRpb24gPSB0b3VjaFBvaW50LnNjcmVlblBvcygpOwogICAgICAgICB2aWV3
cG9ydEhhbmRsZXIoKS0+Y2FuY2VsU2Nyb2xsQW5pbWF0aW9uKCk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBjYXNlIEdlc3R1cmVSZWNvZ25pdGlvblN0YXJ0ZWQ6IHsKICAgICAgICAgLy8g
VG8gc3RhcnQgdGhlIGdlc3R1cmUsIHRoZSBkZWx0YSBmcm9tIHN0YXJ0IGluIHNjcmVlbiBjb29y
ZGluYXRlcwogICAgICAgICAvLyBtdXN0IGJlIGJpZ2dlciB0aGFuIHRoZSB0cmlnZ2VyIHRocmVz
aG9sZC4KLSAgICAgICAgUVBvaW50RiB0b3RhbE9mZnNldEZyb21TdGFydCh0b3VjaFBvaW50LnNj
ZW5lUG9zKCkgLSBtX2ZpcnN0U2NyZWVuUG9zaXRpb24pOworICAgICAgICBRUG9pbnRGIHRvdGFs
T2Zmc2V0RnJvbVN0YXJ0KHRvdWNoUG9pbnQuc2NyZWVuUG9zKCkgLSBtX2ZpcnN0U2NyZWVuUG9z
aXRpb24pOwogICAgICAgICBpZiAocUFicyh0b3RhbE9mZnNldEZyb21TdGFydC54KCkpIDwgcGFu
bmluZ0luaXRpYWxUcmlnZ2VyRGlzdGFuY2VUaHJlc2hvbGQgJiYgcUFicyh0b3RhbE9mZnNldEZy
b21TdGFydC55KCkpIDwgcGFubmluZ0luaXRpYWxUcmlnZ2VyRGlzdGFuY2VUaHJlc2hvbGQpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFdlYlBhZ2VFdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1F0V2ViUGFnZUV2ZW50SGFuZGxlci5jcHAKaW5kZXggZDgyZWJhMi4uODM0YWRk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUV2ZW50
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUV2
ZW50SGFuZGxlci5jcHAKQEAgLTMxLDggKzMxLDEwIEBACiAjaW5jbHVkZSA8UUN1cnNvcj4KICNp
bmNsdWRlIDxRRHJhZz4KICNpbmNsdWRlIDxRR3VpQXBwbGljYXRpb24+CisjaW5jbHVkZSA8UUlu
cHV0RXZlbnQ+CiAjaW5jbHVkZSA8UUlucHV0TWV0aG9kPgogI2luY2x1ZGUgPFFNaW1lRGF0YT4K
KyNpbmNsdWRlIDxRTW91c2VFdmVudD4KICNpbmNsdWRlIDxRUXVpY2tXaW5kb3c+CiAjaW5jbHVk
ZSA8UVN0eWxlSGludHM+CiAjaW5jbHVkZSA8UVRleHRGb3JtYXQ+CkBAIC05OSw2ICsxMDEsNyBA
QCBRdFdlYlBhZ2VFdmVudEhhbmRsZXI6OlF0V2ViUGFnZUV2ZW50SGFuZGxlcihXS1BhZ2VSZWYg
cGFnZVJlZiwgUVF1aWNrV2ViUGFnZSogcQogICAgICwgbV9jbGlja0NvdW50KDApCiAgICAgLCBt
X3Bvc3Rwb25lVGV4dElucHV0U3RhdGVDaGFuZ2VkKGZhbHNlKQogICAgICwgbV9pc1RhcEhpZ2hs
aWdodEFjdGl2ZShmYWxzZSkKKyAgICAsIG1faXNNb3VzZUJ1dHRvblByZXNzZWQoZmFsc2UpCiB7
CiAgICAgY29ubmVjdChxQXBwLT5pbnB1dE1ldGhvZCgpLCBTSUdOQUwodmlzaWJsZUNoYW5nZWQo
KSksIHRoaXMsIFNMT1QoaW5wdXRQYW5lbFZpc2libGVDaGFuZ2VkKCkpKTsKIH0KQEAgLTQ0NSwy
NiArNDQ4LDE5IEBAIHZvaWQgUXRXZWJQYWdlRXZlbnRIYW5kbGVyOjpkb25lV2l0aEdlc3R1cmVF
dmVudChjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGV2ZW50LCBiCiAgICAgdXBkYXRlVGV4dElucHV0
U3RhdGUoKTsKIH0KIAotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi12b2lkIFF0V2ViUGFnZUV2
ZW50SGFuZGxlcjo6ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQm
IGV2ZW50LCBib29sIHdhc0V2ZW50SGFuZGxlZCkKK3ZvaWQgUXRXZWJQYWdlRXZlbnRIYW5kbGVy
OjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFFJbnB1dEV2ZW50KiBldmVudCkKIHsKLSAgICBpZiAo
IW1fdmlld3BvcnRIYW5kbGVyKQotICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKG1fdmlld3Bv
cnRIYW5kbGVyKTsKIAotICAgIGlmICh3YXNFdmVudEhhbmRsZWQgfHwgZXZlbnQudHlwZSgpID09
IFdlYkV2ZW50OjpUb3VjaENhbmNlbCkgewotICAgICAgICBtX3Bhbkdlc3R1cmVSZWNvZ25pemVy
LmNhbmNlbCgpOwotICAgICAgICBtX3BpbmNoR2VzdHVyZVJlY29nbml6ZXIuY2FuY2VsKCk7Ci0g
ICAgICAgIGlmIChldmVudC50eXBlKCkgIT0gV2ViRXZlbnQ6OlRvdWNoTW92ZSkKLSAgICAgICAg
ICAgIG1fdGFwR2VzdHVyZVJlY29nbml6ZXIuY2FuY2VsKCk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBjb25zdCBRVG91Y2hFdmVudCogZXYgPSBldmVudC5uYXRpdmVFdmVudCgpOwor
ICAgIGJvb2wgaXNNb3VzZUV2ZW50ID0gZmFsc2U7CiAKLSAgICBzd2l0Y2ggKGV2LT50eXBlKCkp
IHsKKyAgICBzd2l0Y2ggKGV2ZW50LT50eXBlKCkpIHsKKyAgICBjYXNlIFFFdmVudDo6TW91c2VC
dXR0b25QcmVzczoKKyAgICAgICAgaXNNb3VzZUV2ZW50ID0gdHJ1ZTsKICAgICBjYXNlIFFFdmVu
dDo6VG91Y2hCZWdpbjoKICAgICAgICAgQVNTRVJUKCFtX3ZpZXdwb3J0SGFuZGxlci0+cGFuR2Vz
dHVyZUFjdGl2ZSgpKTsKICAgICAgICAgQVNTRVJUKCFtX3ZpZXdwb3J0SGFuZGxlci0+cGluY2hH
ZXN0dXJlQWN0aXZlKCkpOworICAgICAgICBtX2lzTW91c2VCdXR0b25QcmVzc2VkID0gdHJ1ZTsK
ICAgICAgICAgbV92aWV3cG9ydEhhbmRsZXItPnRvdWNoQmVnaW4oKTsKIAogICAgICAgICAvLyBU
aGUgaW50ZXJhY3Rpb24gZW5naW5lIG1pZ2h0IHN0aWxsIGJlIGFuaW1hdGluZyBraW5ldGljIHNj
cm9sbGluZyBvciBhIHNjYWxlIGFuaW1hdGlvbgpAQCAtNDcyLDE2ICs0NjgsMjUgQEAgdm9pZCBR
dFdlYlBhZ2VFdmVudEhhbmRsZXI6OmRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJU
b3VjaEV2ZW50JiBldmVudCwKICAgICAgICAgLy8gd2hlcmUgYXMgaXQgZG9lcyBub3Qgc3RvcCB0
aGUgc2NhbGUgYW5pbWF0aW9uLgogICAgICAgICAvLyBUaGUgZ2VzdHVyZSByZWNvZ25pemVyIHN0
b3BzIHRoZSBraW5ldGljIHNjcm9sbGluZyBhbmltYXRpb24gaWYgbmVlZGVkLgogICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFFFdmVudDo6TW91c2VNb3ZlOgorICAgICAgICBpZiAoIW1faXNNb3Vz
ZUJ1dHRvblByZXNzZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaXNNb3VzZUV2
ZW50ID0gdHJ1ZTsKICAgICBjYXNlIFFFdmVudDo6VG91Y2hVcGRhdGU6CiAgICAgICAgIC8vIFRo
ZSBzY2FsZSBhbmltYXRpb24gY2FuIG9ubHkgYmUgaW50ZXJydXB0ZWQgYnkgYSBwaW5jaCBnZXN0
dXJlLCB3aGljaCB3aWxsIHRoZW4gdGFrZSBvdmVyLgogICAgICAgICBpZiAobV92aWV3cG9ydEhh
bmRsZXItPnNjYWxlQW5pbWF0aW9uQWN0aXZlKCkgJiYgbV9waW5jaEdlc3R1cmVSZWNvZ25pemVy
LmlzUmVjb2duaXplZCgpKQogICAgICAgICAgICAgbV92aWV3cG9ydEhhbmRsZXItPmludGVycnVw
dFNjYWxlQW5pbWF0aW9uKCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUUV2ZW50OjpNb3Vz
ZUJ1dHRvblJlbGVhc2U6CisgICAgICAgIGlzTW91c2VFdmVudCA9IHRydWU7CiAgICAgY2FzZSBR
RXZlbnQ6OlRvdWNoRW5kOgorICAgICAgICBtX2lzTW91c2VCdXR0b25QcmVzc2VkID0gZmFsc2U7
CiAgICAgICAgIG1fdmlld3BvcnRIYW5kbGVyLT50b3VjaEVuZCgpOwogICAgICAgICBicmVhazsK
ICAgICBkZWZhdWx0OgotICAgICAgICBicmVhazsKKyAgICAgICAgQVNTRVJUKGV2ZW50LT50eXBl
KCkgPT0gUUV2ZW50OjpNb3VzZUJ1dHRvbkRibENsaWNrKTsKKyAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIC8vIElmIHRoZSBzY2FsZSBhbmltYXRpb24gaXMgYWN0aXZlIHdlIGRvbid0IHBh
c3MgdGhlIGV2ZW50IHRvIHRoZSByZWNvZ25pemVycy4gSW4gdGhlIGZ1dHVyZQpAQCAtNDg5LDE1
ICs0OTQsMzAgQEAgdm9pZCBRdFdlYlBhZ2VFdmVudEhhbmRsZXI6OmRvbmVXaXRoVG91Y2hFdmVu
dChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiBldmVudCwKICAgICBpZiAobV92aWV3cG9ydEhh
bmRsZXItPnNjYWxlQW5pbWF0aW9uQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNv
bnN0IFFMaXN0PFFUb3VjaEV2ZW50OjpUb3VjaFBvaW50PiYgdG91Y2hQb2ludHMgPSBldi0+dG91
Y2hQb2ludHMoKTsKLSAgICBjb25zdCBpbnQgdG91Y2hQb2ludENvdW50ID0gdG91Y2hQb2ludHMu
c2l6ZSgpOwotICAgIHFpbnQ2NCBldmVudFRpbWVzdGFtcE1pbGxpcyA9IGV2LT50aW1lc3RhbXAo
KTsKICAgICBRTGlzdDxRVG91Y2hFdmVudDo6VG91Y2hQb2ludD4gYWN0aXZlVG91Y2hQb2ludHM7
Ci0gICAgYWN0aXZlVG91Y2hQb2ludHMucmVzZXJ2ZSh0b3VjaFBvaW50Q291bnQpOwotCi0gICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCB0b3VjaFBvaW50Q291bnQ7ICsraSkgewotICAgICAgICBpZiAo
dG91Y2hQb2ludHNbaV0uc3RhdGUoKSAhPSBRdDo6VG91Y2hQb2ludFJlbGVhc2VkKQotICAgICAg
ICAgICAgYWN0aXZlVG91Y2hQb2ludHMgPDwgdG91Y2hQb2ludHNbaV07CisgICAgUVRvdWNoRXZl
bnQ6OlRvdWNoUG9pbnQgY3VycmVudFRvdWNoUG9pbnQ7CisgICAgcWludDY0IGV2ZW50VGltZXN0
YW1wTWlsbGlzID0gZXZlbnQtPnRpbWVzdGFtcCgpOworICAgIGludCB0b3VjaFBvaW50Q291bnQg
PSAwOworCisgICAgaWYgKCFpc01vdXNlRXZlbnQpIHsKKyAgICAgICAgY29uc3QgUVRvdWNoRXZl
bnQqIHRvdWNoRXZlbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBRVG91Y2hFdmVudCo+KGV2ZW50KTsK
KyAgICAgICAgY29uc3QgUUxpc3Q8UVRvdWNoRXZlbnQ6OlRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50
cyA9IHRvdWNoRXZlbnQtPnRvdWNoUG9pbnRzKCk7CisgICAgICAgIGN1cnJlbnRUb3VjaFBvaW50
ID0gdG91Y2hQb2ludHMuZmlyc3QoKTsKKyAgICAgICAgdG91Y2hQb2ludENvdW50ID0gdG91Y2hQ
b2ludHMuc2l6ZSgpOworICAgICAgICBhY3RpdmVUb3VjaFBvaW50cy5yZXNlcnZlKHRvdWNoUG9p
bnRDb3VudCk7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0b3VjaFBvaW50Q291bnQ7
ICsraSkgeworICAgICAgICAgICAgaWYgKHRvdWNoUG9pbnRzW2ldLnN0YXRlKCkgIT0gUXQ6OlRv
dWNoUG9pbnRSZWxlYXNlZCkKKyAgICAgICAgICAgICAgICBhY3RpdmVUb3VjaFBvaW50cyA8PCB0
b3VjaFBvaW50c1tpXTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGNvbnN0IFFN
b3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8Y29uc3QgUU1vdXNlRXZlbnQqPihl
dmVudCk7CisgICAgICAgIGN1cnJlbnRUb3VjaFBvaW50LnNldElkKG1vdXNlRXZlbnQtPmJ1dHRv
bnMoKSk7CisgICAgICAgIGN1cnJlbnRUb3VjaFBvaW50LnNldFNjcmVlblBvcyhtb3VzZUV2ZW50
LT5zY3JlZW5Qb3MoKSk7CisgICAgICAgIGN1cnJlbnRUb3VjaFBvaW50LnNldFJlY3QoUVJlY3RG
KG1vdXNlRXZlbnQtPmxvY2FsUG9zKCksIFFTaXplRig0MCwgNDApKSk7CisgICAgICAgIHRvdWNo
UG9pbnRDb3VudCA9IDE7CisgICAgICAgIGlmIChtX2lzTW91c2VCdXR0b25QcmVzc2VkKQorICAg
ICAgICAgICAgYWN0aXZlVG91Y2hQb2ludHMgPDwgY3VycmVudFRvdWNoUG9pbnQ7CiAgICAgfQog
CiAgICAgY29uc3QgaW50IGFjdGl2ZVRvdWNoUG9pbnRDb3VudCA9IGFjdGl2ZVRvdWNoUG9pbnRz
LnNpemUoKTsKQEAgLTUwNiwxMSArNTI2LDExIEBAIHZvaWQgUXRXZWJQYWdlRXZlbnRIYW5kbGVy
Ojpkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQsCiAg
ICAgICAgIGlmICh0b3VjaFBvaW50Q291bnQgPT0gMSkgewogICAgICAgICAgICAgLy8gTm8gYWN0
aXZlIHRvdWNoIHBvaW50cywgb25lIGZpbmdlciByZWxlYXNlZC4KICAgICAgICAgICAgIGlmICht
X3Bhbkdlc3R1cmVSZWNvZ25pemVyLmlzUmVjb2duaXplZCgpKQotICAgICAgICAgICAgICAgIG1f
cGFuR2VzdHVyZVJlY29nbml6ZXIuZmluaXNoKHRvdWNoUG9pbnRzLmZpcnN0KCksIGV2ZW50VGlt
ZXN0YW1wTWlsbGlzKTsKKyAgICAgICAgICAgICAgICBtX3Bhbkdlc3R1cmVSZWNvZ25pemVyLmZp
bmlzaChjdXJyZW50VG91Y2hQb2ludCwgZXZlbnRUaW1lc3RhbXBNaWxsaXMpOwogICAgICAgICAg
ICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgLy8gVGhlIGV2ZW50cyBkaWQgbm90IHJlc3VsdCBp
biBhIHBhbiBnZXN0dXJlLgogICAgICAgICAgICAgICAgIG1fcGFuR2VzdHVyZVJlY29nbml6ZXIu
Y2FuY2VsKCk7Ci0gICAgICAgICAgICAgICAgbV90YXBHZXN0dXJlUmVjb2duaXplci5maW5pc2go
dG91Y2hQb2ludHMuZmlyc3QoKSk7CisgICAgICAgICAgICAgICAgbV90YXBHZXN0dXJlUmVjb2du
aXplci5maW5pc2goY3VycmVudFRvdWNoUG9pbnQpOwogICAgICAgICAgICAgfQogCiAgICAgICAg
IH0gZWxzZQpAQCAtNTMyLDcgKzU1MiwyNyBAQCB2b2lkIFF0V2ViUGFnZUV2ZW50SGFuZGxlcjo6
ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZW50LAogICAg
IGlmIChtX3Bhbkdlc3R1cmVSZWNvZ25pemVyLmlzUmVjb2duaXplZCgpIHx8IG1fcGluY2hHZXN0
dXJlUmVjb2duaXplci5pc1JlY29nbml6ZWQoKSB8fCBtX3dlYlZpZXctPmlzTW92aW5nKCkpCiAg
ICAgICAgIG1fdGFwR2VzdHVyZVJlY29nbml6ZXIuY2FuY2VsKCk7CiAgICAgZWxzZSBpZiAodG91
Y2hQb2ludENvdW50ID09IDEpCi0gICAgICAgIG1fdGFwR2VzdHVyZVJlY29nbml6ZXIudXBkYXRl
KHRvdWNoUG9pbnRzLmZpcnN0KCkpOworICAgICAgICBtX3RhcEdlc3R1cmVSZWNvZ25pemVyLnVw
ZGF0ZShjdXJyZW50VG91Y2hQb2ludCk7CisKK30KKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
Cit2b2lkIFF0V2ViUGFnZUV2ZW50SGFuZGxlcjo6ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5h
dGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZW50LCBib29sIHdhc0V2ZW50SGFuZGxlZCkKK3sKKyAgICBp
ZiAoIW1fdmlld3BvcnRIYW5kbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAod2FzRXZl
bnRIYW5kbGVkIHx8IGV2ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6VG91Y2hDYW5jZWwpIHsKKyAg
ICAgICAgbV9wYW5HZXN0dXJlUmVjb2duaXplci5jYW5jZWwoKTsKKyAgICAgICAgbV9waW5jaEdl
c3R1cmVSZWNvZ25pemVyLmNhbmNlbCgpOworICAgICAgICBpZiAoZXZlbnQudHlwZSgpICE9IFdl
YkV2ZW50OjpUb3VjaE1vdmUpCisgICAgICAgICAgICBtX3RhcEdlc3R1cmVSZWNvZ25pemVyLmNh
bmNlbCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29uc3QgUVRvdWNoRXZlbnQq
IGV2ID0gZXZlbnQubmF0aXZlRXZlbnQoKTsKKworICAgIGhhbmRsZUlucHV0RXZlbnQoZXYpOwog
fQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdl
YlBhZ2VFdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBh
Z2VFdmVudEhhbmRsZXIuaAppbmRleCBiNjRmNmZlLi40Y2M5ZjMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlRXZlbnRIYW5kbGVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUV2ZW50SGFuZGxlci5oCkBAIC04OCw2
ICs4OCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgZG9u
ZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmLCBib29sIHdhc0V2ZW50
SGFuZGxlZCk7CiAjZW5kaWYKKyAgICB2b2lkIGhhbmRsZUlucHV0RXZlbnQoY29uc3QgUUlucHV0
RXZlbnQqKTsKICAgICB2b2lkIHJlc2V0R2VzdHVyZVJlY29nbml6ZXJzKCk7CiAKICAgICBRdFZp
ZXdwb3J0SGFuZGxlciogdmlld3BvcnRIYW5kbGVyKCkgeyByZXR1cm4gbV92aWV3cG9ydEhhbmRs
ZXI7IH0KQEAgLTExNSw2ICsxMTYsNyBAQCBwcml2YXRlOgogICAgIGludCBtX2NsaWNrQ291bnQ7
CiAgICAgYm9vbCBtX3Bvc3Rwb25lVGV4dElucHV0U3RhdGVDaGFuZ2VkOwogICAgIGJvb2wgbV9p
c1RhcEhpZ2hsaWdodEFjdGl2ZTsKKyAgICBib29sIG1faXNNb3VzZUJ1dHRvblByZXNzZWQ7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>
<flag name="review"
          id="164710"
          type_id="1"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156077</attachid>
            <date>2012-08-02 07:20:31 -0700</date>
            <delta_ts>2012-08-02 07:42:44 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>15018</size>
            <attacher name="Andras Becsi">abecsi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkYmY2N2Y3Li5iYWNiODI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTItMDgtMDIgIEFuZHJhcyBCZWNzaSAgPGFuZHJhcy5iZWNzaUBub2tpYS5jb20+CisK
KyAgICAgICAgW1F0XVtXSzJdIENsaWNrLCBtb3VzZSBhbmQgbGlua3MgcmVseSBvbiB0b3VjaCBt
b2NraW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODMwOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
ZW5kIHRoZSBpbmNvbWluZyBtb3VzZSBldmVudHMgZGlyZWN0bHkgdG8gdGhlIGdlc3R1cmUgcmVj
b2duaXplcnMgdG8gbWFrZQorICAgICAgICB0aGUgV2ViVmlldyBiZWhhdmUgY29uc2lzdGVudCB3
aXRoIG90aGVyIEZsaWNrYWJsZXMuCisgICAgICAgIFRoaXMgcGF0Y2ggdW5pZmllcyB0aGUgY29k
ZSBwYXRocyBmb3IgaW5wdXQgZXZlbnRzIGFuZCBtYWtlcyBpdCBwb3NzaWJsZQorICAgICAgICB0
byBlbmFibGUgbW91c2UgZXZlbnRzIG9uIHRoZSBmbGlja2FibGUgd2ViIHZpZXcgYWdhaW4sIHRo
dXMgbWFrZXMgdGhlCisgICAgICAgIG1vYmlsZS12ZXJzaW9uIG9mIFFRdWlja1dlYlZpZXcgdXNh
YmxlIG9uIGRlc2t0b3AuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZp
ZXcuY3BwOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OmhhbmRsZU1vdXNlRXZlbnQp
OgorICAgICAgICAoUVF1aWNrV2ViVmlld0ZsaWNrYWJsZVByaXZhdGU6OlFRdWlja1dlYlZpZXdG
bGlja2FibGVQcml2YXRlKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRl
OjpoYW5kbGVNb3VzZUV2ZW50KToKKyAgICAgICAgKFFRdWlja1dlYlZpZXc6Om1vdXNlUHJlc3NF
dmVudCk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3Ojptb3VzZU1vdmVFdmVudCk6CisgICAgICAg
IChRUXVpY2tXZWJWaWV3Ojptb3VzZVJlbGVhc2VFdmVudCk6CisgICAgICAgIChRUXVpY2tXZWJW
aWV3Ojptb3VzZURvdWJsZUNsaWNrRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlld19wX3AuaDoKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlKToKKyAg
ICAgICAgKFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvcXQvUXRQYW5HZXN0dXJlUmVjb2duaXplci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0UGFu
R2VzdHVyZVJlY29nbml6ZXI6OnVwZGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2Vi
UGFnZUV2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0V2ViUGFnZUV2ZW50SGFu
ZGxlcjo6UXRXZWJQYWdlRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6UXRXZWJQYWdl
RXZlbnRIYW5kbGVyOjpoYW5kbGVJbnB1dEV2ZW50KToKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChXZWJLaXQ6OlF0V2ViUGFnZUV2ZW50SGFuZGxlcjo6ZG9uZVdpdGhUb3VjaEV2ZW50KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRXZWJQYWdlRXZlbnRIYW5kbGVyLmg6CisgICAgICAg
IChRdFdlYlBhZ2VFdmVudEhhbmRsZXIpOgorCiAyMDEyLTA4LTAxICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBTbWFsbCBwYXJ0IG9mICJPdXQtb2YtcHJvY2Vz
cyBwbHVnLWlucyBzaG91bGQgc3VwcG9ydCBhc3luY2hyb25vdXMgaW5pdGlhbGl6YXRpb24uIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAK
aW5kZXggYmMwOWNjYy4uMTIwNGVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCkBAIC00MDgsNiArNDA4LDI3IEBAIHZvaWQgUVF1
aWNrV2ViVmlld1ByaXZhdGU6OmxvYWREaWRGYWlsKGNvbnN0IFF0V2ViRXJyb3ImIGVycm9yKQog
ICAgIGVtaXQgcS0+bG9hZGluZ0NoYW5nZWQoJmxvYWRSZXF1ZXN0KTsKIH0KIAordm9pZCBRUXVp
Y2tXZWJWaWV3UHJpdmF0ZTo6aGFuZGxlTW91c2VFdmVudChRTW91c2VFdmVudCogZXZlbnQpCit7
CisgICAgc3dpdGNoIChldmVudC0+dHlwZSgpKSB7CisgICAgY2FzZSBRRXZlbnQ6Ok1vdXNlQnV0
dG9uUHJlc3M6CisgICAgY2FzZSBRRXZlbnQ6Ok1vdXNlQnV0dG9uRGJsQ2xpY2s6CisgICAgICAg
IC8vIElmIGEgTW91c2VCdXR0b25EYmxDbGljayB3YXMgcmVjZWl2ZWQgdGhlbiB3ZSBnb3QgYSBN
b3VzZUJ1dHRvblByZXNzIGJlZm9yZQorICAgICAgICAvLyBoYW5kbGVNb3VzZVByZXNzRXZlbnQg
d2lsbCB0YWtlIGNhcmUgb2YgZG91YmxlIGNsaWNrcy4KKyAgICAgICAgcGFnZVZpZXctPmV2ZW50
SGFuZGxlcigpLT5oYW5kbGVNb3VzZVByZXNzRXZlbnQoZXZlbnQpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFFFdmVudDo6TW91c2VNb3ZlOgorICAgICAgICBwYWdlVmlldy0+ZXZlbnRIYW5k
bGVyKCktPmhhbmRsZU1vdXNlTW92ZUV2ZW50KGV2ZW50KTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBRRXZlbnQ6Ok1vdXNlQnV0dG9uUmVsZWFzZToKKyAgICAgICAgcGFnZVZpZXctPmV2ZW50
SGFuZGxlcigpLT5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChldmVudCk7CisgICAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBi
cmVhazsKKyAgICB9Cit9CisKIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OnNldE5lZWRzRGlz
cGxheSgpCiB7CiAgICAgUV9RKFFRdWlja1dlYlZpZXcpOwpAQCAtODE1LDEyICs4MzYsNiBAQCB2
b2lkIFFRdWlja1dlYlZpZXdMZWdhY3lQcml2YXRlOjpzZXRab29tRmFjdG9yKHFyZWFsIGZhY3Rv
cikKIFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRlOjpRUXVpY2tXZWJWaWV3RmxpY2thYmxl
UHJpdmF0ZShRUXVpY2tXZWJWaWV3KiB2aWV3cG9ydCkKICAgICA6IFFRdWlja1dlYlZpZXdQcml2
YXRlKHZpZXdwb3J0KQogewotICAgIC8vIERpc2FibGUgbW91c2UgZXZlbnRzIG9uIHRoZSBmbGlj
a2FibGUgd2ViIHZpZXcgc28gd2UgZG8gbm90Ci0gICAgLy8gc2VsZWN0IHRleHQgZHVyaW5nIHBh
biBnZXN0dXJlcyBvbiBwbGF0Zm9ybXMgd2hpY2ggc2VuZCBib3RoCi0gICAgLy8gdG91Y2ggYW5k
IG1vdXNlIGV2ZW50cyBzaW11bHRhbmVvdXNseS4KLSAgICAvLyBGSVhNRTogVGVtcG9yYXJ5IHdv
cmthcm91bmQgY29kZSB3aGljaCBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuCi0gICAgLy8gYnVnIGh0
dHA6Ly9jb2RlcmV2aWV3LnF0LXByb2plY3Qub3JnLzIxODk2IGlzIGZpeGVkLgotICAgIHZpZXdw
b3J0LT5zZXRBY2NlcHRlZE1vdXNlQnV0dG9ucyhRdDo6Tm9CdXR0b24pOwogICAgIHZpZXdwb3J0
LT5zZXRBY2NlcHRIb3ZlckV2ZW50cyhmYWxzZSk7CiB9CiAKQEAgLTg3Miw2ICs4ODcsMTUgQEAg
dm9pZCBRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZTo6ZGlkQ2hhbmdlQ29udGVudHNTaXpl
KGNvbnN0IFFTaXplJiBuZXdTaXplKQogICAgIG1fdmlld3BvcnRIYW5kbGVyLT5wYWdlQ29udGVu
dHNTaXplQ2hhbmdlZChuZXdTaXplLCBxLT5ib3VuZGluZ1JlY3QoKS5zaXplKCkudG9TaXplKCkp
OwogfQogCit2b2lkIFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRlOjpoYW5kbGVNb3VzZUV2
ZW50KFFNb3VzZUV2ZW50KiBldmVudCkKK3sKKyAgICBpZiAoIXBhZ2VWaWV3LT5ldmVudEhhbmRs
ZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFVwZGF0ZSB0aGUgYXhpcyBs
b2NrZXIgZm9yIG1vdXNlIGV2ZW50cyBhcyB3ZWxsLgorICAgIHBhZ2VWaWV3LT5ldmVudEhhbmRs
ZXIoKS0+aGFuZGxlSW5wdXRFdmVudChldmVudCk7Cit9CisKIC8qIQogICAgIFxxbWxzaWduYWwg
V2ViVmlldzo6b25OYXZpZ2F0aW9uUmVxdWVzdGVkKFdlYk5hdmlnYXRpb25SZXF1ZXN0IHJlcXVl
c3QpCiAKQEAgLTE3NjYsMjkgKzE3OTAsMjYgQEAgdm9pZCBRUXVpY2tXZWJWaWV3Ojptb3VzZVBy
ZXNzRXZlbnQoUU1vdXNlRXZlbnQqIGV2ZW50KQogewogICAgIFFfRChRUXVpY2tXZWJWaWV3KTsK
ICAgICBmb3JjZUFjdGl2ZUZvY3VzKCk7Ci0gICAgZC0+cGFnZVZpZXctPmV2ZW50SGFuZGxlcigp
LT5oYW5kbGVNb3VzZVByZXNzRXZlbnQoZXZlbnQpOworICAgIGQtPmhhbmRsZU1vdXNlRXZlbnQo
ZXZlbnQpOwogfQogCiB2b2lkIFFRdWlja1dlYlZpZXc6Om1vdXNlTW92ZUV2ZW50KFFNb3VzZUV2
ZW50KiBldmVudCkKIHsKICAgICBRX0QoUVF1aWNrV2ViVmlldyk7Ci0gICAgZC0+cGFnZVZpZXct
PmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZU1vdmVFdmVudChldmVudCk7CisgICAgZC0+aGFu
ZGxlTW91c2VFdmVudChldmVudCk7CiB9CiAKIHZvaWQgUVF1aWNrV2ViVmlldzo6bW91c2VSZWxl
YXNlRXZlbnQoUU1vdXNlRXZlbnQqIGV2ZW50KQogewogICAgIFFfRChRUXVpY2tXZWJWaWV3KTsK
LSAgICBkLT5wYWdlVmlldy0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50
KGV2ZW50KTsKKyAgICBkLT5oYW5kbGVNb3VzZUV2ZW50KGV2ZW50KTsKIH0KIAogdm9pZCBRUXVp
Y2tXZWJWaWV3Ojptb3VzZURvdWJsZUNsaWNrRXZlbnQoUU1vdXNlRXZlbnQqIGV2ZW50KQogewog
ICAgIFFfRChRUXVpY2tXZWJWaWV3KTsKLQogICAgIGZvcmNlQWN0aXZlRm9jdXMoKTsKLSAgICAv
LyBJZiBhIE1vdXNlQnV0dG9uRGJsQ2xpY2sgd2FzIHJlY2VpdmVkIHRoZW4gd2UgZ290IGEgTW91
c2VCdXR0b25QcmVzcyBiZWZvcmUKLSAgICAvLyBoYW5kbGVNb3VzZVByZXNzRXZlbnQgd2lsbCB0
YWtlIGNhcmUgb2YgZG91YmxlIGNsaWNrcy4KLSAgICBkLT5wYWdlVmlldy0+ZXZlbnRIYW5kbGVy
KCktPmhhbmRsZU1vdXNlUHJlc3NFdmVudChldmVudCk7CisgICAgZC0+aGFuZGxlTW91c2VFdmVu
dChldmVudCk7CiB9CiAKIHZvaWQgUVF1aWNrV2ViVmlldzo6d2hlZWxFdmVudChRV2hlZWxFdmVu
dCogZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Fx
dWlja3dlYnZpZXdfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXdfcF9wLmgKaW5kZXggZjEwMmY2MC4uMjZhZGZjZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaApAQCAtODMsNiAr
ODMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGJhY2tGb3J3YXJkTGlzdERpZENoYW5n
ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBsb2FkRGlkU3VjY2VlZCgpOwogICAgIHZpcnR1YWwgdm9p
ZCBsb2FkRGlkRmFpbChjb25zdCBXZWJLaXQ6OlF0V2ViRXJyb3ImIGVycm9yKTsKKyAgICB2aXJ0
dWFsIHZvaWQgaGFuZGxlTW91c2VFdmVudChRTW91c2VFdmVudCopOwogCiAgICAgdmlydHVhbCB2
b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0
dHJpYnV0ZXMmIGF0dHIpIHsgfQogCkBAIC0yMjgsNiArMjI5LDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IFFQb2ludCYgcG9zKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IFFTaXplJiBuZXdTaXpl
KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlTW91c2VFdmVudChRTW91c2VFdmVudCopOwogCiBw
cml2YXRlOgogICAgIFFTY29wZWRQb2ludGVyPFdlYktpdDo6UXRWaWV3cG9ydEhhbmRsZXI+IG1f
dmlld3BvcnRIYW5kbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L1F0UGFuR2VzdHVyZVJlY29nbml6ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L1F0UGFuR2VzdHVyZVJlY29nbml6ZXIuY3BwCmluZGV4IDRjMjhiOTMuLmJhOWM5MGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhbkdlc3R1cmVSZWNvZ25pemVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYW5HZXN0dXJlUmVjb2du
aXplci5jcHAKQEAgLTQ3LDEzICs0NywxMyBAQCBib29sIFF0UGFuR2VzdHVyZVJlY29nbml6ZXI6
OnVwZGF0ZShjb25zdCBRVG91Y2hFdmVudDo6VG91Y2hQb2ludCYgdG91Y2hQb2ludCwgcQogICAg
IHN3aXRjaCAobV9zdGF0ZSkgewogICAgIGNhc2UgTm9HZXN0dXJlOgogICAgICAgICBtX3N0YXRl
ID0gR2VzdHVyZVJlY29nbml0aW9uU3RhcnRlZDsKLSAgICAgICAgbV9maXJzdFNjcmVlblBvc2l0
aW9uID0gdG91Y2hQb2ludC5zY2VuZVBvcygpOworICAgICAgICBtX2ZpcnN0U2NyZWVuUG9zaXRp
b24gPSB0b3VjaFBvaW50LnNjcmVlblBvcygpOwogICAgICAgICB2aWV3cG9ydEhhbmRsZXIoKS0+
Y2FuY2VsU2Nyb2xsQW5pbWF0aW9uKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBjYXNl
IEdlc3R1cmVSZWNvZ25pdGlvblN0YXJ0ZWQ6IHsKICAgICAgICAgLy8gVG8gc3RhcnQgdGhlIGdl
c3R1cmUsIHRoZSBkZWx0YSBmcm9tIHN0YXJ0IGluIHNjcmVlbiBjb29yZGluYXRlcwogICAgICAg
ICAvLyBtdXN0IGJlIGJpZ2dlciB0aGFuIHRoZSB0cmlnZ2VyIHRocmVzaG9sZC4KLSAgICAgICAg
UVBvaW50RiB0b3RhbE9mZnNldEZyb21TdGFydCh0b3VjaFBvaW50LnNjZW5lUG9zKCkgLSBtX2Zp
cnN0U2NyZWVuUG9zaXRpb24pOworICAgICAgICBRUG9pbnRGIHRvdGFsT2Zmc2V0RnJvbVN0YXJ0
KHRvdWNoUG9pbnQuc2NyZWVuUG9zKCkgLSBtX2ZpcnN0U2NyZWVuUG9zaXRpb24pOwogICAgICAg
ICBpZiAocUFicyh0b3RhbE9mZnNldEZyb21TdGFydC54KCkpIDwgcGFubmluZ0luaXRpYWxUcmln
Z2VyRGlzdGFuY2VUaHJlc2hvbGQgJiYgcUFicyh0b3RhbE9mZnNldEZyb21TdGFydC55KCkpIDwg
cGFubmluZ0luaXRpYWxUcmlnZ2VyRGlzdGFuY2VUaHJlc2hvbGQpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdl
YlBhZ2VFdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2Vi
UGFnZUV2ZW50SGFuZGxlci5jcHAKaW5kZXggZjg1ZTU4OS4uYTAyOTAwZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUV2ZW50SGFuZGxlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUV2ZW50SGFuZGxlci5jcHAK
QEAgLTMxLDggKzMxLDEwIEBACiAjaW5jbHVkZSA8UUN1cnNvcj4KICNpbmNsdWRlIDxRRHJhZz4K
ICNpbmNsdWRlIDxRR3VpQXBwbGljYXRpb24+CisjaW5jbHVkZSA8UUlucHV0RXZlbnQ+CiAjaW5j
bHVkZSA8UUlucHV0TWV0aG9kPgogI2luY2x1ZGUgPFFNaW1lRGF0YT4KKyNpbmNsdWRlIDxRTW91
c2VFdmVudD4KICNpbmNsdWRlIDxRUXVpY2tXaW5kb3c+CiAjaW5jbHVkZSA8UVN0eWxlSGludHM+
CiAjaW5jbHVkZSA8UVRleHRGb3JtYXQ+CkBAIC05OSw2ICsxMDEsNyBAQCBRdFdlYlBhZ2VFdmVu
dEhhbmRsZXI6OlF0V2ViUGFnZUV2ZW50SGFuZGxlcihXS1BhZ2VSZWYgcGFnZVJlZiwgUVF1aWNr
V2ViUGFnZSogcQogICAgICwgbV9jbGlja0NvdW50KDApCiAgICAgLCBtX3Bvc3Rwb25lVGV4dElu
cHV0U3RhdGVDaGFuZ2VkKGZhbHNlKQogICAgICwgbV9pc1RhcEhpZ2hsaWdodEFjdGl2ZShmYWxz
ZSkKKyAgICAsIG1faXNNb3VzZUJ1dHRvblByZXNzZWQoZmFsc2UpCiB7CiAgICAgY29ubmVjdChx
QXBwLT5pbnB1dE1ldGhvZCgpLCBTSUdOQUwodmlzaWJsZUNoYW5nZWQoKSksIHRoaXMsIFNMT1Qo
aW5wdXRQYW5lbFZpc2libGVDaGFuZ2VkKCkpKTsKIH0KQEAgLTQ0NSwyMyArNDQ4LDE3IEBAIHZv
aWQgUXRXZWJQYWdlRXZlbnRIYW5kbGVyOjpkb25lV2l0aEdlc3R1cmVFdmVudChjb25zdCBXZWJH
ZXN0dXJlRXZlbnQmIGV2ZW50LCBiCiAgICAgdXBkYXRlVGV4dElucHV0U3RhdGUoKTsKIH0KIAot
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi12b2lkIFF0V2ViUGFnZUV2ZW50SGFuZGxlcjo6ZG9u
ZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZW50LCBib29sIHdh
c0V2ZW50SGFuZGxlZCkKK3ZvaWQgUXRXZWJQYWdlRXZlbnRIYW5kbGVyOjpoYW5kbGVJbnB1dEV2
ZW50KGNvbnN0IFFJbnB1dEV2ZW50KiBldmVudCkKIHsKLSAgICBpZiAoIW1fdmlld3BvcnRIYW5k
bGVyKQotICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKG1fdmlld3BvcnRIYW5kbGVyKTsKIAot
ICAgIGlmICh3YXNFdmVudEhhbmRsZWQgfHwgZXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpUb3Vj
aENhbmNlbCkgewotICAgICAgICBtX3Bhbkdlc3R1cmVSZWNvZ25pemVyLmNhbmNlbCgpOwotICAg
ICAgICBtX3BpbmNoR2VzdHVyZVJlY29nbml6ZXIuY2FuY2VsKCk7Ci0gICAgICAgIGlmIChldmVu
dC50eXBlKCkgIT0gV2ViRXZlbnQ6OlRvdWNoTW92ZSkKLSAgICAgICAgICAgIG1fdGFwR2VzdHVy
ZVJlY29nbml6ZXIuY2FuY2VsKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjb25z
dCBRVG91Y2hFdmVudCogZXYgPSBldmVudC5uYXRpdmVFdmVudCgpOworICAgIGJvb2wgaXNNb3Vz
ZUV2ZW50ID0gZmFsc2U7CiAKLSAgICBzd2l0Y2ggKGV2LT50eXBlKCkpIHsKKyAgICBzd2l0Y2gg
KGV2ZW50LT50eXBlKCkpIHsKKyAgICBjYXNlIFFFdmVudDo6TW91c2VCdXR0b25QcmVzczoKKyAg
ICAgICAgaXNNb3VzZUV2ZW50ID0gdHJ1ZTsKKyAgICAgICAgbV9pc01vdXNlQnV0dG9uUHJlc3Nl
ZCA9IHRydWU7CisgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KICAgICBjYXNlIFFFdmVudDo6VG91
Y2hCZWdpbjoKICAgICAgICAgQVNTRVJUKCFtX3ZpZXdwb3J0SGFuZGxlci0+cGFuR2VzdHVyZUFj
dGl2ZSgpKTsKICAgICAgICAgQVNTRVJUKCFtX3ZpZXdwb3J0SGFuZGxlci0+cGluY2hHZXN0dXJl
QWN0aXZlKCkpOwpAQCAtNDcyLDE2ICs0NjksMjcgQEAgdm9pZCBRdFdlYlBhZ2VFdmVudEhhbmRs
ZXI6OmRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiBldmVudCwK
ICAgICAgICAgLy8gd2hlcmUgYXMgaXQgZG9lcyBub3Qgc3RvcCB0aGUgc2NhbGUgYW5pbWF0aW9u
LgogICAgICAgICAvLyBUaGUgZ2VzdHVyZSByZWNvZ25pemVyIHN0b3BzIHRoZSBraW5ldGljIHNj
cm9sbGluZyBhbmltYXRpb24gaWYgbmVlZGVkLgogICAgICAgICBicmVhazsKKyAgICBjYXNlIFFF
dmVudDo6TW91c2VNb3ZlOgorICAgICAgICBpZiAoIW1faXNNb3VzZUJ1dHRvblByZXNzZWQpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaXNNb3VzZUV2ZW50ID0gdHJ1ZTsKKyAgICAg
ICAgLy8gRmFsbCB0aHJvdWdoLgogICAgIGNhc2UgUUV2ZW50OjpUb3VjaFVwZGF0ZToKICAgICAg
ICAgLy8gVGhlIHNjYWxlIGFuaW1hdGlvbiBjYW4gb25seSBiZSBpbnRlcnJ1cHRlZCBieSBhIHBp
bmNoIGdlc3R1cmUsIHdoaWNoIHdpbGwgdGhlbiB0YWtlIG92ZXIuCiAgICAgICAgIGlmIChtX3Zp
ZXdwb3J0SGFuZGxlci0+c2NhbGVBbmltYXRpb25BY3RpdmUoKSAmJiBtX3BpbmNoR2VzdHVyZVJl
Y29nbml6ZXIuaXNSZWNvZ25pemVkKCkpCiAgICAgICAgICAgICBtX3ZpZXdwb3J0SGFuZGxlci0+
aW50ZXJydXB0U2NhbGVBbmltYXRpb24oKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRRXZl
bnQ6Ok1vdXNlQnV0dG9uUmVsZWFzZToKKyAgICAgICAgaXNNb3VzZUV2ZW50ID0gdHJ1ZTsKKyAg
ICAgICAgbV9pc01vdXNlQnV0dG9uUHJlc3NlZCA9IGZhbHNlOworICAgICAgICAvLyBGYWxsIHRo
cm91Z2guCiAgICAgY2FzZSBRRXZlbnQ6OlRvdWNoRW5kOgogICAgICAgICBtX3ZpZXdwb3J0SGFu
ZGxlci0+dG91Y2hFbmQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKLSAgICAgICAg
YnJlYWs7CisgICAgICAgIEFTU0VSVChldmVudC0+dHlwZSgpID09IFFFdmVudDo6TW91c2VCdXR0
b25EYmxDbGljayk7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICAvLyBJZiB0aGUgc2Nh
bGUgYW5pbWF0aW9uIGlzIGFjdGl2ZSB3ZSBkb24ndCBwYXNzIHRoZSBldmVudCB0byB0aGUgcmVj
b2duaXplcnMuIEluIHRoZSBmdXR1cmUKQEAgLTQ4OSwxNSArNDk3LDM2IEBAIHZvaWQgUXRXZWJQ
YWdlRXZlbnRIYW5kbGVyOjpkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hF
dmVudCYgZXZlbnQsCiAgICAgaWYgKG1fdmlld3BvcnRIYW5kbGVyLT5zY2FsZUFuaW1hdGlvbkFj
dGl2ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25zdCBRTGlzdDxRVG91Y2hFdmVudDo6
VG91Y2hQb2ludD4mIHRvdWNoUG9pbnRzID0gZXYtPnRvdWNoUG9pbnRzKCk7Ci0gICAgY29uc3Qg
aW50IHRvdWNoUG9pbnRDb3VudCA9IHRvdWNoUG9pbnRzLnNpemUoKTsKLSAgICBxaW50NjQgZXZl
bnRUaW1lc3RhbXBNaWxsaXMgPSBldi0+dGltZXN0YW1wKCk7CiAgICAgUUxpc3Q8UVRvdWNoRXZl
bnQ6OlRvdWNoUG9pbnQ+IGFjdGl2ZVRvdWNoUG9pbnRzOwotICAgIGFjdGl2ZVRvdWNoUG9pbnRz
LnJlc2VydmUodG91Y2hQb2ludENvdW50KTsKLQotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdG91
Y2hQb2ludENvdW50OyArK2kpIHsKLSAgICAgICAgaWYgKHRvdWNoUG9pbnRzW2ldLnN0YXRlKCkg
IT0gUXQ6OlRvdWNoUG9pbnRSZWxlYXNlZCkKLSAgICAgICAgICAgIGFjdGl2ZVRvdWNoUG9pbnRz
IDw8IHRvdWNoUG9pbnRzW2ldOworICAgIFFUb3VjaEV2ZW50OjpUb3VjaFBvaW50IGN1cnJlbnRU
b3VjaFBvaW50OworICAgIHFpbnQ2NCBldmVudFRpbWVzdGFtcE1pbGxpcyA9IGV2ZW50LT50aW1l
c3RhbXAoKTsKKyAgICBpbnQgdG91Y2hQb2ludENvdW50ID0gMDsKKworICAgIGlmICghaXNNb3Vz
ZUV2ZW50KSB7CisgICAgICAgIGNvbnN0IFFUb3VjaEV2ZW50KiB0b3VjaEV2ZW50ID0gc3RhdGlj
X2Nhc3Q8Y29uc3QgUVRvdWNoRXZlbnQqPihldmVudCk7CisgICAgICAgIGNvbnN0IFFMaXN0PFFU
b3VjaEV2ZW50OjpUb3VjaFBvaW50PiYgdG91Y2hQb2ludHMgPSB0b3VjaEV2ZW50LT50b3VjaFBv
aW50cygpOworICAgICAgICBjdXJyZW50VG91Y2hQb2ludCA9IHRvdWNoUG9pbnRzLmZpcnN0KCk7
CisgICAgICAgIHRvdWNoUG9pbnRDb3VudCA9IHRvdWNoUG9pbnRzLnNpemUoKTsKKyAgICAgICAg
YWN0aXZlVG91Y2hQb2ludHMucmVzZXJ2ZSh0b3VjaFBvaW50Q291bnQpOworCisgICAgICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgdG91Y2hQb2ludENvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGlm
ICh0b3VjaFBvaW50c1tpXS5zdGF0ZSgpICE9IFF0OjpUb3VjaFBvaW50UmVsZWFzZWQpCisgICAg
ICAgICAgICAgICAgYWN0aXZlVG91Y2hQb2ludHMgPDwgdG91Y2hQb2ludHNbaV07CisgICAgICAg
IH0KKyAgICB9IGVsc2UgeworICAgICAgICBjb25zdCBRTW91c2VFdmVudCogbW91c2VFdmVudCA9
IHN0YXRpY19jYXN0PGNvbnN0IFFNb3VzZUV2ZW50Kj4oZXZlbnQpOworICAgICAgICB0b3VjaFBv
aW50Q291bnQgPSAxOworCisgICAgICAgIC8vIE1ha2UgYSBkaXN0aW5jdGlvbiBiZXR3ZWVuIG1v
dXNlIGV2ZW50cyBvbiB0aGUgYmFzaXMgb2YgcHJlc3NlZCBidXR0b25zLgorICAgICAgICBjdXJy
ZW50VG91Y2hQb2ludC5zZXRJZChtb3VzZUV2ZW50LT5idXR0b25zKCkpOworICAgICAgICBjdXJy
ZW50VG91Y2hQb2ludC5zZXRTY3JlZW5Qb3MobW91c2VFdmVudC0+c2NyZWVuUG9zKCkpOworICAg
ICAgICAvLyBGb3IgdGFwIGdlc3R1cmUgaGl0IHRlc3RpbmcgdGhlIGZsb2F0IHRvdWNoIHJlY3Qg
aXMgdHJhbnNsYXRlZCB0bworICAgICAgICAvLyBhbiBpbnQgcmVjdCByZXByZXNlbnRpbmcgdGhl
IHJhZGl1cyBvZiB0aGUgdG91Y2ggcG9pbnQgKHNpemUvMiksCisgICAgICAgIC8vIHRodXMgdGhl
IHRvdWNoIHJlY3QgaGFzIHRvIGhhdmUgYSBzaXplIG9mIGF0IGxlYXN0IDIuCisgICAgICAgIGN1
cnJlbnRUb3VjaFBvaW50LnNldFJlY3QoUVJlY3RGKG1vdXNlRXZlbnQtPmxvY2FsUG9zKCksIFFT
aXplRigyLCAyKSkpOworCisgICAgICAgIGlmIChtX2lzTW91c2VCdXR0b25QcmVzc2VkKQorICAg
ICAgICAgICAgYWN0aXZlVG91Y2hQb2ludHMgPDwgY3VycmVudFRvdWNoUG9pbnQ7CiAgICAgfQog
CiAgICAgY29uc3QgaW50IGFjdGl2ZVRvdWNoUG9pbnRDb3VudCA9IGFjdGl2ZVRvdWNoUG9pbnRz
LnNpemUoKTsKQEAgLTUwNiwxMSArNTM1LDExIEBAIHZvaWQgUXRXZWJQYWdlRXZlbnRIYW5kbGVy
Ojpkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQsCiAg
ICAgICAgIGlmICh0b3VjaFBvaW50Q291bnQgPT0gMSkgewogICAgICAgICAgICAgLy8gTm8gYWN0
aXZlIHRvdWNoIHBvaW50cywgb25lIGZpbmdlciByZWxlYXNlZC4KICAgICAgICAgICAgIGlmICht
X3Bhbkdlc3R1cmVSZWNvZ25pemVyLmlzUmVjb2duaXplZCgpKQotICAgICAgICAgICAgICAgIG1f
cGFuR2VzdHVyZVJlY29nbml6ZXIuZmluaXNoKHRvdWNoUG9pbnRzLmZpcnN0KCksIGV2ZW50VGlt
ZXN0YW1wTWlsbGlzKTsKKyAgICAgICAgICAgICAgICBtX3Bhbkdlc3R1cmVSZWNvZ25pemVyLmZp
bmlzaChjdXJyZW50VG91Y2hQb2ludCwgZXZlbnRUaW1lc3RhbXBNaWxsaXMpOwogICAgICAgICAg
ICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgLy8gVGhlIGV2ZW50cyBkaWQgbm90IHJlc3VsdCBp
biBhIHBhbiBnZXN0dXJlLgogICAgICAgICAgICAgICAgIG1fcGFuR2VzdHVyZVJlY29nbml6ZXIu
Y2FuY2VsKCk7Ci0gICAgICAgICAgICAgICAgbV90YXBHZXN0dXJlUmVjb2duaXplci5maW5pc2go
dG91Y2hQb2ludHMuZmlyc3QoKSk7CisgICAgICAgICAgICAgICAgbV90YXBHZXN0dXJlUmVjb2du
aXplci5maW5pc2goY3VycmVudFRvdWNoUG9pbnQpOwogICAgICAgICAgICAgfQogCiAgICAgICAg
IH0gZWxzZQpAQCAtNTMyLDcgKzU2MSwyNyBAQCB2b2lkIFF0V2ViUGFnZUV2ZW50SGFuZGxlcjo6
ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZW50LAogICAg
IGlmIChtX3Bhbkdlc3R1cmVSZWNvZ25pemVyLmlzUmVjb2duaXplZCgpIHx8IG1fcGluY2hHZXN0
dXJlUmVjb2duaXplci5pc1JlY29nbml6ZWQoKSB8fCBtX3dlYlZpZXctPmlzTW92aW5nKCkpCiAg
ICAgICAgIG1fdGFwR2VzdHVyZVJlY29nbml6ZXIuY2FuY2VsKCk7CiAgICAgZWxzZSBpZiAodG91
Y2hQb2ludENvdW50ID09IDEpCi0gICAgICAgIG1fdGFwR2VzdHVyZVJlY29nbml6ZXIudXBkYXRl
KHRvdWNoUG9pbnRzLmZpcnN0KCkpOworICAgICAgICBtX3RhcEdlc3R1cmVSZWNvZ25pemVyLnVw
ZGF0ZShjdXJyZW50VG91Y2hQb2ludCk7CisKK30KKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
Cit2b2lkIFF0V2ViUGFnZUV2ZW50SGFuZGxlcjo6ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5h
dGl2ZVdlYlRvdWNoRXZlbnQmIGV2ZW50LCBib29sIHdhc0V2ZW50SGFuZGxlZCkKK3sKKyAgICBp
ZiAoIW1fdmlld3BvcnRIYW5kbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAod2FzRXZl
bnRIYW5kbGVkIHx8IGV2ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6VG91Y2hDYW5jZWwpIHsKKyAg
ICAgICAgbV9wYW5HZXN0dXJlUmVjb2duaXplci5jYW5jZWwoKTsKKyAgICAgICAgbV9waW5jaEdl
c3R1cmVSZWNvZ25pemVyLmNhbmNlbCgpOworICAgICAgICBpZiAoZXZlbnQudHlwZSgpICE9IFdl
YkV2ZW50OjpUb3VjaE1vdmUpCisgICAgICAgICAgICBtX3RhcEdlc3R1cmVSZWNvZ25pemVyLmNh
bmNlbCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29uc3QgUVRvdWNoRXZlbnQq
IGV2ID0gZXZlbnQubmF0aXZlRXZlbnQoKTsKKworICAgIGhhbmRsZUlucHV0RXZlbnQoZXYpOwog
fQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdl
YlBhZ2VFdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBh
Z2VFdmVudEhhbmRsZXIuaAppbmRleCBiNjRmNmZlLi40Y2M5ZjMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlRXZlbnRIYW5kbGVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZUV2ZW50SGFuZGxlci5oCkBAIC04OCw2
ICs4OCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgZG9u
ZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmLCBib29sIHdhc0V2ZW50
SGFuZGxlZCk7CiAjZW5kaWYKKyAgICB2b2lkIGhhbmRsZUlucHV0RXZlbnQoY29uc3QgUUlucHV0
RXZlbnQqKTsKICAgICB2b2lkIHJlc2V0R2VzdHVyZVJlY29nbml6ZXJzKCk7CiAKICAgICBRdFZp
ZXdwb3J0SGFuZGxlciogdmlld3BvcnRIYW5kbGVyKCkgeyByZXR1cm4gbV92aWV3cG9ydEhhbmRs
ZXI7IH0KQEAgLTExNSw2ICsxMTYsNyBAQCBwcml2YXRlOgogICAgIGludCBtX2NsaWNrQ291bnQ7
CiAgICAgYm9vbCBtX3Bvc3Rwb25lVGV4dElucHV0U3RhdGVDaGFuZ2VkOwogICAgIGJvb2wgbV9p
c1RhcEhpZ2hsaWdodEFjdGl2ZTsKKyAgICBib29sIG1faXNNb3VzZUJ1dHRvblByZXNzZWQ7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>