<?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>219942</bug_id>
          
          <creation_ts>2020-12-16 04:17:41 -0800</creation_ts>
          <short_desc>[WPE] Enable smooth-motion and kinetic scrolling on touchpads</short_desc>
          <delta_ts>2021-01-08 05:28:16 -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>Scrolling</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Lord">clord</reporter>
          <assigned_to name="Chris Lord">clord</assigned_to>
          <cc>aperez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1715068</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-12-16 04:17:41 -0800</bug_when>
    <thetext>Currently, smooth motion events (not to be confused with smooth scrolling) are only available via touch-screen scrolling on WPE when using the minibrowser. In addition, kinetic scrolling is only available via the touch-screen at all, regardless of how you interface with WPE (unless you synthesise touch events, though that&apos;s not really feasible in a reliable way for this specific use-case). Wayland supports these events fine and both work on the GTK backend (both with X11 and Wayland), we should enable this behaviour on WPE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715070</commentid>
    <comment_count>1</comment_count>
      <attachid>416328</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-12-16 04:48:22 -0800</bug_when>
    <thetext>Created attachment 416328
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715074</commentid>
    <comment_count>2</comment_count>
      <attachid>416328</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2020-12-16 04:59:56 -0800</bug_when>
    <thetext>Comment on attachment 416328
Patch

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

Left some inofficial review comments.

&gt; Source/WebKit/UIProcess/API/wpe/WPEView.cpp:164
&gt; +            // FIXME: We shouldn&apos;t hard-code this.

Do you have something in mind for a proper fix? Needs to be exposed on libwpe?

&gt; Source/WebKit/UIProcess/API/wpe/WPEView.cpp:180
&gt; +            if (event-&gt;value)

It&apos;s not immediately clear why this is the right condition to detect &apos;PhaseChanged&apos;.... can you enlighten me?

&gt; Source/WebKit/UIProcess/API/wpe/WPEView.h:137
&gt; +    bool m_horizontalScrollActive { false };

Are these mutally exclusive? Looks like from handle_axis_event...
If so, you could merge the two members into one enum.

&gt; Tools/wpe/backends/WindowViewBackend.cpp:241
&gt; +        if (axis != WL_POINTER_AXIS_HORIZONTAL_SCROLL &amp;&amp; axis != WL_POINTER_AXIS_VERTICAL_SCROLL)

hmm, what else can &apos;axis&apos; be? Are we not handling something, or are you protecting against invalid values? Does that happen in the wild?

&gt; Tools/wpe/backends/WindowViewBackend.cpp:297
&gt; +        default:

I&apos;d rather avoid a default here, and handle what exists, to protect against potential changes in future where we need to act, but forget...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715079</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-12-16 05:17:54 -0800</bug_when>
    <thetext>(In reply to Nikolas Zimmermann from comment #2)
&gt; Comment on attachment 416328 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=416328&amp;action=review
&gt; 
&gt; Left some inofficial review comments.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/wpe/WPEView.cpp:164
&gt; &gt; +            // FIXME: We shouldn&apos;t hard-code this.
&gt; 
&gt; Do you have something in mind for a proper fix? Needs to be exposed on
&gt; libwpe?

WPE needs to have an enum for axis that just re-defines the Wayland constants, I think. I wanted to avoid changing libwpe though, maybe there are reasons that it doesn&apos;t already have this(?) This FIXME already exists elsewhere in WebKit too, I&apos;m not sure if there are libwpe plans for this or not, I should file a bug...

&gt; &gt; Source/WebKit/UIProcess/API/wpe/WPEView.cpp:180
&gt; &gt; +            if (event-&gt;value)
&gt; 
&gt; It&apos;s not immediately clear why this is the right condition to detect
&gt; &apos;PhaseChanged&apos;.... can you enlighten me?

Normally you can&apos;t receive an axis event with a value of zero, so I&apos;ve repurposed this to be the equivalent of an axis stop event, to avoid needing to change API/libwpe. An axis event with a value of zero wouldn&apos;t mean anything and would have no practical effect prior to this change - this feels reasonably intuitive to me, though a comment would certainly help... Will add one :)

&gt; &gt; Source/WebKit/UIProcess/API/wpe/WPEView.h:137
&gt; &gt; +    bool m_horizontalScrollActive { false };
&gt; 
&gt; Are these mutally exclusive? Looks like from handle_axis_event...
&gt; If so, you could merge the two members into one enum.

They aren&apos;t mutually exclusive, no - it could be replaced with a bit-mask or enum I suppose, but that feels like overcomplicating for little benefit.

For example use-cases, with mouse-wheel scrolling, vertical scrolling will be active while horizontal scrolling is inactive, but both can flip to being both true or one true during 2d scrolling. The important thing is to identify when both have stopped, but we can&apos;t do that without tracking them independently, because we receive per-axis stop events.

&gt; &gt; Tools/wpe/backends/WindowViewBackend.cpp:241
&gt; &gt; +        if (axis != WL_POINTER_AXIS_HORIZONTAL_SCROLL &amp;&amp; axis != WL_POINTER_AXIS_VERTICAL_SCROLL)
&gt; 
&gt; hmm, what else can &apos;axis&apos; be? Are we not handling something, or are you
&gt; protecting against invalid values? Does that happen in the wild?

Just protecting against invalid values, these are the only two values specified in the Wayland standard right now. I could imagine arbitrary axes in the future though, such a thing already exists (consider joysticks/joypads and things like the Microsoft Surface Studio and Wacom Cintiq) - in those cases, we&apos;re only interested in horizontal/vertical.

&gt; &gt; Tools/wpe/backends/WindowViewBackend.cpp:297
&gt; &gt; +        default:
&gt; 
&gt; I&apos;d rather avoid a default here, and handle what exists, to protect against
&gt; potential changes in future where we need to act, but forget...

There&apos;s actually no need for a default here at all - it&apos;s not an enum in the switch and those are the only two valid values right now. Will remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715084</commentid>
    <comment_count>4</comment_count>
      <attachid>416331</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-12-16 05:32:28 -0800</bug_when>
    <thetext>Created attachment 416331
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715233</commentid>
    <comment_count>5</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2020-12-16 14:35:58 -0800</bug_when>
    <thetext>(In reply to Chris Lord from comment #3) 
&gt; WPE needs to have an enum for axis that just re-defines the Wayland
&gt; constants, I think. I wanted to avoid changing libwpe though, maybe there
&gt; are reasons that it doesn&apos;t already have this(?) This FIXME already exists
&gt; elsewhere in WebKit too, I&apos;m not sure if there are libwpe plans for this or
&gt; not, I should file a bug...
Fair enough, if there are previous cases with the same &apos;FIXME&apos; - okay to leave it as-is. Let&apos;s track a libwpe bug to adress this -- it&apos;s for sure no show stopper in any way :-)

&gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/API/wpe/WPEView.cpp:180
&gt; &gt; &gt; +            if (event-&gt;value)
&gt; &gt; 
&gt; &gt; It&apos;s not immediately clear why this is the right condition to detect
&gt; &gt; &apos;PhaseChanged&apos;.... can you enlighten me?
&gt; 
&gt; Normally you can&apos;t receive an axis event with a value of zero, so I&apos;ve
&gt; repurposed this to be the equivalent of an axis stop event, to avoid needing
&gt; to change API/libwpe. An axis event with a value of zero wouldn&apos;t mean
&gt; anything and would have no practical effect prior to this change - this
&gt; feels reasonably intuitive to me, though a comment would certainly help...
&gt; Will add one :)
Indeed - in this case a commented helped IMHO.

&gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/API/wpe/WPEView.h:137
&gt; &gt; &gt; +    bool m_horizontalScrollActive { false };
&gt; &gt; 
&gt; &gt; Are these mutally exclusive? Looks like from handle_axis_event...
&gt; &gt; If so, you could merge the two members into one enum.
&gt; 
&gt; They aren&apos;t mutually exclusive, no - it could be replaced with a bit-mask or
&gt; enum I suppose, but that feels like overcomplicating for little benefit.
I personally would always go with an OptionSet&lt;&gt; and an enum, as it&apos;s easier to extent, and less likely to make a mistake + type-safety is guaranteed (that would be a compelling use case if you&apos;d ever pass this state to a function call) -- but I agree it is not necessary for your specific use case here.

&gt; 
&gt; For example use-cases, with mouse-wheel scrolling, vertical scrolling will
&gt; be active while horizontal scrolling is inactive, but both can flip to being
&gt; both true or one true during 2d scrolling. The important thing is to
&gt; identify when both have stopped, but we can&apos;t do that without tracking them
&gt; independently, because we receive per-axis stop events.
Thanks for the explaination.

&gt; 
&gt; &gt; &gt; Tools/wpe/backends/WindowViewBackend.cpp:241
&gt; &gt; &gt; +        if (axis != WL_POINTER_AXIS_HORIZONTAL_SCROLL &amp;&amp; axis != WL_POINTER_AXIS_VERTICAL_SCROLL)
&gt; &gt; 
&gt; &gt; hmm, what else can &apos;axis&apos; be? Are we not handling something, or are you
&gt; &gt; protecting against invalid values? Does that happen in the wild?
&gt; 
&gt; Just protecting against invalid values...
Ok.

&gt; 
&gt; &gt; &gt; Tools/wpe/backends/WindowViewBackend.cpp:297
&gt; &gt; &gt; +        default:
&gt; &gt; 
&gt; &gt; I&apos;d rather avoid a default here, and handle what exists, to protect against
&gt; &gt; potential changes in future where we need to act, but forget...
&gt; 
&gt; There&apos;s actually no need for a default here at all - it&apos;s not an enum in the
&gt; switch and those are the only two valid values right now. Will remove.
Ah I didn&apos;t realize it&apos;s not an enum :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718255</commentid>
    <comment_count>6</comment_count>
      <attachid>417260</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-01-08 03:25:13 -0800</bug_when>
    <thetext>Created attachment 417260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718276</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-08 05:27:39 -0800</bug_when>
    <thetext>Committed r271292: &lt;https://trac.webkit.org/changeset/271292&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417260.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718277</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-08 05:28:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/72927760&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416328</attachid>
            <date>2020-12-16 04:48:22 -0800</date>
            <delta_ts>2020-12-16 05:32:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219942-20201216124820.patch</filename>
            <type>text/plain</type>
            <size>9842</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM4M2Y1NjU4YTZmYjAxNjE1
