<?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>218551</bug_id>
          
          <creation_ts>2020-11-03 20:08:41 -0800</creation_ts>
          <short_desc>[LFC][Integration] Let&apos;s compute display lines visual alignments first before the runs</short_desc>
          <delta_ts>2020-11-05 04:24:19 -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>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1704320</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-11-03 20:08:41 -0800</bug_when>
    <thetext>so that we can pre-compute some attributes that we need during run construction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704321</commentid>
    <comment_count>1</comment_count>
      <attachid>413138</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-11-03 20:18:13 -0800</bug_when>
    <thetext>Created attachment 413138
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704717</commentid>
    <comment_count>2</comment_count>
      <attachid>413245</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-11-04 20:42:30 -0800</bug_when>
    <thetext>Created attachment 413245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704799</commentid>
    <comment_count>3</comment_count>
      <attachid>413279</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-11-05 03:00:01 -0800</bug_when>
    <thetext>Created attachment 413279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704807</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-05 04:23:42 -0800</bug_when>
    <thetext>Committed r269424: &lt;https://trac.webkit.org/changeset/269424&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413279.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704808</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-05 04:24:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/71073877&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413138</attachid>
            <date>2020-11-03 20:18:13 -0800</date>
            <delta_ts>2020-11-04 18:54:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218551-20201103201812.patch</filename>
            <type>text/plain</type>
            <size>11333</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA1OWQ5OGRhMWJkYTRm
