<?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>219265</bug_id>
          
          <creation_ts>2020-11-23 15:38:06 -0800</creation_ts>
          <short_desc>[LFC Display] Add support for painting box shadows</short_desc>
          <delta_ts>2020-11-27 09:06:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1709946</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-23 15:38:06 -0800</bug_when>
    <thetext>[LFC Display] Add support for painting box shadows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709947</commentid>
    <comment_count>1</comment_count>
      <attachid>414814</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-23 15:41:28 -0800</bug_when>
    <thetext>Created attachment 414814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710307</commentid>
    <comment_count>2</comment_count>
      <attachid>414814</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-11-27 08:45:54 -0800</bug_when>
    <thetext>Comment on attachment 414814
Patch

nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710314</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-27 09:05:32 -0800</bug_when>
    <thetext>Committed r270196: &lt;https://trac.webkit.org/changeset/270196&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 414814.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710315</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-27 09:06:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/71765910&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414814</attachid>
            <date>2020-11-23 15:41:28 -0800</date>
            <delta_ts>2020-11-27 09:05:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219265-20201123154128.patch</filename>
            <type>text/plain</type>
            <size>22244</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWY1MDdmM2M5YWQ2OGZi
M2E3Y2ZiZTQxMDcwZTkxNTRiMTg3MDFkYy4uNDAwNzE3NzUyZmFhYTM4MWVlMjQ2YzE3MjljZTU4
MzdlNDBkZThlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTExLTIzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtMRkMgRGlzcGxh
eV0gQWRkIHN1cHBvcnQgZm9yIHBhaW50aW5nIGJveCBzaGFkb3dzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyNjUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbG9uZSB0aGUgU2hhZG93RGF0YSBsaW5r
ZWQgbGlzdCBpbnRvIERpc3BsYXk6OlN0eWxlLCBmaXhpbmcgdXAgdGhlIGNvbG9yLAorICAgICAg
ICBhbmQgYWRkIGNvZGUgdG8gQm94RGVjb3JhdGlvblBhaW50ZXIgdG8gcGFpbnQgb3V0c2V0IGFu
ZCBpbnNldCBzaGFkb3dzLgorCisgICAgICAgIFRoZSBwaXhlbCBzbmFwcGluZyBpc24ndCBxdWl0
ZSByaWdodCB5ZXQ7IHdlIHJlYWxseSBuZWVkIHRvIHBpeGVsLXNuYXAgdGhlCisgICAgICAgIHJl
Y3QgdGhhdCByZXN1bHRzIGZyb20gdGhlIGJvcmRlci9wYWRkaW5nIGJveCB3aXRoIHNoYWRvdyBv
ZmZzZXQgYW5kIHNwcmVhZCBhcHBsaWVkLAorICAgICAgICBidXQgdGhhdCB3b3VsZCByZXF1aXJl
IHN0b3JpbmcgbW9yZSBzaGFkb3ctcmVsYXRlZCBkYXRhIGF0IHRyZWUgYnVpbGRpbmcgdGltZS4K
KworICAgICAgICBUaGUgYm94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKCkgY29k
ZSBwYXRoIGlzbid0IHN1cHBvcnRlZCB5ZXQuCisKKyAgICAgICAgKiBkaXNwbGF5L2Nzcy9EaXNw
bGF5Qm94RGVjb3JhdGlvblBhaW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6
Qm94RGVjb3JhdGlvblBhaW50ZXI6OkJveERlY29yYXRpb25QYWludGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXk6OkJveERlY29yYXRpb25QYWludGVyOjpwYWludEJveFNoYWRvdyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3hEZWNvcmF0aW9uUGFpbnRlcjo6aW5u
ZXJCb3JkZXJSb3VuZGVkUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpC
b3hEZWNvcmF0aW9uUGFpbnRlcjo6YmFja2dyb3VuZFJvdW5kZWRSZWN0QWRqdXN0ZWRGb3JCbGVl
ZEF2b2lkYW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpCb3hEZWNvcmF0
aW9uUGFpbnRlcjo6cGFpbnRCYWNrZ3JvdW5kQW5kQm9yZGVycyBjb25zdCk6CisgICAgICAgICog
ZGlzcGxheS9jc3MvRGlzcGxheUJveERlY29yYXRpb25QYWludGVyLmg6CisgICAgICAgICogZGlz
cGxheS9jc3MvRGlzcGxheVN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OmRl
ZXBDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlN0eWxlOjpTdHlsZSk6CisgICAg
ICAgICogZGlzcGxheS9jc3MvRGlzcGxheVN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5OjpTdHlsZTo6Ym94U2hhZG93IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9MYXlvdXRTaXplLmg6CisgICAgICAgIChXZWJDb3JlOjpyb3VuZFNpemVUb0RldmljZVBpeGVs
cyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1NoYWRvd0RhdGEuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNoYWRvd0RhdGE6OnNldENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0Rh
dGE6OnNldE5leHQpOgorCiAyMDIwLTExLTIxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFByb3BhZ2F0ZSB0aGUgJ3doZWVsRXZlbnRHZXN0dXJlc0Jl
Y29tZU5vbkJsb2NraW5nJyBzZXR0aW5nIHRvIHRoZSBTY3JvbGxpbmdUcmVlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5Qm94RGVjb3JhdGlvblBhaW50ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheUJveERlY29yYXRpb25QYWlu
dGVyLmNwcAppbmRleCAwN2Y4NTA1YjJlNTRhOGI5NDVmNTM3MmI3NTUyODBkNWEyMmEzNTJiLi43
ZmM3ZDg2YTA0YzIwMDk2OWNkMDdmNzA0N2UwYjU2MmE5YzFlMjJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5Qm94RGVjb3JhdGlvblBhaW50ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY3NzL0Rpc3BsYXlCb3hEZWNvcmF0aW9uUGFpbnRl
ci5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNp
bmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UG9pbnQuaCIKKyNpbmNsdWRlICJT
aGFkb3dEYXRhLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBEaXNwbGF5IHsK
QEAgLTEyMDYsNiArMTIwNywxNSBAQCB2b2lkIEJvcmRlclBhaW50ZXI6OnBhaW50Qm9yZGVycyhQ
YWludGluZ0NvbnRleHQmIHBhaW50aW5nQ29udGV4dCkgY29uc3QKICAgICAgICAgcGFpbnRCb3Jk
ZXJTaWRlcyhwYWludGluZ0NvbnRleHQsIG1fYm9yZGVyUmVjdCwgaW5uZXJCb3JkZXJSZWN0LCBp
bm5lckJvcmRlckJsZWVkQWRqdXN0bWVudCwgZWRnZXNUb0RyYXcsIGFudGlhbGlhcyk7CiB9CiAK
K0JveERlY29yYXRpb25QYWludGVyOjpCb3hEZWNvcmF0aW9uUGFpbnRlcihjb25zdCBCb3hNb2Rl
bEJveCYgYm94LCBQYWludGluZ0NvbnRleHQmIHBhaW50aW5nQ29udGV4dCwgYm9vbCBpbmNsdWRl
TGVmdEVkZ2UsIGJvb2wgaW5jbHVkZVJpZ2h0RWRnZSkKKyAgICA6IG1fYm94KGJveCkKKyAgICAs
IG1fYm9yZGVyUmVjdChjb21wdXRlQm9yZGVyUmVjdChib3gpKQorICAgICwgbV9ibGVlZEF2b2lk
YW5jZShkZXRlcm1pbmVCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UoYm94LCBwYWludGluZ0NvbnRl
eHQpKQorICAgICwgbV9pbmNsdWRlTGVmdEVkZ2UoaW5jbHVkZUxlZnRFZGdlKQorICAgICwgbV9p
bmNsdWRlUmlnaHRFZGdlKGluY2x1ZGVSaWdodEVkZ2UpCit7Cit9CisKIHZvaWQgQm94RGVjb3Jh
dGlvblBhaW50ZXI6OnBhaW50Qm9yZGVycyhQYWludGluZ0NvbnRleHQmIHBhaW50aW5nQ29udGV4
dCkgY29uc3QKIHsKICAgICBhdXRvKiBib3hEZWNvcmF0aW9uRGF0YSA9IG1fYm94LmJveERlY29y
YXRpb25EYXRhKCk7CkBAIC0xMjc4LDEzICsxMjg4LDE4NSBAQCB2b2lkIEJveERlY29yYXRpb25Q
YWludGVyOjpwYWludEZpbGxMYXllcihQYWludGluZ0NvbnRleHQmIHBhaW50aW5nQ29udGV4dCwg
Y29ucwogICAgIHBhaW50aW5nQ29udGV4dC5jb250ZXh0LmRyYXdUaWxlZEltYWdlKCppbWFnZSwg
Z2VvbWV0cnkuZGVzdFJlY3QoKSwgdG9GbG9hdFBvaW50KGdlb21ldHJ5LnJlbGF0aXZlUGhhc2Uo
KSksIGdlb21ldHJ5LnRpbGVTaXplKCksIGdlb21ldHJ5LnNwYWNlU2l6ZSgpLCBvcHRpb25zKTsK
IH0KIAotQm94RGVjb3JhdGlvblBhaW50ZXI6OkJveERlY29yYXRpb25QYWludGVyKGNvbnN0IEJv
eE1vZGVsQm94JiBib3gsIFBhaW50aW5nQ29udGV4dCYgcGFpbnRpbmdDb250ZXh0LCBib29sIGlu
Y2x1ZGVMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlUmlnaHRFZGdlKQotICAgIDogbV9ib3goYm94KQot
ICAgICwgbV9ib3JkZXJSZWN0KGNvbXB1dGVCb3JkZXJSZWN0KGJveCkpCi0gICAgLCBtX2JsZWVk
QXZvaWRhbmNlKGRldGVybWluZUJhY2tncm91bmRCbGVlZEF2b2lkYW5jZShib3gsIHBhaW50aW5n
Q29udGV4dCkpCi0gICAgLCBtX2luY2x1ZGVMZWZ0RWRnZShpbmNsdWRlTGVmdEVkZ2UpCi0gICAg
LCBtX2luY2x1ZGVSaWdodEVkZ2UoaW5jbHVkZVJpZ2h0RWRnZSkKK3ZvaWQgQm94RGVjb3JhdGlv
blBhaW50ZXI6OnBhaW50Qm94U2hhZG93KFBhaW50aW5nQ29udGV4dCYgcGFpbnRpbmdDb250ZXh0
LCBTaGFkb3dTdHlsZSBzaGFkb3dTdHlsZSkgY29uc3QKIHsKKyAgICBpZiAoIW1fYm94LnN0eWxl
KCkuYm94U2hhZG93KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gYm9yZGVyUmVjdCA9
IHNoYWRvd1N0eWxlID09IFNoYWRvd1N0eWxlOjpJbnNldCA/IGlubmVyQm9yZGVyUm91bmRlZFJl
Y3QoKSA6IGJvcmRlclJvdW5kZWRSZWN0KCk7CisgICAgYXV0byogYm94RGVjb3JhdGlvbkRhdGEg
PSBtX2JveC5ib3hEZWNvcmF0aW9uRGF0YSgpOworICAgIGJvb2wgaGFzQm9yZGVyUmFkaXVzID0g
Ym94RGVjb3JhdGlvbkRhdGEgJiYgYm94RGVjb3JhdGlvbkRhdGEtPmhhc0JvcmRlclJhZGl1cygp
OworCisgICAgYm9vbCBoYXNPcGFxdWVCYWNrZ3JvdW5kID0gbV9ib3guc3R5bGUoKS5iYWNrZ3Jv
dW5kQ29sb3IoKS5pc09wYXF1ZSgpOworCisgICAgYXV0byBwYWludE5vcm1hbFNoYWRvdyA9IFsm
XShjb25zdCBTaGFkb3dEYXRhJiBzaGFkb3cpIHsKKyAgICAgICAgLy8gRklYTUU6IFNuYXBwaW5n
IGhlcmUgaXNuJ3QgaWRlYWwuIEl0IHdvdWxkIGJlIGJldHRlciB0byBjb21wdXRlIGEgcmVjdCB3
aGljaCBpcyBib3JkZXIgcmVjdCArIG9mZnNldCArIHNwcmVhZCwgYW5kIHNuYXAgdGhhdCBhdCB0
cmVlIGJ1aWxkaW5nIHRpbWUuCisgICAgICAgIGF1dG8gc2hhZG93T2Zmc2V0ID0gcm91bmRTaXpl
VG9EZXZpY2VQaXhlbHMoeyBzaGFkb3cueCgpLCBzaGFkb3cueSgpIH0sIHBhaW50aW5nQ29udGV4
dC5kZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgIGZsb2F0IHNoYWRvd1BhaW50aW5nRXh0ZW50
ID0gY2VpbFRvRGV2aWNlUGl4ZWwoc2hhZG93LnBhaW50aW5nRXh0ZW50KCksIHBhaW50aW5nQ29u
dGV4dC5kZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgIGZsb2F0IHNoYWRvd1NwcmVhZCA9IHJv
dW5kVG9EZXZpY2VQaXhlbChzaGFkb3cuc3ByZWFkKCksIHBhaW50aW5nQ29udGV4dC5kZXZpY2VT
Y2FsZUZhY3Rvcik7CisgICAgICAgIGludCBzaGFkb3dSYWRpdXMgPSBzaGFkb3cucmFkaXVzKCk7
CisKKyAgICAgICAgYXV0byBmaWxsUmVjdCA9IGJvcmRlclJlY3Q7CisgICAgICAgIGZpbGxSZWN0
LmluZmxhdGUoc2hhZG93U3ByZWFkKTsKKyAgICAgICAgaWYgKGZpbGxSZWN0LmlzRW1wdHkoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvIHNoYWRvd1JlY3QgPSBib3JkZXJS
ZWN0LnJlY3QoKTsKKyAgICAgICAgc2hhZG93UmVjdC5pbmZsYXRlKHNoYWRvd1BhaW50aW5nRXh0
ZW50ICsgc2hhZG93U3ByZWFkKTsKKyAgICAgICAgc2hhZG93UmVjdC5tb3ZlKHNoYWRvd09mZnNl
dCk7CisKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKHBhaW50
aW5nQ29udGV4dC5jb250ZXh0KTsKKyAgICAgICAgcGFpbnRpbmdDb250ZXh0LmNvbnRleHQuY2xp
cChzaGFkb3dSZWN0KTsKKworICAgICAgICAvLyBNb3ZlIHRoZSBmaWxsIGp1c3Qgb3V0c2lkZSB0
aGUgY2xpcCwgYWRkaW5nIGF0IGxlYXN0IDEgcGl4ZWwgb2Ygc2VwYXJhdGlvbiBzbyB0aGF0IHRo
ZSBmaWxsIGRvZXMgbm90CisgICAgICAgIC8vIGJsZWVkIGluIChkdWUgdG8gYW50aWFsaWFzaW5n
KSBpZiB0aGUgY29udGV4dCBpcyB0cmFuc2Zvcm1lZC4KKyAgICAgICAgZmxvYXQgeE9mZnNldCA9
IHNoYWRvd1JlY3Qud2lkdGgoKSArIHN0ZDo6bWF4PGZsb2F0PigwLCBzaGFkb3dPZmZzZXQud2lk
dGgoKSkgKyBzaGFkb3dQYWludGluZ0V4dGVudCArIDIgKiBzaGFkb3dTcHJlYWQgKyAxLjBmOwor
ICAgICAgICBhdXRvIGV4dHJhT2Zmc2V0ID0gRmxvYXRTaXplIHsgc3RkOjpjZWlsKHhPZmZzZXQp
LCAwIH07CisgICAgICAgIHNoYWRvd09mZnNldCAtPSBleHRyYU9mZnNldDsKKyAgICAgICAgZmls
bFJlY3QubW92ZShleHRyYU9mZnNldCk7CisKKyAgICAgICAgYXV0byByZWN0VG9DbGlwT3V0ID0g
Ym9yZGVyUmVjdDsKKyAgICAgICAgYXV0byBhZGp1c3RlZEZpbGxSZWN0ID0gZmlsbFJlY3Q7CisK
KyAgICAgICAgYXV0byBzaGFkb3dSZWN0T3JpZ2luID0gZmlsbFJlY3QucmVjdCgpLmxvY2F0aW9u
KCkgKyBzaGFkb3dPZmZzZXQ7CisgICAgICAgIGF1dG8gYWRqdXN0ZWRTaGFkb3dPZmZzZXQgPSBz
aGFkb3dSZWN0T3JpZ2luIC0gYWRqdXN0ZWRGaWxsUmVjdC5yZWN0KCkubG9jYXRpb24oKTsKKwor
ICAgICAgICBpZiAoc2hhZG93LmlzV2Via2l0Qm94U2hhZG93KCkpCisgICAgICAgICAgICBwYWlu
dGluZ0NvbnRleHQuY29udGV4dC5zZXRMZWdhY3lTaGFkb3coYWRqdXN0ZWRTaGFkb3dPZmZzZXQs
IHNoYWRvd1JhZGl1cywgc2hhZG93LmNvbG9yKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBwYWludGluZ0NvbnRleHQuY29udGV4dC5zZXRTaGFkb3coYWRqdXN0ZWRTaGFkb3dPZmZzZXQs
IHNoYWRvd1JhZGl1cywgc2hhZG93LmNvbG9yKCkpOworCisgICAgICAgIGlmIChoYXNCb3JkZXJS
YWRpdXMpIHsKKyAgICAgICAgICAgIC8vIElmIHRoZSBib3ggaXMgb3BhcXVlLCBpdCBpcyB1bm5l
Y2Vzc2FyeSB0byBjbGlwIGl0IG91dC4gSG93ZXZlciwgZG9pbmcgc28gc2F2ZXMgdGltZQorICAg
ICAgICAgICAgLy8gd2hlbiBwYWludGluZyB0aGUgc2hhZG93LiBPbiB0aGUgb3RoZXIgaGFuZCwg
aXQgaW50cm9kdWNlcyBzdWJwaXhlbCBnYXBzIGFsb25nIHRoZQorICAgICAgICAgICAgLy8gY29y
bmVycy4gVGhvc2UgYXJlIGF2b2lkZWQgYnkgaW5zZXR0aW5nIHRoZSBjbGlwcGluZyBwYXRoIGJ5
IG9uZSBwaXhlbC4KKyAgICAgICAgICAgIGlmIChoYXNPcGFxdWVCYWNrZ3JvdW5kKQorICAgICAg
ICAgICAgICAgIHJlY3RUb0NsaXBPdXQuaW5mbGF0ZVdpdGhSYWRpaSgtMS4wZik7CisKKyAgICAg
ICAgICAgIGlmICghcmVjdFRvQ2xpcE91dC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgcGFp
bnRpbmdDb250ZXh0LmNvbnRleHQuY2xpcE91dFJvdW5kZWRSZWN0KHJlY3RUb0NsaXBPdXQpOwor
CisgICAgICAgICAgICBhdXRvIGluZmx1ZW5jZVJlY3QgPSBGbG9hdFJvdW5kZWRSZWN0IHsgc2hh
ZG93UmVjdCwgYm9yZGVyUmVjdC5yYWRpaSgpIH07CisgICAgICAgICAgICBpbmZsdWVuY2VSZWN0
LmV4cGFuZFJhZGlpKDIgKiBzaGFkb3dQYWludGluZ0V4dGVudCArIHNoYWRvd1NwcmVhZCk7CisK
KyAgICAgICAgICAgIC8vIEZJWE1FOiBPcHRpbWl6ZSBmb3IgY2xpcHBlZC1vdXQgY29ybmVycwor
ICAgICAgICAgICAgYWRqdXN0ZWRGaWxsUmVjdC5leHBhbmRSYWRpaShzaGFkb3dTcHJlYWQpOwor
ICAgICAgICAgICAgaWYgKCFhZGp1c3RlZEZpbGxSZWN0LmlzUmVuZGVyYWJsZSgpKQorICAgICAg
ICAgICAgICAgIGFkanVzdGVkRmlsbFJlY3QuYWRqdXN0UmFkaWkoKTsKKyAgICAgICAgICAgIHBh
aW50aW5nQ29udGV4dC5jb250ZXh0LmZpbGxSb3VuZGVkUmVjdChhZGp1c3RlZEZpbGxSZWN0LCBD
b2xvcjo6YmxhY2spOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gSWYgdGhlIGJv
eCBpcyBvcGFxdWUsIGl0IGlzIHVubmVjZXNzYXJ5IHRvIGNsaXAgaXQgb3V0LiBIb3dldmVyLCBk
b2luZyBzbyBzYXZlcyB0aW1lCisgICAgICAgICAgICAvLyB3aGVuIHBhaW50aW5nIHRoZSBzaGFk
b3cuIE9uIHRoZSBvdGhlciBoYW5kLCBpdCBpbnRyb2R1Y2VzIHN1YnBpeGVsIGdhcHMgYWxvbmcg
dGhlCisgICAgICAgICAgICAvLyBlZGdlcyBpZiB0aGV5IGFyZSBub3QgcGl4ZWwtYWxpZ25lZC4g
VGhvc2UgYXJlIGF2b2lkZWQgYnkgaW5zZXR0aW5nIHRoZSBjbGlwcGluZyBwYXRoCisgICAgICAg
ICAgICAvLyBieSBvbmUgcGl4ZWwuCisgICAgICAgICAgICBpZiAoaGFzT3BhcXVlQmFja2dyb3Vu
ZCkgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGUgZnVuY3Rpb24gdG8gZGVjaWRlIG9u
IHRoZSBwb2xpY3kgYmFzZWQgb24gdGhlIHRyYW5zZm9ybSBzaG91bGQgYmUgYSBuYW1lZCBmdW5j
dGlvbi4KKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogSXQncyBub3QgY2xlYXIgaWYgdGhpcyBj
aGVjayBpcyByaWdodC4gV2hhdCBhYm91dCBpbnRlZ3JhbCBzY2FsZSBmYWN0b3JzPworICAgICAg
ICAgICAgICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBwYWludGluZ0NvbnRleHQuY29u
dGV4dC5nZXRDVE0oKTsKKyAgICAgICAgICAgICAgICBpZiAodHJhbnNmb3JtLmEoKSAhPSAxIHx8
ICh0cmFuc2Zvcm0uZCgpICE9IDEgJiYgdHJhbnNmb3JtLmQoKSAhPSAtMSkgfHwgdHJhbnNmb3Jt
LmIoKSB8fCB0cmFuc2Zvcm0uYygpKQorICAgICAgICAgICAgICAgICAgICByZWN0VG9DbGlwT3V0
LmluZmxhdGUoLTEuMGYpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIXJlY3RU
b0NsaXBPdXQuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHBhaW50aW5nQ29udGV4dC5jb250
ZXh0LmNsaXBPdXQocmVjdFRvQ2xpcE91dC5yZWN0KCkpOworCisgICAgICAgICAgICBwYWludGlu
Z0NvbnRleHQuY29udGV4dC5maWxsUmVjdChhZGp1c3RlZEZpbGxSZWN0LnJlY3QoKSwgQ29sb3I6
OmJsYWNrKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBhdXRvIHBhaW50SW5zZXRTaGFkb3cg
PSBbJl0oY29uc3QgU2hhZG93RGF0YSYgc2hhZG93KSB7CisgICAgICAgIGF1dG8gc2hhZG93T2Zm
c2V0ID0gcm91bmRTaXplVG9EZXZpY2VQaXhlbHMoeyBzaGFkb3cueCgpLCBzaGFkb3cueSgpIH0s
IHBhaW50aW5nQ29udGV4dC5kZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgIGZsb2F0IHNoYWRv
d1BhaW50aW5nRXh0ZW50ID0gY2VpbFRvRGV2aWNlUGl4ZWwoc2hhZG93LnBhaW50aW5nRXh0ZW50
KCksIHBhaW50aW5nQ29udGV4dC5kZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgIGZsb2F0IHNo
YWRvd1NwcmVhZCA9IHJvdW5kVG9EZXZpY2VQaXhlbChzaGFkb3cuc3ByZWFkKCksIHBhaW50aW5n
Q29udGV4dC5kZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgIGludCBzaGFkb3dSYWRpdXMgPSBz
aGFkb3cucmFkaXVzKCk7CisKKyAgICAgICAgYXV0byBob2xlUmVjdCA9IGJvcmRlclJlY3QucmVj
dCgpOworICAgICAgICBob2xlUmVjdC5pbmZsYXRlKC1zaGFkb3dTcHJlYWQpOworCisgICAgICAg
IGlmICghbV9pbmNsdWRlTGVmdEVkZ2UpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBOZWVkIHRv
IHRha2Ugd3JpdGluZyBtb2RlIGludG8gYWNjb3VudC4KKyAgICAgICAgICAgIGhvbGVSZWN0LnNo
aWZ0WEVkZ2VCeSgtKHN0ZDo6bWF4PGZsb2F0PihzaGFkb3dPZmZzZXQud2lkdGgoKSwgMCkgKyBz
aGFkb3dQYWludGluZ0V4dGVudCArIHNoYWRvd1NwcmVhZCkpOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKCFtX2luY2x1ZGVSaWdodEVkZ2UpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBOZWVk
IHRvIHRha2Ugd3JpdGluZyBtb2RlIGludG8gYWNjb3VudC4KKyAgICAgICAgICAgIGhvbGVSZWN0
LnNldFdpZHRoKGhvbGVSZWN0LndpZHRoKCkgLSBzdGQ6Om1pbjxmbG9hdD4oc2hhZG93T2Zmc2V0
LndpZHRoKCksIDApICsgc2hhZG93UGFpbnRpbmdFeHRlbnQgKyBzaGFkb3dTcHJlYWQpOworICAg
ICAgICB9CisKKyAgICAgICAgYXV0byByb3VuZGVkSG9sZVJlY3QgPSBGbG9hdFJvdW5kZWRSZWN0
IHsgaG9sZVJlY3QsIGJvcmRlclJlY3QucmFkaWkoKSB9OworICAgICAgICBpZiAoc2hhZG93U3By
ZWFkICYmIHJvdW5kZWRIb2xlUmVjdC5pc1JvdW5kZWQoKSkgeworICAgICAgICAgICAgYXV0byBy
b3VuZGVkUmVjdENvcnJlY3RpbmdGb3JTcHJlYWQgPSBbJl0oKSB7CisgICAgICAgICAgICAgICAg
Ym9vbCBob3Jpem9udGFsID0gdHJ1ZTsgLy8gRklYTUU6IEhhbmRsZSB3cml0aW5nIG1vZGVzLgor
ICAgICAgICAgICAgICAgIGF1dG8gYm9yZGVyV2lkdGggPSBib3JkZXJXaWR0aHMoYm94RGVjb3Jh
dGlvbkRhdGEtPmJvcmRlckVkZ2VzKCkpOworCisgICAgICAgICAgICAgICAgZmxvYXQgbGVmdFdp
ZHRoIHsgKCFob3Jpem9udGFsIHx8IG1faW5jbHVkZUxlZnRFZGdlKSA/IGJvcmRlcldpZHRoLmxl
ZnQoKSArIHNoYWRvd1NwcmVhZCA6IDAgfTsKKyAgICAgICAgICAgICAgICBmbG9hdCByaWdodFdp
ZHRoIHsgKCFob3Jpem9udGFsIHx8IG1faW5jbHVkZVJpZ2h0RWRnZSkgPyBib3JkZXJXaWR0aC5y
aWdodCgpICsgc2hhZG93U3ByZWFkIDogMCB9OworICAgICAgICAgICAgICAgIGZsb2F0IHRvcFdp
ZHRoIHsgKGhvcml6b250YWwgfHwgbV9pbmNsdWRlTGVmdEVkZ2UpID8gYm9yZGVyV2lkdGgudG9w
KCkgKyBzaGFkb3dTcHJlYWQgOiAwIH07CisgICAgICAgICAgICAgICAgZmxvYXQgYm90dG9tV2lk
dGggeyAoaG9yaXpvbnRhbCB8fCBtX2luY2x1ZGVSaWdodEVkZ2UpID8gYm9yZGVyV2lkdGguYm90
dG9tKCkgKyBzaGFkb3dTcHJlYWQgOiAwIH07CisKKyAgICAgICAgICAgICAgICByZXR1cm4gcm91
bmRlZEluc2V0Qm9yZGVyRm9yUmVjdChtX2JvcmRlclJlY3QucmVjdCgpLCBtX2JvcmRlclJlY3Qu
cmFkaWkoKSwgeyB0b3BXaWR0aCwgcmlnaHRXaWR0aCwgYm90dG9tV2lkdGgsIGxlZnRXaWR0aCB9
LCBtX2luY2x1ZGVMZWZ0RWRnZSwgbV9pbmNsdWRlUmlnaHRFZGdlKTsKKyAgICAgICAgICAgIH0o
KTsKKyAgICAgICAgICAgIHJvdW5kZWRIb2xlUmVjdC5zZXRSYWRpaShyb3VuZGVkUmVjdENvcnJl
Y3RpbmdGb3JTcHJlYWQucmFkaWkoKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAocm91bmRl
ZEhvbGVSZWN0LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgaWYgKGhhc0JvcmRlclJhZGl1cykK
KyAgICAgICAgICAgICAgICBwYWludGluZ0NvbnRleHQuY29udGV4dC5maWxsUm91bmRlZFJlY3Qo
Ym9yZGVyUmVjdCwgc2hhZG93LmNvbG9yKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHBhaW50aW5nQ29udGV4dC5jb250ZXh0LmZpbGxSZWN0KGJvcmRlclJlY3QucmVjdCgp
LCBzaGFkb3cuY29sb3IoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBhdXRvIGFyZWFDYXN0aW5nU2hhZG93SW5Ib2xlID0gW10oY29uc3QgRmxvYXRSZWN0JiBo
b2xlUmVjdCwgZmxvYXQgc2hhZG93RXh0ZW50LCBmbG9hdCBzaGFkb3dTcHJlYWQsIEZsb2F0U2l6
ZSBzaGFkb3dPZmZzZXQpIHsKKyAgICAgICAgICAgIGF1dG8gYm91bmRzKGhvbGVSZWN0KTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgYm91bmRzLmluZmxhdGUoc2hhZG93RXh0ZW50KTsKKwor
ICAgICAgICAgICAgaWYgKHNoYWRvd1NwcmVhZCA8IDApCisgICAgICAgICAgICAgICAgYm91bmRz
LmluZmxhdGUoLXNoYWRvd1NwcmVhZCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGF1dG8g
b2Zmc2V0Qm91bmRzID0gYm91bmRzOworICAgICAgICAgICAgb2Zmc2V0Qm91bmRzLm1vdmUoLXNo
YWRvd09mZnNldCk7CisgICAgICAgICAgICByZXR1cm4gdW5pb25SZWN0KGJvdW5kcywgb2Zmc2V0
Qm91bmRzKTsKKyAgICAgICAgfTsKKworICAgICAgICBDb2xvciBmaWxsQ29sb3IgPSBzaGFkb3cu
Y29sb3IoKS5vcGFxdWVDb2xvcigpOworICAgICAgICBhdXRvIHNoYWRvd0Nhc3RpbmdSZWN0ID0g
YXJlYUNhc3RpbmdTaGFkb3dJbkhvbGUoYm9yZGVyUmVjdC5yZWN0KCksIHNoYWRvd1BhaW50aW5n
RXh0ZW50LCBzaGFkb3dTcHJlYWQsIHNoYWRvd09mZnNldCk7CisKKyAgICAgICAgR3JhcGhpY3ND
b250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKHBhaW50aW5nQ29udGV4dC5jb250ZXh0KTsKKyAg
ICAgICAgaWYgKGhhc0JvcmRlclJhZGl1cykKKyAgICAgICAgICAgIHBhaW50aW5nQ29udGV4dC5j
b250ZXh0LmNsaXBSb3VuZGVkUmVjdChib3JkZXJSZWN0KTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgcGFpbnRpbmdDb250ZXh0LmNvbnRleHQuY2xpcChib3JkZXJSZWN0LnJlY3QoKSk7CisK
KyAgICAgICAgZmxvYXQgeE9mZnNldCA9IHNoYWRvd0Nhc3RpbmdSZWN0LndpZHRoKCkgKyBzdGQ6
Om1heDxmbG9hdD4oMCwgc2hhZG93T2Zmc2V0LndpZHRoKCkpICsgc2hhZG93UGFpbnRpbmdFeHRl
bnQgLSAyICogc2hhZG93U3ByZWFkICsgMS4wZjsKKyAgICAgICAgYXV0byBleHRyYU9mZnNldCA9
IEZsb2F0U2l6ZSB7IHN0ZDo6Y2VpbCh4T2Zmc2V0KSwgMCB9OworCisgICAgICAgIHBhaW50aW5n
Q29udGV4dC5jb250ZXh0LnRyYW5zbGF0ZShleHRyYU9mZnNldCk7CisgICAgICAgIHNoYWRvd09m
ZnNldCAtPSBleHRyYU9mZnNldDsKKworICAgICAgICBpZiAoc2hhZG93LmlzV2Via2l0Qm94U2hh
ZG93KCkpCisgICAgICAgICAgICBwYWludGluZ0NvbnRleHQuY29udGV4dC5zZXRMZWdhY3lTaGFk
b3coc2hhZG93T2Zmc2V0LCBzaGFkb3dSYWRpdXMsIHNoYWRvdy5jb2xvcigpKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgcGFpbnRpbmdDb250ZXh0LmNvbnRleHQuc2V0U2hhZG93KHNoYWRv
d09mZnNldCwgc2hhZG93UmFkaXVzLCBzaGFkb3cuY29sb3IoKSk7CisKKyAgICAgICAgcGFpbnRp
bmdDb250ZXh0LmNvbnRleHQuZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUoc2hhZG93Q2FzdGluZ1Jl
Y3QsIHJvdW5kZWRIb2xlUmVjdCwgZmlsbENvbG9yKTsKKyAgICB9OworCisKKyAgICBmb3IgKGF1
dG8qIHNoYWRvdyA9IG1fYm94LnN0eWxlKCkuYm94U2hhZG93KCk7IHNoYWRvdzsgc2hhZG93ID0g
c2hhZG93LT5uZXh0KCkpIHsKKyAgICAgICAgaWYgKHNoYWRvdy0+c3R5bGUoKSAhPSBzaGFkb3dT
dHlsZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIExheW91dFNpemUgc2hhZG93
T2Zmc2V0KHNoYWRvdy0+eCgpLCBzaGFkb3ctPnkoKSk7CisgICAgICAgIGlmIChzaGFkb3dPZmZz
ZXQuaXNaZXJvKCkgJiYgIXNoYWRvdy0+cmFkaXVzKCkgJiYgIXNoYWRvdy0+c3ByZWFkKCkpCisg
ICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoc2hhZG93LT5zdHlsZSgpID09IFNo
YWRvd1N0eWxlOjpOb3JtYWwpCisgICAgICAgICAgICBwYWludE5vcm1hbFNoYWRvdygqc2hhZG93
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcGFpbnRJbnNldFNoYWRvdygqc2hhZG93KTsK
KyAgICB9CiB9CiAKIEZsb2F0Um91bmRlZFJlY3QgQm94RGVjb3JhdGlvblBhaW50ZXI6OmNvbXB1
dGVCb3JkZXJSZWN0KGNvbnN0IEJveE1vZGVsQm94JiBib3gpCkBAIC0xMzE4LDYgKzE1MDAsMTQg
QEAgdm9pZCBCb3hEZWNvcmF0aW9uUGFpbnRlcjo6cGFpbnRCYWNrZ3JvdW5kSW1hZ2VzKFBhaW50
aW5nQ29udGV4dCYgcGFpbnRpbmdDb250ZXgKICAgICB9CiB9CiAKK0Zsb2F0Um91bmRlZFJlY3Qg
Qm94RGVjb3JhdGlvblBhaW50ZXI6OmlubmVyQm9yZGVyUm91bmRlZFJlY3QoKSBjb25zdAorewor
ICAgIGlmIChhdXRvKiBib3hEZWNvcmF0aW9uRGF0YSA9IG1fYm94LmJveERlY29yYXRpb25EYXRh
KCkpCisgICAgICAgIHJldHVybiByb3VuZGVkSW5zZXRCb3JkZXJGb3JSZWN0KG1fYm9yZGVyUmVj
dC5yZWN0KCksIG1fYm9yZGVyUmVjdC5yYWRpaSgpLCBib3JkZXJXaWR0aHMoYm94RGVjb3JhdGlv
bkRhdGEtPmJvcmRlckVkZ2VzKCkpLCBtX2luY2x1ZGVMZWZ0RWRnZSwgbV9pbmNsdWRlUmlnaHRF
ZGdlKTsKKworICAgIHJldHVybiBib3JkZXJSb3VuZGVkUmVjdCgpOworfQorCiBGbG9hdFJvdW5k
ZWRSZWN0IEJveERlY29yYXRpb25QYWludGVyOjpiYWNrZ3JvdW5kUm91bmRlZFJlY3RBZGp1c3Rl
ZEZvckJsZWVkQXZvaWRhbmNlKGNvbnN0IFBhaW50aW5nQ29udGV4dCYgcGFpbnRpbmdDb250ZXh0
KSBjb25zdAogewogICAgIGlmIChtX2JsZWVkQXZvaWRhbmNlID09IEJhY2tncm91bmRCbGVlZEF2
b2lkYW5jZTo6U2hyaW5rQmFja2dyb3VuZCkgewpAQCAtMTMyNSwxMSArMTUxNSw4IEBAIEZsb2F0
Um91bmRlZFJlY3QgQm94RGVjb3JhdGlvblBhaW50ZXI6OmJhY2tncm91bmRSb3VuZGVkUmVjdEFk
anVzdGVkRm9yQmxlZWRBdm9pCiAgICAgICAgIHJldHVybiByb3VuZGVkUmVjdFdpdGhJbmNsdWRl
ZFJhZGlpKHNocmlua1JlY3RCeU9uZURldmljZVBpeGVsKHBhaW50aW5nQ29udGV4dCwgbV9ib3Jk
ZXJSZWN0LnJlY3QoKSksIG1fYm9yZGVyUmVjdC5yYWRpaSgpLCBtX2luY2x1ZGVMZWZ0RWRnZSwg
bV9pbmNsdWRlUmlnaHRFZGdlKTsKICAgICB9CiAKLSAgICBpZiAobV9ibGVlZEF2b2lkYW5jZSA9
PSBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2U6OkJhY2tncm91bmRPdmVyQm9yZGVyKSB7Ci0gICAg
ICAgIGF1dG8qIGJveERlY29yYXRpb25EYXRhID0gbV9ib3guYm94RGVjb3JhdGlvbkRhdGEoKTsK
LSAgICAgICAgQVNTRVJUKGJveERlY29yYXRpb25EYXRhKTsKLSAgICAgICAgcmV0dXJuIHJvdW5k
ZWRJbnNldEJvcmRlckZvclJlY3QobV9ib3JkZXJSZWN0LnJlY3QoKSwgbV9ib3JkZXJSZWN0LnJh
ZGlpKCksIGJvcmRlcldpZHRocyhib3hEZWNvcmF0aW9uRGF0YS0+Ym9yZGVyRWRnZXMoKSksIG1f
aW5jbHVkZUxlZnRFZGdlLCBtX2luY2x1ZGVSaWdodEVkZ2UpOwotICAgIH0KKyAgICBpZiAobV9i
bGVlZEF2b2lkYW5jZSA9PSBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2U6OkJhY2tncm91bmRPdmVy
Qm9yZGVyKQorICAgICAgICByZXR1cm4gaW5uZXJCb3JkZXJSb3VuZGVkUmVjdCgpOwogCiAgICAg
cmV0dXJuIHJvdW5kZWRSZWN0V2l0aEluY2x1ZGVkUmFkaWkobV9ib3JkZXJSZWN0LnJlY3QoKSwg
bV9ib3JkZXJSZWN0LnJhZGlpKCksIG1faW5jbHVkZUxlZnRFZGdlLCBtX2luY2x1ZGVSaWdodEVk
Z2UpOwogfQpAQCAtMTM5MSwxNyArMTU3OCwyMSBAQCB2b2lkIEJveERlY29yYXRpb25QYWludGVy
OjpwYWludEJhY2tncm91bmRBbmRCb3JkZXJzKFBhaW50aW5nQ29udGV4dCYgcGFpbnRpbmdDbwog
ICAgIAogICAgIHN3aXRjaCAobV9ibGVlZEF2b2lkYW5jZSkgewogICAgIGNhc2UgQmFja2dyb3Vu
ZEJsZWVkQXZvaWRhbmNlOjpCYWNrZ3JvdW5kT3ZlckJvcmRlcjoKKyAgICAgICAgcGFpbnRCb3hT
aGFkb3cocGFpbnRpbmdDb250ZXh0LCBTaGFkb3dTdHlsZTo6Tm9ybWFsKTsKICAgICAgICAgcGFp
bnRCb3JkZXJzKHBhaW50aW5nQ29udGV4dCk7CiAgICAgICAgIHBhaW50QmFja2dyb3VuZChwYWlu
dGluZ0NvbnRleHQpOworICAgICAgICBwYWludEJveFNoYWRvdyhwYWludGluZ0NvbnRleHQsIFNo
YWRvd1N0eWxlOjpJbnNldCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBCYWNrZ3JvdW5k
QmxlZWRBdm9pZGFuY2U6OlVzZVRyYW5zcGFyZW5jeUxheWVyOiB7CisgICAgICAgIHBhaW50Qm94
U2hhZG93KHBhaW50aW5nQ29udGV4dCwgU2hhZG93U3R5bGU6Ok5vcm1hbCk7CiAgICAgICAgIEdy
YXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihwYWludGluZ0NvbnRleHQuY29udGV4
dCk7CiAgICAgICAgIGF1dG8gb3V0ZXJCb3JkZXIgPSBib3JkZXJSb3VuZGVkUmVjdCgpOwogICAg
ICAgICBwYWludGluZ0NvbnRleHQuY29udGV4dC5jbGlwUm91bmRlZFJlY3Qob3V0ZXJCb3JkZXIp
OwogICAgICAgICBwYWludGluZ0NvbnRleHQuY29udGV4dC5iZWdpblRyYW5zcGFyZW5jeUxheWVy
KDEpOwogCiAgICAgICAgIHBhaW50QmFja2dyb3VuZChwYWludGluZ0NvbnRleHQpOworICAgICAg
ICBwYWludEJveFNoYWRvdyhwYWludGluZ0NvbnRleHQsIFNoYWRvd1N0eWxlOjpJbnNldCk7CiAg
ICAgICAgIHBhaW50Qm9yZGVycyhwYWludGluZ0NvbnRleHQpOwogCiAgICAgICAgIHBhaW50aW5n
Q29udGV4dC5jb250ZXh0LmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CkBAIC0xNDEwLDcgKzE2MDEs
OSBAQCB2b2lkIEJveERlY29yYXRpb25QYWludGVyOjpwYWludEJhY2tncm91bmRBbmRCb3JkZXJz
KFBhaW50aW5nQ29udGV4dCYgcGFpbnRpbmdDbwogICAgIAogICAgIGNhc2UgQmFja2dyb3VuZEJs
ZWVkQXZvaWRhbmNlOjpTaHJpbmtCYWNrZ3JvdW5kOgogICAgIGNhc2UgQmFja2dyb3VuZEJsZWVk
QXZvaWRhbmNlOjpOb25lOgorICAgICAgICBwYWludEJveFNoYWRvdyhwYWludGluZ0NvbnRleHQs
IFNoYWRvd1N0eWxlOjpOb3JtYWwpOwogICAgICAgICBwYWludEJhY2tncm91bmQocGFpbnRpbmdD
b250ZXh0KTsKKyAgICAgICAgcGFpbnRCb3hTaGFkb3cocGFpbnRpbmdDb250ZXh0LCBTaGFkb3dT
dHlsZTo6SW5zZXQpOwogICAgICAgICBwYWludEJvcmRlcnMocGFpbnRpbmdDb250ZXh0KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZGlzcGxheS9j
c3MvRGlzcGxheUJveERlY29yYXRpb25QYWludGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5
L2Nzcy9EaXNwbGF5Qm94RGVjb3JhdGlvblBhaW50ZXIuaAppbmRleCBkZTI5NjUzZWY4YzdjOGM5
ZDAzMTc3YjljZjFlZmQ5ZWYxOWMyYWUyLi43ZDU2ZDI4MmY3Nzc5MjE5MTQ1MWIzMmFmODc3YzRk
NmI4YmFiODJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5
Qm94RGVjb3JhdGlvblBhaW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9E
aXNwbGF5Qm94RGVjb3JhdGlvblBhaW50ZXIuaApAQCAtMzMsMTUgKzMzLDE1IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRmlsbExheWVyOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0Owor
ZW51bSBjbGFzcyBTaGFkb3dTdHlsZSA6IHVpbnQ4X3Q7CiAKIG5hbWVzcGFjZSBEaXNwbGF5IHsK
IAogY2xhc3MgQm94TW9kZWxCb3g7CiBjbGFzcyBGaWxsTGF5ZXJJbWFnZUdlb21ldHJ5Owogc3Ry
dWN0IFBhaW50aW5nQ29udGV4dDsKLWVudW0gY2xhc3MgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNl
OwogCi1lbnVtIGNsYXNzIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSB7CitlbnVtIGNsYXNzIEJh
Y2tncm91bmRCbGVlZEF2b2lkYW5jZSA6IHVpbnQ4X3QgewogICAgIE5vbmUsCiAgICAgU2hyaW5r
QmFja2dyb3VuZCwKICAgICBVc2VUcmFuc3BhcmVuY3lMYXllciwKQEAgLTYyLDEyICs2MiwxNCBA
QCBwcml2YXRlOgogICAgIHZvaWQgY29tcHV0ZUJvcmRlclJlY3QoKTsKIAogICAgIHZvaWQgcGFp
bnRCb3JkZXJzKFBhaW50aW5nQ29udGV4dCYpIGNvbnN0OworICAgIHZvaWQgcGFpbnRCb3hTaGFk
b3coUGFpbnRpbmdDb250ZXh0JiwgU2hhZG93U3R5bGUpIGNvbnN0OwogICAgIHZvaWQgcGFpbnRC
YWNrZ3JvdW5kKFBhaW50aW5nQ29udGV4dCYpIGNvbnN0OwogICAgIHZvaWQgcGFpbnRCYWNrZ3Jv
dW5kSW1hZ2VzKFBhaW50aW5nQ29udGV4dCYpIGNvbnN0OwogCiAgICAgdm9pZCBwYWludEZpbGxM
YXllcihQYWludGluZ0NvbnRleHQmLCBjb25zdCBGaWxsTGF5ZXImLCBjb25zdCBGaWxsTGF5ZXJJ
bWFnZUdlb21ldHJ5JikgY29uc3Q7CiAgICAgCiAgICAgRmxvYXRSb3VuZGVkUmVjdCBib3JkZXJS
b3VuZGVkUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fYm9yZGVyUmVjdDsgfQorICAgIEZsb2F0Um91
bmRlZFJlY3QgaW5uZXJCb3JkZXJSb3VuZGVkUmVjdCgpIGNvbnN0OwogICAgIAogICAgIEZsb2F0
Um91bmRlZFJlY3QgYmFja2dyb3VuZFJvdW5kZWRSZWN0QWRqdXN0ZWRGb3JCbGVlZEF2b2lkYW5j
ZShjb25zdCBQYWludGluZ0NvbnRleHQmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheVN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rpc3Bs
YXkvY3NzL0Rpc3BsYXlTdHlsZS5jcHAKaW5kZXggODM5ZjdjZTE1NmUwMmU5NDJiMTM2NTM3OWI5
ZTUwOWViZTQyNTY3ZS4uZjEzYjU5NDk0Nzc3MTY5ZDdlZTQ0MWQ1YTNhZTY2NDEyODFhNTE0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jc3MvRGlzcGxheVN0eWxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5U3R5bGUuY3BwCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiQm9yZGVyRGF0YS5oIgogI2luY2x1ZGUgIkZpbGxMYXllci5o
IgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiU2hhZG93RGF0YS5oIgogI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTU2LDYgKzU3LDI3IEBAIHN0YXRpYyBSZWZQdHI8RmlsbExheWVyPiBkZWVwQ29weShjb25zdCBG
aWxsTGF5ZXImIGxheWVyKQogICAgIHJldHVybiBmaXJzdExheWVyOwogfQogCitzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPFNoYWRvd0RhdGE+IGRlZXBDb3B5KGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRv
dywgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQoreworICAgIHN0ZDo6dW5pcXVlX3B0cjxTaGFk
b3dEYXRhPiBmaXJzdFNoYWRvdzsKKyAgICBTaGFkb3dEYXRhKiBjdXJyQ29waWVkU2hhZG93ID0g
bnVsbHB0cjsKKworICAgIGZvciAoYXV0byogY3VyclNoYWRvdyA9IHNoYWRvdzsgY3VyclNoYWRv
dzsgY3VyclNoYWRvdyA9IGN1cnJTaGFkb3ctPm5leHQoKSkgeworICAgICAgICBhdXRvIHNoYWRv
d0NvcHkgPSBtYWtlVW5pcXVlPFNoYWRvd0RhdGE+KCpjdXJyU2hhZG93KTsKKyAgICAgICAgc2hh
ZG93Q29weS0+c2V0Q29sb3Ioc3R5bGUuY29sb3JCeUFwcGx5aW5nQ29sb3JGaWx0ZXIoc2hhZG93
Q29weS0+Y29sb3IoKSkpOworICAgICAgICAKKyAgICAgICAgaWYgKCFmaXJzdFNoYWRvdykgewor
ICAgICAgICAgICAgY3VyckNvcGllZFNoYWRvdyA9IHNoYWRvd0NvcHkuZ2V0KCk7CisgICAgICAg
ICAgICBmaXJzdFNoYWRvdyA9IFdURk1vdmUoc2hhZG93Q29weSk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBhdXRvIG5leHRDb3BpZWRTaGFkb3cgPSBzaGFkb3dDb3B5LmdldCgpOwor
ICAgICAgICAgICAgY3VyckNvcGllZFNoYWRvdy0+c2V0TmV4dChXVEZNb3ZlKHNoYWRvd0NvcHkp
KTsKKyAgICAgICAgICAgIGN1cnJDb3BpZWRTaGFkb3cgPSBuZXh0Q29waWVkU2hhZG93OworICAg
ICAgICB9CisgICAgfQorICAgIHJldHVybiBmaXJzdFNoYWRvdzsKK30KKwogU3R5bGU6OlN0eWxl
KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKICAgICA6IFN0eWxlKHN0eWxlLCAmc3R5bGUpCiB7
CkBAIC03Miw2ICs5NCw4IEBAIFN0eWxlOjpTdHlsZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUs
IGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZUZvckJhY2tncm91bmQpCiAgICAgaWYgKHN0eWxlRm9y
QmFja2dyb3VuZCkKICAgICAgICAgc2V0dXBCYWNrZ3JvdW5kKCpzdHlsZUZvckJhY2tncm91bmQp
OwogCisgICAgbV9ib3hTaGFkb3cgPSBkZWVwQ29weShzdHlsZS5ib3hTaGFkb3coKSwgc3R5bGUp
OworCiAgICAgaWYgKCFzdHlsZS5oYXNBdXRvVXNlZFpJbmRleCgpKQogICAgICAgICBtX3pJbmRl
eCA9IHN0eWxlLnVzZWRaSW5kZXgoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZGlz
cGxheS9jc3MvRGlzcGxheVN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNw
bGF5U3R5bGUuaAppbmRleCAzMTRlZmYwMGExYzBhNTUwNzA5MTQ5OTM5ZmVkYjAwYjY5OTcyMzQ0
Li40MjkyNTZjODYyOTJkYmU3ZmYxMzY4YTk1MmIyNmRlOGEwZDQzNWYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5U3R5bGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kaXNwbGF5L2Nzcy9EaXNwbGF5U3R5bGUuaApAQCAtNDEsNiArNDEsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGxMYXllcjsKIGNsYXNzIFJlbmRlclN0eWxlOworY2xh
c3MgU2hhZG93RGF0YTsKIAogbmFtZXNwYWNlIERpc3BsYXkgewogCkBAIC02OCw2ICs2OSw4IEBA
IHB1YmxpYzoKIAogICAgIGNvbnN0IEZpbGxMYXllciogYmFja2dyb3VuZExheWVycygpIGNvbnN0
IHsgcmV0dXJuIG1fYmFja2dyb3VuZExheWVycy5nZXQoKTsgfQogICAgIGJvb2wgYmFja2dyb3Vu
ZEhhc09wYXF1ZVRvcExheWVyKCkgY29uc3Q7CisgICAgCisgICAgY29uc3QgU2hhZG93RGF0YSog
Ym94U2hhZG93KCkgY29uc3QgeyByZXR1cm4gbV9ib3hTaGFkb3cuZ2V0KCk7IH0KIAogICAgIE9w
dGlvbmFsPGludD4gekluZGV4KCkgY29uc3QgeyByZXR1cm4gbV96SW5kZXg7IH0KICAgICBib29s
IGlzU3RhY2tpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV96SW5kZXguaGFzVmFsdWUoKTsg
fQpAQCAtOTcsNiArMTAwLDcgQEAgcHJpdmF0ZToKICAgICBDb2xvciBtX2JhY2tncm91bmRDb2xv
cjsKIAogICAgIFJlZlB0cjxGaWxsTGF5ZXI+IG1fYmFja2dyb3VuZExheWVyczsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8U2hhZG93RGF0YT4gbV9ib3hTaGFkb3c7CiAKICAgICBGb250Q2FzY2FkZSBt
X2ZvbnRDYXNjYWRlOwogICAgIFdoaXRlU3BhY2UgbV93aGl0ZVNwYWNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0U2l6ZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0U2l6ZS5oCmluZGV4IDE4MjgzMjFlODZjZmM3
YmJmMTBkNGM5YzNkNTZhOGMwZGZjOTQyMDcuLjRhNmQ3Nzg1MzBhZjRjYjZiMDQ0ZmI3NzdlM2U2
ZmE4ZTk3YzNhZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0xheW91dFNpemUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlv
dXRTaXplLmgKQEAgLTIwNSw2ICsyMDUsMTEgQEAgaW5saW5lIEZsb2F0U2l6ZSBmbG9vclNpemVU
b0RldmljZVBpeGVscyhjb25zdCBMYXlvdXRTaXplJiBzaXplLCBmbG9hdCBwaXhlbFNuYXAKICAg
ICByZXR1cm4gRmxvYXRTaXplKGZsb29yVG9EZXZpY2VQaXhlbChzaXplLndpZHRoKCksIHBpeGVs
U25hcHBpbmdGYWN0b3IpLCBmbG9vclRvRGV2aWNlUGl4ZWwoc2l6ZS5oZWlnaHQoKSwgcGl4ZWxT
bmFwcGluZ0ZhY3RvcikpOwogfQogCitpbmxpbmUgRmxvYXRTaXplIHJvdW5kU2l6ZVRvRGV2aWNl
UGl4ZWxzKGNvbnN0IExheW91dFNpemUmIHNpemUsIGZsb2F0IHBpeGVsU25hcHBpbmdGYWN0b3Ip
Cit7CisgICAgcmV0dXJuIEZsb2F0U2l6ZShyb3VuZFRvRGV2aWNlUGl4ZWwoc2l6ZS53aWR0aCgp
LCBwaXhlbFNuYXBwaW5nRmFjdG9yKSwgcm91bmRUb0RldmljZVBpeGVsKHNpemUuaGVpZ2h0KCks
IHBpeGVsU25hcHBpbmdGYWN0b3IpKTsKK30KKwogV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IExheW91dFNpemUmKTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1NoYWRvd0RhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
aGFkb3dEYXRhLmgKaW5kZXggMzUzYWY0ZmQ0MDdkYjk1YmVhOWUzMDFkNDllYzNmZmRjMGFhZjMw
OS4uYWY1OWE0MWFjNDRjYzg4YzZjYzI5NTEyMjlkMzBlM2IxODhmYTBlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1NoYWRvd0RhdGEuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU2hhZG93RGF0YS5oCkBAIC03NCwxMSArNzQsMTQgQEAg
cHVibGljOgogICAgIH0KICAgICBMYXlvdXRVbml0IHNwcmVhZCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3ByZWFkOyB9CiAgICAgU2hhZG93U3R5bGUgc3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3N0eWxl
OyB9CisKKyAgICB2b2lkIHNldENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikgeyBtX2NvbG9yID0g
Y29sb3I7IH0KICAgICBjb25zdCBDb2xvciYgY29sb3IoKSBjb25zdCB7IHJldHVybiBtX2NvbG9y
OyB9CisKICAgICBib29sIGlzV2Via2l0Qm94U2hhZG93KCkgY29uc3QgeyByZXR1cm4gbV9pc1dl
YmtpdEJveFNoYWRvdzsgfQogCiAgICAgY29uc3QgU2hhZG93RGF0YSogbmV4dCgpIGNvbnN0IHsg
cmV0dXJuIG1fbmV4dC5nZXQoKTsgfQotICAgIHZvaWQgc2V0TmV4dChzdGQ6OnVuaXF1ZV9wdHI8
U2hhZG93RGF0YT4gc2hhZG93KSB7IG1fbmV4dCA9IFdURk1vdmUoc2hhZG93KTsgfQorICAgIHZv
aWQgc2V0TmV4dChzdGQ6OnVuaXF1ZV9wdHI8U2hhZG93RGF0YT4mJiBzaGFkb3cpIHsgbV9uZXh0
ID0gV1RGTW92ZShzaGFkb3cpOyB9CiAKICAgICB2b2lkIGFkanVzdFJlY3RGb3JTaGFkb3coTGF5
b3V0UmVjdCYsIGludCBhZGRpdGlvbmFsT3V0bGluZVNpemUgPSAwKSBjb25zdDsKICAgICB2b2lk
IGFkanVzdFJlY3RGb3JTaGFkb3coRmxvYXRSZWN0JiwgaW50IGFkZGl0aW9uYWxPdXRsaW5lU2l6
ZSA9IDApIGNvbnN0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>