<?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>201791</bug_id>
          
          <creation_ts>2019-09-13 21:13:40 -0700</creation_ts>
          <short_desc>[LFC] FormattingContext::Geometry::computedHeightValue should not read containing block&apos;s height.</short_desc>
          <delta_ts>2019-09-14 06:55:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>201795</blocked>
          <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>1570826</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-09-13 21:13:40 -0700</bug_when>
    <thetext>The constraint value should be pushed down to this function instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570827</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-13 21:14:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/55361695&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570859</commentid>
    <comment_count>2</comment_count>
      <attachid>378791</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-09-14 04:49:52 -0700</bug_when>
    <thetext>Created attachment 378791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570861</commentid>
    <comment_count>3</comment_count>
      <attachid>378792</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-09-14 05:04:38 -0700</bug_when>
    <thetext>Created attachment 378792
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570876</commentid>
    <comment_count>4</comment_count>
      <attachid>378792</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-14 06:55:41 -0700</bug_when>
    <thetext>Comment on attachment 378792
Patch

Clearing flags on attachment: 378792

Committed r249873: &lt;https://trac.webkit.org/changeset/249873&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570877</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-14 06:55:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378791</attachid>
            <date>2019-09-14 04:49:52 -0700</date>
            <delta_ts>2019-09-14 05:04:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201791-20190914044947.patch</filename>
            <type>text/plain</type>
            <size>16968</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5ODUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDNmYjc4NGM5N2M5NzNl
