<?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>216338</bug_id>
          
          <creation_ts>2020-09-09 18:58:20 -0700</creation_ts>
          <short_desc>[LFC][IFC] Share code when constructing LineBox::InlineBox for the atomic inline-level box</short_desc>
          <delta_ts>2020-09-10 11:58:15 -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>1687222</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-09-09 18:58:20 -0700</bug_when>
    <thetext>just a rename to match spec language.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687227</commentid>
    <comment_count>1</comment_count>
      <attachid>408398</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-09-09 19:09:18 -0700</bug_when>
    <thetext>Created attachment 408398
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687237</commentid>
    <comment_count>2</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-09-09 19:36:52 -0700</bug_when>
    <thetext>Let&apos;s keep the InlineBox name around in the context of LineBox to represent the box of a some inline content -and it should not be confused with the associated Layout::Box which is not necessarily an inline box (but always an inline level box)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687248</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-09-09 20:03:12 -0700</bug_when>
    <thetext>Let&apos;s just repurpose this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687249</commentid>
    <comment_count>4</comment_count>
      <attachid>408407</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-09-09 20:05:08 -0700</bug_when>
    <thetext>Created attachment 408407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687485</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-10 11:57:26 -0700</bug_when>
    <thetext>Committed r266848: &lt;https://trac.webkit.org/changeset/266848&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 408407.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687487</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-10 11:58:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/68656372&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>408398</attachid>
            <date>2020-09-09 19:09:18 -0700</date>
            <delta_ts>2020-09-09 19:32:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216338-20200909190917.patch</filename>
            <type>text/plain</type>
            <size>29600</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2NjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTkyMzc5Yzg0OTc3NDA0
