<?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>214333</bug_id>
          
          <creation_ts>2020-07-14 16:58:46 -0700</creation_ts>
          <short_desc>Caret leaves trails behind when the editable content is subpixel positioned</short_desc>
          <delta_ts>2020-07-15 11:20:40 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=213300</see_also>
          <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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mifenton</cc>
    
    <cc>mitz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1671608</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-07-14 16:58:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/61914738&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671609</commentid>
    <comment_count>1</comment_count>
      <attachid>404310</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-07-14 17:06:01 -0700</bug_when>
    <thetext>Created attachment 404310
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671636</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-14 19:46:36 -0700</bug_when>
    <thetext>Committed r264386: &lt;https://trac.webkit.org/changeset/264386&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404310.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671637</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2020-07-14 20:11:42 -0700</bug_when>
    <thetext>I wonder if this fixes bug 213300 as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671641</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-07-14 20:17:07 -0700</bug_when>
    <thetext>*** Bug 213300 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671642</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-07-14 20:18:11 -0700</bug_when>
    <thetext>(In reply to mitz from comment #3)
&gt; I wonder if this fixes bug 213300 as well.
It indeed did. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671778</commentid>
    <comment_count>6</comment_count>
      <attachid>404310</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-15 10:01:18 -0700</bug_when>
    <thetext>Comment on attachment 404310
Patch

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

I like all the const and upgrading to references, but landing all of those does seem to sort of hide the fix, which I assume was just adding the call to snapRectToDevicePixels?

Can we create a regression test?

&gt; Source/WebCore/editing/FrameSelection.cpp:1787
&gt; +    if (m_selection.isCaret() &amp;&amp; m_caretPaint &amp;&amp; m_selection.start().deprecatedNode())

What motivated the addition of this null check? The old code just assumed this is non-null.

&gt; Source/WebCore/editing/FrameSelection.cpp:2291
&gt; +    if (m_position.deepEquivalent().deprecatedNode() &amp;&amp; m_position.deepEquivalent().deprecatedNode()-&gt;document().frame() == frame)

What motivated the addition of this null check?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671820</commentid>
    <comment_count>7</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-07-15 11:20:40 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #6)
&gt; Comment on attachment 404310 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=404310&amp;action=review
&gt; 
&gt; I like all the const and upgrading to references, but landing all of those
&gt; does seem to sort of hide the fix, which I assume was just adding the call
&gt; to snapRectToDevicePixels?
Yes, the fix is simply going from roundedIntPoint to snapRectToDevicePixels. I tend to go with a pre-cleanup first and land the fix separately, so not sure what happened here. I think the initial const change looked small enough to land it together with the fix and I didn&apos;t really pay attention to how much additional changes it required at the end. In retrospect, I should have done my usual pre-cleanup setup here.


&gt; 
&gt; Can we create a regression test?
I tried but I couldn&apos;t think of a good way of (ref)testing a blinking caret. I can&apos;t even use the usual &quot;collect the repaint rects&quot; as the repaint rect are correct here. I am happy to create one if someone has some ideas.

&gt; 
&gt; &gt; Source/WebCore/editing/FrameSelection.cpp:1787
&gt; &gt; +    if (m_selection.isCaret() &amp;&amp; m_caretPaint &amp;&amp; m_selection.start().deprecatedNode())
&gt; 
&gt; What motivated the addition of this null check? The old code just assumed
&gt; this is non-null.
&gt; 
&gt; &gt; Source/WebCore/editing/FrameSelection.cpp:2291
&gt; &gt; +    if (m_position.deepEquivalent().deprecatedNode() &amp;&amp; m_position.deepEquivalent().deprecatedNode()-&gt;document().frame() == frame)
&gt; 
&gt; What motivated the addition of this null check?
&gt;The old code just assumed this is non-null.
I noticed this pattern in the rendering code. The initial implementation, probably correctly, assumed a never-nullptr value (this was before we started using references extensively) but it may not be true today as the code evolved over time (hence all the drive-by reference changes). This code just looked unsafe to me.
(I personally very much dislike random null-checks in the code and prefer references when possible)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404310</attachid>
            <date>2020-07-14 17:06:01 -0700</date>
            <delta_ts>2020-07-14 19:46:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214333-20200714170600.patch</filename>
            <type>text/plain</type>
            <size>7652</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWFlMGNiNWUyZTFkNDBh
YjFkMGEwZjUxNDZmODhlMjllOWU2MGRkNy4uYjBhZDMzZDQ2NGE0OWRiNTA5NDIxMGM1OWJhZjVh
ZTg4MmZiNTM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA3LTE0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FyZXQgbGVhdmVzIHRyYWls
cyBiZWhpbmQgd2hlbiB0aGUgZWRpdGFibGUgY29udGVudCBpcyBzdWJwaXhlbCBwb3NpdGlvbmVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQzMzMK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYxOTE0NzM4PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgaW50ZWdyYWwgcm91bmRpbmcgd2l0
aCBwaXhlbHNuYXBwaW5nIHdoZW4gcGFpbnRpbmcgdGhlIGNhcmV0LgorCisgICAgICAgIFRoZSBw
YWludCBpbnZhbGlkYXRpb24gdXNlcyBkZXZpY2UgcGl4ZWwgc25hcHBpbmcgYW5kIHRoZSBhY3R1
YWwgcGFpbnRpbmcgbmVlZHMgdG8gbWF0Y2ggaXQKKyAgICAgICAgaW4gb3JkZXIgdG8gbm90IHBh
aW50IG91dHNpZGUgb2YgdGhlIGludmFsaWRhdGVkIHJlZ2lvbi4KKworICAgICAgICAqIGVkaXRp
bmcvRWRpdGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYXJldFJlbmRlcnNJbnNpZGVOb2Rl
KToKKyAgICAgICAgKFdlYkNvcmU6OnJlbmRlcmVyRm9yQ2FyZXRQYWludGluZyk6CisgICAgICAg
ICogZWRpdGluZy9FZGl0aW5nLmg6CisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6cGFpbnRDYXJldCk6CisgICAg
ICAgIChXZWJDb3JlOjpDYXJldEJhc2U6OmNvbXB1dGVDYXJldENvbG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhcmV0QmFzZTo6cGFpbnRDYXJldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
cmFnQ2FyZXRDb250cm9sbGVyOjpwYWludERyYWdDYXJldCBjb25zdCk6CisgICAgICAgICogZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5oOgorCiAyMDIwLTA3LTE0ICBDbGFyayBXYW5nICA8Y2xhcmtf
d2FuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlZCBBdWRpb0NvbnRleHQgY29uc3RydWN0
b3IgYWNjb3JkaW5nIHRvIHNwZWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCmluZGV4IGU3
N2YwZDU1MDg3YmFmODFlNzcwNDJmMTcyYzQ3MGNlZGE5MWRmODcuLmE3ODdkZmFhZjFjNTEyODk2
ZjZlN2JiMTc2NWVhMzQ4M2RkMTUyODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcApA
QCAtMTI3MiwxMiArMTI3MiwxMiBAQCBFbGVtZW50KiBkZXByZWNhdGVkRW5jbG9zaW5nQmxvY2tG
bG93RWxlbWVudChOb2RlKiBub2RlKQogICAgIHJldHVybiBudWxscHRyOwogfQogCi1zdGF0aWMg
aW5saW5lIGJvb2wgY2FyZXRSZW5kZXJzSW5zaWRlTm9kZShOb2RlJiBub2RlKQorc3RhdGljIGlu
bGluZSBib29sIGNhcmV0UmVuZGVyc0luc2lkZU5vZGUoY29uc3QgTm9kZSYgbm9kZSkKIHsKICAg
ICByZXR1cm4gIWlzUmVuZGVyZWRUYWJsZSgmbm9kZSkgJiYgIWVkaXRpbmdJZ25vcmVzQ29udGVu
dChub2RlKTsKIH0KIAotUmVuZGVyQmxvY2sqIHJlbmRlcmVyRm9yQ2FyZXRQYWludGluZyhOb2Rl
KiBub2RlKQorUmVuZGVyQmxvY2sqIHJlbmRlcmVyRm9yQ2FyZXRQYWludGluZyhjb25zdCBOb2Rl
KiBub2RlKQogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdGluZy5oCmluZGV4IDZjMGRiZDc1MzA5Y2IwYzVjMzA5ZjM2ZjlmMjY2ZjFk
MGJiNDA4YjEuLjkyZThiNmZkYTA2NTYyNzcxMzgxMjQzYjM4MDJiMGM2NDkyNDQ0ZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdGluZy5oCkBAIC0yMDUsNyArMjA1LDcgQEAgY29uc3QgU3RyaW5nJiBu
b25CcmVha2luZ1NwYWNlU3RyaW5nKCk7CiAKIC8vIE1pc2NlbGxhbmVvdXMgZnVuY3Rpb25zIGZv
ciBjYXJldCByZW5kZXJpbmcuCiAKLVJlbmRlckJsb2NrKiByZW5kZXJlckZvckNhcmV0UGFpbnRp
bmcoTm9kZSopOworUmVuZGVyQmxvY2sqIHJlbmRlcmVyRm9yQ2FyZXRQYWludGluZyhjb25zdCBO
b2RlKik7CiBMYXlvdXRSZWN0IGxvY2FsQ2FyZXRSZWN0SW5SZW5kZXJlckZvckNhcmV0UGFpbnRp
bmcoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgUmVuZGVyQmxvY2sqJik7CiBMYXlvdXRSZWN0IGxv
Y2FsQ2FyZXRSZWN0SW5SZW5kZXJlckZvclJlY3QoTGF5b3V0UmVjdCYsIE5vZGUqLCBSZW5kZXJP
YmplY3QqLCBSZW5kZXJCbG9jayomKTsKIEludFJlY3QgYWJzb2x1dGVCb3VuZHNGb3JMb2NhbENh
cmV0UmVjdChSZW5kZXJCbG9jayogcmVuZGVyZXJGb3JDYXJldFBhaW50aW5nLCBjb25zdCBMYXlv
dXRSZWN0JiwgYm9vbCogaW5zaWRlRml4ZWQgPSBudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggMzNhOTI3ZDU0OGZmZGI2ZjljYjFkNTZmODRl
MGRmY2QwMWE3NzdiMC4uMTQ3NWZlNTNhMWMzN2I4NzM3YjhhYTUwNTA0ZjE3NDhiYTg3NjA4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTE3ODQsMTEg
KzE3ODQsMTEgQEAgdm9pZCBDYXJldEJhc2U6OmludmFsaWRhdGVDYXJldFJlY3QoTm9kZSogbm9k
ZSwgYm9vbCBjYXJldFJlY3RDaGFuZ2VkKQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjpwYWludENh
cmV0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zm
c2V0LCBjb25zdCBMYXlvdXRSZWN0JiBjbGlwUmVjdCkKIHsKLSAgICBpZiAobV9zZWxlY3Rpb24u
aXNDYXJldCgpICYmIG1fY2FyZXRQYWludCkKLSAgICAgICAgQ2FyZXRCYXNlOjpwYWludENhcmV0
KG1fc2VsZWN0aW9uLnN0YXJ0KCkuZGVwcmVjYXRlZE5vZGUoKSwgY29udGV4dCwgcGFpbnRPZmZz
ZXQsIGNsaXBSZWN0KTsKKyAgICBpZiAobV9zZWxlY3Rpb24uaXNDYXJldCgpICYmIG1fY2FyZXRQ
YWludCAmJiBtX3NlbGVjdGlvbi5zdGFydCgpLmRlcHJlY2F0ZWROb2RlKCkpCisgICAgICAgIENh
cmV0QmFzZTo6cGFpbnRDYXJldCgqbV9zZWxlY3Rpb24uc3RhcnQoKS5kZXByZWNhdGVkTm9kZSgp
LCBjb250ZXh0LCBwYWludE9mZnNldCwgY2xpcFJlY3QpOwogfQogCi1Db2xvciBDYXJldEJhc2U6
OmNvbXB1dGVDYXJldENvbG9yKGNvbnN0IFJlbmRlclN0eWxlJiBlbGVtZW50U3R5bGUsIE5vZGUq
IG5vZGUpCitDb2xvciBDYXJldEJhc2U6OmNvbXB1dGVDYXJldENvbG9yKGNvbnN0IFJlbmRlclN0
eWxlJiBlbGVtZW50U3R5bGUsIGNvbnN0IE5vZGUqIG5vZGUpCiB7CiAgICAgLy8gT24gaU9TLCB3
ZSB3YW50IHRvIGZhbGwgYmFjayB0byB0aGUgdGludENvbG9yLCBhbmQgb25seSBvdmVycmlkZSBp
ZiBDU1MgaGFzIGV4cGxpY2l0bHkgc3BlY2lmaWVkIGEgY3VzdG9tIGNvbG9yLgogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKQEAgLTE4MDksMjYgKzE4
MDksMjcgQEAgQ29sb3IgQ2FyZXRCYXNlOjpjb21wdXRlQ2FyZXRDb2xvcihjb25zdCBSZW5kZXJT
dHlsZSYgZWxlbWVudFN0eWxlLCBOb2RlKiBub2RlKQogI2VuZGlmCiB9CiAKLXZvaWQgQ2FyZXRC
YXNlOjpwYWludENhcmV0KE5vZGUqIG5vZGUsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBjb25zdCBMYXlvdXRSZWN0JiBjbGlwUmVjdCkg
Y29uc3QKK3ZvaWQgQ2FyZXRCYXNlOjpwYWludENhcmV0KGNvbnN0IE5vZGUmIG5vZGUsIEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBjb25z
dCBMYXlvdXRSZWN0JiBjbGlwUmVjdCkgY29uc3QKIHsKICNpZiBFTkFCTEUoVEVYVF9DQVJFVCkK
ICAgICBpZiAobV9jYXJldFZpc2liaWxpdHkgPT0gSGlkZGVuKQogICAgICAgICByZXR1cm47CiAK
LSAgICBMYXlvdXRSZWN0IGRyYXdpbmdSZWN0ID0gbG9jYWxDYXJldFJlY3RXaXRob3V0VXBkYXRl
KCk7Ci0gICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gcmVuZGVyZXJGb3JDYXJldFBhaW50aW5nKG5v
ZGUpKQorICAgIGF1dG8gZHJhd2luZ1JlY3QgPSBsb2NhbENhcmV0UmVjdFdpdGhvdXRVcGRhdGUo
KTsKKyAgICBpZiAoYXV0byogcmVuZGVyZXIgPSByZW5kZXJlckZvckNhcmV0UGFpbnRpbmcoJm5v
ZGUpKQogICAgICAgICByZW5kZXJlci0+ZmxpcEZvcldyaXRpbmdNb2RlKGRyYXdpbmdSZWN0KTsK
LSAgICBkcmF3aW5nUmVjdC5tb3ZlQnkocm91bmRlZEludFBvaW50KHBhaW50T2Zmc2V0KSk7Ci0g
ICAgTGF5b3V0UmVjdCBjYXJldCA9IGludGVyc2VjdGlvbihkcmF3aW5nUmVjdCwgY2xpcFJlY3Qp
OworICAgIGRyYXdpbmdSZWN0Lm1vdmVCeShwYWludE9mZnNldCk7CisgICAgYXV0byBjYXJldCA9
IGludGVyc2VjdGlvbihkcmF3aW5nUmVjdCwgY2xpcFJlY3QpOwogICAgIGlmIChjYXJldC5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIENvbG9yIGNhcmV0Q29sb3IgPSBDb2xvcjo6
YmxhY2s7Ci0gICAgRWxlbWVudCogZWxlbWVudCA9IGlzPEVsZW1lbnQ+KCpub2RlKSA/IGRvd25j
YXN0PEVsZW1lbnQ+KG5vZGUpIDogbm9kZS0+cGFyZW50RWxlbWVudCgpOworICAgIGF1dG8qIGVs
ZW1lbnQgPSBpczxFbGVtZW50Pihub2RlKSA/IGRvd25jYXN0PEVsZW1lbnQ+KCZub2RlKSA6IG5v
ZGUucGFyZW50RWxlbWVudCgpOwogICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQtPnJlbmRlcmVy
KCkpCi0gICAgICAgIGNhcmV0Q29sb3IgPSBDYXJldEJhc2U6OmNvbXB1dGVDYXJldENvbG9yKGVs
ZW1lbnQtPnJlbmRlcmVyKCktPnN0eWxlKCksIG5vZGUpOworICAgICAgICBjYXJldENvbG9yID0g
Q2FyZXRCYXNlOjpjb21wdXRlQ2FyZXRDb2xvcihlbGVtZW50LT5yZW5kZXJlcigpLT5zdHlsZSgp
LCAmbm9kZSk7CiAKLSAgICBjb250ZXh0LmZpbGxSZWN0KGNhcmV0LCBjYXJldENvbG9yKTsKKyAg
ICBhdXRvIHBpeGVsU25hcHBlZENhcmV0UmVjdCA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoY2Fy
ZXQsIG5vZGUuZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKKyAgICBjb250ZXh0LmZp
bGxSZWN0KHBpeGVsU25hcHBlZENhcmV0UmVjdCwgY2FyZXRDb2xvcik7CiAjZWxzZQogICAgIFVO
VVNFRF9QQVJBTShub2RlKTsKICAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CkBAIC0yMjg3LDgg
KzIyODgsOCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRGb2N1c2VkRWxlbWVudElmTmVlZGVk
KCkKIHZvaWQgRHJhZ0NhcmV0Q29udHJvbGxlcjo6cGFpbnREcmFnQ2FyZXQoRnJhbWUqIGZyYW1l
LCBHcmFwaGljc0NvbnRleHQmIHAsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgY29u
c3QgTGF5b3V0UmVjdCYgY2xpcFJlY3QpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKFRFWFRfQ0FSRVQp
Ci0gICAgaWYgKG1fcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkTm9kZSgpLT5k
b2N1bWVudCgpLmZyYW1lKCkgPT0gZnJhbWUpCi0gICAgICAgIHBhaW50Q2FyZXQobV9wb3NpdGlv
bi5kZWVwRXF1aXZhbGVudCgpLmRlcHJlY2F0ZWROb2RlKCksIHAsIHBhaW50T2Zmc2V0LCBjbGlw
UmVjdCk7CisgICAgaWYgKG1fcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkTm9k
ZSgpICYmIG1fcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkTm9kZSgpLT5kb2N1
bWVudCgpLmZyYW1lKCkgPT0gZnJhbWUpCisgICAgICAgIHBhaW50Q2FyZXQoKm1fcG9zaXRpb24u
ZGVlcEVxdWl2YWxlbnQoKS5kZXByZWNhdGVkTm9kZSgpLCBwLCBwYWludE9mZnNldCwgY2xpcFJl
Y3QpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZnJhbWUpOwogICAgIFVOVVNFRF9QQVJBTShw
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uaAppbmRleCA4OTVjNjUyMTJm
OGRmNjEwN2U2MzRjMmQzMDFhNTk5YjBlOWRmZGYyLi5kYTQyZTBmZmFjY2VlMWRlNWRlN2ZiYTIy
ZTllOWZkODkwMzQ2YTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5o
CkBAIC02Myw3ICs2Myw3IEBAIGNsYXNzIENhcmV0QmFzZSB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoQ2FyZXRCYXNlKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
LSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ29sb3IgY29tcHV0ZUNhcmV0Q29sb3IoY29uc3Qg
UmVuZGVyU3R5bGUmIGVsZW1lbnRTdHlsZSwgTm9kZSopOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBDb2xvciBjb21wdXRlQ2FyZXRDb2xvcihjb25zdCBSZW5kZXJTdHlsZSYgZWxlbWVudFN0
eWxlLCBjb25zdCBOb2RlKik7CiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBDYXJldFZpc2liaWxpdHkg
eyBWaXNpYmxlLCBIaWRkZW4gfTsKICAgICBleHBsaWNpdCBDYXJldEJhc2UoQ2FyZXRWaXNpYmls
aXR5ID0gSGlkZGVuKTsKQEAgLTcyLDcgKzcyLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgY2xl
YXJDYXJldFJlY3QoKTsKICAgICBib29sIHVwZGF0ZUNhcmV0UmVjdChEb2N1bWVudCosIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYgY2FyZXRQb3NpdGlvbik7CiAgICAgYm9vbCBzaG91bGRSZXBhaW50
Q2FyZXQoY29uc3QgUmVuZGVyVmlldyosIGJvb2wgaXNDb250ZW50RWRpdGFibGUpIGNvbnN0Owot
ICAgIHZvaWQgcGFpbnRDYXJldChOb2RlKiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgTGF5b3V0
UG9pbnQmLCBjb25zdCBMYXlvdXRSZWN0JiBjbGlwUmVjdCkgY29uc3Q7CisgICAgdm9pZCBwYWlu
dENhcmV0KGNvbnN0IE5vZGUmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBMYXlvdXRQb2ludCYs
IGNvbnN0IExheW91dFJlY3QmIGNsaXBSZWN0KSBjb25zdDsKIAogICAgIGNvbnN0IExheW91dFJl
Y3QmIGxvY2FsQ2FyZXRSZWN0V2l0aG91dFVwZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FyZXRM
b2NhbFJlY3Q7IH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>