<?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>230541</bug_id>
          
          <creation_ts>2021-09-21 02:55:43 -0700</creation_ts>
          <short_desc>[GTK] Allow sending precise mouse wheel events in LayoutTests</short_desc>
          <delta_ts>2021-09-23 01:19:18 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>229037</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Lord">clord</reporter>
          <assigned_to name="Chris Lord">clord</assigned_to>
          <cc>berto</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1795492</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-09-21 02:55:43 -0700</bug_when>
    <thetext>Currently in TestRunner you can send a mouse wheel event with start/end phases, but you can&apos;t actually send pixel or sub-pixel precise mouse-wheel events. This is a bit of a pain for GTK specifically because kinetic scrolling can only be exercised with precise mouse-wheel events. This is actually the same for other platforms that use sync scrolling and the base scroll animation classes, but I suspect GTK is the main consumer here (and the only one I can easily test).

We may well want this behaviour on other non-Mac/iOS platforms, such as WPE, but I&apos;m dealing with GTK first as it&apos;s the easiest to test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795496</commentid>
    <comment_count>1</comment_count>
      <attachid>438799</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-09-21 03:05:24 -0700</bug_when>
    <thetext>Created attachment 438799
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795497</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-09-21 03:06:36 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795590</commentid>
    <comment_count>3</comment_count>
      <attachid>438799</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-21 09:20:46 -0700</bug_when>
    <thetext>Comment on attachment 438799
Patch

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

&gt; Source/WebKit/UIProcess/API/gtk/WebKitWebViewBaseInternal.h:48
&gt; +WK_EXPORT void webkitWebViewBaseSetWheelEventsArePrecise(WebKitWebViewBase*, bool);

HasPreciseDeltas

&gt; Tools/WebKitTestRunner/EventSenderProxy.h:66
&gt; +    void setMouseWheelIsPrecise(bool);

I think setMouseWheelHasPreciseDeltas() would be a better name.

&gt; Tools/WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl:41
&gt; +    undefined setMouseWheelIsPrecise(boolean isPrecise);

setMouseWheelHasPreciseDeltas

&gt; Tools/WebKitTestRunner/InjectedBundle/EventSendingController.cpp:382
&gt; +    WKBundlePageForceRepaint(InjectedBundle::singleton().page()-&gt;page()); // Triggers a scrolling tree commit.

This is a weird thing to do here, and could affect test behavior.

&gt; Tools/WebKitTestRunner/InjectedBundle/EventSendingController.h:61
&gt; +    void setMouseWheelIsPrecise(bool);

setMouseWheelHasPreciseDeltas</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795997</commentid>
    <comment_count>4</comment_count>
      <attachid>438936</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-09-22 02:36:48 -0700</bug_when>
    <thetext>Created attachment 438936
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795998</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-09-22 02:40:09 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; Comment on attachment 438799 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=438799&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/gtk/WebKitWebViewBaseInternal.h:48
&gt; &gt; +WK_EXPORT void webkitWebViewBaseSetWheelEventsArePrecise(WebKitWebViewBase*, bool);
&gt; 
&gt; HasPreciseDeltas
&gt; 
&gt; &gt; Tools/WebKitTestRunner/EventSenderProxy.h:66
&gt; &gt; +    void setMouseWheelIsPrecise(bool);
&gt; 
&gt; I think setMouseWheelHasPreciseDeltas() would be a better name.
&gt; 
&gt; &gt; Tools/WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl:41
&gt; &gt; +    undefined setMouseWheelIsPrecise(boolean isPrecise);
&gt; 
&gt; setMouseWheelHasPreciseDeltas
&gt; 
&gt; &gt; Tools/WebKitTestRunner/InjectedBundle/EventSendingController.cpp:382
&gt; &gt; +    WKBundlePageForceRepaint(InjectedBundle::singleton().page()-&gt;page()); // Triggers a scrolling tree commit.
&gt; 
&gt; This is a weird thing to do here, and could affect test behavior.
&gt; 
&gt; &gt; Tools/WebKitTestRunner/InjectedBundle/EventSendingController.h:61
&gt; &gt; +    void setMouseWheelIsPrecise(bool);
&gt; 
&gt; setMouseWheelHasPreciseDeltas

All sounds good, I went with the shorter setWheelHasPreciseDeltas, but don&apos;t mind changing it if you don&apos;t like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796398</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-23 01:18:53 -0700</bug_when>
    <thetext>Committed r282952 (242042@main): &lt;https://commits.webkit.org/242042@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438936.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796399</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-23 01:19:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/83436653&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438799</attachid>
            <date>2021-09-21 03:05:24 -0700</date>
            <delta_ts>2021-09-22 02:36:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230541-20210921110523.patch</filename>
            <type>text/plain</type>
            <size>13523</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFiYTcyOTk1M2QzZGUyYzY4
