<?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>232771</bug_id>
          
          <creation_ts>2021-11-05 15:38:53 -0700</creation_ts>
          <short_desc>[LFC][IFC] Build the paragraph content when all the inline items are processed</short_desc>
          <delta_ts>2021-11-06 06:00:21 -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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</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>1812271</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-11-05 15:38:53 -0700</bug_when>
    <thetext>if we&apos;ve seen bidi content while processing the inline items.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812278</commentid>
    <comment_count>1</comment_count>
      <attachid>443449</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-11-05 15:47:14 -0700</bug_when>
    <thetext>Created attachment 443449
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812281</commentid>
    <comment_count>2</comment_count>
      <attachid>443450</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-11-05 15:49:42 -0700</bug_when>
    <thetext>Created attachment 443450
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812379</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-06 05:59:47 -0700</bug_when>
    <thetext>Committed r285369 (243927@main): &lt;https://commits.webkit.org/243927@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443450.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812380</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-06 06:00:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/85100352&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443449</attachid>
            <date>2021-11-05 15:47:14 -0700</date>
            <delta_ts>2021-11-05 15:49:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232771-20211105154713.patch</filename>
            <type>text/plain</type>
            <size>16716</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTAxZjYyN2QwZThkYjZj
ZTRjZTk0MjhmMGNhOGZhMzNhZDdjY2NhZi4uN2Y0OWExNzM2MTFjZWZiOTVhYjA1YTYzMTY2ZWUw
ZDA1YjAwMTgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTExLTA1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBCdWlsZCB0
aGUgcGFyYWdyYXBoIGNvbnRlbnQgd2hlbiBhbGwgdGhlIGlubGluZSBpdGVtcyBhcmUgcHJvY2Vz
c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI3
NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IHBhdGNoIHNpbXBsaWZpZXMgdGhlIGlubGluZSBjb2xsZWN0aW9uIGxvZ2ljIGFuZCBoZWxwcyB3
aXRoIHRoZSB1cGNvbWluZyAicmVzb2x2ZSB0aGUgYmlkaSByYW5nZXMiIHBhdGNoLgorCisgICAg
ICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lSXRlbXNCdWlsZGVyOjpidWls
ZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OmJ1aWxkQmlkaVBhcmFncmFwaCk6IExldCdz
IGJ1aWxkIHRoZSBwYXJhZ3JhcGggY29udGVudCBhdCBvbmNlLgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVJdGVtc0J1aWxkZXI6OmJyZWFrQW5kQ29tcHV0ZUJpZGlMZXZlbHMpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVJdGVtc0J1aWxkZXI6OmhhbmRsZVRleHRD
b250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lSXRlbXNCdWlsZGVyOjpo
YW5kbGVJbmxpbmVCb3hTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUl0
ZW1zQnVpbGRlcjo6aGFuZGxlSW5saW5lQm94RW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6SW5saW5lSXRlbXNCdWlsZGVyOjpoYW5kbGVJbmxpbmVMZXZlbEJveCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZUl0ZW1zQnVpbGRlcjo6ZW50ZXJCaWRpQ29udGV4dCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUl0ZW1zQnVpbGRlcjo6ZXhp
dEJpZGlDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5l
SXRlbXNCdWlsZGVyOjpidWlsZFByZXZpb3VzVGV4dENvbnRlbnQpOiBEZWxldGVkLgorICAgICAg
ICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5o
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVJdGVtc0J1aWxkZXI6Omhhc1NlZW5C
aWRpQ29udGVudCBjb25zdCk6CisKIDIwMjEtMTEtMDQgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gVXNlIG9iamVjdFJlcGxhY2VtZW50Q2hhcmFj
dGVyIHRvIG1hcmsgYXRvbWljIGlubGluZSBib3ggcG9zaXRpb24uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1
aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcAppbmRleCBhNzkwMDBjZWZkYTljYmM5N2E2YTliYTJl
ZDc2ZWNjYTYyZjg1M2UzLi5iMTU0MGUyYTMwNjBjMjM4Y2JlMWVmYzgzYzUzMDMyNTBlOGIyZDZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHAKQEAgLTg4LDcg
Kzg4LDggQEAgSW5saW5lSXRlbXMgSW5saW5lSXRlbXNCdWlsZGVyOjpidWlsZCgpCiB7CiAgICAg
SW5saW5lSXRlbXMgaW5saW5lSXRlbXM7CiAgICAgY29sbGVjdElubGluZUl0ZW1zKGlubGluZUl0
ZW1zKTsKLSAgICBicmVha0FuZENvbXB1dGVCaWRpTGV2ZWxzKGlubGluZUl0ZW1zKTsKKyAgICBp
ZiAoaGFzU2VlbkJpZGlDb250ZW50KCkpCisgICAgICAgIGJyZWFrQW5kQ29tcHV0ZUJpZGlMZXZl
bHMoaW5saW5lSXRlbXMpOwogICAgIHJldHVybiBpbmxpbmVJdGVtczsKIH0KIApAQCAtMTM4LDEy
ICsxMzksNzYgQEAgdm9pZCBJbmxpbmVJdGVtc0J1aWxkZXI6OmNvbGxlY3RJbmxpbmVJdGVtcyhJ
bmxpbmVJdGVtcyYgaW5saW5lSXRlbXMpCiAgICAgfQogfQogCit1c2luZyBDb250ZW50T2Zmc2V0
TWFwID0gSGFzaE1hcDxjb25zdCBCb3gqLCBzaXplX3Q+Oworc3RhdGljIGlubGluZSB2b2lkIGJ1
aWxkQmlkaVBhcmFncmFwaChjb25zdCBJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMsICBTdHJpbmdC
dWlsZGVyJiBwYXJhZ3JhcGhDb250ZW50QnVpbGRlciwgQ29udGVudE9mZnNldE1hcCYgY29udGVu
dE9mZnNldE1hcCkKK3sKKyAgICBjb25zdCBCb3gqIGxhc3RJbmxpbmVUZXh0Qm94ID0gbnVsbHB0
cjsKKyAgICBmb3IgKGF1dG8mIGlubGluZUl0ZW0gOiBpbmxpbmVJdGVtcykgeworICAgICAgICBh
dXRvJiBsYXlvdXRCb3ggPSBpbmxpbmVJdGVtLmxheW91dEJveCgpOworCisgICAgICAgIGlmIChp
bmxpbmVJdGVtLmlzVGV4dCgpKSB7CisgICAgICAgICAgICBpZiAobGFzdElubGluZVRleHRCb3gg
IT0gJmxheW91dEJveCkgeworICAgICAgICAgICAgICAgIGNvbnRlbnRPZmZzZXRNYXAuc2V0KCZs
YXlvdXRCb3gsIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmxlbmd0aCgpKTsKKyAgICAgICAgICAg
ICAgICBwYXJhZ3JhcGhDb250ZW50QnVpbGRlci5hcHBlbmQoZG93bmNhc3Q8SW5saW5lVGV4dEJv
eD4obGF5b3V0Qm94KS5jb250ZW50KCkpOworICAgICAgICAgICAgICAgIGxhc3RJbmxpbmVUZXh0
Qm94ID0gJmxheW91dEJveDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChpbmxp
bmVJdGVtLmlzQm94KCkpCisgICAgICAgICAgICBwYXJhZ3JhcGhDb250ZW50QnVpbGRlci5hcHBl
bmQob2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIpOworICAgICAgICBlbHNlIGlmIChpbmxpbmVJ
dGVtLmlzSW5saW5lQm94U3RhcnQoKSB8fCBpbmxpbmVJdGVtLmlzSW5saW5lQm94RW5kKCkpIHsK
KyAgICAgICAgICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Mtd3JpdGluZy1tb2Rl
cy8jdW5pY29kZS1iaWRpCisgICAgICAgICAgICBhdXRvJiBzdHlsZSA9IGlubGluZUl0ZW0uc3R5
bGUoKTsKKyAgICAgICAgICAgIGF1dG8gaW5pdGlhdGVzQ29udHJvbENoYXJhY3RlciA9IHN0eWxl
LnJ0bE9yZGVyaW5nKCkgPT0gT3JkZXI6OkxvZ2ljYWwgJiYgc3R5bGUudW5pY29kZUJpZGkoKSAh
PSBFVW5pY29kZUJpZGk6OlVCTm9ybWFsOworICAgICAgICAgICAgaWYgKCFpbml0aWF0ZXNDb250
cm9sQ2hhcmFjdGVyKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgYXV0
byBpc0VudGVyaW5nQmlkaSA9IGlubGluZUl0ZW0uaXNJbmxpbmVCb3hTdGFydCgpOworCisgICAg
ICAgICAgICBpZiAoaXNFbnRlcmluZ0JpZGkpCisgICAgICAgICAgICAgICAgY29udGVudE9mZnNl
dE1hcC5hZGQoJmxheW91dEJveCwgcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIubGVuZ3RoKCkpOwor
CisgICAgICAgICAgICBzd2l0Y2ggKHN0eWxlLnVuaWNvZGVCaWRpKCkpIHsKKyAgICAgICAgICAg
IGNhc2UgRVVuaWNvZGVCaWRpOjpVQk5vcm1hbDoKKyAgICAgICAgICAgICAgICAvLyBUaGUgYm94
IGRvZXMgbm90IG9wZW4gYW4gYWRkaXRpb25hbCBsZXZlbCBvZiBlbWJlZGRpbmcgd2l0aCByZXNw
ZWN0IHRvIHRoZSBiaWRpcmVjdGlvbmFsIGFsZ29yaXRobS4KKyAgICAgICAgICAgICAgICAvLyBG
b3IgaW5saW5lIGJveGVzLCBpbXBsaWNpdCByZW9yZGVyaW5nIHdvcmtzIGFjcm9zcyBib3ggYm91
bmRhcmllcy4KKyAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgRVVuaWNvZGVCaWRpOjpFbWJlZDoKKyAg
ICAgICAgICAgICAgICBwYXJhZ3JhcGhDb250ZW50QnVpbGRlci5hcHBlbmQoaXNFbnRlcmluZ0Jp
ZGkgPyAoc3R5bGUuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gbGVmdFRvUmlnaHRFbWJlZCA6
IHJpZ2h0VG9MZWZ0RW1iZWQpIDogcG9wRGlyZWN0aW9uYWxGb3JtYXR0aW5nKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgRVVuaWNvZGVCaWRpOjpPdmVycmlkZToK
KyAgICAgICAgICAgICAgICBwYXJhZ3JhcGhDb250ZW50QnVpbGRlci5hcHBlbmQoaXNFbnRlcmlu
Z0JpZGkgPyAoc3R5bGUuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gbGVmdFRvUmlnaHRPdmVy
cmlkZSA6IHJpZ2h0VG9MZWZ0T3ZlcnJpZGUpIDogcG9wRGlyZWN0aW9uYWxGb3JtYXR0aW5nKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgRVVuaWNvZGVCaWRpOjpJ
c29sYXRlOgorICAgICAgICAgICAgICAgIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmFwcGVuZChp
c0VudGVyaW5nQmlkaSA/IChzdHlsZS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBsZWZ0VG9S
aWdodElzb2xhdGUgOiByaWdodFRvTGVmdElzb2xhdGUpIDogcG9wRGlyZWN0aW9uYWxJc29sYXRl
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgRVVuaWNvZGVCaWRp
OjpQbGFpbnRleHQ6CisgICAgICAgICAgICAgICAgcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIuYXBw
ZW5kKGlzRW50ZXJpbmdCaWRpID8gZmlyc3RTdHJvbmdJc29sYXRlIDogcG9wRGlyZWN0aW9uYWxJ
c29sYXRlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgRVVuaWNv
ZGVCaWRpOjpJc29sYXRlT3ZlcnJpZGU6CisgICAgICAgICAgICAgICAgaWYgKGlzRW50ZXJpbmdC
aWRpKSB7CisgICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmFwcGVu
ZChmaXJzdFN0cm9uZ0lzb2xhdGUpOworICAgICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhDb250
ZW50QnVpbGRlci5hcHBlbmQoc3R5bGUuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gbGVmdFRv
UmlnaHRPdmVycmlkZSA6IHJpZ2h0VG9MZWZ0T3ZlcnJpZGUpOworICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmFwcGVu
ZChwb3BEaXJlY3Rpb25hbEZvcm1hdHRpbmcpOworICAgICAgICAgICAgICAgICAgICBwYXJhZ3Jh
cGhDb250ZW50QnVpbGRlci5hcHBlbmQocG9wRGlyZWN0aW9uYWxJc29sYXRlKTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgfQorICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfSU1QTEVNRU5URURfWUVUKCk7Cisg
ICAgfQorfQorCiB2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6YnJlYWtBbmRDb21wdXRlQmlkaUxl
dmVscyhJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMpCiB7Ci0gICAgaWYgKCFoYXNTZWVuQmlkaUNv
bnRlbnQoKSkKLSAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChoYXNTZWVuQmlkaUNvbnRlbnQo
KSk7CiAgICAgQVNTRVJUKCFpbmxpbmVJdGVtcy5pc0VtcHR5KCkpOwogCisgICAgU3RyaW5nQnVp
bGRlciBwYXJhZ3JhcGhDb250ZW50QnVpbGRlcjsKKyAgICBDb250ZW50T2Zmc2V0TWFwIGNvbnRl
bnRPZmZzZXRNYXA7CisgICAgYnVpbGRCaWRpUGFyYWdyYXBoKGlubGluZUl0ZW1zLCBwYXJhZ3Jh
cGhDb250ZW50QnVpbGRlciwgY29udGVudE9mZnNldE1hcCk7CisKICAgICAvLyAxLiBTZXR1cCB0
aGUgYmlkaSBib3VuZGFyeSBsb29wIGJ5IGNhbGxpbmcgdWJpZGlfc2V0UGFyYSB3aXRoIHRoZSBw
YXJhZ3JhcGggdGV4dC4KICAgICAvLyAyLiBDYWxsIHViaWRpX2dldExvZ2ljYWxSdW4gdG8gYWR2
YW5jZSB0byB0aGUgbmV4dCBiaWRpIGJvdW5kYXJ5IHVudGlsIHdlIGhpdCB0aGUgZW5kIG9mIHRo
ZSBjb250ZW50LgogICAgIC8vIDMuIFNldCB0aGUgY29tcHV0ZWQgYmlkaSBsZXZlbCBvbiB0aGUg
YXNzb2NpYXRlZCBpbmxpbmUgaXRlbXMuIFNwbGl0IHRoZW0gYXMgbmVlZGVkLgpAQCAtMTU5LDE0
ICsyMjQsMTUgQEAgdm9pZCBJbmxpbmVJdGVtc0J1aWxkZXI6OmJyZWFrQW5kQ29tcHV0ZUJpZGlM
ZXZlbHMoSW5saW5lSXRlbXMmIGlubGluZUl0ZW1zKQogICAgICAgICBiaWRpTGV2ZWwgPSByb290
KCkuc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBVQklESV9MVFIgOiBVQklESV9S
VEw7CiAKICAgICBVRXJyb3JDb2RlIGVycm9yID0gVV9aRVJPX0VSUk9SOwotICAgIHViaWRpX3Nl
dFBhcmEodWJpZGksIG1fcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIuY2hhcmFjdGVyczE2KCksIG1f
cGFyYWdyYXBoQ29udGVudEJ1aWxkZXIubGVuZ3RoKCksIGJpZGlMZXZlbCwgbnVsbHB0ciwgJmVy
cm9yKTsKKyAgICBBU1NFUlQoIXBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmlzRW1wdHkoKSk7Cisg
ICAgdWJpZGlfc2V0UGFyYSh1YmlkaSwgcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIuY2hhcmFjdGVy
czE2KCksIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmxlbmd0aCgpLCBiaWRpTGV2ZWwsIG51bGxw
dHIsICZlcnJvcik7CiAgICAgaWYgKFVfRkFJTFVSRShlcnJvcikpIHsKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBzaXplX3QgY3Vy
cmVudElubGluZUl0ZW1JbmRleCA9IDA7Ci0gICAgZm9yIChzaXplX3QgY3VycmVudFBvc2l0aW9u
ID0gMDsgY3VycmVudFBvc2l0aW9uIDwgbV9wYXJhZ3JhcGhDb250ZW50QnVpbGRlci5sZW5ndGgo
KTspIHsKKyAgICBmb3IgKHNpemVfdCBjdXJyZW50UG9zaXRpb24gPSAwOyBjdXJyZW50UG9zaXRp
b24gPCBwYXJhZ3JhcGhDb250ZW50QnVpbGRlci5sZW5ndGgoKTspIHsKICAgICAgICAgVUJpRGlM
ZXZlbCBsZXZlbDsKICAgICAgICAgaW50MzJfdCBlbmRQb3NpdGlvbiA9IGN1cnJlbnRQb3NpdGlv
bjsKICAgICAgICAgdWJpZGlfZ2V0TG9naWNhbFJ1bih1YmlkaSwgY3VycmVudFBvc2l0aW9uLCAm
ZW5kUG9zaXRpb24sICZsZXZlbCk7CkBAIC0xODgsNyArMjU0LDcgQEAgdm9pZCBJbmxpbmVJdGVt
c0J1aWxkZXI6OmJyZWFrQW5kQ29tcHV0ZUJpZGlMZXZlbHMoSW5saW5lSXRlbXMmIGlubGluZUl0
ZW1zKQogICAgICAgICAgICAgICAgIGlubGluZVRleHRJdGVtLnNldEJpZGlMZXZlbChsZXZlbCk7
CiAKICAgICAgICAgICAgICAgICBhdXRvIGlubGluZVRleHRJdGVtRW5kID0gaW5saW5lVGV4dEl0
ZW0uZW5kKCk7Ci0gICAgICAgICAgICAgICAgYXV0byBiaWRpRW5kID0gZW5kUG9zaXRpb24gLSBt
X2NvbnRlbnRPZmZzZXRNYXAuZ2V0KCZpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSk7CisgICAg
ICAgICAgICAgICAgYXV0byBiaWRpRW5kID0gZW5kUG9zaXRpb24gLSBjb250ZW50T2Zmc2V0TWFw
LmdldCgmaW5saW5lVGV4dEl0ZW0ubGF5b3V0Qm94KCkpOwogICAgICAgICAgICAgICAgIGlmIChi
aWRpRW5kID09IGlubGluZVRleHRJdGVtRW5kKSB7CiAgICAgICAgICAgICAgICAgICAgICsrY3Vy
cmVudElubGluZUl0ZW1JbmRleDsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yMzYs
MTEgKzMwMiw2IEBAIHZvaWQgSW5saW5lSXRlbXNCdWlsZGVyOjpoYW5kbGVUZXh0Q29udGVudChj
b25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBJCiAgICAgICAgIHJldHVybiBUZXh0
VXRpbDo6d2lkdGgoaW5saW5lVGV4dEJveCwgZm9udENhc2NhZGUsIHN0YXJ0UG9zaXRpb24sIHN0
YXJ0UG9zaXRpb24gKyBsZW5ndGgsIHsgfSk7CiAgICAgfTsKIAotICAgIGlmIChoYXNTZWVuQmlk
aUNvbnRlbnQoKSkgewotICAgICAgICBtX2NvbnRlbnRPZmZzZXRNYXAuc2V0KCZpbmxpbmVUZXh0
Qm94LCBtX3BhcmFncmFwaENvbnRlbnRCdWlsZGVyLmxlbmd0aCgpKTsKLSAgICAgICAgbV9wYXJh
Z3JhcGhDb250ZW50QnVpbGRlci5hcHBlbmQodGV4dCk7Ci0gICAgfQotCiAgICAgd2hpbGUgKGN1
cnJlbnRQb3NpdGlvbiA8IGNvbnRlbnRMZW5ndGgpIHsKICAgICAgICAgYXV0byBoYW5kbGVTZWdt
ZW50QnJlYWsgPSBbJl0gewogICAgICAgICAgICAgLy8gU2VnbWVudCBicmVha3Mgd2l0aCBwcmVz
ZXJ2ZSBuZXcgbGluZSBzdHlsZSAod2hpdGUtc3BhY2U6IHByZSwgcHJlLXdyYXAsIGJyZWFrLXNw
YWNlcyBhbmQgcHJlLWxpbmUpIGNvbXB1dGUgdG8gZm9yY2VkIGxpbmUgYnJlYWsuCkBAIC0zMDgs
MTggKzM2OSwxNSBAQCB2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6aGFuZGxlVGV4dENvbnRlbnQo
Y29uc3QgSW5saW5lVGV4dEJveCYgaW5saW5lVGV4dEJveCwgSQogICAgICAgICAgICAgICAgIFUx
Nl9ORVhUKHRleHQuY2hhcmFjdGVyczE2KCksIHBvc2l0aW9uLCBjb250ZW50TGVuZ3RoLCBjaGFy
YWN0ZXIpOwogCiAgICAgICAgICAgICAgICAgYXV0byBiaWRpQ2F0ZWdvcnkgPSB1X2NoYXJEaXJl
Y3Rpb24oY2hhcmFjdGVyKTsKLSAgICAgICAgICAgICAgICBhdXRvIG5lZWRzQmlkaSA9IGJpZGlD
YXRlZ29yeSA9PSBVX1JJR0hUX1RPX0xFRlQKKyAgICAgICAgICAgICAgICBtX2hhc1NlZW5CaWRp
Q29udGVudCA9IGJpZGlDYXRlZ29yeSA9PSBVX1JJR0hUX1RPX0xFRlQKICAgICAgICAgICAgICAg
ICAgICAgfHwgYmlkaUNhdGVnb3J5ID09IFVfUklHSFRfVE9fTEVGVF9BUkFCSUMKICAgICAgICAg
ICAgICAgICAgICAgfHwgYmlkaUNhdGVnb3J5ID09IFVfUklHSFRfVE9fTEVGVF9FTUJFRERJTkcK
ICAgICAgICAgICAgICAgICAgICAgfHwgYmlkaUNhdGVnb3J5ID09IFVfUklHSFRfVE9fTEVGVF9P
VkVSUklERQogICAgICAgICAgICAgICAgICAgICB8fCBiaWRpQ2F0ZWdvcnkgPT0gVV9MRUZUX1RP
X1JJR0hUX0VNQkVERElORwogICAgICAgICAgICAgICAgICAgICB8fCBiaWRpQ2F0ZWdvcnkgPT0g
VV9MRUZUX1RPX1JJR0hUX09WRVJSSURFCiAgICAgICAgICAgICAgICAgICAgIHx8IGJpZGlDYXRl
Z29yeSA9PSBVX1BPUF9ESVJFQ1RJT05BTF9GT1JNQVQ7Ci0gICAgICAgICAgICAgICAgaWYgKG5l
ZWRzQmlkaSkgewotICAgICAgICAgICAgICAgICAgICBidWlsZFByZXZpb3VzVGV4dENvbnRlbnQo
aW5saW5lSXRlbXMpOwotICAgICAgICAgICAgICAgICAgICAvLyBidWlsZFByZXZpb3VzVGV4dENv
bnRlbnQgdGFrZXMgY2FyZSBvZiB0aGlzIGNvbnRlbnQgdG9vIGFzIHNvbWUgaW5saW5lIGl0ZW1z
IGhhdmUgYWxyZWFkeSBiZWVuIGNvbnN0cnVjdGVkIGZvciB0aGlzIHRleHQuCisgICAgICAgICAg
ICAgICAgaWYgKG1faGFzU2VlbkJpZGlDb250ZW50KQogICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwpAQCAtMzM0LDEyNSArMzkyLDI4IEBAIHZvaWQgSW5saW5lSXRlbXNCdWls
ZGVyOjpoYW5kbGVUZXh0Q29udGVudChjb25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94
LCBJCiB2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6aGFuZGxlSW5saW5lQm94U3RhcnQoY29uc3Qg
Qm94JiBpbmxpbmVCb3gsIElubGluZUl0ZW1zJiBpbmxpbmVJdGVtcykKIHsKICAgICBpbmxpbmVJ
dGVtcy5hcHBlbmQoeyBpbmxpbmVCb3gsIElubGluZUl0ZW06OlR5cGU6OklubGluZUJveFN0YXJ0
IH0pOwotICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Mtd3JpdGluZy1tb2Rlcy8j
dW5pY29kZS1iaWRpCiAgICAgYXV0byYgc3R5bGUgPSBpbmxpbmVCb3guc3R5bGUoKTsKLSAgICBp
ZiAoc3R5bGUucnRsT3JkZXJpbmcoKSA9PSBPcmRlcjo6VmlzdWFsKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBhdXRvIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24gPSBzdHlsZS5pc0xlZnRUb1JpZ2h0
RGlyZWN0aW9uKCk7Ci0gICAgc3dpdGNoIChzdHlsZS51bmljb2RlQmlkaSgpKSB7Ci0gICAgY2Fz
ZSBFVW5pY29kZUJpZGk6OlVCTm9ybWFsOgotICAgICAgICAvLyBUaGUgYm94IGRvZXMgbm90IG9w
ZW4gYW4gYWRkaXRpb25hbCBsZXZlbCBvZiBlbWJlZGRpbmcgd2l0aCByZXNwZWN0IHRvIHRoZSBi
aWRpcmVjdGlvbmFsIGFsZ29yaXRobS4KLSAgICAgICAgLy8gRm9yIGlubGluZSBib3hlcywgaW1w
bGljaXQgcmVvcmRlcmluZyB3b3JrcyBhY3Jvc3MgYm94IGJvdW5kYXJpZXMuCi0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgRVVuaWNvZGVCaWRpOjpFbWJlZDoKLSAgICAgICAgZW50ZXJCaWRpQ29u
dGV4dChpbmxpbmVCb3gsIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24gPyBsZWZ0VG9SaWdodEVtYmVk
IDogcmlnaHRUb0xlZnRFbWJlZCwgaW5saW5lSXRlbXMpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIEVVbmljb2RlQmlkaTo6T3ZlcnJpZGU6Ci0gICAgICAgIGVudGVyQmlkaUNvbnRleHQoaW5s
aW5lQm94LCBpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uID8gbGVmdFRvUmlnaHRPdmVycmlkZSA6IHJp
Z2h0VG9MZWZ0T3ZlcnJpZGUsIGlubGluZUl0ZW1zKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBFVW5pY29kZUJpZGk6Oklzb2xhdGU6Ci0gICAgICAgIGVudGVyQmlkaUNvbnRleHQoaW5saW5l
Qm94LCBpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uID8gbGVmdFRvUmlnaHRJc29sYXRlIDogcmlnaHRU
b0xlZnRJc29sYXRlLCBpbmxpbmVJdGVtcyk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRVVu
aWNvZGVCaWRpOjpQbGFpbnRleHQ6Ci0gICAgICAgIGVudGVyQmlkaUNvbnRleHQoaW5saW5lQm94
LCBmaXJzdFN0cm9uZ0lzb2xhdGUsIGlubGluZUl0ZW1zKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBFVW5pY29kZUJpZGk6Oklzb2xhdGVPdmVycmlkZToKLSAgICAgICAgZW50ZXJCaWRpQ29u
dGV4dChpbmxpbmVCb3gsIGZpcnN0U3Ryb25nSXNvbGF0ZSwgaW5saW5lSXRlbXMpOwotICAgICAg
ICBlbnRlckJpZGlDb250ZXh0KGlubGluZUJveCwgaXNMZWZ0VG9SaWdodERpcmVjdGlvbiA/IGxl
ZnRUb1JpZ2h0T3ZlcnJpZGUgOiByaWdodFRvTGVmdE92ZXJyaWRlLCBpbmxpbmVJdGVtcyk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgIH0KKyAgICBtX2hhc1NlZW5CaWRpQ29udGVudCA9IG1faGFzU2VlbkJpZGlDb250ZW50
IHx8IChzdHlsZS5ydGxPcmRlcmluZygpID09IE9yZGVyOjpMb2dpY2FsICYmIHN0eWxlLnVuaWNv
ZGVCaWRpKCkgIT0gRVVuaWNvZGVCaWRpOjpVQk5vcm1hbCk7IAogfQogCiB2b2lkIElubGluZUl0
ZW1zQnVpbGRlcjo6aGFuZGxlSW5saW5lQm94RW5kKGNvbnN0IEJveCYgaW5saW5lQm94LCBJbmxp
bmVJdGVtcyYgaW5saW5lSXRlbXMpCiB7CiAgICAgaW5saW5lSXRlbXMuYXBwZW5kKHsgaW5saW5l
Qm94LCBJbmxpbmVJdGVtOjpUeXBlOjpJbmxpbmVCb3hFbmQgfSk7Ci0gICAgLy8gaHR0cHM6Ly9k
cmFmdHMuY3Nzd2cub3JnL2Nzcy13cml0aW5nLW1vZGVzLyN1bmljb2RlLWJpZGkKLSAgICBhdXRv
JiBzdHlsZSA9IGlubGluZUJveC5zdHlsZSgpOwotICAgIGlmIChzdHlsZS5ydGxPcmRlcmluZygp
ID09IE9yZGVyOjpWaXN1YWwpCi0gICAgICAgIHJldHVybjsKLQotICAgIHN3aXRjaCAoc3R5bGUu
dW5pY29kZUJpZGkoKSkgewotICAgIGNhc2UgRVVuaWNvZGVCaWRpOjpVQk5vcm1hbDoKLSAgICAg
ICAgLy8gVGhlIGJveCBkb2VzIG5vdCBvcGVuIGFuIGFkZGl0aW9uYWwgbGV2ZWwgb2YgZW1iZWRk
aW5nIHdpdGggcmVzcGVjdCB0byB0aGUgYmlkaXJlY3Rpb25hbCBhbGdvcml0aG0uCi0gICAgICAg
IC8vIEZvciBpbmxpbmUgYm94ZXMsIGltcGxpY2l0IHJlb3JkZXJpbmcgd29ya3MgYWNyb3NzIGJv
eCBib3VuZGFyaWVzLgotICAgICAgICBicmVhazsKLSAgICBjYXNlIEVVbmljb2RlQmlkaTo6RW1i
ZWQ6Ci0gICAgICAgIGV4aXRCaWRpQ29udGV4dChpbmxpbmVCb3gsIHBvcERpcmVjdGlvbmFsRm9y
bWF0dGluZyk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRVVuaWNvZGVCaWRpOjpPdmVycmlk
ZToKLSAgICAgICAgZXhpdEJpZGlDb250ZXh0KGlubGluZUJveCwgcG9wRGlyZWN0aW9uYWxGb3Jt
YXR0aW5nKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBFVW5pY29kZUJpZGk6Oklzb2xhdGU6
Ci0gICAgICAgIGV4aXRCaWRpQ29udGV4dChpbmxpbmVCb3gsIHBvcERpcmVjdGlvbmFsSXNvbGF0
ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRVVuaWNvZGVCaWRpOjpQbGFpbnRleHQ6Ci0g
ICAgICAgIGV4aXRCaWRpQ29udGV4dChpbmxpbmVCb3gsIHBvcERpcmVjdGlvbmFsSXNvbGF0ZSk7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRVVuaWNvZGVCaWRpOjpJc29sYXRlT3ZlcnJpZGU6
Ci0gICAgICAgIGV4aXRCaWRpQ29udGV4dChpbmxpbmVCb3gsIHBvcERpcmVjdGlvbmFsRm9ybWF0
dGluZyk7Ci0gICAgICAgIGV4aXRCaWRpQ29udGV4dChpbmxpbmVCb3gsIHBvcERpcmVjdGlvbmFs
SXNvbGF0ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgIH0KKyAgICAvLyBJbmxpbmUgYm94IGVuZCBpdGVtIGl0c2VsZiBj
YW4gbm90IHRyaWdnZXIgYmlkaSBjb250ZW50LgorICAgIEFTU0VSVChoYXNTZWVuQmlkaUNvbnRl
bnQoKSB8fCBpbmxpbmVCb3guc3R5bGUoKS5ydGxPcmRlcmluZygpID09IE9yZGVyOjpWaXN1YWwg
fHwgaW5saW5lQm94LnN0eWxlKCkudW5pY29kZUJpZGkoKSA9PSBFVW5pY29kZUJpZGk6OlVCTm9y
bWFsKTsKIH0KIAogdm9pZCBJbmxpbmVJdGVtc0J1aWxkZXI6OmhhbmRsZUlubGluZUxldmVsQm94
KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMpCiB7Ci0gICAg
aWYgKGxheW91dEJveC5pc0F0b21pY0lubGluZUxldmVsQm94KCkpIHsKLSAgICAgICAgaW5saW5l
SXRlbXMuYXBwZW5kKHsgbGF5b3V0Qm94LCBJbmxpbmVJdGVtOjpUeXBlOjpCb3ggfSk7Ci0gICAg
ICAgIGlmIChoYXNTZWVuQmlkaUNvbnRlbnQoKSkKLSAgICAgICAgICAgIG1fcGFyYWdyYXBoQ29u
dGVudEJ1aWxkZXIuYXBwZW5kKG9iamVjdFJlcGxhY2VtZW50Q2hhcmFjdGVyKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KKyAgICBpZiAobGF5b3V0Qm94LmlzQXRvbWljSW5saW5lTGV2ZWxCb3go
KSkKKyAgICAgICAgcmV0dXJuIGlubGluZUl0ZW1zLmFwcGVuZCh7IGxheW91dEJveCwgSW5saW5l
SXRlbTo6VHlwZTo6Qm94IH0pOwogCi0gICAgaWYgKGxheW91dEJveC5pc0xpbmVCcmVha0JveCgp
KSB7Ci0gICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgKGlmIGFueSkgY2hhcmFjdGVy
IHRvIGFwcGVuZCB0byB0aGUgYmlkaSBwYXJhZ3JhcGguCisgICAgaWYgKGxheW91dEJveC5pc0xp
bmVCcmVha0JveCgpKQogICAgICAgICByZXR1cm4gaW5saW5lSXRlbXMuYXBwZW5kKHsgbGF5b3V0
Qm94LCBkb3duY2FzdDxMaW5lQnJlYWtCb3g+KGxheW91dEJveCkuaXNPcHRpb25hbCgpID8gSW5s
aW5lSXRlbTo6VHlwZTo6V29yZEJyZWFrT3Bwb3J0dW5pdHkgOiBJbmxpbmVJdGVtOjpUeXBlOjpI
YXJkTGluZUJyZWFrIH0pOwotICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQog
Ci12b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6ZW50ZXJCaWRpQ29udGV4dChjb25zdCBCb3gmIGJv
eCwgVUNoYXIgY29udHJvbENoYXJhY3RlciwgY29uc3QgSW5saW5lSXRlbXMmIGlubGluZUl0ZW1z
KQotewotICAgIGlmICghaGFzU2VlbkJpZGlDb250ZW50KCkpCi0gICAgICAgIGJ1aWxkUHJldmlv
dXNUZXh0Q29udGVudChpbmxpbmVJdGVtcyk7Ci0gICAgLy8gTGV0IHRoZSBmaXJzdCBjb250cm9s
IGNoYXJhY3RlciByZXByZXNlbnQgdGhlICBib3guCi0gICAgbV9jb250ZW50T2Zmc2V0TWFwLmFk
ZCgmYm94LCBtX3BhcmFncmFwaENvbnRlbnRCdWlsZGVyLmxlbmd0aCgpKTsKLSAgICBtX3BhcmFn
cmFwaENvbnRlbnRCdWlsZGVyLmFwcGVuZChjb250cm9sQ2hhcmFjdGVyKTsKLX0KLQotdm9pZCBJ
bmxpbmVJdGVtc0J1aWxkZXI6OmV4aXRCaWRpQ29udGV4dChjb25zdCBCb3gmLCBVQ2hhciBjb250
cm9sQ2hhcmFjdGVyKQotewotICAgIEFTU0VSVChoYXNTZWVuQmlkaUNvbnRlbnQoKSk7Ci0gICAg
bV9wYXJhZ3JhcGhDb250ZW50QnVpbGRlci5hcHBlbmQoY29udHJvbENoYXJhY3Rlcik7Ci19Ci0K
LXZvaWQgSW5saW5lSXRlbXNCdWlsZGVyOjpidWlsZFByZXZpb3VzVGV4dENvbnRlbnQoY29uc3Qg
SW5saW5lSXRlbXMmIGlubGluZUl0ZW1zKQotewotICAgIEFTU0VSVCghaGFzU2VlbkJpZGlDb250
ZW50KCkpOwotICAgIEFTU0VSVChtX2NvbnRlbnRPZmZzZXRNYXAuaXNFbXB0eSgpKTsKLQotICAg
IGNvbnN0IEJveCogbGFzdElubGluZVRleHRCb3ggPSBudWxscHRyOwotICAgIGZvciAoYXV0byYg
aW5saW5lSXRlbSA6IGlubGluZUl0ZW1zKSB7Ci0gICAgICAgIGlmIChpbmxpbmVJdGVtLmlzVGV4
dCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiBsYXlvdXRCb3ggPSBpbmxpbmVJdGVtLmxheW91dEJv
eCgpOwotICAgICAgICAgICAgaWYgKGxhc3RJbmxpbmVUZXh0Qm94ICE9ICZsYXlvdXRCb3gpIHsK
LSAgICAgICAgICAgICAgICBtX2NvbnRlbnRPZmZzZXRNYXAuc2V0KCZsYXlvdXRCb3gsIG1fcGFy
YWdyYXBoQ29udGVudEJ1aWxkZXIubGVuZ3RoKCkpOwotICAgICAgICAgICAgICAgIG1fcGFyYWdy
YXBoQ29udGVudEJ1aWxkZXIuYXBwZW5kKGRvd25jYXN0PElubGluZVRleHRCb3g+KGxheW91dEJv
eCkuY29udGVudCgpKTsKLSAgICAgICAgICAgICAgICBsYXN0SW5saW5lVGV4dEJveCA9ICZsYXlv
dXRCb3g7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoaW5saW5lSXRlbS5pc0Jv
eCgpKQotICAgICAgICAgICAgbV9wYXJhZ3JhcGhDb250ZW50QnVpbGRlci5hcHBlbmQob2JqZWN0
UmVwbGFjZW1lbnRDaGFyYWN0ZXIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBBU1NFUlRf
Tk9UX0lNUExFTUVOVEVEX1lFVCgpOwotICAgIH0KLX0KLQogfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVt
c0J1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUl0ZW1zQnVpbGRlci5oCmluZGV4IGE2NDRhMTYyZGIyMzE0NmEzMjU1MmMwY2Rl
ZGFlNzFkZWM4MTQ5MjIuLjA2Y2Y0YzcwYzE3MTkwNzgyYjZjNTNmZmM2NmExNWE0NjA4ODZkNzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUl0ZW1zQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVpbGRlci5oCkBAIC00OSwyMiArNDks
MTQgQEAgcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZUlubGluZUJveEVuZChjb25zdCBCb3gmLCBJ
bmxpbmVJdGVtcyYpOwogICAgIHZvaWQgaGFuZGxlSW5saW5lTGV2ZWxCb3goY29uc3QgQm94Jiwg
SW5saW5lSXRlbXMmKTsKICAgICAKLSAgICB2b2lkIGVudGVyQmlkaUNvbnRleHQoY29uc3QgQm94
JiwgVUNoYXIsIGNvbnN0IElubGluZUl0ZW1zJik7Ci0gICAgdm9pZCBleGl0QmlkaUNvbnRleHQo
Y29uc3QgQm94JiwgVUNoYXIpOwotCi0gICAgdm9pZCBidWlsZFByZXZpb3VzVGV4dENvbnRlbnQo
Y29uc3QgSW5saW5lSXRlbXMmKTsKLQotICAgIGJvb2wgaGFzU2VlbkJpZGlDb250ZW50KCkgY29u
c3QgeyByZXR1cm4gIW1fcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIuaXNFbXB0eSgpOyB9CisgICAg
Ym9vbCBoYXNTZWVuQmlkaUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1NlZW5CaWRpQ29u
dGVudDsgfQogCiAgICAgY29uc3QgQ29udGFpbmVyQm94JiByb290KCkgY29uc3QgeyByZXR1cm4g
bV9yb290OyB9CiAKICAgICBjb25zdCBDb250YWluZXJCb3gmIG1fcm9vdDsKICAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIG5vdCBuZWVkIHRoaXMgaGVyZS4gVGhpcyBpcyBvbmx5IHJlcXVpcmVkIGJ5
IHRoZSBvdXQgb2YgZmxvdyBib3hlcy4KICAgICBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIG1fZm9y
bWF0dGluZ1N0YXRlOwotCi0gICAgU3RyaW5nQnVpbGRlciBtX3BhcmFncmFwaENvbnRlbnRCdWls
ZGVyOwotICAgIC8vIEtlZXAgdHJhY2sgb2Ygd2hlcmUgZWFjaCBsYXlvdXQgYm94IHN0YXJ0cyBp
biB0aGUgcGFyYWdyYXBoIGNvbnRlbnQuCi0gICAgSGFzaE1hcDxjb25zdCBCb3gqLCBzaXplX3Q+
IG1fY29udGVudE9mZnNldE1hcDsKKyAgICBib29sIG1faGFzU2VlbkJpZGlDb250ZW50IHsgZmFs
c2UgfTsKIH07CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443450</attachid>
            <date>2021-11-05 15:49:42 -0700</date>
            <delta_ts>2021-11-06 05:59:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232771-20211105154941.patch</filename>
            <type>text/plain</type>
            <size>16715</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTAxZjYyN2QwZThkYjZj
