<?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>231551</bug_id>
          
          <creation_ts>2021-10-11 20:19:47 -0700</creation_ts>
          <short_desc>[LFC][IFC] Add &quot;line spanning line box start items&quot; to Line</short_desc>
          <delta_ts>2021-10-16 14:16:18 -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>1802947</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-10-11 20:19:47 -0700</bug_when>
    <thetext>This is in preparation for supporting &quot;line spanning line box&quot; decorations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802948</commentid>
    <comment_count>1</comment_count>
      <attachid>440878</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-10-11 20:24:57 -0700</bug_when>
    <thetext>Created attachment 440878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805088</commentid>
    <comment_count>2</comment_count>
      <attachid>441445</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-10-15 15:51:05 -0700</bug_when>
    <thetext>Created attachment 441445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805304</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-16 14:15:04 -0700</bug_when>
    <thetext>Committed r284323 (243118@main): &lt;https://commits.webkit.org/243118@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441445.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805305</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-16 14:16:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/84335939&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440878</attachid>
            <date>2021-10-11 20:24:57 -0700</date>
            <delta_ts>2021-10-15 15:51:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231551-20211011202456.patch</filename>
            <type>text/plain</type>
            <size>23365</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzkxNDI2YjljM2YyYTI0
YWE1MWE5NWE1MDMyMjA0ZmUyMzM2NjI2Yi4uYmY0MzIyNDU0ZDZhNDhmZWYxMDA2M2IzOWQwMTc2
ZjZkZjEwM2VmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEwLTExICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIEFkZCAibGlu
ZSBzcGFubmluZyBsaW5lIGJveCBzdGFydCBpdGVtcyIgdG8gTGluZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNTUxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBpbiBwcmVwYXJh
dGlvbiBmb3Igc3VwcG9ydGluZyBib3gtZGVjb3JhdGlvbi1icmVhazogY2xvbmUsIHdoZXJlIHRo
ZSBsaW5lIHNwYW5uaW5nCisgICAgICAgIGlubGluZSBib3hlcyBtYXkgdGFrZSB1cCBzcGFjZSBv
biB0aGUgbGluZSAoYm9yZGVyL3BhZGRpbmcpLgorICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIHRo
ZSBjb25zdHJ1Y3Rpb24gb2YgdGhlIHNwYW5uaW5nIGlubGluZSBib3hlcyB0byBhbiBlYXJsaWVy
IHN0ZXAsIGZyb20gTGluZUJveCB0byBMaW5lLgorCisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6aW5pdGlhbGl6ZSk6CisKIDIwMjEtMTAtMTEgIEFsYW4g
QnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gTW92ZSBvdmVy
Zmxvd2luZyBjb250ZW50IGNyZWF0aW9uIHRvIExpbmVCdWlsZGVyOjppbml0aWFsaXplCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcApp
bmRleCBiY2UzZDMyODVkZmMyMmNkODYxMmZjODllNDliNzgzMjc3NTliNjVlLi42YzMyYjFlYjA2
OGYwNzZkMDZiMDUxZjFmMzk0ZmI0YjU5MzBmNGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1
aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKQEAgLTc4LDggKzc4LDcgQEAg
dm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmNyZWF0ZUJveGVzQW5kVXBkYXRlR2Vv
bWV0cnlGb3JMaW5lQ29udGVudChjb24KICAgICAgICAgICAgIHJldHVybiAhbGluZUluZGV4ID8g
bGF5b3V0Qm94LmZpcnN0TGluZVN0eWxlKCkgOiBsYXlvdXRCb3guc3R5bGUoKTsKICAgICAgICAg
fSgpOwogCi0gICAgICAgIHN3aXRjaCAobGluZVJ1bi50eXBlKCkpIHsKLSAgICAgICAgY2FzZSBJ
bmxpbmVJdGVtOjpUeXBlOjpUZXh0OiB7CisgICAgICAgIGlmIChsaW5lUnVuLmlzVGV4dCgpKSB7
CiAgICAgICAgICAgICBhdXRvIHRleHRSdW5SZWN0ID0gbGluZUJveC5sb2dpY2FsUmVjdEZvclRl
eHRSdW4obGluZVJ1bik7CiAgICAgICAgICAgICB0ZXh0UnVuUmVjdC5tb3ZlQnkobGluZUJveExv
Z2ljYWxUb3BMZWZ0KTsKIApAQCAtMTEwLDkgKzEwOSw5IEBAIHZvaWQgSW5saW5lRGlzcGxheUNv
bnRlbnRCdWlsZGVyOjpjcmVhdGVCb3hlc0FuZFVwZGF0ZUdlb21ldHJ5Rm9yTGluZUNvbnRlbnQo
Y29uCiAgICAgICAgICAgICAgICAgLCBpbmtPdmVyZmxvdygpCiAgICAgICAgICAgICAgICAgLCBs
aW5lUnVuLmV4cGFuc2lvbigpCiAgICAgICAgICAgICAgICAgLCBJbmxpbmVEaXNwbGF5OjpCb3g6
OlRleHQgeyB0ZXh0LT5zdGFydCwgdGV4dC0+bGVuZ3RoLCBjb250ZW50LCBhZGp1c3RlZENvbnRl
bnRUb1JlbmRlcigpLCB0ZXh0LT5uZWVkc0h5cGhlbiB9IH0pOwotICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgICBjYXNlIElubGluZUl0
ZW06OlR5cGU6OlNvZnRMaW5lQnJlYWs6IHsKKyAgICAgICAgaWYgKGxpbmVSdW4uaXNTb2Z0TGlu
ZUJyZWFrKCkpIHsKICAgICAgICAgICAgIGF1dG8gc29mdExpbmVCcmVha1J1blJlY3QgPSBsaW5l
Qm94LmxvZ2ljYWxSZWN0Rm9yVGV4dFJ1bihsaW5lUnVuKTsKICAgICAgICAgICAgIHNvZnRMaW5l
QnJlYWtSdW5SZWN0Lm1vdmVCeShsaW5lQm94TG9naWNhbFRvcExlZnQpOwogCkBAIC0xMjcsNyAr
MTI2LDcgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmNyZWF0ZUJveGVzQW5k
VXBkYXRlR2VvbWV0cnlGb3JMaW5lQ29udGVudChjb24KICAgICAgICAgICAgICAgICAsIElubGlu
ZURpc3BsYXk6OkJveDo6VGV4dCB7IHRleHQtPnN0YXJ0LCB0ZXh0LT5sZW5ndGgsIGRvd25jYXN0
PElubGluZVRleHRCb3g+KGxheW91dEJveCkuY29udGVudCgpIH0gfSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIElubGluZUl0ZW06OlR5cGU6OkhhcmRMaW5l
QnJlYWs6IHsKKyAgICAgICAgaWYgKGxpbmVSdW4uaXNIYXJkTGluZUJyZWFrKCkpIHsKICAgICAg
ICAgICAgIC8vIE9ubHkgaGFyZCBsaW5lYnJlYWtzIGhhdmUgYXNzb2NpYXRlZCBsYXlvdXQgYm94
ZXMuCiAgICAgICAgICAgICBhdXRvIGxpbmVCcmVha0JveFJlY3QgPSBsaW5lQm94LmxvZ2ljYWxS
ZWN0Rm9yTGluZUJyZWFrQm94KGxheW91dEJveCk7CiAgICAgICAgICAgICBsaW5lQnJlYWtCb3hS
ZWN0Lm1vdmVCeShsaW5lQm94TG9naWNhbFRvcExlZnQpOwpAQCAtMTM2LDkgKzEzNSw5IEBAIHZv
aWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpjcmVhdGVCb3hlc0FuZFVwZGF0ZUdlb21l
dHJ5Rm9yTGluZUNvbnRlbnQoY29uCiAgICAgICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZv
cm1hdHRpbmdTdGF0ZS5ib3hHZW9tZXRyeShsYXlvdXRCb3gpOwogICAgICAgICAgICAgYm94R2Vv
bWV0cnkuc2V0TG9naWNhbFRvcExlZnQodG9MYXlvdXRQb2ludChsaW5lQnJlYWtCb3hSZWN0LnRv
cExlZnQoKSkpOwogICAgICAgICAgICAgYm94R2VvbWV0cnkuc2V0Q29udGVudEJveEhlaWdodCh0
b0xheW91dFVuaXQobGluZUJyZWFrQm94UmVjdC5oZWlnaHQoKSkpOwotICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgICBjYXNlIElubGlu
ZUl0ZW06OlR5cGU6OkJveDogeworICAgICAgICBpZiAobGluZVJ1bi5pc0JveCgpKSB7CiAgICAg
ICAgICAgICBBU1NFUlQobGF5b3V0Qm94LmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSk7CiAgICAg
ICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdTdGF0ZS5ib3hHZW9tZXRyeShs
YXlvdXRCb3gpOwogICAgICAgICAgICAgYXV0byBsb2dpY2FsQm9yZGVyQm94ID0gbGluZUJveC5s
b2dpY2FsQm9yZGVyQm94Rm9yQXRvbWljSW5saW5lTGV2ZWxCb3gobGF5b3V0Qm94LCBib3hHZW9t
ZXRyeSk7CkBAIC0xNjEsOSArMTYwLDkgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxk
ZXI6OmNyZWF0ZUJveGVzQW5kVXBkYXRlR2VvbWV0cnlGb3JMaW5lQ29udGVudChjb24KICAgICAg
ICAgICAgICAgICBib3hlc1ttX2lubGluZUJveEluZGV4TWFwLmdldCgmcGFyZW50SW5saW5lQm94
KV0uYWRqdXN0SW5rT3ZlcmZsb3cobG9naWNhbEJvcmRlckJveCk7CiAgICAgICAgICAgICB9Owog
ICAgICAgICAgICAgYWRqdXN0UGFyZW50SW5saW5lQm94SW5rT3ZlcmZsb3coKTsKLSAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAgICAgICAgY2Fz
ZSBJbmxpbmVJdGVtOjpUeXBlOjpJbmxpbmVCb3hTdGFydDogeworICAgICAgICBpZiAobGluZVJ1
bi5pc0lubGluZUJveFN0YXJ0KCkpIHsKICAgICAgICAgICAgIC8vIFRoaXMgaW5saW5lIGJveCBz
aG93ZWQgdXAgZmlyc3Qgb24gdGhpcyBsaW5lLgogICAgICAgICAgICAgYXV0byYgYm94R2VvbWV0
cnkgPSBmb3JtYXR0aW5nU3RhdGUuYm94R2VvbWV0cnkobGF5b3V0Qm94KTsKICAgICAgICAgICAg
IGF1dG8gaW5saW5lQm94Qm9yZGVyQm94ID0gbGluZUJveC5sb2dpY2FsQm9yZGVyQm94Rm9ySW5s
aW5lQm94KGxheW91dEJveCwgYm94R2VvbWV0cnkpOwpAQCAtMTg1LDEyICsxODQsOSBAQCB2b2lk
IElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6Y3JlYXRlQm94ZXNBbmRVcGRhdGVHZW9tZXRy
eUZvckxpbmVDb250ZW50KGNvbgogICAgICAgICAgICAgYm94R2VvbWV0cnkuc2V0Q29udGVudEJv
eEhlaWdodChjb250ZW50Qm94SGVpZ2h0KTsKICAgICAgICAgICAgIGF1dG8gY29udGVudEJveFdp
ZHRoID0gbG9naWNhbFJlY3Qud2lkdGgoKSAtIChib3hHZW9tZXRyeS5ob3Jpem9udGFsQm9yZGVy
KCkgKyBib3hHZW9tZXRyeS5ob3Jpem9udGFsUGFkZGluZygpLnZhbHVlX29yKDBfbHUpKTsKICAg
ICAgICAgICAgIGJveEdlb21ldHJ5LnNldENvbnRlbnRCb3hXaWR0aChjb250ZW50Qm94V2lkdGgp
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgICAgIEFTU0VSVChsaW5lUnVuLmlzSW5saW5lQm94RW5kKCkgfHwgbGluZVJ1bi5pc1dvcmRC
cmVha09wcG9ydHVuaXR5KCkpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQorICAgICAgICBBU1NFUlQobGluZVJ1bi5pc0lubGluZUJveEVuZCgp
IHx8IGxpbmVSdW4uaXNXb3JkQnJlYWtPcHBvcnR1bml0eSgpIHx8IGxpbmVSdW4uaXNMaW5lU3Bh
bm5pbmdJbmxpbmVCb3hTdGFydCgpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0u
aAppbmRleCA2OTM1NWEzMzFjYTdjZjc1YTk2YjVlMzBkNmI4OTM5MzdjZDU3NDk0Li4yY2EzYmE0
NTViZTYzYmQ0YmIzMDQ3OWMyMWViMjE2ZDMwNzdlODE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRl
bS5oCkBAIC0zNSw3ICszNSwxNiBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIAogY2xhc3MgSW5saW5l
SXRlbSB7CiBwdWJsaWM6Ci0gICAgZW51bSBjbGFzcyBUeXBlIDogdWludDhfdCB7IFRleHQsIEhh
cmRMaW5lQnJlYWssIFNvZnRMaW5lQnJlYWssIFdvcmRCcmVha09wcG9ydHVuaXR5LCBCb3gsIEZs
b2F0LCBJbmxpbmVCb3hTdGFydCwgSW5saW5lQm94RW5kIH07CisgICAgZW51bSBjbGFzcyBUeXBl
IDogdWludDhfdCB7CisgICAgICAgIFRleHQsCisgICAgICAgIEhhcmRMaW5lQnJlYWssCisgICAg
ICAgIFNvZnRMaW5lQnJlYWssCisgICAgICAgIFdvcmRCcmVha09wcG9ydHVuaXR5LAorICAgICAg
ICBCb3gsCisgICAgICAgIElubGluZUJveFN0YXJ0LAorICAgICAgICBJbmxpbmVCb3hFbmQsCisg
ICAgICAgIEZsb2F0CisgICAgfTsKICAgICBJbmxpbmVJdGVtKGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBUeXBlKTsKIAogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVMaW5lLmNwcAppbmRleCBjZTcwMjJiYmJiYmJkZTUwY2FkY2JhMGQ3YWI1
YWZlZDY5NmRkNmE0Li5jMmRjN2RkMzA5N2FhN2U5M2EwNGRmZjZlNTkzNTUzZWE4MzAyMTE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcApAQCAtNTAsMTIgKzUwLDE3IEBAIExpbmU6On5M
aW5lKCkKIHsKIH0KIAotdm9pZCBMaW5lOjppbml0aWFsaXplKCkKK3ZvaWQgTGluZTo6aW5pdGlh
bGl6ZShjb25zdCBWZWN0b3I8SW5saW5lSXRlbT4mIGxpbmVTcGFubmluZ0lubGluZUJveGVzKQog
ewogICAgIG1fbm9uU3Bhbm5pbmdJbmxpbmVMZXZlbEJveENvdW50ID0gMDsKICAgICBtX2NvbnRl
bnRMb2dpY2FsV2lkdGggPSB7IH07CiAgICAgbV9ydW5zLmNsZWFyKCk7CiAgICAgcmVzZXRUcmFp
bGluZ0NvbnRlbnQoKTsKKyAgICBhdXRvIGFwcGVuZExpbmVTcGFubmluZ0lubGluZUJveGVzID0g
WyZdIHsKKyAgICAgICAgZm9yIChhdXRvJiBpbmxpbmVCb3hTdGFydEl0ZW0gOiBsaW5lU3Bhbm5p
bmdJbmxpbmVCb3hlcykKKyAgICAgICAgICAgIG1fcnVucy5hcHBlbmQoeyBpbmxpbmVCb3hTdGFy
dEl0ZW0gfSk7CisgICAgfTsKKyAgICBhcHBlbmRMaW5lU3Bhbm5pbmdJbmxpbmVCb3hlcygpOwog
fQogCiB2b2lkIExpbmU6OnJlc2V0VHJhaWxpbmdDb250ZW50KCkKQEAgLTQ3Nyw4ICs0ODIsMjcg
QEAgdm9pZCBMaW5lOjpIYW5naW5nVHJhaWxpbmdDb250ZW50OjphZGQoY29uc3QgSW5saW5lVGV4
dEl0ZW0mIHRyYWlsaW5nV2hpdGVzcGFjZSwKICAgICBtX2xlbmd0aCArPSB0cmFpbGluZ1doaXRl
c3BhY2UubGVuZ3RoKCk7CiB9CiAKK2lubGluZSBzdGF0aWMgTGluZTo6UnVuOjpUeXBlIHRvTGlu
ZVJ1blR5cGUoSW5saW5lSXRlbTo6VHlwZSBpbmxpbmVJdGVtVHlwZSkKK3sKKyAgICBzd2l0Y2gg
KGlubGluZUl0ZW1UeXBlKSB7CisgICAgY2FzZSBJbmxpbmVJdGVtOjpUeXBlOjpIYXJkTGluZUJy
ZWFrOgorICAgICAgICByZXR1cm4gTGluZTo6UnVuOjpUeXBlOjpIYXJkTGluZUJyZWFrOworICAg
IGNhc2UgSW5saW5lSXRlbTo6VHlwZTo6V29yZEJyZWFrT3Bwb3J0dW5pdHk6CisgICAgICAgIHJl
dHVybiBMaW5lOjpSdW46OlR5cGU6OldvcmRCcmVha09wcG9ydHVuaXR5OworICAgIGNhc2UgSW5s
aW5lSXRlbTo6VHlwZTo6Qm94OgorICAgICAgICByZXR1cm4gTGluZTo6UnVuOjpUeXBlOjpBdG9t
aWNCb3g7CisgICAgY2FzZSBJbmxpbmVJdGVtOjpUeXBlOjpJbmxpbmVCb3hTdGFydDoKKyAgICAg
ICAgcmV0dXJuIExpbmU6OlJ1bjo6VHlwZTo6SW5saW5lQm94U3RhcnQ7CisgICAgY2FzZSBJbmxp
bmVJdGVtOjpUeXBlOjpJbmxpbmVCb3hFbmQ6CisgICAgICAgIHJldHVybiBMaW5lOjpSdW46OlR5
cGU6OklubGluZUJveEVuZDsKKyAgICBkZWZhdWx0OgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICByZXR1cm4geyB9OworfQorCiBMaW5lOjpSdW46OlJ1
bihjb25zdCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUs
IElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdp
ZHRoKQotICAgIDogbV90eXBlKGlubGluZUl0ZW0udHlwZSgpKQorICAgIDogbV90eXBlKHRvTGlu
ZVJ1blR5cGUoaW5saW5lSXRlbS50eXBlKCkpKQogICAgICwgbV9sYXlvdXRCb3goJmlubGluZUl0
ZW0ubGF5b3V0Qm94KCkpCiAgICAgLCBtX2xvZ2ljYWxMZWZ0KGxvZ2ljYWxMZWZ0KQogICAgICwg
bV9sb2dpY2FsV2lkdGgobG9naWNhbFdpZHRoKQpAQCAtNDg3LDE0ICs1MTEsMjEgQEAgTGluZTo6
UnVuOjpSdW4oY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgY29uc3QgUmVuZGVyU3R5bGUm
IHN0eWxlLCBJbmxpbmVMYXkKIH0KIAogTGluZTo6UnVuOjpSdW4oY29uc3QgSW5saW5lSXRlbSYg
emVyb1dpZGh0SW5saW5lSXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCkKLSAgICA6
IG1fdHlwZSh6ZXJvV2lkaHRJbmxpbmVJdGVtLnR5cGUoKSkKKyAgICA6IG1fdHlwZSh0b0xpbmVS
dW5UeXBlKHplcm9XaWRodElubGluZUl0ZW0udHlwZSgpKSkKICAgICAsIG1fbGF5b3V0Qm94KCZ6
ZXJvV2lkaHRJbmxpbmVJdGVtLmxheW91dEJveCgpKQogICAgICwgbV9sb2dpY2FsTGVmdChsb2dp
Y2FsTGVmdCkKIHsKIH0KIAorTGluZTo6UnVuOjpSdW4oY29uc3QgSW5saW5lSXRlbSYgbGluZVNw
YW5uaW5nSW5saW5lQm94SXRlbSkKKyAgICA6IG1fdHlwZShUeXBlOjpMaW5lU3Bhbm5pbmdJbmxp
bmVCb3hTdGFydCkKKyAgICAsIG1fbGF5b3V0Qm94KCZsaW5lU3Bhbm5pbmdJbmxpbmVCb3hJdGVt
LmxheW91dEJveCgpKQoreworICAgIEFTU0VSVChsaW5lU3Bhbm5pbmdJbmxpbmVCb3hJdGVtLmlz
SW5saW5lQm94U3RhcnQoKSk7Cit9CisKIExpbmU6OlJ1bjo6UnVuKGNvbnN0IElubGluZVNvZnRM
aW5lQnJlYWtJdGVtJiBzb2Z0TGluZUJyZWFrSXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2Fs
TGVmdCkKLSAgICA6IG1fdHlwZShzb2Z0TGluZUJyZWFrSXRlbS50eXBlKCkpCisgICAgOiBtX3R5
cGUoVHlwZTo6U29mdExpbmVCcmVhaykKICAgICAsIG1fbGF5b3V0Qm94KCZzb2Z0TGluZUJyZWFr
SXRlbS5sYXlvdXRCb3goKSkKICAgICAsIG1fbG9naWNhbExlZnQobG9naWNhbExlZnQpCiAgICAg
LCBtX3RleHRDb250ZW50KHsgc29mdExpbmVCcmVha0l0ZW0ucG9zaXRpb24oKSwgMSB9KQpAQCAt
NTAyLDcgKzUzMyw3IEBAIExpbmU6OlJ1bjo6UnVuKGNvbnN0IElubGluZVNvZnRMaW5lQnJlYWtJ
dGVtJiBzb2Z0TGluZUJyZWFrSXRlbSwgSW5saW5lTGF5b3V0VW5pCiB9CiAKIExpbmU6OlJ1bjo6
UnVuKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRVbml0
IGxvZ2ljYWxXaWR0aCkKLSAgICA6IG1fdHlwZShJbmxpbmVJdGVtOjpUeXBlOjpUZXh0KQorICAg
IDogbV90eXBlKFR5cGU6OlRleHQpCiAgICAgLCBtX2xheW91dEJveCgmaW5saW5lVGV4dEl0ZW0u
bGF5b3V0Qm94KCkpCiAgICAgLCBtX2xvZ2ljYWxMZWZ0KGxvZ2ljYWxMZWZ0KQogICAgICwgbV9s
b2dpY2FsV2lkdGgobG9naWNhbFdpZHRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCmluZGV4IDgy
ZmUxOTM5YTM5MjhhM2IxYzViZjUyYTNjMTQ5NDE5ZGE4YmYwMTAuLmI0YTg1NGQ4ZThkNTAwMmE0
YmIxNmUxY2NhMmI1ZTdkZDMyZmNlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmgKQEAgLTQy
LDcgKzQyLDcgQEAgcHVibGljOgogICAgIExpbmUoY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQmKTsKICAgICB+TGluZSgpOwogCi0gICAgdm9pZCBpbml0aWFsaXplKCk7CisgICAgdm9pZCBp
bml0aWFsaXplKGNvbnN0IFZlY3RvcjxJbmxpbmVJdGVtPiYgbGluZVNwYW5uaW5nSW5saW5lQm94
ZXMpOwogCiAgICAgdm9pZCBhcHBlbmQoY29uc3QgSW5saW5lSXRlbSYsIGNvbnN0IFJlbmRlclN0
eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpOwogCkBAIC02MiwxNSArNjIsMjYg
QEAgcHVibGljOgogICAgIHZvaWQgYXBwbHlSdW5FeHBhbnNpb24oSW5saW5lTGF5b3V0VW5pdCBo
b3Jpem9udGFsQXZhaWxhYmxlU3BhY2UpOwogCiAgICAgc3RydWN0IFJ1biB7Ci0gICAgICAgIGJv
b2wgaXNUZXh0KCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IElubGluZUl0ZW06OlR5cGU6OlRl
eHQ7IH0KLSAgICAgICAgYm9vbCBpc0JveCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBJbmxp
bmVJdGVtOjpUeXBlOjpCb3g7IH0KKyAgICAgICAgZW51bSBjbGFzcyBUeXBlIDogdWludDhfdCB7
CisgICAgICAgICAgICBUZXh0LAorICAgICAgICAgICAgSGFyZExpbmVCcmVhaywKKyAgICAgICAg
ICAgIFNvZnRMaW5lQnJlYWssCisgICAgICAgICAgICBXb3JkQnJlYWtPcHBvcnR1bml0eSwKKyAg
ICAgICAgICAgIEF0b21pY0JveCwKKyAgICAgICAgICAgIElubGluZUJveFN0YXJ0LAorICAgICAg
ICAgICAgSW5saW5lQm94RW5kLAorICAgICAgICAgICAgTGluZVNwYW5uaW5nSW5saW5lQm94U3Rh
cnQKKyAgICAgICAgfTsKKworICAgICAgICBib29sIGlzVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1f
dHlwZSA9PSBUeXBlOjpUZXh0OyB9CisgICAgICAgIGJvb2wgaXNCb3goKSBjb25zdCB7IHJldHVy
biBtX3R5cGUgPT0gVHlwZTo6QXRvbWljQm94OyB9CiAgICAgICAgIGJvb2wgaXNMaW5lQnJlYWso
KSBjb25zdCB7IHJldHVybiBpc0hhcmRMaW5lQnJlYWsoKSB8fCBpc1NvZnRMaW5lQnJlYWsoKTsg
fQotICAgICAgICBib29sIGlzU29mdExpbmVCcmVhaygpIGNvbnN0ICB7IHJldHVybiBtX3R5cGUg
PT0gSW5saW5lSXRlbTo6VHlwZTo6U29mdExpbmVCcmVhazsgfQotICAgICAgICBib29sIGlzSGFy
ZExpbmVCcmVhaygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBJbmxpbmVJdGVtOjpUeXBlOjpI
YXJkTGluZUJyZWFrOyB9Ci0gICAgICAgIGJvb2wgaXNXb3JkQnJlYWtPcHBvcnR1bml0eSgpIGNv
bnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBJbmxpbmVJdGVtOjpUeXBlOjpXb3JkQnJlYWtPcHBvcnR1
bml0eTsgfQotICAgICAgICBib29sIGlzSW5saW5lQm94U3RhcnQoKSBjb25zdCB7IHJldHVybiBt
X3R5cGUgPT0gSW5saW5lSXRlbTo6VHlwZTo6SW5saW5lQm94U3RhcnQ7IH0KLSAgICAgICAgYm9v
bCBpc0lubGluZUJveEVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBJbmxpbmVJdGVtOjpU
eXBlOjpJbmxpbmVCb3hFbmQ7IH0KLSAgICAgICAgYXV0byB0eXBlKCkgY29uc3QgeyByZXR1cm4g
bV90eXBlOyB9CisgICAgICAgIGJvb2wgaXNTb2Z0TGluZUJyZWFrKCkgY29uc3QgIHsgcmV0dXJu
IG1fdHlwZSA9PSBUeXBlOjpTb2Z0TGluZUJyZWFrOyB9CisgICAgICAgIGJvb2wgaXNIYXJkTGlu
ZUJyZWFrKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6OkhhcmRMaW5lQnJlYWs7IH0K
KyAgICAgICAgYm9vbCBpc1dvcmRCcmVha09wcG9ydHVuaXR5KCkgY29uc3QgeyByZXR1cm4gbV90
eXBlID09IFR5cGU6OldvcmRCcmVha09wcG9ydHVuaXR5OyB9CisgICAgICAgIGJvb2wgaXNJbmxp
bmVCb3hTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpJbmxpbmVCb3hTdGFy
dDsgfQorICAgICAgICBib29sIGlzTGluZVNwYW5uaW5nSW5saW5lQm94U3RhcnQoKSBjb25zdCB7
IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6TGluZVNwYW5uaW5nSW5saW5lQm94U3RhcnQ7IH0KKyAg
ICAgICAgYm9vbCBpc0lubGluZUJveEVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBl
OjpJbmxpbmVCb3hFbmQ7IH0KIAogICAgICAgICBjb25zdCBCb3gmIGxheW91dEJveCgpIGNvbnN0
IHsgcmV0dXJuICptX2xheW91dEJveDsgfQogICAgICAgICBzdHJ1Y3QgVGV4dCB7CkBAIC0xMDEs
NiArMTEyLDcgQEAgcHVibGljOgogICAgICAgICBSdW4oY29uc3QgSW5saW5lU29mdExpbmVCcmVh
a0l0ZW0mLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KTsKICAgICAgICAgUnVuKGNvbnN0
IElubGluZUl0ZW0mLCBjb25zdCBSZW5kZXJTdHlsZSYsIElubGluZUxheW91dFVuaXQgbG9naWNh
bExlZnQsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKTsKICAgICAgICAgUnVuKGNvbnN0
IElubGluZUl0ZW0mLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KTsKKyAgICAgICAgUnVu
KGNvbnN0IElubGluZUl0ZW0mIGxpbmVTcGFubmluZ0lubGluZUJveEl0ZW0pOwogCiAgICAgICAg
IHZvaWQgZXhwYW5kKGNvbnN0IElubGluZVRleHRJdGVtJiwgSW5saW5lTGF5b3V0VW5pdCBsb2dp
Y2FsV2lkdGgpOwogICAgICAgICB2b2lkIG1vdmVIb3Jpem9udGFsbHkoSW5saW5lTGF5b3V0VW5p
dCBvZmZzZXQpIHsgbV9sb2dpY2FsTGVmdCArPSBvZmZzZXQ7IH0KQEAgLTEyNCw3ICsxMzYsNyBA
QCBwdWJsaWM6CiAgICAgICAgIElubGluZUxheW91dFVuaXQgdHJhaWxpbmdMZXR0ZXJTcGFjaW5n
KCkgY29uc3Q7CiAgICAgICAgIHZvaWQgcmVtb3ZlVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCk7CiAK
LSAgICAgICAgSW5saW5lSXRlbTo6VHlwZSBtX3R5cGUgeyBJbmxpbmVJdGVtOjpUeXBlOjpUZXh0
IH07CisgICAgICAgIFR5cGUgbV90eXBlIHsgVHlwZTo6VGV4dCB9OwogICAgICAgICBjb25zdCBC
b3gqIG1fbGF5b3V0Qm94IHsgbnVsbHB0ciB9OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1f
bG9naWNhbExlZnQgeyAwIH07CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbV9sb2dpY2FsV2lk
dGggeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAK
aW5kZXggZDQ1YWI3MDc2NDAzOGZiNDE2Yzg4YTFmMDY4ZTdkM2MxMmI2Mjc3MC4uOTk2ZmFjYTRl
Yjk4ZTU0ODk4NzY0NWU5NGU0NzQ4YTU0ZTI0NWJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcApAQCAtMjUyLDQzICsyNTIsNiBAQCBJbmxpbmVMYXlv
dXRVbml0IExpbmVCb3hCdWlsZGVyOjpjb25zdHJ1Y3RBbmRBbGlnbklubGluZUxldmVsQm94ZXMo
TGluZUJveCYgbGluZQogICAgICAgICByZXR1cm4gIWxpbmVJbmRleCA/IGxheW91dEJveC5maXJz
dExpbmVTdHlsZSgpIDogbGF5b3V0Qm94LnN0eWxlKCk7CiAgICAgfTsKIAotICAgIGF1dG8gY3Jl
YXRlTGluZVNwYW5uaW5nSW5saW5lQm94ZXMgPSBbJl0gewotICAgICAgICBpZiAocnVucy5pc0Vt
cHR5KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIC8vIEFuIGlubGluZSBib3ggbWF5
IG5vdCBuZWNlc3NhcmlseSBzdGFydCBvbiB0aGUgY3VycmVudCBsaW5lOgotICAgICAgICAvLyA8
c3BhbiBpZD1vdXRlcj5saW5lIGJyZWFrPGJyPnRoaXMgY29udGVudCdzIHBhcmVudCBpbmxpbmUg
Ym94KCdvdXRlcicpIDxzcGFuIGlkPWlubmVyPnN0YXJ0cyBvbiB0aGUgcHJldmlvdXMgbGluZTwv
c3Bhbj48L3NwYW4+Ci0gICAgICAgIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlcmUn
cyBhbiBJbmxpbmVMZXZlbEJveCBmb3IgZXZlcnkgaW5saW5lIGJveCB0aGF0J3MgcHJlc2VudCBv
biB0aGUgY3VycmVudCBsaW5lLgotICAgICAgICAvLyBJbiBuZXN0aW5nIGNhc2Ugd2UgbmVlZCB0
byBjcmVhdGUgSW5saW5lTGV2ZWxCb3hlcyBmb3IgdGhlIGlubGluZSBib3ggYW5jZXN0b3JzLgot
ICAgICAgICAvLyBXZSBvbmx5IGhhdmUgdG8gZG8gaXQgb24gdGhlIGZpcnN0IHJ1biBhcyBhbnkg
c3Vic2VxdWVudCBpbmxpbmUgY29udGVudCBpcyBlaXRoZXIgYXQgdGhlIHNhbWUvaGlnaGVyIG5l
c3RpbmcgbGV2ZWwgb3IKLSAgICAgICAgLy8gbmVzdGVkIHdpdGggYSBbaW5saW5lIGJveCBzdGFy
dF0gcnVuLgotICAgICAgICBhdXRvJiBmaXJzdFJ1biA9IHJ1bnNbMF07Ci0gICAgICAgIGF1dG8m
IGZpcnN0UnVuUGFyZW50TGF5b3V0Qm94ID0gZmlyc3RSdW4ubGF5b3V0Qm94KCkucGFyZW50KCk7
Ci0gICAgICAgIC8vIElmIHRoZSBwYXJlbnQgaXMgdGhlIGZvcm1hdHRpbmcgcm9vdCwgd2UgY2Fu
IHN0b3AgaGVyZS4gVGhpcyBpcyByb290IGlubGluZSBib3ggY29udGVudCwgdGhlcmUncyBubyBu
ZXN0aW5nIGlubGluZSBib3ggZnJvbSB0aGUgcHJldmlvdXMgbGluZShzKQotICAgICAgICAvLyB1
bmxlc3MgdGhlIGlubGluZSBib3ggY2xvc2luZyBpcyBmb3JjZWQgb3ZlciB0byB0aGUgY3VycmVu
dCBsaW5lLgotICAgICAgICAvLyBlLmcuCi0gICAgICAgIC8vIDxzcGFuPm5vcm1hbGx5IHRoZSBp
bmxpbmUgYm94IGNsb3NpbmcgZm9ybXMgYSBjb250aW51b3VzIGNvbnRlbnQ8L3NwYW4+Ci0gICAg
ICAgIC8vIDxzcGFuPnVubGVzcyBpdCdzIGZvcmNlZCB0byB0aGUgbmV4dCBsaW5lPGJyPjwvc3Bh
bj4KLSAgICAgICAgYXV0byBmaXJzdFJ1bk5lZWRzSW5saW5lQm94ID0gZmlyc3RSdW4uaXNJbmxp
bmVCb3hFbmQoKTsKLSAgICAgICAgaWYgKCFmaXJzdFJ1bk5lZWRzSW5saW5lQm94ICYmIGlzUm9v
dExheW91dEJveChmaXJzdFJ1blBhcmVudExheW91dEJveCkpCi0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIFZlY3Rvcjxjb25zdCBCb3gqPiBsYXlvdXRCb3hlc1dpdGhvdXRJbmxpbmVCb3hl
czsKLSAgICAgICAgaWYgKGZpcnN0UnVuTmVlZHNJbmxpbmVCb3gpCi0gICAgICAgICAgICBsYXlv
dXRCb3hlc1dpdGhvdXRJbmxpbmVCb3hlcy5hcHBlbmQoJmZpcnN0UnVuLmxheW91dEJveCgpKTsK
LSAgICAgICAgYXV0byogYW5jZXN0b3IgPSAmZmlyc3RSdW5QYXJlbnRMYXlvdXRCb3g7Ci0gICAg
ICAgIHdoaWxlICghaXNSb290TGF5b3V0Qm94KCphbmNlc3RvcikpIHsKLSAgICAgICAgICAgIGxh
eW91dEJveGVzV2l0aG91dElubGluZUJveGVzLmFwcGVuZChhbmNlc3Rvcik7Ci0gICAgICAgICAg
ICBhbmNlc3RvciA9ICZhbmNlc3Rvci0+cGFyZW50KCk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8g
Q29uc3RydWN0IHRoZSBtaXNzaW5nIExpbmVCb3g6OklubGluZUJveGVzIHN0YXJ0aW5nIHdpdGgg
dGhlIHRvcG1vc3QgbGF5b3V0IGJveC4KLSAgICAgICAgZm9yIChhdXRvKiBsYXlvdXRCb3ggOiBX
VEY6Om1ha2VSZXZlcnNlZFJhbmdlKGxheW91dEJveGVzV2l0aG91dElubGluZUJveGVzKSkgewot
ICAgICAgICAgICAgYXV0byBpbmxpbmVCb3ggPSBJbmxpbmVMZXZlbEJveDo6Y3JlYXRlSW5saW5l
Qm94KCpsYXlvdXRCb3gsIHN0eWxlVG9Vc2UoKmxheW91dEJveCksIHJvb3RJbmxpbmVCb3gubG9n
aWNhbExlZnQoKSwgcm9vdElubGluZUJveC5sb2dpY2FsV2lkdGgoKSwgSW5saW5lTGV2ZWxCb3g6
OkxpbmVTcGFubmluZ0lubGluZUJveDo6WWVzKTsKLSAgICAgICAgICAgIHNldEluaXRpYWxWZXJ0
aWNhbEdlb21ldHJ5Rm9ySW5saW5lQm94KGlubGluZUJveCk7Ci0gICAgICAgICAgICB1cGRhdGVD
YW5Vc2VTaW1wbGlmaWVkQWxpZ25tZW50KGlubGluZUJveCk7Ci0gICAgICAgICAgICBsaW5lQm94
LmFkZElubGluZUxldmVsQm94KFdURk1vdmUoaW5saW5lQm94KSk7Ci0gICAgICAgIH0KLSAgICB9
OwotICAgIGNyZWF0ZUxpbmVTcGFubmluZ0lubGluZUJveGVzKCk7Ci0KICAgICBhdXRvIGxpbmVI
YXNDb250ZW50ID0gZmFsc2U7CiAgICAgZm9yIChhdXRvJiBydW4gOiBydW5zKSB7CiAgICAgICAg
IGF1dG8mIGxheW91dEJveCA9IHJ1bi5sYXlvdXRCb3goKTsKQEAgLTMwMyw2ICsyNjYsOCBAQCBJ
bmxpbmVMYXlvdXRVbml0IExpbmVCb3hCdWlsZGVyOjpjb25zdHJ1Y3RBbmRBbGlnbklubGluZUxl
dmVsQm94ZXMoTGluZUJveCYgbGluZQogICAgICAgICAgICAgICAgIHJldHVybiBpbmxpbmVCb3hH
ZW9tZXRyeS5tYXJnaW5TdGFydCgpIHx8IGlubGluZUJveEdlb21ldHJ5LmJvcmRlckxlZnQoKSB8
fCBpbmxpbmVCb3hHZW9tZXRyeS5wYWRkaW5nTGVmdCgpLnZhbHVlX29yKDBfbHUpOwogICAgICAg
ICAgICAgaWYgKHJ1bi5pc0lubGluZUJveEVuZCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBp
bmxpbmVCb3hHZW9tZXRyeS5tYXJnaW5FbmQoKSB8fCBpbmxpbmVCb3hHZW9tZXRyeS5ib3JkZXJS
aWdodCgpIHx8IGlubGluZUJveEdlb21ldHJ5LnBhZGRpbmdSaWdodCgpLnZhbHVlX29yKDBfbHUp
OworICAgICAgICAgICAgaWYgKHJ1bi5pc0xpbmVTcGFubmluZ0lubGluZUJveFN0YXJ0KCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgaWYgKHJ1bi5pc1dvcmRC
cmVha09wcG9ydHVuaXR5KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zNDIsNiArMzA3LDEzIEBAIElubGluZUxh
eW91dFVuaXQgTGluZUJveEJ1aWxkZXI6OmNvbnN0cnVjdEFuZEFsaWduSW5saW5lTGV2ZWxCb3hl
cyhMaW5lQm94JiBsaW5lCiAgICAgICAgICAgICBsaW5lQm94LmFkZElubGluZUxldmVsQm94KFdU
Rk1vdmUoYXRvbWljSW5saW5lTGV2ZWxCb3gpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9CisgICAgICAgIGlmIChydW4uaXNMaW5lU3Bhbm5pbmdJbmxpbmVCb3hTdGFydCgpKSB7
CisgICAgICAgICAgICBhdXRvIGlubGluZUJveCA9IElubGluZUxldmVsQm94OjpjcmVhdGVJbmxp
bmVCb3gobGF5b3V0Qm94LCBzdHlsZSwgbG9naWNhbExlZnQsIHJvb3RJbmxpbmVCb3gubG9naWNh
bFdpZHRoKCksIElubGluZUxldmVsQm94OjpMaW5lU3Bhbm5pbmdJbmxpbmVCb3g6Olllcyk7Cisg
ICAgICAgICAgICBzZXRJbml0aWFsVmVydGljYWxHZW9tZXRyeUZvcklubGluZUJveChpbmxpbmVC
b3gpOworICAgICAgICAgICAgdXBkYXRlQ2FuVXNlU2ltcGxpZmllZEFsaWdubWVudChpbmxpbmVC
b3gpOworICAgICAgICAgICAgbGluZUJveC5hZGRJbmxpbmVMZXZlbEJveChXVEZNb3ZlKGlubGlu
ZUJveCkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KICAgICAgICAgaWYgKHJ1
bi5pc0lubGluZUJveFN0YXJ0KCkpIHsKICAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2Ug
ZG9uJ3Qga25vdyB5ZXQgaG93IHdpZGUgdGhpcyBpbmxpbmUgYm94IGlzLiBMZXQncyBhc3N1bWUg
aXQncyBhcyBsb25nIGFzIHRoZSBsaW5lIGlzCiAgICAgICAgICAgICAvLyBhbmQgYWRqdXN0IGl0
IGxhdGVyIGlmIHdlIGNvbWUgYWNyb3NzIGFuIGlubGluZUJveEVuZCBydW4gKHNlZSBiZWxvdyku
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuaAppbmRleCA1NzU5ODVj
YWE5ZDA4NzYwM2Q5Nzk4MzNjM2NlZTg4ZGM2YjE0NTM1Li5hYWViMGQ0YTc2MmNlMzRiY2JjYzNh
NDEwZmM0YWRmYzMxMjY5YmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hC
dWlsZGVyLmgKQEAgLTYwLDggKzYwLDYgQEAgcHJpdmF0ZToKICAgICBjb25zdCBCb3gmIHJvb3RC
b3goKSBjb25zdCB7IHJldHVybiBmb3JtYXR0aW5nQ29udGV4dCgpLnJvb3QoKTsgfQogICAgIExh
eW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGZvcm1hdHRpbmdDb250ZXh0
KCkubGF5b3V0U3RhdGUoKTsgfQogCi0gICAgYm9vbCBpc1Jvb3RMYXlvdXRCb3goY29uc3QgQ29u
dGFpbmVyQm94JiBjb250YWluZXJCb3gpIGNvbnN0IHsgcmV0dXJuICZjb250YWluZXJCb3ggPT0g
JnJvb3RCb3goKTsgfQotCiBwcml2YXRlOgogICAgIGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250
ZXh0JiBtX2lubGluZUZvcm1hdHRpbmdDb250ZXh0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUxpbmVCdWlsZGVyLmNwcAppbmRleCA4MGY5MGFlMmNmMzEyOWI3NWY2ZjBhY2U4YmU5MzI4
YjJiZmMwNjQ2Li43ZDVlNjcwZjllMzkwZTVjZmU4OWI5MDJmNmJkNDA1NzhmYTBiZjI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCkBAIC0yOTAsMjAgKzI5MCw0
OSBAQCBMaW5lQnVpbGRlcjo6SW50cmluc2ljQ29udGVudCBMaW5lQnVpbGRlcjo6Y29tcHV0ZWRJ
bnRyaW5zaWNXaWR0aChjb25zdCBJbmxpbmVJdAogICAgIHJldHVybiB7IGNvbW1pdHRlZFJhbmdl
LCBtX2xpbmUuY29udGVudExvZ2ljYWxXaWR0aCgpLCBtX2Zsb2F0cyB9OwogfQogCi12b2lkIExp
bmVCdWlsZGVyOjppbml0aWFsaXplKGNvbnN0IFVzZWRDb25zdHJhaW50cyYgbGluZUNvbnN0cmFp
bnRzLCBib29sIGlzRmlyc3RMaW5lLCBzaXplX3QgbGVhZGluZ0lubGluZVRleHRJdGVtSW5kZXgs
IHNpemVfdCBwYXJ0aWFsTGVhZGluZ0NvbnRlbnRMZW5ndGgsIHN0ZDo6b3B0aW9uYWw8SW5saW5l
TGF5b3V0VW5pdD4gbGVhZGluZ0xvZ2ljYWxXaWR0aCkKK3ZvaWQgTGluZUJ1aWxkZXI6OmluaXRp
YWxpemUoY29uc3QgVXNlZENvbnN0cmFpbnRzJiBsaW5lQ29uc3RyYWludHMsIGJvb2wgaXNGaXJz
dExpbmUsIHNpemVfdCBsZWFkaW5nSW5saW5lSXRlbUluZGV4LCBzaXplX3QgcGFydGlhbExlYWRp
bmdDb250ZW50TGVuZ3RoLCBzdGQ6Om9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IGxlYWRpbmdM
b2dpY2FsV2lkdGgpCiB7CiAgICAgbV9pc0ZpcnN0TGluZSA9IGlzRmlyc3RMaW5lOwogICAgIG1f
ZmxvYXRzLmNsZWFyKCk7CiAgICAgbV93cmFwT3Bwb3J0dW5pdHlMaXN0LmNsZWFyKCk7Ci0KLSAg
ICBtX2xpbmUuaW5pdGlhbGl6ZSgpOwogICAgIG1fbGluZUxvZ2ljYWxSZWN0ID0gbGluZUNvbnN0
cmFpbnRzLmxvZ2ljYWxSZWN0OwogICAgIG1fY29udGVudElzQ29uc3RyYWluZWRCeUZsb2F0ID0g
bGluZUNvbnN0cmFpbnRzLmlzQ29uc3RyYWluZWRCeUZsb2F0OwogCisgICAgYXV0byBjcmVhdGVM
aW5lU3Bhbm5pbmdJbmxpbmVCb3hlcyA9IFsmXSB7CisgICAgICAgIGF1dG8gaXNSb290TGF5b3V0
Qm94ID0gWyZdKGF1dG8mIGNvbnRhaW5lckJveCkgeworICAgICAgICAgICAgcmV0dXJuICZjb250
YWluZXJCb3ggPT0gJnJvb3QoKTsKKyAgICAgICAgfTsKKyAgICAgICAgLy8gQW4gaW5saW5lIGJv
eCBtYXkgbm90IG5lY2Vzc2FyaWx5IHN0YXJ0IG9uIHRoZSBjdXJyZW50IGxpbmU6CisgICAgICAg
IC8vIDxzcGFuPmZpcnN0IGxpbmU8YnI+c2Vjb25kIGxpbmU8c3Bhbj53aXRoIHNvbWUgbW9yZSBl
bWJlZGRpbmc8YnI+IGZvcnRoIGxpbmU8L3NwYW4+PC9zcGFuPgorICAgICAgICAvLyBXZSBuZWVk
IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZXJlJ3MgYW4gW0lubGluZUJveFN0YXJ0XSBmb3IgZXZlcnkg
aW5saW5lIGJveCB0aGF0J3MgcHJlc2VudCBvbiB0aGUgY3VycmVudCBsaW5lLgorICAgICAgICAv
LyBXZSBvbmx5IGhhdmUgdG8gZG8gaXQgb24gdGhlIGZpcnN0IHJ1biBhcyBhbnkgc3Vic2VxdWVu
dCBpbmxpbmUgY29udGVudCBpcyBlaXRoZXIgYXQgdGhlIHNhbWUvaGlnaGVyIG5lc3RpbmcgbGV2
ZWwuCisgICAgICAgIGF1dG8mIGZpcnN0SW5saW5lSXRlbSA9IG1faW5saW5lSXRlbXNbbGVhZGlu
Z0lubGluZUl0ZW1JbmRleF07CisgICAgICAgIC8vIElmIHRoZSBwYXJlbnQgaXMgdGhlIGZvcm1h
dHRpbmcgcm9vdCwgd2UgY2FuIHN0b3AgaGVyZS4gVGhpcyBpcyByb290IGlubGluZSBib3ggY29u
dGVudCwgdGhlcmUncyBubyBuZXN0aW5nIGlubGluZSBib3ggZnJvbSB0aGUgcHJldmlvdXMgbGlu
ZShzKQorICAgICAgICAvLyB1bmxlc3MgdGhlIGlubGluZSBib3ggY2xvc2luZyBpcyBmb3JjZWQg
b3ZlciB0byB0aGUgY3VycmVudCBsaW5lLgorICAgICAgICAvLyBlLmcuCisgICAgICAgIC8vIDxz
cGFuPm5vcm1hbGx5IHRoZSBpbmxpbmUgYm94IGNsb3NpbmcgZm9ybXMgYSBjb250aW51b3VzIGNv
bnRlbnQ8L3NwYW4+CisgICAgICAgIC8vIDxzcGFuPnVubGVzcyBpdCdzIGZvcmNlZCB0byB0aGUg
bmV4dCBsaW5lPGJyPjwvc3Bhbj4KKyAgICAgICAgYXV0byBmaXJzdElubGluZUl0ZW1Jc0xpbmVT
cGFubmluZyA9IGZpcnN0SW5saW5lSXRlbS5pc0lubGluZUJveEVuZCgpOworICAgICAgICBpZiAo
IWZpcnN0SW5saW5lSXRlbUlzTGluZVNwYW5uaW5nICYmIGlzUm9vdExheW91dEJveChmaXJzdElu
bGluZUl0ZW0ubGF5b3V0Qm94KCkucGFyZW50KCkpKQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICBWZWN0b3I8Y29uc3QgQm94Kj4gc3Bhbm5pbmdMYXlvdXRCb3hMaXN0OworICAgICAgICBp
ZiAoZmlyc3RJbmxpbmVJdGVtSXNMaW5lU3Bhbm5pbmcpCisgICAgICAgICAgICBzcGFubmluZ0xh
eW91dEJveExpc3QuYXBwZW5kKCZmaXJzdElubGluZUl0ZW0ubGF5b3V0Qm94KCkpOworICAgICAg
ICBhdXRvKiBhbmNlc3RvciA9ICZmaXJzdElubGluZUl0ZW0ubGF5b3V0Qm94KCkucGFyZW50KCk7
CisgICAgICAgIHdoaWxlICghaXNSb290TGF5b3V0Qm94KCphbmNlc3RvcikpIHsKKyAgICAgICAg
ICAgIHNwYW5uaW5nTGF5b3V0Qm94TGlzdC5hcHBlbmQoYW5jZXN0b3IpOworICAgICAgICAgICAg
YW5jZXN0b3IgPSAmYW5jZXN0b3ItPnBhcmVudCgpOworICAgICAgICB9CisgICAgICAgIGZvciAo
YXV0byogc3Bhbm5pbmdJbmxpbmVCb3ggOiBXVEY6Om1ha2VSZXZlcnNlZFJhbmdlKHNwYW5uaW5n
TGF5b3V0Qm94TGlzdCkpCisgICAgICAgICAgICBtX2xpbmVTcGFubmluZ0lubGluZUJveGVzLmFw
cGVuZCh7ICpzcGFubmluZ0lubGluZUJveCwgSW5saW5lSXRlbTo6VHlwZTo6SW5saW5lQm94U3Rh
cnQgfSk7CisgICAgfTsKKyAgICBjcmVhdGVMaW5lU3Bhbm5pbmdJbmxpbmVCb3hlcygpOworICAg
IG1fbGluZS5pbml0aWFsaXplKG1fbGluZVNwYW5uaW5nSW5saW5lQm94ZXMpOworCiAgICAgaWYg
KHBhcnRpYWxMZWFkaW5nQ29udGVudExlbmd0aCkgewogICAgICAgICBBU1NFUlQoIWlzRmlyc3RM
aW5lKTsKICAgICAgICAgYXV0byBwYXJ0aWFsQ29udGVudFdpZHRoID0gbGVhZGluZ0xvZ2ljYWxX
aWR0aCA/IHN0ZDo6ZXhjaGFuZ2UobGVhZGluZ0xvZ2ljYWxXaWR0aCwgc3RkOjpudWxsb3B0KSA6
IHN0ZDo6bnVsbG9wdDsKLSAgICAgICAgbV9wYXJ0aWFsTGVhZGluZ1RleHRJdGVtID0gZG93bmNh
c3Q8SW5saW5lVGV4dEl0ZW0+KG1faW5saW5lSXRlbXNbbGVhZGluZ0lubGluZVRleHRJdGVtSW5k
ZXhdKS5yaWdodChwYXJ0aWFsTGVhZGluZ0NvbnRlbnRMZW5ndGgsIHBhcnRpYWxDb250ZW50V2lk
dGgpOworICAgICAgICBtX3BhcnRpYWxMZWFkaW5nVGV4dEl0ZW0gPSBkb3duY2FzdDxJbmxpbmVU
ZXh0SXRlbT4obV9pbmxpbmVJdGVtc1tsZWFkaW5nSW5saW5lSXRlbUluZGV4XSkucmlnaHQocGFy
dGlhbExlYWRpbmdDb250ZW50TGVuZ3RoLCBwYXJ0aWFsQ29udGVudFdpZHRoKTsKICAgICB9IGVs
c2UKICAgICAgICAgbV9wYXJ0aWFsTGVhZGluZ1RleHRJdGVtID0geyB9OwogICAgIG1fbGVhZGlu
Z0xvZ2ljYWxXaWR0aCA9IGxlYWRpbmdMb2dpY2FsV2lkdGg7CkBAIC04MTksNyArODQ4LDcgQEAg
c2l6ZV90IExpbmVCdWlsZGVyOjpyZWJ1aWxkTGluZShjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIGxh
eW91dFJhbmdlLCBjb25zdCBJbmxpbmUKICAgICBBU1NFUlQoIW1fd3JhcE9wcG9ydHVuaXR5TGlz
dC5pc0VtcHR5KCkpOwogICAgIC8vIFdlIG1pZ2h0IGFscmVhZHkgaGF2ZSBhZGRlZCBmbG9hdHMu
IFRoZXkgc2hyaW5rIHRoZSBhdmFpbGFibGUgaG9yaXpvbnRhbCBzcGFjZSBmb3IgdGhlIGxpbmUu
CiAgICAgLy8gTGV0J3MganVzdCByZXVzZSB3aGF0IHRoZSBsaW5lIGhhcyBhdCB0aGlzIHBvaW50
LgotICAgIG1fbGluZS5pbml0aWFsaXplKCk7CisgICAgbV9saW5lLmluaXRpYWxpemUobV9saW5l
U3Bhbm5pbmdJbmxpbmVCb3hlcyk7CiAgICAgYXV0byBjdXJyZW50SXRlbUluZGV4ID0gbGF5b3V0
UmFuZ2Uuc3RhcnQ7CiAgICAgaWYgKG1fcGFydGlhbExlYWRpbmdUZXh0SXRlbSkgewogICAgICAg
ICBtX2xpbmUuYXBwZW5kKCptX3BhcnRpYWxMZWFkaW5nVGV4dEl0ZW0sIG1fcGFydGlhbExlYWRp
bmdUZXh0SXRlbS0+c3R5bGUoKSwgaW5saW5lSXRlbVdpZHRoKCptX3BhcnRpYWxMZWFkaW5nVGV4
dEl0ZW0sIHsgfSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmgKaW5kZXgg
YWU1MzI5YjFiZmI3Nzk4MWU4MTAzMWRlOWU3M2MyY2I0ZjZkMzhmYi4uNGU0YzRmNGY3ZGNiNDgx
YjUwZmRkNGJhY2EwZDRmODU0NmI1MTU2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5l
QnVpbGRlci5oCkBAIC0xMzAsNiArMTMwLDcgQEAgcHJpdmF0ZToKICAgICBGbG9hdExpc3QgbV9m
bG9hdHM7CiAgICAgc3RkOjpvcHRpb25hbDxJbmxpbmVUZXh0SXRlbT4gbV9wYXJ0aWFsTGVhZGlu
Z1RleHRJdGVtOwogICAgIHN0ZDo6b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gbV9sZWFkaW5n
TG9naWNhbFdpZHRoOworICAgIFZlY3RvcjxJbmxpbmVJdGVtPiBtX2xpbmVTcGFubmluZ0lubGlu
ZUJveGVzOwogICAgIFZlY3Rvcjxjb25zdCBJbmxpbmVJdGVtKj4gbV93cmFwT3Bwb3J0dW5pdHlM
aXN0OwogICAgIHVuc2lnbmVkIG1fc3VjY2Vzc2l2ZUh5cGhlbmF0ZWRMaW5lQ291bnQgeyAwIH07
CiAgICAgYm9vbCBtX2NvbnRlbnRJc0NvbnN0cmFpbmVkQnlGbG9hdCB7IGZhbHNlIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441445</attachid>
            <date>2021-10-15 15:51:05 -0700</date>
            <delta_ts>2021-10-16 14:15:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231551-20211015155104.patch</filename>
            <type>text/plain</type>
            <size>28145</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0Mjc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQ2NGJhMWI4OGRlZjMy
