<?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>202620</bug_id>
          
          <creation_ts>2019-10-06 03:09:24 -0700</creation_ts>
          <short_desc>[CSS Shadow Parts] Internal shadow pseudo elements should work with ::part</short_desc>
          <delta_ts>2019-10-08 00:32: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>
          
          <blocked>149443</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</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>1577248</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-06 03:09:24 -0700</bug_when>
    <thetext>::part(foo)::placeholder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577250</commentid>
    <comment_count>1</comment_count>
      <attachid>380295</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-06 06:08:44 -0700</bug_when>
    <thetext>Created attachment 380295
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577254</commentid>
    <comment_count>2</comment_count>
      <attachid>380297</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-06 06:39:23 -0700</bug_when>
    <thetext>Created attachment 380297
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577334</commentid>
    <comment_count>3</comment_count>
      <attachid>380323</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-07 06:58:15 -0700</bug_when>
    <thetext>Created attachment 380323
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577486</commentid>
    <comment_count>4</comment_count>
      <attachid>380323</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-07 13:50:05 -0700</bug_when>
    <thetext>Comment on attachment 380323
patch

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

&gt; LayoutTests/ChangeLog:11
&gt; +        * TestExpectations:

Can we add tests for ::before &amp; ::after?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577674</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-07 23:48:18 -0700</bug_when>
    <thetext>&gt; Can we add tests for ::before &amp; ::after?

They are already tested by a WPT test (and unaffected by this patch). I&apos;ll land some more tests separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577675</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-10-07 23:50:27 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #5)
&gt; &gt; Can we add tests for ::before &amp; ::after?
&gt; 
&gt; They are already tested by a WPT test (and unaffected by this patch). I&apos;ll
&gt; land some more tests separately.

Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577687</commentid>
    <comment_count>7</comment_count>
      <attachid>380323</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-08 00:31:44 -0700</bug_when>
    <thetext>Comment on attachment 380323
patch

Clearing flags on attachment: 380323

Committed r250817: &lt;https://trac.webkit.org/changeset/250817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577688</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-08 00:31:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577690</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-08 00:32:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/56065249&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380295</attachid>
            <date>2019-10-06 06:08:44 -0700</date>
            <delta_ts>2019-10-06 06:39:23 -0700</delta_ts>
            <desc>patch</desc>
            <filename>css-shadow-parts-placeholder-2.patch</filename>
            <type>text/plain</type>
            <size>11321</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwYmNkOTg2MDlkZS4uMWNlZGQ0YjE3ZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxOS0xMC0wNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0NTUyBTaGFkb3cgUGFydHNdIEludGVybmFsIHNoYWRvdyBwc2V1ZG8gZWxlbWVudHMgc2hvdWxk
