<?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>207432</bug_id>
          
          <creation_ts>2020-02-08 13:03:05 -0800</creation_ts>
          <short_desc>[LFC][BFC] Pre-compute vertical position only when we really need it.</short_desc>
          <delta_ts>2020-02-08 19:45:18 -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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</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>1616584</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-02-08 13:03:05 -0800</bug_when>
    <thetext>also we should transition from &quot;estimated&quot; to &quot;pre-computed&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616585</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-08 13:03:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/59288539&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616596</commentid>
    <comment_count>2</comment_count>
      <attachid>390180</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-02-08 13:39:25 -0800</bug_when>
    <thetext>Created attachment 390180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616646</commentid>
    <comment_count>3</comment_count>
      <attachid>390192</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-02-08 18:59:23 -0800</bug_when>
    <thetext>Created attachment 390192
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616647</commentid>
    <comment_count>4</comment_count>
      <attachid>390192</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-08 19:45:16 -0800</bug_when>
    <thetext>Comment on attachment 390192
Patch

Clearing flags on attachment: 390192

Committed r256099: &lt;https://trac.webkit.org/changeset/256099&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616648</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-08 19:45:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390180</attachid>
            <date>2020-02-08 13:39:25 -0800</date>
            <delta_ts>2020-02-08 18:59:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207432-20200208133924.patch</filename>
            <type>text/plain</type>
            <size>16931</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1Mzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWNhMGNmMDg1YjAzNmM2
