<?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>214141</bug_id>
          
          <creation_ts>2020-07-09 08:56:18 -0700</creation_ts>
          <short_desc>[WPE] lost touch events, wrong mousedown events</short_desc>
          <delta_ts>2023-05-12 01:19:29 -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>WPE WebKit</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=247975</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>214832</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bastian Krause">bst</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>m.felsch</cc>
    
    <cc>moritz</cc>
    
    <cc>psaavedra</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1670121</commentid>
    <comment_count>0</comment_count>
    <who name="Bastian Krause">bst</who>
    <bug_when>2020-07-09 08:56:18 -0700</bug_when>
    <thetext>touchend (and some corresponding events, see below) do not trigger on touch release right after a touch motion (scroll gesture). This seems to be the case because the wpe_input_touch_event_type_up does only end the gesture, but is not handled as a general touch event in this case.

backend: wpebackend-fdo-1.6.1
wpewebkit: 2.28.2 (tarball from https://wpewebkit.org/releases/)
browser: cog 0.7.1, qt-wpe-simple-browser 0.2

How to reproduce:
Visit https://patrickhlauke.github.io/touch/tests/event-listener.html, touch the button, move finger (while still touching) on button (or off button) and release touch.

Expected behavior:
touchstart
mouseover (15ms)
mouseenter (1ms)
mousedown (0ms)
mousemove (35ms)
touchmove (128ms)
touchmove (1ms)
touchend (8ms)
mouseup (10ms)
click (0ms)
mouseout
mouseleave (3ms)

Observed behavior:
touchstart
mouseover (15ms)
mouseenter (1ms)
mousedown (1ms)
mousemove (35ms)
touchmove (128ms)
touchmove (1ms)

Similar bugs:
- https://bugs.webkit.org/show_bug.cgi?id=202527

Proposed fix:
ScrollGestureController::handleEvent (Source/WebKit/UIProcess/API/wpe/ScrollGestureController.cpp) could always return false for wpe_input_touch_event_type_up cases. This way the wpe_input_touch_event_type_up would not only end the scroll gesture (Source/WebKit/UIProcess/API/wpe/WPEView.cpp) but also be processed as any other touch up event leading to correct touchend events in javascript. I am not sure whether this is really the desired fix though but it produces the desired output (as seen in &quot;Expected behavior&quot; above).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670406</commentid>
    <comment_count>1</comment_count>
    <who name="Bastian Krause">bst</who>
    <bug_when>2020-07-10 04:09:39 -0700</bug_when>
    <thetext>The proposed fix (which is what I posted as &quot;expected behavior&quot;) leads to a click event for &quot;touch the button, move finger (while still touching) on button (or off button) and release touch&quot;. This is wrong, such a &quot;gesture&quot; should not lead to a click event. The proposed fix is therefore not correct, the &quot;expected behavior&quot; minus the click event is still correct though.

Any ideas?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671353</commentid>
    <comment_count>2</comment_count>
      <attachid>404231</attachid>
    <who name="Bastian Krause">bst</who>
    <bug_when>2020-07-14 06:47:06 -0700</bug_when>
    <thetext>Created attachment 404231
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671354</commentid>
    <comment_count>3</comment_count>
      <attachid>404232</attachid>
    <who name="Bastian Krause">bst</who>
    <bug_when>2020-07-14 06:57:25 -0700</bug_when>
    <thetext>Created attachment 404232
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671681</commentid>
    <comment_count>4</comment_count>
      <attachid>404232</attachid>
    <who name="Bastian Krause">bst</who>
    <bug_when>2020-07-15 00:53:22 -0700</bug_when>
    <thetext>Comment on attachment 404232
Patch

The submitted patch is still not correct, I&apos;m working on another version of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672217</commentid>
    <comment_count>5</comment_count>
    <who name="Bastian Krause">bst</who>
    <bug_when>2020-07-16 12:52:36 -0700</bug_when>
    <thetext>Some aspects of this bug became clear to me after investigation, so I&apos;ll rephrase the bug report and observed/expected behavior:

- touchend does not trigger on scroll gestures
- touchmove/mousemove do not trigger after 200ms on scroll gestures (threshold to detect a scroll motion defined in Source/WebKit/UIProcess/API/wpe/ScrollGestureController.cpp)
- mousedown triggers on scroll gestures, this is incorrect
- mousedown triggers on simple &quot;click&quot; touches prior to touchend, this is incorrect

Expected behavior for simple &quot;click&quot; touch:
touchstart
mouseover
mouseenter
mousemove
touchend
mousedown
mouseup
click

Observed behavior for simple &quot;click&quot; touch:
touchstart
mouseover
mouseenter
mousedown
mousemove
touchend
mouseup
click

Expected behavior for scroll gesture:
touchstart
mouseover
mouseenter
mousemove
touchmove
touchmove
touchmove
touchend

Observed behavior for scroll gesture:
touchstart
mouseover
mouseenter
mousedown
mousemove
touchmove
touchmove</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673070</commentid>
    <comment_count>6</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-07-20 07:38:11 -0700</bug_when>
    <thetext>In the WPE chat room it has been mentioned (thanks madmo!) that the slider
widget (https://material-ui.com/components/slider/) from the Material-UI
library behaves incorrectly and it seems that this issue could be related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675254</commentid>
    <comment_count>7</comment_count>
    <who name="Marco Felsch">m.felsch</who>
    <bug_when>2020-07-27 08:55:58 -0700</bug_when>
    <thetext>Hi,

I took Bastian&apos;s patch and prepared another version fixing the bug hopefully the right way :)

Regards,
  Marco</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675266</commentid>
    <comment_count>8</comment_count>
      <attachid>405283</attachid>
    <who name="Marco Felsch">m.felsch</who>
    <bug_when>2020-07-27 09:18:54 -0700</bug_when>
    <thetext>Created attachment 405283
Fix touch based gesture handling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682970</commentid>
    <comment_count>9</comment_count>
    <who name="">moritz</who>
    <bug_when>2020-08-26 05:40:06 -0700</bug_when>
    <thetext>tried the most recent patch on wayland with multitouch touchscreen, works for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1685074</commentid>
    <comment_count>10</comment_count>
      <attachid>405283</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-09-02 17:23:55 -0700</bug_when>
    <thetext>Comment on attachment 405283
Fix touch based gesture handling

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

Patch looks correct to me from the point of view of my limited
knowledge about how touch input is handled, so I would prefer if
someone else can also review this—I&apos;ll try and fish around another
reviewer 🎣️ 

I have only a couple of comments with minor code style issues,
please check the comments below.

&gt; Source/WebKit/UIProcess/API/wpe/ScrollGestureController.cpp:35
&gt; +WebKit::ScrollGestureController::TouchPoint ScrollGestureController::getMouseClickTouchId()

This is returning a “TouchPoint” instance so maybe something like
“::lastMouseTouchPoint()” would be a better name for this method.

&gt; Source/WebKit/UIProcess/API/wpe/ScrollGestureController.cpp:40
&gt; +bool ScrollGestureController::pendingMouseClicks()

For methods that return booleans in WebKit we put a “has” or “is”
prefix. Here I would rename this to “::hasPendingMouseClicks()”</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686353</commentid>
    <comment_count>11</comment_count>
      <attachid>405283</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2020-09-07 07:07:33 -0700</bug_when>
    <thetext>Comment on attachment 405283
Fix touch based gesture handling

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

&gt; Source/WebKit/UIProcess/API/wpe/ScrollGestureController.h:78
&gt; +    Vector&lt;struct TouchPoint, 10&gt; m_mouseClicks;

Just &apos;Vector&lt;TouchPoint, 10&gt; is enough. struct/class notation (beyond forward declarations and definitions) is ignored in the WebKit C++ coding style.

&gt; Source/WebKit/UIProcess/API/wpe/WPEView.cpp:178
&gt; +            scrollGestureController.handleEvent(touchPoint, page);
&gt;              page.handleTouchEvent(touchEvent);

ScrollGestureController::handleEvent() returns a boolean, specifically true if the event was finally handled as a wheel event. If that&apos;s the case, should the original event still be handled as a touch event?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693651</commentid>
    <comment_count>12</comment_count>
      <attachid>405283</attachid>
    <who name="Marco Felsch">m.felsch</who>
    <bug_when>2020-09-30 22:53:14 -0700</bug_when>
    <thetext>Comment on attachment 405283
Fix touch based gesture handling

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

&gt;&gt; Source/WebKit/UIProcess/API/wpe/ScrollGestureController.cpp:35
&gt;&gt; +WebKit::ScrollGestureController::TouchPoint ScrollGestureController::getMouseClickTouchId()
&gt; 
&gt; This is returning a “TouchPoint” instance so maybe something like
&gt; “::lastMouseTouchPoint()” would be a better name for this method.

Yep, I will change that.

&gt;&gt; Source/WebKit/UIProcess/API/wpe/ScrollGestureController.cpp:40
&gt;&gt; +bool ScrollGestureController::pendingMouseClicks()
&gt; 
&gt; For methods that return booleans in WebKit we put a “has” or “is”
&gt; prefix. Here I would rename this to “::hasPendingMouseClicks()”

Okay, Thanks for the input :)

&gt;&gt; Source/WebKit/UIProcess/API/wpe/ScrollGestureController.h:78
&gt;&gt; +    Vector&lt;struct TouchPoint, 10&gt; m_mouseClicks;
&gt; 
&gt; Just &apos;Vector&lt;TouchPoint, 10&gt; is enough. struct/class notation (beyond forward declarations and definitions) is ignored in the WebKit C++ coding style.

Arg.. Thanks for covering that :)

&gt;&gt; Source/WebKit/UIProcess/API/wpe/WPEView.cpp:178
&gt;&gt;              page.handleTouchEvent(touchEvent);
&gt; 
&gt; ScrollGestureController::handleEvent() returns a boolean, specifically true if the event was finally handled as a wheel event. If that&apos;s the case, should the original event still be handled as a touch event?

Yes we do and this is line is the main reason for this patch. Since the shortcut we don&apos;t handle it anymore but we need to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697202</commentid>
    <comment_count>13</comment_count>
    <who name="">moritz</who>
    <bug_when>2020-10-13 01:34:49 -0700</bug_when>
    <thetext>With this patch applied there are some problems with click events on touchend, even if the element was not target of the touchstart.

Here is a sample site to reproduce: https://jsfiddle.net/h013paz9/show</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704386</commentid>
    <comment_count>14</comment_count>
    <who name="Bastian Krause">bst</who>
    <bug_when>2020-11-04 06:37:02 -0800</bug_when>
    <thetext>I am also able to reproduce the bug mentioned by Moritz, triggered by https://jsfiddle.net/h013paz9/show with the latest patch.

Another click event related difference (probably unrelated to this bug?), unrelated to the latest patch:

On desktop Chromium and Android Chrome I observe no click events after long presses &gt; ~2s (tap and hold, with [1]), on wpewebkit click events occur no matter how long the tap and hold gesture lasts.

I cannot reproduce this on mobile Safari as tap and hold gestures make the select function pop up, leading to the end of the gesture without click.

