<?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>261604</bug_id>
          
          <creation_ts>2023-09-15 07:50:23 -0700</creation_ts>
          <short_desc>[IFC][Cleanup] Move LineBuilder::handleInlineContent&apos;s toLineBuilderResult lambda to a dedicated function</short_desc>
          <delta_ts>2023-09-15 14:58:20 -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>1977677</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2023-09-15 07:50:23 -0700</bug_when>
    <thetext>LineBuilder::handleInlineContent is getting too large</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1977679</commentid>
    <comment_count>1</comment_count>
      <attachid>467684</attachid>
    <who name="alan">zalan</who>
    <bug_when>2023-09-15 08:01:10 -0700</bug_when>
    <thetext>Created attachment 467684
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1977768</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-09-15 14:57:14 -0700</bug_when>
    <thetext>Committed 268040@main (ce0ae26676c5): &lt;https://commits.webkit.org/268040@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 467684.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1977769</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-09-15 14:58:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/115574230&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>467684</attachid>
            <date>2023-09-15 08:01:10 -0700</date>
            <delta_ts>2023-09-15 14:57:15 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-261604-20230915080109.patch</filename>
            <type>text/plain</type>
            <size>18392</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA1ZmU2NTU3NzY3MWJiZWRmNjAyYTA0NDBhYmJkYzFhY2JhZmFkMzU0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMTUgU2VwIDIwMjMgMDc6NTA6MzcgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXVtD
bGVhbnVwXSBNb3ZlIExpbmVCdWlsZGVyOjpoYW5kbGVJbmxpbmVDb250ZW50J3MKIHRvTGluZUJ1
aWxkZXJSZXN1bHQgbGFtYmRhIHRvIGEgZGVkaWNhdGVkIGZ1bmN0aW9uCiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYxNjA0CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KCkxpbmVCdWlsZGVyOjpoYW5kbGVJbmxpbmVDb250ZW50IGlzIGFscmVhZHkgdmVyYm9z
ZSBhbmQgdGhpcyBpcyB3aGVyZSBSdWJ5IGhhbmRsaW5nIGlzIGdvaW5nIHRvIGdvLgoKKiBTb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVp
bGRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjpoYW5kbGVJbmxpbmVDb250
ZW50KToKKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OnByb2Nlc3NMaW5lQnJlYWtpbmdS
ZXN1bHQpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUxpbmVCdWlsZGVyLmg6Ci0tLQogLi4uL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5j
cHAgICAgICAgICAgICAgIHwgMTk0ICsrKysrKysrKy0tLS0tLS0tLQogLi4uL2lubGluZS9Jbmxp
bmVMaW5lQnVpbGRlci5oICAgICAgICAgICAgICAgIHwgICAxICsKIDIgZmlsZXMgY2hhbmdlZCwg
MTAwIGluc2VydGlvbnMoKyksIDk1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUxpbmVCdWlsZGVyLmNwcAppbmRleCA1ZWFiNzBlNDlkYzMuLmEwZmM4YjFiZTc0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGluZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcApAQCAtOTYzLDEwMSArOTYz
LDE1IEBAIExpbmVCdWlsZGVyOjpSZXN1bHQgTGluZUJ1aWxkZXI6OmhhbmRsZUlubGluZUNvbnRl
bnQoY29uc3QgSW5saW5lSXRlbVJhbmdlJiBsYXlvCiAgICAgYXV0byB1c2VkQ29uc3RyYWludHMg
PSBhZGp1c3RlZExpbmVSZWN0V2l0aENhbmRpZGF0ZUlubGluZUNvbnRlbnQobGluZUNhbmRpZGF0
ZSk7CiAgICAgLy8gTm90ZSB0aGF0IGFkanVzdGVkIGxpbmUgaGVpZ2h0IG5ldmVyIHNocmlua3Mu
CiAgICAgbV9jYW5kaWRhdGVJbmxpbmVDb250ZW50RW5jbG9zaW5nSGVpZ2h0ID0gdXNlZENvbnN0
cmFpbnRzLmxvZ2ljYWxSZWN0LmhlaWdodCgpOwotICAgIGF1dG8gdG9MaW5lQnVpbGRlclJlc3Vs
dCA9IFsmXShhdXRvJiBsaW5lQnJlYWtpbmdSZXN1bHQpIC0+IExpbmVCdWlsZGVyOjpSZXN1bHQg
ewotICAgICAgICBhdXRvJiBjYW5kaWRhdGVSdW5zID0gY29udGludW91c0lubGluZUNvbnRlbnQu
cnVucygpOwotICAgIAotICAgICAgICBpZiAobGluZUJyZWFraW5nUmVzdWx0LmFjdGlvbiA9PSBJ
bmxpbmVDb250ZW50QnJlYWtlcjo6UmVzdWx0OjpBY3Rpb246OktlZXApIHsKLSAgICAgICAgICAg
IC8vIFRoaXMgY29udGludW91cyBjb250ZW50IGNhbiBiZSBmdWxseSBwbGFjZWQgb24gdGhlIGN1
cnJlbnQgbGluZS4KLSAgICAgICAgICAgIGZvciAoYXV0byYgcnVuIDogY2FuZGlkYXRlUnVucykK
LSAgICAgICAgICAgICAgICBtX2xpbmUuYXBwZW5kKHJ1bi5pbmxpbmVJdGVtLCBydW4uc3R5bGUs
IHJ1bi5sb2dpY2FsV2lkdGgpOwotICAgICAgICAgICAgLy8gV2UgYXJlIGtlZXBpbmcgdGhpcyBj
b250ZW50IG9uIHRoZSBsaW5lIGJ1dCB3ZSBuZWVkIHRvIGNoZWNrIGlmIHdlIGNvdWxkIGhhdmUg
d3JhcHBlZCBoZXJlCi0gICAgICAgICAgICAvLyBpbiBvcmRlciB0byBiZSBhYmxlIHRvIHJldmVy
dCBiYWNrIHRvIHRoaXMgcG9zaXRpb24gaWYgbmVlZGVkLgotICAgICAgICAgICAgLy8gTGV0J3Mg
anVzdCBpZ25vcmUgY2FzZXMgbGlrZSBjb2xsYXBzZWQgbGVhZGluZyB3aGl0ZXNwYWNlIGZvciBu
b3cuCi0gICAgICAgICAgICBpZiAobGluZUNhbmRpZGF0ZS5pbmxpbmVDb250ZW50Lmhhc1RyYWls
aW5nU29mdFdyYXBPcHBvcnR1bml0eSgpICYmIG1fbGluZS5oYXNDb250ZW50T3JMaXN0TWFya2Vy
KCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvJiB0cmFpbGluZ1J1biA9IGNhbmRpZGF0ZVJ1bnMu
bGFzdCgpOwotICAgICAgICAgICAgICAgIGF1dG8mIHRyYWlsaW5nSW5saW5lSXRlbSA9IHRyYWls
aW5nUnVuLmlubGluZUl0ZW07Ci0KLSAgICAgICAgICAgICAgICAvLyBOb3RlIHRoYXQgd3JhcHBp
bmcgaGVyZSBjb3VsZCBiZSBkcml2ZW4gYm90aCBieSB0aGUgc3R5bGUgb2YgdGhlIHBhcmVudCBh
bmQgdGhlIGlubGluZSBpdGVtIGl0c2VsZi4KLSAgICAgICAgICAgICAgICAvLyBlLmcgaW5saW5l
IGJveGVzIHNldCB0aGUgd3JhcHBpbmcgcnVsZXMgZm9yIHRoZWlyIGNvbnRlbnQgYW5kIG5vdCBm
b3IgdGhlbXNlbHZlcy4KLSAgICAgICAgICAgICAgICBhdXRvJiBsYXlvdXRCb3hQYXJlbnQgPSB0
cmFpbGluZ0lubGluZUl0ZW0ubGF5b3V0Qm94KCkucGFyZW50KCk7Ci0KLSAgICAgICAgICAgICAg
ICAvLyBOZWVkIHRvIGVuc3VyZSB3ZSB1c2UgdGhlIGNvcnJlY3Qgc3R5bGUgaGVyZSwgc28gdGhl
IGNvbnRlbnQgYnJlYWtlciBhbmQgbGluZSBidWlsZGVyIHJlbWFpbiBpbiBzeW5jLgotICAgICAg
ICAgICAgICAgIGF1dG8mIHBhcmVudFN0eWxlID0gaXNGaXJzdEZvcm1hdHRlZExpbmUoKSA/IGxh
eW91dEJveFBhcmVudC5maXJzdExpbmVTdHlsZSgpIDogbGF5b3V0Qm94UGFyZW50LnN0eWxlKCk7
Ci0KLSAgICAgICAgICAgICAgICBhdXRvIGlzV3JhcE9wcG9ydHVuaXR5ID0gVGV4dFV0aWw6Omlz
V3JhcHBpbmdBbGxvd2VkKHBhcmVudFN0eWxlKTsKLSAgICAgICAgICAgICAgICBpZiAoIWlzV3Jh
cE9wcG9ydHVuaXR5ICYmICh0cmFpbGluZ0lubGluZUl0ZW0uaXNJbmxpbmVCb3hTdGFydCgpIHx8
IHRyYWlsaW5nSW5saW5lSXRlbS5pc0lubGluZUJveEVuZCgpKSkKLSAgICAgICAgICAgICAgICAg
ICAgaXNXcmFwT3Bwb3J0dW5pdHkgPSBUZXh0VXRpbDo6aXNXcmFwcGluZ0FsbG93ZWQodHJhaWxp
bmdSdW4uc3R5bGUpOwotICAgICAgICAgICAgICAgIGlmIChpc1dyYXBPcHBvcnR1bml0eSkKLSAg
ICAgICAgICAgICAgICAgICAgbV93cmFwT3Bwb3J0dW5pdHlMaXN0LmFwcGVuZCgmdHJhaWxpbmdJ
bmxpbmVJdGVtKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiB7IGxpbmVCcmVh
a2luZ1Jlc3VsdC5pc0VuZE9mTGluZSwgeyBjYW5kaWRhdGVSdW5zLnNpemUoKSwgZmFsc2UgfSB9
OwotICAgICAgICB9CiAKLSAgICAgICAgaWYgKGxpbmVCcmVha2luZ1Jlc3VsdC5hY3Rpb24gPT0g
SW5saW5lQ29udGVudEJyZWFrZXI6OlJlc3VsdDo6QWN0aW9uOjpXcmFwKSB7Ci0gICAgICAgICAg
ICBBU1NFUlQobGluZUJyZWFraW5nUmVzdWx0LmlzRW5kT2ZMaW5lID09IElubGluZUNvbnRlbnRC
cmVha2VyOjpJc0VuZE9mTGluZTo6WWVzKTsKLSAgICAgICAgICAgIC8vIFRoaXMgY29udGludW91
cyBjb250ZW50IGNhbid0IGJlIHBsYWNlZCBvbiB0aGUgY3VycmVudCBsaW5lLiBOb3RoaW5nIHRv
IGNvbW1pdCBhdCB0aGlzIHRpbWUuCi0gICAgICAgICAgICAvLyBIb3dldmVyIHRoZXJlIGFyZSBj
YXNlcyB3aGVuLCBkdWUgdG8gd2hpdGVzcGFjZSBjb2xsYXBzaW5nLCB0aGlzIG92ZXJmbG93aW5n
IGNvbnRlbnQgc2hvdWxkIG5vdCBiZSBzZXBhcmF0ZWQgZnJvbQotICAgICAgICAgICAgLy8gdGhl
IGNvbnRlbnQgb24gdGhlIGxpbmUuCi0gICAgICAgICAgICAvLyA8ZGl2PlggPHNwYW4+IFg8L3Nw
YW4+PC9kaXY+Ci0gICAgICAgICAgICAvLyBJZiB0aGUgc2Vjb25kICdYJyBvdmVyZmxvd3MgdGhl
IGxpbmUsIHRoZSB0cmFpbGluZyB3aGl0ZXNwYWNlIGdldHMgdHJpbW1lZCB3aGljaCBpbnRyb2R1
Y2VzIGEgc3RyYXkgaW5saW5lIGJveAotICAgICAgICAgICAgLy8gb24gdGhlIGZpcnN0IGxpbmUg
KCdYIDxzcGFuPicgYW5kICdYPC9zcGFuPicgZmlyc3QgYW5kIHNlY29uZCBsaW5lIHJlc3BlY3Rp
dmVseSkuCi0gICAgICAgICAgICAvLyBJbiBzdWNoIGNhc2VzIHdlIG5lZWQgdG8gcmV2ZXJ0IHRo
ZSBjb250ZW50IG9uIHRoZSBsaW5lIHRvIGEgcHJldmlvdXMgd3JhcHBpbmcgb3Bwb3J0dW5pdHkg
dG8ga2VlcCBzdWNoIGNvbnRlbnQgdG9nZXRoZXIuCi0gICAgICAgICAgICBhdXRvIG5lZWRzUmV2
ZXJ0ID0gbV9saW5lLnRyaW1tYWJsZVRyYWlsaW5nV2lkdGgoKSAmJiAhbV9saW5lLnJ1bnMoKS5p
c0VtcHR5KCkgJiYgbV9saW5lLnJ1bnMoKS5sYXN0KCkuaXNJbmxpbmVCb3hTdGFydCgpOwotICAg
ICAgICAgICAgaWYgKG5lZWRzUmV2ZXJ0ICYmIG1fd3JhcE9wcG9ydHVuaXR5TGlzdC5zaXplKCkg
PiAxKSB7Ci0gICAgICAgICAgICAgICAgbV93cmFwT3Bwb3J0dW5pdHlMaXN0LnJlbW92ZUxhc3Qo
KTsKLSAgICAgICAgICAgICAgICByZXR1cm4geyBJbmxpbmVDb250ZW50QnJlYWtlcjo6SXNFbmRP
ZkxpbmU6OlllcywgeyByZWJ1aWxkTGluZVdpdGhJbmxpbmVDb250ZW50KGxheW91dFJhbmdlLCAq
bV93cmFwT3Bwb3J0dW5pdHlMaXN0Lmxhc3QoKSksIHRydWUgfSB9OwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgcmV0dXJuIHsgSW5saW5lQ29udGVudEJyZWFrZXI6OklzRW5kT2ZMaW5lOjpZ
ZXMsIHsgfSwgeyB9LCBlbGlnaWJsZU92ZXJmbG93V2lkdGhBc0xlYWRpbmcoY2FuZGlkYXRlUnVu
cywgbGluZUJyZWFraW5nUmVzdWx0LCBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpKSB9OwotICAgICAg
ICB9Ci0gICAgICAgIGlmIChsaW5lQnJlYWtpbmdSZXN1bHQuYWN0aW9uID09IElubGluZUNvbnRl
bnRCcmVha2VyOjpSZXN1bHQ6OkFjdGlvbjo6V3JhcFdpdGhIeXBoZW4pIHsKLSAgICAgICAgICAg
IEFTU0VSVChsaW5lQnJlYWtpbmdSZXN1bHQuaXNFbmRPZkxpbmUgPT0gSW5saW5lQ29udGVudEJy
ZWFrZXI6OklzRW5kT2ZMaW5lOjpZZXMpOwotICAgICAgICAgICAgLy8gVGhpcyBjb250aW51b3Vz
IGNvbnRlbnQgY2FuJ3QgYmUgcGxhY2VkIG9uIHRoZSBjdXJyZW50IGxpbmUsIG5vdGhpbmcgdG8g
Y29tbWl0LgotICAgICAgICAgICAgLy8gSG93ZXZlciB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0
IHRoZSBjdXJyZW50IGxpbmUgZ2FpbnMgYSB0cmFpbGluZyBoeXBoZW4uCi0gICAgICAgICAgICBB
U1NFUlQobV9saW5lLnRyYWlsaW5nU29mdEh5cGhlbldpZHRoKCkpOwotICAgICAgICAgICAgbV9s
aW5lLmFkZFRyYWlsaW5nSHlwaGVuKCptX2xpbmUudHJhaWxpbmdTb2Z0SHlwaGVuV2lkdGgoKSk7
Ci0gICAgICAgICAgICByZXR1cm4geyBJbmxpbmVDb250ZW50QnJlYWtlcjo6SXNFbmRPZkxpbmU6
OlllcyB9OwotICAgICAgICB9Ci0gICAgICAgIGlmIChsaW5lQnJlYWtpbmdSZXN1bHQuYWN0aW9u
ID09IElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQ6OkFjdGlvbjo6UmV2ZXJ0VG9MYXN0V3Jh
cE9wcG9ydHVuaXR5KSB7Ci0gICAgICAgICAgICBBU1NFUlQobGluZUJyZWFraW5nUmVzdWx0Lmlz
RW5kT2ZMaW5lID09IElubGluZUNvbnRlbnRCcmVha2VyOjpJc0VuZE9mTGluZTo6WWVzKTsKLSAg
ICAgICAgICAgIC8vIE5vdCBvbmx5IHRoaXMgY29udGVudCBjYW4ndCBiZSBwbGFjZWQgb24gdGhl
IGN1cnJlbnQgbGluZSwgYnV0IHdlIGV2ZW4gbmVlZCB0byByZXZlcnQgdGhlIGxpbmUgYmFjayB0
byBhbiBlYXJsaWVyIHBvc2l0aW9uLgotICAgICAgICAgICAgQVNTRVJUKCFtX3dyYXBPcHBvcnR1
bml0eUxpc3QuaXNFbXB0eSgpKTsKLSAgICAgICAgICAgIHJldHVybiB7IElubGluZUNvbnRlbnRC
cmVha2VyOjpJc0VuZE9mTGluZTo6WWVzLCB7IHJlYnVpbGRMaW5lV2l0aElubGluZUNvbnRlbnQo
bGF5b3V0UmFuZ2UsICptX3dyYXBPcHBvcnR1bml0eUxpc3QubGFzdCgpKSwgdHJ1ZSB9IH07Ci0g
ICAgICAgIH0KLSAgICAgICAgaWYgKGxpbmVCcmVha2luZ1Jlc3VsdC5hY3Rpb24gPT0gSW5saW5l
Q29udGVudEJyZWFrZXI6OlJlc3VsdDo6QWN0aW9uOjpSZXZlcnRUb0xhc3ROb25PdmVyZmxvd2lu
Z1dyYXBPcHBvcnR1bml0eSkgewotICAgICAgICAgICAgQVNTRVJUKGxpbmVCcmVha2luZ1Jlc3Vs
dC5pc0VuZE9mTGluZSA9PSBJbmxpbmVDb250ZW50QnJlYWtlcjo6SXNFbmRPZkxpbmU6Olllcyk7
Ci0gICAgICAgICAgICBBU1NFUlQoIW1fd3JhcE9wcG9ydHVuaXR5TGlzdC5pc0VtcHR5KCkpOwot
ICAgICAgICAgICAgaWYgKGF1dG8gY29tbWl0dGVkQ291bnQgPSByZWJ1aWxkTGluZUZvclRyYWls
aW5nU29mdEh5cGhlbihsYXlvdXRSYW5nZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHsgSW5s
aW5lQ29udGVudEJyZWFrZXI6OklzRW5kT2ZMaW5lOjpZZXMsIHsgY29tbWl0dGVkQ291bnQsIHRy
dWUgfSB9OwotICAgICAgICAgICAgcmV0dXJuIHsgSW5saW5lQ29udGVudEJyZWFrZXI6OklzRW5k
T2ZMaW5lOjpZZXMgfTsKLSAgICAgICAgfQotICAgICAgICBpZiAobGluZUJyZWFraW5nUmVzdWx0
LmFjdGlvbiA9PSBJbmxpbmVDb250ZW50QnJlYWtlcjo6UmVzdWx0OjpBY3Rpb246OkJyZWFrKSB7
Ci0gICAgICAgICAgICBBU1NFUlQobGluZUJyZWFraW5nUmVzdWx0LmlzRW5kT2ZMaW5lID09IElu
bGluZUNvbnRlbnRCcmVha2VyOjpJc0VuZE9mTGluZTo6WWVzKTsKLSAgICAgICAgICAgIC8vIENv
bW1pdCB0aGUgY29tYmluYXRpb24gb2YgZnVsbCBhbmQgcGFydGlhbCBjb250ZW50IG9uIHRoZSBj
dXJyZW50IGxpbmUuCi0gICAgICAgICAgICBBU1NFUlQobGluZUJyZWFraW5nUmVzdWx0LnBhcnRp
YWxUcmFpbGluZ0NvbnRlbnQpOwotICAgICAgICAgICAgY29tbWl0UGFydGlhbENvbnRlbnQoY2Fu
ZGlkYXRlUnVucywgKmxpbmVCcmVha2luZ1Jlc3VsdC5wYXJ0aWFsVHJhaWxpbmdDb250ZW50KTsK
LSAgICAgICAgICAgIC8vIFdoZW4gYnJlYWtpbmcgbXVsdGlwbGUgcnVucyA8c3BhbiBzdHlsZT0i
d29yZC1icmVhazogYnJlYWstYWxsIj50ZXh0PC9zcGFuPjxzcGFuPmNvbnRlbnQ8L3NwYW4+LCB3
ZSBtaWdodCBlbmQgdXAgYnJlYWtpbmcgdGhlbSBhdCBydW4gYm91bmRhcnkuCi0gICAgICAgICAg
ICAvLyBJdCBzaW1wbHkgbWVhbnMgd2UgZG9uJ3QgcmVhbGx5IGhhdmUgYSBwYXJ0aWFsIHJ1bi4g
UGFydGlhbCBjb250ZW50IHllcywgYnV0IG5vdCBwYXJ0aWFsIHJ1bi4KLSAgICAgICAgICAgIGF1
dG8gdHJhaWxpbmdSdW5JbmRleCA9IGxpbmVCcmVha2luZ1Jlc3VsdC5wYXJ0aWFsVHJhaWxpbmdD
b250ZW50LT50cmFpbGluZ1J1bkluZGV4OwotICAgICAgICAgICAgYXV0byBjb21taXR0ZWRJbmxp
bmVJdGVtQ291bnQgPSB0cmFpbGluZ1J1bkluZGV4ICsgMTsKLSAgICAgICAgICAgIGlmICghbGlu
ZUJyZWFraW5nUmVzdWx0LnBhcnRpYWxUcmFpbGluZ0NvbnRlbnQtPnBhcnRpYWxSdW4pCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIHsgSW5saW5lQ29udGVudEJyZWFrZXI6OklzRW5kT2ZMaW5lOjpZ
ZXMsIHsgY29tbWl0dGVkSW5saW5lSXRlbUNvdW50LCBmYWxzZSB9IH07Ci0KLSAgICAgICAgICAg
IGF1dG8gcGFydGlhbFJ1biA9ICpsaW5lQnJlYWtpbmdSZXN1bHQucGFydGlhbFRyYWlsaW5nQ29u
dGVudC0+cGFydGlhbFJ1bjsKLSAgICAgICAgICAgIGF1dG8mIHRyYWlsaW5nSW5saW5lVGV4dEl0
ZW0gPSBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oY2FuZGlkYXRlUnVuc1t0cmFpbGluZ1J1bklu
ZGV4XS5pbmxpbmVJdGVtKTsKLSAgICAgICAgICAgIEFTU0VSVChwYXJ0aWFsUnVuLmxlbmd0aCA8
IHRyYWlsaW5nSW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCkpOwotICAgICAgICAgICAgYXV0byBvdmVy
Zmxvd0xlbmd0aCA9IHRyYWlsaW5nSW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCkgLSBwYXJ0aWFsUnVu
Lmxlbmd0aDsKLSAgICAgICAgICAgIHJldHVybiB7IElubGluZUNvbnRlbnRCcmVha2VyOjpJc0Vu
ZE9mTGluZTo6WWVzLCB7IGNvbW1pdHRlZElubGluZUl0ZW1Db3VudCwgZmFsc2UgfSwgb3ZlcmZs
b3dMZW5ndGgsIGVsaWdpYmxlT3ZlcmZsb3dXaWR0aEFzTGVhZGluZyhjYW5kaWRhdGVSdW5zLCBs
aW5lQnJlYWtpbmdSZXN1bHQsIGlzRmlyc3RGb3JtYXR0ZWRMaW5lKCkpIH07Ci0gICAgICAgIH0K
LSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiB7IElubGluZUNv
bnRlbnRCcmVha2VyOjpJc0VuZE9mTGluZTo6Tm8gfTsKLSAgICB9OwotCi0gICAgLy8gSWYgd2lk
dGggY29uc3RyYWludCBvdmVycmlkZXMgZXhpc3QsIG1vZGlmeSB0aGUgYXZhaWxhYmxlIHdpZHRo
IGFjY29yZGluZ2x5LgotICAgIGF1dG8gbGluZUluZGV4ID0gbV9wcmV2aW91c0xpbmUgPyAobV9w
cmV2aW91c0xpbmUtPmxpbmVJbmRleCArIDEpIDogMGx1OwotICAgIGNvbnN0IGF1dG8mIGF2YWls
YWJsZUxpbmVXaWR0aE92ZXJyaWRlID0gbV9pbmxpbmVMYXlvdXRTdGF0ZS5hdmFpbGFibGVMaW5l
V2lkdGhPdmVycmlkZSgpOwotICAgIGF1dG8gd2lkdGhPdmVycmlkZSA9IGF2YWlsYWJsZUxpbmVX
aWR0aE92ZXJyaWRlLmF2YWlsYWJsZUxpbmVXaWR0aE92ZXJyaWRlRm9yTGluZShsaW5lSW5kZXgp
OwotICAgIGF1dG8gYXZhaWxhYmxlVG90YWxXaWR0aEZvckNvbnRlbnQgPSB3aWR0aE92ZXJyaWRl
ID8gSW5saW5lTGF5b3V0VW5pdCB7IHdpZHRoT3ZlcnJpZGUudmFsdWUoKSB9IC0gbV9saW5lTWFy
Z2luU3RhcnQgOiB1c2VkQ29uc3RyYWludHMubG9naWNhbFJlY3Qud2lkdGgoKTsKLSAgICBhdXRv
IGF2YWlsYWJsZVdpZHRoRm9yQ2FuZGlkYXRlQ29udGVudCA9IGF2YWlsYWJsZVdpZHRoKGlubGlu
ZUNvbnRlbnQsIG1fbGluZSwgYXZhaWxhYmxlVG90YWxXaWR0aEZvckNvbnRlbnQpOworICAgIGF1
dG8gYXZhaWxhYmxlV2lkdGhGb3JDYW5kaWRhdGVDb250ZW50ID0gWyZdIHsKKyAgICAgICAgYXV0
byBsaW5lSW5kZXggPSBtX3ByZXZpb3VzTGluZSA/IChtX3ByZXZpb3VzTGluZS0+bGluZUluZGV4
ICsgMSkgOiAwbHU7CisgICAgICAgIC8vIElmIHdpZHRoIGNvbnN0cmFpbnQgb3ZlcnJpZGVzIGV4
aXN0IChlLmcuIHRleHQtd3JhcDogYmFsYW5jZSksIG1vZGlmeSB0aGUgYXZhaWxhYmxlIHdpZHRo
IGFjY29yZGluZ2x5LgorICAgICAgICBjb25zdCBhdXRvJiBhdmFpbGFibGVMaW5lV2lkdGhPdmVy
cmlkZSA9IG1faW5saW5lTGF5b3V0U3RhdGUuYXZhaWxhYmxlTGluZVdpZHRoT3ZlcnJpZGUoKTsK
KyAgICAgICAgYXV0byB3aWR0aE92ZXJyaWRlID0gYXZhaWxhYmxlTGluZVdpZHRoT3ZlcnJpZGUu
YXZhaWxhYmxlTGluZVdpZHRoT3ZlcnJpZGVGb3JMaW5lKGxpbmVJbmRleCk7CisgICAgICAgIGF1
dG8gYXZhaWxhYmxlVG90YWxXaWR0aEZvckNvbnRlbnQgPSB3aWR0aE92ZXJyaWRlID8gSW5saW5l
TGF5b3V0VW5pdCB7IHdpZHRoT3ZlcnJpZGUudmFsdWUoKSB9IC0gbV9saW5lTWFyZ2luU3RhcnQg
OiB1c2VkQ29uc3RyYWludHMubG9naWNhbFJlY3Qud2lkdGgoKTsKKyAgICAgICAgcmV0dXJuIGF2
YWlsYWJsZVdpZHRoKGlubGluZUNvbnRlbnQsIG1fbGluZSwgYXZhaWxhYmxlVG90YWxXaWR0aEZv
ckNvbnRlbnQpOworICAgIH0oKTsKIAogICAgIGF1dG8gbGluZUJyZWFraW5nUmVzdWx0ID0gSW5s
aW5lQ29udGVudEJyZWFrZXI6OlJlc3VsdCB7IElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQ6
OkFjdGlvbjo6S2VlcCwgSW5saW5lQ29udGVudEJyZWFrZXI6OklzRW5kT2ZMaW5lOjpObywgeyB9
LCB7IH0gfTsKICAgICBpZiAoY29udGludW91c0lubGluZUNvbnRlbnQubG9naWNhbFdpZHRoKCkg
PiBhdmFpbGFibGVXaWR0aEZvckNhbmRpZGF0ZUNvbnRlbnQpIHsKQEAgLTEwODIsNyArOTk2LDk3
IEBAIExpbmVCdWlsZGVyOjpSZXN1bHQgTGluZUJ1aWxkZXI6OmhhbmRsZUlubGluZUNvbnRlbnQo
Y29uc3QgSW5saW5lSXRlbVJhbmdlJiBsYXlvCiAgICAgICAgIG1fbGluZUxvZ2ljYWxSZWN0ID0g
dXNlZENvbnN0cmFpbnRzLmxvZ2ljYWxSZWN0OwogICAgIH0KICAgICBtX2xpbmVJc0NvbnN0cmFp
bmVkQnlGbG9hdC5hZGQodXNlZENvbnN0cmFpbnRzLmlzQ29uc3RyYWluZWRCeUZsb2F0KTsKLSAg
ICByZXR1cm4gdG9MaW5lQnVpbGRlclJlc3VsdChsaW5lQnJlYWtpbmdSZXN1bHQpOworICAgIHJl
dHVybiBwcm9jZXNzTGluZUJyZWFraW5nUmVzdWx0KGxpbmVDYW5kaWRhdGUsIGxheW91dFJhbmdl
LCBsaW5lQnJlYWtpbmdSZXN1bHQpOworfQorCitMaW5lQnVpbGRlcjo6UmVzdWx0IExpbmVCdWls
ZGVyOjpwcm9jZXNzTGluZUJyZWFraW5nUmVzdWx0KGNvbnN0IExpbmVDYW5kaWRhdGUmIGxpbmVD
YW5kaWRhdGUsIGNvbnN0IElubGluZUl0ZW1SYW5nZSYgbGF5b3V0UmFuZ2UsIGNvbnN0IElubGlu
ZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQmIGxpbmVCcmVha2luZ1Jlc3VsdCkKK3sKKyAgICBhdXRv
JiBjYW5kaWRhdGVSdW5zID0gbGluZUNhbmRpZGF0ZS5pbmxpbmVDb250ZW50LmNvbnRpbnVvdXND
b250ZW50KCkucnVucygpOworCisgICAgaWYgKGxpbmVCcmVha2luZ1Jlc3VsdC5hY3Rpb24gPT0g
SW5saW5lQ29udGVudEJyZWFrZXI6OlJlc3VsdDo6QWN0aW9uOjpLZWVwKSB7CisgICAgICAgIC8v
IFRoaXMgY29udGludW91cyBjb250ZW50IGNhbiBiZSBmdWxseSBwbGFjZWQgb24gdGhlIGN1cnJl
bnQgbGluZS4KKyAgICAgICAgZm9yIChhdXRvJiBydW4gOiBjYW5kaWRhdGVSdW5zKQorICAgICAg
ICAgICAgbV9saW5lLmFwcGVuZChydW4uaW5saW5lSXRlbSwgcnVuLnN0eWxlLCBydW4ubG9naWNh
bFdpZHRoKTsKKyAgICAgICAgLy8gV2UgYXJlIGtlZXBpbmcgdGhpcyBjb250ZW50IG9uIHRoZSBs
aW5lIGJ1dCB3ZSBuZWVkIHRvIGNoZWNrIGlmIHdlIGNvdWxkIGhhdmUgd3JhcHBlZCBoZXJlCisg
ICAgICAgIC8vIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gcmV2ZXJ0IGJhY2sgdG8gdGhpcyBwb3Np
dGlvbiBpZiBuZWVkZWQuCisgICAgICAgIC8vIExldCdzIGp1c3QgaWdub3JlIGNhc2VzIGxpa2Ug
Y29sbGFwc2VkIGxlYWRpbmcgd2hpdGVzcGFjZSBmb3Igbm93LgorICAgICAgICBpZiAobGluZUNh
bmRpZGF0ZS5pbmxpbmVDb250ZW50Lmhhc1RyYWlsaW5nU29mdFdyYXBPcHBvcnR1bml0eSgpICYm
IG1fbGluZS5oYXNDb250ZW50T3JMaXN0TWFya2VyKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIHRy
YWlsaW5nUnVuID0gY2FuZGlkYXRlUnVucy5sYXN0KCk7CisgICAgICAgICAgICBhdXRvJiB0cmFp
bGluZ0lubGluZUl0ZW0gPSB0cmFpbGluZ1J1bi5pbmxpbmVJdGVtOworCisgICAgICAgICAgICAv
LyBOb3RlIHRoYXQgd3JhcHBpbmcgaGVyZSBjb3VsZCBiZSBkcml2ZW4gYm90aCBieSB0aGUgc3R5
bGUgb2YgdGhlIHBhcmVudCBhbmQgdGhlIGlubGluZSBpdGVtIGl0c2VsZi4KKyAgICAgICAgICAg
IC8vIGUuZyBpbmxpbmUgYm94ZXMgc2V0IHRoZSB3cmFwcGluZyBydWxlcyBmb3IgdGhlaXIgY29u
dGVudCBhbmQgbm90IGZvciB0aGVtc2VsdmVzLgorICAgICAgICAgICAgYXV0byYgbGF5b3V0Qm94
UGFyZW50ID0gdHJhaWxpbmdJbmxpbmVJdGVtLmxheW91dEJveCgpLnBhcmVudCgpOworCisgICAg
ICAgICAgICAvLyBOZWVkIHRvIGVuc3VyZSB3ZSB1c2UgdGhlIGNvcnJlY3Qgc3R5bGUgaGVyZSwg
c28gdGhlIGNvbnRlbnQgYnJlYWtlciBhbmQgbGluZSBidWlsZGVyIHJlbWFpbiBpbiBzeW5jLgor
ICAgICAgICAgICAgYXV0byYgcGFyZW50U3R5bGUgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpID8g
bGF5b3V0Qm94UGFyZW50LmZpcnN0TGluZVN0eWxlKCkgOiBsYXlvdXRCb3hQYXJlbnQuc3R5bGUo
KTsKKworICAgICAgICAgICAgYXV0byBpc1dyYXBPcHBvcnR1bml0eSA9IFRleHRVdGlsOjppc1dy
YXBwaW5nQWxsb3dlZChwYXJlbnRTdHlsZSk7CisgICAgICAgICAgICBpZiAoIWlzV3JhcE9wcG9y
dHVuaXR5ICYmICh0cmFpbGluZ0lubGluZUl0ZW0uaXNJbmxpbmVCb3hTdGFydCgpIHx8IHRyYWls
aW5nSW5saW5lSXRlbS5pc0lubGluZUJveEVuZCgpKSkKKyAgICAgICAgICAgICAgICBpc1dyYXBP
cHBvcnR1bml0eSA9IFRleHRVdGlsOjppc1dyYXBwaW5nQWxsb3dlZCh0cmFpbGluZ1J1bi5zdHls
ZSk7CisgICAgICAgICAgICBpZiAoaXNXcmFwT3Bwb3J0dW5pdHkpCisgICAgICAgICAgICAgICAg
bV93cmFwT3Bwb3J0dW5pdHlMaXN0LmFwcGVuZCgmdHJhaWxpbmdJbmxpbmVJdGVtKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4geyBsaW5lQnJlYWtpbmdSZXN1bHQuaXNFbmRPZkxpbmUsIHsg
Y2FuZGlkYXRlUnVucy5zaXplKCksIGZhbHNlIH0gfTsKKyAgICB9CisKKyAgICBpZiAobGluZUJy
ZWFraW5nUmVzdWx0LmFjdGlvbiA9PSBJbmxpbmVDb250ZW50QnJlYWtlcjo6UmVzdWx0OjpBY3Rp
b246OldyYXApIHsKKyAgICAgICAgQVNTRVJUKGxpbmVCcmVha2luZ1Jlc3VsdC5pc0VuZE9mTGlu
ZSA9PSBJbmxpbmVDb250ZW50QnJlYWtlcjo6SXNFbmRPZkxpbmU6Olllcyk7CisgICAgICAgIC8v
IFRoaXMgY29udGludW91cyBjb250ZW50IGNhbid0IGJlIHBsYWNlZCBvbiB0aGUgY3VycmVudCBs
aW5lLiBOb3RoaW5nIHRvIGNvbW1pdCBhdCB0aGlzIHRpbWUuCisgICAgICAgIC8vIEhvd2V2ZXIg
dGhlcmUgYXJlIGNhc2VzIHdoZW4sIGR1ZSB0byB3aGl0ZXNwYWNlIGNvbGxhcHNpbmcsIHRoaXMg
b3ZlcmZsb3dpbmcgY29udGVudCBzaG91bGQgbm90IGJlIHNlcGFyYXRlZCBmcm9tCisgICAgICAg
IC8vIHRoZSBjb250ZW50IG9uIHRoZSBsaW5lLgorICAgICAgICAvLyA8ZGl2PlggPHNwYW4+IFg8
L3NwYW4+PC9kaXY+CisgICAgICAgIC8vIElmIHRoZSBzZWNvbmQgJ1gnIG92ZXJmbG93cyB0aGUg
bGluZSwgdGhlIHRyYWlsaW5nIHdoaXRlc3BhY2UgZ2V0cyB0cmltbWVkIHdoaWNoIGludHJvZHVj
ZXMgYSBzdHJheSBpbmxpbmUgYm94CisgICAgICAgIC8vIG9uIHRoZSBmaXJzdCBsaW5lICgnWCA8
c3Bhbj4nIGFuZCAnWDwvc3Bhbj4nIGZpcnN0IGFuZCBzZWNvbmQgbGluZSByZXNwZWN0aXZlbHkp
LgorICAgICAgICAvLyBJbiBzdWNoIGNhc2VzIHdlIG5lZWQgdG8gcmV2ZXJ0IHRoZSBjb250ZW50
IG9uIHRoZSBsaW5lIHRvIGEgcHJldmlvdXMgd3JhcHBpbmcgb3Bwb3J0dW5pdHkgdG8ga2VlcCBz
dWNoIGNvbnRlbnQgdG9nZXRoZXIuCisgICAgICAgIGF1dG8gbmVlZHNSZXZlcnQgPSBtX2xpbmUu
dHJpbW1hYmxlVHJhaWxpbmdXaWR0aCgpICYmICFtX2xpbmUucnVucygpLmlzRW1wdHkoKSAmJiBt
X2xpbmUucnVucygpLmxhc3QoKS5pc0lubGluZUJveFN0YXJ0KCk7CisgICAgICAgIGlmIChuZWVk
c1JldmVydCAmJiBtX3dyYXBPcHBvcnR1bml0eUxpc3Quc2l6ZSgpID4gMSkgeworICAgICAgICAg
ICAgbV93cmFwT3Bwb3J0dW5pdHlMaXN0LnJlbW92ZUxhc3QoKTsKKyAgICAgICAgICAgIHJldHVy
biB7IElubGluZUNvbnRlbnRCcmVha2VyOjpJc0VuZE9mTGluZTo6WWVzLCB7IHJlYnVpbGRMaW5l
V2l0aElubGluZUNvbnRlbnQobGF5b3V0UmFuZ2UsICptX3dyYXBPcHBvcnR1bml0eUxpc3QubGFz
dCgpKSwgdHJ1ZSB9IH07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHsgSW5saW5lQ29udGVu
dEJyZWFrZXI6OklzRW5kT2ZMaW5lOjpZZXMsIHsgfSwgeyB9LCBlbGlnaWJsZU92ZXJmbG93V2lk
dGhBc0xlYWRpbmcoY2FuZGlkYXRlUnVucywgbGluZUJyZWFraW5nUmVzdWx0LCBpc0ZpcnN0Rm9y
bWF0dGVkTGluZSgpKSB9OworICAgIH0KKyAgICBpZiAobGluZUJyZWFraW5nUmVzdWx0LmFjdGlv
biA9PSBJbmxpbmVDb250ZW50QnJlYWtlcjo6UmVzdWx0OjpBY3Rpb246OldyYXBXaXRoSHlwaGVu
KSB7CisgICAgICAgIEFTU0VSVChsaW5lQnJlYWtpbmdSZXN1bHQuaXNFbmRPZkxpbmUgPT0gSW5s
aW5lQ29udGVudEJyZWFrZXI6OklzRW5kT2ZMaW5lOjpZZXMpOworICAgICAgICAvLyBUaGlzIGNv
bnRpbnVvdXMgY29udGVudCBjYW4ndCBiZSBwbGFjZWQgb24gdGhlIGN1cnJlbnQgbGluZSwgbm90
aGluZyB0byBjb21taXQuCisgICAgICAgIC8vIEhvd2V2ZXIgd2UgbmVlZCB0byBtYWtlIHN1cmUg
dGhhdCB0aGUgY3VycmVudCBsaW5lIGdhaW5zIGEgdHJhaWxpbmcgaHlwaGVuLgorICAgICAgICBB
U1NFUlQobV9saW5lLnRyYWlsaW5nU29mdEh5cGhlbldpZHRoKCkpOworICAgICAgICBtX2xpbmUu
YWRkVHJhaWxpbmdIeXBoZW4oKm1fbGluZS50cmFpbGluZ1NvZnRIeXBoZW5XaWR0aCgpKTsKKyAg
ICAgICAgcmV0dXJuIHsgSW5saW5lQ29udGVudEJyZWFrZXI6OklzRW5kT2ZMaW5lOjpZZXMgfTsK
KyAgICB9CisgICAgaWYgKGxpbmVCcmVha2luZ1Jlc3VsdC5hY3Rpb24gPT0gSW5saW5lQ29udGVu
dEJyZWFrZXI6OlJlc3VsdDo6QWN0aW9uOjpSZXZlcnRUb0xhc3RXcmFwT3Bwb3J0dW5pdHkpIHsK
KyAgICAgICAgQVNTRVJUKGxpbmVCcmVha2luZ1Jlc3VsdC5pc0VuZE9mTGluZSA9PSBJbmxpbmVD
b250ZW50QnJlYWtlcjo6SXNFbmRPZkxpbmU6Olllcyk7CisgICAgICAgIC8vIE5vdCBvbmx5IHRo
aXMgY29udGVudCBjYW4ndCBiZSBwbGFjZWQgb24gdGhlIGN1cnJlbnQgbGluZSwgYnV0IHdlIGV2
ZW4gbmVlZCB0byByZXZlcnQgdGhlIGxpbmUgYmFjayB0byBhbiBlYXJsaWVyIHBvc2l0aW9uLgor
ICAgICAgICBBU1NFUlQoIW1fd3JhcE9wcG9ydHVuaXR5TGlzdC5pc0VtcHR5KCkpOworICAgICAg
ICByZXR1cm4geyBJbmxpbmVDb250ZW50QnJlYWtlcjo6SXNFbmRPZkxpbmU6OlllcywgeyByZWJ1
aWxkTGluZVdpdGhJbmxpbmVDb250ZW50KGxheW91dFJhbmdlLCAqbV93cmFwT3Bwb3J0dW5pdHlM
aXN0Lmxhc3QoKSksIHRydWUgfSB9OworICAgIH0KKyAgICBpZiAobGluZUJyZWFraW5nUmVzdWx0
LmFjdGlvbiA9PSBJbmxpbmVDb250ZW50QnJlYWtlcjo6UmVzdWx0OjpBY3Rpb246OlJldmVydFRv
TGFzdE5vbk92ZXJmbG93aW5nV3JhcE9wcG9ydHVuaXR5KSB7CisgICAgICAgIEFTU0VSVChsaW5l
QnJlYWtpbmdSZXN1bHQuaXNFbmRPZkxpbmUgPT0gSW5saW5lQ29udGVudEJyZWFrZXI6OklzRW5k
T2ZMaW5lOjpZZXMpOworICAgICAgICBBU1NFUlQoIW1fd3JhcE9wcG9ydHVuaXR5TGlzdC5pc0Vt
cHR5KCkpOworICAgICAgICBpZiAoYXV0byBjb21taXR0ZWRDb3VudCA9IHJlYnVpbGRMaW5lRm9y
VHJhaWxpbmdTb2Z0SHlwaGVuKGxheW91dFJhbmdlKSkKKyAgICAgICAgICAgIHJldHVybiB7IElu
bGluZUNvbnRlbnRCcmVha2VyOjpJc0VuZE9mTGluZTo6WWVzLCB7IGNvbW1pdHRlZENvdW50LCB0
cnVlIH0gfTsKKyAgICAgICAgcmV0dXJuIHsgSW5saW5lQ29udGVudEJyZWFrZXI6OklzRW5kT2ZM
aW5lOjpZZXMgfTsKKyAgICB9CisgICAgaWYgKGxpbmVCcmVha2luZ1Jlc3VsdC5hY3Rpb24gPT0g
SW5saW5lQ29udGVudEJyZWFrZXI6OlJlc3VsdDo6QWN0aW9uOjpCcmVhaykgeworICAgICAgICBB
U1NFUlQobGluZUJyZWFraW5nUmVzdWx0LmlzRW5kT2ZMaW5lID09IElubGluZUNvbnRlbnRCcmVh
a2VyOjpJc0VuZE9mTGluZTo6WWVzKTsKKyAgICAgICAgLy8gQ29tbWl0IHRoZSBjb21iaW5hdGlv
biBvZiBmdWxsIGFuZCBwYXJ0aWFsIGNvbnRlbnQgb24gdGhlIGN1cnJlbnQgbGluZS4KKyAgICAg
ICAgQVNTRVJUKGxpbmVCcmVha2luZ1Jlc3VsdC5wYXJ0aWFsVHJhaWxpbmdDb250ZW50KTsKKyAg
ICAgICAgY29tbWl0UGFydGlhbENvbnRlbnQoY2FuZGlkYXRlUnVucywgKmxpbmVCcmVha2luZ1Jl
c3VsdC5wYXJ0aWFsVHJhaWxpbmdDb250ZW50KTsKKyAgICAgICAgLy8gV2hlbiBicmVha2luZyBt
dWx0aXBsZSBydW5zIDxzcGFuIHN0eWxlPSJ3b3JkLWJyZWFrOiBicmVhay1hbGwiPnRleHQ8L3Nw
YW4+PHNwYW4+Y29udGVudDwvc3Bhbj4sIHdlIG1pZ2h0IGVuZCB1cCBicmVha2luZyB0aGVtIGF0
IHJ1biBib3VuZGFyeS4KKyAgICAgICAgLy8gSXQgc2ltcGx5IG1lYW5zIHdlIGRvbid0IHJlYWxs
eSBoYXZlIGEgcGFydGlhbCBydW4uIFBhcnRpYWwgY29udGVudCB5ZXMsIGJ1dCBub3QgcGFydGlh
bCBydW4uCisgICAgICAgIGF1dG8gdHJhaWxpbmdSdW5JbmRleCA9IGxpbmVCcmVha2luZ1Jlc3Vs
dC5wYXJ0aWFsVHJhaWxpbmdDb250ZW50LT50cmFpbGluZ1J1bkluZGV4OworICAgICAgICBhdXRv
IGNvbW1pdHRlZElubGluZUl0ZW1Db3VudCA9IHRyYWlsaW5nUnVuSW5kZXggKyAxOworICAgICAg
ICBpZiAoIWxpbmVCcmVha2luZ1Jlc3VsdC5wYXJ0aWFsVHJhaWxpbmdDb250ZW50LT5wYXJ0aWFs
UnVuKQorICAgICAgICAgICAgcmV0dXJuIHsgSW5saW5lQ29udGVudEJyZWFrZXI6OklzRW5kT2ZM
aW5lOjpZZXMsIHsgY29tbWl0dGVkSW5saW5lSXRlbUNvdW50LCBmYWxzZSB9IH07CisKKyAgICAg
ICAgYXV0byBwYXJ0aWFsUnVuID0gKmxpbmVCcmVha2luZ1Jlc3VsdC5wYXJ0aWFsVHJhaWxpbmdD
b250ZW50LT5wYXJ0aWFsUnVuOworICAgICAgICBhdXRvJiB0cmFpbGluZ0lubGluZVRleHRJdGVt
ID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KGNhbmRpZGF0ZVJ1bnNbdHJhaWxpbmdSdW5JbmRl
eF0uaW5saW5lSXRlbSk7CisgICAgICAgIEFTU0VSVChwYXJ0aWFsUnVuLmxlbmd0aCA8IHRyYWls
aW5nSW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCkpOworICAgICAgICBhdXRvIG92ZXJmbG93TGVuZ3Ro
ID0gdHJhaWxpbmdJbmxpbmVUZXh0SXRlbS5sZW5ndGgoKSAtIHBhcnRpYWxSdW4ubGVuZ3RoOwor
ICAgICAgICByZXR1cm4geyBJbmxpbmVDb250ZW50QnJlYWtlcjo6SXNFbmRPZkxpbmU6Olllcywg
eyBjb21taXR0ZWRJbmxpbmVJdGVtQ291bnQsIGZhbHNlIH0sIG92ZXJmbG93TGVuZ3RoLCBlbGln
aWJsZU92ZXJmbG93V2lkdGhBc0xlYWRpbmcoY2FuZGlkYXRlUnVucywgbGluZUJyZWFraW5nUmVz
dWx0LCBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpKSB9OworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm4geyBJbmxpbmVDb250ZW50QnJlYWtlcjo6SXNFbmRPZkxpbmU6
Ok5vIH07CiB9CiAKIHZvaWQgTGluZUJ1aWxkZXI6OmNvbW1pdFBhcnRpYWxDb250ZW50KGNvbnN0
IElubGluZUNvbnRlbnRCcmVha2VyOjpDb250aW51b3VzQ29udGVudDo6UnVuTGlzdCYgcnVucywg
Y29uc3QgSW5saW5lQ29udGVudEJyZWFrZXI6OlJlc3VsdDo6UGFydGlhbFRyYWlsaW5nQ29udGVu
dCYgcGFydGlhbFRyYWlsaW5nQ29udGVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVp
bGRlci5oCmluZGV4IGZkOGY3YzlmN2QzMS4uOWUwMWYxMDdjYTNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVp
bGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUxpbmVCdWlsZGVyLmgKQEAgLTcxLDYgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBl
bnVtIE1heU92ZXJDb25zdHJhaW5MaW5lIDogdWludDhfdCB7IE5vLCBZZXMsIE9ubHlXaGVuRmly
c3RGbG9hdE9uTGluZSB9OwogICAgIGJvb2wgdHJ5UGxhY2luZ0Zsb2F0Qm94KGNvbnN0IEJveCYs
IE1heU92ZXJDb25zdHJhaW5MaW5lKTsKICAgICBSZXN1bHQgaGFuZGxlSW5saW5lQ29udGVudChj
b25zdCBJbmxpbmVJdGVtUmFuZ2UmIG5lZWRzTGF5b3V0UmFuZ2UsIGNvbnN0IExpbmVDYW5kaWRh
dGUmKTsKKyAgICBSZXN1bHQgcHJvY2Vzc0xpbmVCcmVha2luZ1Jlc3VsdChjb25zdCBMaW5lQ2Fu
ZGlkYXRlJiwgY29uc3QgSW5saW5lSXRlbVJhbmdlJiBsYXlvdXRSYW5nZSwgY29uc3QgSW5saW5l
Q29udGVudEJyZWFrZXI6OlJlc3VsdCYpOwogICAgIFVzZWRDb25zdHJhaW50cyBhZGp1c3RlZExp
bmVSZWN0V2l0aENhbmRpZGF0ZUlubGluZUNvbnRlbnQoY29uc3QgTGluZUNhbmRpZGF0ZSYpIGNv
bnN0OwogICAgIHNpemVfdCByZWJ1aWxkTGluZVdpdGhJbmxpbmVDb250ZW50KGNvbnN0IElubGlu
ZUl0ZW1SYW5nZSYgbmVlZHNMYXlvdXRSYW5nZSwgY29uc3QgSW5saW5lSXRlbSYgbGFzdElubGlu
ZUl0ZW1Ub0FkZCk7CiAgICAgc2l6ZV90IHJlYnVpbGRMaW5lRm9yVHJhaWxpbmdTb2Z0SHlwaGVu
KGNvbnN0IElubGluZUl0ZW1SYW5nZSYgbGF5b3V0UmFuZ2UpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>