OTIwMTAxM2NlNzk3YWVhMDA2MjBiOThlYS4uYmE4YTNlYzgxNjBjYzRlYjEwM2RkNGQ2MTEwY2Jj
NDJhYjYyZTczZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTExLTAzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25d
IExldCdzIGNvbnN0cnVjdCBkaXNwbGF5IGxpbmVzIGZpcnN0IGJlZm9yZSB0aGUgcnVucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NTUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3dhcHBpbmcgdGhl
IGNvbnN0cnVjdGlvbiBvcmRlciBlbmFibGVzIHVzIHRvIHByZS1jb21wdXRlIHNvbWUgdmlzdWFs
IGFkanVzdGVtZW50IHByb3BlcnRpZXMgZHVyaW5nIGxpbmUgY29uc3RydWN0aW9uCisgICAgICAg
IHRoYXQgd2UgbGF0ZXIgdXNlIGR1cmluZyBydW4gY29uc3RydWN0aW9uIChlLmcuIHdoZXRoZXIg
dGhlIHJ1bnMgb24gdGhlIGxpbmUgbmVlZCB2ZXJ0aWNhbCBzbmFwcGluZykuCisgICAgICAgIFRo
aXMgcGF0Y2ggaXMgYWxzbyBpbiBwcmVwYXJhdGlvbiBmb3IgYWRkaW5nIHN1cHBvcnQgZm9yICJ0
ZXh0LW92ZXJmbG93OiBlbGxpcHNpcyIuIFRoZSBwcmUtY29tcHV0ZWQgCisgICAgICAgIExpbmVW
aXN1YWxBZGp1c3RtZW50Lm5lZWRzVHJhaWxpbmdDb250ZW50UmVwbGFjZW1lbnQgd2lsbCBkcml2
ZSB0aGUgY29udGVudCB0cnVuY2F0aW9uIGxvZ2ljIGZvciB0aGUgZWxsaXBzaXMuIAorCisgICAg
ICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6Y29uc3Ry
dWN0Q29udGVudCk6CisKIDIwMjAtMTEtMDMgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gSW50cm9kdWNlIExheW91dEludGVncmF0
aW9uOjpSdW46OnJlbmRlcmVkQ29udGVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNw
cAppbmRleCA0MjEwZWVmNWY5YTYyNDQ3MjY4N2MzYjE0YTdkNDdjMTg3YTY5NGQ2Li42OTE1MTUy
NWFjYWY4YThjYzllMGNlMTNjYTMwYWI3ZDEyNTJjNzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25M
aW5lTGF5b3V0LmNwcApAQCAtMTYxLDYzICsxNjEsMTQgQEAgdm9pZCBMaW5lTGF5b3V0Ojpjb25z
dHJ1Y3RDb250ZW50KCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfTsKIAotICAgIGF1dG8g
Y29uc3RydWN0RGlzcGxheUxpbmVSdW5zID0gWyZdIHsKLSAgICAgICAgYXV0byBpbml0aWFsQ29u
dGFpbmdCbG9ja1NpemUgPSBtX2xheW91dFN0YXRlLnZpZXdwb3J0U2l6ZSgpOwotICAgICAgICBz
dHJ1Y3QgTGluZUxlZ2FjeVZlcnRpY2FsUG9zaXRpb25Qb2xpY3kgewotICAgICAgICAgICAgc2l6
ZV90IGxpbmVJbmRleCB7IDAgfTsKLSAgICAgICAgICAgIGJvb2wgbmVlZHNJbnRlZ3JhbFBvc2l0
aW9uIHsgdHJ1ZSB9OyAKLSAgICAgICAgfTsKLSAgICAgICAgYXV0byBsaW5lTGVnYWN5VmVydGlj
YWxQb3NpdGlvblBvbGljeSA9IExpbmVMZWdhY3lWZXJ0aWNhbFBvc2l0aW9uUG9saWN5IHsgMCwg
bGluZU5lZWRzTGVnYWN5SW50ZWdyYWxWZXJ0aWNhbFBvc2l0aW9uKDApIH07Ci0gICAgICAgIGZv
ciAoYXV0byYgbGluZVJ1biA6IG1faW5saW5lRm9ybWF0dGluZ1N0YXRlLmxpbmVSdW5zKCkpIHsK
LSAgICAgICAgICAgIGF1dG8mIGxheW91dEJveCA9IGxpbmVSdW4ubGF5b3V0Qm94KCk7Ci0gICAg
ICAgICAgICBhdXRvIGNvbXB1dGVkSW5rT3ZlcmZsb3cgPSBbJl0gKGF1dG8gcnVuUmVjdCkgewot
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Igbm9uLXRleHQgaW5rIG92
ZXJmbG93LgotICAgICAgICAgICAgICAgIGlmICghbGluZVJ1bi50ZXh0KCkpCi0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiBydW5SZWN0OwotICAgICAgICAgICAgICAgIGF1dG8mIHN0eWxlID0g
bGF5b3V0Qm94LnN0eWxlKCk7Ci0gICAgICAgICAgICAgICAgYXV0byBpbmtPdmVyZmxvdyA9IHJ1
blJlY3Q7Ci0gICAgICAgICAgICAgICAgYXV0byBzdHJva2VPdmVyZmxvdyA9IHN0ZDo6Y2VpbChz
dHlsZS5jb21wdXRlZFN0cm9rZVdpZHRoKGNlaWxlZEludFNpemUoaW5pdGlhbENvbnRhaW5nQmxv
Y2tTaXplKSkpOwotICAgICAgICAgICAgICAgIGlua092ZXJmbG93LmluZmxhdGUoc3Ryb2tlT3Zl
cmZsb3cpOwotCi0gICAgICAgICAgICAgICAgYXV0byBsZXR0ZXJTcGFjaW5nID0gc3R5bGUuZm9u
dENhc2NhZGUoKS5sZXR0ZXJTcGFjaW5nKCk7Ci0gICAgICAgICAgICAgICAgaWYgKGxldHRlclNw
YWNpbmcgPCAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIExhc3QgbGV0dGVyJ3MgbmVnYXRp
dmUgc3BhY2luZyBzaHJpbmtzIGxvZ2ljYWwgcmVjdC4gUHVzaCBpdCB0byBpbmsgb3ZlcmZsb3cu
Ci0gICAgICAgICAgICAgICAgICAgIGlua092ZXJmbG93LmV4cGFuZCgtbGV0dGVyU3BhY2luZywg
eyB9KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGlua092ZXJm
bG93OwotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIGF1dG8gcnVuUmVjdCA9IEZsb2F0UmVj
dCB7IGxpbmVSdW4ubG9naWNhbFJlY3QoKSB9OwotICAgICAgICAgICAgLy8gSW5saW5lIGJveGVz
IGFyZSByZWxhdGl2ZSB0byB0aGUgbGluZSBib3ggd2hpbGUgZmluYWwgUnVucyBuZWVkIHRvIGJl
IHJlbGF0aXZlIHRvIHRoZSBwYXJlbnQgQm94Ci0gICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxk
bid0IHdlIGp1c3QgbGVhdmUgdGhlbSBiZSByZWxhdGl2ZSB0byB0aGUgbGluZSBib3g/Ci0gICAg
ICAgICAgICBhdXRvIGxpbmVJbmRleCA9IGxpbmVSdW4ubGluZUluZGV4KCk7Ci0gICAgICAgICAg
ICBhdXRvIGxpbmVCb3hMb2dpY2FsUmVjdCA9IG1faW5saW5lRm9ybWF0dGluZ1N0YXRlLmxpbmVz
KClbbGluZUluZGV4XS5saW5lQm94TG9naWNhbFJlY3QoKTsKLSAgICAgICAgICAgIHJ1blJlY3Qu
bW92ZUJ5KHsgbGluZUJveExvZ2ljYWxSZWN0LmxlZnQoKSwgbGluZUJveExvZ2ljYWxSZWN0LnRv
cCgpIH0pOwotICAgICAgICAgICAgaWYgKGxpbmVJbmRleCAhPSBsaW5lTGVnYWN5VmVydGljYWxQ
b3NpdGlvblBvbGljeS5saW5lSW5kZXgpCi0gICAgICAgICAgICAgICAgbGluZUxlZ2FjeVZlcnRp
Y2FsUG9zaXRpb25Qb2xpY3kgPSBMaW5lTGVnYWN5VmVydGljYWxQb3NpdGlvblBvbGljeSB7IGxp
bmVJbmRleCwgbGluZU5lZWRzTGVnYWN5SW50ZWdyYWxWZXJ0aWNhbFBvc2l0aW9uKGxpbmVJbmRl
eCkgfTsKLSAgICAgICAgICAgIGlmIChsaW5lTGVnYWN5VmVydGljYWxQb3NpdGlvblBvbGljeS5u
ZWVkc0ludGVncmFsUG9zaXRpb24pCi0gICAgICAgICAgICAgICAgcnVuUmVjdC5zZXRZKHJvdW5k
VG9JbnQocnVuUmVjdC55KCkpKTsKLQotICAgICAgICAgICAgV1RGOjpPcHRpb25hbDxSdW46OlRl
eHRDb250ZW50PiB0ZXh0Q29udGVudDsKLSAgICAgICAgICAgIGlmIChhdXRvIHRleHQgPSBsaW5l
UnVuLnRleHQoKSkgewotICAgICAgICAgICAgICAgIGF1dG8gYWRqdXN0ZWRDb250ZW50VG9SZW5k
ZXJlciA9IFsmXSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdoZXJl
IHdlIGNyZWF0ZSBzdHJpbmdzIHdpdGggdHJhaWxpbmcgaHlwaGVucyBhbmQgdHJ1bmNhdGUvcmVw
bGFjZSBjb250ZW50IHdpdGggZWxsaXBzaXMuCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIHRleHRDb250ZW50
ID0gUnVuOjpUZXh0Q29udGVudCB7IHRleHQtPnN0YXJ0KCksIHRleHQtPmxlbmd0aCgpLCB0ZXh0
LT5jb250ZW50KCksIGFkanVzdGVkQ29udGVudFRvUmVuZGVyZXIoKSwgdGV4dC0+bmVlZHNIeXBo
ZW4oKSB9OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXV0byBleHBhbnNpb24gPSBSdW46
OkV4cGFuc2lvbiB7IGxpbmVSdW4uZXhwYW5zaW9uKCkuYmVoYXZpb3IsIGxpbmVSdW4uZXhwYW5z
aW9uKCkuaG9yaXpvbnRhbEV4cGFuc2lvbiB9OwotICAgICAgICAgICAgYXV0byBkaXNwbGF5UnVu
ID0gUnVuIHsgbGluZUluZGV4LCBsYXlvdXRCb3gsIHJ1blJlY3QsIGNvbXB1dGVkSW5rT3ZlcmZs
b3cocnVuUmVjdCksIGV4cGFuc2lvbiwgdGV4dENvbnRlbnQgfTsKLSAgICAgICAgICAgIGRpc3Bs
YXlJbmxpbmVDb250ZW50LnJ1bnMuYXBwZW5kKGRpc3BsYXlSdW4pOwotCi0gICAgICAgICAgICBp
ZiAobGF5b3V0Qm94LmlzUmVwbGFjZWRCb3goKSkgewotICAgICAgICAgICAgICAgIGF1dG8mIHJl
bmRlcmVyID0gZG93bmNhc3Q8UmVuZGVyQm94PihtX2JveFRyZWUucmVuZGVyZXJGb3JMYXlvdXRC
b3gobGF5b3V0Qm94KSk7Ci0gICAgICAgICAgICAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBtX2xh
eW91dFN0YXRlLmdlb21ldHJ5Rm9yQm94KGxheW91dEJveCk7Ci0gICAgICAgICAgICAgICAgYXV0
byBib3JkZXJCb3hMb2NhdGlvbiA9IEZsb2F0UG9pbnQgeyBydW5SZWN0LngoKSArIHN0ZDo6bWF4
KGJveEdlb21ldHJ5Lm1hcmdpblN0YXJ0KCksIDBfbHUpLCBydW5SZWN0LnkoKSArIGJveEdlb21l
dHJ5Lm1hcmdpbkJlZm9yZSgpIH07Ci0gICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0TG9jYXRp
b24oZmxvb3JlZExheW91dFBvaW50KGJvcmRlckJveExvY2F0aW9uKSk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KKyAgICBhdXRvJiByb290U3R5bGUgPSByb290TGF5b3V0Qm94KCkuc3R5bGUo
KTsKKyAgICBhdXRvIHNob3VsZENoZWNrSG9yaXpvbnRhbE92ZXJmbG93Rm9yQ29udGVudFJlcGxh
Y2VtZW50ID0gcm9vdFN0eWxlLm92ZXJmbG93WCgpID09IE92ZXJmbG93OjpIaWRkZW4gJiYgcm9v
dFN0eWxlLnRleHRPdmVyZmxvdygpICE9IFRleHRPdmVyZmxvdzo6Q2xpcDsKKyAgICBzdHJ1Y3Qg
TGluZVZpc3VhbEFkanVzdG1lbnQgeworICAgICAgICBib29sIG5lZWRzSW50ZWdyYWxQb3NpdGlv
biB7IGZhbHNlIH07CisgICAgICAgIC8vIEl0J3Mgb25seSAndGV4dC1vdmVyZmxvdzogZWxsaXBz
aXMnIGZvciBub3cuCisgICAgICAgIGJvb2wgbmVlZHNUcmFpbGluZ0NvbnRlbnRSZXBsYWNlbWVu
dCB7IGZhbHNlIH07CiAgICAgfTsKLSAgICBjb25zdHJ1Y3REaXNwbGF5TGluZVJ1bnMoKTsKKyAg
ICBWZWN0b3I8TGluZVZpc3VhbEFkanVzdG1lbnQ+IHZpc3VhbEFkanVzdG1lbnRzRm9yTGluZXMo
bV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUubGluZXMoKS5zaXplKCkpOwogCiAgICAgYXV0byBjb25z
dHJ1Y3REaXNwbGF5TGluZXMgPSBbJl0gewogICAgICAgICBhdXRvJiBsaW5lcyA9IG1faW5saW5l
Rm9ybWF0dGluZ1N0YXRlLmxpbmVzKCk7CkBAIC0yMjYsNiArMTc3LDcgQEAgdm9pZCBMaW5lTGF5
b3V0Ojpjb25zdHJ1Y3RDb250ZW50KCkKICAgICAgICAgc2l6ZV90IHJ1bkluZGV4ID0gMDsKICAg
ICAgICAgZm9yIChzaXplX3QgbGluZUluZGV4ID0gMDsgbGluZUluZGV4IDwgbGluZXMuc2l6ZSgp
OyArK2xpbmVJbmRleCkgewogICAgICAgICAgICAgYXV0byYgbGluZSA9IGxpbmVzW2xpbmVJbmRl
eF07CisgICAgICAgICAgICBhdXRvIGxpbmVSZWN0ID0gRmxvYXRSZWN0IHsgbGluZS5sb2dpY2Fs
UmVjdCgpIH07CiAgICAgICAgICAgICBhdXRvIGxpbmVCb3hMb2dpY2FsUmVjdCA9IGxpbmUubGlu
ZUJveExvZ2ljYWxSZWN0KCk7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyB3aGVyZSB0
aGUgbG9naWNhbCB0byBwaHlzaWNhbCB0cmFuc2xhdGUgc2hvdWxkIGhhcHBlbi4KICAgICAgICAg
ICAgIGF1dG8gb3ZlcmZsb3dXaWR0aCA9IFsmXSB7CkBAIC0yNDEsMTMgKzE5MywxMyBAQCB2b2lk
IExpbmVMYXlvdXQ6OmNvbnN0cnVjdENvbnRlbnQoKQogICAgICAgICAgICAgYXV0byBsaW5lQm94
TG9naWNhbEJvdHRvbSA9IChsaW5lQm94TG9naWNhbFJlY3QudG9wKCkgLSBsaW5lLmxvZ2ljYWxU
b3AoKSkgKyBsaW5lQm94TG9naWNhbFJlY3QuaGVpZ2h0KCk7CiAgICAgICAgICAgICBhdXRvIG92
ZXJmbG93SGVpZ2h0ID0gc3RkOjptYXgobGluZS5sb2dpY2FsSGVpZ2h0KCksIGxpbmVCb3hMb2dp
Y2FsQm90dG9tKTsKICAgICAgICAgICAgIGF1dG8gc2Nyb2xsYWJsZU92ZXJmbG93UmVjdCA9IEZs
b2F0UmVjdCB7IGxpbmUubG9naWNhbExlZnQoKSwgbGluZS5sb2dpY2FsVG9wKCksIG92ZXJmbG93
V2lkdGgoKSwgb3ZlcmZsb3dIZWlnaHQgfTsKKyAgICAgICAgICAgIHZpc3VhbEFkanVzdG1lbnRz
Rm9yTGluZXNbbGluZUluZGV4XS5uZWVkc1RyYWlsaW5nQ29udGVudFJlcGxhY2VtZW50ID0gc2hv
dWxkQ2hlY2tIb3Jpem9udGFsT3ZlcmZsb3dGb3JDb250ZW50UmVwbGFjZW1lbnQgJiYgc2Nyb2xs
YWJsZU92ZXJmbG93UmVjdC53aWR0aCgpID4gbGluZVJlY3Qud2lkdGgoKTsKIAogICAgICAgICAg
ICAgYXV0byBmaXJzdFJ1bkluZGV4ID0gcnVuSW5kZXg7CiAgICAgICAgICAgICBhdXRvIGxpbmVJ
bmtPdmVyZmxvd1JlY3QgPSBzY3JvbGxhYmxlT3ZlcmZsb3dSZWN0OwogICAgICAgICAgICAgd2hp
bGUgKHJ1bkluZGV4IDwgcnVucy5zaXplKCkgJiYgcnVuc1tydW5JbmRleF0ubGluZUluZGV4KCkg
PT0gbGluZUluZGV4KQogICAgICAgICAgICAgICAgIGxpbmVJbmtPdmVyZmxvd1JlY3QudW5pdGUo
cnVuc1tydW5JbmRleCsrXS5pbmtPdmVyZmxvdygpKTsKICAgICAgICAgICAgIGF1dG8gcnVuQ291
bnQgPSBydW5JbmRleCAtIGZpcnN0UnVuSW5kZXg7Ci0gICAgICAgICAgICBhdXRvIGxpbmVSZWN0
ID0gRmxvYXRSZWN0IHsgbGluZS5sb2dpY2FsUmVjdCgpIH07CiAgICAgICAgICAgICAvLyBQYWlu
dGluZyBjb2RlIChzcGVjaWZpY2FsbHkgVGV4dFJ1bidzIHhQb3MpIG5lZWRzIHRoZSBsaW5lIGJv
eCBvZmZzZXQgdG8gYmUgYWJsZSB0byBjb21wdXRlIHRhYiBwb3NpdGlvbnMuCiAgICAgICAgICAg
ICBsaW5lUmVjdC5zZXRYKGxpbmVCb3hMb2dpY2FsUmVjdC5sZWZ0KCkpOwogICAgICAgICAgICAg
YXV0byBlbmNsb3NpbmdMaW5lUmVjdCA9IFsmXSB7CkBAIC0yNjcsMTIgKzIxOSw2NCBAQCB2b2lk
IExpbmVMYXlvdXQ6OmNvbnN0cnVjdENvbnRlbnQoKQogICAgICAgICAgICAgaWYgKGxpbmVOZWVk
c0xlZ2FjeUludGVncmFsVmVydGljYWxQb3NpdGlvbihsaW5lSW5kZXgpKSB7CiAgICAgICAgICAg
ICAgICAgbGluZVJlY3Quc2V0WShyb3VuZFRvSW50KGxpbmVSZWN0LnkoKSkpOwogICAgICAgICAg
ICAgICAgIGVuY2xvc2luZ0xpbmVSZWN0LnNldFkocm91bmRUb0ludChlbmNsb3NpbmdMaW5lUmVj
dC55KCkpKTsKKyAgICAgICAgICAgICAgICB2aXN1YWxBZGp1c3RtZW50c0ZvckxpbmVzW2xpbmVJ
bmRleF0ubmVlZHNJbnRlZ3JhbFBvc2l0aW9uID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGRpc3BsYXlJbmxpbmVDb250ZW50LmxpbmVzLmFwcGVuZCh7IGZpcnN0UnVuSW5kZXgs
IHJ1bkNvdW50LCBsaW5lUmVjdCwgZW5jbG9zaW5nTGluZVJlY3QsIHNjcm9sbGFibGVPdmVyZmxv
d1JlY3QsIGxpbmVJbmtPdmVyZmxvd1JlY3QsIGxpbmUuYmFzZWxpbmUoKSwgbGluZS5ob3Jpem9u
dGFsQWxpZ25tZW50T2Zmc2V0KCkgfSk7CiAgICAgICAgIH0KICAgICB9OwogICAgIGNvbnN0cnVj
dERpc3BsYXlMaW5lcygpOwogCisgICAgYXV0byBjb25zdHJ1Y3REaXNwbGF5TGluZVJ1bnMgPSBb
Jl0geworICAgICAgICBhdXRvIGluaXRpYWxDb250YWluZ0Jsb2NrU2l6ZSA9IG1fbGF5b3V0U3Rh
dGUudmlld3BvcnRTaXplKCk7CisgICAgICAgIGZvciAoYXV0byYgbGluZVJ1biA6IG1faW5saW5l
Rm9ybWF0dGluZ1N0YXRlLmxpbmVSdW5zKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIGxheW91dEJv
eCA9IGxpbmVSdW4ubGF5b3V0Qm94KCk7CisgICAgICAgICAgICBhdXRvIGNvbXB1dGVkSW5rT3Zl
cmZsb3cgPSBbJl0gKGF1dG8gcnVuUmVjdCkgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBB
ZGQgc3VwcG9ydCBmb3Igbm9uLXRleHQgaW5rIG92ZXJmbG93LgorICAgICAgICAgICAgICAgIGlm
ICghbGluZVJ1bi50ZXh0KCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBydW5SZWN0Owor
ICAgICAgICAgICAgICAgIGF1dG8mIHN0eWxlID0gbGF5b3V0Qm94LnN0eWxlKCk7CisgICAgICAg
ICAgICAgICAgYXV0byBpbmtPdmVyZmxvdyA9IHJ1blJlY3Q7CisgICAgICAgICAgICAgICAgYXV0
byBzdHJva2VPdmVyZmxvdyA9IHN0ZDo6Y2VpbChzdHlsZS5jb21wdXRlZFN0cm9rZVdpZHRoKGNl
aWxlZEludFNpemUoaW5pdGlhbENvbnRhaW5nQmxvY2tTaXplKSkpOworICAgICAgICAgICAgICAg
IGlua092ZXJmbG93LmluZmxhdGUoc3Ryb2tlT3ZlcmZsb3cpOworCisgICAgICAgICAgICAgICAg
YXV0byBsZXR0ZXJTcGFjaW5nID0gc3R5bGUuZm9udENhc2NhZGUoKS5sZXR0ZXJTcGFjaW5nKCk7
CisgICAgICAgICAgICAgICAgaWYgKGxldHRlclNwYWNpbmcgPCAwKSB7CisgICAgICAgICAgICAg
ICAgICAgIC8vIExhc3QgbGV0dGVyJ3MgbmVnYXRpdmUgc3BhY2luZyBzaHJpbmtzIGxvZ2ljYWwg
cmVjdC4gUHVzaCBpdCB0byBpbmsgb3ZlcmZsb3cuCisgICAgICAgICAgICAgICAgICAgIGlua092
ZXJmbG93LmV4cGFuZCgtbGV0dGVyU3BhY2luZywgeyB9KTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGlua092ZXJmbG93OworICAgICAgICAgICAgfTsKKyAgICAg
ICAgICAgIGF1dG8gcnVuUmVjdCA9IEZsb2F0UmVjdCB7IGxpbmVSdW4ubG9naWNhbFJlY3QoKSB9
OworICAgICAgICAgICAgLy8gSW5saW5lIGJveGVzIGFyZSByZWxhdGl2ZSB0byB0aGUgbGluZSBi
b3ggd2hpbGUgZmluYWwgUnVucyBuZWVkIHRvIGJlIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnQgQm94
CisgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxkbid0IHdlIGp1c3QgbGVhdmUgdGhlbSBiZSBy
ZWxhdGl2ZSB0byB0aGUgbGluZSBib3g/CisgICAgICAgICAgICBhdXRvIGxpbmVJbmRleCA9IGxp
bmVSdW4ubGluZUluZGV4KCk7CisgICAgICAgICAgICBhdXRvIGxpbmVCb3hMb2dpY2FsUmVjdCA9
IG1faW5saW5lRm9ybWF0dGluZ1N0YXRlLmxpbmVzKClbbGluZUluZGV4XS5saW5lQm94TG9naWNh
bFJlY3QoKTsKKyAgICAgICAgICAgIHJ1blJlY3QubW92ZUJ5KHsgbGluZUJveExvZ2ljYWxSZWN0
LmxlZnQoKSwgbGluZUJveExvZ2ljYWxSZWN0LnRvcCgpIH0pOworICAgICAgICAgICAgaWYgKHZp
c3VhbEFkanVzdG1lbnRzRm9yTGluZXNbbGluZUluZGV4XS5uZWVkc0ludGVncmFsUG9zaXRpb24p
CisgICAgICAgICAgICAgICAgcnVuUmVjdC5zZXRZKHJvdW5kVG9JbnQocnVuUmVjdC55KCkpKTsK
KworICAgICAgICAgICAgV1RGOjpPcHRpb25hbDxSdW46OlRleHRDb250ZW50PiB0ZXh0Q29udGVu
dDsKKyAgICAgICAgICAgIGlmIChhdXRvIHRleHQgPSBsaW5lUnVuLnRleHQoKSkgeworICAgICAg
ICAgICAgICAgIGF1dG8gYWRqdXN0ZWRDb250ZW50VG9SZW5kZXJlciA9IFsmXSB7CisgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdoZXJlIHdlIGNyZWF0ZSBzdHJpbmdzIHdp
dGggdHJhaWxpbmcgaHlwaGVucyBhbmQgdHJ1bmNhdGUvcmVwbGFjZSBjb250ZW50IHdpdGggZWxs
aXBzaXMuCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICAgICAgICAg
ICAgICB9OworICAgICAgICAgICAgICAgIHRleHRDb250ZW50ID0gUnVuOjpUZXh0Q29udGVudCB7
IHRleHQtPnN0YXJ0KCksIHRleHQtPmxlbmd0aCgpLCB0ZXh0LT5jb250ZW50KCksIGFkanVzdGVk
Q29udGVudFRvUmVuZGVyZXIoKSwgdGV4dC0+bmVlZHNIeXBoZW4oKSB9OworICAgICAgICAgICAg
fQorICAgICAgICAgICAgYXV0byBleHBhbnNpb24gPSBSdW46OkV4cGFuc2lvbiB7IGxpbmVSdW4u
ZXhwYW5zaW9uKCkuYmVoYXZpb3IsIGxpbmVSdW4uZXhwYW5zaW9uKCkuaG9yaXpvbnRhbEV4cGFu
c2lvbiB9OworICAgICAgICAgICAgYXV0byBkaXNwbGF5UnVuID0gUnVuIHsgbGluZUluZGV4LCBs
YXlvdXRCb3gsIHJ1blJlY3QsIGNvbXB1dGVkSW5rT3ZlcmZsb3cocnVuUmVjdCksIGV4cGFuc2lv
biwgdGV4dENvbnRlbnQgfTsKKyAgICAgICAgICAgIGRpc3BsYXlJbmxpbmVDb250ZW50LnJ1bnMu
YXBwZW5kKGRpc3BsYXlSdW4pOworCisgICAgICAgICAgICBpZiAobGF5b3V0Qm94LmlzUmVwbGFj
ZWRCb3goKSkgeworICAgICAgICAgICAgICAgIGF1dG8mIHJlbmRlcmVyID0gZG93bmNhc3Q8UmVu
ZGVyQm94PihtX2JveFRyZWUucmVuZGVyZXJGb3JMYXlvdXRCb3gobGF5b3V0Qm94KSk7CisgICAg
ICAgICAgICAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBtX2xheW91dFN0YXRlLmdlb21ldHJ5Rm9y
Qm94KGxheW91dEJveCk7CisgICAgICAgICAgICAgICAgYXV0byBib3JkZXJCb3hMb2NhdGlvbiA9
IEZsb2F0UG9pbnQgeyBydW5SZWN0LngoKSArIHN0ZDo6bWF4KGJveEdlb21ldHJ5Lm1hcmdpblN0
YXJ0KCksIDBfbHUpLCBydW5SZWN0LnkoKSArIGJveEdlb21ldHJ5Lm1hcmdpbkJlZm9yZSgpIH07
CisgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0TG9jYXRpb24oZmxvb3JlZExheW91dFBvaW50
KGJvcmRlckJveExvY2F0aW9uKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Owor
ICAgIGNvbnN0cnVjdERpc3BsYXlMaW5lUnVucygpOworCiAgICAgZGlzcGxheUlubGluZUNvbnRl
bnQuY2xlYXJHYXBBZnRlckxhc3RMaW5lID0gbV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUuY2xlYXJH
YXBBZnRlckxhc3RMaW5lKCk7CiAgICAgZGlzcGxheUlubGluZUNvbnRlbnQuc2hyaW5rVG9GaXQo
KTsKICAgICBtX2lubGluZUZvcm1hdHRpbmdTdGF0ZS5zaHJpbmtUb0ZpdCgpOwo=
</data>
<flag name="review"
          id="429751"
          type_id="1"
          status="+"
          setter="koivisto"
    />
    <flag name="commit-queue"
          id="429800"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413245</attachid>
            <date>2020-11-04 20:42:30 -0800</date>
            <delta_ts>2020-11-05 02:59:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218551-20201104204229.patch</filename>
            <type>text/plain</type>
            <size>9582</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJkOWZlMDcyNWRkZWMw
