<?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>225048</bug_id>
          
          <creation_ts>2021-04-26 02:54:07 -0700</creation_ts>
          <short_desc>Refcount Style::Resolver</short_desc>
          <delta_ts>2021-04-26 06:19:16 -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>CSS</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1754145</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-04-26 02:54:07 -0700</bug_when>
    <thetext>For safety, and to allow more sharing in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754146</commentid>
    <comment_count>1</comment_count>
      <attachid>427032</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-04-26 02:55:51 -0700</bug_when>
    <thetext>Created attachment 427032
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754147</commentid>
    <comment_count>2</comment_count>
      <attachid>427032</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-04-26 03:02:05 -0700</bug_when>
    <thetext>Comment on attachment 427032
patch

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

&gt; Source/WebCore/style/StyleResolver.h:83
&gt; +class Resolver : public RefCounted&lt;Resolver&gt; {
&gt;  public:

Should we iso-heap this?

&gt; Source/WebCore/style/StyleScope.h:180
&gt;      HashSet&lt;const Element*&gt; m_elementsInHeadWithPendingSheets;
&gt;      HashSet&lt;const Element*&gt; m_elementsInBodyWithPendingSheets;

Yikes. We should use WeakHashSet for these!

&gt; Source/WebCore/style/StyleTreeResolver.h:73
&gt;          Scope* enclosingScope { nullptr };

Should this be RefPtr&lt;Scope&gt; as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754153</commentid>
    <comment_count>3</comment_count>
      <attachid>427035</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-04-26 04:23:58 -0700</bug_when>
    <thetext>Created attachment 427035
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754166</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-26 06:18:02 -0700</bug_when>
    <thetext>Committed r276588 (237024@main): &lt;https://commits.webkit.org/237024@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 427035.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754167</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-26 06:19:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/77150042&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427032</attachid>
            <date>2021-04-26 02:55:51 -0700</date>
            <delta_ts>2021-04-26 04:23:58 -0700</delta_ts>
            <desc>patch</desc>
            <filename>style-resolver-refcount.patch</filename>
            <type>text/plain</type>
            <size>12003</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5MTI0ZGM3OTBlMjguLjNkNDBmYmRjMDBiOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMyIEBACisyMDIxLTA0LTI2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KKworICAgICAgICBSZWZjb3VudCBTdHlsZTo6UmVzb2x2ZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTA0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBzYWZldHksIGFuZCB0byBhbGxvdyBt
b3JlIHNoYXJpbmcgaW4gdGhlIGZ1dHVyZS4KKworICAgICAgICAqIGNzcy9ET01DU1NSZWdpc3Rl
ckN1c3RvbVByb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNTU1JlZ2lzdGVyQ3Vz
dG9tUHJvcGVydHk6OnJlZ2lzdGVyUHJvcGVydHkpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXNlckFnZW50U2hhZG93VHJlZVN0eWxl
UmVzb2x2ZXIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHN0eWxlL1N0
eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjpjcmVh
dGUpOgorICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKiBzdHlsZS9T
dHlsZVNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZTo6cmVzb2x2ZXIp
OgorICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGUuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVRy
ZWVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpT
Y29wZTo6U2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6U2Nv
cGU6On5TY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpzdHls
ZUZvclN0eWxlYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpy
ZXNvbHZlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpy
ZXNvbHZlUHNldWRvU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZl
cjo6cmVzb2x2ZSk6CisgICAgICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaDoKKwogMjAy
MS0wNC0yNSAgQ2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
Rml4IGEgY3Jhc2ggY2F1c2VkIGJ5IEFWSUYgZGVjb2RpbmcgZmFpbHVyZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwCmluZGV4IDI0
YTI3NzNkMjA0My4uOTBmZmU2ZWY1YTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0RPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwCkBAIC00OCwxMSArNDgsMTEgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eTo6cmVnaXN0ZXJQcm9w
ZXJ0eShEb2N1bWVudCYgZG9jdW0KICAgICBSZWZQdHI8Q1NTQ3VzdG9tUHJvcGVydHlWYWx1ZT4g
aW5pdGlhbFZhbHVlOwogICAgIGlmICghZGVzY3JpcHRvci5pbml0aWFsVmFsdWUuaXNFbXB0eSgp
KSB7CiAgICAgICAgIENTU1Rva2VuaXplciB0b2tlbml6ZXIoZGVzY3JpcHRvci5pbml0aWFsVmFs
dWUpOwotICAgICAgICBTdHlsZTo6UmVzb2x2ZXIgc3R5bGVSZXNvbHZlcihkb2N1bWVudCk7Cisg
ICAgICAgIGF1dG8gc3R5bGVSZXNvbHZlciA9IFN0eWxlOjpSZXNvbHZlcjo6Y3JlYXRlKGRvY3Vt
ZW50KTsKIAogICAgICAgICAvLyBXZSBuZWVkIHRvIGluaXRpYWxpemUgdGhpcyBzbyB0aGF0IHdl
IGNhbiBzdWNjZXNzZnVsbHkgcGFyc2UgY29tcHV0YXRpb25hbGx5IGRlcGVuZGVudCB2YWx1ZXMg
KGxpa2UgZW0gdW5pdHMpLgogICAgICAgICAvLyBXZSBkb24ndCBhY3R1YWxseSBuZWVkIHRoZSB2
YWx1ZXMgdG8gYmUgYWNjdXJhdGUsIHNpbmNlIHRoZXkgd2lsbCBiZSByZWplY3RlZCBsYXRlciBh
bnl3YXkKLSAgICAgICAgYXV0byBzdHlsZSA9IHN0eWxlUmVzb2x2ZXIuZGVmYXVsdFN0eWxlRm9y
RWxlbWVudChudWxscHRyKTsKKyAgICAgICAgYXV0byBzdHlsZSA9IHN0eWxlUmVzb2x2ZXItPmRl
ZmF1bHRTdHlsZUZvckVsZW1lbnQobnVsbHB0cik7CiAKICAgICAgICAgSGFzaFNldDxDU1NQcm9w
ZXJ0eUlEPiBkZXBlbmRlbmNpZXM7CiAgICAgICAgIENTU1Byb3BlcnR5UGFyc2VyOjpjb2xsZWN0
UGFyc2VkQ3VzdG9tUHJvcGVydHlWYWx1ZURlcGVuZGVuY2llcyhkZXNjcmlwdG9yLnN5bnRheCwg
ZmFsc2UsIGRlcGVuZGVuY2llcywgdG9rZW5pemVyLnRva2VuUmFuZ2UoKSwgc3RyaWN0Q1NTUGFy
c2VyQ29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDRlOGE3OTZlMWNiMS4u
MmFlM2MzZGViOTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIzODQsNyArMjM4NCw3
IEBAIHZvaWQgRG9jdW1lbnQ6OnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKGludCBwYWdlSW5k
ZXgsIEludFNpemUmIHBhZ2VTaXplLCBpbnQmCiBTdHlsZTo6UmVzb2x2ZXImIERvY3VtZW50Ojp1
c2VyQWdlbnRTaGFkb3dUcmVlU3R5bGVSZXNvbHZlcigpCiB7CiAgICAgaWYgKCFtX3VzZXJBZ2Vu
dFNoYWRvd1RyZWVTdHlsZVJlc29sdmVyKQotICAgICAgICBtX3VzZXJBZ2VudFNoYWRvd1RyZWVT
dHlsZVJlc29sdmVyID0gbWFrZVVuaXF1ZTxTdHlsZTo6UmVzb2x2ZXI+KCp0aGlzKTsKKyAgICAg
ICAgbV91c2VyQWdlbnRTaGFkb3dUcmVlU3R5bGVSZXNvbHZlciA9IFN0eWxlOjpSZXNvbHZlcjo6
Y3JlYXRlKCp0aGlzKTsKICAgICByZXR1cm4gKm1fdXNlckFnZW50U2hhZG93VHJlZVN0eWxlUmVz
b2x2ZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggZTI1N2VhZDNjOTQ1Li4wOGYwYTA1
NmQxODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNzQxLDcgKzE3NDEsNyBAQCBwcml2YXRl
OgogCiAgICAgVW5pcXVlUmVmPFF1aXJrcz4gbV9xdWlya3M7CiAKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8U3R5bGU6OlJlc29sdmVyPiBtX3VzZXJBZ2VudFNoYWRvd1RyZWVTdHlsZVJlc29sdmVyOwor
ICAgIFJlZlB0cjxTdHlsZTo6UmVzb2x2ZXI+IG1fdXNlckFnZW50U2hhZG93VHJlZVN0eWxlUmVz
b2x2ZXI7CiAKICAgICBSZWZQdHI8RE9NV2luZG93PiBtX2RvbVdpbmRvdzsKICAgICBXZWFrUHRy
PERvY3VtZW50PiBtX2NvbnRleHREb2N1bWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNv
bHZlci5jcHAKaW5kZXggMzRlODAyZmFmYzE3Li5kMDhiMzlmNTBjNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC04NCw2ICs4NCwxMSBAQCBuYW1lc3BhY2UgU3R5
bGUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCitSZWY8UmVzb2x2ZXI+IFJlc29s
dmVyOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFJlc29sdmVyKGRvY3VtZW50KSk7Cit9CisKIFJlc29sdmVyOjpSZXNvbHZlcihEb2N1bWVu
dCYgZG9jdW1lbnQpCiAgICAgOiBtX3J1bGVTZXRzKCp0aGlzKQogICAgICwgbV9kb2N1bWVudChk
b2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuaAppbmRleCA5ZTAyZmIyYTZm
ZmMuLmEwMzlhMTkwYzkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVS
ZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuaApAQCAt
NzksMTAgKzc5LDkgQEAgc3RydWN0IEVsZW1lbnRTdHlsZSB7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFJlbGF0aW9ucz4gcmVsYXRpb25zOwogfTsKIAotY2xhc3MgUmVzb2x2ZXIgewotICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFJlc29sdmVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitjbGFz
cyBSZXNvbHZlciA6IHB1YmxpYyBSZWZDb3VudGVkPFJlc29sdmVyPiB7CiBwdWJsaWM6Ci0gICAg
UmVzb2x2ZXIoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPFJlc29sdmVyPiBjcmVhdGUoRG9j
dW1lbnQmKTsKICAgICB+UmVzb2x2ZXIoKTsKIAogICAgIEVsZW1lbnRTdHlsZSBzdHlsZUZvckVs
ZW1lbnQoY29uc3QgRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgY29u
c3QgUmVuZGVyU3R5bGUqIHBhcmVudEJveFN0eWxlID0gbnVsbHB0ciwgUnVsZU1hdGNoaW5nQmVo
YXZpb3IgPSBSdWxlTWF0Y2hpbmdCZWhhdmlvcjo6TWF0Y2hBbGxSdWxlcywgY29uc3QgU2VsZWN0
b3JGaWx0ZXIqID0gbnVsbHB0cik7CkBAIC0xNDMsNiArMTQyLDggQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBmcmllbmQgY2xhc3MgUGFnZVJ1bGVDb2xsZWN0b3I7CiAKKyAgICBSZXNvbHZlcihE
b2N1bWVudCYpOworCiAgICAgY2xhc3MgU3RhdGUgewogICAgIHB1YmxpYzoKICAgICAgICAgU3Rh
dGUoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAKaW5kZXggZDg0MTBmMGQ1MjFk
Li5jOGJlODJjM2FiYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2Nv
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwCkBAIC05NCw3
ICs5NCw3IEBAIFJlc29sdmVyJiBTY29wZTo6cmVzb2x2ZXIoKQogICAgIGlmICghbV9yZXNvbHZl
cikgewogICAgICAgICBTZXRGb3JTY29wZTxib29sPiBpc1VwZGF0aW5nU3R5bGVSZXNvbHZlciB7
IG1faXNVcGRhdGluZ1N0eWxlUmVzb2x2ZXIsIHRydWUgfTsKIAotICAgICAgICBtX3Jlc29sdmVy
ID0gbWFrZVVuaXF1ZTxSZXNvbHZlcj4obV9kb2N1bWVudCk7CisgICAgICAgIG1fcmVzb2x2ZXIg
PSBSZXNvbHZlcjo6Y3JlYXRlKG1fZG9jdW1lbnQpOwogCiAgICAgICAgIGlmICghbV9zaGFkb3dS
b290KSB7CiAgICAgICAgICAgICBtX2RvY3VtZW50LmZvbnRTZWxlY3RvcigpLmJ1aWxkU3RhcnRl
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oCmluZGV4IDAzMWNiYmJhOThhNy4uN2MwNzJh
NTk1MWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oCkBAIC0xNjQsNyArMTY0LDcgQEAg
cHJpdmF0ZToKICAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKICAgICBTaGFkb3dSb290KiBtX3No
YWRvd1Jvb3QgeyBudWxscHRyIH07CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzb2x2ZXI+IG1f
cmVzb2x2ZXI7CisgICAgUmVmUHRyPFJlc29sdmVyPiBtX3Jlc29sdmVyOwogCiAgICAgVmVjdG9y
PFJlZlB0cjxTdHlsZVNoZWV0Pj4gbV9zdHlsZVNoZWV0c0ZvclN0eWxlU2hlZXRMaXN0OwogICAg
IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4+IG1fYWN0aXZlU3R5bGVTaGVldHM7CkBAIC0x
NzksNyArMTc5LDYgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PGNvbnN0IEVsZW1lbnQqPiBtX2Vs
ZW1lbnRzSW5IZWFkV2l0aFBlbmRpbmdTaGVldHM7CiAgICAgSGFzaFNldDxjb25zdCBFbGVtZW50
Kj4gbV9lbGVtZW50c0luQm9keVdpdGhQZW5kaW5nU2hlZXRzOwogCi0KICAgICBMaXN0SGFzaFNl
dDxOb2RlKj4gbV9zdHlsZVNoZWV0Q2FuZGlkYXRlTm9kZXM7CiAKICAgICBTdHJpbmcgbV9wcmVm
ZXJyZWRTdHlsZXNoZWV0U2V0TmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlVHJlZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJl
c29sdmVyLmNwcAppbmRleCBjMDQxNzE5YTA0NjIuLmRiYzAzM2VlMGM1NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcApAQCAtNzMsNyArNzMsNyBAQCBUcmVl
UmVzb2x2ZXI6On5UcmVlUmVzb2x2ZXIoKSA9IGRlZmF1bHQ7CiAKIFRyZWVSZXNvbHZlcjo6U2Nv
cGU6OlNjb3BlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IHJlc29sdmVyKGRvY3VtZW50LnN0
eWxlU2NvcGUoKS5yZXNvbHZlcigpKQotICAgICwgc2hhcmluZ1Jlc29sdmVyKGRvY3VtZW50LCBy
ZXNvbHZlci5ydWxlU2V0cygpLCBzZWxlY3RvckZpbHRlcikKKyAgICAsIHNoYXJpbmdSZXNvbHZl
cihkb2N1bWVudCwgcmVzb2x2ZXItPnJ1bGVTZXRzKCksIHNlbGVjdG9yRmlsdGVyKQogewogICAg
IGRvY3VtZW50LnNldElzUmVzb2x2aW5nVHJlZVN0eWxlKHRydWUpOwogCkBAIC04NCwxOSArODQs
MTkgQEAgVHJlZVJlc29sdmVyOjpTY29wZTo6U2NvcGUoRG9jdW1lbnQmIGRvY3VtZW50KQogCiBU
cmVlUmVzb2x2ZXI6OlNjb3BlOjpTY29wZShTaGFkb3dSb290JiBzaGFkb3dSb290LCBTY29wZSYg
ZW5jbG9zaW5nU2NvcGUpCiAgICAgOiByZXNvbHZlcihzaGFkb3dSb290LnN0eWxlU2NvcGUoKS5y
ZXNvbHZlcigpKQotICAgICwgc2hhcmluZ1Jlc29sdmVyKHNoYWRvd1Jvb3QuZG9jdW1lbnRTY29w
ZSgpLCByZXNvbHZlci5ydWxlU2V0cygpLCBzZWxlY3RvckZpbHRlcikKKyAgICAsIHNoYXJpbmdS
ZXNvbHZlcihzaGFkb3dSb290LmRvY3VtZW50U2NvcGUoKSwgcmVzb2x2ZXItPnJ1bGVTZXRzKCks
IHNlbGVjdG9yRmlsdGVyKQogICAgICwgc2hhZG93Um9vdCgmc2hhZG93Um9vdCkKICAgICAsIGVu
Y2xvc2luZ1Njb3BlKCZlbmNsb3NpbmdTY29wZSkKIHsKLSAgICByZXNvbHZlci5zZXRPdmVycmlk
ZURvY3VtZW50RWxlbWVudFN0eWxlKGVuY2xvc2luZ1Njb3BlLnJlc29sdmVyLm92ZXJyaWRlRG9j
dW1lbnRFbGVtZW50U3R5bGUoKSk7CisgICAgcmVzb2x2ZXItPnNldE92ZXJyaWRlRG9jdW1lbnRF
bGVtZW50U3R5bGUoZW5jbG9zaW5nU2NvcGUucmVzb2x2ZXItPm92ZXJyaWRlRG9jdW1lbnRFbGVt
ZW50U3R5bGUoKSk7CiB9CiAKIFRyZWVSZXNvbHZlcjo6U2NvcGU6On5TY29wZSgpCiB7CiAgICAg
aWYgKCFzaGFkb3dSb290KQotICAgICAgICByZXNvbHZlci5kb2N1bWVudCgpLnNldElzUmVzb2x2
aW5nVHJlZVN0eWxlKGZhbHNlKTsKKyAgICAgICAgcmVzb2x2ZXItPmRvY3VtZW50KCkuc2V0SXNS
ZXNvbHZpbmdUcmVlU3R5bGUoZmFsc2UpOwogCi0gICAgcmVzb2x2ZXIuc2V0T3ZlcnJpZGVEb2N1
bWVudEVsZW1lbnRTdHlsZShudWxscHRyKTsKKyAgICByZXNvbHZlci0+c2V0T3ZlcnJpZGVEb2N1
bWVudEVsZW1lbnRTdHlsZShudWxscHRyKTsKIH0KIAogVHJlZVJlc29sdmVyOjpQYXJlbnQ6OlBh
cmVudChEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC0xNDYsNyArMTQ2LDcgQEAgc3RkOjp1bmlxdWVf
cHRyPFJlbmRlclN0eWxlPiBUcmVlUmVzb2x2ZXI6OnN0eWxlRm9yU3R5bGVhYmxlKGNvbnN0IFN0
eWxlYWJsZSYgc3QKICAgICBpZiAoYXV0byBzdHlsZSA9IHNjb3BlKCkuc2hhcmluZ1Jlc29sdmVy
LnJlc29sdmUoc3R5bGVhYmxlLCAqbV91cGRhdGUpKQogICAgICAgICByZXR1cm4gc3R5bGU7CiAK
LSAgICBhdXRvIGVsZW1lbnRTdHlsZSA9IHNjb3BlKCkucmVzb2x2ZXIuc3R5bGVGb3JFbGVtZW50
KGVsZW1lbnQsICZpbmhlcml0ZWRTdHlsZSwgcGFyZW50Qm94U3R5bGUoKSwgUnVsZU1hdGNoaW5n
QmVoYXZpb3I6Ok1hdGNoQWxsUnVsZXMsICZzY29wZSgpLnNlbGVjdG9yRmlsdGVyKTsKKyAgICBh
dXRvIGVsZW1lbnRTdHlsZSA9IHNjb3BlKCkucmVzb2x2ZXItPnN0eWxlRm9yRWxlbWVudChlbGVt
ZW50LCAmaW5oZXJpdGVkU3R5bGUsIHBhcmVudEJveFN0eWxlKCksIFJ1bGVNYXRjaGluZ0JlaGF2
aW9yOjpNYXRjaEFsbFJ1bGVzLCAmc2NvcGUoKS5zZWxlY3RvckZpbHRlcik7CiAKICAgICBpZiAo
ZWxlbWVudFN0eWxlLnJlbGF0aW9ucykKICAgICAgICAgY29tbWl0UmVsYXRpb25zKFdURk1vdmUo
ZWxlbWVudFN0eWxlLnJlbGF0aW9ucyksICptX3VwZGF0ZSk7CkBAIC0yMjgsMTEgKzIyOCwxMSBA
QCBFbGVtZW50VXBkYXRlcyBUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50KEVsZW1lbnQmIGVs
ZW1lbnQpCiAKICAgICBpZiAoJmVsZW1lbnQgPT0gbV9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQo
KSkgewogICAgICAgICBtX2RvY3VtZW50RWxlbWVudFN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25l
UHRyKCp1cGRhdGUuc3R5bGUpOwotICAgICAgICBzY29wZSgpLnJlc29sdmVyLnNldE92ZXJyaWRl
RG9jdW1lbnRFbGVtZW50U3R5bGUobV9kb2N1bWVudEVsZW1lbnRTdHlsZS5nZXQoKSk7CisgICAg
ICAgIHNjb3BlKCkucmVzb2x2ZXItPnNldE92ZXJyaWRlRG9jdW1lbnRFbGVtZW50U3R5bGUobV9k
b2N1bWVudEVsZW1lbnRTdHlsZS5nZXQoKSk7CiAKICAgICAgICAgaWYgKCFleGlzdGluZ1N0eWxl
IHx8IGV4aXN0aW5nU3R5bGUtPmNvbXB1dGVkRm9udFBpeGVsU2l6ZSgpICE9IHVwZGF0ZS5zdHls
ZS0+Y29tcHV0ZWRGb250UGl4ZWxTaXplKCkpIHsKICAgICAgICAgICAgIC8vICJyZW0iIHVuaXRz
IGFyZSByZWxhdGl2ZSB0byB0aGUgZG9jdW1lbnQgZWxlbWVudCdzIGZvbnQgc2l6ZSBzbyB3ZSBu
ZWVkIHRvIHJlY29tcHV0ZSBldmVyeXRoaW5nLgotICAgICAgICAgICAgc2NvcGUoKS5yZXNvbHZl
ci5pbnZhbGlkYXRlTWF0Y2hlZERlY2xhcmF0aW9uc0NhY2hlKCk7CisgICAgICAgICAgICBzY29w
ZSgpLnJlc29sdmVyLT5pbnZhbGlkYXRlTWF0Y2hlZERlY2xhcmF0aW9uc0NhY2hlKCk7CiAgICAg
ICAgICAgICBkZXNjZW5kYW50c1RvUmVzb2x2ZSA9IERlc2NlbmRhbnRzVG9SZXNvbHZlOjpBbGw7
CiAgICAgICAgIH0KICAgICB9CkBAIC0yODUsNyArMjg1LDcgQEAgT3B0aW9uYWw8RWxlbWVudFVw
ZGF0ZT4gVHJlZVJlc29sdmVyOjpyZXNvbHZlUHNldWRvU3R5bGUoRWxlbWVudCYgZWxlbWVudCwg
Y29uc3QKICAgICBhdXRvJiBwYXJlbnRTdHlsZSA9ICplbGVtZW50VXBkYXRlLnN0eWxlOwogICAg
IGF1dG8qIHBhcmVudEJveFN0eWxlID0gcGFyZW50Qm94U3R5bGVGb3JQc2V1ZG8oZWxlbWVudFVw
ZGF0ZSk7CiAgICAgCi0gICAgYXV0byBwc2V1ZG9TdHlsZSA9IHNjb3BlKCkucmVzb2x2ZXIucHNl
dWRvU3R5bGVGb3JFbGVtZW50KGVsZW1lbnQsIHsgcHNldWRvSWQgfSwgcGFyZW50U3R5bGUsIHBh
cmVudEJveFN0eWxlLCAmc2NvcGUoKS5zZWxlY3RvckZpbHRlcik7CisgICAgYXV0byBwc2V1ZG9T
dHlsZSA9IHNjb3BlKCkucmVzb2x2ZXItPnBzZXVkb1N0eWxlRm9yRWxlbWVudChlbGVtZW50LCB7
IHBzZXVkb0lkIH0sIHBhcmVudFN0eWxlLCBwYXJlbnRCb3hTdHlsZSwgJnNjb3BlKCkuc2VsZWN0
b3JGaWx0ZXIpOwogICAgIGlmICghcHNldWRvU3R5bGUpCiAgICAgICAgIHJldHVybiB7IH07CiAK
QEAgLTYxMCwxNCArNjEwLDE2IEBAIHN0ZDo6dW5pcXVlX3B0cjxVcGRhdGU+IFRyZWVSZXNvbHZl
cjo6cmVzb2x2ZSgpCiAgICAgbV9zY29wZVN0YWNrLmFwcGVuZChhZG9wdFJlZigqbmV3IFNjb3Bl
KG1fZG9jdW1lbnQpKSk7CiAgICAgbV9wYXJlbnRTdGFjay5hcHBlbmQoUGFyZW50KG1fZG9jdW1l
bnQpKTsKIAorICAgIGF1dG8gcm9vdFJlc29sdmVyID0gc2NvcGUoKS5yZXNvbHZlcjsKKwogICAg
IC8vIFBzZXVkbyBlbGVtZW50IHJlbW92YWwgYW5kIHNpbWlsYXIgbWF5IG9ubHkgd29yayB3aXRo
IHRoZXNlIGZsYWdzIHN0aWxsIHNldC4gUmVzZXQgdGhlbSBhZnRlciB0aGUgc3R5bGUgcmVjYWxj
LgotICAgIHJlbmRlclZpZXcuc2V0VXNlc0ZpcnN0TGluZVJ1bGVzKHJlbmRlclZpZXcudXNlc0Zp
cnN0TGluZVJ1bGVzKCkgfHwgc2NvcGUoKS5yZXNvbHZlci51c2VzRmlyc3RMaW5lUnVsZXMoKSk7
Ci0gICAgcmVuZGVyVmlldy5zZXRVc2VzRmlyc3RMZXR0ZXJSdWxlcyhyZW5kZXJWaWV3LnVzZXNG
aXJzdExldHRlclJ1bGVzKCkgfHwgc2NvcGUoKS5yZXNvbHZlci51c2VzRmlyc3RMZXR0ZXJSdWxl
cygpKTsKKyAgICByZW5kZXJWaWV3LnNldFVzZXNGaXJzdExpbmVSdWxlcyhyZW5kZXJWaWV3LnVz
ZXNGaXJzdExpbmVSdWxlcygpIHx8IHJvb3RSZXNvbHZlci0+dXNlc0ZpcnN0TGluZVJ1bGVzKCkp
OworICAgIHJlbmRlclZpZXcuc2V0VXNlc0ZpcnN0TGV0dGVyUnVsZXMocmVuZGVyVmlldy51c2Vz
Rmlyc3RMZXR0ZXJSdWxlcygpIHx8IHJvb3RSZXNvbHZlci0+dXNlc0ZpcnN0TGV0dGVyUnVsZXMo
KSk7CiAKICAgICByZXNvbHZlQ29tcG9zZWRUcmVlKCk7CiAKLSAgICByZW5kZXJWaWV3LnNldFVz
ZXNGaXJzdExpbmVSdWxlcyhzY29wZSgpLnJlc29sdmVyLnVzZXNGaXJzdExpbmVSdWxlcygpKTsK
LSAgICByZW5kZXJWaWV3LnNldFVzZXNGaXJzdExldHRlclJ1bGVzKHNjb3BlKCkucmVzb2x2ZXIu
dXNlc0ZpcnN0TGV0dGVyUnVsZXMoKSk7CisgICAgcmVuZGVyVmlldy5zZXRVc2VzRmlyc3RMaW5l
UnVsZXMocm9vdFJlc29sdmVyLT51c2VzRmlyc3RMaW5lUnVsZXMoKSk7CisgICAgcmVuZGVyVmll
dy5zZXRVc2VzRmlyc3RMZXR0ZXJSdWxlcyhyb290UmVzb2x2ZXItPnVzZXNGaXJzdExldHRlclJ1
bGVzKCkpOwogCiAgICAgQVNTRVJUKG1fc2NvcGVTdGFjay5zaXplKCkgPT0gMSk7CiAgICAgQVNT
RVJUKG1fcGFyZW50U3RhY2suc2l6ZSgpID09IDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
VHJlZVJlc29sdmVyLmgKaW5kZXggMjAzNzE5ZWJhNjk0Li44MDdkMTZiMmE4OGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaApAQCAtNjYsMTAgKzY2LDEwIEBAIHBy
aXZhdGU6CiAKICAgICBzdHJ1Y3QgU2NvcGUgOiBSZWZDb3VudGVkPFNjb3BlPiB7CiAgICAgICAg
IFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJRklFUihUcmVl
UmVzb2x2ZXJTY29wZSk7Ci0gICAgICAgIFJlc29sdmVyJiByZXNvbHZlcjsKKyAgICAgICAgUmVm
PFJlc29sdmVyPiByZXNvbHZlcjsKICAgICAgICAgU2VsZWN0b3JGaWx0ZXIgc2VsZWN0b3JGaWx0
ZXI7CiAgICAgICAgIFNoYXJpbmdSZXNvbHZlciBzaGFyaW5nUmVzb2x2ZXI7Ci0gICAgICAgIFNo
YWRvd1Jvb3QqIHNoYWRvd1Jvb3QgeyBudWxscHRyIH07CisgICAgICAgIFJlZlB0cjxTaGFkb3dS
b290PiBzaGFkb3dSb290OwogICAgICAgICBTY29wZSogZW5jbG9zaW5nU2NvcGUgeyBudWxscHRy
IH07CiAKICAgICAgICAgU2NvcGUoRG9jdW1lbnQmKTsK
</data>
<flag name="review"
          id="447508"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427035</attachid>
            <date>2021-04-26 04:23:58 -0700</date>
            <delta_ts>2021-04-26 06:18:04 -0700</delta_ts>
            <desc>patch</desc>
            <filename>style-resolver-refcount-2.patch</filename>
            <type>text/plain</type>
            <size>12472</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5MTI0ZGM3OTBlMjguLjMxYzI0MTUyYjU1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM1IEBACisyMDIxLTA0LTI2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KKworICAgICAgICBSZWZjb3VudCBTdHlsZTo6UmVzb2x2ZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTA0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBGb3Igc2FmZXR5LCBhbmQgdG8gYWxsb3cgbW9y
ZSBzaGFyaW5nIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgKiBjc3MvRE9NQ1NTUmVnaXN0ZXJD
dXN0b21Qcm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01DU1NSZWdpc3RlckN1c3Rv
bVByb3BlcnR5OjpyZWdpc3RlclByb3BlcnR5KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVzZXJBZ2VudFNoYWRvd1RyZWVTdHlsZVJl
c29sdmVyKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBzdHlsZS9TdHls
ZVJlc29sdmVyLmNwcDoKKyAgICAgICAgCisgICAgICAgIEFsc28gbWFrZSB0aGUgUmVzb2x2ZXIg
SVNPLWFsbG9jYXRlZC4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UmVzb2x2
ZXI6OmNyZWF0ZSk6CisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlci5oOgorICAgICAgICAq
IHN0eWxlL1N0eWxlU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNjb3BlOjpy
ZXNvbHZlcik6CisgICAgICAgICogc3R5bGUvU3R5bGVTY29wZS5oOgorICAgICAgICAqIHN0eWxl
L1N0eWxlVHJlZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVz
b2x2ZXI6OlNjb3BlOjpTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29s
dmVyOjpTY29wZTo6flNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2
ZXI6OnN0eWxlRm9yU3R5bGVhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVz
b2x2ZXI6OnJlc29sdmVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVz
b2x2ZXI6OnJlc29sdmVQc2V1ZG9TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VHJl
ZVJlc29sdmVyOjpyZXNvbHZlKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5o
OgorCiAyMDIxLTA0LTI1ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBGaXggYSBjcmFzaCBjYXVzZWQgYnkgQVZJRiBkZWNvZGluZyBmYWlsdXJlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eS5jcHAK
aW5kZXggMjRhMjc3M2QyMDQzLi45MGZmZTZlZjVhOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9ET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eS5jcHAKQEAgLTQ4LDExICs0OCwx
MSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5OjpyZWdp
c3RlclByb3BlcnR5KERvY3VtZW50JiBkb2N1bQogICAgIFJlZlB0cjxDU1NDdXN0b21Qcm9wZXJ0
eVZhbHVlPiBpbml0aWFsVmFsdWU7CiAgICAgaWYgKCFkZXNjcmlwdG9yLmluaXRpYWxWYWx1ZS5p
c0VtcHR5KCkpIHsKICAgICAgICAgQ1NTVG9rZW5pemVyIHRva2VuaXplcihkZXNjcmlwdG9yLmlu
aXRpYWxWYWx1ZSk7Ci0gICAgICAgIFN0eWxlOjpSZXNvbHZlciBzdHlsZVJlc29sdmVyKGRvY3Vt
ZW50KTsKKyAgICAgICAgYXV0byBzdHlsZVJlc29sdmVyID0gU3R5bGU6OlJlc29sdmVyOjpjcmVh
dGUoZG9jdW1lbnQpOwogCiAgICAgICAgIC8vIFdlIG5lZWQgdG8gaW5pdGlhbGl6ZSB0aGlzIHNv
IHRoYXQgd2UgY2FuIHN1Y2Nlc3NmdWxseSBwYXJzZSBjb21wdXRhdGlvbmFsbHkgZGVwZW5kZW50
IHZhbHVlcyAobGlrZSBlbSB1bml0cykuCiAgICAgICAgIC8vIFdlIGRvbid0IGFjdHVhbGx5IG5l
ZWQgdGhlIHZhbHVlcyB0byBiZSBhY2N1cmF0ZSwgc2luY2UgdGhleSB3aWxsIGJlIHJlamVjdGVk
IGxhdGVyIGFueXdheQotICAgICAgICBhdXRvIHN0eWxlID0gc3R5bGVSZXNvbHZlci5kZWZhdWx0
U3R5bGVGb3JFbGVtZW50KG51bGxwdHIpOworICAgICAgICBhdXRvIHN0eWxlID0gc3R5bGVSZXNv
bHZlci0+ZGVmYXVsdFN0eWxlRm9yRWxlbWVudChudWxscHRyKTsKIAogICAgICAgICBIYXNoU2V0
PENTU1Byb3BlcnR5SUQ+IGRlcGVuZGVuY2llczsKICAgICAgICAgQ1NTUHJvcGVydHlQYXJzZXI6
OmNvbGxlY3RQYXJzZWRDdXN0b21Qcm9wZXJ0eVZhbHVlRGVwZW5kZW5jaWVzKGRlc2NyaXB0b3Iu
c3ludGF4LCBmYWxzZSwgZGVwZW5kZW5jaWVzLCB0b2tlbml6ZXIudG9rZW5SYW5nZSgpLCBzdHJp
Y3RDU1NQYXJzZXJDb250ZXh0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNGU4YTc5
NmUxY2IxLi4yYWUzYzNkZWI5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjM4NCw3
ICsyMzg0LDcgQEAgdm9pZCBEb2N1bWVudDo6cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoaW50
IHBhZ2VJbmRleCwgSW50U2l6ZSYgcGFnZVNpemUsIGludCYKIFN0eWxlOjpSZXNvbHZlciYgRG9j
dW1lbnQ6OnVzZXJBZ2VudFNoYWRvd1RyZWVTdHlsZVJlc29sdmVyKCkKIHsKICAgICBpZiAoIW1f
dXNlckFnZW50U2hhZG93VHJlZVN0eWxlUmVzb2x2ZXIpCi0gICAgICAgIG1fdXNlckFnZW50U2hh
ZG93VHJlZVN0eWxlUmVzb2x2ZXIgPSBtYWtlVW5pcXVlPFN0eWxlOjpSZXNvbHZlcj4oKnRoaXMp
OworICAgICAgICBtX3VzZXJBZ2VudFNoYWRvd1RyZWVTdHlsZVJlc29sdmVyID0gU3R5bGU6OlJl
c29sdmVyOjpjcmVhdGUoKnRoaXMpOwogICAgIHJldHVybiAqbV91c2VyQWdlbnRTaGFkb3dUcmVl
U3R5bGVSZXNvbHZlcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBlMjU3ZWFkM2M5NDUu
LjA4ZjBhMDU2ZDE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTE3NDEsNyArMTc0MSw3IEBA
IHByaXZhdGU6CiAKICAgICBVbmlxdWVSZWY8UXVpcmtzPiBtX3F1aXJrczsKIAotICAgIHN0ZDo6
dW5pcXVlX3B0cjxTdHlsZTo6UmVzb2x2ZXI+IG1fdXNlckFnZW50U2hhZG93VHJlZVN0eWxlUmVz
b2x2ZXI7CisgICAgUmVmUHRyPFN0eWxlOjpSZXNvbHZlcj4gbV91c2VyQWdlbnRTaGFkb3dUcmVl
U3R5bGVSZXNvbHZlcjsKIAogICAgIFJlZlB0cjxET01XaW5kb3c+IG1fZG9tV2luZG93OwogICAg
IFdlYWtQdHI8RG9jdW1lbnQ+IG1fY29udGV4dERvY3VtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVJlc29sdmVyLmNwcAppbmRleCAzNGU4MDJmYWZjMTcuLjAyYjFkZjY4ZWNjMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTc0LDYgKzc0LDcgQEAKICNpbmNs
dWRlICJVc2VyQWdlbnRTdHlsZS5oIgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RhdGUuaCIKICNp
bmNsdWRlICJXZWJLaXRGb250RmFtaWx5TmFtZXMuaCIKKyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExp
YkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTg0LDYgKzg1LDEzIEBAIG5h
bWVzcGFjZSBTdHlsZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKK1dURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChSZXNvbHZlcik7CisKK1JlZjxSZXNvbHZlcj4gUmVzb2x2ZXI6
OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UmVzb2x2ZXIoZG9jdW1lbnQpKTsKK30KKwogUmVzb2x2ZXI6OlJlc29sdmVyKERvY3VtZW50JiBk
b2N1bWVudCkKICAgICA6IG1fcnVsZVNldHMoKnRoaXMpCiAgICAgLCBtX2RvY3VtZW50KGRvY3Vt
ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oCmluZGV4IDllMDJmYjJhNmZmYy4u
NTE3NDkyYzllODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29s
dmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oCkBAIC03OSwx
MCArNzksMTAgQEAgc3RydWN0IEVsZW1lbnRTdHlsZSB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJl
bGF0aW9ucz4gcmVsYXRpb25zOwogfTsKIAotY2xhc3MgUmVzb2x2ZXIgewotICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFJlc29sdmVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitjbGFzcyBS
ZXNvbHZlciA6IHB1YmxpYyBSZWZDb3VudGVkPFJlc29sdmVyPiB7CisgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChSZXNvbHZlcik7CiBwdWJsaWM6Ci0gICAgUmVzb2x2ZXIoRG9jdW1lbnQmKTsK
KyAgICBzdGF0aWMgUmVmPFJlc29sdmVyPiBjcmVhdGUoRG9jdW1lbnQmKTsKICAgICB+UmVzb2x2
ZXIoKTsKIAogICAgIEVsZW1lbnRTdHlsZSBzdHlsZUZvckVsZW1lbnQoY29uc3QgRWxlbWVudCYs
IGNvbnN0IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHBhcmVu
dEJveFN0eWxlID0gbnVsbHB0ciwgUnVsZU1hdGNoaW5nQmVoYXZpb3IgPSBSdWxlTWF0Y2hpbmdC
ZWhhdmlvcjo6TWF0Y2hBbGxSdWxlcywgY29uc3QgU2VsZWN0b3JGaWx0ZXIqID0gbnVsbHB0cik7
CkBAIC0xNDMsNiArMTQzLDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3Mg
UGFnZVJ1bGVDb2xsZWN0b3I7CiAKKyAgICBSZXNvbHZlcihEb2N1bWVudCYpOworCiAgICAgY2xh
c3MgU3RhdGUgewogICAgIHB1YmxpYzoKICAgICAgICAgU3RhdGUoKSB7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVTY29wZS5jcHAKaW5kZXggZDg0MTBmMGQ1MjFkLi5jOGJlODJjM2FiYjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwCkBAIC05NCw3ICs5NCw3IEBAIFJlc29sdmVyJiBT
Y29wZTo6cmVzb2x2ZXIoKQogICAgIGlmICghbV9yZXNvbHZlcikgewogICAgICAgICBTZXRGb3JT
Y29wZTxib29sPiBpc1VwZGF0aW5nU3R5bGVSZXNvbHZlciB7IG1faXNVcGRhdGluZ1N0eWxlUmVz
b2x2ZXIsIHRydWUgfTsKIAotICAgICAgICBtX3Jlc29sdmVyID0gbWFrZVVuaXF1ZTxSZXNvbHZl
cj4obV9kb2N1bWVudCk7CisgICAgICAgIG1fcmVzb2x2ZXIgPSBSZXNvbHZlcjo6Y3JlYXRlKG1f
ZG9jdW1lbnQpOwogCiAgICAgICAgIGlmICghbV9zaGFkb3dSb290KSB7CiAgICAgICAgICAgICBt
X2RvY3VtZW50LmZvbnRTZWxlY3RvcigpLmJ1aWxkU3RhcnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVTY29wZS5oCmluZGV4IDAzMWNiYmJhOThhNy4uN2MwNzJhNTk1MWI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVTY29wZS5oCkBAIC0xNjQsNyArMTY0LDcgQEAgcHJpdmF0ZToKICAgICBEb2N1bWVu
dCYgbV9kb2N1bWVudDsKICAgICBTaGFkb3dSb290KiBtX3NoYWRvd1Jvb3QgeyBudWxscHRyIH07
CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzb2x2ZXI+IG1fcmVzb2x2ZXI7CisgICAgUmVmUHRy
PFJlc29sdmVyPiBtX3Jlc29sdmVyOwogCiAgICAgVmVjdG9yPFJlZlB0cjxTdHlsZVNoZWV0Pj4g
bV9zdHlsZVNoZWV0c0ZvclN0eWxlU2hlZXRMaXN0OwogICAgIFZlY3RvcjxSZWZQdHI8Q1NTU3R5
bGVTaGVldD4+IG1fYWN0aXZlU3R5bGVTaGVldHM7CkBAIC0xNzksNyArMTc5LDYgQEAgcHJpdmF0
ZToKICAgICBIYXNoU2V0PGNvbnN0IEVsZW1lbnQqPiBtX2VsZW1lbnRzSW5IZWFkV2l0aFBlbmRp
bmdTaGVldHM7CiAgICAgSGFzaFNldDxjb25zdCBFbGVtZW50Kj4gbV9lbGVtZW50c0luQm9keVdp
dGhQZW5kaW5nU2hlZXRzOwogCi0KICAgICBMaXN0SGFzaFNldDxOb2RlKj4gbV9zdHlsZVNoZWV0
Q2FuZGlkYXRlTm9kZXM7CiAKICAgICBTdHJpbmcgbV9wcmVmZXJyZWRTdHlsZXNoZWV0U2V0TmFt
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAppbmRleCBjMDQx
NzE5YTA0NjIuLmRiYzAzM2VlMGM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVUcmVlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJl
ZVJlc29sdmVyLmNwcApAQCAtNzMsNyArNzMsNyBAQCBUcmVlUmVzb2x2ZXI6On5UcmVlUmVzb2x2
ZXIoKSA9IGRlZmF1bHQ7CiAKIFRyZWVSZXNvbHZlcjo6U2NvcGU6OlNjb3BlKERvY3VtZW50JiBk
b2N1bWVudCkKICAgICA6IHJlc29sdmVyKGRvY3VtZW50LnN0eWxlU2NvcGUoKS5yZXNvbHZlcigp
KQotICAgICwgc2hhcmluZ1Jlc29sdmVyKGRvY3VtZW50LCByZXNvbHZlci5ydWxlU2V0cygpLCBz
ZWxlY3RvckZpbHRlcikKKyAgICAsIHNoYXJpbmdSZXNvbHZlcihkb2N1bWVudCwgcmVzb2x2ZXIt
PnJ1bGVTZXRzKCksIHNlbGVjdG9yRmlsdGVyKQogewogICAgIGRvY3VtZW50LnNldElzUmVzb2x2
aW5nVHJlZVN0eWxlKHRydWUpOwogCkBAIC04NCwxOSArODQsMTkgQEAgVHJlZVJlc29sdmVyOjpT
Y29wZTo6U2NvcGUoRG9jdW1lbnQmIGRvY3VtZW50KQogCiBUcmVlUmVzb2x2ZXI6OlNjb3BlOjpT
Y29wZShTaGFkb3dSb290JiBzaGFkb3dSb290LCBTY29wZSYgZW5jbG9zaW5nU2NvcGUpCiAgICAg
OiByZXNvbHZlcihzaGFkb3dSb290LnN0eWxlU2NvcGUoKS5yZXNvbHZlcigpKQotICAgICwgc2hh
cmluZ1Jlc29sdmVyKHNoYWRvd1Jvb3QuZG9jdW1lbnRTY29wZSgpLCByZXNvbHZlci5ydWxlU2V0
cygpLCBzZWxlY3RvckZpbHRlcikKKyAgICAsIHNoYXJpbmdSZXNvbHZlcihzaGFkb3dSb290LmRv
Y3VtZW50U2NvcGUoKSwgcmVzb2x2ZXItPnJ1bGVTZXRzKCksIHNlbGVjdG9yRmlsdGVyKQogICAg
ICwgc2hhZG93Um9vdCgmc2hhZG93Um9vdCkKICAgICAsIGVuY2xvc2luZ1Njb3BlKCZlbmNsb3Np
bmdTY29wZSkKIHsKLSAgICByZXNvbHZlci5zZXRPdmVycmlkZURvY3VtZW50RWxlbWVudFN0eWxl
KGVuY2xvc2luZ1Njb3BlLnJlc29sdmVyLm92ZXJyaWRlRG9jdW1lbnRFbGVtZW50U3R5bGUoKSk7
CisgICAgcmVzb2x2ZXItPnNldE92ZXJyaWRlRG9jdW1lbnRFbGVtZW50U3R5bGUoZW5jbG9zaW5n
U2NvcGUucmVzb2x2ZXItPm92ZXJyaWRlRG9jdW1lbnRFbGVtZW50U3R5bGUoKSk7CiB9CiAKIFRy
ZWVSZXNvbHZlcjo6U2NvcGU6On5TY29wZSgpCiB7CiAgICAgaWYgKCFzaGFkb3dSb290KQotICAg
ICAgICByZXNvbHZlci5kb2N1bWVudCgpLnNldElzUmVzb2x2aW5nVHJlZVN0eWxlKGZhbHNlKTsK
KyAgICAgICAgcmVzb2x2ZXItPmRvY3VtZW50KCkuc2V0SXNSZXNvbHZpbmdUcmVlU3R5bGUoZmFs
c2UpOwogCi0gICAgcmVzb2x2ZXIuc2V0T3ZlcnJpZGVEb2N1bWVudEVsZW1lbnRTdHlsZShudWxs
cHRyKTsKKyAgICByZXNvbHZlci0+c2V0T3ZlcnJpZGVEb2N1bWVudEVsZW1lbnRTdHlsZShudWxs
cHRyKTsKIH0KIAogVHJlZVJlc29sdmVyOjpQYXJlbnQ6OlBhcmVudChEb2N1bWVudCYgZG9jdW1l
bnQpCkBAIC0xNDYsNyArMTQ2LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBUcmVl
UmVzb2x2ZXI6OnN0eWxlRm9yU3R5bGVhYmxlKGNvbnN0IFN0eWxlYWJsZSYgc3QKICAgICBpZiAo
YXV0byBzdHlsZSA9IHNjb3BlKCkuc2hhcmluZ1Jlc29sdmVyLnJlc29sdmUoc3R5bGVhYmxlLCAq
bV91cGRhdGUpKQogICAgICAgICByZXR1cm4gc3R5bGU7CiAKLSAgICBhdXRvIGVsZW1lbnRTdHls
ZSA9IHNjb3BlKCkucmVzb2x2ZXIuc3R5bGVGb3JFbGVtZW50KGVsZW1lbnQsICZpbmhlcml0ZWRT
dHlsZSwgcGFyZW50Qm94U3R5bGUoKSwgUnVsZU1hdGNoaW5nQmVoYXZpb3I6Ok1hdGNoQWxsUnVs
ZXMsICZzY29wZSgpLnNlbGVjdG9yRmlsdGVyKTsKKyAgICBhdXRvIGVsZW1lbnRTdHlsZSA9IHNj
b3BlKCkucmVzb2x2ZXItPnN0eWxlRm9yRWxlbWVudChlbGVtZW50LCAmaW5oZXJpdGVkU3R5bGUs
IHBhcmVudEJveFN0eWxlKCksIFJ1bGVNYXRjaGluZ0JlaGF2aW9yOjpNYXRjaEFsbFJ1bGVzLCAm
c2NvcGUoKS5zZWxlY3RvckZpbHRlcik7CiAKICAgICBpZiAoZWxlbWVudFN0eWxlLnJlbGF0aW9u
cykKICAgICAgICAgY29tbWl0UmVsYXRpb25zKFdURk1vdmUoZWxlbWVudFN0eWxlLnJlbGF0aW9u
cyksICptX3VwZGF0ZSk7CkBAIC0yMjgsMTEgKzIyOCwxMSBAQCBFbGVtZW50VXBkYXRlcyBUcmVl
UmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAKICAgICBpZiAoJmVs
ZW1lbnQgPT0gbV9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSkgewogICAgICAgICBtX2RvY3Vt
ZW50RWxlbWVudFN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lUHRyKCp1cGRhdGUuc3R5bGUpOwot
ICAgICAgICBzY29wZSgpLnJlc29sdmVyLnNldE92ZXJyaWRlRG9jdW1lbnRFbGVtZW50U3R5bGUo
bV9kb2N1bWVudEVsZW1lbnRTdHlsZS5nZXQoKSk7CisgICAgICAgIHNjb3BlKCkucmVzb2x2ZXIt
PnNldE92ZXJyaWRlRG9jdW1lbnRFbGVtZW50U3R5bGUobV9kb2N1bWVudEVsZW1lbnRTdHlsZS5n
ZXQoKSk7CiAKICAgICAgICAgaWYgKCFleGlzdGluZ1N0eWxlIHx8IGV4aXN0aW5nU3R5bGUtPmNv
bXB1dGVkRm9udFBpeGVsU2l6ZSgpICE9IHVwZGF0ZS5zdHlsZS0+Y29tcHV0ZWRGb250UGl4ZWxT
aXplKCkpIHsKICAgICAgICAgICAgIC8vICJyZW0iIHVuaXRzIGFyZSByZWxhdGl2ZSB0byB0aGUg
ZG9jdW1lbnQgZWxlbWVudCdzIGZvbnQgc2l6ZSBzbyB3ZSBuZWVkIHRvIHJlY29tcHV0ZSBldmVy
eXRoaW5nLgotICAgICAgICAgICAgc2NvcGUoKS5yZXNvbHZlci5pbnZhbGlkYXRlTWF0Y2hlZERl
Y2xhcmF0aW9uc0NhY2hlKCk7CisgICAgICAgICAgICBzY29wZSgpLnJlc29sdmVyLT5pbnZhbGlk
YXRlTWF0Y2hlZERlY2xhcmF0aW9uc0NhY2hlKCk7CiAgICAgICAgICAgICBkZXNjZW5kYW50c1Rv
UmVzb2x2ZSA9IERlc2NlbmRhbnRzVG9SZXNvbHZlOjpBbGw7CiAgICAgICAgIH0KICAgICB9CkBA
IC0yODUsNyArMjg1LDcgQEAgT3B0aW9uYWw8RWxlbWVudFVwZGF0ZT4gVHJlZVJlc29sdmVyOjpy
ZXNvbHZlUHNldWRvU3R5bGUoRWxlbWVudCYgZWxlbWVudCwgY29uc3QKICAgICBhdXRvJiBwYXJl
bnRTdHlsZSA9ICplbGVtZW50VXBkYXRlLnN0eWxlOwogICAgIGF1dG8qIHBhcmVudEJveFN0eWxl
ID0gcGFyZW50Qm94U3R5bGVGb3JQc2V1ZG8oZWxlbWVudFVwZGF0ZSk7CiAgICAgCi0gICAgYXV0
byBwc2V1ZG9TdHlsZSA9IHNjb3BlKCkucmVzb2x2ZXIucHNldWRvU3R5bGVGb3JFbGVtZW50KGVs
ZW1lbnQsIHsgcHNldWRvSWQgfSwgcGFyZW50U3R5bGUsIHBhcmVudEJveFN0eWxlLCAmc2NvcGUo
KS5zZWxlY3RvckZpbHRlcik7CisgICAgYXV0byBwc2V1ZG9TdHlsZSA9IHNjb3BlKCkucmVzb2x2
ZXItPnBzZXVkb1N0eWxlRm9yRWxlbWVudChlbGVtZW50LCB7IHBzZXVkb0lkIH0sIHBhcmVudFN0
eWxlLCBwYXJlbnRCb3hTdHlsZSwgJnNjb3BlKCkuc2VsZWN0b3JGaWx0ZXIpOwogICAgIGlmICgh
cHNldWRvU3R5bGUpCiAgICAgICAgIHJldHVybiB7IH07CiAKQEAgLTYxMCwxNCArNjEwLDE2IEBA
IHN0ZDo6dW5pcXVlX3B0cjxVcGRhdGU+IFRyZWVSZXNvbHZlcjo6cmVzb2x2ZSgpCiAgICAgbV9z
Y29wZVN0YWNrLmFwcGVuZChhZG9wdFJlZigqbmV3IFNjb3BlKG1fZG9jdW1lbnQpKSk7CiAgICAg
bV9wYXJlbnRTdGFjay5hcHBlbmQoUGFyZW50KG1fZG9jdW1lbnQpKTsKIAorICAgIGF1dG8gcm9v
dFJlc29sdmVyID0gc2NvcGUoKS5yZXNvbHZlcjsKKwogICAgIC8vIFBzZXVkbyBlbGVtZW50IHJl
bW92YWwgYW5kIHNpbWlsYXIgbWF5IG9ubHkgd29yayB3aXRoIHRoZXNlIGZsYWdzIHN0aWxsIHNl
dC4gUmVzZXQgdGhlbSBhZnRlciB0aGUgc3R5bGUgcmVjYWxjLgotICAgIHJlbmRlclZpZXcuc2V0
VXNlc0ZpcnN0TGluZVJ1bGVzKHJlbmRlclZpZXcudXNlc0ZpcnN0TGluZVJ1bGVzKCkgfHwgc2Nv
cGUoKS5yZXNvbHZlci51c2VzRmlyc3RMaW5lUnVsZXMoKSk7Ci0gICAgcmVuZGVyVmlldy5zZXRV
c2VzRmlyc3RMZXR0ZXJSdWxlcyhyZW5kZXJWaWV3LnVzZXNGaXJzdExldHRlclJ1bGVzKCkgfHwg
c2NvcGUoKS5yZXNvbHZlci51c2VzRmlyc3RMZXR0ZXJSdWxlcygpKTsKKyAgICByZW5kZXJWaWV3
LnNldFVzZXNGaXJzdExpbmVSdWxlcyhyZW5kZXJWaWV3LnVzZXNGaXJzdExpbmVSdWxlcygpIHx8
IHJvb3RSZXNvbHZlci0+dXNlc0ZpcnN0TGluZVJ1bGVzKCkpOworICAgIHJlbmRlclZpZXcuc2V0
VXNlc0ZpcnN0TGV0dGVyUnVsZXMocmVuZGVyVmlldy51c2VzRmlyc3RMZXR0ZXJSdWxlcygpIHx8
IHJvb3RSZXNvbHZlci0+dXNlc0ZpcnN0TGV0dGVyUnVsZXMoKSk7CiAKICAgICByZXNvbHZlQ29t
cG9zZWRUcmVlKCk7CiAKLSAgICByZW5kZXJWaWV3LnNldFVzZXNGaXJzdExpbmVSdWxlcyhzY29w
ZSgpLnJlc29sdmVyLnVzZXNGaXJzdExpbmVSdWxlcygpKTsKLSAgICByZW5kZXJWaWV3LnNldFVz
ZXNGaXJzdExldHRlclJ1bGVzKHNjb3BlKCkucmVzb2x2ZXIudXNlc0ZpcnN0TGV0dGVyUnVsZXMo
KSk7CisgICAgcmVuZGVyVmlldy5zZXRVc2VzRmlyc3RMaW5lUnVsZXMocm9vdFJlc29sdmVyLT51
c2VzRmlyc3RMaW5lUnVsZXMoKSk7CisgICAgcmVuZGVyVmlldy5zZXRVc2VzRmlyc3RMZXR0ZXJS
dWxlcyhyb290UmVzb2x2ZXItPnVzZXNGaXJzdExldHRlclJ1bGVzKCkpOwogCiAgICAgQVNTRVJU
KG1fc2NvcGVTdGFjay5zaXplKCkgPT0gMSk7CiAgICAgQVNTRVJUKG1fcGFyZW50U3RhY2suc2l6
ZSgpID09IDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVz
b2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgKaW5kZXgg
MjAzNzE5ZWJhNjk0Li45YWQ2YjBkNTVhMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVU
cmVlUmVzb2x2ZXIuaApAQCAtNjYsMTEgKzY2LDExIEBAIHByaXZhdGU6CiAKICAgICBzdHJ1Y3Qg
U2NvcGUgOiBSZWZDb3VudGVkPFNjb3BlPiB7CiAgICAgICAgIFdURl9NQUtFX1NUUlVDVF9GQVNU
X0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJRklFUihUcmVlUmVzb2x2ZXJTY29wZSk7Ci0gICAg
ICAgIFJlc29sdmVyJiByZXNvbHZlcjsKKyAgICAgICAgUmVmPFJlc29sdmVyPiByZXNvbHZlcjsK
ICAgICAgICAgU2VsZWN0b3JGaWx0ZXIgc2VsZWN0b3JGaWx0ZXI7CiAgICAgICAgIFNoYXJpbmdS
ZXNvbHZlciBzaGFyaW5nUmVzb2x2ZXI7Ci0gICAgICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3Qg
eyBudWxscHRyIH07Ci0gICAgICAgIFNjb3BlKiBlbmNsb3NpbmdTY29wZSB7IG51bGxwdHIgfTsK
KyAgICAgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHNoYWRvd1Jvb3Q7CisgICAgICAgIFJlZlB0cjxT
Y29wZT4gZW5jbG9zaW5nU2NvcGU7CiAKICAgICAgICAgU2NvcGUoRG9jdW1lbnQmKTsKICAgICAg
ICAgU2NvcGUoU2hhZG93Um9vdCYsIFNjb3BlJiBlbmNsb3NpbmdTY29wZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>