[1] window.addEventListener(&quot;contextmenu&quot;, function(e) { e.preventDefault(); });</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732071</commentid>
    <comment_count>15</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2021-02-22 02:23:47 -0800</bug_when>
    <thetext>(In reply to Bastian Krause from comment #5)
&gt; Some aspects of this bug became clear to me after investigation, so I&apos;ll
...
&gt; Expected behavior for scroll gesture:
&gt; touchstart
&gt; mouseover
&gt; mouseenter
&gt; mousemove
&gt; touchmove
&gt; touchmove
&gt; touchmove
&gt; touchend
&gt; 
&gt; Observed behavior for scroll gesture:
&gt; touchstart
&gt; mouseover
&gt; mouseenter
&gt; mousedown
&gt; mousemove
&gt; touchmove
&gt; touchmove

Even after applying this patch, I still can reproduce this wrong behavior in https://people.igalia.com/psaavedra/scroll.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742817</commentid>
    <comment_count>16</comment_count>
    <who name="Marco Felsch">m.felsch</who>
    <bug_when>2021-03-23 08:54:48 -0700</bug_when>
    <thetext>@9moritz@h6t.eu @Bastian Krause
Thanks for testing I will fix that remaining issue and will post a new version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742818</commentid>
    <comment_count>17</comment_count>
    <who name="Marco Felsch">m.felsch</who>
    <bug_when>2021-03-23 08:55:41 -0700</bug_when>
    <thetext>(In reply to Pablo Saavedra from comment #15)
&gt; (In reply to Bastian Krause from comment #5)
&gt; &gt; Some aspects of this bug became clear to me after investigation, so I&apos;ll
&gt; ...
&gt; &gt; Expected behavior for scroll gesture:
&gt; &gt; touchstart
&gt; &gt; mouseover
&gt; &gt; mouseenter
&gt; &gt; mousemove
&gt; &gt; touchmove
&gt; &gt; touchmove
&gt; &gt; touchmove
&gt; &gt; touchend
&gt; &gt; 
&gt; &gt; Observed behavior for scroll gesture:
&gt; &gt; touchstart
&gt; &gt; mouseover
&gt; &gt; mouseenter
&gt; &gt; mousedown
&gt; &gt; mousemove
&gt; &gt; touchmove
&gt; &gt; touchmove
&gt; 
&gt; Even after applying this patch, I still can reproduce this wrong behavior in
&gt; https://people.igalia.com/psaavedra/scroll.html

Hm.. I don&apos;t see any wrong behavior here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742907</commentid>
    <comment_count>18</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2021-03-23 10:43:39 -0700</bug_when>
    <thetext>(In reply to Marco Felsch from comment #17)
&gt; (In reply to Pablo Saavedra from comment #15)
&gt; &gt; (In reply to Bastian Krause from comment #5)
&gt; &gt; &gt; Some aspects of this bug became clear to me after investigation, so I&apos;ll
&gt; &gt; ...
&gt; &gt; &gt; Expected behavior for scroll gesture:
&gt; &gt; &gt; touchstart
&gt; &gt; &gt; mouseover
&gt; &gt; &gt; mouseenter
&gt; &gt; &gt; mousemove
&gt; &gt; &gt; touchmove
&gt; &gt; &gt; touchmove
&gt; &gt; &gt; touchmove
&gt; &gt; &gt; touchend
&gt; &gt; &gt; 
&gt; &gt; &gt; Observed behavior for scroll gesture:
&gt; &gt; &gt; touchstart
&gt; &gt; &gt; mouseover
&gt; &gt; &gt; mouseenter
&gt; &gt; &gt; mousedown
&gt; &gt; &gt; mousemove
&gt; &gt; &gt; touchmove
&gt; &gt; &gt; touchmove
&gt; &gt; 
&gt; &gt; Even after applying this patch, I still can reproduce this wrong behavior in
&gt; &gt; https://people.igalia.com/psaavedra/scroll.html
&gt; 
&gt; Hm.. I don&apos;t see any wrong behavior here.

Do you mean in the link? I&apos;ve tested this in the WPE could be that hit a difference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742941</commentid>
    <comment_count>19</comment_count>
    <who name="Marco Felsch">m.felsch</who>
    <bug_when>2021-03-23 12:15:15 -0700</bug_when>
    <thetext>(In reply to Pablo Saavedra from comment #18)
&gt; (In reply to Marco Felsch from comment #17)
&gt; &gt; (In reply to Pablo Saavedra from comment #15)
&gt; &gt; &gt; (In reply to Bastian Krause from comment #5)
&gt; &gt; &gt; &gt; Some aspects of this bug became clear to me after investigation, so I&apos;ll
&gt; &gt; &gt; ...
&gt; &gt; &gt; &gt; Expected behavior for scroll gesture:
&gt; &gt; &gt; &gt; touchstart
&gt; &gt; &gt; &gt; mouseover
&gt; &gt; &gt; &gt; mouseenter
&gt; &gt; &gt; &gt; mousemove
&gt; &gt; &gt; &gt; touchmove
&gt; &gt; &gt; &gt; touchmove
&gt; &gt; &gt; &gt; touchmove
&gt; &gt; &gt; &gt; touchend
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Observed behavior for scroll gesture:
&gt; &gt; &gt; &gt; touchstart
&gt; &gt; &gt; &gt; mouseover
&gt; &gt; &gt; &gt; mouseenter
&gt; &gt; &gt; &gt; mousedown
&gt; &gt; &gt; &gt; mousemove
&gt; &gt; &gt; &gt; touchmove
&gt; &gt; &gt; &gt; touchmove
&gt; &gt; &gt; 
&gt; &gt; &gt; Even after applying this patch, I still can reproduce this wrong behavior in
&gt; &gt; &gt; https://people.igalia.com/psaavedra/scroll.html
&gt; &gt; 
&gt; &gt; Hm.. I don&apos;t see any wrong behavior here.
&gt; 
&gt; Do you mean in the link? I&apos;ve tested this in the WPE could be that hit a
&gt; difference.

I&apos;ve tested it with latest WPE+cog+wayland+fdo too and see no wrong behavior</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742952</commentid>
    <comment_count>20</comment_count>
    <who name="Marco Felsch">m.felsch</who>
    <bug_when>2021-03-23 12:27:04 -0700</bug_when>
    <thetext>(In reply to Bastian Krause from comment #14)
&gt; I am also able to reproduce the bug mentioned by Moritz, triggered by
&gt; https://jsfiddle.net/h013paz9/show with the latest patch.
&gt; 
&gt; Another click event related difference (probably unrelated to this bug?),
&gt; unrelated to the latest patch:
&gt; 
&gt; On desktop Chromium and Android Chrome I observe no click events after long
&gt; presses &gt; ~2s (tap and hold, with [1]), on wpewebkit click events occur no
&gt; matter how long the tap and hold gesture lasts.
&gt; 
&gt; I cannot reproduce this on mobile Safari as tap and hold gestures make the
&gt; select function pop up, leading to the end of the gesture without click.
&gt; 
&gt; [1] window.addEventListener(&quot;contextmenu&quot;, function(e) { e.preventDefault();
&gt; });

After checking the GTK implementation and the common code, I don&apos;t see how we could fix this in short. The problem is that we need to track the element with the touch_down event. Then we need to check if the touch_up event correspond to the same element and then issuing a click() event. Question is also, do we need to synthesize the click event? According https://w3c.github.io/uievents/#click this is not the case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742953</commentid>
    <comment_count>21</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2021-03-23 12:27:56 -0700</bug_when>
    <thetext>(In reply to Marco Felsch from comment #19)
&gt; (In reply to Pablo Saavedra from comment #18)
&gt; &gt; (In reply to Marco Felsch from comment #17)
&gt; &gt; &gt; (In reply to Pablo Saavedra from comment #15)
&gt; &gt; &gt; &gt; (In reply to Bastian Krause from comment #5)
&gt; &gt; &gt; &gt; &gt; Some aspects of this bug became clear to me after investigation, so I&apos;ll
&gt; &gt; &gt; &gt; ...
&gt; &gt; &gt; &gt; &gt; Expected behavior for scroll gesture:
&gt; &gt; &gt; &gt; &gt; touchstart
&gt; &gt; &gt; &gt; &gt; mouseover
&gt; &gt; &gt; &gt; &gt; mouseenter
&gt; &gt; &gt; &gt; &gt; mousemove
&gt; &gt; &gt; &gt; &gt; touchmove
&gt; &gt; &gt; &gt; &gt; touchmove
&gt; &gt; &gt; &gt; &gt; touchmove
&gt; &gt; &gt; &gt; &gt; touchend
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Observed behavior for scroll gesture:
&gt; &gt; &gt; &gt; &gt; touchstart
&gt; &gt; &gt; &gt; &gt; mouseover
&gt; &gt; &gt; &gt; &gt; mouseenter
&gt; &gt; &gt; &gt; &gt; mousedown
&gt; &gt; &gt; &gt; &gt; mousemove
&gt; &gt; &gt; &gt; &gt; touchmove
&gt; &gt; &gt; &gt; &gt; touchmove
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Even after applying this patch, I still can reproduce this wrong behavior in
&gt; &gt; &gt; &gt; https://people.igalia.com/psaavedra/scroll.html
&gt; &gt; &gt; 
&gt; &gt; &gt; Hm.. I don&apos;t see any wrong behavior here.
&gt; &gt; 
&gt; &gt; Do you mean in the link? I&apos;ve tested this in the WPE could be that hit a
&gt; &gt; difference.
&gt; 
&gt; I&apos;ve tested it with latest WPE+cog+wayland+fdo too and see no wrong behavior

I did the tests weeks ago I don&apos;t remember exactly what I observed in that moment. I tested with master/main versions of WPE, wpebackend-fdo and libwpe. I will try it again a get you a more precise analysis.

Something interesting to highlight and something that I remember is that
https://bugs.webkit.org/show_bug.cgi?id=218903 introduces some changes in the logic. That simple change [1] inhibits the ScrollGestureController handling and that makes the kinetic scrolling doesn&apos;t work anymore for scrolling using touch gestures. But not sure how that bug it could be related with this one.  

[1] https://bugs.webkit.org/attachment.cgi?id=414342&amp;action=prettypatch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743253</commentid>
    <comment_count>22</comment_count>
    <who name="Marco Felsch">m.felsch</who>
    <bug_when>2021-03-24 03:05:07 -0700</bug_when>
    <thetext>(In reply to Marco Felsch from comment #20)
&gt; (In reply to Bastian Krause from comment #14)
&gt; &gt; I am also able to reproduce the bug mentioned by Moritz, triggered by
&gt; &gt; https://jsfiddle.net/h013paz9/show with the latest patch.
&gt; &gt; 
&gt; &gt; Another click event related difference (probably unrelated to this bug?),
&gt; &gt; unrelated to the latest patch:
&gt; &gt; 
&gt; &gt; On desktop Chromium and Android Chrome I observe no click events after long
&gt; &gt; presses &gt; ~2s (tap and hold, with [1]), on wpewebkit click events occur no
&gt; &gt; matter how long the tap and hold gesture lasts.
&gt; &gt; 
&gt; &gt; I cannot reproduce this on mobile Safari as tap and hold gestures make the
&gt; &gt; select function pop up, leading to the end of the gesture without click.
&gt; &gt; 
&gt; &gt; [1] window.addEventListener(&quot;contextmenu&quot;, function(e) { e.preventDefault();
&gt; &gt; });
&gt; 
&gt; After checking the GTK implementation and the common code, I don&apos;t see how
&gt; we could fix this in short. The problem is that we need to track the element
&gt; with the touch_down event. Then we need to check if the touch_up event
&gt; correspond to the same element and then issuing a click() event. Question is
&gt; also, do we need to synthesize the click event? According
&gt; https://w3c.github.io/uievents/#click this is not the case.

So.. after checking the GTK Port I assume that it is okay, that presses longer than 500ms should not trigger the click() event. Why 500ms? Because it is default for &apos;gtk-long-press&apos; [1]. The interesting code can be found here [2]. The .tap() is only fired if not inDrag. Behind the tap() implementation is the synthesized click() event. Since we don&apos;t have properties like &apos;gtk-long-press&apos; I would go with 500ms. Is that okay for everyone?

[1] https://developer.gnome.org/gtk3/stable/GtkSettings.html#GtkSettings--gtk-long-press-time
[2] Source/WebKit/UIProcess/gtk/GestureController.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745060</commentid>
    <comment_count>23</comment_count>
      <attachid>424624</attachid>
    <who name="Marco Felsch">m.felsch</who>
    <bug_when>2021-03-30 01:44:26 -0700</bug_when>
    <thetext>Created attachment 424624
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745555</commentid>
    <comment_count>24</comment_count>
    <who name="Pablo Saavedra">psaavedra</who>
    <bug_when>2021-03-31 01:55:36 -0700</bug_when>
    <thetext>looks like the patch is failing to be applied:

perl Tools/Scripts/svn-apply --force .buildbot-diff
 in dir /home/ews/worker/WPE-EWS/build (timeout 600 secs)
 watching logfiles {}
 argv: [&apos;perl&apos;, &apos;Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;.buildbot-diff&apos;]
 using PTY: False
Parsed 5 diffs from patch file(s).
patching file Source/WebKit/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp
Hunk #1 FAILED at 204.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp.rej
patching file Source/WebKit/UIProcess/API/wpe/ScrollGestureController.cpp
Hunk #1 FAILED at 26.
Hunk #2 FAILED at 49.
Hunk #3 succeeded at 94 with fuzz 1 (offset 25 lines).
Hunk #4 FAILED at 90.
3 out of 4 hunks FAILED -- saving rejects to file Source/WebKit/UIProcess/API/wpe/ScrollGestureController.cpp.rej
patching file Source/WebKit/UIProcess/API/wpe/ScrollGestureController.h
Hunk #1 succeeded at 27 with fuzz 2.
Hunk #2 FAILED at 47.
Hunk #3 FAILED at 70.
2 out of 3 hunks FAILED -- saving rejects to file Source/WebKit/UIProcess/API/wpe/ScrollGestureController.h.rej
patching file Source/WebKit/UIProcess/API/wpe/WPEView.cpp
Hunk #1 succeeded at 194 (offset 22 lines).
program finished with exit code 1
elapsedTime=0.178097</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745558</commentid>
    <comment_count>25</comment_count>
    <who name="Marco Felsch">m.felsch</who>
    <bug_when>2021-03-31 02:27:43 -0700</bug_when>
    <thetext>(In reply to Pablo Saavedra from comment #24)
&gt; looks like the patch is failing to be applied:

You&apos;re right. I didn&apos;t rebased it against master, since I&apos;ve tested it on 2.30.6... I wanted to update a new version but there where a few changes on master and I didn&apos;t had the time to fix the merge issues.

I will update a rebased version as soon as possible :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1954913</commentid>
    <comment_count>26</comment_count>
    <who name="Bastian Krause">bst</who>
    <bug_when>2023-05-12 01:19:29 -0700</bug_when>
    <thetext>The bugs mentioned here were fixed by

https://bugs.webkit.org/show_bug.cgi?id=247975
https://bugs.webkit.org/show_bug.cgi?id=248076

Setting this to resolved. Thanks for the feedback.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404231</attachid>
            <date>2020-07-14 06:47:06 -0700</date>
            <delta_ts>2020-07-14 06:57:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214141-20200714154705.patch</filename>
            <type>text/plain</type>
            <size>1240</size>
            <attacher name="Bastian Krause">bst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9XUEVWaWV3LmNwcAppbmRleCBjYzgxZWVjNmJmNzJhMjA3NWM4NjExZjgwNzZlOTJiODhm
ZTZkNzg3Li5jNmMzOTBiNDQ4MTQzNDdiMWU0NzQ5NmU4NWFhNjM3MTNhNmVlMDhhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKQEAgLTE3NCwxMCArMTc0
LDggQEAgVmlldzo6VmlldyhzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCwgY29uc3Qg
QVBJOjpQYWdlQ29uZmlndXJhdGlvbiYgYmFzZUMKICAgICAgICAgICAgIGF1dG8mIHNjcm9sbEdl
c3R1cmVDb250cm9sbGVyID0gKnZpZXcubV9zY3JvbGxHZXN0dXJlQ29udHJvbGxlcjsKICAgICAg
ICAgICAgIGlmIChzY3JvbGxHZXN0dXJlQ29udHJvbGxlci5pc0hhbmRsaW5nKCkpIHsKICAgICAg
ICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3JhdyogdG91Y2hQ
b2ludCA9IHRvdWNoRXZlbnQubmF0aXZlRmFsbGJhY2tUb3VjaFBvaW50KCk7Ci0gICAgICAgICAg
ICAgICAgaWYgKHRvdWNoUG9pbnQtPnR5cGUgIT0gd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVf
bnVsbCAmJiBzY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oYW5kbGVFdmVudCh0b3VjaFBvaW50KSkg
eworICAgICAgICAgICAgICAgIGlmICh0b3VjaFBvaW50LT50eXBlICE9IHdwZV9pbnB1dF90b3Vj
aF9ldmVudF90eXBlX251bGwgJiYgc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaGFuZGxlRXZlbnQo
dG91Y2hQb2ludCkpCiAgICAgICAgICAgICAgICAgICAgIHBhZ2UuaGFuZGxlV2hlZWxFdmVudChX
ZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuYXhpc0V2
ZW50KCksIHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSwgc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIu
cGhhc2UoKSwgV2ViV2hlZWxFdmVudDo6UGhhc2U6OlBoYXNlTm9uZSkpOwotICAgICAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICBwYWdlLmhhbmRsZVRvdWNoRXZlbnQodG91Y2hFdmVudCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404232</attachid>
            <date>2020-07-14 06:57:25 -0700</date>
            <delta_ts>2020-07-15 00:53:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214141-20200714155724.patch</filename>
            <type>text/plain</type>
            <size>2293</size>
            <attacher name="Bastian Krause">bst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdiZmQyMTc2MDM3ZGFmZWU0
ODViM2ViOTI2MmI4YmRmYmNjY2UxNzAuLjkwOWVlMzViNGZhOWZmZWQxOTU4OWVlYjdlNTZmODdi
M2RiZjZlZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDctMTQgIEJhc3RpYW4g
S3JhdXNlICA8YnN0QHBlbmd1dHJvbml4LmRlPgorCisgICAgICAgIFtXUEVdIEhhbmRsZSB0b3Vj
aCBzY3JvbGwgZXZlbnRzIG5vdCBvbmx5IGFzIHNjcm9sbCBnZXN0dXJlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MTQxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV0dXJuaW5nIGVhcmx5IGlmIGEg
c2Nyb2xsIGdlc3R1cmUgaXMgaGFuZGxlZCBhbmQgdGh1cyBza2lwcGluZworICAgICAgICBwYWdl
LmhhbmRsZVRvdWNoRXZlbnQoKSBmb3Igc3VjaCBldmVudHMgaXMgd3JvbmcuIEJ5IHJlbW92aW5n
IHRoZSBlYXJseQorICAgICAgICByZXR1cm4sIHNjcm9sbCBnZXN0dXJlcyBhcmUgaGFuZGxlZCBh
cyBhcyB3ZWxsIGFzIGNvcnJlc3BvbmRpbmcgdG91Y2gKKyAgICAgICAgZXZlbnRzIHRyaWdnZXIu
IE90aGVyd2lzZSB0b3VjaG1vdmUvdG91Y2hlbmQgZXZlbnRzIGRvIG5vdCBvY2N1ciBhZnRlcgor
ICAgICAgICBhIHNjcm9sbCBnZXN0dXJlIGlzIGRldGVjdGVkIGZvciB0aGF0IHBhcnRpY3VsYXIg
Z2VzdHVyZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwOgorICAg
ICAgICAoV0tXUEU6Om1fYmFja2VuZCk6IERvIG5vdCByZXR1cm4gZWFybHkgZm9yIHNjcm9sbCBn
ZXN0dXJlcy4KKwogMjAyMC0wNy0xNCAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBz
b255LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIG5vbi11bmlmaWVkIGJ1aWxkIGZpeGVzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcAppbmRleCBjYzgxZWVj
NmJmNzJhMjA3NWM4NjExZjgwNzZlOTJiODhmZTZkNzg3Li5jNmMzOTBiNDQ4MTQzNDdiMWU0NzQ5
NmU4NWFhNjM3MTNhNmVlMDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1dQRVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
V1BFVmlldy5jcHAKQEAgLTE3NCwxMCArMTc0LDggQEAgVmlldzo6VmlldyhzdHJ1Y3Qgd3BlX3Zp
ZXdfYmFja2VuZCogYmFja2VuZCwgY29uc3QgQVBJOjpQYWdlQ29uZmlndXJhdGlvbiYgYmFzZUMK
ICAgICAgICAgICAgIGF1dG8mIHNjcm9sbEdlc3R1cmVDb250cm9sbGVyID0gKnZpZXcubV9zY3Jv
bGxHZXN0dXJlQ29udHJvbGxlcjsKICAgICAgICAgICAgIGlmIChzY3JvbGxHZXN0dXJlQ29udHJv
bGxlci5pc0hhbmRsaW5nKCkpIHsKICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgd3BlX2lu
cHV0X3RvdWNoX2V2ZW50X3JhdyogdG91Y2hQb2ludCA9IHRvdWNoRXZlbnQubmF0aXZlRmFsbGJh
Y2tUb3VjaFBvaW50KCk7Ci0gICAgICAgICAgICAgICAgaWYgKHRvdWNoUG9pbnQtPnR5cGUgIT0g
d3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbnVsbCAmJiBzY3JvbGxHZXN0dXJlQ29udHJvbGxl
ci5oYW5kbGVFdmVudCh0b3VjaFBvaW50KSkgeworICAgICAgICAgICAgICAgIGlmICh0b3VjaFBv
aW50LT50eXBlICE9IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGwgJiYgc2Nyb2xsR2Vz
dHVyZUNvbnRyb2xsZXIuaGFuZGxlRXZlbnQodG91Y2hQb2ludCkpCiAgICAgICAgICAgICAgICAg
ICAgIHBhZ2UuaGFuZGxlV2hlZWxFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoc2Ny
b2xsR2VzdHVyZUNvbnRyb2xsZXIuYXhpc0V2ZW50KCksIHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3Io
KSwgc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIucGhhc2UoKSwgV2ViV2hlZWxFdmVudDo6UGhhc2U6
OlBoYXNlTm9uZSkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBwYWdlLmhhbmRsZVRvdWNoRXZlbnQo
dG91Y2hFdmVudCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405283</attachid>
            <date>2020-07-27 09:18:54 -0700</date>
            <delta_ts>2021-03-30 01:44:26 -0700</delta_ts>
            <desc>Fix touch based gesture handling</desc>
            <filename>0001-WPE-Fix-touch-based-gesture-handling.patch</filename>
            <type>text/plain</type>
            <size>13394</size>
            <attacher name="Marco Felsch">m.felsch</attacher>
            
              <data encoding="base64">RnJvbSA5YWNmOTk3NmE4OGY2Y2EyM2NhNjdjMjliZWY3YzQ5YzViYmU1ZmM1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjbyBGZWxzY2ggPG0uZmVsc2NoQHBlbmd1dHJvbml4LmRl
PgpEYXRlOiBUdWUsIDE0IEp1bCAyMDIwIDEyOjQ4OjEwICswMjAwClN1YmplY3Q6IFtQQVRDSCAx
LzJdIFtXUEVdIEZpeCB0b3VjaCBiYXNlZCBnZXN0dXJlIGhhbmRsaW5nCgpUaGUgY3VycmVudCB0
b3VjaCBpbXBsZW1lbnRhdGlvbiBpcyBicm9rZW4gb24gc2V2ZXJhbCBwbGFjZXM6CiAxKSB0b3Vj
aG1vdmUvdG91Y2h1cCBldmVudHMgYXJlIG5vdCBzZW5kIGFueW1vcmUgaWYgdGhlCiAgICBzY3Jv
bGxHZXN0dXJlQ29udHJvbGxlciBnZXRzIGFjdGl2YXRlZC4gVGhpcyBpcyBicm9rZW4gc2luY2Ug
Y29tbWl0CiAgICAoIltXUEVdIFRvdWNoLWJhc2VkIHNjcm9sbGluZyByb3VuZHRyaXBzIHRocm91
Z2ggdGhlIFdlYlByb2Nlc3MiKQogMikgU2luY2UgdGhlIGluaXRpYWwgY29tbWl0IHRoZSBXUEUg
cG9ydCBzZW5kcyBtb3VzZSBldmVudHMgZHVyaW5nCiAgICB0b3VjaCBoYW5kbGluZy4gVGhpcyBp
c24ndCBhbGxvd2VkIGFjY29yZGluZyBbMV0uIFRoZSBvbmx5IGFsbG93ZWQKICAgIGNhc2UgaXMg
YTogbW91c2Vtb3ZlL21vdXNlZG93bi9tb3VzZXVwL2NsaWNrIHNlcXVlbmNlIGZvcgogICAgY29t
cGFiaWxpdHkgcmVhc29uIHdoaWNoIGNhbiBiZSBjYW5jZWxlZCBvciBwcmV2ZW50ZWQgYnkgdGhl
IHVzZXIuCgpbMV0gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3RvdWNoLWV2ZW50cy8jbW91c2UtZXZl
bnRzCgpNb3ZlIHRoZSB3aGVlbCBoYW5kbGluZyB0byB0aGUgc2Nyb2xsR2VzdHVyZWNvbnRyb2xs
ZXIgdG8gY2xlYW51cCB0aGUKY29kZSBhIGJpdCBiZWNhdXNlIHRoZSBzY3JvbGxHZXN0dXJlY29u
dHJvbGxlciBoYXMgYWxsIG5lY2Vzc2FyeQppbmZvcm1hdGlvbi9zdGF0ZSBuZWVkZWQuIEEgZnVy
dGhlciBjbGVhbnVwIGNvbW1pdCBjYW4gZG8gbW9yZQpnYXJkZW5pbmcuCgpDYWxsIGhhbmRsZUV2
ZW50KCkgb25seSB3aXRoaW4gdGhlIFVJUHJvY2VzcyB0byBrZWVwIHRoZSBzaG9ydC1jdXQKaW50
cm9kdWNlZCBieSBjb21taXQgKCJbV1BFXSBUb3VjaC1iYXNlZCBzY3JvbGxpbmcgcm91bmR0cmlw
cyB0aHJvdWdoCnRoZSBXZWJQcm9jZXNzIikuCgpUaGlzIGNvbW1pdCBhbHNvIGZpeGVzIHRoZSBt
X3N0YXJ0IHBvaW50IHVwZGF0ZSBkdXJpbmcgYSBhICdydW5uaW5nJwp3aGVlbCBldmVudCBoYW5k
bGluZy4gVGhpcyBjYW4gaGFwcGVuIGlmIHdlIHVzZSBhIHNlY29uZCBmaW5nZXIgd2hpbGUgd2UK
YXJlIHByb2Nlc3NpbmcgdGhlIHdoZWVsIGV2ZW50LiBEcm9wIHRoZSBtX3N0YXJ0IHVwZGF0ZSBp
ZiB0aGUgZ2VzdHVyZQpjb250cm9sbGVyIGlzICdydW5uaW5nJyBiZWNhdXNlIG1pY2VzIGhhdmUg
b25seSBvbmUgd2hlZWwgYW5kIG9ubHkKb25lIG1vdXNlIHBlciBkZXZpY2UgaXMgYWNjZXB0ZWQu
CgpUaGUgJ21vdXNlbW92ZS9tb3VzZWRvd24vbW91c2V1cC9jbGljaycgc2VxdWVuY2UgaGFuZGxp
bmcgbXVzdCBiZSBkb25lCndpdGhpbiB0aGUgZG9uZVdpdGhUb3VjaEV2ZW50KCkgY2FsbGJhY2sg
YmVjYXVzZSB0aGUgY29yZSBhbHJlYWR5CmFkZHJlc3NlcyB0aGUgdG91Y2ggY2FuY2VsIG9yIG1v
dXNlLWNsaWNrIHByZXZlbnRpb24uIFBvc3NpYmxlCm1vdXNlLWNsaWNrIGV2ZW50cyBhcmUgZGV0
ZWN0ZWQgYnkgdGhlIHNjcm9sbEdlc3R1cmVjb250cm9sbGVyIGFuZApxdWV1ZWQgdXAgZm9yIGZ1
cnRoZXIgcHJvY2Vzc2luZyB0byByZXBvcnQgdGhlIGNvcnJlY3QgbW91c2UKY29vcmRpbmF0ZXMu
Ci0tLQogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgIHwgNTIg
KysrKysrKysrKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBs
LmNwcCAgICAgIHwgNTEgKysrKysrKy0tLS0tLS0tLS0tCiAuLi4vQVBJL3dwZS9TY3JvbGxHZXN0
dXJlQ29udHJvbGxlci5jcHAgICAgICAgfCAyMyArKysrKysrLQogLi4uL0FQSS93cGUvU2Nyb2xs
R2VzdHVyZUNvbnRyb2xsZXIuaCAgICAgICAgIHwgMjAgKysrKy0tLQogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcCAgIHwgIDkgKy0tLQogNSBmaWxlcyBjaGFuZ2Vk
LCAxMTAgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3MjdhMzFk
MzU0Yy4uZTZmMDcwNjBhZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjAtMDctMjcg
IE1hcmNvIEZlbHNjaCAgPG0uZmVsc2NoQHBlbmd1dHJvbml4LmRlPgorCisgICAgICAgIFtXUEVd
IEZpeCB0b3VjaCBiYXNlZCBnZXN0dXJlIGhhbmRsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQxNDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAg
ICBUaGUgY3VycmVudCB0b3VjaCBpbXBsZW1lbnRhdGlvbiBpcyBicm9rZW4gb24gc2V2ZXJhbCBw
bGFjZXM6CisgICAgICAgICAxKSB0b3VjaG1vdmUvdG91Y2h1cCBldmVudHMgYXJlIG5vdCBzZW5k
IGFueW1vcmUgaWYgdGhlCisgICAgICAgICAgICBzY3JvbGxHZXN0dXJlQ29udHJvbGxlciBnZXRz
IGFjdGl2YXRlZC4gVGhpcyBpcyBicm9rZW4gc2luY2UgY29tbWl0CisgICAgICAgICAgICAoIltX
UEVdIFRvdWNoLWJhc2VkIHNjcm9sbGluZyByb3VuZHRyaXBzIHRocm91Z2ggdGhlIFdlYlByb2Nl
c3MiKS4KKyAgICAgICAgIDIpIFNpbmNlIHRoZSBpbml0aWFsIGNvbW1pdCB0aGUgV1BFIHBvcnQg
c2VuZHMgbW91c2UgZXZlbnRzIGR1cmluZworICAgICAgICAgICAgdG91Y2ggaGFuZGxpbmcuIFRo
aXMgaXNuJ3QgYWxsb3dlZCBhY2NvcmRpbmcgWzFdLiBUaGUgb25seSBhbGxvd2VkCisgICAgICAg
ICAgICBjYXNlIGlzIGE6IG1vdXNlbW92ZS9tb3VzZWRvd24vbW91c2V1cC9jbGljayBzZXF1ZW5j
ZSBmb3IKKyAgICAgICAgICAgIGNvbXBhYmlsaXR5IHJlYXNvbiB3aGljaCBjYW4gYmUgY2FuY2Vs
ZWQgb3IgcHJldmVudGVkIGJ5IHRoZSB1c2VyLgorCisgICAgICAgIFsxXSBodHRwczovL3czYy5n
aXRodWIuaW8vdG91Y2gtZXZlbnRzLyNtb3VzZS1ldmVudHMKKworICAgICAgICBNb3ZlIHRoZSB3
aGVlbCBoYW5kbGluZyB0byB0aGUgc2Nyb2xsR2VzdHVyZWNvbnRyb2xsZXIgdG8gY2xlYW51cCB0
aGUKKyAgICAgICAgY29kZSBhIGJpdCBiZWNhdXNlIHRoZSBzY3JvbGxHZXN0dXJlY29udHJvbGxl
ciBoYXMgYWxsIG5lY2Vzc2FyeQorICAgICAgICBpbmZvcm1hdGlvbi9zdGF0ZSBuZWVkZWQuIEEg
ZnVydGhlciBjbGVhbnVwIGNvbW1pdCBjYW4gZG8gbW9yZQorICAgICAgICBnYXJkZW5pbmcuCisK
KyAgICAgICAgQ2FsbCBoYW5kbGVFdmVudCgpIG9ubHkgd2l0aGluIHRoZSBVSVByb2Nlc3MgdG8g
a2VlcCB0aGUgc2hvcnQtY3V0CisgICAgICAgIGludHJvZHVjZWQgYnkgY29tbWl0ICgiW1dQRV0g
VG91Y2gtYmFzZWQgc2Nyb2xsaW5nIHJvdW5kdHJpcHMgdGhyb3VnaAorICAgICAgICB0aGUgV2Vi
UHJvY2VzcyIpLgorCisgICAgICAgIFRoaXMgY29tbWl0IGFsc28gZml4ZXMgdGhlIG1fc3RhcnQg
cG9pbnQgdXBkYXRlIGR1cmluZyBhIGEgJ3J1bm5pbmcnCisgICAgICAgIHdoZWVsIGV2ZW50IGhh
bmRsaW5nLiBUaGlzIGNhbiBoYXBwZW4gaWYgd2UgdXNlIGEgc2Vjb25kIGZpbmdlciB3aGlsZSB3
ZQorICAgICAgICBhcmUgcHJvY2Vzc2luZyB0aGUgd2hlZWwgZXZlbnQuIERyb3AgdGhlIG1fc3Rh
cnQgdXBkYXRlIGlmIHRoZSBnZXN0dXJlCisgICAgICAgIGNvbnRyb2xsZXIgaXMgJ3J1bm5pbmcn
IGJlY2F1c2UgbWljZXMgaGF2ZSBvbmx5IG9uZSB3aGVlbCBhbmQgb25seQorICAgICAgICBvbmUg
bW91c2UgcGVyIGRldmljZSBpcyBhY2NlcHRlZC4KKworICAgICAgICBUaGUgJ21vdXNlbW92ZS9t
b3VzZWRvd24vbW91c2V1cC9jbGljaycgc2VxdWVuY2UgaGFuZGxpbmcgbXVzdCBiZSBkb25lCisg
ICAgICAgIHdpdGhpbiB0aGUgZG9uZVdpdGhUb3VjaEV2ZW50KCkgY2FsbGJhY2sgYmVjYXVzZSB0
aGUgY29yZSBhbHJlYWR5CisgICAgICAgIGFkZHJlc3NlcyB0aGUgdG91Y2ggY2FuY2VsIG9yIG1v
dXNlLWNsaWNrIHByZXZlbnRpb24uIFBvc3NpYmxlCisgICAgICAgIG1vdXNlLWNsaWNrIGV2ZW50
cyBhcmUgZGV0ZWN0ZWQgYnkgdGhlIHNjcm9sbEdlc3R1cmVjb250cm9sbGVyIGFuZAorICAgICAg
ICBxdWV1ZWQgdXAgZm9yIGZ1cnRoZXIgcHJvY2Vzc2luZyB0byByZXBvcnQgdGhlIGNvcnJlY3Qg
bW91c2UKKyAgICAgICAgY29vcmRpbmF0ZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dw
ZS9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpk
b25lV2l0aFRvdWNoRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdl
c3R1cmVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsR2VzdHVyZUNvbnRy
b2xsZXI6OmdldE1vdXNlQ2xpY2tUb3VjaElkKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsR2Vz
dHVyZUNvbnRyb2xsZXI6OnBlbmRpbmdNb3VzZUNsaWNrcyk6CisgICAgICAgIChXZWJLaXQ6OlNj
cm9sbEdlc3R1cmVDb250cm9sbGVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL3dwZS9XUEVWaWV3LmNwcDoKKyAgICAgICAgKFdLV1BFOjptX2JhY2tlbmQpOgorCiAyMDIw
LTA3LTA5ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIE9wdGlvbnNXUEUuY21ha2UgYW5kIE5FV1MgZm9yIHRo
ZSAyLjI4LjMgcmVsZWFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3Bl
L1BhZ2VDbGllbnRJbXBsLmNwcAppbmRleCBjOGI0MWY0MDc3Ny4uZWUyYjUyNTFjNGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3Bw
CkBAIC0yMDQsNDkgKzIwNCwzOCBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aEtleUV2
ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sKQogI2lmIEVOQUJMRShUT1VD
SF9FVkVOVFMpCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQoY29uc3Qg
TmF0aXZlV2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCwgYm9vbCB3YXNFdmVudEhhbmRsZWQpCiB7
Ci0gICAgaWYgKHdhc0V2ZW50SGFuZGxlZCkKLSAgICAgICAgcmV0dXJuOwotCisgICAgLy8gT25s
eSB1cC1ldmVudHMgYXJlIGZpcmluZyBhIG1vdXNlLWNsaWNrIHNlcXVlbmNlCiAgICAgY29uc3Qg
c3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNoUG9pbnQgPSB0b3VjaEV2ZW50
Lm5hdGl2ZUZhbGxiYWNrVG91Y2hQb2ludCgpOwotICAgIGlmICh0b3VjaFBvaW50LT50eXBlID09
IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGwpCisgICAgaWYgKHRvdWNoUG9pbnQtPnR5
cGUgIT0gd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfdXApCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGF1dG8mIHBhZ2UgPSBtX3ZpZXcucGFnZSgpOwogICAgIGF1dG8mIHNjcm9sbEdlc3R1cmVD
b250cm9sbGVyID0gbV92aWV3LnNjcm9sbEdlc3R1cmVDb250cm9sbGVyKCk7CiAKLSAgICBpZiAo
c2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaGFuZGxlRXZlbnQodG91Y2hQb2ludCkpIHsKLSAgICAg
ICAgc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBheGlzRXZlbnQgPSBzY3JvbGxHZXN0dXJl
Q29udHJvbGxlci5heGlzRXZlbnQoKTsKLSAgICAgICAgaWYgKGF4aXNFdmVudC0+dHlwZSAhPSB3
cGVfaW5wdXRfYXhpc19ldmVudF90eXBlX251bGwpCi0gICAgICAgICAgICBwYWdlLmhhbmRsZVdo
ZWVsRXZlbnQoV2ViS2l0OjpOYXRpdmVXZWJXaGVlbEV2ZW50KGF4aXNFdmVudCwgbV92aWV3LnBh
Z2UoKS5kZXZpY2VTY2FsZUZhY3RvcigpLCBXZWJXaGVlbEV2ZW50OjpQaGFzZTo6UGhhc2VOb25l
LCBXZWJXaGVlbEV2ZW50OjpQaGFzZTo6UGhhc2VOb25lKSk7CisgICAgLy8gQ2hlY2sgaWYgaXQg
d2FzIHJlYWxseSBhIGNsaWNrIGFuZCBkZXF1ZXVlIGl0IGluIGFsbCBjYXNlcyB0byBhdm9pZCBp
bmNyZWFzaW5nIHZlY3RvciBzaXplCisgICAgaWYgKCFzY3JvbGxHZXN0dXJlQ29udHJvbGxlci5w
ZW5kaW5nTW91c2VDbGlja3MoKSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KIAorICAgIGF1dG8g
bW91c2VDbGlja1RvdWNoUG9pbnQgPSBzY3JvbGxHZXN0dXJlQ29udHJvbGxlci5nZXRNb3VzZUNs
aWNrVG91Y2hJZCgpOworCisgICAgLy8gTGFzdGx5IGNoZWNrIGlmIHRoZSB3ZWIgcGFnZSBkaXNh
YmxlZCB0aGUgbW91c2UtY2xpY2sgZXZlbnQuCisgICAgaWYgKHdhc0V2ZW50SGFuZGxlZCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgYXV0byYgcGFnZSA9IG1fdmlldy5wYWdlKCk7CiAgICAgc3Ry
dWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50IHBvaW50ZXJFdmVudCB7Ci0gICAgICAgIHdwZV9p
bnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbnVsbCwgdG91Y2hQb2ludC0+dGltZSwKLSAgICAgICAg
dG91Y2hQb2ludC0+eCwgdG91Y2hQb2ludC0+eSwKKyAgICAgICAgd3BlX2lucHV0X3BvaW50ZXJf
ZXZlbnRfdHlwZV9udWxsLAorICAgICAgICBtb3VzZUNsaWNrVG91Y2hQb2ludC50aW1lLCBtb3Vz
ZUNsaWNrVG91Y2hQb2ludC54LCBtb3VzZUNsaWNrVG91Y2hQb2ludC55LAogICAgICAgICAxLCAw
LCAwCiAgICAgfTsKIAotICAgIHN3aXRjaCAodG91Y2hQb2ludC0+dHlwZSkgewotICAgIGNhc2Ug
d3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93bjoKLSAgICAgICAgcG9pbnRlckV2ZW50LnR5
cGUgPSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjsKLSAgICAgICAgcG9pbnRl
ckV2ZW50LnN0YXRlID0gMTsKLSAgICAgICAgcG9pbnRlckV2ZW50Lm1vZGlmaWVycyB8PSB3cGVf
aW5wdXRfcG9pbnRlcl9tb2RpZmllcl9idXR0b24xOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoKLSAgICAgICAgcG9pbnRlckV2ZW50
LnR5cGUgPSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX21vdGlvbjsKLSAgICAgICAgcG9p
bnRlckV2ZW50LnN0YXRlID0gMTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSB3cGVfaW5wdXRf
dG91Y2hfZXZlbnRfdHlwZV91cDoKLSAgICAgICAgcG9pbnRlckV2ZW50LnR5cGUgPSB3cGVfaW5w
dXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjsKLSAgICAgICAgcG9pbnRlckV2ZW50LnN0YXRl
ID0gMDsKLSAgICAgICAgcG9pbnRlckV2ZW50Lm1vZGlmaWVycyAmPSB+d3BlX2lucHV0X3BvaW50
ZXJfbW9kaWZpZXJfYnV0dG9uMTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSB3cGVfaW5wdXRf
cG9pbnRlcl9ldmVudF90eXBlX251bGw6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIHBvaW50ZXJFdmVudC50eXBlID0gd3BlX2lucHV0
X3BvaW50ZXJfZXZlbnRfdHlwZV9idXR0b247CisgICAgcG9pbnRlckV2ZW50LnN0YXRlID0gMTsK
KyAgICBwb2ludGVyRXZlbnQubW9kaWZpZXJzID0gd3BlX2lucHV0X3BvaW50ZXJfbW9kaWZpZXJf
YnV0dG9uMTsKKyAgICBwYWdlLmhhbmRsZU1vdXNlRXZlbnQoTmF0aXZlV2ViTW91c2VFdmVudCgm
cG9pbnRlckV2ZW50LCBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCkpKTsKIAorICAgIHBvaW50ZXJF
dmVudC50eXBlID0gd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9idXR0b247CisgICAgcG9p
bnRlckV2ZW50LnN0YXRlID0gMDsKKyAgICBwb2ludGVyRXZlbnQubW9kaWZpZXJzID0gMDsKICAg
ICBwYWdlLmhhbmRsZU1vdXNlRXZlbnQoTmF0aXZlV2ViTW91c2VFdmVudCgmcG9pbnRlckV2ZW50
LCBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCkpKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVy
LmNwcAppbmRleCA4NzI5MGUzMmNlYi4uNTFlZmYzOTU5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIu
Y3BwCkBAIC0yNiwxNCArMjYsMjggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJT
Y3JvbGxHZXN0dXJlQ29udHJvbGxlci5oIgogCisjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVu
dC5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xs
YmFyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1ib29sIFNjcm9sbEdlc3R1cmVDb250cm9s
bGVyOjpoYW5kbGVFdmVudChjb25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3Jhdyog
dG91Y2hQb2ludCkKK1dlYktpdDo6U2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXI6OlRvdWNoUG9pbnQg
U2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXI6OmdldE1vdXNlQ2xpY2tUb3VjaElkKCkKK3sKKyAgICBy
ZXR1cm4gbV9tb3VzZUNsaWNrcy50YWtlTGFzdCgpOworfQorCitib29sIFNjcm9sbEdlc3R1cmVD
b250cm9sbGVyOjpwZW5kaW5nTW91c2VDbGlja3MoKQoreworICAgIHJldHVybiAhbV9tb3VzZUNs
aWNrcy5pc0VtcHR5KCk7Cit9CisKK2Jvb2wgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRs
ZUV2ZW50KGNvbnN0IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3KiB0b3VjaFBvaW50
LCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSkKIHsKICAgICBzd2l0Y2ggKHRvdWNoUG9pbnQt
PnR5cGUpIHsKICAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX2Rvd246CisgICAg
ICAgIGlmIChtX2hhbmRsaW5nKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIG1f
c3RhcnQudGltZSA9IHRvdWNoUG9pbnQtPnRpbWU7CiAgICAgICAgIG1fc3RhcnQueCA9IHRvdWNo
UG9pbnQtPng7CiAgICAgICAgIG1fc3RhcnQueSA9IHRvdWNoUG9pbnQtPnk7CkBAIC03MCw2ICs4
NCw3IEBAIGJvb2wgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRsZUV2ZW50KGNvbnN0IHN0
cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3CiAgICAgICAgICAgICBtX29mZnNldC54ID0g
dG91Y2hQb2ludC0+eDsKICAgICAgICAgICAgIG1fb2Zmc2V0LnkgPSB0b3VjaFBvaW50LT55Owog
ICAgICAgICAgICAgbV9waGFzZSA9IFdlYldoZWVsRXZlbnQ6OlBoYXNlOjpQaGFzZUNoYW5nZWQ7
CisgICAgICAgICAgICBwYWdlLmhhbmRsZVdoZWVsRXZlbnQoV2ViS2l0OjpOYXRpdmVXZWJXaGVl
bEV2ZW50KGF4aXNFdmVudCgpLCBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCksIHBoYXNlKCksIFdl
YldoZWVsRXZlbnQ6OlBoYXNlOjpQaGFzZU5vbmUpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTkyLDcgKzEwNywxMyBAQCBi
b29sIFNjcm9sbEdlc3R1cmVDb250cm9sbGVyOjpoYW5kbGVFdmVudChjb25zdCBzdHJ1Y3Qgd3Bl
X2lucHV0X3RvdWNoX2V2ZW50X3JhdwogI2VuZGlmCiAgICAgICAgICAgICBtX29mZnNldC54ID0g
bV9vZmZzZXQueSA9IDA7CiAgICAgICAgICAgICBtX3BoYXNlID0gV2ViV2hlZWxFdmVudDo6UGhh
c2U6OlBoYXNlRW5kZWQ7CisgICAgICAgICAgICBwYWdlLmhhbmRsZVdoZWVsRXZlbnQoV2ViS2l0
OjpOYXRpdmVXZWJXaGVlbEV2ZW50KGF4aXNFdmVudCgpLCBwYWdlLmRldmljZVNjYWxlRmFjdG9y
KCksIHBoYXNlKCksIFdlYldoZWVsRXZlbnQ6OlBoYXNlOjpQaGFzZU5vbmUpKTsKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKCFtX21v
dXNlQ2xpY2tzLnRyeUFwcGVuZCgmbV9zdGFydCwgMSkpIHsKKyAgICAgICAgICAgICAgICBtX21v
dXNlQ2xpY2tzLnJlbW92ZSgwKTsKKyAgICAgICAgICAgICAgICBtX21vdXNlQ2xpY2tzLmFwcGVu
ZCgmbV9zdGFydCwgMSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmgKaW5kZXggMmQ4N2Y5NWMyNGUu
LjkxZWQ5YWQ5NTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3Bl
L1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oCkBAIC0yNyw5ICsyNywxMiBAQAogCiAj
aW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlIDx3cGUvd3BlLmg+CisjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViUGFnZVByb3h5Owor
CiBjbGFzcyBTY3JvbGxHZXN0dXJlQ29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CkBAIC00NCwxNyArNDcsMjEgQEAgcHVibGljOgogI2VuZGlmCiAgICAg
fQogCisgICAgc3RydWN0IFRvdWNoUG9pbnQgeworICAgICAgICB1aW50MzJfdCB0aW1lIHsgMCB9
OworICAgICAgICBpbnQzMl90IHggeyAwIH07CisgICAgICAgIGludDMyX3QgeSB7IDAgfTsKKyAg
ICB9OworCiAgICAgV2ViV2hlZWxFdmVudDo6UGhhc2UgcGhhc2UoKSB7IHJldHVybiBtX3BoYXNl
OyB9CiAKICAgICBib29sIGlzSGFuZGxpbmcoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsaW5nOyB9
Ci0gICAgYm9vbCBoYW5kbGVFdmVudChjb25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50
X3JhdyopOworICAgIGJvb2wgaGFuZGxlRXZlbnQoY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3Vj
aF9ldmVudF9yYXcqLCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYpOworICAgIGJvb2wgcGVuZGluZ01v
dXNlQ2xpY2tzKCk7CisgICAgc3RydWN0IFRvdWNoUG9pbnQgZ2V0TW91c2VDbGlja1RvdWNoSWQo
KTsKIAogcHJpdmF0ZToKLSAgICBzdHJ1Y3QgewotICAgICAgICB1aW50MzJfdCB0aW1lIHsgMCB9
OwotICAgICAgICBpbnQzMl90IHggeyAwIH07Ci0gICAgICAgIGludDMyX3QgeSB7IDAgfTsKLSAg
ICB9IG1fc3RhcnQ7CisgICAgc3RydWN0IFRvdWNoUG9pbnQgbV9zdGFydDsKIAogICAgIHN0cnVj
dCB7CiAgICAgICAgIGludDMyX3QgeCB7IDAgfTsKQEAgLTY4LDYgKzc1LDcgQEAgcHJpdmF0ZToK
ICAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQgbV9heGlzRXZlbnQ7CiAjZW5kaWYKICAg
ICBXZWJXaGVlbEV2ZW50OjpQaGFzZSBtX3BoYXNlIHsgV2ViV2hlZWxFdmVudDo6UGhhc2U6OlBo
YXNlTm9uZSB9OworICAgIFZlY3RvcjxzdHJ1Y3QgVG91Y2hQb2ludCwgMTA+IG1fbW91c2VDbGlj
a3M7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1dQRVZpZXcuY3BwCmluZGV4IGNjODFlZWM2YmY3Li40Y2VlZmE1YTAxNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwCkBAIC0xNzIsMTQg
KzE3Miw5IEBAIFZpZXc6OlZpZXcoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQsIGNv
bnN0IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGJhc2VDCiAgICAgICAgICAgICBXZWJLaXQ6Ok5h
dGl2ZVdlYlRvdWNoRXZlbnQgdG91Y2hFdmVudChldmVudCwgcGFnZS5kZXZpY2VTY2FsZUZhY3Rv
cigpKTsKIAogICAgICAgICAgICAgYXV0byYgc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIgPSAqdmll
dy5tX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyOwotICAgICAgICAgICAgaWYgKHNjcm9sbEdlc3R1
cmVDb250cm9sbGVyLmlzSGFuZGxpbmcoKSkgewotICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVj
dCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3KiB0b3VjaFBvaW50ID0gdG91Y2hFdmVudC5uYXRp
dmVGYWxsYmFja1RvdWNoUG9pbnQoKTsKLSAgICAgICAgICAgICAgICBpZiAodG91Y2hQb2ludC0+
dHlwZSAhPSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsICYmIHNjcm9sbEdlc3R1cmVD
b250cm9sbGVyLmhhbmRsZUV2ZW50KHRvdWNoUG9pbnQpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHBhZ2UuaGFuZGxlV2hlZWxFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoc2Nyb2xs
R2VzdHVyZUNvbnRyb2xsZXIuYXhpc0V2ZW50KCksIHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSwg
c2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIucGhhc2UoKSwgV2ViV2hlZWxFdmVudDo6UGhhc2U6OlBo
YXNlTm9uZSkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgfQorICAgICAgICAgICAgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3Vj
aF9ldmVudF9yYXcqIHRvdWNoUG9pbnQgPSB0b3VjaEV2ZW50Lm5hdGl2ZUZhbGxiYWNrVG91Y2hQ
b2ludCgpOwogCisgICAgICAgICAgICBzY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oYW5kbGVFdmVu
dCh0b3VjaFBvaW50LCBwYWdlKTsKICAgICAgICAgICAgIHBhZ2UuaGFuZGxlVG91Y2hFdmVudCh0
b3VjaEV2ZW50KTsKICAgICAgICAgfSwKICAgICAgICAgLy8gcGFkZGluZwotLSAKMi4yMC4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424624</attachid>
            <date>2021-03-30 01:44:26 -0700</date>
            <delta_ts>2022-02-28 03:47:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-WPE-Fix-touch-based-gesture-handling.patch</filename>
            <type>text/plain</type>
            <size>15497</size>
            <attacher name="Marco Felsch">m.felsch</attacher>
            
              <data encoding="base64">RnJvbSAxOGE2ODRlN2I2YjgzNDkwNDVlYjRmNTk3ZmRhZjI1NTZmYjVmMThjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjbyBGZWxzY2ggPG0uZmVsc2NoQHBlbmd1dHJvbml4LmRl
PgpEYXRlOiBUdWUsIDE0IEp1bCAyMDIwIDEyOjQ4OjEwICswMjAwClN1YmplY3Q6IFtQQVRDSCAx
LzRdIFtXUEVdIEZpeCB0b3VjaCBiYXNlZCBnZXN0dXJlIGhhbmRsaW5nCgpUaGUgY3VycmVudCB0
b3VjaCBpbXBsZW1lbnRhdGlvbiBpcyBicm9rZW4gb24gc2V2ZXJhbCBwbGFjZXM6CiAxKSB0b3Vj
aG1vdmUvdG91Y2h1cCBldmVudHMgYXJlIG5vdCBzZW5kIGFueW1vcmUgaWYgdGhlCiAgICBzY3Jv
bGxHZXN0dXJlQ29udHJvbGxlciBnZXRzIGFjdGl2YXRlZC4gVGhpcyBpcyBicm9rZW4gc2luY2Ug
Y29tbWl0CiAgICAoIltXUEVdIFRvdWNoLWJhc2VkIHNjcm9sbGluZyByb3VuZHRyaXBzIHRocm91
Z2ggdGhlIFdlYlByb2Nlc3MiKQogMikgU2luY2UgdGhlIGluaXRpYWwgY29tbWl0IHRoZSBXUEUg
cG9ydCBzZW5kcyBtb3VzZSBldmVudHMgZHVyaW5nCiAgICB0b3VjaCBoYW5kbGluZy4gVGhpcyBp
c24ndCBhbGxvd2VkIGFjY29yZGluZyBbMV0uIFRoZSBvbmx5IGFsbG93ZWQKICAgIGNhc2UgaXMg
YTogbW91c2Vtb3ZlL21vdXNlZG93bi9tb3VzZXVwL2NsaWNrIHNlcXVlbmNlIGZvcgogICAgY29t
cGFiaWxpdHkgcmVhc29uIHdoaWNoIGNhbiBiZSBjYW5jZWxlZCBvciBwcmV2ZW50ZWQgYnkgdGhl
IHVzZXIuCgpNb3ZlIHRoZSB3aGVlbCBoYW5kbGluZyB0byB0aGUgc2Nyb2xsR2VzdHVyZWNvbnRy
b2xsZXIgdG8gY2xlYW51cCB0aGUKY29kZSBhIGJpdCBiZWNhdXNlIHRoZSBzY3JvbGxHZXN0dXJl
Y29udHJvbGxlciBoYXMgYWxsIG5lY2Vzc2FyeQppbmZvcm1hdGlvbi9zdGF0ZSBuZWVkZWQuCgpD
YWxsIGhhbmRsZUV2ZW50KCkgb25seSB3aXRoaW4gdGhlIFVJUHJvY2VzcyB0byBrZWVwIHRoZSBz
aG9ydC1jdXQKaW50cm9kdWNlZCBieSBjb21taXQgKCJbV1BFXSBUb3VjaC1iYXNlZCBzY3JvbGxp
bmcgcm91bmR0cmlwcyB0aHJvdWdoCnRoZSBXZWJQcm9jZXNzIikuCgpUaGlzIGNvbW1pdCBhbHNv
IGZpeGVzIHRoZSBtX3N0YXJ0IHBvaW50IHVwZGF0ZSBkdXJpbmcgYSBhICdydW5uaW5nJwp3aGVl
bCBldmVudCBoYW5kbGluZy4gVGhpcyBjYW4gaGFwcGVuIGlmIHdlIHVzZSBhIHNlY29uZCBmaW5n
ZXIgd2hpbGUgd2UKYXJlIHByb2Nlc3NpbmcgdGhlIHdoZWVsIGV2ZW50LiBEcm9wIHRoZSBtX3N0
YXJ0IHVwZGF0ZSBpZiB0aGUgZ2VzdHVyZQpjb250cm9sbGVyIGlzICdydW5uaW5nJyBiZWNhdXNl
IG1pY2VzIGhhdmUgb25seSBvbmUgd2hlZWwgYW5kIG9ubHkKb25lIG1vdXNlIHBlciBkZXZpY2Ug
aXMgYWNjZXB0ZWQuCgpUaGUgJ21vdXNlbW92ZS9tb3VzZWRvd24vbW91c2V1cC9jbGljaycgc2Vx
dWVuY2UgaGFuZGxpbmcgbXVzdCBiZSBkb25lCndpdGhpbiB0aGUgZG9uZVdpdGhUb3VjaEV2ZW50
KCkgY2FsbGJhY2sgYmVjYXVzZSB0aGUgY29yZSBhbHJlYWR5CmFkZHJlc3NlcyB0aGUgdG91Y2gg
Y2FuY2VsIG9yIG1vdXNlLWNsaWNrIHByZXZlbnRpb24uIFBvc3NpYmxlCm1vdXNlLWNsaWNrIGV2
ZW50cyBhcmUgZGV0ZWN0ZWQgYnkgdGhlIHNjcm9sbEdlc3R1cmVjb250cm9sbGVyIGFuZApxdWV1
ZWQgdXAgZm9yIGZ1cnRoZXIgcHJvY2Vzc2luZyB0byByZXBvcnQgdGhlIGNvcnJlY3QgbW91c2UK
Y29vcmRpbmF0ZXMuCgpMYXN0IHRoaXMgY29tbWl0IHVuaWZpZXMgdGhlIGRlbHRhVGltZSBsaW1p
dCB3aGljaCB1c2VkIHRvIGRldGVybWluZSB0aGUKZ2VuZXJhdGlvbiBvZiBhbiBjbGljayBldmVu
dCBhbmQgdG8gZGV0ZXJtaW5jZSBpZiB0aGUKU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIgaXMgYWN0
aXZlIG9yIG5vdC4gU2luY2Ugd2UgaGF2ZSBubyBjb21tb24gZGVmaW5lCkkgdXNlZCB0aGUgZGVm
YXVsdCB2YWx1ZSBvZiB0aGUgJ2d0ay1sb25nLXByZXNzJyB3aWRnZXQgcHJvcGVydHkgZnJvbQp0
aGUgR1RLIHBvcnQuCgpbMV0gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3RvdWNoLWV2ZW50cy8jbW91
c2UtZXZlbnRzCi0tLQogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgIHwgNTkgKysrKysrKysrKysrKysrKysrKwogLi4uL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VD
bGllbnRJbXBsLmNwcCAgICAgIHwgNTEgKysrKysrKy0tLS0tLS0tLQogLi4uL0FQSS93cGUvU2Ny
b2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwICAgICAgIHwgNDggKysrKysrKysrKystLS0tCiAuLi4v
QVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oICAgICAgICAgfCAyMiArKysrLS0tCiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwICAgfCAgOSArLS0KIDUg
ZmlsZXMgY2hhbmdlZCwgMTMzIGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggMjZiZmNlN2ExMzRjLi43NGMzODFmOTNiOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjIg
QEAKKzIwMjEtMDMtMzAgIE1hcmNvIEZlbHNjaCAgPG0uZmVsc2NoQHBlbmd1dHJvbml4LmRlPgor
CisgICAgICAgIFtXUEVdIGxvc3QgdG91Y2ggZXZlbnRzLCB3cm9uZyBtb3VzZWRvd24gZXZlbnRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQxNDEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbV1BFXSBG
aXggdG91Y2ggYmFzZWQgZ2VzdHVyZSBoYW5kbGluZworCisgICAgICAgIFRoZSBjdXJyZW50IHRv
dWNoIGltcGxlbWVudGF0aW9uIGlzIGJyb2tlbiBvbiBzZXZlcmFsIHBsYWNlczoKKyAgICAgICAg
IDEpIHRvdWNobW92ZS90b3VjaHVwIGV2ZW50cyBhcmUgbm90IHNlbmQgYW55bW9yZSBpZiB0aGUK
KyAgICAgICAgICAgIHNjcm9sbEdlc3R1cmVDb250cm9sbGVyIGdldHMgYWN0aXZhdGVkLiBUaGlz
IGlzIGJyb2tlbiBzaW5jZSBjb21taXQKKyAgICAgICAgICAgICgiW1dQRV0gVG91Y2gtYmFzZWQg
c2Nyb2xsaW5nIHJvdW5kdHJpcHMgdGhyb3VnaCB0aGUgV2ViUHJvY2VzcyIpCisgICAgICAgICAy
KSBTaW5jZSB0aGUgaW5pdGlhbCBjb21taXQgdGhlIFdQRSBwb3J0IHNlbmRzIG1vdXNlIGV2ZW50
cyBkdXJpbmcKKyAgICAgICAgICAgIHRvdWNoIGhhbmRsaW5nLiBUaGlzIGlzbid0IGFsbG93ZWQg
YWNjb3JkaW5nIFsxXS4gVGhlIG9ubHkgYWxsb3dlZAorICAgICAgICAgICAgY2FzZSBpcyBhOiBt
b3VzZW1vdmUvbW91c2Vkb3duL21vdXNldXAvY2xpY2sgc2VxdWVuY2UgZm9yCisgICAgICAgICAg
ICBjb21wYWJpbGl0eSByZWFzb24gd2hpY2ggY2FuIGJlIGNhbmNlbGVkIG9yIHByZXZlbnRlZCBi
eSB0aGUgdXNlci4KKworICAgICAgICBNb3ZlIHRoZSB3aGVlbCBoYW5kbGluZyB0byB0aGUgc2Ny
b2xsR2VzdHVyZWNvbnRyb2xsZXIgdG8gY2xlYW51cCB0aGUKKyAgICAgICAgY29kZSBhIGJpdCBi
ZWNhdXNlIHRoZSBzY3JvbGxHZXN0dXJlY29udHJvbGxlciBoYXMgYWxsIG5lY2Vzc2FyeQorICAg
ICAgICBpbmZvcm1hdGlvbi9zdGF0ZSBuZWVkZWQuCisKKyAgICAgICAgQ2FsbCBoYW5kbGVFdmVu
dCgpIG9ubHkgd2l0aGluIHRoZSBVSVByb2Nlc3MgdG8ga2VlcCB0aGUgc2hvcnQtY3V0CisgICAg
ICAgIGludHJvZHVjZWQgYnkgY29tbWl0ICgiW1dQRV0gVG91Y2gtYmFzZWQgc2Nyb2xsaW5nIHJv
dW5kdHJpcHMgdGhyb3VnaAorICAgICAgICB0aGUgV2ViUHJvY2VzcyIpLgorCisgICAgICAgIFRo
aXMgY29tbWl0IGFsc28gZml4ZXMgdGhlIG1fc3RhcnQgcG9pbnQgdXBkYXRlIGR1cmluZyBhIGEg
J3J1bm5pbmcnCisgICAgICAgIHdoZWVsIGV2ZW50IGhhbmRsaW5nLiBUaGlzIGNhbiBoYXBwZW4g
aWYgd2UgdXNlIGEgc2Vjb25kIGZpbmdlciB3aGlsZSB3ZQorICAgICAgICBhcmUgcHJvY2Vzc2lu
ZyB0aGUgd2hlZWwgZXZlbnQuIERyb3AgdGhlIG1fc3RhcnQgdXBkYXRlIGlmIHRoZSBnZXN0dXJl
CisgICAgICAgIGNvbnRyb2xsZXIgaXMgJ3J1bm5pbmcnIGJlY2F1c2UgbWljZXMgaGF2ZSBvbmx5
IG9uZSB3aGVlbCBhbmQgb25seQorICAgICAgICBvbmUgbW91c2UgcGVyIGRldmljZSBpcyBhY2Nl
cHRlZC4KKworICAgICAgICBUaGUgJ21vdXNlbW92ZS9tb3VzZWRvd24vbW91c2V1cC9jbGljaycg
c2VxdWVuY2UgaGFuZGxpbmcgbXVzdCBiZSBkb25lCisgICAgICAgIHdpdGhpbiB0aGUgZG9uZVdp
dGhUb3VjaEV2ZW50KCkgY2FsbGJhY2sgYmVjYXVzZSB0aGUgY29yZSBhbHJlYWR5CisgICAgICAg
IGFkZHJlc3NlcyB0aGUgdG91Y2ggY2FuY2VsIG9yIG1vdXNlLWNsaWNrIHByZXZlbnRpb24uIFBv
c3NpYmxlCisgICAgICAgIG1vdXNlLWNsaWNrIGV2ZW50cyBhcmUgZGV0ZWN0ZWQgYnkgdGhlIHNj
cm9sbEdlc3R1cmVjb250cm9sbGVyIGFuZAorICAgICAgICBxdWV1ZWQgdXAgZm9yIGZ1cnRoZXIg
cHJvY2Vzc2luZyB0byByZXBvcnQgdGhlIGNvcnJlY3QgbW91c2UKKyAgICAgICAgY29vcmRpbmF0
ZXMuCisKKyAgICAgICAgTGFzdCB0aGlzIGNvbW1pdCB1bmlmaWVzIHRoZSBkZWx0YVRpbWUgbGlt
aXQgd2hpY2ggdXNlZCB0byBkZXRlcm1pbmUgdGhlCisgICAgICAgIGdlbmVyYXRpb24gb2YgYW4g
Y2xpY2sgZXZlbnQgYW5kIHRvIGRldGVybWluY2UgaWYgdGhlCisgICAgICAgIFNjcm9sbEdlc3R1
cmVDb250cm9sbGVyIGlzIGFjdGl2ZSBvciBub3QuIFNpbmNlIHdlIGhhdmUgbm8gY29tbW9uIGRl
ZmluZQorICAgICAgICBJIHVzZWQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlICdndGstbG9uZy1w
cmVzcycgd2lkZ2V0IHByb3BlcnR5IGZyb20KKyAgICAgICAgdGhlIEdUSyBwb3J0LgorCisgICAg
ICAgIFsxXSBodHRwczovL3czYy5naXRodWIuaW8vdG91Y2gtZXZlbnRzLyNtb3VzZS1ldmVudHMK
KworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudElt
cGw6OmRvbmVXaXRoVG91Y2hFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvU2Ny
b2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxHZXN0dXJl
Q29udHJvbGxlcjo6bGFzdE1vdXNlVG91Y2hQb2ludCk6CisgICAgICAgIChXZWJLaXQ6OlNjcm9s
bEdlc3R1cmVDb250cm9sbGVyOjpoYXNQZW5kaW5nTW91c2VDbGlja3MpOgorICAgICAgICAoV2Vi
S2l0OjpTY3JvbGxHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHA6CisgICAgICAgIChXS1dQRTo6bV9iYWNrZW5kKToK
KwogMjAyMS0wMy0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBPcHRpb25zV1BFLmNtYWtlIGFuZCBORVdT
IGZvciB0aGUgMi4zMC42IHJlbGVhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggOGEyMGNlY2MxNTM0Li45NTBjNDFmNjAx
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVu
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVu
dEltcGwuY3BwCkBAIC0yMDQsNDkgKzIwNCwzOCBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25l
V2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sKQogI2lmIEVO
QUJMRShUT1VDSF9FVkVOVFMpCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZl
bnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCwgYm9vbCB3YXNFdmVudEhh
bmRsZWQpCiB7Ci0gICAgaWYgKHdhc0V2ZW50SGFuZGxlZCkKLSAgICAgICAgcmV0dXJuOwotCisg
ICAgLy8gT25seSB1cC1ldmVudHMgYXJlIGZpcmluZyBhIG1vdXNlLWNsaWNrIHNlcXVlbmNlCiAg
ICAgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNoUG9pbnQgPSB0
b3VjaEV2ZW50Lm5hdGl2ZUZhbGxiYWNrVG91Y2hQb2ludCgpOwotICAgIGlmICh0b3VjaFBvaW50
LT50eXBlID09IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGwpCisgICAgaWYgKHRvdWNo
UG9pbnQtPnR5cGUgIT0gd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfdXApCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGF1dG8mIHBhZ2UgPSBtX3ZpZXcucGFnZSgpOwogICAgIGF1dG8mIHNjcm9s
bEdlc3R1cmVDb250cm9sbGVyID0gbV92aWV3LnNjcm9sbEdlc3R1cmVDb250cm9sbGVyKCk7CiAK
LSAgICBpZiAoc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaGFuZGxlRXZlbnQodG91Y2hQb2ludCkp
IHsKLSAgICAgICAgc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBheGlzRXZlbnQgPSBzY3Jv
bGxHZXN0dXJlQ29udHJvbGxlci5heGlzRXZlbnQoKTsKLSAgICAgICAgaWYgKGF4aXNFdmVudC0+
dHlwZSAhPSB3cGVfaW5wdXRfYXhpc19ldmVudF90eXBlX251bGwpCi0gICAgICAgICAgICBwYWdl
LmhhbmRsZVdoZWVsRXZlbnQoV2ViS2l0OjpOYXRpdmVXZWJXaGVlbEV2ZW50KGF4aXNFdmVudCwg
bV92aWV3LnBhZ2UoKS5kZXZpY2VTY2FsZUZhY3RvcigpLCBXZWJXaGVlbEV2ZW50OjpQaGFzZTo6
UGhhc2VOb25lLCBXZWJXaGVlbEV2ZW50OjpQaGFzZTo6UGhhc2VOb25lKSk7CisgICAgLy8gQ2hl
Y2sgaWYgaXQgd2FzIHJlYWxseSBhIGNsaWNrIGFuZCBkZXF1ZXVlIGl0IGluIGFsbCBjYXNlcyB0
byBhdm9pZCBpbmNyZWFzaW5nIHZlY3RvciBzaXplCisgICAgaWYgKCFzY3JvbGxHZXN0dXJlQ29u
dHJvbGxlci5oYXNQZW5kaW5nTW91c2VDbGlja3MoKSkKICAgICAgICAgcmV0dXJuOwotICAgIH0K
IAorICAgIGF1dG8gbW91c2VDbGlja1RvdWNoUG9pbnQgPSBzY3JvbGxHZXN0dXJlQ29udHJvbGxl
ci5sYXN0TW91c2VUb3VjaFBvaW50KCk7CisKKyAgICAvLyBMYXN0bHkgY2hlY2sgaWYgdGhlIHdl
YiBwYWdlIGRpc2FibGVkIHRoZSBtb3VzZS1jbGljayBldmVudC4KKyAgICBpZiAod2FzRXZlbnRI
YW5kbGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBwYWdlID0gbV92aWV3LnBhZ2Uo
KTsKICAgICBzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQgcG9pbnRlckV2ZW50IHsKLSAg
ICAgICAgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9udWxsLCB0b3VjaFBvaW50LT50aW1l
LAotICAgICAgICB0b3VjaFBvaW50LT54LCB0b3VjaFBvaW50LT55LAorICAgICAgICB3cGVfaW5w
dXRfcG9pbnRlcl9ldmVudF90eXBlX251bGwsCisgICAgICAgIG1vdXNlQ2xpY2tUb3VjaFBvaW50
LnRpbWUsIG1vdXNlQ2xpY2tUb3VjaFBvaW50LngsIG1vdXNlQ2xpY2tUb3VjaFBvaW50LnksCiAg
ICAgICAgIDEsIDAsIDAKICAgICB9OwogCi0gICAgc3dpdGNoICh0b3VjaFBvaW50LT50eXBlKSB7
Ci0gICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9kb3duOgotICAgICAgICBwb2lu
dGVyRXZlbnQudHlwZSA9IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfYnV0dG9uOwotICAg
ICAgICBwb2ludGVyRXZlbnQuc3RhdGUgPSAxOwotICAgICAgICBwb2ludGVyRXZlbnQubW9kaWZp
ZXJzIHw9IHdwZV9pbnB1dF9wb2ludGVyX21vZGlmaWVyX2J1dHRvbjE7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbW90aW9uOgotICAgICAgICBw
b2ludGVyRXZlbnQudHlwZSA9IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbW90aW9uOwot
ICAgICAgICBwb2ludGVyRXZlbnQuc3RhdGUgPSAxOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgotICAgICAgICBwb2ludGVyRXZlbnQudHlw
ZSA9IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfYnV0dG9uOwotICAgICAgICBwb2ludGVy
RXZlbnQuc3RhdGUgPSAwOwotICAgICAgICBwb2ludGVyRXZlbnQubW9kaWZpZXJzICY9IH53cGVf
aW5wdXRfcG9pbnRlcl9tb2RpZmllcl9idXR0b24xOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbnVsbDoKLSAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgcG9pbnRlckV2ZW50LnR5cGUg
PSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjsKKyAgICBwb2ludGVyRXZlbnQu
c3RhdGUgPSAxOworICAgIHBvaW50ZXJFdmVudC5tb2RpZmllcnMgPSB3cGVfaW5wdXRfcG9pbnRl
cl9tb2RpZmllcl9idXR0b24xOworICAgIHBhZ2UuaGFuZGxlTW91c2VFdmVudChOYXRpdmVXZWJN
b3VzZUV2ZW50KCZwb2ludGVyRXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOwogCisg
ICAgcG9pbnRlckV2ZW50LnR5cGUgPSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRv
bjsKKyAgICBwb2ludGVyRXZlbnQuc3RhdGUgPSAwOworICAgIHBvaW50ZXJFdmVudC5tb2RpZmll
cnMgPSAwOwogICAgIHBhZ2UuaGFuZGxlTW91c2VFdmVudChOYXRpdmVXZWJNb3VzZUV2ZW50KCZw
b2ludGVyRXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOwogfQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVy
ZUNvbnRyb2xsZXIuY3BwCmluZGV4IDg3MjkwZTMyY2ViNS4uMTkyZTdlNjY3N2IzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1
cmVDb250cm9sbGVyLmNwcApAQCAtMjYsMjAgKzI2LDM0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaCIKIAorI2luY2x1ZGUgIk5hdGl2
ZVdlYldoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL1Njcm9sbGJhci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotYm9vbCBTY3JvbGxH
ZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlRXZlbnQoY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3Vj
aF9ldmVudF9yYXcqIHRvdWNoUG9pbnQpCitXZWJLaXQ6OlNjcm9sbEdlc3R1cmVDb250cm9sbGVy
OjpUb3VjaFBvaW50IFNjcm9sbEdlc3R1cmVDb250cm9sbGVyOjpsYXN0TW91c2VUb3VjaFBvaW50
KCkKK3sKKyAgICByZXR1cm4gbV9tb3VzZUNsaWNrcy50YWtlTGFzdCgpOworfQorCitib29sIFNj
cm9sbEdlc3R1cmVDb250cm9sbGVyOjpoYXNQZW5kaW5nTW91c2VDbGlja3MoKQoreworICAgIHJl
dHVybiAhbV9tb3VzZUNsaWNrcy5pc0VtcHR5KCk7Cit9CisKK3ZvaWQgU2Nyb2xsR2VzdHVyZUNv
bnRyb2xsZXI6OmhhbmRsZUV2ZW50KGNvbnN0IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRf
cmF3KiB0b3VjaFBvaW50LCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSkKIHsKICAgICBzd2l0
Y2ggKHRvdWNoUG9pbnQtPnR5cGUpIHsKICAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90
eXBlX2Rvd246CisgICAgICAgIGlmIChtX2hhbmRsaW5nKQorICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICBtX3N0YXJ0LnRpbWUgPSB0b3VjaFBvaW50LT50aW1lOwogICAgICAgICBtX3N0YXJ0
LnggPSB0b3VjaFBvaW50LT54OwogICAgICAgICBtX3N0YXJ0LnkgPSB0b3VjaFBvaW50LT55Owog
ICAgICAgICBtX29mZnNldC54ID0gdG91Y2hQb2ludC0+eDsKICAgICAgICAgbV9vZmZzZXQueSA9
IHRvdWNoUG9pbnQtPnk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuOwog
ICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbW90aW9uOgogICAgICAgICBpZiAo
IW1faGFuZGxpbmcpIHsKICAgICAgICAgICAgIGludDMyX3QgZGVsdGFYID0gdG91Y2hQb2ludC0+
eCAtIG1fc3RhcnQueDsKQEAgLTQ5LDcgKzYzLDcgQEAgYm9vbCBTY3JvbGxHZXN0dXJlQ29udHJv
bGxlcjo6aGFuZGxlRXZlbnQoY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcK
ICAgICAgICAgICAgIGludCBwaXhlbHNQZXJMaW5lU3RlcCA9IFdlYkNvcmU6OlNjcm9sbGJhcjo6
cGl4ZWxzUGVyTGluZVN0ZXAoKTsKICAgICAgICAgICAgIG1faGFuZGxpbmcgPSBzdGQ6OmFicyhk
ZWx0YVgpID49IHBpeGVsc1BlckxpbmVTdGVwCiAgICAgICAgICAgICAgICAgfHwgc3RkOjphYnMo
ZGVsdGFZKSA+PSBwaXhlbHNQZXJMaW5lU3RlcAotICAgICAgICAgICAgICAgIHx8IGRlbHRhVGlt
ZSA+PSAyMDA7CisgICAgICAgICAgICAgICAgfHwgZGVsdGFUaW1lID49IG1fbG9uZ1ByZXNzVGhy
ZXNob2xkTXM7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG1faGFuZGxpbmcpIHsKICNpZiBXUEVf
Q0hFQ0tfVkVSU0lPTigxLCA1LCAwKQpAQCAtNjksMTAgKzgzLDkgQEAgYm9vbCBTY3JvbGxHZXN0
dXJlQ29udHJvbGxlcjo6aGFuZGxlRXZlbnQoY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9l
dmVudF9yYXcKICNlbmRpZgogICAgICAgICAgICAgbV9vZmZzZXQueCA9IHRvdWNoUG9pbnQtPng7
CiAgICAgICAgICAgICBtX29mZnNldC55ID0gdG91Y2hQb2ludC0+eTsKLSAgICAgICAgICAgIG1f
cGhhc2UgPSBXZWJXaGVlbEV2ZW50OjpQaGFzZTo6UGhhc2VDaGFuZ2VkOwotICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgICAgICBwYWdlLmhhbmRsZVdoZWVsRXZlbnQoV2ViS2l0OjpO
YXRpdmVXZWJXaGVlbEV2ZW50KGF4aXNFdmVudCgpLCBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCks
IFdlYldoZWVsRXZlbnQ6OlBoYXNlOjpQaGFzZUNoYW5nZWQsIFdlYldoZWVsRXZlbnQ6OlBoYXNl
OjpQaGFzZU5vbmUpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IHJldHVybjsKICAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgogICAgICAg
ICBpZiAobV9oYW5kbGluZykgewogICAgICAgICAgICAgbV9oYW5kbGluZyA9IGZhbHNlOwpAQCAt
OTEsMTIgKzEwNCwyNyBAQCBib29sIFNjcm9sbEdlc3R1cmVDb250cm9sbGVyOjpoYW5kbGVFdmVu
dChjb25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3JhdwogICAgICAgICAgICAgfTsK
ICNlbmRpZgogICAgICAgICAgICAgbV9vZmZzZXQueCA9IG1fb2Zmc2V0LnkgPSAwOwotICAgICAg
ICAgICAgbV9waGFzZSA9IFdlYldoZWVsRXZlbnQ6OlBoYXNlOjpQaGFzZUVuZGVkOwotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBwYWdlLmhhbmRsZVdoZWVsRXZlbnQoV2Vi
S2l0OjpOYXRpdmVXZWJXaGVlbEV2ZW50KGF4aXNFdmVudCgpLCBwYWdlLmRldmljZVNjYWxlRmFj
dG9yKCksIFdlYldoZWVsRXZlbnQ6OlBoYXNlOjpQaGFzZUVuZGVkLCBXZWJXaGVlbEV2ZW50OjpQ
aGFzZTo6UGhhc2VOb25lKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB1aW50MzJf
dCBkZWx0YVRpbWUgPSB0b3VjaFBvaW50LT50aW1lIC0gbV9zdGFydC50aW1lOworCisgICAgICAg
ICAgICAvKgorICAgICAgICAgICAgICogVGhpcyBhIGJpdCBvZiBndWVzc2luZyBhbmQgaXMgYmFz
ZWQgb24gdGhlIEdUSyBwb3J0LiBUaGUgR1RLIHBvcnQKKyAgICAgICAgICAgICAqIGRvbid0IGdl
bmVyYXRlIGEgY2xpY2soKSBldmVudCBpZiBpdCBpcyBsb25nZXIgdGhhbiB0aGUgd2lkZ2V0Cisg
ICAgICAgICAgICAgKiBwcm9wZXJ0eSAnZ3RrLWxvbmctcHJlc3MnLiBTaW5jZSB3ZSBoYXZlIG5v
IHN1Y2ggcHJvcGVydHkgd2UgbmVlZAorICAgICAgICAgICAgICogdG8gZ3VlcyBhIGNvbW1vbiBn
b29kIHZhbHVlIHdoaWNoIGZpdHMgdGhlIG1vc3QgY2FzZXMuCisgICAgICAgICAgICAgKi8KKyAg
ICAgICAgICAgIGlmIChkZWx0YVRpbWUgPiBtX2xvbmdQcmVzc1RocmVzaG9sZE1zKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYgKCFtX21vdXNlQ2xpY2tzLnRyeUFw
cGVuZCgmbV9zdGFydCwgMSkpIHsKKyAgICAgICAgICAgICAgICBtX21vdXNlQ2xpY2tzLnJlbW92
ZSgwKTsKKyAgICAgICAgICAgICAgICBtX21vdXNlQ2xpY2tzLmFwcGVuZCgmbV9zdGFydCwgMSk7
CisgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICByZXR1cm47CiAgICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBy
ZXR1cm47CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmgKaW5kZXggMmQ4N2Y5NWMyNGVjLi5j
M2ZlNWFmYjgzYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
U2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmgKQEAgLTI3LDkgKzI3LDEyIEBACiAKICNp
bmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgPHdwZS93cGUuaD4KKyNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBXZWJQYWdlUHJveHk7CisK
IGNsYXNzIFNjcm9sbEdlc3R1cmVDb250cm9sbGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKQEAgLTQ0LDE3ICs0NywxOSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9
CiAKLSAgICBXZWJXaGVlbEV2ZW50OjpQaGFzZSBwaGFzZSgpIHsgcmV0dXJuIG1fcGhhc2U7IH0K
KyAgICBzdHJ1Y3QgVG91Y2hQb2ludCB7CisgICAgICAgIHVpbnQzMl90IHRpbWUgeyAwIH07Cisg
ICAgICAgIGludDMyX3QgeCB7IDAgfTsKKyAgICAgICAgaW50MzJfdCB5IHsgMCB9OworICAgIH07
CiAKICAgICBib29sIGlzSGFuZGxpbmcoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsaW5nOyB9Ci0g
ICAgYm9vbCBoYW5kbGVFdmVudChjb25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3Jh
dyopOworICAgIHZvaWQgaGFuZGxlRXZlbnQoY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9l
dmVudF9yYXcqLCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYpOworICAgIGJvb2wgaGFzUGVuZGluZ01v
dXNlQ2xpY2tzKCk7CisgICAgc3RydWN0IFRvdWNoUG9pbnQgbGFzdE1vdXNlVG91Y2hQb2ludCgp
OwogCiBwcml2YXRlOgotICAgIHN0cnVjdCB7Ci0gICAgICAgIHVpbnQzMl90IHRpbWUgeyAwIH07
Ci0gICAgICAgIGludDMyX3QgeCB7IDAgfTsKLSAgICAgICAgaW50MzJfdCB5IHsgMCB9OwotICAg
IH0gbV9zdGFydDsKKyAgICBzdHJ1Y3QgVG91Y2hQb2ludCBtX3N0YXJ0OwogCiAgICAgc3RydWN0
IHsKICAgICAgICAgaW50MzJfdCB4IHsgMCB9OwpAQCAtNjcsNyArNzIsOCBAQCBwcml2YXRlOgog
I2Vsc2UKICAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQgbV9heGlzRXZlbnQ7CiAjZW5k
aWYKLSAgICBXZWJXaGVlbEV2ZW50OjpQaGFzZSBtX3BoYXNlIHsgV2ViV2hlZWxFdmVudDo6UGhh
c2U6OlBoYXNlTm9uZSB9OworICAgIFZlY3RvcjxUb3VjaFBvaW50LCAxMD4gbV9tb3VzZUNsaWNr
czsKKyAgICBjb25zdCB1bnNpZ25lZCBtX2xvbmdQcmVzc1RocmVzaG9sZE1zID0gNTAwOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9XUEVWaWV3LmNwcAppbmRleCBjYzgxZWVjNmJmNzIuLjRjZWVmYTVhMDE0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwCkBAIC0xNzIsMTQgKzE3Miw5
IEBAIFZpZXc6OlZpZXcoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQsIGNvbnN0IEFQ
STo6UGFnZUNvbmZpZ3VyYXRpb24mIGJhc2VDCiAgICAgICAgICAgICBXZWJLaXQ6Ok5hdGl2ZVdl
YlRvdWNoRXZlbnQgdG91Y2hFdmVudChldmVudCwgcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpKTsK
IAogICAgICAgICAgICAgYXV0byYgc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIgPSAqdmlldy5tX3Nj
cm9sbEdlc3R1cmVDb250cm9sbGVyOwotICAgICAgICAgICAgaWYgKHNjcm9sbEdlc3R1cmVDb250
cm9sbGVyLmlzSGFuZGxpbmcoKSkgewotICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB3cGVf
aW5wdXRfdG91Y2hfZXZlbnRfcmF3KiB0b3VjaFBvaW50ID0gdG91Y2hFdmVudC5uYXRpdmVGYWxs
YmFja1RvdWNoUG9pbnQoKTsKLSAgICAgICAgICAgICAgICBpZiAodG91Y2hQb2ludC0+dHlwZSAh
PSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsICYmIHNjcm9sbEdlc3R1cmVDb250cm9s
bGVyLmhhbmRsZUV2ZW50KHRvdWNoUG9pbnQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhZ2Uu
aGFuZGxlV2hlZWxFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoc2Nyb2xsR2VzdHVy
ZUNvbnRyb2xsZXIuYXhpc0V2ZW50KCksIHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSwgc2Nyb2xs
R2VzdHVyZUNvbnRyb2xsZXIucGhhc2UoKSwgV2ViV2hlZWxFdmVudDo6UGhhc2U6OlBoYXNlTm9u
ZSkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfQorICAgICAgICAgICAgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVu
dF9yYXcqIHRvdWNoUG9pbnQgPSB0b3VjaEV2ZW50Lm5hdGl2ZUZhbGxiYWNrVG91Y2hQb2ludCgp
OwogCisgICAgICAgICAgICBzY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oYW5kbGVFdmVudCh0b3Vj
aFBvaW50LCBwYWdlKTsKICAgICAgICAgICAgIHBhZ2UuaGFuZGxlVG91Y2hFdmVudCh0b3VjaEV2
ZW50KTsKICAgICAgICAgfSwKICAgICAgICAgLy8gcGFkZGluZwotLSAKMi4yOS4yCgo=
</data>
<flag name="review"
          id="444348"
          type_id="1"
          status="?"
          setter="m.felsch"
    />
          </attachment>
      

    </bug>

</bugzilla>