<?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>219185</bug_id>
          
          <creation_ts>2020-11-19 16:22:04 -0800</creation_ts>
          <short_desc>[LFC][IFC] Move horizontal space tracking from Line to LineBuilder</short_desc>
          <delta_ts>2020-11-20 06:59:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>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>1709320</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-11-19 16:22:04 -0800</bug_when>
    <thetext>Line should just track the content width. This is also in preparation for supporting stretchy line vs. floats.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709325</commentid>
    <comment_count>1</comment_count>
      <attachid>414634</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-11-19 16:30:23 -0800</bug_when>
    <thetext>Created attachment 414634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709467</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-20 06:58:18 -0800</bug_when>
    <thetext>Committed r270114: &lt;https://trac.webkit.org/changeset/270114&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 414634.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709468</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-20 06:59:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/71626595&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414634</attachid>
            <date>2020-11-19 16:30:23 -0800</date>
            <delta_ts>2020-11-20 06:58:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219185-20201119163022.patch</filename>
            <type>text/plain</type>
            <size>17930</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzkwYzIzZmM1YWMzOGI2
NmI4OTY4ZTU1MjFhODI4ZjIzMDY3ZDE5NC4uMzk4MTVjMzJhMWZhMzRhMWU3MzU1MDIyZjdhMWFi
NTRmOWEzMTZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTExLTE5ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBNb3ZlIGhv
cml6b250YWwgc3BhY2UgdHJhY2tpbmcgZnJvbSBMaW5lIHRvIExpbmVCdWlsZGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkxODUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMZXQncyBtb3ZlIHRoZSBh
dmFpbGFibGUgaG9yaXpvbnRhbCBzcGFjZSB0cmFja2luZyBmcm9tIExpbmUgdG8gTGluZUJ1aWxk
ZXIuIFNpbmNlIHRoZSBMaW5lQnVpbGRlciBkZWNpZGVzIHdoYXQgdG8gcHV0IG9uIHRoZSBsaW5l
CisgICAgICAgIHRoZSBMaW5lIG9iamVjdCBkb2VzIG5vdCBuZWVkIHRvIGtub3cgaG93IG11Y2gg
YXZhaWxhYmxlIHNwYWNlIHRoZXJlIGlzLgorICAgICAgICBUaGlzIGlzIGFsc28gaW4gcHJlcGFy
YXRpb24gZm9yIGFkZGluZyBmbG9hdCBzdXBwb3J0IG9uICh2ZXJ0aWNhbGx5KSBzdHJldGNoeSBs
aW5lcyB3aGVyZSB0aGUgaG9yaXpvbnRhbCBhdmFpbGFibGUgc3BhY2UgbWF5IHZhcnkKKyAgICAg
ICAgZGVwZW5kaW5nIG9uIGhvdyBtdWNoIHRoZSBpbmxpbmUgbGV2ZWwgYm94ZXMgc3RyZXRjaCB0
aGUgbGluZSB2ZXJ0aWNhbGx5LiAgCisKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6aW5pdGlh
bGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OnJlbW92ZUNvbGxhcHNpYmxl
Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGx5UnVuRXhwYW5z
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6cmVtb3ZlVHJhaWxpbmdUcmlt
bWFibGVDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6dmlzdWFsbHlD
b2xsYXBzZVByZVdyYXBPdmVyZmxvd0NvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpMaW5lOjptb3ZlTG9naWNhbExlZnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5l
Ojptb3ZlTG9naWNhbFJpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVMaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmNv
bnRlbnRMb2dpY2FsV2lkdGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5l
Ojpob3Jpem9udGFsQ29uc3RyYWludCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmU6OmF2YWlsYWJsZVdpZHRoIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjpsYXlvdXRJbmxpbmVDb250ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OmluaXRpYWxpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6cGxhY2VJbmxpbmVDb250ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OmNsb3NlKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OmNvbW1pdEZsb2F0cyk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjpoYW5kbGVGbG9hdHNBbmRJbmxpbmVDb250ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OnJlYnVpbGRMaW5lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OnJlYnVpbGRMaW5lRm9yVHJhaWxp
bmdTb2Z0SHlwaGVuKToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVM
aW5lQnVpbGRlci5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6YXZh
aWxhYmxlV2lkdGggY29uc3QpOgorCiAyMDIwLTExLTE5ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIERvIG5vdCBzdHJldGNoIHRo
ZSBib3JkZXIgYm94IHdpdGggdGhlIHNjcm9sbGJhcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5jcHAKaW5kZXggMTY4Nzc5MDc1
ZjhiNTgzYzljMzE4MmI4MTQ1MjU1NmM5YjQ5NDVmMi4uODJhNDk3YWFmN2JiNmFiYzA1ZjYwOTQ3
ODRjNGU0MTRkYjkxNWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5jcHAKQEAgLTU2LDkgKzU2LDggQEAgTGluZTo6fkxp
bmUoKQogewogfQogCi12b2lkIExpbmU6OmluaXRpYWxpemUoSW5saW5lTGF5b3V0VW5pdCBob3Jp
em9udGFsQ29uc3RyYWludCkKK3ZvaWQgTGluZTo6aW5pdGlhbGl6ZSgpCiB7Ci0gICAgbV9ob3Jp
em9udGFsQ29uc3RyYWludCA9IGhvcml6b250YWxDb25zdHJhaW50OwogICAgIG1fY29udGVudExv
Z2ljYWxXaWR0aCA9IHsgfTsKICAgICBtX3J1bnMuY2xlYXIoKTsKICAgICBtX3RyYWlsaW5nU29m
dEh5cGhlbldpZHRoID0geyB9OwpAQCAtNjcsMTMgKzY2LDEzIEBAIHZvaWQgTGluZTo6aW5pdGlh
bGl6ZShJbmxpbmVMYXlvdXRVbml0IGhvcml6b250YWxDb25zdHJhaW50KQogICAgIG1faXNDb25z
aWRlcmVkRW1wdHlCZWZvcmVUcmltbWFibGVUcmFpbGluZ0NvbnRlbnQgPSB7IH07CiB9CiAKLXZv
aWQgTGluZTo6cmVtb3ZlQ29sbGFwc2libGVDb250ZW50KCkKK3ZvaWQgTGluZTo6cmVtb3ZlQ29s
bGFwc2libGVDb250ZW50KElubGluZUxheW91dFVuaXQgZXh0cmFIb3Jpem9udGFsU3BhY2UpCiB7
CiAgICAgcmVtb3ZlVHJhaWxpbmdUcmltbWFibGVDb250ZW50KCk7Ci0gICAgdmlzdWFsbHlDb2xs
YXBzZVByZVdyYXBPdmVyZmxvd0NvbnRlbnQoKTsKKyAgICB2aXN1YWxseUNvbGxhcHNlUHJlV3Jh
cE92ZXJmbG93Q29udGVudChleHRyYUhvcml6b250YWxTcGFjZSk7CiB9CiAKLXZvaWQgTGluZTo6
YXBwbHlSdW5FeHBhbnNpb24oKQordm9pZCBMaW5lOjphcHBseVJ1bkV4cGFuc2lvbihJbmxpbmVM
YXlvdXRVbml0IGV4dHJhSG9yaXpvbnRhbFNwYWNlKQogewogICAgIEFTU0VSVChmb3JtYXR0aW5n
Q29udGV4dCgpLnJvb3QoKS5zdHlsZSgpLnRleHRBbGlnbigpID09IFRleHRBbGlnbk1vZGU6Okp1
c3RpZnkpOwogICAgIC8vIFRleHQgaXMganVzdGlmaWVkIGFjY29yZGluZyB0byB0aGUgbWV0aG9k
IHNwZWNpZmllZCBieSB0aGUgdGV4dC1qdXN0aWZ5IHByb3BlcnR5LApAQCAtOTcsMTAgKzk2LDEw
IEBAIHZvaWQgTGluZTo6YXBwbHlSdW5FeHBhbnNpb24oKQogICAgICAgICBsYXN0UnVuV2l0aENv
bnRlbnQtPnNldEV4cGFuc2lvbkJlaGF2aW9yKGxlYWRpbmdFeHBhbnNpb24gfCBGb3JiaWRSaWdo
dEV4cGFuc2lvbik7CiAgICAgfQogICAgIC8vIEFueXRoaW5nIHRvIGRpc3RyaWJ1dGU/Ci0gICAg
aWYgKCFleHBhbnNpb25PcHBvcnR1bml0eUNvdW50IHx8ICFhdmFpbGFibGVXaWR0aCgpKQorICAg
IGlmICghZXhwYW5zaW9uT3Bwb3J0dW5pdHlDb3VudCB8fCAhZXh0cmFIb3Jpem9udGFsU3BhY2Up
CiAgICAgICAgIHJldHVybjsKICAgICAvLyBEaXN0cmlidXRlIHRoZSBleHRyYSBzcGFjZS4KLSAg
ICBhdXRvIGV4cGFuc2lvblRvRGlzdHJpYnV0ZSA9IGF2YWlsYWJsZVdpZHRoKCkgLyBleHBhbnNp
b25PcHBvcnR1bml0eUNvdW50OworICAgIGF1dG8gZXhwYW5zaW9uVG9EaXN0cmlidXRlID0gZXh0
cmFIb3Jpem9udGFsU3BhY2UgLyBleHBhbnNpb25PcHBvcnR1bml0eUNvdW50OwogICAgIGF1dG8g
YWNjdW11bGF0ZWRFeHBhbnNpb24gPSBJbmxpbmVMYXlvdXRVbml0IHsgfTsKICAgICBmb3IgKGF1
dG8mIHJ1biA6IG1fcnVucykgewogICAgICAgICAvLyBFeHBhbmQgYW5kIG1vdmUgcnVucyBieSB0
aGUgYWNjdW11bGF0ZWQgZXhwYW5zaW9uLgpAQCAtMTE2LDcgKzExNSw2IEBAIHZvaWQgTGluZTo6
YXBwbHlSdW5FeHBhbnNpb24oKQogICAgIH0KICAgICAvLyBDb250ZW50IGdyb3dzIGFzIHJ1bnMg
ZXhwYW5kLgogICAgIG1fY29udGVudExvZ2ljYWxXaWR0aCArPSBhY2N1bXVsYXRlZEV4cGFuc2lv
bjsKLSAgICBBU1NFUlQobV9jb250ZW50TG9naWNhbFdpZHRoID09IG1faG9yaXpvbnRhbENvbnN0
cmFpbnQpOwogfQogCiB2b2lkIExpbmU6OnJlbW92ZVRyYWlsaW5nVHJpbW1hYmxlQ29udGVudCgp
CkBAIC0xMzMsNyArMTMxLDcgQEAgdm9pZCBMaW5lOjpyZW1vdmVUcmFpbGluZ1RyaW1tYWJsZUNv
bnRlbnQoKQogICAgICAgICAgICAgICAgIHx8IHRleHRBbGlnbiA9PSBUZXh0QWxpZ25Nb2RlOjpF
bmQ7CiAgICAgICAgICAgICB9KCk7CiAKLSAgICAgICAgaWYgKG1fcnVucy5sYXN0KCkuaXNMaW5l
QnJlYWsoKSAmJiBhdmFpbGFibGVXaWR0aCgpID49IDAgJiYgIWlzVGV4dEFsaWduUmlnaHQpIHsK
KyAgICAgICAgaWYgKG1fcnVucy5sYXN0KCkuaXNMaW5lQnJlYWsoKSAmJiAhaXNUZXh0QWxpZ25S
aWdodCkgewogICAgICAgICAgICAgbV90cmltbWFibGVUcmFpbGluZ0NvbnRlbnQucmVzZXQoKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTU1LDEzICsxNTMsMTMgQEAgdm9p
ZCBMaW5lOjpyZW1vdmVUcmFpbGluZ1RyaW1tYWJsZUNvbnRlbnQoKQogICAgIH0KIH0KIAotdm9p
ZCBMaW5lOjp2aXN1YWxseUNvbGxhcHNlUHJlV3JhcE92ZXJmbG93Q29udGVudCgpCit2b2lkIExp
bmU6OnZpc3VhbGx5Q29sbGFwc2VQcmVXcmFwT3ZlcmZsb3dDb250ZW50KElubGluZUxheW91dFVu
aXQgZXh0cmFIb3Jpem9udGFsU3BhY2UpCiB7CiAgICAgQVNTRVJUKG1fdHJpbW1hYmxlVHJhaWxp
bmdDb250ZW50LmlzRW1wdHkoKSk7CiAgICAgLy8gSWYgd2hpdGUtc3BhY2UgaXMgc2V0IHRvIHBy
ZS13cmFwLCB0aGUgVUEgbXVzdAogICAgIC8vIC4uLgogICAgIC8vIEl0IG1heSBhbHNvIHZpc3Vh
bGx5IGNvbGxhcHNlIHRoZSBjaGFyYWN0ZXIgYWR2YW5jZSB3aWR0aHMgb2YgYW55IHRoYXQgd291
bGQgb3RoZXJ3aXNlIG92ZXJmbG93LgotICAgIGF1dG8gb3ZlcmZsb3dXaWR0aCA9IC1hdmFpbGFi
bGVXaWR0aCgpOworICAgIGF1dG8gb3ZlcmZsb3dXaWR0aCA9IC1leHRyYUhvcml6b250YWxTcGFj
ZTsKICAgICBpZiAob3ZlcmZsb3dXaWR0aCA8PSAwKQogICAgICAgICByZXR1cm47CiAgICAgLy8g
TGV0J3MganVzdCBmaW5kIHRoZSB0cmFpbGluZyBwcmUtd3JhcCB3aGl0ZXNwYWNlIGNvbnRlbnQg
Zm9yIG5vdyAoZS5nIGNoZWNrIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSB0cmFpbGluZyBydW5zIHdp
dGgKQEAgLTIwMCwxMyArMTk4LDYgQEAgdm9pZCBMaW5lOjptb3ZlTG9naWNhbExlZnQoSW5saW5l
TGF5b3V0VW5pdCBkZWx0YSkKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVChkZWx0YSA+IDAp
OwogICAgIG1fbGluZUxvZ2ljYWxMZWZ0ICs9IGRlbHRhOwotICAgIG1faG9yaXpvbnRhbENvbnN0
cmFpbnQgLT0gZGVsdGE7Ci19Ci0KLXZvaWQgTGluZTo6bW92ZUxvZ2ljYWxSaWdodChJbmxpbmVM
YXlvdXRVbml0IGRlbHRhKQotewotICAgIEFTU0VSVChkZWx0YSA+IDApOwotICAgIG1faG9yaXpv
bnRhbENvbnN0cmFpbnQgLT0gZGVsdGE7CiB9CiAKIHZvaWQgTGluZTo6YXBwZW5kKGNvbnN0IElu
bGluZUl0ZW0mIGlubGluZUl0ZW0sIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGlu
ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5o
CmluZGV4IDUyZGQ2ZTRjZWUzZTc1NjI5NTAxZDMxZDIyMzhhNmVhMDhjYWZhZWIuLjI2ZmVmYTJi
MjdiNTZhZWJjNmY3NjNjZmYyMTFhYWUxZTBkMmRlOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lLmgKQEAgLTQyLDcgKzQyLDcg
QEAgcHVibGljOgogICAgIExpbmUoY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmKTsKICAg
ICB+TGluZSgpOwogCi0gICAgdm9pZCBpbml0aWFsaXplKElubGluZUxheW91dFVuaXQgaG9yaXpv
bnRhbENvbnN0cmFpbnQpOworICAgIHZvaWQgaW5pdGlhbGl6ZSgpOwogCiAgICAgdm9pZCBhcHBl
bmQoY29uc3QgSW5saW5lSXRlbSYsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKTsKIApA
QCAtNTIsOSArNTIsNyBAQCBwdWJsaWM6CiAgICAgLy8gPHNwYW4gc3R5bGU9InBhZGRpbmc6IDEw
cHgiPjwvc3Bhbj4gaXMgbm90IGNvbnNpZGVyZWQgZW1wdHkuIAogICAgIGJvb2wgaXNDb25zaWRl
cmVkRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2lzQ29uc2lkZXJlZEVtcHR5OyB9CiAKLSAgICBJ
bmxpbmVMYXlvdXRVbml0IGhvcml6b250YWxDb25zdHJhaW50KCkgY29uc3QgeyByZXR1cm4gbV9o
b3Jpem9udGFsQ29uc3RyYWludDsgfQogICAgIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2lj
YWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudExvZ2ljYWxXaWR0aDsgfQotICAgIElu
bGluZUxheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgoKSBjb25zdCB7IHJldHVybiBob3Jpem9udGFs
Q29uc3RyYWludCgpIC0gY29udGVudExvZ2ljYWxXaWR0aCgpOyB9CiAKICAgICBJbmxpbmVMYXlv
dXRVbml0IHRyaW1tYWJsZVRyYWlsaW5nV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3RyaW1tYWJs
ZVRyYWlsaW5nQ29udGVudC53aWR0aCgpOyB9CiAgICAgYm9vbCBpc1RyYWlsaW5nUnVuRnVsbHlU
cmltbWFibGUoKSBjb25zdCB7IHJldHVybiBtX3RyaW1tYWJsZVRyYWlsaW5nQ29udGVudC5pc1Ry
YWlsaW5nUnVuRnVsbHlUcmltbWFibGUoKTsgfQpAQCAtNjMsMTAgKzYxLDkgQEAgcHVibGljOgog
ICAgIHZvaWQgYWRkVHJhaWxpbmdIeXBoZW4oSW5saW5lTGF5b3V0VW5pdCBoeXBoZW5Mb2dpY2Fs
V2lkdGgpOwogCiAgICAgdm9pZCBtb3ZlTG9naWNhbExlZnQoSW5saW5lTGF5b3V0VW5pdCk7Ci0g
ICAgdm9pZCBtb3ZlTG9naWNhbFJpZ2h0KElubGluZUxheW91dFVuaXQpOwogCi0gICAgdm9pZCBy
ZW1vdmVDb2xsYXBzaWJsZUNvbnRlbnQoKTsKLSAgICB2b2lkIGFwcGx5UnVuRXhwYW5zaW9uKCk7
CisgICAgdm9pZCByZW1vdmVDb2xsYXBzaWJsZUNvbnRlbnQoSW5saW5lTGF5b3V0VW5pdCBleHRy
YUhvcml6b250YWxTcGFjZSk7CisgICAgdm9pZCBhcHBseVJ1bkV4cGFuc2lvbihJbmxpbmVMYXlv
dXRVbml0IGV4dHJhSG9yaXpvbnRhbFNwYWNlKTsKIAogICAgIHN0cnVjdCBSdW4gewogICAgICAg
ICBib29sIGlzVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBJbmxpbmVJdGVtOjpUeXBl
OjpUZXh0OyB9CkBAIC0xNTAsNyArMTQ3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFwcGVuZFdv
cmRCcmVha09wcG9ydHVuaXR5KGNvbnN0IElubGluZUl0ZW0mKTsKIAogICAgIHZvaWQgcmVtb3Zl
VHJhaWxpbmdUcmltbWFibGVDb250ZW50KCk7Ci0gICAgdm9pZCB2aXN1YWxseUNvbGxhcHNlUHJl
V3JhcE92ZXJmbG93Q29udGVudCgpOworICAgIHZvaWQgdmlzdWFsbHlDb2xsYXBzZVByZVdyYXBP
dmVyZmxvd0NvbnRlbnQoSW5saW5lTGF5b3V0VW5pdCBleHRyYUhvcml6b250YWxTcGFjZSk7CiAK
ICAgICBib29sIGlzUnVuQ29uc2lkZXJlZEVtcHR5KGNvbnN0IFJ1biYpIGNvbnN0OwogICAgIGNv
bnN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0OwpA
QCAtMTgyLDcgKzE3OSw2IEBAIHByaXZhdGU6CiAgICAgUnVuTGlzdCBtX3J1bnM7CiAgICAgVHJp
bW1hYmxlVHJhaWxpbmdDb250ZW50IG1fdHJpbW1hYmxlVHJhaWxpbmdDb250ZW50OwogICAgIElu
bGluZUxheW91dFVuaXQgbV9saW5lTG9naWNhbExlZnQgeyAwIH07Ci0gICAgSW5saW5lTGF5b3V0
VW5pdCBtX2hvcml6b250YWxDb25zdHJhaW50IHsgMCB9OwogICAgIElubGluZUxheW91dFVuaXQg
bV9jb250ZW50TG9naWNhbFdpZHRoIHsgMCB9OwogICAgIE9wdGlvbmFsPElubGluZUxheW91dFVu
aXQ+IG1fdHJhaWxpbmdTb2Z0SHlwaGVuV2lkdGggeyAwIH07CiAgICAgYm9vbCBtX2lzQ29uc2lk
ZXJlZEVtcHR5IHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwCmluZGV4IDYwZmNlMGQw
MzU3OGZmMzBkMGE2YjRlYjNlOTE3NzNjYTcyMTBjMzIuLmFhYzRhYjVjNmFiYzVhY2RmYjI4MjBj
MDIyNWRlNTNiZDNhOWUxMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHAKQEAgLTI2MiwxOSAr
MjYyLDE5IEBAIExpbmVCdWlsZGVyOjpMaW5lQnVpbGRlcihjb25zdCBJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dCYgaW5saW5lRm9ybWF0dGluZ0NvbnRleHQsCiB7CiB9CiAKLUxpbmVCdWlsZGVyOjpM
aW5lQ29udGVudCBMaW5lQnVpbGRlcjo6bGF5b3V0SW5saW5lQ29udGVudChjb25zdCBJbmxpbmVJ
dGVtUmFuZ2UmIG5lZWRzTGF5b3V0UmFuZ2UsIHNpemVfdCBwYXJ0aWFsTGVhZGluZ0NvbnRlbnRM
ZW5ndGgsIGNvbnN0IElubGluZVJlY3QmIGxpbmVMb2dpY2FsQ29uc3RyYWludHMsIGJvb2wgaXNG
aXJzdExpbmUpCitMaW5lQnVpbGRlcjo6TGluZUNvbnRlbnQgTGluZUJ1aWxkZXI6OmxheW91dElu
bGluZUNvbnRlbnQoY29uc3QgSW5saW5lSXRlbVJhbmdlJiBuZWVkc0xheW91dFJhbmdlLCBzaXpl
X3QgcGFydGlhbExlYWRpbmdDb250ZW50TGVuZ3RoLCBjb25zdCBJbmxpbmVSZWN0JiBpbml0aWFs
Q29uc3RyYWludHNGb3JMaW5lLCBib29sIGlzRmlyc3RMaW5lKQogewotICAgIGF1dG8gdXNlZENv
bnN0cmFpbnRzID0gY29uc3RyYWludHNGb3JMaW5lKGxpbmVMb2dpY2FsQ29uc3RyYWludHMsIGlz
Rmlyc3RMaW5lKTsKKyAgICBhdXRvIHVzZWRDb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzRm9yTGlu
ZShpbml0aWFsQ29uc3RyYWludHNGb3JMaW5lLCBpc0ZpcnN0TGluZSk7CiAgICAgaW5pdGlhbGl6
ZSh1c2VkQ29uc3RyYWludHMpOwogCiAgICAgYXV0byBjb21taXR0ZWRDb250ZW50ID0gcGxhY2VJ
bmxpbmVDb250ZW50KG5lZWRzTGF5b3V0UmFuZ2UsIHBhcnRpYWxMZWFkaW5nQ29udGVudExlbmd0
aCk7CiAgICAgYXV0byBjb21taXR0ZWRSYW5nZSA9IGNsb3NlKG5lZWRzTGF5b3V0UmFuZ2UsIGNv
bW1pdHRlZENvbnRlbnQpOwogCi0gICAgYXV0byBsaW5lTG9naWNhbFRvcExlZnQgPSBJbmxpbmVM
YXlvdXRQb2ludCB7IHVzZWRDb25zdHJhaW50cy5sb2dpY2FsTGVmdCwgbGluZUxvZ2ljYWxDb25z
dHJhaW50cy50b3AoKSB9OworICAgIGF1dG8gbGluZUxvZ2ljYWxUb3BMZWZ0ID0gSW5saW5lTGF5
b3V0UG9pbnQgeyB1c2VkQ29uc3RyYWludHMubG9naWNhbExlZnQsIGluaXRpYWxDb25zdHJhaW50
c0ZvckxpbmUudG9wKCkgfTsKICAgICBhdXRvIGlzTGFzdExpbmUgPSBpc0xhc3RMaW5lV2l0aElu
bGluZUNvbnRlbnQoY29tbWl0dGVkUmFuZ2UsIG5lZWRzTGF5b3V0UmFuZ2UuZW5kLCBjb21taXR0
ZWRDb250ZW50LnBhcnRpYWxUcmFpbGluZ0NvbnRlbnRMZW5ndGgpOwogICAgIHJldHVybiBMaW5l
Q29udGVudCB7IGNvbW1pdHRlZFJhbmdlLCBjb21taXR0ZWRDb250ZW50LnBhcnRpYWxUcmFpbGlu
Z0NvbnRlbnRMZW5ndGgsIG1fZmxvYXRzLCBtX2NvbnRlbnRJc0NvbnN0cmFpbmVkQnlGbG9hdAog
ICAgICAgICAsIGxpbmVMb2dpY2FsVG9wTGVmdAotICAgICAgICAsIG1fbGluZS5ob3Jpem9udGFs
Q29uc3RyYWludCgpCisgICAgICAgICwgbV9ob3Jpem9udGFsU3BhY2VGb3JMaW5lCiAgICAgICAg
ICwgbV9saW5lLmNvbnRlbnRMb2dpY2FsV2lkdGgoKQogICAgICAgICAsIG1fbGluZS5pc0NvbnNp
ZGVyZWRFbXB0eSgpCiAgICAgICAgICwgaXNMYXN0TGluZQpAQCAtMjk1LDggKzI5NSw5IEBAIHZv
aWQgTGluZUJ1aWxkZXI6OmluaXRpYWxpemUoY29uc3QgVXNlZENvbnN0cmFpbnRzJiBsaW5lQ29u
c3RyYWludHMpCiAgICAgbV9wYXJ0aWFsTGVhZGluZ1RleHRJdGVtID0geyB9OwogICAgIG1fd3Jh
cE9wcG9ydHVuaXR5TGlzdC5jbGVhcigpOwogCi0gICAgbV9saW5lLmluaXRpYWxpemUobGluZUNv
bnN0cmFpbnRzLmF2YWlsYWJsZUxvZ2ljYWxXaWR0aCk7CisgICAgbV9saW5lLmluaXRpYWxpemUo
KTsKICAgICBtX2NvbnRlbnRJc0NvbnN0cmFpbmVkQnlGbG9hdCA9IGxpbmVDb25zdHJhaW50cy5p
c0NvbnN0cmFpbmVkQnlGbG9hdDsKKyAgICBtX2hvcml6b250YWxTcGFjZUZvckxpbmUgPSBsaW5l
Q29uc3RyYWludHMubG9naWNhbFdpZHRoOyAKIH0KIAogTGluZUJ1aWxkZXI6OkNvbW1pdHRlZENv
bnRlbnQgTGluZUJ1aWxkZXI6OnBsYWNlSW5saW5lQ29udGVudChjb25zdCBJbmxpbmVJdGVtUmFu
Z2UmIG5lZWRzTGF5b3V0UmFuZ2UsIHNpemVfdCBwYXJ0aWFsTGVhZGluZ0NvbnRlbnRMZW5ndGgp
CkBAIC0zMTEsNyArMzEyLDcgQEAgTGluZUJ1aWxkZXI6OkNvbW1pdHRlZENvbnRlbnQgTGluZUJ1
aWxkZXI6OnBsYWNlSW5saW5lQ29udGVudChjb25zdCBJbmxpbmVJdGVtUmEKICAgICAgICAgLy8g
Mi4gQXBwbHkgZmxvYXRzIGFuZCBzaHJpbmsgdGhlIGF2YWlsYWJsZSBob3Jpem9udGFsIHNwYWNl
IGUuZy4gPHNwYW4+aW50cnVfPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQiPjwvZGl2PnNpdmVfZmxv
YXQ8L3NwYW4+LgogICAgICAgICAvLyAzLiBDaGVjayBpZiB0aGUgY29udGVudCBmaXRzIHRoZSBs
aW5lIGFuZCBjb21taXQgdGhlIGNvbnRlbnQgYWNjb3JkaW5nbHkgKGZ1bGwsIHBhcnRpYWwgb3Ig
bm90IGNvbW1pdCBhdCBhbGwpLgogICAgICAgICAvLyA0LiBSZXR1cm4gaWYgd2UgYXJlIGF0IHRo
ZSBlbmQgb2YgdGhlIGxpbmUgZWl0aGVyIGJ5IG5vdCBiZWluZyBhYmxlIHRvIGZpdCBtb3JlIGNv
bnRlbnQgb3IgYmVjYXVzZSBvZiBhbiBleHBsaWNpdCBsaW5lIGJyZWFrLgotICAgICAgICBuZXh0
Q29udGVudEZvckxpbmUobGluZUNhbmRpZGF0ZSwgY3VycmVudEl0ZW1JbmRleCwgbmVlZHNMYXlv
dXRSYW5nZSwgcGFydGlhbExlYWRpbmdDb250ZW50TGVuZ3RoLCBtX2xpbmUuYXZhaWxhYmxlV2lk
dGgoKSArIG1fbGluZS50cmltbWFibGVUcmFpbGluZ1dpZHRoKCksIG1fbGluZS5jb250ZW50TG9n
aWNhbFdpZHRoKCkpOworICAgICAgICBuZXh0Q29udGVudEZvckxpbmUobGluZUNhbmRpZGF0ZSwg
Y3VycmVudEl0ZW1JbmRleCwgbmVlZHNMYXlvdXRSYW5nZSwgcGFydGlhbExlYWRpbmdDb250ZW50
TGVuZ3RoLCBhdmFpbGFibGVXaWR0aCgpICsgbV9saW5lLnRyaW1tYWJsZVRyYWlsaW5nV2lkdGgo
KSwgbV9saW5lLmNvbnRlbnRMb2dpY2FsV2lkdGgoKSk7CiAgICAgICAgIC8vIE5vdyBjaGVjayBp
ZiB3ZSBjYW4gcHV0IHRoaXMgY29udGVudCBvbiB0aGUgY3VycmVudCBsaW5lLgogICAgICAgICBh
dXRvIHJlc3VsdCA9IGhhbmRsZUZsb2F0c0FuZElubGluZUNvbnRlbnQoaW5saW5lQ29udGVudEJy
ZWFrZXIsIG5lZWRzTGF5b3V0UmFuZ2UsIGxpbmVDYW5kaWRhdGUpOwogICAgICAgICBjb21taXR0
ZWRJbmxpbmVJdGVtQ291bnQgPSByZXN1bHQuY29tbWl0dGVkQ291bnQuaXNSZXZlcnQgPyByZXN1
bHQuY29tbWl0dGVkQ291bnQudmFsdWUgOiBjb21taXR0ZWRJbmxpbmVJdGVtQ291bnQgKyByZXN1
bHQuY29tbWl0dGVkQ291bnQudmFsdWU7CkBAIC0zNTQsMTEgKzM1NSwxMSBAQCBMaW5lQnVpbGRl
cjo6SW5saW5lSXRlbVJhbmdlIExpbmVCdWlsZGVyOjpjbG9zZShjb25zdCBJbmxpbmVJdGVtUmFu
Z2UmIG5lZWRzTGF5bwogICAgICAgICAvLyBMaW5lIGlzIGVtcHR5LCB3ZSBvbmx5IG1hbmFnZWQg
dG8gcGxhY2UgZmxvYXQgYm94ZXMuCiAgICAgICAgIHJldHVybiBsaW5lUmFuZ2U7CiAgICAgfQot
ICAgIG1fbGluZS5yZW1vdmVDb2xsYXBzaWJsZUNvbnRlbnQoKTsKKyAgICBtX2xpbmUucmVtb3Zl
Q29sbGFwc2libGVDb250ZW50KGF2YWlsYWJsZVdpZHRoKCkpOwogICAgIGF1dG8gaG9yaXpvbnRh
bEFsaWdubWVudCA9IHJvb3QoKS5zdHlsZSgpLnRleHRBbGlnbigpOwogICAgIGF1dG8gcnVuc0V4
cGFuZEhvcml6b250YWxseSA9IGhvcml6b250YWxBbGlnbm1lbnQgPT0gVGV4dEFsaWduTW9kZTo6
SnVzdGlmeSAmJiAhaXNMYXN0TGluZVdpdGhJbmxpbmVDb250ZW50KGxpbmVSYW5nZSwgbmVlZHNM
YXlvdXRSYW5nZS5lbmQsIGNvbW1pdHRlZENvbnRlbnQucGFydGlhbFRyYWlsaW5nQ29udGVudExl
bmd0aCk7CiAgICAgaWYgKHJ1bnNFeHBhbmRIb3Jpem9udGFsbHkpCi0gICAgICAgIG1fbGluZS5h
cHBseVJ1bkV4cGFuc2lvbigpOworICAgICAgICBtX2xpbmUuYXBwbHlSdW5FeHBhbnNpb24oYXZh
aWxhYmxlV2lkdGgoKSk7CiAgICAgYXV0byBsaW5lRW5kc1dpdGhIeXBoZW4gPSBmYWxzZTsKICAg
ICBpZiAoIW1fbGluZS5pc0NvbnNpZGVyZWRFbXB0eSgpKSB7CiAgICAgICAgIEFTU0VSVCghbV9s
aW5lLnJ1bnMoKS5pc0VtcHR5KCkpOwpAQCAtNTcxLDEwICs1NzIsMTIgQEAgdm9pZCBMaW5lQnVp
bGRlcjo6Y29tbWl0RmxvYXRzKGNvbnN0IExpbmVDYW5kaWRhdGUmIGxpbmVDYW5kaWRhdGUsIENv
bW1pdEludHJ1c2kKICAgICAgICAgfQogICAgIH0KICAgICBpZiAobGVmdEludHJ1c2l2ZUZsb2F0
c1dpZHRoIHx8IHJpZ2h0SW50cnVzaXZlRmxvYXRzV2lkdGgpIHsKLSAgICAgICAgaWYgKGxlZnRJ
bnRydXNpdmVGbG9hdHNXaWR0aCkKKyAgICAgICAgaWYgKGxlZnRJbnRydXNpdmVGbG9hdHNXaWR0
aCkgewogICAgICAgICAgICAgbV9saW5lLm1vdmVMb2dpY2FsTGVmdChsZWZ0SW50cnVzaXZlRmxv
YXRzV2lkdGgpOworICAgICAgICAgICAgbV9ob3Jpem9udGFsU3BhY2VGb3JMaW5lIC09IGxlZnRJ
bnRydXNpdmVGbG9hdHNXaWR0aDsKKyAgICAgICAgfQogICAgICAgICBpZiAocmlnaHRJbnRydXNp
dmVGbG9hdHNXaWR0aCkKLSAgICAgICAgICAgIG1fbGluZS5tb3ZlTG9naWNhbFJpZ2h0KHJpZ2h0
SW50cnVzaXZlRmxvYXRzV2lkdGgpOworICAgICAgICAgICAgbV9ob3Jpem9udGFsU3BhY2VGb3JM
aW5lIC09IHJpZ2h0SW50cnVzaXZlRmxvYXRzV2lkdGg7CiAgICAgfQogfQogCkBAIC01OTYsNyAr
NTk5LDcgQEAgTGluZUJ1aWxkZXI6OlJlc3VsdCBMaW5lQnVpbGRlcjo6aGFuZGxlRmxvYXRzQW5k
SW5saW5lQ29udGVudChJbmxpbmVDb250ZW50QnJlYWsKIAogICAgIGF1dG8mIGZsb2F0Q29udGVu
dCA9IGxpbmVDYW5kaWRhdGUuZmxvYXRDb250ZW50OwogICAgIC8vIENoZWNrIGlmIHRoaXMgbmV3
IGNvbnRlbnQgZml0cy4KLSAgICBhdXRvIGF2YWlsYWJsZVdpZHRoID0gbV9saW5lLmF2YWlsYWJs
ZVdpZHRoKCkgLSBmbG9hdENvbnRlbnQuaW50cnVzaXZlV2lkdGgoKTsKKyAgICBhdXRvIGF2YWls
YWJsZVdpZHRoID0gdGhpcy0+YXZhaWxhYmxlV2lkdGgoKSAtIGZsb2F0Q29udGVudC5pbnRydXNp
dmVXaWR0aCgpOwogICAgIGF1dG8gaXNMaW5lQ29uc2lkZXJlZEVtcHR5ID0gbV9saW5lLmlzQ29u
c2lkZXJlZEVtcHR5KCkgJiYgIW1fY29udGVudElzQ29uc3RyYWluZWRCeUZsb2F0OwogICAgIGF1
dG8gbGluZVN0YXR1cyA9IElubGluZUNvbnRlbnRCcmVha2VyOjpMaW5lU3RhdHVzIHsgYXZhaWxh
YmxlV2lkdGgsIG1fbGluZS50cmltbWFibGVUcmFpbGluZ1dpZHRoKCksIG1fbGluZS50cmFpbGlu
Z1NvZnRIeXBoZW5XaWR0aCgpLCBtX2xpbmUuaXNUcmFpbGluZ1J1bkZ1bGx5VHJpbW1hYmxlKCks
IGlzTGluZUNvbnNpZGVyZWRFbXB0eSB9OwogICAgIGF1dG8gcmVzdWx0ID0gaW5saW5lQ29udGVu
dEJyZWFrZXIucHJvY2Vzc0lubGluZUNvbnRlbnQoY29udGludW91c0lubGluZUNvbnRlbnQsIGxp
bmVTdGF0dXMpOwpAQCAtNjg1LDcgKzY4OCw3IEBAIHNpemVfdCBMaW5lQnVpbGRlcjo6cmVidWls
ZExpbmUoY29uc3QgSW5saW5lSXRlbVJhbmdlJiBsYXlvdXRSYW5nZSwgY29uc3QgSW5saW5lCiAg
ICAgQVNTRVJUKCFtX3dyYXBPcHBvcnR1bml0eUxpc3QuaXNFbXB0eSgpKTsKICAgICAvLyBXZSBt
aWdodCBhbHJlYWR5IGhhdmUgYWRkZWQgaW50cnVzaXZlIGZsb2F0cy4gVGhleSBzaHJpbmsgdGhl
IGF2aWxhYmxlIGhvcml6b250YWwgc3BhY2UgZm9yIHRoZSBsaW5lLgogICAgIC8vIExldCdzIGp1
c3QgcmV1c2Ugd2hhdCB0aGUgbGluZSBoYXMgYXQgdGhpcyBwb2ludC4KLSAgICBtX2xpbmUuaW5p
dGlhbGl6ZShtX2xpbmUuaG9yaXpvbnRhbENvbnN0cmFpbnQoKSk7CisgICAgbV9saW5lLmluaXRp
YWxpemUoKTsKICAgICBhdXRvIGN1cnJlbnRJdGVtSW5kZXggPSBsYXlvdXRSYW5nZS5zdGFydDsK
ICAgICBpZiAobV9wYXJ0aWFsTGVhZGluZ1RleHRJdGVtKSB7CiAgICAgICAgIG1fbGluZS5hcHBl
bmQoKm1fcGFydGlhbExlYWRpbmdUZXh0SXRlbSwgaW5saW5lSXRlbVdpZHRoKCptX3BhcnRpYWxM
ZWFkaW5nVGV4dEl0ZW0sIHsgfSkpOwpAQCAtNzEzLDcgKzcxNiw3IEBAIHNpemVfdCBMaW5lQnVp
bGRlcjo6cmVidWlsZExpbmVGb3JUcmFpbGluZ1NvZnRIeXBoZW4oY29uc3QgSW5saW5lSXRlbVJh
bmdlJiBsYXlvCiAgICAgICAgIGF1dG8gY29tbWl0dGVkQ291bnQgPSByZWJ1aWxkTGluZShsYXlv
dXRSYW5nZSwgc29mdFdyYXBPcHBvcnR1bml0eUl0ZW0pOwogICAgICAgICBhdXRvIHRyYWlsaW5n
U29mdEh5cGhlbldpZHRoID0gbV9saW5lLnRyYWlsaW5nU29mdEh5cGhlbldpZHRoKCk7CiAgICAg
ICAgIC8vIENoZWNrIGlmIHRoZSB0cmFpbGluZyBoeXBoZW4gbm93IGZpdHMgdGhlIGxpbmUgKG9y
IHdlIGRvbid0IG5lZWQgaHloZW4gYW55bW9yZSkuCi0gICAgICAgIGlmICghdHJhaWxpbmdTb2Z0
SHlwaGVuV2lkdGggfHwgdHJhaWxpbmdTb2Z0SHlwaGVuV2lkdGggPD0gbV9saW5lLmF2YWlsYWJs
ZVdpZHRoKCkpIHsKKyAgICAgICAgaWYgKCF0cmFpbGluZ1NvZnRIeXBoZW5XaWR0aCB8fCB0cmFp
bGluZ1NvZnRIeXBoZW5XaWR0aCA8PSBhdmFpbGFibGVXaWR0aCgpKSB7CiAgICAgICAgICAgICBp
ZiAodHJhaWxpbmdTb2Z0SHlwaGVuV2lkdGgpCiAgICAgICAgICAgICAgICAgbV9saW5lLmFkZFRy
YWlsaW5nSHlwaGVuKCp0cmFpbGluZ1NvZnRIeXBoZW5XaWR0aCk7CiAgICAgICAgICAgICByZXR1
cm4gY29tbWl0dGVkQ291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaAppbmRleCAxNDEzMGJlMTg1N2Zj
ZTM4MWI3OGVkNGY1ZjRkMTBhMTYzMTIwOWQyLi45NzZkM2FhMWM1M2U5NDI4NDViYzcwODQxYTE2
Mzk3MDAyMGUyOTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVi
bGljOgogICAgICAgICBib29sIGlzTGFzdExpbmVXaXRoSW5saW5lQ29udGVudCB7IHRydWUgfTsK
ICAgICAgICAgY29uc3QgTGluZTo6UnVuTGlzdCYgcnVuczsKICAgICB9OwotICAgIExpbmVDb250
ZW50IGxheW91dElubGluZUNvbnRlbnQoY29uc3QgSW5saW5lSXRlbVJhbmdlJiwgc2l6ZV90IHBh
cnRpYWxMZWFkaW5nQ29udGVudExlbmd0aCwgY29uc3QgSW5saW5lUmVjdCYgaW5pdGlhbExpbmVD
b25zdHJhaW50cywgYm9vbCBpc0ZpcnN0TGluZSk7CisgICAgTGluZUNvbnRlbnQgbGF5b3V0SW5s
aW5lQ29udGVudChjb25zdCBJbmxpbmVJdGVtUmFuZ2UmLCBzaXplX3QgcGFydGlhbExlYWRpbmdD
b250ZW50TGVuZ3RoLCBjb25zdCBJbmxpbmVSZWN0JiBpbml0aWFsQ29uc3RyYWludHNGb3JMaW5l
LCBib29sIGlzRmlyc3RMaW5lKTsKIAogICAgIHN0cnVjdCBJbnRyaW5zaWNDb250ZW50IHsKICAg
ICAgICAgSW5saW5lSXRlbVJhbmdlIGlubGluZUl0ZW1SYW5nZTsKQEAgLTg4LDcgKzg4LDcgQEAg
cHJpdmF0ZToKICAgICBlbnVtIGNsYXNzIENvbW1pdEludHJ1c2l2ZUZsb2F0c09ubHkgeyBObywg
WWVzIH07CiAgICAgc3RydWN0IFVzZWRDb25zdHJhaW50cyB7CiAgICAgICAgIElubGluZUxheW91
dFVuaXQgbG9naWNhbExlZnQgeyAwIH07Ci0gICAgICAgIElubGluZUxheW91dFVuaXQgYXZhaWxh
YmxlTG9naWNhbFdpZHRoIHsgMCB9OworICAgICAgICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxX
aWR0aCB7IDAgfTsKICAgICAgICAgYm9vbCBpc0NvbnN0cmFpbmVkQnlGbG9hdCB7IGZhbHNlIH07
CiAgICAgfTsKICAgICBVc2VkQ29uc3RyYWludHMgY29uc3RyYWludHNGb3JMaW5lKGNvbnN0IElu
bGluZVJlY3QmIGluaXRpYWxMaW5lQ29uc3RyYWludHMsIGJvb2wgaXNGaXJzdExpbmUpOwpAQCAt
MTA3LDYgKzEwNyw3IEBAIHByaXZhdGU6CiAKICAgICBJbmxpbmVMYXlvdXRVbml0IGlubGluZUl0
ZW1XaWR0aChjb25zdCBJbmxpbmVJdGVtJiwgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNh
bExlZnQpIGNvbnN0OwogICAgIGJvb2wgaXNMYXN0TGluZVdpdGhJbmxpbmVDb250ZW50KGNvbnN0
IElubGluZUl0ZW1SYW5nZSYgbGluZVJhbmdlLCBzaXplX3QgbGFzdElubGluZUl0ZW1JbmRleCwg
Ym9vbCBoYXNQYXJ0aWFsVHJhaWxpbmdDb250ZW50KSBjb25zdDsKKyAgICBJbmxpbmVMYXlvdXRV
bml0IGF2YWlsYWJsZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9ob3Jpem9udGFsU3BhY2VGb3JM
aW5lIC0gbV9saW5lLmNvbnRlbnRMb2dpY2FsV2lkdGgoKTsgfQogCiAgICAgY29uc3QgSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9p
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDsgfQogICAgIGNvbnN0IENvbnRhaW5lckJveCYgcm9vdCgp
IGNvbnN0IHsgcmV0dXJuIG1fZm9ybWF0dGluZ0NvbnRleHRSb290OyB9CkBAIC0xMTYsNiArMTE3
LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBGbG9hdGluZ0NvbnRleHQmIG1fZmxvYXRpbmdDb250
ZXh0OwogICAgIGNvbnN0IENvbnRhaW5lckJveCYgbV9mb3JtYXR0aW5nQ29udGV4dFJvb3Q7CiAg
ICAgTGluZSBtX2xpbmU7CisgICAgSW5saW5lTGF5b3V0VW5pdCBtX2hvcml6b250YWxTcGFjZUZv
ckxpbmUgeyAwIH07CiAgICAgY29uc3QgSW5saW5lSXRlbXMmIG1faW5saW5lSXRlbXM7CiAgICAg
TGluZUNvbnRlbnQ6OkZsb2F0TGlzdCBtX2Zsb2F0czsKICAgICBPcHRpb25hbDxJbmxpbmVUZXh0
SXRlbT4gbV9wYXJ0aWFsTGVhZGluZ1RleHRJdGVtOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>