YzEwNGI1YTk1YzNhZTQwZDE5MTRkZTE0MC4uMzU2YzlkNzQzMTllYTVhNTY5ZGRlZjcwMzZkYjNi
Mzk2NzQ2YTlkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAyLTA4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bQkZDXSBQcmUtY29t
cHV0ZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvbmx5IHdoZW4gd2UgcmVhbGx5IG5lZWQgaXQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc0MzIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzU5Mjg4NTM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEluc3RlYWQgb2YgcHJlLWNvbXB1dGluZyB0aGUgdmVydGlj
YWwgcG9zaXRpb24gYXQgY29tcHV0ZVN0YXRpY1ZlcnRpY2FsUG9zaXRpb24sIGxldCdzIGNvbXB1
dGUgaXQgd2hlbgorICAgICAgICAxLiB3ZSBhcmUgYWJvdXQgdG8gbGF5b3V0IGEgbmV3IG5vbi1m
bG9hdC1hdm9pZGVyL2Zsb2F0IGNsZWFyIEZDIChlLmcuIHNvIHRoYXQgaW50cnVzaXZlIGZsb2F0
cyBjYW4gc2hyaW5rIHRoZSBsaW5lcyBpbnNpZGUgSUZDcykKKyAgICAgICAgMi4gd2UgYXJlIGFi
b3V0IHRvIGNvbXB1dGUgdGhlIG5vbi1zdGF0aWMgdmVydGljYWwgcG9zaXRpb24gb2YgYSBmbG9h
dCBhdm9pZGVyIGJsb2NrIGxldmVsIGJveC4KKworICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEluRmxvd0NvbnRlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGlj
VmVydGljYWxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0
dGluZ0NvbnRleHQ6OmNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3Jz
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6cHJl
Y29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JGb3JtYXR0aW5nUm9vdCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVQb3NpdGlvblRvQXZv
aWRGbG9hdHMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlVmVydGljYWxQb3NpdGlvbkZvckZsb2F0Q2xlYXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljUG9zaXRp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbkZvckZvcm1hdHRpbmdSb290
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6Y29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JGbG9hdENsZWFyKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
aGFzUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRmxvYXRpbmdQb3Np
dGlvbik6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zv
cm1hdHRpbmdDb250ZXh0Lmg6CisKIDIwMjAtMDItMDggIFphbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtCRkNdIFJlbW92ZSBlc3RhYmxpc2hlc0Jsb2NrRm9y
bWF0dGluZ0NvbnRleHRPbmx5IGFuZCBlc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0
T25seQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9C
bG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggYWI4ZjJjYWNhMjI1ZWMw
NWQ0OTM0MWEyNmQ1ZjNiYzFiODExYzhhZi4uODk1NGI0NmUxMTkwYmE3YzQ0YjI0YjBkNjEyMjFm
ZTExYmUwMDZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0
dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0xMjAsMTMg
KzEyMCwxNCBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEluRmxvd0NvbnRl
bnQoSW52YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvbgogICAgICAgICAgICAgYXV0byB2ZXJ0
aWNhbENvbnN0cmFpbnRzID0gdmVydGljYWxDb25zdHJhaW50c0ZvckxheW91dEJveChsYXlvdXRC
b3gpOwogCiAgICAgICAgICAgICBjb21wdXRlQm9yZGVyQW5kUGFkZGluZyhsYXlvdXRCb3gsIGhv
cml6b250YWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2spOwotICAgICAgICAgICAgY29tcHV0
ZVN0YXRpY1ZlcnRpY2FsUG9zaXRpb24oZmxvYXRpbmdDb250ZXh0LCBsYXlvdXRCb3gsIGhvcml6
b250YWxDb25zdHJhaW50cywgdmVydGljYWxDb25zdHJhaW50cyk7CisgICAgICAgICAgICBjb21w
dXRlU3RhdGljVmVydGljYWxQb3NpdGlvbihsYXlvdXRCb3gsIHZlcnRpY2FsQ29uc3RyYWludHMp
OwogICAgICAgICAgICAgY29tcHV0ZVdpZHRoQW5kTWFyZ2luKGZsb2F0aW5nQ29udGV4dCwgbGF5
b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOwogICAgICAgICAgICAgY29tcHV0ZVN0YXRp
Y0hvcml6b250YWxQb3NpdGlvbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cyk7CiAK
ICAgICAgICAgICAgIGlmIChsYXlvdXRCb3guZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgp
KSB7CiAgICAgICAgICAgICAgICAgaWYgKGlzPENvbnRhaW5lcj4obGF5b3V0Qm94KSAmJiBkb3du
Y2FzdDxDb250YWluZXI+KGxheW91dEJveCkuaGFzSW5GbG93T3JGbG9hdGluZ0NoaWxkKCkpIHsK
ICAgICAgICAgICAgICAgICAgICAgLy8gTGF5b3V0IHRoZSBpbmZsb3cgZGVzY2VuZGFudHMgb2Yg
dGhpcyBmb3JtYXR0aW5nIGNvbnRleHQgcm9vdC4KKyAgICAgICAgICAgICAgICAgICAgcHJlY29t
cHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JGb3JtYXR0aW5nUm9vdChmbG9hdGluZ0NvbnRleHQsIGxh
eW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKICAg
ICAgICAgICAgICAgICAgICAgYXV0byYgcm9vdERpc3BsYXlCb3ggPSBnZW9tZXRyeUZvckJveChs
YXlvdXRCb3gpOwogICAgICAgICAgICAgICAgICAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50
c0ZvckZvcm1hdHRpbmdDb250ZXh0ID0gR2VvbWV0cnk6Omhvcml6b250YWxDb25zdHJhaW50c0Zv
ckluRmxvdyhyb290RGlzcGxheUJveCk7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gdmVydGlj
YWxDb25zdHJhaW50c0ZvckZvcm1hdHRpbmdDb250ZXh0ID0gR2VvbWV0cnk6OnZlcnRpY2FsQ29u
c3RyYWludHNGb3JJbkZsb3cocm9vdERpc3BsYXlCb3gpOwpAQCAtMTU4LDExICsxNTksMTEgQEAg
dm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50KEludmFsaWRh
dGlvblN0YXRlJiBpbnZhbGlkYXRpb24KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIC8vIFJl
c29sdmUgZmluYWwgcG9zaXRpb25zLgogICAgICAgICAgICAgcGxhY2VJbkZsb3dQb3NpdGlvbmVk
Q2hpbGRyZW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOwotICAgICAgICAgICAg
aWYgKGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpKSB7Ci0gICAgICAgICAgICAgICAg
Y29tcHV0ZUZsb2F0aW5nUG9zaXRpb24oZmxvYXRpbmdDb250ZXh0LCBsYXlvdXRCb3gpOwotICAg
ICAgICAgICAgICAgIGZsb2F0aW5nQ29udGV4dC5hcHBlbmQobGF5b3V0Qm94KTsKLSAgICAgICAg
ICAgIH0gZWxzZSBpZiAobGF5b3V0Qm94LmlzRmxvYXRBdm9pZGVyKCkpCi0gICAgICAgICAgICAg
ICAgY29tcHV0ZVBvc2l0aW9uVG9Bdm9pZEZsb2F0cyhmbG9hdGluZ0NvbnRleHQsIGxheW91dEJv
eCk7CisgICAgICAgICAgICBpZiAobGF5b3V0Qm94LmlzRmxvYXRBdm9pZGVyKCkpIHsKKyAgICAg
ICAgICAgICAgICBjb21wdXRlUG9zaXRpb25Ub0F2b2lkRmxvYXRzKGZsb2F0aW5nQ29udGV4dCwg
bGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMsIHZlcnRpY2FsQ29uc3RyYWludHMpOwor
ICAgICAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkKKyAg
ICAgICAgICAgICAgICAgICAgZmxvYXRpbmdDb250ZXh0LmFwcGVuZChsYXlvdXRCb3gpOworICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoYXBwZW5kTmV4dFRvTGF5b3V0UXVldWUobGF5
b3V0Qm94LCBMYXlvdXREaXJlY3Rpb246OlNpYmxpbmcpKQogICAgICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMjIyLDEzICsyMjMsOSBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnBsYWNl
SW5GbG93UG9zaXRpb25lZENoaWxkcmVuKGNvbnN0IEJveCYgbGF5b3V0Qm94LAogICAgIExPR19X
SVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJFbmQ6IG1vdmUg
aW4tZmxvdyBwb3NpdGlvbmVkIGNoaWxkcmVuIC0+IHBhcmVudDogIiA8PCAmbGF5b3V0Qm94KTsK
IH0KIAotdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljVmVydGljYWxQ
b3NpdGlvbihjb25zdCBGbG9hdGluZ0NvbnRleHQmIGZsb2F0aW5nQ29udGV4dCwgY29uc3QgQm94
JiBsYXlvdXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+
JiBob3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENv
bnN0cmFpbnRzPiYgdmVydGljYWxDb25zdHJhaW50cykKK3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6Y29tcHV0ZVN0YXRpY1ZlcnRpY2FsUG9zaXRpb24oY29uc3QgQm94JiBsYXlvdXRCb3gs
IGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYgdmVydGljYWxDb25z
dHJhaW50cykKIHsKICAgICBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGxheW91dEJveCku
c2V0VG9wKGdlb21ldHJ5KCkuc3RhdGljVmVydGljYWxQb3NpdGlvbihsYXlvdXRCb3gsIHZlcnRp
Y2FsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrKSk7Ci0gICAgaWYgKGxheW91dEJveC5oYXNG
bG9hdENsZWFyKCkpCi0gICAgICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9y
RmxvYXRDbGVhcihmbG9hdGluZ0NvbnRleHQsIGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFp
bnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKLSAgICBlbHNlIGlmIChsYXlvdXRCb3guZXN0YWJs
aXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKQotICAgICAgICBjb21wdXRlRXN0aW1hdGVkVmVydGlj
YWxQb3NpdGlvbkZvckZvcm1hdHRpbmdSb290KGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFp
bnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKIH0KIAogdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYgaG9yaXpvbnRh
bENvbnN0cmFpbnRzKQpAQCAtMjM2LDEyICsyMzMsNiBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbXB1dGVTdGF0aWNIb3Jpem9udGFsUG9zaXRpb24oY29uc3QgQm94JiBsYXlvdXRC
bwogICAgIGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3gobGF5b3V0Qm94KS5zZXRMZWZ0KGdl
b21ldHJ5KCkuc3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGxheW91dEJveCwgaG9yaXpvbnRhbENv
bnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jaykpOwogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbXB1dGVTdGF0aWNQb3NpdGlvbihjb25zdCBGbG9hdGluZ0NvbnRleHQmIGZsb2F0
aW5nQ29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxI
b3Jpem9udGFsQ29uc3RyYWludHM+JiBob3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0IENvbnN0
cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYgdmVydGljYWxDb25zdHJhaW50cykKLXsK
LSAgICBjb21wdXRlU3RhdGljVmVydGljYWxQb3NpdGlvbihmbG9hdGluZ0NvbnRleHQsIGxheW91
dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKLSAgICBj
b21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0
cmFpbnRzKTsKLX0KLQogdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRXN0aW1h
dGVkVmVydGljYWxQb3NpdGlvbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgSG9yaXpvbnRh
bENvbnN0cmFpbnRzJiBob3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0IFZlcnRpY2FsQ29uc3Ry
YWludHMmIHZlcnRpY2FsQ29uc3RyYWludHMpCiB7CiAgICAgYXV0byBjb21wdXRlZFZlcnRpY2Fs
TWFyZ2luID0gZ2VvbWV0cnkoKS5jb21wdXRlZFZlcnRpY2FsTWFyZ2luKGxheW91dEJveCwgaG9y
aXpvbnRhbENvbnN0cmFpbnRzKTsKQEAgLTI3NCw2ICsyNjUsNyBAQCB2b2lkIEJsb2NrRm9ybWF0
dGluZ0NvbnRleHQ6OmNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3Jz
KGNvbnN0CiAgICAgLy8gU28gd2hlbiB3ZSBnZXQgdG8gdGhlIHBvaW50IHdoZXJlIHdlIGludGVy
c2VjdCB0aGUgYm94IHdpdGggdGhlIGZsb2F0IHRvIGRlY2lkZSBpZiB0aGUgYm94IG5lZWRzIHRv
IG1vdmUsIHdlIGRvbid0IHlldCBoYXZlIHRoZSBmaW5hbCB2ZXJ0aWNhbCBwb3NpdGlvbi4KICAg
ICAvLwogICAgIC8vIFRoZSBpZGVhIGhlcmUgaXMgdGhhdCBhcyBsb25nIGFzIHdlIGRvbid0IGNy
b3NzIHRoZSBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQgYm91bmRhcnksIHdlIHNob3VsZCBiZSBh
YmxlIHRvIHByZS1jb21wdXRlIHRoZSBmaW5hbCB0b3AgcG9zaXRpb24uCisgICAgLy8gRklYTUU6
IHdlIGN1cnJlbnRseSBkb24ndCBhY2NvdW50IGZvciB0aGUgImNsZWFyIiBwcm9wZXJ0eSB3aGVu
IGNvbXB1dGluZyB0aGUgZmluYWwgcG9zaXRpb24gZm9yIGFuIGFuY2VzdG9yLgogICAgIGZvciAo
YXV0byogYW5jZXN0b3IgPSBsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7IGFuY2VzdG9yICYm
ICFhbmNlc3Rvci0+ZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCk7IGFuY2VzdG9y
ID0gYW5jZXN0b3ItPmNvbnRhaW5pbmdCbG9jaygpKSB7CiAgICAgICAgIC8vIEZJWE1FOiB3aXRo
IGluY3JlbWVudGFsIGxheW91dCwgd2UgbWlnaHQgYWN0dWFsbHkgaGF2ZSBhIHZhbGlkIChub24t
ZXN0aW1hdGVkKSBtYXJnaW4gdG9wIGFzIHdlbGwuCiAgICAgICAgIGlmIChoYXNFc3RpbWF0ZWRN
YXJnaW5CZWZvcmUoKmFuY2VzdG9yKSkKQEAgLTI5MCwzNCArMjgyLDQ5IEBAIHZvaWQgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNl
c3RvcnMoY29uc3QKICAgICB9CiB9CiAKLXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29t
cHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JGb3JtYXR0aW5nUm9vdChjb25zdCBCb3gm
IGxheW91dEJveCwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4m
IGhvcml6b250YWxDb25zdHJhaW50cywgY29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29u
c3RyYWludHM+JiB2ZXJ0aWNhbENvbnN0cmFpbnRzKQordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0OjpwcmVjb21wdXRlVmVydGljYWxQb3NpdGlvbkZvckZvcm1hdHRpbmdSb290KGNvbnN0IEZs
b2F0aW5nQ29udGV4dCYgZmxvYXRpbmdDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgY29u
c3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mIGhvcml6b250YWxDb25z
dHJhaW50cywgY29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+JiB2ZXJ0
aWNhbENvbnN0cmFpbnRzKQogewogICAgIEFTU0VSVChsYXlvdXRCb3guZXN0YWJsaXNoZXNGb3Jt
YXR0aW5nQ29udGV4dCgpKTsKLSAgICBBU1NFUlQoIWxheW91dEJveC5oYXNGbG9hdENsZWFyKCkp
OworICAgIGlmIChsYXlvdXRCb3guaXNGbG9hdEF2b2lkZXIoKSAmJiAhbGF5b3V0Qm94Lmhhc0Zs
b2F0Q2xlYXIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIC8vIFdlIG5lZWQgdGhlIGZpbmFsIHZl
cnRpY2FsIHBvc2l0aW9uIHdoZW4gdGhlIGZvcm1hdHRpbmcgY29udGV4dCBpbmhlcml0cyBmbG9h
dHMgZnJvbSB0aGUgcGFyZW50IEZDLgorICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0
aW9uRm9yQW5jZXN0b3JzKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNh
bENvbnN0cmFpbnRzKTsKKyAgICBjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbihsYXlv
dXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2ssIHZlcnRpY2FsQ29u
c3RyYWludHMuY29udGFpbmluZ0Jsb2NrKTsKKyAgICBpZiAobGF5b3V0Qm94Lmhhc0Zsb2F0Q2xl
YXIoKSkgeworICAgICAgICAvLyBpZiB3ZSBqdXN0IGxldCB0aGUgYm94IHNpdCBhdCB0aGUgc3Rh
dGljIHZlcnRpY2FsIHBvc2l0aW9uLCB3ZSBtaWdodCBmaW5kIHVucmVsYXRlZCBmbG9hdCBib3hl
cyB0aGVyZSAoYm94ZXMgdGhhdCB3ZSBuZWVkIHRvIGNsZWFyKS4KKyAgICAgICAgY29tcHV0ZVZl
cnRpY2FsUG9zaXRpb25Gb3JGbG9hdENsZWFyKGZsb2F0aW5nQ29udGV4dCwgbGF5b3V0Qm94KTsK
KyAgICB9Cit9CiAKK3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVBvc2l0aW9u
VG9Bdm9pZEZsb2F0cyhjb25zdCBGbG9hdGluZ0NvbnRleHQmIGZsb2F0aW5nQ29udGV4dCwgY29u
c3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3Ry
YWludHM+JiBob3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0
aWNhbENvbnN0cmFpbnRzPiYgdmVydGljYWxDb25zdHJhaW50cykKK3sKKyAgICBBU1NFUlQobGF5
b3V0Qm94LmlzRmxvYXRBdm9pZGVyKCkpOworICAgIC8vIEluIG9yZGVyIHRvIHBvc2l0aW9uIGEg
ZmxvYXQgYXZvaWRlciB3ZSBuZWVkIHRvIGtub3cgaXRzIHZlcnRpY2FsIHBvc2l0aW9uIHJlbGF0
aXZlIHRvIGl0cyBmb3JtYXR0aW5nIGNvbnRleHQgcm9vdCAoYW5kIG5vdCBqdXN0IGl0cyBjb250
YWluaW5nIGJsb2NrKSwKKyAgICAvLyBiZWNhdXNlIGFsbCB0aGUgYWxyZWFkeS1wbGFjZWQgZmxv
YXRzIChmbG9hdHMgdGhhdCB3ZSBhcmUgdHJ5aW5nIHRvIGF2b2lkIGhlcmUpIGluIHRoaXMgQkZD
IG1pZ2h0IGJlbG9uZworICAgIC8vIHRvIGEgZGlmZmVyZW50IHNldCBvZiBjb250YWluaW5nIGJs
b2NrcyAoYnV0IHRoZXkgYWxsIGRlc2NlbmRhbnRzIG9mIHRoZSBCRkMgcm9vdCkuCisgICAgLy8g
SG93ZXZlciBhY2NvcmRpbmcgdG8gdGhlIEJGQyBydWxlcywgYXQgdGhpcyBwb2ludCBvZiB0aGUg
bGF5b3V0IGZsb3cgd2UgZG9uJ3QgeWV0IGhhdmUgY29tcHV0ZWQgdmVydGljYWwgcG9zaXRpb25z
IGZvciB0aGUgYW5jZXN0b3JzLgogICAgIGlmIChsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9u
ZWQoKSkgewogICAgICAgICBjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbkZvckFuY2Vz
dG9ycyhsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cywgdmVydGljYWxDb25zdHJhaW50
cyk7CisgICAgICAgIGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3gobGF5b3V0Qm94KS5zZXRU
b3BMZWZ0KGZsb2F0aW5nQ29udGV4dC5wb3NpdGlvbkZvckZsb2F0KGxheW91dEJveCkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQotCi0gICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRp
b24obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrLCB2ZXJ0
aWNhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jayk7CisgICAgLy8gTm9uLWZsb2F0IHBvc2l0
aW9uZWQgZmxvYXQgYXZvaWRlcnMgKGZvcm1hdHRpbmcgY29udGV4dCByb290cyBhbmQgY2xlYXIg
Ym94ZXMpIHNob3VsZCBiZSBmaW5lIHVubGVzcyB0aGVyZSBhcmUgZmxvYXRzIGluIHRoaXMgY29u
dGV4dC4KKyAgICBpZiAoZmxvYXRpbmdDb250ZXh0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
OwogICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3JzKGxheW91
dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKKyAgICBp
ZiAobGF5b3V0Qm94Lmhhc0Zsb2F0Q2xlYXIoKSkKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVWZXJ0
aWNhbFBvc2l0aW9uRm9yRmxvYXRDbGVhcihmbG9hdGluZ0NvbnRleHQsIGxheW91dEJveCk7CiAK
LSAgICAvLyBXZSBvbmx5IG5lZWQgdGhlIGZpbmFsIHZlcnRpY2FsIHBvc2l0aW9uIGlmIHRoZSBm
b3JtYXR0aW5nIGNvbnRleHQgZG9lcyBsZXQgaW50cnVzaXZlIGZsb2F0cyBpbiAoYWthIG5vdCBh
IGZsb2F0IGF2b2lkZXIpLgotICAgIGlmICghbGF5b3V0Qm94LmlzRmxvYXRBdm9pZGVyKCkpIHsK
LSAgICAgICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb24obGF5b3V0Qm94LCBob3Jp
em9udGFsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrLCB2ZXJ0aWNhbENvbnN0cmFpbnRzLmNv
bnRhaW5pbmdCbG9jayk7Ci0gICAgICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9u
Rm9yQW5jZXN0b3JzKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENv
bnN0cmFpbnRzKTsKLSAgICB9CisgICAgQVNTRVJUKGxheW91dEJveC5lc3RhYmxpc2hlc0Zvcm1h
dHRpbmdDb250ZXh0KCkpOworICAgIGlmIChhdXRvIGFkanVzdGVkUG9zaXRpb24gPSBmbG9hdGlu
Z0NvbnRleHQucG9zaXRpb25Gb3JGb3JtYXR0aW5nQ29udGV4dFJvb3QobGF5b3V0Qm94KSkKKyAg
ICAgICAgZm9ybWF0dGluZ1N0YXRlKCkuZGlzcGxheUJveChsYXlvdXRCb3gpLnNldFRvcExlZnQo
KmFkanVzdGVkUG9zaXRpb24pOwogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNv
bXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yRmxvYXRDbGVhcihjb25zdCBGbG9hdGlu
Z0NvbnRleHQmIGZsb2F0aW5nQ29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IENv
bnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiBob3Jpem9udGFsQ29uc3RyYWlu
dHMsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYgdmVydGljYWxD
b25zdHJhaW50cykKK3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVZlcnRpY2Fs
UG9zaXRpb25Gb3JGbG9hdENsZWFyKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYgZmxvYXRpbmdDb250
ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94Lmhhc0Zs
b2F0Q2xlYXIoKSk7CiAgICAgaWYgKGZsb2F0aW5nQ29udGV4dC5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybjsKLSAgICAvLyBUaGUgc3RhdGljIHBvc2l0aW9uIHdpdGggY2xlYXIgcmVxdWlyZXMg
bWFyZ2luIGVzaXRtYXRpb24gdG8gc2VlIGlmIGNsZWFyYW5jZSBpcyBuZWVkZWQuCi0gICAgY29t
cHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb24obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3Ry
YWludHMuY29udGFpbmluZ0Jsb2NrLCB2ZXJ0aWNhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9j
ayk7Ci0gICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMobGF5
b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMsIHZlcnRpY2FsQ29uc3RyYWludHMpOwogICAg
IGF1dG8gdmVydGljYWxQb3NpdGlvbkFuZENsZWFyYW5jZSA9IGZsb2F0aW5nQ29udGV4dC52ZXJ0
aWNhbFBvc2l0aW9uV2l0aENsZWFyYW5jZShsYXlvdXRCb3gpOwogICAgIGlmICghdmVydGljYWxQ
b3NpdGlvbkFuZENsZWFyYW5jZS5wb3NpdGlvbikgewogICAgICAgICBBU1NFUlQoIXZlcnRpY2Fs
UG9zaXRpb25BbmRDbGVhcmFuY2UuY2xlYXJhbmNlKTsKQEAgLTMzMSw0MCArMzM4LDYgQEAgdm9p
ZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlv
bkZvckZsb2F0Q2xlYXIoY29uc3QKICAgICAgICAgZGlzcGxheUJveC5zZXRIYXNDbGVhcmFuY2Uo
KTsKIH0KIAotI2lmIEFTU0VSVF9FTkFCTEVECi1ib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
Omhhc1ByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAot
ewotICAgIGZvciAoYXV0byogYW5jZXN0b3IgPSBsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7
IGFuY2VzdG9yICYmICFhbmNlc3Rvci0+ZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
KCk7IGFuY2VzdG9yID0gYW5jZXN0b3ItPmNvbnRhaW5pbmdCbG9jaygpKSB7Ci0gICAgICAgIGlm
IChoYXNFc3RpbWF0ZWRNYXJnaW5CZWZvcmUoKmFuY2VzdG9yKSkKLSAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQot
I2VuZGlmIC8vIEFTU0VSVF9FTkFCTEVECi0KLXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
Y29tcHV0ZUZsb2F0aW5nUG9zaXRpb24oY29uc3QgRmxvYXRpbmdDb250ZXh0JiBmbG9hdGluZ0Nv
bnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94KQotewotICAgIEFTU0VSVChsYXlvdXRCb3guaXNG
bG9hdGluZ1Bvc2l0aW9uZWQoKSk7Ci0gICAgQVNTRVJUKGhhc1ByZWNvbXB1dGVkTWFyZ2luQmVm
b3JlKGxheW91dEJveCkpOwotICAgIGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3gobGF5b3V0
Qm94KS5zZXRUb3BMZWZ0KGZsb2F0aW5nQ29udGV4dC5wb3NpdGlvbkZvckZsb2F0KGxheW91dEJv
eCkpOwotfQotCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVQb3NpdGlvblRv
QXZvaWRGbG9hdHMoY29uc3QgRmxvYXRpbmdDb250ZXh0JiBmbG9hdGluZ0NvbnRleHQsIGNvbnN0
IEJveCYgbGF5b3V0Qm94KQotewotICAgIC8vIEZvcm1hdHRpbmcgY29udGV4dCByb290cyBhdm9p
ZCBmbG9hdHMuCi0gICAgQVNTRVJUKGxheW91dEJveC5lc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQoKSk7Ci0gICAgQVNTRVJUKCFsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQo
KSk7Ci0gICAgQVNTRVJUKCFsYXlvdXRCb3guaGFzRmxvYXRDbGVhcigpKTsKLSAgICBBU1NFUlQo
aGFzUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUobGF5b3V0Qm94KSk7Ci0KLSAgICBpZiAoZmxvYXRp
bmdDb250ZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGF1dG8gYWRq
dXN0ZWRQb3NpdGlvbiA9IGZsb2F0aW5nQ29udGV4dC5wb3NpdGlvbkZvckZvcm1hdHRpbmdDb250
ZXh0Um9vdChsYXlvdXRCb3gpKQotICAgICAgICBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94
KGxheW91dEJveCkuc2V0VG9wTGVmdCgqYWRqdXN0ZWRQb3NpdGlvbik7Ci19Ci0KIHZvaWQgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEZsb2F0aW5n
Q29udGV4dCYgZmxvYXRpbmdDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgQ29u
c3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mIGhvcml6b250YWxDb25zdHJhaW50
cykKIHsKICAgICBhdXRvIGNvbXB1dGUgPSBbJl0oT3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZFdp
ZHRoKSAtPiBDb250ZW50V2lkdGhBbmRNYXJnaW4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQu
aAppbmRleCA3YjAyZDc1Zjc5NzBiODM4YTQyYWYxOGNmMWIyNjA4NWE4OWJkZTk4Li4xYzFmYjdj
MTk5MDk4M2I4NjNiYjg2M2M1ZjZmMzBjYmIzMjFkMTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuaApAQCAtNjMsMTUgKzYzLDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRlSGVp
Z2h0QW5kTWFyZ2luKGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFs
Q29uc3RyYWludHM+JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+
Jik7CiAKICAgICB2b2lkIGNvbXB1dGVTdGF0aWNIb3Jpem9udGFsUG9zaXRpb24oY29uc3QgQm94
JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mKTsKLSAgICB2
b2lkIGNvbXB1dGVTdGF0aWNWZXJ0aWNhbFBvc2l0aW9uKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYs
IGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+
JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+Jik7Ci0gICAgdm9p
ZCBjb21wdXRlU3RhdGljUG9zaXRpb24oY29uc3QgRmxvYXRpbmdDb250ZXh0JiwgY29uc3QgQm94
JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mLCBjb25zdCBD
b25zdHJhaW50c1BhaXI8VmVydGljYWxDb25zdHJhaW50cz4mKTsKLSAgICB2b2lkIGNvbXB1dGVG
bG9hdGluZ1Bvc2l0aW9uKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYpOwotICAg
IHZvaWQgY29tcHV0ZVBvc2l0aW9uVG9Bdm9pZEZsb2F0cyhjb25zdCBGbG9hdGluZ0NvbnRleHQm
LCBjb25zdCBCb3gmKTsKKyAgICB2b2lkIGNvbXB1dGVTdGF0aWNWZXJ0aWNhbFBvc2l0aW9uKGNv
bnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYpOwor
ICAgIHZvaWQgY29tcHV0ZVBvc2l0aW9uVG9Bdm9pZEZsb2F0cyhjb25zdCBGbG9hdGluZ0NvbnRl
eHQmLCBjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFp
bnRzPiYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYpOworICAg
IHZvaWQgY29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JGbG9hdENsZWFyKGNvbnN0IEZsb2F0aW5n
Q29udGV4dCYsIGNvbnN0IEJveCYpOwogCiAgICAgdm9pZCBjb21wdXRlRXN0aW1hdGVkVmVydGlj
YWxQb3NpdGlvbihjb25zdCBCb3gmLCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmLCBjb25z
dCBWZXJ0aWNhbENvbnN0cmFpbnRzJik7CiAgICAgdm9pZCBjb21wdXRlRXN0aW1hdGVkVmVydGlj
YWxQb3NpdGlvbkZvckFuY2VzdG9ycyhjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8
SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENv
bnN0cmFpbnRzPiYpOwotICAgIHZvaWQgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25G
b3JGb3JtYXR0aW5nUm9vdChjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpv
bnRhbENvbnN0cmFpbnRzPiYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFp
bnRzPiYpOwotICAgIHZvaWQgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JGbG9h
dENsZWFyKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFp
bnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPFZl
cnRpY2FsQ29uc3RyYWludHM+Jik7CisgICAgdm9pZCBwcmVjb21wdXRlVmVydGljYWxQb3NpdGlv
bkZvckZvcm1hdHRpbmdSb290KGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYsIGNv
bnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiwgY29uc3QgQ29uc3Ry
YWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+Jik7CiAKICAgICBJbnRyaW5zaWNXaWR0aENv
bnN0cmFpbnRzIGNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJhaW50cygpIG92ZXJyaWRlOwog
ICAgIExheW91dFVuaXQgdmVydGljYWxQb3NpdGlvbldpdGhNYXJnaW4oY29uc3QgQm94JiwgY29u
c3QgVXNlZFZlcnRpY2FsTWFyZ2luJiwgY29uc3QgVmVydGljYWxDb25zdHJhaW50cyYpIGNvbnN0
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390192</attachid>
            <date>2020-02-08 18:59:23 -0800</date>
            <delta_ts>2020-02-08 19:45:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207432-20200208185922.patch</filename>
            <type>text/plain</type>
            <size>16931</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2NmNDQ0Yjk1YTAwZmFi