NjBlOTc5YTYyMTc2ZmFhYmJlNjBhNTYuLmIyOWJjODllNGEwMGE2Mzk3NzZjNTg2ZDJmMzQ3MjRi
NWZkMzlkYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMTItMTYgIENocmlzIExv
cmQgIDxjbG9yZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdIEVuYWJsZSBzbW9vdGgtbW90
aW9uIGFuZCBraW5ldGljIHNjcm9sbGluZyBvbiB0b3VjaHBhZHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTk0MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludGVycHJldCBheGlzIG1vdGlvbiBldmVu
dHMgd2l0aCBhIHplcm8gdmFsdWUgYXMgYXhpcyBzdG9wIGV2ZW50cyBhbmQKKyAgICAgICAgc2Vu
ZCB0aGUgYXBwcm9wcmlhdGUgd2hlZWwgZXZlbnQgcGhhc2UuIFRoaXMgZW5hYmxlcyBraW5ldGlj
IHNjcm9sbGluZworICAgICAgICB3aGVuIHVzaW5nIHRvdWNocGFkcyBhbmQgb3RoZXIgc21vb3Ro
LXNjcm9sbGluZyBkZXZpY2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNs
aWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhU
b3VjaEV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcDoKKyAg
ICAgICAgKFdLV1BFOjptX2JhY2tlbmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dQ
RVZpZXcuaDoKKwogMjAyMC0xMi0xNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW1dQRV1bR1RLXSBTaG91bGQgZW5hYmxlIFdlYlByb2Nlc3ND
YWNoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xp
ZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJ
bXBsLmNwcAppbmRleCAyZTc1ODIyN2M3Mjc0ZThhMTI5N2MzNWJmZWE3ZmZjMjg2MWY2NzU5Li5l
YjNiZTY1N2RlODIxODEyOTZhNmFmYzU1MDcyNTQ4ZDZiMmVhMzNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMjE3LDcg
KzIxNyw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBO
YXRpdmVXZWJUb3VjaEV2ZW50JiB0b3VjaEV2ZW50LCBiCiAgICAgaWYgKHNjcm9sbEdlc3R1cmVD
b250cm9sbGVyLmhhbmRsZUV2ZW50KHRvdWNoUG9pbnQpKSB7CiAgICAgICAgIHN0cnVjdCB3cGVf
aW5wdXRfYXhpc19ldmVudCogYXhpc0V2ZW50ID0gc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuYXhp
c0V2ZW50KCk7CiAgICAgICAgIGlmIChheGlzRXZlbnQtPnR5cGUgIT0gd3BlX2lucHV0X2F4aXNf
ZXZlbnRfdHlwZV9udWxsKQotICAgICAgICAgICAgcGFnZS5oYW5kbGVXaGVlbEV2ZW50KFdlYktp
dDo6TmF0aXZlV2ViV2hlZWxFdmVudChheGlzRXZlbnQsIG1fdmlldy5wYWdlKCkuZGV2aWNlU2Nh
bGVGYWN0b3IoKSwgV2ViV2hlZWxFdmVudDo6UGhhc2U6OlBoYXNlTm9uZSwgV2ViV2hlZWxFdmVu
dDo6UGhhc2U6OlBoYXNlTm9uZSkpOworICAgICAgICAgICAgcGFnZS5oYW5kbGVXaGVlbEV2ZW50
KFdlYktpdDo6TmF0aXZlV2ViV2hlZWxFdmVudChheGlzRXZlbnQsIG1fdmlldy5wYWdlKCkuZGV2
aWNlU2NhbGVGYWN0b3IoKSwgc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIucGhhc2UoKSwgV2ViV2hl
ZWxFdmVudDo6UGhhc2U6OlBoYXNlTm9uZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcAppbmRleCBiYThmN2Mx
NTAwZGY0ZGIwNDNmNWExZjdkZDllOTI2OWY0OGJjYThjLi43MzZjYzE4MDE0Nzc0N2E4NDY5ODhk
ZmZkNzUyNGJmZTVlZjU2ZjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1dQRVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
V1BFVmlldy5jcHAKQEAgLTE1OSw4ICsxNTksMjggQEAgVmlldzo6VmlldyhzdHJ1Y3Qgd3BlX3Zp
ZXdfYmFja2VuZCogYmFja2VuZCwgY29uc3QgQVBJOjpQYWdlQ29uZmlndXJhdGlvbiYgYmFzZUMK
ICAgICAgICAgLy8gaGFuZGxlX2F4aXNfZXZlbnQKICAgICAgICAgW10odm9pZCogZGF0YSwgc3Ry
dWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBldmVudCkKICAgICAgICAgewotICAgICAgICAgICAg
YXV0byYgcGFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Vmlldyo+KGRhdGEpLT5wYWdlKCk7Ci0gICAg
ICAgICAgICBwYWdlLmhhbmRsZVdoZWVsRXZlbnQoV2ViS2l0OjpOYXRpdmVXZWJXaGVlbEV2ZW50
KGV2ZW50LCBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCksIFdlYldoZWVsRXZlbnQ6OlBoYXNlOjpQ
aGFzZU5vbmUsIFdlYldoZWVsRXZlbnQ6OlBoYXNlOjpQaGFzZU5vbmUpKTsKKyAgICAgICAgICAg
IGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSk7CisKKyAgICAgICAg
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgaGFyZC1jb2RlIHRoaXMuCisgICAgICAgICAgICBl
bnVtIEF4aXMgeworICAgICAgICAgICAgICAgIFZlcnRpY2FsLAorICAgICAgICAgICAgICAgIEhv
cml6b250YWwKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQtPmF4
aXMpIHsKKyAgICAgICAgICAgIGNhc2UgVmVydGljYWw6CisgICAgICAgICAgICAgICAgdmlldy5t
X2hvcml6b250YWxTY3JvbGxBY3RpdmUgPSAhIWV2ZW50LT52YWx1ZTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSG9yaXpvbnRhbDoKKyAgICAgICAgICAgICAgICB2
aWV3Lm1fdmVydGljYWxTY3JvbGxBY3RpdmUgPSAhIWV2ZW50LT52YWx1ZTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYXV0byYgcGFnZSA9IHZp
ZXcucGFnZSgpOworICAgICAgICAgICAgaWYgKGV2ZW50LT52YWx1ZSkKKyAgICAgICAgICAgICAg
ICBwYWdlLmhhbmRsZVdoZWVsRXZlbnQoV2ViS2l0OjpOYXRpdmVXZWJXaGVlbEV2ZW50KGV2ZW50
LCBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCksIFdlYldoZWVsRXZlbnQ6OlBoYXNlOjpQaGFzZUNo
YW5nZWQsIFdlYldoZWVsRXZlbnQ6OlBoYXNlOjpQaGFzZU5vbmUpKTsKKyAgICAgICAgICAgIGVs
c2UgaWYgKCF2aWV3Lm1faG9yaXpvbnRhbFNjcm9sbEFjdGl2ZSAmJiAhdmlldy5tX3ZlcnRpY2Fs
U2Nyb2xsQWN0aXZlKQorICAgICAgICAgICAgICAgIHBhZ2UuaGFuZGxlV2hlZWxFdmVudChXZWJL
aXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoZXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSwg
V2ViV2hlZWxFdmVudDo6UGhhc2U6OlBoYXNlRW5kZWQsIFdlYldoZWVsRXZlbnQ6OlBoYXNlOjpQ
aGFzZU5vbmUpKTsKICAgICAgICAgfSwKICAgICAgICAgLy8gaGFuZGxlX3RvdWNoX2V2ZW50CiAg
ICAgICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQqIGV2ZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaAppbmRleCA4ZjRhOGYz
ZjQzNjI3MmY0MTk2Mzg2M2M1NmYwZDUwZmQ3NjBkYWQzLi5iOTQ4NTI1NTQzMTNlY2VkYzBlYWRl
ZTA2MWM0ZGY2ZjY3NTU2YzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1dQRVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQ
RVZpZXcuaApAQCAtMTM0LDYgKzEzNCw5IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBHUmVmUHRy
PFdlYktpdFdlYlZpZXdBY2Nlc3NpYmxlPiBtX2FjY2Vzc2libGU7CiAjZW5kaWYKIAorICAgIGJv
b2wgbV9ob3Jpem9udGFsU2Nyb2xsQWN0aXZlIHsgZmFsc2UgfTsKKyAgICBib29sIG1fdmVydGlj
YWxTY3JvbGxBY3RpdmUgeyBmYWxzZSB9OworCiAgICAgV2ViS2l0OjpJbnB1dE1ldGhvZEZpbHRl
ciBtX2lucHV0TWV0aG9kRmlsdGVyOwogfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBmZWMyZWIxOGY2NzhhN2NkNmE2NDk2NjY4NzY2YjUy
YTFmNmJjNTcuLmFjMzJjMWMzYTUxODQwNWEwZjkyYTZhNWFkYWVmOGRhN2U5YzNlMzIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAyMC0xMi0xNiAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW1dQRV0gRW5hYmxlIHNtb290aC1tb3Rpb24gYW5kIGtpbmV0aWMgc2Nyb2xsaW5nIG9uIHRv
dWNocGFkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE5OTQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3cGUvYmFja2VuZHMvV2luZG93Vmlld0JhY2tlbmQuY3BwOgorICAgICAgICBVcGRhdGUgdG8g
V2F5bGFuZCBwcm90b2NvbCA1IGFuZCBpbnRlcnByZXQgYXhpcyBzdG9wLCBkaXNjcmV0ZSBhbmQK
KyAgICAgICAgc21vb3RoIGF4aXMgbW90aW9uIGV2ZW50cy4KKwogMjAyMC0xMi0xMyAgQW5keSBF
c3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gQ3JlYXRlIGEgTWVkaWFU
b29sYm94IGZvcm1hdCByZWFkZXIgcGx1Zy1pbiBmb3IgV2ViTQpkaWZmIC0tZ2l0IGEvVG9vbHMv
d3BlL2JhY2tlbmRzL1dpbmRvd1ZpZXdCYWNrZW5kLmNwcCBiL1Rvb2xzL3dwZS9iYWNrZW5kcy9X
aW5kb3dWaWV3QmFja2VuZC5jcHAKaW5kZXggNThiNzBlMzNkNTEzNTM3Zjk4NmMyZjhiMjc1ZWIx
OGJjZDM0Y2MwNS4uNGZhZGU0ZmY1ODFiNTZkZjQ5ZTc4ZTY5MzI0MTc0Y2ExMTFmY2FjZCAxMDA2
NDQKLS0tIGEvVG9vbHMvd3BlL2JhY2tlbmRzL1dpbmRvd1ZpZXdCYWNrZW5kLmNwcAorKysgYi9U
b29scy93cGUvYmFja2VuZHMvV2luZG93Vmlld0JhY2tlbmQuY3BwCkBAIC0xNDYsNyArMTQ2LDcg
QEAgY29uc3Qgc3RydWN0IHdsX3JlZ2lzdHJ5X2xpc3RlbmVyIFdpbmRvd1ZpZXdCYWNrZW5kOjpz
X3JlZ2lzdHJ5TGlzdGVuZXIgPSB7CiAgICAgICAgICAgICB3aW5kb3ctPm1feGRnID0gc3RhdGlj
X2Nhc3Q8c3RydWN0IHp4ZGdfc2hlbGxfdjYqPih3bF9yZWdpc3RyeV9iaW5kKHJlZ2lzdHJ5LCBu
YW1lLCAmenhkZ19zaGVsbF92Nl9pbnRlcmZhY2UsIDEpKTsKIAogICAgICAgICBpZiAoIXN0ZDo6
c3RyY21wKGludGVyZmFjZSwgIndsX3NlYXQiKSkKLSAgICAgICAgICAgIHdpbmRvdy0+bV9zZWF0
ID0gc3RhdGljX2Nhc3Q8c3RydWN0IHdsX3NlYXQqPih3bF9yZWdpc3RyeV9iaW5kKHJlZ2lzdHJ5
LCBuYW1lLCAmd2xfc2VhdF9pbnRlcmZhY2UsIDQpKTsKKyAgICAgICAgICAgIHdpbmRvdy0+bV9z
ZWF0ID0gc3RhdGljX2Nhc3Q8c3RydWN0IHdsX3NlYXQqPih3bF9yZWdpc3RyeV9iaW5kKHJlZ2lz
dHJ5LCBuYW1lLCAmd2xfc2VhdF9pbnRlcmZhY2UsIDUpKTsKICAgICB9LAogICAgIC8vIGdsb2Jh
bF9yZW1vdmUKICAgICBbXSh2b2lkKiwgc3RydWN0IHdsX3JlZ2lzdHJ5KiwgdWludDMyX3QpIHsg
fSwKQEAgLTIzOCwxNyArMjM4LDY2IEBAIGNvbnN0IHN0cnVjdCB3bF9wb2ludGVyX2xpc3RlbmVy
IFdpbmRvd1ZpZXdCYWNrZW5kOjpzX3BvaW50ZXJMaXN0ZW5lciA9IHsKICAgICAvLyBheGlzCiAg
ICAgW10odm9pZCogZGF0YSwgc3RydWN0IHdsX3BvaW50ZXIqLCB1aW50MzJfdCB0aW1lLCB1aW50
MzJfdCBheGlzLCB3bF9maXhlZF90IHZhbHVlKQogICAgIHsKKyAgICAgICAgaWYgKGF4aXMgIT0g
V0xfUE9JTlRFUl9BWElTX0hPUklaT05UQUxfU0NST0xMICYmIGF4aXMgIT0gV0xfUE9JTlRFUl9B
WElTX1ZFUlRJQ0FMX1NDUk9MTCkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBhdXRv
JiB3aW5kb3cgPSAqc3RhdGljX2Nhc3Q8V2luZG93Vmlld0JhY2tlbmQqPihkYXRhKTsKICAgICAg
ICAgaWYgKHdpbmRvdy5tX3NlYXREYXRhLnBvaW50ZXIudGFyZ2V0KSB7CiAgICAgICAgICAgICBz
dHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQgZXZlbnQgPSB7IHdwZV9pbnB1dF9heGlzX2V2ZW50
X3R5cGVfbW90aW9uLAogICAgICAgICAgICAgICAgIHRpbWUsIHdpbmRvdy5tX3NlYXREYXRhLnBv
aW50ZXIuY29vcmRzLmZpcnN0LCB3aW5kb3cubV9zZWF0RGF0YS5wb2ludGVyLmNvb3Jkcy5zZWNv
bmQsIGF4aXMsIC13bF9maXhlZF90b19pbnQodmFsdWUpLCB3aW5kb3cubW9kaWZpZXJzKCkgfTsK
KyAgICAgICAgICAgIGlmIChheGlzID09IFdMX1BPSU5URVJfQVhJU19IT1JJWk9OVEFMX1NDUk9M
TCAmJiB3aW5kb3cubV9zZWF0RGF0YS5heGlzX2Rpc2NyZXRlLmhvcml6b250YWwpCisgICAgICAg
ICAgICAgICAgZXZlbnQudmFsdWUgPSB3aW5kb3cubV9zZWF0RGF0YS5heGlzX2Rpc2NyZXRlLmhv
cml6b250YWw7CisgICAgICAgICAgICBlbHNlIGlmIChheGlzID09IFdMX1BPSU5URVJfQVhJU19W
RVJUSUNBTF9TQ1JPTEwgJiYgd2luZG93Lm1fc2VhdERhdGEuYXhpc19kaXNjcmV0ZS52ZXJ0aWNh
bCkKKyAgICAgICAgICAgICAgICBldmVudC52YWx1ZSA9IHdpbmRvdy5tX3NlYXREYXRhLmF4aXNf
ZGlzY3JldGUudmVydGljYWw7CisjaWYgV1BFX0NIRUNLX1ZFUlNJT04oMSwgNSwgMCkKKyAgICAg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHN0cnVjdCB3cGVfaW5wdXRfYXhpc18yZF9l
dmVudCBldmVudDJkID0geyBldmVudCwgMCwgMCB9OworICAgICAgICAgICAgICAgIGV2ZW50MmQu
YmFzZS50eXBlID0gc3RhdGljX2Nhc3Q8d3BlX2lucHV0X2F4aXNfZXZlbnRfdHlwZT4od3BlX2lu
cHV0X2F4aXNfZXZlbnRfdHlwZV9tYXNrXzJkIHwgd3BlX2lucHV0X2F4aXNfZXZlbnRfdHlwZV9t
b3Rpb25fc21vb3RoKTsKKworICAgICAgICAgICAgICAgIGlmIChheGlzID09IFdMX1BPSU5URVJf
QVhJU19IT1JJWk9OVEFMX1NDUk9MTCkKKyAgICAgICAgICAgICAgICAgICAgZXZlbnQyZC54X2F4
aXMgPSB3bF9maXhlZF90b19kb3VibGUodmFsdWUpOworICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgZXZlbnQyZC55X2F4aXMgPSAtd2xfZml4ZWRfdG9fZG91YmxlKHZh
bHVlKTsKKworICAgICAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaElucHV0QXhpc0V2ZW50KCZl
dmVudDJkLmJhc2UpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyNl
bmRpZgogICAgICAgICAgICAgd2luZG93LmRpc3BhdGNoSW5wdXRBeGlzRXZlbnQoJmV2ZW50KTsK
KyAgICAgICAgICAgIHdpbmRvdy5tX3NlYXREYXRhLmF4aXNfZGlzY3JldGUuaG9yaXpvbnRhbCA9
IHdpbmRvdy5tX3NlYXREYXRhLmF4aXNfZGlzY3JldGUudmVydGljYWwgPSAwOworICAgICAgICB9
CisgICAgfSwKKyAgICAvLyBmcmFtZQorICAgIFtdKHZvaWQqLCBzdHJ1Y3Qgd2xfcG9pbnRlciop
IHsgfSwKKyAgICAvLyBheGlzX3NvdXJjZQorICAgIFtdKHZvaWQqLCBzdHJ1Y3Qgd2xfcG9pbnRl
ciosIHVpbnQzMl90KSB7IH0sCisgICAgLy8gYXhpc19zdG9wCisgICAgW10odm9pZCogZGF0YSwg
c3RydWN0IHdsX3BvaW50ZXIqLCB1aW50MzJfdCB0aW1lLCB1aW50MzJfdCBheGlzKQorICAgIHsK
KyAgICAgICAgaWYgKGF4aXMgIT0gV0xfUE9JTlRFUl9BWElTX0hPUklaT05UQUxfU0NST0xMICYm
IGF4aXMgIT0gV0xfUE9JTlRFUl9BWElTX1ZFUlRJQ0FMX1NDUk9MTCkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBhdXRvJiB3aW5kb3cgPSAqc3RhdGljX2Nhc3Q8V2luZG93Vmlld0Jh
Y2tlbmQqPihkYXRhKTsKKyAgICAgICAgaWYgKHdpbmRvdy5tX3NlYXREYXRhLnBvaW50ZXIudGFy
Z2V0KSB7CisgICAgICAgICAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQgZXZlbnQgPSB7
IHdwZV9pbnB1dF9heGlzX2V2ZW50X3R5cGVfbW90aW9uLAorICAgICAgICAgICAgICAgIHRpbWUs
IHdpbmRvdy5tX3NlYXREYXRhLnBvaW50ZXIuY29vcmRzLmZpcnN0LCB3aW5kb3cubV9zZWF0RGF0
YS5wb2ludGVyLmNvb3Jkcy5zZWNvbmQsIGF4aXMsIDAsIHdpbmRvdy5tb2RpZmllcnMoKSB9Owor
ICAgICAgICAgICAgd2luZG93LmRpc3BhdGNoSW5wdXRBeGlzRXZlbnQoJmV2ZW50KTsKKyAgICAg
ICAgfQorICAgIH0sCisgICAgLy8gYXhpc19kaXNjcmV0ZQorICAgIFtdKHZvaWQqIGRhdGEsIHN0
cnVjdCB3bF9wb2ludGVyKiwgdWludDMyX3QgYXhpcywgaW50MzJfdCBkaXNjcmV0ZSkgeworICAg
ICAgICBhdXRvJiB3aW5kb3cgPSAqc3RhdGljX2Nhc3Q8V2luZG93Vmlld0JhY2tlbmQqPihkYXRh
KTsKKyAgICAgICAgc3dpdGNoIChheGlzKSB7CisgICAgICAgIGNhc2UgV0xfUE9JTlRFUl9BWElT
X0hPUklaT05UQUxfU0NST0xMOgorICAgICAgICAgICAgd2luZG93Lm1fc2VhdERhdGEuYXhpc19k
aXNjcmV0ZS5ob3Jpem9udGFsID0gZGlzY3JldGU7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBXTF9QT0lOVEVSX0FYSVNfVkVSVElDQUxfU0NST0xMOgorICAgICAgICAgICAgd2lu
ZG93Lm1fc2VhdERhdGEuYXhpc19kaXNjcmV0ZS52ZXJ0aWNhbCA9IC1kaXNjcmV0ZTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICB9LAotICAgIG51bGxwdHIsIC8vIGZyYW1lCi0gICAgbnVsbHB0ciwgLy8gYXhp
c19zb3VyY2UKLSAgICBudWxscHRyLCAvLyBheGlzX3N0b3AKLSAgICBudWxscHRyLCAvLyBheGlz
X2Rpc2NyZXRlCiB9OwogCiBjb25zdCBzdHJ1Y3Qgd2xfa2V5Ym9hcmRfbGlzdGVuZXIgV2luZG93
Vmlld0JhY2tlbmQ6OnNfa2V5Ym9hcmRMaXN0ZW5lciA9IHsKZGlmZiAtLWdpdCBhL1Rvb2xzL3dw
ZS9iYWNrZW5kcy9XaW5kb3dWaWV3QmFja2VuZC5oIGIvVG9vbHMvd3BlL2JhY2tlbmRzL1dpbmRv
d1ZpZXdCYWNrZW5kLmgKaW5kZXggZGFkNzc0ZDhmMzNjYzRkYzYxMTIxZmRlNzk2NmNkNzczMDVh
NTc1ZC4uN2MxZjBkNjUzOGE4YWVhYTdhNjU4NWZmZDU0ZDUyZmJjNTE3NjhiNSAxMDA2NDQKLS0t
IGEvVG9vbHMvd3BlL2JhY2tlbmRzL1dpbmRvd1ZpZXdCYWNrZW5kLmgKKysrIGIvVG9vbHMvd3Bl
L2JhY2tlbmRzL1dpbmRvd1ZpZXdCYWNrZW5kLmgKQEAgLTg5LDYgKzg5LDExIEBAIHByaXZhdGU6
CiAgICAgICAgICAgICBib29sIHRyYWNraW5nIHsgZmFsc2UgfTsKICAgICAgICAgfSB0b3VjaDsK
IAorICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgaW50MzJfdCBob3Jpem9udGFsIHsgMCB9
OworICAgICAgICAgICAgaW50MzJfdCB2ZXJ0aWNhbCB7IDAgfTsKKyAgICAgICAgfSBheGlzX2Rp
c2NyZXRlOworCiAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICBpbnQzMl90IHJhdGUgeyAw
IH07CiAgICAgICAgICAgICBpbnQzMl90IGRlbGF5IHsgMCB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416331</attachid>
            <date>2020-12-16 05:32:28 -0800</date>
            <delta_ts>2021-01-08 03:25:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219942-20201216133227.patch</filename>
            <type>text/plain</type>
            <size>10065</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM4M2Y1NjU4YTZmYjAxNjE1