ZThlODFhMmRiYzQ4MzAxY2QxMGE4NmMwMC4uZjhmZjE4M2UyN2ZhNmVhNjI0ZmQ3OWJhYTZhMGMw
YjA5NjIxZmFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEwLTE1ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIEFkZCAibGlu
ZSBzcGFubmluZyBsaW5lIGJveCBzdGFydCBpdGVtcyIgdG8gTGluZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNTUxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBpbiBwcmVwYXJh
dGlvbiBmb3Igc3VwcG9ydGluZyBib3gtZGVjb3JhdGlvbi1icmVhazogY2xvbmUsIHdoZXJlIHRo
ZSBsaW5lIHNwYW5uaW5nCisgICAgICAgIGlubGluZSBib3hlcyBtYXkgdGFrZSB1cCBzcGFjZSBv
biB0aGUgbGluZSAoYm9yZGVyL3BhZGRpbmcpLgorICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIHRo
ZSBjb25zdHJ1Y3Rpb24gb2YgdGhlIHNwYW5uaW5nIGlubGluZSBib3hlcyB0byBhbiBlYXJsaWVy
IHN0ZXAsIGZyb20gTGluZUJveCB0byBMaW5lLgorCisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6aW5pdGlhbGl6ZSk6CisKIDIwMjEtMTAtMTUgIEFsYW4g
QnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gTW92ZSBvdmVy
Zmxvd2luZyBjb250ZW50IGNyZWF0aW9uIHRvIExpbmVCdWlsZGVyOjppbml0aWFsaXplCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcApp
bmRleCBiY2UzZDMyODVkZmMyMmNkODYxMmZjODllNDliNzgzMjc3NTliNjVlLi42YzMyYjFlYjA2
OGYwNzZkMDZiMDUxZjFmMzk0ZmI0YjU5MzBmNGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1
aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKQEAgLTc4LDggKzc4LDcgQEAg
dm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmNyZWF0ZUJveGVzQW5kVXBkYXRlR2Vv
bWV0cnlGb3JMaW5lQ29udGVudChjb24KICAgICAgICAgICAgIHJldHVybiAhbGluZUluZGV4ID8g
bGF5b3V0Qm94LmZpcnN0TGluZVN0eWxlKCkgOiBsYXlvdXRCb3guc3R5bGUoKTsKICAgICAgICAg
fSgpOwogCi0gICAgICAgIHN3aXRjaCAobGluZVJ1bi50eXBlKCkpIHsKLSAgICAgICAgY2FzZSBJ
bmxpbmVJdGVtOjpUeXBlOjpUZXh0OiB7CisgICAgICAgIGlmIChsaW5lUnVuLmlzVGV4dCgpKSB7
CiAgICAgICAgICAgICBhdXRvIHRleHRSdW5SZWN0ID0gbGluZUJveC5sb2dpY2FsUmVjdEZvclRl
eHRSdW4obGluZVJ1bik7CiAgICAgICAgICAgICB0ZXh0UnVuUmVjdC5tb3ZlQnkobGluZUJveExv
Z2ljYWxUb3BMZWZ0KTsKIApAQCAtMTEwLDkgKzEwOSw5IEBAIHZvaWQgSW5saW5lRGlzcGxheUNv
bnRlbnRCdWlsZGVyOjpjcmVhdGVCb3hlc0FuZFVwZGF0ZUdlb21ldHJ5Rm9yTGluZUNvbnRlbnQo
Y29uCiAgICAgICAgICAgICAgICAgLCBpbmtPdmVyZmxvdygpCiAgICAgICAgICAgICAgICAgLCBs
aW5lUnVuLmV4cGFuc2lvbigpCiAgICAgICAgICAgICAgICAgLCBJbmxpbmVEaXNwbGF5OjpCb3g6
OlRleHQgeyB0ZXh0LT5zdGFydCwgdGV4dC0+bGVuZ3RoLCBjb250ZW50LCBhZGp1c3RlZENvbnRl
bnRUb1JlbmRlcigpLCB0ZXh0LT5uZWVkc0h5cGhlbiB9IH0pOwotICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgICBjYXNlIElubGluZUl0
ZW06OlR5cGU6OlNvZnRMaW5lQnJlYWs6IHsKKyAgICAgICAgaWYgKGxpbmVSdW4uaXNTb2Z0TGlu
ZUJyZWFrKCkpIHsKICAgICAgICAgICAgIGF1dG8gc29mdExpbmVCcmVha1J1blJlY3QgPSBsaW5l
Qm94LmxvZ2ljYWxSZWN0Rm9yVGV4dFJ1bihsaW5lUnVuKTsKICAgICAgICAgICAgIHNvZnRMaW5l
QnJlYWtSdW5SZWN0Lm1vdmVCeShsaW5lQm94TG9naWNhbFRvcExlZnQpOwogCkBAIC0xMjcsNyAr
MTI2LDcgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmNyZWF0ZUJveGVzQW5k
VXBkYXRlR2VvbWV0cnlGb3JMaW5lQ29udGVudChjb24KICAgICAgICAgICAgICAgICAsIElubGlu
ZURpc3BsYXk6OkJveDo6VGV4dCB7IHRleHQtPnN0YXJ0LCB0ZXh0LT5sZW5ndGgsIGRvd25jYXN0
PElubGluZVRleHRCb3g+KGxheW91dEJveCkuY29udGVudCgpIH0gfSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIElubGluZUl0ZW06OlR5cGU6OkhhcmRMaW5l
QnJlYWs6IHsKKyAgICAgICAgaWYgKGxpbmVSdW4uaXNIYXJkTGluZUJyZWFrKCkpIHsKICAgICAg
ICAgICAgIC8vIE9ubHkgaGFyZCBsaW5lYnJlYWtzIGhhdmUgYXNzb2NpYXRlZCBsYXlvdXQgYm94
ZXMuCiAgICAgICAgICAgICBhdXRvIGxpbmVCcmVha0JveFJlY3QgPSBsaW5lQm94LmxvZ2ljYWxS
ZWN0Rm9yTGluZUJyZWFrQm94KGxheW91dEJveCk7CiAgICAgICAgICAgICBsaW5lQnJlYWtCb3hS
ZWN0Lm1vdmVCeShsaW5lQm94TG9naWNhbFRvcExlZnQpOwpAQCAtMTM2LDkgKzEzNSw5IEBAIHZv
aWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpjcmVhdGVCb3hlc0FuZFVwZGF0ZUdlb21l
dHJ5Rm9yTGluZUNvbnRlbnQoY29uCiAgICAgICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZv
cm1hdHRpbmdTdGF0ZS5ib3hHZW9tZXRyeShsYXlvdXRCb3gpOwogICAgICAgICAgICAgYm94R2Vv
bWV0cnkuc2V0TG9naWNhbFRvcExlZnQodG9MYXlvdXRQb2ludChsaW5lQnJlYWtCb3hSZWN0LnRv
cExlZnQoKSkpOwogICAgICAgICAgICAgYm94R2VvbWV0cnkuc2V0Q29udGVudEJveEhlaWdodCh0
b0xheW91dFVuaXQobGluZUJyZWFrQm94UmVjdC5oZWlnaHQoKSkpOwotICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgICBjYXNlIElubGlu
ZUl0ZW06OlR5cGU6OkJveDogeworICAgICAgICBpZiAobGluZVJ1bi5pc0JveCgpKSB7CiAgICAg
ICAgICAgICBBU1NFUlQobGF5b3V0Qm94LmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSk7CiAgICAg
ICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdTdGF0ZS5ib3hHZW9tZXRyeShs
YXlvdXRCb3gpOwogICAgICAgICAgICAgYXV0byBsb2dpY2FsQm9yZGVyQm94ID0gbGluZUJveC5s
b2dpY2FsQm9yZGVyQm94Rm9yQXRvbWljSW5saW5lTGV2ZWxCb3gobGF5b3V0Qm94LCBib3hHZW9t
ZXRyeSk7CkBAIC0xNjEsOSArMTYwLDkgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxk
ZXI6OmNyZWF0ZUJveGVzQW5kVXBkYXRlR2VvbWV0cnlGb3JMaW5lQ29udGVudChjb24KICAgICAg
ICAgICAgICAgICBib3hlc1ttX2lubGluZUJveEluZGV4TWFwLmdldCgmcGFyZW50SW5saW5lQm94
KV0uYWRqdXN0SW5rT3ZlcmZsb3cobG9naWNhbEJvcmRlckJveCk7CiAgICAgICAgICAgICB9Owog
ICAgICAgICAgICAgYWRqdXN0UGFyZW50SW5saW5lQm94SW5rT3ZlcmZsb3coKTsKLSAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAgICAgICAgY2Fz
ZSBJbmxpbmVJdGVtOjpUeXBlOjpJbmxpbmVCb3hTdGFydDogeworICAgICAgICBpZiAobGluZVJ1
bi5pc0lubGluZUJveFN0YXJ0KCkpIHsKICAgICAgICAgICAgIC8vIFRoaXMgaW5saW5lIGJveCBz
aG93ZWQgdXAgZmlyc3Qgb24gdGhpcyBsaW5lLgogICAgICAgICAgICAgYXV0byYgYm94R2VvbWV0
cnkgPSBmb3JtYXR0aW5nU3RhdGUuYm94R2VvbWV0cnkobGF5b3V0Qm94KTsKICAgICAgICAgICAg
IGF1dG8gaW5saW5lQm94Qm9yZGVyQm94ID0gbGluZUJveC5sb2dpY2FsQm9yZGVyQm94Rm9ySW5s
aW5lQm94KGxheW91dEJveCwgYm94R2VvbWV0cnkpOwpAQCAtMTg1LDEyICsxODQsOSBAQCB2b2lk
IElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6Y3JlYXRlQm94ZXNBbmRVcGRhdGVHZW9tZXRy
eUZvckxpbmVDb250ZW50KGNvbgogICAgICAgICAgICAgYm94R2VvbWV0cnkuc2V0Q29udGVudEJv
eEhlaWdodChjb250ZW50Qm94SGVpZ2h0KTsKICAgICAgICAgICAgIGF1dG8gY29udGVudEJveFdp
ZHRoID0gbG9naWNhbFJlY3Qud2lkdGgoKSAtIChib3hHZW9tZXRyeS5ob3Jpem9udGFsQm9yZGVy
KCkgKyBib3hHZW9tZXRyeS5ob3Jpem9udGFsUGFkZGluZygpLnZhbHVlX29yKDBfbHUpKTsKICAg
ICAgICAgICAgIGJveEdlb21ldHJ5LnNldENvbnRlbnRCb3hXaWR0aChjb250ZW50Qm94V2lkdGgp
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgICAgIEFTU0VSVChsaW5lUnVuLmlzSW5saW5lQm94RW5kKCkgfHwgbGluZVJ1bi5pc1dvcmRC
cmVha09wcG9ydHVuaXR5KCkpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQorICAgICAgICBBU1NFUlQobGluZVJ1bi5pc0lubGluZUJveEVuZCgp
IHx8IGxpbmVSdW4uaXNXb3JkQnJlYWtPcHBvcnR1bml0eSgpIHx8IGxpbmVSdW4uaXNMaW5lU3Bh
bm5pbmdJbmxpbmVCb3hTdGFydCgpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uaCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0u
aAppbmRleCA2OTM1NWEzMzFjYTdjZjc1YTk2YjVlMzBkNmI4OTM5MzdjZDU3NDk0Li4yY2EzYmE0
NTViZTYzYmQ0YmIzMDQ3OWMyMWViMjE2ZDMwNzdlODE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRl
bS5oCkBAIC0zNSw3ICszNSwxNiBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIAogY2xhc3MgSW5saW5l
SXRlbSB7CiBwdWJsaWM6Ci0gICAgZW51bSBjbGFzcyBUeXBlIDogdWludDhfdCB7IFRleHQsIEhh
cmRMaW5lQnJlYWssIFNvZnRMaW5lQnJlYWssIFdvcmRCcmVha09wcG9ydHVuaXR5LCBCb3gsIEZs
b2F0LCBJbmxpbmVCb3hTdGFydCwgSW5saW5lQm94RW5kIH07CisgICAgZW51bSBjbGFzcyBUeXBl
IDogdWludDhfdCB7CisgICAgICAgIFRleHQsCisgICAgICAgIEhhcmRMaW5lQnJlYWssCisgICAg
ICAgIFNvZnRMaW5lQnJlYWssCisgICAgICAgIFdvcmRCcmVha09wcG9ydHVuaXR5LAorICAgICAg
ICBCb3gsCisgICAgICAgIElubGluZUJveFN0YXJ0LAorICAgICAgICBJbmxpbmVCb3hFbmQsCisg
ICAgICAgIEZsb2F0CisgICAgfTsKICAgICBJbmxpbmVJdGVtKGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBUeXBlKTsKIAogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVMaW5lLmNwcAppbmRleCBhYjMyMDY0MmY1ZGIxNTBmMjQzMTNlYzdlYzNl
YWU3MmJmMjYxMjdjLi44MTMyNDMxZjUxYmVlMTNiM2JjMGVhZDkxNjEyMzU3MThkYWViNjA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcApAQCAtNTAsMTIgKzUwLDE3IEBAIExpbmU6On5M
aW5lKCkKIHsKIH0KIAotdm9pZCBMaW5lOjppbml0aWFsaXplKCkKK3ZvaWQgTGluZTo6aW5pdGlh
bGl6ZShjb25zdCBWZWN0b3I8SW5saW5lSXRlbT4mIGxpbmVTcGFubmluZ0lubGluZUJveGVzKQog
ewogICAgIG1fbm9uU3Bhbm5pbmdJbmxpbmVMZXZlbEJveENvdW50ID0gMDsKICAgICBtX2NvbnRl
bnRMb2dpY2FsV2lkdGggPSB7IH07CiAgICAgbV9ydW5zLmNsZWFyKCk7CiAgICAgcmVzZXRUcmFp
bGluZ0NvbnRlbnQoKTsKKyAgICBhdXRvIGFwcGVuZExpbmVTcGFubmluZ0lubGluZUJveGVzID0g
WyZdIHsKKyAgICAgICAgZm9yIChhdXRvJiBpbmxpbmVCb3hTdGFydEl0ZW0gOiBsaW5lU3Bhbm5p
bmdJbmxpbmVCb3hlcykKKyAgICAgICAgICAgIG1fcnVucy5hcHBlbmQoeyBpbmxpbmVCb3hTdGFy
dEl0ZW0gfSk7CisgICAgfTsKKyAgICBhcHBlbmRMaW5lU3Bhbm5pbmdJbmxpbmVCb3hlcygpOwog
fQogCiB2b2lkIExpbmU6OnJlc2V0VHJhaWxpbmdDb250ZW50KCkKQEAgLTE5Miw3ICsxOTcsNyBA
QCB2b2lkIExpbmU6OnZpc3VhbGx5Q29sbGFwc2VIYW5naW5nT3ZlcmZsb3coSW5saW5lTGF5b3V0
VW5pdCBob3Jpem9udGFsQXZhaWxhYmxlUwogICAgIGZvciAoYXV0byYgcnVuIDogV1RGOjptYWtl
UmV2ZXJzZWRSYW5nZShtX3J1bnMpKSB7CiAgICAgICAgIGlmICghcnVuLnNob3VsZFRyYWlsaW5n
V2hpdGVzcGFjZUhhbmcoKSkKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBhdXRvIHZpc3Vh
bGx5Q29sbGFwc2libGVJbmxpbmVJdGVtID0gcnVuLmlzSW5saW5lQm94U3RhcnQoKSB8fCBydW4u
aXNJbmxpbmVCb3hFbmQoKSB8fCBydW4uaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCk7CisgICAgICAg
IGF1dG8gdmlzdWFsbHlDb2xsYXBzaWJsZUlubGluZUl0ZW0gPSBydW4uaXNMaW5lU3Bhbm5pbmdJ
bmxpbmVCb3hTdGFydCgpIHx8IHJ1bi5pc0lubGluZUJveFN0YXJ0KCkgfHwgcnVuLmlzSW5saW5l
Qm94RW5kKCkgfHwgcnVuLmhhc1RyYWlsaW5nV2hpdGVzcGFjZSgpOwogICAgICAgICBpZiAoIXZp
c3VhbGx5Q29sbGFwc2libGVJbmxpbmVJdGVtKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IEFTU0VSVCghcnVuLmhhc0NvbGxhcHNpYmxlVHJhaWxpbmdXaGl0ZXNwYWNlKCkpOwpAQCAtMjgw
LDcgKzI4NSw3IEBAIHZvaWQgTGluZTo6YXBwZW5kVGV4dENvbnRlbnQoY29uc3QgSW5saW5lVGV4
dEl0ZW0mIGlubGluZVRleHRJdGVtLCBjb25zdCBSZW5kZXJTCiAgICAgICAgICAgICAvLyBwcm92
aWRlZCBib3RoIHNwYWNlcyBhcmUgd2l0aGluIHRoZSBzYW1lIGlubGluZSBmb3JtYXR0aW5nIGNv
bnRleHTigJRpcyBjb2xsYXBzZWQgdG8gaGF2ZSB6ZXJvIGFkdmFuY2Ugd2lkdGguCiAgICAgICAg
ICAgICBpZiAocnVuLmlzVGV4dCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBydW4uaGFzQ29s
bGFwc2libGVUcmFpbGluZ1doaXRlc3BhY2UoKTsKLSAgICAgICAgICAgIEFTU0VSVChydW4uaXNJ
bmxpbmVCb3hTdGFydCgpIHx8IHJ1bi5pc0lubGluZUJveEVuZCgpIHx8IHJ1bi5pc1dvcmRCcmVh
a09wcG9ydHVuaXR5KCkpOworICAgICAgICAgICAgQVNTRVJUKHJ1bi5pc0xpbmVTcGFubmluZ0lu
bGluZUJveFN0YXJ0KCkgfHwgcnVuLmlzSW5saW5lQm94U3RhcnQoKSB8fCBydW4uaXNJbmxpbmVC
b3hFbmQoKSB8fCBydW4uaXNXb3JkQnJlYWtPcHBvcnR1bml0eSgpKTsKICAgICAgICAgfQogICAg
ICAgICAvLyBMZWFkaW5nIHdoaXRlc3BhY2UuCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtNDQ1
LDcgKzQ1MCw3IEBAIElubGluZUxheW91dFVuaXQgTGluZTo6VHJpbW1hYmxlVHJhaWxpbmdDb250
ZW50OjpyZW1vdmUoKQogICAgIC8vIG5vdCBwcm9kdWNlIGEgcnVuIHNpbmNlIGluIDo6YXBwZW5k
VGV4dCgpIHdlIHNlZSBpdCBhcyBhIGZ1bGx5IGNvbGxhcHNpYmxlIHJ1bi4KICAgICBmb3IgKGF1
dG8gaW5kZXggPSAqbV9maXJzdFRyaW1tYWJsZVJ1bkluZGV4ICsgMTsgaW5kZXggPCBtX3J1bnMu
c2l6ZSgpOyArK2luZGV4KSB7CiAgICAgICAgIGF1dG8mIHJ1biA9IG1fcnVuc1tpbmRleF07Ci0g
ICAgICAgIEFTU0VSVChydW4uaXNXb3JkQnJlYWtPcHBvcnR1bml0eSgpIHx8IHJ1bi5pc0lubGlu
ZUJveFN0YXJ0KCkgfHwgcnVuLmlzSW5saW5lQm94RW5kKCkgfHwgcnVuLmlzTGluZUJyZWFrKCkp
OworICAgICAgICBBU1NFUlQocnVuLmlzV29yZEJyZWFrT3Bwb3J0dW5pdHkoKSB8fCBydW4uaXNM
aW5lU3Bhbm5pbmdJbmxpbmVCb3hTdGFydCgpIHx8IHJ1bi5pc0lubGluZUJveFN0YXJ0KCkgfHwg
cnVuLmlzSW5saW5lQm94RW5kKCkgfHwgcnVuLmlzTGluZUJyZWFrKCkpOwogICAgICAgICBydW4u
bW92ZUhvcml6b250YWxseSgtdHJpbW1hYmxlV2lkdGgpOwogICAgIH0KICAgICBpZiAoIXRyaW1t
YWJsZVJ1bi50ZXh0Q29udGVudCgpLT5sZW5ndGgpIHsKQEAgLTQ3NSw4ICs0ODAsMjcgQEAgdm9p
ZCBMaW5lOjpIYW5naW5nVHJhaWxpbmdDb250ZW50OjphZGQoY29uc3QgSW5saW5lVGV4dEl0ZW0m
IHRyYWlsaW5nV2hpdGVzcGFjZSwKICAgICBtX2xlbmd0aCArPSB0cmFpbGluZ1doaXRlc3BhY2Uu
bGVuZ3RoKCk7CiB9CiAKK2lubGluZSBzdGF0aWMgTGluZTo6UnVuOjpUeXBlIHRvTGluZVJ1blR5
cGUoSW5saW5lSXRlbTo6VHlwZSBpbmxpbmVJdGVtVHlwZSkKK3sKKyAgICBzd2l0Y2ggKGlubGlu
ZUl0ZW1UeXBlKSB7CisgICAgY2FzZSBJbmxpbmVJdGVtOjpUeXBlOjpIYXJkTGluZUJyZWFrOgor
ICAgICAgICByZXR1cm4gTGluZTo6UnVuOjpUeXBlOjpIYXJkTGluZUJyZWFrOworICAgIGNhc2Ug
SW5saW5lSXRlbTo6VHlwZTo6V29yZEJyZWFrT3Bwb3J0dW5pdHk6CisgICAgICAgIHJldHVybiBM
aW5lOjpSdW46OlR5cGU6OldvcmRCcmVha09wcG9ydHVuaXR5OworICAgIGNhc2UgSW5saW5lSXRl
bTo6VHlwZTo6Qm94OgorICAgICAgICByZXR1cm4gTGluZTo6UnVuOjpUeXBlOjpBdG9taWNCb3g7
CisgICAgY2FzZSBJbmxpbmVJdGVtOjpUeXBlOjpJbmxpbmVCb3hTdGFydDoKKyAgICAgICAgcmV0
dXJuIExpbmU6OlJ1bjo6VHlwZTo6SW5saW5lQm94U3RhcnQ7CisgICAgY2FzZSBJbmxpbmVJdGVt
OjpUeXBlOjpJbmxpbmVCb3hFbmQ6CisgICAgICAgIHJldHVybiBMaW5lOjpSdW46OlR5cGU6Oklu
bGluZUJveEVuZDsKKyAgICBkZWZhdWx0OgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIH0KKyAgICByZXR1cm4geyB9OworfQorCiBMaW5lOjpSdW46OlJ1bihjb25z
dCBJbmxpbmVJdGVtJiBpbmxpbmVJdGVtLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIElubGlu
ZUxheW91dFVuaXQgbG9naWNhbExlZnQsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKQot
ICAgIDogbV90eXBlKGlubGluZUl0ZW0udHlwZSgpKQorICAgIDogbV90eXBlKHRvTGluZVJ1blR5
cGUoaW5saW5lSXRlbS50eXBlKCkpKQogICAgICwgbV9sYXlvdXRCb3goJmlubGluZUl0ZW0ubGF5
b3V0Qm94KCkpCiAgICAgLCBtX2xvZ2ljYWxMZWZ0KGxvZ2ljYWxMZWZ0KQogICAgICwgbV9sb2dp
Y2FsV2lkdGgobG9naWNhbFdpZHRoKQpAQCAtNDg1LDE0ICs1MDksMjEgQEAgTGluZTo6UnVuOjpS
dW4oY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
LCBJbmxpbmVMYXkKIH0KIAogTGluZTo6UnVuOjpSdW4oY29uc3QgSW5saW5lSXRlbSYgemVyb1dp
ZGh0SW5saW5lSXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCkKLSAgICA6IG1fdHlw
ZSh6ZXJvV2lkaHRJbmxpbmVJdGVtLnR5cGUoKSkKKyAgICA6IG1fdHlwZSh0b0xpbmVSdW5UeXBl
KHplcm9XaWRodElubGluZUl0ZW0udHlwZSgpKSkKICAgICAsIG1fbGF5b3V0Qm94KCZ6ZXJvV2lk
aHRJbmxpbmVJdGVtLmxheW91dEJveCgpKQogICAgICwgbV9sb2dpY2FsTGVmdChsb2dpY2FsTGVm
dCkKIHsKIH0KIAorTGluZTo6UnVuOjpSdW4oY29uc3QgSW5saW5lSXRlbSYgbGluZVNwYW5uaW5n
SW5saW5lQm94SXRlbSkKKyAgICA6IG1fdHlwZShUeXBlOjpMaW5lU3Bhbm5pbmdJbmxpbmVCb3hT
dGFydCkKKyAgICAsIG1fbGF5b3V0Qm94KCZsaW5lU3Bhbm5pbmdJbmxpbmVCb3hJdGVtLmxheW91
dEJveCgpKQoreworICAgIEFTU0VSVChsaW5lU3Bhbm5pbmdJbmxpbmVCb3hJdGVtLmlzSW5saW5l
Qm94U3RhcnQoKSk7Cit9CisKIExpbmU6OlJ1bjo6UnVuKGNvbnN0IElubGluZVNvZnRMaW5lQnJl
YWtJdGVtJiBzb2Z0TGluZUJyZWFrSXRlbSwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCkK
LSAgICA6IG1fdHlwZShzb2Z0TGluZUJyZWFrSXRlbS50eXBlKCkpCisgICAgOiBtX3R5cGUoVHlw
ZTo6U29mdExpbmVCcmVhaykKICAgICAsIG1fbGF5b3V0Qm94KCZzb2Z0TGluZUJyZWFrSXRlbS5s
YXlvdXRCb3goKSkKICAgICAsIG1fbG9naWNhbExlZnQobG9naWNhbExlZnQpCiAgICAgLCBtX3Rl
eHRDb250ZW50KHsgc29mdExpbmVCcmVha0l0ZW0ucG9zaXRpb24oKSwgMSB9KQpAQCAtNTAwLDcg
KzUzMSw3IEBAIExpbmU6OlJ1bjo6UnVuKGNvbnN0IElubGluZVNvZnRMaW5lQnJlYWtJdGVtJiBz
b2Z0TGluZUJyZWFrSXRlbSwgSW5saW5lTGF5b3V0VW5pCiB9CiAKIExpbmU6OlJ1bjo6UnVuKGNv
bnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0
eWxlLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2lj
YWxXaWR0aCkKLSAgICA6IG1fdHlwZShJbmxpbmVJdGVtOjpUeXBlOjpUZXh0KQorICAgIDogbV90
eXBlKFR5cGU6OlRleHQpCiAgICAgLCBtX2xheW91dEJveCgmaW5saW5lVGV4dEl0ZW0ubGF5b3V0
Qm94KCkpCiAgICAgLCBtX2xvZ2ljYWxMZWZ0KGxvZ2ljYWxMZWZ0KQogICAgICwgbV9sb2dpY2Fs
V2lkdGgobG9naWNhbFdpZHRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZS5oCmluZGV4IDgyZmUxOTM5
YTM5MjhhM2IxYzViZjUyYTNjMTQ5NDE5ZGE4YmYwMTAuLjQzNGY3ZjRlNzNiZWNmZGQ1NGZmYzcw
NTE1NGFjMjA5ODJiM2M1NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmgKQEAgLTQyLDEwICs0
MiwxMiBAQCBwdWJsaWM6CiAgICAgTGluZShjb25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYp
OwogICAgIH5MaW5lKCk7CiAKLSAgICB2b2lkIGluaXRpYWxpemUoKTsKKyAgICB2b2lkIGluaXRp
YWxpemUoY29uc3QgVmVjdG9yPElubGluZUl0ZW0+JiBsaW5lU3Bhbm5pbmdJbmxpbmVCb3hlcyk7
CiAKICAgICB2b2lkIGFwcGVuZChjb25zdCBJbmxpbmVJdGVtJiwgY29uc3QgUmVuZGVyU3R5bGUm
LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCk7CiAKKyAgICBib29sIGhhc0NvbnRlbnQo
KSBjb25zdCB7IHJldHVybiAhbV9ydW5zLmlzRW1wdHkoKSAmJiAhbV9ydW5zLmxhc3QoKS5pc0xp
bmVTcGFubmluZ0lubGluZUJveFN0YXJ0KCk7IH0KKwogICAgIElubGluZUxheW91dFVuaXQgY29u
dGVudExvZ2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudExvZ2ljYWxXaWR0aDsg
fQogICAgIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0
dXJuIG1fcnVucy5pc0VtcHR5KCkgPyAwLjBmIDogbV9ydW5zLmxhc3QoKS5sb2dpY2FsUmlnaHQo
KTsgfQogICAgIHNpemVfdCBub25TcGFubmluZ0lubGluZUxldmVsQm94Q291bnQoKSBjb25zdCB7
IHJldHVybiBtX25vblNwYW5uaW5nSW5saW5lTGV2ZWxCb3hDb3VudDsgfQpAQCAtNjIsMTUgKzY0
LDI2IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGx5UnVuRXhwYW5zaW9uKElubGluZUxheW91dFVu
aXQgaG9yaXpvbnRhbEF2YWlsYWJsZVNwYWNlKTsKIAogICAgIHN0cnVjdCBSdW4gewotICAgICAg
ICBib29sIGlzVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBJbmxpbmVJdGVtOjpUeXBl
OjpUZXh0OyB9Ci0gICAgICAgIGJvb2wgaXNCb3goKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0g
SW5saW5lSXRlbTo6VHlwZTo6Qm94OyB9CisgICAgICAgIGVudW0gY2xhc3MgVHlwZSA6IHVpbnQ4
X3QgeworICAgICAgICAgICAgVGV4dCwKKyAgICAgICAgICAgIEhhcmRMaW5lQnJlYWssCisgICAg
ICAgICAgICBTb2Z0TGluZUJyZWFrLAorICAgICAgICAgICAgV29yZEJyZWFrT3Bwb3J0dW5pdHks
CisgICAgICAgICAgICBBdG9taWNCb3gsCisgICAgICAgICAgICBJbmxpbmVCb3hTdGFydCwKKyAg
ICAgICAgICAgIElubGluZUJveEVuZCwKKyAgICAgICAgICAgIExpbmVTcGFubmluZ0lubGluZUJv
eFN0YXJ0CisgICAgICAgIH07CisKKyAgICAgICAgYm9vbCBpc1RleHQoKSBjb25zdCB7IHJldHVy
biBtX3R5cGUgPT0gVHlwZTo6VGV4dDsgfQorICAgICAgICBib29sIGlzQm94KCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlID09IFR5cGU6OkF0b21pY0JveDsgfQogICAgICAgICBib29sIGlzTGluZUJy
ZWFrKCkgY29uc3QgeyByZXR1cm4gaXNIYXJkTGluZUJyZWFrKCkgfHwgaXNTb2Z0TGluZUJyZWFr
KCk7IH0KLSAgICAgICAgYm9vbCBpc1NvZnRMaW5lQnJlYWsoKSBjb25zdCAgeyByZXR1cm4gbV90
eXBlID09IElubGluZUl0ZW06OlR5cGU6OlNvZnRMaW5lQnJlYWs7IH0KLSAgICAgICAgYm9vbCBp
c0hhcmRMaW5lQnJlYWsoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gSW5saW5lSXRlbTo6VHlw
ZTo6SGFyZExpbmVCcmVhazsgfQotICAgICAgICBib29sIGlzV29yZEJyZWFrT3Bwb3J0dW5pdHko
KSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gSW5saW5lSXRlbTo6VHlwZTo6V29yZEJyZWFrT3Bw
b3J0dW5pdHk7IH0KLSAgICAgICAgYm9vbCBpc0lubGluZUJveFN0YXJ0KCkgY29uc3QgeyByZXR1
cm4gbV90eXBlID09IElubGluZUl0ZW06OlR5cGU6OklubGluZUJveFN0YXJ0OyB9Ci0gICAgICAg
IGJvb2wgaXNJbmxpbmVCb3hFbmQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gSW5saW5lSXRl
bTo6VHlwZTo6SW5saW5lQm94RW5kOyB9Ci0gICAgICAgIGF1dG8gdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdHlwZTsgfQorICAgICAgICBib29sIGlzU29mdExpbmVCcmVhaygpIGNvbnN0ICB7IHJl
dHVybiBtX3R5cGUgPT0gVHlwZTo6U29mdExpbmVCcmVhazsgfQorICAgICAgICBib29sIGlzSGFy
ZExpbmVCcmVhaygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpIYXJkTGluZUJyZWFr
OyB9CisgICAgICAgIGJvb2wgaXNXb3JkQnJlYWtPcHBvcnR1bml0eSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZSA9PSBUeXBlOjpXb3JkQnJlYWtPcHBvcnR1bml0eTsgfQorICAgICAgICBib29sIGlz
SW5saW5lQm94U3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6SW5saW5lQm94
U3RhcnQ7IH0KKyAgICAgICAgYm9vbCBpc0xpbmVTcGFubmluZ0lubGluZUJveFN0YXJ0KCkgY29u
c3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6OkxpbmVTcGFubmluZ0lubGluZUJveFN0YXJ0OyB9
CisgICAgICAgIGJvb2wgaXNJbmxpbmVCb3hFbmQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0g
VHlwZTo6SW5saW5lQm94RW5kOyB9CiAKICAgICAgICAgY29uc3QgQm94JiBsYXlvdXRCb3goKSBj
b25zdCB7IHJldHVybiAqbV9sYXlvdXRCb3g7IH0KICAgICAgICAgc3RydWN0IFRleHQgewpAQCAt
MTAxLDYgKzExNCw3IEBAIHB1YmxpYzoKICAgICAgICAgUnVuKGNvbnN0IElubGluZVNvZnRMaW5l
QnJlYWtJdGVtJiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCk7CiAgICAgICAgIFJ1bihj
b25zdCBJbmxpbmVJdGVtJiwgY29uc3QgUmVuZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0IGxv
Z2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCk7CiAgICAgICAgIFJ1bihj
b25zdCBJbmxpbmVJdGVtJiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCk7CisgICAgICAg
IFJ1bihjb25zdCBJbmxpbmVJdGVtJiBsaW5lU3Bhbm5pbmdJbmxpbmVCb3hJdGVtKTsKIAogICAg
ICAgICB2b2lkIGV4cGFuZChjb25zdCBJbmxpbmVUZXh0SXRlbSYsIElubGluZUxheW91dFVuaXQg
bG9naWNhbFdpZHRoKTsKICAgICAgICAgdm9pZCBtb3ZlSG9yaXpvbnRhbGx5KElubGluZUxheW91
dFVuaXQgb2Zmc2V0KSB7IG1fbG9naWNhbExlZnQgKz0gb2Zmc2V0OyB9CkBAIC0xMjQsNyArMTM4
LDcgQEAgcHVibGljOgogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IHRyYWlsaW5nTGV0dGVyU3Bh
Y2luZygpIGNvbnN0OwogICAgICAgICB2b2lkIHJlbW92ZVRyYWlsaW5nTGV0dGVyU3BhY2luZygp
OwogCi0gICAgICAgIElubGluZUl0ZW06OlR5cGUgbV90eXBlIHsgSW5saW5lSXRlbTo6VHlwZTo6
VGV4dCB9OworICAgICAgICBUeXBlIG1fdHlwZSB7IFR5cGU6OlRleHQgfTsKICAgICAgICAgY29u
c3QgQm94KiBtX2xheW91dEJveCB7IG51bGxwdHIgfTsKICAgICAgICAgSW5saW5lTGF5b3V0VW5p
dCBtX2xvZ2ljYWxMZWZ0IHsgMCB9OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1fbG9naWNh
bFdpZHRoIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIu
Y3BwCmluZGV4IGM4Yjc2MGU3ZmE0YTQ4MDUzYThmZTQwZTFlYzE5MTQ3YTkwYWEyZmUuLmMyZWVi
MTQ2ZjgyMDRmYzU0OTIzMzk0MjJiYTcyMDA2MzUwNGY5ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWls
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAKQEAgLTI1NCw0MyArMjU0LDYgQEAgSW5saW5l
TGF5b3V0VW5pdCBMaW5lQm94QnVpbGRlcjo6Y29uc3RydWN0QW5kQWxpZ25JbmxpbmVMZXZlbEJv
eGVzKExpbmVCb3gmIGxpbmUKICAgICAgICAgcmV0dXJuICFsaW5lSW5kZXggPyBsYXlvdXRCb3gu
Zmlyc3RMaW5lU3R5bGUoKSA6IGxheW91dEJveC5zdHlsZSgpOwogICAgIH07CiAKLSAgICBhdXRv
IGNyZWF0ZUxpbmVTcGFubmluZ0lubGluZUJveGVzID0gWyZdIHsKLSAgICAgICAgaWYgKHJ1bnMu
aXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAvLyBBbiBpbmxpbmUgYm94
IG1heSBub3QgbmVjZXNzYXJpbHkgc3RhcnQgb24gdGhlIGN1cnJlbnQgbGluZToKLSAgICAgICAg
Ly8gPHNwYW4gaWQ9b3V0ZXI+bGluZSBicmVhazxicj50aGlzIGNvbnRlbnQncyBwYXJlbnQgaW5s
aW5lIGJveCgnb3V0ZXInKSA8c3BhbiBpZD1pbm5lcj5zdGFydHMgb24gdGhlIHByZXZpb3VzIGxp
bmU8L3NwYW4+PC9zcGFuPgotICAgICAgICAvLyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRo
ZXJlJ3MgYW4gSW5saW5lTGV2ZWxCb3ggZm9yIGV2ZXJ5IGlubGluZSBib3ggdGhhdCdzIHByZXNl
bnQgb24gdGhlIGN1cnJlbnQgbGluZS4KLSAgICAgICAgLy8gSW4gbmVzdGluZyBjYXNlIHdlIG5l
ZWQgdG8gY3JlYXRlIElubGluZUxldmVsQm94ZXMgZm9yIHRoZSBpbmxpbmUgYm94IGFuY2VzdG9y
cy4KLSAgICAgICAgLy8gV2Ugb25seSBoYXZlIHRvIGRvIGl0IG9uIHRoZSBmaXJzdCBydW4gYXMg
YW55IHN1YnNlcXVlbnQgaW5saW5lIGNvbnRlbnQgaXMgZWl0aGVyIGF0IHRoZSBzYW1lL2hpZ2hl
ciBuZXN0aW5nIGxldmVsIG9yCi0gICAgICAgIC8vIG5lc3RlZCB3aXRoIGEgW2lubGluZSBib3gg
c3RhcnRdIHJ1bi4KLSAgICAgICAgYXV0byYgZmlyc3RSdW4gPSBydW5zWzBdOwotICAgICAgICBh
dXRvJiBmaXJzdFJ1blBhcmVudExheW91dEJveCA9IGZpcnN0UnVuLmxheW91dEJveCgpLnBhcmVu
dCgpOwotICAgICAgICAvLyBJZiB0aGUgcGFyZW50IGlzIHRoZSBmb3JtYXR0aW5nIHJvb3QsIHdl
IGNhbiBzdG9wIGhlcmUuIFRoaXMgaXMgcm9vdCBpbmxpbmUgYm94IGNvbnRlbnQsIHRoZXJlJ3Mg
bm8gbmVzdGluZyBpbmxpbmUgYm94IGZyb20gdGhlIHByZXZpb3VzIGxpbmUocykKLSAgICAgICAg
Ly8gdW5sZXNzIHRoZSBpbmxpbmUgYm94IGNsb3NpbmcgaXMgZm9yY2VkIG92ZXIgdG8gdGhlIGN1
cnJlbnQgbGluZS4KLSAgICAgICAgLy8gZS5nLgotICAgICAgICAvLyA8c3Bhbj5ub3JtYWxseSB0
aGUgaW5saW5lIGJveCBjbG9zaW5nIGZvcm1zIGEgY29udGludW91cyBjb250ZW50PC9zcGFuPgot
ICAgICAgICAvLyA8c3Bhbj51bmxlc3MgaXQncyBmb3JjZWQgdG8gdGhlIG5leHQgbGluZTxicj48
L3NwYW4+Ci0gICAgICAgIGF1dG8gZmlyc3RSdW5OZWVkc0lubGluZUJveCA9IGZpcnN0UnVuLmlz
SW5saW5lQm94RW5kKCk7Ci0gICAgICAgIGlmICghZmlyc3RSdW5OZWVkc0lubGluZUJveCAmJiBp
c1Jvb3RMYXlvdXRCb3goZmlyc3RSdW5QYXJlbnRMYXlvdXRCb3gpKQotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICBWZWN0b3I8Y29uc3QgQm94Kj4gbGF5b3V0Qm94ZXNXaXRob3V0SW5saW5l
Qm94ZXM7Ci0gICAgICAgIGlmIChmaXJzdFJ1bk5lZWRzSW5saW5lQm94KQotICAgICAgICAgICAg
bGF5b3V0Qm94ZXNXaXRob3V0SW5saW5lQm94ZXMuYXBwZW5kKCZmaXJzdFJ1bi5sYXlvdXRCb3go
KSk7Ci0gICAgICAgIGF1dG8qIGFuY2VzdG9yID0gJmZpcnN0UnVuUGFyZW50TGF5b3V0Qm94Owot
ICAgICAgICB3aGlsZSAoIWlzUm9vdExheW91dEJveCgqYW5jZXN0b3IpKSB7Ci0gICAgICAgICAg
ICBsYXlvdXRCb3hlc1dpdGhvdXRJbmxpbmVCb3hlcy5hcHBlbmQoYW5jZXN0b3IpOwotICAgICAg
ICAgICAgYW5jZXN0b3IgPSAmYW5jZXN0b3ItPnBhcmVudCgpOwotICAgICAgICB9Ci0gICAgICAg
IC8vIENvbnN0cnVjdCB0aGUgbWlzc2luZyBMaW5lQm94OjpJbmxpbmVCb3hlcyBzdGFydGluZyB3
aXRoIHRoZSB0b3Btb3N0IGxheW91dCBib3guCi0gICAgICAgIGZvciAoYXV0byogbGF5b3V0Qm94
IDogV1RGOjptYWtlUmV2ZXJzZWRSYW5nZShsYXlvdXRCb3hlc1dpdGhvdXRJbmxpbmVCb3hlcykp
IHsKLSAgICAgICAgICAgIGF1dG8gaW5saW5lQm94ID0gSW5saW5lTGV2ZWxCb3g6OmNyZWF0ZUlu
bGluZUJveCgqbGF5b3V0Qm94LCBzdHlsZVRvVXNlKCpsYXlvdXRCb3gpLCByb290SW5saW5lQm94
LmxvZ2ljYWxMZWZ0KCksIHJvb3RJbmxpbmVCb3gubG9naWNhbFdpZHRoKCksIElubGluZUxldmVs
Qm94OjpMaW5lU3Bhbm5pbmdJbmxpbmVCb3g6Olllcyk7Ci0gICAgICAgICAgICBzZXRJbml0aWFs
VmVydGljYWxHZW9tZXRyeUZvcklubGluZUJveChpbmxpbmVCb3gpOwotICAgICAgICAgICAgdXBk
YXRlQ2FuVXNlU2ltcGxpZmllZEFsaWdubWVudChpbmxpbmVCb3gpOwotICAgICAgICAgICAgbGlu
ZUJveC5hZGRJbmxpbmVMZXZlbEJveChXVEZNb3ZlKGlubGluZUJveCkpOwotICAgICAgICB9Ci0g
ICAgfTsKLSAgICBjcmVhdGVMaW5lU3Bhbm5pbmdJbmxpbmVCb3hlcygpOwotCiAgICAgYXV0byBs
aW5lSGFzQ29udGVudCA9IGZhbHNlOwogICAgIGZvciAoYXV0byYgcnVuIDogcnVucykgewogICAg
ICAgICBhdXRvJiBsYXlvdXRCb3ggPSBydW4ubGF5b3V0Qm94KCk7CkBAIC0yOTksMTQgKzI2Miwx
NiBAQCBJbmxpbmVMYXlvdXRVbml0IExpbmVCb3hCdWlsZGVyOjpjb25zdHJ1Y3RBbmRBbGlnbklu
bGluZUxldmVsQm94ZXMoTGluZUJveCYgbGluZQogICAgICAgICAgICAgQVNTRVJUKCFsaW5lSGFz
Q29udGVudCk7CiAgICAgICAgICAgICBpZiAocnVuLmlzVGV4dCgpIHx8IHJ1bi5pc0JveCgpIHx8
IHJ1bi5pc1NvZnRMaW5lQnJlYWsoKSB8fCBydW4uaXNIYXJkTGluZUJyZWFrKCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBpZiAocnVuLmlzTGluZVNwYW5uaW5n
SW5saW5lQm94U3RhcnQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICBpZiAocnVuLmlzV29yZEJyZWFrT3Bwb3J0dW5pdHkoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBhdXRvJiBpbmxpbmVCb3hHZW9tZXRyeSA9IGZvcm1h
dHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94KTsKICAgICAgICAgICAgIC8v
IEV2ZW4gbmVnYXRpdmUgaG9yaXpvbnRhbCBtYXJnaW4gbWFrZXMgdGhlIGxpbmUgImNvbnRlbnRm
dWwiLgogICAgICAgICAgICAgaWYgKHJ1bi5pc0lubGluZUJveFN0YXJ0KCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGlubGluZUJveEdlb21ldHJ5Lm1hcmdpblN0YXJ0KCkgfHwgaW5saW5lQm94
R2VvbWV0cnkuYm9yZGVyTGVmdCgpIHx8IGlubGluZUJveEdlb21ldHJ5LnBhZGRpbmdMZWZ0KCku
dmFsdWVfb3IoMF9sdSk7CiAgICAgICAgICAgICBpZiAocnVuLmlzSW5saW5lQm94RW5kKCkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGlubGluZUJveEdlb21ldHJ5Lm1hcmdpbkVuZCgpIHx8IGlu
bGluZUJveEdlb21ldHJ5LmJvcmRlclJpZ2h0KCkgfHwgaW5saW5lQm94R2VvbWV0cnkucGFkZGlu
Z1JpZ2h0KCkudmFsdWVfb3IoMF9sdSk7Ci0gICAgICAgICAgICBpZiAocnVuLmlzV29yZEJyZWFr
T3Bwb3J0dW5pdHkoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9OwpAQCAtMzQ0LDYgKzMwOSwxMyBAQCBJbmxpbmVMYXlvdXRVbml0IExpbmVCb3hCdWlsZGVy
Ojpjb25zdHJ1Y3RBbmRBbGlnbklubGluZUxldmVsQm94ZXMoTGluZUJveCYgbGluZQogICAgICAg
ICAgICAgbGluZUJveC5hZGRJbmxpbmVMZXZlbEJveChXVEZNb3ZlKGF0b21pY0lubGluZUxldmVs
Qm94KSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQorICAgICAgICBpZiAocnVu
LmlzTGluZVNwYW5uaW5nSW5saW5lQm94U3RhcnQoKSkgeworICAgICAgICAgICAgYXV0byBpbmxp
bmVCb3ggPSBJbmxpbmVMZXZlbEJveDo6Y3JlYXRlSW5saW5lQm94KGxheW91dEJveCwgc3R5bGUs
IGxvZ2ljYWxMZWZ0LCByb290SW5saW5lQm94LmxvZ2ljYWxXaWR0aCgpLCBJbmxpbmVMZXZlbEJv
eDo6TGluZVNwYW5uaW5nSW5saW5lQm94OjpZZXMpOworICAgICAgICAgICAgc2V0SW5pdGlhbFZl
cnRpY2FsR2VvbWV0cnlGb3JJbmxpbmVCb3goaW5saW5lQm94KTsKKyAgICAgICAgICAgIHVwZGF0
ZUNhblVzZVNpbXBsaWZpZWRBbGlnbm1lbnQoaW5saW5lQm94KTsKKyAgICAgICAgICAgIGxpbmVC
b3guYWRkSW5saW5lTGV2ZWxCb3goV1RGTW92ZShpbmxpbmVCb3gpKTsKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICB9CiAgICAgICAgIGlmIChydW4uaXNJbmxpbmVCb3hTdGFydCgpKSB7
CiAgICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIGRvbid0IGtub3cgeWV0IGhvdyB3aWRl
IHRoaXMgaW5saW5lIGJveCBpcy4gTGV0J3MgYXNzdW1lIGl0J3MgYXMgbG9uZyBhcyB0aGUgbGlu
ZSBpcwogICAgICAgICAgICAgLy8gYW5kIGFkanVzdCBpdCBsYXRlciBpZiB3ZSBjb21lIGFjcm9z
cyBhbiBpbmxpbmVCb3hFbmQgcnVuIChzZWUgYmVsb3cpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveEJ1aWxk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUxpbmVCb3hCdWlsZGVyLmgKaW5kZXggNTc1OTg1Y2FhOWQwODc2MDNkOTc5ODMzYzNjZWU4
OGRjNmIxNDUzNS4uYWFlYjBkNGE3NjJjZTM0YmNiY2MzYTQxMGZjNGFkZmMzMTI2OWJkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGluZUJveEJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5oCkBAIC02MCw4ICs2MCw2
IEBAIHByaXZhdGU6CiAgICAgY29uc3QgQm94JiByb290Qm94KCkgY29uc3QgeyByZXR1cm4gZm9y
bWF0dGluZ0NvbnRleHQoKS5yb290KCk7IH0KICAgICBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUo
KSBjb25zdCB7IHJldHVybiBmb3JtYXR0aW5nQ29udGV4dCgpLmxheW91dFN0YXRlKCk7IH0KIAot
ICAgIGJvb2wgaXNSb290TGF5b3V0Qm94KGNvbnN0IENvbnRhaW5lckJveCYgY29udGFpbmVyQm94
KSBjb25zdCB7IHJldHVybiAmY29udGFpbmVyQm94ID09ICZyb290Qm94KCk7IH0KLQogcHJpdmF0
ZToKICAgICBjb25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgbV9pbmxpbmVGb3JtYXR0aW5n
Q29udGV4dDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAKaW5k
ZXggNTU0OGNiYjljMTgzMDY2ZTY3YjBkYjM2ZWE5NGYzMmM2YmNkNzUxYS4uMjM0OTM0NmZiOTdm
YjE2NDAyMTI5MDAyODgyNzBkODg0OGYxZjliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmVCdWlsZGVyLmNwcApAQCAtMjkyLDE5ICsyOTIsNTAgQEAgTGluZUJ1aWxkZXI6OkludHJp
bnNpY0NvbnRlbnQgTGluZUJ1aWxkZXI6OmNvbXB1dGVkSW50cmluc2ljV2lkdGgoY29uc3QgSW5s
aW5lSXQKICAgICByZXR1cm4geyBjb21taXR0ZWRSYW5nZSwgbV9saW5lLmNvbnRlbnRMb2dpY2Fs
V2lkdGgoKSwgbV9mbG9hdHMgfTsKIH0KIAotdm9pZCBMaW5lQnVpbGRlcjo6aW5pdGlhbGl6ZShj
b25zdCBVc2VkQ29uc3RyYWludHMmIGxpbmVDb25zdHJhaW50cywgYm9vbCBpc0ZpcnN0TGluZSwg
c2l6ZV90IGxlYWRpbmdJbmxpbmVUZXh0SXRlbUluZGV4LCBzaXplX3QgcGFydGlhbExlYWRpbmdD
b250ZW50TGVuZ3RoLCBzdGQ6Om9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IG92ZXJmbG93aW5n
TG9naWNhbFdpZHRoKQordm9pZCBMaW5lQnVpbGRlcjo6aW5pdGlhbGl6ZShjb25zdCBVc2VkQ29u
c3RyYWludHMmIGxpbmVDb25zdHJhaW50cywgYm9vbCBpc0ZpcnN0TGluZSwgc2l6ZV90IGxlYWRp
bmdJbmxpbmVJdGVtSW5kZXgsIHNpemVfdCBwYXJ0aWFsTGVhZGluZ0NvbnRlbnRMZW5ndGgsIHN0
ZDo6b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gb3ZlcmZsb3dpbmdMb2dpY2FsV2lkdGgpCiB7
CiAgICAgbV9pc0ZpcnN0TGluZSA9IGlzRmlyc3RMaW5lOwogICAgIG1fZmxvYXRzLmNsZWFyKCk7
CisgICAgbV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hlcy5jbGVhcigpOwogICAgIG1fd3JhcE9wcG9y
dHVuaXR5TGlzdC5jbGVhcigpOwogCi0gICAgbV9saW5lLmluaXRpYWxpemUoKTsKKyAgICBhdXRv
IGNyZWF0ZUxpbmVTcGFubmluZ0lubGluZUJveGVzID0gWyZdIHsKKyAgICAgICAgYXV0byBpc1Jv
b3RMYXlvdXRCb3ggPSBbJl0oYXV0byYgY29udGFpbmVyQm94KSB7CisgICAgICAgICAgICByZXR1
cm4gJmNvbnRhaW5lckJveCA9PSAmcm9vdCgpOworICAgICAgICB9OworICAgICAgICAvLyBBbiBp
bmxpbmUgYm94IG1heSBub3QgbmVjZXNzYXJpbHkgc3RhcnQgb24gdGhlIGN1cnJlbnQgbGluZToK
KyAgICAgICAgLy8gPHNwYW4+Zmlyc3QgbGluZTxicj5zZWNvbmQgbGluZTxzcGFuPndpdGggc29t
ZSBtb3JlIGVtYmVkZGluZzxicj4gZm9ydGggbGluZTwvc3Bhbj48L3NwYW4+CisgICAgICAgIC8v
IFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlcmUncyBhbiBbSW5saW5lQm94U3RhcnRdIGZv
ciBldmVyeSBpbmxpbmUgYm94IHRoYXQncyBwcmVzZW50IG9uIHRoZSBjdXJyZW50IGxpbmUuCisg
ICAgICAgIC8vIFdlIG9ubHkgaGF2ZSB0byBkbyBpdCBvbiB0aGUgZmlyc3QgcnVuIGFzIGFueSBz
dWJzZXF1ZW50IGlubGluZSBjb250ZW50IGlzIGVpdGhlciBhdCB0aGUgc2FtZS9oaWdoZXIgbmVz
dGluZyBsZXZlbC4KKyAgICAgICAgYXV0byYgZmlyc3RJbmxpbmVJdGVtID0gbV9pbmxpbmVJdGVt
c1tsZWFkaW5nSW5saW5lSXRlbUluZGV4XTsKKyAgICAgICAgLy8gSWYgdGhlIHBhcmVudCBpcyB0
aGUgZm9ybWF0dGluZyByb290LCB3ZSBjYW4gc3RvcCBoZXJlLiBUaGlzIGlzIHJvb3QgaW5saW5l
IGJveCBjb250ZW50LCB0aGVyZSdzIG5vIG5lc3RpbmcgaW5saW5lIGJveCBmcm9tIHRoZSBwcmV2
aW91cyBsaW5lKHMpCisgICAgICAgIC8vIHVubGVzcyB0aGUgaW5saW5lIGJveCBjbG9zaW5nIGlz
IGZvcmNlZCBvdmVyIHRvIHRoZSBjdXJyZW50IGxpbmUuCisgICAgICAgIC8vIGUuZy4KKyAgICAg
ICAgLy8gPHNwYW4+bm9ybWFsbHkgdGhlIGlubGluZSBib3ggY2xvc2luZyBmb3JtcyBhIGNvbnRp
bnVvdXMgY29udGVudDwvc3Bhbj4KKyAgICAgICAgLy8gPHNwYW4+dW5sZXNzIGl0J3MgZm9yY2Vk
IHRvIHRoZSBuZXh0IGxpbmU8YnI+PC9zcGFuPgorICAgICAgICBhdXRvIGZpcnN0SW5saW5lSXRl
bUlzTGluZVNwYW5uaW5nID0gZmlyc3RJbmxpbmVJdGVtLmlzSW5saW5lQm94RW5kKCk7CisgICAg
ICAgIGlmICghZmlyc3RJbmxpbmVJdGVtSXNMaW5lU3Bhbm5pbmcgJiYgaXNSb290TGF5b3V0Qm94
KGZpcnN0SW5saW5lSXRlbS5sYXlvdXRCb3goKS5wYXJlbnQoKSkpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIFZlY3Rvcjxjb25zdCBCb3gqPiBzcGFubmluZ0xheW91dEJveExpc3Q7Cisg
ICAgICAgIGlmIChmaXJzdElubGluZUl0ZW1Jc0xpbmVTcGFubmluZykKKyAgICAgICAgICAgIHNw
YW5uaW5nTGF5b3V0Qm94TGlzdC5hcHBlbmQoJmZpcnN0SW5saW5lSXRlbS5sYXlvdXRCb3goKSk7
CisgICAgICAgIGF1dG8qIGFuY2VzdG9yID0gJmZpcnN0SW5saW5lSXRlbS5sYXlvdXRCb3goKS5w
YXJlbnQoKTsKKyAgICAgICAgd2hpbGUgKCFpc1Jvb3RMYXlvdXRCb3goKmFuY2VzdG9yKSkgewor
ICAgICAgICAgICAgc3Bhbm5pbmdMYXlvdXRCb3hMaXN0LmFwcGVuZChhbmNlc3Rvcik7CisgICAg
ICAgICAgICBhbmNlc3RvciA9ICZhbmNlc3Rvci0+cGFyZW50KCk7CisgICAgICAgIH0KKyAgICAg
ICAgZm9yIChhdXRvKiBzcGFubmluZ0lubGluZUJveCA6IFdURjo6bWFrZVJldmVyc2VkUmFuZ2Uo
c3Bhbm5pbmdMYXlvdXRCb3hMaXN0KSkKKyAgICAgICAgICAgIG1fbGluZVNwYW5uaW5nSW5saW5l
Qm94ZXMuYXBwZW5kKHsgKnNwYW5uaW5nSW5saW5lQm94LCBJbmxpbmVJdGVtOjpUeXBlOjpJbmxp
bmVCb3hTdGFydCB9KTsKKyAgICB9OworICAgIGNyZWF0ZUxpbmVTcGFubmluZ0lubGluZUJveGVz
KCk7CisgICAgbV9saW5lLmluaXRpYWxpemUobV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hlcyk7CisK
ICAgICBtX2xpbmVMb2dpY2FsUmVjdCA9IGxpbmVDb25zdHJhaW50cy5sb2dpY2FsUmVjdDsKICAg
ICBtX2NvbnRlbnRJc0NvbnN0cmFpbmVkQnlGbG9hdCA9IGxpbmVDb25zdHJhaW50cy5pc0NvbnN0
cmFpbmVkQnlGbG9hdDsKIAogICAgIGlmIChwYXJ0aWFsTGVhZGluZ0NvbnRlbnRMZW5ndGgpIHsK
ICAgICAgICAgQVNTRVJUKCFpc0ZpcnN0TGluZSk7Ci0gICAgICAgIG1fcGFydGlhbExlYWRpbmdU
ZXh0SXRlbSA9IGRvd25jYXN0PElubGluZVRleHRJdGVtPihtX2lubGluZUl0ZW1zW2xlYWRpbmdJ
bmxpbmVUZXh0SXRlbUluZGV4XSkucmlnaHQocGFydGlhbExlYWRpbmdDb250ZW50TGVuZ3RoLCBv
dmVyZmxvd2luZ0xvZ2ljYWxXaWR0aCk7CisgICAgICAgIG1fcGFydGlhbExlYWRpbmdUZXh0SXRl
bSA9IGRvd25jYXN0PElubGluZVRleHRJdGVtPihtX2lubGluZUl0ZW1zW2xlYWRpbmdJbmxpbmVJ
dGVtSW5kZXhdKS5yaWdodChwYXJ0aWFsTGVhZGluZ0NvbnRlbnRMZW5ndGgsIG92ZXJmbG93aW5n
TG9naWNhbFdpZHRoKTsKICAgICAgICAgbV9vdmVyZmxvd2luZ0xvZ2ljYWxXaWR0aCA9IHsgfTsK
ICAgICB9IGVsc2UgewogICAgICAgICBtX3BhcnRpYWxMZWFkaW5nVGV4dEl0ZW0gPSB7IH07CkBA
IC0zODYsNyArNDE3LDcgQEAgTGluZUJ1aWxkZXI6OklubGluZUl0ZW1SYW5nZSBMaW5lQnVpbGRl
cjo6Y2xvc2UoY29uc3QgSW5saW5lSXRlbVJhbmdlJiBuZWVkc0xheW8KICAgICBpZiAocnVuc0V4
cGFuZEhvcml6b250YWxseSkKICAgICAgICAgbV9saW5lLmFwcGx5UnVuRXhwYW5zaW9uKGhvcml6
b250YWxBdmFpbGFibGVTcGFjZSk7CiAgICAgYXV0byBsaW5lRW5kc1dpdGhIeXBoZW4gPSBmYWxz
ZTsKLSAgICBpZiAoIW1fbGluZS5ydW5zKCkuaXNFbXB0eSgpKSB7CisgICAgaWYgKG1fbGluZS5o
YXNDb250ZW50KCkpIHsKICAgICAgICAgYXV0byYgbGFzdFRleHRDb250ZW50ID0gbV9saW5lLnJ1
bnMoKS5sYXN0KCkudGV4dENvbnRlbnQoKTsKICAgICAgICAgbGluZUVuZHNXaXRoSHlwaGVuID0g
bGFzdFRleHRDb250ZW50ICYmIGxhc3RUZXh0Q29udGVudC0+bmVlZHNIeXBoZW47CiAgICAgfQpA
QCAtNzA3LDcgKzczOCw3IEBAIExpbmVCdWlsZGVyOjpSZXN1bHQgTGluZUJ1aWxkZXI6OmhhbmRs
ZUlubGluZUNvbnRlbnQoSW5saW5lQ29udGVudEJyZWFrZXImIGlubGluCiAgICAgICAgIHJldHVy
biBzdGQ6OmlzbmFuKGF2YWlsYWJsZVdpZHRoRm9yQ29udGVudCkgPyBtYXhJbmxpbmVMYXlvdXRV
bml0KCkgOiBhdmFpbGFibGVXaWR0aEZvckNvbnRlbnQ7CiAgICAgfSgpOwogICAgIC8vIFdoaWxl
IHRoZSBmbG9hdHMgYXJlIG5vdCBjb25zaWRlcmVkIHRvIGJlIG9uIHRoZSBsaW5lLCB0aGV5IG1h
a2UgdGhlIGxpbmUgY29udGVudGZ1bCBmb3IgbGluZSBicmVha2luZy4KLSAgICBhdXRvIGxpbmVI
YXNDb250ZW50ID0gIW1fbGluZS5ydW5zKCkuaXNFbXB0eSgpIHx8IG1fY29udGVudElzQ29uc3Ry
YWluZWRCeUZsb2F0OworICAgIGF1dG8gbGluZUhhc0NvbnRlbnQgPSBtX2xpbmUuaGFzQ29udGVu
dCgpIHx8IG1fY29udGVudElzQ29uc3RyYWluZWRCeUZsb2F0OwogICAgIGF1dG8gbGluZVN0YXR1
cyA9IElubGluZUNvbnRlbnRCcmVha2VyOjpMaW5lU3RhdHVzIHsgbV9saW5lLmNvbnRlbnRMb2dp
Y2FsUmlnaHQoKSwgYXZhaWxhYmxlV2lkdGgsIG1fbGluZS50cmltbWFibGVUcmFpbGluZ1dpZHRo
KCksIG1fbGluZS50cmFpbGluZ1NvZnRIeXBoZW5XaWR0aCgpLCBtX2xpbmUuaXNUcmFpbGluZ1J1
bkZ1bGx5VHJpbW1hYmxlKCksIGxpbmVIYXNDb250ZW50LCAhbV93cmFwT3Bwb3J0dW5pdHlMaXN0
LmlzRW1wdHkoKSB9OwogICAgIGF1dG8gcmVzdWx0ID0gaW5saW5lQ29udGVudEJyZWFrZXIucHJv
Y2Vzc0lubGluZUNvbnRlbnQoY29udGludW91c0lubGluZUNvbnRlbnQsIGxpbmVTdGF0dXMpOwog
ICAgIGF1dG8mIGNhbmRpZGF0ZVJ1bnMgPSBjb250aW51b3VzSW5saW5lQ29udGVudC5ydW5zKCk7
CkBAIC03MjEsNyArNzUyLDcgQEAgTGluZUJ1aWxkZXI6OlJlc3VsdCBMaW5lQnVpbGRlcjo6aGFu
ZGxlSW5saW5lQ29udGVudChJbmxpbmVDb250ZW50QnJlYWtlciYgaW5saW4KICAgICAgICAgICAg
IGF1dG8mIHRyYWlsaW5nUnVuID0gY2FuZGlkYXRlUnVucy5sYXN0KCk7CiAgICAgICAgICAgICAv
LyBGSVhNRTogVGhlcmUgbXVzdCBiZSBhIHdheSB0byBkZWNpZGUgaWYgdGhlIHRyYWlsaW5nIHJ1
biBhY3R1YWxseSBlbmRlZCB1cCBvbiB0aGUgbGluZS4KICAgICAgICAgICAgIC8vIExldCdzIGp1
c3QgZGVhbCB3aXRoIGNvbGxhcHNlZCBsZWFkaW5nIHdoaXRlc3BhY2UgZm9yIG5vdy4KLSAgICAg
ICAgICAgIGlmICghbV9saW5lLnJ1bnMoKS5pc0VtcHR5KCkgJiYgVGV4dFV0aWw6OmlzV3JhcHBp
bmdBbGxvd2VkKHRyYWlsaW5nUnVuLnN0eWxlKSkKKyAgICAgICAgICAgIGlmIChtX2xpbmUuaGFz
Q29udGVudCgpICYmIFRleHRVdGlsOjppc1dyYXBwaW5nQWxsb3dlZCh0cmFpbGluZ1J1bi5zdHls
ZSkpCiAgICAgICAgICAgICAgICAgbV93cmFwT3Bwb3J0dW5pdHlMaXN0LmFwcGVuZCgmdHJhaWxp
bmdSdW4uaW5saW5lSXRlbSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHsgcmVzdWx0Lmlz
RW5kT2ZMaW5lLCB7IGNhbmRpZGF0ZVJ1bnMuc2l6ZSgpLCBmYWxzZSB9IH07CkBAIC04MjYsNyAr
ODU3LDcgQEAgc2l6ZV90IExpbmVCdWlsZGVyOjpyZWJ1aWxkTGluZShjb25zdCBJbmxpbmVJdGVt
UmFuZ2UmIGxheW91dFJhbmdlLCBjb25zdCBJbmxpbmUKICAgICBBU1NFUlQoIW1fd3JhcE9wcG9y
dHVuaXR5TGlzdC5pc0VtcHR5KCkpOwogICAgIC8vIFdlIG1pZ2h0IGFscmVhZHkgaGF2ZSBhZGRl
ZCBmbG9hdHMuIFRoZXkgc2hyaW5rIHRoZSBhdmFpbGFibGUgaG9yaXpvbnRhbCBzcGFjZSBmb3Ig
dGhlIGxpbmUuCiAgICAgLy8gTGV0J3MganVzdCByZXVzZSB3aGF0IHRoZSBsaW5lIGhhcyBhdCB0
aGlzIHBvaW50LgotICAgIG1fbGluZS5pbml0aWFsaXplKCk7CisgICAgbV9saW5lLmluaXRpYWxp
emUobV9saW5lU3Bhbm5pbmdJbmxpbmVCb3hlcyk7CiAgICAgYXV0byBjdXJyZW50SXRlbUluZGV4
ID0gbGF5b3V0UmFuZ2Uuc3RhcnQ7CiAgICAgaWYgKG1fcGFydGlhbExlYWRpbmdUZXh0SXRlbSkg
ewogICAgICAgICBtX2xpbmUuYXBwZW5kKCptX3BhcnRpYWxMZWFkaW5nVGV4dEl0ZW0sIG1fcGFy
dGlhbExlYWRpbmdUZXh0SXRlbS0+c3R5bGUoKSwgaW5saW5lSXRlbVdpZHRoKCptX3BhcnRpYWxM
ZWFkaW5nVGV4dEl0ZW0sIHsgfSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVy
LmgKaW5kZXggMTdkZDc0MjgyMDM0NThmMmM3ZWE5NTEwNmRiODc0ODYwOGU0ZTAxYy4uN2NmMDll
YmZkMzcyOWVjOTRiMmY3MzQyNjgzYWJlMjc1MmZmMjQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVMaW5lQnVpbGRlci5oCkBAIC0xMzEsNiArMTMxLDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6
Om9wdGlvbmFsPElubGluZVRleHRJdGVtPiBtX3BhcnRpYWxMZWFkaW5nVGV4dEl0ZW07CiAgICAg
c3RkOjpvcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiBtX292ZXJmbG93aW5nTG9naWNhbFdpZHRo
OwogICAgIFZlY3Rvcjxjb25zdCBJbmxpbmVJdGVtKj4gbV93cmFwT3Bwb3J0dW5pdHlMaXN0Owor
ICAgIFZlY3RvcjxJbmxpbmVJdGVtPiBtX2xpbmVTcGFubmluZ0lubGluZUJveGVzOwogICAgIHVu
c2lnbmVkIG1fc3VjY2Vzc2l2ZUh5cGhlbmF0ZWRMaW5lQ291bnQgeyAwIH07CiAgICAgYm9vbCBt
X2NvbnRlbnRJc0NvbnN0cmFpbmVkQnlGbG9hdCB7IGZhbHNlIH07CiB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>