OWIyMDMxMTRlMTMxMjYzMjExNDJiZDc0NS4uOThmY2Q5OGRiZWY3NDQ0MmI5MjFmZTVmMGUzOWRl
NDdiNzFiN2UzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5LTA5LTEzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gRm9ybWF0dGluZ0Nv
bnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZEhlaWdodFZhbHVlIHNob3VsZCBub3QgcmVhZCBjb250
YWluaW5nIGJsb2NrJ3MgaGVpZ2h0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAxNzkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTM2MTY5NT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGlsZSBz
aXppbmcvcG9zaXRpb25pbmcgYSBwYXJ0aWN1bGFyIGJveCwgd2Ugb2Z0ZW50aW1lcyBuZWVkIHNv
bWUgY29udGFpbmluZyBibG9jayBnZW9tZXRyeSBpbmZvcm1hdGlvbi4KKyAgICAgICAgVGhlIGlk
ZWEgaGVyZSBpcyB0aGF0IGluc3RlYWQgb2YgY2FsbGluZyBmb3JtYXR0aW5nQ29udGV4dCgpLmdl
b21ldHJ5KGNvbnRhaW5pbmdCbG9jayksIHRoZXNlIGNvbnN0cmFpbnQgdmFsdWVzCisgICAgICAg
IHdvdWxkIGJlIHB1c2hlZCBpbiB0byB0aG9zZSBjb21wdXRlKiBmdW5jdGlvbnMuIEl0IGhlbHBz
IGNvbnRyb2xsaW5nIHRoZSBhY2Nlc3MgdG8gdGhlIGRpc3BsYXkgYm94IHRyZWUgYW5kCisgICAg
ICAgIHByZXZlbnRzIGZvcm1hdHRpbmcgY29udGV4dCBlc2NhcGluZy4KKworICAgICAgICAqIGxh
eW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZv
cm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeSk6CisgICAg
ICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L0Zvcm1h
dHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3Jt
YXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbXB1dGVkSGVpZ2h0VmFsdWUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbXB1
dGVkTWF4SGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZE1pbkhlaWdodCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93Tm9u
UmVwbGFjZWRWZXJ0aWNhbEdlb21ldHJ5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZFZlcnRpY2Fs
R2VvbWV0cnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmlubGluZVJl
cGxhY2VkSGVpZ2h0QW5kTWFyZ2luIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0VW5p
dHMuaDoKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKToKKwogMjAxOS0wOS0xMyAgWmFsYW4gQnVqdGFz
ICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIERvIG5vdCBjcmVhdGUgRm9ybWF0
dGluZ0NvbnRleHQgdW5sZXNzIHRoZSByb290IGhhcyBjaGlsZCBib3hlcy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGViOTAyMGUzYjVkYWM1M2Vk
YmQ4NGJlMWRmODU3MDVhYWQ1NmE0NDguLmFmZWQ2YzkxYTJhMzI5YmM5Y2UzZTRmMTY2ODJmNTZi
MjRiNmZjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNw
cApAQCAtOTUsMTkgKzk1LDIyIEBAIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRP
ZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkoY29uc3QgQm94JiBsYXlvdXRCb3gpCiAKIHZvaWQgRm9y
bWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IEJv
eCYgbGF5b3V0Qm94KQogewotICAgIGF1dG8gY29tcHV0ZSA9IFsmXShVc2VkVmVydGljYWxWYWx1
ZXMgdXNlZFZhbHVlcykgewotICAgICAgICByZXR1cm4gZ2VvbWV0cnkoKS5vdXRPZkZsb3dWZXJ0
aWNhbEdlb21ldHJ5KGxheW91dEJveCwgdXNlZFZhbHVlcyk7CisgICAgYXV0byBjb21wdXRlID0g
WyZdKGF1dG8gdXNlZFZlcnRpY2FsVmFsdWVzKSB7CisgICAgICAgIHJldHVybiBnZW9tZXRyeSgp
Lm91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkobGF5b3V0Qm94LCB1c2VkVmVydGljYWxWYWx1ZXMp
OwogICAgIH07Ci0KLSAgICBhdXRvIHZlcnRpY2FsR2VvbWV0cnkgPSBjb21wdXRlKHsgfSk7Ci0g
ICAgaWYgKGF1dG8gbWF4SGVpZ2h0ID0gZ2VvbWV0cnkoKS5jb21wdXRlZE1heEhlaWdodChsYXlv
dXRCb3gpKSB7Ci0gICAgICAgIGF1dG8gbWF4VmVydGljYWxHZW9tZXRyeSA9IGNvbXB1dGUoeyAq
bWF4SGVpZ2h0IH0pOworICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrSGVpZ2h0ID0gZ2VvbWV0cnlG
b3JCb3goKmxheW91dEJveC5jb250YWluaW5nQmxvY2soKSkucGFkZGluZ0JveEhlaWdodCgpOwor
ICAgIGF1dG8gdXNlZFZlcnRpY2FsVmFsdWVzRm9ySGVpZ2h0ID0gVXNlZFZlcnRpY2FsVmFsdWVz
IHsgY29udGFpbmluZ0Jsb2NrSGVpZ2h0LCB7IH0gfTsKKyAgICBhdXRvIHZlcnRpY2FsR2VvbWV0
cnkgPSBjb21wdXRlKHVzZWRWZXJ0aWNhbFZhbHVlc0ZvckhlaWdodCk7CisgICAgaWYgKGF1dG8g
bWF4SGVpZ2h0ID0gZ2VvbWV0cnkoKS5jb21wdXRlZE1heEhlaWdodChsYXlvdXRCb3gsIHVzZWRW
ZXJ0aWNhbFZhbHVlc0ZvckhlaWdodCkpIHsKKyAgICAgICAgYXV0byB1c2VkVmFsdWVzRm9yTWF4
SGVpZ2h0ID0gVXNlZFZlcnRpY2FsVmFsdWVzIHsgY29udGFpbmluZ0Jsb2NrSGVpZ2h0LCBtYXhI
ZWlnaHQgfTsKKyAgICAgICAgYXV0byBtYXhWZXJ0aWNhbEdlb21ldHJ5ID0gY29tcHV0ZSh1c2Vk
VmFsdWVzRm9yTWF4SGVpZ2h0KTsKICAgICAgICAgaWYgKHZlcnRpY2FsR2VvbWV0cnkuaGVpZ2h0
QW5kTWFyZ2luLmhlaWdodCA+IG1heFZlcnRpY2FsR2VvbWV0cnkuaGVpZ2h0QW5kTWFyZ2luLmhl
aWdodCkKICAgICAgICAgICAgIHZlcnRpY2FsR2VvbWV0cnkgPSBtYXhWZXJ0aWNhbEdlb21ldHJ5
OwogICAgIH0KIAotICAgIGlmIChhdXRvIG1pbkhlaWdodCA9IGdlb21ldHJ5KCkuY29tcHV0ZWRN
aW5IZWlnaHQobGF5b3V0Qm94KSkgewotICAgICAgICBhdXRvIG1pblZlcnRpY2FsR2VvbWV0cnkg
PSBjb21wdXRlKHsgKm1pbkhlaWdodCB9KTsKKyAgICBpZiAoYXV0byBtaW5IZWlnaHQgPSBnZW9t
ZXRyeSgpLmNvbXB1dGVkTWluSGVpZ2h0KGxheW91dEJveCwgdXNlZFZlcnRpY2FsVmFsdWVzRm9y
SGVpZ2h0KSkgeworICAgICAgICBhdXRvIHVzZWRWYWx1ZXNGb3JNaW5IZWlnaHQgPSBVc2VkVmVy
dGljYWxWYWx1ZXMgeyBjb250YWluaW5nQmxvY2tIZWlnaHQsIG1pbkhlaWdodCB9OworICAgICAg
ICBhdXRvIG1pblZlcnRpY2FsR2VvbWV0cnkgPSBjb21wdXRlKHVzZWRWYWx1ZXNGb3JNaW5IZWln
aHQpOwogICAgICAgICBpZiAodmVydGljYWxHZW9tZXRyeS5oZWlnaHRBbmRNYXJnaW4uaGVpZ2h0
IDwgbWluVmVydGljYWxHZW9tZXRyeS5oZWlnaHRBbmRNYXJnaW4uaGVpZ2h0KQogICAgICAgICAg
ICAgdmVydGljYWxHZW9tZXRyeSA9IG1pblZlcnRpY2FsR2VvbWV0cnk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCAzZjFlYTgzNTQ4YmFhZmIw
MTkwNjM3YWY3YTYzZjk4ZGMyMTRiMzZkLi4xNGY4YmQ0OTY5YmRhYjEyMjc3M2ZjMzJjNDcyYTVh
OWQwYmViOTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0Nv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaApA
QCAtMTE4LDggKzExOCw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgT3B0aW9uYWw8TGF5b3V0VW5p
dD4gY29tcHV0ZWRWYWx1ZUlmTm90QXV0byhjb25zdCBMZW5ndGgmIGdlb21ldHJ5UHJvcGVydHks
IExheW91dFVuaXQgY29udGFpbmluZ0Jsb2NrV2lkdGgpIGNvbnN0OwogICAgICAgICBPcHRpb25h
bDxMYXlvdXRVbml0PiBmaXhlZFZhbHVlKGNvbnN0IExlbmd0aCYgZ2VvbWV0cnlQcm9wZXJ0eSkg
Y29uc3Q7CiAKLSAgICAgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gY29tcHV0ZWRNaW5IZWlnaHQo
Y29uc3QgQm94JikgY29uc3Q7Ci0gICAgICAgIE9wdGlvbmFsPExheW91dFVuaXQ+IGNvbXB1dGVk
TWF4SGVpZ2h0KGNvbnN0IEJveCYpIGNvbnN0OworICAgICAgICBPcHRpb25hbDxMYXlvdXRVbml0
PiBjb21wdXRlZE1pbkhlaWdodChjb25zdCBCb3gmLCBPcHRpb25hbDxVc2VkVmVydGljYWxWYWx1
ZXM+ID0gV1RGOjpudWxsb3B0KSBjb25zdDsKKyAgICAgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4g
Y29tcHV0ZWRNYXhIZWlnaHQoY29uc3QgQm94JiwgT3B0aW9uYWw8VXNlZFZlcnRpY2FsVmFsdWVz
PiA9IFdURjo6bnVsbG9wdCkgY29uc3Q7CiAKICAgICAgICAgRm9ybWF0dGluZ0NvbnRleHQ6Oklu
dHJpbnNpY1dpZHRoQ29uc3RyYWludHMgY29uc3RyYWluQnlNaW5NYXhXaWR0aChjb25zdCBCb3gm
LCBJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKSBjb25zdDsKIApAQCAtMTI3LDcgKzEyNyw3IEBA
IHByb3RlY3RlZDoKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgZW51bSBjbGFzcyBIZWlnaHRU
eXBlIHsgTWluLCBNYXgsIE5vcm1hbCB9OwotICAgICAgICBPcHRpb25hbDxMYXlvdXRVbml0PiBj
b21wdXRlZEhlaWdodFZhbHVlKGNvbnN0IEJveCYsIEhlaWdodFR5cGUpIGNvbnN0OworICAgICAg
ICBPcHRpb25hbDxMYXlvdXRVbml0PiBjb21wdXRlZEhlaWdodFZhbHVlKGNvbnN0IEJveCYsIEhl
aWdodFR5cGUsIE9wdGlvbmFsPFVzZWRWZXJ0aWNhbFZhbHVlcz4gPSBXVEY6Om51bGxvcHQpIGNv
bnN0OwogCiAgICAgICAgIGNvbnN0IExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZm9ybWF0dGluZ0NvbnRleHQubGF5b3V0U3RhdGUoKTsgfQogICAgICAgICBMYXlv
dXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSB7IHJldHVybiBtX2Zvcm1hdHRpbmdDb250ZXh0LmxheW91
dFN0YXRlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5n
Q29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29u
dGV4dEdlb21ldHJ5LmNwcAppbmRleCBlMGNlZDRhODY0YzFiYjg5ZDUyY2MxZTIxYTYwZGFlMWQ4
YzczMzg1Li41MDkxNWFiZjczM2NkOGQ0ZjdkMDUwNjE3MGI1NTk2M2U4NGI1MGUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3Bw
CkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0hlaWdodEF1dG8oY29uc3Qg
Qm94JiBsYXlvdXRCb3gpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1PcHRpb25hbDxMYXlvdXRV
bml0PiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbXB1dGVkSGVpZ2h0VmFsdWUoY29u
c3QgQm94JiBsYXlvdXRCb3gsIEhlaWdodFR5cGUgaGVpZ2h0VHlwZSkgY29uc3QKK09wdGlvbmFs
PExheW91dFVuaXQ+IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWRIZWlnaHRW
YWx1ZShjb25zdCBCb3gmIGxheW91dEJveCwgSGVpZ2h0VHlwZSBoZWlnaHRUeXBlLCBPcHRpb25h
bDxVc2VkVmVydGljYWxWYWx1ZXM+IHVzZWRWZXJ0aWNhbFZhbHVlcykgY29uc3QKIHsKICAgICBh
dXRvJiBzdHlsZSA9IGxheW91dEJveC5zdHlsZSgpOwogICAgIGF1dG8gaGVpZ2h0ID0gaGVpZ2h0
VHlwZSA9PSBIZWlnaHRUeXBlOjpOb3JtYWwgPyBzdHlsZS5sb2dpY2FsSGVpZ2h0KCkgOiBoZWln
aHRUeXBlID09IEhlaWdodFR5cGU6Ok1pbiA/IHN0eWxlLmxvZ2ljYWxNaW5IZWlnaHQoKSA6IHN0
eWxlLmxvZ2ljYWxNYXhIZWlnaHQoKTsKQEAgLTY3LDEyICs2NywxMyBAQCBPcHRpb25hbDxMYXlv
dXRVbml0PiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbXB1dGVkSGVpZ2h0VmFsdWUo
Y29uc3QgQm94JgogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgaWYgKGhlaWdodC5pc0ZpeGVk
KCkpCi0gICAgICAgIHJldHVybiBMYXlvdXRVbml0KGhlaWdodC52YWx1ZSgpKTsKKyAgICAgICAg
cmV0dXJuIExheW91dFVuaXQgeyBoZWlnaHQudmFsdWUoKSB9OwogCiAgICAgT3B0aW9uYWw8TGF5
b3V0VW5pdD4gY29udGFpbmluZ0Jsb2NrSGVpZ2h0VmFsdWU7Ci0gICAgaWYgKGxheW91dEJveC5p
c091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgeworICAgIGlmICh1c2VkVmVydGljYWxWYWx1ZXMgJiYg
dXNlZFZlcnRpY2FsVmFsdWVzLT5jb250YWluaW5nQmxvY2tIZWlnaHQpIHsKKyAgICAgICAgQVNT
RVJUKGxheW91dEJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSk7CiAgICAgICAgIC8vIENvbnRh
aW5pbmcgYmxvY2sncyBoZWlnaHQgaXMgYWxyZWFkeSBjb21wdXRlZCBzaW5jZSB3ZSBsYXlvdXQg
dGhlIG91dC1vZi1mbG93IGJveGVzIGFzIHRoZSBsYXN0IHN0ZXAuCi0gICAgICAgIGNvbnRhaW5p
bmdCbG9ja0hlaWdodFZhbHVlID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveCgq
bGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpKS5oZWlnaHQoKTsKKyAgICAgICAgY29udGFpbmlu
Z0Jsb2NrSGVpZ2h0VmFsdWUgPSAqdXNlZFZlcnRpY2FsVmFsdWVzLT5jb250YWluaW5nQmxvY2tI
ZWlnaHQ7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKGxheW91dFN0YXRlKCkuaW5RdWlya3NN
b2RlKCkpCiAgICAgICAgICAgICBjb250YWluaW5nQmxvY2tIZWlnaHRWYWx1ZSA9IGZvcm1hdHRp
bmdDb250ZXh0KCkucXVpcmtzKCkuaGVpZ2h0VmFsdWVPZk5lYXJlc3RDb250YWluaW5nQmxvY2tX
aXRoRml4ZWRIZWlnaHQobGF5b3V0Qm94KTsKQEAgLTE3MSwxNyArMTcyLDE3IEBAIE9wdGlvbmFs
PExheW91dFVuaXQ+IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Zml4ZWRWYWx1ZShjb25z
dCBMZW5ndGgmIGdlb21lCiAvLyBTcGVjaWZpZXMgYSBwZXJjZW50YWdlIGZvciBkZXRlcm1pbmlu
ZyB0aGUgdXNlZCB2YWx1ZS4gVGhlIHBlcmNlbnRhZ2UgaXMgY2FsY3VsYXRlZCB3aXRoIHJlc3Bl
Y3QgdG8gdGhlIGhlaWdodCBvZiB0aGUgZ2VuZXJhdGVkIGJveCdzIGNvbnRhaW5pbmcgYmxvY2su
CiAvLyBJZiB0aGUgaGVpZ2h0IG9mIHRoZSBjb250YWluaW5nIGJsb2NrIGlzIG5vdCBzcGVjaWZp
ZWQgZXhwbGljaXRseSAoaS5lLiwgaXQgZGVwZW5kcyBvbiBjb250ZW50IGhlaWdodCksIGFuZCB0
aGlzIGVsZW1lbnQgaXMgbm90IGFic29sdXRlbHkgcG9zaXRpb25lZCwKIC8vIHRoZSBwZXJjZW50
YWdlIHZhbHVlIGlzIHRyZWF0ZWQgYXMgJzAnIChmb3IgJ21pbi1oZWlnaHQnKSBvciAnbm9uZScg
KGZvciAnbWF4LWhlaWdodCcpLgotT3B0aW9uYWw8TGF5b3V0VW5pdD4gRm9ybWF0dGluZ0NvbnRl
eHQ6Okdlb21ldHJ5Ojpjb21wdXRlZE1heEhlaWdodChjb25zdCBCb3gmIGxheW91dEJveCkgY29u
c3QKK09wdGlvbmFsPExheW91dFVuaXQ+IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29t
cHV0ZWRNYXhIZWlnaHQoY29uc3QgQm94JiBsYXlvdXRCb3gsIE9wdGlvbmFsPFVzZWRWZXJ0aWNh
bFZhbHVlcz4gdXNlZFZlcnRpY2FsVmFsdWVzKSBjb25zdAogewotICAgIHJldHVybiBjb21wdXRl
ZEhlaWdodFZhbHVlKGxheW91dEJveCwgSGVpZ2h0VHlwZTo6TWF4KTsKKyAgICByZXR1cm4gY29t
cHV0ZWRIZWlnaHRWYWx1ZShsYXlvdXRCb3gsIEhlaWdodFR5cGU6Ok1heCwgdXNlZFZlcnRpY2Fs
VmFsdWVzKTsKIH0KIAotT3B0aW9uYWw8TGF5b3V0VW5pdD4gRm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5Ojpjb21wdXRlZE1pbkhlaWdodChjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKK09w
dGlvbmFsPExheW91dFVuaXQ+IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWRN
aW5IZWlnaHQoY29uc3QgQm94JiBsYXlvdXRCb3gsIE9wdGlvbmFsPFVzZWRWZXJ0aWNhbFZhbHVl
cz4gdXNlZFZlcnRpY2FsVmFsdWVzKSBjb25zdAogewotICAgIGlmIChhdXRvIG1pbkhlaWdodFZh
bHVlID0gY29tcHV0ZWRIZWlnaHRWYWx1ZShsYXlvdXRCb3gsIEhlaWdodFR5cGU6Ok1pbikpCisg
ICAgaWYgKGF1dG8gbWluSGVpZ2h0VmFsdWUgPSBjb21wdXRlZEhlaWdodFZhbHVlKGxheW91dEJv
eCwgSGVpZ2h0VHlwZTo6TWluLCB1c2VkVmVydGljYWxWYWx1ZXMpKQogICAgICAgICByZXR1cm4g
bWluSGVpZ2h0VmFsdWU7CiAKLSAgICByZXR1cm4geyAwIH07CisgICAgcmV0dXJuIHsgTGF5b3V0
VW5pdCB7IH0gfTsKIH0KIAogTGF5b3V0VW5pdCBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6
OnN0YXRpY1ZlcnRpY2FsUG9zaXRpb25Gb3JPdXRPZkZsb3dQb3NpdGlvbmVkKGNvbnN0IEJveCYg
bGF5b3V0Qm94KSBjb25zdApAQCAtMjcxLDcgKzI3Miw3IEBAIExheW91dFVuaXQgRm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5OjpzaHJpbmtUb0ZpdFdpZHRoKGNvbnN0IEJveCYgZm9ybWF0dGlu
Z1JvCiAgICAgcmV0dXJuIHN0ZDo6bWluKHN0ZDo6bWF4KGludHJpbnNpY1dpZHRoQ29uc3RyYWlu
dHMubWluaW11bSwgYXZhaWxhYmxlV2lkdGgpLCBpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzLm1h
eGltdW0pOwogfQogCi1WZXJ0aWNhbEdlb21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6b3V0T2ZGbG93Tm9uUmVwbGFjZWRWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBVc2VkVmVydGljYWxWYWx1ZXMgdXNlZFZhbHVlcykgY29uc3QKK1ZlcnRpY2FsR2VvbWV0
cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dOb25SZXBsYWNlZFZlcnRp
Y2FsR2VvbWV0cnkoY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRWZXJ0aWNhbFZhbHVlcyB1c2Vk
VmVydGljYWxWYWx1ZXMpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc091dE9mRmxv
d1Bvc2l0aW9uZWQoKSAmJiAhbGF5b3V0Qm94LnJlcGxhY2VkKCkpOwogCkBAIC0zMDgsNyArMzA5
LDcgQEAgVmVydGljYWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9m
Rmxvd05vblJlcGxhY2VkVmVydGljYWxHZW9tZXQKIAogICAgIGF1dG8gdG9wID0gY29tcHV0ZWRW
YWx1ZUlmTm90QXV0byhzdHlsZS5sb2dpY2FsVG9wKCksIGNvbnRhaW5pbmdCbG9ja1dpZHRoKTsK
ICAgICBhdXRvIGJvdHRvbSA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubG9naWNhbEJv
dHRvbSgpLCBjb250YWluaW5nQmxvY2tXaWR0aCk7Ci0gICAgYXV0byBoZWlnaHQgPSB1c2VkVmFs
dWVzLmhlaWdodCA/IHVzZWRWYWx1ZXMuaGVpZ2h0LnZhbHVlKCkgOiBjb21wdXRlZEhlaWdodFZh
bHVlKGxheW91dEJveCwgSGVpZ2h0VHlwZTo6Tm9ybWFsKTsKKyAgICBhdXRvIGhlaWdodCA9IHVz
ZWRWZXJ0aWNhbFZhbHVlcy5oZWlnaHQgPyB1c2VkVmVydGljYWxWYWx1ZXMuaGVpZ2h0LnZhbHVl
KCkgOiBjb21wdXRlZEhlaWdodFZhbHVlKGxheW91dEJveCwgSGVpZ2h0VHlwZTo6Tm9ybWFsLCB1
c2VkVmVydGljYWxWYWx1ZXMpOwogICAgIGF1dG8gY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbiA9IEdl
b21ldHJ5Ojpjb21wdXRlZFZlcnRpY2FsTWFyZ2luKGxheW91dEJveCwgVXNlZEhvcml6b250YWxW
YWx1ZXMgeyBjb250YWluaW5nQmxvY2tXaWR0aCB9KTsKICAgICBVc2VkVmVydGljYWxNYXJnaW46
Ok5vbkNvbGxhcHNlZFZhbHVlcyB1c2VkVmVydGljYWxNYXJnaW47IAogICAgIGF1dG8gcGFkZGlu
Z1RvcCA9IGJveEdlb21ldHJ5LnBhZGRpbmdUb3AoKS52YWx1ZU9yKDApOwpAQCAtNTQ0LDcgKzU0
NSw3IEBAIEhvcml6b250YWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91
dE9mRmxvd05vblJlcGxhY2VkSG9yaXpvbnRhbEdlCiAgICAgcmV0dXJuIHsgKmxlZnQsICpyaWdo
dCwgeyBjb250ZW50V2lkdGgoKSwgdXNlZEhvcml6b250YWxNYXJnaW4sIGNvbXB1dGVkSG9yaXpv
bnRhbE1hcmdpbiB9IH07CiB9CiAKLVZlcnRpY2FsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6
Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZFZlcnRpY2FsR2VvbWV0cnkoY29uc3QgQm94JiBs
YXlvdXRCb3gsIFVzZWRWZXJ0aWNhbFZhbHVlcyB1c2VkVmFsdWVzKSBjb25zdAorVmVydGljYWxH
ZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1JlcGxhY2VkVmVy
dGljYWxHZW9tZXRyeShjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRpY2FsVmFsdWVzIHVz
ZWRWZXJ0aWNhbFZhbHVlcykgY29uc3QKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzT3V0T2ZG
bG93UG9zaXRpb25lZCgpICYmIGxheW91dEJveC5yZXBsYWNlZCgpKTsKIApAQCAtNTY3LDcgKzU2
OCw3IEBAIFZlcnRpY2FsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRP
ZkZsb3dSZXBsYWNlZFZlcnRpY2FsR2VvbWV0cnkoCiAKICAgICBhdXRvIHRvcCA9IGNvbXB1dGVk
VmFsdWVJZk5vdEF1dG8oc3R5bGUubG9naWNhbFRvcCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCk7
CiAgICAgYXV0byBib3R0b20gPSBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0eWxlLmxvZ2ljYWxC
b3R0b20oKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpOwotICAgIGF1dG8gaGVpZ2h0ID0gaW5saW5l
UmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4obGF5b3V0Qm94LCB1c2VkVmFsdWVzKS5oZWlnaHQ7Cisg
ICAgYXV0byBoZWlnaHQgPSBpbmxpbmVSZXBsYWNlZEhlaWdodEFuZE1hcmdpbihsYXlvdXRCb3gs
IHVzZWRWZXJ0aWNhbFZhbHVlcykuaGVpZ2h0OwogICAgIGF1dG8gY29tcHV0ZWRWZXJ0aWNhbE1h
cmdpbiA9IEdlb21ldHJ5Ojpjb21wdXRlZFZlcnRpY2FsTWFyZ2luKGxheW91dEJveCwgVXNlZEhv
cml6b250YWxWYWx1ZXMgeyBjb250YWluaW5nQmxvY2tXaWR0aCB9KTsKICAgICBPcHRpb25hbDxM
YXlvdXRVbml0PiB1c2VkTWFyZ2luQmVmb3JlID0gY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbi5iZWZv
cmU7CiAgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZE1hcmdpbkFmdGVyID0gY29tcHV0ZWRW
ZXJ0aWNhbE1hcmdpbi5hZnRlcjsKQEAgLTgwOSwxMyArODEwLDEzIEBAIFdpZHRoQW5kTWFyZ2lu
IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdSZXBsYWNlZFdpZHRoQW5kTWFy
Z2luKGNvbnN0CiAgICAgICAgIHVzZWRWYWx1ZXMud2lkdGgsIFVzZWRIb3Jpem9udGFsTWFyZ2lu
IHsgY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luLnN0YXJ0LnZhbHVlT3IoMCksIGNvbXB1dGVkSG9y
aXpvbnRhbE1hcmdpbi5lbmQudmFsdWVPcigwKSB9IH0pOwogfQogCi1WZXJ0aWNhbEdlb21ldHJ5
IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeShj
b25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRpY2FsVmFsdWVzIHVzZWRWYWx1ZXMpIGNvbnN0
CitWZXJ0aWNhbEdlb21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93
VmVydGljYWxHZW9tZXRyeShjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRpY2FsVmFsdWVz
IHVzZWRWZXJ0aWNhbFZhbHVlcykgY29uc3QKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzT3V0
T2ZGbG93UG9zaXRpb25lZCgpKTsKIAogICAgIGlmICghbGF5b3V0Qm94LnJlcGxhY2VkKCkpCi0g
ICAgICAgIHJldHVybiBvdXRPZkZsb3dOb25SZXBsYWNlZFZlcnRpY2FsR2VvbWV0cnkobGF5b3V0
Qm94LCB1c2VkVmFsdWVzKTsKLSAgICByZXR1cm4gb3V0T2ZGbG93UmVwbGFjZWRWZXJ0aWNhbEdl
b21ldHJ5KGxheW91dEJveCwgdXNlZFZhbHVlcyk7CisgICAgICAgIHJldHVybiBvdXRPZkZsb3dO
b25SZXBsYWNlZFZlcnRpY2FsR2VvbWV0cnkobGF5b3V0Qm94LCB1c2VkVmVydGljYWxWYWx1ZXMp
OworICAgIHJldHVybiBvdXRPZkZsb3dSZXBsYWNlZFZlcnRpY2FsR2VvbWV0cnkobGF5b3V0Qm94
LCB1c2VkVmVydGljYWxWYWx1ZXMpOwogfQogCiBIb3Jpem9udGFsR2VvbWV0cnkgRm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkoY29uc3QgQm94
JiBsYXlvdXRCb3gsIFVzZWRIb3Jpem9udGFsVmFsdWVzIHVzZWRWYWx1ZXMpCkBAIC04NDUsNyAr
ODQ2LDcgQEAgV2lkdGhBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9h
dGluZ1dpZHRoQW5kTWFyZ2luKGNvbnN0IEJveCYgbGEKICAgICByZXR1cm4gZmxvYXRpbmdSZXBs
YWNlZFdpZHRoQW5kTWFyZ2luKGxheW91dEJveCwgdXNlZFZhbHVlcyk7CiB9CiAKLUhlaWdodEFu
ZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmlubGluZVJlcGxhY2VkSGVpZ2h0
QW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxWYWx1ZXMgdXNlZFZh
bHVlcykgY29uc3QKK0hlaWdodEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6
OmlubGluZVJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2Vk
VmVydGljYWxWYWx1ZXMgdXNlZFZlcnRpY2FsVmFsdWVzKSBjb25zdAogewogICAgIEFTU0VSVCgo
bGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIHx8IGxheW91dEJveC5pc0Zsb2F0aW5n
UG9zaXRpb25lZCgpIHx8IGxheW91dEJveC5pc0luRmxvdygpKSAmJiBsYXlvdXRCb3gucmVwbGFj
ZWQoKSk7CiAKQEAgLTg2Nyw4ICs4NjgsOCBAQCBIZWlnaHRBbmRNYXJnaW4gRm9ybWF0dGluZ0Nv
bnRleHQ6Okdlb21ldHJ5OjppbmxpbmVSZXBsYWNlZEhlaWdodEFuZE1hcmdpbihjb25zdAogICAg
IGF1dG8mIHN0eWxlID0gbGF5b3V0Qm94LnN0eWxlKCk7CiAgICAgYXV0byByZXBsYWNlZCA9IGxh
eW91dEJveC5yZXBsYWNlZCgpOwogCi0gICAgYXV0byBoZWlnaHQgPSB1c2VkVmFsdWVzLmhlaWdo
dCA/IHVzZWRWYWx1ZXMuaGVpZ2h0LnZhbHVlKCkgOiBjb21wdXRlZEhlaWdodFZhbHVlKGxheW91
dEJveCwgSGVpZ2h0VHlwZTo6Tm9ybWFsKTsKLSAgICBhdXRvIGhlaWdodElzQXV0byA9ICF1c2Vk
VmFsdWVzLmhlaWdodCAmJiBpc0hlaWdodEF1dG8obGF5b3V0Qm94KTsKKyAgICBhdXRvIGhlaWdo
dCA9IHVzZWRWZXJ0aWNhbFZhbHVlcy5oZWlnaHQgPyB1c2VkVmVydGljYWxWYWx1ZXMuaGVpZ2h0
LnZhbHVlKCkgOiBjb21wdXRlZEhlaWdodFZhbHVlKGxheW91dEJveCwgSGVpZ2h0VHlwZTo6Tm9y
bWFsLCB1c2VkVmVydGljYWxWYWx1ZXMpOworICAgIGF1dG8gaGVpZ2h0SXNBdXRvID0gIXVzZWRW
ZXJ0aWNhbFZhbHVlcy5oZWlnaHQgJiYgaXNIZWlnaHRBdXRvKGxheW91dEJveCk7CiAgICAgYXV0
byB3aWR0aElzQXV0byA9IHN0eWxlLmxvZ2ljYWxXaWR0aCgpLmlzQXV0bygpOwogCiAgICAgaWYg
KGhlaWdodElzQXV0byAmJiB3aWR0aElzQXV0byAmJiByZXBsYWNlZC0+aGFzSW50cmluc2ljSGVp
Z2h0KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRVbml0cy5o
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFVuaXRzLmgKaW5kZXggOTJiZmZhM2Y0NDZi
ZjM4OWVmZTY1NjIxMTYwYTk1MTBkMzA2ZmYxMS4uMTU1ZWY5MmUxYzQ4YmUyMjMyYjU5MTNjNWVj
MGE4MmVjNmMyYzIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFVu
aXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFVuaXRzLmgKQEAgLTE2MCw2
ICsxNjAsNyBAQCBzdHJ1Y3QgVXNlZEhvcml6b250YWxWYWx1ZXMgewogfTsKIAogc3RydWN0IFVz
ZWRWZXJ0aWNhbFZhbHVlcyB7CisgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gY29udGFpbmluZ0Js
b2NrSGVpZ2h0OwogICAgIE9wdGlvbmFsPExheW91dFVuaXQ+IGhlaWdodDsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Js
b2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGRjYTAwYzJlM2EyZTNkNDQzZmQzZGEzYmMx
ZWM5YzgxMzA2Mzc2ZDguLmQ2M2JkZmQyNjNjZjc1N2EyOWRlYjUxMzdkYTIxMDZhZjdiYjQxNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tG
b3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMzg0LDcgKzM4NCw3IEBAIHZv
aWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEJv
eCYgbGF5b3V0Qm94LCBPcHRpb25hCiAKIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29t
cHV0ZUhlaWdodEFuZE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCkKIHsKLSAgICBhdXRvIGNv
bXB1dGUgPSBbJl0oVXNlZFZlcnRpY2FsVmFsdWVzIHVzZWRWYWx1ZXMpIC0+IEhlaWdodEFuZE1h
cmdpbiB7CisgICAgYXV0byBjb21wdXRlID0gWyZdKGF1dG8gdXNlZFZhbHVlcykgLT4gSGVpZ2h0
QW5kTWFyZ2luIHsKIAogICAgICAgICBpZiAobGF5b3V0Qm94LmlzSW5GbG93KCkpCiAgICAgICAg
ICAgICByZXR1cm4gZ2VvbWV0cnkoKS5pbkZsb3dIZWlnaHRBbmRNYXJnaW4obGF5b3V0Qm94LCB1
c2VkVmFsdWVzKTsKQEAgLTM5NiwxMCArMzk2LDEwIEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6Y29tcHV0ZUhlaWdodEFuZE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCkKICAgICAg
ICAgcmV0dXJuIHsgfTsKICAgICB9OwogCi0gICAgYXV0byBoZWlnaHRBbmRNYXJnaW4gPSBjb21w
dXRlKHsgfSk7CisgICAgYXV0byBoZWlnaHRBbmRNYXJnaW4gPSBjb21wdXRlKFVzZWRWZXJ0aWNh
bFZhbHVlcyB7IH0pOwogICAgIGlmIChhdXRvIG1heEhlaWdodCA9IGdlb21ldHJ5KCkuY29tcHV0
ZWRNYXhIZWlnaHQobGF5b3V0Qm94KSkgewogICAgICAgICBpZiAoaGVpZ2h0QW5kTWFyZ2luLmhl
aWdodCA+ICptYXhIZWlnaHQpIHsKLSAgICAgICAgICAgIGF1dG8gbWF4SGVpZ2h0QW5kTWFyZ2lu
ID0gY29tcHV0ZSh7ICptYXhIZWlnaHQgfSk7CisgICAgICAgICAgICBhdXRvIG1heEhlaWdodEFu
ZE1hcmdpbiA9IGNvbXB1dGUoVXNlZFZlcnRpY2FsVmFsdWVzIHsgeyB9LCAqbWF4SGVpZ2h0IH0p
OwogICAgICAgICAgICAgLy8gVXNlZCBoZWlnaHQgc2hvdWxkIHJlbWFpbiB0aGUgc2FtZS4KICAg
ICAgICAgICAgIEFTU0VSVCgobGF5b3V0U3RhdGUoKS5pblF1aXJrc01vZGUoKSAmJiAobGF5b3V0
Qm94LmlzQm9keUJveCgpIHx8IGxheW91dEJveC5pc0RvY3VtZW50Qm94KCkpKSB8fCBtYXhIZWln
aHRBbmRNYXJnaW4uaGVpZ2h0ID09ICptYXhIZWlnaHQpOwogICAgICAgICAgICAgaGVpZ2h0QW5k
TWFyZ2luID0geyAqbWF4SGVpZ2h0LCBtYXhIZWlnaHRBbmRNYXJnaW4ubm9uQ29sbGFwc2VkTWFy
Z2luIH07CkBAIC00MDgsNyArNDA4LDcgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpj
b21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94KQogCiAgICAgaWYgKGF1
dG8gbWluSGVpZ2h0ID0gZ2VvbWV0cnkoKS5jb21wdXRlZE1pbkhlaWdodChsYXlvdXRCb3gpKSB7
CiAgICAgICAgIGlmIChoZWlnaHRBbmRNYXJnaW4uaGVpZ2h0IDwgKm1pbkhlaWdodCkgewotICAg
ICAgICAgICAgYXV0byBtaW5IZWlnaHRBbmRNYXJnaW4gPSBjb21wdXRlKHsgKm1pbkhlaWdodCB9
KTsKKyAgICAgICAgICAgIGF1dG8gbWluSGVpZ2h0QW5kTWFyZ2luID0gY29tcHV0ZShVc2VkVmVy
dGljYWxWYWx1ZXMgeyB7IH0sICptaW5IZWlnaHQgfSk7CiAgICAgICAgICAgICAvLyBVc2VkIGhl
aWdodCBzaG91bGQgcmVtYWluIHRoZSBzYW1lLgogICAgICAgICAgICAgQVNTRVJUKChsYXlvdXRT
dGF0ZSgpLmluUXVpcmtzTW9kZSgpICYmIChsYXlvdXRCb3guaXNCb2R5Qm94KCkgfHwgbGF5b3V0
Qm94LmlzRG9jdW1lbnRCb3goKSkpIHx8IG1pbkhlaWdodEFuZE1hcmdpbi5oZWlnaHQgPT0gKm1p
bkhlaWdodCk7CiAgICAgICAgICAgICBoZWlnaHRBbmRNYXJnaW4gPSB7ICptaW5IZWlnaHQsIG1p
bkhlaWdodEFuZE1hcmdpbi5ub25Db2xsYXBzZWRNYXJnaW4gfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378792</attachid>
            <date>2019-09-14 05:04:38 -0700</date>
            <delta_ts>2019-09-14 06:55:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201791-20190914050434.patch</filename>
            <type>text/plain</type>
            <size>17534</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5ODUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDNmYjc4NGM5N2M5NzNl