IHdvcmsgd2l0aCA6OnBhcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMjYyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vdGUgdGhhdCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2hhZG93LXBhcnRzL2ludGVyYWN0aW9uLXdpdGgtcHNldWRvLWVsZW1lbnRzLmh0bWwgcGxh
Y2Vob2xkZXIgc3VidGVzdCBzdGlsbAorICAgICAgICB3b24ndCBwYXNzIGJlY2F1c2Ugd2Ugd2Ug
ZG9uJ3Qgc3VwcG9ydCBnZXRDb21wdXRlZFN0eWxlIGZvciBpbnRlcm5hbCBwc2V1ZG8gZWxlbWVu
dHMuIFZpc3VhbGx5IGl0IG5vdyB3b3JrIGZ1bGx5LgorCisgICAgICAgICogVGVzdEV4cGVjdGF0
aW9uczoKKworICAgICAgICBVbnNraXAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXNoYWRvdy1wYXJ0cy9pbnRlcmFjdGlvbi13aXRoLXBsYWNlaG9sZGVyLmh0bWwKKwog
MjAxOS0xMC0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFs
bG93IHBhZ2VzIHVzaW5nIEV2ZW50U291cmNlIHRvIGVudGVyIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDFhMDA3OGU4ODMzLi5lYmFjMWQxMGE0MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCkBAIC0zODI3LDcgKzM4MjcsNCBAQCBmYXN0L3RleHQvZGVzaWduLXN5c3Rl
bS11aS0xNi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTk2Njk4IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbG9hZGluZy9sYXp5bG9hZC9pbWFnZS1sb2Fk
aW5nLWxhenkudGVudGF0aXZlLmh0bWwKIHdlYmtpdC5vcmcvYi8xOTY2OTggaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9sb2FkaW5nL2xhenlsb2FkL2lmcmFtZS1sb2FkaW5nLWxhenku
dGVudGF0aXZlLmh0bWwKIAotIyBDU1MgU2hhZG93IFBhcnRzCi13ZWJraXQub3JnL2IvMTQ5NDQz
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaGFkb3ctcGFydHMvaW50
ZXJhY3Rpb24td2l0aC1wbGFjZWhvbGRlci5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi0KIHdl
YmtpdC5vcmcvYi8yMDI1MTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy8yZGNvbnRl
eHQvdGV4dC1zdHlsZXMvMmQudGV4dC5kcmF3LmJhc2VsaW5lLmlkZW9ncmFwaGljLmh0bWwgWyBT
a2lwIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBmNjFhMTljM2JkNC4uMTg1ZDc1MDYzMWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNCBAQAorMjAxOS0xMC0wNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0NTUyBTaGFkb3cgUGFydHNdIEludGVybmFsIHNoYWRvdyBwc2V1
ZG8gZWxlbWVudHMgc2hvdWxkIHdvcmsgd2l0aCA6OnBhcnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjYyMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlbGVjdG9ycyBsaWtlIDo6cGFydChmb28pOjpw
bGFjZWhvbGRlciBzaG91bGQgd29yay4KKworICAgICAgICBUaGlzIGludm9sdmVzIGhvcCBvdXQg
b2YgYSBVQSBzaGFkb3cgdHJlZSBhbmQgdGhlbiBmcm9tIGFuIGF1dGhvciBzaGFkb3cgdHJlZS4K
KworICAgICAgICAqIGNzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hBdXRob3JSdWxlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVz
KToKKworICAgICAgICBJZiB3ZSBhcmUgbWF0Y2hpbmcgYSBwc2V1ZG8gZWxlbWVudCBpbiBhIFVB
IHNoYWRvdyB0cmVlLCBzZWUgaWYgcGFydCBydWxlcyBjYW4gbWF0Y2ggaXMgdGhlIHN1cnJvdW5k
aW5nIHNjb3BlLgorCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0
Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVzRm9yU2NvcGUpOgorICAgICAgICAqIGNzcy9FbGVtZW50
UnVsZUNvbGxlY3Rvci5oOgorICAgICAgICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bGVTZXQ6OmFkZFJ1bGUpOgorCisgICAgICAgIExvb2sgdGhyb3VnaCBhbGwgU2hh
ZG93RGVzY2VuZGFudCByZWxhdGlvbnMgdG9vIHNvIGFsbCA6OnBhcnQgcnVsZXMgZW5kIHVwIGlu
IHRoZSBwYXJ0IGJ1Y2tldC4KKworICAgICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjptYXRjaFJlY3Vyc2l2ZWx5IGNvbnN0
KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFyc2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1NlbGVjdG9yUGFyc2VyOjpzcGxpdENvbXBvdW5kQXRJbXBsaWNpdFNoYWRv
d0Nyb3NzaW5nQ29tYmluYXRvcik6CisKKyAgICAgICAgQWxsb3cgbXVsdGlwbGUgU2hhZG93RGVz
Y2VuZGFudCByZWxhdGlvbnMgZm9yIDo6cGFydC4KKwogMjAxOS0xMC0wNiAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgTm9kZTo6cmVmL2RlcmVmIHNob3VsZCBi
ZSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVj
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKaW5k
ZXggMGMyZjQ2MGI5MWYuLjg1OTlmODY3MjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVt
ZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTIwMyw5ICsyMDMsNyBAQCB2b2lkIEVsZW1lbnRSdWxl
Q29sbGVjdG9yOjptYXRjaEF1dGhvclJ1bGVzKGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMpCiAKICAg
ICBpZiAoZWxlbWVudCgpLmlzSW5TaGFkb3dUcmVlKCkpIHsKICAgICAgICAgbWF0Y2hBdXRob3JT
aGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMoaW5jbHVkZUVtcHR5UnVsZXMsIHJ1bGVSYW5nZSk7Ci0K
LSAgICAgICAgaWYgKCFlbGVtZW50KCkucGFydE5hbWVzKCkuaXNFbXB0eSgpKQotICAgICAgICAg
ICAgbWF0Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVzKCplbGVtZW50KCkuY29udGFpbmluZ1NoYWRv
d1Jvb3QoKSwgaW5jbHVkZUVtcHR5UnVsZXMsIHJ1bGVSYW5nZSk7CisgICAgICAgIG1hdGNoUGFy
dFBzZXVkb0VsZW1lbnRSdWxlcyhpbmNsdWRlRW1wdHlSdWxlcywgcnVsZVJhbmdlKTsKICAgICB9
CiAKICAgICBzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMoKTsKQEAgLTI2MywxMiArMjYxLDIy
IEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoU2xvdHRlZFBzZXVkb0VsZW1lbnRS
dWxlcyhib29sIGluY2x1ZGVFbXB0eVJ1bGVzCiAgICAgfQogfQogCi12b2lkIEVsZW1lbnRSdWxl
Q29sbGVjdG9yOjptYXRjaFBhcnRQc2V1ZG9FbGVtZW50UnVsZXMoY29uc3QgU2hhZG93Um9vdCYg
Y29udGFpbmluZ1NoYWRvd1Jvb3QsIGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMsIFN0eWxlUmVzb2x2
ZXI6OlJ1bGVSYW5nZSYgcnVsZVJhbmdlKQordm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0
Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVzKGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMsIFN0eWxlUmVz
b2x2ZXI6OlJ1bGVSYW5nZSYgcnVsZVJhbmdlKQogewogICAgIEFTU0VSVChlbGVtZW50KCkuaXNJ
blNoYWRvd1RyZWUoKSk7Ci0gICAgQVNTRVJUKCFlbGVtZW50KCkucGFydE5hbWVzKCkuaXNFbXB0
eSgpKTsKIAotICAgIGF1dG8mIHNoYWRvd0hvc3QgPSAqY29udGFpbmluZ1NoYWRvd1Jvb3QuaG9z
dCgpOworICAgIGJvb2wgaXNVQVNoYWRvd1BzZXVkb0VsZW1lbnQgPSBlbGVtZW50KCkuY29udGFp
bmluZ1NoYWRvd1Jvb3QoKS0+bW9kZSgpID09IFNoYWRvd1Jvb3RNb2RlOjpVc2VyQWdlbnQgJiYg
IWVsZW1lbnQoKS5zaGFkb3dQc2V1ZG9JZCgpLmlzTnVsbCgpOworCisgICAgYXV0byYgcGFydE1h
dGNoaW5nRWxlbWVudCA9IGlzVUFTaGFkb3dQc2V1ZG9FbGVtZW50ID8gKmVsZW1lbnQoKS5zaGFk
b3dIb3N0KCkgOiBlbGVtZW50KCk7CisgICAgaWYgKHBhcnRNYXRjaGluZ0VsZW1lbnQucGFydE5h
bWVzKCkuaXNFbXB0eSgpIHx8ICFwYXJ0TWF0Y2hpbmdFbGVtZW50LmlzSW5TaGFkb3dUcmVlKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIG1hdGNoUGFydFBzZXVkb0VsZW1lbnRSdWxlc0ZvclNj
b3BlKCpwYXJ0TWF0Y2hpbmdFbGVtZW50LmNvbnRhaW5pbmdTaGFkb3dSb290KCksIGluY2x1ZGVF
bXB0eVJ1bGVzLCBydWxlUmFuZ2UpOworfQorCit2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpt
YXRjaFBhcnRQc2V1ZG9FbGVtZW50UnVsZXNGb3JTY29wZShjb25zdCBTaGFkb3dSb290JiBzY29w
ZVNoYWRvd1Jvb3QsIGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMsIFN0eWxlUmVzb2x2ZXI6OlJ1bGVS
YW5nZSYgcnVsZVJhbmdlKQoreworICAgIGF1dG8mIHNoYWRvd0hvc3QgPSAqc2NvcGVTaGFkb3dS
b290Lmhvc3QoKTsKICAgICB7CiAgICAgICAgIFNldEZvclNjb3BlPFJlZlB0cjxjb25zdCBFbGVt
ZW50Pj4gcGFydE1hdGNoaW5nU2NvcGUobV9zaGFkb3dIb3N0SW5QYXJ0UnVsZVNjb3BlLCAmc2hh
ZG93SG9zdCk7CiAKQEAgLTI3OCwxMSArMjg2LDExIEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0
b3I6Om1hdGNoUGFydFBzZXVkb0VsZW1lbnRSdWxlcyhjb25zdCBTaGFkb3dSb290JiBjb250YWlu
CiAgICAgfQogCiAgICAgLy8gRWxlbWVudCBtYXkgYmUgZXhwb3NlZCB0byBzdHlsaW5nIGZyb20g
ZW5jbG9zaW5nIHNjb3BlcyB2aWEgZXhwb3J0cGFydHMgYXR0cmlidXRlcy4KLSAgICBpZiAoY29u
dGFpbmluZ1NoYWRvd1Jvb3QucGFydE1hcHBpbmdzKCkuaXNFbXB0eSgpKQorICAgIGlmIChzY29w
ZVNoYWRvd1Jvb3QucGFydE1hcHBpbmdzKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAoYXV0byogcGFyZW50U2hhZG93Um9vdCA9IHNoYWRvd0hvc3QuY29udGFpbmluZ1No
YWRvd1Jvb3QoKSkKLSAgICAgICAgbWF0Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVzKCpwYXJlbnRT
aGFkb3dSb290LCBpbmNsdWRlRW1wdHlSdWxlcywgcnVsZVJhbmdlKTsKKyAgICBpZiAoYXV0byog
cGFyZW50U2NvcGVTaGFkb3dSb290ID0gc2hhZG93SG9zdC5jb250YWluaW5nU2hhZG93Um9vdCgp
KQorICAgICAgICBtYXRjaFBhcnRQc2V1ZG9FbGVtZW50UnVsZXNGb3JTY29wZSgqcGFyZW50U2Nv
cGVTaGFkb3dSb290LCBpbmNsdWRlRW1wdHlSdWxlcywgcnVsZVJhbmdlKTsKIH0KIAogdm9pZCBF
bGVtZW50UnVsZUNvbGxlY3Rvcjo6Y29sbGVjdE1hdGNoaW5nU2hhZG93UHNldWRvRWxlbWVudFJ1
bGVzKGNvbnN0IE1hdGNoUmVxdWVzdCYgbWF0Y2hSZXF1ZXN0LCBTdHlsZVJlc29sdmVyOjpSdWxl
UmFuZ2UmIHJ1bGVSYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50
UnVsZUNvbGxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9y
LmgKaW5kZXggY2FhYTFkMDliMTguLjE5ODI5ZGIxNDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RWxlbWVudFJ1bGVDb2xsZWN0b3IuaApAQCAtNzUsNyArNzUsOCBAQCBwcml2YXRlOgogICAgIHZv
aWQgbWF0Y2hBdXRob3JTaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMoYm9vbCBpbmNsdWRlRW1wdHlS
dWxlcywgU3R5bGVSZXNvbHZlcjo6UnVsZVJhbmdlJik7CiAgICAgdm9pZCBtYXRjaEhvc3RQc2V1
ZG9DbGFzc1J1bGVzKGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMsIFN0eWxlUmVzb2x2ZXI6OlJ1bGVS
YW5nZSYpOwogICAgIHZvaWQgbWF0Y2hTbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzKGJvb2wgaW5j
bHVkZUVtcHR5UnVsZXMsIFN0eWxlUmVzb2x2ZXI6OlJ1bGVSYW5nZSYpOwotICAgIHZvaWQgbWF0
Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVzKGNvbnN0IFNoYWRvd1Jvb3QmIGNvbnRhaW5pbmdTaGFk
b3dSb290LCBib29sIGluY2x1ZGVFbXB0eVJ1bGVzLCBTdHlsZVJlc29sdmVyOjpSdWxlUmFuZ2Um
KTsKKyAgICB2b2lkIG1hdGNoUGFydFBzZXVkb0VsZW1lbnRSdWxlcyhib29sIGluY2x1ZGVFbXB0
eVJ1bGVzLCBTdHlsZVJlc29sdmVyOjpSdWxlUmFuZ2UmKTsKKyAgICB2b2lkIG1hdGNoUGFydFBz
ZXVkb0VsZW1lbnRSdWxlc0ZvclNjb3BlKGNvbnN0IFNoYWRvd1Jvb3QmIHNjb3BlU2hhZG93Um9v
dCwgYm9vbCBpbmNsdWRlRW1wdHlSdWxlcywgU3R5bGVSZXNvbHZlcjo6UnVsZVJhbmdlJik7CiAK
ICAgICB2b2lkIGNvbGxlY3RNYXRjaGluZ1NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyhjb25zdCBN
YXRjaFJlcXVlc3QmLCBTdHlsZVJlc29sdmVyOjpSdWxlUmFuZ2UmKTsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8UnVsZVNldDo6UnVsZURhdGFWZWN0b3I+IGNvbGxlY3RTbG90dGVkUHNldWRvRWxlbWVu
dFJ1bGVzRm9yU2xvdChib29sIGluY2x1ZGVFbXB0eVJ1bGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNw
cAppbmRleCBkY2QwZTBkZTFiMy4uNDczYjQzZGEyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9SdWxlU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAK
QEAgLTI5OSw3ICsyOTksNyBAQCB2b2lkIFJ1bGVTZXQ6OmFkZFJ1bGUoU3R5bGVSdWxlKiBydWxl
LCB1bnNpZ25lZCBzZWxlY3RvckluZGV4LCB1bnNpZ25lZCBzZWxlY3RvcgogICAgICAgICBjYXNl
IENTU1NlbGVjdG9yOjpQYWdlUHNldWRvQ2xhc3M6CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQotICAgICAgICBpZiAoc2VsZWN0b3ItPnJlbGF0aW9uKCkgIT0gQ1NTU2VsZWN0b3I6OlN1
YnNlbGVjdG9yKQorICAgICAgICBpZiAoc2VsZWN0b3ItPnJlbGF0aW9uKCkgIT0gQ1NTU2VsZWN0
b3I6OlN1YnNlbGVjdG9yICYmIHNlbGVjdG9yLT5yZWxhdGlvbigpICE9IENTU1NlbGVjdG9yOjpT
aGFkb3dEZXNjZW5kYW50KQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIHNlbGVjdG9yID0g
c2VsZWN0b3ItPnRhZ0hpc3RvcnkoKTsKICAgICB9IHdoaWxlIChzZWxlY3Rvcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IDAyYzdiNjliMDc4Li40YTM4NzExN2Y5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAgLTMyMCw4ICszMjAs
MTMgQEAgU2VsZWN0b3JDaGVja2VyOjpNYXRjaFJlc3VsdCBTZWxlY3RvckNoZWNrZXI6Om1hdGNo
UmVjdXJzaXZlbHkoQ2hlY2tpbmdDb250ZXh0JgogICAgICAgICAgICAgbmV4dENvbnRleHQudmlz
aXRlZE1hdGNoVHlwZSA9IFZpc2l0ZWRNYXRjaFR5cGU6OkRpc2FibGVkOwogCiAgICAgICAgIG5l
eHRDb250ZXh0LnBzZXVkb0lkID0gUHNldWRvSWQ6Ok5vbmU7CisKKyAgICAgICAgYm9vbCBuZXh0
SXNQYXJ0ID0gbGVmdFNlbGVjdG9yLT5tYXRjaCgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVt
ZW50ICYmIGxlZnRTZWxlY3Rvci0+cHNldWRvRWxlbWVudFR5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6
UHNldWRvRWxlbWVudFBhcnQ7CisgICAgICAgIGJvb2wgYWxsb3dNdWx0aXBsZVBzZXVkb0VsZW1l
bnRzID0gcmVsYXRpb24gPT0gQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQgJiYgbmV4dElz
UGFydDsKICAgICAgICAgLy8gVmlydHVhbCBwc2V1ZG8gZWxlbWVudCBpcyBvbmx5IGVmZmVjdGl2
ZSBpbiB0aGUgcmlnaHRtb3N0IGZyYWdtZW50LgotICAgICAgICBuZXh0Q29udGV4dC5wc2V1ZG9F
bGVtZW50RWZmZWN0aXZlID0gZmFsc2U7CisgICAgICAgIGlmICghYWxsb3dNdWx0aXBsZVBzZXVk
b0VsZW1lbnRzKQorICAgICAgICAgICAgbmV4dENvbnRleHQucHNldWRvRWxlbWVudEVmZmVjdGl2
ZSA9IGZhbHNlOworCiAgICAgICAgIG5leHRDb250ZXh0LmlzTWF0Y2hFbGVtZW50ID0gZmFsc2U7
CiAgICAgfQogCkBAIC00MzAsNyArNDM1LDcgQEAgU2VsZWN0b3JDaGVja2VyOjpNYXRjaFJlc3Vs
dCBTZWxlY3RvckNoZWNrZXI6Om1hdGNoUmVjdXJzaXZlbHkoQ2hlY2tpbmdDb250ZXh0JgogICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQ6CiAgICAgICAgIHsKICAgICAgICAg
ICAgIC8vIFdoZW4gbWF0Y2hpbmcgZm9vOjpwYXJ0KGJhcikgd2Ugc2tpcCBkaXJlY3RseSB0byB0
aGUgdHJlZSBvZiBlbGVtZW50ICdmb28nLgotICAgICAgICAgICAgYXV0byogc2hhZG93SG9zdCA9
IGNoZWNraW5nQ29udGV4dC5zaGFkb3dIb3N0SW5QYXJ0UnVsZVNjb3BlID8gY2hlY2tpbmdDb250
ZXh0LnNoYWRvd0hvc3RJblBhcnRSdWxlU2NvcGUgOiBjb250ZXh0LmVsZW1lbnQtPnNoYWRvd0hv
c3QoKTsKKyAgICAgICAgICAgIGF1dG8qIHNoYWRvd0hvc3QgPSBjb250ZXh0LnNlbGVjdG9yLT5w
c2V1ZG9FbGVtZW50VHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50UGFydCA/IGNo
ZWNraW5nQ29udGV4dC5zaGFkb3dIb3N0SW5QYXJ0UnVsZVNjb3BlIDogY29udGV4dC5lbGVtZW50
LT5zaGFkb3dIb3N0KCk7CiAgICAgICAgICAgICBpZiAoIXNoYWRvd0hvc3QpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0OjpmYWlscyhNYXRjaDo6U2VsZWN0b3JGYWlsc0NvbXBs
ZXRlbHkpOwogICAgICAgICAgICAgbmV4dENvbnRleHQuZWxlbWVudCA9IHNoYWRvd0hvc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFyc2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwCmluZGV4
IDMxNzJkMjU5MDQ5Li41NDk1Yjk3NjU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKQEAgLTg2OCwxMCArODY4LDE4IEBAIHN0ZDo6dW5p
cXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gQ1NTU2VsZWN0b3JQYXJzZXI6OnNwbGl0Q29tcG91
bmRBdEltcGxpY2l0U2hhCiAgICAgaWYgKCFzcGxpdEFmdGVyIHx8ICFzcGxpdEFmdGVyLT50YWdI
aXN0b3J5KCkpCiAgICAgICAgIHJldHVybiBjb21wb3VuZFNlbGVjdG9yOwogCi0gICAgLy8gRklY
TUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE3NDcKLSAgICAv
LyBXZSBoYXZlIHRvIHJlY3VyLCBzaW5jZSB3ZSBoYXZlIHJ1bGVzIGluIG1lZGlhIGNvbnRyb2xz
IGxpa2UgdmlkZW86OmE6OmIuIFRoaXMgc2hvdWxkIG5vdCBiZSBhbGxvd2VkLCBhbmQKLSAgICAv
LyB3ZSBzaG91bGQgcmVtb3ZlIHRoaXMgcmVjdXJzaW9uIG9uY2UgdGhvc2UgcnVsZXMgYXJlIGdv
bmUuCi0gICAgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiBzZWNvbmRDb21wb3Vu
ZCA9IGNvbnRleHQubW9kZSAhPSBVQVNoZWV0TW9kZSA/IHNwbGl0QWZ0ZXItPnJlbGVhc2VUYWdI
aXN0b3J5KCkgOiBzcGxpdENvbXBvdW5kQXRJbXBsaWNpdFNoYWRvd0Nyb3NzaW5nQ29tYmluYXRv
cihzcGxpdEFmdGVyLT5yZWxlYXNlVGFnSGlzdG9yeSgpLCBjb250ZXh0KTsKKyAgICAvLyA6OnBh
cnQoKSBjb21iaW5lcyB3aXRoIG90aGVyIHBzZXVkbyBlbGVtZW50cy4KKyAgICBib29sIGlzUGFy
dCA9IHNwbGl0QWZ0ZXItPnRhZ0hpc3RvcnkoKS0+bWF0Y2goKSA9PSBDU1NTZWxlY3Rvcjo6UHNl
dWRvRWxlbWVudCAmJiBzcGxpdEFmdGVyLT50YWdIaXN0b3J5KCktPnBzZXVkb0VsZW1lbnRUeXBl
KCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRQYXJ0OworCisgICAgc3RkOjp1bmlxdWVf
cHRyPENTU1BhcnNlclNlbGVjdG9yPiBzZWNvbmRDb21wb3VuZDsKKyAgICBpZiAoY29udGV4dC5t
b2RlID09IFVBU2hlZXRNb2RlIHx8IGlzUGFydCkgeworICAgICAgICAvLyBGSVhNRTogaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTc0NworICAgICAgICAvLyBXZSBo
YXZlIHRvIHJlY3VyLCBzaW5jZSB3ZSBoYXZlIHJ1bGVzIGluIG1lZGlhIGNvbnRyb2xzIGxpa2Ug
dmlkZW86OmE6OmIuIFRoaXMgc2hvdWxkIG5vdCBiZSBhbGxvd2VkLCBhbmQKKyAgICAgICAgLy8g
d2Ugc2hvdWxkIHJlbW92ZSB0aGlzIHJlY3Vyc2lvbiBvbmNlIHRob3NlIHJ1bGVzIGFyZSBnb25l
LgorICAgICAgICBzZWNvbmRDb21wb3VuZCA9IHNwbGl0Q29tcG91bmRBdEltcGxpY2l0U2hhZG93
Q3Jvc3NpbmdDb21iaW5hdG9yKHNwbGl0QWZ0ZXItPnJlbGVhc2VUYWdIaXN0b3J5KCksIGNvbnRl
eHQpOworICAgIH0gZWxzZQorICAgICAgICBzZWNvbmRDb21wb3VuZCA9IHNwbGl0QWZ0ZXItPnJl
bGVhc2VUYWdIaXN0b3J5KCk7CisKICAgICBzZWNvbmRDb21wb3VuZC0+YXBwZW5kVGFnSGlzdG9y
eShDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2VuZGFudCwgV1RGTW92ZShjb21wb3VuZFNlbGVjdG9y
KSk7CiAgICAgcmV0dXJuIHNlY29uZENvbXBvdW5kOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380297</attachid>
            <date>2019-10-06 06:39:23 -0700</date>
            <delta_ts>2019-10-07 06:58:15 -0700</delta_ts>
            <desc>patch</desc>
            <filename>css-shadow-parts-placeholder-3.patch</filename>
            <type>text/plain</type>
            <size>11415</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwYmNkOTg2MDlkZS4uMWNlZGQ0YjE3ZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxOS0xMC0wNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0NTUyBTaGFkb3cgUGFydHNdIEludGVybmFsIHNoYWRvdyBwc2V1ZG8gZWxlbWVudHMgc2hvdWxk