NGExZWJlZDhkYjgyMjRkY2I5ZTM3ZTdhMy4uNGYyMzBjOWM2YzNlMTk1ZjEzNDk1NjZhZTdlODE5
ZDk3ODkxZjZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTExLTA0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25d
IExldCdzIGNvbXB1dGUgZGlzcGxheSBsaW5lcyB2aXN1YWwgYWxpZ25tZW50cyBmaXJzdCBiZWZv
cmUgdGhlIHJ1bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxODU1MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAg
ICAgIEluIHRoaXMgcGF0Y2ggd2UgcHJlLWNvbXB1dGUgdmlzdWFsIGFkanVzdGVtZW50IHByb3Bl
cnRpZXMgdGhhdCB3ZSBsYXRlciB1c2UgZHVyaW5nIHJ1biBjb25zdHJ1Y3Rpb24KKyAgICAgICAg
KGUuZy4gd2hldGhlciB0aGUgcnVucyBvbiB0aGUgbGluZSBuZWVkIHZlcnRpY2FsIHNuYXBwaW5n
KS4KKyAgICAgICAgVGhpcyBwYXRjaCBpcyBhbHNvIGluIHByZXBhcmF0aW9uIGZvciBhZGRpbmcg
c3VwcG9ydCBmb3IgInRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzIi4gVGhlIHByZS1jb21wdXRlZAor
ICAgICAgICBMaW5lTGV2ZWxWaXN1YWxBZGp1c3RtZW50c0ZvclJ1bnMubmVlZHNUcmFpbGluZ0Nv
bnRlbnRSZXBsYWNlbWVudCB3aWxsIGRyaXZlIHRoZSBjb250ZW50IHRydW5jYXRpb24gbG9naWMg
Zm9yIHRoZSBlbGxpcHNpcy4KKworICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdy
YXRpb246OmxpbmVPdmVyZmxvd1dpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVn
cmF0aW9uOjpMaW5lTGF5b3V0Ojpjb25zdHJ1Y3RDb250ZW50KToKKwogMjAyMC0xMS0wMyAgQW50
b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBhbGlnbi1pdGVtcyBz
aG91bGQgYmUgYSBkaXNjcmV0ZSBhbmltYXRhYmxlIHByb3BlcnR5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bkxpbmVMYXlvdXQuY3BwCmluZGV4IDE2NTY4MjQ2ZGVjYjlhYWVkNTM2NzNiOTk1MDJjZTZmNzI1
MmUxOGQuLmRjNDAyOTFlNGIwY2Y2NWFlODgzMWVjM2M0NWU1MDNkODEzYTgyZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxp
bmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlv
dXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCkBAIC0xMzksMzUgKzEzOSw2MyBAQCB2b2lkIExp
bmVMYXlvdXQ6OmxheW91dCgpCiAgICAgY29uc3RydWN0Q29udGVudCgpOwogfQogCitpbmxpbmUg
c3RhdGljIGZsb2F0IGxpbmVPdmVyZmxvd1dpZHRoKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgZmxv
dywgSW5saW5lTGF5b3V0VW5pdCBsaW5lTG9naWNhbFdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGxp
bmVCb3hMb2dpY2FsV2lkdGgpCit7CisgICAgLy8gRklYTUU6IEl0J3MgdGhlIGNvcHkgb2YgdGhl
IGxldHMtYWRqdXN0LW92ZXJmbG93LWZvci10aGUtY2FyZXQgYmVoYXZpb3IgZnJvbSBDb21wbGV4
TGluZUxheW91dDo6YWRkT3ZlcmZsb3dGcm9tSW5saW5lQ2hpbGRyZW4uCisgICAgYXV0byBlbmRQ
YWRkaW5nID0gZmxvdy5oYXNPdmVyZmxvd0NsaXAoKSA/IGZsb3cucGFkZGluZ0VuZCgpIDogMF9s
dTsKKyAgICBpZiAoIWVuZFBhZGRpbmcpCisgICAgICAgIGVuZFBhZGRpbmcgPSBmbG93LmVuZFBh
ZGRpbmdXaWR0aEZvckNhcmV0KCk7CisgICAgaWYgKGZsb3cuaGFzT3ZlcmZsb3dDbGlwKCkgJiYg
IWVuZFBhZGRpbmcgJiYgZmxvdy5lbGVtZW50KCkgJiYgZmxvdy5lbGVtZW50KCktPmlzUm9vdEVk
aXRhYmxlRWxlbWVudCgpKQorICAgICAgICBlbmRQYWRkaW5nID0gMTsKKyAgICBsaW5lQm94TG9n
aWNhbFdpZHRoICs9IGVuZFBhZGRpbmc7CisgICAgcmV0dXJuIHN0ZDo6bWF4KGxpbmVMb2dpY2Fs
V2lkdGgsIGxpbmVCb3hMb2dpY2FsV2lkdGgpOworfQorCiB2b2lkIExpbmVMYXlvdXQ6OmNvbnN0
cnVjdENvbnRlbnQoKQogewogICAgIGF1dG8mIGRpc3BsYXlJbmxpbmVDb250ZW50ID0gZW5zdXJl
SW5saW5lQ29udGVudCgpOworICAgIGF1dG8mIGxpbmVzID0gbV9pbmxpbmVGb3JtYXR0aW5nU3Rh
dGUubGluZXMoKTsKIAotICAgIGF1dG8gbGluZU5lZWRzTGVnYWN5SW50ZWdyYWxWZXJ0aWNhbFBv
c2l0aW9uID0gWyZdKHNpemVfdCBsaW5lSW5kZXgpIHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQo
bV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUubGluZUJveGVzKCkuc2l6ZSgpID4gbGluZUluZGV4KTsK
LSAgICAgICAgLy8gSW5saW5lVHJlZSByb3VuZHMgeSBwb3NpdGlvbiB0byBpbnRlZ3JhbCB2YWx1
ZSBmb3IgY2VydGFpbiBjb250ZW50IChzZWUgSW5saW5lRmxvd0JveDo6cGxhY2VCb3hlc0luQmxv
Y2tEaXJlY3Rpb24pLgotICAgICAgICBhdXRvIGlubGluZUxldmVsQm94TGlzdCA9IG1faW5saW5l
Rm9ybWF0dGluZ1N0YXRlLmxpbmVCb3hlcygpW2xpbmVJbmRleF0uaW5saW5lTGV2ZWxCb3hMaXN0
KCk7Ci0gICAgICAgIGlmIChpbmxpbmVMZXZlbEJveExpc3Quc2l6ZSgpID09IDEpIHsKLSAgICAg
ICAgICAgIC8vIFRoaXMgaXMgdGV4dCBjb250ZW50IG9ubHkgd2l0aCByb290IGlubGluZSBib3gu
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICAvLyBUZXh0ICsg
PGJyPiAob3IganVzdCA8YnI+IG9yIHRleHQ8c3Bhbj48L3NwYW4+PGJyPikgYmVoYXZlcyBsaWtl
IHRleHQuCi0gICAgICAgIGZvciAoYXV0byYgaW5saW5lTGV2ZWxCb3ggOiBpbmxpbmVMZXZlbEJv
eExpc3QpIHsKLSAgICAgICAgICAgIGlmIChpbmxpbmVMZXZlbEJveC0+aXNBdG9taWNJbmxpbmVM
ZXZlbEJveCgpKSB7Ci0gICAgICAgICAgICAgICAgLy8gQ29udGVudCBsaWtlIHRleHQ8aW1nPiBw
cmV2ZW50cyBsZWdhY3kgc25hcHBpbmcuCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIHN0cnVjdCBMaW5lTGV2ZWxWaXN1YWxBZGp1c3RtZW50c0ZvclJ1bnMgeworICAgICAgICBi
b29sIG5lZWRzSW50ZWdyYWxQb3NpdGlvbiB7IGZhbHNlIH07CisgICAgICAgIC8vIEl0J3Mgb25s
eSAndGV4dC1vdmVyZmxvdzogZWxsaXBzaXMnIGZvciBub3cuCisgICAgICAgIGJvb2wgbmVlZHNU
cmFpbGluZ0NvbnRlbnRSZXBsYWNlbWVudCB7IGZhbHNlIH07CisgICAgfTsKKyAgICBWZWN0b3I8
TGluZUxldmVsVmlzdWFsQWRqdXN0bWVudHNGb3JSdW5zPiBsaW5lTGV2ZWxWaXN1YWxBZGp1c3Rt
ZW50c0ZvclJ1bnMobGluZXMuc2l6ZSgpKTsKKworICAgIGF1dG8gY29tcHV0ZUxpbmVMZXZlbFZp
c3VhbEFkanVzdG1lbnRzRm9yUnVucyA9IFsmXSB7CisgICAgICAgIGF1dG8mIHJvb3RTdHlsZSA9
IHJvb3RMYXlvdXRCb3goKS5zdHlsZSgpOworICAgICAgICBhdXRvIHNob3VsZENoZWNrSG9yaXpv
bnRhbE92ZXJmbG93Rm9yQ29udGVudFJlcGxhY2VtZW50ID0gcm9vdFN0eWxlLm92ZXJmbG93WCgp
ID09IE92ZXJmbG93OjpIaWRkZW4gJiYgcm9vdFN0eWxlLnRleHRPdmVyZmxvdygpICE9IFRleHRP
dmVyZmxvdzo6Q2xpcDsKKworICAgICAgICBmb3IgKHNpemVfdCBsaW5lSW5kZXggPSAwOyBsaW5l
SW5kZXggPCBsaW5lcy5zaXplKCk7ICsrbGluZUluZGV4KSB7CisgICAgICAgICAgICBhdXRvIGxp
bmVOZWVkc0xlZ2FjeUludGVncmFsVmVydGljYWxQb3NpdGlvbiA9IFsmXSB7CisgICAgICAgICAg
ICAgICAgLy8gSW5saW5lVHJlZSByb3VuZHMgeSBwb3NpdGlvbiB0byBpbnRlZ3JhbCB2YWx1ZSBm
b3IgY2VydGFpbiBjb250ZW50IChzZWUgSW5saW5lRmxvd0JveDo6cGxhY2VCb3hlc0luQmxvY2tE
aXJlY3Rpb24pLgorICAgICAgICAgICAgICAgIGF1dG8gaW5saW5lTGV2ZWxCb3hMaXN0ID0gbV9p
bmxpbmVGb3JtYXR0aW5nU3RhdGUubGluZUJveGVzKClbbGluZUluZGV4XS5pbmxpbmVMZXZlbEJv
eExpc3QoKTsKKyAgICAgICAgICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3hMaXN0LnNpemUoKSA9
PSAxKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGV4dCBjb250ZW50IG9ubHkg
d2l0aCByb290IGlubGluZSBib3guCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBUZXh0ICsgPGJyPiAob3IganVz
dCA8YnI+IG9yIHRleHQ8c3Bhbj48L3NwYW4+PGJyPikgYmVoYXZlcyBsaWtlIHRleHQuCisgICAg
ICAgICAgICAgICAgZm9yIChhdXRvJiBpbmxpbmVMZXZlbEJveCA6IGlubGluZUxldmVsQm94TGlz
dCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3gtPmlzQXRvbWljSW5s
aW5lTGV2ZWxCb3goKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ29udGVudCBsaWtl
IHRleHQ8aW1nPiBwcmV2ZW50cyBsZWdhY3kgc25hcHBpbmcuCisgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9OworICAgICAg
ICAgICAgbGluZUxldmVsVmlzdWFsQWRqdXN0bWVudHNGb3JSdW5zW2xpbmVJbmRleF0ubmVlZHNJ
bnRlZ3JhbFBvc2l0aW9uID0gbGluZU5lZWRzTGVnYWN5SW50ZWdyYWxWZXJ0aWNhbFBvc2l0aW9u
KCk7CisgICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tIb3Jpem9udGFsT3ZlcmZsb3dGb3JDb250
ZW50UmVwbGFjZW1lbnQpIHsKKyAgICAgICAgICAgICAgICBhdXRvJiBsaW5lID0gbGluZXNbbGlu
ZUluZGV4XTsKKyAgICAgICAgICAgICAgICBhdXRvIG92ZXJmbG93V2lkdGggPSBsaW5lT3ZlcmZs
b3dXaWR0aChmbG93KCksIGxpbmUubG9naWNhbFdpZHRoKCksIGxpbmUubGluZUJveExvZ2ljYWxS
ZWN0KCkud2lkdGgoKSk7CisgICAgICAgICAgICAgICAgbGluZUxldmVsVmlzdWFsQWRqdXN0bWVu
dHNGb3JSdW5zW2xpbmVJbmRleF0ubmVlZHNUcmFpbGluZ0NvbnRlbnRSZXBsYWNlbWVudCA9IG92
ZXJmbG93V2lkdGggPiBsaW5lLmxvZ2ljYWxXaWR0aCgpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwogICAgIH07CisgICAgY29tcHV0ZUxpbmVMZXZlbFZp
c3VhbEFkanVzdG1lbnRzRm9yUnVucygpOwogCiAgICAgYXV0byBjb25zdHJ1Y3REaXNwbGF5TGlu
ZVJ1bnMgPSBbJl0gewogICAgICAgICBhdXRvIGluaXRpYWxDb250YWluZ0Jsb2NrU2l6ZSA9IG1f
bGF5b3V0U3RhdGUudmlld3BvcnRTaXplKCk7Ci0gICAgICAgIHN0cnVjdCBMaW5lTGVnYWN5VmVy
dGljYWxQb3NpdGlvblBvbGljeSB7Ci0gICAgICAgICAgICBzaXplX3QgbGluZUluZGV4IHsgMCB9
OwotICAgICAgICAgICAgYm9vbCBuZWVkc0ludGVncmFsUG9zaXRpb24geyB0cnVlIH07IAotICAg
ICAgICB9OwotICAgICAgICBhdXRvIGxpbmVMZWdhY3lWZXJ0aWNhbFBvc2l0aW9uUG9saWN5ID0g
TGluZUxlZ2FjeVZlcnRpY2FsUG9zaXRpb25Qb2xpY3kgeyAwLCBsaW5lTmVlZHNMZWdhY3lJbnRl
Z3JhbFZlcnRpY2FsUG9zaXRpb24oMCkgfTsKICAgICAgICAgZm9yIChhdXRvJiBsaW5lUnVuIDog
bV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUubGluZVJ1bnMoKSkgewogICAgICAgICAgICAgYXV0byYg
bGF5b3V0Qm94ID0gbGluZVJ1bi5sYXlvdXRCb3goKTsKICAgICAgICAgICAgIGF1dG8gY29tcHV0
ZWRJbmtPdmVyZmxvdyA9IFsmXSAoYXV0byBydW5SZWN0KSB7CkBAIC0xOTAsMTEgKzIxOCw5IEBA
IHZvaWQgTGluZUxheW91dDo6Y29uc3RydWN0Q29udGVudCgpCiAgICAgICAgICAgICAvLyBJbmxp
bmUgYm94ZXMgYXJlIHJlbGF0aXZlIHRvIHRoZSBsaW5lIGJveCB3aGlsZSBmaW5hbCBSdW5zIG5l
ZWQgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHBhcmVudCBCb3gKICAgICAgICAgICAgIC8vIEZJWE1F
OiBTaG91bGRuJ3Qgd2UganVzdCBsZWF2ZSB0aGVtIGJlIHJlbGF0aXZlIHRvIHRoZSBsaW5lIGJv
eD8KICAgICAgICAgICAgIGF1dG8gbGluZUluZGV4ID0gbGluZVJ1bi5saW5lSW5kZXgoKTsKLSAg
ICAgICAgICAgIGF1dG8gbGluZUJveExvZ2ljYWxSZWN0ID0gbV9pbmxpbmVGb3JtYXR0aW5nU3Rh
dGUubGluZXMoKVtsaW5lSW5kZXhdLmxpbmVCb3hMb2dpY2FsUmVjdCgpOworICAgICAgICAgICAg
YXV0byBsaW5lQm94TG9naWNhbFJlY3QgPSBsaW5lc1tsaW5lSW5kZXhdLmxpbmVCb3hMb2dpY2Fs
UmVjdCgpOwogICAgICAgICAgICAgcnVuUmVjdC5tb3ZlQnkoeyBsaW5lQm94TG9naWNhbFJlY3Qu
bGVmdCgpLCBsaW5lQm94TG9naWNhbFJlY3QudG9wKCkgfSk7Ci0gICAgICAgICAgICBpZiAobGlu
ZUluZGV4ICE9IGxpbmVMZWdhY3lWZXJ0aWNhbFBvc2l0aW9uUG9saWN5LmxpbmVJbmRleCkKLSAg
ICAgICAgICAgICAgICBsaW5lTGVnYWN5VmVydGljYWxQb3NpdGlvblBvbGljeSA9IExpbmVMZWdh
Y3lWZXJ0aWNhbFBvc2l0aW9uUG9saWN5IHsgbGluZUluZGV4LCBsaW5lTmVlZHNMZWdhY3lJbnRl
Z3JhbFZlcnRpY2FsUG9zaXRpb24obGluZUluZGV4KSB9OwotICAgICAgICAgICAgaWYgKGxpbmVM
ZWdhY3lWZXJ0aWNhbFBvc2l0aW9uUG9saWN5Lm5lZWRzSW50ZWdyYWxQb3NpdGlvbikKKyAgICAg
ICAgICAgIGlmIChsaW5lTGV2ZWxWaXN1YWxBZGp1c3RtZW50c0ZvclJ1bnNbbGluZUluZGV4XS5u
ZWVkc0ludGVncmFsUG9zaXRpb24pCiAgICAgICAgICAgICAgICAgcnVuUmVjdC5zZXRZKHJvdW5k
VG9JbnQocnVuUmVjdC55KCkpKTsKIAogICAgICAgICAgICAgV1RGOjpPcHRpb25hbDxSdW46OlRl
eHRDb250ZW50PiB0ZXh0Q29udGVudDsKQEAgLTIxNSw3ICsyNDEsNiBAQCB2b2lkIExpbmVMYXlv
dXQ6OmNvbnN0cnVjdENvbnRlbnQoKQogICAgIGNvbnN0cnVjdERpc3BsYXlMaW5lUnVucygpOwog
CiAgICAgYXV0byBjb25zdHJ1Y3REaXNwbGF5TGluZSA9IFsmXSB7Ci0gICAgICAgIGF1dG8mIGxp
bmVzID0gbV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUubGluZXMoKTsKICAgICAgICAgYXV0byYgbGlu
ZUJveGVzID0gbV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUubGluZUJveGVzKCk7CiAgICAgICAgIGF1
dG8mIHJ1bnMgPSBkaXNwbGF5SW5saW5lQ29udGVudC5ydW5zOwogICAgICAgICBzaXplX3QgcnVu
SW5kZXggPSAwOwpAQCAtMjIzLDE5ICsyNDgsOSBAQCB2b2lkIExpbmVMYXlvdXQ6OmNvbnN0cnVj
dENvbnRlbnQoKQogICAgICAgICAgICAgYXV0byYgbGluZSA9IGxpbmVzW2xpbmVJbmRleF07CiAg
ICAgICAgICAgICBhdXRvIGxpbmVCb3hMb2dpY2FsUmVjdCA9IGxpbmUubGluZUJveExvZ2ljYWxS
ZWN0KCk7CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyB3aGVyZSB0aGUgbG9naWNhbCB0
byBwaHlzaWNhbCB0cmFuc2xhdGUgc2hvdWxkIGhhcHBlbi4KLSAgICAgICAgICAgIGF1dG8gb3Zl
cmZsb3dXaWR0aCA9IFsmXSB7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IEl0J3MgdGhlIGNv
cHkgb2YgdGhlIGxldHMtYWRqdXN0LW92ZXJmbG93LWZvci10aGUtY2FyZXQgYmVoYXZpb3IgZnJv
bSBDb21wbGV4TGluZUxheW91dDo6YWRkT3ZlcmZsb3dGcm9tSW5saW5lQ2hpbGRyZW4uCi0gICAg
ICAgICAgICAgICAgYXV0byBlbmRQYWRkaW5nID0gZmxvdygpLmhhc092ZXJmbG93Q2xpcCgpID8g
ZmxvdygpLnBhZGRpbmdFbmQoKSA6IDBfbHU7Ci0gICAgICAgICAgICAgICAgaWYgKCFlbmRQYWRk
aW5nKQotICAgICAgICAgICAgICAgICAgICBlbmRQYWRkaW5nID0gZmxvdygpLmVuZFBhZGRpbmdX
aWR0aEZvckNhcmV0KCk7Ci0gICAgICAgICAgICAgICAgaWYgKGZsb3coKS5oYXNPdmVyZmxvd0Ns
aXAoKSAmJiAhZW5kUGFkZGluZyAmJiBmbG93KCkuZWxlbWVudCgpICYmIGZsb3coKS5lbGVtZW50
KCktPmlzUm9vdEVkaXRhYmxlRWxlbWVudCgpKQotICAgICAgICAgICAgICAgICAgICBlbmRQYWRk
aW5nID0gMTsKLSAgICAgICAgICAgICAgICBhdXRvIGxpbmVCb3hMb2dpY2FsV2lkdGggPSBsaW5l
Qm94TG9naWNhbFJlY3Qud2lkdGgoKSArIGVuZFBhZGRpbmc7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bWF4KGxpbmUubG9naWNhbFdpZHRoKCksIGxpbmVCb3hMb2dpY2FsV2lkdGgpOwot
ICAgICAgICAgICAgfTsKICAgICAgICAgICAgIGF1dG8gbGluZUJveExvZ2ljYWxCb3R0b20gPSAo
bGluZUJveExvZ2ljYWxSZWN0LnRvcCgpIC0gbGluZS5sb2dpY2FsVG9wKCkpICsgbGluZUJveExv
Z2ljYWxSZWN0LmhlaWdodCgpOwogICAgICAgICAgICAgYXV0byBvdmVyZmxvd0hlaWdodCA9IHN0
ZDo6bWF4KGxpbmUubG9naWNhbEhlaWdodCgpLCBsaW5lQm94TG9naWNhbEJvdHRvbSk7Ci0gICAg
ICAgICAgICBhdXRvIHNjcm9sbGFibGVPdmVyZmxvd1JlY3QgPSBGbG9hdFJlY3QgeyBsaW5lLmxv
Z2ljYWxMZWZ0KCksIGxpbmUubG9naWNhbFRvcCgpLCBvdmVyZmxvd1dpZHRoKCksIG92ZXJmbG93
SGVpZ2h0IH07CisgICAgICAgICAgICBhdXRvIHNjcm9sbGFibGVPdmVyZmxvd1JlY3QgPSBGbG9h
dFJlY3QgeyBsaW5lLmxvZ2ljYWxMZWZ0KCksIGxpbmUubG9naWNhbFRvcCgpLCBsaW5lT3ZlcmZs
b3dXaWR0aChmbG93KCksIGxpbmUubG9naWNhbFdpZHRoKCksIGxpbmVCb3hMb2dpY2FsUmVjdC53
aWR0aCgpKSwgb3ZlcmZsb3dIZWlnaHQgfTsKIAogICAgICAgICAgICAgYXV0byBmaXJzdFJ1bklu
ZGV4ID0gcnVuSW5kZXg7CiAgICAgICAgICAgICBhdXRvIGxpbmVJbmtPdmVyZmxvd1JlY3QgPSBz
Y3JvbGxhYmxlT3ZlcmZsb3dSZWN0OwpAQCAtMjU5LDcgKzI3NCw3IEBAIHZvaWQgTGluZUxheW91
dDo6Y29uc3RydWN0Q29udGVudCgpCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IHJldHVybiBlbmNsb3NpbmdSZWN0OwogICAgICAgICAgICAgfSgpOwotICAgICAgICAgICAgaWYg
KGxpbmVOZWVkc0xlZ2FjeUludGVncmFsVmVydGljYWxQb3NpdGlvbihsaW5lSW5kZXgpKSB7Cisg
ICAgICAgICAgICBpZiAobGluZUxldmVsVmlzdWFsQWRqdXN0bWVudHNGb3JSdW5zW2xpbmVJbmRl
eF0ubmVlZHNJbnRlZ3JhbFBvc2l0aW9uKSB7CiAgICAgICAgICAgICAgICAgbGluZVJlY3Quc2V0
WShyb3VuZFRvSW50KGxpbmVSZWN0LnkoKSkpOwogICAgICAgICAgICAgICAgIGVuY2xvc2luZ0xp
bmVSZWN0LnNldFkocm91bmRUb0ludChlbmNsb3NpbmdMaW5lUmVjdC55KCkpKTsKICAgICAgICAg
ICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413279</attachid>
            <date>2020-11-05 03:00:01 -0800</date>
            <delta_ts>2020-11-05 04:23:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218551-20201105030000.patch</filename>
            <type>text/plain</type>
            <size>9569</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjAyMjI2ZmRkNWFiZjlk
