<?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>203914</bug_id>
          
          <creation_ts>2019-11-06 12:53:02 -0800</creation_ts>
          <short_desc>[GTK] kinetic scroll speed should be cumulative</short_desc>
          <delta_ts>2020-11-09 09:55:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</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=197100</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=166649</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yariv">oigevald+webkit</reporter>
          <assigned_to name="Chris Lord">clord</assigned_to>
          <cc>alicem</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clord</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1587879</commentid>
    <comment_count>0</comment_count>
    <who name="Yariv">oigevald+webkit</who>
    <bug_when>2019-11-06 12:53:02 -0800</bug_when>
    <thetext>When using a touchpad swipe gesture to start a kinetic scroll in the Linux version of Firefox, it is possible to accelerate the scroll speed by initiating that gesture again while the window is still scrolling. With each successive gesture the scrolling speed doubles, more or less. A similar behavior can be observed with mobile web browsers.

This is a pretty important usability feature, especially when scrolling through very long pages. On macOS kinetic scroll is cumulative and is done on the server side, so it is supported for all applications. On Linux each application/toolkit has to implement kinetic scroll by its own, and currently WebKitGTK doesn&apos;t support cumulative kinetic scroll.

This is an alternative, and possibly better, solution for https://bugs.webkit.org/show_bug.cgi?id=197100 and https://bugs.webkit.org/show_bug.cgi?id=166649.

Corresponding Epiphany ticket https://gitlab.gnome.org/GNOME/epiphany/issues/989.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701366</commentid>
    <comment_count>1</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2020-10-26 02:07:03 -0700</bug_when>
    <thetext>Implementing it server-side isn&apos;t viable, since on Linux we also have touchscreen scrolling. For touchscreen you have no way of knowing whether this particular swipe was scrolling or something else server-side. With multitouch especially this can get very complex, e.g. consider a pinch gesture like you would use for zooming, but with both fingers being in different windows. In that case both have to be treated like independent pan/scroll gestures with regular kinetic deceleration after.

So all in all implementing it client-side makes total sense to me.

Agree it should be cumulative, especially on touch. Currently Librem 5 ships a downstream patch to reduce the deceleration factor from 4 to 1 to work around touch scrolling being too slow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703016</commentid>
    <comment_count>2</comment_count>
      <attachid>412729</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-10-30 03:46:31 -0700</bug_when>
    <thetext>Created attachment 412729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703017</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-10-30 03:53:16 -0700</bug_when>
    <thetext>Some notes;

This patch, rather than discarding all information when the animation is stopped, stops the animation but retains the data. When you initiate a scroll, it calculates what the velocity would&apos;ve been if the scroll had continued, and if it&apos;s in the same direction as the new scroll animation, accumulates that velocity.

Note, the effect is actually quite subtle with the current settings, deceleration is so fast that it takes quite some effort to accumulate velocity (but I&apos;ve verified programmatically that it&apos;s working). I think we may want to consider changing the model settings, or the model itself in a subsequent patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703020</commentid>
    <comment_count>4</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2020-10-30 04:25:53 -0700</bug_when>
    <thetext>This should be done in coordination with GTK, we probably want scrolling to behave the same in both.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703027</commentid>
    <comment_count>5</comment_count>
    <who name="Yariv">oigevald+webkit</who>
    <bug_when>2020-10-30 05:22:44 -0700</bug_when>
    <thetext>A corresponding feature for cumulative scroll is that of using a 2-finger tap (1-finger on touchscreens) to stop kinetic scrolling. It is not a must, however it improves the usability of cumulative kinetic scroll.

Right now a gesture for stopping kinetic scroll is just an RFC on Linux, see https://gitlab.freedesktop.org/libinput/libinput/-/issues/300. macOS already has it implemented, however for Linux it will probably require support from both libinput and GTK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703032</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-10-30 05:42:49 -0700</bug_when>
    <thetext>I&apos;m just looking at implementing this same patch for Gtk at the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703035</commentid>
    <comment_count>7</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2020-10-30 06:16:17 -0700</bug_when>
    <thetext>Bug: if you scroll multiple times and then slowly release, but still in that direction, it will have way higher velocity than it should be.