IHdvcmsgd2l0aCA6OnBhcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMjYyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vdGUgdGhhdCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2hhZG93LXBhcnRzL2ludGVyYWN0aW9uLXdpdGgtcHNldWRvLWVsZW1lbnRzLmh0bWwgcGxh
Y2Vob2xkZXIgc3VidGVzdCBzdGlsbAorICAgICAgICB3b24ndCBwYXNzIGJlY2F1c2Ugd2Ugd2Ug
ZG9uJ3Qgc3VwcG9ydCBnZXRDb21wdXRlZFN0eWxlIGZvciBpbnRlcm5hbCBwc2V1ZG8gZWxlbWVu
dHMuIFZpc3VhbGx5IGl0IG5vdyB3b3JrIGZ1bGx5LgorCisgICAgICAgICogVGVzdEV4cGVjdGF0
aW9uczoKKworICAgICAgICBVbnNraXAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXNoYWRvdy1wYXJ0cy9pbnRlcmFjdGlvbi13aXRoLXBsYWNlaG9sZGVyLmh0bWwKKwog
MjAxOS0xMC0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFs
bG93IHBhZ2VzIHVzaW5nIEV2ZW50U291cmNlIHRvIGVudGVyIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDFhMDA3OGU4ODMzLi5lYmFjMWQxMGE0MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCkBAIC0zODI3LDcgKzM4MjcsNCBAQCBmYXN0L3RleHQvZGVzaWduLXN5c3Rl
bS11aS0xNi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTk2Njk4IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbG9hZGluZy9sYXp5bG9hZC9pbWFnZS1sb2Fk
aW5nLWxhenkudGVudGF0aXZlLmh0bWwKIHdlYmtpdC5vcmcvYi8xOTY2OTggaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9sb2FkaW5nL2xhenlsb2FkL2lmcmFtZS1sb2FkaW5nLWxhenku
dGVudGF0aXZlLmh0bWwKIAotIyBDU1MgU2hhZG93IFBhcnRzCi13ZWJraXQub3JnL2IvMTQ5NDQz
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaGFkb3ctcGFydHMvaW50
ZXJhY3Rpb24td2l0aC1wbGFjZWhvbGRlci5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi0KIHdl
YmtpdC5vcmcvYi8yMDI1MTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy8yZGNvbnRl
eHQvdGV4dC1zdHlsZXMvMmQudGV4dC5kcmF3LmJhc2VsaW5lLmlkZW9ncmFwaGljLmh0bWwgWyBT
a2lwIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBmNjFhMTljM2JkNC4uMTg1ZDc1MDYzMWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNCBAQAorMjAxOS0xMC0wNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0NTUyBTaGFkb3cgUGFydHNdIEludGVybmFsIHNoYWRvdyBwc2V1
ZG8gZWxlbWVudHMgc2hvdWxkIHdvcmsgd2l0aCA6OnBhcnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjYyMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlbGVjdG9ycyBsaWtlIDo6cGFydChmb28pOjpw
bGFjZWhvbGRlciBzaG91bGQgd29yay4KKworICAgICAgICBUaGlzIGludm9sdmVzIGhvcCBvdXQg
b2YgYSBVQSBzaGFkb3cgdHJlZSBhbmQgdGhlbiBmcm9tIGFuIGF1dGhvciBzaGFkb3cgdHJlZS4K
KworICAgICAgICAqIGNzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hBdXRob3JSdWxlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVz
KToKKworICAgICAgICBJZiB3ZSBhcmUgbWF0Y2hpbmcgYSBwc2V1ZG8gZWxlbWVudCBpbiBhIFVB
IHNoYWRvdyB0cmVlLCBzZWUgaWYgcGFydCBydWxlcyBjYW4gbWF0Y2ggaXMgdGhlIHN1cnJvdW5k
aW5nIHNjb3BlLgorCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0
Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVzRm9yU2NvcGUpOgorICAgICAgICAqIGNzcy9FbGVtZW50
UnVsZUNvbGxlY3Rvci5oOgorICAgICAgICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bGVTZXQ6OmFkZFJ1bGUpOgorCisgICAgICAgIExvb2sgdGhyb3VnaCBhbGwgU2hh
ZG93RGVzY2VuZGFudCByZWxhdGlvbnMgdG9vIHNvIGFsbCA6OnBhcnQgcnVsZXMgZW5kIHVwIGlu
IHRoZSBwYXJ0IGJ1Y2tldC4KKworICAgICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjptYXRjaFJlY3Vyc2l2ZWx5IGNvbnN0
KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFyc2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1NlbGVjdG9yUGFyc2VyOjpzcGxpdENvbXBvdW5kQXRJbXBsaWNpdFNoYWRv
d0Nyb3NzaW5nQ29tYmluYXRvcik6CisKKyAgICAgICAgQWxsb3cgbXVsdGlwbGUgU2hhZG93RGVz
Y2VuZGFudCByZWxhdGlvbnMgZm9yIDo6cGFydC4KKwogMjAxOS0xMC0wNiAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgTm9kZTo6cmVmL2RlcmVmIHNob3VsZCBi
ZSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVj
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKaW5k
ZXggMGMyZjQ2MGI5MWYuLjg1OTlmODY3MjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVt
ZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTIwMyw5ICsyMDMsNyBAQCB2b2lkIEVsZW1lbnRSdWxl
Q29sbGVjdG9yOjptYXRjaEF1dGhvclJ1bGVzKGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMpCiAKICAg
ICBpZiAoZWxlbWVudCgpLmlzSW5TaGFkb3dUcmVlKCkpIHsKICAgICAgICAgbWF0Y2hBdXRob3JT
aGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMoaW5jbHVkZUVtcHR5UnVsZXMsIHJ1bGVSYW5nZSk7Ci0K
LSAgICAgICAgaWYgKCFlbGVtZW50KCkucGFydE5hbWVzKCkuaXNFbXB0eSgpKQotICAgICAgICAg
ICAgbWF0Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVzKCplbGVtZW50KCkuY29udGFpbmluZ1NoYWRv
d1Jvb3QoKSwgaW5jbHVkZUVtcHR5UnVsZXMsIHJ1bGVSYW5nZSk7CisgICAgICAgIG1hdGNoUGFy
dFBzZXVkb0VsZW1lbnRSdWxlcyhpbmNsdWRlRW1wdHlSdWxlcywgcnVsZVJhbmdlKTsKICAgICB9
CiAKICAgICBzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMoKTsKQEAgLTI2MywxMiArMjYxLDIy
IEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoU2xvdHRlZFBzZXVkb0VsZW1lbnRS
dWxlcyhib29sIGluY2x1ZGVFbXB0eVJ1bGVzCiAgICAgfQogfQogCi12b2lkIEVsZW1lbnRSdWxl
Q29sbGVjdG9yOjptYXRjaFBhcnRQc2V1ZG9FbGVtZW50UnVsZXMoY29uc3QgU2hhZG93Um9vdCYg
Y29udGFpbmluZ1NoYWRvd1Jvb3QsIGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMsIFN0eWxlUmVzb2x2
ZXI6OlJ1bGVSYW5nZSYgcnVsZVJhbmdlKQordm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0
Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVzKGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMsIFN0eWxlUmVz
b2x2ZXI6OlJ1bGVSYW5nZSYgcnVsZVJhbmdlKQogewogICAgIEFTU0VSVChlbGVtZW50KCkuaXNJ
blNoYWRvd1RyZWUoKSk7Ci0gICAgQVNTRVJUKCFlbGVtZW50KCkucGFydE5hbWVzKCkuaXNFbXB0
eSgpKTsKIAotICAgIGF1dG8mIHNoYWRvd0hvc3QgPSAqY29udGFpbmluZ1NoYWRvd1Jvb3QuaG9z
dCgpOworICAgIGJvb2wgaXNVQVNoYWRvd1BzZXVkb0VsZW1lbnQgPSBlbGVtZW50KCkuY29udGFp
bmluZ1NoYWRvd1Jvb3QoKS0+bW9kZSgpID09IFNoYWRvd1Jvb3RNb2RlOjpVc2VyQWdlbnQgJiYg
IWVsZW1lbnQoKS5zaGFkb3dQc2V1ZG9JZCgpLmlzTnVsbCgpOworCisgICAgYXV0byYgcGFydE1h
dGNoaW5nRWxlbWVudCA9IGlzVUFTaGFkb3dQc2V1ZG9FbGVtZW50ID8gKmVsZW1lbnQoKS5zaGFk
b3dIb3N0KCkgOiBlbGVtZW50KCk7CisgICAgaWYgKHBhcnRNYXRjaGluZ0VsZW1lbnQucGFydE5h
bWVzKCkuaXNFbXB0eSgpIHx8ICFwYXJ0TWF0Y2hpbmdFbGVtZW50LmlzSW5TaGFkb3dUcmVlKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIG1hdGNoUGFydFBzZXVkb0VsZW1lbnRSdWxlc0ZvclNj
b3BlKCpwYXJ0TWF0Y2hpbmdFbGVtZW50LmNvbnRhaW5pbmdTaGFkb3dSb290KCksIGluY2x1ZGVF
bXB0eVJ1bGVzLCBydWxlUmFuZ2UpOworfQorCit2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpt
YXRjaFBhcnRQc2V1ZG9FbGVtZW50UnVsZXNGb3JTY29wZShjb25zdCBTaGFkb3dSb290JiBzY29w
ZVNoYWRvd1Jvb3QsIGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMsIFN0eWxlUmVzb2x2ZXI6OlJ1bGVS
YW5nZSYgcnVsZVJhbmdlKQoreworICAgIGF1dG8mIHNoYWRvd0hvc3QgPSAqc2NvcGVTaGFkb3dS
b290Lmhvc3QoKTsKICAgICB7CiAgICAgICAgIFNldEZvclNjb3BlPFJlZlB0cjxjb25zdCBFbGVt
ZW50Pj4gcGFydE1hdGNoaW5nU2NvcGUobV9zaGFkb3dIb3N0SW5QYXJ0UnVsZVNjb3BlLCAmc2hh
ZG93SG9zdCk7CiAKQEAgLTI3OCwxMSArMjg2LDExIEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0
b3I6Om1hdGNoUGFydFBzZXVkb0VsZW1lbnRSdWxlcyhjb25zdCBTaGFkb3dSb290JiBjb250YWlu
CiAgICAgfQogCiAgICAgLy8gRWxlbWVudCBtYXkgYmUgZXhwb3NlZCB0byBzdHlsaW5nIGZyb20g
ZW5jbG9zaW5nIHNjb3BlcyB2aWEgZXhwb3J0cGFydHMgYXR0cmlidXRlcy4KLSAgICBpZiAoY29u
dGFpbmluZ1NoYWRvd1Jvb3QucGFydE1hcHBpbmdzKCkuaXNFbXB0eSgpKQorICAgIGlmIChzY29w
ZVNoYWRvd1Jvb3QucGFydE1hcHBpbmdzKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAoYXV0byogcGFyZW50U2hhZG93Um9vdCA9IHNoYWRvd0hvc3QuY29udGFpbmluZ1No
YWRvd1Jvb3QoKSkKLSAgICAgICAgbWF0Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVzKCpwYXJlbnRT
aGFkb3dSb290LCBpbmNsdWRlRW1wdHlSdWxlcywgcnVsZVJhbmdlKTsKKyAgICBpZiAoYXV0byog
cGFyZW50U2NvcGVTaGFkb3dSb290ID0gc2hhZG93SG9zdC5jb250YWluaW5nU2hhZG93Um9vdCgp
KQorICAgICAgICBtYXRjaFBhcnRQc2V1ZG9FbGVtZW50UnVsZXNGb3JTY29wZSgqcGFyZW50U2Nv
cGVTaGFkb3dSb290LCBpbmNsdWRlRW1wdHlSdWxlcywgcnVsZVJhbmdlKTsKIH0KIAogdm9pZCBF
bGVtZW50UnVsZUNvbGxlY3Rvcjo6Y29sbGVjdE1hdGNoaW5nU2hhZG93UHNldWRvRWxlbWVudFJ1
bGVzKGNvbnN0IE1hdGNoUmVxdWVzdCYgbWF0Y2hSZXF1ZXN0LCBTdHlsZVJlc29sdmVyOjpSdWxl
UmFuZ2UmIHJ1bGVSYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50
UnVsZUNvbGxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9y
LmgKaW5kZXggY2FhYTFkMDliMTguLjE5ODI5ZGIxNDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RWxlbWVudFJ1bGVDb2xsZWN0b3IuaApAQCAtNzUsNyArNzUsOCBAQCBwcml2YXRlOgogICAgIHZv
aWQgbWF0Y2hBdXRob3JTaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMoYm9vbCBpbmNsdWRlRW1wdHlS
dWxlcywgU3R5bGVSZXNvbHZlcjo6UnVsZVJhbmdlJik7CiAgICAgdm9pZCBtYXRjaEhvc3RQc2V1
ZG9DbGFzc1J1bGVzKGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMsIFN0eWxlUmVzb2x2ZXI6OlJ1bGVS
YW5nZSYpOwogICAgIHZvaWQgbWF0Y2hTbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzKGJvb2wgaW5j
bHVkZUVtcHR5UnVsZXMsIFN0eWxlUmVzb2x2ZXI6OlJ1bGVSYW5nZSYpOwotICAgIHZvaWQgbWF0
Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVzKGNvbnN0IFNoYWRvd1Jvb3QmIGNvbnRhaW5pbmdTaGFk
b3dSb290LCBib29sIGluY2x1ZGVFbXB0eVJ1bGVzLCBTdHlsZVJlc29sdmVyOjpSdWxlUmFuZ2Um
KTsKKyAgICB2b2lkIG1hdGNoUGFydFBzZXVkb0VsZW1lbnRSdWxlcyhib29sIGluY2x1ZGVFbXB0
eVJ1bGVzLCBTdHlsZVJlc29sdmVyOjpSdWxlUmFuZ2UmKTsKKyAgICB2b2lkIG1hdGNoUGFydFBz
ZXVkb0VsZW1lbnRSdWxlc0ZvclNjb3BlKGNvbnN0IFNoYWRvd1Jvb3QmIHNjb3BlU2hhZG93Um9v
dCwgYm9vbCBpbmNsdWRlRW1wdHlSdWxlcywgU3R5bGVSZXNvbHZlcjo6UnVsZVJhbmdlJik7CiAK
ICAgICB2b2lkIGNvbGxlY3RNYXRjaGluZ1NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyhjb25zdCBN
YXRjaFJlcXVlc3QmLCBTdHlsZVJlc29sdmVyOjpSdWxlUmFuZ2UmKTsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8UnVsZVNldDo6UnVsZURhdGFWZWN0b3I+IGNvbGxlY3RTbG90dGVkUHNldWRvRWxlbWVu
dFJ1bGVzRm9yU2xvdChib29sIGluY2x1ZGVFbXB0eVJ1bGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNw
cAppbmRleCBkY2QwZTBkZTFiMy4uNDczYjQzZGEyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9SdWxlU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAK
QEAgLTI5OSw3ICsyOTksNyBAQCB2b2lkIFJ1bGVTZXQ6OmFkZFJ1bGUoU3R5bGVSdWxlKiBydWxl
LCB1bnNpZ25lZCBzZWxlY3RvckluZGV4LCB1bnNpZ25lZCBzZWxlY3RvcgogICAgICAgICBjYXNl
IENTU1NlbGVjdG9yOjpQYWdlUHNldWRvQ2xhc3M6CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQotICAgICAgICBpZiAoc2VsZWN0b3ItPnJlbGF0aW9uKCkgIT0gQ1NTU2VsZWN0b3I6OlN1
YnNlbGVjdG9yKQorICAgICAgICBpZiAoc2VsZWN0b3ItPnJlbGF0aW9uKCkgIT0gQ1NTU2VsZWN0
b3I6OlN1YnNlbGVjdG9yICYmIHNlbGVjdG9yLT5yZWxhdGlvbigpICE9IENTU1NlbGVjdG9yOjpT
aGFkb3dEZXNjZW5kYW50KQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIHNlbGVjdG9yID0g
c2VsZWN0b3ItPnRhZ0hpc3RvcnkoKTsKICAgICB9IHdoaWxlIChzZWxlY3Rvcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IDAyYzdiNjliMDc4Li5kYTk0ZDI4NDg1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAgLTMyMCw4ICszMjAs
MTMgQEAgU2VsZWN0b3JDaGVja2VyOjpNYXRjaFJlc3VsdCBTZWxlY3RvckNoZWNrZXI6Om1hdGNo
UmVjdXJzaXZlbHkoQ2hlY2tpbmdDb250ZXh0JgogICAgICAgICAgICAgbmV4dENvbnRleHQudmlz
aXRlZE1hdGNoVHlwZSA9IFZpc2l0ZWRNYXRjaFR5cGU6OkRpc2FibGVkOwogCiAgICAgICAgIG5l
eHRDb250ZXh0LnBzZXVkb0lkID0gUHNldWRvSWQ6Ok5vbmU7CisKKyAgICAgICAgYm9vbCBuZXh0
SXNQYXJ0ID0gbGVmdFNlbGVjdG9yLT5tYXRjaCgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVt
ZW50ICYmIGxlZnRTZWxlY3Rvci0+cHNldWRvRWxlbWVudFR5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6
UHNldWRvRWxlbWVudFBhcnQ7CisgICAgICAgIGJvb2wgYWxsb3dNdWx0aXBsZVBzZXVkb0VsZW1l
bnRzID0gcmVsYXRpb24gPT0gQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQgJiYgbmV4dElz
UGFydDsKICAgICAgICAgLy8gVmlydHVhbCBwc2V1ZG8gZWxlbWVudCBpcyBvbmx5IGVmZmVjdGl2
ZSBpbiB0aGUgcmlnaHRtb3N0IGZyYWdtZW50LgotICAgICAgICBuZXh0Q29udGV4dC5wc2V1ZG9F
bGVtZW50RWZmZWN0aXZlID0gZmFsc2U7CisgICAgICAgIGlmICghYWxsb3dNdWx0aXBsZVBzZXVk
b0VsZW1lbnRzKQorICAgICAgICAgICAgbmV4dENvbnRleHQucHNldWRvRWxlbWVudEVmZmVjdGl2
ZSA9IGZhbHNlOworCiAgICAgICAgIG5leHRDb250ZXh0LmlzTWF0Y2hFbGVtZW50ID0gZmFsc2U7
CiAgICAgfQogCkBAIC00MzAsNyArNDM1LDggQEAgU2VsZWN0b3JDaGVja2VyOjpNYXRjaFJlc3Vs
dCBTZWxlY3RvckNoZWNrZXI6Om1hdGNoUmVjdXJzaXZlbHkoQ2hlY2tpbmdDb250ZXh0JgogICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQ6CiAgICAgICAgIHsKICAgICAgICAg
ICAgIC8vIFdoZW4gbWF0Y2hpbmcgZm9vOjpwYXJ0KGJhcikgd2Ugc2tpcCBkaXJlY3RseSB0byB0
aGUgdHJlZSBvZiBlbGVtZW50ICdmb28nLgotICAgICAgICAgICAgYXV0byogc2hhZG93SG9zdCA9
IGNoZWNraW5nQ29udGV4dC5zaGFkb3dIb3N0SW5QYXJ0UnVsZVNjb3BlID8gY2hlY2tpbmdDb250
ZXh0LnNoYWRvd0hvc3RJblBhcnRSdWxlU2NvcGUgOiBjb250ZXh0LmVsZW1lbnQtPnNoYWRvd0hv
c3QoKTsKKyAgICAgICAgICAgIGJvb2wgaXNQYXJ0ID0gY29udGV4dC5zZWxlY3Rvci0+bWF0Y2go
KSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudCAmJiBjb250ZXh0LnNlbGVjdG9yLT5wc2V1
ZG9FbGVtZW50VHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50UGFydDsKKyAgICAg
ICAgICAgIGF1dG8qIHNoYWRvd0hvc3QgPSBpc1BhcnQgPyBjaGVja2luZ0NvbnRleHQuc2hhZG93
SG9zdEluUGFydFJ1bGVTY29wZSA6IGNvbnRleHQuZWxlbWVudC0+c2hhZG93SG9zdCgpOwogICAg
ICAgICAgICAgaWYgKCFzaGFkb3dIb3N0KQogICAgICAgICAgICAgICAgIHJldHVybiBNYXRjaFJl
c3VsdDo6ZmFpbHMoTWF0Y2g6OlNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5KTsKICAgICAgICAgICAg
IG5leHRDb250ZXh0LmVsZW1lbnQgPSBzaGFkb3dIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFyc2VyLmNwcAppbmRleCAzMTcyZDI1OTA0OS4uNTQ5NWI5
NzY1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQ
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJz
ZXIuY3BwCkBAIC04NjgsMTAgKzg2OCwxOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2Vs
ZWN0b3I+IENTU1NlbGVjdG9yUGFyc2VyOjpzcGxpdENvbXBvdW5kQXRJbXBsaWNpdFNoYQogICAg
IGlmICghc3BsaXRBZnRlciB8fCAhc3BsaXRBZnRlci0+dGFnSGlzdG9yeSgpKQogICAgICAgICBy
ZXR1cm4gY29tcG91bmRTZWxlY3RvcjsKIAotICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNzQ3Ci0gICAgLy8gV2UgaGF2ZSB0byByZWN1ciwg
c2luY2Ugd2UgaGF2ZSBydWxlcyBpbiBtZWRpYSBjb250cm9scyBsaWtlIHZpZGVvOjphOjpiLiBU
aGlzIHNob3VsZCBub3QgYmUgYWxsb3dlZCwgYW5kCi0gICAgLy8gd2Ugc2hvdWxkIHJlbW92ZSB0
aGlzIHJlY3Vyc2lvbiBvbmNlIHRob3NlIHJ1bGVzIGFyZSBnb25lLgotICAgIHN0ZDo6dW5pcXVl
X3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gc2Vjb25kQ29tcG91bmQgPSBjb250ZXh0Lm1vZGUgIT0g
VUFTaGVldE1vZGUgPyBzcGxpdEFmdGVyLT5yZWxlYXNlVGFnSGlzdG9yeSgpIDogc3BsaXRDb21w
b3VuZEF0SW1wbGljaXRTaGFkb3dDcm9zc2luZ0NvbWJpbmF0b3Ioc3BsaXRBZnRlci0+cmVsZWFz
ZVRhZ0hpc3RvcnkoKSwgY29udGV4dCk7CisgICAgLy8gOjpwYXJ0KCkgY29tYmluZXMgd2l0aCBv
dGhlciBwc2V1ZG8gZWxlbWVudHMuCisgICAgYm9vbCBpc1BhcnQgPSBzcGxpdEFmdGVyLT50YWdI
aXN0b3J5KCktPm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQgJiYgc3BsaXRB
ZnRlci0+dGFnSGlzdG9yeSgpLT5wc2V1ZG9FbGVtZW50VHlwZSgpID09IENTU1NlbGVjdG9yOjpQ
c2V1ZG9FbGVtZW50UGFydDsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rv
cj4gc2Vjb25kQ29tcG91bmQ7CisgICAgaWYgKGNvbnRleHQubW9kZSA9PSBVQVNoZWV0TW9kZSB8
fCBpc1BhcnQpIHsKKyAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjE3NDcKKyAgICAgICAgLy8gV2UgaGF2ZSB0byByZWN1ciwgc2luY2Ug
d2UgaGF2ZSBydWxlcyBpbiBtZWRpYSBjb250cm9scyBsaWtlIHZpZGVvOjphOjpiLiBUaGlzIHNo
b3VsZCBub3QgYmUgYWxsb3dlZCwgYW5kCisgICAgICAgIC8vIHdlIHNob3VsZCByZW1vdmUgdGhp
cyByZWN1cnNpb24gb25jZSB0aG9zZSBydWxlcyBhcmUgZ29uZS4KKyAgICAgICAgc2Vjb25kQ29t
cG91bmQgPSBzcGxpdENvbXBvdW5kQXRJbXBsaWNpdFNoYWRvd0Nyb3NzaW5nQ29tYmluYXRvcihz
cGxpdEFmdGVyLT5yZWxlYXNlVGFnSGlzdG9yeSgpLCBjb250ZXh0KTsKKyAgICB9IGVsc2UKKyAg
ICAgICAgc2Vjb25kQ29tcG91bmQgPSBzcGxpdEFmdGVyLT5yZWxlYXNlVGFnSGlzdG9yeSgpOwor
CiAgICAgc2Vjb25kQ29tcG91bmQtPmFwcGVuZFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlNoYWRv
d0Rlc2NlbmRhbnQsIFdURk1vdmUoY29tcG91bmRTZWxlY3RvcikpOwogICAgIHJldHVybiBzZWNv
bmRDb21wb3VuZDsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380323</attachid>
            <date>2019-10-07 06:58:15 -0700</date>
            <delta_ts>2019-10-08 00:31:44 -0700</delta_ts>
            <desc>patch</desc>
            <filename>css-shadow-parts-placeholder-4.patch</filename>
            <type>text/plain</type>
            <size>11794</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwYmNkOTg2MDlkZS4uMWNlZGQ0YjE3ZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxOS0xMC0wNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0NTUyBTaGFkb3cgUGFydHNdIEludGVybmFsIHNoYWRvdyBwc2V1ZG8gZWxlbWVudHMgc2hvdWxk