MDhiYmE3YjZjOTU4NmVhMDNhNzk3YTVhZi4uZDEyY2RiYWIyMjc5YjA3ZThiZmZlYjJhNmJlMzMw
MjVmYTMwNTg5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTA5LTA5ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBOb3QgZXZl
cnkgaW5saW5lIGxldmVsIGJveCBpcyBpbmxpbmUgYm94CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTYzMzgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGp1c3QgYSByZW5hbWUgdG8gbWF0Y2gg
c3BlYyBsYW5ndWFnZS4KKyAgICAgICAgKE5vdGUgdGhhdCBpbiBjZXJ0YWluIGNhc2VzIHdlIHN0
aWxsIHVzZSB0aGUgImlubGluZSBib3giIHRlcm0gKGUuZy4gcGFyZW50IGlubGluZSBib3gpIHRv
IG1hdGNoIHRoZSBzcGVjLikKKworICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lu
bGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNyZWF0ZURpc3BsYXlCb3hlc0ZvckxpbmVDb250ZW50KToK
KyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6SW5saW5lTGV2ZWxCb3g6OklubGluZUxl
dmVsQm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6bV9pbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OmxvZ2ljYWxSZWN0Rm9y
VGV4dFJ1biBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OmNvbnN0
cnVjdEJveGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6Y29tcHV0ZUJv
eGVzTG9naWNhbEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OmFs
aWduQm94ZXNWZXJ0aWNhbGx5QW5kQ29tcHV0ZUxpbmVCb3hIZWlnaHQpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lQm94OjpJbmxpbmVCb3g6OklubGluZUJveCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OmlubGluZVJlY3RGb3JUZXh0UnVuIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6Y29uc3Ry
dWN0SW5saW5lQm94ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5l
Qm94Ojpjb21wdXRlSW5saW5lQm94ZXNMb2dpY2FsSGVpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6YWxpZ25JbmxpbmVCb3hlc1ZlcnRpY2FsbHlBbmRD
b21wdXRlTGluZUJveEhlaWdodCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lTGluZUJveC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5l
Qm94OjppbmxpbmVMZXZlbEJveEZvckxheW91dEJveCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmVCb3g6OmlubGluZUxldmVsQm94Rm9yTGF5b3V0Qm94KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6SW5saW5lQm94Ojpsb2dpY2FsUmVjdCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OklubGluZUJveDo6
bG9naWNhbFRvcCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Okxp
bmVCb3g6OklubGluZUJveDo6bG9naWNhbEJvdHRvbSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OklubGluZUJveDo6bG9naWNhbExlZnQgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpJbmxpbmVCb3g6
OmxvZ2ljYWxXaWR0aCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkxpbmVCb3g6OklubGluZUJveDo6bG9naWNhbEhlaWdodCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OklubGluZUJveDo6YmFzZWxpbmUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpJbmxpbmVCb3g6
OmRlc2NlbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5l
Qm94OjpJbmxpbmVCb3g6OmlzRW1wdHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lQm94OjpJbmxpbmVCb3g6OnNldElzTm9uRW1wdHkpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpJbmxpbmVCb3g6OmxheW91dEJveCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OklubGlu
ZUJveDo6c2V0TG9naWNhbFRvcCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkxpbmVCb3g6OklubGluZUJveDo6c2V0TG9naWNhbFdpZHRoKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6SW5saW5lQm94OjpzZXRMb2dpY2FsSGVpZ2h0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6SW5saW5lQm94Ojpz
ZXRCYXNlbGluZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6
OmlubGluZUJveEZvckxheW91dEJveCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmVCb3g6OmlubGluZUJveEZvckxheW91dEJveCk6IERlbGV0ZWQuCisKIDIw
MjAtMDktMDggIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZD
XVtJRkNdIExpbmVCdWlsZGVyOjpyZWJ1aWxkTGluZSBzaG91bGQganVzdCByZS1pbml0aWFsaXpl
IHRoZSBjdXJyZW50IGxpbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRl
eCBlNjlhNDQ0YjQ5MzIyYzQ0NmY3N2ZiOTY3YjY3ZWQyY2FkZGNlM2Q0Li4yMWZkYTMyMTU3YTA0
ZWQyZmNjOTMyNmI1ZjZiYmQ2ZjRjY2YyMzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQuY3BwCkBAIC00ODUsNyArNDg1LDcgQEAgRGlzcGxheTo6SW5saW5lUmVjdCBJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dDo6Y3JlYXRlRGlzcGxheUJveGVzRm9yTGluZUNvbnRlbnQoY28KICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgcmV0dXJuIGlua092ZXJmbG93OwogICAg
ICAgICAgICAgfTsKLSAgICAgICAgICAgIGF1dG8gbG9naWNhbFJlY3QgPSBsaW5lUnVuLmlzQm94
KCkgPyBsaW5lQm94LmlubGluZUJveEZvckxheW91dEJveChsYXlvdXRCb3gpLmxvZ2ljYWxSZWN0
KCkgOiBsaW5lQm94LmlubGluZVJlY3RGb3JUZXh0UnVuKGxpbmVSdW4pOworICAgICAgICAgICAg
YXV0byBsb2dpY2FsUmVjdCA9IGxpbmVSdW4uaXNCb3goKSA/IGxpbmVCb3guaW5saW5lTGV2ZWxC
b3hGb3JMYXlvdXRCb3gobGF5b3V0Qm94KS5sb2dpY2FsUmVjdCgpIDogbGluZUJveC5sb2dpY2Fs
UmVjdEZvclRleHRSdW4obGluZVJ1bik7CiAgICAgICAgICAgICAvLyBJbmxpbmUgYm94ZXMgYXJl
IHJlbGF0aXZlIHRvIHRoZSBsaW5lIGJveCB3aGlsZSBmaW5hbCBEaXNwbGF5OjpSdW5zIG5lZWQg
dG8gYmUgcmVsYXRpdmUgdG8gdGhlIHBhcmVudCBEaXNwbGF5OkJveAogICAgICAgICAgICAgLy8g
RklYTUU6IFNob3VsZG4ndCB3ZSBqdXN0IGxlYXZlIHRoZW0gYmUgcmVsYXRpdmUgdG8gdGhlIGxp
bmUgYm94PwogICAgICAgICAgICAgbG9naWNhbFJlY3QubW92ZUJ5KHsgbGluZUxvZ2ljYWxSZWN0
LmxlZnQoKSwgbGluZUxvZ2ljYWxSZWN0LnRvcCgpICsgbGluZUJveFZlcnRpY2FsT2Zmc2V0IH0p
OwpAQCAtNDk5LDE4ICs0OTksMTggQEAgRGlzcGxheTo6SW5saW5lUmVjdCBJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dDo6Y3JlYXRlRGlzcGxheUJveGVzRm9yTGluZUNvbnRlbnQoY28KICAgICAgICAg
YXV0byBpbml0aWF0ZXNEaXNwbGF5Qm94ID0gbGluZVJ1bi5pc0JveCgpIHx8IGxpbmVSdW4uaXND
b250YWluZXJTdGFydCgpOwogICAgICAgICBpZiAoaW5pdGlhdGVzRGlzcGxheUJveCkgewogICAg
ICAgICAgICAgYXV0byYgZGlzcGxheUJveCA9IGZvcm1hdHRpbmdTdGF0ZS5kaXNwbGF5Qm94KGxh
eW91dEJveCk7Ci0gICAgICAgICAgICBhdXRvJiBpbmxpbmVCb3ggPSBsaW5lQm94LmlubGluZUJv
eEZvckxheW91dEJveChsYXlvdXRCb3gpOwotICAgICAgICAgICAgYXV0byB0b3BMZWZ0ID0gaW5s
aW5lQm94LmxvZ2ljYWxSZWN0KCkudG9wTGVmdCgpOworICAgICAgICAgICAgYXV0byYgaW5saW5l
TGV2ZWxCb3ggPSBsaW5lQm94LmlubGluZUxldmVsQm94Rm9yTGF5b3V0Qm94KGxheW91dEJveCk7
CisgICAgICAgICAgICBhdXRvIHRvcExlZnQgPSBpbmxpbmVMZXZlbEJveC5sb2dpY2FsUmVjdCgp
LnRvcExlZnQoKTsKICAgICAgICAgICAgIHRvcExlZnQubW92ZSh7IH0sIGxpbmVCb3hWZXJ0aWNh
bE9mZnNldCk7CiAgICAgICAgICAgICBpZiAobGF5b3V0Qm94LmlzSW5GbG93UG9zaXRpb25lZCgp
KQogICAgICAgICAgICAgICAgIHRvcExlZnQgKz0gZ2VvbWV0cnkoKS5pbkZsb3dQb3NpdGlvbmVk
UG9zaXRpb25PZmZzZXQobGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOwogICAgICAg
ICAgICAgZGlzcGxheUJveC5zZXRUb3BMZWZ0KHRvTGF5b3V0UG9pbnQodG9wTGVmdCkpOwogICAg
ICAgICAgICAgaWYgKGxpbmVSdW4uaXNDb250YWluZXJTdGFydCgpKSB7Ci0gICAgICAgICAgICAg
ICAgYXV0byBtYXJnaW5Cb3hXaWR0aCA9IGlubGluZUJveC5sb2dpY2FsV2lkdGgoKTsKKyAgICAg
ICAgICAgICAgICBhdXRvIG1hcmdpbkJveFdpZHRoID0gaW5saW5lTGV2ZWxCb3gubG9naWNhbFdp
ZHRoKCk7CiAgICAgICAgICAgICAgICAgYXV0byBjb250ZW50Qm94V2lkdGggPSBtYXJnaW5Cb3hX
aWR0aCAtIChkaXNwbGF5Qm94Lm1hcmdpblN0YXJ0KCkgKyBkaXNwbGF5Qm94LmJvcmRlckxlZnQo
KSArIGRpc3BsYXlCb3gucGFkZGluZ0xlZnQoKS52YWx1ZU9yKDApKTsKICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogRml4IGl0IGZvciBtdWx0aWxpbmUuCiAgICAgICAgICAgICAgICAgZGlzcGxh
eUJveC5zZXRDb250ZW50Qm94V2lkdGgodG9MYXlvdXRVbml0KGNvbnRlbnRCb3hXaWR0aCkpOwot
ICAgICAgICAgICAgICAgIGRpc3BsYXlCb3guc2V0Q29udGVudEJveEhlaWdodCh0b0xheW91dFVu
aXQoaW5saW5lQm94LmxvZ2ljYWxIZWlnaHQoKSkpOworICAgICAgICAgICAgICAgIGRpc3BsYXlC
b3guc2V0Q29udGVudEJveEhlaWdodCh0b0xheW91dFVuaXQoaW5saW5lTGV2ZWxCb3gubG9naWNh
bEhlaWdodCgpKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3gu
Y3BwCmluZGV4IDA1ZTQ0MTIwOTcwNGFkNzZhY2QzODI0MTJmNTk3ZTY4Nzg2ZWVhNzAuLjIwZTUy
ODQzNTI2Zjg3OTFjNjA3ZjRiNDllMmRiZGQ2NWJmZTc3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guY3BwCkBA
IC0xMTcsNyArMTE3LDcgQEAgc3RhdGljIE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IGhvcml6
b250YWxBbGlnbm1lbnRPZmZzZXQoY29uc3QgTGluZTo6UnVuTGlzdCYKICAgICByZXR1cm4geyB9
OwogfQogCi1MaW5lQm94OjpJbmxpbmVCb3g6OklubGluZUJveChjb25zdCBCb3gmIGxheW91dEJv
eCwgY29uc3QgRGlzcGxheTo6SW5saW5lUmVjdCYgcmVjdCwgSW5saW5lTGF5b3V0VW5pdCBiYXNl
bGluZSwgSW5saW5lTGF5b3V0VW5pdCBkZXNjZW50LCBJc0NvbnNpZGVyZWRFbXB0eSBpc0NvbnNp
ZGVyZWRFbXB0eSkKK0xpbmVCb3g6OklubGluZUxldmVsQm94OjpJbmxpbmVMZXZlbEJveChjb25z
dCBCb3gmIGxheW91dEJveCwgY29uc3QgRGlzcGxheTo6SW5saW5lUmVjdCYgcmVjdCwgSW5saW5l
TGF5b3V0VW5pdCBiYXNlbGluZSwgSW5saW5lTGF5b3V0VW5pdCBkZXNjZW50LCBJc0NvbnNpZGVy
ZWRFbXB0eSBpc0NvbnNpZGVyZWRFbXB0eSkKICAgICA6IG1fbGF5b3V0Qm94KG1ha2VXZWFrUHRy
KGxheW91dEJveCkpCiAgICAgLCBtX2xvZ2ljYWxSZWN0KHJlY3QpCiAgICAgLCBtX2Jhc2VsaW5l
KGJhc2VsaW5lKQpAQCAtMTMyLDIwICsxMzIsMjAgQEAgTGluZUJveDo6TGluZUJveChjb25zdCBJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgaW5saW5lRm9ybWF0dGluZ0NvbnRleHQsIElubGluZUwK
ICAgICAsIG1faW5saW5lRm9ybWF0dGluZ0NvbnRleHQoaW5saW5lRm9ybWF0dGluZ0NvbnRleHQp
CiB7CiAgICAgbV9ob3Jpem9udGFsQWxpZ25tZW50T2Zmc2V0ID0gTGF5b3V0Ojpob3Jpem9udGFs
QWxpZ25tZW50T2Zmc2V0KHJ1bnMsIHJvb3QoKS5zdHlsZSgpLnRleHRBbGlnbigpLCBsaW5lTG9n
aWNhbFdpZHRoLCBjb250ZW50TG9naWNhbFdpZHRoLCBpc0xhc3RMaW5lV2l0aElubGluZUNvbnRl
bnQpOwotICAgIGNvbnN0cnVjdElubGluZUJveGVzKHJ1bnMpOwotICAgIGNvbXB1dGVJbmxpbmVC
b3hlc0xvZ2ljYWxIZWlnaHQoKTsKLSAgICBhbGlnbklubGluZUJveGVzVmVydGljYWxseUFuZENv
bXB1dGVMaW5lQm94SGVpZ2h0KCk7CisgICAgY29uc3RydWN0Qm94ZXMocnVucyk7CisgICAgY29t
cHV0ZUJveGVzTG9naWNhbEhlaWdodCgpOworICAgIGFsaWduQm94ZXNWZXJ0aWNhbGx5QW5kQ29t
cHV0ZUxpbmVCb3hIZWlnaHQoKTsKIH0KIAotRGlzcGxheTo6SW5saW5lUmVjdCBMaW5lQm94Ojpp
bmxpbmVSZWN0Rm9yVGV4dFJ1bihjb25zdCBMaW5lOjpSdW4mIHJ1bikgY29uc3QKK0Rpc3BsYXk6
OklubGluZVJlY3QgTGluZUJveDo6bG9naWNhbFJlY3RGb3JUZXh0UnVuKGNvbnN0IExpbmU6OlJ1
biYgcnVuKSBjb25zdAogewogICAgIEFTU0VSVChydW4uaXNUZXh0KCkgfHwgcnVuLmlzTGluZUJy
ZWFrKCkpOwotICAgIGF1dG8mIHBhcmVudElubGluZUJveCA9IGlubGluZUJveEZvckxheW91dEJv
eChydW4ubGF5b3V0Qm94KCkucGFyZW50KCkpOworICAgIGF1dG8mIHBhcmVudElubGluZUJveCA9
IGlubGluZUxldmVsQm94Rm9yTGF5b3V0Qm94KHJ1bi5sYXlvdXRCb3goKS5wYXJlbnQoKSk7CiAg
ICAgYXV0byBpbmxpbmVCb3hSZWN0ID0gcGFyZW50SW5saW5lQm94LmxvZ2ljYWxSZWN0KCk7CiAg
ICAgcmV0dXJuIHsgaW5saW5lQm94UmVjdC50b3AoKSwgbV9ob3Jpem9udGFsQWxpZ25tZW50T2Zm
c2V0LnZhbHVlT3IoSW5saW5lTGF5b3V0VW5pdCB7IH0pICsgcnVuLmxvZ2ljYWxMZWZ0KCksIHJ1
bi5sb2dpY2FsV2lkdGgoKSwgaW5saW5lQm94UmVjdC5oZWlnaHQoKSB9OwogfQogCi12b2lkIExp
bmVCb3g6OmNvbnN0cnVjdElubGluZUJveGVzKGNvbnN0IExpbmU6OlJ1bkxpc3QmIHJ1bnMpCit2
b2lkIExpbmVCb3g6OmNvbnN0cnVjdEJveGVzKGNvbnN0IExpbmU6OlJ1bkxpc3QmIHJ1bnMpCiB7
CiAgICAgYXV0byBjb25zdHJ1Y3RSb290SW5saW5lQm94ID0gWyZdIHsKICAgICAgICAgYXV0byYg
Zm9udE1ldHJpY3MgPSByb290KCkuc3R5bGUoKS5mb250TWV0cmljcygpOwpAQCAtMTU0LDIyICsx
NTQsMjAgQEAgdm9pZCBMaW5lQm94Ojpjb25zdHJ1Y3RJbmxpbmVCb3hlcyhjb25zdCBMaW5lOjpS
dW5MaXN0JiBydW5zKQogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IGJhc2VsaW5lID0gZm9udE1l
dHJpY3MuYXNjZW50KCk7CiAgICAgICAgIGF1dG8gZGVzY2VudCA9IGxvZ2ljYWxIZWlnaHQgLSBi
YXNlbGluZTsKICAgICAgICAgYXV0byBsaW5lSGFzSW1hZ2luYXJ5U3RydXQgPSAhbGF5b3V0U3Rh
dGUoKS5pblF1aXJrc01vZGUoKTsKLSAgICAgICAgYXV0byBpc0luaXRpYWxseUNvbnNpZGVyZWRF
bXB0eSA9ICAhbV9pc0xpbmVWaXN1YWxseUVtcHR5ICYmIGxpbmVIYXNJbWFnaW5hcnlTdHJ1dCA/
IElubGluZUJveDo6SXNDb25zaWRlcmVkRW1wdHk6Ok5vIDogSW5saW5lQm94OjpJc0NvbnNpZGVy
ZWRFbXB0eTo6WWVzOwotICAgICAgICBtX3Jvb3RJbmxpbmVCb3ggPSBJbmxpbmVCb3ggeyByb290
KCksIGxvZ2ljYWxSZWN0LCBiYXNlbGluZSwgZGVzY2VudCwgaXNJbml0aWFsbHlDb25zaWRlcmVk
RW1wdHkgfTsKLSAgICAgICAgbV9pbmxpbmVCb3hSZWN0TWFwLnNldCgmcm9vdCgpLCAmbV9yb290
SW5saW5lQm94KTsKKyAgICAgICAgYXV0byBpc0luaXRpYWxseUNvbnNpZGVyZWRFbXB0eSA9ICAh
bV9pc0xpbmVWaXN1YWxseUVtcHR5ICYmIGxpbmVIYXNJbWFnaW5hcnlTdHJ1dCA/IElubGluZUxl
dmVsQm94OjpJc0NvbnNpZGVyZWRFbXB0eTo6Tm8gOiBJbmxpbmVMZXZlbEJveDo6SXNDb25zaWRl
cmVkRW1wdHk6OlllczsKKyAgICAgICAgbV9yb290SW5saW5lQm94ID0gSW5saW5lTGV2ZWxCb3gg
eyByb290KCksIGxvZ2ljYWxSZWN0LCBiYXNlbGluZSwgZGVzY2VudCwgaXNJbml0aWFsbHlDb25z
aWRlcmVkRW1wdHkgfTsKKyAgICAgICAgbV9pbmxpbmVMZXZlbEJveFJlY3RNYXAuc2V0KCZyb290
KCksICZtX3Jvb3RJbmxpbmVCb3gpOwogICAgIH07CiAgICAgY29uc3RydWN0Um9vdElubGluZUJv
eCgpOwogCiAgICAgZm9yIChhdXRvJiBydW4gOiBydW5zKSB7CiAgICAgICAgIGF1dG8mIGxheW91
dEJveCA9IHJ1bi5sYXlvdXRCb3goKTsKICAgICAgICAgaWYgKHJ1bi5pc0JveCgpKSB7CisgICAg
ICAgICAgICBhdXRvIGxvZ2ljYWxMZWZ0ID0gbV9ob3Jpem9udGFsQWxpZ25tZW50T2Zmc2V0LnZh
bHVlT3IoSW5saW5lTGF5b3V0VW5pdCB7IH0pICsgcnVuLmxvZ2ljYWxMZWZ0KCk7CiAgICAgICAg
ICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JC
b3gobGF5b3V0Qm94KTsKLSAgICAgICAgICAgIGF1dG8gaW5saW5lQm94TG9naWNhbExlZnQgPSBt
X2hvcml6b250YWxBbGlnbm1lbnRPZmZzZXQudmFsdWVPcihJbmxpbmVMYXlvdXRVbml0IHsgfSkg
KyBydW4ubG9naWNhbExlZnQoKTsKKyAgICAgICAgICAgIGF1dG8gbG9naWNhbEhlaWdodCA9IGJv
eEdlb21ldHJ5Lm1hcmdpbkJveEhlaWdodCgpOworICAgICAgICAgICAgYXV0byBiYXNlbGluZSA9
IGxvZ2ljYWxIZWlnaHQ7CiAgICAgICAgICAgICBpZiAobGF5b3V0Qm94LmlzSW5saW5lQmxvY2tC
b3goKSAmJiBsYXlvdXRCb3guZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpKSB7
Ci0gICAgICAgICAgICAgICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0gbGF5b3V0U3RhdGUoKS5l
c3RhYmxpc2hlZElubGluZUZvcm1hdHRpbmdTdGF0ZShkb3duY2FzdDxDb250YWluZXJCb3g+KGxh
eW91dEJveCkpOwotICAgICAgICAgICAgICAgIC8vIFNwZWMgbWFrZXMgdXMgZ2VuZXJhdGUgYXQg
bGVhc3Qgb25lIGxpbmUgLWV2ZW4gaWYgaXQgaXMgZW1wdHkuCi0gICAgICAgICAgICAgICAgYXV0
byYgbGFzdExpbmUgPSBmb3JtYXR0aW5nU3RhdGUuZGlzcGxheUlubGluZUNvbnRlbnQoKS0+bGlu
ZXMubGFzdCgpOwotICAgICAgICAgICAgICAgIGF1dG8gaW5saW5lQmxvY2tCYXNlbGluZSA9IGxh
c3RMaW5lLnRvcCgpICsgbGFzdExpbmUuYmFzZWxpbmUoKTsKICAgICAgICAgICAgICAgICAvLyBU
aGUgaW5saW5lLWJsb2NrJ3MgYmFzZWxpbmUgb2Zmc2V0IGlzIHJlbGF0aXZlIHRvIGl0cyBjb250
ZW50IGJveC4gTGV0J3MgY29udmVydCBpdCByZWxhdGl2ZSB0byB0aGUgbWFyZ2luIGJveC4KICAg
ICAgICAgICAgICAgICAvLyAgICAgICAgICAgX19fX19fX19fX19fX19fIDwtIG1hcmdpbiBib3gK
ICAgICAgICAgICAgICAgICAvLyAgICAgICAgICB8CkBAIC0xODIsMTggKzE4MCwxNSBAQCB2b2lk
IExpbmVCb3g6OmNvbnN0cnVjdElubGluZUJveGVzKGNvbnN0IExpbmU6OlJ1bkxpc3QmIHJ1bnMp
CiAgICAgICAgICAgICAgICAgLy8gICAgIHRleHQgfCB8IHwgICB2IHRleHQKICAgICAgICAgICAg
ICAgICAvLyAgICAgLS0tLS18LXwtfC0tLS0tLS0tLS0gPC0gYmFzZWxpbmUKICAgICAgICAgICAg
ICAgICAvLwotICAgICAgICAgICAgICAgIGF1dG8gYWRqdXN0ZWRCYXNlbGluZSA9IGJveEdlb21l
dHJ5Lm1hcmdpbkJlZm9yZSgpICsgYm94R2VvbWV0cnkuYm9yZGVyVG9wKCkgKyBib3hHZW9tZXRy
eS5wYWRkaW5nVG9wKCkudmFsdWVPcigwKSArIGlubGluZUJsb2NrQmFzZWxpbmU7Ci0gICAgICAg
ICAgICAgICAgYXV0byBpbmxpbmVCb3hSZWN0ID0gRGlzcGxheTo6SW5saW5lUmVjdCB7IHsgfSwg
aW5saW5lQm94TG9naWNhbExlZnQsIHJ1bi5sb2dpY2FsV2lkdGgoKSwgYm94R2VvbWV0cnkubWFy
Z2luQm94SGVpZ2h0KCkgfTsKLSAgICAgICAgICAgICAgICBhdXRvIGlubGluZUJveCA9IG1ha2VV
bmlxdWU8SW5saW5lQm94PihsYXlvdXRCb3gsIGlubGluZUJveFJlY3QsIGFkanVzdGVkQmFzZWxp
bmUsIElubGluZUxheW91dFVuaXQgeyB9LCBJbmxpbmVCb3g6OklzQ29uc2lkZXJlZEVtcHR5OjpO
byk7Ci0gICAgICAgICAgICAgICAgbV9pbmxpbmVCb3hSZWN0TWFwLnNldCgmbGF5b3V0Qm94LCBp
bmxpbmVCb3guZ2V0KCkpOwotICAgICAgICAgICAgICAgIG1faW5saW5lQm94TGlzdC5hcHBlbmQo
V1RGTW92ZShpbmxpbmVCb3gpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgYXV0byBydW5IZWlnaHQgPSBib3hHZW9tZXRyeS5tYXJnaW5Cb3hIZWlnaHQoKTsKLSAgICAg
ICAgICAgICAgICBhdXRvIGlubGluZUJveFJlY3QgPSBEaXNwbGF5OjpJbmxpbmVSZWN0IHsgeyB9
LCBpbmxpbmVCb3hMb2dpY2FsTGVmdCwgcnVuLmxvZ2ljYWxXaWR0aCgpLCBydW5IZWlnaHQgfTsK
LSAgICAgICAgICAgICAgICBhdXRvIGlubGluZUJveCA9IG1ha2VVbmlxdWU8SW5saW5lQm94Pihs
YXlvdXRCb3gsIGlubGluZUJveFJlY3QsIHJ1bkhlaWdodCwgSW5saW5lTGF5b3V0VW5pdCB7IH0s
IElubGluZUJveDo6SXNDb25zaWRlcmVkRW1wdHk6Ok5vKTsKLSAgICAgICAgICAgICAgICBtX2lu
bGluZUJveFJlY3RNYXAuc2V0KCZsYXlvdXRCb3gsIGlubGluZUJveC5nZXQoKSk7Ci0gICAgICAg
ICAgICAgICAgbV9pbmxpbmVCb3hMaXN0LmFwcGVuZChXVEZNb3ZlKGlubGluZUJveCkpOworICAg
ICAgICAgICAgICAgIGF1dG8mIGZvcm1hdHRpbmdTdGF0ZSA9IGxheW91dFN0YXRlKCkuZXN0YWJs
aXNoZWRJbmxpbmVGb3JtYXR0aW5nU3RhdGUoZG93bmNhc3Q8Q29udGFpbmVyQm94PihsYXlvdXRC
b3gpKTsKKyAgICAgICAgICAgICAgICBhdXRvJiBsYXN0TGluZSA9IGZvcm1hdHRpbmdTdGF0ZS5k
aXNwbGF5SW5saW5lQ29udGVudCgpLT5saW5lcy5sYXN0KCk7CisgICAgICAgICAgICAgICAgYXV0
byBpbmxpbmVCbG9ja0Jhc2VsaW5lID0gbGFzdExpbmUudG9wKCkgKyBsYXN0TGluZS5iYXNlbGlu
ZSgpOworICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gYm94R2VvbWV0cnkubWFyZ2luQmVmb3Jl
KCkgKyBib3hHZW9tZXRyeS5ib3JkZXJUb3AoKSArIGJveEdlb21ldHJ5LnBhZGRpbmdUb3AoKS52
YWx1ZU9yKDApICsgaW5saW5lQmxvY2tCYXNlbGluZTsKICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGF1dG8gcmVjdCA9IERpc3BsYXk6OklubGluZVJlY3QgeyB7IH0sIGxvZ2ljYWxMZWZ0LCBy
dW4ubG9naWNhbFdpZHRoKCksIGxvZ2ljYWxIZWlnaHQgfTsKKyAgICAgICAgICAgIGF1dG8gYXRv
bWljSW5saW5lTGV2ZWxCb3ggPSBtYWtlVW5pcXVlPElubGluZUxldmVsQm94PihsYXlvdXRCb3gs
IHJlY3QsIGJhc2VsaW5lLCBJbmxpbmVMYXlvdXRVbml0IHsgfSwgSW5saW5lTGV2ZWxCb3g6Oklz
Q29uc2lkZXJlZEVtcHR5OjpObyk7CisgICAgICAgICAgICBtX2lubGluZUxldmVsQm94UmVjdE1h
cC5zZXQoJmxheW91dEJveCwgYXRvbWljSW5saW5lTGV2ZWxCb3guZ2V0KCkpOworICAgICAgICAg
ICAgbV9pbmxpbmVMZXZlbEJveExpc3QuYXBwZW5kKFdURk1vdmUoYXRvbWljSW5saW5lTGV2ZWxC
b3gpKTsKICAgICAgICAgfSBlbHNlIGlmIChydW4uaXNDb250YWluZXJTdGFydCgpKSB7CiAgICAg
ICAgICAgICBhdXRvIGlubGluZUJveExvZ2ljYWxMZWZ0ID0gbV9ob3Jpem9udGFsQWxpZ25tZW50
T2Zmc2V0LnZhbHVlT3IoSW5saW5lTGF5b3V0VW5pdCB7IH0pICsgcnVuLmxvZ2ljYWxMZWZ0KCk7
CiAgICAgICAgICAgICBhdXRvIGluaXRpYWxXaWR0aCA9IGxvZ2ljYWxXaWR0aCgpIC0gcnVuLmxv
Z2ljYWxMZWZ0KCk7CkBAIC0yMDIsNTcgKzE5Nyw1NyBAQCB2b2lkIExpbmVCb3g6OmNvbnN0cnVj
dElubGluZUJveGVzKGNvbnN0IExpbmU6OlJ1bkxpc3QmIHJ1bnMpCiAgICAgICAgICAgICBJbmxp
bmVMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSBmb250TWV0cmljcy5oZWlnaHQoKTsKICAgICAg
ICAgICAgIElubGluZUxheW91dFVuaXQgYmFzZWxpbmUgPSBmb250TWV0cmljcy5hc2NlbnQoKTsK
ICAgICAgICAgICAgIGF1dG8gaW5saW5lQm94UmVjdCA9IERpc3BsYXk6OklubGluZVJlY3QgeyB7
IH0sIGlubGluZUJveExvZ2ljYWxMZWZ0LCBpbml0aWFsV2lkdGgsIGxvZ2ljYWxIZWlnaHQgfTsK
LSAgICAgICAgICAgIGF1dG8gaW5saW5lQm94ID0gbWFrZVVuaXF1ZTxJbmxpbmVCb3g+KGxheW91
dEJveCwgaW5saW5lQm94UmVjdCwgYmFzZWxpbmUsIGxvZ2ljYWxIZWlnaHQgLSBiYXNlbGluZSwg
SW5saW5lQm94OjpJc0NvbnNpZGVyZWRFbXB0eTo6WWVzKTsKLSAgICAgICAgICAgIG1faW5saW5l
Qm94UmVjdE1hcC5zZXQoJmxheW91dEJveCwgaW5saW5lQm94LmdldCgpKTsKLSAgICAgICAgICAg
IG1faW5saW5lQm94TGlzdC5hcHBlbmQoV1RGTW92ZShpbmxpbmVCb3gpKTsKKyAgICAgICAgICAg
IGF1dG8gaW5saW5lQm94ID0gbWFrZVVuaXF1ZTxJbmxpbmVMZXZlbEJveD4obGF5b3V0Qm94LCBp
bmxpbmVCb3hSZWN0LCBiYXNlbGluZSwgbG9naWNhbEhlaWdodCAtIGJhc2VsaW5lLCBJbmxpbmVM
ZXZlbEJveDo6SXNDb25zaWRlcmVkRW1wdHk6Olllcyk7CisgICAgICAgICAgICBtX2lubGluZUxl
dmVsQm94UmVjdE1hcC5zZXQoJmxheW91dEJveCwgaW5saW5lQm94LmdldCgpKTsKKyAgICAgICAg
ICAgIG1faW5saW5lTGV2ZWxCb3hMaXN0LmFwcGVuZChXVEZNb3ZlKGlubGluZUJveCkpOwogICAg
ICAgICB9IGVsc2UgaWYgKHJ1bi5pc0NvbnRhaW5lckVuZCgpKSB7CiAgICAgICAgICAgICAvLyBB
ZGp1c3QgdGhlIGxvZ2ljYWwgd2lkdGggd2hlbiB0aGUgaW5saW5lIGxldmVsIGNvbnRhaW5lciBj
bG9zZXMgb24gdGhpcyBsaW5lLgotICAgICAgICAgICAgYXV0byYgaW5saW5lQm94ID0gKm1faW5s
aW5lQm94UmVjdE1hcC5nZXQoJmxheW91dEJveCk7CisgICAgICAgICAgICBhdXRvJiBpbmxpbmVC
b3ggPSAqbV9pbmxpbmVMZXZlbEJveFJlY3RNYXAuZ2V0KCZsYXlvdXRCb3gpOwogICAgICAgICAg
ICAgaW5saW5lQm94LnNldExvZ2ljYWxXaWR0aChydW4ubG9naWNhbFJpZ2h0KCkgLSBpbmxpbmVC
b3gubG9naWNhbExlZnQoKSk7CiAgICAgICAgIH0gZWxzZSBpZiAoKHJ1bi5pc1RleHQoKSB8fCBy
dW4uaXNMaW5lQnJlYWsoKSkpIHsKICAgICAgICAgICAgIGF1dG8mIGNvbnRhaW5lckJveCA9IHJ1
bi5sYXlvdXRCb3goKS5wYXJlbnQoKTsKLSAgICAgICAgICAgICZjb250YWluZXJCb3ggPT0gJnJv
b3QoKSA/IG1fcm9vdElubGluZUJveC5zZXRJc05vbkVtcHR5KCkgOiBtX2lubGluZUJveFJlY3RN
YXAuZ2V0KCZjb250YWluZXJCb3gpLT5zZXRJc05vbkVtcHR5KCk7CisgICAgICAgICAgICAmY29u
dGFpbmVyQm94ID09ICZyb290KCkgPyBtX3Jvb3RJbmxpbmVCb3guc2V0SXNOb25FbXB0eSgpIDog
bV9pbmxpbmVMZXZlbEJveFJlY3RNYXAuZ2V0KCZjb250YWluZXJCb3gpLT5zZXRJc05vbkVtcHR5
KCk7CiAgICAgICAgIH0KICAgICB9CiB9CiAKLXZvaWQgTGluZUJveDo6Y29tcHV0ZUlubGluZUJv
eGVzTG9naWNhbEhlaWdodCgpCit2b2lkIExpbmVCb3g6OmNvbXB1dGVCb3hlc0xvZ2ljYWxIZWln
aHQoKQogewogICAgIC8vIEJ5IHRyYXZlcnNpbmcgdGhlIGlubGluZSBib3ggbGlzdCBiYWNrd2Fy
ZHMsIGl0J3MgZ3VhcmFudGVlZCB0aGF0IGRlc2NlbmRhbnQgaW5saW5lIGJveGVzIGFyZSBzaXpl
ZCBmaXJzdC4KLSAgICBmb3IgKGF1dG8mIGlubGluZUJveCA6IFdURjo6bWFrZVJldmVyc2VkUmFu
Z2UobV9pbmxpbmVCb3hMaXN0KSkgewotICAgICAgICBpZiAoaW5saW5lQm94LT5pc0VtcHR5KCkp
CisgICAgZm9yIChhdXRvJiBpbmxpbmVMZXZlbEJveCA6IFdURjo6bWFrZVJldmVyc2VkUmFuZ2Uo
bV9pbmxpbmVMZXZlbEJveExpc3QpKSB7CisgICAgICAgIGlmIChpbmxpbmVMZXZlbEJveC0+aXNF
bXB0eSgpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgYXV0byYgbGF5b3V0Qm94
ID0gaW5saW5lQm94LT5sYXlvdXRCb3goKTsKKyAgICAgICAgYXV0byYgbGF5b3V0Qm94ID0gaW5s
aW5lTGV2ZWxCb3gtPmxheW91dEJveCgpOwogICAgICAgICBzd2l0Y2ggKGxheW91dEJveC5zdHls
ZSgpLnZlcnRpY2FsQWxpZ24oKSkgewogICAgICAgICBjYXNlIFZlcnRpY2FsQWxpZ246OlRvcDoK
ICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpCb3R0b206CiAgICAgICAgICAgICAvLyB0b3Ag
YW5kIGJvdHRvbSBhbGlnbm1lbnRzIG9ubHkgc3RyZXRjaCB0aGUgbGluZSBib3guIFRoZXkgZG9u
J3Qgc3RyZXRjaCBhbnkgb2YgdGhlIGlubGluZSBib3hlcywgbm90IGV2ZW4gdGhlIHJvb3QgaW5s
aW5lIGJveC4KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFZlcnRpY2FsQWxpZ246
OlRleHRUb3A6IHsKLSAgICAgICAgICAgIGF1dG8mIHBhcmVudElubGluZUJveCA9IGlubGluZUJv
eEZvckxheW91dEJveChsYXlvdXRCb3gucGFyZW50KCkpOworICAgICAgICAgICAgYXV0byYgcGFy
ZW50SW5saW5lQm94ID0gaW5saW5lTGV2ZWxCb3hGb3JMYXlvdXRCb3gobGF5b3V0Qm94LnBhcmVu
dCgpKTsKICAgICAgICAgICAgIGF1dG8gcGFyZW50VGV4dExvZ2ljYWxUb3AgPSBwYXJlbnRJbmxp
bmVCb3guYmFzZWxpbmUoKSAtIHBhcmVudElubGluZUJveC5sYXlvdXRCb3goKS5zdHlsZSgpLmZv
bnRNZXRyaWNzKCkuYXNjZW50KCk7Ci0gICAgICAgICAgICBwYXJlbnRJbmxpbmVCb3guc2V0TG9n
aWNhbEhlaWdodChzdGQ6Om1heChwYXJlbnRJbmxpbmVCb3gubG9naWNhbEhlaWdodCgpLCBwYXJl
bnRUZXh0TG9naWNhbFRvcCArIGlubGluZUJveC0+bG9naWNhbEhlaWdodCgpKSk7CisgICAgICAg
ICAgICBwYXJlbnRJbmxpbmVCb3guc2V0TG9naWNhbEhlaWdodChzdGQ6Om1heChwYXJlbnRJbmxp
bmVCb3gubG9naWNhbEhlaWdodCgpLCBwYXJlbnRUZXh0TG9naWNhbFRvcCArIGlubGluZUxldmVs
Qm94LT5sb2dpY2FsSGVpZ2h0KCkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2UgVmVydGljYWxBbGlnbjo6QmFzZWxpbmU6IHsKLSAgICAgICAgICAgIGF1dG8m
IHBhcmVudElubGluZUJveCA9IGlubGluZUJveEZvckxheW91dEJveChsYXlvdXRCb3gucGFyZW50
KCkpOwotICAgICAgICAgICAgYXV0byBiYXNlbGluZU92ZXJmbG93ID0gc3RkOjptYXgoMC4wZiwg
aW5saW5lQm94LT5iYXNlbGluZSgpIC0gcGFyZW50SW5saW5lQm94LmJhc2VsaW5lKCkpOworICAg
ICAgICAgICAgYXV0byYgcGFyZW50SW5saW5lQm94ID0gaW5saW5lTGV2ZWxCb3hGb3JMYXlvdXRC
b3gobGF5b3V0Qm94LnBhcmVudCgpKTsKKyAgICAgICAgICAgIGF1dG8gYmFzZWxpbmVPdmVyZmxv
dyA9IHN0ZDo6bWF4KDAuMGYsIGlubGluZUxldmVsQm94LT5iYXNlbGluZSgpIC0gcGFyZW50SW5s
aW5lQm94LmJhc2VsaW5lKCkpOwogICAgICAgICAgICAgaWYgKGJhc2VsaW5lT3ZlcmZsb3cpIHsK
ICAgICAgICAgICAgICAgICBwYXJlbnRJbmxpbmVCb3guc2V0QmFzZWxpbmUocGFyZW50SW5saW5l
Qm94LmJhc2VsaW5lKCkgKyBiYXNlbGluZU92ZXJmbG93KTsKICAgICAgICAgICAgICAgICBwYXJl
bnRJbmxpbmVCb3guc2V0TG9naWNhbEhlaWdodChwYXJlbnRJbmxpbmVCb3gubG9naWNhbEhlaWdo
dCgpICsgYmFzZWxpbmVPdmVyZmxvdyk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhdXRv
IHBhcmVudExpbmVCb3hCZWxvd0Jhc2VsaW5lID0gcGFyZW50SW5saW5lQm94LmxvZ2ljYWxIZWln
aHQoKSAtIHBhcmVudElubGluZUJveC5iYXNlbGluZSgpOwotICAgICAgICAgICAgYXV0byBpbmxp
bmVCb3hCZWxvd0Jhc2VsaW5lID0gaW5saW5lQm94LT5sb2dpY2FsSGVpZ2h0KCkgLSBpbmxpbmVC
b3gtPmJhc2VsaW5lKCk7CisgICAgICAgICAgICBhdXRvIGlubGluZUJveEJlbG93QmFzZWxpbmUg
PSBpbmxpbmVMZXZlbEJveC0+bG9naWNhbEhlaWdodCgpIC0gaW5saW5lTGV2ZWxCb3gtPmJhc2Vs
aW5lKCk7CiAgICAgICAgICAgICBhdXRvIGJlbG93QmFzZWxpbmVPdmVyZmxvdyA9IHN0ZDo6bWF4
KDAuMGYsIGlubGluZUJveEJlbG93QmFzZWxpbmUgLSBwYXJlbnRMaW5lQm94QmVsb3dCYXNlbGlu
ZSk7CiAgICAgICAgICAgICBpZiAoYmVsb3dCYXNlbGluZU92ZXJmbG93KQogICAgICAgICAgICAg
ICAgIHBhcmVudElubGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0KHBhcmVudElubGluZUJveC5sb2dp
Y2FsSGVpZ2h0KCkgKyBiZWxvd0Jhc2VsaW5lT3ZlcmZsb3cpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpUZXh0Qm90dG9tOiB7Ci0g
ICAgICAgICAgICBhdXRvJiBwYXJlbnRJbmxpbmVCb3ggPSBpbmxpbmVCb3hGb3JMYXlvdXRCb3go
bGF5b3V0Qm94LnBhcmVudCgpKTsKKyAgICAgICAgICAgIGF1dG8mIHBhcmVudElubGluZUJveCA9
IGlubGluZUxldmVsQm94Rm9yTGF5b3V0Qm94KGxheW91dEJveC5wYXJlbnQoKSk7CiAgICAgICAg
ICAgICBhdXRvIHBhcmVudFRleHRMb2dpY2FsQm90dG9tID0gcGFyZW50SW5saW5lQm94LmJhc2Vs
aW5lKCkgKyBwYXJlbnRJbmxpbmVCb3guZGVzY2VudCgpLnZhbHVlT3IoSW5saW5lTGF5b3V0VW5p
dCB7IH0pOwotICAgICAgICAgICAgYXV0byBvdmVyZmxvdyA9IHN0ZDo6bWF4KDAuMGYsIGlubGlu
ZUJveC0+bG9naWNhbEhlaWdodCgpIC0gcGFyZW50VGV4dExvZ2ljYWxCb3R0b20pOworICAgICAg
ICAgICAgYXV0byBvdmVyZmxvdyA9IHN0ZDo6bWF4KDAuMGYsIGlubGluZUxldmVsQm94LT5sb2dp
Y2FsSGVpZ2h0KCkgLSBwYXJlbnRUZXh0TG9naWNhbEJvdHRvbSk7CiAgICAgICAgICAgICBpZiAo
b3ZlcmZsb3cpIHsKICAgICAgICAgICAgICAgICAvLyBUZXh0Qm90dG9tIHB1c2hlcyB0aGUgYmFz
ZWxpbmUgZG93bndhcmQgdGhlIHNhbWUgd2F5ICdib3R0b20nIGRvZXMuCiAgICAgICAgICAgICAg
ICAgcGFyZW50SW5saW5lQm94LnNldExvZ2ljYWxIZWlnaHQocGFyZW50SW5saW5lQm94LmxvZ2lj
YWxIZWlnaHQoKSArIG92ZXJmbG93KTsKQEAgLTI2Miw4ICsyNTcsOCBAQCB2b2lkIExpbmVCb3g6
OmNvbXB1dGVJbmxpbmVCb3hlc0xvZ2ljYWxIZWlnaHQoKQogICAgICAgICB9CiAgICAgICAgIGNh
c2UgVmVydGljYWxBbGlnbjo6TWlkZGxlOiB7CiAgICAgICAgICAgICBhdXRvJiBwYXJlbnRMYXlv
dXRCb3ggPSBsYXlvdXRCb3gucGFyZW50KCk7Ci0gICAgICAgICAgICBhdXRvJiBwYXJlbnRJbmxp
bmVCb3ggPSBpbmxpbmVCb3hGb3JMYXlvdXRCb3gocGFyZW50TGF5b3V0Qm94KTsKLSAgICAgICAg
ICAgIGF1dG8gbG9naWNhbFRvcCA9IHBhcmVudElubGluZUJveC5iYXNlbGluZSgpIC0gKGlubGlu
ZUJveC0+bG9naWNhbEhlaWdodCgpIC8gMiArIHBhcmVudExheW91dEJveC5zdHlsZSgpLmZvbnRN
ZXRyaWNzKCkueEhlaWdodCgpIC8gMik7CisgICAgICAgICAgICBhdXRvJiBwYXJlbnRJbmxpbmVC
b3ggPSBpbmxpbmVMZXZlbEJveEZvckxheW91dEJveChwYXJlbnRMYXlvdXRCb3gpOworICAgICAg
ICAgICAgYXV0byBsb2dpY2FsVG9wID0gcGFyZW50SW5saW5lQm94LmJhc2VsaW5lKCkgLSAoaW5s
aW5lTGV2ZWxCb3gtPmxvZ2ljYWxIZWlnaHQoKSAvIDIgKyBwYXJlbnRMYXlvdXRCb3guc3R5bGUo
KS5mb250TWV0cmljcygpLnhIZWlnaHQoKSAvIDIpOwogICAgICAgICAgICAgaWYgKGxvZ2ljYWxU
b3AgPCAwKSB7CiAgICAgICAgICAgICAgICAgYXV0byBvdmVyZmxvdyA9IC1sb2dpY2FsVG9wOwog
ICAgICAgICAgICAgICAgIC8vIENoaWxkIGlubGluZSBib3ggd2l0aCBtaWRkbGUgYWxpZ25tZW50
IHB1c2hlcyB0aGUgYmFzZWxpbmUgZG93biB3aGVuIG92ZXJmbG93cy4gCkBAIC0yNzEsNyArMjY2
LDcgQEAgdm9pZCBMaW5lQm94Ojpjb21wdXRlSW5saW5lQm94ZXNMb2dpY2FsSGVpZ2h0KCkKICAg
ICAgICAgICAgICAgICBwYXJlbnRJbmxpbmVCb3guc2V0TG9naWNhbEhlaWdodChwYXJlbnRJbmxp
bmVCb3gubG9naWNhbEhlaWdodCgpICsgb3ZlcmZsb3cpOwogICAgICAgICAgICAgICAgIGxvZ2lj
YWxUb3AgPSB7IH07CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhdXRvIGxvZ2ljYWxCb3R0
b20gPSBsb2dpY2FsVG9wICsgaW5saW5lQm94LT5sb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgICAg
ICBhdXRvIGxvZ2ljYWxCb3R0b20gPSBsb2dpY2FsVG9wICsgaW5saW5lTGV2ZWxCb3gtPmxvZ2lj
YWxIZWlnaHQoKTsKICAgICAgICAgICAgIHBhcmVudElubGluZUJveC5zZXRMb2dpY2FsSGVpZ2h0
KHN0ZDo6bWF4KHBhcmVudElubGluZUJveC5sb2dpY2FsSGVpZ2h0KCksIGxvZ2ljYWxCb3R0b20p
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yODIsNjUgKzI3Nyw2NSBAQCB2
b2lkIExpbmVCb3g6OmNvbXB1dGVJbmxpbmVCb3hlc0xvZ2ljYWxIZWlnaHQoKQogICAgIH0KIH0K
IAotdm9pZCBMaW5lQm94OjphbGlnbklubGluZUJveGVzVmVydGljYWxseUFuZENvbXB1dGVMaW5l
Qm94SGVpZ2h0KCkKK3ZvaWQgTGluZUJveDo6YWxpZ25Cb3hlc1ZlcnRpY2FsbHlBbmRDb21wdXRl
TGluZUJveEhlaWdodCgpCiB7CiAgICAgLy8gSW5saW5lIGJveGVzIGFyZSBpbiB0aGUgY29vcmRp
bmF0ZSBzeXN0ZW0gb2YgdGhlIGxpbmUgYm94IChhbmQgbm90IGluIHRoZSBjb29yZGluYXRlIHN5
c3RlbSBvZiB0aGVpciBwYXJlbnRzKS4KICAgICAvLyBTdGFydGluZyB3aXRoIHRoZSByb290IGlu
bGluZSBib3gsIHBvc2l0aW9uIHRoZSBhbmNlc3RvcnMgZmlyc3Qgc28gdGhhdCB0aGUgZGVzY2Vu
ZGFudCBsaW5lIGJveGVzIHNlZSBhYnNvbHV0ZSB2ZXJ0aWNhbCBwb3NpdGlvbnMuCiAgICAgYXV0
byBjb250ZW50TG9naWNhbEhlaWdodCA9IElubGluZUxheW91dFVuaXQgeyB9OwogICAgIGF1dG8g
YWxpZ25Sb290SW5saW5lQm94ID0gWyZdIHsKICAgICAgICAgY29udGVudExvZ2ljYWxIZWlnaHQg
PSBtX3Jvb3RJbmxpbmVCb3gubG9naWNhbEhlaWdodCgpOwotICAgICAgICBmb3IgKGF1dG8mIGlu
bGluZUJveCA6IG1faW5saW5lQm94TGlzdCkgewotICAgICAgICAgICAgYXV0byB2ZXJ0aWNhbEFs
aWduID0gaW5saW5lQm94LT5sYXlvdXRCb3goKS5zdHlsZSgpLnZlcnRpY2FsQWxpZ24oKTsKKyAg
ICAgICAgZm9yIChhdXRvJiBpbmxpbmVMZXZlbEJveCA6IG1faW5saW5lTGV2ZWxCb3hMaXN0KSB7
CisgICAgICAgICAgICBhdXRvIHZlcnRpY2FsQWxpZ24gPSBpbmxpbmVMZXZlbEJveC0+bGF5b3V0
Qm94KCkuc3R5bGUoKS52ZXJ0aWNhbEFsaWduKCk7CiAgICAgICAgICAgICBpZiAodmVydGljYWxB
bGlnbiA9PSBWZXJ0aWNhbEFsaWduOjpCb3R0b20pIHsKICAgICAgICAgICAgICAgICAvLyBib3R0
b20gYWxpZ24gYWx3YXlzIHB1c2hlcyB0aGUgcm9vdCBpbmxpbmUgYm94IGRvd253YXJkcy4KLSAg
ICAgICAgICAgICAgICBhdXRvIG92ZXJmbG93ID0gc3RkOjptYXgoMC4wZiwgaW5saW5lQm94LT5s
b2dpY2FsQm90dG9tKCkgLSBtX3Jvb3RJbmxpbmVCb3gubG9naWNhbEJvdHRvbSgpKTsKKyAgICAg
ICAgICAgICAgICBhdXRvIG92ZXJmbG93ID0gc3RkOjptYXgoMC4wZiwgaW5saW5lTGV2ZWxCb3gt
PmxvZ2ljYWxCb3R0b20oKSAtIG1fcm9vdElubGluZUJveC5sb2dpY2FsQm90dG9tKCkpOwogICAg
ICAgICAgICAgICAgIG1fcm9vdElubGluZUJveC5zZXRMb2dpY2FsVG9wKG1fcm9vdElubGluZUJv
eC5sb2dpY2FsVG9wKCkgKyBvdmVyZmxvdyk7CiAgICAgICAgICAgICAgICAgY29udGVudExvZ2lj
YWxIZWlnaHQgKz0gb3ZlcmZsb3c7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKHZlcnRpY2FsQWxp
Z24gPT0gVmVydGljYWxBbGlnbjo6VG9wKQotICAgICAgICAgICAgICAgIGNvbnRlbnRMb2dpY2Fs
SGVpZ2h0ID0gc3RkOjptYXgoY29udGVudExvZ2ljYWxIZWlnaHQsIGlubGluZUJveC0+bG9naWNh
bEhlaWdodCgpKTsKKyAgICAgICAgICAgICAgICBjb250ZW50TG9naWNhbEhlaWdodCA9IHN0ZDo6
bWF4KGNvbnRlbnRMb2dpY2FsSGVpZ2h0LCBpbmxpbmVMZXZlbEJveC0+bG9naWNhbEhlaWdodCgp
KTsKICAgICAgICAgfQogICAgIH07CiAgICAgYWxpZ25Sb290SW5saW5lQm94KCk7CiAKLSAgICBm
b3IgKGF1dG8mIGlubGluZUJveCA6IG1faW5saW5lQm94TGlzdCkgeworICAgIGZvciAoYXV0byYg
aW5saW5lTGV2ZWxCb3ggOiBtX2lubGluZUxldmVsQm94TGlzdCkgewogICAgICAgICBhdXRvIGlu
bGluZUJveExvZ2ljYWxUb3AgPSBJbmxpbmVMYXlvdXRVbml0IHsgfTsKLSAgICAgICAgYXV0byYg
bGF5b3V0Qm94ID0gaW5saW5lQm94LT5sYXlvdXRCb3goKTsKKyAgICAgICAgYXV0byYgbGF5b3V0
Qm94ID0gaW5saW5lTGV2ZWxCb3gtPmxheW91dEJveCgpOwogICAgICAgICBzd2l0Y2ggKGxheW91
dEJveC5zdHlsZSgpLnZlcnRpY2FsQWxpZ24oKSkgewogICAgICAgICBjYXNlIFZlcnRpY2FsQWxp
Z246OkJhc2VsaW5lOiB7Ci0gICAgICAgICAgICBhdXRvJiBwYXJlbnRJbmxpbmVCb3ggPSBpbmxp
bmVCb3hGb3JMYXlvdXRCb3gobGF5b3V0Qm94LnBhcmVudCgpKTsKLSAgICAgICAgICAgIGlubGlu
ZUJveExvZ2ljYWxUb3AgPSBwYXJlbnRJbmxpbmVCb3gubG9naWNhbFRvcCgpICsgcGFyZW50SW5s
aW5lQm94LmJhc2VsaW5lKCkgLSBpbmxpbmVCb3gtPmJhc2VsaW5lKCk7CisgICAgICAgICAgICBh
dXRvJiBwYXJlbnRJbmxpbmVCb3ggPSBpbmxpbmVMZXZlbEJveEZvckxheW91dEJveChsYXlvdXRC
b3gucGFyZW50KCkpOworICAgICAgICAgICAgaW5saW5lQm94TG9naWNhbFRvcCA9IHBhcmVudElu
bGluZUJveC5sb2dpY2FsVG9wKCkgKyBwYXJlbnRJbmxpbmVCb3guYmFzZWxpbmUoKSAtIGlubGlu
ZUxldmVsQm94LT5iYXNlbGluZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpUZXh0VG9wOiB7CiAgICAgICAgICAgICBhdXRvJiBw
YXJlbnRMYXlvdXRCb3ggPSBsYXlvdXRCb3gucGFyZW50KCk7Ci0gICAgICAgICAgICBhdXRvJiBw
YXJlbnRJbmxpbmVCb3ggPSBpbmxpbmVCb3hGb3JMYXlvdXRCb3gocGFyZW50TGF5b3V0Qm94KTsK
KyAgICAgICAgICAgIGF1dG8mIHBhcmVudElubGluZUJveCA9IGlubGluZUxldmVsQm94Rm9yTGF5
b3V0Qm94KHBhcmVudExheW91dEJveCk7CiAgICAgICAgICAgICBpbmxpbmVCb3hMb2dpY2FsVG9w
ID0gcGFyZW50SW5saW5lQm94LmxvZ2ljYWxUb3AoKSArIHBhcmVudElubGluZUJveC5iYXNlbGlu
ZSgpIC0gcGFyZW50TGF5b3V0Qm94LnN0eWxlKCkuZm9udE1ldHJpY3MoKS5hc2NlbnQoKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgVmVydGljYWxBbGlnbjo6
VGV4dEJvdHRvbTogewogICAgICAgICAgICAgYXV0byYgcGFyZW50TGF5b3V0Qm94ID0gbGF5b3V0
Qm94LnBhcmVudCgpOwotICAgICAgICAgICAgYXV0byYgcGFyZW50SW5saW5lQm94ID0gaW5saW5l
Qm94Rm9yTGF5b3V0Qm94KHBhcmVudExheW91dEJveCk7CisgICAgICAgICAgICBhdXRvJiBwYXJl
bnRJbmxpbmVCb3ggPSBpbmxpbmVMZXZlbEJveEZvckxheW91dEJveChwYXJlbnRMYXlvdXRCb3gp
OwogICAgICAgICAgICAgYXV0byBwYXJlbnRUZXh0TG9naWNhbEJvdHRvbSA9IHBhcmVudElubGlu
ZUJveC5sb2dpY2FsVG9wKCkgKyBwYXJlbnRJbmxpbmVCb3guYmFzZWxpbmUoKSArIHBhcmVudExh
eW91dEJveC5zdHlsZSgpLmZvbnRNZXRyaWNzKCkuZGVzY2VudCgpOwotICAgICAgICAgICAgaW5s
aW5lQm94TG9naWNhbFRvcCA9IHBhcmVudFRleHRMb2dpY2FsQm90dG9tIC0gaW5saW5lQm94LT5s
b2dpY2FsSGVpZ2h0KCk7CisgICAgICAgICAgICBpbmxpbmVCb3hMb2dpY2FsVG9wID0gcGFyZW50
VGV4dExvZ2ljYWxCb3R0b20gLSBpbmxpbmVMZXZlbEJveC0+bG9naWNhbEhlaWdodCgpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpU
b3A6CiAgICAgICAgICAgICBpbmxpbmVCb3hMb2dpY2FsVG9wID0gSW5saW5lTGF5b3V0VW5pdCB7
IH07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWduOjpCb3R0
b206Ci0gICAgICAgICAgICBpbmxpbmVCb3hMb2dpY2FsVG9wID0gY29udGVudExvZ2ljYWxIZWln
aHQgLSBpbmxpbmVCb3gtPmxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgICAgIGlubGluZUJveExv
Z2ljYWxUb3AgPSBjb250ZW50TG9naWNhbEhlaWdodCAtIGlubGluZUxldmVsQm94LT5sb2dpY2Fs
SGVpZ2h0KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBWZXJ0aWNhbEFsaWdu
OjpNaWRkbGU6IHsKICAgICAgICAgICAgIGF1dG8mIHBhcmVudExheW91dEJveCA9IGxheW91dEJv
eC5wYXJlbnQoKTsKLSAgICAgICAgICAgIGF1dG8mIHBhcmVudElubGluZUJveCA9IGlubGluZUJv
eEZvckxheW91dEJveChwYXJlbnRMYXlvdXRCb3gpOwotICAgICAgICAgICAgaW5saW5lQm94TG9n
aWNhbFRvcCA9IHBhcmVudElubGluZUJveC5sb2dpY2FsVG9wKCkgKyBwYXJlbnRJbmxpbmVCb3gu
YmFzZWxpbmUoKSAtIChpbmxpbmVCb3gtPmxvZ2ljYWxIZWlnaHQoKSAvIDIgKyBwYXJlbnRMYXlv
dXRCb3guc3R5bGUoKS5mb250TWV0cmljcygpLnhIZWlnaHQoKSAvIDIpOworICAgICAgICAgICAg
YXV0byYgcGFyZW50SW5saW5lQm94ID0gaW5saW5lTGV2ZWxCb3hGb3JMYXlvdXRCb3gocGFyZW50
TGF5b3V0Qm94KTsKKyAgICAgICAgICAgIGlubGluZUJveExvZ2ljYWxUb3AgPSBwYXJlbnRJbmxp
bmVCb3gubG9naWNhbFRvcCgpICsgcGFyZW50SW5saW5lQm94LmJhc2VsaW5lKCkgLSAoaW5saW5l
TGV2ZWxCb3gtPmxvZ2ljYWxIZWlnaHQoKSAvIDIgKyBwYXJlbnRMYXlvdXRCb3guc3R5bGUoKS5m
b250TWV0cmljcygpLnhIZWlnaHQoKSAvIDIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfSU1QTEVNRU5URURf
WUVUKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBpbmxpbmVCb3gt
PnNldExvZ2ljYWxUb3AoaW5saW5lQm94TG9naWNhbFRvcCk7CisgICAgICAgIGlubGluZUxldmVs
Qm94LT5zZXRMb2dpY2FsVG9wKGlubGluZUJveExvZ2ljYWxUb3ApOwogICAgIH0KIAogICAgIGF1
dG8gYWRqdXN0Q29udGVudEJvdHRvbUlmTmVlZGVkID0gWyZdIHsKQEAgLTM0OCwyNCArMzQzLDI0
IEBAIHZvaWQgTGluZUJveDo6YWxpZ25JbmxpbmVCb3hlc1ZlcnRpY2FsbHlBbmRDb21wdXRlTGlu
ZUJveEhlaWdodCgpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGF1dG8gY29sbGFwc2Vk
Q29udGVudExvZ2ljYWxUb3AgPSBjb250ZW50TG9naWNhbEhlaWdodDsKICAgICAgICAgYXV0byBj
b2xsYXBzZWRDb250ZW50TG9naWNhbEJvdHRvbSA9IElubGluZUxheW91dFVuaXQgeyB9OwotICAg
ICAgICBmb3IgKGF1dG8mIGlubGluZUJveCA6IG1faW5saW5lQm94TGlzdCkgewotICAgICAgICAg
ICAgYXV0byB2ZXJ0aWNhbEFsaWduID0gaW5saW5lQm94LT5sYXlvdXRCb3goKS5zdHlsZSgpLnZl
cnRpY2FsQWxpZ24oKTsKLSAgICAgICAgICAgIGF1dG8gc3RyZXRjaGVzTGluZUJveCA9IHZlcnRp
Y2FsQWxpZ24gPT0gVmVydGljYWxBbGlnbjo6Qm90dG9tIHx8IHZlcnRpY2FsQWxpZ24gPT0gVmVy
dGljYWxBbGlnbjo6VG9wIHx8ICZpbmxpbmVCb3gtPmxheW91dEJveCgpLnBhcmVudCgpID09ICZt
X3Jvb3RJbmxpbmVCb3gubGF5b3V0Qm94KCk7CisgICAgICAgIGZvciAoYXV0byYgaW5saW5lTGV2
ZWxCb3ggOiBtX2lubGluZUxldmVsQm94TGlzdCkgeworICAgICAgICAgICAgYXV0byB2ZXJ0aWNh
bEFsaWduID0gaW5saW5lTGV2ZWxCb3gtPmxheW91dEJveCgpLnN0eWxlKCkudmVydGljYWxBbGln
bigpOworICAgICAgICAgICAgYXV0byBzdHJldGNoZXNMaW5lQm94ID0gdmVydGljYWxBbGlnbiA9
PSBWZXJ0aWNhbEFsaWduOjpCb3R0b20gfHwgdmVydGljYWxBbGlnbiA9PSBWZXJ0aWNhbEFsaWdu
OjpUb3AgfHwgJmlubGluZUxldmVsQm94LT5sYXlvdXRCb3goKS5wYXJlbnQoKSA9PSAmbV9yb290
SW5saW5lQm94LmxheW91dEJveCgpOwogICAgICAgICAgICAgaWYgKCFzdHJldGNoZXNMaW5lQm94
KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaWYgKGlubGluZUJveC0+
aXNFbXB0eSgpKQorICAgICAgICAgICAgaWYgKGlubGluZUxldmVsQm94LT5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBjb2xsYXBzZWRDb250ZW50TG9n
aWNhbFRvcCA9IHN0ZDo6bWluKGNvbGxhcHNlZENvbnRlbnRMb2dpY2FsVG9wLCBpbmxpbmVCb3gt
PmxvZ2ljYWxUb3AoKSk7Ci0gICAgICAgICAgICBjb2xsYXBzZWRDb250ZW50TG9naWNhbEJvdHRv
bSA9IHN0ZDo6bWF4KGNvbGxhcHNlZENvbnRlbnRMb2dpY2FsQm90dG9tLCBpbmxpbmVCb3gtPmxv
Z2ljYWxCb3R0b20oKSk7CisgICAgICAgICAgICBjb2xsYXBzZWRDb250ZW50TG9naWNhbFRvcCA9
IHN0ZDo6bWluKGNvbGxhcHNlZENvbnRlbnRMb2dpY2FsVG9wLCBpbmxpbmVMZXZlbEJveC0+bG9n
aWNhbFRvcCgpKTsKKyAgICAgICAgICAgIGNvbGxhcHNlZENvbnRlbnRMb2dpY2FsQm90dG9tID0g
c3RkOjptYXgoY29sbGFwc2VkQ29udGVudExvZ2ljYWxCb3R0b20sIGlubGluZUxldmVsQm94LT5s
b2dpY2FsQm90dG9tKCkpOwogICAgICAgICB9CiAgICAgICAgIGlmICghY29sbGFwc2VkQ29udGVu
dExvZ2ljYWxUb3ApIHsKICAgICAgICAgICAgIGNvbnRlbnRMb2dpY2FsSGVpZ2h0ID0gY29sbGFw
c2VkQ29udGVudExvZ2ljYWxCb3R0b207CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ICAgICAgICAgY29udGVudExvZ2ljYWxIZWlnaHQgPSBJbmxpbmVMYXlvdXRVbml0IHsgfTsKLSAg
ICAgICAgZm9yIChhdXRvJiBpbmxpbmVCb3ggOiBtX2lubGluZUJveExpc3QpIHsKLSAgICAgICAg
ICAgIGlubGluZUJveC0+c2V0TG9naWNhbFRvcChpbmxpbmVCb3gtPmxvZ2ljYWxUb3AoKSAtIGNv
bGxhcHNlZENvbnRlbnRMb2dpY2FsVG9wKTsKLSAgICAgICAgICAgIGNvbnRlbnRMb2dpY2FsSGVp
Z2h0ID0gc3RkOjptYXgoY29udGVudExvZ2ljYWxIZWlnaHQsIGlubGluZUJveC0+bG9naWNhbEJv
dHRvbSgpKTsKKyAgICAgICAgZm9yIChhdXRvJiBpbmxpbmVMZXZlbEJveCA6IG1faW5saW5lTGV2
ZWxCb3hMaXN0KSB7CisgICAgICAgICAgICBpbmxpbmVMZXZlbEJveC0+c2V0TG9naWNhbFRvcChp
bmxpbmVMZXZlbEJveC0+bG9naWNhbFRvcCgpIC0gY29sbGFwc2VkQ29udGVudExvZ2ljYWxUb3Ap
OworICAgICAgICAgICAgY29udGVudExvZ2ljYWxIZWlnaHQgPSBzdGQ6Om1heChjb250ZW50TG9n
aWNhbEhlaWdodCwgaW5saW5lTGV2ZWxCb3gtPmxvZ2ljYWxCb3R0b20oKSk7CiAgICAgICAgIH0K
ICAgICB9OwogICAgIGFkanVzdENvbnRlbnRCb3R0b21JZk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJveC5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJveC5oCmlu
ZGV4IDFhNTZlYjUzOTRkZGRlM2RiZjQ5NzFjNDk4NTA5NTkyZDIzOGZmZGIuLmI5YjFlOGM0OWMy
ZTQyNmI4Nzk1M2UzZWQ5YmNjMTFhZTUzMjE0ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmgKQEAgLTU2LDEyICs1
NiwxMiBAQCBjbGFzcyBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDsKIGNsYXNzIExpbmVCb3ggewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0cnVjdCBJbmxpbmVC
b3ggewotICAgICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lOTElORShJbmxpbmVCb3gpOwor
ICAgIHN0cnVjdCBJbmxpbmVMZXZlbEJveCB7CisgICAgICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RURfSU5MSU5FKElubGluZUxldmVsQm94KTsKICAgICBwdWJsaWM6CiAgICAgICAgIGVudW0gY2xh
c3MgSXNDb25zaWRlcmVkRW1wdHkgeyBZZXMsIE5vIH07Ci0gICAgICAgIElubGluZUJveChjb25z
dCBCb3gmLCBjb25zdCBEaXNwbGF5OjpJbmxpbmVSZWN0JiwgSW5saW5lTGF5b3V0VW5pdCBiYXNl
bGluZSwgSW5saW5lTGF5b3V0VW5pdCBkZXNjZW50LCBJc0NvbnNpZGVyZWRFbXB0eSk7Ci0gICAg
ICAgIElubGluZUJveCgpID0gZGVmYXVsdDsKKyAgICAgICAgSW5saW5lTGV2ZWxCb3goY29uc3Qg
Qm94JiwgY29uc3QgRGlzcGxheTo6SW5saW5lUmVjdCYsIElubGluZUxheW91dFVuaXQgYmFzZWxp
bmUsIElubGluZUxheW91dFVuaXQgZGVzY2VudCwgSXNDb25zaWRlcmVkRW1wdHkpOworICAgICAg
ICBJbmxpbmVMZXZlbEJveCgpID0gZGVmYXVsdDsKIAogICAgICAgICBjb25zdCBEaXNwbGF5OjpJ
bmxpbmVSZWN0JiBsb2dpY2FsUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFJlY3Q7IH0K
ICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsVG9wKCkgY29uc3QgeyByZXR1cm4gbV9s
b2dpY2FsUmVjdC50b3AoKTsgfQpAQCAtMTA0LDE3ICsxMDQsMTcgQEAgcHVibGljOgogICAgIE9w
dGlvbmFsPElubGluZUxheW91dFVuaXQ+IGhvcml6b250YWxBbGlnbm1lbnRPZmZzZXQoKSBjb25z
dCB7IHJldHVybiBtX2hvcml6b250YWxBbGlnbm1lbnRPZmZzZXQ7IH0KICAgICBib29sIGlzTGlu
ZVZpc3VhbGx5RW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2lzTGluZVZpc3VhbGx5RW1wdHk7IH0K
IAotICAgIGNvbnN0IElubGluZUJveCYgaW5saW5lQm94Rm9yTGF5b3V0Qm94KGNvbnN0IEJveCYg
bGF5b3V0Qm94KSBjb25zdCB7IHJldHVybiAqbV9pbmxpbmVCb3hSZWN0TWFwLmdldCgmbGF5b3V0
Qm94KTsgfQotICAgIERpc3BsYXk6OklubGluZVJlY3QgaW5saW5lUmVjdEZvclRleHRSdW4oY29u
c3QgTGluZTo6UnVuJikgY29uc3Q7CisgICAgY29uc3QgSW5saW5lTGV2ZWxCb3gmIGlubGluZUxl
dmVsQm94Rm9yTGF5b3V0Qm94KGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdCB7IHJldHVybiAq
bV9pbmxpbmVMZXZlbEJveFJlY3RNYXAuZ2V0KCZsYXlvdXRCb3gpOyB9CisgICAgRGlzcGxheTo6
SW5saW5lUmVjdCBsb2dpY2FsUmVjdEZvclRleHRSdW4oY29uc3QgTGluZTo6UnVuJikgY29uc3Q7
CiAKICAgICBJbmxpbmVMYXlvdXRVbml0IGFsaWdubWVudEJhc2VsaW5lKCkgY29uc3QgeyByZXR1
cm4gbV9yb290SW5saW5lQm94LmxvZ2ljYWxUb3AoKSArIG1fcm9vdElubGluZUJveC5iYXNlbGlu
ZSgpOyB9CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBjb25zdHJ1Y3RJbmxpbmVCb3hlcyhjb25zdCBM
aW5lOjpSdW5MaXN0Jik7Ci0gICAgdm9pZCBjb21wdXRlSW5saW5lQm94ZXNMb2dpY2FsSGVpZ2h0
KCk7Ci0gICAgdm9pZCBhbGlnbklubGluZUJveGVzVmVydGljYWxseUFuZENvbXB1dGVMaW5lQm94
SGVpZ2h0KCk7CisgICAgdm9pZCBjb25zdHJ1Y3RCb3hlcyhjb25zdCBMaW5lOjpSdW5MaXN0Jik7
CisgICAgdm9pZCBjb21wdXRlQm94ZXNMb2dpY2FsSGVpZ2h0KCk7CisgICAgdm9pZCBhbGlnbkJv
eGVzVmVydGljYWxseUFuZENvbXB1dGVMaW5lQm94SGVpZ2h0KCk7CiAKLSAgICBJbmxpbmVCb3gm
IGlubGluZUJveEZvckxheW91dEJveChjb25zdCBCb3gmIGxheW91dEJveCkgeyByZXR1cm4gKm1f
aW5saW5lQm94UmVjdE1hcC5nZXQoJmxheW91dEJveCk7IH0KKyAgICBJbmxpbmVMZXZlbEJveCYg
aW5saW5lTGV2ZWxCb3hGb3JMYXlvdXRCb3goY29uc3QgQm94JiBsYXlvdXRCb3gpIHsgcmV0dXJu
ICptX2lubGluZUxldmVsQm94UmVjdE1hcC5nZXQoJmxheW91dEJveCk7IH0KIAogICAgIGNvbnN0
IElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0OwogICAg
IGNvbnN0IEJveCYgcm9vdCgpIGNvbnN0OwpAQCAtMTI0LDExICsxMjQsMTEgQEAgcHJpdmF0ZToK
ICAgICBJbmxpbmVMYXlvdXRTaXplIG1fbG9naWNhbFNpemU7CiAgICAgYm9vbCBtX2lzTGluZVZp
c3VhbGx5RW1wdHkgeyB0cnVlIH07CiAKLSAgICBJbmxpbmVCb3ggbV9yb290SW5saW5lQm94Owor
ICAgIElubGluZUxldmVsQm94IG1fcm9vdElubGluZUJveDsKIAogICAgIE9wdGlvbmFsPElubGlu
ZUxheW91dFVuaXQ+IG1faG9yaXpvbnRhbEFsaWdubWVudE9mZnNldDsKLSAgICBIYXNoTWFwPGNv
bnN0IEJveCosIElubGluZUJveCo+IG1faW5saW5lQm94UmVjdE1hcDsKLSAgICBWZWN0b3I8c3Rk
Ojp1bmlxdWVfcHRyPElubGluZUJveD4+IG1faW5saW5lQm94TGlzdDsKKyAgICBIYXNoTWFwPGNv
bnN0IEJveCosIElubGluZUxldmVsQm94Kj4gbV9pbmxpbmVMZXZlbEJveFJlY3RNYXA7CisgICAg
VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVMZXZlbEJveD4+IG1faW5saW5lTGV2ZWxCb3hM
aXN0OwogICAgIGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBtX2lubGluZUZvcm1hdHRp
bmdDb250ZXh0OwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408407</attachid>
            <date>2020-09-09 20:05:08 -0700</date>
            <delta_ts>2020-09-10 11:57:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216338-20200909200507.patch</filename>
            <type>text/plain</type>
            <size>9293</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2NjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTkyMzc5Yzg0OTc3NDA0