OWIyMDMxMTRlMTMxMjYzMjExNDJiZDc0NS4uOWYxZGM2ZDhiMzBkYzQ1ZjUwODVmZDE4YmU5OTMz
OGNkNWI4Y2QwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5LTA5LTEzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gRm9ybWF0dGluZ0Nv
bnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZEhlaWdodFZhbHVlIHNob3VsZCBub3QgcmVhZCBjb250
YWluaW5nIGJsb2NrJ3MgaGVpZ2h0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAxNzkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTM2MTY5NT4K
KworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBXaGlsZSBz
aXppbmcvcG9zaXRpb25pbmcgYSBwYXJ0aWN1bGFyIGJveCwgd2Ugb2Z0ZW50aW1lcyBuZWVkIHNv
bWUgY29udGFpbmluZyBibG9jayBnZW9tZXRyeSBpbmZvcm1hdGlvbi4KKyAgICAgICAgVGhlIGlk
ZWEgaGVyZSBpcyB0aGF0IGluc3RlYWQgb2YgY2FsbGluZyBmb3JtYXR0aW5nQ29udGV4dCgpLmdl
b21ldHJ5KGNvbnRhaW5pbmdCbG9jayksIHRoZXNlIGNvbnN0cmFpbnQgdmFsdWVzCisgICAgICAg
IHdvdWxkIGJlIHB1c2hlZCBpbiB0byB0aG9zZSBjb21wdXRlKiBmdW5jdGlvbnMuIEl0IGhlbHBz
IGNvbnRyb2xsaW5nIHRoZSBhY2Nlc3MgdG8gdGhlIGRpc3BsYXkgYm94IHRyZWUgYW5kCisgICAg
ICAgIHByZXZlbnRzIGZvcm1hdHRpbmcgY29udGV4dCBlc2NhcGluZy4KKworICAgICAgICAqIGxh
eW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZv
cm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeSk6CisgICAg
ICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L0Zvcm1h
dHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3Jt
YXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbXB1dGVkSGVpZ2h0VmFsdWUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbXB1
dGVkTWF4SGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZE1pbkhlaWdodCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93Tm9u
UmVwbGFjZWRWZXJ0aWNhbEdlb21ldHJ5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZFZlcnRpY2Fs
R2VvbWV0cnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmlubGluZVJl
cGxhY2VkSGVpZ2h0QW5kTWFyZ2luIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0VW5p
dHMuaDoKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKToKKwogMjAxOS0wOS0xMyAgWmFsYW4gQnVqdGFz
ICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIERvIG5vdCBjcmVhdGUgRm9ybWF0
dGluZ0NvbnRleHQgdW5sZXNzIHRoZSByb290IGhhcyBjaGlsZCBib3hlcy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGViOTAyMGUzYjVkYWM1M2Vk
YmQ4NGJlMWRmODU3MDVhYWQ1NmE0NDguLmFmZWQ2YzkxYTJhMzI5YmM5Y2UzZTRmMTY2ODJmNTZi
MjRiNmZjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNw
cApAQCAtOTUsMTkgKzk1LDIyIEBAIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRP
ZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkoY29uc3QgQm94JiBsYXlvdXRCb3gpCiAKIHZvaWQgRm9y
bWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IEJv
eCYgbGF5b3V0Qm94KQogewotICAgIGF1dG8gY29tcHV0ZSA9IFsmXShVc2VkVmVydGljYWxWYWx1
ZXMgdXNlZFZhbHVlcykgewotICAgICAgICByZXR1cm4gZ2VvbWV0cnkoKS5vdXRPZkZsb3dWZXJ0
aWNhbEdlb21ldHJ5KGxheW91dEJveCwgdXNlZFZhbHVlcyk7CisgICAgYXV0byBjb21wdXRlID0g
WyZdKGF1dG8gdXNlZFZlcnRpY2FsVmFsdWVzKSB7CisgICAgICAgIHJldHVybiBnZW9tZXRyeSgp
Lm91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkobGF5b3V0Qm94LCB1c2VkVmVydGljYWxWYWx1ZXMp
OwogICAgIH07Ci0KLSAgICBhdXRvIHZlcnRpY2FsR2VvbWV0cnkgPSBjb21wdXRlKHsgfSk7Ci0g
ICAgaWYgKGF1dG8gbWF4SGVpZ2h0ID0gZ2VvbWV0cnkoKS5jb21wdXRlZE1heEhlaWdodChsYXlv
dXRCb3gpKSB7Ci0gICAgICAgIGF1dG8gbWF4VmVydGljYWxHZW9tZXRyeSA9IGNvbXB1dGUoeyAq
bWF4SGVpZ2h0IH0pOworICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrSGVpZ2h0ID0gZ2VvbWV0cnlG
b3JCb3goKmxheW91dEJveC5jb250YWluaW5nQmxvY2soKSkucGFkZGluZ0JveEhlaWdodCgpOwor
ICAgIGF1dG8gdXNlZFZlcnRpY2FsVmFsdWVzRm9ySGVpZ2h0ID0gVXNlZFZlcnRpY2FsVmFsdWVz
IHsgY29udGFpbmluZ0Jsb2NrSGVpZ2h0LCB7IH0gfTsKKyAgICBhdXRvIHZlcnRpY2FsR2VvbWV0
cnkgPSBjb21wdXRlKHVzZWRWZXJ0aWNhbFZhbHVlc0ZvckhlaWdodCk7CisgICAgaWYgKGF1dG8g
bWF4SGVpZ2h0ID0gZ2VvbWV0cnkoKS5jb21wdXRlZE1heEhlaWdodChsYXlvdXRCb3gsIHVzZWRW
ZXJ0aWNhbFZhbHVlc0ZvckhlaWdodCkpIHsKKyAgICAgICAgYXV0byB1c2VkVmFsdWVzRm9yTWF4
SGVpZ2h0ID0gVXNlZFZlcnRpY2FsVmFsdWVzIHsgY29udGFpbmluZ0Jsb2NrSGVpZ2h0LCBtYXhI
ZWlnaHQgfTsKKyAgICAgICAgYXV0byBtYXhWZXJ0aWNhbEdlb21ldHJ5ID0gY29tcHV0ZSh1c2Vk
VmFsdWVzRm9yTWF4SGVpZ2h0KTsKICAgICAgICAgaWYgKHZlcnRpY2FsR2VvbWV0cnkuaGVpZ2h0
QW5kTWFyZ2luLmhlaWdodCA+IG1heFZlcnRpY2FsR2VvbWV0cnkuaGVpZ2h0QW5kTWFyZ2luLmhl
aWdodCkKICAgICAgICAgICAgIHZlcnRpY2FsR2VvbWV0cnkgPSBtYXhWZXJ0aWNhbEdlb21ldHJ5
OwogICAgIH0KIAotICAgIGlmIChhdXRvIG1pbkhlaWdodCA9IGdlb21ldHJ5KCkuY29tcHV0ZWRN
aW5IZWlnaHQobGF5b3V0Qm94KSkgewotICAgICAgICBhdXRvIG1pblZlcnRpY2FsR2VvbWV0cnkg
PSBjb21wdXRlKHsgKm1pbkhlaWdodCB9KTsKKyAgICBpZiAoYXV0byBtaW5IZWlnaHQgPSBnZW9t
ZXRyeSgpLmNvbXB1dGVkTWluSGVpZ2h0KGxheW91dEJveCwgdXNlZFZlcnRpY2FsVmFsdWVzRm9y
SGVpZ2h0KSkgeworICAgICAgICBhdXRvIHVzZWRWYWx1ZXNGb3JNaW5IZWlnaHQgPSBVc2VkVmVy
dGljYWxWYWx1ZXMgeyBjb250YWluaW5nQmxvY2tIZWlnaHQsIG1pbkhlaWdodCB9OworICAgICAg
ICBhdXRvIG1pblZlcnRpY2FsR2VvbWV0cnkgPSBjb21wdXRlKHVzZWRWYWx1ZXNGb3JNaW5IZWln
aHQpOwogICAgICAgICBpZiAodmVydGljYWxHZW9tZXRyeS5oZWlnaHRBbmRNYXJnaW4uaGVpZ2h0
IDwgbWluVmVydGljYWxHZW9tZXRyeS5oZWlnaHRBbmRNYXJnaW4uaGVpZ2h0KQogICAgICAgICAg
ICAgdmVydGljYWxHZW9tZXRyeSA9IG1pblZlcnRpY2FsR2VvbWV0cnk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCAzZjFlYTgzNTQ4YmFhZmIw
MTkwNjM3YWY3YTYzZjk4ZGMyMTRiMzZkLi4xNGY4YmQ0OTY5YmRhYjEyMjc3M2ZjMzJjNDcyYTVh
OWQwYmViOTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0Nv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaApA
QCAtMTE4LDggKzExOCw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgT3B0aW9uYWw8TGF5b3V0VW5p
dD4gY29tcHV0ZWRWYWx1ZUlmTm90QXV0byhjb25zdCBMZW5ndGgmIGdlb21ldHJ5UHJvcGVydHks
IExheW91dFVuaXQgY29udGFpbmluZ0Jsb2NrV2lkdGgpIGNvbnN0OwogICAgICAgICBPcHRpb25h
bDxMYXlvdXRVbml0PiBmaXhlZFZhbHVlKGNvbnN0IExlbmd0aCYgZ2VvbWV0cnlQcm9wZXJ0eSkg
Y29uc3Q7CiAKLSAgICAgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gY29tcHV0ZWRNaW5IZWlnaHQo
Y29uc3QgQm94JikgY29uc3Q7Ci0gICAgICAgIE9wdGlvbmFsPExheW91dFVuaXQ+IGNvbXB1dGVk
TWF4SGVpZ2h0KGNvbnN0IEJveCYpIGNvbnN0OworICAgICAgICBPcHRpb25hbDxMYXlvdXRVbml0
PiBjb21wdXRlZE1pbkhlaWdodChjb25zdCBCb3gmLCBPcHRpb25hbDxVc2VkVmVydGljYWxWYWx1
ZXM+ID0gV1RGOjpudWxsb3B0KSBjb25zdDsKKyAgICAgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4g
Y29tcHV0ZWRNYXhIZWlnaHQoY29uc3QgQm94JiwgT3B0aW9uYWw8VXNlZFZlcnRpY2FsVmFsdWVz
PiA9IFdURjo6bnVsbG9wdCkgY29uc3Q7CiAKICAgICAgICAgRm9ybWF0dGluZ0NvbnRleHQ6Oklu
dHJpbnNpY1dpZHRoQ29uc3RyYWludHMgY29uc3RyYWluQnlNaW5NYXhXaWR0aChjb25zdCBCb3gm
LCBJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKSBjb25zdDsKIApAQCAtMTI3LDcgKzEyNyw3IEBA
IHByb3RlY3RlZDoKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgZW51bSBjbGFzcyBIZWlnaHRU
eXBlIHsgTWluLCBNYXgsIE5vcm1hbCB9OwotICAgICAgICBPcHRpb25hbDxMYXlvdXRVbml0PiBj
b21wdXRlZEhlaWdodFZhbHVlKGNvbnN0IEJveCYsIEhlaWdodFR5cGUpIGNvbnN0OworICAgICAg
ICBPcHRpb25hbDxMYXlvdXRVbml0PiBjb21wdXRlZEhlaWdodFZhbHVlKGNvbnN0IEJveCYsIEhl
aWdodFR5cGUsIE9wdGlvbmFsPFVzZWRWZXJ0aWNhbFZhbHVlcz4gPSBXVEY6Om51bGxvcHQpIGNv
bnN0OwogCiAgICAgICAgIGNvbnN0IExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZm9ybWF0dGluZ0NvbnRleHQubGF5b3V0U3RhdGUoKTsgfQogICAgICAgICBMYXlv
dXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSB7IHJldHVybiBtX2Zvcm1hdHRpbmdDb250ZXh0LmxheW91
dFN0YXRlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5n
Q29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29u
dGV4dEdlb21ldHJ5LmNwcAppbmRleCBlMGNlZDRhODY0YzFiYjg5ZDUyY2MxZTIxYTYwZGFlMWQ4
YzczMzg1Li5iYjE1NjliOWNhYjFhYjMxMmE3MDE3MzcxZDhjNzMxZmRjNTdmNzA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3Bw
CkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0hlaWdodEF1dG8oY29uc3Qg
Qm94JiBsYXlvdXRCb3gpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1PcHRpb25hbDxMYXlvdXRV
bml0PiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbXB1dGVkSGVpZ2h0VmFsdWUoY29u
c3QgQm94JiBsYXlvdXRCb3gsIEhlaWdodFR5cGUgaGVpZ2h0VHlwZSkgY29uc3QKK09wdGlvbmFs
PExheW91dFVuaXQ+IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWRIZWlnaHRW
YWx1ZShjb25zdCBCb3gmIGxheW91dEJveCwgSGVpZ2h0VHlwZSBoZWlnaHRUeXBlLCBPcHRpb25h
bDxVc2VkVmVydGljYWxWYWx1ZXM+IHVzZWRWZXJ0aWNhbFZhbHVlcykgY29uc3QKIHsKICAgICBh
dXRvJiBzdHlsZSA9IGxheW91dEJveC5zdHlsZSgpOwogICAgIGF1dG8gaGVpZ2h0ID0gaGVpZ2h0
VHlwZSA9PSBIZWlnaHRUeXBlOjpOb3JtYWwgPyBzdHlsZS5sb2dpY2FsSGVpZ2h0KCkgOiBoZWln
aHRUeXBlID09IEhlaWdodFR5cGU6Ok1pbiA/IHN0eWxlLmxvZ2ljYWxNaW5IZWlnaHQoKSA6IHN0
eWxlLmxvZ2ljYWxNYXhIZWlnaHQoKTsKQEAgLTY3LDEyICs2NywxMyBAQCBPcHRpb25hbDxMYXlv
dXRVbml0PiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbXB1dGVkSGVpZ2h0VmFsdWUo
Y29uc3QgQm94JgogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgaWYgKGhlaWdodC5pc0ZpeGVk
KCkpCi0gICAgICAgIHJldHVybiBMYXlvdXRVbml0KGhlaWdodC52YWx1ZSgpKTsKKyAgICAgICAg
cmV0dXJuIExheW91dFVuaXQgeyBoZWlnaHQudmFsdWUoKSB9OwogCiAgICAgT3B0aW9uYWw8TGF5
b3V0VW5pdD4gY29udGFpbmluZ0Jsb2NrSGVpZ2h0VmFsdWU7Ci0gICAgaWYgKGxheW91dEJveC5p
c091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgeworICAgIGlmICh1c2VkVmVydGljYWxWYWx1ZXMgJiYg
dXNlZFZlcnRpY2FsVmFsdWVzLT5jb250YWluaW5nQmxvY2tIZWlnaHQpIHsKKyAgICAgICAgQVNT
RVJUKGxheW91dEJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSk7CiAgICAgICAgIC8vIENvbnRh
aW5pbmcgYmxvY2sncyBoZWlnaHQgaXMgYWxyZWFkeSBjb21wdXRlZCBzaW5jZSB3ZSBsYXlvdXQg
dGhlIG91dC1vZi1mbG93IGJveGVzIGFzIHRoZSBsYXN0IHN0ZXAuCi0gICAgICAgIGNvbnRhaW5p
bmdCbG9ja0hlaWdodFZhbHVlID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveCgq
bGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpKS5oZWlnaHQoKTsKKyAgICAgICAgY29udGFpbmlu
Z0Jsb2NrSGVpZ2h0VmFsdWUgPSAqdXNlZFZlcnRpY2FsVmFsdWVzLT5jb250YWluaW5nQmxvY2tI
ZWlnaHQ7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKGxheW91dFN0YXRlKCkuaW5RdWlya3NN
b2RlKCkpCiAgICAgICAgICAgICBjb250YWluaW5nQmxvY2tIZWlnaHRWYWx1ZSA9IGZvcm1hdHRp
bmdDb250ZXh0KCkucXVpcmtzKCkuaGVpZ2h0VmFsdWVPZk5lYXJlc3RDb250YWluaW5nQmxvY2tX
aXRoRml4ZWRIZWlnaHQobGF5b3V0Qm94KTsKQEAgLTE3MSwxNyArMTcyLDE3IEBAIE9wdGlvbmFs
PExheW91dFVuaXQ+IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Zml4ZWRWYWx1ZShjb25z
dCBMZW5ndGgmIGdlb21lCiAvLyBTcGVjaWZpZXMgYSBwZXJjZW50YWdlIGZvciBkZXRlcm1pbmlu
ZyB0aGUgdXNlZCB2YWx1ZS4gVGhlIHBlcmNlbnRhZ2UgaXMgY2FsY3VsYXRlZCB3aXRoIHJlc3Bl
Y3QgdG8gdGhlIGhlaWdodCBvZiB0aGUgZ2VuZXJhdGVkIGJveCdzIGNvbnRhaW5pbmcgYmxvY2su
CiAvLyBJZiB0aGUgaGVpZ2h0IG9mIHRoZSBjb250YWluaW5nIGJsb2NrIGlzIG5vdCBzcGVjaWZp
ZWQgZXhwbGljaXRseSAoaS5lLiwgaXQgZGVwZW5kcyBvbiBjb250ZW50IGhlaWdodCksIGFuZCB0
aGlzIGVsZW1lbnQgaXMgbm90IGFic29sdXRlbHkgcG9zaXRpb25lZCwKIC8vIHRoZSBwZXJjZW50
YWdlIHZhbHVlIGlzIHRyZWF0ZWQgYXMgJzAnIChmb3IgJ21pbi1oZWlnaHQnKSBvciAnbm9uZScg
KGZvciAnbWF4LWhlaWdodCcpLgotT3B0aW9uYWw8TGF5b3V0VW5pdD4gRm9ybWF0dGluZ0NvbnRl
eHQ6Okdlb21ldHJ5Ojpjb21wdXRlZE1heEhlaWdodChjb25zdCBCb3gmIGxheW91dEJveCkgY29u
c3QKK09wdGlvbmFsPExheW91dFVuaXQ+IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29t
cHV0ZWRNYXhIZWlnaHQoY29uc3QgQm94JiBsYXlvdXRCb3gsIE9wdGlvbmFsPFVzZWRWZXJ0aWNh
bFZhbHVlcz4gdXNlZFZlcnRpY2FsVmFsdWVzKSBjb25zdAogewotICAgIHJldHVybiBjb21wdXRl
ZEhlaWdodFZhbHVlKGxheW91dEJveCwgSGVpZ2h0VHlwZTo6TWF4KTsKKyAgICByZXR1cm4gY29t
cHV0ZWRIZWlnaHRWYWx1ZShsYXlvdXRCb3gsIEhlaWdodFR5cGU6Ok1heCwgdXNlZFZlcnRpY2Fs
VmFsdWVzKTsKIH0KIAotT3B0aW9uYWw8TGF5b3V0VW5pdD4gRm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5Ojpjb21wdXRlZE1pbkhlaWdodChjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKK09w
dGlvbmFsPExheW91dFVuaXQ+IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWRN
aW5IZWlnaHQoY29uc3QgQm94JiBsYXlvdXRCb3gsIE9wdGlvbmFsPFVzZWRWZXJ0aWNhbFZhbHVl
cz4gdXNlZFZlcnRpY2FsVmFsdWVzKSBjb25zdAogewotICAgIGlmIChhdXRvIG1pbkhlaWdodFZh
bHVlID0gY29tcHV0ZWRIZWlnaHRWYWx1ZShsYXlvdXRCb3gsIEhlaWdodFR5cGU6Ok1pbikpCisg
ICAgaWYgKGF1dG8gbWluSGVpZ2h0VmFsdWUgPSBjb21wdXRlZEhlaWdodFZhbHVlKGxheW91dEJv
eCwgSGVpZ2h0VHlwZTo6TWluLCB1c2VkVmVydGljYWxWYWx1ZXMpKQogICAgICAgICByZXR1cm4g
bWluSGVpZ2h0VmFsdWU7CiAKLSAgICByZXR1cm4geyAwIH07CisgICAgcmV0dXJuIHsgTGF5b3V0
VW5pdCB7IH0gfTsKIH0KIAogTGF5b3V0VW5pdCBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6
OnN0YXRpY1ZlcnRpY2FsUG9zaXRpb25Gb3JPdXRPZkZsb3dQb3NpdGlvbmVkKGNvbnN0IEJveCYg
bGF5b3V0Qm94KSBjb25zdApAQCAtMjcxLDkgKzI3MiwxMCBAQCBMYXlvdXRVbml0IEZvcm1hdHRp
bmdDb250ZXh0OjpHZW9tZXRyeTo6c2hyaW5rVG9GaXRXaWR0aChjb25zdCBCb3gmIGZvcm1hdHRp
bmdSbwogICAgIHJldHVybiBzdGQ6Om1pbihzdGQ6Om1heChpbnRyaW5zaWNXaWR0aENvbnN0cmFp
bnRzLm1pbmltdW0sIGF2YWlsYWJsZVdpZHRoKSwgaW50cmluc2ljV2lkdGhDb25zdHJhaW50cy5t
YXhpbXVtKTsKIH0KIAotVmVydGljYWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0
cnk6Om91dE9mRmxvd05vblJlcGxhY2VkVmVydGljYWxHZW9tZXRyeShjb25zdCBCb3gmIGxheW91
dEJveCwgVXNlZFZlcnRpY2FsVmFsdWVzIHVzZWRWYWx1ZXMpIGNvbnN0CitWZXJ0aWNhbEdlb21l
dHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93Tm9uUmVwbGFjZWRWZXJ0
aWNhbEdlb21ldHJ5KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxWYWx1ZXMgdXNl
ZFZlcnRpY2FsVmFsdWVzKSBjb25zdAogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNPdXRPZkZs
b3dQb3NpdGlvbmVkKCkgJiYgIWxheW91dEJveC5yZXBsYWNlZCgpKTsKKyAgICBBU1NFUlQodXNl
ZFZlcnRpY2FsVmFsdWVzLmNvbnRhaW5pbmdCbG9ja0hlaWdodCk7CiAKICAgICAvLyAxMC42LjQg
QWJzb2x1dGVseSBwb3NpdGlvbmVkLCBub24tcmVwbGFjZWQgZWxlbWVudHMKICAgICAvLwpAQCAt
MzAzLDEyICszMDUsMTIgQEAgVmVydGljYWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6Om91dE9mRmxvd05vblJlcGxhY2VkVmVydGljYWxHZW9tZXQKICAgICBhdXRvJiBzdHls
ZSA9IGxheW91dEJveC5zdHlsZSgpOwogICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0dGlu
Z0NvbnRleHQuZ2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94KTsKICAgICBhdXRvJiBjb250YWluaW5n
QmxvY2tHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KCpsYXlvdXRC
b3guY29udGFpbmluZ0Jsb2NrKCkpOwotICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrSGVpZ2h0ID0g
Y29udGFpbmluZ0Jsb2NrR2VvbWV0cnkucGFkZGluZ0JveEhlaWdodCgpOworICAgIGF1dG8gY29u
dGFpbmluZ0Jsb2NrSGVpZ2h0ID0gKnVzZWRWZXJ0aWNhbFZhbHVlcy5jb250YWluaW5nQmxvY2tI
ZWlnaHQ7CiAgICAgYXV0byBjb250YWluaW5nQmxvY2tXaWR0aCA9IGNvbnRhaW5pbmdCbG9ja0dl
b21ldHJ5LnBhZGRpbmdCb3hXaWR0aCgpOwogCiAgICAgYXV0byB0b3AgPSBjb21wdXRlZFZhbHVl
SWZOb3RBdXRvKHN0eWxlLmxvZ2ljYWxUb3AoKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpOwogICAg
IGF1dG8gYm90dG9tID0gY29tcHV0ZWRWYWx1ZUlmTm90QXV0byhzdHlsZS5sb2dpY2FsQm90dG9t
KCksIGNvbnRhaW5pbmdCbG9ja1dpZHRoKTsKLSAgICBhdXRvIGhlaWdodCA9IHVzZWRWYWx1ZXMu
aGVpZ2h0ID8gdXNlZFZhbHVlcy5oZWlnaHQudmFsdWUoKSA6IGNvbXB1dGVkSGVpZ2h0VmFsdWUo
bGF5b3V0Qm94LCBIZWlnaHRUeXBlOjpOb3JtYWwpOworICAgIGF1dG8gaGVpZ2h0ID0gdXNlZFZl
cnRpY2FsVmFsdWVzLmhlaWdodCA/IHVzZWRWZXJ0aWNhbFZhbHVlcy5oZWlnaHQudmFsdWUoKSA6
IGNvbXB1dGVkSGVpZ2h0VmFsdWUobGF5b3V0Qm94LCBIZWlnaHRUeXBlOjpOb3JtYWwsIHVzZWRW
ZXJ0aWNhbFZhbHVlcyk7CiAgICAgYXV0byBjb21wdXRlZFZlcnRpY2FsTWFyZ2luID0gR2VvbWV0
cnk6OmNvbXB1dGVkVmVydGljYWxNYXJnaW4obGF5b3V0Qm94LCBVc2VkSG9yaXpvbnRhbFZhbHVl
cyB7IGNvbnRhaW5pbmdCbG9ja1dpZHRoIH0pOwogICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9u
Q29sbGFwc2VkVmFsdWVzIHVzZWRWZXJ0aWNhbE1hcmdpbjsgCiAgICAgYXV0byBwYWRkaW5nVG9w
ID0gYm94R2VvbWV0cnkucGFkZGluZ1RvcCgpLnZhbHVlT3IoMCk7CkBAIC01NDQsNyArNTQ2LDcg
QEAgSG9yaXpvbnRhbEdlb21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZG
bG93Tm9uUmVwbGFjZWRIb3Jpem9udGFsR2UKICAgICByZXR1cm4geyAqbGVmdCwgKnJpZ2h0LCB7
IGNvbnRlbnRXaWR0aCgpLCB1c2VkSG9yaXpvbnRhbE1hcmdpbiwgY29tcHV0ZWRIb3Jpem9udGFs
TWFyZ2luIH0gfTsKIH0KIAotVmVydGljYWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6Om91dE9mRmxvd1JlcGxhY2VkVmVydGljYWxHZW9tZXRyeShjb25zdCBCb3gmIGxheW91
dEJveCwgVXNlZFZlcnRpY2FsVmFsdWVzIHVzZWRWYWx1ZXMpIGNvbnN0CitWZXJ0aWNhbEdlb21l
dHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93UmVwbGFjZWRWZXJ0aWNh
bEdlb21ldHJ5KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxWYWx1ZXMgdXNlZFZl
cnRpY2FsVmFsdWVzKSBjb25zdAogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNPdXRPZkZsb3dQ
b3NpdGlvbmVkKCkgJiYgbGF5b3V0Qm94LnJlcGxhY2VkKCkpOwogCkBAIC01NjcsNyArNTY5LDcg
QEAgVmVydGljYWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxv
d1JlcGxhY2VkVmVydGljYWxHZW9tZXRyeSgKIAogICAgIGF1dG8gdG9wID0gY29tcHV0ZWRWYWx1
ZUlmTm90QXV0byhzdHlsZS5sb2dpY2FsVG9wKCksIGNvbnRhaW5pbmdCbG9ja1dpZHRoKTsKICAg
ICBhdXRvIGJvdHRvbSA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubG9naWNhbEJvdHRv
bSgpLCBjb250YWluaW5nQmxvY2tXaWR0aCk7Ci0gICAgYXV0byBoZWlnaHQgPSBpbmxpbmVSZXBs
YWNlZEhlaWdodEFuZE1hcmdpbihsYXlvdXRCb3gsIHVzZWRWYWx1ZXMpLmhlaWdodDsKKyAgICBh
dXRvIGhlaWdodCA9IGlubGluZVJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKGxheW91dEJveCwgdXNl
ZFZlcnRpY2FsVmFsdWVzKS5oZWlnaHQ7CiAgICAgYXV0byBjb21wdXRlZFZlcnRpY2FsTWFyZ2lu
ID0gR2VvbWV0cnk6OmNvbXB1dGVkVmVydGljYWxNYXJnaW4obGF5b3V0Qm94LCBVc2VkSG9yaXpv
bnRhbFZhbHVlcyB7IGNvbnRhaW5pbmdCbG9ja1dpZHRoIH0pOwogICAgIE9wdGlvbmFsPExheW91
dFVuaXQ+IHVzZWRNYXJnaW5CZWZvcmUgPSBjb21wdXRlZFZlcnRpY2FsTWFyZ2luLmJlZm9yZTsK
ICAgICBPcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkTWFyZ2luQWZ0ZXIgPSBjb21wdXRlZFZlcnRp
Y2FsTWFyZ2luLmFmdGVyOwpAQCAtODA5LDEzICs4MTEsMTMgQEAgV2lkdGhBbmRNYXJnaW4gRm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ1JlcGxhY2VkV2lkdGhBbmRNYXJnaW4o
Y29uc3QKICAgICAgICAgdXNlZFZhbHVlcy53aWR0aCwgVXNlZEhvcml6b250YWxNYXJnaW4geyBj
b21wdXRlZEhvcml6b250YWxNYXJnaW4uc3RhcnQudmFsdWVPcigwKSwgY29tcHV0ZWRIb3Jpem9u
dGFsTWFyZ2luLmVuZC52YWx1ZU9yKDApIH0gfSk7CiB9CiAKLVZlcnRpY2FsR2VvbWV0cnkgRm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0
IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxWYWx1ZXMgdXNlZFZhbHVlcykgY29uc3QKK1Zl
cnRpY2FsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dWZXJ0
aWNhbEdlb21ldHJ5KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxWYWx1ZXMgdXNl
ZFZlcnRpY2FsVmFsdWVzKSBjb25zdAogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNPdXRPZkZs
b3dQb3NpdGlvbmVkKCkpOwogCiAgICAgaWYgKCFsYXlvdXRCb3gucmVwbGFjZWQoKSkKLSAgICAg
ICAgcmV0dXJuIG91dE9mRmxvd05vblJlcGxhY2VkVmVydGljYWxHZW9tZXRyeShsYXlvdXRCb3gs
IHVzZWRWYWx1ZXMpOwotICAgIHJldHVybiBvdXRPZkZsb3dSZXBsYWNlZFZlcnRpY2FsR2VvbWV0
cnkobGF5b3V0Qm94LCB1c2VkVmFsdWVzKTsKKyAgICAgICAgcmV0dXJuIG91dE9mRmxvd05vblJl
cGxhY2VkVmVydGljYWxHZW9tZXRyeShsYXlvdXRCb3gsIHVzZWRWZXJ0aWNhbFZhbHVlcyk7Cisg
ICAgcmV0dXJuIG91dE9mRmxvd1JlcGxhY2VkVmVydGljYWxHZW9tZXRyeShsYXlvdXRCb3gsIHVz
ZWRWZXJ0aWNhbFZhbHVlcyk7CiB9CiAKIEhvcml6b250YWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeShjb25zdCBCb3gmIGxh
eW91dEJveCwgVXNlZEhvcml6b250YWxWYWx1ZXMgdXNlZFZhbHVlcykKQEAgLTg0NSw3ICs4NDcs
NyBAQCBXaWR0aEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5n
V2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiBsYQogICAgIHJldHVybiBmbG9hdGluZ1JlcGxhY2Vk
V2lkdGhBbmRNYXJnaW4obGF5b3V0Qm94LCB1c2VkVmFsdWVzKTsKIH0KIAotSGVpZ2h0QW5kTWFy
Z2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5saW5lUmVwbGFjZWRIZWlnaHRBbmRN
YXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRWZXJ0aWNhbFZhbHVlcyB1c2VkVmFsdWVz
KSBjb25zdAorSGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5s
aW5lUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRWZXJ0
aWNhbFZhbHVlcyB1c2VkVmVydGljYWxWYWx1ZXMpIGNvbnN0CiB7CiAgICAgQVNTRVJUKChsYXlv
dXRCb3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgfHwgbGF5b3V0Qm94LmlzRmxvYXRpbmdQb3Np
dGlvbmVkKCkgfHwgbGF5b3V0Qm94LmlzSW5GbG93KCkpICYmIGxheW91dEJveC5yZXBsYWNlZCgp
KTsKIApAQCAtODY3LDggKzg2OSw4IEBAIEhlaWdodEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4
dDo6R2VvbWV0cnk6OmlubGluZVJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKGNvbnN0CiAgICAgYXV0
byYgc3R5bGUgPSBsYXlvdXRCb3guc3R5bGUoKTsKICAgICBhdXRvIHJlcGxhY2VkID0gbGF5b3V0
Qm94LnJlcGxhY2VkKCk7CiAKLSAgICBhdXRvIGhlaWdodCA9IHVzZWRWYWx1ZXMuaGVpZ2h0ID8g
dXNlZFZhbHVlcy5oZWlnaHQudmFsdWUoKSA6IGNvbXB1dGVkSGVpZ2h0VmFsdWUobGF5b3V0Qm94
LCBIZWlnaHRUeXBlOjpOb3JtYWwpOwotICAgIGF1dG8gaGVpZ2h0SXNBdXRvID0gIXVzZWRWYWx1
ZXMuaGVpZ2h0ICYmIGlzSGVpZ2h0QXV0byhsYXlvdXRCb3gpOworICAgIGF1dG8gaGVpZ2h0ID0g
dXNlZFZlcnRpY2FsVmFsdWVzLmhlaWdodCA/IHVzZWRWZXJ0aWNhbFZhbHVlcy5oZWlnaHQudmFs
dWUoKSA6IGNvbXB1dGVkSGVpZ2h0VmFsdWUobGF5b3V0Qm94LCBIZWlnaHRUeXBlOjpOb3JtYWws
IHVzZWRWZXJ0aWNhbFZhbHVlcyk7CisgICAgYXV0byBoZWlnaHRJc0F1dG8gPSAhdXNlZFZlcnRp
Y2FsVmFsdWVzLmhlaWdodCAmJiBpc0hlaWdodEF1dG8obGF5b3V0Qm94KTsKICAgICBhdXRvIHdp
ZHRoSXNBdXRvID0gc3R5bGUubG9naWNhbFdpZHRoKCkuaXNBdXRvKCk7CiAKICAgICBpZiAoaGVp
Z2h0SXNBdXRvICYmIHdpZHRoSXNBdXRvICYmIHJlcGxhY2VkLT5oYXNJbnRyaW5zaWNIZWlnaHQo
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFVuaXRzLmggYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0VW5pdHMuaAppbmRleCA5MmJmZmEzZjQ0NmJmMzg5
ZWZlNjU2MjExNjBhOTUxMGQzMDZmZjExLi4xNTVlZjkyZTFjNDhiZTIyMzJiNTkxM2M1ZWMwYTgy
ZWM2YzJjMjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0VW5pdHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0VW5pdHMuaApAQCAtMTYwLDYgKzE2
MCw3IEBAIHN0cnVjdCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7CiB9OwogCiBzdHJ1Y3QgVXNlZFZl
cnRpY2FsVmFsdWVzIHsKKyAgICBPcHRpb25hbDxMYXlvdXRVbml0PiBjb250YWluaW5nQmxvY2tI
ZWlnaHQ7CiAgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gaGVpZ2h0OwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tG
b3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggZGNhMDBjMmUzYTJlM2Q0NDNmZDNkYTNiYzFlYzlj
ODEzMDYzNzZkOC4uZDYzYmRmZDI2M2NmNzU3YTI5ZGViNTEzN2RhMjEwNmFmN2JiNDE1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1h
dHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0
aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0zODQsNyArMzg0LDcgQEAgdm9pZCBC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiBs
YXlvdXRCb3gsIE9wdGlvbmEKIAogdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRl
SGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94KQogewotICAgIGF1dG8gY29tcHV0
ZSA9IFsmXShVc2VkVmVydGljYWxWYWx1ZXMgdXNlZFZhbHVlcykgLT4gSGVpZ2h0QW5kTWFyZ2lu
IHsKKyAgICBhdXRvIGNvbXB1dGUgPSBbJl0oYXV0byB1c2VkVmFsdWVzKSAtPiBIZWlnaHRBbmRN
YXJnaW4gewogCiAgICAgICAgIGlmIChsYXlvdXRCb3guaXNJbkZsb3coKSkKICAgICAgICAgICAg
IHJldHVybiBnZW9tZXRyeSgpLmluRmxvd0hlaWdodEFuZE1hcmdpbihsYXlvdXRCb3gsIHVzZWRW
YWx1ZXMpOwpAQCAtMzk2LDEwICszOTYsMTAgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94KQogICAgICAgICBy
ZXR1cm4geyB9OwogICAgIH07CiAKLSAgICBhdXRvIGhlaWdodEFuZE1hcmdpbiA9IGNvbXB1dGUo
eyB9KTsKKyAgICBhdXRvIGhlaWdodEFuZE1hcmdpbiA9IGNvbXB1dGUoVXNlZFZlcnRpY2FsVmFs
dWVzIHsgfSk7CiAgICAgaWYgKGF1dG8gbWF4SGVpZ2h0ID0gZ2VvbWV0cnkoKS5jb21wdXRlZE1h
eEhlaWdodChsYXlvdXRCb3gpKSB7CiAgICAgICAgIGlmIChoZWlnaHRBbmRNYXJnaW4uaGVpZ2h0
ID4gKm1heEhlaWdodCkgewotICAgICAgICAgICAgYXV0byBtYXhIZWlnaHRBbmRNYXJnaW4gPSBj
b21wdXRlKHsgKm1heEhlaWdodCB9KTsKKyAgICAgICAgICAgIGF1dG8gbWF4SGVpZ2h0QW5kTWFy
Z2luID0gY29tcHV0ZShVc2VkVmVydGljYWxWYWx1ZXMgeyB7IH0sICptYXhIZWlnaHQgfSk7CiAg
ICAgICAgICAgICAvLyBVc2VkIGhlaWdodCBzaG91bGQgcmVtYWluIHRoZSBzYW1lLgogICAgICAg
ICAgICAgQVNTRVJUKChsYXlvdXRTdGF0ZSgpLmluUXVpcmtzTW9kZSgpICYmIChsYXlvdXRCb3gu
aXNCb2R5Qm94KCkgfHwgbGF5b3V0Qm94LmlzRG9jdW1lbnRCb3goKSkpIHx8IG1heEhlaWdodEFu
ZE1hcmdpbi5oZWlnaHQgPT0gKm1heEhlaWdodCk7CiAgICAgICAgICAgICBoZWlnaHRBbmRNYXJn
aW4gPSB7ICptYXhIZWlnaHQsIG1heEhlaWdodEFuZE1hcmdpbi5ub25Db2xsYXBzZWRNYXJnaW4g
fTsKQEAgLTQwOCw3ICs0MDgsNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1
dGVIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gpCiAKICAgICBpZiAoYXV0byBt
aW5IZWlnaHQgPSBnZW9tZXRyeSgpLmNvbXB1dGVkTWluSGVpZ2h0KGxheW91dEJveCkpIHsKICAg
ICAgICAgaWYgKGhlaWdodEFuZE1hcmdpbi5oZWlnaHQgPCAqbWluSGVpZ2h0KSB7Ci0gICAgICAg
ICAgICBhdXRvIG1pbkhlaWdodEFuZE1hcmdpbiA9IGNvbXB1dGUoeyAqbWluSGVpZ2h0IH0pOwor
ICAgICAgICAgICAgYXV0byBtaW5IZWlnaHRBbmRNYXJnaW4gPSBjb21wdXRlKFVzZWRWZXJ0aWNh
bFZhbHVlcyB7IHsgfSwgKm1pbkhlaWdodCB9KTsKICAgICAgICAgICAgIC8vIFVzZWQgaGVpZ2h0
IHNob3VsZCByZW1haW4gdGhlIHNhbWUuCiAgICAgICAgICAgICBBU1NFUlQoKGxheW91dFN0YXRl
KCkuaW5RdWlya3NNb2RlKCkgJiYgKGxheW91dEJveC5pc0JvZHlCb3goKSB8fCBsYXlvdXRCb3gu
aXNEb2N1bWVudEJveCgpKSkgfHwgbWluSGVpZ2h0QW5kTWFyZ2luLmhlaWdodCA9PSAqbWluSGVp
Z2h0KTsKICAgICAgICAgICAgIGhlaWdodEFuZE1hcmdpbiA9IHsgKm1pbkhlaWdodCwgbWluSGVp
Z2h0QW5kTWFyZ2luLm5vbkNvbGxhcHNlZE1hcmdpbiB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>