IHdvcmsgd2l0aCA6OnBhcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMjYyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vdGUgdGhhdCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2hhZG93LXBhcnRzL2ludGVyYWN0aW9uLXdpdGgtcHNldWRvLWVsZW1lbnRzLmh0bWwgcGxh
Y2Vob2xkZXIgc3VidGVzdCBzdGlsbAorICAgICAgICB3b24ndCBwYXNzIGJlY2F1c2Ugd2Ugd2Ug
ZG9uJ3Qgc3VwcG9ydCBnZXRDb21wdXRlZFN0eWxlIGZvciBpbnRlcm5hbCBwc2V1ZG8gZWxlbWVu
dHMuIFZpc3VhbGx5IGl0IG5vdyB3b3JrIGZ1bGx5LgorCisgICAgICAgICogVGVzdEV4cGVjdGF0
aW9uczoKKworICAgICAgICBVbnNraXAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXNoYWRvdy1wYXJ0cy9pbnRlcmFjdGlvbi13aXRoLXBsYWNlaG9sZGVyLmh0bWwKKwog
MjAxOS0xMC0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFs
bG93IHBhZ2VzIHVzaW5nIEV2ZW50U291cmNlIHRvIGVudGVyIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDFhMDA3OGU4ODMzLi5lYmFjMWQxMGE0MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCkBAIC0zODI3LDcgKzM4MjcsNCBAQCBmYXN0L3RleHQvZGVzaWduLXN5c3Rl
bS11aS0xNi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTk2Njk4IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbG9hZGluZy9sYXp5bG9hZC9pbWFnZS1sb2Fk
aW5nLWxhenkudGVudGF0aXZlLmh0bWwKIHdlYmtpdC5vcmcvYi8xOTY2OTggaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9sb2FkaW5nL2xhenlsb2FkL2lmcmFtZS1sb2FkaW5nLWxhenku
dGVudGF0aXZlLmh0bWwKIAotIyBDU1MgU2hhZG93IFBhcnRzCi13ZWJraXQub3JnL2IvMTQ5NDQz
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaGFkb3ctcGFydHMvaW50
ZXJhY3Rpb24td2l0aC1wbGFjZWhvbGRlci5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi0KIHdl
YmtpdC5vcmcvYi8yMDI1MTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy8yZGNvbnRl
eHQvdGV4dC1zdHlsZXMvMmQudGV4dC5kcmF3LmJhc2VsaW5lLmlkZW9ncmFwaGljLmh0bWwgWyBT
a2lwIF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBmNjFhMTljM2JkNC4uMjE1NjI3MjU4NzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNCBAQAorMjAxOS0xMC0wNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0NTUyBTaGFkb3cgUGFydHNdIEludGVybmFsIHNoYWRvdyBwc2V1
ZG8gZWxlbWVudHMgc2hvdWxkIHdvcmsgd2l0aCA6OnBhcnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjYyMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlbGVjdG9ycyBsaWtlIDo6cGFydChmb28pOjpw
bGFjZWhvbGRlciBzaG91bGQgd29yay4KKworICAgICAgICBUaGlzIGludm9sdmVzIGhvcCBvdXQg
b2YgYSBVQSBzaGFkb3cgdHJlZSBhbmQgdGhlbiBmcm9tIGFuIGF1dGhvciBzaGFkb3cgdHJlZS4K
KworICAgICAgICAqIGNzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hBdXRob3JSdWxlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVz
KToKKworICAgICAgICBJZiB3ZSBhcmUgbWF0Y2hpbmcgYSBwc2V1ZG8gZWxlbWVudCBpbiBhIFVB
IHNoYWRvdyB0cmVlLCBzZWUgaWYgcGFydCBydWxlcyBjYW4gbWF0Y2ggaXMgdGhlIHN1cnJvdW5k
aW5nIHNjb3BlLgorCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0
Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVzRm9yU2NvcGUpOgorICAgICAgICAqIGNzcy9FbGVtZW50
UnVsZUNvbGxlY3Rvci5oOgorICAgICAgICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bGVTZXQ6OmFkZFJ1bGUpOgorCisgICAgICAgIFNvcnQgcnVsZXMgd2l0aCBib3Ro
IGludGVybmFsIHBzZXVkbyBlbGVtZW50IGFuZCA6OnBhcnQgdG8gdGhlIHBhcnQgYnVja2V0Lgor
CisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
ZWxlY3RvckNoZWNrZXI6Om1hdGNoUmVjdXJzaXZlbHkgY29uc3QpOgorICAgICAgICAqIGNzcy9w
YXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0
b3JQYXJzZXI6OnNwbGl0Q29tcG91bmRBdEltcGxpY2l0U2hhZG93Q3Jvc3NpbmdDb21iaW5hdG9y
KToKKworICAgICAgICBBbGxvdyBtdWx0aXBsZSBTaGFkb3dEZXNjZW5kYW50IHJlbGF0aW9ucyBm
b3IgOjpwYXJ0LgorCiAyMDE5LTEwLTA2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBOb2RlOjpyZWYvZGVyZWYgc2hvdWxkIGJlIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAppbmRleCAwYzJmNDYwYjkxZi4uODU5
OWY4NjcyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxl
Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNw
cApAQCAtMjAzLDkgKzIwMyw3IEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoQXV0
aG9yUnVsZXMoYm9vbCBpbmNsdWRlRW1wdHlSdWxlcykKIAogICAgIGlmIChlbGVtZW50KCkuaXNJ
blNoYWRvd1RyZWUoKSkgewogICAgICAgICBtYXRjaEF1dGhvclNoYWRvd1BzZXVkb0VsZW1lbnRS
dWxlcyhpbmNsdWRlRW1wdHlSdWxlcywgcnVsZVJhbmdlKTsKLQotICAgICAgICBpZiAoIWVsZW1l
bnQoKS5wYXJ0TmFtZXMoKS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBtYXRjaFBhcnRQc2V1ZG9F
bGVtZW50UnVsZXMoKmVsZW1lbnQoKS5jb250YWluaW5nU2hhZG93Um9vdCgpLCBpbmNsdWRlRW1w
dHlSdWxlcywgcnVsZVJhbmdlKTsKKyAgICAgICAgbWF0Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVz
KGluY2x1ZGVFbXB0eVJ1bGVzLCBydWxlUmFuZ2UpOwogICAgIH0KIAogICAgIHNvcnRBbmRUcmFu
c2Zlck1hdGNoZWRSdWxlcygpOwpAQCAtMjYzLDEyICsyNjEsMjIgQEAgdm9pZCBFbGVtZW50UnVs
ZUNvbGxlY3Rvcjo6bWF0Y2hTbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzKGJvb2wgaW5jbHVkZUVt
cHR5UnVsZXMKICAgICB9CiB9CiAKLXZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoUGFy
dFBzZXVkb0VsZW1lbnRSdWxlcyhjb25zdCBTaGFkb3dSb290JiBjb250YWluaW5nU2hhZG93Um9v
dCwgYm9vbCBpbmNsdWRlRW1wdHlSdWxlcywgU3R5bGVSZXNvbHZlcjo6UnVsZVJhbmdlJiBydWxl
UmFuZ2UpCit2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaFBhcnRQc2V1ZG9FbGVtZW50
UnVsZXMoYm9vbCBpbmNsdWRlRW1wdHlSdWxlcywgU3R5bGVSZXNvbHZlcjo6UnVsZVJhbmdlJiBy
dWxlUmFuZ2UpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKS5pc0luU2hhZG93VHJlZSgpKTsKLSAg
ICBBU1NFUlQoIWVsZW1lbnQoKS5wYXJ0TmFtZXMoKS5pc0VtcHR5KCkpOwogCi0gICAgYXV0byYg
c2hhZG93SG9zdCA9ICpjb250YWluaW5nU2hhZG93Um9vdC5ob3N0KCk7CisgICAgYm9vbCBpc1VB
U2hhZG93UHNldWRvRWxlbWVudCA9IGVsZW1lbnQoKS5jb250YWluaW5nU2hhZG93Um9vdCgpLT5t
b2RlKCkgPT0gU2hhZG93Um9vdE1vZGU6OlVzZXJBZ2VudCAmJiAhZWxlbWVudCgpLnNoYWRvd1Bz
ZXVkb0lkKCkuaXNOdWxsKCk7CisKKyAgICBhdXRvJiBwYXJ0TWF0Y2hpbmdFbGVtZW50ID0gaXNV
QVNoYWRvd1BzZXVkb0VsZW1lbnQgPyAqZWxlbWVudCgpLnNoYWRvd0hvc3QoKSA6IGVsZW1lbnQo
KTsKKyAgICBpZiAocGFydE1hdGNoaW5nRWxlbWVudC5wYXJ0TmFtZXMoKS5pc0VtcHR5KCkgfHwg
IXBhcnRNYXRjaGluZ0VsZW1lbnQuaXNJblNoYWRvd1RyZWUoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbWF0Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVzRm9yU2NvcGUoKnBhcnRNYXRjaGluZ0Vs
ZW1lbnQuY29udGFpbmluZ1NoYWRvd1Jvb3QoKSwgaW5jbHVkZUVtcHR5UnVsZXMsIHJ1bGVSYW5n
ZSk7Cit9CisKK3ZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoUGFydFBzZXVkb0VsZW1l
bnRSdWxlc0ZvclNjb3BlKGNvbnN0IFNoYWRvd1Jvb3QmIHNjb3BlU2hhZG93Um9vdCwgYm9vbCBp
bmNsdWRlRW1wdHlSdWxlcywgU3R5bGVSZXNvbHZlcjo6UnVsZVJhbmdlJiBydWxlUmFuZ2UpCit7
CisgICAgYXV0byYgc2hhZG93SG9zdCA9ICpzY29wZVNoYWRvd1Jvb3QuaG9zdCgpOwogICAgIHsK
ICAgICAgICAgU2V0Rm9yU2NvcGU8UmVmUHRyPGNvbnN0IEVsZW1lbnQ+PiBwYXJ0TWF0Y2hpbmdT
Y29wZShtX3NoYWRvd0hvc3RJblBhcnRSdWxlU2NvcGUsICZzaGFkb3dIb3N0KTsKIApAQCAtMjc4
LDExICsyODYsMTEgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hQYXJ0UHNldWRv
RWxlbWVudFJ1bGVzKGNvbnN0IFNoYWRvd1Jvb3QmIGNvbnRhaW4KICAgICB9CiAKICAgICAvLyBF
bGVtZW50IG1heSBiZSBleHBvc2VkIHRvIHN0eWxpbmcgZnJvbSBlbmNsb3Npbmcgc2NvcGVzIHZp
YSBleHBvcnRwYXJ0cyBhdHRyaWJ1dGVzLgotICAgIGlmIChjb250YWluaW5nU2hhZG93Um9vdC5w
YXJ0TWFwcGluZ3MoKS5pc0VtcHR5KCkpCisgICAgaWYgKHNjb3BlU2hhZG93Um9vdC5wYXJ0TWFw
cGluZ3MoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChhdXRvKiBwYXJl
bnRTaGFkb3dSb290ID0gc2hhZG93SG9zdC5jb250YWluaW5nU2hhZG93Um9vdCgpKQotICAgICAg
ICBtYXRjaFBhcnRQc2V1ZG9FbGVtZW50UnVsZXMoKnBhcmVudFNoYWRvd1Jvb3QsIGluY2x1ZGVF
bXB0eVJ1bGVzLCBydWxlUmFuZ2UpOworICAgIGlmIChhdXRvKiBwYXJlbnRTY29wZVNoYWRvd1Jv
b3QgPSBzaGFkb3dIb3N0LmNvbnRhaW5pbmdTaGFkb3dSb290KCkpCisgICAgICAgIG1hdGNoUGFy
dFBzZXVkb0VsZW1lbnRSdWxlc0ZvclNjb3BlKCpwYXJlbnRTY29wZVNoYWRvd1Jvb3QsIGluY2x1
ZGVFbXB0eVJ1bGVzLCBydWxlUmFuZ2UpOwogfQogCiB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9y
Ojpjb2xsZWN0TWF0Y2hpbmdTaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMoY29uc3QgTWF0Y2hSZXF1
ZXN0JiBtYXRjaFJlcXVlc3QsIFN0eWxlUmVzb2x2ZXI6OlJ1bGVSYW5nZSYgcnVsZVJhbmdlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaAppbmRleCBjYWFhMWQwOWIx
OC4uMTk4MjlkYjE0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVs
ZUNvbGxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rv
ci5oCkBAIC03NSw3ICs3NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtYXRjaEF1dGhvclNoYWRv
d1BzZXVkb0VsZW1lbnRSdWxlcyhib29sIGluY2x1ZGVFbXB0eVJ1bGVzLCBTdHlsZVJlc29sdmVy
OjpSdWxlUmFuZ2UmKTsKICAgICB2b2lkIG1hdGNoSG9zdFBzZXVkb0NsYXNzUnVsZXMoYm9vbCBp
bmNsdWRlRW1wdHlSdWxlcywgU3R5bGVSZXNvbHZlcjo6UnVsZVJhbmdlJik7CiAgICAgdm9pZCBt
YXRjaFNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMoYm9vbCBpbmNsdWRlRW1wdHlSdWxlcywgU3R5
bGVSZXNvbHZlcjo6UnVsZVJhbmdlJik7Ci0gICAgdm9pZCBtYXRjaFBhcnRQc2V1ZG9FbGVtZW50
UnVsZXMoY29uc3QgU2hhZG93Um9vdCYgY29udGFpbmluZ1NoYWRvd1Jvb3QsIGJvb2wgaW5jbHVk
ZUVtcHR5UnVsZXMsIFN0eWxlUmVzb2x2ZXI6OlJ1bGVSYW5nZSYpOworICAgIHZvaWQgbWF0Y2hQ
YXJ0UHNldWRvRWxlbWVudFJ1bGVzKGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMsIFN0eWxlUmVzb2x2
ZXI6OlJ1bGVSYW5nZSYpOworICAgIHZvaWQgbWF0Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVzRm9y
U2NvcGUoY29uc3QgU2hhZG93Um9vdCYgc2NvcGVTaGFkb3dSb290LCBib29sIGluY2x1ZGVFbXB0
eVJ1bGVzLCBTdHlsZVJlc29sdmVyOjpSdWxlUmFuZ2UmKTsKIAogICAgIHZvaWQgY29sbGVjdE1h
dGNoaW5nU2hhZG93UHNldWRvRWxlbWVudFJ1bGVzKGNvbnN0IE1hdGNoUmVxdWVzdCYsIFN0eWxl
UmVzb2x2ZXI6OlJ1bGVSYW5nZSYpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSdWxlU2V0OjpSdWxl
RGF0YVZlY3Rvcj4gY29sbGVjdFNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXNGb3JTbG90KGJvb2wg
aW5jbHVkZUVtcHR5UnVsZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVT
ZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCmluZGV4IGRjZDBlMGRlMWIz
Li5iNDJmOWUwZDg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcApAQCAtMzI4LDYgKzMyOCwxNCBA
QCB2b2lkIFJ1bGVTZXQ6OmFkZFJ1bGUoU3R5bGVSdWxlKiBydWxlLCB1bnNpZ25lZCBzZWxlY3Rv
ckluZGV4LCB1bnNpZ25lZCBzZWxlY3RvcgogICAgIGlmIChjdXN0b21Qc2V1ZG9FbGVtZW50U2Vs
ZWN0b3IpIHsKICAgICAgICAgLy8gRklYTUU6IEN1c3RvbSBwc2V1ZG8gZWxlbWVudHMgYXJlIGhh
bmRsZWQgYnkgdGhlIHNoYWRvdyB0cmVlJ3Mgc2VsZWN0b3IgZmlsdGVyLiBJdCBkb2Vzbid0IGtu
b3cgYWJvdXQgdGhlIG1haW4gRE9NLgogICAgICAgICBydWxlRGF0YS5kaXNhYmxlU2VsZWN0b3JG
aWx0ZXJpbmcoKTsKKworICAgICAgICBhdXRvKiBuZXh0U2VsZWN0b3IgPSBjdXN0b21Qc2V1ZG9F
bGVtZW50U2VsZWN0b3ItPnRhZ0hpc3RvcnkoKTsKKyAgICAgICAgaWYgKG5leHRTZWxlY3RvciAm
JiBuZXh0U2VsZWN0b3ItPm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQgJiYg
bmV4dFNlbGVjdG9yLT5wc2V1ZG9FbGVtZW50VHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9F
bGVtZW50UGFydCkgeworICAgICAgICAgICAgLy8gSGFuZGxlIHNlbGVjdG9ycyBsaWtlIDo6cGFy
dChmb28pOjpwbGFjZWhvbGRlciB3aXRoIHRoZSBwYXJ0IGNvZGVwYXRoLgorICAgICAgICAgICAg
bV9wYXJ0UHNldWRvRWxlbWVudFJ1bGVzLmFwcGVuZChydWxlRGF0YSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBhZGRUb1J1bGVTZXQoY3VzdG9tUHNldWRvRWxl
bWVudFNlbGVjdG9yLT52YWx1ZSgpLCBtX3NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcywgcnVsZURh
dGEpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVj
a2VyLmNwcAppbmRleCAwMmM3YjY5YjA3OC4uZGE5NGQyODQ4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC0zMjAsOCArMzIwLDEzIEBAIFNlbGVjdG9yQ2hlY2tl
cjo6TWF0Y2hSZXN1bHQgU2VsZWN0b3JDaGVja2VyOjptYXRjaFJlY3Vyc2l2ZWx5KENoZWNraW5n
Q29udGV4dCYKICAgICAgICAgICAgIG5leHRDb250ZXh0LnZpc2l0ZWRNYXRjaFR5cGUgPSBWaXNp
dGVkTWF0Y2hUeXBlOjpEaXNhYmxlZDsKIAogICAgICAgICBuZXh0Q29udGV4dC5wc2V1ZG9JZCA9
IFBzZXVkb0lkOjpOb25lOworCisgICAgICAgIGJvb2wgbmV4dElzUGFydCA9IGxlZnRTZWxlY3Rv
ci0+bWF0Y2goKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudCAmJiBsZWZ0U2VsZWN0b3It
PnBzZXVkb0VsZW1lbnRUeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRQYXJ0Owor
ICAgICAgICBib29sIGFsbG93TXVsdGlwbGVQc2V1ZG9FbGVtZW50cyA9IHJlbGF0aW9uID09IENT
U1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50ICYmIG5leHRJc1BhcnQ7CiAgICAgICAgIC8vIFZp
cnR1YWwgcHNldWRvIGVsZW1lbnQgaXMgb25seSBlZmZlY3RpdmUgaW4gdGhlIHJpZ2h0bW9zdCBm
cmFnbWVudC4KLSAgICAgICAgbmV4dENvbnRleHQucHNldWRvRWxlbWVudEVmZmVjdGl2ZSA9IGZh
bHNlOworICAgICAgICBpZiAoIWFsbG93TXVsdGlwbGVQc2V1ZG9FbGVtZW50cykKKyAgICAgICAg
ICAgIG5leHRDb250ZXh0LnBzZXVkb0VsZW1lbnRFZmZlY3RpdmUgPSBmYWxzZTsKKwogICAgICAg
ICBuZXh0Q29udGV4dC5pc01hdGNoRWxlbWVudCA9IGZhbHNlOwogICAgIH0KIApAQCAtNDMwLDcg
KzQzNSw4IEBAIFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hSZXN1bHQgU2VsZWN0b3JDaGVja2VyOjpt
YXRjaFJlY3Vyc2l2ZWx5KENoZWNraW5nQ29udGV4dCYKICAgICBjYXNlIENTU1NlbGVjdG9yOjpT
aGFkb3dEZXNjZW5kYW50OgogICAgICAgICB7CiAgICAgICAgICAgICAvLyBXaGVuIG1hdGNoaW5n
IGZvbzo6cGFydChiYXIpIHdlIHNraXAgZGlyZWN0bHkgdG8gdGhlIHRyZWUgb2YgZWxlbWVudCAn
Zm9vJy4KLSAgICAgICAgICAgIGF1dG8qIHNoYWRvd0hvc3QgPSBjaGVja2luZ0NvbnRleHQuc2hh
ZG93SG9zdEluUGFydFJ1bGVTY29wZSA/IGNoZWNraW5nQ29udGV4dC5zaGFkb3dIb3N0SW5QYXJ0
UnVsZVNjb3BlIDogY29udGV4dC5lbGVtZW50LT5zaGFkb3dIb3N0KCk7CisgICAgICAgICAgICBi
b29sIGlzUGFydCA9IGNvbnRleHQuc2VsZWN0b3ItPm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OlBz
ZXVkb0VsZW1lbnQgJiYgY29udGV4dC5zZWxlY3Rvci0+cHNldWRvRWxlbWVudFR5cGUoKSA9PSBD
U1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFBhcnQ7CisgICAgICAgICAgICBhdXRvKiBzaGFkb3dI
b3N0ID0gaXNQYXJ0ID8gY2hlY2tpbmdDb250ZXh0LnNoYWRvd0hvc3RJblBhcnRSdWxlU2NvcGUg
OiBjb250ZXh0LmVsZW1lbnQtPnNoYWRvd0hvc3QoKTsKICAgICAgICAgICAgIGlmICghc2hhZG93
SG9zdCkKICAgICAgICAgICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQ6OmZhaWxzKE1hdGNoOjpT
ZWxlY3RvckZhaWxzQ29tcGxldGVseSk7CiAgICAgICAgICAgICBuZXh0Q29udGV4dC5lbGVtZW50
ID0gc2hhZG93SG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
U2VsZWN0b3JQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3Rv
clBhcnNlci5jcHAKaW5kZXggMzE3MmQyNTkwNDkuLjU0OTViOTc2NTYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFyc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1NlbGVjdG9yUGFyc2VyLmNwcApAQCAtODY4LDEwICs4
NjgsMTggQEAgc3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPiBDU1NTZWxlY3RvclBh
cnNlcjo6c3BsaXRDb21wb3VuZEF0SW1wbGljaXRTaGEKICAgICBpZiAoIXNwbGl0QWZ0ZXIgfHwg
IXNwbGl0QWZ0ZXItPnRhZ0hpc3RvcnkoKSkKICAgICAgICAgcmV0dXJuIGNvbXBvdW5kU2VsZWN0
b3I7CiAKLSAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MTc0NwotICAgIC8vIFdlIGhhdmUgdG8gcmVjdXIsIHNpbmNlIHdlIGhhdmUgcnVsZXMg
aW4gbWVkaWEgY29udHJvbHMgbGlrZSB2aWRlbzo6YTo6Yi4gVGhpcyBzaG91bGQgbm90IGJlIGFs
bG93ZWQsIGFuZAotICAgIC8vIHdlIHNob3VsZCByZW1vdmUgdGhpcyByZWN1cnNpb24gb25jZSB0
aG9zZSBydWxlcyBhcmUgZ29uZS4KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0
b3I+IHNlY29uZENvbXBvdW5kID0gY29udGV4dC5tb2RlICE9IFVBU2hlZXRNb2RlID8gc3BsaXRB
ZnRlci0+cmVsZWFzZVRhZ0hpc3RvcnkoKSA6IHNwbGl0Q29tcG91bmRBdEltcGxpY2l0U2hhZG93
Q3Jvc3NpbmdDb21iaW5hdG9yKHNwbGl0QWZ0ZXItPnJlbGVhc2VUYWdIaXN0b3J5KCksIGNvbnRl
eHQpOworICAgIC8vIDo6cGFydCgpIGNvbWJpbmVzIHdpdGggb3RoZXIgcHNldWRvIGVsZW1lbnRz
LgorICAgIGJvb2wgaXNQYXJ0ID0gc3BsaXRBZnRlci0+dGFnSGlzdG9yeSgpLT5tYXRjaCgpID09
IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50ICYmIHNwbGl0QWZ0ZXItPnRhZ0hpc3RvcnkoKS0+
cHNldWRvRWxlbWVudFR5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFBhcnQ7CisK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHNlY29uZENvbXBvdW5kOwor
ICAgIGlmIChjb250ZXh0Lm1vZGUgPT0gVUFTaGVldE1vZGUgfHwgaXNQYXJ0KSB7CisgICAgICAg
IC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNzQ3
CisgICAgICAgIC8vIFdlIGhhdmUgdG8gcmVjdXIsIHNpbmNlIHdlIGhhdmUgcnVsZXMgaW4gbWVk
aWEgY29udHJvbHMgbGlrZSB2aWRlbzo6YTo6Yi4gVGhpcyBzaG91bGQgbm90IGJlIGFsbG93ZWQs
IGFuZAorICAgICAgICAvLyB3ZSBzaG91bGQgcmVtb3ZlIHRoaXMgcmVjdXJzaW9uIG9uY2UgdGhv
c2UgcnVsZXMgYXJlIGdvbmUuCisgICAgICAgIHNlY29uZENvbXBvdW5kID0gc3BsaXRDb21wb3Vu
ZEF0SW1wbGljaXRTaGFkb3dDcm9zc2luZ0NvbWJpbmF0b3Ioc3BsaXRBZnRlci0+cmVsZWFzZVRh
Z0hpc3RvcnkoKSwgY29udGV4dCk7CisgICAgfSBlbHNlCisgICAgICAgIHNlY29uZENvbXBvdW5k
ID0gc3BsaXRBZnRlci0+cmVsZWFzZVRhZ0hpc3RvcnkoKTsKKwogICAgIHNlY29uZENvbXBvdW5k
LT5hcHBlbmRUYWdIaXN0b3J5KENTU1NlbGVjdG9yOjpTaGFkb3dEZXNjZW5kYW50LCBXVEZNb3Zl
KGNvbXBvdW5kU2VsZWN0b3IpKTsKICAgICByZXR1cm4gc2Vjb25kQ29tcG91bmQ7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>