MDhiYmE3YjZjOTU4NmVhMDNhNzk3YTVhZi4uNzE1NDVhNjBmYmU3OGY5ZDc1YTU0OTdiNTYwOGY3
MDNkMmQzMDcwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA5LTA5ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBTaGFyZSBj
b2RlIHdoZW4gY29uc3RydWN0aW5nIExpbmVCb3g6OklubGluZUJveCBmb3IgdGhlIGF0b21pYyBp
bmxpbmUtbGV2ZWwgYm94CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTYzMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6
OmNyZWF0ZURpc3BsYXlCb3hlc0ZvckxpbmVDb250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6TGluZUJveDo6bG9naWNhbFJlY3RGb3JUZXh0UnVuIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6TGluZUJveDo6Y29uc3RydWN0SW5saW5lQm94ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lQm94OjppbmxpbmVSZWN0Rm9yVGV4dFJ1biBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJveC5oOgor
CiAyMDIwLTA5LTA4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bSUZDXSBMaW5lQnVpbGRlcjo6cmVidWlsZExpbmUgc2hvdWxkIGp1c3QgcmUtaW5pdGlh
bGl6ZSB0aGUgY3VycmVudCBsaW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAK
aW5kZXggZTY5YTQ0NGI0OTMyMmM0NDZmNzdmYjk2N2I2N2VkMmNhZGRjZTNkNC4uMjRjNzg0Mzdk
ZWY3MmEwODYwOWE0OTc4MWIxYzUxNGE4YzVlYjFiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0LmNwcApAQCAtNDg1LDcgKzQ4NSw3IEBAIERpc3BsYXk6OklubGluZVJlY3QgSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNyZWF0ZURpc3BsYXlCb3hlc0ZvckxpbmVDb250ZW50KGNv
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHJldHVybiBpbmtPdmVyZmxvdzsK
ICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICBhdXRvIGxvZ2ljYWxSZWN0ID0gbGluZVJ1bi5p
c0JveCgpID8gbGluZUJveC5pbmxpbmVCb3hGb3JMYXlvdXRCb3gobGF5b3V0Qm94KS5sb2dpY2Fs
UmVjdCgpIDogbGluZUJveC5pbmxpbmVSZWN0Rm9yVGV4dFJ1bihsaW5lUnVuKTsKKyAgICAgICAg
ICAgIGF1dG8gbG9naWNhbFJlY3QgPSBsaW5lUnVuLmlzQm94KCkgPyBsaW5lQm94LmlubGluZUJv
eEZvckxheW91dEJveChsYXlvdXRCb3gpLmxvZ2ljYWxSZWN0KCkgOiBsaW5lQm94LmxvZ2ljYWxS
ZWN0Rm9yVGV4dFJ1bihsaW5lUnVuKTsKICAgICAgICAgICAgIC8vIElubGluZSBib3hlcyBhcmUg
cmVsYXRpdmUgdG8gdGhlIGxpbmUgYm94IHdoaWxlIGZpbmFsIERpc3BsYXk6OlJ1bnMgbmVlZCB0
byBiZSByZWxhdGl2ZSB0byB0aGUgcGFyZW50IERpc3BsYXk6Qm94CiAgICAgICAgICAgICAvLyBG
SVhNRTogU2hvdWxkbid0IHdlIGp1c3QgbGVhdmUgdGhlbSBiZSByZWxhdGl2ZSB0byB0aGUgbGlu
ZSBib3g/CiAgICAgICAgICAgICBsb2dpY2FsUmVjdC5tb3ZlQnkoeyBsaW5lTG9naWNhbFJlY3Qu
bGVmdCgpLCBsaW5lTG9naWNhbFJlY3QudG9wKCkgKyBsaW5lQm94VmVydGljYWxPZmZzZXQgfSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVMaW5lQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lu
bGluZUxpbmVCb3guY3BwCmluZGV4IDA1ZTQ0MTIwOTcwNGFkNzZhY2QzODI0MTJmNTk3ZTY4Nzg2
ZWVhNzAuLjYzMmQxMDFlOWQ2OTA5M2I0NDE5YzUxZTMyOGJhNjhlZjc1NmM3MDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3gu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxp
bmVCb3guY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgTGluZUJveDo6TGluZUJveChjb25zdCBJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dCYgaW5saW5lRm9ybWF0dGluZ0NvbnRleHQsIElubGluZUwKICAg
ICBhbGlnbklubGluZUJveGVzVmVydGljYWxseUFuZENvbXB1dGVMaW5lQm94SGVpZ2h0KCk7CiB9
CiAKLURpc3BsYXk6OklubGluZVJlY3QgTGluZUJveDo6aW5saW5lUmVjdEZvclRleHRSdW4oY29u
c3QgTGluZTo6UnVuJiBydW4pIGNvbnN0CitEaXNwbGF5OjpJbmxpbmVSZWN0IExpbmVCb3g6Omxv
Z2ljYWxSZWN0Rm9yVGV4dFJ1bihjb25zdCBMaW5lOjpSdW4mIHJ1bikgY29uc3QKIHsKICAgICBB
U1NFUlQocnVuLmlzVGV4dCgpIHx8IHJ1bi5pc0xpbmVCcmVhaygpKTsKICAgICBhdXRvJiBwYXJl
bnRJbmxpbmVCb3ggPSBpbmxpbmVCb3hGb3JMYXlvdXRCb3gocnVuLmxheW91dEJveCgpLnBhcmVu
dCgpKTsKQEAgLTE2MSwxNSArMTYxLDEzIEBAIHZvaWQgTGluZUJveDo6Y29uc3RydWN0SW5saW5l
Qm94ZXMoY29uc3QgTGluZTo6UnVuTGlzdCYgcnVucykKICAgICBjb25zdHJ1Y3RSb290SW5saW5l
Qm94KCk7CiAKICAgICBmb3IgKGF1dG8mIHJ1biA6IHJ1bnMpIHsKLSAgICAgICAgYXV0byYgbGF5
b3V0Qm94ID0gcnVuLmxheW91dEJveCgpOworICAgICAgICBhdXRvJiBpbmxpbmVMZXZlbEJveCA9
IHJ1bi5sYXlvdXRCb3goKTsKICAgICAgICAgaWYgKHJ1bi5pc0JveCgpKSB7Ci0gICAgICAgICAg
ICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3go
bGF5b3V0Qm94KTsKLSAgICAgICAgICAgIGF1dG8gaW5saW5lQm94TG9naWNhbExlZnQgPSBtX2hv
cml6b250YWxBbGlnbm1lbnRPZmZzZXQudmFsdWVPcihJbmxpbmVMYXlvdXRVbml0IHsgfSkgKyBy
dW4ubG9naWNhbExlZnQoKTsKLSAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNJbmxpbmVCbG9j
a0JveCgpICYmIGxheW91dEJveC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkp
IHsKLSAgICAgICAgICAgICAgICBhdXRvJiBmb3JtYXR0aW5nU3RhdGUgPSBsYXlvdXRTdGF0ZSgp
LmVzdGFibGlzaGVkSW5saW5lRm9ybWF0dGluZ1N0YXRlKGRvd25jYXN0PENvbnRhaW5lckJveD4o
bGF5b3V0Qm94KSk7Ci0gICAgICAgICAgICAgICAgLy8gU3BlYyBtYWtlcyB1cyBnZW5lcmF0ZSBh
dCBsZWFzdCBvbmUgbGluZSAtZXZlbiBpZiBpdCBpcyBlbXB0eS4KLSAgICAgICAgICAgICAgICBh
dXRvJiBsYXN0TGluZSA9IGZvcm1hdHRpbmdTdGF0ZS5kaXNwbGF5SW5saW5lQ29udGVudCgpLT5s
aW5lcy5sYXN0KCk7Ci0gICAgICAgICAgICAgICAgYXV0byBpbmxpbmVCbG9ja0Jhc2VsaW5lID0g
bGFzdExpbmUudG9wKCkgKyBsYXN0TGluZS5iYXNlbGluZSgpOworICAgICAgICAgICAgYXV0byBs
b2dpY2FsTGVmdCA9IG1faG9yaXpvbnRhbEFsaWdubWVudE9mZnNldC52YWx1ZU9yKElubGluZUxh
eW91dFVuaXQgeyB9KSArIHJ1bi5sb2dpY2FsTGVmdCgpOworICAgICAgICAgICAgYXV0byYgaW5s
aW5lTGV2ZWxCb3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3go
aW5saW5lTGV2ZWxCb3gpOworICAgICAgICAgICAgYXV0byBsb2dpY2FsSGVpZ2h0ID0gaW5saW5l
TGV2ZWxCb3hHZW9tZXRyeS5tYXJnaW5Cb3hIZWlnaHQoKTsKKyAgICAgICAgICAgIGF1dG8gYmFz
ZWxpbmUgPSBsb2dpY2FsSGVpZ2h0OworICAgICAgICAgICAgaWYgKGlubGluZUxldmVsQm94Lmlz
SW5saW5lQmxvY2tCb3goKSAmJiBpbmxpbmVMZXZlbEJveC5lc3RhYmxpc2hlc0lubGluZUZvcm1h
dHRpbmdDb250ZXh0KCkpIHsKICAgICAgICAgICAgICAgICAvLyBUaGUgaW5saW5lLWJsb2NrJ3Mg
YmFzZWxpbmUgb2Zmc2V0IGlzIHJlbGF0aXZlIHRvIGl0cyBjb250ZW50IGJveC4gTGV0J3MgY29u
dmVydCBpdCByZWxhdGl2ZSB0byB0aGUgbWFyZ2luIGJveC4KICAgICAgICAgICAgICAgICAvLyAg
ICAgICAgICAgX19fX19fX19fX19fX19fIDwtIG1hcmdpbiBib3gKICAgICAgICAgICAgICAgICAv
LyAgICAgICAgICB8CkBAIC0xODIsMzIgKzE4MCwyOSBAQCB2b2lkIExpbmVCb3g6OmNvbnN0cnVj
dElubGluZUJveGVzKGNvbnN0IExpbmU6OlJ1bkxpc3QmIHJ1bnMpCiAgICAgICAgICAgICAgICAg
Ly8gICAgIHRleHQgfCB8IHwgICB2IHRleHQKICAgICAgICAgICAgICAgICAvLyAgICAgLS0tLS18
LXwtfC0tLS0tLS0tLS0gPC0gYmFzZWxpbmUKICAgICAgICAgICAgICAgICAvLwotICAgICAgICAg
ICAgICAgIGF1dG8gYWRqdXN0ZWRCYXNlbGluZSA9IGJveEdlb21ldHJ5Lm1hcmdpbkJlZm9yZSgp
ICsgYm94R2VvbWV0cnkuYm9yZGVyVG9wKCkgKyBib3hHZW9tZXRyeS5wYWRkaW5nVG9wKCkudmFs
dWVPcigwKSArIGlubGluZUJsb2NrQmFzZWxpbmU7Ci0gICAgICAgICAgICAgICAgYXV0byBpbmxp
bmVCb3hSZWN0ID0gRGlzcGxheTo6SW5saW5lUmVjdCB7IHsgfSwgaW5saW5lQm94TG9naWNhbExl
ZnQsIHJ1bi5sb2dpY2FsV2lkdGgoKSwgYm94R2VvbWV0cnkubWFyZ2luQm94SGVpZ2h0KCkgfTsK
LSAgICAgICAgICAgICAgICBhdXRvIGlubGluZUJveCA9IG1ha2VVbmlxdWU8SW5saW5lQm94Pihs
YXlvdXRCb3gsIGlubGluZUJveFJlY3QsIGFkanVzdGVkQmFzZWxpbmUsIElubGluZUxheW91dFVu
aXQgeyB9LCBJbmxpbmVCb3g6OklzQ29uc2lkZXJlZEVtcHR5OjpObyk7Ci0gICAgICAgICAgICAg
ICAgbV9pbmxpbmVCb3hSZWN0TWFwLnNldCgmbGF5b3V0Qm94LCBpbmxpbmVCb3guZ2V0KCkpOwot
ICAgICAgICAgICAgICAgIG1faW5saW5lQm94TGlzdC5hcHBlbmQoV1RGTW92ZShpbmxpbmVCb3gp
KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYXV0byBydW5IZWlnaHQg
PSBib3hHZW9tZXRyeS5tYXJnaW5Cb3hIZWlnaHQoKTsKLSAgICAgICAgICAgICAgICBhdXRvIGlu
bGluZUJveFJlY3QgPSBEaXNwbGF5OjpJbmxpbmVSZWN0IHsgeyB9LCBpbmxpbmVCb3hMb2dpY2Fs
TGVmdCwgcnVuLmxvZ2ljYWxXaWR0aCgpLCBydW5IZWlnaHQgfTsKLSAgICAgICAgICAgICAgICBh
dXRvIGlubGluZUJveCA9IG1ha2VVbmlxdWU8SW5saW5lQm94PihsYXlvdXRCb3gsIGlubGluZUJv
eFJlY3QsIHJ1bkhlaWdodCwgSW5saW5lTGF5b3V0VW5pdCB7IH0sIElubGluZUJveDo6SXNDb25z
aWRlcmVkRW1wdHk6Ok5vKTsKLSAgICAgICAgICAgICAgICBtX2lubGluZUJveFJlY3RNYXAuc2V0
KCZsYXlvdXRCb3gsIGlubGluZUJveC5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgbV9pbmxpbmVC
b3hMaXN0LmFwcGVuZChXVEZNb3ZlKGlubGluZUJveCkpOworICAgICAgICAgICAgICAgIGF1dG8m
IGZvcm1hdHRpbmdTdGF0ZSA9IGxheW91dFN0YXRlKCkuZXN0YWJsaXNoZWRJbmxpbmVGb3JtYXR0
aW5nU3RhdGUoZG93bmNhc3Q8Q29udGFpbmVyQm94PihpbmxpbmVMZXZlbEJveCkpOworICAgICAg
ICAgICAgICAgIGF1dG8mIGxhc3RMaW5lID0gZm9ybWF0dGluZ1N0YXRlLmRpc3BsYXlJbmxpbmVD
b250ZW50KCktPmxpbmVzLmxhc3QoKTsKKyAgICAgICAgICAgICAgICBhdXRvIGlubGluZUJsb2Nr
QmFzZWxpbmUgPSBsYXN0TGluZS50b3AoKSArIGxhc3RMaW5lLmJhc2VsaW5lKCk7CisgICAgICAg
ICAgICAgICAgYmFzZWxpbmUgPSBpbmxpbmVMZXZlbEJveEdlb21ldHJ5Lm1hcmdpbkJlZm9yZSgp
ICsgaW5saW5lTGV2ZWxCb3hHZW9tZXRyeS5ib3JkZXJUb3AoKSArIGlubGluZUxldmVsQm94R2Vv
bWV0cnkucGFkZGluZ1RvcCgpLnZhbHVlT3IoMCkgKyBpbmxpbmVCbG9ja0Jhc2VsaW5lOwogICAg
ICAgICAgICAgfQorICAgICAgICAgICAgYXV0byByZWN0ID0gRGlzcGxheTo6SW5saW5lUmVjdCB7
IHsgfSwgbG9naWNhbExlZnQsIHJ1bi5sb2dpY2FsV2lkdGgoKSwgbG9naWNhbEhlaWdodCB9Owor
ICAgICAgICAgICAgYXV0byBpbmxpbmVCb3ggPSBtYWtlVW5pcXVlPElubGluZUJveD4oaW5saW5l
TGV2ZWxCb3gsIHJlY3QsIGJhc2VsaW5lLCBJbmxpbmVMYXlvdXRVbml0IHsgfSwgSW5saW5lQm94
OjpJc0NvbnNpZGVyZWRFbXB0eTo6Tm8pOworICAgICAgICAgICAgbV9pbmxpbmVCb3hSZWN0TWFw
LnNldCgmaW5saW5lTGV2ZWxCb3gsIGlubGluZUJveC5nZXQoKSk7CisgICAgICAgICAgICBtX2lu
bGluZUJveExpc3QuYXBwZW5kKFdURk1vdmUoaW5saW5lQm94KSk7CiAgICAgICAgIH0gZWxzZSBp
ZiAocnVuLmlzQ29udGFpbmVyU3RhcnQoKSkgewogICAgICAgICAgICAgYXV0byBpbmxpbmVCb3hM
b2dpY2FsTGVmdCA9IG1faG9yaXpvbnRhbEFsaWdubWVudE9mZnNldC52YWx1ZU9yKElubGluZUxh
eW91dFVuaXQgeyB9KSArIHJ1bi5sb2dpY2FsTGVmdCgpOwogICAgICAgICAgICAgYXV0byBpbml0
aWFsV2lkdGggPSBsb2dpY2FsV2lkdGgoKSAtIHJ1bi5sb2dpY2FsTGVmdCgpOwogICAgICAgICAg
ICAgQVNTRVJUKGluaXRpYWxXaWR0aCA+PSAwKTsKLSAgICAgICAgICAgIGF1dG8mIGZvbnRNZXRy
aWNzID0gbGF5b3V0Qm94LnN0eWxlKCkuZm9udE1ldHJpY3MoKTsKKyAgICAgICAgICAgIGF1dG8m
IGZvbnRNZXRyaWNzID0gaW5saW5lTGV2ZWxCb3guc3R5bGUoKS5mb250TWV0cmljcygpOwogICAg
ICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gZm9udE1ldHJpY3MuaGVp
Z2h0KCk7CiAgICAgICAgICAgICBJbmxpbmVMYXlvdXRVbml0IGJhc2VsaW5lID0gZm9udE1ldHJp
Y3MuYXNjZW50KCk7CiAgICAgICAgICAgICBhdXRvIGlubGluZUJveFJlY3QgPSBEaXNwbGF5OjpJ
bmxpbmVSZWN0IHsgeyB9LCBpbmxpbmVCb3hMb2dpY2FsTGVmdCwgaW5pdGlhbFdpZHRoLCBsb2dp
Y2FsSGVpZ2h0IH07Ci0gICAgICAgICAgICBhdXRvIGlubGluZUJveCA9IG1ha2VVbmlxdWU8SW5s
aW5lQm94PihsYXlvdXRCb3gsIGlubGluZUJveFJlY3QsIGJhc2VsaW5lLCBsb2dpY2FsSGVpZ2h0
IC0gYmFzZWxpbmUsIElubGluZUJveDo6SXNDb25zaWRlcmVkRW1wdHk6Olllcyk7Ci0gICAgICAg
ICAgICBtX2lubGluZUJveFJlY3RNYXAuc2V0KCZsYXlvdXRCb3gsIGlubGluZUJveC5nZXQoKSk7
CisgICAgICAgICAgICBhdXRvIGlubGluZUJveCA9IG1ha2VVbmlxdWU8SW5saW5lQm94Pihpbmxp
bmVMZXZlbEJveCwgaW5saW5lQm94UmVjdCwgYmFzZWxpbmUsIGxvZ2ljYWxIZWlnaHQgLSBiYXNl
bGluZSwgSW5saW5lQm94OjpJc0NvbnNpZGVyZWRFbXB0eTo6WWVzKTsKKyAgICAgICAgICAgIG1f
aW5saW5lQm94UmVjdE1hcC5zZXQoJmlubGluZUxldmVsQm94LCBpbmxpbmVCb3guZ2V0KCkpOwog
ICAgICAgICAgICAgbV9pbmxpbmVCb3hMaXN0LmFwcGVuZChXVEZNb3ZlKGlubGluZUJveCkpOwog
ICAgICAgICB9IGVsc2UgaWYgKHJ1bi5pc0NvbnRhaW5lckVuZCgpKSB7CiAgICAgICAgICAgICAv
LyBBZGp1c3QgdGhlIGxvZ2ljYWwgd2lkdGggd2hlbiB0aGUgaW5saW5lIGxldmVsIGNvbnRhaW5l
ciBjbG9zZXMgb24gdGhpcyBsaW5lLgotICAgICAgICAgICAgYXV0byYgaW5saW5lQm94ID0gKm1f
aW5saW5lQm94UmVjdE1hcC5nZXQoJmxheW91dEJveCk7CisgICAgICAgICAgICBhdXRvJiBpbmxp
bmVCb3ggPSAqbV9pbmxpbmVCb3hSZWN0TWFwLmdldCgmaW5saW5lTGV2ZWxCb3gpOwogICAgICAg
ICAgICAgaW5saW5lQm94LnNldExvZ2ljYWxXaWR0aChydW4ubG9naWNhbFJpZ2h0KCkgLSBpbmxp
bmVCb3gubG9naWNhbExlZnQoKSk7CiAgICAgICAgIH0gZWxzZSBpZiAoKHJ1bi5pc1RleHQoKSB8
fCBydW4uaXNMaW5lQnJlYWsoKSkpIHsKICAgICAgICAgICAgIGF1dG8mIGNvbnRhaW5lckJveCA9
IHJ1bi5sYXlvdXRCb3goKS5wYXJlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guaAppbmRleCAxYTU2ZWI1Mzk0ZGRk
ZTNkYmY0OTcxYzQ5ODUwOTU5MmQyMzhmZmRiLi5kYmI1NmQ5Yzg1OWZjZDEwMWM4ZDA4NzMyOWY2
MDg2OTdiN2FiY2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVMaW5lQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lTGluZUJveC5oCkBAIC0xMDUsNyArMTA1LDcgQEAgcHVibGljOgog
ICAgIGJvb2wgaXNMaW5lVmlzdWFsbHlFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1faXNMaW5lVmlz
dWFsbHlFbXB0eTsgfQogCiAgICAgY29uc3QgSW5saW5lQm94JiBpbmxpbmVCb3hGb3JMYXlvdXRC
b3goY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0IHsgcmV0dXJuICptX2lubGluZUJveFJlY3RN
YXAuZ2V0KCZsYXlvdXRCb3gpOyB9Ci0gICAgRGlzcGxheTo6SW5saW5lUmVjdCBpbmxpbmVSZWN0
Rm9yVGV4dFJ1bihjb25zdCBMaW5lOjpSdW4mKSBjb25zdDsKKyAgICBEaXNwbGF5OjpJbmxpbmVS
ZWN0IGxvZ2ljYWxSZWN0Rm9yVGV4dFJ1bihjb25zdCBMaW5lOjpSdW4mKSBjb25zdDsKIAogICAg
IElubGluZUxheW91dFVuaXQgYWxpZ25tZW50QmFzZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX3Jv
b3RJbmxpbmVCb3gubG9naWNhbFRvcCgpICsgbV9yb290SW5saW5lQm94LmJhc2VsaW5lKCk7IH0K
IAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>