NWEyYWUyN2RlNjgyZmIxYjIzMmQ3YzIzOS4uNTkxOTg1MTY0ZmRiY2IwZGRjYjY1YjQ4MjY3ZWM5
YTgyOGZlMDlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTExLTA1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25d
IExldCdzIGNvbXB1dGUgZGlzcGxheSBsaW5lcyB2aXN1YWwgYWxpZ25tZW50cyBmaXJzdCBiZWZv
cmUgdGhlIHJ1bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxODU1MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAg
ICAgIEluIHRoaXMgcGF0Y2ggd2UgcHJlLWNvbXB1dGUgdmlzdWFsIGFkanVzdGVtZW50IHByb3Bl
cnRpZXMgdGhhdCB3ZSBsYXRlciB1c2UgZHVyaW5nIHJ1biBjb25zdHJ1Y3Rpb24KKyAgICAgICAg
KGUuZy4gd2hldGhlciB0aGUgcnVucyBvbiB0aGUgbGluZSBuZWVkIHZlcnRpY2FsIHNuYXBwaW5n
KS4KKyAgICAgICAgVGhpcyBwYXRjaCBpcyBhbHNvIGluIHByZXBhcmF0aW9uIGZvciBhZGRpbmcg
c3VwcG9ydCBmb3IgInRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzIi4gVGhlIHByZS1jb21wdXRlZAor
ICAgICAgICBMaW5lTGV2ZWxWaXN1YWxBZGp1c3RtZW50c0ZvclJ1bnMubmVlZHNUcmFpbGluZ0Nv
bnRlbnRSZXBsYWNlbWVudCB3aWxsIGRyaXZlIHRoZSBjb250ZW50IHRydW5jYXRpb24gbG9naWMg
Zm9yIHRoZSBlbGxpcHNpcy4KKworICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdy
YXRpb246OmxpbmVPdmVyZmxvd1dpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVn
cmF0aW9uOjpMaW5lTGF5b3V0Ojpjb25zdHJ1Y3RDb250ZW50KToKKwogMjAyMC0xMS0wNSAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGJ1
aWxkIGZpeCBmb3IgQVJNNjRFIHBhcnQgMgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNw
cAppbmRleCA0MjEwZWVmNWY5YTYyNDQ3MjY4N2MzYjE0YTdkNDdjMTg3YTY5NGQ2Li5hNGFmYTI2
NTdkZjk3OWJmZjcyNDkzMDZmMGJiMGQ1NmMwNjdlNzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25M
aW5lTGF5b3V0LmNwcApAQCAtMTM5LDM1ICsxMzksNjMgQEAgdm9pZCBMaW5lTGF5b3V0OjpsYXlv
dXQoKQogICAgIGNvbnN0cnVjdENvbnRlbnQoKTsKIH0KIAoraW5saW5lIHN0YXRpYyBmbG9hdCBs
aW5lT3ZlcmZsb3dXaWR0aChjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGZsb3csIElubGluZUxheW91
dFVuaXQgbGluZUxvZ2ljYWxXaWR0aCwgSW5saW5lTGF5b3V0VW5pdCBsaW5lQm94TG9naWNhbFdp
ZHRoKQoreworICAgIC8vIEZJWE1FOiBJdCdzIHRoZSBjb3B5IG9mIHRoZSBsZXRzLWFkanVzdC1v
dmVyZmxvdy1mb3ItdGhlLWNhcmV0IGJlaGF2aW9yIGZyb20gQ29tcGxleExpbmVMYXlvdXQ6OmFk
ZE92ZXJmbG93RnJvbUlubGluZUNoaWxkcmVuLgorICAgIGF1dG8gZW5kUGFkZGluZyA9IGZsb3cu
aGFzT3ZlcmZsb3dDbGlwKCkgPyBmbG93LnBhZGRpbmdFbmQoKSA6IDBfbHU7CisgICAgaWYgKCFl
bmRQYWRkaW5nKQorICAgICAgICBlbmRQYWRkaW5nID0gZmxvdy5lbmRQYWRkaW5nV2lkdGhGb3JD
YXJldCgpOworICAgIGlmIChmbG93Lmhhc092ZXJmbG93Q2xpcCgpICYmICFlbmRQYWRkaW5nICYm
IGZsb3cuZWxlbWVudCgpICYmIGZsb3cuZWxlbWVudCgpLT5pc1Jvb3RFZGl0YWJsZUVsZW1lbnQo
KSkKKyAgICAgICAgZW5kUGFkZGluZyA9IDE7CisgICAgbGluZUJveExvZ2ljYWxXaWR0aCArPSBl
bmRQYWRkaW5nOworICAgIHJldHVybiBzdGQ6Om1heChsaW5lTG9naWNhbFdpZHRoLCBsaW5lQm94
TG9naWNhbFdpZHRoKTsKK30KKwogdm9pZCBMaW5lTGF5b3V0Ojpjb25zdHJ1Y3RDb250ZW50KCkK
IHsKICAgICBhdXRvJiBkaXNwbGF5SW5saW5lQ29udGVudCA9IGVuc3VyZUlubGluZUNvbnRlbnQo
KTsKKyAgICBhdXRvJiBsaW5lcyA9IG1faW5saW5lRm9ybWF0dGluZ1N0YXRlLmxpbmVzKCk7CiAK
LSAgICBhdXRvIGxpbmVOZWVkc0xlZ2FjeUludGVncmFsVmVydGljYWxQb3NpdGlvbiA9IFsmXShz
aXplX3QgbGluZUluZGV4KSB7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKG1faW5saW5lRm9ybWF0
dGluZ1N0YXRlLmxpbmVCb3hlcygpLnNpemUoKSA+IGxpbmVJbmRleCk7Ci0gICAgICAgIC8vIElu
bGluZVRyZWUgcm91bmRzIHkgcG9zaXRpb24gdG8gaW50ZWdyYWwgdmFsdWUgZm9yIGNlcnRhaW4g
Y29udGVudCAoc2VlIElubGluZUZsb3dCb3g6OnBsYWNlQm94ZXNJbkJsb2NrRGlyZWN0aW9uKS4K
LSAgICAgICAgYXV0byBpbmxpbmVMZXZlbEJveExpc3QgPSBtX2lubGluZUZvcm1hdHRpbmdTdGF0
ZS5saW5lQm94ZXMoKVtsaW5lSW5kZXhdLmlubGluZUxldmVsQm94TGlzdCgpOwotICAgICAgICBp
ZiAoaW5saW5lTGV2ZWxCb3hMaXN0LnNpemUoKSA9PSAxKSB7Ci0gICAgICAgICAgICAvLyBUaGlz
IGlzIHRleHQgY29udGVudCBvbmx5IHdpdGggcm9vdCBpbmxpbmUgYm94LgotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gVGV4dCArIDxicj4gKG9yIGp1c3Qg
PGJyPiBvciB0ZXh0PHNwYW4+PC9zcGFuPjxicj4pIGJlaGF2ZXMgbGlrZSB0ZXh0LgotICAgICAg
ICBmb3IgKGF1dG8mIGlubGluZUxldmVsQm94IDogaW5saW5lTGV2ZWxCb3hMaXN0KSB7Ci0gICAg
ICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3gtPmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSkgewot
ICAgICAgICAgICAgICAgIC8vIENvbnRlbnQgbGlrZSB0ZXh0PGltZz4gcHJldmVudHMgbGVnYWN5
IHNuYXBwaW5nLgotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBzdHJ1Y3QgTGlu
ZUxldmVsVmlzdWFsQWRqdXN0bWVudHNGb3JSdW5zIHsKKyAgICAgICAgYm9vbCBuZWVkc0ludGVn
cmFsUG9zaXRpb24geyBmYWxzZSB9OworICAgICAgICAvLyBJdCdzIG9ubHkgJ3RleHQtb3ZlcmZs
b3c6IGVsbGlwc2lzJyBmb3Igbm93LgorICAgICAgICBib29sIG5lZWRzVHJhaWxpbmdDb250ZW50
UmVwbGFjZW1lbnQgeyBmYWxzZSB9OworICAgIH07CisgICAgVmVjdG9yPExpbmVMZXZlbFZpc3Vh
bEFkanVzdG1lbnRzRm9yUnVucz4gbGluZUxldmVsVmlzdWFsQWRqdXN0bWVudHNGb3JSdW5zKGxp
bmVzLnNpemUoKSk7CisKKyAgICBhdXRvIGNvbXB1dGVMaW5lTGV2ZWxWaXN1YWxBZGp1c3RtZW50
c0ZvclJ1bnMgPSBbJl0geworICAgICAgICBhdXRvJiByb290U3R5bGUgPSByb290TGF5b3V0Qm94
KCkuc3R5bGUoKTsKKyAgICAgICAgYXV0byBzaG91bGRDaGVja0hvcml6b250YWxPdmVyZmxvd0Zv
ckNvbnRlbnRSZXBsYWNlbWVudCA9IHJvb3RTdHlsZS5vdmVyZmxvd1goKSA9PSBPdmVyZmxvdzo6
SGlkZGVuICYmIHJvb3RTdHlsZS50ZXh0T3ZlcmZsb3coKSAhPSBUZXh0T3ZlcmZsb3c6OkNsaXA7
CisKKyAgICAgICAgZm9yIChzaXplX3QgbGluZUluZGV4ID0gMDsgbGluZUluZGV4IDwgbGluZXMu
c2l6ZSgpOyArK2xpbmVJbmRleCkgeworICAgICAgICAgICAgYXV0byBsaW5lTmVlZHNMZWdhY3lJ
bnRlZ3JhbFZlcnRpY2FsUG9zaXRpb24gPSBbJl0geworICAgICAgICAgICAgICAgIC8vIElubGlu
ZVRyZWUgcm91bmRzIHkgcG9zaXRpb24gdG8gaW50ZWdyYWwgdmFsdWUgZm9yIGNlcnRhaW4gY29u
dGVudCAoc2VlIElubGluZUZsb3dCb3g6OnBsYWNlQm94ZXNJbkJsb2NrRGlyZWN0aW9uKS4KKyAg
ICAgICAgICAgICAgICBhdXRvIGlubGluZUxldmVsQm94TGlzdCA9IG1faW5saW5lRm9ybWF0dGlu
Z1N0YXRlLmxpbmVCb3hlcygpW2xpbmVJbmRleF0uaW5saW5lTGV2ZWxCb3hMaXN0KCk7CisgICAg
ICAgICAgICAgICAgaWYgKGlubGluZUxldmVsQm94TGlzdC5zaXplKCkgPT0gMSkgeworICAgICAg
ICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRleHQgY29udGVudCBvbmx5IHdpdGggcm9vdCBpbmxp
bmUgYm94LgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgLy8gVGV4dCArIDxicj4gKG9yIGp1c3QgPGJyPiBvciB0ZXh0
PHNwYW4+PC9zcGFuPjxicj4pIGJlaGF2ZXMgbGlrZSB0ZXh0LgorICAgICAgICAgICAgICAgIGZv
ciAoYXV0byYgaW5saW5lTGV2ZWxCb3ggOiBpbmxpbmVMZXZlbEJveExpc3QpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGlubGluZUxldmVsQm94LT5pc0F0b21pY0lubGluZUxldmVsQm94KCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvbnRlbnQgbGlrZSB0ZXh0PGltZz4gcHJl
dmVudHMgbGVnYWN5IHNuYXBwaW5nLgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGxpbmVMZXZl
bFZpc3VhbEFkanVzdG1lbnRzRm9yUnVuc1tsaW5lSW5kZXhdLm5lZWRzSW50ZWdyYWxQb3NpdGlv
biA9IGxpbmVOZWVkc0xlZ2FjeUludGVncmFsVmVydGljYWxQb3NpdGlvbigpOworICAgICAgICAg
ICAgaWYgKHNob3VsZENoZWNrSG9yaXpvbnRhbE92ZXJmbG93Rm9yQ29udGVudFJlcGxhY2VtZW50
KSB7CisgICAgICAgICAgICAgICAgYXV0byYgbGluZSA9IGxpbmVzW2xpbmVJbmRleF07CisgICAg
ICAgICAgICAgICAgYXV0byBvdmVyZmxvd1dpZHRoID0gbGluZU92ZXJmbG93V2lkdGgoZmxvdygp
LCBsaW5lLmxvZ2ljYWxXaWR0aCgpLCBsaW5lLmxpbmVCb3hMb2dpY2FsUmVjdCgpLndpZHRoKCkp
OworICAgICAgICAgICAgICAgIGxpbmVMZXZlbFZpc3VhbEFkanVzdG1lbnRzRm9yUnVuc1tsaW5l
SW5kZXhdLm5lZWRzVHJhaWxpbmdDb250ZW50UmVwbGFjZW1lbnQgPSBvdmVyZmxvd1dpZHRoID4g
bGluZS5sb2dpY2FsV2lkdGgoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9OworICAgIGNvbXB1dGVMaW5lTGV2ZWxWaXN1YWxBZGp1c3RtZW50
c0ZvclJ1bnMoKTsKIAogICAgIGF1dG8gY29uc3RydWN0RGlzcGxheUxpbmVSdW5zID0gWyZdIHsK
ICAgICAgICAgYXV0byBpbml0aWFsQ29udGFpbmdCbG9ja1NpemUgPSBtX2xheW91dFN0YXRlLnZp
ZXdwb3J0U2l6ZSgpOwotICAgICAgICBzdHJ1Y3QgTGluZUxlZ2FjeVZlcnRpY2FsUG9zaXRpb25Q
b2xpY3kgewotICAgICAgICAgICAgc2l6ZV90IGxpbmVJbmRleCB7IDAgfTsKLSAgICAgICAgICAg
IGJvb2wgbmVlZHNJbnRlZ3JhbFBvc2l0aW9uIHsgdHJ1ZSB9OyAKLSAgICAgICAgfTsKLSAgICAg
ICAgYXV0byBsaW5lTGVnYWN5VmVydGljYWxQb3NpdGlvblBvbGljeSA9IExpbmVMZWdhY3lWZXJ0
aWNhbFBvc2l0aW9uUG9saWN5IHsgMCwgbGluZU5lZWRzTGVnYWN5SW50ZWdyYWxWZXJ0aWNhbFBv
c2l0aW9uKDApIH07CiAgICAgICAgIGZvciAoYXV0byYgbGluZVJ1biA6IG1faW5saW5lRm9ybWF0
dGluZ1N0YXRlLmxpbmVSdW5zKCkpIHsKICAgICAgICAgICAgIGF1dG8mIGxheW91dEJveCA9IGxp
bmVSdW4ubGF5b3V0Qm94KCk7CiAgICAgICAgICAgICBhdXRvIGNvbXB1dGVkSW5rT3ZlcmZsb3cg
PSBbJl0gKGF1dG8gcnVuUmVjdCkgewpAQCAtMTkwLDExICsyMTgsOSBAQCB2b2lkIExpbmVMYXlv
dXQ6OmNvbnN0cnVjdENvbnRlbnQoKQogICAgICAgICAgICAgLy8gSW5saW5lIGJveGVzIGFyZSBy
ZWxhdGl2ZSB0byB0aGUgbGluZSBib3ggd2hpbGUgZmluYWwgUnVucyBuZWVkIHRvIGJlIHJlbGF0
aXZlIHRvIHRoZSBwYXJlbnQgQm94CiAgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxkbid0IHdl
IGp1c3QgbGVhdmUgdGhlbSBiZSByZWxhdGl2ZSB0byB0aGUgbGluZSBib3g/CiAgICAgICAgICAg
ICBhdXRvIGxpbmVJbmRleCA9IGxpbmVSdW4ubGluZUluZGV4KCk7Ci0gICAgICAgICAgICBhdXRv
IGxpbmVCb3hMb2dpY2FsUmVjdCA9IG1faW5saW5lRm9ybWF0dGluZ1N0YXRlLmxpbmVzKClbbGlu
ZUluZGV4XS5saW5lQm94TG9naWNhbFJlY3QoKTsKKyAgICAgICAgICAgIGF1dG8gbGluZUJveExv
Z2ljYWxSZWN0ID0gbGluZXNbbGluZUluZGV4XS5saW5lQm94TG9naWNhbFJlY3QoKTsKICAgICAg
ICAgICAgIHJ1blJlY3QubW92ZUJ5KHsgbGluZUJveExvZ2ljYWxSZWN0LmxlZnQoKSwgbGluZUJv
eExvZ2ljYWxSZWN0LnRvcCgpIH0pOwotICAgICAgICAgICAgaWYgKGxpbmVJbmRleCAhPSBsaW5l
TGVnYWN5VmVydGljYWxQb3NpdGlvblBvbGljeS5saW5lSW5kZXgpCi0gICAgICAgICAgICAgICAg
bGluZUxlZ2FjeVZlcnRpY2FsUG9zaXRpb25Qb2xpY3kgPSBMaW5lTGVnYWN5VmVydGljYWxQb3Np
dGlvblBvbGljeSB7IGxpbmVJbmRleCwgbGluZU5lZWRzTGVnYWN5SW50ZWdyYWxWZXJ0aWNhbFBv
c2l0aW9uKGxpbmVJbmRleCkgfTsKLSAgICAgICAgICAgIGlmIChsaW5lTGVnYWN5VmVydGljYWxQ
b3NpdGlvblBvbGljeS5uZWVkc0ludGVncmFsUG9zaXRpb24pCisgICAgICAgICAgICBpZiAobGlu
ZUxldmVsVmlzdWFsQWRqdXN0bWVudHNGb3JSdW5zW2xpbmVJbmRleF0ubmVlZHNJbnRlZ3JhbFBv
c2l0aW9uKQogICAgICAgICAgICAgICAgIHJ1blJlY3Quc2V0WShyb3VuZFRvSW50KHJ1blJlY3Qu
eSgpKSk7CiAKICAgICAgICAgICAgIFdURjo6T3B0aW9uYWw8UnVuOjpUZXh0Q29udGVudD4gdGV4
dENvbnRlbnQ7CkBAIC0yMjAsNyArMjQ2LDYgQEAgdm9pZCBMaW5lTGF5b3V0Ojpjb25zdHJ1Y3RD
b250ZW50KCkKICAgICBjb25zdHJ1Y3REaXNwbGF5TGluZVJ1bnMoKTsKIAogICAgIGF1dG8gY29u
c3RydWN0RGlzcGxheUxpbmVzID0gWyZdIHsKLSAgICAgICAgYXV0byYgbGluZXMgPSBtX2lubGlu
ZUZvcm1hdHRpbmdTdGF0ZS5saW5lcygpOwogICAgICAgICBhdXRvJiBsaW5lQm94ZXMgPSBtX2lu
bGluZUZvcm1hdHRpbmdTdGF0ZS5saW5lQm94ZXMoKTsKICAgICAgICAgYXV0byYgcnVucyA9IGRp
c3BsYXlJbmxpbmVDb250ZW50LnJ1bnM7CiAgICAgICAgIHNpemVfdCBydW5JbmRleCA9IDA7CkBA
IC0yMjgsMTkgKzI1Myw5IEBAIHZvaWQgTGluZUxheW91dDo6Y29uc3RydWN0Q29udGVudCgpCiAg
ICAgICAgICAgICBhdXRvJiBsaW5lID0gbGluZXNbbGluZUluZGV4XTsKICAgICAgICAgICAgIGF1
dG8gbGluZUJveExvZ2ljYWxSZWN0ID0gbGluZS5saW5lQm94TG9naWNhbFJlY3QoKTsKICAgICAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdoZXJlIHRoZSBsb2dpY2FsIHRvIHBoeXNpY2FsIHRy
YW5zbGF0ZSBzaG91bGQgaGFwcGVuLgotICAgICAgICAgICAgYXV0byBvdmVyZmxvd1dpZHRoID0g
WyZdIHsKLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogSXQncyB0aGUgY29weSBvZiB0aGUgbGV0
cy1hZGp1c3Qtb3ZlcmZsb3ctZm9yLXRoZS1jYXJldCBiZWhhdmlvciBmcm9tIENvbXBsZXhMaW5l
TGF5b3V0OjphZGRPdmVyZmxvd0Zyb21JbmxpbmVDaGlsZHJlbi4KLSAgICAgICAgICAgICAgICBh
dXRvIGVuZFBhZGRpbmcgPSBmbG93KCkuaGFzT3ZlcmZsb3dDbGlwKCkgPyBmbG93KCkucGFkZGlu
Z0VuZCgpIDogMF9sdTsKLSAgICAgICAgICAgICAgICBpZiAoIWVuZFBhZGRpbmcpCi0gICAgICAg
ICAgICAgICAgICAgIGVuZFBhZGRpbmcgPSBmbG93KCkuZW5kUGFkZGluZ1dpZHRoRm9yQ2FyZXQo
KTsKLSAgICAgICAgICAgICAgICBpZiAoZmxvdygpLmhhc092ZXJmbG93Q2xpcCgpICYmICFlbmRQ
YWRkaW5nICYmIGZsb3coKS5lbGVtZW50KCkgJiYgZmxvdygpLmVsZW1lbnQoKS0+aXNSb290RWRp
dGFibGVFbGVtZW50KCkpCi0gICAgICAgICAgICAgICAgICAgIGVuZFBhZGRpbmcgPSAxOwotICAg
ICAgICAgICAgICAgIGF1dG8gbGluZUJveExvZ2ljYWxXaWR0aCA9IGxpbmVCb3hMb2dpY2FsUmVj
dC53aWR0aCgpICsgZW5kUGFkZGluZzsKLSAgICAgICAgICAgICAgICByZXR1cm4gc3RkOjptYXgo
bGluZS5sb2dpY2FsV2lkdGgoKSwgbGluZUJveExvZ2ljYWxXaWR0aCk7Ci0gICAgICAgICAgICB9
OwogICAgICAgICAgICAgYXV0byBsaW5lQm94TG9naWNhbEJvdHRvbSA9IChsaW5lQm94TG9naWNh
bFJlY3QudG9wKCkgLSBsaW5lLmxvZ2ljYWxUb3AoKSkgKyBsaW5lQm94TG9naWNhbFJlY3QuaGVp
Z2h0KCk7CiAgICAgICAgICAgICBhdXRvIG92ZXJmbG93SGVpZ2h0ID0gc3RkOjptYXgobGluZS5s
b2dpY2FsSGVpZ2h0KCksIGxpbmVCb3hMb2dpY2FsQm90dG9tKTsKLSAgICAgICAgICAgIGF1dG8g
c2Nyb2xsYWJsZU92ZXJmbG93UmVjdCA9IEZsb2F0UmVjdCB7IGxpbmUubG9naWNhbExlZnQoKSwg
bGluZS5sb2dpY2FsVG9wKCksIG92ZXJmbG93V2lkdGgoKSwgb3ZlcmZsb3dIZWlnaHQgfTsKKyAg
ICAgICAgICAgIGF1dG8gc2Nyb2xsYWJsZU92ZXJmbG93UmVjdCA9IEZsb2F0UmVjdCB7IGxpbmUu
bG9naWNhbExlZnQoKSwgbGluZS5sb2dpY2FsVG9wKCksIGxpbmVPdmVyZmxvd1dpZHRoKGZsb3co
KSwgbGluZS5sb2dpY2FsV2lkdGgoKSwgbGluZUJveExvZ2ljYWxSZWN0LndpZHRoKCkpLCBvdmVy
Zmxvd0hlaWdodCB9OwogCiAgICAgICAgICAgICBhdXRvIGZpcnN0UnVuSW5kZXggPSBydW5JbmRl
eDsKICAgICAgICAgICAgIGF1dG8gbGluZUlua092ZXJmbG93UmVjdCA9IHNjcm9sbGFibGVPdmVy
Zmxvd1JlY3Q7CkBAIC0yNjQsNyArMjc5LDcgQEAgdm9pZCBMaW5lTGF5b3V0Ojpjb25zdHJ1Y3RD
b250ZW50KCkKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgcmV0dXJuIGVuY2xv
c2luZ1JlY3Q7CiAgICAgICAgICAgICB9KCk7Ci0gICAgICAgICAgICBpZiAobGluZU5lZWRzTGVn
YWN5SW50ZWdyYWxWZXJ0aWNhbFBvc2l0aW9uKGxpbmVJbmRleCkpIHsKKyAgICAgICAgICAgIGlm
IChsaW5lTGV2ZWxWaXN1YWxBZGp1c3RtZW50c0ZvclJ1bnNbbGluZUluZGV4XS5uZWVkc0ludGVn
cmFsUG9zaXRpb24pIHsKICAgICAgICAgICAgICAgICBsaW5lUmVjdC5zZXRZKHJvdW5kVG9JbnQo
bGluZVJlY3QueSgpKSk7CiAgICAgICAgICAgICAgICAgZW5jbG9zaW5nTGluZVJlY3Quc2V0WShy
b3VuZFRvSW50KGVuY2xvc2luZ0xpbmVSZWN0LnkoKSkpOwogICAgICAgICAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>