ODc5MTcyNDEwYTM0ODljNWRiM2RkYTcuLjAwYjc4Y2QyZDQwZTczNjU2NzY4MDcwMGE1ZWJiNDRk
OWU0NTg3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDktMjEgIENocmlzIExv
cmQgIDxjbG9yZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEFsbG93IHNlbmRpbmcgcHJl
Y2lzZSBtb3VzZSB3aGVlbCBldmVudHMgaW4gTGF5b3V0VGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDU0MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBjb2RlIHRvIGJlIGFibGUgdG8gc2Vu
ZCBwcmVjaXNlIHN5bnRoZXRpYyBtb3VzZS13aGVlbCBldmVudHMgaW4gR1RLLgorCisgICAgICAg
ICogU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvZ3RrL05h
dGl2ZVdlYldoZWVsRXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpOYXRpdmVXZWJXaGVl
bEV2ZW50OjpOYXRpdmVXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZVN5bnRo
ZXNpemVXaGVlbEV2ZW50KToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlU2V0V2hlZWxFdmVu
dHNBcmVQcmVjaXNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
QmFzZUludGVybmFsLmg6CisKIDIwMjEtMDktMTQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI3NDkyOSk6IFtDb29yZGlu
YXRlZEdyYXBoaWNzXSBEcmF3aW5nQXJlYUNvb3JkaW5hdGVkR3JhcGhpY3M6OmNyZWF0ZURpc3Bs
YXlSZWZyZXNoTW9uaXRvciBpcyBubyBsb25nZXIgdXNlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
TmF0aXZlV2ViV2hlZWxFdmVudC5oCmluZGV4IGY0OGRjMDA3NTViNjg0N2YyYzEzZTVmN2RhYzY1
MmMyYTkxZjY2ZWEuLmYyZjM5NzlmY2FjOWRmZDk3ZDBlMGVhZDYwMGZlMzVlYjhkZWZkNDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKQEAgLTYxLDcgKzYx
LDcgQEAgcHVibGljOgogICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoR2RrRXZlbnQqKTsKICAgICBO
YXRpdmVXZWJXaGVlbEV2ZW50KEdka0V2ZW50KiwgV2ViV2hlZWxFdmVudDo6UGhhc2UsIFdlYldo
ZWVsRXZlbnQ6OlBoYXNlIG1vbWVudHVtUGhhc2UpOwogICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQo
R2RrRXZlbnQqLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgd2hlZWxUaWNrcyk7Ci0gICAgTmF0aXZlV2ViV2hlZWxFdmVudChHZGtFdmVudCosIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIFdlYldoZWVsRXZlbnQ6OlBoYXNlLCBXZWJX
aGVlbEV2ZW50OjpQaGFzZSBtb21lbnR1bVBoYXNlKTsKKyAgICBOYXRpdmVXZWJXaGVlbEV2ZW50
KEdka0V2ZW50KiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
ZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgV2ViV2hlZWxFdmVu
dDo6UGhhc2UsIFdlYldoZWVsRXZlbnQ6OlBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFzUHJl
Y2lzZURlbHRhcyA9IGZhbHNlKTsKICNlbGlmIFVTRShMSUJXUEUpCiAgICAgTmF0aXZlV2ViV2hl
ZWxFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZh
Y3RvciwgV2ViV2hlZWxFdmVudDo6UGhhc2UsIFdlYldoZWVsRXZlbnQ6OlBoYXNlIG1vbWVudHVt
UGhhc2UpOwogI2VsaWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvZ3RrL05hdGl2ZVdlYldoZWVsRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvZ3RrL05hdGl2ZVdlYldoZWVsRXZlbnRHdGsuY3BwCmluZGV4IDNhNjliZTA0NDg4MWExMTc1
YWE4YmM5MTY3MzllYmQxMDQ1ZjYwMTkuLmJmNDFkMTU3N2I2NGMxNDZlYjc1NzQwMWZkY2JiMGIz
NmI5OTA4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9OYXRpdmVXZWJX
aGVlbEV2ZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvTmF0aXZlV2Vi
V2hlZWxFdmVudEd0ay5jcHAKQEAgLTQ5LDggKzQ5LDggQEAgTmF0aXZlV2ViV2hlZWxFdmVudDo6
TmF0aXZlV2ViV2hlZWxFdmVudChHZGtFdmVudCogZXZlbnQsIGNvbnN0IFdlYkNvcmU6OkludFBv
aW4KIHsKIH0KIAotTmF0aXZlV2ViV2hlZWxFdmVudDo6TmF0aXZlV2ViV2hlZWxFdmVudChHZGtF
dmVudCAqZXZlbnQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIFdlYldoZWVsRXZl
bnQ6OlBoYXNlIHBoYXNlLCBXZWJXaGVlbEV2ZW50OjpQaGFzZSBtb21lbnR1bVBoYXNlKQotICAg
IDogV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIHBvc2l0aW9uLCBnbG9iYWxQb3NpdGlv
biwgZGVsdGEsIHdoZWVsVGlja3MsIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBXZWJXaGVlbEV2ZW50
OjpTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCwgZmFsc2UsIHsgfSwgV2FsbFRpbWU6Om5vdygpKQor
TmF0aXZlV2ViV2hlZWxFdmVudDo6TmF0aXZlV2ViV2hlZWxFdmVudChHZGtFdmVudCAqZXZlbnQs
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIFdlYldoZWVsRXZlbnQ6OlBoYXNlIHBo
YXNlLCBXZWJXaGVlbEV2ZW50OjpQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VE
ZWx0YXMpCisgICAgOiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgcG9zaXRpb24sIGds
b2JhbFBvc2l0aW9uLCBkZWx0YSwgd2hlZWxUaWNrcywgcGhhc2UsIG1vbWVudHVtUGhhc2UsIFdl
YldoZWVsRXZlbnQ6OlNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCBoYXNQcmVjaXNlRGVsdGFzLCB7
IH0sIFdhbGxUaW1lOjpub3coKSkKICAgICAsIG1fbmF0aXZlRXZlbnQoZXZlbnQgPyBnZGtfZXZl
bnRfY29weShldmVudCkgOiBudWxscHRyKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCBjNGE5ODMzZTI4
YmI1MGQxZjg3NWFhMWM1YWQwNTdjZWUwMWQyODFhLi5kODNlNGEyMTMxNjNlNjAxNzExOTFhODU3
MDdlZjVjNGI0M2U1NjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcApAQCAtMjg0LDYgKzI4NCw3IEBAIHN0cnVjdCBf
V2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlIHsKICAgICBUb3VjaEV2ZW50c01hcCB0b3VjaEV2ZW50
czsKICAgICBJbnRTaXplIGNvbnRlbnRzU2l6ZTsKICAgICBzdGQ6Om9wdGlvbmFsPE1vdGlvbkV2
ZW50PiBsYXN0TW90aW9uRXZlbnQ7CisgICAgYm9vbCBtb3VzZVdoZWVsSXNQcmVjaXNlIHsgZmFs
c2UgfTsKICAgICBib29sIGlzQmxhbms7CiAgICAgYm9vbCBzaG91bGROb3RpZnlGb2N1c0V2ZW50
cyB7IHRydWUgfTsKIApAQCAtMjk5NCwxMCArMjk5NSwxNiBAQCB2b2lkIHdlYmtpdFdlYlZpZXdC
YXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlLCBj
b25zdAogCiAgICAgRmxvYXRTaXplIHdoZWVsVGlja3MoZGVsdGFYLCBkZWx0YVkpOwogICAgIEZs
b2F0U2l6ZSBkZWx0YSh3aGVlbFRpY2tzKTsKLSAgICBkZWx0YS5zY2FsZShzdGF0aWNfY2FzdDxm
bG9hdD4oU2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpKSk7CisgICAgaWYgKCFwcml2LT5t
b3VzZVdoZWVsSXNQcmVjaXNlKQorICAgICAgICBkZWx0YS5zY2FsZShzdGF0aWNfY2FzdDxmbG9h
dD4oU2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpKSk7CiAKICAgICBwcml2LT5wYWdlUHJv
eHktPmhhbmRsZVdoZWVsRXZlbnQoTmF0aXZlV2ViV2hlZWxFdmVudChjb25zdF9jYXN0PEdka0V2
ZW50Kj4oZXZlbnQpLCB7IHgsIHkgfSwgd2lkZ2V0Um9vdENvb3JkcyhHVEtfV0lER0VUKHdlYlZp
ZXdCYXNlKSwgeCwgeSksCi0gICAgICAgIGRlbHRhLCB3aGVlbFRpY2tzLCB0b1dlYktpdFdoZWVs
RXZlbnRQaGFzZShwaGFzZSksIHRvV2ViS2l0V2hlZWxFdmVudFBoYXNlKG1vbWVudHVtUGhhc2Up
KSk7CisgICAgICAgIGRlbHRhLCB3aGVlbFRpY2tzLCB0b1dlYktpdFdoZWVsRXZlbnRQaGFzZShw
aGFzZSksIHRvV2ViS2l0V2hlZWxFdmVudFBoYXNlKG1vbWVudHVtUGhhc2UpLCBwcml2LT5tb3Vz
ZVdoZWVsSXNQcmVjaXNlKSk7Cit9CisKK3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VTZXRXaGVlbEV2
ZW50c0FyZVByZWNpc2UoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlLCBib29sIGFyZVBy
ZWNpc2UpCit7CisgICAgd2ViVmlld0Jhc2UtPnByaXYtPm1vdXNlV2hlZWxJc1ByZWNpc2UgPSBh
cmVQcmVjaXNlOwogfQogCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlTWFrZUJsYW5rKFdlYktpdFdl
YlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSwgYm9vbCBtYWtlQmxhbmspCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlSW50ZXJuYWwuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VJbnRlcm5h
bC5oCmluZGV4IGY1ZDIzMzc4YTYwNmRkOGNhNzQxYWExYmY3YjJkYmZhNGE1MzM2M2YuLmNlMjIy
NjVkMGRmNmQzZTk2M2VkNGYzODg5OWRmZjFkOGE5ZTUyYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VJbnRlcm5hbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VJbnRlcm5h
bC5oCkBAIC00NSwzICs0NSw1IEBAIFdLX0VYUE9SVCB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU3lu
dGhlc2l6ZUtleUV2ZW50KFdlYktpdFdlYlZpZXdCYXNlKiwgS2V5RXZlbnRUCiAKIGVudW0gY2xh
c3MgV2hlZWxFdmVudFBoYXNlIHsgTm9QaGFzZSwgQmVnYW4sIENoYW5nZWQsIEVuZGVkLCBDYW5j
ZWxsZWQsIE1heUJlZ2luIH07CiBXS19FWFBPUlQgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVN5bnRo
ZXNpemVXaGVlbEV2ZW50KFdlYktpdFdlYlZpZXdCYXNlKiwgZG91YmxlIGRlbHRhWCwgZG91Ymxl
IGRlbHRhWSwgaW50IHgsIGludCB5LCBXaGVlbEV2ZW50UGhhc2UsIFdoZWVsRXZlbnRQaGFzZSBt
b21lbnR1bVBoYXNlKTsKK1dLX0VYUE9SVCB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0V2hlZWxF
dmVudHNBcmVQcmVjaXNlKFdlYktpdFdlYlZpZXdCYXNlKiwgYm9vbCk7CisKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0M2IyNTMyYTFiNjhjNDE0
YjM3NjM2MzViOTQ4Nzg0ZDRmYTU3NTVhLi5mMjE3YmU5ODg1ZjJlZjJiZTdhODQxNmM2ODc0Yjdl
MmEwNGJjMGI5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMDktMjEgIENocmlzIExvcmQgIDxjbG9yZEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHVEtdIEFsbG93IHNlbmRpbmcgcHJlY2lzZSBtb3VzZSB3aGVl
bCBldmVudHMgaW4gTGF5b3V0VGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMDU0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBBUEkgdG8gYmUgYWJsZSB0byBzZW5kIHByZWNpc2UgbW91c2Ut
d2hlZWwgZXZlbnRzIGluIEV2ZW50U2VuZGVyLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9FdmVudFNlbmRlclByb3h5Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV1RSOjpFdmVudFNlbmRpbmdDb250cm9sbGVyOjpzZXRNb3VzZVdoZWVsSXNQ
cmVjaXNlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50
U2VuZGluZ0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVNZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2d0ay9F
dmVudFNlbmRlclByb3h5R3RrLmNwcDoKKyAgICAgICAgKFdUUjo6dG9XZWJLaXRHTGliQVBJKToK
KyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6fkV2ZW50U2VuZGVyUHJveHkpOgorICAg
ICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjpzZXRNb3VzZVdoZWVsSXNQcmVjaXNlKToKKwog
MjAyMS0wOS0xMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbbWFjT1NdIC10b2dnbGVBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb246IG1lbnUgaXRl
bSB2YWxpZGF0aW9uIHNob3VsZG4ndCByZXF1aXJlIHBvc3QtbGF5b3V0IGVkaXRvciBzdGF0ZQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5LmggYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaAppbmRleCAxOGZhODkyZTQy
N2MwMDBjZDM1N2ZlMTFkODQ1ZWMyMDljZjIxMWQzLi4xOGMzZmRkMjQzNjgzMWI3ZmE0NTczMzBm
ZTBlZGZiYTk4YjAxNzlkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50
U2VuZGVyUHJveHkuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJv
eHkuaApAQCAtNjIsNiArNjIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3VzZU1vdmVUbyhkb3Vi
bGUgeCwgZG91YmxlIHksIFdLU3RyaW5nUmVmIHBvaW50ZXJUeXBlID0gbnVsbHB0cik7CiAgICAg
dm9pZCBtb3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSk7CiAgICAgdm9pZCBtb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5LCBpbnQgcGhhc2UsIGludCBt
b21lbnR1bSk7CisjaWYgUExBVEZPUk0oR1RLKQorICAgIHZvaWQgc2V0TW91c2VXaGVlbElzUHJl
Y2lzZShib29sKTsKKyNlbmRpZgogICAgIHZvaWQgY29udGludW91c01vdXNlU2Nyb2xsQnkoaW50
IHgsIGludCB5LCBib29sIHBhZ2VkKTsKIAogICAgIHZvaWQgbGVhcEZvcndhcmQoaW50IG1pbGxp
c2Vjb25kcyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlk
bAppbmRleCBjOTAyM2UxMjdmYzVlMzRjODU5NzVkZTc0MjIyNjY4ZjBlMGQ5NTkzLi4zZWZlMmU0
NjE0MzJkZGE2NDY1YmE2NmEyOWQ4OGY3MmU5ZTJhMDU5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xs
ZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGwKQEAgLTM4LDYgKzM4LDcgQEAgaW50ZXJmYWNl
IEV2ZW50U2VuZGluZ0NvbnRyb2xsZXIgewogICAgIHVuZGVmaW5lZCBtb3VzZUZvcmNlQ2hhbmdl
ZChkb3VibGUgZm9yY2UpOwogICAgIHVuZGVmaW5lZCBtb3VzZVNjcm9sbEJ5KGxvbmcgeCwgbG9u
ZyB5KTsKICAgICB1bmRlZmluZWQgbW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKGxvbmcgeCwgbG9uZyB5LCBET01TdHJpbmcgcGhhc2UsIERPTVN0cmluZyBtb21lbnR1bSk7
CisgICAgdW5kZWZpbmVkIHNldE1vdXNlV2hlZWxJc1ByZWNpc2UoYm9vbGVhbiBpc1ByZWNpc2Up
OwogICAgIHVuZGVmaW5lZCBjb250aW51b3VzTW91c2VTY3JvbGxCeShsb25nIHgsIGxvbmcgeSwg
b3B0aW9uYWwgYm9vbGVhbiBwYWdlZCk7CiAgICAgb2JqZWN0IGNvbnRleHRDbGljaygpOwogICAg
IHVuZGVmaW5lZCBzY2hlZHVsZUFzeW5jaHJvbm91c0NsaWNrKCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdD
b250cm9sbGVyLmNwcAppbmRleCAyYWU5Njc4ZDc3N2MyODk3OTU2ODMxMGU0ZWE0ZGI0MzE0ZTkz
NGQyLi44ZDg3NzA0Yjc5NTBhY2VkNDUwMmU3ZGUxN2U2MTU1ZWM4MzhhN2FhIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRy
b2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZl
bnRTZW5kaW5nQ29udHJvbGxlci5jcHAKQEAgLTM3Nyw2ICszNzcsMTUgQEAgdm9pZCBFdmVudFNl
bmRpbmdDb250cm9sbGVyOjptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
aW50IHgsIGludAogICAgIHBvc3RQYWdlTWVzc2FnZSgiRXZlbnRTZW5kZXIiLCBib2R5KTsKIH0K
IAordm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjpzZXRNb3VzZVdoZWVsSXNQcmVjaXNlKGJv
b2wgaXNQcmVjaXNlKQoreworICAgIFdLQnVuZGxlUGFnZUZvcmNlUmVwYWludChJbmplY3RlZEJ1
bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCkpOyAvLyBUcmlnZ2VycyBhIHNjcm9sbGlu
ZyB0cmVlIGNvbW1pdC4KKyAgICBhdXRvIGJvZHkgPSBhZG9wdFdLKFdLTXV0YWJsZURpY3Rpb25h
cnlDcmVhdGUoKSk7CisgICAgc2V0VmFsdWUoYm9keSwgIlN1Yk1lc3NhZ2UiLCAiU2V0TW91c2VX
aGVlbElzUHJlY2lzZSIpOworICAgIHNldFZhbHVlKGJvZHksICJJc1ByZWNpc2UiLCBpc1ByZWNp
c2UpOworICAgIHBvc3RQYWdlTWVzc2FnZSgiRXZlbnRTZW5kZXIiLCBib2R5KTsKK30KKwogdm9p
ZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjpjb250aW51b3VzTW91c2VTY3JvbGxCeShpbnQgeCwg
aW50IHksIGJvb2wgcGFnZWQpCiB7CiAgICAgYXV0byBib2R5ID0gYWRvcHRXSyhXS011dGFibGVE
aWN0aW9uYXJ5Q3JlYXRlKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaAppbmRleCA5ZWFl
ZjZhYWI3MWE5NjFjMDRkNTAxN2JmZjExMTMxYTFiNTc0ZjhlLi5lM2EzMWRhZjNiYjIwMTk5MjE3
MjU2NmU3ZDBkYWMzMWViOWE2ZmI2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaApAQCAt
NTgsNiArNTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3VzZUZvcmNlQ2hhbmdlZChkb3VibGUg
Zm9yY2UpOwogICAgIHZvaWQgbW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHkpOwogICAgIHZvaWQg
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCB4LCBpbnQgeSwgSlNT
dHJpbmdSZWYgcGhhc2UsIEpTU3RyaW5nUmVmIG1vbWVudHVtKTsKKyAgICB2b2lkIHNldE1vdXNl
V2hlZWxJc1ByZWNpc2UoYm9vbCk7CiAgICAgdm9pZCBjb250aW51b3VzTW91c2VTY3JvbGxCeShp
bnQgeCwgaW50IHksIGJvb2wgcGFnZWQpOwogICAgIEpTVmFsdWVSZWYgY29udGV4dENsaWNrKCk7
CiAgICAgdm9pZCBsZWFwRm9yd2FyZChpbnQgbWlsbGlzZWNvbmRzKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggODg1MTVhZmRkZWIwZmEyZGNmNzZkNTdm
NGUzODE4NDliNmFhYTU0Ni4uNGFjOTU2ZjRkNTA4MTA0YTRiNmU1MWFjNjQ0ZGIzMGIyOGYyNGI0
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTE2Njcs
NiArMTY2NywxNCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21J
bmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKKyNpZiBQTEFURk9STShHVEspCisgICAgICAgIGlmIChXS1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nKHN1Yk1lc3NhZ2VOYW1lLCAiU2V0TW91c2VXaGVlbElzUHJlY2lz
ZSIpKSB7CisgICAgICAgICAgICBhdXRvIGlzUHJlY2lzZSA9IGJvb2xlYW5WYWx1ZShkaWN0aW9u
YXJ5LCAiSXNQcmVjaXNlIik7CisgICAgICAgICAgICBtX2V2ZW50U2VuZGVyUHJveHktPnNldE1v
dXNlV2hlZWxJc1ByZWNpc2UoaXNQcmVjaXNlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorI2VuZGlmCisKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3Rr
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3Bw
CmluZGV4IGFmZTg5ZDI1OTlmZWZmYzcyOWIyMmRlNGUxZDZjMzc2MmFkNGVlMDMuLjQ5OWI1ZTMz
ODFkZmE5ZDRlZjIzYmIxZmM1MDFmNzI1NDU5ZjI2NjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCkBAIC03MCw4ICs3MCwxNCBA
QCBFdmVudFNlbmRlclByb3h5OjpFdmVudFNlbmRlclByb3h5KFRlc3RDb250cm9sbGVyKiB0ZXN0
Q29udHJvbGxlcikKIHsKIH0KIAorc3RhdGljIGlubGluZSBXZWJLaXRXZWJWaWV3QmFzZSogdG9X
ZWJLaXRHTGliQVBJKFBsYXRmb3JtV0tWaWV3IHZpZXcpCit7CisgICAgcmV0dXJuIGNvbnN0X2Nh
c3Q8V2ViS2l0V2ViVmlld0Jhc2UqPihyZWludGVycHJldF9jYXN0PGNvbnN0IFdlYktpdFdlYlZp
ZXdCYXNlKj4odmlldykpOworfQorCiBFdmVudFNlbmRlclByb3h5Ojp+RXZlbnRTZW5kZXJQcm94
eSgpCiB7CisgICAgd2Via2l0V2ViVmlld0Jhc2VTZXRXaGVlbEV2ZW50c0FyZVByZWNpc2UodG9X
ZWJLaXRHTGliQVBJKG1fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmll
dygpKSwgZmFsc2UpOwogfQogCiBzdGF0aWMgdW5zaWduZWQgZXZlbnRTZW5kZXJCdXR0b25Ub0dE
S0J1dHRvbih1bnNpZ25lZCBidXR0b24pCkBAIC0yMzIsMTEgKzIzOCw2IEBAIHN0YXRpYyBpbnQg
Z2V0R0RLS2V5U3ltRm9yS2V5UmVmKFdLU3RyaW5nUmVmIGtleVJlZiwgdW5zaWduZWQgbG9jYXRp
b24sIGd1aW50KiBtCiAgICAgcmV0dXJuIGdka191bmljb2RlX3RvX2tleXZhbChzdGF0aWNfY2Fz
dDxndWludDMyPihidWZmZXIuZ2V0KClbMF0pKTsKIH0KIAotc3RhdGljIGlubGluZSBXZWJLaXRX
ZWJWaWV3QmFzZSogdG9XZWJLaXRHTGliQVBJKFBsYXRmb3JtV0tWaWV3IHZpZXcpCi17Ci0gICAg
cmV0dXJuIGNvbnN0X2Nhc3Q8V2ViS2l0V2ViVmlld0Jhc2UqPihyZWludGVycHJldF9jYXN0PGNv
bnN0IFdlYktpdFdlYlZpZXdCYXNlKj4odmlldykpOwotfQotCiB2b2lkIEV2ZW50U2VuZGVyUHJv
eHk6OmtleURvd24oV0tTdHJpbmdSZWYga2V5UmVmLCBXS0V2ZW50TW9kaWZpZXJzIHdrTW9kaWZp
ZXJzLCB1bnNpZ25lZCBsb2NhdGlvbikKIHsKICAgICBndWludCBtb2RpZmllcnMgPSB3ZWJraXRN
b2RpZmllcnNUb0dES01vZGlmaWVycyh3a01vZGlmaWVycyk7CkBAIC0zNDgsNiArMzQ5LDExIEBA
IHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKGludCBob3Jpem9udGFsLCBpCiAgICAgICAgIGhvcml6b250YWwsIHZlcnRpY2FsLCBt
X3Bvc2l0aW9uLngsIG1fcG9zaXRpb24ueSwgZXZlbnRQaGFzZSwgZXZlbnRNb21lbnR1bVBoYXNl
KTsKIH0KIAordm9pZCBFdmVudFNlbmRlclByb3h5OjpzZXRNb3VzZVdoZWVsSXNQcmVjaXNlKGJv
b2wgaXNQcmVjaXNlKQoreworICAgIHdlYmtpdFdlYlZpZXdCYXNlU2V0V2hlZWxFdmVudHNBcmVQ
cmVjaXNlKHRvV2ViS2l0R0xpYkFQSShtX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5w
bGF0Zm9ybVZpZXcoKSksIGlzUHJlY2lzZSk7Cit9CisKIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6
bGVhcEZvcndhcmQoaW50IG1pbGxpc2Vjb25kcykKIHsKICAgICBtX3RpbWUgKz0gbWlsbGlzZWNv
bmRzIC8gMTAwMC4wOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438936</attachid>
            <date>2021-09-22 02:36:48 -0700</date>
            <delta_ts>2021-09-23 01:18:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230541-20210922103646.patch</filename>
            <type>text/plain</type>
            <size>13514</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFiYTcyOTk1M2QzZGUyYzY4