ODUwMTc2NTc3MzNjMDdiMmQzZWM0YjIzNC4uMmQ5ZjdkMGRiMzQ0MGY5ODExYWZlODJlOWJkMGIz
MjY3Y2VlMzdhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAyLTA4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bQkZDXSBQcmUtY29t
cHV0ZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvbmx5IHdoZW4gd2UgcmVhbGx5IG5lZWQgaXQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc0MzIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzU5Mjg4NTM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRp
IEtvaXZpc3RvLgorCisgICAgICAgIEluc3RlYWQgb2YgcHJlLWNvbXB1dGluZyB0aGUgdmVydGlj
YWwgcG9zaXRpb24gYXQgY29tcHV0ZVN0YXRpY1ZlcnRpY2FsUG9zaXRpb24sIGxldCdzIGNvbXB1
dGUgaXQgd2hlbgorICAgICAgICAxLiB3ZSBhcmUgYWJvdXQgdG8gbGF5b3V0IGEgbmV3IG5vbi1m
bG9hdC1hdm9pZGVyL2Zsb2F0IGNsZWFyIEZDIChlLmcuIHNvIHRoYXQgaW50cnVzaXZlIGZsb2F0
cyBjYW4gc2hyaW5rIHRoZSBsaW5lcyBpbnNpZGUgSUZDcykKKyAgICAgICAgMi4gd2UgYXJlIGFi
b3V0IHRvIGNvbXB1dGUgdGhlIG5vbi1zdGF0aWMgdmVydGljYWwgcG9zaXRpb24gb2YgYSBmbG9h
dCBhdm9pZGVyIGJsb2NrIGxldmVsIGJveC4KKworICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEluRmxvd0NvbnRlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGlj
VmVydGljYWxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0
dGluZ0NvbnRleHQ6OmNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3Jz
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6cHJl
Y29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JGb3JtYXR0aW5nUm9vdCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVQb3NpdGlvblRvQXZv
aWRGbG9hdHMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlVmVydGljYWxQb3NpdGlvbkZvckZsb2F0Q2xlYXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljUG9zaXRp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbkZvckZvcm1hdHRpbmdSb290
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6Y29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JGbG9hdENsZWFyKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
aGFzUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRmxvYXRpbmdQb3Np
dGlvbik6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zv
cm1hdHRpbmdDb250ZXh0Lmg6CisKIDIwMjAtMDItMDggIFphbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtCRkNdIFJlbW92ZSBlc3RhYmxpc2hlc0Jsb2NrRm9y
bWF0dGluZ0NvbnRleHRPbmx5IGFuZCBlc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0
T25seQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9C
bG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggYWI4ZjJjYWNhMjI1ZWMw
NWQ0OTM0MWEyNmQ1ZjNiYzFiODExYzhhZi4uODk1NGI0NmUxMTkwYmE3YzQ0YjI0YjBkNjEyMjFm
ZTExYmUwMDZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0
dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0xMjAsMTMg
KzEyMCwxNCBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEluRmxvd0NvbnRl
bnQoSW52YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvbgogICAgICAgICAgICAgYXV0byB2ZXJ0
aWNhbENvbnN0cmFpbnRzID0gdmVydGljYWxDb25zdHJhaW50c0ZvckxheW91dEJveChsYXlvdXRC
b3gpOwogCiAgICAgICAgICAgICBjb21wdXRlQm9yZGVyQW5kUGFkZGluZyhsYXlvdXRCb3gsIGhv
cml6b250YWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2spOwotICAgICAgICAgICAgY29tcHV0
ZVN0YXRpY1ZlcnRpY2FsUG9zaXRpb24oZmxvYXRpbmdDb250ZXh0LCBsYXlvdXRCb3gsIGhvcml6
b250YWxDb25zdHJhaW50cywgdmVydGljYWxDb25zdHJhaW50cyk7CisgICAgICAgICAgICBjb21w
dXRlU3RhdGljVmVydGljYWxQb3NpdGlvbihsYXlvdXRCb3gsIHZlcnRpY2FsQ29uc3RyYWludHMp
OwogICAgICAgICAgICAgY29tcHV0ZVdpZHRoQW5kTWFyZ2luKGZsb2F0aW5nQ29udGV4dCwgbGF5
b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOwogICAgICAgICAgICAgY29tcHV0ZVN0YXRp
Y0hvcml6b250YWxQb3NpdGlvbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cyk7CiAK
ICAgICAgICAgICAgIGlmIChsYXlvdXRCb3guZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgp
KSB7CiAgICAgICAgICAgICAgICAgaWYgKGlzPENvbnRhaW5lcj4obGF5b3V0Qm94KSAmJiBkb3du
Y2FzdDxDb250YWluZXI+KGxheW91dEJveCkuaGFzSW5GbG93T3JGbG9hdGluZ0NoaWxkKCkpIHsK
ICAgICAgICAgICAgICAgICAgICAgLy8gTGF5b3V0IHRoZSBpbmZsb3cgZGVzY2VuZGFudHMgb2Yg
dGhpcyBmb3JtYXR0aW5nIGNvbnRleHQgcm9vdC4KKyAgICAgICAgICAgICAgICAgICAgcHJlY29t
cHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JGb3JtYXR0aW5nUm9vdChmbG9hdGluZ0NvbnRleHQsIGxh
eW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKICAg
ICAgICAgICAgICAgICAgICAgYXV0byYgcm9vdERpc3BsYXlCb3ggPSBnZW9tZXRyeUZvckJveChs
YXlvdXRCb3gpOwogICAgICAgICAgICAgICAgICAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50
c0ZvckZvcm1hdHRpbmdDb250ZXh0ID0gR2VvbWV0cnk6Omhvcml6b250YWxDb25zdHJhaW50c0Zv
ckluRmxvdyhyb290RGlzcGxheUJveCk7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gdmVydGlj
YWxDb25zdHJhaW50c0ZvckZvcm1hdHRpbmdDb250ZXh0ID0gR2VvbWV0cnk6OnZlcnRpY2FsQ29u
c3RyYWludHNGb3JJbkZsb3cocm9vdERpc3BsYXlCb3gpOwpAQCAtMTU4LDExICsxNTksMTEgQEAg
dm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50KEludmFsaWRh
dGlvblN0YXRlJiBpbnZhbGlkYXRpb24KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIC8vIFJl
c29sdmUgZmluYWwgcG9zaXRpb25zLgogICAgICAgICAgICAgcGxhY2VJbkZsb3dQb3NpdGlvbmVk
Q2hpbGRyZW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOwotICAgICAgICAgICAg
aWYgKGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpKSB7Ci0gICAgICAgICAgICAgICAg
Y29tcHV0ZUZsb2F0aW5nUG9zaXRpb24oZmxvYXRpbmdDb250ZXh0LCBsYXlvdXRCb3gpOwotICAg
ICAgICAgICAgICAgIGZsb2F0aW5nQ29udGV4dC5hcHBlbmQobGF5b3V0Qm94KTsKLSAgICAgICAg
ICAgIH0gZWxzZSBpZiAobGF5b3V0Qm94LmlzRmxvYXRBdm9pZGVyKCkpCi0gICAgICAgICAgICAg
ICAgY29tcHV0ZVBvc2l0aW9uVG9Bdm9pZEZsb2F0cyhmbG9hdGluZ0NvbnRleHQsIGxheW91dEJv
eCk7CisgICAgICAgICAgICBpZiAobGF5b3V0Qm94LmlzRmxvYXRBdm9pZGVyKCkpIHsKKyAgICAg
ICAgICAgICAgICBjb21wdXRlUG9zaXRpb25Ub0F2b2lkRmxvYXRzKGZsb2F0aW5nQ29udGV4dCwg
bGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMsIHZlcnRpY2FsQ29uc3RyYWludHMpOwor
ICAgICAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkKKyAg
ICAgICAgICAgICAgICAgICAgZmxvYXRpbmdDb250ZXh0LmFwcGVuZChsYXlvdXRCb3gpOworICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoYXBwZW5kTmV4dFRvTGF5b3V0UXVldWUobGF5
b3V0Qm94LCBMYXlvdXREaXJlY3Rpb246OlNpYmxpbmcpKQogICAgICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMjIyLDEzICsyMjMsOSBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnBsYWNl
SW5GbG93UG9zaXRpb25lZENoaWxkcmVuKGNvbnN0IEJveCYgbGF5b3V0Qm94LAogICAgIExPR19X
SVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJFbmQ6IG1vdmUg
aW4tZmxvdyBwb3NpdGlvbmVkIGNoaWxkcmVuIC0+IHBhcmVudDogIiA8PCAmbGF5b3V0Qm94KTsK
IH0KIAotdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljVmVydGljYWxQ
b3NpdGlvbihjb25zdCBGbG9hdGluZ0NvbnRleHQmIGZsb2F0aW5nQ29udGV4dCwgY29uc3QgQm94
JiBsYXlvdXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+
JiBob3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENv
bnN0cmFpbnRzPiYgdmVydGljYWxDb25zdHJhaW50cykKK3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6Y29tcHV0ZVN0YXRpY1ZlcnRpY2FsUG9zaXRpb24oY29uc3QgQm94JiBsYXlvdXRCb3gs
IGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYgdmVydGljYWxDb25z
dHJhaW50cykKIHsKICAgICBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGxheW91dEJveCku
c2V0VG9wKGdlb21ldHJ5KCkuc3RhdGljVmVydGljYWxQb3NpdGlvbihsYXlvdXRCb3gsIHZlcnRp
Y2FsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrKSk7Ci0gICAgaWYgKGxheW91dEJveC5oYXNG
bG9hdENsZWFyKCkpCi0gICAgICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9y
RmxvYXRDbGVhcihmbG9hdGluZ0NvbnRleHQsIGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFp
bnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKLSAgICBlbHNlIGlmIChsYXlvdXRCb3guZXN0YWJs
aXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKQotICAgICAgICBjb21wdXRlRXN0aW1hdGVkVmVydGlj
YWxQb3NpdGlvbkZvckZvcm1hdHRpbmdSb290KGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFp
bnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKIH0KIAogdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYgaG9yaXpvbnRh
bENvbnN0cmFpbnRzKQpAQCAtMjM2LDEyICsyMzMsNiBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbXB1dGVTdGF0aWNIb3Jpem9udGFsUG9zaXRpb24oY29uc3QgQm94JiBsYXlvdXRC
bwogICAgIGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3gobGF5b3V0Qm94KS5zZXRMZWZ0KGdl
b21ldHJ5KCkuc3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGxheW91dEJveCwgaG9yaXpvbnRhbENv
bnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jaykpOwogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbXB1dGVTdGF0aWNQb3NpdGlvbihjb25zdCBGbG9hdGluZ0NvbnRleHQmIGZsb2F0
aW5nQ29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxI
b3Jpem9udGFsQ29uc3RyYWludHM+JiBob3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0IENvbnN0
cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYgdmVydGljYWxDb25zdHJhaW50cykKLXsK
LSAgICBjb21wdXRlU3RhdGljVmVydGljYWxQb3NpdGlvbihmbG9hdGluZ0NvbnRleHQsIGxheW91
dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKLSAgICBj
b21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0
cmFpbnRzKTsKLX0KLQogdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRXN0aW1h
dGVkVmVydGljYWxQb3NpdGlvbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgSG9yaXpvbnRh
bENvbnN0cmFpbnRzJiBob3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0IFZlcnRpY2FsQ29uc3Ry
YWludHMmIHZlcnRpY2FsQ29uc3RyYWludHMpCiB7CiAgICAgYXV0byBjb21wdXRlZFZlcnRpY2Fs
TWFyZ2luID0gZ2VvbWV0cnkoKS5jb21wdXRlZFZlcnRpY2FsTWFyZ2luKGxheW91dEJveCwgaG9y
aXpvbnRhbENvbnN0cmFpbnRzKTsKQEAgLTI3NCw2ICsyNjUsNyBAQCB2b2lkIEJsb2NrRm9ybWF0
dGluZ0NvbnRleHQ6OmNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3Jz
KGNvbnN0CiAgICAgLy8gU28gd2hlbiB3ZSBnZXQgdG8gdGhlIHBvaW50IHdoZXJlIHdlIGludGVy
c2VjdCB0aGUgYm94IHdpdGggdGhlIGZsb2F0IHRvIGRlY2lkZSBpZiB0aGUgYm94IG5lZWRzIHRv
IG1vdmUsIHdlIGRvbid0IHlldCBoYXZlIHRoZSBmaW5hbCB2ZXJ0aWNhbCBwb3NpdGlvbi4KICAg
ICAvLwogICAgIC8vIFRoZSBpZGVhIGhlcmUgaXMgdGhhdCBhcyBsb25nIGFzIHdlIGRvbid0IGNy
b3NzIHRoZSBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQgYm91bmRhcnksIHdlIHNob3VsZCBiZSBh
YmxlIHRvIHByZS1jb21wdXRlIHRoZSBmaW5hbCB0b3AgcG9zaXRpb24uCisgICAgLy8gRklYTUU6
IHdlIGN1cnJlbnRseSBkb24ndCBhY2NvdW50IGZvciB0aGUgImNsZWFyIiBwcm9wZXJ0eSB3aGVu
IGNvbXB1dGluZyB0aGUgZmluYWwgcG9zaXRpb24gZm9yIGFuIGFuY2VzdG9yLgogICAgIGZvciAo
YXV0byogYW5jZXN0b3IgPSBsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7IGFuY2VzdG9yICYm
ICFhbmNlc3Rvci0+ZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCk7IGFuY2VzdG9y
ID0gYW5jZXN0b3ItPmNvbnRhaW5pbmdCbG9jaygpKSB7CiAgICAgICAgIC8vIEZJWE1FOiB3aXRo
IGluY3JlbWVudGFsIGxheW91dCwgd2UgbWlnaHQgYWN0dWFsbHkgaGF2ZSBhIHZhbGlkIChub24t
ZXN0aW1hdGVkKSBtYXJnaW4gdG9wIGFzIHdlbGwuCiAgICAgICAgIGlmIChoYXNFc3RpbWF0ZWRN
YXJnaW5CZWZvcmUoKmFuY2VzdG9yKSkKQEAgLTI5MCwzNCArMjgyLDQ5IEBAIHZvaWQgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNl
c3RvcnMoY29uc3QKICAgICB9CiB9CiAKLXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29t
cHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JGb3JtYXR0aW5nUm9vdChjb25zdCBCb3gm
IGxheW91dEJveCwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4m
IGhvcml6b250YWxDb25zdHJhaW50cywgY29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29u
c3RyYWludHM+JiB2ZXJ0aWNhbENvbnN0cmFpbnRzKQordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0OjpwcmVjb21wdXRlVmVydGljYWxQb3NpdGlvbkZvckZvcm1hdHRpbmdSb290KGNvbnN0IEZs
b2F0aW5nQ29udGV4dCYgZmxvYXRpbmdDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgY29u
c3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mIGhvcml6b250YWxDb25z
dHJhaW50cywgY29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+JiB2ZXJ0
aWNhbENvbnN0cmFpbnRzKQogewogICAgIEFTU0VSVChsYXlvdXRCb3guZXN0YWJsaXNoZXNGb3Jt
YXR0aW5nQ29udGV4dCgpKTsKLSAgICBBU1NFUlQoIWxheW91dEJveC5oYXNGbG9hdENsZWFyKCkp
OworICAgIGlmIChsYXlvdXRCb3guaXNGbG9hdEF2b2lkZXIoKSAmJiAhbGF5b3V0Qm94Lmhhc0Zs
b2F0Q2xlYXIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIC8vIFdlIG5lZWQgdGhlIGZpbmFsIHZl
cnRpY2FsIHBvc2l0aW9uIHdoZW4gdGhlIGZvcm1hdHRpbmcgY29udGV4dCBpbmhlcml0cyBmbG9h
dHMgZnJvbSB0aGUgcGFyZW50IEZDLgorICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0
aW9uRm9yQW5jZXN0b3JzKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNh
bENvbnN0cmFpbnRzKTsKKyAgICBjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbihsYXlv
dXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2ssIHZlcnRpY2FsQ29u
c3RyYWludHMuY29udGFpbmluZ0Jsb2NrKTsKKyAgICBpZiAobGF5b3V0Qm94Lmhhc0Zsb2F0Q2xl
YXIoKSkgeworICAgICAgICAvLyBpZiB3ZSBqdXN0IGxldCB0aGUgYm94IHNpdCBhdCB0aGUgc3Rh
dGljIHZlcnRpY2FsIHBvc2l0aW9uLCB3ZSBtaWdodCBmaW5kIHVucmVsYXRlZCBmbG9hdCBib3hl
cyB0aGVyZSAoYm94ZXMgdGhhdCB3ZSBuZWVkIHRvIGNsZWFyKS4KKyAgICAgICAgY29tcHV0ZVZl
cnRpY2FsUG9zaXRpb25Gb3JGbG9hdENsZWFyKGZsb2F0aW5nQ29udGV4dCwgbGF5b3V0Qm94KTsK
KyAgICB9Cit9CiAKK3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVBvc2l0aW9u
VG9Bdm9pZEZsb2F0cyhjb25zdCBGbG9hdGluZ0NvbnRleHQmIGZsb2F0aW5nQ29udGV4dCwgY29u
c3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3Ry
YWludHM+JiBob3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0
aWNhbENvbnN0cmFpbnRzPiYgdmVydGljYWxDb25zdHJhaW50cykKK3sKKyAgICBBU1NFUlQobGF5
b3V0Qm94LmlzRmxvYXRBdm9pZGVyKCkpOworICAgIC8vIEluIG9yZGVyIHRvIHBvc2l0aW9uIGEg
ZmxvYXQgYXZvaWRlciB3ZSBuZWVkIHRvIGtub3cgaXRzIHZlcnRpY2FsIHBvc2l0aW9uIHJlbGF0
aXZlIHRvIGl0cyBmb3JtYXR0aW5nIGNvbnRleHQgcm9vdCAoYW5kIG5vdCBqdXN0IGl0cyBjb250
YWluaW5nIGJsb2NrKSwKKyAgICAvLyBiZWNhdXNlIGFsbCB0aGUgYWxyZWFkeS1wbGFjZWQgZmxv
YXRzIChmbG9hdHMgdGhhdCB3ZSBhcmUgdHJ5aW5nIHRvIGF2b2lkIGhlcmUpIGluIHRoaXMgQkZD
IG1pZ2h0IGJlbG9uZworICAgIC8vIHRvIGEgZGlmZmVyZW50IHNldCBvZiBjb250YWluaW5nIGJs
b2NrcyAoYnV0IHRoZXkgYWxsIGRlc2NlbmRhbnRzIG9mIHRoZSBCRkMgcm9vdCkuCisgICAgLy8g
SG93ZXZlciBhY2NvcmRpbmcgdG8gdGhlIEJGQyBydWxlcywgYXQgdGhpcyBwb2ludCBvZiB0aGUg
bGF5b3V0IGZsb3cgd2UgZG9uJ3QgeWV0IGhhdmUgY29tcHV0ZWQgdmVydGljYWwgcG9zaXRpb25z
IGZvciB0aGUgYW5jZXN0b3JzLgogICAgIGlmIChsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9u
ZWQoKSkgewogICAgICAgICBjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlvbkZvckFuY2Vz
dG9ycyhsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cywgdmVydGljYWxDb25zdHJhaW50
cyk7CisgICAgICAgIGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3gobGF5b3V0Qm94KS5zZXRU
b3BMZWZ0KGZsb2F0aW5nQ29udGV4dC5wb3NpdGlvbkZvckZsb2F0KGxheW91dEJveCkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQotCi0gICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRp
b24obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrLCB2ZXJ0
aWNhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jayk7CisgICAgLy8gTm9uLWZsb2F0IHBvc2l0
aW9uZWQgZmxvYXQgYXZvaWRlcnMgKGZvcm1hdHRpbmcgY29udGV4dCByb290cyBhbmQgY2xlYXIg
Ym94ZXMpIHNob3VsZCBiZSBmaW5lIHVubGVzcyB0aGVyZSBhcmUgZmxvYXRzIGluIHRoaXMgY29u
dGV4dC4KKyAgICBpZiAoZmxvYXRpbmdDb250ZXh0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
OwogICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yQW5jZXN0b3JzKGxheW91
dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKKyAgICBp
ZiAobGF5b3V0Qm94Lmhhc0Zsb2F0Q2xlYXIoKSkKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVWZXJ0
aWNhbFBvc2l0aW9uRm9yRmxvYXRDbGVhcihmbG9hdGluZ0NvbnRleHQsIGxheW91dEJveCk7CiAK
LSAgICAvLyBXZSBvbmx5IG5lZWQgdGhlIGZpbmFsIHZlcnRpY2FsIHBvc2l0aW9uIGlmIHRoZSBm
b3JtYXR0aW5nIGNvbnRleHQgZG9lcyBsZXQgaW50cnVzaXZlIGZsb2F0cyBpbiAoYWthIG5vdCBh
IGZsb2F0IGF2b2lkZXIpLgotICAgIGlmICghbGF5b3V0Qm94LmlzRmxvYXRBdm9pZGVyKCkpIHsK
LSAgICAgICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb24obGF5b3V0Qm94LCBob3Jp
em9udGFsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrLCB2ZXJ0aWNhbENvbnN0cmFpbnRzLmNv
bnRhaW5pbmdCbG9jayk7Ci0gICAgICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9u
Rm9yQW5jZXN0b3JzKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENv
bnN0cmFpbnRzKTsKLSAgICB9CisgICAgQVNTRVJUKGxheW91dEJveC5lc3RhYmxpc2hlc0Zvcm1h
dHRpbmdDb250ZXh0KCkpOworICAgIGlmIChhdXRvIGFkanVzdGVkUG9zaXRpb24gPSBmbG9hdGlu
Z0NvbnRleHQucG9zaXRpb25Gb3JGb3JtYXR0aW5nQ29udGV4dFJvb3QobGF5b3V0Qm94KSkKKyAg
ICAgICAgZm9ybWF0dGluZ1N0YXRlKCkuZGlzcGxheUJveChsYXlvdXRCb3gpLnNldFRvcExlZnQo
KmFkanVzdGVkUG9zaXRpb24pOwogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNv
bXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yRmxvYXRDbGVhcihjb25zdCBGbG9hdGlu
Z0NvbnRleHQmIGZsb2F0aW5nQ29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IENv
bnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiBob3Jpem9udGFsQ29uc3RyYWlu
dHMsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYgdmVydGljYWxD
b25zdHJhaW50cykKK3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVZlcnRpY2Fs
UG9zaXRpb25Gb3JGbG9hdENsZWFyKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYgZmxvYXRpbmdDb250
ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94Lmhhc0Zs
b2F0Q2xlYXIoKSk7CiAgICAgaWYgKGZsb2F0aW5nQ29udGV4dC5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybjsKLSAgICAvLyBUaGUgc3RhdGljIHBvc2l0aW9uIHdpdGggY2xlYXIgcmVxdWlyZXMg
bWFyZ2luIGVzaXRtYXRpb24gdG8gc2VlIGlmIGNsZWFyYW5jZSBpcyBuZWVkZWQuCi0gICAgY29t
cHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb24obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3Ry
YWludHMuY29udGFpbmluZ0Jsb2NrLCB2ZXJ0aWNhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9j
ayk7Ci0gICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JBbmNlc3RvcnMobGF5
b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMsIHZlcnRpY2FsQ29uc3RyYWludHMpOwogICAg
IGF1dG8gdmVydGljYWxQb3NpdGlvbkFuZENsZWFyYW5jZSA9IGZsb2F0aW5nQ29udGV4dC52ZXJ0
aWNhbFBvc2l0aW9uV2l0aENsZWFyYW5jZShsYXlvdXRCb3gpOwogICAgIGlmICghdmVydGljYWxQ
b3NpdGlvbkFuZENsZWFyYW5jZS5wb3NpdGlvbikgewogICAgICAgICBBU1NFUlQoIXZlcnRpY2Fs
UG9zaXRpb25BbmRDbGVhcmFuY2UuY2xlYXJhbmNlKTsKQEAgLTMzMSw0MCArMzM4LDYgQEAgdm9p
ZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRXN0aW1hdGVkVmVydGljYWxQb3NpdGlv
bkZvckZsb2F0Q2xlYXIoY29uc3QKICAgICAgICAgZGlzcGxheUJveC5zZXRIYXNDbGVhcmFuY2Uo
KTsKIH0KIAotI2lmIEFTU0VSVF9FTkFCTEVECi1ib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
Omhhc1ByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAot
ewotICAgIGZvciAoYXV0byogYW5jZXN0b3IgPSBsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7
IGFuY2VzdG9yICYmICFhbmNlc3Rvci0+ZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
KCk7IGFuY2VzdG9yID0gYW5jZXN0b3ItPmNvbnRhaW5pbmdCbG9jaygpKSB7Ci0gICAgICAgIGlm
IChoYXNFc3RpbWF0ZWRNYXJnaW5CZWZvcmUoKmFuY2VzdG9yKSkKLSAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQot
I2VuZGlmIC8vIEFTU0VSVF9FTkFCTEVECi0KLXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
Y29tcHV0ZUZsb2F0aW5nUG9zaXRpb24oY29uc3QgRmxvYXRpbmdDb250ZXh0JiBmbG9hdGluZ0Nv
bnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94KQotewotICAgIEFTU0VSVChsYXlvdXRCb3guaXNG
bG9hdGluZ1Bvc2l0aW9uZWQoKSk7Ci0gICAgQVNTRVJUKGhhc1ByZWNvbXB1dGVkTWFyZ2luQmVm
b3JlKGxheW91dEJveCkpOwotICAgIGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3gobGF5b3V0
Qm94KS5zZXRUb3BMZWZ0KGZsb2F0aW5nQ29udGV4dC5wb3NpdGlvbkZvckZsb2F0KGxheW91dEJv
eCkpOwotfQotCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVQb3NpdGlvblRv
QXZvaWRGbG9hdHMoY29uc3QgRmxvYXRpbmdDb250ZXh0JiBmbG9hdGluZ0NvbnRleHQsIGNvbnN0
IEJveCYgbGF5b3V0Qm94KQotewotICAgIC8vIEZvcm1hdHRpbmcgY29udGV4dCByb290cyBhdm9p
ZCBmbG9hdHMuCi0gICAgQVNTRVJUKGxheW91dEJveC5lc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQoKSk7Ci0gICAgQVNTRVJUKCFsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQo
KSk7Ci0gICAgQVNTRVJUKCFsYXlvdXRCb3guaGFzRmxvYXRDbGVhcigpKTsKLSAgICBBU1NFUlQo
aGFzUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUobGF5b3V0Qm94KSk7Ci0KLSAgICBpZiAoZmxvYXRp
bmdDb250ZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGF1dG8gYWRq
dXN0ZWRQb3NpdGlvbiA9IGZsb2F0aW5nQ29udGV4dC5wb3NpdGlvbkZvckZvcm1hdHRpbmdDb250
ZXh0Um9vdChsYXlvdXRCb3gpKQotICAgICAgICBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94
KGxheW91dEJveCkuc2V0VG9wTGVmdCgqYWRqdXN0ZWRQb3NpdGlvbik7Ci19Ci0KIHZvaWQgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEZsb2F0aW5n
Q29udGV4dCYgZmxvYXRpbmdDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgQ29u
c3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mIGhvcml6b250YWxDb25zdHJhaW50
cykKIHsKICAgICBhdXRvIGNvbXB1dGUgPSBbJl0oT3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZFdp
ZHRoKSAtPiBDb250ZW50V2lkdGhBbmRNYXJnaW4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQu
aAppbmRleCA3YjAyZDc1Zjc5NzBiODM4YTQyYWYxOGNmMWIyNjA4NWE4OWJkZTk4Li4xYzFmYjdj
MTk5MDk4M2I4NjNiYjg2M2M1ZjZmMzBjYmIzMjFkMTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuaApAQCAtNjMsMTUgKzYzLDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRlSGVp
Z2h0QW5kTWFyZ2luKGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFs
Q29uc3RyYWludHM+JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+
Jik7CiAKICAgICB2b2lkIGNvbXB1dGVTdGF0aWNIb3Jpem9udGFsUG9zaXRpb24oY29uc3QgQm94
JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mKTsKLSAgICB2
b2lkIGNvbXB1dGVTdGF0aWNWZXJ0aWNhbFBvc2l0aW9uKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYs
IGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+
JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+Jik7Ci0gICAgdm9p
ZCBjb21wdXRlU3RhdGljUG9zaXRpb24oY29uc3QgRmxvYXRpbmdDb250ZXh0JiwgY29uc3QgQm94
JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mLCBjb25zdCBD
b25zdHJhaW50c1BhaXI8VmVydGljYWxDb25zdHJhaW50cz4mKTsKLSAgICB2b2lkIGNvbXB1dGVG
bG9hdGluZ1Bvc2l0aW9uKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYpOwotICAg
IHZvaWQgY29tcHV0ZVBvc2l0aW9uVG9Bdm9pZEZsb2F0cyhjb25zdCBGbG9hdGluZ0NvbnRleHQm
LCBjb25zdCBCb3gmKTsKKyAgICB2b2lkIGNvbXB1dGVTdGF0aWNWZXJ0aWNhbFBvc2l0aW9uKGNv
bnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYpOwor
ICAgIHZvaWQgY29tcHV0ZVBvc2l0aW9uVG9Bdm9pZEZsb2F0cyhjb25zdCBGbG9hdGluZ0NvbnRl
eHQmLCBjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFp
bnRzPiYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYpOworICAg
IHZvaWQgY29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JGbG9hdENsZWFyKGNvbnN0IEZsb2F0aW5n
Q29udGV4dCYsIGNvbnN0IEJveCYpOwogCiAgICAgdm9pZCBjb21wdXRlRXN0aW1hdGVkVmVydGlj
YWxQb3NpdGlvbihjb25zdCBCb3gmLCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmLCBjb25z
dCBWZXJ0aWNhbENvbnN0cmFpbnRzJik7CiAgICAgdm9pZCBjb21wdXRlRXN0aW1hdGVkVmVydGlj
YWxQb3NpdGlvbkZvckFuY2VzdG9ycyhjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8
SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENv
bnN0cmFpbnRzPiYpOwotICAgIHZvaWQgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25G
b3JGb3JtYXR0aW5nUm9vdChjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpv
bnRhbENvbnN0cmFpbnRzPiYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFp
bnRzPiYpOwotICAgIHZvaWQgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JGbG9h
dENsZWFyKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFp
bnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPFZl
cnRpY2FsQ29uc3RyYWludHM+Jik7CisgICAgdm9pZCBwcmVjb21wdXRlVmVydGljYWxQb3NpdGlv
bkZvckZvcm1hdHRpbmdSb290KGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYsIGNv
bnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiwgY29uc3QgQ29uc3Ry
YWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+Jik7CiAKICAgICBJbnRyaW5zaWNXaWR0aENv
bnN0cmFpbnRzIGNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJhaW50cygpIG92ZXJyaWRlOwog
ICAgIExheW91dFVuaXQgdmVydGljYWxQb3NpdGlvbldpdGhNYXJnaW4oY29uc3QgQm94JiwgY29u
c3QgVXNlZFZlcnRpY2FsTWFyZ2luJiwgY29uc3QgVmVydGljYWxDb25zdHJhaW50cyYpIGNvbnN0
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>