I have no idea what the proper condition would be to fix this though, but basically, it should somehow distinguish another quick flick (where it should happen) from you essentially stopping existing scrolling and restarting it (where it should not happen).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703037</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-10-30 06:23:27 -0700</bug_when>
    <thetext>(In reply to Alexander Mikhaylenko from comment #7)
&gt; Bug: if you scroll multiple times and then slowly release, but still in that
&gt; direction, it will have way higher velocity than it should be.
&gt; 
&gt; I have no idea what the proper condition would be to fix this though, but
&gt; basically, it should somehow distinguish another quick flick (where it
&gt; should happen) from you essentially stopping existing scrolling and
&gt; restarting it (where it should not happen).

I think a better heuristic would be that the velocity is in the same direction and lower than the new initial velocity, I&apos;ll update the patch with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703038</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-10-30 06:26:24 -0700</bug_when>
    <thetext>(In reply to Chris Lord from comment #8)
&gt; (In reply to Alexander Mikhaylenko from comment #7)
&gt; &gt; Bug: if you scroll multiple times and then slowly release, but still in that
&gt; &gt; direction, it will have way higher velocity than it should be.
&gt; &gt; 
&gt; &gt; I have no idea what the proper condition would be to fix this though, but
&gt; &gt; basically, it should somehow distinguish another quick flick (where it
&gt; &gt; should happen) from you essentially stopping existing scrolling and
&gt; &gt; restarting it (where it should not happen).
&gt; 
&gt; I think a better heuristic would be that the velocity is in the same
&gt; direction and lower than the new initial velocity, I&apos;ll update the patch
&gt; with that.

On thinking about this, I immediately disagree with myself, that was short-sighted... I guess there needs to be some kind of variable that controls how close the velocities are before accumulating them...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703040</commentid>
    <comment_count>10</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2020-10-30 06:34:15 -0700</bug_when>
    <thetext>Honestly IDK if we even have the data for this atm. This might need research on how other platforms do it, e.g. Android.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703050</commentid>
    <comment_count>11</comment_count>
      <attachid>412740</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-10-30 07:36:07 -0700</bug_when>
    <thetext>Created attachment 412740
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703052</commentid>
    <comment_count>12</comment_count>
      <attachid>412742</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-10-30 07:36:58 -0700</bug_when>
    <thetext>Created attachment 412742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703054</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-10-30 07:40:12 -0700</bug_when>
    <thetext>This now only accumulates velocity if newVelocity &gt;= currentVelocity * accumulationRatio (0.5). I&apos;m going to look at what Firefox does, but given some of the odd behaviour I see while intentionally scrolling in weird ways to examine behaviour on Firefox for Android, I don&apos;t think it&apos;s really too important right now as long as what we do doesn&apos;t feel obviously bad/broken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703145</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-10-30 11:46:00 -0700</bug_when>
    <thetext>The equivalent patch for GTK: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/2768</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705710</commentid>
    <comment_count>15</comment_count>
      <attachid>413586</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-11-09 08:38:38 -0800</bug_when>
    <thetext>Created attachment 413586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705729</commentid>
    <comment_count>16</comment_count>
      <attachid>413593</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-11-09 09:19:23 -0800</bug_when>
    <thetext>Created attachment 413593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705731</commentid>
    <comment_count>17</comment_count>
      <attachid>413593</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-11-09 09:20:29 -0800</bug_when>
    <thetext>Comment on attachment 413593
Patch

Patch updated to match Gtk patch that just got merged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705742</commentid>
    <comment_count>18</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-09 09:55:30 -0800</bug_when>
    <thetext>Committed r269583: &lt;https://trac.webkit.org/changeset/269583&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413593.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412729</attachid>
            <date>2020-10-30 03:46:31 -0700</date>
            <delta_ts>2020-10-30 07:36:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203914-20201030104630.patch</filename>
            <type>text/plain</type>
            <size>5819</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ4OWVlMzRlY2RiMzJl
OTAwOGNjMmY4OTEwOTFhYjhlMWZjYjE3Mi4uZmRiMzU4MWZkYWFhOWU0NGI0ODcwNDJjNmEwNGNh
NDY1NDcwZGRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTEwLTMwICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBraW5ldGljIHNjcm9s
bCBzcGVlZCBzaG91bGQgYmUgY3VtdWxhdGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzOTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWNjdW11bGF0ZSB2ZWxvY2l0eSBpbiB0aGUgc2FtZSBkaXJl
Y3Rpb24gd2l0aCBTY3JvbGxBbmltYXRpb25LaW5ldGljLgorCisgICAgICAgICogcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRpb25LaW5ldGljOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvbktp
bmV0aWM6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvbktpbmV0aWM6
OmFuaW1hdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9u
S2luZXRpYzo6ZGVsdGFUb05leHRGcmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5p
bWF0aW9uS2luZXRpYy5oOgorCiAyMDIwLTEwLTI4ICBDb25yYWQgU2h1bHR6ICA8Y29ucmFkX3No
dWx0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGRpYWdub3N0aWMgbG9nZ2luZyBmb3Ig
cGx1Zy1pbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1h
dGlvbktpbmV0aWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9u
S2luZXRpYy5jcHAKaW5kZXggOWE1YTg5ZTk0YTg5N2UyNTUxNjY1OTExZDRkNmI4MTFjN2RlNThl
My4uZTc3MzgwZDNiZDNjYWE1YTZmOWZiNzljNzViOWYwNjBjYTA0OWJlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5jcHAKQEAgLTEy
NCw4ICsxMjQsNiBAQCBTY3JvbGxBbmltYXRpb25LaW5ldGljOjp+U2Nyb2xsQW5pbWF0aW9uS2lu
ZXRpYygpID0gZGVmYXVsdDsKIHZvaWQgU2Nyb2xsQW5pbWF0aW9uS2luZXRpYzo6c3RvcCgpCiB7
CiAgICAgbV9hbmltYXRpb25UaW1lci5zdG9wKCk7Ci0gICAgbV9ob3Jpem9udGFsRGF0YSA9IFdU
Rjo6bnVsbG9wdDsKLSAgICBtX3ZlcnRpY2FsRGF0YSA9IFdURjo6bnVsbG9wdDsKIH0KIAogYm9v
bCBTY3JvbGxBbmltYXRpb25LaW5ldGljOjppc0FjdGl2ZSgpIGNvbnN0CkBAIC0xNzEsNDEgKzE2
OSw1NyBAQCB2b2lkIFNjcm9sbEFuaW1hdGlvbktpbmV0aWM6OnN0YXJ0KGNvbnN0IEZsb2F0UG9p
bnQmIGluaXRpYWxQb3NpdGlvbiwgY29uc3QgRmxvYQogewogICAgIHN0b3AoKTsKIAotICAgIG1f
cG9zaXRpb24gPSBpbml0aWFsUG9zaXRpb247Ci0KLSAgICBpZiAoIXZlbG9jaXR5LngoKSAmJiAh
dmVsb2NpdHkueSgpKQorICAgIGlmICghdmVsb2NpdHkueCgpICYmICF2ZWxvY2l0eS55KCkpIHsK
KyAgICAgICAgbV9wb3NpdGlvbiA9IGluaXRpYWxQb3NpdGlvbjsKKyAgICAgICAgbV9ob3Jpem9u
dGFsRGF0YSA9IFdURjo6bnVsbG9wdDsKKyAgICAgICAgbV92ZXJ0aWNhbERhdGEgPSBXVEY6Om51
bGxvcHQ7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKKyAgICBhdXRvIGRlbHRhID0gZGVsdGFU
b05leHRGcmFtZSgpOwogICAgIGF1dG8gZXh0ZW50cyA9IG1fc2Nyb2xsRXh0ZW50c0Z1bmN0aW9u
KCk7CiAgICAgaWYgKG1heUhTY3JvbGwpIHsKKyAgICAgICAgZG91YmxlIGN1bXVsYXRpdmVWZWxv
Y2l0eSA9IHZlbG9jaXR5LngoKTsKKyAgICAgICAgaWYgKG1faG9yaXpvbnRhbERhdGEgJiYgbV9o
b3Jpem9udGFsRGF0YS52YWx1ZSgpLmFuaW1hdGVTY3JvbGwoZGVsdGEpKSB7CisgICAgICAgICAg
ICBpZiAoc3RkOjpzaWduYml0KG1faG9yaXpvbnRhbERhdGEudmFsdWUoKS52ZWxvY2l0eSgpKSA9
PSBzdGQ6OnNpZ25iaXQoY3VtdWxhdGl2ZVZlbG9jaXR5KSkKKyAgICAgICAgICAgICAgICBjdW11
bGF0aXZlVmVsb2NpdHkgKz0gbV9ob3Jpem9udGFsRGF0YS52YWx1ZSgpLnZlbG9jaXR5KCk7Cisg
ICAgICAgIH0KICAgICAgICAgbV9ob3Jpem9udGFsRGF0YSA9IFBlckF4aXNEYXRhKGV4dGVudHMu
bWluaW11bVNjcm9sbFBvc2l0aW9uLngoKSwKICAgICAgICAgICAgIGV4dGVudHMubWF4aW11bVNj
cm9sbFBvc2l0aW9uLngoKSwKLSAgICAgICAgICAgIGluaXRpYWxQb3NpdGlvbi54KCksIHZlbG9j
aXR5LngoKSk7Ci0gICAgfQorICAgICAgICAgICAgaW5pdGlhbFBvc2l0aW9uLngoKSwgY3VtdWxh
dGl2ZVZlbG9jaXR5KTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9ob3Jpem9udGFsRGF0YSA9IFdU
Rjo6bnVsbG9wdDsKKwogICAgIGlmIChtYXlWU2Nyb2xsKSB7CisgICAgICAgIGRvdWJsZSBjdW11
bGF0aXZlVmVsb2NpdHkgPSB2ZWxvY2l0eS55KCk7CisgICAgICAgIGlmIChtX3ZlcnRpY2FsRGF0
YSAmJiBtX3ZlcnRpY2FsRGF0YS52YWx1ZSgpLmFuaW1hdGVTY3JvbGwoZGVsdGEpKSB7CisgICAg
ICAgICAgICBpZiAoc3RkOjpzaWduYml0KG1fdmVydGljYWxEYXRhLnZhbHVlKCkudmVsb2NpdHko
KSkgPT0gc3RkOjpzaWduYml0KGN1bXVsYXRpdmVWZWxvY2l0eSkpCisgICAgICAgICAgICAgICAg
Y3VtdWxhdGl2ZVZlbG9jaXR5ICs9IG1fdmVydGljYWxEYXRhLnZhbHVlKCkudmVsb2NpdHkoKTsK
KyAgICAgICAgfQogICAgICAgICBtX3ZlcnRpY2FsRGF0YSA9IFBlckF4aXNEYXRhKGV4dGVudHMu
bWluaW11bVNjcm9sbFBvc2l0aW9uLnkoKSwKICAgICAgICAgICAgIGV4dGVudHMubWF4aW11bVNj
cm9sbFBvc2l0aW9uLnkoKSwKLSAgICAgICAgICAgIGluaXRpYWxQb3NpdGlvbi55KCksIHZlbG9j
aXR5LnkoKSk7Ci0gICAgfQorICAgICAgICAgICAgaW5pdGlhbFBvc2l0aW9uLnkoKSwgY3VtdWxh
dGl2ZVZlbG9jaXR5KTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV92ZXJ0aWNhbERhdGEgPSBXVEY6
Om51bGxvcHQ7CiAKKyAgICBtX3Bvc2l0aW9uID0gaW5pdGlhbFBvc2l0aW9uOwogICAgIG1fc3Rh
cnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCkgLSB0aWNrVGltZSAvIDIuOwogICAgIGFuaW1h
dGlvblRpbWVyRmlyZWQoKTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRpb25LaW5ldGljOjphbmlt
YXRpb25UaW1lckZpcmVkKCkKIHsKLSAgICBNb25vdG9uaWNUaW1lIGN1cnJlbnRUaW1lID0gTW9u
b3RvbmljVGltZTo6bm93KCk7Ci0gICAgU2Vjb25kcyBkZWx0YVRvTmV4dEZyYW1lID0gMV9zICog
Y2VpbCgoY3VycmVudFRpbWUgLSBtX3N0YXJ0VGltZSkudmFsdWUoKSAqIGZyYW1lUmF0ZSkgLyBm
cmFtZVJhdGUgLSAoY3VycmVudFRpbWUgLSBtX3N0YXJ0VGltZSk7CisgICAgYXV0byBkZWx0YSA9
IGRlbHRhVG9OZXh0RnJhbWUoKTsKIAotICAgIGlmIChtX2hvcml6b250YWxEYXRhICYmICFtX2hv
cml6b250YWxEYXRhLnZhbHVlKCkuYW5pbWF0ZVNjcm9sbChkZWx0YVRvTmV4dEZyYW1lKSkKKyAg
ICBpZiAobV9ob3Jpem9udGFsRGF0YSAmJiAhbV9ob3Jpem9udGFsRGF0YS52YWx1ZSgpLmFuaW1h
dGVTY3JvbGwoZGVsdGEpKQogICAgICAgICBtX2hvcml6b250YWxEYXRhID0gV1RGOjpudWxsb3B0
OwogCi0gICAgaWYgKG1fdmVydGljYWxEYXRhICYmICFtX3ZlcnRpY2FsRGF0YS52YWx1ZSgpLmFu
aW1hdGVTY3JvbGwoZGVsdGFUb05leHRGcmFtZSkpCisgICAgaWYgKG1fdmVydGljYWxEYXRhICYm
ICFtX3ZlcnRpY2FsRGF0YS52YWx1ZSgpLmFuaW1hdGVTY3JvbGwoZGVsdGEpKQogICAgICAgICBt
X3ZlcnRpY2FsRGF0YSA9IFdURjo6bnVsbG9wdDsKIAogICAgIC8vIElmIG9uZSBvZiB0aGUgYXhl
cyBkaWRuJ3QgZmluaXNoIGl0cyBhbmltYXRpb24gd2UgbXVzdCBjb250aW51ZSBpdC4KICAgICBp
ZiAobV9ob3Jpem9udGFsRGF0YSB8fCBtX3ZlcnRpY2FsRGF0YSkKLSAgICAgICAgbV9hbmltYXRp
b25UaW1lci5zdGFydE9uZVNob3Qoc3RkOjptYXgobWluaW11bVRpbWVySW50ZXJ2YWwsIGRlbHRh
VG9OZXh0RnJhbWUpKTsKKyAgICAgICAgbV9hbmltYXRpb25UaW1lci5zdGFydE9uZVNob3Qoc3Rk
OjptYXgobWluaW11bVRpbWVySW50ZXJ2YWwsIGRlbHRhKSk7CiAKICAgICBkb3VibGUgeCA9IG1f
aG9yaXpvbnRhbERhdGEgPyBtX2hvcml6b250YWxEYXRhLnZhbHVlKCkucG9zaXRpb24oKSA6IG1f
cG9zaXRpb24ueCgpOwogICAgIGRvdWJsZSB5ID0gbV92ZXJ0aWNhbERhdGEgPyBtX3ZlcnRpY2Fs
RGF0YS52YWx1ZSgpLnBvc2l0aW9uKCkgOiBtX3Bvc2l0aW9uLnkoKTsKQEAgLTIxMyw0ICsyMjcs
MTAgQEAgdm9pZCBTY3JvbGxBbmltYXRpb25LaW5ldGljOjphbmltYXRpb25UaW1lckZpcmVkKCkK
ICAgICBtX25vdGlmeVBvc2l0aW9uQ2hhbmdlZEZ1bmN0aW9uKEZsb2F0UG9pbnQobV9wb3NpdGlv
bikpOwogfQogCitTZWNvbmRzIFNjcm9sbEFuaW1hdGlvbktpbmV0aWM6OmRlbHRhVG9OZXh0RnJh
bWUoKQoreworICAgIE1vbm90b25pY1RpbWUgY3VycmVudFRpbWUgPSBNb25vdG9uaWNUaW1lOjpu
b3coKTsKKyAgICByZXR1cm4gMV9zICogY2VpbCgoY3VycmVudFRpbWUgLSBtX3N0YXJ0VGltZSku
dmFsdWUoKSAqIGZyYW1lUmF0ZSkgLyBmcmFtZVJhdGUgLSAoY3VycmVudFRpbWUgLSBtX3N0YXJ0
VGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbktpbmV0aWMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbktpbmV0aWMuaAppbmRleCA2YWJlNzllZjc3OGFmZDhm
NDU4NjQ4YzI5N2IyZGE2MWE0NmM1NDIzLi4yMDdlZTQ5ODE4YTA0OGY4NWZmNjZlZGJjOWE4MTZj
N2MxOTE2OGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmlt
YXRpb25LaW5ldGljLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
aW9uS2luZXRpYy5oCkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgICAgIFBlckF4aXNE
YXRhKGRvdWJsZSBsb3dlciwgZG91YmxlIHVwcGVyLCBkb3VibGUgaW5pdGlhbFBvc2l0aW9uLCBk
b3VibGUgaW5pdGlhbFZlbG9jaXR5KTsKIAogICAgICAgICBkb3VibGUgcG9zaXRpb24oKSB7IHJl
dHVybiBtX3Bvc2l0aW9uOyB9CisgICAgICAgIGRvdWJsZSB2ZWxvY2l0eSgpIHsgcmV0dXJuIG1f
dmVsb2NpdHk7IH0KIAogICAgICAgICBib29sIGFuaW1hdGVTY3JvbGwoU2Vjb25kcyB0aW1lRGVs
dGEpOwogCkBAIC03NCw2ICs3NSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lkIGFu
aW1hdGlvblRpbWVyRmlyZWQoKTsKKyAgICBTZWNvbmRzIGRlbHRhVG9OZXh0RnJhbWUoKTsKIAog
ICAgIFNjcm9sbEV4dGVudHNDYWxsYmFjayBtX3Njcm9sbEV4dGVudHNGdW5jdGlvbjsKICAgICBO
b3RpZnlQb3NpdGlvbkNoYW5nZWRDYWxsYmFjayBtX25vdGlmeVBvc2l0aW9uQ2hhbmdlZEZ1bmN0
aW9uOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412740</attachid>
            <date>2020-10-30 07:36:07 -0700</date>
            <delta_ts>2020-10-30 07:36:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203914-20201030143606.patch</filename>
            <type>text/plain</type>
            <size>6680</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ4OWVlMzRlY2RiMzJl
OTAwOGNjMmY4OTEwOTFhYjhlMWZjYjE3Mi4uZmRiMzU4MWZkYWFhOWU0NGI0ODcwNDJjNmEwNGNh
NDY1NDcwZGRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTEwLTMwICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBraW5ldGljIHNjcm9s
bCBzcGVlZCBzaG91bGQgYmUgY3VtdWxhdGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzOTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWNjdW11bGF0ZSB2ZWxvY2l0eSBpbiB0aGUgc2FtZSBkaXJl
Y3Rpb24gd2l0aCBTY3JvbGxBbmltYXRpb25LaW5ldGljLgorCisgICAgICAgICogcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRpb25LaW5ldGljOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvbktp
bmV0aWM6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvbktpbmV0aWM6
OmFuaW1hdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9u
S2luZXRpYzo6ZGVsdGFUb05leHRGcmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5p
bWF0aW9uS2luZXRpYy5oOgorCiAyMDIwLTEwLTI4ICBDb25yYWQgU2h1bHR6ICA8Y29ucmFkX3No
dWx0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGRpYWdub3N0aWMgbG9nZ2luZyBmb3Ig
cGx1Zy1pbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1h
dGlvbktpbmV0aWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9u
S2luZXRpYy5jcHAKaW5kZXggOWE1YTg5ZTk0YTg5N2UyNTUxNjY1OTExZDRkNmI4MTFjN2RlNThl
My4uNTJlNDFhZjljNTkwMGU4NWE2NGM0OTFhN2M0ZTllYzM3ZGM2ZWU5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5jcHAKQEAgLTY1
LDExICs2NSwxMiBAQAogICogICBmMih4KSA9IHQgZXhwKC1teCAvIDIpCiAgKi8KIAotc3RhdGlj
IGNvbnN0IGRvdWJsZSBkZWNlbEZyaWN0aW9uID0gNDsKLXN0YXRpYyBjb25zdCBkb3VibGUgZnJh
bWVSYXRlID0gNjA7Ci1zdGF0aWMgY29uc3QgU2Vjb25kcyB0aWNrVGltZSA9IDFfcyAvIGZyYW1l
UmF0ZTsKLXN0YXRpYyBjb25zdCBTZWNvbmRzIG1pbmltdW1UaW1lckludGVydmFsIHsgMV9tcyB9
Owotc3RhdGljIGNvbnN0IFNlY29uZHMgc2Nyb2xsQ2FwdHVyZVRocmVzaG9sZCB7IDE1MF9tcyB9
Oworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgZGVjZWxGcmljdGlvbiA9IDI7CitzdGF0aWMgY29u
c3RleHByIGRvdWJsZSBmcmFtZVJhdGUgPSA2MDsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIGFj
Y3VtdWxhdGlvblJhdGlvID0gMC41Oworc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIHRpY2tUaW1l
ID0gMV9zIC8gZnJhbWVSYXRlOworc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIG1pbmltdW1UaW1l
ckludGVydmFsIHsgMV9tcyB9Oworc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIHNjcm9sbENhcHR1
cmVUaHJlc2hvbGQgeyAxNTBfbXMgfTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMjQs
OCArMTI1LDYgQEAgU2Nyb2xsQW5pbWF0aW9uS2luZXRpYzo6flNjcm9sbEFuaW1hdGlvbktpbmV0
aWMoKSA9IGRlZmF1bHQ7CiB2b2lkIFNjcm9sbEFuaW1hdGlvbktpbmV0aWM6OnN0b3AoKQogewog
ICAgIG1fYW5pbWF0aW9uVGltZXIuc3RvcCgpOwotICAgIG1faG9yaXpvbnRhbERhdGEgPSBXVEY6
Om51bGxvcHQ7Ci0gICAgbV92ZXJ0aWNhbERhdGEgPSBXVEY6Om51bGxvcHQ7CiB9CiAKIGJvb2wg
U2Nyb2xsQW5pbWF0aW9uS2luZXRpYzo6aXNBY3RpdmUoKSBjb25zdApAQCAtMTcxLDQxICsxNzAs
NjEgQEAgdm9pZCBTY3JvbGxBbmltYXRpb25LaW5ldGljOjpzdGFydChjb25zdCBGbG9hdFBvaW50
JiBpbml0aWFsUG9zaXRpb24sIGNvbnN0IEZsb2EKIHsKICAgICBzdG9wKCk7CiAKLSAgICBtX3Bv
c2l0aW9uID0gaW5pdGlhbFBvc2l0aW9uOwotCi0gICAgaWYgKCF2ZWxvY2l0eS54KCkgJiYgIXZl
bG9jaXR5LnkoKSkKKyAgICBpZiAoIXZlbG9jaXR5LngoKSAmJiAhdmVsb2NpdHkueSgpKSB7Cisg
ICAgICAgIG1fcG9zaXRpb24gPSBpbml0aWFsUG9zaXRpb247CisgICAgICAgIG1faG9yaXpvbnRh
bERhdGEgPSBXVEY6Om51bGxvcHQ7CisgICAgICAgIG1fdmVydGljYWxEYXRhID0gV1RGOjpudWxs
b3B0OwogICAgICAgICByZXR1cm47CisgICAgfQogCisgICAgYXV0byBkZWx0YSA9IGRlbHRhVG9O
ZXh0RnJhbWUoKTsKICAgICBhdXRvIGV4dGVudHMgPSBtX3Njcm9sbEV4dGVudHNGdW5jdGlvbigp
OwogICAgIGlmIChtYXlIU2Nyb2xsKSB7CisgICAgICAgIGRvdWJsZSBjdW11bGF0aXZlVmVsb2Np
dHkgPSB2ZWxvY2l0eS54KCk7CisgICAgICAgIGlmIChtX2hvcml6b250YWxEYXRhICYmIG1faG9y
aXpvbnRhbERhdGEudmFsdWUoKS5hbmltYXRlU2Nyb2xsKGRlbHRhKSkgeworICAgICAgICAgICAg
ZG91YmxlIG9sZFZlbG9jaXR5ID0gbV9ob3Jpem9udGFsRGF0YS52YWx1ZSgpLnZlbG9jaXR5KCk7
CisgICAgICAgICAgICBpZiAoc3RkOjpzaWduYml0KG9sZFZlbG9jaXR5KSA9PSBzdGQ6OnNpZ25i
aXQoY3VtdWxhdGl2ZVZlbG9jaXR5KQorICAgICAgICAgICAgICAgICYmIHN0ZDo6YWJzKGN1bXVs
YXRpdmVWZWxvY2l0eSkgPj0gc3RkOjphYnMob2xkVmVsb2NpdHkpICogYWNjdW11bGF0aW9uUmF0
aW8pCisgICAgICAgICAgICAgICAgY3VtdWxhdGl2ZVZlbG9jaXR5ICs9IG9sZFZlbG9jaXR5Owor
ICAgICAgICB9CiAgICAgICAgIG1faG9yaXpvbnRhbERhdGEgPSBQZXJBeGlzRGF0YShleHRlbnRz
Lm1pbmltdW1TY3JvbGxQb3NpdGlvbi54KCksCiAgICAgICAgICAgICBleHRlbnRzLm1heGltdW1T
Y3JvbGxQb3NpdGlvbi54KCksCi0gICAgICAgICAgICBpbml0aWFsUG9zaXRpb24ueCgpLCB2ZWxv
Y2l0eS54KCkpOwotICAgIH0KKyAgICAgICAgICAgIGluaXRpYWxQb3NpdGlvbi54KCksIGN1bXVs
YXRpdmVWZWxvY2l0eSk7CisgICAgfSBlbHNlCisgICAgICAgIG1faG9yaXpvbnRhbERhdGEgPSBX
VEY6Om51bGxvcHQ7CisKICAgICBpZiAobWF5VlNjcm9sbCkgeworICAgICAgICBkb3VibGUgY3Vt
dWxhdGl2ZVZlbG9jaXR5ID0gdmVsb2NpdHkueSgpOworICAgICAgICBpZiAobV92ZXJ0aWNhbERh
dGEgJiYgbV92ZXJ0aWNhbERhdGEudmFsdWUoKS5hbmltYXRlU2Nyb2xsKGRlbHRhKSkgeworICAg
ICAgICAgICAgZG91YmxlIG9sZFZlbG9jaXR5ID0gbV92ZXJ0aWNhbERhdGEudmFsdWUoKS52ZWxv
Y2l0eSgpOworICAgICAgICAgICAgaWYgKHN0ZDo6c2lnbmJpdChvbGRWZWxvY2l0eSkgPT0gc3Rk
OjpzaWduYml0KGN1bXVsYXRpdmVWZWxvY2l0eSkKKyAgICAgICAgICAgICAgICAmJiBzdGQ6OmFi
cyhjdW11bGF0aXZlVmVsb2NpdHkpID49IHN0ZDo6YWJzKG9sZFZlbG9jaXR5KSAqIGFjY3VtdWxh
dGlvblJhdGlvKQorICAgICAgICAgICAgICAgIGN1bXVsYXRpdmVWZWxvY2l0eSArPSBvbGRWZWxv
Y2l0eTsKKyAgICAgICAgfQogICAgICAgICBtX3ZlcnRpY2FsRGF0YSA9IFBlckF4aXNEYXRhKGV4
dGVudHMubWluaW11bVNjcm9sbFBvc2l0aW9uLnkoKSwKICAgICAgICAgICAgIGV4dGVudHMubWF4
aW11bVNjcm9sbFBvc2l0aW9uLnkoKSwKLSAgICAgICAgICAgIGluaXRpYWxQb3NpdGlvbi55KCks
IHZlbG9jaXR5LnkoKSk7Ci0gICAgfQorICAgICAgICAgICAgaW5pdGlhbFBvc2l0aW9uLnkoKSwg
Y3VtdWxhdGl2ZVZlbG9jaXR5KTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV92ZXJ0aWNhbERhdGEg
PSBXVEY6Om51bGxvcHQ7CiAKKyAgICBtX3Bvc2l0aW9uID0gaW5pdGlhbFBvc2l0aW9uOwogICAg
IG1fc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCkgLSB0aWNrVGltZSAvIDIuOwogICAg
IGFuaW1hdGlvblRpbWVyRmlyZWQoKTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRpb25LaW5ldGlj
OjphbmltYXRpb25UaW1lckZpcmVkKCkKIHsKLSAgICBNb25vdG9uaWNUaW1lIGN1cnJlbnRUaW1l
ID0gTW9ub3RvbmljVGltZTo6bm93KCk7Ci0gICAgU2Vjb25kcyBkZWx0YVRvTmV4dEZyYW1lID0g
MV9zICogY2VpbCgoY3VycmVudFRpbWUgLSBtX3N0YXJ0VGltZSkudmFsdWUoKSAqIGZyYW1lUmF0
ZSkgLyBmcmFtZVJhdGUgLSAoY3VycmVudFRpbWUgLSBtX3N0YXJ0VGltZSk7CisgICAgYXV0byBk
ZWx0YSA9IGRlbHRhVG9OZXh0RnJhbWUoKTsKIAotICAgIGlmIChtX2hvcml6b250YWxEYXRhICYm
ICFtX2hvcml6b250YWxEYXRhLnZhbHVlKCkuYW5pbWF0ZVNjcm9sbChkZWx0YVRvTmV4dEZyYW1l
KSkKKyAgICBpZiAobV9ob3Jpem9udGFsRGF0YSAmJiAhbV9ob3Jpem9udGFsRGF0YS52YWx1ZSgp
LmFuaW1hdGVTY3JvbGwoZGVsdGEpKQogICAgICAgICBtX2hvcml6b250YWxEYXRhID0gV1RGOjpu
dWxsb3B0OwogCi0gICAgaWYgKG1fdmVydGljYWxEYXRhICYmICFtX3ZlcnRpY2FsRGF0YS52YWx1
ZSgpLmFuaW1hdGVTY3JvbGwoZGVsdGFUb05leHRGcmFtZSkpCisgICAgaWYgKG1fdmVydGljYWxE
YXRhICYmICFtX3ZlcnRpY2FsRGF0YS52YWx1ZSgpLmFuaW1hdGVTY3JvbGwoZGVsdGEpKQogICAg
ICAgICBtX3ZlcnRpY2FsRGF0YSA9IFdURjo6bnVsbG9wdDsKIAogICAgIC8vIElmIG9uZSBvZiB0
aGUgYXhlcyBkaWRuJ3QgZmluaXNoIGl0cyBhbmltYXRpb24gd2UgbXVzdCBjb250aW51ZSBpdC4K
ICAgICBpZiAobV9ob3Jpem9udGFsRGF0YSB8fCBtX3ZlcnRpY2FsRGF0YSkKLSAgICAgICAgbV9h
bmltYXRpb25UaW1lci5zdGFydE9uZVNob3Qoc3RkOjptYXgobWluaW11bVRpbWVySW50ZXJ2YWws
IGRlbHRhVG9OZXh0RnJhbWUpKTsKKyAgICAgICAgbV9hbmltYXRpb25UaW1lci5zdGFydE9uZVNo
b3Qoc3RkOjptYXgobWluaW11bVRpbWVySW50ZXJ2YWwsIGRlbHRhKSk7CiAKICAgICBkb3VibGUg
eCA9IG1faG9yaXpvbnRhbERhdGEgPyBtX2hvcml6b250YWxEYXRhLnZhbHVlKCkucG9zaXRpb24o
KSA6IG1fcG9zaXRpb24ueCgpOwogICAgIGRvdWJsZSB5ID0gbV92ZXJ0aWNhbERhdGEgPyBtX3Zl
cnRpY2FsRGF0YS52YWx1ZSgpLnBvc2l0aW9uKCkgOiBtX3Bvc2l0aW9uLnkoKTsKQEAgLTIxMyw0
ICsyMzIsMTAgQEAgdm9pZCBTY3JvbGxBbmltYXRpb25LaW5ldGljOjphbmltYXRpb25UaW1lckZp
cmVkKCkKICAgICBtX25vdGlmeVBvc2l0aW9uQ2hhbmdlZEZ1bmN0aW9uKEZsb2F0UG9pbnQobV9w
b3NpdGlvbikpOwogfQogCitTZWNvbmRzIFNjcm9sbEFuaW1hdGlvbktpbmV0aWM6OmRlbHRhVG9O
ZXh0RnJhbWUoKQoreworICAgIE1vbm90b25pY1RpbWUgY3VycmVudFRpbWUgPSBNb25vdG9uaWNU
aW1lOjpub3coKTsKKyAgICByZXR1cm4gMV9zICogY2VpbCgoY3VycmVudFRpbWUgLSBtX3N0YXJ0
VGltZSkudmFsdWUoKSAqIGZyYW1lUmF0ZSkgLyBmcmFtZVJhdGUgLSAoY3VycmVudFRpbWUgLSBt
X3N0YXJ0VGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbktpbmV0aWMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbktpbmV0aWMuaAppbmRleCA2YWJlNzllZjc3
OGFmZDhmNDU4NjQ4YzI5N2IyZGE2MWE0NmM1NDIzLi4yMDdlZTQ5ODE4YTA0OGY4NWZmNjZlZGJj
OWE4MTZjN2MxOTE2OGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxBbmltYXRpb25LaW5ldGljLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0aW9uS2luZXRpYy5oCkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgICAgIFBl
ckF4aXNEYXRhKGRvdWJsZSBsb3dlciwgZG91YmxlIHVwcGVyLCBkb3VibGUgaW5pdGlhbFBvc2l0
aW9uLCBkb3VibGUgaW5pdGlhbFZlbG9jaXR5KTsKIAogICAgICAgICBkb3VibGUgcG9zaXRpb24o
KSB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CisgICAgICAgIGRvdWJsZSB2ZWxvY2l0eSgpIHsgcmV0
dXJuIG1fdmVsb2NpdHk7IH0KIAogICAgICAgICBib29sIGFuaW1hdGVTY3JvbGwoU2Vjb25kcyB0
aW1lRGVsdGEpOwogCkBAIC03NCw2ICs3NSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2
b2lkIGFuaW1hdGlvblRpbWVyRmlyZWQoKTsKKyAgICBTZWNvbmRzIGRlbHRhVG9OZXh0RnJhbWUo
KTsKIAogICAgIFNjcm9sbEV4dGVudHNDYWxsYmFjayBtX3Njcm9sbEV4dGVudHNGdW5jdGlvbjsK
ICAgICBOb3RpZnlQb3NpdGlvbkNoYW5nZWRDYWxsYmFjayBtX25vdGlmeVBvc2l0aW9uQ2hhbmdl
ZEZ1bmN0aW9uOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412742</attachid>
            <date>2020-10-30 07:36:58 -0700</date>
            <delta_ts>2020-11-09 08:38:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203914-20201030143657.patch</filename>
            <type>text/plain</type>
            <size>6686</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ4OWVlMzRlY2RiMzJl
OTAwOGNjMmY4OTEwOTFhYjhlMWZjYjE3Mi4uMjhhYzY5YzE4ZmI5YWM1YmU4NTQzMzg1NGI0YTAx
NjlhNWI1YWE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTEwLTMwICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBraW5ldGljIHNjcm9s
bCBzcGVlZCBzaG91bGQgYmUgY3VtdWxhdGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzOTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9z
IEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgQWNjdW11bGF0ZSB2ZWxvY2l0eSBpbiB0aGUgc2Ft
ZSBkaXJlY3Rpb24gd2l0aCBTY3JvbGxBbmltYXRpb25LaW5ldGljLgorCisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxBbmltYXRpb25LaW5ldGljOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1h
dGlvbktpbmV0aWM6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvbktp
bmV0aWM6OmFuaW1hdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0aW9uS2luZXRpYzo6ZGVsdGFUb05leHRGcmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0aW9uS2luZXRpYy5oOgorCiAyMDIwLTEwLTI4ICBDb25yYWQgU2h1bHR6ICA8Y29u
cmFkX3NodWx0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGRpYWdub3N0aWMgbG9nZ2lu
ZyBmb3IgcGx1Zy1pbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdGlvbktpbmV0aWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5p
bWF0aW9uS2luZXRpYy5jcHAKaW5kZXggOWE1YTg5ZTk0YTg5N2UyNTUxNjY1OTExZDRkNmI4MTFj
N2RlNThlMy4uNTJlNDFhZjljNTkwMGU4NWE2NGM0OTFhN2M0ZTllYzM3ZGM2ZWU5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5jcHAK
QEAgLTY1LDExICs2NSwxMiBAQAogICogICBmMih4KSA9IHQgZXhwKC1teCAvIDIpCiAgKi8KIAot
c3RhdGljIGNvbnN0IGRvdWJsZSBkZWNlbEZyaWN0aW9uID0gNDsKLXN0YXRpYyBjb25zdCBkb3Vi
bGUgZnJhbWVSYXRlID0gNjA7Ci1zdGF0aWMgY29uc3QgU2Vjb25kcyB0aWNrVGltZSA9IDFfcyAv
IGZyYW1lUmF0ZTsKLXN0YXRpYyBjb25zdCBTZWNvbmRzIG1pbmltdW1UaW1lckludGVydmFsIHsg
MV9tcyB9Owotc3RhdGljIGNvbnN0IFNlY29uZHMgc2Nyb2xsQ2FwdHVyZVRocmVzaG9sZCB7IDE1
MF9tcyB9Oworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgZGVjZWxGcmljdGlvbiA9IDI7CitzdGF0
aWMgY29uc3RleHByIGRvdWJsZSBmcmFtZVJhdGUgPSA2MDsKK3N0YXRpYyBjb25zdGV4cHIgZG91
YmxlIGFjY3VtdWxhdGlvblJhdGlvID0gMC41Oworc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIHRp
Y2tUaW1lID0gMV9zIC8gZnJhbWVSYXRlOworc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIG1pbmlt
dW1UaW1lckludGVydmFsIHsgMV9tcyB9Oworc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIHNjcm9s
bENhcHR1cmVUaHJlc2hvbGQgeyAxNTBfbXMgfTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC0xMjQsOCArMTI1LDYgQEAgU2Nyb2xsQW5pbWF0aW9uS2luZXRpYzo6flNjcm9sbEFuaW1hdGlv
bktpbmV0aWMoKSA9IGRlZmF1bHQ7CiB2b2lkIFNjcm9sbEFuaW1hdGlvbktpbmV0aWM6OnN0b3Ao
KQogewogICAgIG1fYW5pbWF0aW9uVGltZXIuc3RvcCgpOwotICAgIG1faG9yaXpvbnRhbERhdGEg
PSBXVEY6Om51bGxvcHQ7Ci0gICAgbV92ZXJ0aWNhbERhdGEgPSBXVEY6Om51bGxvcHQ7CiB9CiAK
IGJvb2wgU2Nyb2xsQW5pbWF0aW9uS2luZXRpYzo6aXNBY3RpdmUoKSBjb25zdApAQCAtMTcxLDQx
ICsxNzAsNjEgQEAgdm9pZCBTY3JvbGxBbmltYXRpb25LaW5ldGljOjpzdGFydChjb25zdCBGbG9h
dFBvaW50JiBpbml0aWFsUG9zaXRpb24sIGNvbnN0IEZsb2EKIHsKICAgICBzdG9wKCk7CiAKLSAg
ICBtX3Bvc2l0aW9uID0gaW5pdGlhbFBvc2l0aW9uOwotCi0gICAgaWYgKCF2ZWxvY2l0eS54KCkg
JiYgIXZlbG9jaXR5LnkoKSkKKyAgICBpZiAoIXZlbG9jaXR5LngoKSAmJiAhdmVsb2NpdHkueSgp
KSB7CisgICAgICAgIG1fcG9zaXRpb24gPSBpbml0aWFsUG9zaXRpb247CisgICAgICAgIG1faG9y
aXpvbnRhbERhdGEgPSBXVEY6Om51bGxvcHQ7CisgICAgICAgIG1fdmVydGljYWxEYXRhID0gV1RG
OjpudWxsb3B0OwogICAgICAgICByZXR1cm47CisgICAgfQogCisgICAgYXV0byBkZWx0YSA9IGRl
bHRhVG9OZXh0RnJhbWUoKTsKICAgICBhdXRvIGV4dGVudHMgPSBtX3Njcm9sbEV4dGVudHNGdW5j
dGlvbigpOwogICAgIGlmIChtYXlIU2Nyb2xsKSB7CisgICAgICAgIGRvdWJsZSBjdW11bGF0aXZl
VmVsb2NpdHkgPSB2ZWxvY2l0eS54KCk7CisgICAgICAgIGlmIChtX2hvcml6b250YWxEYXRhICYm
IG1faG9yaXpvbnRhbERhdGEudmFsdWUoKS5hbmltYXRlU2Nyb2xsKGRlbHRhKSkgeworICAgICAg
ICAgICAgZG91YmxlIG9sZFZlbG9jaXR5ID0gbV9ob3Jpem9udGFsRGF0YS52YWx1ZSgpLnZlbG9j
aXR5KCk7CisgICAgICAgICAgICBpZiAoc3RkOjpzaWduYml0KG9sZFZlbG9jaXR5KSA9PSBzdGQ6
OnNpZ25iaXQoY3VtdWxhdGl2ZVZlbG9jaXR5KQorICAgICAgICAgICAgICAgICYmIHN0ZDo6YWJz
KGN1bXVsYXRpdmVWZWxvY2l0eSkgPj0gc3RkOjphYnMob2xkVmVsb2NpdHkpICogYWNjdW11bGF0
aW9uUmF0aW8pCisgICAgICAgICAgICAgICAgY3VtdWxhdGl2ZVZlbG9jaXR5ICs9IG9sZFZlbG9j
aXR5OworICAgICAgICB9CiAgICAgICAgIG1faG9yaXpvbnRhbERhdGEgPSBQZXJBeGlzRGF0YShl
eHRlbnRzLm1pbmltdW1TY3JvbGxQb3NpdGlvbi54KCksCiAgICAgICAgICAgICBleHRlbnRzLm1h
eGltdW1TY3JvbGxQb3NpdGlvbi54KCksCi0gICAgICAgICAgICBpbml0aWFsUG9zaXRpb24ueCgp
LCB2ZWxvY2l0eS54KCkpOwotICAgIH0KKyAgICAgICAgICAgIGluaXRpYWxQb3NpdGlvbi54KCks
IGN1bXVsYXRpdmVWZWxvY2l0eSk7CisgICAgfSBlbHNlCisgICAgICAgIG1faG9yaXpvbnRhbERh
dGEgPSBXVEY6Om51bGxvcHQ7CisKICAgICBpZiAobWF5VlNjcm9sbCkgeworICAgICAgICBkb3Vi
bGUgY3VtdWxhdGl2ZVZlbG9jaXR5ID0gdmVsb2NpdHkueSgpOworICAgICAgICBpZiAobV92ZXJ0
aWNhbERhdGEgJiYgbV92ZXJ0aWNhbERhdGEudmFsdWUoKS5hbmltYXRlU2Nyb2xsKGRlbHRhKSkg
eworICAgICAgICAgICAgZG91YmxlIG9sZFZlbG9jaXR5ID0gbV92ZXJ0aWNhbERhdGEudmFsdWUo
KS52ZWxvY2l0eSgpOworICAgICAgICAgICAgaWYgKHN0ZDo6c2lnbmJpdChvbGRWZWxvY2l0eSkg
PT0gc3RkOjpzaWduYml0KGN1bXVsYXRpdmVWZWxvY2l0eSkKKyAgICAgICAgICAgICAgICAmJiBz
dGQ6OmFicyhjdW11bGF0aXZlVmVsb2NpdHkpID49IHN0ZDo6YWJzKG9sZFZlbG9jaXR5KSAqIGFj
Y3VtdWxhdGlvblJhdGlvKQorICAgICAgICAgICAgICAgIGN1bXVsYXRpdmVWZWxvY2l0eSArPSBv
bGRWZWxvY2l0eTsKKyAgICAgICAgfQogICAgICAgICBtX3ZlcnRpY2FsRGF0YSA9IFBlckF4aXNE
YXRhKGV4dGVudHMubWluaW11bVNjcm9sbFBvc2l0aW9uLnkoKSwKICAgICAgICAgICAgIGV4dGVu
dHMubWF4aW11bVNjcm9sbFBvc2l0aW9uLnkoKSwKLSAgICAgICAgICAgIGluaXRpYWxQb3NpdGlv
bi55KCksIHZlbG9jaXR5LnkoKSk7Ci0gICAgfQorICAgICAgICAgICAgaW5pdGlhbFBvc2l0aW9u
LnkoKSwgY3VtdWxhdGl2ZVZlbG9jaXR5KTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV92ZXJ0aWNh
bERhdGEgPSBXVEY6Om51bGxvcHQ7CiAKKyAgICBtX3Bvc2l0aW9uID0gaW5pdGlhbFBvc2l0aW9u
OwogICAgIG1fc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCkgLSB0aWNrVGltZSAvIDIu
OwogICAgIGFuaW1hdGlvblRpbWVyRmlyZWQoKTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRpb25L
aW5ldGljOjphbmltYXRpb25UaW1lckZpcmVkKCkKIHsKLSAgICBNb25vdG9uaWNUaW1lIGN1cnJl
bnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7Ci0gICAgU2Vjb25kcyBkZWx0YVRvTmV4dEZy
YW1lID0gMV9zICogY2VpbCgoY3VycmVudFRpbWUgLSBtX3N0YXJ0VGltZSkudmFsdWUoKSAqIGZy
YW1lUmF0ZSkgLyBmcmFtZVJhdGUgLSAoY3VycmVudFRpbWUgLSBtX3N0YXJ0VGltZSk7CisgICAg
YXV0byBkZWx0YSA9IGRlbHRhVG9OZXh0RnJhbWUoKTsKIAotICAgIGlmIChtX2hvcml6b250YWxE
YXRhICYmICFtX2hvcml6b250YWxEYXRhLnZhbHVlKCkuYW5pbWF0ZVNjcm9sbChkZWx0YVRvTmV4
dEZyYW1lKSkKKyAgICBpZiAobV9ob3Jpem9udGFsRGF0YSAmJiAhbV9ob3Jpem9udGFsRGF0YS52
YWx1ZSgpLmFuaW1hdGVTY3JvbGwoZGVsdGEpKQogICAgICAgICBtX2hvcml6b250YWxEYXRhID0g
V1RGOjpudWxsb3B0OwogCi0gICAgaWYgKG1fdmVydGljYWxEYXRhICYmICFtX3ZlcnRpY2FsRGF0
YS52YWx1ZSgpLmFuaW1hdGVTY3JvbGwoZGVsdGFUb05leHRGcmFtZSkpCisgICAgaWYgKG1fdmVy
dGljYWxEYXRhICYmICFtX3ZlcnRpY2FsRGF0YS52YWx1ZSgpLmFuaW1hdGVTY3JvbGwoZGVsdGEp
KQogICAgICAgICBtX3ZlcnRpY2FsRGF0YSA9IFdURjo6bnVsbG9wdDsKIAogICAgIC8vIElmIG9u
ZSBvZiB0aGUgYXhlcyBkaWRuJ3QgZmluaXNoIGl0cyBhbmltYXRpb24gd2UgbXVzdCBjb250aW51
ZSBpdC4KICAgICBpZiAobV9ob3Jpem9udGFsRGF0YSB8fCBtX3ZlcnRpY2FsRGF0YSkKLSAgICAg
ICAgbV9hbmltYXRpb25UaW1lci5zdGFydE9uZVNob3Qoc3RkOjptYXgobWluaW11bVRpbWVySW50
ZXJ2YWwsIGRlbHRhVG9OZXh0RnJhbWUpKTsKKyAgICAgICAgbV9hbmltYXRpb25UaW1lci5zdGFy
dE9uZVNob3Qoc3RkOjptYXgobWluaW11bVRpbWVySW50ZXJ2YWwsIGRlbHRhKSk7CiAKICAgICBk
b3VibGUgeCA9IG1faG9yaXpvbnRhbERhdGEgPyBtX2hvcml6b250YWxEYXRhLnZhbHVlKCkucG9z
aXRpb24oKSA6IG1fcG9zaXRpb24ueCgpOwogICAgIGRvdWJsZSB5ID0gbV92ZXJ0aWNhbERhdGEg
PyBtX3ZlcnRpY2FsRGF0YS52YWx1ZSgpLnBvc2l0aW9uKCkgOiBtX3Bvc2l0aW9uLnkoKTsKQEAg
LTIxMyw0ICsyMzIsMTAgQEAgdm9pZCBTY3JvbGxBbmltYXRpb25LaW5ldGljOjphbmltYXRpb25U
aW1lckZpcmVkKCkKICAgICBtX25vdGlmeVBvc2l0aW9uQ2hhbmdlZEZ1bmN0aW9uKEZsb2F0UG9p
bnQobV9wb3NpdGlvbikpOwogfQogCitTZWNvbmRzIFNjcm9sbEFuaW1hdGlvbktpbmV0aWM6OmRl
bHRhVG9OZXh0RnJhbWUoKQoreworICAgIE1vbm90b25pY1RpbWUgY3VycmVudFRpbWUgPSBNb25v
dG9uaWNUaW1lOjpub3coKTsKKyAgICByZXR1cm4gMV9zICogY2VpbCgoY3VycmVudFRpbWUgLSBt
X3N0YXJ0VGltZSkudmFsdWUoKSAqIGZyYW1lUmF0ZSkgLyBmcmFtZVJhdGUgLSAoY3VycmVudFRp
bWUgLSBtX3N0YXJ0VGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbktpbmV0aWMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbktpbmV0aWMuaAppbmRleCA2YWJl
NzllZjc3OGFmZDhmNDU4NjQ4YzI5N2IyZGE2MWE0NmM1NDIzLi4yMDdlZTQ5ODE4YTA0OGY4NWZm
NjZlZGJjOWE4MTZjN2MxOTE2OGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRpb25LaW5ldGljLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5oCkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIFBlckF4aXNEYXRhKGRvdWJsZSBsb3dlciwgZG91YmxlIHVwcGVyLCBkb3VibGUgaW5pdGlh
bFBvc2l0aW9uLCBkb3VibGUgaW5pdGlhbFZlbG9jaXR5KTsKIAogICAgICAgICBkb3VibGUgcG9z
aXRpb24oKSB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CisgICAgICAgIGRvdWJsZSB2ZWxvY2l0eSgp
IHsgcmV0dXJuIG1fdmVsb2NpdHk7IH0KIAogICAgICAgICBib29sIGFuaW1hdGVTY3JvbGwoU2Vj
b25kcyB0aW1lRGVsdGEpOwogCkBAIC03NCw2ICs3NSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICB2b2lkIGFuaW1hdGlvblRpbWVyRmlyZWQoKTsKKyAgICBTZWNvbmRzIGRlbHRhVG9OZXh0
RnJhbWUoKTsKIAogICAgIFNjcm9sbEV4dGVudHNDYWxsYmFjayBtX3Njcm9sbEV4dGVudHNGdW5j
dGlvbjsKICAgICBOb3RpZnlQb3NpdGlvbkNoYW5nZWRDYWxsYmFjayBtX25vdGlmeVBvc2l0aW9u
Q2hhbmdlZEZ1bmN0aW9uOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413586</attachid>
            <date>2020-11-09 08:38:38 -0800</date>
            <delta_ts>2020-11-09 09:19:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203914-20201109163837.patch</filename>
            <type>text/plain</type>
            <size>6865</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWEyZDMxZGI5OTAxZTcw
NjU4N2Y0YzRkNzA4NjQ3Njk5NzhjMGIzOC4uNzJmOTFmN2ViOGI0Yzg2OTU3NDIxNjBjZDNkOTRl
ZjE1MDFjZWZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTExLTA5ICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBraW5ldGljIHNjcm9s
bCBzcGVlZCBzaG91bGQgYmUgY3VtdWxhdGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzOTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9z
IEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgQWNjdW11bGF0ZSB2ZWxvY2l0eSBpbiB0aGUgc2Ft
ZSBkaXJlY3Rpb24gd2l0aCBTY3JvbGxBbmltYXRpb25LaW5ldGljLgorCisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxBbmltYXRpb25LaW5ldGljOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1h
dGlvbktpbmV0aWM6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvbktp
bmV0aWM6OmFuaW1hdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0aW9uS2luZXRpYzo6ZGVsdGFUb05leHRGcmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0aW9uS2luZXRpYy5oOgorCiAyMDIwLTExLTA5ICBDaHJpcyBMb3JkICA8Y2xvcmRA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIFNjcm9sbGluZyB3aXRoIG1vdXNlIHdo
ZWVsIGRvZXNuJ3Qgd29yayBvbiBpZnJhbWVzIHdpdGggYXN5bmMgc2Nyb2xsaW5nIGVuYWJsZWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbktpbmV0
aWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5j
cHAKaW5kZXggOWE1YTg5ZTk0YTg5N2UyNTUxNjY1OTExZDRkNmI4MTFjN2RlNThlMy4uMDIwMmY3
NzA3NWZjNDA2NzE3M2M2ZjVmNzhjZDgzNDlkOGVjZDI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5jcHAKQEAgLTY1LDExICs2NSwx
NCBAQAogICogICBmMih4KSA9IHQgZXhwKC1teCAvIDIpCiAgKi8KIAotc3RhdGljIGNvbnN0IGRv
dWJsZSBkZWNlbEZyaWN0aW9uID0gNDsKLXN0YXRpYyBjb25zdCBkb3VibGUgZnJhbWVSYXRlID0g
NjA7Ci1zdGF0aWMgY29uc3QgU2Vjb25kcyB0aWNrVGltZSA9IDFfcyAvIGZyYW1lUmF0ZTsKLXN0
YXRpYyBjb25zdCBTZWNvbmRzIG1pbmltdW1UaW1lckludGVydmFsIHsgMV9tcyB9Owotc3RhdGlj
IGNvbnN0IFNlY29uZHMgc2Nyb2xsQ2FwdHVyZVRocmVzaG9sZCB7IDE1MF9tcyB9Oworc3RhdGlj
IGNvbnN0ZXhwciBkb3VibGUgZGVjZWxGcmljdGlvbiA9IDI7CitzdGF0aWMgY29uc3RleHByIGRv
dWJsZSBmcmFtZVJhdGUgPSA2MDsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIHZlbG9jaXR5QWNj
dW11bGF0aW9uRmxvb3IgPSAwLjMzOworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgdmVsb2NpdHlB
Y2N1bXVsYXRpb25DZWlsID0gMS4wOworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgdmVsb2NpdHlB
Y2N1bXVsYXRpb25NYXggPSA2LjA7CitzdGF0aWMgY29uc3RleHByIFNlY29uZHMgdGlja1RpbWUg
PSAxX3MgLyBmcmFtZVJhdGU7CitzdGF0aWMgY29uc3RleHByIFNlY29uZHMgbWluaW11bVRpbWVy
SW50ZXJ2YWwgeyAxX21zIH07CitzdGF0aWMgY29uc3RleHByIFNlY29uZHMgc2Nyb2xsQ2FwdHVy
ZVRocmVzaG9sZCB7IDE1MF9tcyB9OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEyNCw4
ICsxMjcsNiBAQCBTY3JvbGxBbmltYXRpb25LaW5ldGljOjp+U2Nyb2xsQW5pbWF0aW9uS2luZXRp
YygpID0gZGVmYXVsdDsKIHZvaWQgU2Nyb2xsQW5pbWF0aW9uS2luZXRpYzo6c3RvcCgpCiB7CiAg
ICAgbV9hbmltYXRpb25UaW1lci5zdG9wKCk7Ci0gICAgbV9ob3Jpem9udGFsRGF0YSA9IFdURjo6
bnVsbG9wdDsKLSAgICBtX3ZlcnRpY2FsRGF0YSA9IFdURjo6bnVsbG9wdDsKIH0KIAogYm9vbCBT
Y3JvbGxBbmltYXRpb25LaW5ldGljOjppc0FjdGl2ZSgpIGNvbnN0CkBAIC0xNzEsNDEgKzE3Miw2
MyBAQCB2b2lkIFNjcm9sbEFuaW1hdGlvbktpbmV0aWM6OnN0YXJ0KGNvbnN0IEZsb2F0UG9pbnQm
IGluaXRpYWxQb3NpdGlvbiwgY29uc3QgRmxvYQogewogICAgIHN0b3AoKTsKIAotICAgIG1fcG9z
aXRpb24gPSBpbml0aWFsUG9zaXRpb247Ci0KLSAgICBpZiAoIXZlbG9jaXR5LngoKSAmJiAhdmVs
b2NpdHkueSgpKQorICAgIGlmICghdmVsb2NpdHkueCgpICYmICF2ZWxvY2l0eS55KCkpIHsKKyAg
ICAgICAgbV9wb3NpdGlvbiA9IGluaXRpYWxQb3NpdGlvbjsKKyAgICAgICAgbV9ob3Jpem9udGFs
RGF0YSA9IFdURjo6bnVsbG9wdDsKKyAgICAgICAgbV92ZXJ0aWNhbERhdGEgPSBXVEY6Om51bGxv
cHQ7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKKyAgICBhdXRvIGRlbHRhID0gZGVsdGFUb05l
eHRGcmFtZSgpOwogICAgIGF1dG8gZXh0ZW50cyA9IG1fc2Nyb2xsRXh0ZW50c0Z1bmN0aW9uKCk7
CisKKyAgICBhdXRvIGFjY3VtdWxhdGVWZWxvY2l0eSA9IFsmXShkb3VibGUgdmVsb2NpdHksIE9w
dGlvbmFsPFBlckF4aXNEYXRhPiBheGlzRGF0YSkgLT4gZG91YmxlIHsKKyAgICAgICAgaWYgKGF4
aXNEYXRhICYmIGF4aXNEYXRhLnZhbHVlKCkuYW5pbWF0ZVNjcm9sbChkZWx0YSkpIHsKKyAgICAg
ICAgICAgIGRvdWJsZSBsYXN0VmVsb2NpdHkgPSBheGlzRGF0YS52YWx1ZSgpLnZlbG9jaXR5KCk7
CisgICAgICAgICAgICBpZiAoKHN0ZDo6c2lnbmJpdChsYXN0VmVsb2NpdHkpID09IHN0ZDo6c2ln
bmJpdCh2ZWxvY2l0eSkpCisgICAgICAgICAgICAgICAgJiYgKHN0ZDo6YWJzKHZlbG9jaXR5KSA+
PSBzdGQ6OmFicyhsYXN0VmVsb2NpdHkgKiB2ZWxvY2l0eUFjY3VtdWxhdGlvbkZsb29yKSkpIHsK
KyAgICAgICAgICAgICAgICBkb3VibGUgbWluVmVsb2NpdHkgPSBsYXN0VmVsb2NpdHkgKiB2ZWxv
Y2l0eUFjY3VtdWxhdGlvbkZsb29yOworICAgICAgICAgICAgICAgIGRvdWJsZSBtYXhWZWxvY2l0
eSA9IGxhc3RWZWxvY2l0eSAqIHZlbG9jaXR5QWNjdW11bGF0aW9uQ2VpbDsKKyAgICAgICAgICAg
ICAgICBkb3VibGUgYWNjdW11bGF0aW9uTXVsdGlwbGllciA9ICh2ZWxvY2l0eSAtIG1pblZlbG9j
aXR5KSAvIChtYXhWZWxvY2l0eSAtIG1pblZlbG9jaXR5KTsKKyAgICAgICAgICAgICAgICB2ZWxv
Y2l0eSArPSBsYXN0VmVsb2NpdHkgKiBzdGQ6Om1pbihhY2N1bXVsYXRpb25NdWx0aXBsaWVyLCB2
ZWxvY2l0eUFjY3VtdWxhdGlvbk1heCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICByZXR1cm4gdmVsb2NpdHk7CisgICAgfTsKKwogICAgIGlmIChtYXlIU2Nyb2xsKSB7CiAg
ICAgICAgIG1faG9yaXpvbnRhbERhdGEgPSBQZXJBeGlzRGF0YShleHRlbnRzLm1pbmltdW1TY3Jv
bGxQb3NpdGlvbi54KCksCiAgICAgICAgICAgICBleHRlbnRzLm1heGltdW1TY3JvbGxQb3NpdGlv
bi54KCksCi0gICAgICAgICAgICBpbml0aWFsUG9zaXRpb24ueCgpLCB2ZWxvY2l0eS54KCkpOwot
ICAgIH0KKyAgICAgICAgICAgIGluaXRpYWxQb3NpdGlvbi54KCksIGFjY3VtdWxhdGVWZWxvY2l0
eSh2ZWxvY2l0eS54KCksIG1faG9yaXpvbnRhbERhdGEpKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
bV9ob3Jpem9udGFsRGF0YSA9IFdURjo6bnVsbG9wdDsKKwogICAgIGlmIChtYXlWU2Nyb2xsKSB7
CiAgICAgICAgIG1fdmVydGljYWxEYXRhID0gUGVyQXhpc0RhdGEoZXh0ZW50cy5taW5pbXVtU2Ny
b2xsUG9zaXRpb24ueSgpLAogICAgICAgICAgICAgZXh0ZW50cy5tYXhpbXVtU2Nyb2xsUG9zaXRp
b24ueSgpLAotICAgICAgICAgICAgaW5pdGlhbFBvc2l0aW9uLnkoKSwgdmVsb2NpdHkueSgpKTsK
LSAgICB9CisgICAgICAgICAgICBpbml0aWFsUG9zaXRpb24ueSgpLCBhY2N1bXVsYXRlVmVsb2Np
dHkodmVsb2NpdHkueSgpLCBtX3ZlcnRpY2FsRGF0YSkpOworICAgIH0gZWxzZQorICAgICAgICBt
X3ZlcnRpY2FsRGF0YSA9IFdURjo6bnVsbG9wdDsKIAorICAgIG1fcG9zaXRpb24gPSBpbml0aWFs
UG9zaXRpb247CiAgICAgbV9zdGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIHRpY2tU
aW1lIC8gMi47CiAgICAgYW5pbWF0aW9uVGltZXJGaXJlZCgpOwogfQogCiB2b2lkIFNjcm9sbEFu
aW1hdGlvbktpbmV0aWM6OmFuaW1hdGlvblRpbWVyRmlyZWQoKQogewotICAgIE1vbm90b25pY1Rp
bWUgY3VycmVudFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKLSAgICBTZWNvbmRzIGRlbHRh
VG9OZXh0RnJhbWUgPSAxX3MgKiBjZWlsKChjdXJyZW50VGltZSAtIG1fc3RhcnRUaW1lKS52YWx1
ZSgpICogZnJhbWVSYXRlKSAvIGZyYW1lUmF0ZSAtIChjdXJyZW50VGltZSAtIG1fc3RhcnRUaW1l
KTsKKyAgICBhdXRvIGRlbHRhID0gZGVsdGFUb05leHRGcmFtZSgpOwogCi0gICAgaWYgKG1faG9y
aXpvbnRhbERhdGEgJiYgIW1faG9yaXpvbnRhbERhdGEudmFsdWUoKS5hbmltYXRlU2Nyb2xsKGRl
bHRhVG9OZXh0RnJhbWUpKQorICAgIGlmIChtX2hvcml6b250YWxEYXRhICYmICFtX2hvcml6b250
YWxEYXRhLnZhbHVlKCkuYW5pbWF0ZVNjcm9sbChkZWx0YSkpCiAgICAgICAgIG1faG9yaXpvbnRh
bERhdGEgPSBXVEY6Om51bGxvcHQ7CiAKLSAgICBpZiAobV92ZXJ0aWNhbERhdGEgJiYgIW1fdmVy
dGljYWxEYXRhLnZhbHVlKCkuYW5pbWF0ZVNjcm9sbChkZWx0YVRvTmV4dEZyYW1lKSkKKyAgICBp
ZiAobV92ZXJ0aWNhbERhdGEgJiYgIW1fdmVydGljYWxEYXRhLnZhbHVlKCkuYW5pbWF0ZVNjcm9s
bChkZWx0YSkpCiAgICAgICAgIG1fdmVydGljYWxEYXRhID0gV1RGOjpudWxsb3B0OwogCiAgICAg
Ly8gSWYgb25lIG9mIHRoZSBheGVzIGRpZG4ndCBmaW5pc2ggaXRzIGFuaW1hdGlvbiB3ZSBtdXN0
IGNvbnRpbnVlIGl0LgogICAgIGlmIChtX2hvcml6b250YWxEYXRhIHx8IG1fdmVydGljYWxEYXRh
KQotICAgICAgICBtX2FuaW1hdGlvblRpbWVyLnN0YXJ0T25lU2hvdChzdGQ6Om1heChtaW5pbXVt
VGltZXJJbnRlcnZhbCwgZGVsdGFUb05leHRGcmFtZSkpOworICAgICAgICBtX2FuaW1hdGlvblRp
bWVyLnN0YXJ0T25lU2hvdChzdGQ6Om1heChtaW5pbXVtVGltZXJJbnRlcnZhbCwgZGVsdGEpKTsK
IAogICAgIGRvdWJsZSB4ID0gbV9ob3Jpem9udGFsRGF0YSA/IG1faG9yaXpvbnRhbERhdGEudmFs
dWUoKS5wb3NpdGlvbigpIDogbV9wb3NpdGlvbi54KCk7CiAgICAgZG91YmxlIHkgPSBtX3ZlcnRp
Y2FsRGF0YSA/IG1fdmVydGljYWxEYXRhLnZhbHVlKCkucG9zaXRpb24oKSA6IG1fcG9zaXRpb24u
eSgpOwpAQCAtMjEzLDQgKzIzNiwxMCBAQCB2b2lkIFNjcm9sbEFuaW1hdGlvbktpbmV0aWM6OmFu
aW1hdGlvblRpbWVyRmlyZWQoKQogICAgIG1fbm90aWZ5UG9zaXRpb25DaGFuZ2VkRnVuY3Rpb24o
RmxvYXRQb2ludChtX3Bvc2l0aW9uKSk7CiB9CiAKK1NlY29uZHMgU2Nyb2xsQW5pbWF0aW9uS2lu
ZXRpYzo6ZGVsdGFUb05leHRGcmFtZSgpCit7CisgICAgTW9ub3RvbmljVGltZSBjdXJyZW50VGlt
ZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgIHJldHVybiAxX3MgKiBjZWlsKChjdXJyZW50
VGltZSAtIG1fc3RhcnRUaW1lKS52YWx1ZSgpICogZnJhbWVSYXRlKSAvIGZyYW1lUmF0ZSAtIChj
dXJyZW50VGltZSAtIG1fc3RhcnRUaW1lKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRp
Yy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5oCmlu
ZGV4IDZhYmU3OWVmNzc4YWZkOGY0NTg2NDhjMjk3YjJkYTYxYTQ2YzU0MjMuLjIwN2VlNDk4MThh
MDQ4Zjg1ZmY2NmVkYmM5YTgxNmM3YzE5MTY4ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbktpbmV0aWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxBbmltYXRpb25LaW5ldGljLmgKQEAgLTQyLDYgKzQyLDcgQEAgcHJpdmF0
ZToKICAgICAgICAgUGVyQXhpc0RhdGEoZG91YmxlIGxvd2VyLCBkb3VibGUgdXBwZXIsIGRvdWJs
ZSBpbml0aWFsUG9zaXRpb24sIGRvdWJsZSBpbml0aWFsVmVsb2NpdHkpOwogCiAgICAgICAgIGRv
dWJsZSBwb3NpdGlvbigpIHsgcmV0dXJuIG1fcG9zaXRpb247IH0KKyAgICAgICAgZG91YmxlIHZl
bG9jaXR5KCkgeyByZXR1cm4gbV92ZWxvY2l0eTsgfQogCiAgICAgICAgIGJvb2wgYW5pbWF0ZVNj
cm9sbChTZWNvbmRzIHRpbWVEZWx0YSk7CiAKQEAgLTc0LDYgKzc1LDcgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIHZvaWQgYW5pbWF0aW9uVGltZXJGaXJlZCgpOworICAgIFNlY29uZHMgZGVs
dGFUb05leHRGcmFtZSgpOwogCiAgICAgU2Nyb2xsRXh0ZW50c0NhbGxiYWNrIG1fc2Nyb2xsRXh0
ZW50c0Z1bmN0aW9uOwogICAgIE5vdGlmeVBvc2l0aW9uQ2hhbmdlZENhbGxiYWNrIG1fbm90aWZ5
UG9zaXRpb25DaGFuZ2VkRnVuY3Rpb247Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413593</attachid>
            <date>2020-11-09 09:19:23 -0800</date>
            <delta_ts>2020-11-09 09:55:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203914-20201109171921.patch</filename>
            <type>text/plain</type>
            <size>6865</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWEyZDMxZGI5OTAxZTcw
NjU4N2Y0YzRkNzA4NjQ3Njk5NzhjMGIzOC4uNzJmOTFmN2ViOGI0Yzg2OTU3NDIxNjBjZDNkOTRl
ZjE1MDFjZWZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTExLTA5ICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBraW5ldGljIHNjcm9s
bCBzcGVlZCBzaG91bGQgYmUgY3VtdWxhdGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzOTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9z
IEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgQWNjdW11bGF0ZSB2ZWxvY2l0eSBpbiB0aGUgc2Ft
ZSBkaXJlY3Rpb24gd2l0aCBTY3JvbGxBbmltYXRpb25LaW5ldGljLgorCisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxBbmltYXRpb25LaW5ldGljOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1h
dGlvbktpbmV0aWM6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvbktp
bmV0aWM6OmFuaW1hdGlvblRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0aW9uS2luZXRpYzo6ZGVsdGFUb05leHRGcmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0aW9uS2luZXRpYy5oOgorCiAyMDIwLTExLTA5ICBDaHJpcyBMb3JkICA8Y2xvcmRA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIFNjcm9sbGluZyB3aXRoIG1vdXNlIHdo
ZWVsIGRvZXNuJ3Qgd29yayBvbiBpZnJhbWVzIHdpdGggYXN5bmMgc2Nyb2xsaW5nIGVuYWJsZWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbktpbmV0
aWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5j
cHAKaW5kZXggOWE1YTg5ZTk0YTg5N2UyNTUxNjY1OTExZDRkNmI4MTFjN2RlNThlMy4uMWJkODJm
ZmFhOWU1ZjMxOGVkY2M5ZjJkNmM4NDFhODljYmNiOTQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5jcHAKQEAgLTY1LDExICs2NSwx
NCBAQAogICogICBmMih4KSA9IHQgZXhwKC1teCAvIDIpCiAgKi8KIAotc3RhdGljIGNvbnN0IGRv
dWJsZSBkZWNlbEZyaWN0aW9uID0gNDsKLXN0YXRpYyBjb25zdCBkb3VibGUgZnJhbWVSYXRlID0g
NjA7Ci1zdGF0aWMgY29uc3QgU2Vjb25kcyB0aWNrVGltZSA9IDFfcyAvIGZyYW1lUmF0ZTsKLXN0
YXRpYyBjb25zdCBTZWNvbmRzIG1pbmltdW1UaW1lckludGVydmFsIHsgMV9tcyB9Owotc3RhdGlj
IGNvbnN0IFNlY29uZHMgc2Nyb2xsQ2FwdHVyZVRocmVzaG9sZCB7IDE1MF9tcyB9Oworc3RhdGlj
IGNvbnN0ZXhwciBkb3VibGUgZGVjZWxGcmljdGlvbiA9IDQ7CitzdGF0aWMgY29uc3RleHByIGRv
dWJsZSBmcmFtZVJhdGUgPSA2MDsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIHZlbG9jaXR5QWNj
dW11bGF0aW9uRmxvb3IgPSAwLjMzOworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgdmVsb2NpdHlB
Y2N1bXVsYXRpb25DZWlsID0gMS4wOworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgdmVsb2NpdHlB
Y2N1bXVsYXRpb25NYXggPSA2LjA7CitzdGF0aWMgY29uc3RleHByIFNlY29uZHMgdGlja1RpbWUg
PSAxX3MgLyBmcmFtZVJhdGU7CitzdGF0aWMgY29uc3RleHByIFNlY29uZHMgbWluaW11bVRpbWVy
SW50ZXJ2YWwgeyAxX21zIH07CitzdGF0aWMgY29uc3RleHByIFNlY29uZHMgc2Nyb2xsQ2FwdHVy
ZVRocmVzaG9sZCB7IDE1MF9tcyB9OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEyNCw4
ICsxMjcsNiBAQCBTY3JvbGxBbmltYXRpb25LaW5ldGljOjp+U2Nyb2xsQW5pbWF0aW9uS2luZXRp
YygpID0gZGVmYXVsdDsKIHZvaWQgU2Nyb2xsQW5pbWF0aW9uS2luZXRpYzo6c3RvcCgpCiB7CiAg
ICAgbV9hbmltYXRpb25UaW1lci5zdG9wKCk7Ci0gICAgbV9ob3Jpem9udGFsRGF0YSA9IFdURjo6
bnVsbG9wdDsKLSAgICBtX3ZlcnRpY2FsRGF0YSA9IFdURjo6bnVsbG9wdDsKIH0KIAogYm9vbCBT
Y3JvbGxBbmltYXRpb25LaW5ldGljOjppc0FjdGl2ZSgpIGNvbnN0CkBAIC0xNzEsNDEgKzE3Miw2
MyBAQCB2b2lkIFNjcm9sbEFuaW1hdGlvbktpbmV0aWM6OnN0YXJ0KGNvbnN0IEZsb2F0UG9pbnQm
IGluaXRpYWxQb3NpdGlvbiwgY29uc3QgRmxvYQogewogICAgIHN0b3AoKTsKIAotICAgIG1fcG9z
aXRpb24gPSBpbml0aWFsUG9zaXRpb247Ci0KLSAgICBpZiAoIXZlbG9jaXR5LngoKSAmJiAhdmVs
b2NpdHkueSgpKQorICAgIGlmICghdmVsb2NpdHkueCgpICYmICF2ZWxvY2l0eS55KCkpIHsKKyAg
ICAgICAgbV9wb3NpdGlvbiA9IGluaXRpYWxQb3NpdGlvbjsKKyAgICAgICAgbV9ob3Jpem9udGFs
RGF0YSA9IFdURjo6bnVsbG9wdDsKKyAgICAgICAgbV92ZXJ0aWNhbERhdGEgPSBXVEY6Om51bGxv
cHQ7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKKyAgICBhdXRvIGRlbHRhID0gZGVsdGFUb05l
eHRGcmFtZSgpOwogICAgIGF1dG8gZXh0ZW50cyA9IG1fc2Nyb2xsRXh0ZW50c0Z1bmN0aW9uKCk7
CisKKyAgICBhdXRvIGFjY3VtdWxhdGVWZWxvY2l0eSA9IFsmXShkb3VibGUgdmVsb2NpdHksIE9w
dGlvbmFsPFBlckF4aXNEYXRhPiBheGlzRGF0YSkgLT4gZG91YmxlIHsKKyAgICAgICAgaWYgKGF4
aXNEYXRhICYmIGF4aXNEYXRhLnZhbHVlKCkuYW5pbWF0ZVNjcm9sbChkZWx0YSkpIHsKKyAgICAg
ICAgICAgIGRvdWJsZSBsYXN0VmVsb2NpdHkgPSBheGlzRGF0YS52YWx1ZSgpLnZlbG9jaXR5KCk7
CisgICAgICAgICAgICBpZiAoKHN0ZDo6c2lnbmJpdChsYXN0VmVsb2NpdHkpID09IHN0ZDo6c2ln
bmJpdCh2ZWxvY2l0eSkpCisgICAgICAgICAgICAgICAgJiYgKHN0ZDo6YWJzKHZlbG9jaXR5KSA+
PSBzdGQ6OmFicyhsYXN0VmVsb2NpdHkgKiB2ZWxvY2l0eUFjY3VtdWxhdGlvbkZsb29yKSkpIHsK
KyAgICAgICAgICAgICAgICBkb3VibGUgbWluVmVsb2NpdHkgPSBsYXN0VmVsb2NpdHkgKiB2ZWxv
Y2l0eUFjY3VtdWxhdGlvbkZsb29yOworICAgICAgICAgICAgICAgIGRvdWJsZSBtYXhWZWxvY2l0
eSA9IGxhc3RWZWxvY2l0eSAqIHZlbG9jaXR5QWNjdW11bGF0aW9uQ2VpbDsKKyAgICAgICAgICAg
ICAgICBkb3VibGUgYWNjdW11bGF0aW9uTXVsdGlwbGllciA9ICh2ZWxvY2l0eSAtIG1pblZlbG9j
aXR5KSAvIChtYXhWZWxvY2l0eSAtIG1pblZlbG9jaXR5KTsKKyAgICAgICAgICAgICAgICB2ZWxv
Y2l0eSArPSBsYXN0VmVsb2NpdHkgKiBzdGQ6Om1pbihhY2N1bXVsYXRpb25NdWx0aXBsaWVyLCB2
ZWxvY2l0eUFjY3VtdWxhdGlvbk1heCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICByZXR1cm4gdmVsb2NpdHk7CisgICAgfTsKKwogICAgIGlmIChtYXlIU2Nyb2xsKSB7CiAg
ICAgICAgIG1faG9yaXpvbnRhbERhdGEgPSBQZXJBeGlzRGF0YShleHRlbnRzLm1pbmltdW1TY3Jv
bGxQb3NpdGlvbi54KCksCiAgICAgICAgICAgICBleHRlbnRzLm1heGltdW1TY3JvbGxQb3NpdGlv
bi54KCksCi0gICAgICAgICAgICBpbml0aWFsUG9zaXRpb24ueCgpLCB2ZWxvY2l0eS54KCkpOwot
ICAgIH0KKyAgICAgICAgICAgIGluaXRpYWxQb3NpdGlvbi54KCksIGFjY3VtdWxhdGVWZWxvY2l0
eSh2ZWxvY2l0eS54KCksIG1faG9yaXpvbnRhbERhdGEpKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
bV9ob3Jpem9udGFsRGF0YSA9IFdURjo6bnVsbG9wdDsKKwogICAgIGlmIChtYXlWU2Nyb2xsKSB7
CiAgICAgICAgIG1fdmVydGljYWxEYXRhID0gUGVyQXhpc0RhdGEoZXh0ZW50cy5taW5pbXVtU2Ny
b2xsUG9zaXRpb24ueSgpLAogICAgICAgICAgICAgZXh0ZW50cy5tYXhpbXVtU2Nyb2xsUG9zaXRp
b24ueSgpLAotICAgICAgICAgICAgaW5pdGlhbFBvc2l0aW9uLnkoKSwgdmVsb2NpdHkueSgpKTsK
LSAgICB9CisgICAgICAgICAgICBpbml0aWFsUG9zaXRpb24ueSgpLCBhY2N1bXVsYXRlVmVsb2Np
dHkodmVsb2NpdHkueSgpLCBtX3ZlcnRpY2FsRGF0YSkpOworICAgIH0gZWxzZQorICAgICAgICBt
X3ZlcnRpY2FsRGF0YSA9IFdURjo6bnVsbG9wdDsKIAorICAgIG1fcG9zaXRpb24gPSBpbml0aWFs
UG9zaXRpb247CiAgICAgbV9zdGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIHRpY2tU
aW1lIC8gMi47CiAgICAgYW5pbWF0aW9uVGltZXJGaXJlZCgpOwogfQogCiB2b2lkIFNjcm9sbEFu
aW1hdGlvbktpbmV0aWM6OmFuaW1hdGlvblRpbWVyRmlyZWQoKQogewotICAgIE1vbm90b25pY1Rp
bWUgY3VycmVudFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKLSAgICBTZWNvbmRzIGRlbHRh
VG9OZXh0RnJhbWUgPSAxX3MgKiBjZWlsKChjdXJyZW50VGltZSAtIG1fc3RhcnRUaW1lKS52YWx1
ZSgpICogZnJhbWVSYXRlKSAvIGZyYW1lUmF0ZSAtIChjdXJyZW50VGltZSAtIG1fc3RhcnRUaW1l
KTsKKyAgICBhdXRvIGRlbHRhID0gZGVsdGFUb05leHRGcmFtZSgpOwogCi0gICAgaWYgKG1faG9y
aXpvbnRhbERhdGEgJiYgIW1faG9yaXpvbnRhbERhdGEudmFsdWUoKS5hbmltYXRlU2Nyb2xsKGRl
bHRhVG9OZXh0RnJhbWUpKQorICAgIGlmIChtX2hvcml6b250YWxEYXRhICYmICFtX2hvcml6b250
YWxEYXRhLnZhbHVlKCkuYW5pbWF0ZVNjcm9sbChkZWx0YSkpCiAgICAgICAgIG1faG9yaXpvbnRh
bERhdGEgPSBXVEY6Om51bGxvcHQ7CiAKLSAgICBpZiAobV92ZXJ0aWNhbERhdGEgJiYgIW1fdmVy
dGljYWxEYXRhLnZhbHVlKCkuYW5pbWF0ZVNjcm9sbChkZWx0YVRvTmV4dEZyYW1lKSkKKyAgICBp
ZiAobV92ZXJ0aWNhbERhdGEgJiYgIW1fdmVydGljYWxEYXRhLnZhbHVlKCkuYW5pbWF0ZVNjcm9s
bChkZWx0YSkpCiAgICAgICAgIG1fdmVydGljYWxEYXRhID0gV1RGOjpudWxsb3B0OwogCiAgICAg
Ly8gSWYgb25lIG9mIHRoZSBheGVzIGRpZG4ndCBmaW5pc2ggaXRzIGFuaW1hdGlvbiB3ZSBtdXN0
IGNvbnRpbnVlIGl0LgogICAgIGlmIChtX2hvcml6b250YWxEYXRhIHx8IG1fdmVydGljYWxEYXRh
KQotICAgICAgICBtX2FuaW1hdGlvblRpbWVyLnN0YXJ0T25lU2hvdChzdGQ6Om1heChtaW5pbXVt
VGltZXJJbnRlcnZhbCwgZGVsdGFUb05leHRGcmFtZSkpOworICAgICAgICBtX2FuaW1hdGlvblRp
bWVyLnN0YXJ0T25lU2hvdChzdGQ6Om1heChtaW5pbXVtVGltZXJJbnRlcnZhbCwgZGVsdGEpKTsK
IAogICAgIGRvdWJsZSB4ID0gbV9ob3Jpem9udGFsRGF0YSA/IG1faG9yaXpvbnRhbERhdGEudmFs
dWUoKS5wb3NpdGlvbigpIDogbV9wb3NpdGlvbi54KCk7CiAgICAgZG91YmxlIHkgPSBtX3ZlcnRp
Y2FsRGF0YSA/IG1fdmVydGljYWxEYXRhLnZhbHVlKCkucG9zaXRpb24oKSA6IG1fcG9zaXRpb24u
eSgpOwpAQCAtMjEzLDQgKzIzNiwxMCBAQCB2b2lkIFNjcm9sbEFuaW1hdGlvbktpbmV0aWM6OmFu
aW1hdGlvblRpbWVyRmlyZWQoKQogICAgIG1fbm90aWZ5UG9zaXRpb25DaGFuZ2VkRnVuY3Rpb24o
RmxvYXRQb2ludChtX3Bvc2l0aW9uKSk7CiB9CiAKK1NlY29uZHMgU2Nyb2xsQW5pbWF0aW9uS2lu
ZXRpYzo6ZGVsdGFUb05leHRGcmFtZSgpCit7CisgICAgTW9ub3RvbmljVGltZSBjdXJyZW50VGlt
ZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgIHJldHVybiAxX3MgKiBjZWlsKChjdXJyZW50
VGltZSAtIG1fc3RhcnRUaW1lKS52YWx1ZSgpICogZnJhbWVSYXRlKSAvIGZyYW1lUmF0ZSAtIChj
dXJyZW50VGltZSAtIG1fc3RhcnRUaW1lKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRp
Yy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5oCmlu
ZGV4IDZhYmU3OWVmNzc4YWZkOGY0NTg2NDhjMjk3YjJkYTYxYTQ2YzU0MjMuLjIwN2VlNDk4MThh
MDQ4Zjg1ZmY2NmVkYmM5YTgxNmM3YzE5MTY4ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbktpbmV0aWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxBbmltYXRpb25LaW5ldGljLmgKQEAgLTQyLDYgKzQyLDcgQEAgcHJpdmF0
ZToKICAgICAgICAgUGVyQXhpc0RhdGEoZG91YmxlIGxvd2VyLCBkb3VibGUgdXBwZXIsIGRvdWJs
ZSBpbml0aWFsUG9zaXRpb24sIGRvdWJsZSBpbml0aWFsVmVsb2NpdHkpOwogCiAgICAgICAgIGRv
dWJsZSBwb3NpdGlvbigpIHsgcmV0dXJuIG1fcG9zaXRpb247IH0KKyAgICAgICAgZG91YmxlIHZl
bG9jaXR5KCkgeyByZXR1cm4gbV92ZWxvY2l0eTsgfQogCiAgICAgICAgIGJvb2wgYW5pbWF0ZVNj
cm9sbChTZWNvbmRzIHRpbWVEZWx0YSk7CiAKQEAgLTc0LDYgKzc1LDcgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIHZvaWQgYW5pbWF0aW9uVGltZXJGaXJlZCgpOworICAgIFNlY29uZHMgZGVs
dGFUb05leHRGcmFtZSgpOwogCiAgICAgU2Nyb2xsRXh0ZW50c0NhbGxiYWNrIG1fc2Nyb2xsRXh0
ZW50c0Z1bmN0aW9uOwogICAgIE5vdGlmeVBvc2l0aW9uQ2hhbmdlZENhbGxiYWNrIG1fbm90aWZ5
UG9zaXRpb25DaGFuZ2VkRnVuY3Rpb247Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>