ZTRjZTk0MjhmMGNhOGZhMzNhZDdjY2NhZi4uNjg1ODIxNWIxYjE3MzI3ZDkzYTRlZDc2NzU3NDgx
NTk2MTNiYzY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTExLTA1ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIEJ1aWxkIHRo
ZSBwYXJhZ3JhcGggY29udGVudCB3aGVuIGFsbCB0aGUgaW5saW5lIGl0ZW1zIGFyZSBwcm9jZXNz
ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjc3
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggc2ltcGxpZmllcyB0aGUgaW5saW5lIGNvbGxlY3Rpb24gbG9naWMgYW5kIGhlbHBzIHdp
dGggdGhlIHVwY29taW5nICJyZXNvbHZlIHRoZSBiaWRpIHJhbmdlcyIgcGF0Y2guCisKKyAgICAg
ICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtc0J1aWxkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVJdGVtc0J1aWxkZXI6OmJ1aWxk
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6YnVpbGRCaWRpUGFyYWdyYXBoKTogTGV0J3Mg
YnVpbGQgdGhlIHBhcmFncmFwaCBjb250ZW50IGF0IG9uY2UuCisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OklubGluZUl0ZW1zQnVpbGRlcjo6YnJlYWtBbmRDb21wdXRlQmlkaUxldmVscyk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUl0ZW1zQnVpbGRlcjo6aGFuZGxlVGV4dENv
bnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVJdGVtc0J1aWxkZXI6Omhh
bmRsZUlubGluZUJveFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lSXRl
bXNCdWlsZGVyOjpoYW5kbGVJbmxpbmVCb3hFbmQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpJbmxpbmVJdGVtc0J1aWxkZXI6OmhhbmRsZUlubGluZUxldmVsQm94KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6SW5saW5lSXRlbXNCdWlsZGVyOjplbnRlckJpZGlDb250ZXh0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lSXRlbXNCdWlsZGVyOjpleGl0
QmlkaUNvbnRleHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVJ
dGVtc0J1aWxkZXI6OmJ1aWxkUHJldmlvdXNUZXh0Q29udGVudCk6IERlbGV0ZWQuCisgICAgICAg
ICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUl0ZW1zQnVpbGRlcjo6aGFzU2VlbkJp
ZGlDb250ZW50IGNvbnN0KToKKwogMjAyMS0xMS0wNCAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBVc2Ugb2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0
ZXIgdG8gbWFyayBhdG9taWMgaW5saW5lIGJveCBwb3NpdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1zQnVp
bGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVJdGVtc0J1aWxkZXIuY3BwCmluZGV4IGE3OTAwMGNlZmRhOWNiYzk3YTZhOWJhMmVk
NzZlY2NhNjJmODUzZTMuLmIxNTQwZTJhMzA2MGMyMzhjYmUxZWZjODNjNTMwMzI1MGU4YjJkNmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUl0ZW1zQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmNwcApAQCAtODgsNyAr
ODgsOCBAQCBJbmxpbmVJdGVtcyBJbmxpbmVJdGVtc0J1aWxkZXI6OmJ1aWxkKCkKIHsKICAgICBJ
bmxpbmVJdGVtcyBpbmxpbmVJdGVtczsKICAgICBjb2xsZWN0SW5saW5lSXRlbXMoaW5saW5lSXRl
bXMpOwotICAgIGJyZWFrQW5kQ29tcHV0ZUJpZGlMZXZlbHMoaW5saW5lSXRlbXMpOworICAgIGlm
IChoYXNTZWVuQmlkaUNvbnRlbnQoKSkKKyAgICAgICAgYnJlYWtBbmRDb21wdXRlQmlkaUxldmVs
cyhpbmxpbmVJdGVtcyk7CiAgICAgcmV0dXJuIGlubGluZUl0ZW1zOwogfQogCkBAIC0xMzgsMTIg
KzEzOSw3NiBAQCB2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6Y29sbGVjdElubGluZUl0ZW1zKElu
bGluZUl0ZW1zJiBpbmxpbmVJdGVtcykKICAgICB9CiB9CiAKK3VzaW5nIENvbnRlbnRPZmZzZXRN
YXAgPSBIYXNoTWFwPGNvbnN0IEJveCosIHNpemVfdD47CitzdGF0aWMgaW5saW5lIHZvaWQgYnVp
bGRCaWRpUGFyYWdyYXBoKGNvbnN0IElubGluZUl0ZW1zJiBpbmxpbmVJdGVtcywgIFN0cmluZ0J1
aWxkZXImIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLCBDb250ZW50T2Zmc2V0TWFwJiBjb250ZW50
T2Zmc2V0TWFwKQoreworICAgIGNvbnN0IEJveCogbGFzdElubGluZVRleHRCb3ggPSBudWxscHRy
OworICAgIGZvciAoYXV0byYgaW5saW5lSXRlbSA6IGlubGluZUl0ZW1zKSB7CisgICAgICAgIGF1
dG8mIGxheW91dEJveCA9IGlubGluZUl0ZW0ubGF5b3V0Qm94KCk7CisKKyAgICAgICAgaWYgKGlu
bGluZUl0ZW0uaXNUZXh0KCkpIHsKKyAgICAgICAgICAgIGlmIChsYXN0SW5saW5lVGV4dEJveCAh
PSAmbGF5b3V0Qm94KSB7CisgICAgICAgICAgICAgICAgY29udGVudE9mZnNldE1hcC5zZXQoJmxh
eW91dEJveCwgcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIubGVuZ3RoKCkpOworICAgICAgICAgICAg
ICAgIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmFwcGVuZChkb3duY2FzdDxJbmxpbmVUZXh0Qm94
PihsYXlvdXRCb3gpLmNvbnRlbnQoKSk7CisgICAgICAgICAgICAgICAgbGFzdElubGluZVRleHRC
b3ggPSAmbGF5b3V0Qm94OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKGlubGlu
ZUl0ZW0uaXNCb3goKSkKKyAgICAgICAgICAgIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmFwcGVu
ZChvYmplY3RSZXBsYWNlbWVudENoYXJhY3Rlcik7CisgICAgICAgIGVsc2UgaWYgKGlubGluZUl0
ZW0uaXNJbmxpbmVCb3hTdGFydCgpIHx8IGlubGluZUl0ZW0uaXNJbmxpbmVCb3hFbmQoKSkgewor
ICAgICAgICAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy13cml0aW5nLW1vZGVz
LyN1bmljb2RlLWJpZGkKKyAgICAgICAgICAgIGF1dG8mIHN0eWxlID0gaW5saW5lSXRlbS5zdHls
ZSgpOworICAgICAgICAgICAgYXV0byBpbml0aWF0ZXNDb250cm9sQ2hhcmFjdGVyID0gc3R5bGUu
cnRsT3JkZXJpbmcoKSA9PSBPcmRlcjo6TG9naWNhbCAmJiBzdHlsZS51bmljb2RlQmlkaSgpICE9
IEVVbmljb2RlQmlkaTo6VUJOb3JtYWw7CisgICAgICAgICAgICBpZiAoIWluaXRpYXRlc0NvbnRy
b2xDaGFyYWN0ZXIpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBhdXRv
IGlzRW50ZXJpbmdCaWRpID0gaW5saW5lSXRlbS5pc0lubGluZUJveFN0YXJ0KCk7CisKKyAgICAg
ICAgICAgIGlmIChpc0VudGVyaW5nQmlkaSkKKyAgICAgICAgICAgICAgICBjb250ZW50T2Zmc2V0
TWFwLmFkZCgmbGF5b3V0Qm94LCBwYXJhZ3JhcGhDb250ZW50QnVpbGRlci5sZW5ndGgoKSk7CisK
KyAgICAgICAgICAgIHN3aXRjaCAoc3R5bGUudW5pY29kZUJpZGkoKSkgeworICAgICAgICAgICAg
Y2FzZSBFVW5pY29kZUJpZGk6OlVCTm9ybWFsOgorICAgICAgICAgICAgICAgIC8vIFRoZSBib3gg
ZG9lcyBub3Qgb3BlbiBhbiBhZGRpdGlvbmFsIGxldmVsIG9mIGVtYmVkZGluZyB3aXRoIHJlc3Bl
Y3QgdG8gdGhlIGJpZGlyZWN0aW9uYWwgYWxnb3JpdGhtLgorICAgICAgICAgICAgICAgIC8vIEZv
ciBpbmxpbmUgYm94ZXMsIGltcGxpY2l0IHJlb3JkZXJpbmcgd29ya3MgYWNyb3NzIGJveCBib3Vu
ZGFyaWVzLgorICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBFVW5pY29kZUJpZGk6OkVtYmVkOgorICAg
ICAgICAgICAgICAgIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmFwcGVuZChpc0VudGVyaW5nQmlk
aSA/IChzdHlsZS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBsZWZ0VG9SaWdodEVtYmVkIDog
cmlnaHRUb0xlZnRFbWJlZCkgOiBwb3BEaXJlY3Rpb25hbEZvcm1hdHRpbmcpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBFVW5pY29kZUJpZGk6Ok92ZXJyaWRlOgor
ICAgICAgICAgICAgICAgIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmFwcGVuZChpc0VudGVyaW5n
QmlkaSA/IChzdHlsZS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBsZWZ0VG9SaWdodE92ZXJy
aWRlIDogcmlnaHRUb0xlZnRPdmVycmlkZSkgOiBwb3BEaXJlY3Rpb25hbEZvcm1hdHRpbmcpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBFVW5pY29kZUJpZGk6Oklz
b2xhdGU6CisgICAgICAgICAgICAgICAgcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIuYXBwZW5kKGlz
RW50ZXJpbmdCaWRpID8gKHN0eWxlLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IGxlZnRUb1Jp
Z2h0SXNvbGF0ZSA6IHJpZ2h0VG9MZWZ0SXNvbGF0ZSkgOiBwb3BEaXJlY3Rpb25hbElzb2xhdGUp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBFVW5pY29kZUJpZGk6
OlBsYWludGV4dDoKKyAgICAgICAgICAgICAgICBwYXJhZ3JhcGhDb250ZW50QnVpbGRlci5hcHBl
bmQoaXNFbnRlcmluZ0JpZGkgPyBmaXJzdFN0cm9uZ0lzb2xhdGUgOiBwb3BEaXJlY3Rpb25hbElz
b2xhdGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBFVW5pY29k
ZUJpZGk6Oklzb2xhdGVPdmVycmlkZToKKyAgICAgICAgICAgICAgICBpZiAoaXNFbnRlcmluZ0Jp
ZGkpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIuYXBwZW5k
KGZpcnN0U3Ryb25nSXNvbGF0ZSk7CisgICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaENvbnRl
bnRCdWlsZGVyLmFwcGVuZChzdHlsZS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBsZWZ0VG9S
aWdodE92ZXJyaWRlIDogcmlnaHRUb0xlZnRPdmVycmlkZSk7CisgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIuYXBwZW5k
KHBvcERpcmVjdGlvbmFsRm9ybWF0dGluZyk7CisgICAgICAgICAgICAgICAgICAgIHBhcmFncmFw
aENvbnRlbnRCdWlsZGVyLmFwcGVuZChwb3BEaXJlY3Rpb25hbElzb2xhdGUpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgQVNTRVJUX05PVF9JTVBMRU1FTlRFRF9ZRVQoKTsKKyAg
ICB9Cit9CisKIHZvaWQgSW5saW5lSXRlbXNCdWlsZGVyOjpicmVha0FuZENvbXB1dGVCaWRpTGV2
ZWxzKElubGluZUl0ZW1zJiBpbmxpbmVJdGVtcykKIHsKLSAgICBpZiAoIWhhc1NlZW5CaWRpQ29u
dGVudCgpKQotICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKGhhc1NlZW5CaWRpQ29udGVudCgp
KTsKICAgICBBU1NFUlQoIWlubGluZUl0ZW1zLmlzRW1wdHkoKSk7CiAKKyAgICBTdHJpbmdCdWls
ZGVyIHBhcmFncmFwaENvbnRlbnRCdWlsZGVyOworICAgIENvbnRlbnRPZmZzZXRNYXAgY29udGVu
dE9mZnNldE1hcDsKKyAgICBidWlsZEJpZGlQYXJhZ3JhcGgoaW5saW5lSXRlbXMsIHBhcmFncmFw
aENvbnRlbnRCdWlsZGVyLCBjb250ZW50T2Zmc2V0TWFwKTsKKwogICAgIC8vIDEuIFNldHVwIHRo
ZSBiaWRpIGJvdW5kYXJ5IGxvb3AgYnkgY2FsbGluZyB1YmlkaV9zZXRQYXJhIHdpdGggdGhlIHBh
cmFncmFwaCB0ZXh0LgogICAgIC8vIDIuIENhbGwgdWJpZGlfZ2V0TG9naWNhbFJ1biB0byBhZHZh
bmNlIHRvIHRoZSBuZXh0IGJpZGkgYm91bmRhcnkgdW50aWwgd2UgaGl0IHRoZSBlbmQgb2YgdGhl
IGNvbnRlbnQuCiAgICAgLy8gMy4gU2V0IHRoZSBjb21wdXRlZCBiaWRpIGxldmVsIG9uIHRoZSBh
c3NvY2lhdGVkIGlubGluZSBpdGVtcy4gU3BsaXQgdGhlbSBhcyBuZWVkZWQuCkBAIC0xNTksMTQg
KzIyNCwxNSBAQCB2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6YnJlYWtBbmRDb21wdXRlQmlkaUxl
dmVscyhJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMpCiAgICAgICAgIGJpZGlMZXZlbCA9IHJvb3Qo
KS5zdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IFVCSURJX0xUUiA6IFVCSURJX1JU
TDsKIAogICAgIFVFcnJvckNvZGUgZXJyb3IgPSBVX1pFUk9fRVJST1I7Ci0gICAgdWJpZGlfc2V0
UGFyYSh1YmlkaSwgbV9wYXJhZ3JhcGhDb250ZW50QnVpbGRlci5jaGFyYWN0ZXJzMTYoKSwgbV9w
YXJhZ3JhcGhDb250ZW50QnVpbGRlci5sZW5ndGgoKSwgYmlkaUxldmVsLCBudWxscHRyLCAmZXJy
b3IpOworICAgIEFTU0VSVCghcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIuaXNFbXB0eSgpKTsKKyAg
ICB1YmlkaV9zZXRQYXJhKHViaWRpLCBwYXJhZ3JhcGhDb250ZW50QnVpbGRlci5jaGFyYWN0ZXJz
MTYoKSwgcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIubGVuZ3RoKCksIGJpZGlMZXZlbCwgbnVsbHB0
ciwgJmVycm9yKTsKICAgICBpZiAoVV9GQUlMVVJFKGVycm9yKSkgewogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIHNpemVfdCBjdXJy
ZW50SW5saW5lSXRlbUluZGV4ID0gMDsKLSAgICBmb3IgKHNpemVfdCBjdXJyZW50UG9zaXRpb24g
PSAwOyBjdXJyZW50UG9zaXRpb24gPCBtX3BhcmFncmFwaENvbnRlbnRCdWlsZGVyLmxlbmd0aCgp
OykgeworICAgIGZvciAoc2l6ZV90IGN1cnJlbnRQb3NpdGlvbiA9IDA7IGN1cnJlbnRQb3NpdGlv
biA8IHBhcmFncmFwaENvbnRlbnRCdWlsZGVyLmxlbmd0aCgpOykgewogICAgICAgICBVQmlEaUxl
dmVsIGxldmVsOwogICAgICAgICBpbnQzMl90IGVuZFBvc2l0aW9uID0gY3VycmVudFBvc2l0aW9u
OwogICAgICAgICB1YmlkaV9nZXRMb2dpY2FsUnVuKHViaWRpLCBjdXJyZW50UG9zaXRpb24sICZl
bmRQb3NpdGlvbiwgJmxldmVsKTsKQEAgLTE4OCw3ICsyNTQsNyBAQCB2b2lkIElubGluZUl0ZW1z
QnVpbGRlcjo6YnJlYWtBbmRDb21wdXRlQmlkaUxldmVscyhJbmxpbmVJdGVtcyYgaW5saW5lSXRl
bXMpCiAgICAgICAgICAgICAgICAgaW5saW5lVGV4dEl0ZW0uc2V0QmlkaUxldmVsKGxldmVsKTsK
IAogICAgICAgICAgICAgICAgIGF1dG8gaW5saW5lVGV4dEl0ZW1FbmQgPSBpbmxpbmVUZXh0SXRl
bS5lbmQoKTsKLSAgICAgICAgICAgICAgICBhdXRvIGJpZGlFbmQgPSBlbmRQb3NpdGlvbiAtIG1f
Y29udGVudE9mZnNldE1hcC5nZXQoJmlubGluZVRleHRJdGVtLmxheW91dEJveCgpKTsKKyAgICAg
ICAgICAgICAgICBhdXRvIGJpZGlFbmQgPSBlbmRQb3NpdGlvbiAtIGNvbnRlbnRPZmZzZXRNYXAu
Z2V0KCZpbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSk7CiAgICAgICAgICAgICAgICAgaWYgKGJp
ZGlFbmQgPT0gaW5saW5lVGV4dEl0ZW1FbmQpIHsKICAgICAgICAgICAgICAgICAgICAgKytjdXJy
ZW50SW5saW5lSXRlbUluZGV4OwogICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTIzNiwx
MSArMzAyLDYgQEAgdm9pZCBJbmxpbmVJdGVtc0J1aWxkZXI6OmhhbmRsZVRleHRDb250ZW50KGNv
bnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gsIEkKICAgICAgICAgcmV0dXJuIFRleHRV
dGlsOjp3aWR0aChpbmxpbmVUZXh0Qm94LCBmb250Q2FzY2FkZSwgc3RhcnRQb3NpdGlvbiwgc3Rh
cnRQb3NpdGlvbiArIGxlbmd0aCwgeyB9KTsKICAgICB9OwogCi0gICAgaWYgKGhhc1NlZW5CaWRp
Q29udGVudCgpKSB7Ci0gICAgICAgIG1fY29udGVudE9mZnNldE1hcC5zZXQoJmlubGluZVRleHRC
b3gsIG1fcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIubGVuZ3RoKCkpOwotICAgICAgICBtX3BhcmFn
cmFwaENvbnRlbnRCdWlsZGVyLmFwcGVuZCh0ZXh0KTsKLSAgICB9Ci0KICAgICB3aGlsZSAoY3Vy
cmVudFBvc2l0aW9uIDwgY29udGVudExlbmd0aCkgewogICAgICAgICBhdXRvIGhhbmRsZVNlZ21l
bnRCcmVhayA9IFsmXSB7CiAgICAgICAgICAgICAvLyBTZWdtZW50IGJyZWFrcyB3aXRoIHByZXNl
cnZlIG5ldyBsaW5lIHN0eWxlICh3aGl0ZS1zcGFjZTogcHJlLCBwcmUtd3JhcCwgYnJlYWstc3Bh
Y2VzIGFuZCBwcmUtbGluZSkgY29tcHV0ZSB0byBmb3JjZWQgbGluZSBicmVhay4KQEAgLTMwOCwx
OCArMzY5LDE1IEBAIHZvaWQgSW5saW5lSXRlbXNCdWlsZGVyOjpoYW5kbGVUZXh0Q29udGVudChj
b25zdCBJbmxpbmVUZXh0Qm94JiBpbmxpbmVUZXh0Qm94LCBJCiAgICAgICAgICAgICAgICAgVTE2
X05FWFQodGV4dC5jaGFyYWN0ZXJzMTYoKSwgcG9zaXRpb24sIGNvbnRlbnRMZW5ndGgsIGNoYXJh
Y3Rlcik7CiAKICAgICAgICAgICAgICAgICBhdXRvIGJpZGlDYXRlZ29yeSA9IHVfY2hhckRpcmVj
dGlvbihjaGFyYWN0ZXIpOwotICAgICAgICAgICAgICAgIGF1dG8gbmVlZHNCaWRpID0gYmlkaUNh
dGVnb3J5ID09IFVfUklHSFRfVE9fTEVGVAorICAgICAgICAgICAgICAgIG1faGFzU2VlbkJpZGlD
b250ZW50ID0gYmlkaUNhdGVnb3J5ID09IFVfUklHSFRfVE9fTEVGVAogICAgICAgICAgICAgICAg
ICAgICB8fCBiaWRpQ2F0ZWdvcnkgPT0gVV9SSUdIVF9UT19MRUZUX0FSQUJJQwogICAgICAgICAg
ICAgICAgICAgICB8fCBiaWRpQ2F0ZWdvcnkgPT0gVV9SSUdIVF9UT19MRUZUX0VNQkVERElORwog
ICAgICAgICAgICAgICAgICAgICB8fCBiaWRpQ2F0ZWdvcnkgPT0gVV9SSUdIVF9UT19MRUZUX09W
RVJSSURFCiAgICAgICAgICAgICAgICAgICAgIHx8IGJpZGlDYXRlZ29yeSA9PSBVX0xFRlRfVE9f
UklHSFRfRU1CRURESU5HCiAgICAgICAgICAgICAgICAgICAgIHx8IGJpZGlDYXRlZ29yeSA9PSBV
X0xFRlRfVE9fUklHSFRfT1ZFUlJJREUKICAgICAgICAgICAgICAgICAgICAgfHwgYmlkaUNhdGVn
b3J5ID09IFVfUE9QX0RJUkVDVElPTkFMX0ZPUk1BVDsKLSAgICAgICAgICAgICAgICBpZiAobmVl
ZHNCaWRpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJ1aWxkUHJldmlvdXNUZXh0Q29udGVudChp
bmxpbmVJdGVtcyk7Ci0gICAgICAgICAgICAgICAgICAgIC8vIGJ1aWxkUHJldmlvdXNUZXh0Q29u
dGVudCB0YWtlcyBjYXJlIG9mIHRoaXMgY29udGVudCB0b28gYXMgc29tZSBpbmxpbmUgaXRlbXMg
aGF2ZSBhbHJlYWR5IGJlZW4gY29uc3RydWN0ZWQgZm9yIHRoaXMgdGV4dC4KKyAgICAgICAgICAg
ICAgICBpZiAobV9oYXNTZWVuQmlkaUNvbnRlbnQpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICNlbmRpZgogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CkBAIC0zMzQsMTI1ICszOTIsMjggQEAgdm9pZCBJbmxpbmVJdGVtc0J1aWxk
ZXI6OmhhbmRsZVRleHRDb250ZW50KGNvbnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gs
IEkKIHZvaWQgSW5saW5lSXRlbXNCdWlsZGVyOjpoYW5kbGVJbmxpbmVCb3hTdGFydChjb25zdCBC
b3gmIGlubGluZUJveCwgSW5saW5lSXRlbXMmIGlubGluZUl0ZW1zKQogewogICAgIGlubGluZUl0
ZW1zLmFwcGVuZCh7IGlubGluZUJveCwgSW5saW5lSXRlbTo6VHlwZTo6SW5saW5lQm94U3RhcnQg
fSk7Ci0gICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy13cml0aW5nLW1vZGVzLyN1
bmljb2RlLWJpZGkKICAgICBhdXRvJiBzdHlsZSA9IGlubGluZUJveC5zdHlsZSgpOwotICAgIGlm
IChzdHlsZS5ydGxPcmRlcmluZygpID09IE9yZGVyOjpWaXN1YWwpCi0gICAgICAgIHJldHVybjsK
LQotICAgIGF1dG8gaXNMZWZ0VG9SaWdodERpcmVjdGlvbiA9IHN0eWxlLmlzTGVmdFRvUmlnaHRE
aXJlY3Rpb24oKTsKLSAgICBzd2l0Y2ggKHN0eWxlLnVuaWNvZGVCaWRpKCkpIHsKLSAgICBjYXNl
IEVVbmljb2RlQmlkaTo6VUJOb3JtYWw6Ci0gICAgICAgIC8vIFRoZSBib3ggZG9lcyBub3Qgb3Bl
biBhbiBhZGRpdGlvbmFsIGxldmVsIG9mIGVtYmVkZGluZyB3aXRoIHJlc3BlY3QgdG8gdGhlIGJp
ZGlyZWN0aW9uYWwgYWxnb3JpdGhtLgotICAgICAgICAvLyBGb3IgaW5saW5lIGJveGVzLCBpbXBs
aWNpdCByZW9yZGVyaW5nIHdvcmtzIGFjcm9zcyBib3ggYm91bmRhcmllcy4KLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBFVW5pY29kZUJpZGk6OkVtYmVkOgotICAgICAgICBlbnRlckJpZGlDb250
ZXh0KGlubGluZUJveCwgaXNMZWZ0VG9SaWdodERpcmVjdGlvbiA/IGxlZnRUb1JpZ2h0RW1iZWQg
OiByaWdodFRvTGVmdEVtYmVkLCBpbmxpbmVJdGVtcyk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgRVVuaWNvZGVCaWRpOjpPdmVycmlkZToKLSAgICAgICAgZW50ZXJCaWRpQ29udGV4dChpbmxp
bmVCb3gsIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24gPyBsZWZ0VG9SaWdodE92ZXJyaWRlIDogcmln
aHRUb0xlZnRPdmVycmlkZSwgaW5saW5lSXRlbXMpOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEVVbmljb2RlQmlkaTo6SXNvbGF0ZToKLSAgICAgICAgZW50ZXJCaWRpQ29udGV4dChpbmxpbmVC
b3gsIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24gPyBsZWZ0VG9SaWdodElzb2xhdGUgOiByaWdodFRv
TGVmdElzb2xhdGUsIGlubGluZUl0ZW1zKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBFVW5p
Y29kZUJpZGk6OlBsYWludGV4dDoKLSAgICAgICAgZW50ZXJCaWRpQ29udGV4dChpbmxpbmVCb3gs
IGZpcnN0U3Ryb25nSXNvbGF0ZSwgaW5saW5lSXRlbXMpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIEVVbmljb2RlQmlkaTo6SXNvbGF0ZU92ZXJyaWRlOgotICAgICAgICBlbnRlckJpZGlDb250
ZXh0KGlubGluZUJveCwgZmlyc3RTdHJvbmdJc29sYXRlLCBpbmxpbmVJdGVtcyk7Ci0gICAgICAg
IGVudGVyQmlkaUNvbnRleHQoaW5saW5lQm94LCBpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uID8gbGVm
dFRvUmlnaHRPdmVycmlkZSA6IHJpZ2h0VG9MZWZ0T3ZlcnJpZGUsIGlubGluZUl0ZW1zKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgfQorICAgIG1faGFzU2VlbkJpZGlDb250ZW50ID0gbV9oYXNTZWVuQmlkaUNvbnRlbnQg
fHwgKHN0eWxlLnJ0bE9yZGVyaW5nKCkgPT0gT3JkZXI6OkxvZ2ljYWwgJiYgc3R5bGUudW5pY29k
ZUJpZGkoKSAhPSBFVW5pY29kZUJpZGk6OlVCTm9ybWFsKTsgCiB9CiAKIHZvaWQgSW5saW5lSXRl
bXNCdWlsZGVyOjpoYW5kbGVJbmxpbmVCb3hFbmQoY29uc3QgQm94JiBpbmxpbmVCb3gsIElubGlu
ZUl0ZW1zJiBpbmxpbmVJdGVtcykKIHsKICAgICBpbmxpbmVJdGVtcy5hcHBlbmQoeyBpbmxpbmVC
b3gsIElubGluZUl0ZW06OlR5cGU6OklubGluZUJveEVuZCB9KTsKLSAgICAvLyBodHRwczovL2Ry
YWZ0cy5jc3N3Zy5vcmcvY3NzLXdyaXRpbmctbW9kZXMvI3VuaWNvZGUtYmlkaQotICAgIGF1dG8m
IHN0eWxlID0gaW5saW5lQm94LnN0eWxlKCk7Ci0gICAgaWYgKHN0eWxlLnJ0bE9yZGVyaW5nKCkg
PT0gT3JkZXI6OlZpc3VhbCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc3dpdGNoIChzdHlsZS51
bmljb2RlQmlkaSgpKSB7Ci0gICAgY2FzZSBFVW5pY29kZUJpZGk6OlVCTm9ybWFsOgotICAgICAg
ICAvLyBUaGUgYm94IGRvZXMgbm90IG9wZW4gYW4gYWRkaXRpb25hbCBsZXZlbCBvZiBlbWJlZGRp
bmcgd2l0aCByZXNwZWN0IHRvIHRoZSBiaWRpcmVjdGlvbmFsIGFsZ29yaXRobS4KLSAgICAgICAg
Ly8gRm9yIGlubGluZSBib3hlcywgaW1wbGljaXQgcmVvcmRlcmluZyB3b3JrcyBhY3Jvc3MgYm94
IGJvdW5kYXJpZXMuCi0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRVVuaWNvZGVCaWRpOjpFbWJl
ZDoKLSAgICAgICAgZXhpdEJpZGlDb250ZXh0KGlubGluZUJveCwgcG9wRGlyZWN0aW9uYWxGb3Jt
YXR0aW5nKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBFVW5pY29kZUJpZGk6Ok92ZXJyaWRl
OgotICAgICAgICBleGl0QmlkaUNvbnRleHQoaW5saW5lQm94LCBwb3BEaXJlY3Rpb25hbEZvcm1h
dHRpbmcpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEVVbmljb2RlQmlkaTo6SXNvbGF0ZToK
LSAgICAgICAgZXhpdEJpZGlDb250ZXh0KGlubGluZUJveCwgcG9wRGlyZWN0aW9uYWxJc29sYXRl
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBFVW5pY29kZUJpZGk6OlBsYWludGV4dDoKLSAg
ICAgICAgZXhpdEJpZGlDb250ZXh0KGlubGluZUJveCwgcG9wRGlyZWN0aW9uYWxJc29sYXRlKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBFVW5pY29kZUJpZGk6Oklzb2xhdGVPdmVycmlkZToK
LSAgICAgICAgZXhpdEJpZGlDb250ZXh0KGlubGluZUJveCwgcG9wRGlyZWN0aW9uYWxGb3JtYXR0
aW5nKTsKLSAgICAgICAgZXhpdEJpZGlDb250ZXh0KGlubGluZUJveCwgcG9wRGlyZWN0aW9uYWxJ
c29sYXRlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgfQorICAgIC8vIElubGluZSBib3ggZW5kIGl0ZW0gaXRzZWxmIGNh
biBub3QgdHJpZ2dlciBiaWRpIGNvbnRlbnQuCisgICAgQVNTRVJUKGhhc1NlZW5CaWRpQ29udGVu
dCgpIHx8IGlubGluZUJveC5zdHlsZSgpLnJ0bE9yZGVyaW5nKCkgPT0gT3JkZXI6OlZpc3VhbCB8
fCBpbmxpbmVCb3guc3R5bGUoKS51bmljb2RlQmlkaSgpID09IEVVbmljb2RlQmlkaTo6VUJOb3Jt
YWwpOwogfQogCiB2b2lkIElubGluZUl0ZW1zQnVpbGRlcjo6aGFuZGxlSW5saW5lTGV2ZWxCb3go
Y29uc3QgQm94JiBsYXlvdXRCb3gsIElubGluZUl0ZW1zJiBpbmxpbmVJdGVtcykKIHsKLSAgICBp
ZiAobGF5b3V0Qm94LmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSkgewotICAgICAgICBpbmxpbmVJ
dGVtcy5hcHBlbmQoeyBsYXlvdXRCb3gsIElubGluZUl0ZW06OlR5cGU6OkJveCB9KTsKLSAgICAg
ICAgaWYgKGhhc1NlZW5CaWRpQ29udGVudCgpKQotICAgICAgICAgICAgbV9wYXJhZ3JhcGhDb250
ZW50QnVpbGRlci5hcHBlbmQob2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQorICAgIGlmIChsYXlvdXRCb3guaXNBdG9taWNJbmxpbmVMZXZlbEJveCgp
KQorICAgICAgICByZXR1cm4gaW5saW5lSXRlbXMuYXBwZW5kKHsgbGF5b3V0Qm94LCBJbmxpbmVJ
dGVtOjpUeXBlOjpCb3ggfSk7CiAKLSAgICBpZiAobGF5b3V0Qm94LmlzTGluZUJyZWFrQm94KCkp
IHsKLSAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCAoaWYgYW55KSBjaGFyYWN0ZXIg
dG8gYXBwZW5kIHRvIHRoZSBiaWRpIHBhcmFncmFwaC4KKyAgICBpZiAobGF5b3V0Qm94LmlzTGlu
ZUJyZWFrQm94KCkpCiAgICAgICAgIHJldHVybiBpbmxpbmVJdGVtcy5hcHBlbmQoeyBsYXlvdXRC
b3gsIGRvd25jYXN0PExpbmVCcmVha0JveD4obGF5b3V0Qm94KS5pc09wdGlvbmFsKCkgPyBJbmxp
bmVJdGVtOjpUeXBlOjpXb3JkQnJlYWtPcHBvcnR1bml0eSA6IElubGluZUl0ZW06OlR5cGU6Okhh
cmRMaW5lQnJlYWsgfSk7Ci0gICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAK
LXZvaWQgSW5saW5lSXRlbXNCdWlsZGVyOjplbnRlckJpZGlDb250ZXh0KGNvbnN0IEJveCYgYm94
LCBVQ2hhciBjb250cm9sQ2hhcmFjdGVyLCBjb25zdCBJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMp
Ci17Ci0gICAgaWYgKCFoYXNTZWVuQmlkaUNvbnRlbnQoKSkKLSAgICAgICAgYnVpbGRQcmV2aW91
c1RleHRDb250ZW50KGlubGluZUl0ZW1zKTsKLSAgICAvLyBMZXQgdGhlIGZpcnN0IGNvbnRyb2wg
Y2hhcmFjdGVyIHJlcHJlc2VudCB0aGUgIGJveC4KLSAgICBtX2NvbnRlbnRPZmZzZXRNYXAuYWRk
KCZib3gsIG1fcGFyYWdyYXBoQ29udGVudEJ1aWxkZXIubGVuZ3RoKCkpOwotICAgIG1fcGFyYWdy
YXBoQ29udGVudEJ1aWxkZXIuYXBwZW5kKGNvbnRyb2xDaGFyYWN0ZXIpOwotfQotCi12b2lkIElu
bGluZUl0ZW1zQnVpbGRlcjo6ZXhpdEJpZGlDb250ZXh0KGNvbnN0IEJveCYsIFVDaGFyIGNvbnRy
b2xDaGFyYWN0ZXIpCi17Ci0gICAgQVNTRVJUKGhhc1NlZW5CaWRpQ29udGVudCgpKTsKLSAgICBt
X3BhcmFncmFwaENvbnRlbnRCdWlsZGVyLmFwcGVuZChjb250cm9sQ2hhcmFjdGVyKTsKLX0KLQot
dm9pZCBJbmxpbmVJdGVtc0J1aWxkZXI6OmJ1aWxkUHJldmlvdXNUZXh0Q29udGVudChjb25zdCBJ
bmxpbmVJdGVtcyYgaW5saW5lSXRlbXMpCi17Ci0gICAgQVNTRVJUKCFoYXNTZWVuQmlkaUNvbnRl
bnQoKSk7Ci0gICAgQVNTRVJUKG1fY29udGVudE9mZnNldE1hcC5pc0VtcHR5KCkpOwotCi0gICAg
Y29uc3QgQm94KiBsYXN0SW5saW5lVGV4dEJveCA9IG51bGxwdHI7Ci0gICAgZm9yIChhdXRvJiBp
bmxpbmVJdGVtIDogaW5saW5lSXRlbXMpIHsKLSAgICAgICAgaWYgKGlubGluZUl0ZW0uaXNUZXh0
KCkpIHsKLSAgICAgICAgICAgIGF1dG8mIGxheW91dEJveCA9IGlubGluZUl0ZW0ubGF5b3V0Qm94
KCk7Ci0gICAgICAgICAgICBpZiAobGFzdElubGluZVRleHRCb3ggIT0gJmxheW91dEJveCkgewot
ICAgICAgICAgICAgICAgIG1fY29udGVudE9mZnNldE1hcC5zZXQoJmxheW91dEJveCwgbV9wYXJh
Z3JhcGhDb250ZW50QnVpbGRlci5sZW5ndGgoKSk7Ci0gICAgICAgICAgICAgICAgbV9wYXJhZ3Jh
cGhDb250ZW50QnVpbGRlci5hcHBlbmQoZG93bmNhc3Q8SW5saW5lVGV4dEJveD4obGF5b3V0Qm94
KS5jb250ZW50KCkpOwotICAgICAgICAgICAgICAgIGxhc3RJbmxpbmVUZXh0Qm94ID0gJmxheW91
dEJveDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChpbmxpbmVJdGVtLmlzQm94
KCkpCi0gICAgICAgICAgICBtX3BhcmFncmFwaENvbnRlbnRCdWlsZGVyLmFwcGVuZChvYmplY3RS
ZXBsYWNlbWVudENoYXJhY3Rlcik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEFTU0VSVF9O
T1RfSU1QTEVNRU5URURfWUVUKCk7Ci0gICAgfQotfQotCiB9CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW1z
QnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lSXRlbXNCdWlsZGVyLmgKaW5kZXggYTY0NGExNjJkYjIzMTQ2YTMyNTUyYzBjZGVk
YWU3MWRlYzgxNDkyMi4uMDZjZjRjNzBjMTcxOTA3ODJiNmM1M2ZmYzY2YTE1YTQ2MDg4NmQ3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lSXRlbXNCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbXNCdWlsZGVyLmgKQEAgLTQ5LDIyICs0OSwx
NCBAQCBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxlSW5saW5lQm94RW5kKGNvbnN0IEJveCYsIElu
bGluZUl0ZW1zJik7CiAgICAgdm9pZCBoYW5kbGVJbmxpbmVMZXZlbEJveChjb25zdCBCb3gmLCBJ
bmxpbmVJdGVtcyYpOwogICAgIAotICAgIHZvaWQgZW50ZXJCaWRpQ29udGV4dChjb25zdCBCb3gm
LCBVQ2hhciwgY29uc3QgSW5saW5lSXRlbXMmKTsKLSAgICB2b2lkIGV4aXRCaWRpQ29udGV4dChj
b25zdCBCb3gmLCBVQ2hhcik7Ci0KLSAgICB2b2lkIGJ1aWxkUHJldmlvdXNUZXh0Q29udGVudChj
b25zdCBJbmxpbmVJdGVtcyYpOwotCi0gICAgYm9vbCBoYXNTZWVuQmlkaUNvbnRlbnQoKSBjb25z
dCB7IHJldHVybiAhbV9wYXJhZ3JhcGhDb250ZW50QnVpbGRlci5pc0VtcHR5KCk7IH0KKyAgICBi
b29sIGhhc1NlZW5CaWRpQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzU2VlbkJpZGlDb250
ZW50OyB9CiAKICAgICBjb25zdCBDb250YWluZXJCb3gmIHJvb3QoKSBjb25zdCB7IHJldHVybiBt
X3Jvb3Q7IH0KIAogICAgIGNvbnN0IENvbnRhaW5lckJveCYgbV9yb290OwogICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgbm90IG5lZWQgdGhpcyBoZXJlLiBUaGlzIGlzIG9ubHkgcmVxdWlyZWQgYnkg
dGhlIG91dCBvZiBmbG93IGJveGVzLgogICAgIElubGluZUZvcm1hdHRpbmdTdGF0ZSYgbV9mb3Jt
YXR0aW5nU3RhdGU7Ci0KLSAgICBTdHJpbmdCdWlsZGVyIG1fcGFyYWdyYXBoQ29udGVudEJ1aWxk
ZXI7Ci0gICAgLy8gS2VlcCB0cmFjayBvZiB3aGVyZSBlYWNoIGxheW91dCBib3ggc3RhcnRzIGlu
IHRoZSBwYXJhZ3JhcGggY29udGVudC4KLSAgICBIYXNoTWFwPGNvbnN0IEJveCosIHNpemVfdD4g
bV9jb250ZW50T2Zmc2V0TWFwOworICAgIGJvb2wgbV9oYXNTZWVuQmlkaUNvbnRlbnQgeyBmYWxz
ZSB9OwogfTsKIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>