NjBlOTc5YTYyMTc2ZmFhYmJlNjBhNTYuLmIyOWJjODllNGEwMGE2Mzk3NzZjNTg2ZDJmMzQ3MjRi
NWZkMzlkYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMTItMTYgIENocmlzIExv
cmQgIDxjbG9yZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdIEVuYWJsZSBzbW9vdGgtbW90
aW9uIGFuZCBraW5ldGljIHNjcm9sbGluZyBvbiB0b3VjaHBhZHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTk0MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludGVycHJldCBheGlzIG1vdGlvbiBldmVu
dHMgd2l0aCBhIHplcm8gdmFsdWUgYXMgYXhpcyBzdG9wIGV2ZW50cyBhbmQKKyAgICAgICAgc2Vu
ZCB0aGUgYXBwcm9wcmlhdGUgd2hlZWwgZXZlbnQgcGhhc2UuIFRoaXMgZW5hYmxlcyBraW5ldGlj
IHNjcm9sbGluZworICAgICAgICB3aGVuIHVzaW5nIHRvdWNocGFkcyBhbmQgb3RoZXIgc21vb3Ro
LXNjcm9sbGluZyBkZXZpY2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNs
aWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhU
b3VjaEV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcDoKKyAg
ICAgICAgKFdLV1BFOjptX2JhY2tlbmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dQ
RVZpZXcuaDoKKwogMjAyMC0xMi0xNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW1dQRV1bR1RLXSBTaG91bGQgZW5hYmxlIFdlYlByb2Nlc3ND
YWNoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xp
ZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJ
bXBsLmNwcAppbmRleCAyZTc1ODIyN2M3Mjc0ZThhMTI5N2MzNWJmZWE3ZmZjMjg2MWY2NzU5Li5l
YjNiZTY1N2RlODIxODEyOTZhNmFmYzU1MDcyNTQ4ZDZiMmVhMzNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMjE3LDcg
KzIxNyw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBO
YXRpdmVXZWJUb3VjaEV2ZW50JiB0b3VjaEV2ZW50LCBiCiAgICAgaWYgKHNjcm9sbEdlc3R1cmVD
b250cm9sbGVyLmhhbmRsZUV2ZW50KHRvdWNoUG9pbnQpKSB7CiAgICAgICAgIHN0cnVjdCB3cGVf
aW5wdXRfYXhpc19ldmVudCogYXhpc0V2ZW50ID0gc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuYXhp
c0V2ZW50KCk7CiAgICAgICAgIGlmIChheGlzRXZlbnQtPnR5cGUgIT0gd3BlX2lucHV0X2F4aXNf
ZXZlbnRfdHlwZV9udWxsKQotICAgICAgICAgICAgcGFnZS5oYW5kbGVXaGVlbEV2ZW50KFdlYktp
dDo6TmF0aXZlV2ViV2hlZWxFdmVudChheGlzRXZlbnQsIG1fdmlldy5wYWdlKCkuZGV2aWNlU2Nh
bGVGYWN0b3IoKSwgV2ViV2hlZWxFdmVudDo6UGhhc2U6OlBoYXNlTm9uZSwgV2ViV2hlZWxFdmVu
dDo6UGhhc2U6OlBoYXNlTm9uZSkpOworICAgICAgICAgICAgcGFnZS5oYW5kbGVXaGVlbEV2ZW50
KFdlYktpdDo6TmF0aXZlV2ViV2hlZWxFdmVudChheGlzRXZlbnQsIG1fdmlldy5wYWdlKCkuZGV2
aWNlU2NhbGVGYWN0b3IoKSwgc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIucGhhc2UoKSwgV2ViV2hl
ZWxFdmVudDo6UGhhc2U6OlBoYXNlTm9uZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcAppbmRleCBiYThmN2Mx
NTAwZGY0ZGIwNDNmNWExZjdkZDllOTI2OWY0OGJjYThjLi5kNTMzYTE0OWJkNjI4MDc0MDYyNDRl
NTE1MGFhZTk5MGZlZDRlMWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1dQRVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
V1BFVmlldy5jcHAKQEAgLTE1OSw4ICsxNTksMzEgQEAgVmlldzo6VmlldyhzdHJ1Y3Qgd3BlX3Zp
ZXdfYmFja2VuZCogYmFja2VuZCwgY29uc3QgQVBJOjpQYWdlQ29uZmlndXJhdGlvbiYgYmFzZUMK
ICAgICAgICAgLy8gaGFuZGxlX2F4aXNfZXZlbnQKICAgICAgICAgW10odm9pZCogZGF0YSwgc3Ry
dWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBldmVudCkKICAgICAgICAgewotICAgICAgICAgICAg
YXV0byYgcGFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Vmlldyo+KGRhdGEpLT5wYWdlKCk7Ci0gICAg
ICAgICAgICBwYWdlLmhhbmRsZVdoZWVsRXZlbnQoV2ViS2l0OjpOYXRpdmVXZWJXaGVlbEV2ZW50
KGV2ZW50LCBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCksIFdlYldoZWVsRXZlbnQ6OlBoYXNlOjpQ
aGFzZU5vbmUsIFdlYldoZWVsRXZlbnQ6OlBoYXNlOjpQaGFzZU5vbmUpKTsKKyAgICAgICAgICAg
IGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSk7CisKKyAgICAgICAg
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgaGFyZC1jb2RlIHRoaXMuCisgICAgICAgICAgICBl
bnVtIEF4aXMgeworICAgICAgICAgICAgICAgIFZlcnRpY2FsLAorICAgICAgICAgICAgICAgIEhv
cml6b250YWwKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQtPmF4
aXMpIHsKKyAgICAgICAgICAgIGNhc2UgVmVydGljYWw6CisgICAgICAgICAgICAgICAgdmlldy5t
X2hvcml6b250YWxTY3JvbGxBY3RpdmUgPSAhIWV2ZW50LT52YWx1ZTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSG9yaXpvbnRhbDoKKyAgICAgICAgICAgICAgICB2
aWV3Lm1fdmVydGljYWxTY3JvbGxBY3RpdmUgPSAhIWV2ZW50LT52YWx1ZTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gV2UgdHJlYXQgYW4g
YXhpcyBtb3Rpb24gZXZlbnQgd2l0aCBhIHZhbHVlIG9mIHplcm8gdG8gYmUgZXF1aXZhbGVudAor
ICAgICAgICAgICAgLy8gdG8gYSAnc3RvcCcgZXZlbnQuIE1vdGlvbiBldmVudHMgd2l0aCB6ZXJv
IG1vdGlvbiBkb24ndCBleGlzdCBuYXR1cmFsbHksCisgICAgICAgICAgICAvLyBzbyB0aGlzIGFs
bG93cyBhIGJhY2tlbmQgdG8gZXhwcmVzcyAnc3RvcCcgZXZlbnRzIHdpdGhvdXQgY2hhbmdpbmcg
QVBJLgorICAgICAgICAgICAgYXV0byYgcGFnZSA9IHZpZXcucGFnZSgpOworICAgICAgICAgICAg
aWYgKGV2ZW50LT52YWx1ZSkKKyAgICAgICAgICAgICAgICBwYWdlLmhhbmRsZVdoZWVsRXZlbnQo
V2ViS2l0OjpOYXRpdmVXZWJXaGVlbEV2ZW50KGV2ZW50LCBwYWdlLmRldmljZVNjYWxlRmFjdG9y
KCksIFdlYldoZWVsRXZlbnQ6OlBoYXNlOjpQaGFzZUNoYW5nZWQsIFdlYldoZWVsRXZlbnQ6OlBo
YXNlOjpQaGFzZU5vbmUpKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKCF2aWV3Lm1faG9yaXpvbnRh
bFNjcm9sbEFjdGl2ZSAmJiAhdmlldy5tX3ZlcnRpY2FsU2Nyb2xsQWN0aXZlKQorICAgICAgICAg
ICAgICAgIHBhZ2UuaGFuZGxlV2hlZWxFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQo
ZXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSwgV2ViV2hlZWxFdmVudDo6UGhhc2U6OlBo
YXNlRW5kZWQsIFdlYldoZWVsRXZlbnQ6OlBoYXNlOjpQaGFzZU5vbmUpKTsKICAgICAgICAgfSwK
ICAgICAgICAgLy8gaGFuZGxlX3RvdWNoX2V2ZW50CiAgICAgICAgIFtdKHZvaWQqIGRhdGEsIHN0
cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQqIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1dQRVZpZXcuaAppbmRleCA4ZjRhOGYzZjQzNjI3MmY0MTk2Mzg2M2M1NmYwZDUw
ZmQ3NjBkYWQzLi5iOTQ4NTI1NTQzMTNlY2VkYzBlYWRlZTA2MWM0ZGY2ZjY3NTU2YzUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaApAQCAtMTM0LDYgKzEzNCw5
IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBHUmVmUHRyPFdlYktpdFdlYlZpZXdBY2Nlc3NpYmxl
PiBtX2FjY2Vzc2libGU7CiAjZW5kaWYKIAorICAgIGJvb2wgbV9ob3Jpem9udGFsU2Nyb2xsQWN0
aXZlIHsgZmFsc2UgfTsKKyAgICBib29sIG1fdmVydGljYWxTY3JvbGxBY3RpdmUgeyBmYWxzZSB9
OworCiAgICAgV2ViS2l0OjpJbnB1dE1ldGhvZEZpbHRlciBtX2lucHV0TWV0aG9kRmlsdGVyOwog
fTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDBmZWMyZWIxOGY2NzhhN2NkNmE2NDk2NjY4NzY2YjUyYTFmNmJjNTcuLmFjMzJjMWMzYTUxODQw
NWEwZjkyYTZhNWFkYWVmOGRhN2U5YzNlMzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0xMi0xNiAgQ2hyaXMg
TG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dQRV0gRW5hYmxlIHNtb290aC1t
b3Rpb24gYW5kIGtpbmV0aWMgc2Nyb2xsaW5nIG9uIHRvdWNocGFkcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5OTQyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3cGUvYmFja2VuZHMvV2luZG93Vmll
d0JhY2tlbmQuY3BwOgorICAgICAgICBVcGRhdGUgdG8gV2F5bGFuZCBwcm90b2NvbCA1IGFuZCBp
bnRlcnByZXQgYXhpcyBzdG9wLCBkaXNjcmV0ZSBhbmQKKyAgICAgICAgc21vb3RoIGF4aXMgbW90
aW9uIGV2ZW50cy4KKwogMjAyMC0xMi0xMyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+
CiAKICAgICAgICAgW01hY10gQ3JlYXRlIGEgTWVkaWFUb29sYm94IGZvcm1hdCByZWFkZXIgcGx1
Zy1pbiBmb3IgV2ViTQpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2JhY2tlbmRzL1dpbmRvd1ZpZXdC
YWNrZW5kLmNwcCBiL1Rvb2xzL3dwZS9iYWNrZW5kcy9XaW5kb3dWaWV3QmFja2VuZC5jcHAKaW5k
ZXggNThiNzBlMzNkNTEzNTM3Zjk4NmMyZjhiMjc1ZWIxOGJjZDM0Y2MwNS4uYmNhYjBkY2MyZmZl
Y2EwMGQ0ZTYwN2MwYjc4MjZiNWNiZGI5ZGJhZiAxMDA2NDQKLS0tIGEvVG9vbHMvd3BlL2JhY2tl
bmRzL1dpbmRvd1ZpZXdCYWNrZW5kLmNwcAorKysgYi9Ub29scy93cGUvYmFja2VuZHMvV2luZG93
Vmlld0JhY2tlbmQuY3BwCkBAIC0xNDYsNyArMTQ2LDcgQEAgY29uc3Qgc3RydWN0IHdsX3JlZ2lz
dHJ5X2xpc3RlbmVyIFdpbmRvd1ZpZXdCYWNrZW5kOjpzX3JlZ2lzdHJ5TGlzdGVuZXIgPSB7CiAg
ICAgICAgICAgICB3aW5kb3ctPm1feGRnID0gc3RhdGljX2Nhc3Q8c3RydWN0IHp4ZGdfc2hlbGxf
djYqPih3bF9yZWdpc3RyeV9iaW5kKHJlZ2lzdHJ5LCBuYW1lLCAmenhkZ19zaGVsbF92Nl9pbnRl
cmZhY2UsIDEpKTsKIAogICAgICAgICBpZiAoIXN0ZDo6c3RyY21wKGludGVyZmFjZSwgIndsX3Nl
YXQiKSkKLSAgICAgICAgICAgIHdpbmRvdy0+bV9zZWF0ID0gc3RhdGljX2Nhc3Q8c3RydWN0IHds
X3NlYXQqPih3bF9yZWdpc3RyeV9iaW5kKHJlZ2lzdHJ5LCBuYW1lLCAmd2xfc2VhdF9pbnRlcmZh
Y2UsIDQpKTsKKyAgICAgICAgICAgIHdpbmRvdy0+bV9zZWF0ID0gc3RhdGljX2Nhc3Q8c3RydWN0
IHdsX3NlYXQqPih3bF9yZWdpc3RyeV9iaW5kKHJlZ2lzdHJ5LCBuYW1lLCAmd2xfc2VhdF9pbnRl
cmZhY2UsIDUpKTsKICAgICB9LAogICAgIC8vIGdsb2JhbF9yZW1vdmUKICAgICBbXSh2b2lkKiwg
c3RydWN0IHdsX3JlZ2lzdHJ5KiwgdWludDMyX3QpIHsgfSwKQEAgLTIzOCwxNyArMjM4LDY0IEBA
IGNvbnN0IHN0cnVjdCB3bF9wb2ludGVyX2xpc3RlbmVyIFdpbmRvd1ZpZXdCYWNrZW5kOjpzX3Bv
aW50ZXJMaXN0ZW5lciA9IHsKICAgICAvLyBheGlzCiAgICAgW10odm9pZCogZGF0YSwgc3RydWN0
IHdsX3BvaW50ZXIqLCB1aW50MzJfdCB0aW1lLCB1aW50MzJfdCBheGlzLCB3bF9maXhlZF90IHZh
bHVlKQogICAgIHsKKyAgICAgICAgaWYgKGF4aXMgIT0gV0xfUE9JTlRFUl9BWElTX0hPUklaT05U
QUxfU0NST0xMICYmIGF4aXMgIT0gV0xfUE9JTlRFUl9BWElTX1ZFUlRJQ0FMX1NDUk9MTCkKKyAg
ICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBhdXRvJiB3aW5kb3cgPSAqc3RhdGljX2Nhc3Q8
V2luZG93Vmlld0JhY2tlbmQqPihkYXRhKTsKICAgICAgICAgaWYgKHdpbmRvdy5tX3NlYXREYXRh
LnBvaW50ZXIudGFyZ2V0KSB7CiAgICAgICAgICAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZl
bnQgZXZlbnQgPSB7IHdwZV9pbnB1dF9heGlzX2V2ZW50X3R5cGVfbW90aW9uLAogICAgICAgICAg
ICAgICAgIHRpbWUsIHdpbmRvdy5tX3NlYXREYXRhLnBvaW50ZXIuY29vcmRzLmZpcnN0LCB3aW5k
b3cubV9zZWF0RGF0YS5wb2ludGVyLmNvb3Jkcy5zZWNvbmQsIGF4aXMsIC13bF9maXhlZF90b19p
bnQodmFsdWUpLCB3aW5kb3cubW9kaWZpZXJzKCkgfTsKKyAgICAgICAgICAgIGlmIChheGlzID09
IFdMX1BPSU5URVJfQVhJU19IT1JJWk9OVEFMX1NDUk9MTCAmJiB3aW5kb3cubV9zZWF0RGF0YS5h
eGlzX2Rpc2NyZXRlLmhvcml6b250YWwpCisgICAgICAgICAgICAgICAgZXZlbnQudmFsdWUgPSB3
aW5kb3cubV9zZWF0RGF0YS5heGlzX2Rpc2NyZXRlLmhvcml6b250YWw7CisgICAgICAgICAgICBl
bHNlIGlmIChheGlzID09IFdMX1BPSU5URVJfQVhJU19WRVJUSUNBTF9TQ1JPTEwgJiYgd2luZG93
Lm1fc2VhdERhdGEuYXhpc19kaXNjcmV0ZS52ZXJ0aWNhbCkKKyAgICAgICAgICAgICAgICBldmVu
dC52YWx1ZSA9IHdpbmRvdy5tX3NlYXREYXRhLmF4aXNfZGlzY3JldGUudmVydGljYWw7CisjaWYg
V1BFX0NIRUNLX1ZFUlNJT04oMSwgNSwgMCkKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgICAgIHN0cnVjdCB3cGVfaW5wdXRfYXhpc18yZF9ldmVudCBldmVudDJkID0geyBldmVudCwg
MCwgMCB9OworICAgICAgICAgICAgICAgIGV2ZW50MmQuYmFzZS50eXBlID0gc3RhdGljX2Nhc3Q8
d3BlX2lucHV0X2F4aXNfZXZlbnRfdHlwZT4od3BlX2lucHV0X2F4aXNfZXZlbnRfdHlwZV9tYXNr
XzJkIHwgd3BlX2lucHV0X2F4aXNfZXZlbnRfdHlwZV9tb3Rpb25fc21vb3RoKTsKKworICAgICAg
ICAgICAgICAgIGlmIChheGlzID09IFdMX1BPSU5URVJfQVhJU19IT1JJWk9OVEFMX1NDUk9MTCkK
KyAgICAgICAgICAgICAgICAgICAgZXZlbnQyZC54X2F4aXMgPSB3bF9maXhlZF90b19kb3VibGUo
dmFsdWUpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZXZlbnQy
ZC55X2F4aXMgPSAtd2xfZml4ZWRfdG9fZG91YmxlKHZhbHVlKTsKKworICAgICAgICAgICAgICAg
IHdpbmRvdy5kaXNwYXRjaElucHV0QXhpc0V2ZW50KCZldmVudDJkLmJhc2UpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICAgICAgd2luZG93
LmRpc3BhdGNoSW5wdXRBeGlzRXZlbnQoJmV2ZW50KTsKKyAgICAgICAgICAgIHdpbmRvdy5tX3Nl
YXREYXRhLmF4aXNfZGlzY3JldGUuaG9yaXpvbnRhbCA9IHdpbmRvdy5tX3NlYXREYXRhLmF4aXNf
ZGlzY3JldGUudmVydGljYWwgPSAwOworICAgICAgICB9CisgICAgfSwKKyAgICAvLyBmcmFtZQor
ICAgIFtdKHZvaWQqLCBzdHJ1Y3Qgd2xfcG9pbnRlciopIHsgfSwKKyAgICAvLyBheGlzX3NvdXJj
ZQorICAgIFtdKHZvaWQqLCBzdHJ1Y3Qgd2xfcG9pbnRlciosIHVpbnQzMl90KSB7IH0sCisgICAg
Ly8gYXhpc19zdG9wCisgICAgW10odm9pZCogZGF0YSwgc3RydWN0IHdsX3BvaW50ZXIqLCB1aW50
MzJfdCB0aW1lLCB1aW50MzJfdCBheGlzKQorICAgIHsKKyAgICAgICAgaWYgKGF4aXMgIT0gV0xf
UE9JTlRFUl9BWElTX0hPUklaT05UQUxfU0NST0xMICYmIGF4aXMgIT0gV0xfUE9JTlRFUl9BWElT
X1ZFUlRJQ0FMX1NDUk9MTCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvJiB3
aW5kb3cgPSAqc3RhdGljX2Nhc3Q8V2luZG93Vmlld0JhY2tlbmQqPihkYXRhKTsKKyAgICAgICAg
aWYgKHdpbmRvdy5tX3NlYXREYXRhLnBvaW50ZXIudGFyZ2V0KSB7CisgICAgICAgICAgICBzdHJ1
Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQgZXZlbnQgPSB7IHdwZV9pbnB1dF9heGlzX2V2ZW50X3R5
cGVfbW90aW9uLAorICAgICAgICAgICAgICAgIHRpbWUsIHdpbmRvdy5tX3NlYXREYXRhLnBvaW50
ZXIuY29vcmRzLmZpcnN0LCB3aW5kb3cubV9zZWF0RGF0YS5wb2ludGVyLmNvb3Jkcy5zZWNvbmQs
IGF4aXMsIDAsIHdpbmRvdy5tb2RpZmllcnMoKSB9OworICAgICAgICAgICAgd2luZG93LmRpc3Bh
dGNoSW5wdXRBeGlzRXZlbnQoJmV2ZW50KTsKKyAgICAgICAgfQorICAgIH0sCisgICAgLy8gYXhp
c19kaXNjcmV0ZQorICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3bF9wb2ludGVyKiwgdWludDMy
X3QgYXhpcywgaW50MzJfdCBkaXNjcmV0ZSkgeworICAgICAgICBhdXRvJiB3aW5kb3cgPSAqc3Rh
dGljX2Nhc3Q8V2luZG93Vmlld0JhY2tlbmQqPihkYXRhKTsKKyAgICAgICAgc3dpdGNoIChheGlz
KSB7CisgICAgICAgIGNhc2UgV0xfUE9JTlRFUl9BWElTX0hPUklaT05UQUxfU0NST0xMOgorICAg
ICAgICAgICAgd2luZG93Lm1fc2VhdERhdGEuYXhpc19kaXNjcmV0ZS5ob3Jpem9udGFsID0gZGlz
Y3JldGU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXTF9QT0lOVEVSX0FYSVNf
VkVSVElDQUxfU0NST0xMOgorICAgICAgICAgICAgd2luZG93Lm1fc2VhdERhdGEuYXhpc19kaXNj
cmV0ZS52ZXJ0aWNhbCA9IC1kaXNjcmV0ZTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgfSwKLSAgICBudWxscHRyLCAvLyBmcmFtZQotICAgIG51bGxwdHIsIC8vIGF4aXNfc291
cmNlCi0gICAgbnVsbHB0ciwgLy8gYXhpc19zdG9wCi0gICAgbnVsbHB0ciwgLy8gYXhpc19kaXNj
cmV0ZQogfTsKIAogY29uc3Qgc3RydWN0IHdsX2tleWJvYXJkX2xpc3RlbmVyIFdpbmRvd1ZpZXdC
YWNrZW5kOjpzX2tleWJvYXJkTGlzdGVuZXIgPSB7CmRpZmYgLS1naXQgYS9Ub29scy93cGUvYmFj
a2VuZHMvV2luZG93Vmlld0JhY2tlbmQuaCBiL1Rvb2xzL3dwZS9iYWNrZW5kcy9XaW5kb3dWaWV3
QmFja2VuZC5oCmluZGV4IGRhZDc3NGQ4ZjMzY2M0ZGM2MTEyMWZkZTc5NjZjZDc3MzA1YTU3NWQu
LjdjMWYwZDY1MzhhOGFlYWE3YTY1ODVmZmQ1NGQ1MmZiYzUxNzY4YjUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL3dwZS9iYWNrZW5kcy9XaW5kb3dWaWV3QmFja2VuZC5oCisrKyBiL1Rvb2xzL3dwZS9iYWNr
ZW5kcy9XaW5kb3dWaWV3QmFja2VuZC5oCkBAIC04OSw2ICs4OSwxMSBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgYm9vbCB0cmFja2luZyB7IGZhbHNlIH07CiAgICAgICAgIH0gdG91Y2g7CiAKKyAg
ICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIGludDMyX3QgaG9yaXpvbnRhbCB7IDAgfTsKKyAg
ICAgICAgICAgIGludDMyX3QgdmVydGljYWwgeyAwIH07CisgICAgICAgIH0gYXhpc19kaXNjcmV0
ZTsKKwogICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgaW50MzJfdCByYXRlIHsgMCB9Owog
ICAgICAgICAgICAgaW50MzJfdCBkZWxheSB7IDAgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417260</attachid>
            <date>2021-01-08 03:25:13 -0800</date>
            <delta_ts>2021-01-08 05:27:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219942-20210108112512.patch</filename>
            <type>text/plain</type>
            <size>10042</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBiOTUxZWE1ZmFmYWFjZjhj