ODc5MTcyNDEwYTM0ODljNWRiM2RkYTcuLjkzMzk1MDY3NzU1MGNlOTExNTg3ZTUwNjRiY2MyZmU0
MTdkMWQyNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDktMjEgIENocmlzIExv
cmQgIDxjbG9yZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEFsbG93IHNlbmRpbmcgcHJl
Y2lzZSBtb3VzZSB3aGVlbCBldmVudHMgaW4gTGF5b3V0VGVzdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDU0MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBjb2RlIHRvIGJlIGFibGUgdG8gc2Vu
ZCBwcmVjaXNlIHN5bnRoZXRpYyBtb3VzZS13aGVlbCBldmVudHMgaW4gR1RLLgorCisgICAgICAg
ICogU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvZ3RrL05h
dGl2ZVdlYldoZWVsRXZlbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpOYXRpdmVXZWJXaGVl
bEV2ZW50OjpOYXRpdmVXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHA6CisgICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZVN5bnRo
ZXNpemVXaGVlbEV2ZW50KToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlU2V0V2hlZWxIYXNQ
cmVjaXNlRGVsdGFzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
QmFzZUludGVybmFsLmg6CisKIDIwMjEtMDktMTQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI3NDkyOSk6IFtDb29yZGlu
YXRlZEdyYXBoaWNzXSBEcmF3aW5nQXJlYUNvb3JkaW5hdGVkR3JhcGhpY3M6OmNyZWF0ZURpc3Bs
YXlSZWZyZXNoTW9uaXRvciBpcyBubyBsb25nZXIgdXNlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
TmF0aXZlV2ViV2hlZWxFdmVudC5oCmluZGV4IGY0OGRjMDA3NTViNjg0N2YyYzEzZTVmN2RhYzY1
MmMyYTkxZjY2ZWEuLmYyZjM5NzlmY2FjOWRmZDk3ZDBlMGVhZDYwMGZlMzVlYjhkZWZkNDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKQEAgLTYxLDcgKzYx
LDcgQEAgcHVibGljOgogICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoR2RrRXZlbnQqKTsKICAgICBO
YXRpdmVXZWJXaGVlbEV2ZW50KEdka0V2ZW50KiwgV2ViV2hlZWxFdmVudDo6UGhhc2UsIFdlYldo
ZWVsRXZlbnQ6OlBoYXNlIG1vbWVudHVtUGhhc2UpOwogICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQo
R2RrRXZlbnQqLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgd2hlZWxUaWNrcyk7Ci0gICAgTmF0aXZlV2ViV2hlZWxFdmVudChHZGtFdmVudCosIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIFdlYldoZWVsRXZlbnQ6OlBoYXNlLCBXZWJX
aGVlbEV2ZW50OjpQaGFzZSBtb21lbnR1bVBoYXNlKTsKKyAgICBOYXRpdmVXZWJXaGVlbEV2ZW50
KEdka0V2ZW50KiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
ZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgV2ViV2hlZWxFdmVu
dDo6UGhhc2UsIFdlYldoZWVsRXZlbnQ6OlBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFzUHJl
Y2lzZURlbHRhcyA9IGZhbHNlKTsKICNlbGlmIFVTRShMSUJXUEUpCiAgICAgTmF0aXZlV2ViV2hl
ZWxFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZh
Y3RvciwgV2ViV2hlZWxFdmVudDo6UGhhc2UsIFdlYldoZWVsRXZlbnQ6OlBoYXNlIG1vbWVudHVt
UGhhc2UpOwogI2VsaWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvZ3RrL05hdGl2ZVdlYldoZWVsRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvZ3RrL05hdGl2ZVdlYldoZWVsRXZlbnRHdGsuY3BwCmluZGV4IDNhNjliZTA0NDg4MWExMTc1
YWE4YmM5MTY3MzllYmQxMDQ1ZjYwMTkuLmJmNDFkMTU3N2I2NGMxNDZlYjc1NzQwMWZkY2JiMGIz
NmI5OTA4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9OYXRpdmVXZWJX
aGVlbEV2ZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvTmF0aXZlV2Vi
V2hlZWxFdmVudEd0ay5jcHAKQEAgLTQ5LDggKzQ5LDggQEAgTmF0aXZlV2ViV2hlZWxFdmVudDo6
TmF0aXZlV2ViV2hlZWxFdmVudChHZGtFdmVudCogZXZlbnQsIGNvbnN0IFdlYkNvcmU6OkludFBv
aW4KIHsKIH0KIAotTmF0aXZlV2ViV2hlZWxFdmVudDo6TmF0aXZlV2ViV2hlZWxFdmVudChHZGtF
dmVudCAqZXZlbnQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIFdlYldoZWVsRXZl
bnQ6OlBoYXNlIHBoYXNlLCBXZWJXaGVlbEV2ZW50OjpQaGFzZSBtb21lbnR1bVBoYXNlKQotICAg
IDogV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIHBvc2l0aW9uLCBnbG9iYWxQb3NpdGlv
biwgZGVsdGEsIHdoZWVsVGlja3MsIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBXZWJXaGVlbEV2ZW50
OjpTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCwgZmFsc2UsIHsgfSwgV2FsbFRpbWU6Om5vdygpKQor
TmF0aXZlV2ViV2hlZWxFdmVudDo6TmF0aXZlV2ViV2hlZWxFdmVudChHZGtFdmVudCAqZXZlbnQs
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIFdlYldoZWVsRXZlbnQ6OlBoYXNlIHBo
YXNlLCBXZWJXaGVlbEV2ZW50OjpQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VE
ZWx0YXMpCisgICAgOiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgcG9zaXRpb24sIGds
b2JhbFBvc2l0aW9uLCBkZWx0YSwgd2hlZWxUaWNrcywgcGhhc2UsIG1vbWVudHVtUGhhc2UsIFdl
YldoZWVsRXZlbnQ6OlNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCBoYXNQcmVjaXNlRGVsdGFzLCB7
IH0sIFdhbGxUaW1lOjpub3coKSkKICAgICAsIG1fbmF0aXZlRXZlbnQoZXZlbnQgPyBnZGtfZXZl
bnRfY29weShldmVudCkgOiBudWxscHRyKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCBjNGE5ODMzZTI4
YmI1MGQxZjg3NWFhMWM1YWQwNTdjZWUwMWQyODFhLi4zYTk2NzUzYzljZjllNmQzYTNkMjc3YWQ4
MmVjNmY0YTk4NjM1Y2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcApAQCAtMjg0LDYgKzI4NCw3IEBAIHN0cnVjdCBf
V2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlIHsKICAgICBUb3VjaEV2ZW50c01hcCB0b3VjaEV2ZW50
czsKICAgICBJbnRTaXplIGNvbnRlbnRzU2l6ZTsKICAgICBzdGQ6Om9wdGlvbmFsPE1vdGlvbkV2
ZW50PiBsYXN0TW90aW9uRXZlbnQ7CisgICAgYm9vbCB3aGVlbEhhc1ByZWNpc2VEZWx0YXMgeyBm
YWxzZSB9OwogICAgIGJvb2wgaXNCbGFuazsKICAgICBib29sIHNob3VsZE5vdGlmeUZvY3VzRXZl
bnRzIHsgdHJ1ZSB9OwogCkBAIC0yOTk0LDEwICsyOTk1LDE2IEBAIHZvaWQgd2Via2l0V2ViVmll
d0Jhc2VTeW50aGVzaXplV2hlZWxFdmVudChXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2Us
IGNvbnN0CiAKICAgICBGbG9hdFNpemUgd2hlZWxUaWNrcyhkZWx0YVgsIGRlbHRhWSk7CiAgICAg
RmxvYXRTaXplIGRlbHRhKHdoZWVsVGlja3MpOwotICAgIGRlbHRhLnNjYWxlKHN0YXRpY19jYXN0
PGZsb2F0PihTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCkpKTsKKyAgICBpZiAoIXByaXYt
PndoZWVsSGFzUHJlY2lzZURlbHRhcykKKyAgICAgICAgZGVsdGEuc2NhbGUoc3RhdGljX2Nhc3Q8
ZmxvYXQ+KFNjcm9sbGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAoKSkpOwogCiAgICAgcHJpdi0+cGFn
ZVByb3h5LT5oYW5kbGVXaGVlbEV2ZW50KE5hdGl2ZVdlYldoZWVsRXZlbnQoY29uc3RfY2FzdDxH
ZGtFdmVudCo+KGV2ZW50KSwgeyB4LCB5IH0sIHdpZGdldFJvb3RDb29yZHMoR1RLX1dJREdFVCh3
ZWJWaWV3QmFzZSksIHgsIHkpLAotICAgICAgICBkZWx0YSwgd2hlZWxUaWNrcywgdG9XZWJLaXRX
aGVlbEV2ZW50UGhhc2UocGhhc2UpLCB0b1dlYktpdFdoZWVsRXZlbnRQaGFzZShtb21lbnR1bVBo
YXNlKSkpOworICAgICAgICBkZWx0YSwgd2hlZWxUaWNrcywgdG9XZWJLaXRXaGVlbEV2ZW50UGhh
c2UocGhhc2UpLCB0b1dlYktpdFdoZWVsRXZlbnRQaGFzZShtb21lbnR1bVBoYXNlKSwgcHJpdi0+
d2hlZWxIYXNQcmVjaXNlRGVsdGFzKSk7Cit9CisKK3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VTZXRX
aGVlbEhhc1ByZWNpc2VEZWx0YXMoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlLCBib29s
IGhhc1ByZWNpc2VEZWx0YXMpCit7CisgICAgd2ViVmlld0Jhc2UtPnByaXYtPndoZWVsSGFzUHJl
Y2lzZURlbHRhcyA9IGhhc1ByZWNpc2VEZWx0YXM7CiB9CiAKIHZvaWQgd2Via2l0V2ViVmlld0Jh
c2VNYWtlQmxhbmsoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlLCBib29sIG1ha2VCbGFu
aykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlld0Jhc2VJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3QmFzZUludGVybmFsLmgKaW5kZXggZjVkMjMzNzhhNjA2ZGQ4Y2E3NDFhYTFiZjdi
MmRiZmE0YTUzMzYzZi4uMDRkZTg0MDRmZTFhNDU4ZDE5MzA0OWI2NzJlMjYzNGE4YzkyZTdhOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
QmFzZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3QmFzZUludGVybmFsLmgKQEAgLTQ1LDMgKzQ1LDUgQEAgV0tfRVhQT1JUIHZvaWQg
d2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplS2V5RXZlbnQoV2ViS2l0V2ViVmlld0Jhc2UqLCBL
ZXlFdmVudFQKIAogZW51bSBjbGFzcyBXaGVlbEV2ZW50UGhhc2UgeyBOb1BoYXNlLCBCZWdhbiwg
Q2hhbmdlZCwgRW5kZWQsIENhbmNlbGxlZCwgTWF5QmVnaW4gfTsKIFdLX0VYUE9SVCB2b2lkIHdl
YmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQoV2ViS2l0V2ViVmlld0Jhc2UqLCBk
b3VibGUgZGVsdGFYLCBkb3VibGUgZGVsdGFZLCBpbnQgeCwgaW50IHksIFdoZWVsRXZlbnRQaGFz
ZSwgV2hlZWxFdmVudFBoYXNlIG1vbWVudHVtUGhhc2UpOworV0tfRVhQT1JUIHZvaWQgd2Via2l0
V2ViVmlld0Jhc2VTZXRXaGVlbEhhc1ByZWNpc2VEZWx0YXMoV2ViS2l0V2ViVmlld0Jhc2UqLCBi
b29sKTsKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDQzYjI1MzJhMWI2OGM0MTRiMzc2MzYzNWI5NDg3ODRkNGZhNTc1NWEuLmViZDJkOGIyNzA4
M2NmMmY3ZmViYjc0YTRlYWM3Mzc5NGEzNzU2M2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMS0wOS0yMSAgQ2hy
aXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gQWxsb3cgc2VuZGlu
ZyBwcmVjaXNlIG1vdXNlIHdoZWVsIGV2ZW50cyBpbiBMYXlvdXRUZXN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNTQxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBiZSBhYmxlIHRv
IHNlbmQgcHJlY2lzZSBtb3VzZS13aGVlbCBldmVudHMgaW4gRXZlbnRTZW5kZXIuCisKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaDoKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xs
ZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRT
ZW5kaW5nQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGluZ0NvbnRyb2xs
ZXI6OnNldFdoZWVsSGFzUHJlY2lzZURlbHRhcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmg6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9ndGsvRXZlbnRTZW5kZXJQcm94eUd0ay5jcHA6CisgICAgICAgIChX
VFI6OnRvV2ViS2l0R0xpYkFQSSk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6On5F
dmVudFNlbmRlclByb3h5KToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6c2V0V2hl
ZWxIYXNQcmVjaXNlRGVsdGFzKToKKwogMjAyMS0wOS0xMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIC10b2dnbGVBdXRvbWF0aWNTcGVs
bGluZ0NvcnJlY3Rpb246IG1lbnUgaXRlbSB2YWxpZGF0aW9uIHNob3VsZG4ndCByZXF1aXJlIHBv
c3QtbGF5b3V0IGVkaXRvciBzdGF0ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9FdmVudFNlbmRlclByb3h5LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVy
UHJveHkuaAppbmRleCAxOGZhODkyZTQyN2MwMDBjZDM1N2ZlMTFkODQ1ZWMyMDljZjIxMWQzLi44
YTViMjRjOTk4Y2Y2YjI4NDExMTdiMmI1ZTRhMzRlNDY1YjQzMmEzIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaApAQCAtNjIsNiArNjIsOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBtb3VzZU1vdmVUbyhkb3VibGUgeCwgZG91YmxlIHksIFdLU3RyaW5nUmVmIHBvaW50
ZXJUeXBlID0gbnVsbHB0cik7CiAgICAgdm9pZCBtb3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSk7
CiAgICAgdm9pZCBtb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgs
IGludCB5LCBpbnQgcGhhc2UsIGludCBtb21lbnR1bSk7CisjaWYgUExBVEZPUk0oR1RLKQorICAg
IHZvaWQgc2V0V2hlZWxIYXNQcmVjaXNlRGVsdGFzKGJvb2wpOworI2VuZGlmCiAgICAgdm9pZCBj
b250aW51b3VzTW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHksIGJvb2wgcGFnZWQpOwogCiAgICAg
dm9pZCBsZWFwRm9yd2FyZChpbnQgbWlsbGlzZWNvbmRzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJv
bGxlci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRsCmluZGV4IGM5MDIzZTEyN2ZjNWUzNGM4NTk3NWRl
NzQyMjI2NjhmMGUwZDk1OTMuLjIzZGI5MmM5MWJmNjkzZDQ3NzllMmQyZDQxM2E1ODIyYjc0Nzkx
NDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbApA
QCAtMzgsNiArMzgsNyBAQCBpbnRlcmZhY2UgRXZlbnRTZW5kaW5nQ29udHJvbGxlciB7CiAgICAg
dW5kZWZpbmVkIG1vdXNlRm9yY2VDaGFuZ2VkKGRvdWJsZSBmb3JjZSk7CiAgICAgdW5kZWZpbmVk
IG1vdXNlU2Nyb2xsQnkobG9uZyB4LCBsb25nIHkpOwogICAgIHVuZGVmaW5lZCBtb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMobG9uZyB4LCBsb25nIHksIERPTVN0cmluZyBw
aGFzZSwgRE9NU3RyaW5nIG1vbWVudHVtKTsKKyAgICB1bmRlZmluZWQgc2V0V2hlZWxIYXNQcmVj
aXNlRGVsdGFzKGJvb2xlYW4gaGFzUHJlY2lzZURlbHRhcyk7CiAgICAgdW5kZWZpbmVkIGNvbnRp
bnVvdXNNb3VzZVNjcm9sbEJ5KGxvbmcgeCwgbG9uZyB5LCBvcHRpb25hbCBib29sZWFuIHBhZ2Vk
KTsKICAgICBvYmplY3QgY29udGV4dENsaWNrKCk7CiAgICAgdW5kZWZpbmVkIHNjaGVkdWxlQXN5
bmNocm9ub3VzQ2xpY2soKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwCmluZGV4IDJh
ZTk2NzhkNzc3YzI4OTc5NTY4MzEwZTRlYTRkYjQzMTRlOTM0ZDIuLmZlNmIwNDZiYzc2YjZmMzEw
NjYxOGUzNDFjNGUwY2E0OTI0NGI1ZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNw
cApAQCAtMzc3LDYgKzM3NywxNCBAQCB2b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6Om1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50CiAgICAgcG9zdFBh
Z2VNZXNzYWdlKCJFdmVudFNlbmRlciIsIGJvZHkpOwogfQogCit2b2lkIEV2ZW50U2VuZGluZ0Nv
bnRyb2xsZXI6OnNldFdoZWVsSGFzUHJlY2lzZURlbHRhcyhib29sIGhhc1ByZWNpc2VEZWx0YXMp
Cit7CisgICAgYXV0byBib2R5ID0gYWRvcHRXSyhXS011dGFibGVEaWN0aW9uYXJ5Q3JlYXRlKCkp
OworICAgIHNldFZhbHVlKGJvZHksICJTdWJNZXNzYWdlIiwgIlNldFdoZWVsSGFzUHJlY2lzZURl
bHRhcyIpOworICAgIHNldFZhbHVlKGJvZHksICJIYXNQcmVjaXNlRGVsdGFzIiwgaGFzUHJlY2lz
ZURlbHRhcyk7CisgICAgcG9zdFBhZ2VNZXNzYWdlKCJFdmVudFNlbmRlciIsIGJvZHkpOworfQor
CiB2b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGlu
dCB4LCBpbnQgeSwgYm9vbCBwYWdlZCkKIHsKICAgICBhdXRvIGJvZHkgPSBhZG9wdFdLKFdLTXV0
YWJsZURpY3Rpb25hcnlDcmVhdGUoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5oCmluZGV4
IDllYWVmNmFhYjcxYTk2MWMwNGQ1MDE3YmZmMTExMzFhMWI1NzRmOGUuLmRkMmUxYjhmNzlhMjll
MGVkMzg4N2QwMDg2NDJhYmMxYzU2YTI1YTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5oCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5o
CkBAIC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdXNlRm9yY2VDaGFuZ2VkKGRv
dWJsZSBmb3JjZSk7CiAgICAgdm9pZCBtb3VzZVNjcm9sbEJ5KGludCB4LCBpbnQgeSk7CiAgICAg
dm9pZCBtb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IHgsIGludCB5
LCBKU1N0cmluZ1JlZiBwaGFzZSwgSlNTdHJpbmdSZWYgbW9tZW50dW0pOworICAgIHZvaWQgc2V0
V2hlZWxIYXNQcmVjaXNlRGVsdGFzKGJvb2wpOwogICAgIHZvaWQgY29udGludW91c01vdXNlU2Ny
b2xsQnkoaW50IHgsIGludCB5LCBib29sIHBhZ2VkKTsKICAgICBKU1ZhbHVlUmVmIGNvbnRleHRD
bGljaygpOwogICAgIHZvaWQgbGVhcEZvcndhcmQoaW50IG1pbGxpc2Vjb25kcyk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDg4NTE1YWZkZGViMGZhMmRj
Zjc2ZDU3ZjRlMzgxODQ5YjZhYWE1NDYuLmZmOGFjNDA0M2NlN2UwMTRkYjViZjJiZWUwYmY3ZDJh
MTI0NTRmYjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBA
IC0xNjY3LDYgKzE2NjcsMTQgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCisjaWYgUExBVEZPUk0oR1RLKQorICAgICAgICBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhzdWJNZXNzYWdlTmFtZSwgIlNldFdoZWVsSGFzUHJl
Y2lzZURlbHRhcyIpKSB7CisgICAgICAgICAgICBhdXRvIGhhc1ByZWNpc2VEZWx0YXMgPSBib29s
ZWFuVmFsdWUoZGljdGlvbmFyeSwgIkhhc1ByZWNpc2VEZWx0YXMiKTsKKyAgICAgICAgICAgIG1f
ZXZlbnRTZW5kZXJQcm94eS0+c2V0V2hlZWxIYXNQcmVjaXNlRGVsdGFzKGhhc1ByZWNpc2VEZWx0
YXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKKwogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9ndGsvRXZlbnRTZW5kZXJQcm94eUd0ay5jcHAKaW5kZXggYWZlODlkMjU5OWZlZmZjNzI5
YjIyZGU0ZTFkNmMzNzYyYWQ0ZWUwMy4uMjkzZjA2OWE4ZmVlZjEwMzc4OTNjODhjODA2OTNjNjU0
Mjc1ZTM5MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvRXZlbnRTZW5k
ZXJQcm94eUd0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvRXZlbnRTZW5k
ZXJQcm94eUd0ay5jcHAKQEAgLTcwLDggKzcwLDE0IEBAIEV2ZW50U2VuZGVyUHJveHk6OkV2ZW50
U2VuZGVyUHJveHkoVGVzdENvbnRyb2xsZXIqIHRlc3RDb250cm9sbGVyKQogewogfQogCitzdGF0
aWMgaW5saW5lIFdlYktpdFdlYlZpZXdCYXNlKiB0b1dlYktpdEdMaWJBUEkoUGxhdGZvcm1XS1Zp
ZXcgdmlldykKK3sKKyAgICByZXR1cm4gY29uc3RfY2FzdDxXZWJLaXRXZWJWaWV3QmFzZSo+KHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgV2ViS2l0V2ViVmlld0Jhc2UqPih2aWV3KSk7Cit9CisKIEV2
ZW50U2VuZGVyUHJveHk6On5FdmVudFNlbmRlclByb3h5KCkKIHsKKyAgICB3ZWJraXRXZWJWaWV3
QmFzZVNldFdoZWVsSGFzUHJlY2lzZURlbHRhcyh0b1dlYktpdEdMaWJBUEkobV90ZXN0Q29udHJv
bGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkpLCBmYWxzZSk7CiB9CiAKIHN0YXRp
YyB1bnNpZ25lZCBldmVudFNlbmRlckJ1dHRvblRvR0RLQnV0dG9uKHVuc2lnbmVkIGJ1dHRvbikK
QEAgLTIzMiwxMSArMjM4LDYgQEAgc3RhdGljIGludCBnZXRHREtLZXlTeW1Gb3JLZXlSZWYoV0tT
dHJpbmdSZWYga2V5UmVmLCB1bnNpZ25lZCBsb2NhdGlvbiwgZ3VpbnQqIG0KICAgICByZXR1cm4g
Z2RrX3VuaWNvZGVfdG9fa2V5dmFsKHN0YXRpY19jYXN0PGd1aW50MzI+KGJ1ZmZlci5nZXQoKVsw
XSkpOwogfQogCi1zdGF0aWMgaW5saW5lIFdlYktpdFdlYlZpZXdCYXNlKiB0b1dlYktpdEdMaWJB
UEkoUGxhdGZvcm1XS1ZpZXcgdmlldykKLXsKLSAgICByZXR1cm4gY29uc3RfY2FzdDxXZWJLaXRX
ZWJWaWV3QmFzZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgV2ViS2l0V2ViVmlld0Jhc2UqPih2
aWV3KSk7Ci19Ci0KIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6a2V5RG93bihXS1N0cmluZ1JlZiBr
ZXlSZWYsIFdLRXZlbnRNb2RpZmllcnMgd2tNb2RpZmllcnMsIHVuc2lnbmVkIGxvY2F0aW9uKQog
ewogICAgIGd1aW50IG1vZGlmaWVycyA9IHdlYmtpdE1vZGlmaWVyc1RvR0RLTW9kaWZpZXJzKHdr
TW9kaWZpZXJzKTsKQEAgLTM0OCw2ICszNDksMTEgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojpt
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IGhvcml6b250YWwsIGkK
ICAgICAgICAgaG9yaXpvbnRhbCwgdmVydGljYWwsIG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55
LCBldmVudFBoYXNlLCBldmVudE1vbWVudHVtUGhhc2UpOwogfQogCit2b2lkIEV2ZW50U2VuZGVy
UHJveHk6OnNldFdoZWVsSGFzUHJlY2lzZURlbHRhcyhib29sIGhhc1ByZWNpc2VEZWx0YXMpCit7
CisgICAgd2Via2l0V2ViVmlld0Jhc2VTZXRXaGVlbEhhc1ByZWNpc2VEZWx0YXModG9XZWJLaXRH
TGliQVBJKG1fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpKSwg
aGFzUHJlY2lzZURlbHRhcyk7Cit9CisKIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bGVhcEZvcndh
cmQoaW50IG1pbGxpc2Vjb25kcykKIHsKICAgICBtX3RpbWUgKz0gbWlsbGlzZWNvbmRzIC8gMTAw
MC4wOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>