<?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>231288</bug_id>
          
          <creation_ts>2021-10-06 06:58:05 -0700</creation_ts>
          <short_desc>[LFC] Layout box should own its children</short_desc>
          <delta_ts>2021-10-06 08:26:35 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>bfulgham</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>1801040</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-06 06:58:05 -0700</bug_when>
    <thetext>Avoid need for separate ownership.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801043</commentid>
    <comment_count>1</comment_count>
      <attachid>440362</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-06 07:01:18 -0700</bug_when>
    <thetext>Created attachment 440362
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801083</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-06 08:25:24 -0700</bug_when>
    <thetext>Committed r283620 (242572@main): &lt;https://commits.webkit.org/242572@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440362.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801085</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-06 08:26:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/83934867&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440362</attachid>
            <date>2021-10-06 07:01:18 -0700</date>
            <delta_ts>2021-10-06 08:25:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231288-20211006170117.patch</filename>
            <type>text/plain</type>
            <size>28756</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQzYjI3NjI2YzhjMmNj
YmE2Njc1MDBiYTc4MWZiMmRjNjJhMDI1Yy4uOTU4Mzk4MmNiYmEzNWUwNDA5OTIzNjk5Yjk4ZTVh
ZmRiMzAxMjlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIxLTEwLTA2ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBMYXlvdXQgYm94
IHNob3VsZCBvd24gaXRzIGNoaWxkcmVuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzEyODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBdm9pZCB0aGUgbmVlZCB0byBoYXZlIGEgc2VwYXJhdGUgb3duZXJz
aGlwIHNjaGVtZS4KKworICAgICAgICBBbHNvIG1ha2UgdGhlIGJveCB0cmVlIHVzZSBDaGVja2Vk
UHRycy4KKworICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJv
eFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkJveFRyZWU6
OmFwcGVuZENoaWxkKToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25Cb3hUcmVlLmg6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94OjpzZXRQYXJlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCb3g6OnNldE5leHRTaWJsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6Qm94OjpzZXRQcmV2aW91c1NpYmxpbmcpOgorICAgICAgICAqIGxheW91dC9sYXlv
dXR0cmVlL0xheW91dEJveC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6Om5leHRT
aWJsaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94OjpwcmV2aW91c1Np
YmxpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6Om5leHRTaWJsaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94OjpzZXRQYXJlbnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OnNldE5leHRTaWJsaW5nKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94OjpzZXRQcmV2aW91c1NpYmxpbmcpOiBEZWxl
dGVkLgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5lckJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkNvbnRhaW5lckJveDo6fkNvbnRhaW5lckJveCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkNvbnRhaW5lckJveDo6YXBwZW5kQ2hpbGQpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpDb250YWluZXJCb3g6OmRlc3Ryb3lDaGlsZHJlbik6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkNvbnRhaW5lckJveDo6c2V0Rmlyc3RDaGlsZCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkNvbnRhaW5lckJveDo6c2V0TGFz
dENoaWxkKTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250
YWluZXJCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Q29udGFpbmVyQm94OjpmaXJz
dENoaWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Q29udGFpbmVyQm94Ojps
YXN0Q2hpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpDb250YWluZXJCb3g6
OmZpcnN0Q2hpbGQpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvbGF5
b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkxheW91dFRyZWU6OkxheW91dFRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjphcHBl
bmRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRyZWVCdWlsZGVyOjpidWlsZExh
eW91dFRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUcmVlQnVpbGRlcjo6VHJlZUJ1
aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUcmVlQnVpbGRlcjo6Y3JlYXRlUmVw
bGFjZWRCb3gpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUcmVlQnVpbGRlcjo6Y3JlYXRl
VGV4dEJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRyZWVCdWlsZGVyOjpjcmVhdGVM
aW5lQnJlYWtCb3gpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUcmVlQnVpbGRlcjo6Y3Jl
YXRlQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VHJlZUJ1aWxkZXI6OmNy
ZWF0ZUxheW91dEJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRyZWVCdWlsZGVyOjpi
dWlsZFRhYmxlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VHJlZUJ1aWxk
ZXI6OmJ1aWxkU3ViVHJlZSk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJl
ZUJ1aWxkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0VHJlZTo6cm9vdCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dFRyZWU6OmFwcGVuZCk6IERl
bGV0ZWQuCisKIDIwMjEtMTAtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI4MzMzNSk6IE1vbWVudHVtIHNjcm9sbGluZyBp
cyBubyBsb25nZXIgbG9ja2VkIHRvIGFuIGF4aXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5jcHAK
aW5kZXggNjcwZGI3ZmY5MTg2OTRiOThlNGI2MzE5NmU2ZmNiN2RhMjg3ODM1Ni4uMzhjZmNiMTc0
YjEzMzM5YjY5MjUxMWIzYzcyYjQ4OGQ5OGU3MzIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJl
ZS5jcHAKQEAgLTE1Myw5ICsxNTMsMTAgQEAgdm9pZCBCb3hUcmVlOjpidWlsZFRyZWUoKQogdm9p
ZCBCb3hUcmVlOjphcHBlbmRDaGlsZChVbmlxdWVSZWY8TGF5b3V0OjpCb3g+IGNoaWxkQm94LCBS
ZW5kZXJPYmplY3QmIGNoaWxkUmVuZGVyZXIpCiB7CiAgICAgYXV0byYgcGFyZW50Qm94ID0gZG93
bmNhc3Q8TGF5b3V0OjpDb250YWluZXJCb3g+KGxheW91dEJveEZvclJlbmRlcmVyKCpjaGlsZFJl
bmRlcmVyLnBhcmVudCgpKSk7Ci0gICAgcGFyZW50Qm94LmFwcGVuZENoaWxkKGNoaWxkQm94Lmdl
dCgpKTsKIAotICAgIG1fYm94ZXMuYXBwZW5kKHsgV1RGTW92ZShjaGlsZEJveCksICZjaGlsZFJl
bmRlcmVyIH0pOworICAgIG1fYm94ZXMuYXBwZW5kKHsgY2hpbGRCb3guZ2V0KCksICZjaGlsZFJl
bmRlcmVyIH0pOworCisgICAgcGFyZW50Qm94LmFwcGVuZENoaWxkKFdURk1vdmUoY2hpbGRCb3gp
KTsKIAogICAgIGlmIChtX2JveGVzLnNpemUoKSA+IHNtYWxsVHJlZVRocmVzaG9sZCkgewogICAg
ICAgICBpZiAobV9yZW5kZXJlclRvQm94TWFwLmlzRW1wdHkoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5o
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94
VHJlZS5oCmluZGV4IDhlZmY4MDkxY2YyNzRlNmUwZWVjNmEwYjI1NDBiMjFkOTI1MzE2OGIuLjBm
NmFhZmE0OTA1MGIxN2U5MzE0MDIzNWIwMjBhY2JlOTA3MzkxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25C
b3hUcmVlLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgIHNpemVfdCBib3hDb3VudCgp
IGNvbnN0IHsgcmV0dXJuIG1fYm94ZXMuc2l6ZSgpOyB9CiAKICAgICBzdHJ1Y3QgQm94QW5kUmVu
ZGVyZXIgewotICAgICAgICBVbmlxdWVSZWY8TGF5b3V0OjpCb3g+IGJveDsKKyAgICAgICAgQ2hl
Y2tlZFJlZjxMYXlvdXQ6OkJveD4gYm94OwogICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVy
IHsgbnVsbHB0ciB9OwogICAgIH07CiAgICAgY29uc3QgYXV0byYgYm94QW5kUmVuZGVyZXJMaXN0
KCkgY29uc3QgeyByZXR1cm4gbV9ib3hlczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9s
YXlvdXR0cmVlL0xheW91dEJveC5jcHAKaW5kZXggYzQwNzZmNDU0ZDNhMGFjZTkzZGU2MDgzOWJl
MGRlMzBjYzBmYTEzYi4uNmVjNWRjYjI0NjY2ODQ3NTQ0NjU3NWZlYTYwODJlNTU0NjE0YzVjMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCkBA
IC01OSw2ICs1OSwyMSBAQCBCb3g6On5Cb3goKQogICAgICAgICByZW1vdmVSYXJlRGF0YSgpOwog
fQogCit2b2lkIEJveDo6c2V0UGFyZW50KENvbnRhaW5lckJveCogcGFyZW50KQoreworICAgIG1f
cGFyZW50ID0gcGFyZW50OworfQorCit2b2lkIEJveDo6c2V0TmV4dFNpYmxpbmcoQm94KiBuZXh0
U2libGluZykKK3sKKyAgICBtX25leHRTaWJsaW5nID0gbmV4dFNpYmxpbmc7Cit9CisKK3ZvaWQg
Qm94OjpzZXRQcmV2aW91c1NpYmxpbmcoQm94KiBwcmV2aW91c1NpYmxpbmcpCit7CisgICAgbV9w
cmV2aW91c1NpYmxpbmcgPSBwcmV2aW91c1NpYmxpbmc7Cit9CisKIHZvaWQgQm94Ojp1cGRhdGVT
dHlsZShjb25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUsIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJT
dHlsZT4mJiBuZXdGaXJzdExpbmVTdHlsZSkKIHsKICAgICBtX3N0eWxlID0gUmVuZGVyU3R5bGU6
OmNsb25lKG5ld1N0eWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlv
dXR0cmVlL0xheW91dEJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0Qm94LmgKaW5kZXggNGY2ZWEwMDgyOTI3YThkNjg3ZDJhOTZjMWRiODRmMTE3MGYxN2IzYi4u
YWJjOGY1OWFmZTQ1OWVkMmQ2NjVjZDI3MzFlYTFiMDJlMWIxNjAyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKQEAgLTE0MCwxNiArMTQwLDE2IEBA
IHB1YmxpYzoKICAgICBib29sIGlzSW50ZXJuYWxSdWJ5Qm94KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAogICAgIGNvbnN0IENvbnRhaW5lckJveCYgcGFyZW50KCkgY29uc3QgeyByZXR1cm4g
Km1fcGFyZW50OyB9Ci0gICAgY29uc3QgQm94KiBuZXh0U2libGluZygpIGNvbnN0IHsgcmV0dXJu
IG1fbmV4dFNpYmxpbmc7IH0KKyAgICBjb25zdCBCb3gqIG5leHRTaWJsaW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9uZXh0U2libGluZy5nZXQoKTsgfQogICAgIGNvbnN0IEJveCogbmV4dEluRmxvd1Np
YmxpbmcoKSBjb25zdDsKICAgICBjb25zdCBCb3gqIG5leHRJbkZsb3dPckZsb2F0aW5nU2libGlu
ZygpIGNvbnN0OwotICAgIGNvbnN0IEJveCogcHJldmlvdXNTaWJsaW5nKCkgY29uc3QgeyByZXR1
cm4gbV9wcmV2aW91c1NpYmxpbmc7IH0KKyAgICBjb25zdCBCb3gqIHByZXZpb3VzU2libGluZygp
IGNvbnN0IHsgcmV0dXJuIG1fcHJldmlvdXNTaWJsaW5nLmdldCgpOyB9CiAgICAgY29uc3QgQm94
KiBwcmV2aW91c0luRmxvd1NpYmxpbmcoKSBjb25zdDsKICAgICBjb25zdCBCb3gqIHByZXZpb3Vz
SW5GbG93T3JGbG9hdGluZ1NpYmxpbmcoKSBjb25zdDsKICAgICBib29sIGlzRGVzY2VuZGFudE9m
KGNvbnN0IENvbnRhaW5lckJveCYpIGNvbnN0OwogCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgY3Vy
cmVudGx5IG5lZWRlZCBmb3Igc3R5bGUgdXBkYXRlcy4KLSAgICBCb3gqIG5leHRTaWJsaW5nKCkg
eyByZXR1cm4gbV9uZXh0U2libGluZzsgfQorICAgIEJveCogbmV4dFNpYmxpbmcoKSB7IHJldHVy
biBtX25leHRTaWJsaW5nLmdldCgpOyB9CiAKICAgICBib29sIGlzQ29udGFpbmVyQm94KCkgY29u
c3QgeyByZXR1cm4gYmFzZVR5cGVGbGFncygpLmNvbnRhaW5zKENvbnRhaW5lckJveEZsYWcpOyB9
CiAgICAgYm9vbCBpc0lubGluZVRleHRCb3goKSBjb25zdCB7IHJldHVybiBiYXNlVHlwZUZsYWdz
KCkuY29udGFpbnMoSW5saW5lVGV4dEJveEZsYWcpOyB9CkBAIC0xNzMsMTAgKzE3Myw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldENvbHVtbldpZHRoKExheW91dFVuaXQpOwogICAgIHN0ZDo6b3B0
aW9uYWw8TGF5b3V0VW5pdD4gY29sdW1uV2lkdGgoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0UGFy
ZW50KENvbnRhaW5lckJveCYgcGFyZW50KSB7IG1fcGFyZW50ID0gJnBhcmVudDsgfQotICAgIHZv
aWQgc2V0TmV4dFNpYmxpbmcoQm94JiBuZXh0U2libGluZykgeyBtX25leHRTaWJsaW5nID0gJm5l
eHRTaWJsaW5nOyB9Ci0gICAgdm9pZCBzZXRQcmV2aW91c1NpYmxpbmcoQm94JiBwcmV2aW91c1Np
YmxpbmcpIHsgbV9wcmV2aW91c1NpYmxpbmcgPSAmcHJldmlvdXNTaWJsaW5nOyB9Ci0KICAgICB2
b2lkIHNldElzQW5vbnltb3VzKCkgeyBtX2lzQW5vbnltb3VzID0gdHJ1ZTsgfQogCiAgICAgYm9v
bCBjYW5DYWNoZUZvckxheW91dFN0YXRlKGNvbnN0IExheW91dFN0YXRlJikgY29uc3Q7CkBAIC0x
ODcsNiArMTgzLDEyIEBAIHByb3RlY3RlZDoKICAgICBCb3goc3RkOjpvcHRpb25hbDxFbGVtZW50
QXR0cmlidXRlcz4sIFJlbmRlclN0eWxlJiYsIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4m
JiBmaXJzdExpbmVTdHlsZSwgT3B0aW9uU2V0PEJhc2VUeXBlRmxhZz4pOwogCiBwcml2YXRlOgor
ICAgIGZyaWVuZCBjbGFzcyBDb250YWluZXJCb3g7CisKKyAgICB2b2lkIHNldFBhcmVudChDb250
YWluZXJCb3gqKTsKKyAgICB2b2lkIHNldE5leHRTaWJsaW5nKEJveCopOworICAgIHZvaWQgc2V0
UHJldmlvdXNTaWJsaW5nKEJveCopOworCiAgICAgY2xhc3MgQm94UmFyZURhdGEgewogICAgICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6CkBAIC0yMTIsOSArMjE0LDkg
QEAgcHJpdmF0ZToKICAgICBSZW5kZXJTdHlsZSBtX3N0eWxlOwogICAgIHN0ZDo6b3B0aW9uYWw8
RWxlbWVudEF0dHJpYnV0ZXM+IG1fZWxlbWVudEF0dHJpYnV0ZXM7CiAKLSAgICBDb250YWluZXJC
b3gqIG1fcGFyZW50IHsgbnVsbHB0ciB9OwotICAgIEJveCogbV9wcmV2aW91c1NpYmxpbmcgeyBu
dWxscHRyIH07Ci0gICAgQm94KiBtX25leHRTaWJsaW5nIHsgbnVsbHB0ciB9OworICAgIENoZWNr
ZWRQdHI8Q29udGFpbmVyQm94PiBtX3BhcmVudDsKKyAgICBDaGVja2VkUHRyPEJveD4gbV9wcmV2
aW91c1NpYmxpbmc7CisgICAgQ2hlY2tlZFB0cjxCb3g+IG1fbmV4dFNpYmxpbmc7CiAgICAgCiAg
ICAgLy8gRmlyc3QgTGF5b3V0U3RhdGUgZ2V0cyBhIGRpcmVjdCBjYWNoZS4KICAgICBtdXRhYmxl
IFdlYWtQdHI8TGF5b3V0U3RhdGU+IG1fY2FjaGVkTGF5b3V0U3RhdGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXJCb3guY3BwIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmVyQm94LmNwcApp
bmRleCBhNjIxMzg0MmM2NDMxNzE4YzRmN2RlOGRhNTE4ZDM4Nzg5ZmExMDA5Li4wY2JlNDhmZTQy
MDM4MGE2ZjcwMzg3ZGJhNzQwNDBiNDVjOWYzMmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXJCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5lckJveC5jcHAKQEAgLTQxLDYg
KzQxLDExIEBAIENvbnRhaW5lckJveDo6Q29udGFpbmVyQm94KHN0ZDo6b3B0aW9uYWw8RWxlbWVu
dEF0dHJpYnV0ZXM+IGF0dHJpYnV0ZXMsIFJlbmRlclN0CiB7CiB9CiAKK0NvbnRhaW5lckJveDo6
fkNvbnRhaW5lckJveCgpCit7CisgICAgZGVzdHJveUNoaWxkcmVuKCk7Cit9CisKIGNvbnN0IEJv
eCogQ29udGFpbmVyQm94OjpmaXJzdEluRmxvd0NoaWxkKCkgY29uc3QKIHsKICAgICBpZiAoYXV0
byogZmlyc3RDaGlsZCA9IHRoaXMtPmZpcnN0Q2hpbGQoKSkgewpAQCAtODEsMjcgKzg2LDQxIEBA
IGNvbnN0IEJveCogQ29udGFpbmVyQm94OjpsYXN0SW5GbG93T3JGbG9hdGluZ0NoaWxkKCkgY29u
c3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBDb250YWluZXJCb3g6OnNldEZpcnN0
Q2hpbGQoQm94JiBjaGlsZEJveCkKK3ZvaWQgQ29udGFpbmVyQm94OjphcHBlbmRDaGlsZChVbmlx
dWVSZWY8Qm94PiBjaGlsZFJlZikKIHsKLSAgICBtX2ZpcnN0Q2hpbGQgPSAmY2hpbGRCb3g7Ci19
CisgICAgYXV0byBjaGlsZEJveCA9IGNoaWxkUmVmLm1vdmVUb1VuaXF1ZVB0cigpOwogCi12b2lk
IENvbnRhaW5lckJveDo6c2V0TGFzdENoaWxkKEJveCYgY2hpbGRCb3gpCi17Ci0gICAgbV9sYXN0
Q2hpbGQgPSAmY2hpbGRCb3g7CisgICAgY2hpbGRCb3gtPnNldFBhcmVudCh0aGlzKTsKKworICAg
IGlmIChtX2xhc3RDaGlsZCkgeworICAgICAgICBtX2xhc3RDaGlsZC0+c2V0TmV4dFNpYmxpbmco
Y2hpbGRCb3guZ2V0KCkpOworICAgICAgICBjaGlsZEJveC0+c2V0UHJldmlvdXNTaWJsaW5nKG1f
bGFzdENoaWxkLmdldCgpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9maXJzdENoaWxkID0gY2hp
bGRCb3guZ2V0KCk7CisKKyAgICAvLyBPd25lcnNoaXAgaGFzIGJlZW4gdHJhbnNmZXJyZWQuCisg
ICAgbV9sYXN0Q2hpbGQgPSBjaGlsZEJveC5yZWxlYXNlKCk7CiB9CiAKLXZvaWQgQ29udGFpbmVy
Qm94OjphcHBlbmRDaGlsZChCb3gmIGNoaWxkQm94KQordm9pZCBDb250YWluZXJCb3g6OmRlc3Ry
b3lDaGlsZHJlbigpCiB7Ci0gICAgY2hpbGRCb3guc2V0UGFyZW50KCp0aGlzKTsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8Qm94PiBjaGlsZFRvRGVzdHJveSB7IG1fZmlyc3RDaGlsZC5nZXQoKSB9Owor
ICAgIAorICAgIG1fZmlyc3RDaGlsZCA9IG51bGxwdHI7CisgICAgbV9sYXN0Q2hpbGQgPSBudWxs
cHRyOwogCi0gICAgaWYgKG1fbGFzdENoaWxkKSB7Ci0gICAgICAgIG1fbGFzdENoaWxkLT5zZXRO
ZXh0U2libGluZyhjaGlsZEJveCk7Ci0gICAgICAgIGNoaWxkQm94LnNldFByZXZpb3VzU2libGlu
ZygqbV9sYXN0Q2hpbGQpOwotICAgIH0gZWxzZQotICAgICAgICBtX2ZpcnN0Q2hpbGQgPSAmY2hp
bGRCb3g7CisgICAgd2hpbGUgKGNoaWxkVG9EZXN0cm95KSB7CisgICAgICAgIGNoaWxkVG9EZXN0
cm95LT5zZXRQYXJlbnQobnVsbHB0cik7CiAKLSAgICBtX2xhc3RDaGlsZCA9ICZjaGlsZEJveDsK
KyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEJveD4gbmV4dFNpYmxpbmcgeyBjaGlsZFRvRGVzdHJv
eS0+bmV4dFNpYmxpbmcoKSB9OworCisgICAgICAgIGlmIChuZXh0U2libGluZykgeworICAgICAg
ICAgICAgY2hpbGRUb0Rlc3Ryb3ktPnNldE5leHRTaWJsaW5nKG51bGxwdHIpOworICAgICAgICAg
ICAgbmV4dFNpYmxpbmctPnNldFByZXZpb3VzU2libGluZyhudWxscHRyKTsKKyAgICAgICAgfQor
CisgICAgICAgIGNoaWxkVG9EZXN0cm95ID0gV1RGTW92ZShuZXh0U2libGluZyk7CisgICAgfQog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlv
dXRDb250YWluZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91
dENvbnRhaW5lckJveC5oCmluZGV4IDFjZmM0ZjAxYTBjYzk2MzYxNjlhYmJmNTQwZTIyNWZhMzhi
YmJhM2QuLmYxODFkN2VjYzhhNjAyNWI2NmVmYzJlZWYyNWM2MDQ2YWE4NTM5YWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5lckJveC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5lckJv
eC5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJMYXlvdXRCb3guaCIKICNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTQwLDI4ICs0MSwyOCBAQCBjbGFzcyBDb250YWluZXJCb3ggOiBw
dWJsaWMgQm94IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKENvbnRhaW5lckJveCk7CiBw
dWJsaWM6CiAgICAgQ29udGFpbmVyQm94KHN0ZDo6b3B0aW9uYWw8RWxlbWVudEF0dHJpYnV0ZXM+
LCBSZW5kZXJTdHlsZSYmLCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+JiYgZmlyc3RMaW5l
U3R5bGUgPSBudWxscHRyLCBPcHRpb25TZXQ8QmFzZVR5cGVGbGFnPiA9IHsgQ29udGFpbmVyQm94
RmxhZyB9KTsKKyAgICB+Q29udGFpbmVyQm94KCk7CiAKLSAgICBjb25zdCBCb3gqIGZpcnN0Q2hp
bGQoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0Q2hpbGQ7IH0KKyAgICBjb25zdCBCb3gqIGZpcnN0
Q2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0Q2hpbGQuZ2V0KCk7IH0KICAgICBjb25zdCBC
b3gqIGZpcnN0SW5GbG93Q2hpbGQoKSBjb25zdDsKICAgICBjb25zdCBCb3gqIGZpcnN0SW5GbG93
T3JGbG9hdGluZ0NoaWxkKCkgY29uc3Q7Ci0gICAgY29uc3QgQm94KiBsYXN0Q2hpbGQoKSBjb25z
dCB7IHJldHVybiBtX2xhc3RDaGlsZDsgfQorICAgIGNvbnN0IEJveCogbGFzdENoaWxkKCkgY29u
c3QgeyByZXR1cm4gbV9sYXN0Q2hpbGQuZ2V0KCk7IH0KICAgICBjb25zdCBCb3gqIGxhc3RJbkZs
b3dDaGlsZCgpIGNvbnN0OwogICAgIGNvbnN0IEJveCogbGFzdEluRmxvd09yRmxvYXRpbmdDaGls
ZCgpIGNvbnN0OwogCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgY3VycmVudGx5IG5lZWRlZCBmb3Ig
c3R5bGUgdXBkYXRlcy4KLSAgICBCb3gqIGZpcnN0Q2hpbGQoKSB7IHJldHVybiBtX2ZpcnN0Q2hp
bGQ7IH0KKyAgICBCb3gqIGZpcnN0Q2hpbGQoKSB7IHJldHVybiBtX2ZpcnN0Q2hpbGQuZ2V0KCk7
IH0KIAogICAgIGJvb2wgaGFzQ2hpbGQoKSBjb25zdCB7IHJldHVybiBmaXJzdENoaWxkKCk7IH0K
ICAgICBib29sIGhhc0luRmxvd0NoaWxkKCkgY29uc3QgeyByZXR1cm4gZmlyc3RJbkZsb3dDaGls
ZCgpOyB9CiAgICAgYm9vbCBoYXNJbkZsb3dPckZsb2F0aW5nQ2hpbGQoKSBjb25zdCB7IHJldHVy
biBmaXJzdEluRmxvd09yRmxvYXRpbmdDaGlsZCgpOyB9CiAKLSAgICB2b2lkIHNldEZpcnN0Q2hp
bGQoQm94Jik7Ci0gICAgdm9pZCBzZXRMYXN0Q2hpbGQoQm94Jik7Ci0gICAgdm9pZCBhcHBlbmRD
aGlsZChCb3gmKTsKKyAgICB2b2lkIGFwcGVuZENoaWxkKFVuaXF1ZVJlZjxCb3g+KTsKKyAgICB2
b2lkIGRlc3Ryb3lDaGlsZHJlbigpOwogCiBwcml2YXRlOgotICAgIEJveCogbV9maXJzdENoaWxk
IHsgbnVsbHB0ciB9OwotICAgIEJveCogbV9sYXN0Q2hpbGQgeyBudWxscHRyIH07CisgICAgQ2hl
Y2tlZFB0cjxCb3g+IG1fZmlyc3RDaGlsZDsKKyAgICBDaGVja2VkUHRyPEJveD4gbV9sYXN0Q2hp
bGQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKaW5kZXggNWFjYjdiMzdjOTU3OTNkNDk5N2NkNDM1NGZm
Y2VlYzZjMGQ1ZWFmNy4uNDNmOTFlYzZhNDJjZjY0YzhiNjgxYjMzYzcyNGNkNTAwY2NkMzY2OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1
aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRy
ZWVCdWlsZGVyLmNwcApAQCAtNjcsMjQgKzY3LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5h
bWVzcGFjZSBMYXlvdXQgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoTGF5b3V0VHJl
ZSk7Ci1MYXlvdXRUcmVlOjpMYXlvdXRUcmVlKCkKK0xheW91dFRyZWU6OkxheW91dFRyZWUoc3Rk
Ojp1bmlxdWVfcHRyPENvbnRhaW5lckJveD4gcm9vdCkKKyAgICA6IG1fcm9vdChXVEZNb3ZlKHJv
b3QpKQogewogfQogCi1zdGF0aWMgdm9pZCBhcHBlbmRDaGlsZChDb250YWluZXJCb3gmIHBhcmVu
dCwgQm94JiBuZXdDaGlsZCkKK3RlbXBsYXRlPGNsYXNzIEJveFR5cGU+CitzdGF0aWMgQm94VHlw
ZSYgYXBwZW5kQ2hpbGQoQ29udGFpbmVyQm94JiBwYXJlbnQsIHN0ZDo6dW5pcXVlX3B0cjxCb3hU
eXBlPiBuZXdDaGlsZCkKIHsKLSAgICBpZiAoIXBhcmVudC5oYXNDaGlsZCgpKSB7Ci0gICAgICAg
IHBhcmVudC5zZXRGaXJzdENoaWxkKG5ld0NoaWxkKTsKLSAgICAgICAgcGFyZW50LnNldExhc3RD
aGlsZChuZXdDaGlsZCk7Ci0gICAgICAgIG5ld0NoaWxkLnNldFBhcmVudChwYXJlbnQpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byYgbGFzdENoaWxkID0gY29uc3RfY2FzdDxC
b3gmPigqcGFyZW50Lmxhc3RDaGlsZCgpKTsKLSAgICBsYXN0Q2hpbGQuc2V0TmV4dFNpYmxpbmco
bmV3Q2hpbGQpOwotICAgIG5ld0NoaWxkLnNldFByZXZpb3VzU2libGluZyhsYXN0Q2hpbGQpOwot
ICAgIG5ld0NoaWxkLnNldFBhcmVudChwYXJlbnQpOwotICAgIHBhcmVudC5zZXRMYXN0Q2hpbGQo
bmV3Q2hpbGQpOworICAgIGF1dG8mIGJveCA9ICpuZXdDaGlsZDsKKyAgICBwYXJlbnQuYXBwZW5k
Q2hpbGQobWFrZVVuaXF1ZVJlZkZyb21Ob25OdWxsVW5pcXVlUHRyKFdURk1vdmUobmV3Q2hpbGQp
KSk7CisgICAgcmV0dXJuIGJveDsKIH0KIAogc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGF5b3V0U2l6
ZT4gYWNjdW11bGF0ZWRPZmZzZXRGb3JJbkZsb3dQb3NpdGlvbmVkQ29udGludWF0aW9uKGNvbnN0
IFJlbmRlckJveCYgYmxvY2spCkBAIC0xMjQsNTEgKzExNywzNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8
TGF5b3V0OjpMYXlvdXRUcmVlPiBUcmVlQnVpbGRlcjo6YnVpbGRMYXlvdXRUcmVlKGNvbnN0IFJl
bmRlclZpZQogICAgIHJvb3RTdHlsZS5zZXRMb2dpY2FsSGVpZ2h0KExlbmd0aChyZW5kZXJWaWV3
LmhlaWdodCgpLCBMZW5ndGhUeXBlOjpGaXhlZCkpOwogCiAgICAgYXV0byByb290TGF5b3V0Qm94
ID0gbWFrZVVuaXF1ZTxJbml0aWFsQ29udGFpbmluZ0Jsb2NrPihXVEZNb3ZlKHJvb3RTdHlsZSkp
OwotICAgIGF1dG8mIHJvb3RDb250YWluZXIgPSAqcm9vdExheW91dEJveDsKLSAgICBhdXRvIGxh
eW91dFRyZWUgPSBtYWtlVW5pcXVlPExheW91dFRyZWU+KCk7Ci0gICAgbGF5b3V0VHJlZS0+YXBw
ZW5kKFdURk1vdmUocm9vdExheW91dEJveCkpOwotICAgIFRyZWVCdWlsZGVyKCpsYXlvdXRUcmVl
KS5idWlsZFN1YlRyZWUocmVuZGVyVmlldywgcm9vdENvbnRhaW5lcik7Ci0gICAgcmV0dXJuIGxh
eW91dFRyZWU7CisgICAgVHJlZUJ1aWxkZXIoKS5idWlsZFN1YlRyZWUocmVuZGVyVmlldywgKnJv
b3RMYXlvdXRCb3gpOworCisgICAgcmV0dXJuIG1ha2VVbmlxdWU8TGF5b3V0VHJlZT4oV1RGTW92
ZShyb290TGF5b3V0Qm94KSk7CiB9CiAKLVRyZWVCdWlsZGVyOjpUcmVlQnVpbGRlcihMYXlvdXRU
cmVlJiBsYXlvdXRUcmVlKQotICAgIDogbV9sYXlvdXRUcmVlKGxheW91dFRyZWUpCitUcmVlQnVp
bGRlcjo6VHJlZUJ1aWxkZXIoKQogewogfQogCi1Cb3gmIFRyZWVCdWlsZGVyOjpjcmVhdGVSZXBs
YWNlZEJveChzdGQ6Om9wdGlvbmFsPEJveDo6RWxlbWVudEF0dHJpYnV0ZXM+IGVsZW1lbnRBdHRy
aWJ1dGVzLCBSZW5kZXJTdHlsZSYmIHN0eWxlKQorc3RkOjp1bmlxdWVfcHRyPEJveD4gVHJlZUJ1
aWxkZXI6OmNyZWF0ZVJlcGxhY2VkQm94KHN0ZDo6b3B0aW9uYWw8Qm94OjpFbGVtZW50QXR0cmli
dXRlcz4gZWxlbWVudEF0dHJpYnV0ZXMsIFJlbmRlclN0eWxlJiYgc3R5bGUpCiB7Ci0gICAgYXV0
byBuZXdCb3ggPSBtYWtlVW5pcXVlPFJlcGxhY2VkQm94PihlbGVtZW50QXR0cmlidXRlcywgV1RG
TW92ZShzdHlsZSkpOwotICAgIGF1dG8mIGJveCA9ICpuZXdCb3g7Ci0gICAgbV9sYXlvdXRUcmVl
LmFwcGVuZChXVEZNb3ZlKG5ld0JveCkpOwotICAgIHJldHVybiBib3g7CisgICAgcmV0dXJuIG1h
a2VVbmlxdWU8UmVwbGFjZWRCb3g+KGVsZW1lbnRBdHRyaWJ1dGVzLCBXVEZNb3ZlKHN0eWxlKSk7
CiB9CiAKLUJveCYgVHJlZUJ1aWxkZXI6OmNyZWF0ZVRleHRCb3goU3RyaW5nIHRleHQsIGJvb2wg
Y2FuVXNlU2ltcGxpZmllZFRleHRNZWFzdXJpbmcsIFJlbmRlclN0eWxlJiYgc3R5bGUpCitzdGQ6
OnVuaXF1ZV9wdHI8Qm94PiBUcmVlQnVpbGRlcjo6Y3JlYXRlVGV4dEJveChTdHJpbmcgdGV4dCwg
Ym9vbCBjYW5Vc2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZywgUmVuZGVyU3R5bGUmJiBzdHlsZSkK
IHsKLSAgICBhdXRvIG5ld0JveCA9IG1ha2VVbmlxdWU8SW5saW5lVGV4dEJveD4odGV4dCwgY2Fu
VXNlU2ltcGxpZmllZFRleHRNZWFzdXJpbmcsIFdURk1vdmUoc3R5bGUpKTsKLSAgICBhdXRvJiBi
b3ggPSAqbmV3Qm94OwotICAgIG1fbGF5b3V0VHJlZS5hcHBlbmQoV1RGTW92ZShuZXdCb3gpKTsK
LSAgICByZXR1cm4gYm94OworICAgIHJldHVybiBtYWtlVW5pcXVlPElubGluZVRleHRCb3g+KHRl
eHQsIGNhblVzZVNpbXBsaWZpZWRUZXh0TWVhc3VyaW5nLCBXVEZNb3ZlKHN0eWxlKSk7CiB9CiAK
LUJveCYgVHJlZUJ1aWxkZXI6OmNyZWF0ZUxpbmVCcmVha0JveChib29sIGlzT3B0aW9uYWwsIFJl
bmRlclN0eWxlJiYgc3R5bGUpCitzdGQ6OnVuaXF1ZV9wdHI8Qm94PiBUcmVlQnVpbGRlcjo6Y3Jl
YXRlTGluZUJyZWFrQm94KGJvb2wgaXNPcHRpb25hbCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKIHsK
LSAgICBhdXRvIG5ld0JveCA9IG1ha2VVbmlxdWU8TGF5b3V0OjpMaW5lQnJlYWtCb3g+KGlzT3B0
aW9uYWwsIFdURk1vdmUoc3R5bGUpKTsKLSAgICBhdXRvJiBib3ggPSAqbmV3Qm94OwotICAgIG1f
bGF5b3V0VHJlZS5hcHBlbmQoV1RGTW92ZShuZXdCb3gpKTsKLSAgICByZXR1cm4gYm94OworICAg
IHJldHVybiBtYWtlVW5pcXVlPExheW91dDo6TGluZUJyZWFrQm94Pihpc09wdGlvbmFsLCBXVEZN
b3ZlKHN0eWxlKSk7CiB9CiAKLUNvbnRhaW5lckJveCYgVHJlZUJ1aWxkZXI6OmNyZWF0ZUNvbnRh
aW5lcihzdGQ6Om9wdGlvbmFsPEJveDo6RWxlbWVudEF0dHJpYnV0ZXM+IGVsZW1lbnRBdHRyaWJ1
dGVzLCBSZW5kZXJTdHlsZSYmIHN0eWxlKQorc3RkOjp1bmlxdWVfcHRyPENvbnRhaW5lckJveD4g
VHJlZUJ1aWxkZXI6OmNyZWF0ZUNvbnRhaW5lcihzdGQ6Om9wdGlvbmFsPEJveDo6RWxlbWVudEF0
dHJpYnV0ZXM+IGVsZW1lbnRBdHRyaWJ1dGVzLCBSZW5kZXJTdHlsZSYmIHN0eWxlKQogewotICAg
IGF1dG8gbmV3Q29udGFpbmVyID0gbWFrZVVuaXF1ZTxDb250YWluZXJCb3g+KGVsZW1lbnRBdHRy
aWJ1dGVzLCBXVEZNb3ZlKHN0eWxlKSk7Ci0gICAgYXV0byYgY29udGFpbmVyID0gKm5ld0NvbnRh
aW5lcjsKLSAgICBtX2xheW91dFRyZWUuYXBwZW5kKFdURk1vdmUobmV3Q29udGFpbmVyKSk7Ci0g
ICAgcmV0dXJuIGNvbnRhaW5lcjsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxDb250YWluZXJCb3g+
KGVsZW1lbnRBdHRyaWJ1dGVzLCBXVEZNb3ZlKHN0eWxlKSk7CiB9CiAKLUJveCogVHJlZUJ1aWxk
ZXI6OmNyZWF0ZUxheW91dEJveChjb25zdCBDb250YWluZXJCb3gmIHBhcmVudENvbnRhaW5lciwg
Y29uc3QgUmVuZGVyT2JqZWN0JiBjaGlsZFJlbmRlcmVyKQorc3RkOjp1bmlxdWVfcHRyPEJveD4g
VHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dEJveChjb25zdCBDb250YWluZXJCb3gmIHBhcmVudENv
bnRhaW5lciwgY29uc3QgUmVuZGVyT2JqZWN0JiBjaGlsZFJlbmRlcmVyKQogewogICAgIGF1dG8g
ZWxlbWVudEF0dHJpYnV0ZXMgPSBbXSAoY29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpIC0+
IHN0ZDo6b3B0aW9uYWw8Qm94OjpFbGVtZW50QXR0cmlidXRlcz4gewogICAgICAgICBpZiAocmVu
ZGVyZXIuaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpKQpAQCAtMTg1LDE2ICsxNjMsMTYgQEAg
Qm94KiBUcmVlQnVpbGRlcjo6Y3JlYXRlTGF5b3V0Qm94KGNvbnN0IENvbnRhaW5lckJveCYgcGFy
ZW50Q29udGFpbmVyLCBjb25zdCBSZW4KICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICB9OwogCi0gICAgQm94KiBjaGlsZExheW91dEJveCA9IG51bGxwdHI7CisgICAgc3RkOjp1bmlx
dWVfcHRyPEJveD4gY2hpbGRMYXlvdXRCb3ggPSBudWxscHRyOwogICAgIGlmIChpczxSZW5kZXJU
ZXh0PihjaGlsZFJlbmRlcmVyKSkgewogICAgICAgICBhdXRvJiB0ZXh0UmVuZGVyZXIgPSBkb3du
Y2FzdDxSZW5kZXJUZXh0PihjaGlsZFJlbmRlcmVyKTsKICAgICAgICAgLy8gUmVuZGVyVGV4dDo6
dGV4dCgpIGhhcyBhbHJlYWR5IGFwcGxpZWQgdGV4dC10cmFuc2Zvcm0gYW5kIHRleHQtc2VjdXJp
dHkgcHJvcGVydGllcy4KICAgICAgICAgU3RyaW5nIHRleHQgPSB0ZXh0UmVuZGVyZXIudGV4dCgp
OwogICAgICAgICBhdXRvIHVzZVNpbXBsaWZpZWRUZXh0TWVhc3VyaW5nID0gY2FuVXNlU2ltcGxp
ZmllZFRleHRNZWFzdXJpbmcodGV4dCwgcGFyZW50Q29udGFpbmVyLnN0eWxlKCkuZm9udENhc2Nh
ZGUoKSwgcGFyZW50Q29udGFpbmVyLnN0eWxlKCkuY29sbGFwc2VXaGl0ZVNwYWNlKCkpOwogICAg
ICAgICBpZiAocGFyZW50Q29udGFpbmVyLnN0eWxlKCkuZGlzcGxheSgpID09IERpc3BsYXlUeXBl
OjpJbmxpbmUpCi0gICAgICAgICAgICBjaGlsZExheW91dEJveCA9ICZjcmVhdGVUZXh0Qm94KHRl
eHQsIHVzZVNpbXBsaWZpZWRUZXh0TWVhc3VyaW5nLCBSZW5kZXJTdHlsZTo6Y2xvbmUocGFyZW50
Q29udGFpbmVyLnN0eWxlKCkpKTsKKyAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94ID0gY3JlYXRl
VGV4dEJveCh0ZXh0LCB1c2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZywgUmVuZGVyU3R5bGU6OmNs
b25lKHBhcmVudENvbnRhaW5lci5zdHlsZSgpKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGNoaWxkTGF5b3V0Qm94ID0gJmNyZWF0ZVRleHRCb3godGV4dCwgdXNlU2ltcGxpZmllZFRleHRN
ZWFzdXJpbmcsIFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNwbGF5KHBh
cmVudENvbnRhaW5lci5zdHlsZSgpLCBEaXNwbGF5VHlwZTo6SW5saW5lKSk7CisgICAgICAgICAg
ICBjaGlsZExheW91dEJveCA9IGNyZWF0ZVRleHRCb3godGV4dCwgdXNlU2ltcGxpZmllZFRleHRN
ZWFzdXJpbmcsIFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNwbGF5KHBh
cmVudENvbnRhaW5lci5zdHlsZSgpLCBEaXNwbGF5VHlwZTo6SW5saW5lKSk7CiAgICAgfSBlbHNl
IHsKICAgICAgICAgYXV0byYgcmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJFbGVtZW50PihjaGls
ZFJlbmRlcmVyKTsKICAgICAgICAgYXV0byBkaXNwbGF5VHlwZSA9IHJlbmRlcmVyLnN0eWxlKCku
ZGlzcGxheSgpOwpAQCAtMjA1LDcgKzE4Myw3IEBAIEJveCogVHJlZUJ1aWxkZXI6OmNyZWF0ZUxh
eW91dEJveChjb25zdCBDb250YWluZXJCb3gmIHBhcmVudENvbnRhaW5lciwgY29uc3QgUmVuCiAg
ICAgICAgICAgICBjbG9uZWRTdHlsZS5zZXREaXNwbGF5KERpc3BsYXlUeXBlOjpJbmxpbmUpOwog
ICAgICAgICAgICAgY2xvbmVkU3R5bGUuc2V0RmxvYXRpbmcoRmxvYXQ6Ok5vbmUpOwogICAgICAg
ICAgICAgY2xvbmVkU3R5bGUuc2V0UG9zaXRpb24oUG9zaXRpb25UeXBlOjpTdGF0aWMpOwotICAg
ICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSAmY3JlYXRlTGluZUJyZWFrQm94KGRvd25jYXN0PFJl
bmRlckxpbmVCcmVhaz4oY2hpbGRSZW5kZXJlcikuaXNXQlIoKSwgV1RGTW92ZShjbG9uZWRTdHls
ZSkpOworICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSBjcmVhdGVMaW5lQnJlYWtCb3goZG93
bmNhc3Q8UmVuZGVyTGluZUJyZWFrPihjaGlsZFJlbmRlcmVyKS5pc1dCUigpLCBXVEZNb3ZlKGNs
b25lZFN0eWxlKSk7CiAgICAgICAgIH0gZWxzZSBpZiAoaXM8UmVuZGVyVGFibGU+KHJlbmRlcmVy
KSkgewogICAgICAgICAgICAgLy8gQ29uc3RydWN0IHRoZSBwcmluY2lwYWwgdGFibGUgd3JhcHBl
ciBib3ggKGFuZCBub3QgdGhlIHRhYmxlIGJveCBpdHNlbGYpLgogICAgICAgICAgICAgLy8gVGhl
IGNvbXB1dGVkIHZhbHVlcyBvZiBwcm9wZXJ0aWVzICdwb3NpdGlvbicsICdmbG9hdCcsICdtYXJn
aW4tKicsICd0b3AnLCAncmlnaHQnLCAnYm90dG9tJywgYW5kICdsZWZ0JyBvbiB0aGUgdGFibGUg
ZWxlbWVudApAQCAtMjI1LDEwICsyMDMsMTAgQEAgQm94KiBUcmVlQnVpbGRlcjo6Y3JlYXRlTGF5
b3V0Qm94KGNvbnN0IENvbnRhaW5lckJveCYgcGFyZW50Q29udGFpbmVyLCBjb25zdCBSZW4KICAg
ICAgICAgICAgIHRhYmxlV3JhcHBlckJveFN0eWxlLnNldE1hcmdpbkJvdHRvbShMZW5ndGggeyBy
ZW5kZXJlci5zdHlsZSgpLm1hcmdpbkJvdHRvbSgpIH0pOwogICAgICAgICAgICAgdGFibGVXcmFw
cGVyQm94U3R5bGUuc2V0TWFyZ2luUmlnaHQoTGVuZ3RoIHsgcmVuZGVyZXIuc3R5bGUoKS5tYXJn
aW5SaWdodCgpIH0pOwogCi0gICAgICAgICAgICBjaGlsZExheW91dEJveCA9ICZjcmVhdGVDb250
YWluZXIoQm94OjpFbGVtZW50QXR0cmlidXRlcyB7IEJveDo6RWxlbWVudFR5cGU6OlRhYmxlV3Jh
cHBlckJveCB9LCBXVEZNb3ZlKHRhYmxlV3JhcHBlckJveFN0eWxlKSk7CisgICAgICAgICAgICBj
aGlsZExheW91dEJveCA9IGNyZWF0ZUNvbnRhaW5lcihCb3g6OkVsZW1lbnRBdHRyaWJ1dGVzIHsg
Qm94OjpFbGVtZW50VHlwZTo6VGFibGVXcmFwcGVyQm94IH0sIFdURk1vdmUodGFibGVXcmFwcGVy
Qm94U3R5bGUpKTsKICAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94LT5zZXRJc0Fub255bW91cygp
OwogICAgICAgICB9IGVsc2UgaWYgKGlzPFJlbmRlclJlcGxhY2VkPihyZW5kZXJlcikpIHsKLSAg
ICAgICAgICAgIGNoaWxkTGF5b3V0Qm94ID0gJmNyZWF0ZVJlcGxhY2VkQm94KGVsZW1lbnRBdHRy
aWJ1dGVzKHJlbmRlcmVyKSwgV1RGTW92ZShjbG9uZWRTdHlsZSkpOworICAgICAgICAgICAgY2hp
bGRMYXlvdXRCb3ggPSBjcmVhdGVSZXBsYWNlZEJveChlbGVtZW50QXR0cmlidXRlcyhyZW5kZXJl
ciksIFdURk1vdmUoY2xvbmVkU3R5bGUpKTsKICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBkb24n
dCB5ZXQgc3VwcG9ydCBhbGwgcmVwbGFjZWQgZWxlbWVudHMgYW5kIHRoaXMgaXMgdGVtcG9yYXJ5
IGFueXdheS4KICAgICAgICAgICAgIGRvd25jYXN0PFJlcGxhY2VkQm94PigqY2hpbGRMYXlvdXRC
b3gpLnNldEludHJpbnNpY1NpemUoZG93bmNhc3Q8UmVuZGVyUmVwbGFjZWQ+KHJlbmRlcmVyKS5p
bnRyaW5zaWNTaXplKCkpOwogICAgICAgICAgICAgaWYgKGlzPFJlbmRlckltYWdlPihyZW5kZXJl
cikpIHsKQEAgLTI0MywyMiArMjIxLDIyIEBAIEJveCogVHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91
dEJveChjb25zdCBDb250YWluZXJCb3gmIHBhcmVudENvbnRhaW5lciwgY29uc3QgUmVuCiAgICAg
ICAgICAgICAgICAgaWYgKGF1dG8gb2Zmc2V0ID0gYWNjdW11bGF0ZWRPZmZzZXRGb3JJbkZsb3dQ
b3NpdGlvbmVkQ29udGludWF0aW9uKGRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIpKSkgewog
ICAgICAgICAgICAgICAgICAgICBjbG9uZWRTdHlsZS5zZXRUb3AoeyBvZmZzZXQtPmhlaWdodCgp
LCBMZW5ndGhUeXBlOjpGaXhlZCB9KTsKICAgICAgICAgICAgICAgICAgICAgY2xvbmVkU3R5bGUu
c2V0TGVmdCh7IG9mZnNldC0+d2lkdGgoKSwgTGVuZ3RoVHlwZTo6Rml4ZWQgfSk7Ci0gICAgICAg
ICAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94ID0gJmNyZWF0ZUNvbnRhaW5lcihlbGVtZW50QXR0
cmlidXRlcyhyZW5kZXJlciksIFdURk1vdmUoY2xvbmVkU3R5bGUpKTsKKyAgICAgICAgICAgICAg
ICAgICAgY2hpbGRMYXlvdXRCb3ggPSBjcmVhdGVDb250YWluZXIoZWxlbWVudEF0dHJpYnV0ZXMo
cmVuZGVyZXIpLCBXVEZNb3ZlKGNsb25lZFN0eWxlKSk7CiAgICAgICAgICAgICAgICAgfSBlbHNl
Ci0gICAgICAgICAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94ID0gJmNyZWF0ZUNvbnRhaW5lcihl
bGVtZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFdURk1vdmUoY2xvbmVkU3R5bGUpKTsKKyAgICAg
ICAgICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSBjcmVhdGVDb250YWluZXIoZWxlbWVudEF0
dHJpYnV0ZXMocmVuZGVyZXIpLCBXVEZNb3ZlKGNsb25lZFN0eWxlKSk7CiAgICAgICAgICAgICB9
IGVsc2UgaWYgKGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpGbGV4KQotICAgICAgICAgICAg
ICAgIGNoaWxkTGF5b3V0Qm94ID0gJmNyZWF0ZUNvbnRhaW5lcihlbGVtZW50QXR0cmlidXRlcyhy
ZW5kZXJlciksIFdURk1vdmUoY2xvbmVkU3R5bGUpKTsKKyAgICAgICAgICAgICAgICBjaGlsZExh
eW91dEJveCA9IGNyZWF0ZUNvbnRhaW5lcihlbGVtZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFdU
Rk1vdmUoY2xvbmVkU3R5bGUpKTsKICAgICAgICAgICAgIGVsc2UgaWYgKGRpc3BsYXlUeXBlID09
IERpc3BsYXlUeXBlOjpJbmxpbmUpCi0gICAgICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSAm
Y3JlYXRlQ29udGFpbmVyKGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRlcmVyKSwgV1RGTW92ZShjbG9u
ZWRTdHlsZSkpOworICAgICAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94ID0gY3JlYXRlQ29udGFp
bmVyKGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRlcmVyKSwgV1RGTW92ZShjbG9uZWRTdHlsZSkpOwog
ICAgICAgICAgICAgZWxzZSBpZiAoZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OklubGluZUJs
b2NrKQotICAgICAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94ID0gJmNyZWF0ZUNvbnRhaW5lcihl
bGVtZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFdURk1vdmUoY2xvbmVkU3R5bGUpKTsKKyAgICAg
ICAgICAgICAgICBjaGlsZExheW91dEJveCA9IGNyZWF0ZUNvbnRhaW5lcihlbGVtZW50QXR0cmli
dXRlcyhyZW5kZXJlciksIFdURk1vdmUoY2xvbmVkU3R5bGUpKTsKICAgICAgICAgICAgIGVsc2Ug
aWYgKGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpUYWJsZUNhcHRpb24gfHwgZGlzcGxheVR5
cGUgPT0gRGlzcGxheVR5cGU6OlRhYmxlQ2VsbCkgewotICAgICAgICAgICAgICAgIGNoaWxkTGF5
b3V0Qm94ID0gJmNyZWF0ZUNvbnRhaW5lcihlbGVtZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFdU
Rk1vdmUoY2xvbmVkU3R5bGUpKTsKKyAgICAgICAgICAgICAgICBjaGlsZExheW91dEJveCA9IGNy
ZWF0ZUNvbnRhaW5lcihlbGVtZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFdURk1vdmUoY2xvbmVk
U3R5bGUpKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5
cGU6OlRhYmxlUm93R3JvdXAgfHwgZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OlRhYmxlSGVh
ZGVyR3JvdXAgfHwgZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OlRhYmxlRm9vdGVyR3JvdXAK
ICAgICAgICAgICAgICAgICB8fCBkaXNwbGF5VHlwZSA9PSBEaXNwbGF5VHlwZTo6VGFibGVSb3cg
fHwgZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OlRhYmxlQ29sdW1uR3JvdXApIHsKLSAgICAg
ICAgICAgICAgICBjaGlsZExheW91dEJveCA9ICZjcmVhdGVDb250YWluZXIoZWxlbWVudEF0dHJp
YnV0ZXMocmVuZGVyZXIpLCBXVEZNb3ZlKGNsb25lZFN0eWxlKSk7CisgICAgICAgICAgICAgICAg
Y2hpbGRMYXlvdXRCb3ggPSBjcmVhdGVDb250YWluZXIoZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVy
ZXIpLCBXVEZNb3ZlKGNsb25lZFN0eWxlKSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGRpc3Bs
YXlUeXBlID09IERpc3BsYXlUeXBlOjpUYWJsZUNvbHVtbikgewotICAgICAgICAgICAgICAgIGNo
aWxkTGF5b3V0Qm94ID0gJmNyZWF0ZUNvbnRhaW5lcihlbGVtZW50QXR0cmlidXRlcyhyZW5kZXJl
ciksIFdURk1vdmUoY2xvbmVkU3R5bGUpKTsKKyAgICAgICAgICAgICAgICBjaGlsZExheW91dEJv
eCA9IGNyZWF0ZUNvbnRhaW5lcihlbGVtZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFdURk1vdmUo
Y2xvbmVkU3R5bGUpKTsKICAgICAgICAgICAgICAgICBhdXRvJiB0YWJsZUNvbEVsZW1lbnQgPSBz
dGF0aWNfY2FzdDxIVE1MVGFibGVDb2xFbGVtZW50Jj4oKnJlbmRlcmVyLmVsZW1lbnQoKSk7CiAg
ICAgICAgICAgICAgICAgYXV0byBjb2x1bW5XaWR0aCA9IHRhYmxlQ29sRWxlbWVudC53aWR0aCgp
OwogICAgICAgICAgICAgICAgIGlmICghY29sdW1uV2lkdGguaXNFbXB0eSgpKQpAQCAtMjY5LDcg
KzI0Nyw3IEBAIEJveCogVHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dEJveChjb25zdCBDb250YWlu
ZXJCb3gmIHBhcmVudENvbnRhaW5lciwgY29uc3QgUmVuCiAgICAgICAgICAgICAgICAgQVNTRVJU
X05PVF9JTVBMRU1FTlRFRF9ZRVQoKTsKICAgICAgICAgICAgICAgICAvLyBMZXQncyBmYWxsIGJh
Y2sgdG8gYSByZWd1bGFyIGJsb2NrIGxldmVsIGNvbnRhaW5lciB3aGVuIHRoZSByZW5kZXJlciB0
eXBlIGlzIG5vdCB5ZXQgc3VwcG9ydGVkLgogICAgICAgICAgICAgICAgIGNsb25lZFN0eWxlLnNl
dERpc3BsYXkoRGlzcGxheVR5cGU6OkJsb2NrKTsKLSAgICAgICAgICAgICAgICBjaGlsZExheW91
dEJveCA9ICZjcmVhdGVDb250YWluZXIoZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBXVEZN
b3ZlKGNsb25lZFN0eWxlKSk7CisgICAgICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSBjcmVh
dGVDb250YWluZXIoZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBXVEZNb3ZlKGNsb25lZFN0
eWxlKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtMjk4LDkgKzI3Niw5IEBAIHZv
aWQgVHJlZUJ1aWxkZXI6OmJ1aWxkVGFibGVTdHJ1Y3R1cmUoY29uc3QgUmVuZGVyVGFibGUmIHRh
YmxlUmVuZGVyZXIsIENvbnRhaW5lCiAgICAgYXV0byogdGFibGVDaGlsZCA9IHRhYmxlUmVuZGVy
ZXIuZmlyc3RDaGlsZCgpOwogICAgIHdoaWxlIChpczxSZW5kZXJUYWJsZUNhcHRpb24+KHRhYmxl
Q2hpbGQpKSB7CiAgICAgICAgIGF1dG8mIGNhcHRpb25SZW5kZXJlciA9ICp0YWJsZUNoaWxkOwot
ICAgICAgICBhdXRvKiBjYXB0aW9uQm94ID0gY3JlYXRlTGF5b3V0Qm94KHRhYmxlV3JhcHBlckJv
eCwgY2FwdGlvblJlbmRlcmVyKTsKLSAgICAgICAgYXBwZW5kQ2hpbGQodGFibGVXcmFwcGVyQm94
LCAqY2FwdGlvbkJveCk7Ci0gICAgICAgIGF1dG8mIGNhcHRpb25Db250YWluZXIgPSBkb3duY2Fz
dDxDb250YWluZXJCb3g+KCpjYXB0aW9uQm94KTsKKyAgICAgICAgYXV0byBuZXdDYXB0aW9uQm94
ID0gY3JlYXRlTGF5b3V0Qm94KHRhYmxlV3JhcHBlckJveCwgY2FwdGlvblJlbmRlcmVyKTsKKyAg
ICAgICAgYXV0byYgY2FwdGlvbkJveCA9IGFwcGVuZENoaWxkKHRhYmxlV3JhcHBlckJveCwgV1RG
TW92ZShuZXdDYXB0aW9uQm94KSk7CisgICAgICAgIGF1dG8mIGNhcHRpb25Db250YWluZXIgPSBk
b3duY2FzdDxDb250YWluZXJCb3g+KGNhcHRpb25Cb3gpOwogICAgICAgICBidWlsZFN1YlRyZWUo
ZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4oY2FwdGlvblJlbmRlcmVyKSwgY2FwdGlvbkNvbnRhaW5l
cik7CiAgICAgICAgIHRhYmxlQ2hpbGQgPSB0YWJsZUNoaWxkLT5uZXh0U2libGluZygpOwogICAg
IH0KQEAgLTMxMiwxMyArMjkwLDEyIEBAIHZvaWQgVHJlZUJ1aWxkZXI6OmJ1aWxkVGFibGVTdHJ1
Y3R1cmUoY29uc3QgUmVuZGVyVGFibGUmIHRhYmxlUmVuZGVyZXIsIENvbnRhaW5lCiAgICAgLy8g
RklYTUU6IEZpZ3VyZSBvdXQgd2hlcmUgdGhlIHNwZWMgc2F5cyB0YWJsZSB3aWR0aCBpcyBsaWtl
IGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgaWYgKGlzPEhUTUxUYWJsZUVsZW1lbnQ+KHRh
YmxlUmVuZGVyZXIuZWxlbWVudCgpKSkKICAgICAgICAgdGFibGVCb3hTdHlsZS5zZXRCb3hTaXpp
bmcoQm94U2l6aW5nOjpCb3JkZXJCb3gpOwotICAgIGF1dG8mIHRhYmxlQm94ID0gY3JlYXRlQ29u
dGFpbmVyKEJveDo6RWxlbWVudEF0dHJpYnV0ZXMgeyBCb3g6OkVsZW1lbnRUeXBlOjpUYWJsZUJv
eCB9LCBXVEZNb3ZlKHRhYmxlQm94U3R5bGUpKTsKLSAgICBhcHBlbmRDaGlsZCh0YWJsZVdyYXBw
ZXJCb3gsIHRhYmxlQm94KTsKKyAgICBhdXRvIG5ld1RhYmxlQm94ID0gY3JlYXRlQ29udGFpbmVy
KEJveDo6RWxlbWVudEF0dHJpYnV0ZXMgeyBCb3g6OkVsZW1lbnRUeXBlOjpUYWJsZUJveCB9LCBX
VEZNb3ZlKHRhYmxlQm94U3R5bGUpKTsKKyAgICBhdXRvJiB0YWJsZUJveCA9IGFwcGVuZENoaWxk
KHRhYmxlV3JhcHBlckJveCwgV1RGTW92ZShuZXdUYWJsZUJveCkpOwogICAgIGF1dG8qIHNlY3Rp
b25SZW5kZXJlciA9IHRhYmxlQ2hpbGQ7CiAgICAgd2hpbGUgKHNlY3Rpb25SZW5kZXJlcikgewot
ICAgICAgICBhdXRvKiBzZWN0aW9uQm94ID0gY3JlYXRlTGF5b3V0Qm94KHRhYmxlQm94LCAqc2Vj
dGlvblJlbmRlcmVyKTsKLSAgICAgICAgYXBwZW5kQ2hpbGQodGFibGVCb3gsICpzZWN0aW9uQm94
KTsKLSAgICAgICAgYXV0byYgc2VjdGlvbkNvbnRhaW5lciA9IGRvd25jYXN0PENvbnRhaW5lckJv
eD4oKnNlY3Rpb25Cb3gpOworICAgICAgICBhdXRvJiBzZWN0aW9uQm94ID0gYXBwZW5kQ2hpbGQo
dGFibGVCb3gsIGNyZWF0ZUxheW91dEJveCh0YWJsZUJveCwgKnNlY3Rpb25SZW5kZXJlcikpOwor
ICAgICAgICBhdXRvJiBzZWN0aW9uQ29udGFpbmVyID0gZG93bmNhc3Q8Q29udGFpbmVyQm94Pihz
ZWN0aW9uQm94KTsKICAgICAgICAgYnVpbGRTdWJUcmVlKGRvd25jYXN0PFJlbmRlckVsZW1lbnQ+
KCpzZWN0aW9uUmVuZGVyZXIpLCBzZWN0aW9uQ29udGFpbmVyKTsKICAgICAgICAgc2VjdGlvblJl
bmRlcmVyID0gc2VjdGlvblJlbmRlcmVyLT5uZXh0U2libGluZygpOwogICAgIH0KQEAgLTM3MSwx
MiArMzQ4LDExIEBAIHZvaWQgVHJlZUJ1aWxkZXI6OmJ1aWxkVGFibGVTdHJ1Y3R1cmUoY29uc3Qg
UmVuZGVyVGFibGUmIHRhYmxlUmVuZGVyZXIsIENvbnRhaW5lCiB2b2lkIFRyZWVCdWlsZGVyOjpi
dWlsZFN1YlRyZWUoY29uc3QgUmVuZGVyRWxlbWVudCYgcGFyZW50UmVuZGVyZXIsIENvbnRhaW5l
ckJveCYgcGFyZW50Q29udGFpbmVyKQogewogICAgIGZvciAoYXV0byYgY2hpbGRSZW5kZXJlciA6
IGNoaWxkcmVuT2ZUeXBlPFJlbmRlck9iamVjdD4ocGFyZW50UmVuZGVyZXIpKSB7Ci0gICAgICAg
IGF1dG8qIGNoaWxkTGF5b3V0Qm94ID0gY3JlYXRlTGF5b3V0Qm94KHBhcmVudENvbnRhaW5lciwg
Y2hpbGRSZW5kZXJlcik7Ci0gICAgICAgIGFwcGVuZENoaWxkKHBhcmVudENvbnRhaW5lciwgKmNo
aWxkTGF5b3V0Qm94KTsKLSAgICAgICAgaWYgKGNoaWxkTGF5b3V0Qm94LT5pc1RhYmxlV3JhcHBl
ckJveCgpKQotICAgICAgICAgICAgYnVpbGRUYWJsZVN0cnVjdHVyZShkb3duY2FzdDxSZW5kZXJU
YWJsZT4oY2hpbGRSZW5kZXJlciksIGRvd25jYXN0PENvbnRhaW5lckJveD4oKmNoaWxkTGF5b3V0
Qm94KSk7Ci0gICAgICAgIGVsc2UgaWYgKGlzPENvbnRhaW5lckJveD4oKmNoaWxkTGF5b3V0Qm94
KSkKLSAgICAgICAgICAgIGJ1aWxkU3ViVHJlZShkb3duY2FzdDxSZW5kZXJFbGVtZW50PihjaGls
ZFJlbmRlcmVyKSwgZG93bmNhc3Q8Q29udGFpbmVyQm94PigqY2hpbGRMYXlvdXRCb3gpKTsKKyAg
ICAgICAgYXV0byYgY2hpbGRMYXlvdXRCb3ggPSBhcHBlbmRDaGlsZChwYXJlbnRDb250YWluZXIs
IGNyZWF0ZUxheW91dEJveChwYXJlbnRDb250YWluZXIsIGNoaWxkUmVuZGVyZXIpKTsKKyAgICAg
ICAgaWYgKGNoaWxkTGF5b3V0Qm94LmlzVGFibGVXcmFwcGVyQm94KCkpCisgICAgICAgICAgICBi
dWlsZFRhYmxlU3RydWN0dXJlKGRvd25jYXN0PFJlbmRlclRhYmxlPihjaGlsZFJlbmRlcmVyKSwg
ZG93bmNhc3Q8Q29udGFpbmVyQm94PihjaGlsZExheW91dEJveCkpOworICAgICAgICBlbHNlIGlm
IChpczxDb250YWluZXJCb3g+KGNoaWxkTGF5b3V0Qm94KSkKKyAgICAgICAgICAgIGJ1aWxkU3Vi
VHJlZShkb3duY2FzdDxSZW5kZXJFbGVtZW50PihjaGlsZFJlbmRlcmVyKSwgZG93bmNhc3Q8Q29u
dGFpbmVyQm94PihjaGlsZExheW91dEJveCkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmgKaW5kZXggYmNi
ZjQ0MmY2OTk2Mzc3ZDcwMWE3OTY1ODFlOTVkNTVkNmI4NzBlZC4uNjNhYjg3OTM0ODFmYjNhNjRm
ZWUwZTEyZGIwZmU3MjkyMjhkYjUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oCkBAIC00NiwxNCArNDYsMTMgQEAgY2xh
c3MgTGF5b3V0U3RhdGU7CiBjbGFzcyBMYXlvdXRUcmVlIHsKICAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKExheW91dFRyZWUpOwogcHVibGljOgotICAgIExheW91dFRyZWUoKTsKKyAgICBMYXlv
dXRUcmVlKHN0ZDo6dW5pcXVlX3B0cjxDb250YWluZXJCb3g+KTsKICAgICB+TGF5b3V0VHJlZSgp
ID0gZGVmYXVsdDsKIAotICAgIGNvbnN0IENvbnRhaW5lckJveCYgcm9vdCgpIGNvbnN0IHsgcmV0
dXJuIGRvd25jYXN0PENvbnRhaW5lckJveD4oKm1fbGF5b3V0Qm94ZXNbMF0pOyB9Ci0gICAgdm9p
ZCBhcHBlbmQoc3RkOjp1bmlxdWVfcHRyPEJveD4gYm94KSB7IG1fbGF5b3V0Qm94ZXMuYXBwZW5k
KFdURk1vdmUoYm94KSk7IH0KKyAgICBjb25zdCBDb250YWluZXJCb3gmIHJvb3QoKSBjb25zdCB7
IHJldHVybiAqbV9yb290OyB9CiAKIHByaXZhdGU6Ci0gICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0
cjxCb3g+PiBtX2xheW91dEJveGVzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250YWluZXJCb3g+
IG1fcm9vdDsKIH07CiAKIGNsYXNzIFRyZWVCdWlsZGVyIHsKQEAgLTYxLDE4ICs2MCwxNiBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXQ6OkxheW91dFRyZWU+IGJ1
aWxkTGF5b3V0VHJlZShjb25zdCBSZW5kZXJWaWV3Jik7CiAKIHByaXZhdGU6Ci0gICAgVHJlZUJ1
aWxkZXIoTGF5b3V0VHJlZSYpOworICAgIFRyZWVCdWlsZGVyKCk7CiAKICAgICB2b2lkIGJ1aWxk
U3ViVHJlZShjb25zdCBSZW5kZXJFbGVtZW50JiBwYXJlbnRSZW5kZXJlciwgQ29udGFpbmVyQm94
JiBwYXJlbnRDb250YWluZXIpOwogICAgIHZvaWQgYnVpbGRUYWJsZVN0cnVjdHVyZShjb25zdCBS
ZW5kZXJUYWJsZSYgdGFibGVSZW5kZXJlciwgQ29udGFpbmVyQm94JiB0YWJsZVdyYXBwZXJCb3gp
OwotICAgIEJveCogY3JlYXRlTGF5b3V0Qm94KGNvbnN0IENvbnRhaW5lckJveCYgcGFyZW50Q29u
dGFpbmVyLCBjb25zdCBSZW5kZXJPYmplY3QmIGNoaWxkUmVuZGVyZXIpOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxCb3g+IGNyZWF0ZUxheW91dEJveChjb25zdCBDb250YWluZXJCb3gmIHBhcmVudENv
bnRhaW5lciwgY29uc3QgUmVuZGVyT2JqZWN0JiBjaGlsZFJlbmRlcmVyKTsKIAotICAgIEJveCYg
Y3JlYXRlUmVwbGFjZWRCb3goc3RkOjpvcHRpb25hbDxCb3g6OkVsZW1lbnRBdHRyaWJ1dGVzPiwg
UmVuZGVyU3R5bGUmJik7Ci0gICAgQm94JiBjcmVhdGVUZXh0Qm94KFN0cmluZyB0ZXh0LCBib29s
IGNhblVzZVNpbXBsaWZpZWRUZXh0TWVhc3VyaW5nLCBSZW5kZXJTdHlsZSYmKTsKLSAgICBCb3gm
IGNyZWF0ZUxpbmVCcmVha0JveChib29sIGlzT3B0aW9uYWwsIFJlbmRlclN0eWxlJiYpOwotICAg
IENvbnRhaW5lckJveCYgY3JlYXRlQ29udGFpbmVyKHN0ZDo6b3B0aW9uYWw8Qm94OjpFbGVtZW50
QXR0cmlidXRlcz4sIFJlbmRlclN0eWxlJiYpOwotCi0gICAgTGF5b3V0VHJlZSYgbV9sYXlvdXRU
cmVlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxCb3g+IGNyZWF0ZVJlcGxhY2VkQm94KHN0ZDo6b3B0
aW9uYWw8Qm94OjpFbGVtZW50QXR0cmlidXRlcz4sIFJlbmRlclN0eWxlJiYpOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxCb3g+IGNyZWF0ZVRleHRCb3goU3RyaW5nIHRleHQsIGJvb2wgY2FuVXNlU2lt
cGxpZmllZFRleHRNZWFzdXJpbmcsIFJlbmRlclN0eWxlJiYpOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxCb3g+IGNyZWF0ZUxpbmVCcmVha0JveChib29sIGlzT3B0aW9uYWwsIFJlbmRlclN0eWxlJiYp
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250YWluZXJCb3g+IGNyZWF0ZUNvbnRhaW5lcihzdGQ6
Om9wdGlvbmFsPEJveDo6RWxlbWVudEF0dHJpYnV0ZXM+LCBSZW5kZXJTdHlsZSYmKTsKIH07CiAK
ICNpZiBFTkFCTEUoVFJFRV9ERUJVR0dJTkcpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>