NjUzODcxNTc2MDBiYzA4NDVlY2M3NDYuLjExNmQwNDk2YWQxZDg2ZWFiNmEwYzg0YTkyNDQ4NjI5
NmJjM2Y0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMTItMTYgIENocmlzIExv
cmQgIDxjbG9yZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdIEVuYWJsZSBzbW9vdGgtbW90
aW9uIGFuZCBraW5ldGljIHNjcm9sbGluZyBvbiB0b3VjaHBhZHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTk0MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IMW9YW4gRG9iZXLFoWVrLgorCisgICAgICAgIEludGVycHJldCBheGlzIG1vdGlvbiBldmVu
dHMgd2l0aCBhIHplcm8gdmFsdWUgYXMgYXhpcyBzdG9wIGV2ZW50cyBhbmQKKyAgICAgICAgc2Vu
ZCB0aGUgYXBwcm9wcmlhdGUgd2hlZWwgZXZlbnQgcGhhc2UuIFRoaXMgZW5hYmxlcyBraW5ldGlj
IHNjcm9sbGluZworICAgICAgICB3aGVuIHVzaW5nIHRvdWNocGFkcyBhbmQgb3RoZXIgc21vb3Ro
LXNjcm9sbGluZyBkZXZpY2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNs
aWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhU
b3VjaEV2ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcDoKKyAg
ICAgICAgKFdLV1BFOjptX2JhY2tlbmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dQ
RVZpZXcuaDoKKwogMjAyMS0wMS0wNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSBXZWFrSGFzaFNldCBpbnN0ZWFkIG9mIEhhc2hTZXQ8
VCo+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGll
bnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudElt
cGwuY3BwCmluZGV4IDJlNzU4MjI3YzcyNzRlOGExMjk3YzM1YmZlYTdmZmMyODYxZjY3NTkuLmVi
M2JlNjU3ZGU4MjE4MTI5NmE2YWZjNTUwNzI1NDhkNmIyZWEzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwCkBAIC0yMTcsNyAr
MjE3LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5h
dGl2ZVdlYlRvdWNoRXZlbnQmIHRvdWNoRXZlbnQsIGIKICAgICBpZiAoc2Nyb2xsR2VzdHVyZUNv
bnRyb2xsZXIuaGFuZGxlRXZlbnQodG91Y2hQb2ludCkpIHsKICAgICAgICAgc3RydWN0IHdwZV9p
bnB1dF9heGlzX2V2ZW50KiBheGlzRXZlbnQgPSBzY3JvbGxHZXN0dXJlQ29udHJvbGxlci5heGlz
RXZlbnQoKTsKICAgICAgICAgaWYgKGF4aXNFdmVudC0+dHlwZSAhPSB3cGVfaW5wdXRfYXhpc19l
dmVudF90eXBlX251bGwpCi0gICAgICAgICAgICBwYWdlLmhhbmRsZVdoZWVsRXZlbnQoV2ViS2l0
OjpOYXRpdmVXZWJXaGVlbEV2ZW50KGF4aXNFdmVudCwgbV92aWV3LnBhZ2UoKS5kZXZpY2VTY2Fs
ZUZhY3RvcigpLCBXZWJXaGVlbEV2ZW50OjpQaGFzZTo6UGhhc2VOb25lLCBXZWJXaGVlbEV2ZW50
OjpQaGFzZTo6UGhhc2VOb25lKSk7CisgICAgICAgICAgICBwYWdlLmhhbmRsZVdoZWVsRXZlbnQo
V2ViS2l0OjpOYXRpdmVXZWJXaGVlbEV2ZW50KGF4aXNFdmVudCwgbV92aWV3LnBhZ2UoKS5kZXZp
Y2VTY2FsZUZhY3RvcigpLCBzY3JvbGxHZXN0dXJlQ29udHJvbGxlci5waGFzZSgpLCBXZWJXaGVl
bEV2ZW50OjpQaGFzZTo6UGhhc2VOb25lKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwCmluZGV4IGJhOGY3YzE1
MDBkZjRkYjA0M2Y1YTFmN2RkOWU5MjY5ZjQ4YmNhOGMuLmQ1MzNhMTQ5YmQ2MjgwNzQwNjI0NGU1
MTUwYWFlOTkwZmVkNGUxY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvV1BFVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9X
UEVWaWV3LmNwcApAQCAtMTU5LDggKzE1OSwzMSBAQCBWaWV3OjpWaWV3KHN0cnVjdCB3cGVfdmll
d19iYWNrZW5kKiBiYWNrZW5kLCBjb25zdCBBUEk6OlBhZ2VDb25maWd1cmF0aW9uJiBiYXNlQwog
ICAgICAgICAvLyBoYW5kbGVfYXhpc19ldmVudAogICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1
Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGV2ZW50KQogICAgICAgICB7Ci0gICAgICAgICAgICBh
dXRvJiBwYWdlID0gcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKLSAgICAg
ICAgICAgIHBhZ2UuaGFuZGxlV2hlZWxFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQo
ZXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSwgV2ViV2hlZWxFdmVudDo6UGhhc2U6OlBo
YXNlTm9uZSwgV2ViV2hlZWxFdmVudDo6UGhhc2U6OlBoYXNlTm9uZSkpOworICAgICAgICAgICAg
YXV0byYgdmlldyA9ICpyZWludGVycHJldF9jYXN0PFZpZXcqPihkYXRhKTsKKworICAgICAgICAg
ICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBoYXJkLWNvZGUgdGhpcy4KKyAgICAgICAgICAgIGVu
dW0gQXhpcyB7CisgICAgICAgICAgICAgICAgVmVydGljYWwsCisgICAgICAgICAgICAgICAgSG9y
aXpvbnRhbAorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgc3dpdGNoIChldmVudC0+YXhp
cykgeworICAgICAgICAgICAgY2FzZSBWZXJ0aWNhbDoKKyAgICAgICAgICAgICAgICB2aWV3Lm1f
aG9yaXpvbnRhbFNjcm9sbEFjdGl2ZSA9ICEhZXZlbnQtPnZhbHVlOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSBIb3Jpem9udGFsOgorICAgICAgICAgICAgICAgIHZp
ZXcubV92ZXJ0aWNhbFNjcm9sbEFjdGl2ZSA9ICEhZXZlbnQtPnZhbHVlOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBXZSB0cmVhdCBhbiBh
eGlzIG1vdGlvbiBldmVudCB3aXRoIGEgdmFsdWUgb2YgemVybyB0byBiZSBlcXVpdmFsZW50Cisg
ICAgICAgICAgICAvLyB0byBhICdzdG9wJyBldmVudC4gTW90aW9uIGV2ZW50cyB3aXRoIHplcm8g
bW90aW9uIGRvbid0IGV4aXN0IG5hdHVyYWxseSwKKyAgICAgICAgICAgIC8vIHNvIHRoaXMgYWxs
b3dzIGEgYmFja2VuZCB0byBleHByZXNzICdzdG9wJyBldmVudHMgd2l0aG91dCBjaGFuZ2luZyBB
UEkuCisgICAgICAgICAgICBhdXRvJiBwYWdlID0gdmlldy5wYWdlKCk7CisgICAgICAgICAgICBp
ZiAoZXZlbnQtPnZhbHVlKQorICAgICAgICAgICAgICAgIHBhZ2UuaGFuZGxlV2hlZWxFdmVudChX
ZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoZXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3Io
KSwgV2ViV2hlZWxFdmVudDo6UGhhc2U6OlBoYXNlQ2hhbmdlZCwgV2ViV2hlZWxFdmVudDo6UGhh
c2U6OlBoYXNlTm9uZSkpOworICAgICAgICAgICAgZWxzZSBpZiAoIXZpZXcubV9ob3Jpem9udGFs
U2Nyb2xsQWN0aXZlICYmICF2aWV3Lm1fdmVydGljYWxTY3JvbGxBY3RpdmUpCisgICAgICAgICAg
ICAgICAgcGFnZS5oYW5kbGVXaGVlbEV2ZW50KFdlYktpdDo6TmF0aXZlV2ViV2hlZWxFdmVudChl
dmVudCwgcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpLCBXZWJXaGVlbEV2ZW50OjpQaGFzZTo6UGhh
c2VFbmRlZCwgV2ViV2hlZWxFdmVudDo6UGhhc2U6OlBoYXNlTm9uZSkpOwogICAgICAgICB9LAog
ICAgICAgICAvLyBoYW5kbGVfdG91Y2hfZXZlbnQKICAgICAgICAgW10odm9pZCogZGF0YSwgc3Ry
dWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCogZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvV1BFVmlldy5oCmluZGV4IDhmNGE4ZjNmNDM2MjcyZjQxOTYzODYzYzU2ZjBkNTBm
ZDc2MGRhZDMuLmI5NDg1MjU1NDMxM2VjZWRjMGVhZGVlMDYxYzRkZjZmNjc1NTZjNTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5oCkBAIC0xMzQsNiArMTM0LDkg
QEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIEdSZWZQdHI8V2ViS2l0V2ViVmlld0FjY2Vzc2libGU+
IG1fYWNjZXNzaWJsZTsKICNlbmRpZgogCisgICAgYm9vbCBtX2hvcml6b250YWxTY3JvbGxBY3Rp
dmUgeyBmYWxzZSB9OworICAgIGJvb2wgbV92ZXJ0aWNhbFNjcm9sbEFjdGl2ZSB7IGZhbHNlIH07
CisKICAgICBXZWJLaXQ6OklucHV0TWV0aG9kRmlsdGVyIG1faW5wdXRNZXRob2RGaWx0ZXI7CiB9
OwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
MWIxOWUzMjJmMjcxMmJlY2NhZTA4M2EzODE1ZWIzYzkzZDFhMjQzNy4uZWMzODYyOWQ2NjBhYjc2
NWQ4ZmMyNzliZmZiOTMxMGI0MzhmMjQwNCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTEyLTE2ICBDaHJpcyBM
b3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXSBFbmFibGUgc21vb3RoLW1v
dGlvbiBhbmQga2luZXRpYyBzY3JvbGxpbmcgb24gdG91Y2hwYWRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk5NDIKKworICAgICAgICBSZXZpZXdl
ZCBieSDFvWFuIERvYmVyxaFlay4KKworICAgICAgICAqIHdwZS9iYWNrZW5kcy9XaW5kb3dWaWV3
QmFja2VuZC5jcHA6CisgICAgICAgIFVwZGF0ZSB0byBXYXlsYW5kIHByb3RvY29sIDUgYW5kIGlu
dGVycHJldCBheGlzIHN0b3AsIGRpc2NyZXRlIGFuZAorICAgICAgICBzbW9vdGggYXhpcyBtb3Rp
b24gZXZlbnRzLgorCiAyMDIxLTAxLTA3ICBQYXVsbyBNYXRvcyAgPHBtYXRvc0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIEZpeCBta3RlbXAgY2FsbCBmb3IgYnVzeWJveCBta3RlbXAKZGlmZiAtLWdp
dCBhL1Rvb2xzL3dwZS9iYWNrZW5kcy9XaW5kb3dWaWV3QmFja2VuZC5jcHAgYi9Ub29scy93cGUv
YmFja2VuZHMvV2luZG93Vmlld0JhY2tlbmQuY3BwCmluZGV4IDU4YjcwZTMzZDUxMzUzN2Y5ODZj
MmY4YjI3NWViMThiY2QzNGNjMDUuLmJjYWIwZGNjMmZmZWNhMDBkNGU2MDdjMGI3ODI2YjVjYmRi
OWRiYWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL3dwZS9iYWNrZW5kcy9XaW5kb3dWaWV3QmFja2VuZC5j
cHAKKysrIGIvVG9vbHMvd3BlL2JhY2tlbmRzL1dpbmRvd1ZpZXdCYWNrZW5kLmNwcApAQCAtMTQ2
LDcgKzE0Niw3IEBAIGNvbnN0IHN0cnVjdCB3bF9yZWdpc3RyeV9saXN0ZW5lciBXaW5kb3dWaWV3
QmFja2VuZDo6c19yZWdpc3RyeUxpc3RlbmVyID0gewogICAgICAgICAgICAgd2luZG93LT5tX3hk
ZyA9IHN0YXRpY19jYXN0PHN0cnVjdCB6eGRnX3NoZWxsX3Y2Kj4od2xfcmVnaXN0cnlfYmluZChy
ZWdpc3RyeSwgbmFtZSwgJnp4ZGdfc2hlbGxfdjZfaW50ZXJmYWNlLCAxKSk7CiAKICAgICAgICAg
aWYgKCFzdGQ6OnN0cmNtcChpbnRlcmZhY2UsICJ3bF9zZWF0IikpCi0gICAgICAgICAgICB3aW5k
b3ctPm1fc2VhdCA9IHN0YXRpY19jYXN0PHN0cnVjdCB3bF9zZWF0Kj4od2xfcmVnaXN0cnlfYmlu
ZChyZWdpc3RyeSwgbmFtZSwgJndsX3NlYXRfaW50ZXJmYWNlLCA0KSk7CisgICAgICAgICAgICB3
aW5kb3ctPm1fc2VhdCA9IHN0YXRpY19jYXN0PHN0cnVjdCB3bF9zZWF0Kj4od2xfcmVnaXN0cnlf
YmluZChyZWdpc3RyeSwgbmFtZSwgJndsX3NlYXRfaW50ZXJmYWNlLCA1KSk7CiAgICAgfSwKICAg
ICAvLyBnbG9iYWxfcmVtb3ZlCiAgICAgW10odm9pZCosIHN0cnVjdCB3bF9yZWdpc3RyeSosIHVp
bnQzMl90KSB7IH0sCkBAIC0yMzgsMTcgKzIzOCw2NCBAQCBjb25zdCBzdHJ1Y3Qgd2xfcG9pbnRl
cl9saXN0ZW5lciBXaW5kb3dWaWV3QmFja2VuZDo6c19wb2ludGVyTGlzdGVuZXIgPSB7CiAgICAg
Ly8gYXhpcwogICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3bF9wb2ludGVyKiwgdWludDMyX3Qg
dGltZSwgdWludDMyX3QgYXhpcywgd2xfZml4ZWRfdCB2YWx1ZSkKICAgICB7CisgICAgICAgIGlm
IChheGlzICE9IFdMX1BPSU5URVJfQVhJU19IT1JJWk9OVEFMX1NDUk9MTCAmJiBheGlzICE9IFdM
X1BPSU5URVJfQVhJU19WRVJUSUNBTF9TQ1JPTEwpCisgICAgICAgICAgICByZXR1cm47CisKICAg
ICAgICAgYXV0byYgd2luZG93ID0gKnN0YXRpY19jYXN0PFdpbmRvd1ZpZXdCYWNrZW5kKj4oZGF0
YSk7CiAgICAgICAgIGlmICh3aW5kb3cubV9zZWF0RGF0YS5wb2ludGVyLnRhcmdldCkgewogICAg
ICAgICAgICAgc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50IGV2ZW50ID0geyB3cGVfaW5wdXRf
YXhpc19ldmVudF90eXBlX21vdGlvbiwKICAgICAgICAgICAgICAgICB0aW1lLCB3aW5kb3cubV9z
ZWF0RGF0YS5wb2ludGVyLmNvb3Jkcy5maXJzdCwgd2luZG93Lm1fc2VhdERhdGEucG9pbnRlci5j
b29yZHMuc2Vjb25kLCBheGlzLCAtd2xfZml4ZWRfdG9faW50KHZhbHVlKSwgd2luZG93Lm1vZGlm
aWVycygpIH07CisgICAgICAgICAgICBpZiAoYXhpcyA9PSBXTF9QT0lOVEVSX0FYSVNfSE9SSVpP
TlRBTF9TQ1JPTEwgJiYgd2luZG93Lm1fc2VhdERhdGEuYXhpc19kaXNjcmV0ZS5ob3Jpem9udGFs
KQorICAgICAgICAgICAgICAgIGV2ZW50LnZhbHVlID0gd2luZG93Lm1fc2VhdERhdGEuYXhpc19k
aXNjcmV0ZS5ob3Jpem9udGFsOworICAgICAgICAgICAgZWxzZSBpZiAoYXhpcyA9PSBXTF9QT0lO
VEVSX0FYSVNfVkVSVElDQUxfU0NST0xMICYmIHdpbmRvdy5tX3NlYXREYXRhLmF4aXNfZGlzY3Jl
dGUudmVydGljYWwpCisgICAgICAgICAgICAgICAgZXZlbnQudmFsdWUgPSB3aW5kb3cubV9zZWF0
RGF0YS5heGlzX2Rpc2NyZXRlLnZlcnRpY2FsOworI2lmIFdQRV9DSEVDS19WRVJTSU9OKDEsIDUs
IDApCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdHJ1Y3Qgd3BlX2lucHV0
X2F4aXNfMmRfZXZlbnQgZXZlbnQyZCA9IHsgZXZlbnQsIDAsIDAgfTsKKyAgICAgICAgICAgICAg
ICBldmVudDJkLmJhc2UudHlwZSA9IHN0YXRpY19jYXN0PHdwZV9pbnB1dF9heGlzX2V2ZW50X3R5
cGU+KHdwZV9pbnB1dF9heGlzX2V2ZW50X3R5cGVfbWFza18yZCB8IHdwZV9pbnB1dF9heGlzX2V2
ZW50X3R5cGVfbW90aW9uX3Ntb290aCk7CisKKyAgICAgICAgICAgICAgICBpZiAoYXhpcyA9PSBX
TF9QT0lOVEVSX0FYSVNfSE9SSVpPTlRBTF9TQ1JPTEwpCisgICAgICAgICAgICAgICAgICAgIGV2
ZW50MmQueF9heGlzID0gd2xfZml4ZWRfdG9fZG91YmxlKHZhbHVlKTsKKyAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGV2ZW50MmQueV9heGlzID0gLXdsX2ZpeGVkX3Rv
X2RvdWJsZSh2YWx1ZSk7CisKKyAgICAgICAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hJbnB1dEF4
aXNFdmVudCgmZXZlbnQyZC5iYXNlKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CisjZW5kaWYKICAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaElucHV0QXhpc0V2ZW50
KCZldmVudCk7CisgICAgICAgICAgICB3aW5kb3cubV9zZWF0RGF0YS5heGlzX2Rpc2NyZXRlLmhv
cml6b250YWwgPSB3aW5kb3cubV9zZWF0RGF0YS5heGlzX2Rpc2NyZXRlLnZlcnRpY2FsID0gMDsK
KyAgICAgICAgfQorICAgIH0sCisgICAgLy8gZnJhbWUKKyAgICBbXSh2b2lkKiwgc3RydWN0IHds
X3BvaW50ZXIqKSB7IH0sCisgICAgLy8gYXhpc19zb3VyY2UKKyAgICBbXSh2b2lkKiwgc3RydWN0
IHdsX3BvaW50ZXIqLCB1aW50MzJfdCkgeyB9LAorICAgIC8vIGF4aXNfc3RvcAorICAgIFtdKHZv
aWQqIGRhdGEsIHN0cnVjdCB3bF9wb2ludGVyKiwgdWludDMyX3QgdGltZSwgdWludDMyX3QgYXhp
cykKKyAgICB7CisgICAgICAgIGlmIChheGlzICE9IFdMX1BPSU5URVJfQVhJU19IT1JJWk9OVEFM
X1NDUk9MTCAmJiBheGlzICE9IFdMX1BPSU5URVJfQVhJU19WRVJUSUNBTF9TQ1JPTEwpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byYgd2luZG93ID0gKnN0YXRpY19jYXN0PFdp
bmRvd1ZpZXdCYWNrZW5kKj4oZGF0YSk7CisgICAgICAgIGlmICh3aW5kb3cubV9zZWF0RGF0YS5w
b2ludGVyLnRhcmdldCkgeworICAgICAgICAgICAgc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50
IGV2ZW50ID0geyB3cGVfaW5wdXRfYXhpc19ldmVudF90eXBlX21vdGlvbiwKKyAgICAgICAgICAg
ICAgICB0aW1lLCB3aW5kb3cubV9zZWF0RGF0YS5wb2ludGVyLmNvb3Jkcy5maXJzdCwgd2luZG93
Lm1fc2VhdERhdGEucG9pbnRlci5jb29yZHMuc2Vjb25kLCBheGlzLCAwLCB3aW5kb3cubW9kaWZp
ZXJzKCkgfTsKKyAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaElucHV0QXhpc0V2ZW50KCZldmVu
dCk7CisgICAgICAgIH0KKyAgICB9LAorICAgIC8vIGF4aXNfZGlzY3JldGUKKyAgICBbXSh2b2lk
KiBkYXRhLCBzdHJ1Y3Qgd2xfcG9pbnRlciosIHVpbnQzMl90IGF4aXMsIGludDMyX3QgZGlzY3Jl
dGUpIHsKKyAgICAgICAgYXV0byYgd2luZG93ID0gKnN0YXRpY19jYXN0PFdpbmRvd1ZpZXdCYWNr
ZW5kKj4oZGF0YSk7CisgICAgICAgIHN3aXRjaCAoYXhpcykgeworICAgICAgICBjYXNlIFdMX1BP
SU5URVJfQVhJU19IT1JJWk9OVEFMX1NDUk9MTDoKKyAgICAgICAgICAgIHdpbmRvdy5tX3NlYXRE
YXRhLmF4aXNfZGlzY3JldGUuaG9yaXpvbnRhbCA9IGRpc2NyZXRlOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgV0xfUE9JTlRFUl9BWElTX1ZFUlRJQ0FMX1NDUk9MTDoKKyAgICAg
ICAgICAgIHdpbmRvdy5tX3NlYXREYXRhLmF4aXNfZGlzY3JldGUudmVydGljYWwgPSAtZGlzY3Jl
dGU7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0sCi0gICAgbnVsbHB0ciwg
Ly8gZnJhbWUKLSAgICBudWxscHRyLCAvLyBheGlzX3NvdXJjZQotICAgIG51bGxwdHIsIC8vIGF4
aXNfc3RvcAotICAgIG51bGxwdHIsIC8vIGF4aXNfZGlzY3JldGUKIH07CiAKIGNvbnN0IHN0cnVj
dCB3bF9rZXlib2FyZF9saXN0ZW5lciBXaW5kb3dWaWV3QmFja2VuZDo6c19rZXlib2FyZExpc3Rl
bmVyID0gewpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2JhY2tlbmRzL1dpbmRvd1ZpZXdCYWNrZW5k
LmggYi9Ub29scy93cGUvYmFja2VuZHMvV2luZG93Vmlld0JhY2tlbmQuaAppbmRleCBkYWQ3NzRk
OGYzM2NjNGRjNjExMjFmZGU3OTY2Y2Q3NzMwNWE1NzVkLi43YzFmMGQ2NTM4YThhZWFhN2E2NTg1
ZmZkNTRkNTJmYmM1MTc2OGI1IDEwMDY0NAotLS0gYS9Ub29scy93cGUvYmFja2VuZHMvV2luZG93
Vmlld0JhY2tlbmQuaAorKysgYi9Ub29scy93cGUvYmFja2VuZHMvV2luZG93Vmlld0JhY2tlbmQu
aApAQCAtODksNiArODksMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJvb2wgdHJhY2tpbmcg
eyBmYWxzZSB9OwogICAgICAgICB9IHRvdWNoOwogCisgICAgICAgIHN0cnVjdCB7CisgICAgICAg
ICAgICBpbnQzMl90IGhvcml6b250YWwgeyAwIH07CisgICAgICAgICAgICBpbnQzMl90IHZlcnRp
Y2FsIHsgMCB9OworICAgICAgICB9IGF4aXNfZGlzY3JldGU7CisKICAgICAgICAgc3RydWN0IHsK
ICAgICAgICAgICAgIGludDMyX3QgcmF0ZSB7IDAgfTsKICAgICAgICAgICAgIGludDMyX3QgZGVs
YXkgeyAwIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>