<?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>218587</bug_id>
          
          <creation_ts>2020-11-04 14:35:24 -0800</creation_ts>
          <short_desc>Apply JITCage to CSSJIT</short_desc>
          <delta_ts>2020-11-05 00:22:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1704608</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-04 14:35:24 -0800</bug_when>
    <thetext>Apply JITCage to CSSJIT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704610</commentid>
    <comment_count>1</comment_count>
      <attachid>413207</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-04 14:37:36 -0800</bug_when>
    <thetext>Created attachment 413207
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704611</commentid>
    <comment_count>2</comment_count>
      <attachid>413208</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-04 14:40:30 -0800</bug_when>
    <thetext>Created attachment 413208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704612</commentid>
    <comment_count>3</comment_count>
      <attachid>413209</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-04 14:45:44 -0800</bug_when>
    <thetext>Created attachment 413209
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704617</commentid>
    <comment_count>4</comment_count>
      <attachid>413212</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-04 14:53:01 -0800</bug_when>
    <thetext>Created attachment 413212
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704620</commentid>
    <comment_count>5</comment_count>
      <attachid>413213</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-04 14:57:03 -0800</bug_when>
    <thetext>Created attachment 413213
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704628</commentid>
    <comment_count>6</comment_count>
      <attachid>413213</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-11-04 15:12:41 -0800</bug_when>
    <thetext>Comment on attachment 413213
Patch

r=me if EWS bots are happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704631</commentid>
    <comment_count>7</comment_count>
      <attachid>413216</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-04 15:13:34 -0800</bug_when>
    <thetext>Created attachment 413216
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704723</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-04 21:17:20 -0800</bug_when>
    <thetext>Committed r269415: &lt;https://trac.webkit.org/changeset/269415&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413216.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704724</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-04 21:18:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/71064154&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704756</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-05 00:12:17 -0800</bug_when>
    <thetext>Committed r269417: &lt;https://trac.webkit.org/changeset/269417&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704758</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-05 00:22:01 -0800</bug_when>
    <thetext>Committed r269418: &lt;https://trac.webkit.org/changeset/269418&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413207</attachid>
            <date>2020-11-04 14:37:36 -0800</date>
            <delta_ts>2020-11-04 14:52:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218587-20201104143735.patch</filename>
            <type>text/plain</type>
            <size>33950</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5Mzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YWViYzQ3Y2I4ZDRlNTQyM2FhMjMyN2RjN2ZjMDI5YWZiMzEzODgxLi5lMGRkYTk2ZTkzZDVmNDU1
YjNmODhkMDJkNjgzMThmOGZlODdiNGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMC0xMS0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEFwcGx5IEpJVENhZ2UgdG8gQ1NTSklUCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg1ODcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6CisgICAg
ICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogcnVudGltZS9K
U0NQdHJUYWcuaDoKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQuY3BwOgorCiAyMDIwLTExLTA0ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
Zml4IEFSTTY0IG9ubHkgY3Jhc2ggKEFSTTY0RSB3b3JrcykgYWZ0ZXIgSklUIENhZ2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAxNmQxNGM4ZTkwZTBmODYxNWM2YTA1Njc2NjQwOTE1NGViNzlhMzVhLi5kNDRiNWY3
ZmRhZGM4OTNjODhlNGQxNzAwYTFjOWYyMTgyZGI2OWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDEgQEAKKzIwMjAtMTEtMDQgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBcHBseSBKSVRDYWdlIHRvIENTU0pJVAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NTg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgQ1NTSklUIGRvZXMgbm90IGNhbGwgSklUIGZ1
bmN0aW9uIHJlY3Vyc2l2ZWx5LCBzdXBwb3J0aW5nIGl0IGluIEpJVENhZ2UgaXMgc2ltcGxlOiB3
ZSBjYW4gaGF2ZSB0cmFtcG9saW5lIGluIEMKKyAgICAgICAgYW5kIGp1bXAgdG8gSklUIGNvZGUs
IGFuZCBpbnN0ZWFkIG9mIGRvaW5nICJyZXQiLCByZXR1cm5pbmcgYmFjayB0byBDIGNvZGUgdmlh
IGp1bXAuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzc2ppdC9DU1NQdHJUYWcu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3NqaXQvQ29tcGlsZWRTZWxlY3Rvci5oOgorICAgICAg
ICAqIGNzc2ppdC9GdW5jdGlvbkNhbGwuaDoKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21w
aWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNv
ZGVHZW5lcmF0b3I6OmNvbXBpbGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxl
cjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZVJldHVybik6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlU2Vs
ZWN0b3JDaGVja2VyKToKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNpbXBsZVNlbGVj
dG9yQ2hlY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNl
bGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9y
Q29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTZWxl
Y3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVj
dG9yQ29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVj
dG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0
aW9uV2l0aENoZWNraW5nQ29udGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxl
Y3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hl
Y2tpbmdDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vU2VsZWN0b3JRdWVyeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGlsZWRTaW1w
bGVTZWxlY3RvckNoZWNrZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JEYXRh
TGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGls
ZWRTaW5nbGVNdWx0aVNlbGVjdG9yRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxl
Y3RvckRhdGFMaXN0OjpleGVjdXRlIGNvbnN0KToKKyAgICAgICAgKiBkb20vU2VsZWN0b3JRdWVy
eS5oOgorICAgICAgICAqIHN0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMpOgorCiAy
MDIwLTExLTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBzb21lIG1pc3NpbmcgaGVhZGVyIGluY2x1ZGVzIGluIG1lZGlhIHNvdXJjZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKaW5kZXggZDhlOTQ0MzM2N2Y1
MGM4NDljNjgxMDE3MDY5ODA1MTg2MGYxMzY3Mi4uN2M2ZWVlN2JlM2MwMjExNzdmZTI5MTAyNTlk
YzQ4NmYxYTE2MzBhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50RGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5j
cHAKQEAgLTU5LDYgKzU5LDEwIEBAIGV4dGVybiAiQyIgdm9pZCBleGNlcHRpb25IYW5kbGVyVHJh
bXBvbGluZSh2b2lkKTsKIGV4dGVybiAiQyIgdm9pZCByZXR1cm5Gcm9tTExJbnRUcmFtcG9saW5l
KHZvaWQpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkgJiYgQ1BVKEFS
TTY0KQorSlNDX0FOTk9UQVRFX0pJVF9PUEVSQVRJT04oX0pJVFRhcmdldF92bUVudHJ5VG9DU1NK
SVRBZnRlciwgdm1FbnRyeVRvQ1NTSklUQWZ0ZXIpOworI2VuZGlmCisKIHZvaWQgaW5pdGlhbGl6
ZSgpCiB7CiAjaWYgRU5BQkxFKENfTE9PUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCAxNTVkNWU2NDU5NzZkYmRkYWI1
Y2JiMDM2MzY4NTliZTM2NWVjYWJhLi5mMzk5OGZhYjlmYTg0YjFmNzA2ZGQ1ODBmOGQ1NmU3ZmYz
MGM1NDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIuYXNtCkBAIC0yNjAsNiArMjYwLDcgQEAgY29uc3QgSlNFbnRyeVNsb3dQYXRo
UHRyVGFnID0gY29uc3RleHByIEpTRW50cnlTbG93UGF0aFB0clRhZwogY29uc3QgTmF0aXZlVG9K
SVRHYXRlUHRyVGFnID0gY29uc3RleHByIE5hdGl2ZVRvSklUR2F0ZVB0clRhZwogY29uc3QgRXhj
ZXB0aW9uSGFuZGxlclB0clRhZyA9IGNvbnN0ZXhwciBFeGNlcHRpb25IYW5kbGVyUHRyVGFnCiBj
b25zdCBZYXJyRW50cnlQdHJUYWcgPSBjb25zdGV4cHIgWWFyckVudHJ5UHRyVGFnCitjb25zdCBD
U1NTZWxlY3RvclB0clRhZyA9IGNvbnN0ZXhwciBDU1NTZWxlY3RvclB0clRhZwogY29uc3QgTm9Q
dHJUYWcgPSBjb25zdGV4cHIgTm9QdHJUYWcKICAKIApAQCAtMTYxMCw2ICsxNjExLDE2IEBAIGVu
ZAogICAgIGZ1bmN0aW9uRXBpbG9ndWUoKQogICAgIHJldAogCitlbWl0ICIuZ2xvYmwgX3ZtRW50
cnlUb0NTU0pJVCIKK2VtaXQgIl92bUVudHJ5VG9DU1NKSVQ6IgorICAgIGZ1bmN0aW9uUHJvbG9n
dWUoKQoraWYgQVJNNjQgb3IgQVJNNjRFCisgICAgam1wIHQzLCBDU1NTZWxlY3RvclB0clRhZwor
ICAgIGVtaXQgIi5nbG9ibCBfdm1FbnRyeVRvQ1NTSklUQWZ0ZXIiCisgICAgZW1pdCAiX3ZtRW50
cnlUb0NTU0pJVEFmdGVyOiIKK2VuZAorICAgIGZ1bmN0aW9uRXBpbG9ndWUoKQorICAgIHJldAog
CiBpZiBub3QgKENfTE9PUCBvciBDX0xPT1BfV0lOKQogICAgICMgdm9pZCBzYW5pdGl6ZVN0YWNr
Rm9yVk1JbXBsKFZNKiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ1B0clRhZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDUHRyVGFn
LmgKaW5kZXggNDY0NWIwNWM5NzM2NTE3ZTdhYTUwNDliZTg3NmVlNDhiMmU4MjE4Zi4uMTZhMWI0
ZGUzYTc4YjFmZjdkMWFjMmQ3ZTA4OGQ3MGFiYmZjMGIwZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDUHRyVGFnLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDUHRyVGFnLmgKQEAgLTYwLDYgKzYwLDcgQEAgdXNpbmcgUHRyVGFnID0g
V1RGOjpQdHJUYWc7CiAgICAgLyogQ2FsbGVlOkpJVCBDYWxsZXI6TmF0aXZlICovIFwKICAgICB2
KE5hdGl2ZVRvSklUR2F0ZVB0clRhZywgUHRyVGFnQ2FsbGVlVHlwZTo6SklULCBQdHJUYWdDYWxs
ZXJUeXBlOjpOYXRpdmUpIFwKICAgICB2KFlhcnJFbnRyeVB0clRhZywgUHRyVGFnQ2FsbGVlVHlw
ZTo6SklULCBQdHJUYWdDYWxsZXJUeXBlOjpOYXRpdmUpIFwKKyAgICB2KENTU1NlbGVjdG9yUHRy
VGFnLCBQdHJUYWdDYWxsZWVUeXBlOjpKSVQsIFB0clRhZ0NhbGxlclR5cGU6Ok5hdGl2ZSkgXAog
ICAgIC8qIENhbGxlZTpOYXRpdmUgQ2FsbGVyOkpJVCAqLyBcCiAgICAgdihIb3N0RnVuY3Rpb25Q
dHJUYWcsIFB0clRhZ0NhbGxlZVR5cGU6Ok5hdGl2ZSwgUHRyVGFnQ2FsbGVyVHlwZTo6SklUKSBc
CiAgICAgdihPcGVyYXRpb25QdHJUYWcsIFB0clRhZ0NhbGxlZVR5cGU6Ok5hdGl2ZSwgUHRyVGFn
Q2FsbGVyVHlwZTo6SklUKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFy
ci9ZYXJySklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCmlu
ZGV4IDk0ZDMwMmFlYWZkNTE2YTViM2ZjN2Y0YmY1Zjc5NWEzZjU2Y2E3NjcuLjQ5MGMwMTUxZjRh
NmU4N2Y3ODE0YTgxYWIyZTc4YzkwYWMzOTM3ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJKSVQuY3BwCkBAIC0zODE2LDggKzM4MTYsNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZp
bmFsIDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICNlbmRp
ZgogCiAjaWYgQ1BVKEFSTTY0KQotICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIocmV0YWdDb2Rl
UHRyPHZvaWQqLCBDRnVuY3Rpb25QdHJUYWcsIE9wZXJhdGlvblB0clRhZz4oJnZtRW50cnlUb1lh
cnJKSVRBZnRlcikpLCByZWdUMCk7Ci0gICAgICAgIGZhckp1bXAocmVnVDAsIE9wZXJhdGlvblB0
clRhZyk7CisgICAgICAgIGZhckp1bXAoVHJ1c3RlZEltbVB0cihyZXRhZ0NvZGVQdHI8dm9pZCos
IENGdW5jdGlvblB0clRhZywgT3BlcmF0aW9uUHRyVGFnPigmdm1FbnRyeVRvWWFyckpJVEFmdGVy
KSksIE9wZXJhdGlvblB0clRhZyk7CiAjZWxzZQogICAgICAgICByZXQoKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGIwNjJlOTA3YjVhYzYxZmE0NjIzNjk0MGM0NmE1NzI4YjRiOGI0MDMuLmFiMGQ2NzRiOTI3Y2Q4
YWRmZjk5N2ViOWY0OTc1OGY5Y2MwYWY0YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUzODYsNyArNTM4Niw2IEBACiAJCUZE
RjZCQUY5MTM0QTRDOTgwMDgyMjkyMCAvKiBKU09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRGNkJBRjcx
MzRBNEM5ODAwODIyOTIwIC8qIEpTT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggKi87IH07
CiAJCUZERjdFOUM0MTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZERjdFOUMyMTNB
QzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suaCAqLzsgfTsKIAkJRkUwRDg0
RTkxMDQ4NDM0ODAwMUExNzlFIC8qIFdlYkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTBEODRFODEwNDg0MzQ4MDAxQTE3OUUgLyogV2ViRXZl
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlG
RTI3MUY2NzIwODJEQkU1MDBBOTUyRDQgLyogQ1NTUHRyVGFnLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTI3MUY2NDIwODJEQkJFMDBBOTUyRDQgLyog
Q1NTUHRyVGFnLmggKi87IH07CiAJCUZFMzZGRDE1MTZDNzgyNjUwMEY4ODdDMSAvKiBDaGFuZ2VW
ZXJzaW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkUzNkZEMTExNkM3ODI2NDAwRjg4N0MxIC8qIENoYW5nZVZlcnNpb25EYXRhLmggKi87IH07
CiAJCUZFMzZGRDE3MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGlu
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUzNkZE
MTMxNkM3ODI2NDAwRjg4N0MxIC8qIFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmggKi87IH07
CiAJCUZFMzZGRDE4MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTM2RkQxNDE2Qzc4
MjY0MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rpb25TdGF0ZS5oICovOyB9OwpAQCAtMTY4MDksNyAr
MTY4MDgsNiBAQAogCQlGREY3RTlDMjEzQUMyMURCMDBBNTFFQUMgLyogSlNBdWRpb0J1ZmZlckNh
bGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXVkaW9CdWZmZXJD
YWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTBEODRFODEwNDg0MzQ4
MDAxQTE3OUUgLyogV2ViRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUwRDg0RUExMDQ4NDM2
RTAwMUExNzlFIC8qIFdlYkV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUZFMjcx
RjY0MjA4MkRCQkUwMEE5NTJENCAvKiBDU1NQdHJUYWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ1NTUHRyVGFnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZF
MzZGRDExMTZDNzgyNjQwMEY4ODdDMSAvKiBDaGFuZ2VWZXJzaW9uRGF0YS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDaGFuZ2VWZXJzaW9uRGF0YS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGRTM2RkQxMjE2Qzc4MjY0MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rp
b25TdGF0ZU1hY2hpbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGRTM2RkQxMzE2Qzc4MjY0MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hp
bmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1FMVHJhbnNhY3Rpb25TdGF0
ZU1hY2hpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4Njc0LDcgKzE4Njcy
LDYgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJRTQ0NTEwNzcy
MDJDN0UwMTAwNjU3RDMzIC8qIENvbXBpbGVkU2VsZWN0b3IuaCAqLywKLQkJCQlGRTI3MUY2NDIw
ODJEQkJFMDBBOTUyRDQgLyogQ1NTUHRyVGFnLmggKi8sCiAJCQkJMjZCOTk5OTIxODAzQjlEOTAw
RDAxMTIxIC8qIEZ1bmN0aW9uQ2FsbC5oICovLAogCQkJCTI2Qjk5OThFMTgwM0FFNzIwMEQwMTEy
MSAvKiBSZWdpc3RlckFsbG9jYXRvci5oICovLAogCQkJCTI2Qjk5OTk0MTgwNEQ1NDIwMEQwMTEy
MSAvKiBTZWxlY3RvckNvbXBpbGVyLmNwcCAqLywKQEAgLTMxMzQwLDcgKzMxMzM3LDYgQEAKIAkJ
CQk5NDZEMzc0NjFENkQwMUQ0MDA3NzA4NEYgLyogQ1NTUHJvcGVydHlQYXJzZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk0OUM3NzA1MUQ2RTM5RUEwMEMwREU0RiAvKiBDU1NQcm9wZXJ0eVBhcnNl
ckhlbHBlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgyRTNEOERGMTIyRUEwRDEwMDNBRTVCQyAv
KiBDU1NQcm9wZXJ0eVNvdXJjZURhdGEuaCBpbiBIZWFkZXJzICovLAotCQkJCUZFMjcxRjY3MjA4
MkRCRTUwMEE5NTJENCAvKiBDU1NQdHJUYWcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUExMkUw
MERDMDQxNDgwMEM5QUZBRCAvKiBDU1NSZWZsZWN0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTRCREE0MDAxMjE1MUI2RjUwMEZENjYwNCAvKiBDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHku
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDN0Q4RkY0MUJEMUE0NzkwMEZGRTU0MCAvKiBDU1NSZXZl
cnRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Nq
aXQvQ1NTUHRyVGFnLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvQ1NTUHRyVGFnLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiMjUzY2Q2MzkxYzAzYzBmZTE5OThiNzYyNDQ1ODI1
ZmY1NTljNjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3Nzaml0L0NTU1B0clRhZy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTAg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCi0KLSNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU0NQdHJUYWcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0jZGVm
aW5lIEZPUl9FQUNIX0NTU19QVFJUQUcodikgXAotICAgIHYoQ1NTU2VsZWN0b3JQdHJUYWcpIFwK
LQotI2lmIENPTVBJTEVSKE1TVkMpCi0jcHJhZ21hIHdhcm5pbmcocHVzaCkKLSNwcmFnbWEgd2Fy
bmluZyhkaXNhYmxlOjQzMDcpCi0jZW5kaWYKLQotRk9SX0VBQ0hfQ1NTX1BUUlRBRyhXVEZfREVD
TEFSRV9QVFJUQUcpCi0KLSNpZiBDT01QSUxFUihNU1ZDKQotI3ByYWdtYSB3YXJuaW5nKHBvcCkK
LSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQ1NT
X1NFTEVDVE9SX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9Db21waWxl
ZFNlbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvQ29tcGlsZWRTZWxlY3Rvci5oCmlu
ZGV4IDVlNjE3MTlhOTc4ZmZmMDkzOTNkYjEwMDkxNDMzOTA3YmFmMTNlOTcuLjc2ZGJjZWFkNDEx
MmJhYzhmOGY5NDU3MWMwYWI3YTU4NDI5NmU0YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzc2ppdC9Db21waWxlZFNlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L0Nv
bXBpbGVkU2VsZWN0b3IuaApAQCAtMjcsOCArMjcsOCBAQAogCiAjaWYgRU5BQkxFKENTU19TRUxF
Q1RPUl9KSVQpCiAKLSNpbmNsdWRlICJDU1NQdHJUYWcuaCIKICNpbmNsdWRlICJDU1NTZWxlY3Rv
ci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ1B0clRhZy5oPgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oPgogCiAjZGVmaW5lIENTU19TRUxF
Q1RPUl9KSVRfUFJPRklMSU5HIDAKQEAgLTQ1LDcgKzQ1LDcgQEAgZW51bSBjbGFzcyBTZWxlY3Rv
ckNvbXBpbGF0aW9uU3RhdHVzIDogdWludDhfdCB7CiBzdHJ1Y3QgQ29tcGlsZWRTZWxlY3RvciB7
CiAgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOwogICAgIFNlbGVjdG9yQ29tcGls
YXRpb25TdGF0dXMgc3RhdHVzIHsgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6Tm90Q29tcGls
ZWQgfTsKLSAgICBKU0M6Ok1hY3JvQXNzZW1ibGVyQ29kZVJlZjxDU1NTZWxlY3RvclB0clRhZz4g
Y29kZVJlZjsKKyAgICBKU0M6Ok1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKU0M6OkNTU1NlbGVjdG9y
UHRyVGFnPiBjb2RlUmVmOwogCiAjaWYgZGVmaW5lZChDU1NfU0VMRUNUT1JfSklUX1BST0ZJTElO
RykgJiYgQ1NTX1NFTEVDVE9SX0pJVF9QUk9GSUxJTkcKICAgICB1bnNpZ25lZCB1c2VDb3VudCB7
IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9GdW5jdGlvbkNhbGwuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9GdW5jdGlvbkNhbGwuaAppbmRleCA3YTdkM2E2NjhkNGVl
Yzg2ZWY4ZGRkZTg0YWY3MmJjYjkzZjJlMTJhLi4yMjlmNjc5OTc1ZGUzYjExZWQ2NWE3YzNhOWM1
Y2U5NjNjODgyMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvRnVuY3Rpb25D
YWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L0Z1bmN0aW9uQ2FsbC5oCkBAIC0yNywx
MCArMjcsMTAgQEAKIAogI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQogCi0jaW5jbHVkZSAi
Q1NTUHRyVGFnLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJBbGxvY2F0b3IuaCIKICNpbmNsdWRlICJT
dGFja0FsbG9jYXRvci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0dQUkluZm8uaD4KKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NQdHJUYWcuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9NYWNyb0Fzc2VtYmxlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKaW5kZXggMmExZWE0ZmI1MWIzMTRhYTU4
ZGIzOWQ1YzQxNTg4NjIxZjFmMjNjNi4uZmRjODU0ZWFhZjZkOWZjMjk3MjljM2YzNTJjODMzNjgy
ZjM2MzYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGls
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcApA
QCAtMzE3LDcgKzMxNyw3IEBAIHN0cnVjdCBCYWNrdHJhY2tpbmdMZXZlbCB7CiBjbGFzcyBTZWxl
Y3RvckNvZGVHZW5lcmF0b3IgewogcHVibGljOgogICAgIFNlbGVjdG9yQ29kZUdlbmVyYXRvcihj
b25zdCBDU1NTZWxlY3RvciosIFNlbGVjdG9yQ29udGV4dCk7Ci0gICAgU2VsZWN0b3JDb21waWxh
dGlvblN0YXR1cyBjb21waWxlKEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPENTU1NlbGVjdG9y
UHRyVGFnPiYpOworICAgIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgY29tcGlsZShKU0M6Ok1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxKU0M6OkNTU1NlbGVjdG9yUHRyVGFnPiYpOwogCiBwcml2YXRl
OgogICAgIHN0YXRpYyBjb25zdCBBc3NlbWJsZXI6OlJlZ2lzdGVySUQgcmV0dXJuUmVnaXN0ZXI7
CkBAIC0zMjUsNiArMzI1LDggQEAgY2xhc3MgU2VsZWN0b3JDb2RlR2VuZXJhdG9yIHsKICAgICBz
dGF0aWMgY29uc3QgQXNzZW1ibGVyOjpSZWdpc3RlcklEIGNoZWNraW5nQ29udGV4dFJlZ2lzdGVy
OwogICAgIHN0YXRpYyBjb25zdCBBc3NlbWJsZXI6OlJlZ2lzdGVySUQgY2FsbEZyYW1lUmVnaXN0
ZXI7CiAKKyAgICB2b2lkIGdlbmVyYXRlUmV0dXJuKCk7CisKICAgICB2b2lkIGdlbmVyYXRlU2Vs
ZWN0b3JDaGVja2VyKCk7CiAgICAgdm9pZCBnZW5lcmF0ZVNlbGVjdG9yQ2hlY2tlckV4Y2x1ZGlu
Z1BzZXVkb0VsZW1lbnRzKEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmVDYXNlcywgY29uc3Qg
U2VsZWN0b3JGcmFnbWVudExpc3QmKTsKICAgICB2b2lkIGdlbmVyYXRlRWxlbWVudE1hdGNoZXNT
ZWxlY3Rvckxpc3QoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNhc2VzLCBBc3NlbWJsZXI6
OlJlZ2lzdGVySUQgZWxlbWVudFRvTWF0Y2gsIGNvbnN0IFNlbGVjdG9yTGlzdCYpOwpAQCAtMTQz
Nyw3ICsxNDM5LDcgQEAgdm9pZCBjb21wdXRlQmFja3RyYWNraW5nTWVtb3J5UmVxdWlyZW1lbnRz
KFNlbGVjdG9yRnJhZ21lbnRMaXN0JiBzZWxlY3RvckZyYWdtZW4KICAgICB9CiB9CiAKLWlubGlu
ZSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Y29tcGls
ZShKU0M6Ok1hY3JvQXNzZW1ibGVyQ29kZVJlZjxDU1NTZWxlY3RvclB0clRhZz4mIGNvZGVSZWYp
CitpbmxpbmUgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBTZWxlY3RvckNvZGVHZW5lcmF0b3I6
OmNvbXBpbGUoSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SlNDOjpDU1NTZWxlY3RvclB0clRh
Zz4mIGNvZGVSZWYpCiB7CiAgICAgc3dpdGNoIChtX2Z1bmN0aW9uVHlwZSkgewogICAgIGNhc2Ug
RnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXI6CkBAIC0xNDQ1LDkgKzE0NDcsOCBA
QCBpbmxpbmUgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBTZWxlY3RvckNvZGVHZW5lcmF0b3I6
OmNvbXBpbGUoSlNDOjpNYWNyb0Fzc2VtYgogICAgICAgICBnZW5lcmF0ZVNlbGVjdG9yQ2hlY2tl
cigpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZ1bmN0aW9uVHlwZTo6Q2Fubm90TWF0Y2hB
bnl0aGluZzoKLSAgICAgICAgbV9hc3NlbWJsZXIudGFnUmV0dXJuQWRkcmVzcygpOwogICAgICAg
ICBtX2Fzc2VtYmxlci5tb3ZlKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDApLCByZXR1cm5SZWdp
c3Rlcik7Ci0gICAgICAgIG1fYXNzZW1ibGVyLnJldCgpOworICAgICAgICBnZW5lcmF0ZVJldHVy
bigpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZ1bmN0aW9uVHlwZTo6Q2Fubm90Q29tcGls
ZToKICAgICAgICAgcmV0dXJuIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OkNhbm5vdENvbXBp
bGU7CkBAIC0xNDY2LDkgKzE0NjcsOSBAQCBpbmxpbmUgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1
cyBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmNvbXBpbGUoSlNDOjpNYWNyb0Fzc2VtYgogICAgICAg
ICBsaW5rQnVmZmVyLmxpbmsobV9mdW5jdGlvbkNhbGxzW2ldLmZpcnN0LCBtX2Z1bmN0aW9uQ2Fs
bHNbaV0uc2Vjb25kKTsKIAogI2lmIENTU19TRUxFQ1RPUl9KSVRfREVCVUdHSU5HCi0gICAgY29k
ZVJlZiA9IGxpbmtCdWZmZXIuZmluYWxpemVDb2RlV2l0aERpc2Fzc2VtYmx5KENTU1NlbGVjdG9y
UHRyVGFnLCAiQ1NTIFNlbGVjdG9yIEpJVCBmb3IgXCIlc1wiIiwgbV9vcmlnaW5hbFNlbGVjdG9y
LT5zZWxlY3RvclRleHQoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBjb2RlUmVmID0gbGlua0J1ZmZl
ci5maW5hbGl6ZUNvZGVXaXRoRGlzYXNzZW1ibHkoSlNDOjpDU1NTZWxlY3RvclB0clRhZywgIkNT
UyBTZWxlY3RvciBKSVQgZm9yIFwiJXNcIiIsIG1fb3JpZ2luYWxTZWxlY3Rvci0+c2VsZWN0b3JU
ZXh0KCkudXRmOCgpLmRhdGEoKSk7CiAjZWxzZQotICAgIGNvZGVSZWYgPSBGSU5BTElaRV9DT0RF
KGxpbmtCdWZmZXIsIENTU1NlbGVjdG9yUHRyVGFnLCAiQ1NTIFNlbGVjdG9yIEpJVCIpOworICAg
IGNvZGVSZWYgPSBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsIEpTQzo6Q1NTU2VsZWN0b3JQdHJU
YWcsICJDU1MgU2VsZWN0b3IgSklUIik7CiAjZW5kaWYKIAogICAgIGlmIChtX2Z1bmN0aW9uVHlw
ZSA9PSBGdW5jdGlvblR5cGU6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlciB8fCBtX2Z1bmN0aW9uVHlw
ZSA9PSBGdW5jdGlvblR5cGU6OkNhbm5vdE1hdGNoQW55dGhpbmcpCkBAIC0xOTQ2LDYgKzE5NDcs
MTUgQEAgaW5saW5lIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUVwaWxvZ3Vl
KFN0YWNrQWxsb2NhdG9yJiBzdGFja0FsbG9jYXQKICNlbmRpZgogfQogCitpbmxpbmUgdm9pZCBT
ZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlUmV0dXJuKCkKK3sKKyNpZiBDUFUoQVJNNjQp
CisgICAgbV9hc3NlbWJsZXIuZmFySnVtcChBc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocmV0YWdD
b2RlUHRyPHZvaWQqLCBDRnVuY3Rpb25QdHJUYWcsIEpTQzo6T3BlcmF0aW9uUHRyVGFnPigmdm1F
bnRyeVRvQ1NTSklUQWZ0ZXIpKSwgSlNDOjpPcGVyYXRpb25QdHJUYWcpOworI2Vsc2UKKyAgICBt
X2Fzc2VtYmxlci5yZXQoKTsKKyNlbmRpZgorfQorCiBzdGF0aWMgYm9vbCBpc0FkamFjZW50UmVs
YXRpb24oRnJhZ21lbnRSZWxhdGlvbiByZWxhdGlvbikKIHsKICAgICByZXR1cm4gcmVsYXRpb24g
PT0gRnJhZ21lbnRSZWxhdGlvbjo6RGlyZWN0QWRqYWNlbnQgfHwgcmVsYXRpb24gPT0gRnJhZ21l
bnRSZWxhdGlvbjo6SW5kaXJlY3RBZGphY2VudDsKQEAgLTE5NTgsNyArMTk2OCw2IEBAIHN0YXRp
YyBib29sIHNob3VsZE1hcmtTdHlsZUlzQWZmZWN0ZWRCeVByZXZpb3VzU2libGluZyhjb25zdCBT
ZWxlY3RvckZyYWdtZW50JiBmCiAKIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0
ZVNlbGVjdG9yQ2hlY2tlcigpCiB7Ci0gICAgbV9hc3NlbWJsZXIudGFnUmV0dXJuQWRkcmVzcygp
OwogICAgIHB1c2hNYWNyb0Fzc2VtYmxlclJlZ2lzdGVycygpOwogICAgIFN0YWNrQWxsb2NhdG9y
IGVhcmx5RmFpbHVyZVN0YWNrID0gbV9zdGFja0FsbG9jYXRvcjsKIApAQCAtMTk4OSw3ICsxOTk4
LDcgQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlU2VsZWN0b3JDaGVja2Vy
KCkKICAgICBpZiAobV9zZWxlY3RvckZyYWdtZW50cy5zdGFja1JlcXVpcmVtZW50cyA+IG1heGlt
dW1CYWNrdHJhY2tpbmdBbGxvY2F0aW9ucykgewogICAgICAgICBtX2Fzc2VtYmxlci5tb3ZlKEFz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKDApLCByZXR1cm5SZWdpc3Rlcik7CiAgICAgICAgIHBvcE1h
Y3JvQXNzZW1ibGVyUmVnaXN0ZXJzKG1fc3RhY2tBbGxvY2F0b3IpOwotICAgICAgICBtX2Fzc2Vt
Ymxlci5yZXQoKTsKKyAgICAgICAgZ2VuZXJhdGVSZXR1cm4oKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtMjA1NCw3ICsyMDYzLDcgQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6
OmdlbmVyYXRlU2VsZWN0b3JDaGVja2VyKCkKICAgICAgICAgICAgIC8vIFN1Y2Nlc3MuCiAgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5tb3ZlKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDEpLCByZXR1
cm5SZWdpc3Rlcik7CiAgICAgICAgICAgICBwb3BNYWNyb0Fzc2VtYmxlclJlZ2lzdGVycyhzdWNj
ZXNzU3RhY2spOwotICAgICAgICAgICAgbV9hc3NlbWJsZXIucmV0KCk7CisgICAgICAgICAgICBn
ZW5lcmF0ZVJldHVybigpOwogCiAgICAgICAgICAgICAvLyBGYWlsdXJlLgogICAgICAgICAgICAg
QVNTRVJUX1dJVEhfTUVTU0FHRShmYWlsdXJlT25GdW5jdGlvbkVudHJ5LmVtcHR5KCksICJFYXJs
eSBmYWlsdXJlIG9uIGZ1bmN0aW9uIGVudHJ5IGlzIHVzZWQgZm9yIHBzZXVkbyBlbGVtZW50LiBX
aGVuIGVhcmx5IGZhaWx1cmUgaXMgdXNlZCwgZnVuY3Rpb24gdHlwZSBpcyBTZWxlY3RvckNoZWNr
ZXJXaXRoQ2hlY2tpbmdDb250ZXh0LiIpOwpAQCAtMjA2Miw3ICsyMDcxLDcgQEAgdm9pZCBTZWxl
Y3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlU2VsZWN0b3JDaGVja2VyKCkKICAgICAgICAgICAg
ICAgICBmYWlsdXJlQ2FzZXMubGluaygmbV9hc3NlbWJsZXIpOwogICAgICAgICAgICAgICAgIG1f
YXNzZW1ibGVyLm1vdmUoQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMCksIHJldHVyblJlZ2lzdGVy
KTsKICAgICAgICAgICAgICAgICBwb3BNYWNyb0Fzc2VtYmxlclJlZ2lzdGVycyhmYWlsdXJlU3Rh
Y2spOwotICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnJldCgpOworICAgICAgICAgICAgICAg
IGdlbmVyYXRlUmV0dXJuKCk7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBm
YWlsdXJlU3RhY2sgPSBzdWNjZXNzU3RhY2s7CiAKQEAgLTIwOTEsMTQgKzIxMDAsMTQgQEAgdm9p
ZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlU2VsZWN0b3JDaGVja2VyKCkKICAgICBp
ZiAobmVlZHNFcGlsb2d1ZSkKICAgICAgICAgZ2VuZXJhdGVFcGlsb2d1ZShzdWNjZXNzU3RhY2sp
OwogICAgIHBvcE1hY3JvQXNzZW1ibGVyUmVnaXN0ZXJzKHN1Y2Nlc3NTdGFjayk7Ci0gICAgbV9h
c3NlbWJsZXIucmV0KCk7CisgICAgZ2VuZXJhdGVSZXR1cm4oKTsKIAogICAgIC8vIEVhcmx5IGZh
aWx1cmUgb24gZnVuY3Rpb24gZW50cnkgY2FzZS4KICAgICBpZiAoIWZhaWx1cmVPbkZ1bmN0aW9u
RW50cnkuZW1wdHkoKSkgewogICAgICAgICBmYWlsdXJlT25GdW5jdGlvbkVudHJ5LmxpbmsoJm1f
YXNzZW1ibGVyKTsKICAgICAgICAgbV9hc3NlbWJsZXIubW92ZShBc3NlbWJsZXI6OlRydXN0ZWRJ
bW0zMigwKSwgcmV0dXJuUmVnaXN0ZXIpOwogICAgICAgICBwb3BNYWNyb0Fzc2VtYmxlclJlZ2lz
dGVycyhlYXJseUZhaWx1cmVTdGFjayk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLnJldCgpOworICAg
ICAgICBnZW5lcmF0ZVJldHVybigpOwogICAgIH0gZWxzZQogICAgICAgICBlYXJseUZhaWx1cmVT
dGFjayA9IHN1Y2Nlc3NTdGFjazsKICAgICBtX3N0YWNrQWxsb2NhdG9yLm1lcmdlKFdURk1vdmUo
c3VjY2Vzc1N0YWNrKSwgV1RGTW92ZShlYXJseUZhaWx1cmVTdGFjaykpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmgKaW5kZXggMGZlZGE0YmFiODNjMThjZGEzNDFkNzNl
MmI2Y2NkNmQwMWMxZTZjMS4uYTg2ZTNlNDZkNjZmYjNmNDU4ZjdiYmVhMTU4MGYwMTgzMmYxNjE3
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5oCkBAIC00NSwzNiAr
NDUsNTMgQEAgZW51bSBjbGFzcyBTZWxlY3RvckNvbnRleHQgewogICAgIFF1ZXJ5U2VsZWN0b3IK
IH07CiAKLXR5cGVkZWYgdW5zaWduZWQgKCpSdWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVj
a2VyKShjb25zdCBFbGVtZW50KiwgdW5zaWduZWQqKTsKLXR5cGVkZWYgdW5zaWduZWQgKCpRdWVy
eVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKShjb25zdCBFbGVtZW50Kik7Ci0KLXR5cGVk
ZWYgdW5zaWduZWQgKCpSdWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29u
dGV4dCkoY29uc3QgRWxlbWVudCosIFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0Kiwg
dW5zaWduZWQqKTsKLXR5cGVkZWYgdW5zaWduZWQgKCpRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVj
a2VyV2l0aENoZWNraW5nQ29udGV4dCkoY29uc3QgRWxlbWVudCosIGNvbnN0IFNlbGVjdG9yQ2hl
Y2tlcjo6Q2hlY2tpbmdDb250ZXh0Kik7Ci0KIHZvaWQgY29tcGlsZVNlbGVjdG9yKENvbXBpbGVk
U2VsZWN0b3ImLCBjb25zdCBDU1NTZWxlY3RvciosIFNlbGVjdG9yQ29udGV4dCk7CiAKLWlubGlu
ZSBSdWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyIHJ1bGVDb2xsZWN0b3JTaW1wbGVT
ZWxlY3RvckNoZWNrZXJGdW5jdGlvbihDb21waWxlZFNlbGVjdG9yJiBjb21waWxlZFNlbGVjdG9y
KQorZXh0ZXJuICJDIiB1bnNpZ25lZCB2bUVudHJ5VG9DU1NKSVQodWludHB0cl90LCB1aW50cHRy
X3QsIHVpbnRwdHJfdCwgY29uc3Qgdm9pZCogY29kZVB0cik7CitleHRlcm4gIkMiIHZvaWQgdm1F
bnRyeVRvQ1NTSklUQWZ0ZXIodm9pZCk7CisKK2lubGluZSB1bnNpZ25lZCBydWxlQ29sbGVjdG9y
U2ltcGxlU2VsZWN0b3JDaGVja2VyKENvbXBpbGVkU2VsZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3Is
IGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIHVuc2lnbmVkKiB2YWx1ZSkKIHsKICAgICBBU1NFUlQo
Y29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2lt
cGxlU2VsZWN0b3JDaGVja2VyKTsKLSAgICByZXR1cm4gV1RGOjp1bnRhZ0NGdW5jdGlvblB0cjxS
dWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyLCBDU1NTZWxlY3RvclB0clRhZz4oY29t
cGlsZWRTZWxlY3Rvci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyNpZiBD
UFUoQVJNNjQpCisgICAgcmV0dXJuIHZtRW50cnlUb0NTU0pJVChiaXR3aXNlX2Nhc3Q8dWludHB0
cl90PihlbGVtZW50KSwgYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4odmFsdWUpLCAwLCBjb21waWxl
ZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpOworI2Vsc2UKKyAg
ICB0eXBlZGVmIHVuc2lnbmVkICgqUnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciko
Y29uc3QgRWxlbWVudCosIHVuc2lnbmVkKik7CisgICAgcmV0dXJuIFdURjo6dW50YWdDRnVuY3Rp
b25QdHI8UnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciwgSlNDOjpDU1NTZWxlY3Rv
clB0clRhZz4oY29tcGlsZWRTZWxlY3Rvci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVz
cygpKShlbGVtZW50LCB2YWx1ZSk7CisjZW5kaWYKIH0KIAotaW5saW5lIFF1ZXJ5U2VsZWN0b3JT
aW1wbGVTZWxlY3RvckNoZWNrZXIgcXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1
bmN0aW9uKENvbXBpbGVkU2VsZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3IpCitpbmxpbmUgdW5zaWdu
ZWQgcXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlcihDb21waWxlZFNlbGVjdG9yJiBj
b21waWxlZFNlbGVjdG9yLCBjb25zdCBFbGVtZW50KiBlbGVtZW50KQogewogICAgIEFTU0VSVChj
b21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1w
bGVTZWxlY3RvckNoZWNrZXIpOwotICAgIHJldHVybiBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFF1
ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIsIENTU1NlbGVjdG9yUHRyVGFnPihjb21w
aWxlZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpOworI2lmIENQ
VShBUk02NCkKKyAgICByZXR1cm4gdm1FbnRyeVRvQ1NTSklUKGJpdHdpc2VfY2FzdDx1aW50cHRy
X3Q+KGVsZW1lbnQpLCAwLCAwLCBjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgpLmV4ZWN1
dGFibGVBZGRyZXNzKCkpOworI2Vsc2UKKyAgICB0eXBlZGVmIHVuc2lnbmVkICgqUXVlcnlTZWxl
Y3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlcikoY29uc3QgRWxlbWVudCopOworICAgIHJldHVybiBX
VEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIs
IEpTQzo6Q1NTU2VsZWN0b3JQdHJUYWc+KGNvbXBpbGVkU2VsZWN0b3IuY29kZVJlZi5jb2RlKCku
ZXhlY3V0YWJsZUFkZHJlc3MoKSkoZWxlbWVudCk7CisjZW5kaWYKIH0KIAotaW5saW5lIFJ1bGVD
b2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0IHJ1bGVDb2xsZWN0b3JT
ZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQoQ29tcGlsZWRTZWxlY3Rv
ciYgY29tcGlsZWRTZWxlY3RvcikKK2lubGluZSB1bnNpZ25lZCBydWxlQ29sbGVjdG9yU2VsZWN0
b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dChDb21waWxlZFNlbGVjdG9yJiBjb21waWxlZFNl
bGVjdG9yLCBjb25zdCBFbGVtZW50KiBlbGVtZW50LCBTZWxlY3RvckNoZWNrZXI6OkNoZWNraW5n
Q29udGV4dCogY29udGV4dCwgdW5zaWduZWQqIHZhbHVlKQogewogICAgIEFTU0VSVChjb21waWxl
ZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNo
ZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KTsKLSAgICByZXR1cm4gV1RGOjp1bnRhZ0NGdW5jdGlv
blB0cjxSdWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCwgQ1NT
U2VsZWN0b3JQdHJUYWc+KGNvbXBpbGVkU2VsZWN0b3IuY29kZVJlZi5jb2RlKCkuZXhlY3V0YWJs
ZUFkZHJlc3MoKSk7CisjaWYgQ1BVKEFSTTY0KQorICAgIHJldHVybiB2bUVudHJ5VG9DU1NKSVQo
Yml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oZWxlbWVudCksIGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+
KGNvbnRleHQpLCBiaXR3aXNlX2Nhc3Q8dWludHB0cl90Pih2YWx1ZSksIGNvbXBpbGVkU2VsZWN0
b3IuY29kZVJlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisjZWxzZQorICAgIHR5cGVk
ZWYgdW5zaWduZWQgKCpSdWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29u
dGV4dCkoY29uc3QgRWxlbWVudCosIFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0Kiwg
dW5zaWduZWQqKTsKKyAgICByZXR1cm4gV1RGOjp1bnRhZ0NGdW5jdGlvblB0cjxSdWxlQ29sbGVj
dG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCwgSlNDOjpDU1NTZWxlY3RvclB0
clRhZz4oY29tcGlsZWRTZWxlY3Rvci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygp
KShlbGVtZW50LCBjb250ZXh0LCB2YWx1ZSk7CisjZW5kaWYKIH0KIAotaW5saW5lIFF1ZXJ5U2Vs
ZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0IHF1ZXJ5U2VsZWN0b3JTZWxl
Y3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQoQ29tcGlsZWRTZWxlY3RvciYg
Y29tcGlsZWRTZWxlY3RvcikKK2lubGluZSB1bnNpZ25lZCBxdWVyeVNlbGVjdG9yU2VsZWN0b3JD
aGVja2VyV2l0aENoZWNraW5nQ29udGV4dChDb21waWxlZFNlbGVjdG9yJiBjb21waWxlZFNlbGVj
dG9yLCBjb25zdCBFbGVtZW50KiBlbGVtZW50LCBjb25zdCBTZWxlY3RvckNoZWNrZXI6OkNoZWNr
aW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICBBU1NFUlQoY29tcGlsZWRTZWxlY3Rvci5zdGF0
dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNr
aW5nQ29udGV4dCk7Ci0gICAgcmV0dXJuIFdURjo6dW50YWdDRnVuY3Rpb25QdHI8UXVlcnlTZWxl
Y3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQsIENTU1NlbGVjdG9yUHRyVGFn
Pihjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpOwor
I2lmIENQVShBUk02NCkKKyAgICByZXR1cm4gdm1FbnRyeVRvQ1NTSklUKGJpdHdpc2VfY2FzdDx1
aW50cHRyX3Q+KGVsZW1lbnQpLCBiaXR3aXNlX2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSwgMCwg
Y29tcGlsZWRTZWxlY3Rvci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyNl
bHNlCisgICAgdHlwZWRlZiB1bnNpZ25lZCAoKlF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJX
aXRoQ2hlY2tpbmdDb250ZXh0KShjb25zdCBFbGVtZW50KiwgY29uc3QgU2VsZWN0b3JDaGVja2Vy
OjpDaGVja2luZ0NvbnRleHQqKTsKKyAgICByZXR1cm4gV1RGOjp1bnRhZ0NGdW5jdGlvblB0cjxR
dWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCwgSlNDOjpDU1NT
ZWxlY3RvclB0clRhZz4oY29tcGlsZWRTZWxlY3Rvci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxl
QWRkcmVzcygpKShlbGVtZW50LCBjb250ZXh0KTsKKyNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFj
ZSBTZWxlY3RvckNvbXBpbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0
b3JRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKaW5kZXgg
YTA5N2FhMmIwNjBmODJmYmQ4Mzk4ZmVlZTMyMWMyMTIyNjQxODY3Ny4uNDBkNDk5NWU2NTFhMTU2
NzcxMWYzZDAxZjI2YjdhYzkyYzg3NjJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1NlbGVjdG9yUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5
LmNwcApAQCAtMzk2LDggKzM5Niw4IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBTZWxlY3RvckRhdGFM
aXN0OjpleGVjdXRlU2luZ2xlTXVsdGlTZWxlY3RvckRhdGEoY29uc3QgQ29udGFpCiB9CiAKICNp
ZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKLXRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1
ZXJ5VHJhaXQ+Ci1BTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZUNv
bXBpbGVkU2ltcGxlU2VsZWN0b3JDaGVja2VyKGNvbnN0IENvbnRhaW5lck5vZGUmIHNlYXJjaFJv
b3ROb2RlLCBTZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVj
a2VyIHNlbGVjdG9yQ2hlY2tlciwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRU
eXBlJiBvdXRwdXQsIGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JEYXRhKSBjb25zdAordGVt
cGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdCwgdHlwZW5hbWUgQ2hlY2tlcj4KK0FM
V0FZU19JTkxJTkUgdm9pZCBTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGlsZWRTaW1wbGVT
ZWxlY3RvckNoZWNrZXIoY29uc3QgQ29udGFpbmVyTm9kZSYgc2VhcmNoUm9vdE5vZGUsIENoZWNr
ZXIgc2VsZWN0b3JDaGVja2VyLCB0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5
cGUmIG91dHB1dCwgY29uc3QgU2VsZWN0b3JEYXRhJiBzZWxlY3RvckRhdGEpIGNvbnN0CiB7CiAg
ICAgZm9yIChhdXRvJiBlbGVtZW50IDogZGVzY2VuZGFudHNPZlR5cGU8RWxlbWVudD4oY29uc3Rf
Y2FzdDxDb250YWluZXJOb2RlJj4oc2VhcmNoUm9vdE5vZGUpKSkgewogICAgICAgICBzZWxlY3Rv
ckRhdGEuY29tcGlsZWRTZWxlY3Rvci53YXNVc2VkKCk7CkBAIC00MTAsOCArNDEwLDggQEAgQUxX
QVlTX0lOTElORSB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVDb21waWxlZFNpbXBsZVNl
bGVjdG9yQ2hlY2tlcihjb25zdAogICAgIH0KIH0KIAotdGVtcGxhdGUgPHR5cGVuYW1lIFNlbGVj
dG9yUXVlcnlUcmFpdD4KLUFMV0FZU19JTkxJTkUgdm9pZCBTZWxlY3RvckRhdGFMaXN0OjpleGVj
dXRlQ29tcGlsZWRTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KGNvbnN0IENvbnRh
aW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBDb250YWluZXJOb2RlJiBzZWFyY2hSb290Tm9kZSwg
U2VsZWN0b3JDb21waWxlcjo6UXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2lu
Z0NvbnRleHQgc2VsZWN0b3JDaGVja2VyLCB0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91
dHB1dFR5cGUmIG91dHB1dCwgY29uc3QgU2VsZWN0b3JEYXRhJiBzZWxlY3RvckRhdGEpIGNvbnN0
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0LCB0eXBlbmFtZSBDaGVja2Vy
PgorQUxXQVlTX0lOTElORSB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVDb21waWxlZFNl
bGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyTm9kZSYgcm9v
dE5vZGUsIGNvbnN0IENvbnRhaW5lck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBDaGVja2VyIHNlbGVj
dG9yQ2hlY2tlciwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRUeXBlJiBvdXRw
dXQsIGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JEYXRhKSBjb25zdAogewogICAgIFNlbGVj
dG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0IGNoZWNraW5nQ29udGV4dChTZWxlY3RvckNoZWNr
ZXI6Ok1vZGU6OlF1ZXJ5aW5nUnVsZXMpOwogICAgIGNoZWNraW5nQ29udGV4dC5zY29wZSA9IHJv
b3ROb2RlLmlzRG9jdW1lbnROb2RlKCkgPyBudWxscHRyIDogJnJvb3ROb2RlOwpAQCAtNDM3LDEz
ICs0MzcsMTEgQEAgQUxXQVlTX0lOTElORSB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVD
b21waWxlZFNpbmdsZU11bHRpU2VsZWN0b3JEYXRhKGNvbnMKICAgICAgICAgICAgIHNlbGVjdG9y
LmNvbXBpbGVkU2VsZWN0b3Iud2FzVXNlZCgpOwogCiAgICAgICAgICAgICBib29sIG1hdGNoZWQg
PSBmYWxzZTsKLSAgICAgICAgICAgIGlmIChzZWxlY3Rvci5jb21waWxlZFNlbGVjdG9yLnN0YXR1
cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIpIHsK
LSAgICAgICAgICAgICAgICBhdXRvIHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6
OnF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbihzZWxlY3Rvci5jb21w
aWxlZFNlbGVjdG9yKTsKLSAgICAgICAgICAgICAgICBtYXRjaGVkID0gc2VsZWN0b3JDaGVja2Vy
KCZlbGVtZW50KTsKLSAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoc2VsZWN0
b3IuY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6
U2ltcGxlU2VsZWN0b3JDaGVja2VyKQorICAgICAgICAgICAgICAgIG1hdGNoZWQgPSBTZWxlY3Rv
ckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKHNlbGVjdG9yLmNv
bXBpbGVkU2VsZWN0b3IsICZlbGVtZW50KTsKKyAgICAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgICAgIEFTU0VSVChzZWxlY3Rvci5jb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3Rv
ckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KTsK
LSAgICAgICAgICAgICAgICBhdXRvIHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6
OnF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQo
c2VsZWN0b3IuY29tcGlsZWRTZWxlY3Rvcik7Ci0gICAgICAgICAgICAgICAgbWF0Y2hlZCA9IHNl
bGVjdG9yQ2hlY2tlcigmZWxlbWVudCwgJmNoZWNraW5nQ29udGV4dCk7CisgICAgICAgICAgICAg
ICAgbWF0Y2hlZCA9IFNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNr
ZXJXaXRoQ2hlY2tpbmdDb250ZXh0KHNlbGVjdG9yLmNvbXBpbGVkU2VsZWN0b3IsICZlbGVtZW50
LCAmY2hlY2tpbmdDb250ZXh0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChtYXRj
aGVkKSB7CiAgICAgICAgICAgICAgICAgU2VsZWN0b3JRdWVyeVRyYWl0OjphcHBlbmRPdXRwdXRG
b3JFbGVtZW50KG91dHB1dCwgJmVsZW1lbnQpOwpAQCAtNTI0LDEyICs1MjIsMTQgQEAgQUxXQVlT
X0lOTElORSB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGUoQ29udGFpbmVyTm9kZSYgcm9v
dE5vZGUsIHR5cGVuYW1lIFMKICAgICAgICAgQ29tcGlsZWRTaW5nbGVDYXNlOgogICAgICAgICBj
b25zdCBTZWxlY3RvckRhdGEmIHNlbGVjdG9yRGF0YSA9IG1fc2VsZWN0b3JzLmZpcnN0KCk7CiAg
ICAgICAgIGlmIChzZWxlY3RvckRhdGEuY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2VsZWN0
b3JDb21waWxhdGlvblN0YXR1czo6U2ltcGxlU2VsZWN0b3JDaGVja2VyKSB7Ci0gICAgICAgICAg
ICBhdXRvIHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JT
aW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbihzZWxlY3RvckRhdGEuY29tcGlsZWRTZWxlY3Rv
cik7Ci0gICAgICAgICAgICBleGVjdXRlQ29tcGlsZWRTaW1wbGVTZWxlY3RvckNoZWNrZXI8U2Vs
ZWN0b3JRdWVyeVRyYWl0Pigqc2VhcmNoUm9vdE5vZGUsIHNlbGVjdG9yQ2hlY2tlciwgb3V0cHV0
LCBzZWxlY3RvckRhdGEpOworICAgICAgICAgICAgZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0
b3JDaGVja2VyPFNlbGVjdG9yUXVlcnlUcmFpdD4oKnNlYXJjaFJvb3ROb2RlLCBbJl0gKGNvbnN0
IEVsZW1lbnQqIGVsZW1lbnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JDb21w
aWxlcjo6cXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlcihzZWxlY3RvckRhdGEuY29t
cGlsZWRTZWxlY3RvciwgZWxlbWVudCk7CisgICAgICAgICAgICB9LCBvdXRwdXQsIHNlbGVjdG9y
RGF0YSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlQoc2VsZWN0b3JEYXRh
LmNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNl
bGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpOwotICAgICAgICAgICAgYXV0byBzZWxl
Y3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVj
a2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdDb250ZXh0KHNlbGVjdG9yRGF0YS5jb21waWxlZFNlbGVj
dG9yKTsKLSAgICAgICAgICAgIGV4ZWN1dGVDb21waWxlZFNlbGVjdG9yQ2hlY2tlcldpdGhDaGVj
a2luZ0NvbnRleHQ8U2VsZWN0b3JRdWVyeVRyYWl0Pihyb290Tm9kZSwgKnNlYXJjaFJvb3ROb2Rl
LCBzZWxlY3RvckNoZWNrZXIsIG91dHB1dCwgc2VsZWN0b3JEYXRhKTsKKyAgICAgICAgICAgIGV4
ZWN1dGVDb21waWxlZFNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQ8U2VsZWN0b3JR
dWVyeVRyYWl0Pihyb290Tm9kZSwgKnNlYXJjaFJvb3ROb2RlLCBbJl0gKGNvbnN0IEVsZW1lbnQq
IGVsZW1lbnQsIGNvbnN0IFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0KiBjb250ZXh0
KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0
b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KHNlbGVjdG9yRGF0YS5jb21waWxl
ZFNlbGVjdG9yLCBlbGVtZW50LCBjb250ZXh0KTsKKyAgICAgICAgICAgIH0sIG91dHB1dCwgc2Vs
ZWN0b3JEYXRhKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TZWxlY3RvclF1ZXJ5LmgKaW5kZXggOGVlZjcyZTJhZDk2NjQ0NDAzNGM5ZTNiZDI0Mzli
MDA0ZWE3ZWYyZi4uOTg2M2VmMTMyYmU4NjM4MWNiMGU1OWZjYzA4MzdiOWVkYTg5YzhjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5oCkBAIC02Niw4ICs2Niw4IEBAIGNsYXNzIFNlbGVj
dG9yRGF0YUxpc3QgewogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+
IHZvaWQgZXhlY3V0ZVNpbmdsZVNlbGVjdG9yRGF0YShjb25zdCBDb250YWluZXJOb2RlJiByb290
Tm9kZSwgY29uc3QgQ29udGFpbmVyTm9kZSYgc2VhcmNoUm9vdE5vZGUsIGNvbnN0IFNlbGVjdG9y
RGF0YSYsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYpIGNvbnN0Owog
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+IHZvaWQgZXhlY3V0ZVNp
bmdsZU11bHRpU2VsZWN0b3JEYXRhKGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCB0eXBl
bmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmKSBjb25zdDsKICNpZiBFTkFCTEUo
Q1NTX1NFTEVDVE9SX0pJVCkKLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRy
YWl0PiB2b2lkIGV4ZWN1dGVDb21waWxlZFNpbXBsZVNlbGVjdG9yQ2hlY2tlcihjb25zdCBDb250
YWluZXJOb2RlJiBzZWFyY2hSb290Tm9kZSwgU2VsZWN0b3JDb21waWxlcjo6UXVlcnlTZWxlY3Rv
clNpbXBsZVNlbGVjdG9yQ2hlY2tlciwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRw
dXRUeXBlJiwgY29uc3QgU2VsZWN0b3JEYXRhJikgY29uc3Q7Ci0gICAgdGVtcGxhdGUgPHR5cGVu
YW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4gdm9pZCBleGVjdXRlQ29tcGlsZWRTZWxlY3RvckNoZWNr
ZXJXaXRoQ2hlY2tpbmdDb250ZXh0KGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25z
dCBDb250YWluZXJOb2RlJiBzZWFyY2hSb290Tm9kZSwgU2VsZWN0b3JDb21waWxlcjo6UXVlcnlT
ZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQsIHR5cGVuYW1lIFNlbGVj
dG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYsIGNvbnN0IFNlbGVjdG9yRGF0YSYpIGNvbnN0Owor
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQsIHR5cGVuYW1lIENoZWNr
ZXI+IHZvaWQgZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0b3JDaGVja2VyKGNvbnN0IENvbnRh
aW5lck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBDaGVja2VyLCB0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5
VHJhaXQ6Ok91dHB1dFR5cGUmLCBjb25zdCBTZWxlY3RvckRhdGEmKSBjb25zdDsKKyAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0LCB0eXBlbmFtZSBDaGVja2VyPiB2b2lk
IGV4ZWN1dGVDb21waWxlZFNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQoY29uc3Qg
Q29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IENvbnRhaW5lck5vZGUmIHNlYXJjaFJvb3RO
b2RlLCBDaGVja2VyLCB0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmLCBj
b25zdCBTZWxlY3RvckRhdGEmKSBjb25zdDsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0
b3JRdWVyeVRyYWl0PiB2b2lkIGV4ZWN1dGVDb21waWxlZFNpbmdsZU11bHRpU2VsZWN0b3JEYXRh
KGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCB0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJh
aXQ6Ok91dHB1dFR5cGUmKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBjb21waWxlU2VsZWN0b3Io
Y29uc3QgU2VsZWN0b3JEYXRhJik7CiAjZW5kaWYgLy8gRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKaW5kZXgg
Y2QzZWEwNzRkNTc0YWU1YjE0ZjU4ODA4MjQ3N2YyMTY5NjQ2YTFjMS4uZjRhMGI5OGVlMGE2OWFh
MzE0MTQ0Y2U4OGNhZDUxMjg3NTVlMTQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0Vs
ZW1lbnRSdWxlQ29sbGVjdG9yLmNwcApAQCAtNDU3LDEyICs0NTcsMTEgQEAgaW5saW5lIGJvb2wg
RWxlbWVudFJ1bGVDb2xsZWN0b3I6OnJ1bGVNYXRjaGVzKGNvbnN0IFJ1bGVEYXRhJiBydWxlRGF0
YSwgdW5zaWduZWQKICAgICBpZiAoY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2VsZWN0b3JD
b21waWxhdGlvblN0YXR1czo6U2ltcGxlU2VsZWN0b3JDaGVja2VyKSB7CiAgICAgICAgIGNvbXBp
bGVkU2VsZWN0b3Iud2FzVXNlZCgpOwogCi0gICAgICAgIGF1dG8gc2VsZWN0b3JDaGVja2VyID0g
U2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0
aW9uKGNvbXBpbGVkU2VsZWN0b3IpOwogI2lmICFBU1NFUlRfTVNHX0RJU0FCTEVECiAgICAgICAg
IHVuc2lnbmVkIGlnbm9yZVNwZWNpZmljaXR5OwotICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdF
KCFzZWxlY3RvckNoZWNrZXIoJmVsZW1lbnQoKSwgJmlnbm9yZVNwZWNpZmljaXR5KSB8fCBtX3Bz
ZXVkb0VsZW1lbnRSZXF1ZXN0LnBzZXVkb0lkID09IFBzZXVkb0lkOjpOb25lLCAiV2hlbiBtYXRj
aGluZyBwc2V1ZG8gZWxlbWVudHMsIHdlIHNob3VsZCBuZXZlciBjb21waWxlIGEgc2VsZWN0b3Ig
Y2hlY2tlciB3aXRob3V0IGNvbnRleHQgdW5sZXNzIGl0IGNhbm5vdCBtYXRjaCBhbnl0aGluZy4i
KTsKKyAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghU2VsZWN0b3JDb21waWxlcjo6cnVsZUNv
bGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlcihjb21waWxlZFNlbGVjdG9yLCAmZWxlbWVudCgp
LCAmaWdub3JlU3BlY2lmaWNpdHkpIHx8IG1fcHNldWRvRWxlbWVudFJlcXVlc3QucHNldWRvSWQg
PT0gUHNldWRvSWQ6Ok5vbmUsICJXaGVuIG1hdGNoaW5nIHBzZXVkbyBlbGVtZW50cywgd2Ugc2hv
dWxkIG5ldmVyIGNvbXBpbGUgYSBzZWxlY3RvciBjaGVja2VyIHdpdGhvdXQgY29udGV4dCB1bmxl
c3MgaXQgY2Fubm90IG1hdGNoIGFueXRoaW5nLiIpOwogI2VuZGlmCi0gICAgICAgIGJvb2wgc2Vs
ZWN0b3JNYXRjaGVzID0gc2VsZWN0b3JDaGVja2VyKCZlbGVtZW50KCksICZzcGVjaWZpY2l0eSk7
CisgICAgICAgIGJvb2wgc2VsZWN0b3JNYXRjaGVzID0gU2VsZWN0b3JDb21waWxlcjo6cnVsZUNv
bGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlcihjb21waWxlZFNlbGVjdG9yLCAmZWxlbWVudCgp
LCAmc3BlY2lmaWNpdHkpOwogCiAgICAgICAgIGlmIChzZWxlY3Rvck1hdGNoZXMgJiYgcnVsZURh
dGEuY29udGFpbnNVbmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9yKCkpCiAgICAgICAgICAgICBtX2Rp
ZE1hdGNoVW5jb21tb25BdHRyaWJ1dGVTZWxlY3RvciA9IHRydWU7CkBAIC00ODIsOSArNDgxLDcg
QEAgaW5saW5lIGJvb2wgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OnJ1bGVNYXRjaGVzKGNvbnN0IFJ1
bGVEYXRhJiBydWxlRGF0YSwgdW5zaWduZWQKICNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkK
ICAgICBpZiAoY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0
YXR1czo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCkgewogICAgICAgICBjb21w
aWxlZFNlbGVjdG9yLndhc1VzZWQoKTsKLQotICAgICAgICBhdXRvIHNlbGVjdG9yQ2hlY2tlciA9
IFNlbGVjdG9yQ29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldp
dGhDaGVja2luZ0NvbnRleHQoY29tcGlsZWRTZWxlY3Rvcik7Ci0gICAgICAgIHNlbGVjdG9yTWF0
Y2hlcyA9IHNlbGVjdG9yQ2hlY2tlcigmZWxlbWVudCgpLCAmY29udGV4dCwgJnNwZWNpZmljaXR5
KTsKKyAgICAgICAgc2VsZWN0b3JNYXRjaGVzID0gU2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxl
Y3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQoY29tcGlsZWRTZWxlY3Rvciwg
JmVsZW1lbnQoKSwgJmNvbnRleHQsICZzcGVjaWZpY2l0eSk7CiAgICAgfSBlbHNlCiAjZW5kaWYg
Ly8gRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCiAgICAgewo=
</data>
<flag name="commit-queue"
          id="429771"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413208</attachid>
            <date>2020-11-04 14:40:30 -0800</date>
            <delta_ts>2020-11-04 14:53:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218587-20201104144029.patch</filename>
            <type>text/plain</type>
            <size>34033</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5Mzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YWViYzQ3Y2I4ZDRlNTQyM2FhMjMyN2RjN2ZjMDI5YWZiMzEzODgxLi5lMGRkYTk2ZTkzZDVmNDU1
YjNmODhkMDJkNjgzMThmOGZlODdiNGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMC0xMS0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEFwcGx5IEpJVENhZ2UgdG8gQ1NTSklUCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg1ODcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6CisgICAg
ICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogcnVudGltZS9K
U0NQdHJUYWcuaDoKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQuY3BwOgorCiAyMDIwLTExLTA0ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
Zml4IEFSTTY0IG9ubHkgY3Jhc2ggKEFSTTY0RSB3b3JrcykgYWZ0ZXIgSklUIENhZ2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAxNmQxNGM4ZTkwZTBmODYxNWM2YTA1Njc2NjQwOTE1NGViNzlhMzVhLi5kNDRiNWY3
ZmRhZGM4OTNjODhlNGQxNzAwYTFjOWYyMTgyZGI2OWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDEgQEAKKzIwMjAtMTEtMDQgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBcHBseSBKSVRDYWdlIHRvIENTU0pJVAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NTg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgQ1NTSklUIGRvZXMgbm90IGNhbGwgSklUIGZ1
bmN0aW9uIHJlY3Vyc2l2ZWx5LCBzdXBwb3J0aW5nIGl0IGluIEpJVENhZ2UgaXMgc2ltcGxlOiB3
ZSBjYW4gaGF2ZSB0cmFtcG9saW5lIGluIEMKKyAgICAgICAgYW5kIGp1bXAgdG8gSklUIGNvZGUs
IGFuZCBpbnN0ZWFkIG9mIGRvaW5nICJyZXQiLCByZXR1cm5pbmcgYmFjayB0byBDIGNvZGUgdmlh
IGp1bXAuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzc2ppdC9DU1NQdHJUYWcu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3NqaXQvQ29tcGlsZWRTZWxlY3Rvci5oOgorICAgICAg
ICAqIGNzc2ppdC9GdW5jdGlvbkNhbGwuaDoKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21w
aWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNv
ZGVHZW5lcmF0b3I6OmNvbXBpbGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxl
cjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZVJldHVybik6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlU2Vs
ZWN0b3JDaGVja2VyKToKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNpbXBsZVNlbGVj
dG9yQ2hlY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNl
bGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9y
Q29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTZWxl
Y3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVj
dG9yQ29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVj
dG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0
aW9uV2l0aENoZWNraW5nQ29udGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxl
Y3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hl
Y2tpbmdDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vU2VsZWN0b3JRdWVyeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGlsZWRTaW1w
bGVTZWxlY3RvckNoZWNrZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JEYXRh
TGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGls
ZWRTaW5nbGVNdWx0aVNlbGVjdG9yRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxl
Y3RvckRhdGFMaXN0OjpleGVjdXRlIGNvbnN0KToKKyAgICAgICAgKiBkb20vU2VsZWN0b3JRdWVy
eS5oOgorICAgICAgICAqIHN0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMpOgorCiAy
MDIwLTExLTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBzb21lIG1pc3NpbmcgaGVhZGVyIGluY2x1ZGVzIGluIG1lZGlhIHNvdXJjZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKaW5kZXggZDhlOTQ0MzM2N2Y1
MGM4NDljNjgxMDE3MDY5ODA1MTg2MGYxMzY3Mi4uN2M2ZWVlN2JlM2MwMjExNzdmZTI5MTAyNTlk
YzQ4NmYxYTE2MzBhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50RGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5j
cHAKQEAgLTU5LDYgKzU5LDEwIEBAIGV4dGVybiAiQyIgdm9pZCBleGNlcHRpb25IYW5kbGVyVHJh
bXBvbGluZSh2b2lkKTsKIGV4dGVybiAiQyIgdm9pZCByZXR1cm5Gcm9tTExJbnRUcmFtcG9saW5l
KHZvaWQpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkgJiYgQ1BVKEFS
TTY0KQorSlNDX0FOTk9UQVRFX0pJVF9PUEVSQVRJT04oX0pJVFRhcmdldF92bUVudHJ5VG9DU1NK
SVRBZnRlciwgdm1FbnRyeVRvQ1NTSklUQWZ0ZXIpOworI2VuZGlmCisKIHZvaWQgaW5pdGlhbGl6
ZSgpCiB7CiAjaWYgRU5BQkxFKENfTE9PUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCAxNTVkNWU2NDU5NzZkYmRkYWI1
Y2JiMDM2MzY4NTliZTM2NWVjYWJhLi4yZGQ0ZTljMDY1MTY1ZGExZDYyZDM1ZGE4MDYyYTE0MDM4
ZDk5MGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIuYXNtCkBAIC0yNjAsNiArMjYwLDcgQEAgY29uc3QgSlNFbnRyeVNsb3dQYXRo
UHRyVGFnID0gY29uc3RleHByIEpTRW50cnlTbG93UGF0aFB0clRhZwogY29uc3QgTmF0aXZlVG9K
SVRHYXRlUHRyVGFnID0gY29uc3RleHByIE5hdGl2ZVRvSklUR2F0ZVB0clRhZwogY29uc3QgRXhj
ZXB0aW9uSGFuZGxlclB0clRhZyA9IGNvbnN0ZXhwciBFeGNlcHRpb25IYW5kbGVyUHRyVGFnCiBj
b25zdCBZYXJyRW50cnlQdHJUYWcgPSBjb25zdGV4cHIgWWFyckVudHJ5UHRyVGFnCitjb25zdCBD
U1NTZWxlY3RvclB0clRhZyA9IGNvbnN0ZXhwciBDU1NTZWxlY3RvclB0clRhZwogY29uc3QgTm9Q
dHJUYWcgPSBjb25zdGV4cHIgTm9QdHJUYWcKICAKIApAQCAtMTYxMCw2ICsxNjExLDE3IEBAIGVu
ZAogICAgIGZ1bmN0aW9uRXBpbG9ndWUoKQogICAgIHJldAogCisjIHVuc2lnbmVkIHZtRW50cnlU
b0NTU0pJVCh1aW50cHRyX3QsIHVpbnRwdHJfdCwgdWludHB0cl90LCBjb25zdCB2b2lkKiBjb2Rl
UHRyKTsKK2VtaXQgIi5nbG9ibCBfdm1FbnRyeVRvQ1NTSklUIgorZW1pdCAiX3ZtRW50cnlUb0NT
U0pJVDoiCisgICAgZnVuY3Rpb25Qcm9sb2d1ZSgpCitpZiBBUk02NCBvciBBUk02NEUKKyAgICBq
bXAgdDMsIENTU1NlbGVjdG9yUHRyVGFnCisgICAgZW1pdCAiLmdsb2JsIF92bUVudHJ5VG9DU1NK
SVRBZnRlciIKKyAgICBlbWl0ICJfdm1FbnRyeVRvQ1NTSklUQWZ0ZXI6IgorZW5kCisgICAgZnVu
Y3Rpb25FcGlsb2d1ZSgpCisgICAgcmV0CiAKIGlmIG5vdCAoQ19MT09QIG9yIENfTE9PUF9XSU4p
CiAgICAgIyB2b2lkIHNhbml0aXplU3RhY2tGb3JWTUltcGwoVk0qIHZtKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDUHRyVGFnLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NQdHJUYWcuaAppbmRleCA0NjQ1YjA1Yzk3MzY1MTdlN2FhNTA0
OWJlODc2ZWU0OGIyZTgyMThmLi4xNmExYjRkZTNhNzhiMWZmN2QxYWMyZDdlMDg4ZDcwYWJiZmMw
YjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NQdHJUYWcu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NQdHJUYWcuaApAQCAtNjAs
NiArNjAsNyBAQCB1c2luZyBQdHJUYWcgPSBXVEY6OlB0clRhZzsKICAgICAvKiBDYWxsZWU6SklU
IENhbGxlcjpOYXRpdmUgKi8gXAogICAgIHYoTmF0aXZlVG9KSVRHYXRlUHRyVGFnLCBQdHJUYWdD
YWxsZWVUeXBlOjpKSVQsIFB0clRhZ0NhbGxlclR5cGU6Ok5hdGl2ZSkgXAogICAgIHYoWWFyckVu
dHJ5UHRyVGFnLCBQdHJUYWdDYWxsZWVUeXBlOjpKSVQsIFB0clRhZ0NhbGxlclR5cGU6Ok5hdGl2
ZSkgXAorICAgIHYoQ1NTU2VsZWN0b3JQdHJUYWcsIFB0clRhZ0NhbGxlZVR5cGU6OkpJVCwgUHRy
VGFnQ2FsbGVyVHlwZTo6TmF0aXZlKSBcCiAgICAgLyogQ2FsbGVlOk5hdGl2ZSBDYWxsZXI6SklU
ICovIFwKICAgICB2KEhvc3RGdW5jdGlvblB0clRhZywgUHRyVGFnQ2FsbGVlVHlwZTo6TmF0aXZl
LCBQdHJUYWdDYWxsZXJUeXBlOjpKSVQpIFwKICAgICB2KE9wZXJhdGlvblB0clRhZywgUHRyVGFn
Q2FsbGVlVHlwZTo6TmF0aXZlLCBQdHJUYWdDYWxsZXJUeXBlOjpKSVQpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKaW5kZXggOTRkMzAyYWVhZmQ1MTZhNWIzZmM3ZjRiZjVm
Nzk1YTNmNTZjYTc2Ny4uNDkwYzAxNTFmNGE2ZTg3Zjc4MTRhODFhYjJlNzhjOTBhYzM5MzdkMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKQEAgLTM4MTYsOCArMzgxNiw3
IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8sIHByaXZh
dGUgTWFjcm9Bc3NlbWJsZXIgewogI2VuZGlmCiAKICNpZiBDUFUoQVJNNjQpCi0gICAgICAgIG1v
dmUoVHJ1c3RlZEltbVB0cihyZXRhZ0NvZGVQdHI8dm9pZCosIENGdW5jdGlvblB0clRhZywgT3Bl
cmF0aW9uUHRyVGFnPigmdm1FbnRyeVRvWWFyckpJVEFmdGVyKSksIHJlZ1QwKTsKLSAgICAgICAg
ZmFySnVtcChyZWdUMCwgT3BlcmF0aW9uUHRyVGFnKTsKKyAgICAgICAgZmFySnVtcChUcnVzdGVk
SW1tUHRyKHJldGFnQ29kZVB0cjx2b2lkKiwgQ0Z1bmN0aW9uUHRyVGFnLCBPcGVyYXRpb25QdHJU
YWc+KCZ2bUVudHJ5VG9ZYXJySklUQWZ0ZXIpKSwgT3BlcmF0aW9uUHRyVGFnKTsKICNlbHNlCiAg
ICAgICAgIHJldCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjA2MmU5MDdiNWFjNjFmYTQ2MjM2OTQwYzQ2YTU3
MjhiNGI4YjQwMy4uYWIwZDY3NGI5MjdjZDhhZGZmOTk3ZWI5ZjQ5NzU4ZjljYzBhZjRhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNTM4Niw3ICs1Mzg2LDYgQEAKIAkJRkRGNkJBRjkxMzRBNEM5ODAwODIyOTIwIC8qIEpTT2Zm
bGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGREY2QkFGNzEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVk
aW9Db21wbGV0aW9uRXZlbnQuaCAqLzsgfTsKIAkJRkRGN0U5QzQxM0FDMjFEQjAwQTUxRUFDIC8q
IEpTQXVkaW9CdWZmZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkRGN0U5QzIxM0FDMjFEQjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJD
YWxsYmFjay5oICovOyB9OwogCQlGRTBEODRFOTEwNDg0MzQ4MDAxQTE3OUUgLyogV2ViRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMEQ4NEU4
MTA0ODQzNDgwMDFBMTc5RSAvKiBXZWJFdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUZFMjcxRjY3MjA4MkRCRTUwMEE5NTJENCAvKiBDU1NQ
dHJUYWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZF
MjcxRjY0MjA4MkRCQkUwMEE5NTJENCAvKiBDU1NQdHJUYWcuaCAqLzsgfTsKIAkJRkUzNkZEMTUx
NkM3ODI2NTAwRjg4N0MxIC8qIENoYW5nZVZlcnNpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTM2RkQxMTE2Qzc4MjY0MDBGODg3QzEgLyog
Q2hhbmdlVmVyc2lvbkRhdGEuaCAqLzsgfTsKIAkJRkUzNkZEMTcxNkM3ODI2NTAwRjg4N0MxIC8q
IFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRTM2RkQxMzE2Qzc4MjY0MDBGODg3QzEgLyogU1FMVHJhbnNh
Y3Rpb25TdGF0ZU1hY2hpbmUuaCAqLzsgfTsKIAkJRkUzNkZEMTgxNkM3ODI2NTAwRjg4N0MxIC8q
IFNRTFRyYW5zYWN0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZFMzZGRDE0MTZDNzgyNjQwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0
YXRlLmggKi87IH07CkBAIC0xNjgwOSw3ICsxNjgwOCw2IEBACiAJCUZERjdFOUMyMTNBQzIxREIw
MEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNBdWRpb0J1ZmZlckNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUZFMEQ4NEU4MTA0ODQzNDgwMDFBMTc5RSAvKiBXZWJFdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGRTBEODRFQTEwNDg0MzZFMDAxQTE3OUUgLyogV2ViRXZlbnQubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJFdmVudC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRkUyNzFGNjQyMDgyREJCRTAwQTk1MkQ0IC8qIENTU1B0clRh
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NQdHJUYWcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUzNkZEMTExNkM3ODI2NDAwRjg4N0MxIC8qIENoYW5n
ZVZlcnNpb25EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoYW5nZVZl
cnNpb25EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMzZGRDEyMTZDNzgy
NjQwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMzZGRDEzMTZDNzgyNjQwMEY4ODdDMSAv
KiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTg2NzQsNyArMTg2NzIsNiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKIAkJCQlFNDQ1MTA3NzIwMkM3RTAxMDA2NTdEMzMgLyogQ29tcGlsZWRTZWxl
Y3Rvci5oICovLAotCQkJCUZFMjcxRjY0MjA4MkRCQkUwMEE5NTJENCAvKiBDU1NQdHJUYWcuaCAq
LywKIAkJCQkyNkI5OTk5MjE4MDNCOUQ5MDBEMDExMjEgLyogRnVuY3Rpb25DYWxsLmggKi8sCiAJ
CQkJMjZCOTk5OEUxODAzQUU3MjAwRDAxMTIxIC8qIFJlZ2lzdGVyQWxsb2NhdG9yLmggKi8sCiAJ
CQkJMjZCOTk5OTQxODA0RDU0MjAwRDAxMTIxIC8qIFNlbGVjdG9yQ29tcGlsZXIuY3BwICovLApA
QCAtMzEzNDAsNyArMzEzMzcsNiBAQAogCQkJCTk0NkQzNzQ2MUQ2RDAxRDQwMDc3MDg0RiAvKiBD
U1NQcm9wZXJ0eVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTQ5Qzc3MDUxRDZFMzlFQTAw
QzBERTRGIC8qIENTU1Byb3BlcnR5UGFyc2VySGVscGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODJFM0Q4REYxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5U291cmNlRGF0YS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJRkUyNzFGNjcyMDgyREJFNTAwQTk1MkQ0IC8qIENTU1B0clRhZy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM1QTEyRTAwREMwNDE0ODAwQzlBRkFEIC8qIENTU1JlZmxlY3RW
YWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEJEQTQwMDEyMTUxQjZGNTAwRkQ2NjA0IC8qIENT
U1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3RDhGRjQx
QkQxQTQ3OTAwRkZFNTQwIC8qIENTU1JldmVydFZhbHVlLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9DU1NQdHJUYWcuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzc2ppdC9DU1NQdHJUYWcuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGIyNTNj
ZDYzOTFjMDNjMGZlMTk5OGI3NjI0NDU4MjVmZjU1OWM2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvQ1NTUHRyVGFn
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoQ1NTX1NF
TEVDVE9SX0pJVCkKLQotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ1B0clRhZy5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSNkZWZpbmUgRk9SX0VBQ0hfQ1NTX1BUUlRBRyh2KSBcCi0g
ICAgdihDU1NTZWxlY3RvclB0clRhZykgXAotCi0jaWYgQ09NUElMRVIoTVNWQykKLSNwcmFnbWEg
d2FybmluZyhwdXNoKQotI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDMwNykKLSNlbmRpZgotCi1G
T1JfRUFDSF9DU1NfUFRSVEFHKFdURl9ERUNMQVJFX1BUUlRBRykKLQotI2lmIENPTVBJTEVSKE1T
VkMpCi0jcHJhZ21hIHdhcm5pbmcocG9wKQotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3Nzaml0L0NvbXBpbGVkU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
c2ppdC9Db21waWxlZFNlbGVjdG9yLmgKaW5kZXggNWU2MTcxOWE5NzhmZmYwOTM5M2RiMTAwOTE0
MzM5MDdiYWYxM2U5Ny4uNzZkYmNlYWQ0MTEyYmFjOGY4Zjk0NTcxYzBhYjdhNTg0Mjk2ZTRhZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L0NvbXBpbGVkU2VsZWN0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvQ29tcGlsZWRTZWxlY3Rvci5oCkBAIC0yNyw4ICsyNyw4
IEBACiAKICNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKIAotI2luY2x1ZGUgIkNTU1B0clRh
Zy5oIgogI2luY2x1ZGUgIkNTU1NlbGVjdG9yLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNDUHRyVGFnLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmLmg+CiAKICNkZWZpbmUgQ1NTX1NFTEVDVE9SX0pJVF9QUk9GSUxJTkcgMApAQCAtNDUsNyAr
NDUsNyBAQCBlbnVtIGNsYXNzIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgOiB1aW50OF90IHsK
IHN0cnVjdCBDb21waWxlZFNlbGVjdG9yIHsKICAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExP
Q0FURUQ7CiAgICAgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBzdGF0dXMgeyBTZWxlY3RvckNv
bXBpbGF0aW9uU3RhdHVzOjpOb3RDb21waWxlZCB9OwotICAgIEpTQzo6TWFjcm9Bc3NlbWJsZXJD
b2RlUmVmPENTU1NlbGVjdG9yUHRyVGFnPiBjb2RlUmVmOworICAgIEpTQzo6TWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmPEpTQzo6Q1NTU2VsZWN0b3JQdHJUYWc+IGNvZGVSZWY7CiAKICNpZiBkZWZpbmVk
KENTU19TRUxFQ1RPUl9KSVRfUFJPRklMSU5HKSAmJiBDU1NfU0VMRUNUT1JfSklUX1BST0ZJTElO
RwogICAgIHVuc2lnbmVkIHVzZUNvdW50IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3Nzaml0L0Z1bmN0aW9uQ2FsbC5oIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L0Z1bmN0aW9u
Q2FsbC5oCmluZGV4IDdhN2QzYTY2OGQ0ZWVjODZlZjhkZGRlODRhZjcyYmNiOTNmMmUxMmEuLjIy
OWY2Nzk5NzVkZTNiMTFlZDY1YTdjM2E5YzVjZTk2M2M4ODIyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzc2ppdC9GdW5jdGlvbkNhbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Nq
aXQvRnVuY3Rpb25DYWxsLmgKQEAgLTI3LDEwICsyNywxMCBAQAogCiAjaWYgRU5BQkxFKENTU19T
RUxFQ1RPUl9KSVQpCiAKLSNpbmNsdWRlICJDU1NQdHJUYWcuaCIKICNpbmNsdWRlICJSZWdpc3Rl
ckFsbG9jYXRvci5oIgogI2luY2x1ZGUgIlN0YWNrQWxsb2NhdG9yLmgiCiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvR1BSSW5mby5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ1B0clRh
Zy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL01hY3JvQXNzZW1ibGVyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3Rv
ckNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNw
cAppbmRleCAyYTFlYTRmYjUxYjMxNGFhNThkYjM5ZDVjNDE1ODg2MjFmMWYyM2M2Li5mZGM4NTRl
YWFmNmQ5ZmMyOTcyOWMzZjM1MmM4MzM2ODJmMzYzNjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
aml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCkBAIC0zMTcsNyArMzE3LDcgQEAgc3RydWN0IEJhY2t0
cmFja2luZ0xldmVsIHsKIGNsYXNzIFNlbGVjdG9yQ29kZUdlbmVyYXRvciB7CiBwdWJsaWM6CiAg
ICAgU2VsZWN0b3JDb2RlR2VuZXJhdG9yKGNvbnN0IENTU1NlbGVjdG9yKiwgU2VsZWN0b3JDb250
ZXh0KTsKLSAgICBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIGNvbXBpbGUoSlNDOjpNYWNyb0Fz
c2VtYmxlckNvZGVSZWY8Q1NTU2VsZWN0b3JQdHJUYWc+Jik7CisgICAgU2VsZWN0b3JDb21waWxh
dGlvblN0YXR1cyBjb21waWxlKEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpTQzo6Q1NTU2Vs
ZWN0b3JQdHJUYWc+Jik7CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IEFzc2VtYmxlcjo6
UmVnaXN0ZXJJRCByZXR1cm5SZWdpc3RlcjsKQEAgLTMyNSw2ICszMjUsOCBAQCBjbGFzcyBTZWxl
Y3RvckNvZGVHZW5lcmF0b3IgewogICAgIHN0YXRpYyBjb25zdCBBc3NlbWJsZXI6OlJlZ2lzdGVy
SUQgY2hlY2tpbmdDb250ZXh0UmVnaXN0ZXI7CiAgICAgc3RhdGljIGNvbnN0IEFzc2VtYmxlcjo6
UmVnaXN0ZXJJRCBjYWxsRnJhbWVSZWdpc3RlcjsKIAorICAgIHZvaWQgZ2VuZXJhdGVSZXR1cm4o
KTsKKwogICAgIHZvaWQgZ2VuZXJhdGVTZWxlY3RvckNoZWNrZXIoKTsKICAgICB2b2lkIGdlbmVy
YXRlU2VsZWN0b3JDaGVja2VyRXhjbHVkaW5nUHNldWRvRWxlbWVudHMoQXNzZW1ibGVyOjpKdW1w
TGlzdCYgZmFpbHVyZUNhc2VzLCBjb25zdCBTZWxlY3RvckZyYWdtZW50TGlzdCYpOwogICAgIHZv
aWQgZ2VuZXJhdGVFbGVtZW50TWF0Y2hlc1NlbGVjdG9yTGlzdChBc3NlbWJsZXI6Okp1bXBMaXN0
JiBmYWlsdXJlQ2FzZXMsIEFzc2VtYmxlcjo6UmVnaXN0ZXJJRCBlbGVtZW50VG9NYXRjaCwgY29u
c3QgU2VsZWN0b3JMaXN0Jik7CkBAIC0xNDM3LDcgKzE0MzksNyBAQCB2b2lkIGNvbXB1dGVCYWNr
dHJhY2tpbmdNZW1vcnlSZXF1aXJlbWVudHMoU2VsZWN0b3JGcmFnbWVudExpc3QmIHNlbGVjdG9y
RnJhZ21lbgogICAgIH0KIH0KIAotaW5saW5lIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgU2Vs
ZWN0b3JDb2RlR2VuZXJhdG9yOjpjb21waWxlKEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPENT
U1NlbGVjdG9yUHRyVGFnPiYgY29kZVJlZikKK2lubGluZSBTZWxlY3RvckNvbXBpbGF0aW9uU3Rh
dHVzIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Y29tcGlsZShKU0M6Ok1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxKU0M6OkNTU1NlbGVjdG9yUHRyVGFnPiYgY29kZVJlZikKIHsKICAgICBzd2l0Y2ggKG1f
ZnVuY3Rpb25UeXBlKSB7CiAgICAgY2FzZSBGdW5jdGlvblR5cGU6OlNpbXBsZVNlbGVjdG9yQ2hl
Y2tlcjoKQEAgLTE0NDUsOSArMTQ0Nyw4IEBAIGlubGluZSBTZWxlY3RvckNvbXBpbGF0aW9uU3Rh
dHVzIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Y29tcGlsZShKU0M6Ok1hY3JvQXNzZW1iCiAgICAg
ICAgIGdlbmVyYXRlU2VsZWN0b3JDaGVja2VyKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
RnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nOgotICAgICAgICBtX2Fzc2VtYmxlci50
YWdSZXR1cm5BZGRyZXNzKCk7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmUoQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoMCksIHJldHVyblJlZ2lzdGVyKTsKLSAgICAgICAgbV9hc3NlbWJsZXIucmV0
KCk7CisgICAgICAgIGdlbmVyYXRlUmV0dXJuKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
RnVuY3Rpb25UeXBlOjpDYW5ub3RDb21waWxlOgogICAgICAgICByZXR1cm4gU2VsZWN0b3JDb21w
aWxhdGlvblN0YXR1czo6Q2Fubm90Q29tcGlsZTsKQEAgLTE0NjYsOSArMTQ2Nyw5IEBAIGlubGlu
ZSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Y29tcGls
ZShKU0M6Ok1hY3JvQXNzZW1iCiAgICAgICAgIGxpbmtCdWZmZXIubGluayhtX2Z1bmN0aW9uQ2Fs
bHNbaV0uZmlyc3QsIG1fZnVuY3Rpb25DYWxsc1tpXS5zZWNvbmQpOwogCiAjaWYgQ1NTX1NFTEVD
VE9SX0pJVF9ERUJVR0dJTkcKLSAgICBjb2RlUmVmID0gbGlua0J1ZmZlci5maW5hbGl6ZUNvZGVX
aXRoRGlzYXNzZW1ibHkoQ1NTU2VsZWN0b3JQdHJUYWcsICJDU1MgU2VsZWN0b3IgSklUIGZvciBc
IiVzXCIiLCBtX29yaWdpbmFsU2VsZWN0b3ItPnNlbGVjdG9yVGV4dCgpLnV0ZjgoKS5kYXRhKCkp
OworICAgIGNvZGVSZWYgPSBsaW5rQnVmZmVyLmZpbmFsaXplQ29kZVdpdGhEaXNhc3NlbWJseShK
U0M6OkNTU1NlbGVjdG9yUHRyVGFnLCAiQ1NTIFNlbGVjdG9yIEpJVCBmb3IgXCIlc1wiIiwgbV9v
cmlnaW5hbFNlbGVjdG9yLT5zZWxlY3RvclRleHQoKS51dGY4KCkuZGF0YSgpKTsKICNlbHNlCi0g
ICAgY29kZVJlZiA9IEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgQ1NTU2VsZWN0b3JQdHJUYWcs
ICJDU1MgU2VsZWN0b3IgSklUIik7CisgICAgY29kZVJlZiA9IEZJTkFMSVpFX0NPREUobGlua0J1
ZmZlciwgSlNDOjpDU1NTZWxlY3RvclB0clRhZywgIkNTUyBTZWxlY3RvciBKSVQiKTsKICNlbmRp
ZgogCiAgICAgaWYgKG1fZnVuY3Rpb25UeXBlID09IEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0
b3JDaGVja2VyIHx8IG1fZnVuY3Rpb25UeXBlID09IEZ1bmN0aW9uVHlwZTo6Q2Fubm90TWF0Y2hB
bnl0aGluZykKQEAgLTE5NDYsNiArMTk0NywxNSBAQCBpbmxpbmUgdm9pZCBTZWxlY3RvckNvZGVH
ZW5lcmF0b3I6OmdlbmVyYXRlRXBpbG9ndWUoU3RhY2tBbGxvY2F0b3ImIHN0YWNrQWxsb2NhdAog
I2VuZGlmCiB9CiAKK2lubGluZSB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVS
ZXR1cm4oKQoreworI2lmIENQVShBUk02NCkKKyAgICBtX2Fzc2VtYmxlci5mYXJKdW1wKEFzc2Vt
Ymxlcjo6VHJ1c3RlZEltbVB0cihyZXRhZ0NvZGVQdHI8dm9pZCosIENGdW5jdGlvblB0clRhZywg
SlNDOjpPcGVyYXRpb25QdHJUYWc+KCZ2bUVudHJ5VG9DU1NKSVRBZnRlcikpLCBKU0M6Ok9wZXJh
dGlvblB0clRhZyk7CisjZWxzZQorICAgIG1fYXNzZW1ibGVyLnJldCgpOworI2VuZGlmCit9CisK
IHN0YXRpYyBib29sIGlzQWRqYWNlbnRSZWxhdGlvbihGcmFnbWVudFJlbGF0aW9uIHJlbGF0aW9u
KQogewogICAgIHJldHVybiByZWxhdGlvbiA9PSBGcmFnbWVudFJlbGF0aW9uOjpEaXJlY3RBZGph
Y2VudCB8fCByZWxhdGlvbiA9PSBGcmFnbWVudFJlbGF0aW9uOjpJbmRpcmVjdEFkamFjZW50OwpA
QCAtMTk1OCw3ICsxOTY4LDYgQEAgc3RhdGljIGJvb2wgc2hvdWxkTWFya1N0eWxlSXNBZmZlY3Rl
ZEJ5UHJldmlvdXNTaWJsaW5nKGNvbnN0IFNlbGVjdG9yRnJhZ21lbnQmIGYKIAogdm9pZCBTZWxl
Y3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlU2VsZWN0b3JDaGVja2VyKCkKIHsKLSAgICBtX2Fz
c2VtYmxlci50YWdSZXR1cm5BZGRyZXNzKCk7CiAgICAgcHVzaE1hY3JvQXNzZW1ibGVyUmVnaXN0
ZXJzKCk7CiAgICAgU3RhY2tBbGxvY2F0b3IgZWFybHlGYWlsdXJlU3RhY2sgPSBtX3N0YWNrQWxs
b2NhdG9yOwogCkBAIC0xOTg5LDcgKzE5OTgsNyBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRv
cjo6Z2VuZXJhdGVTZWxlY3RvckNoZWNrZXIoKQogICAgIGlmIChtX3NlbGVjdG9yRnJhZ21lbnRz
LnN0YWNrUmVxdWlyZW1lbnRzID4gbWF4aW11bUJhY2t0cmFja2luZ0FsbG9jYXRpb25zKSB7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLm1vdmUoQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMCksIHJldHVy
blJlZ2lzdGVyKTsKICAgICAgICAgcG9wTWFjcm9Bc3NlbWJsZXJSZWdpc3RlcnMobV9zdGFja0Fs
bG9jYXRvcik7Ci0gICAgICAgIG1fYXNzZW1ibGVyLnJldCgpOworICAgICAgICBnZW5lcmF0ZVJl
dHVybigpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMDU0LDcgKzIwNjMsNyBAQCB2
b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVTZWxlY3RvckNoZWNrZXIoKQogICAg
ICAgICAgICAgLy8gU3VjY2Vzcy4KICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmUoQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMSksIHJldHVyblJlZ2lzdGVyKTsKICAgICAgICAgICAgIHBvcE1h
Y3JvQXNzZW1ibGVyUmVnaXN0ZXJzKHN1Y2Nlc3NTdGFjayk7Ci0gICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5yZXQoKTsKKyAgICAgICAgICAgIGdlbmVyYXRlUmV0dXJuKCk7CiAKICAgICAgICAgICAg
IC8vIEZhaWx1cmUuCiAgICAgICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGZhaWx1cmVPbkZ1
bmN0aW9uRW50cnkuZW1wdHkoKSwgIkVhcmx5IGZhaWx1cmUgb24gZnVuY3Rpb24gZW50cnkgaXMg
dXNlZCBmb3IgcHNldWRvIGVsZW1lbnQuIFdoZW4gZWFybHkgZmFpbHVyZSBpcyB1c2VkLCBmdW5j
dGlvbiB0eXBlIGlzIFNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQuIik7CkBAIC0y
MDYyLDcgKzIwNzEsNyBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVTZWxl
Y3RvckNoZWNrZXIoKQogICAgICAgICAgICAgICAgIGZhaWx1cmVDYXNlcy5saW5rKCZtX2Fzc2Vt
Ymxlcik7CiAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIubW92ZShBc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMigwKSwgcmV0dXJuUmVnaXN0ZXIpOwogICAgICAgICAgICAgICAgIHBvcE1hY3JvQXNz
ZW1ibGVyUmVnaXN0ZXJzKGZhaWx1cmVTdGFjayk7Ci0gICAgICAgICAgICAgICAgbV9hc3NlbWJs
ZXIucmV0KCk7CisgICAgICAgICAgICAgICAgZ2VuZXJhdGVSZXR1cm4oKTsKICAgICAgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgICAgIGZhaWx1cmVTdGFjayA9IHN1Y2Nlc3NTdGFjazsKIApA
QCAtMjA5MSwxNCArMjEwMCwxNCBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJh
dGVTZWxlY3RvckNoZWNrZXIoKQogICAgIGlmIChuZWVkc0VwaWxvZ3VlKQogICAgICAgICBnZW5l
cmF0ZUVwaWxvZ3VlKHN1Y2Nlc3NTdGFjayk7CiAgICAgcG9wTWFjcm9Bc3NlbWJsZXJSZWdpc3Rl
cnMoc3VjY2Vzc1N0YWNrKTsKLSAgICBtX2Fzc2VtYmxlci5yZXQoKTsKKyAgICBnZW5lcmF0ZVJl
dHVybigpOwogCiAgICAgLy8gRWFybHkgZmFpbHVyZSBvbiBmdW5jdGlvbiBlbnRyeSBjYXNlLgog
ICAgIGlmICghZmFpbHVyZU9uRnVuY3Rpb25FbnRyeS5lbXB0eSgpKSB7CiAgICAgICAgIGZhaWx1
cmVPbkZ1bmN0aW9uRW50cnkubGluaygmbV9hc3NlbWJsZXIpOwogICAgICAgICBtX2Fzc2VtYmxl
ci5tb3ZlKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDApLCByZXR1cm5SZWdpc3Rlcik7CiAgICAg
ICAgIHBvcE1hY3JvQXNzZW1ibGVyUmVnaXN0ZXJzKGVhcmx5RmFpbHVyZVN0YWNrKTsKLSAgICAg
ICAgbV9hc3NlbWJsZXIucmV0KCk7CisgICAgICAgIGdlbmVyYXRlUmV0dXJuKCk7CiAgICAgfSBl
bHNlCiAgICAgICAgIGVhcmx5RmFpbHVyZVN0YWNrID0gc3VjY2Vzc1N0YWNrOwogICAgIG1fc3Rh
Y2tBbGxvY2F0b3IubWVyZ2UoV1RGTW92ZShzdWNjZXNzU3RhY2spLCBXVEZNb3ZlKGVhcmx5RmFp
bHVyZVN0YWNrKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JD
b21waWxlci5oIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuaAppbmRl
eCAwZmVkYTRiYWI4M2MxOGNkYTM0MWQ3M2UyYjZjY2Q2ZDAxYzFlNmMxLi5hODZlM2U0NmQ2NmZi
M2Y0NThmN2JiZWExNTgwZjAxODMyZjE2MTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3NqaXQvU2VsZWN0b3JDb21waWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxl
Y3RvckNvbXBpbGVyLmgKQEAgLTQ1LDM2ICs0NSw1MyBAQCBlbnVtIGNsYXNzIFNlbGVjdG9yQ29u
dGV4dCB7CiAgICAgUXVlcnlTZWxlY3RvcgogfTsKIAotdHlwZWRlZiB1bnNpZ25lZCAoKlJ1bGVD
b2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIpKGNvbnN0IEVsZW1lbnQqLCB1bnNpZ25lZCop
OwotdHlwZWRlZiB1bnNpZ25lZCAoKlF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIp
KGNvbnN0IEVsZW1lbnQqKTsKLQotdHlwZWRlZiB1bnNpZ25lZCAoKlJ1bGVDb2xsZWN0b3JTZWxl
Y3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KShjb25zdCBFbGVtZW50KiwgU2VsZWN0b3JD
aGVja2VyOjpDaGVja2luZ0NvbnRleHQqLCB1bnNpZ25lZCopOwotdHlwZWRlZiB1bnNpZ25lZCAo
KlF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KShjb25zdCBF
bGVtZW50KiwgY29uc3QgU2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0NvbnRleHQqKTsKLQogdm9p
ZCBjb21waWxlU2VsZWN0b3IoQ29tcGlsZWRTZWxlY3RvciYsIGNvbnN0IENTU1NlbGVjdG9yKiwg
U2VsZWN0b3JDb250ZXh0KTsKIAotaW5saW5lIFJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNo
ZWNrZXIgcnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKENvbXBpbGVk
U2VsZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3IpCitleHRlcm4gIkMiIHVuc2lnbmVkIHZtRW50cnlU
b0NTU0pJVCh1aW50cHRyX3QsIHVpbnRwdHJfdCwgdWludHB0cl90LCBjb25zdCB2b2lkKiBjb2Rl
UHRyKTsKK2V4dGVybiAiQyIgdm9pZCB2bUVudHJ5VG9DU1NKSVRBZnRlcih2b2lkKTsKKworaW5s
aW5lIHVuc2lnbmVkIHJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIoQ29tcGlsZWRT
ZWxlY3RvciYgY29tcGlsZWRTZWxlY3RvciwgY29uc3QgRWxlbWVudCogZWxlbWVudCwgdW5zaWdu
ZWQqIHZhbHVlKQogewogICAgIEFTU0VSVChjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxl
Y3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIpOwotICAgIHJldHVy
biBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNr
ZXIsIENTU1NlbGVjdG9yUHRyVGFnPihjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgpLmV4
ZWN1dGFibGVBZGRyZXNzKCkpOworI2lmIENQVShBUk02NCkKKyAgICByZXR1cm4gdm1FbnRyeVRv
Q1NTSklUKGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGVsZW1lbnQpLCBiaXR3aXNlX2Nhc3Q8dWlu
dHB0cl90Pih2YWx1ZSksIDAsIGNvbXBpbGVkU2VsZWN0b3IuY29kZVJlZi5jb2RlKCkuZXhlY3V0
YWJsZUFkZHJlc3MoKSk7CisjZWxzZQorICAgIHR5cGVkZWYgdW5zaWduZWQgKCpSdWxlQ29sbGVj
dG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKShjb25zdCBFbGVtZW50KiwgdW5zaWduZWQqKTsKKyAg
ICByZXR1cm4gV1RGOjp1bnRhZ0NGdW5jdGlvblB0cjxSdWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0
b3JDaGVja2VyLCBKU0M6OkNTU1NlbGVjdG9yUHRyVGFnPihjb21waWxlZFNlbGVjdG9yLmNvZGVS
ZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGVsZW1lbnQsIHZhbHVlKTsKKyNlbmRpZgog
fQogCi1pbmxpbmUgUXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciBxdWVyeVNlbGVj
dG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24oQ29tcGlsZWRTZWxlY3RvciYgY29tcGls
ZWRTZWxlY3RvcikKK2lubGluZSB1bnNpZ25lZCBxdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JD
aGVja2VyKENvbXBpbGVkU2VsZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3IsIGNvbnN0IEVsZW1lbnQq
IGVsZW1lbnQpCiB7CiAgICAgQVNTRVJUKGNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVj
dG9yQ29tcGlsYXRpb25TdGF0dXM6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcik7Ci0gICAgcmV0dXJu
IFdURjo6dW50YWdDRnVuY3Rpb25QdHI8UXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tl
ciwgQ1NTU2VsZWN0b3JQdHJUYWc+KGNvbXBpbGVkU2VsZWN0b3IuY29kZVJlZi5jb2RlKCkuZXhl
Y3V0YWJsZUFkZHJlc3MoKSk7CisjaWYgQ1BVKEFSTTY0KQorICAgIHJldHVybiB2bUVudHJ5VG9D
U1NKSVQoYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oZWxlbWVudCksIDAsIDAsIGNvbXBpbGVkU2Vs
ZWN0b3IuY29kZVJlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisjZWxzZQorICAgIHR5
cGVkZWYgdW5zaWduZWQgKCpRdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKShjb25z
dCBFbGVtZW50Kik7CisgICAgcmV0dXJuIFdURjo6dW50YWdDRnVuY3Rpb25QdHI8UXVlcnlTZWxl
Y3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciwgSlNDOjpDU1NTZWxlY3RvclB0clRhZz4oY29tcGls
ZWRTZWxlY3Rvci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKShlbGVtZW50KTsK
KyNlbmRpZgogfQogCi1pbmxpbmUgUnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVj
a2luZ0NvbnRleHQgcnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNr
aW5nQ29udGV4dChDb21waWxlZFNlbGVjdG9yJiBjb21waWxlZFNlbGVjdG9yKQoraW5saW5lIHVu
c2lnbmVkIHJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KENv
bXBpbGVkU2VsZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3IsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQs
IFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0KiBjb250ZXh0LCB1bnNpZ25lZCogdmFs
dWUpCiB7CiAgICAgQVNTRVJUKGNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29t
cGlsYXRpb25TdGF0dXM6OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpOwotICAg
IHJldHVybiBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNr
ZXJXaXRoQ2hlY2tpbmdDb250ZXh0LCBDU1NTZWxlY3RvclB0clRhZz4oY29tcGlsZWRTZWxlY3Rv
ci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyNpZiBDUFUoQVJNNjQpCisg
ICAgcmV0dXJuIHZtRW50cnlUb0NTU0pJVChiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihlbGVtZW50
KSwgYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oY29udGV4dCksIGJpdHdpc2VfY2FzdDx1aW50cHRy
X3Q+KHZhbHVlKSwgY29tcGlsZWRTZWxlY3Rvci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRk
cmVzcygpKTsKKyNlbHNlCisgICAgdHlwZWRlZiB1bnNpZ25lZCAoKlJ1bGVDb2xsZWN0b3JTZWxl
Y3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KShjb25zdCBFbGVtZW50KiwgU2VsZWN0b3JD
aGVja2VyOjpDaGVja2luZ0NvbnRleHQqLCB1bnNpZ25lZCopOworICAgIHJldHVybiBXVEY6OnVu
dGFnQ0Z1bmN0aW9uUHRyPFJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdD
b250ZXh0LCBKU0M6OkNTU1NlbGVjdG9yUHRyVGFnPihjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYu
Y29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGVsZW1lbnQsIGNvbnRleHQsIHZhbHVlKTsKKyNl
bmRpZgogfQogCi1pbmxpbmUgUXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2lu
Z0NvbnRleHQgcXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5n
Q29udGV4dChDb21waWxlZFNlbGVjdG9yJiBjb21waWxlZFNlbGVjdG9yKQoraW5saW5lIHVuc2ln
bmVkIHF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KENvbXBp
bGVkU2VsZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3IsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGNv
bnN0IFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIEFT
U0VSVChjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVz
OjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KTsKLSAgICByZXR1cm4gV1RGOjp1
bnRhZ0NGdW5jdGlvblB0cjxRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5n
Q29udGV4dCwgQ1NTU2VsZWN0b3JQdHJUYWc+KGNvbXBpbGVkU2VsZWN0b3IuY29kZVJlZi5jb2Rl
KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisjaWYgQ1BVKEFSTTY0KQorICAgIHJldHVybiB2bUVu
dHJ5VG9DU1NKSVQoYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oZWxlbWVudCksIGJpdHdpc2VfY2Fz
dDx1aW50cHRyX3Q+KGNvbnRleHQpLCAwLCBjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgp
LmV4ZWN1dGFibGVBZGRyZXNzKCkpOworI2Vsc2UKKyAgICB0eXBlZGVmIHVuc2lnbmVkICgqUXVl
cnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpKGNvbnN0IEVsZW1l
bnQqLCBjb25zdCBTZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29udGV4dCopOworICAgIHJldHVy
biBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRo
Q2hlY2tpbmdDb250ZXh0LCBKU0M6OkNTU1NlbGVjdG9yUHRyVGFnPihjb21waWxlZFNlbGVjdG9y
LmNvZGVSZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGVsZW1lbnQsIGNvbnRleHQpOwor
I2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFNlbGVjdG9yQ29tcGlsZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TZWxlY3RvclF1ZXJ5LmNwcAppbmRleCBhMDk3YWEyYjA2MGY4MmZiZDgzOThmZWVlMzIxYzIx
MjI2NDE4Njc3Li40MGQ0OTk1ZTY1MWExNTY3NzExZjNkMDFmMjZiN2FjOTJjODc2MmE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCkBAIC0zOTYsOCArMzk2LDggQEAgQUxXQVlT
X0lOTElORSB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVTaW5nbGVNdWx0aVNlbGVjdG9y
RGF0YShjb25zdCBDb250YWkKIH0KIAogI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQotdGVt
cGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4KLUFMV0FZU19JTkxJTkUgdm9pZCBT
ZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGlsZWRTaW1wbGVTZWxlY3RvckNoZWNrZXIoY29u
c3QgQ29udGFpbmVyTm9kZSYgc2VhcmNoUm9vdE5vZGUsIFNlbGVjdG9yQ29tcGlsZXI6OlF1ZXJ5
U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIgc2VsZWN0b3JDaGVja2VyLCB0eXBlbmFtZSBT
ZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmIG91dHB1dCwgY29uc3QgU2VsZWN0b3JEYXRh
JiBzZWxlY3RvckRhdGEpIGNvbnN0Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRy
YWl0LCB0eXBlbmFtZSBDaGVja2VyPgorQUxXQVlTX0lOTElORSB2b2lkIFNlbGVjdG9yRGF0YUxp
c3Q6OmV4ZWN1dGVDb21waWxlZFNpbXBsZVNlbGVjdG9yQ2hlY2tlcihjb25zdCBDb250YWluZXJO
b2RlJiBzZWFyY2hSb290Tm9kZSwgQ2hlY2tlciBzZWxlY3RvckNoZWNrZXIsIHR5cGVuYW1lIFNl
bGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYgb3V0cHV0LCBjb25zdCBTZWxlY3RvckRhdGEm
IHNlbGVjdG9yRGF0YSkgY29uc3QKIHsKICAgICBmb3IgKGF1dG8mIGVsZW1lbnQgOiBkZXNjZW5k
YW50c09mVHlwZTxFbGVtZW50Pihjb25zdF9jYXN0PENvbnRhaW5lck5vZGUmPihzZWFyY2hSb290
Tm9kZSkpKSB7CiAgICAgICAgIHNlbGVjdG9yRGF0YS5jb21waWxlZFNlbGVjdG9yLndhc1VzZWQo
KTsKQEAgLTQxMCw4ICs0MTAsOCBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlz
dDo6ZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0b3JDaGVja2VyKGNvbnN0CiAgICAgfQogfQog
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0PgotQUxXQVlTX0lOTElORSB2
b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVDb21waWxlZFNlbGVjdG9yQ2hlY2tlcldpdGhD
aGVja2luZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IENvbnRh
aW5lck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBTZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9y
U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCBzZWxlY3RvckNoZWNrZXIsIHR5cGVu
YW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYgb3V0cHV0LCBjb25zdCBTZWxlY3Rv
ckRhdGEmIHNlbGVjdG9yRGF0YSkgY29uc3QKK3RlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1
ZXJ5VHJhaXQsIHR5cGVuYW1lIENoZWNrZXI+CitBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JE
YXRhTGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4
dChjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQ29udGFpbmVyTm9kZSYgc2Vh
cmNoUm9vdE5vZGUsIENoZWNrZXIgc2VsZWN0b3JDaGVja2VyLCB0eXBlbmFtZSBTZWxlY3RvclF1
ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmIG91dHB1dCwgY29uc3QgU2VsZWN0b3JEYXRhJiBzZWxlY3Rv
ckRhdGEpIGNvbnN0CiB7CiAgICAgU2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0NvbnRleHQgY2hl
Y2tpbmdDb250ZXh0KFNlbGVjdG9yQ2hlY2tlcjo6TW9kZTo6UXVlcnlpbmdSdWxlcyk7CiAgICAg
Y2hlY2tpbmdDb250ZXh0LnNjb3BlID0gcm9vdE5vZGUuaXNEb2N1bWVudE5vZGUoKSA/IG51bGxw
dHIgOiAmcm9vdE5vZGU7CkBAIC00MzcsMTMgKzQzNywxMSBAQCBBTFdBWVNfSU5MSU5FIHZvaWQg
U2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2luZ2xlTXVsdGlTZWxlY3RvckRhdGEo
Y29ucwogICAgICAgICAgICAgc2VsZWN0b3IuY29tcGlsZWRTZWxlY3Rvci53YXNVc2VkKCk7CiAK
ICAgICAgICAgICAgIGJvb2wgbWF0Y2hlZCA9IGZhbHNlOwotICAgICAgICAgICAgaWYgKHNlbGVj
dG9yLmNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6
OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcikgewotICAgICAgICAgICAgICAgIGF1dG8gc2VsZWN0b3JD
aGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hl
Y2tlckZ1bmN0aW9uKHNlbGVjdG9yLmNvbXBpbGVkU2VsZWN0b3IpOwotICAgICAgICAgICAgICAg
IG1hdGNoZWQgPSBzZWxlY3RvckNoZWNrZXIoJmVsZW1lbnQpOwotICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rvci5jb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBT
ZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIpCisgICAgICAg
ICAgICAgICAgbWF0Y2hlZCA9IFNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTaW1wbGVT
ZWxlY3RvckNoZWNrZXIoc2VsZWN0b3IuY29tcGlsZWRTZWxlY3RvciwgJmVsZW1lbnQpOworICAg
ICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHNlbGVjdG9yLmNvbXBpbGVk
U2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNlbGVjdG9yQ2hl
Y2tlcldpdGhDaGVja2luZ0NvbnRleHQpOwotICAgICAgICAgICAgICAgIGF1dG8gc2VsZWN0b3JD
aGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1
bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChzZWxlY3Rvci5jb21waWxlZFNlbGVjdG9yKTsKLSAg
ICAgICAgICAgICAgICBtYXRjaGVkID0gc2VsZWN0b3JDaGVja2VyKCZlbGVtZW50LCAmY2hlY2tp
bmdDb250ZXh0KTsKKyAgICAgICAgICAgICAgICBtYXRjaGVkID0gU2VsZWN0b3JDb21waWxlcjo6
cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQoc2VsZWN0b3Iu
Y29tcGlsZWRTZWxlY3RvciwgJmVsZW1lbnQsICZjaGVja2luZ0NvbnRleHQpOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgaWYgKG1hdGNoZWQpIHsKICAgICAgICAgICAgICAgICBTZWxlY3Rv
clF1ZXJ5VHJhaXQ6OmFwcGVuZE91dHB1dEZvckVsZW1lbnQob3V0cHV0LCAmZWxlbWVudCk7CkBA
IC01MjQsMTIgKzUyMiwxNCBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6
ZXhlY3V0ZShDb250YWluZXJOb2RlJiByb290Tm9kZSwgdHlwZW5hbWUgUwogICAgICAgICBDb21w
aWxlZFNpbmdsZUNhc2U6CiAgICAgICAgIGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JEYXRh
ID0gbV9zZWxlY3RvcnMuZmlyc3QoKTsKICAgICAgICAgaWYgKHNlbGVjdG9yRGF0YS5jb21waWxl
ZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxl
Y3RvckNoZWNrZXIpIHsKLSAgICAgICAgICAgIGF1dG8gc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0
b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKHNl
bGVjdG9yRGF0YS5jb21waWxlZFNlbGVjdG9yKTsKLSAgICAgICAgICAgIGV4ZWN1dGVDb21waWxl
ZFNpbXBsZVNlbGVjdG9yQ2hlY2tlcjxTZWxlY3RvclF1ZXJ5VHJhaXQ+KCpzZWFyY2hSb290Tm9k
ZSwgc2VsZWN0b3JDaGVja2VyLCBvdXRwdXQsIHNlbGVjdG9yRGF0YSk7CisgICAgICAgICAgICBl
eGVjdXRlQ29tcGlsZWRTaW1wbGVTZWxlY3RvckNoZWNrZXI8U2VsZWN0b3JRdWVyeVRyYWl0Pigq
c2VhcmNoUm9vdE5vZGUsIFsmXSAoY29uc3QgRWxlbWVudCogZWxlbWVudCkgeworICAgICAgICAg
ICAgICAgIHJldHVybiBTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0
b3JDaGVja2VyKHNlbGVjdG9yRGF0YS5jb21waWxlZFNlbGVjdG9yLCBlbGVtZW50KTsKKyAgICAg
ICAgICAgIH0sIG91dHB1dCwgc2VsZWN0b3JEYXRhKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIEFTU0VSVChzZWxlY3RvckRhdGEuY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2Vs
ZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4
dCk7Ci0gICAgICAgICAgICBhdXRvIHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6
OnF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQo
c2VsZWN0b3JEYXRhLmNvbXBpbGVkU2VsZWN0b3IpOwotICAgICAgICAgICAgZXhlY3V0ZUNvbXBp
bGVkU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dDxTZWxlY3RvclF1ZXJ5VHJhaXQ+
KHJvb3ROb2RlLCAqc2VhcmNoUm9vdE5vZGUsIHNlbGVjdG9yQ2hlY2tlciwgb3V0cHV0LCBzZWxl
Y3RvckRhdGEpOworICAgICAgICAgICAgZXhlY3V0ZUNvbXBpbGVkU2VsZWN0b3JDaGVja2VyV2l0
aENoZWNraW5nQ29udGV4dDxTZWxlY3RvclF1ZXJ5VHJhaXQ+KHJvb3ROb2RlLCAqc2VhcmNoUm9v
dE5vZGUsIFsmXSAoY29uc3QgRWxlbWVudCogZWxlbWVudCwgY29uc3QgU2VsZWN0b3JDaGVja2Vy
OjpDaGVja2luZ0NvbnRleHQqIGNvbnRleHQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gU2Vs
ZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0Nv
bnRleHQoc2VsZWN0b3JEYXRhLmNvbXBpbGVkU2VsZWN0b3IsIGVsZW1lbnQsIGNvbnRleHQpOwor
ICAgICAgICAgICAgfSwgb3V0cHV0LCBzZWxlY3RvckRhdGEpOwogICAgICAgICB9CiAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0
b3JRdWVyeS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuaAppbmRleCA4ZWVm
NzJlMmFkOTY2NDQ0MDM0YzllM2JkMjQzOWIwMDRlYTdlZjJmLi45ODYzZWYxMzJiZTg2MzgxY2Iw
ZTU5ZmNjMDgzN2I5ZWRhODljOGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2Vs
ZWN0b3JRdWVyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmgKQEAg
LTY2LDggKzY2LDggQEAgY2xhc3MgU2VsZWN0b3JEYXRhTGlzdCB7CiAgICAgdGVtcGxhdGUgPHR5
cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4gdm9pZCBleGVjdXRlU2luZ2xlU2VsZWN0b3JEYXRh
KGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBDb250YWluZXJOb2RlJiBzZWFy
Y2hSb290Tm9kZSwgY29uc3QgU2VsZWN0b3JEYXRhJiwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRy
YWl0OjpPdXRwdXRUeXBlJikgY29uc3Q7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9y
UXVlcnlUcmFpdD4gdm9pZCBleGVjdXRlU2luZ2xlTXVsdGlTZWxlY3RvckRhdGEoY29uc3QgQ29u
dGFpbmVyTm9kZSYgcm9vdE5vZGUsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0
VHlwZSYpIGNvbnN0OwogI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQotICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+IHZvaWQgZXhlY3V0ZUNvbXBpbGVkU2ltcGxl
U2VsZWN0b3JDaGVja2VyKGNvbnN0IENvbnRhaW5lck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBTZWxl
Y3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyLCB0eXBlbmFt
ZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmLCBjb25zdCBTZWxlY3RvckRhdGEmKSBj
b25zdDsKLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0PiB2b2lkIGV4
ZWN1dGVDb21waWxlZFNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQoY29uc3QgQ29u
dGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IENvbnRhaW5lck5vZGUmIHNlYXJjaFJvb3ROb2Rl
LCBTZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNr
aW5nQ29udGV4dCwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRUeXBlJiwgY29u
c3QgU2VsZWN0b3JEYXRhJikgY29uc3Q7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9y
UXVlcnlUcmFpdCwgdHlwZW5hbWUgQ2hlY2tlcj4gdm9pZCBleGVjdXRlQ29tcGlsZWRTaW1wbGVT
ZWxlY3RvckNoZWNrZXIoY29uc3QgQ29udGFpbmVyTm9kZSYgc2VhcmNoUm9vdE5vZGUsIENoZWNr
ZXIsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYsIGNvbnN0IFNlbGVj
dG9yRGF0YSYpIGNvbnN0OworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJh
aXQsIHR5cGVuYW1lIENoZWNrZXI+IHZvaWQgZXhlY3V0ZUNvbXBpbGVkU2VsZWN0b3JDaGVja2Vy
V2l0aENoZWNraW5nQ29udGV4dChjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3Qg
Q29udGFpbmVyTm9kZSYgc2VhcmNoUm9vdE5vZGUsIENoZWNrZXIsIHR5cGVuYW1lIFNlbGVjdG9y
UXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYsIGNvbnN0IFNlbGVjdG9yRGF0YSYpIGNvbnN0OwogICAg
IHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+IHZvaWQgZXhlY3V0ZUNvbXBp
bGVkU2luZ2xlTXVsdGlTZWxlY3RvckRhdGEoY29uc3QgQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUs
IHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYpIGNvbnN0OwogICAgIHN0
YXRpYyBib29sIGNvbXBpbGVTZWxlY3Rvcihjb25zdCBTZWxlY3RvckRhdGEmKTsKICNlbmRpZiAv
LyBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1l
bnRSdWxlQ29sbGVjdG9yLmNwcAppbmRleCBjZDNlYTA3NGQ1NzRhZTViMTRmNTg4MDgyNDc3ZjIx
Njk2NDZhMWMxLi5mNGEwYjk4ZWUwYTY5YWEzMTQxNDRjZTg4Y2FkNTEyODc1NWUxNDZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCkBAIC00NTcs
MTIgKzQ1NywxMSBAQCBpbmxpbmUgYm9vbCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNo
ZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhLCB1bnNpZ25lZAogICAgIGlmIChjb21waWxlZFNl
bGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3Rv
ckNoZWNrZXIpIHsKICAgICAgICAgY29tcGlsZWRTZWxlY3Rvci53YXNVc2VkKCk7CiAKLSAgICAg
ICAgYXV0byBzZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9y
U2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24oY29tcGlsZWRTZWxlY3Rvcik7CiAjaWYgIUFT
U0VSVF9NU0dfRElTQUJMRUQKICAgICAgICAgdW5zaWduZWQgaWdub3JlU3BlY2lmaWNpdHk7Ci0g
ICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIXNlbGVjdG9yQ2hlY2tlcigmZWxlbWVudCgpLCAm
aWdub3JlU3BlY2lmaWNpdHkpIHx8IG1fcHNldWRvRWxlbWVudFJlcXVlc3QucHNldWRvSWQgPT0g
UHNldWRvSWQ6Ok5vbmUsICJXaGVuIG1hdGNoaW5nIHBzZXVkbyBlbGVtZW50cywgd2Ugc2hvdWxk
IG5ldmVyIGNvbXBpbGUgYSBzZWxlY3RvciBjaGVja2VyIHdpdGhvdXQgY29udGV4dCB1bmxlc3Mg
aXQgY2Fubm90IG1hdGNoIGFueXRoaW5nLiIpOworICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdF
KCFTZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKGNv
bXBpbGVkU2VsZWN0b3IsICZlbGVtZW50KCksICZpZ25vcmVTcGVjaWZpY2l0eSkgfHwgbV9wc2V1
ZG9FbGVtZW50UmVxdWVzdC5wc2V1ZG9JZCA9PSBQc2V1ZG9JZDo6Tm9uZSwgIldoZW4gbWF0Y2hp
bmcgcHNldWRvIGVsZW1lbnRzLCB3ZSBzaG91bGQgbmV2ZXIgY29tcGlsZSBhIHNlbGVjdG9yIGNo
ZWNrZXIgd2l0aG91dCBjb250ZXh0IHVubGVzcyBpdCBjYW5ub3QgbWF0Y2ggYW55dGhpbmcuIik7
CiAjZW5kaWYKLSAgICAgICAgYm9vbCBzZWxlY3Rvck1hdGNoZXMgPSBzZWxlY3RvckNoZWNrZXIo
JmVsZW1lbnQoKSwgJnNwZWNpZmljaXR5KTsKKyAgICAgICAgYm9vbCBzZWxlY3Rvck1hdGNoZXMg
PSBTZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKGNv
bXBpbGVkU2VsZWN0b3IsICZlbGVtZW50KCksICZzcGVjaWZpY2l0eSk7CiAKICAgICAgICAgaWYg
KHNlbGVjdG9yTWF0Y2hlcyAmJiBydWxlRGF0YS5jb250YWluc1VuY29tbW9uQXR0cmlidXRlU2Vs
ZWN0b3IoKSkKICAgICAgICAgICAgIG1fZGlkTWF0Y2hVbmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9y
ID0gdHJ1ZTsKQEAgLTQ4Miw5ICs0ODEsNyBAQCBpbmxpbmUgYm9vbCBFbGVtZW50UnVsZUNvbGxl
Y3Rvcjo6cnVsZU1hdGNoZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhLCB1bnNpZ25lZAogI2lm
IEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQogICAgIGlmIChjb21waWxlZFNlbGVjdG9yLnN0YXR1
cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tp
bmdDb250ZXh0KSB7CiAgICAgICAgIGNvbXBpbGVkU2VsZWN0b3Iud2FzVXNlZCgpOwotCi0gICAg
ICAgIGF1dG8gc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3Rv
clNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChjb21waWxlZFNlbGVj
dG9yKTsKLSAgICAgICAgc2VsZWN0b3JNYXRjaGVzID0gc2VsZWN0b3JDaGVja2VyKCZlbGVtZW50
KCksICZjb250ZXh0LCAmc3BlY2lmaWNpdHkpOworICAgICAgICBzZWxlY3Rvck1hdGNoZXMgPSBT
ZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5n
Q29udGV4dChjb21waWxlZFNlbGVjdG9yLCAmZWxlbWVudCgpLCAmY29udGV4dCwgJnNwZWNpZmlj
aXR5KTsKICAgICB9IGVsc2UKICNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKICAg
ICB7Cg==
</data>
<flag name="commit-queue"
          id="429773"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413209</attachid>
            <date>2020-11-04 14:45:44 -0800</date>
            <delta_ts>2020-11-04 16:03:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218587-20201104144543.patch</filename>
            <type>text/plain</type>
            <size>35421</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5Mzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YWViYzQ3Y2I4ZDRlNTQyM2FhMjMyN2RjN2ZjMDI5YWZiMzEzODgxLi5lMGRkYTk2ZTkzZDVmNDU1
YjNmODhkMDJkNjgzMThmOGZlODdiNGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMC0xMS0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEFwcGx5IEpJVENhZ2UgdG8gQ1NTSklUCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg1ODcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6CisgICAg
ICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogcnVudGltZS9K
U0NQdHJUYWcuaDoKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQuY3BwOgorCiAyMDIwLTExLTA0ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
Zml4IEFSTTY0IG9ubHkgY3Jhc2ggKEFSTTY0RSB3b3JrcykgYWZ0ZXIgSklUIENhZ2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAxNmQxNGM4ZTkwZTBmODYxNWM2YTA1Njc2NjQwOTE1NGViNzlhMzVhLi5mZTcwODFh
M2Q5YmY1NGYzZjc0N2QwMzFmYWE3NDI0NmMzYjdmM2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDMgQEAKKzIwMjAtMTEtMDQgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBcHBseSBKSVRDYWdlIHRvIENTU0pJVAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NTg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgQ1NTSklUIGRvZXMgbm90IGNhbGwgSklUIGZ1
bmN0aW9uIHJlY3Vyc2l2ZWx5LCBzdXBwb3J0aW5nIGl0IGluIEpJVENhZ2UgaXMgc2ltcGxlOiB3
ZSBjYW4gaGF2ZSB0cmFtcG9saW5lIGluIEMKKyAgICAgICAgYW5kIGp1bXAgdG8gSklUIGNvZGUs
IGFuZCBpbnN0ZWFkIG9mIGRvaW5nICJyZXQiLCByZXR1cm5pbmcgYmFjayB0byBDIGNvZGUgdmlh
IGp1bXAuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzc2ppdC9DU1NQdHJUYWcu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3NqaXQvQ29tcGlsZWRTZWxlY3Rvci5oOgorICAgICAg
ICAqIGNzc2ppdC9GdW5jdGlvbkNhbGwuaDoKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21w
aWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNv
ZGVHZW5lcmF0b3I6OmNvbXBpbGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxl
cjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZVByb2xvZ3VlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVF
cGlsb2d1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNv
ZGVHZW5lcmF0b3I6OmdlbmVyYXRlUmV0dXJuKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9y
Q29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVTZWxlY3RvckNoZWNrZXIp
OgorICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTaW1wbGVT
ZWxlY3RvckNoZWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6cnVs
ZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldp
dGhDaGVja2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6
cnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxl
Y3RvckNoZWNrZXJGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rv
ckNvbXBpbGVyOjpydWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tp
bmdDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6
OnF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQp
OiBEZWxldGVkLgorICAgICAgICAqIGRvbS9TZWxlY3RvclF1ZXJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVDb21waWxlZFNpbXBsZVNlbGVjdG9yQ2hl
Y2tlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRl
Q29tcGlsZWRTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVDb21waWxlZFNpbmdsZU11bHRp
U2VsZWN0b3JEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6
OmV4ZWN1dGUgY29uc3QpOgorICAgICAgICAqIGRvbS9TZWxlY3RvclF1ZXJ5Lmg6CisgICAgICAg
ICogc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0Y2hlcyk6CisKIDIwMjAtMTEtMDQgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHNvbWUg
bWlzc2luZyBoZWFkZXIgaW5jbHVkZXMgaW4gbWVkaWEgc291cmNlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAppbmRleCBkOGU5NDQzMzY3ZjUwYzg0OWM2ODEwMTcw
Njk4MDUxODYwZjEzNjcyLi43YzZlZWU3YmUzYzAyMTE3N2ZlMjkxMDI1OWRjNDg2ZjFhMTYzMGFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcApAQCAtNTksNiAr
NTksMTAgQEAgZXh0ZXJuICJDIiB2b2lkIGV4Y2VwdGlvbkhhbmRsZXJUcmFtcG9saW5lKHZvaWQp
OwogZXh0ZXJuICJDIiB2b2lkIHJldHVybkZyb21MTEludFRyYW1wb2xpbmUodm9pZCk7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKSAmJiBDUFUoQVJNNjQpCitKU0NfQU5O
T1RBVEVfSklUX09QRVJBVElPTihfSklUVGFyZ2V0X3ZtRW50cnlUb0NTU0pJVEFmdGVyLCB2bUVu
dHJ5VG9DU1NKSVRBZnRlcik7CisjZW5kaWYKKwogdm9pZCBpbml0aWFsaXplKCkKIHsKICNpZiBF
TkFCTEUoQ19MT09QKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IDE1NWQ1ZTY0NTk3NmRiZGRhYjVjYmIwMzYzNjg1OWJl
MzY1ZWNhYmEuLjJkZDRlOWMwNjUxNjVkYTFkNjJkMzVkYTgwNjJhMTQwMzhkOTkwZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFz
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5h
c20KQEAgLTI2MCw2ICsyNjAsNyBAQCBjb25zdCBKU0VudHJ5U2xvd1BhdGhQdHJUYWcgPSBjb25z
dGV4cHIgSlNFbnRyeVNsb3dQYXRoUHRyVGFnCiBjb25zdCBOYXRpdmVUb0pJVEdhdGVQdHJUYWcg
PSBjb25zdGV4cHIgTmF0aXZlVG9KSVRHYXRlUHRyVGFnCiBjb25zdCBFeGNlcHRpb25IYW5kbGVy
UHRyVGFnID0gY29uc3RleHByIEV4Y2VwdGlvbkhhbmRsZXJQdHJUYWcKIGNvbnN0IFlhcnJFbnRy
eVB0clRhZyA9IGNvbnN0ZXhwciBZYXJyRW50cnlQdHJUYWcKK2NvbnN0IENTU1NlbGVjdG9yUHRy
VGFnID0gY29uc3RleHByIENTU1NlbGVjdG9yUHRyVGFnCiBjb25zdCBOb1B0clRhZyA9IGNvbnN0
ZXhwciBOb1B0clRhZwogIAogCkBAIC0xNjEwLDYgKzE2MTEsMTcgQEAgZW5kCiAgICAgZnVuY3Rp
b25FcGlsb2d1ZSgpCiAgICAgcmV0CiAKKyMgdW5zaWduZWQgdm1FbnRyeVRvQ1NTSklUKHVpbnRw
dHJfdCwgdWludHB0cl90LCB1aW50cHRyX3QsIGNvbnN0IHZvaWQqIGNvZGVQdHIpOworZW1pdCAi
Lmdsb2JsIF92bUVudHJ5VG9DU1NKSVQiCitlbWl0ICJfdm1FbnRyeVRvQ1NTSklUOiIKKyAgICBm
dW5jdGlvblByb2xvZ3VlKCkKK2lmIEFSTTY0IG9yIEFSTTY0RQorICAgIGptcCB0MywgQ1NTU2Vs
ZWN0b3JQdHJUYWcKKyAgICBlbWl0ICIuZ2xvYmwgX3ZtRW50cnlUb0NTU0pJVEFmdGVyIgorICAg
IGVtaXQgIl92bUVudHJ5VG9DU1NKSVRBZnRlcjoiCitlbmQKKyAgICBmdW5jdGlvbkVwaWxvZ3Vl
KCkKKyAgICByZXQKIAogaWYgbm90IChDX0xPT1Agb3IgQ19MT09QX1dJTikKICAgICAjIHZvaWQg
c2FuaXRpemVTdGFja0ZvclZNSW1wbChWTSogdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NQdHJUYWcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ1B0clRhZy5oCmluZGV4IDQ2NDViMDVjOTczNjUxN2U3YWE1MDQ5YmU4NzZlZTQ4YjJl
ODIxOGYuLjE2YTFiNGRlM2E3OGIxZmY3ZDFhYzJkN2UwODhkNzBhYmJmYzBiMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ1B0clRhZy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ1B0clRhZy5oCkBAIC02MCw2ICs2MCw3IEBAIHVz
aW5nIFB0clRhZyA9IFdURjo6UHRyVGFnOwogICAgIC8qIENhbGxlZTpKSVQgQ2FsbGVyOk5hdGl2
ZSAqLyBcCiAgICAgdihOYXRpdmVUb0pJVEdhdGVQdHJUYWcsIFB0clRhZ0NhbGxlZVR5cGU6OkpJ
VCwgUHRyVGFnQ2FsbGVyVHlwZTo6TmF0aXZlKSBcCiAgICAgdihZYXJyRW50cnlQdHJUYWcsIFB0
clRhZ0NhbGxlZVR5cGU6OkpJVCwgUHRyVGFnQ2FsbGVyVHlwZTo6TmF0aXZlKSBcCisgICAgdihD
U1NTZWxlY3RvclB0clRhZywgUHRyVGFnQ2FsbGVlVHlwZTo6SklULCBQdHJUYWdDYWxsZXJUeXBl
OjpOYXRpdmUpIFwKICAgICAvKiBDYWxsZWU6TmF0aXZlIENhbGxlcjpKSVQgKi8gXAogICAgIHYo
SG9zdEZ1bmN0aW9uUHRyVGFnLCBQdHJUYWdDYWxsZWVUeXBlOjpOYXRpdmUsIFB0clRhZ0NhbGxl
clR5cGU6OkpJVCkgXAogICAgIHYoT3BlcmF0aW9uUHRyVGFnLCBQdHJUYWdDYWxsZWVUeXBlOjpO
YXRpdmUsIFB0clRhZ0NhbGxlclR5cGU6OkpJVCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJySklULmNwcAppbmRleCA5NGQzMDJhZWFmZDUxNmE1YjNmYzdmNGJmNWY3OTVhM2Y1NmNhNzY3
Li40OTBjMDE1MWY0YTZlODdmNzgxNGE4MWFiMmU3OGM5MGFjMzkzN2QxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJySklULmNwcApAQCAtMzgxNiw4ICszODE2LDcgQEAgY2xhc3MgWWFy
ckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbywgcHJpdmF0ZSBNYWNyb0Fzc2Vt
YmxlciB7CiAjZW5kaWYKIAogI2lmIENQVShBUk02NCkKLSAgICAgICAgbW92ZShUcnVzdGVkSW1t
UHRyKHJldGFnQ29kZVB0cjx2b2lkKiwgQ0Z1bmN0aW9uUHRyVGFnLCBPcGVyYXRpb25QdHJUYWc+
KCZ2bUVudHJ5VG9ZYXJySklUQWZ0ZXIpKSwgcmVnVDApOwotICAgICAgICBmYXJKdW1wKHJlZ1Qw
LCBPcGVyYXRpb25QdHJUYWcpOworICAgICAgICBmYXJKdW1wKFRydXN0ZWRJbW1QdHIocmV0YWdD
b2RlUHRyPHZvaWQqLCBDRnVuY3Rpb25QdHJUYWcsIE9wZXJhdGlvblB0clRhZz4oJnZtRW50cnlU
b1lhcnJKSVRBZnRlcikpLCBPcGVyYXRpb25QdHJUYWcpOwogI2Vsc2UKICAgICAgICAgcmV0KCk7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBiMDYyZTkwN2I1YWM2MWZhNDYyMzY5NDBjNDZhNTcyOGI0YjhiNDAzLi5h
YjBkNjc0YjkyN2NkOGFkZmY5OTdlYjlmNDk3NThmOWNjMGFmNGFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01Mzg2LDcgKzUz
ODYsNiBAQAogCQlGREY2QkFGOTEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21w
bGV0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZERjZCQUY3MTM0QTRDOTgwMDgyMjkyMCAvKiBKU09mZmxpbmVBdWRpb0NvbXBsZXRpb25F
dmVudC5oICovOyB9OwogCQlGREY3RTlDNDEzQUMyMURCMDBBNTFFQUMgLyogSlNBdWRpb0J1ZmZl
ckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGREY3RTlDMjEzQUMyMURCMDBBNTFFQUMgLyogSlNBdWRpb0J1ZmZlckNhbGxiYWNrLmggKi87
IH07CiAJCUZFMEQ4NEU5MTA0ODQzNDgwMDFBMTc5RSAvKiBXZWJFdmVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUwRDg0RTgxMDQ4NDM0ODAwMUEx
NzlFIC8qIFdlYkV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJRkUyNzFGNjcyMDgyREJFNTAwQTk1MkQ0IC8qIENTU1B0clRhZy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUyNzFGNjQyMDgyREJC
RTAwQTk1MkQ0IC8qIENTU1B0clRhZy5oICovOyB9OwogCQlGRTM2RkQxNTE2Qzc4MjY1MDBGODg3
QzEgLyogQ2hhbmdlVmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZFMzZGRDExMTZDNzgyNjQwMEY4ODdDMSAvKiBDaGFuZ2VWZXJzaW9u
RGF0YS5oICovOyB9OwogCQlGRTM2RkQxNzE2Qzc4MjY1MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rp
b25TdGF0ZU1hY2hpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZFMzZGRDEzMTZDNzgyNjQwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlTWFj
aGluZS5oICovOyB9OwogCQlGRTM2RkQxODE2Qzc4MjY1MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rp
b25TdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkUzNkZEMTQxNkM3ODI2NDAwRjg4N0MxIC8qIFNRTFRyYW5zYWN0aW9uU3RhdGUuaCAqLzsgfTsK
QEAgLTE2ODA5LDcgKzE2ODA4LDYgQEAKIAkJRkRGN0U5QzIxM0FDMjFEQjAwQTUxRUFDIC8qIEpT
QXVkaW9CdWZmZXJDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0F1ZGlvQnVmZmVyQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUw
RDg0RTgxMDQ4NDM0ODAwMUExNzlFIC8qIFdlYkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZF
MEQ4NEVBMTA0ODQzNkUwMDFBMTc5RSAvKiBXZWJFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlGRTI3MUY2NDIwODJEQkJFMDBBOTUyRDQgLyogQ1NTUHRyVGFnLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1B0clRhZy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGRTM2RkQxMTE2Qzc4MjY0MDBGODg3QzEgLyogQ2hhbmdlVmVyc2lvbkRhdGEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hhbmdlVmVyc2lvbkRhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUzNkZEMTIxNkM3ODI2NDAwRjg4N0MxIC8q
IFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRkUzNkZEMTMxNkM3ODI2NDAwRjg4N0MxIC8qIFNRTFRyYW5zYWN0
aW9uU3RhdGVNYWNoaW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNRTFRy
YW5zYWN0aW9uU3RhdGVNYWNoaW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
ODY3NCw3ICsxODY3Miw2IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAog
CQkJCUU0NDUxMDc3MjAyQzdFMDEwMDY1N0QzMyAvKiBDb21waWxlZFNlbGVjdG9yLmggKi8sCi0J
CQkJRkUyNzFGNjQyMDgyREJCRTAwQTk1MkQ0IC8qIENTU1B0clRhZy5oICovLAogCQkJCTI2Qjk5
OTkyMTgwM0I5RDkwMEQwMTEyMSAvKiBGdW5jdGlvbkNhbGwuaCAqLywKIAkJCQkyNkI5OTk4RTE4
MDNBRTcyMDBEMDExMjEgLyogUmVnaXN0ZXJBbGxvY2F0b3IuaCAqLywKIAkJCQkyNkI5OTk5NDE4
MDRENTQyMDBEMDExMjEgLyogU2VsZWN0b3JDb21waWxlci5jcHAgKi8sCkBAIC0zMTM0MCw3ICsz
MTMzNyw2IEBACiAJCQkJOTQ2RDM3NDYxRDZEMDFENDAwNzcwODRGIC8qIENTU1Byb3BlcnR5UGFy
c2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NDlDNzcwNTFENkUzOUVBMDBDMERFNEYgLyogQ1NT
UHJvcGVydHlQYXJzZXJIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MkUzRDhERjEyMkVB
MEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmggaW4gSGVhZGVycyAqLywKLQkJ
CQlGRTI3MUY2NzIwODJEQkU1MDBBOTUyRDQgLyogQ1NTUHRyVGFnLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzVBMTJFMDBEQzA0MTQ4MDBDOUFGQUQgLyogQ1NTUmVmbGVjdFZhbHVlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0QkRBNDAwMTIxNTFCNkY1MDBGRDY2MDQgLyogQ1NTUmVnaXN0ZXJlZEN1
c3RvbVByb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdEOEZGNDFCRDFBNDc5MDBGRkU1
NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3Nzaml0L0NTU1B0clRhZy5oIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L0NTU1B0
clRhZy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YjI1M2NkNjM5MWMwM2MwZmUx
OTk4Yjc2MjQ0NTgyNWZmNTU5YzY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9DU1NQdHJUYWcuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQot
Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDUHRyVGFnLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotI2RlZmluZSBGT1JfRUFDSF9DU1NfUFRSVEFHKHYpIFwKLSAgICB2KENTU1NlbGVj
dG9yUHRyVGFnKSBcCi0KLSNpZiBDT01QSUxFUihNU1ZDKQotI3ByYWdtYSB3YXJuaW5nKHB1c2gp
Ci0jcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MzA3KQotI2VuZGlmCi0KLUZPUl9FQUNIX0NTU19Q
VFJUQUcoV1RGX0RFQ0xBUkVfUFRSVEFHKQotCi0jaWYgQ09NUElMRVIoTVNWQykKLSNwcmFnbWEg
d2FybmluZyhwb3ApCi0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3NqaXQvQ29tcGlsZWRTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L0NvbXBpbGVk
U2VsZWN0b3IuaAppbmRleCA1ZTYxNzE5YTk3OGZmZjA5MzkzZGIxMDA5MTQzMzkwN2JhZjEzZTk3
Li43NmRiY2VhZDQxMTJiYWM4ZjhmOTQ1NzFjMGFiN2E1ODQyOTZlNGFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3NqaXQvQ29tcGlsZWRTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzc2ppdC9Db21waWxlZFNlbGVjdG9yLmgKQEAgLTI3LDggKzI3LDggQEAKIAogI2lmIEVO
QUJMRShDU1NfU0VMRUNUT1JfSklUKQogCi0jaW5jbHVkZSAiQ1NTUHRyVGFnLmgiCiAjaW5jbHVk
ZSAiQ1NTU2VsZWN0b3IuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NQdHJUYWcuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaD4KIAogI2Rl
ZmluZSBDU1NfU0VMRUNUT1JfSklUX1BST0ZJTElORyAwCkBAIC00NSw3ICs0NSw3IEBAIGVudW0g
Y2xhc3MgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyA6IHVpbnQ4X3Qgewogc3RydWN0IENvbXBp
bGVkU2VsZWN0b3IgewogICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKICAgICBT
ZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIHN0YXR1cyB7IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0
dXM6Ok5vdENvbXBpbGVkIH07Ci0gICAgSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVSZWY8Q1NTU2Vs
ZWN0b3JQdHJUYWc+IGNvZGVSZWY7CisgICAgSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SlND
OjpDU1NTZWxlY3RvclB0clRhZz4gY29kZVJlZjsKIAogI2lmIGRlZmluZWQoQ1NTX1NFTEVDVE9S
X0pJVF9QUk9GSUxJTkcpICYmIENTU19TRUxFQ1RPUl9KSVRfUFJPRklMSU5HCiAgICAgdW5zaWdu
ZWQgdXNlQ291bnQgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvRnVu
Y3Rpb25DYWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvRnVuY3Rpb25DYWxsLmgKaW5kZXgg
N2E3ZDNhNjY4ZDRlZWM4NmVmOGRkZGU4NGFmNzJiY2I5M2YyZTEyYS4uMjI5ZjY3OTk3NWRlM2Ix
MWVkNjVhN2MzYTljNWNlOTYzYzg4MjJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
aml0L0Z1bmN0aW9uQ2FsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9GdW5jdGlvbkNh
bGwuaApAQCAtMjcsMTAgKzI3LDEwIEBACiAKICNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkK
IAotI2luY2x1ZGUgIkNTU1B0clRhZy5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyQWxsb2NhdG9yLmgi
CiAjaW5jbHVkZSAiU3RhY2tBbGxvY2F0b3IuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9H
UFJJbmZvLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDUHRyVGFnLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvTWFjcm9Bc3NlbWJsZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCmluZGV4IDJhMWVh
NGZiNTFiMzE0YWE1OGRiMzlkNWM0MTU4ODYyMWYxZjIzYzYuLmYxOGNlZmI0NzdiODgzM2ZmMDM1
YzY4MTg3YjZiZDExNGQ1ZDc0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9T
ZWxlY3RvckNvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JD
b21waWxlci5jcHAKQEAgLTMxNyw3ICszMTcsNyBAQCBzdHJ1Y3QgQmFja3RyYWNraW5nTGV2ZWwg
ewogY2xhc3MgU2VsZWN0b3JDb2RlR2VuZXJhdG9yIHsKIHB1YmxpYzoKICAgICBTZWxlY3RvckNv
ZGVHZW5lcmF0b3IoY29uc3QgQ1NTU2VsZWN0b3IqLCBTZWxlY3RvckNvbnRleHQpOwotICAgIFNl
bGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgY29tcGlsZShKU0M6Ok1hY3JvQXNzZW1ibGVyQ29kZVJl
ZjxDU1NTZWxlY3RvclB0clRhZz4mKTsKKyAgICBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIGNv
bXBpbGUoSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SlNDOjpDU1NTZWxlY3RvclB0clRhZz4m
KTsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgQXNzZW1ibGVyOjpSZWdpc3RlcklEIHJl
dHVyblJlZ2lzdGVyOwpAQCAtMzI1LDYgKzMyNSw4IEBAIGNsYXNzIFNlbGVjdG9yQ29kZUdlbmVy
YXRvciB7CiAgICAgc3RhdGljIGNvbnN0IEFzc2VtYmxlcjo6UmVnaXN0ZXJJRCBjaGVja2luZ0Nv
bnRleHRSZWdpc3RlcjsKICAgICBzdGF0aWMgY29uc3QgQXNzZW1ibGVyOjpSZWdpc3RlcklEIGNh
bGxGcmFtZVJlZ2lzdGVyOwogCisgICAgdm9pZCBnZW5lcmF0ZVJldHVybigpOworCiAgICAgdm9p
ZCBnZW5lcmF0ZVNlbGVjdG9yQ2hlY2tlcigpOwogICAgIHZvaWQgZ2VuZXJhdGVTZWxlY3RvckNo
ZWNrZXJFeGNsdWRpbmdQc2V1ZG9FbGVtZW50cyhBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJl
Q2FzZXMsIGNvbnN0IFNlbGVjdG9yRnJhZ21lbnRMaXN0Jik7CiAgICAgdm9pZCBnZW5lcmF0ZUVs
ZW1lbnRNYXRjaGVzU2VsZWN0b3JMaXN0KEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmVDYXNl
cywgQXNzZW1ibGVyOjpSZWdpc3RlcklEIGVsZW1lbnRUb01hdGNoLCBjb25zdCBTZWxlY3Rvckxp
c3QmKTsKQEAgLTE0MzcsNyArMTQzOSw3IEBAIHZvaWQgY29tcHV0ZUJhY2t0cmFja2luZ01lbW9y
eVJlcXVpcmVtZW50cyhTZWxlY3RvckZyYWdtZW50TGlzdCYgc2VsZWN0b3JGcmFnbWVuCiAgICAg
fQogfQogCi1pbmxpbmUgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBTZWxlY3RvckNvZGVHZW5l
cmF0b3I6OmNvbXBpbGUoSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVSZWY8Q1NTU2VsZWN0b3JQdHJU
YWc+JiBjb2RlUmVmKQoraW5saW5lIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgU2VsZWN0b3JD
b2RlR2VuZXJhdG9yOjpjb21waWxlKEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpTQzo6Q1NT
U2VsZWN0b3JQdHJUYWc+JiBjb2RlUmVmKQogewogICAgIHN3aXRjaCAobV9mdW5jdGlvblR5cGUp
IHsKICAgICBjYXNlIEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVja2VyOgpAQCAtMTQ0
NSw5ICsxNDQ3LDggQEAgaW5saW5lIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgU2VsZWN0b3JD
b2RlR2VuZXJhdG9yOjpjb21waWxlKEpTQzo6TWFjcm9Bc3NlbWIKICAgICAgICAgZ2VuZXJhdGVT
ZWxlY3RvckNoZWNrZXIoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGdW5jdGlvblR5cGU6
OkNhbm5vdE1hdGNoQW55dGhpbmc6Ci0gICAgICAgIG1fYXNzZW1ibGVyLnRhZ1JldHVybkFkZHJl
c3MoKTsKICAgICAgICAgbV9hc3NlbWJsZXIubW92ZShBc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigw
KSwgcmV0dXJuUmVnaXN0ZXIpOwotICAgICAgICBtX2Fzc2VtYmxlci5yZXQoKTsKKyAgICAgICAg
Z2VuZXJhdGVSZXR1cm4oKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGdW5jdGlvblR5cGU6
OkNhbm5vdENvbXBpbGU6CiAgICAgICAgIHJldHVybiBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVz
OjpDYW5ub3RDb21waWxlOwpAQCAtMTQ2Niw5ICsxNDY3LDkgQEAgaW5saW5lIFNlbGVjdG9yQ29t
cGlsYXRpb25TdGF0dXMgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpjb21waWxlKEpTQzo6TWFjcm9B
c3NlbWIKICAgICAgICAgbGlua0J1ZmZlci5saW5rKG1fZnVuY3Rpb25DYWxsc1tpXS5maXJzdCwg
bV9mdW5jdGlvbkNhbGxzW2ldLnNlY29uZCk7CiAKICNpZiBDU1NfU0VMRUNUT1JfSklUX0RFQlVH
R0lORwotICAgIGNvZGVSZWYgPSBsaW5rQnVmZmVyLmZpbmFsaXplQ29kZVdpdGhEaXNhc3NlbWJs
eShDU1NTZWxlY3RvclB0clRhZywgIkNTUyBTZWxlY3RvciBKSVQgZm9yIFwiJXNcIiIsIG1fb3Jp
Z2luYWxTZWxlY3Rvci0+c2VsZWN0b3JUZXh0KCkudXRmOCgpLmRhdGEoKSk7CisgICAgY29kZVJl
ZiA9IGxpbmtCdWZmZXIuZmluYWxpemVDb2RlV2l0aERpc2Fzc2VtYmx5KEpTQzo6Q1NTU2VsZWN0
b3JQdHJUYWcsICJDU1MgU2VsZWN0b3IgSklUIGZvciBcIiVzXCIiLCBtX29yaWdpbmFsU2VsZWN0
b3ItPnNlbGVjdG9yVGV4dCgpLnV0ZjgoKS5kYXRhKCkpOwogI2Vsc2UKLSAgICBjb2RlUmVmID0g
RklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBDU1NTZWxlY3RvclB0clRhZywgIkNTUyBTZWxlY3Rv
ciBKSVQiKTsKKyAgICBjb2RlUmVmID0gRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBKU0M6OkNT
U1NlbGVjdG9yUHRyVGFnLCAiQ1NTIFNlbGVjdG9yIEpJVCIpOwogI2VuZGlmCiAKICAgICBpZiAo
bV9mdW5jdGlvblR5cGUgPT0gRnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIgfHwg
bV9mdW5jdGlvblR5cGUgPT0gRnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nKQpAQCAt
MTkxMSwxMSArMTkxMiw3IEBAIGlubGluZSB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6cG9w
TWFjcm9Bc3NlbWJsZXJSZWdpc3RlcnMoU3RhY2tBbGxvY2F0b3ImIHN0CiBpbmxpbmUgYm9vbCBT
ZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlUHJvbG9ndWUoKQogewogI2lmIENQVShBUk02
NCkKLSAgICBWZWN0b3I8SlNDOjpNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCwgMj4gcHJvbG9n
dWVSZWdpc3RlcnM7Ci0gICAgcHJvbG9ndWVSZWdpc3RlcnMuYXBwZW5kKEpTQzo6QVJNNjRSZWdp
c3RlcnM6OmxyKTsKLSAgICBwcm9sb2d1ZVJlZ2lzdGVycy5hcHBlbmQoSlNDOjpBUk02NFJlZ2lz
dGVyczo6ZnApOwotICAgIG1fcHJvbG9ndWVTdGFja1JlZmVyZW5jZXMgPSBtX3N0YWNrQWxsb2Nh
dG9yLnB1c2gocHJvbG9ndWVSZWdpc3RlcnMpOwotICAgIHJldHVybiB0cnVlOworICAgIC8vIERv
IG5vdGhpbmcuIFRyYW1wb2xpbmUgZGlkIGl0LgogI2VsaWYgQ1BVKEFSTV9USFVNQjIpCiAgICAg
VmVjdG9yPEpTQzo6TWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQsIDE+IHByb2xvZ3VlUmVnaXN0
ZXJzOwogICAgIHByb2xvZ3VlUmVnaXN0ZXJzLmFwcGVuZChKU0M6OkFSTVJlZ2lzdGVyczo6bHIp
OwpAQCAtMTkzMyw4ICsxOTMwLDcgQEAgaW5saW5lIGJvb2wgU2VsZWN0b3JDb2RlR2VuZXJhdG9y
OjpnZW5lcmF0ZVByb2xvZ3VlKCkKIGlubGluZSB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6
Z2VuZXJhdGVFcGlsb2d1ZShTdGFja0FsbG9jYXRvciYgc3RhY2tBbGxvY2F0b3IpCiB7CiAjaWYg
Q1BVKEFSTTY0KQotICAgIFZlY3RvcjxKU0M6Ok1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklELCAy
PiBwcm9sb2d1ZVJlZ2lzdGVycyh7IEpTQzo6QVJNNjRSZWdpc3RlcnM6OmxyLCBKU0M6OkFSTTY0
UmVnaXN0ZXJzOjpmcCB9KTsKLSAgICBzdGFja0FsbG9jYXRvci5wb3AobV9wcm9sb2d1ZVN0YWNr
UmVmZXJlbmNlcywgcHJvbG9ndWVSZWdpc3RlcnMpOworICAgIC8vIERvIG5vdGhpbmcuIFRyYW1w
b2xpbmUgZGlkIGl0LgogI2VsaWYgQ1BVKEFSTV9USFVNQjIpCiAgICAgVmVjdG9yPEpTQzo6TWFj
cm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQsIDE+IHByb2xvZ3VlUmVnaXN0ZXIoeyBKU0M6OkFSTVJl
Z2lzdGVyczo6bHIgfSk7CiAgICAgc3RhY2tBbGxvY2F0b3IucG9wKG1fcHJvbG9ndWVTdGFja1Jl
ZmVyZW5jZXMsIHByb2xvZ3VlUmVnaXN0ZXIpOwpAQCAtMTk0Niw2ICsxOTQyLDE1IEBAIGlubGlu
ZSB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVFcGlsb2d1ZShTdGFja0FsbG9j
YXRvciYgc3RhY2tBbGxvY2F0CiAjZW5kaWYKIH0KIAoraW5saW5lIHZvaWQgU2VsZWN0b3JDb2Rl
R2VuZXJhdG9yOjpnZW5lcmF0ZVJldHVybigpCit7CisjaWYgQ1BVKEFSTTY0KQorICAgIG1fYXNz
ZW1ibGVyLmZhckp1bXAoQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHJldGFnQ29kZVB0cjx2b2lk
KiwgQ0Z1bmN0aW9uUHRyVGFnLCBKU0M6Ok9wZXJhdGlvblB0clRhZz4oJnZtRW50cnlUb0NTU0pJ
VEFmdGVyKSksIEpTQzo6T3BlcmF0aW9uUHRyVGFnKTsKKyNlbHNlCisgICAgbV9hc3NlbWJsZXIu
cmV0KCk7CisjZW5kaWYKK30KKwogc3RhdGljIGJvb2wgaXNBZGphY2VudFJlbGF0aW9uKEZyYWdt
ZW50UmVsYXRpb24gcmVsYXRpb24pCiB7CiAgICAgcmV0dXJuIHJlbGF0aW9uID09IEZyYWdtZW50
UmVsYXRpb246OkRpcmVjdEFkamFjZW50IHx8IHJlbGF0aW9uID09IEZyYWdtZW50UmVsYXRpb246
OkluZGlyZWN0QWRqYWNlbnQ7CkBAIC0xOTU4LDcgKzE5NjMsNiBAQCBzdGF0aWMgYm9vbCBzaG91
bGRNYXJrU3R5bGVJc0FmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmcoY29uc3QgU2VsZWN0b3JGcmFn
bWVudCYgZgogCiB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVTZWxlY3RvckNo
ZWNrZXIoKQogewotICAgIG1fYXNzZW1ibGVyLnRhZ1JldHVybkFkZHJlc3MoKTsKICAgICBwdXNo
TWFjcm9Bc3NlbWJsZXJSZWdpc3RlcnMoKTsKICAgICBTdGFja0FsbG9jYXRvciBlYXJseUZhaWx1
cmVTdGFjayA9IG1fc3RhY2tBbGxvY2F0b3I7CiAKQEAgLTE5ODksNyArMTk5Myw3IEBAIHZvaWQg
U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZVNlbGVjdG9yQ2hlY2tlcigpCiAgICAgaWYg
KG1fc2VsZWN0b3JGcmFnbWVudHMuc3RhY2tSZXF1aXJlbWVudHMgPiBtYXhpbXVtQmFja3RyYWNr
aW5nQWxsb2NhdGlvbnMpIHsKICAgICAgICAgbV9hc3NlbWJsZXIubW92ZShBc3NlbWJsZXI6OlRy
dXN0ZWRJbW0zMigwKSwgcmV0dXJuUmVnaXN0ZXIpOwogICAgICAgICBwb3BNYWNyb0Fzc2VtYmxl
clJlZ2lzdGVycyhtX3N0YWNrQWxsb2NhdG9yKTsKLSAgICAgICAgbV9hc3NlbWJsZXIucmV0KCk7
CisgICAgICAgIGdlbmVyYXRlUmV0dXJuKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTIwNTQsNyArMjA1OCw3IEBAIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZVNl
bGVjdG9yQ2hlY2tlcigpCiAgICAgICAgICAgICAvLyBTdWNjZXNzLgogICAgICAgICAgICAgbV9h
c3NlbWJsZXIubW92ZShBc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigxKSwgcmV0dXJuUmVnaXN0ZXIp
OwogICAgICAgICAgICAgcG9wTWFjcm9Bc3NlbWJsZXJSZWdpc3RlcnMoc3VjY2Vzc1N0YWNrKTsK
LSAgICAgICAgICAgIG1fYXNzZW1ibGVyLnJldCgpOworICAgICAgICAgICAgZ2VuZXJhdGVSZXR1
cm4oKTsKIAogICAgICAgICAgICAgLy8gRmFpbHVyZS4KICAgICAgICAgICAgIEFTU0VSVF9XSVRI
X01FU1NBR0UoZmFpbHVyZU9uRnVuY3Rpb25FbnRyeS5lbXB0eSgpLCAiRWFybHkgZmFpbHVyZSBv
biBmdW5jdGlvbiBlbnRyeSBpcyB1c2VkIGZvciBwc2V1ZG8gZWxlbWVudC4gV2hlbiBlYXJseSBm
YWlsdXJlIGlzIHVzZWQsIGZ1bmN0aW9uIHR5cGUgaXMgU2VsZWN0b3JDaGVja2VyV2l0aENoZWNr
aW5nQ29udGV4dC4iKTsKQEAgLTIwNjIsNyArMjA2Niw3IEBAIHZvaWQgU2VsZWN0b3JDb2RlR2Vu
ZXJhdG9yOjpnZW5lcmF0ZVNlbGVjdG9yQ2hlY2tlcigpCiAgICAgICAgICAgICAgICAgZmFpbHVy
ZUNhc2VzLmxpbmsoJm1fYXNzZW1ibGVyKTsKICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5t
b3ZlKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDApLCByZXR1cm5SZWdpc3Rlcik7CiAgICAgICAg
ICAgICAgICAgcG9wTWFjcm9Bc3NlbWJsZXJSZWdpc3RlcnMoZmFpbHVyZVN0YWNrKTsKLSAgICAg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5yZXQoKTsKKyAgICAgICAgICAgICAgICBnZW5lcmF0ZVJl
dHVybigpOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgZmFpbHVyZVN0YWNr
ID0gc3VjY2Vzc1N0YWNrOwogCkBAIC0yMDkxLDE0ICsyMDk1LDE0IEBAIHZvaWQgU2VsZWN0b3JD
b2RlR2VuZXJhdG9yOjpnZW5lcmF0ZVNlbGVjdG9yQ2hlY2tlcigpCiAgICAgaWYgKG5lZWRzRXBp
bG9ndWUpCiAgICAgICAgIGdlbmVyYXRlRXBpbG9ndWUoc3VjY2Vzc1N0YWNrKTsKICAgICBwb3BN
YWNyb0Fzc2VtYmxlclJlZ2lzdGVycyhzdWNjZXNzU3RhY2spOwotICAgIG1fYXNzZW1ibGVyLnJl
dCgpOworICAgIGdlbmVyYXRlUmV0dXJuKCk7CiAKICAgICAvLyBFYXJseSBmYWlsdXJlIG9uIGZ1
bmN0aW9uIGVudHJ5IGNhc2UuCiAgICAgaWYgKCFmYWlsdXJlT25GdW5jdGlvbkVudHJ5LmVtcHR5
KCkpIHsKICAgICAgICAgZmFpbHVyZU9uRnVuY3Rpb25FbnRyeS5saW5rKCZtX2Fzc2VtYmxlcik7
CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmUoQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMCksIHJl
dHVyblJlZ2lzdGVyKTsKICAgICAgICAgcG9wTWFjcm9Bc3NlbWJsZXJSZWdpc3RlcnMoZWFybHlG
YWlsdXJlU3RhY2spOwotICAgICAgICBtX2Fzc2VtYmxlci5yZXQoKTsKKyAgICAgICAgZ2VuZXJh
dGVSZXR1cm4oKTsKICAgICB9IGVsc2UKICAgICAgICAgZWFybHlGYWlsdXJlU3RhY2sgPSBzdWNj
ZXNzU3RhY2s7CiAgICAgbV9zdGFja0FsbG9jYXRvci5tZXJnZShXVEZNb3ZlKHN1Y2Nlc3NTdGFj
ayksIFdURk1vdmUoZWFybHlGYWlsdXJlU3RhY2spKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2Vs
ZWN0b3JDb21waWxlci5oCmluZGV4IDBmZWRhNGJhYjgzYzE4Y2RhMzQxZDczZTJiNmNjZDZkMDFj
MWU2YzEuLmE4NmUzZTQ2ZDY2ZmIzZjQ1OGY3YmJlYTE1ODBmMDE4MzJmMTYxNzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuaApAQCAtNDUsMzYgKzQ1LDUzIEBAIGVu
dW0gY2xhc3MgU2VsZWN0b3JDb250ZXh0IHsKICAgICBRdWVyeVNlbGVjdG9yCiB9OwogCi10eXBl
ZGVmIHVuc2lnbmVkICgqUnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlcikoY29uc3Qg
RWxlbWVudCosIHVuc2lnbmVkKik7Ci10eXBlZGVmIHVuc2lnbmVkICgqUXVlcnlTZWxlY3RvclNp
bXBsZVNlbGVjdG9yQ2hlY2tlcikoY29uc3QgRWxlbWVudCopOwotCi10eXBlZGVmIHVuc2lnbmVk
ICgqUnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpKGNvbnN0
IEVsZW1lbnQqLCBTZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29udGV4dCosIHVuc2lnbmVkKik7
Ci10eXBlZGVmIHVuc2lnbmVkICgqUXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVj
a2luZ0NvbnRleHQpKGNvbnN0IEVsZW1lbnQqLCBjb25zdCBTZWxlY3RvckNoZWNrZXI6OkNoZWNr
aW5nQ29udGV4dCopOwotCiB2b2lkIGNvbXBpbGVTZWxlY3RvcihDb21waWxlZFNlbGVjdG9yJiwg
Y29uc3QgQ1NTU2VsZWN0b3IqLCBTZWxlY3RvckNvbnRleHQpOwogCi1pbmxpbmUgUnVsZUNvbGxl
Y3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciBydWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVj
a2VyRnVuY3Rpb24oQ29tcGlsZWRTZWxlY3RvciYgY29tcGlsZWRTZWxlY3RvcikKK2V4dGVybiAi
QyIgdW5zaWduZWQgdm1FbnRyeVRvQ1NTSklUKHVpbnRwdHJfdCwgdWludHB0cl90LCB1aW50cHRy
X3QsIGNvbnN0IHZvaWQqIGNvZGVQdHIpOworZXh0ZXJuICJDIiB2b2lkIHZtRW50cnlUb0NTU0pJ
VEFmdGVyKHZvaWQpOworCitpbmxpbmUgdW5zaWduZWQgcnVsZUNvbGxlY3RvclNpbXBsZVNlbGVj
dG9yQ2hlY2tlcihDb21waWxlZFNlbGVjdG9yJiBjb21waWxlZFNlbGVjdG9yLCBjb25zdCBFbGVt
ZW50KiBlbGVtZW50LCB1bnNpZ25lZCogdmFsdWUpCiB7CiAgICAgQVNTRVJUKGNvbXBpbGVkU2Vs
ZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNpbXBsZVNlbGVjdG9y
Q2hlY2tlcik7Ci0gICAgcmV0dXJuIFdURjo6dW50YWdDRnVuY3Rpb25QdHI8UnVsZUNvbGxlY3Rv
clNpbXBsZVNlbGVjdG9yQ2hlY2tlciwgQ1NTU2VsZWN0b3JQdHJUYWc+KGNvbXBpbGVkU2VsZWN0
b3IuY29kZVJlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisjaWYgQ1BVKEFSTTY0KQor
ICAgIHJldHVybiB2bUVudHJ5VG9DU1NKSVQoYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oZWxlbWVu
dCksIGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KHZhbHVlKSwgMCwgY29tcGlsZWRTZWxlY3Rvci5j
b2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyNlbHNlCisgICAgdHlwZWRlZiB1
bnNpZ25lZCAoKlJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIpKGNvbnN0IEVsZW1l
bnQqLCB1bnNpZ25lZCopOworICAgIHJldHVybiBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFJ1bGVD
b2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIsIEpTQzo6Q1NTU2VsZWN0b3JQdHJUYWc+KGNv
bXBpbGVkU2VsZWN0b3IuY29kZVJlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoZWxlbWVu
dCwgdmFsdWUpOworI2VuZGlmCiB9CiAKLWlubGluZSBRdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0
b3JDaGVja2VyIHF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbihDb21w
aWxlZFNlbGVjdG9yJiBjb21waWxlZFNlbGVjdG9yKQoraW5saW5lIHVuc2lnbmVkIHF1ZXJ5U2Vs
ZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIoQ29tcGlsZWRTZWxlY3RvciYgY29tcGlsZWRTZWxl
Y3RvciwgY29uc3QgRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBBU1NFUlQoY29tcGlsZWRTZWxl
Y3Rvci5zdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2ltcGxlU2VsZWN0b3JD
aGVja2VyKTsKLSAgICByZXR1cm4gV1RGOjp1bnRhZ0NGdW5jdGlvblB0cjxRdWVyeVNlbGVjdG9y
U2ltcGxlU2VsZWN0b3JDaGVja2VyLCBDU1NTZWxlY3RvclB0clRhZz4oY29tcGlsZWRTZWxlY3Rv
ci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyNpZiBDUFUoQVJNNjQpCisg
ICAgcmV0dXJuIHZtRW50cnlUb0NTU0pJVChiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihlbGVtZW50
KSwgMCwgMCwgY29tcGlsZWRTZWxlY3Rvci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVz
cygpKTsKKyNlbHNlCisgICAgdHlwZWRlZiB1bnNpZ25lZCAoKlF1ZXJ5U2VsZWN0b3JTaW1wbGVT
ZWxlY3RvckNoZWNrZXIpKGNvbnN0IEVsZW1lbnQqKTsKKyAgICByZXR1cm4gV1RGOjp1bnRhZ0NG
dW5jdGlvblB0cjxRdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyLCBKU0M6OkNTU1Nl
bGVjdG9yUHRyVGFnPihjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgpLmV4ZWN1dGFibGVB
ZGRyZXNzKCkpKGVsZW1lbnQpOworI2VuZGlmCiB9CiAKLWlubGluZSBSdWxlQ29sbGVjdG9yU2Vs
ZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCBydWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVj
a2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdDb250ZXh0KENvbXBpbGVkU2VsZWN0b3ImIGNvbXBpbGVk
U2VsZWN0b3IpCitpbmxpbmUgdW5zaWduZWQgcnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlcldp
dGhDaGVja2luZ0NvbnRleHQoQ29tcGlsZWRTZWxlY3RvciYgY29tcGlsZWRTZWxlY3RvciwgY29u
c3QgRWxlbWVudCogZWxlbWVudCwgU2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0NvbnRleHQqIGNv
bnRleHQsIHVuc2lnbmVkKiB2YWx1ZSkKIHsKICAgICBBU1NFUlQoY29tcGlsZWRTZWxlY3Rvci5z
dGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2VsZWN0b3JDaGVja2VyV2l0aENo
ZWNraW5nQ29udGV4dCk7Ci0gICAgcmV0dXJuIFdURjo6dW50YWdDRnVuY3Rpb25QdHI8UnVsZUNv
bGxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQsIENTU1NlbGVjdG9yUHRy
VGFnPihjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkp
OworI2lmIENQVShBUk02NCkKKyAgICByZXR1cm4gdm1FbnRyeVRvQ1NTSklUKGJpdHdpc2VfY2Fz
dDx1aW50cHRyX3Q+KGVsZW1lbnQpLCBiaXR3aXNlX2Nhc3Q8dWludHB0cl90Pihjb250ZXh0KSwg
Yml0d2lzZV9jYXN0PHVpbnRwdHJfdD4odmFsdWUpLCBjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYu
Y29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpOworI2Vsc2UKKyAgICB0eXBlZGVmIHVuc2lnbmVk
ICgqUnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpKGNvbnN0
IEVsZW1lbnQqLCBTZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29udGV4dCosIHVuc2lnbmVkKik7
CisgICAgcmV0dXJuIFdURjo6dW50YWdDRnVuY3Rpb25QdHI8UnVsZUNvbGxlY3RvclNlbGVjdG9y
Q2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQsIEpTQzo6Q1NTU2VsZWN0b3JQdHJUYWc+KGNvbXBp
bGVkU2VsZWN0b3IuY29kZVJlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoZWxlbWVudCwg
Y29udGV4dCwgdmFsdWUpOworI2VuZGlmCiB9CiAKLWlubGluZSBRdWVyeVNlbGVjdG9yU2VsZWN0
b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCBxdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2Vy
RnVuY3Rpb25XaXRoQ2hlY2tpbmdDb250ZXh0KENvbXBpbGVkU2VsZWN0b3ImIGNvbXBpbGVkU2Vs
ZWN0b3IpCitpbmxpbmUgdW5zaWduZWQgcXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhD
aGVja2luZ0NvbnRleHQoQ29tcGlsZWRTZWxlY3RvciYgY29tcGlsZWRTZWxlY3RvciwgY29uc3Qg
RWxlbWVudCogZWxlbWVudCwgY29uc3QgU2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0NvbnRleHQq
IGNvbnRleHQpCiB7CiAgICAgQVNTRVJUKGNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVj
dG9yQ29tcGlsYXRpb25TdGF0dXM6OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQp
OwotICAgIHJldHVybiBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFF1ZXJ5U2VsZWN0b3JTZWxlY3Rv
ckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0LCBDU1NTZWxlY3RvclB0clRhZz4oY29tcGlsZWRT
ZWxlY3Rvci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyNpZiBDUFUoQVJN
NjQpCisgICAgcmV0dXJuIHZtRW50cnlUb0NTU0pJVChiaXR3aXNlX2Nhc3Q8dWludHB0cl90Pihl
bGVtZW50KSwgYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oY29udGV4dCksIDAsIGNvbXBpbGVkU2Vs
ZWN0b3IuY29kZVJlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisjZWxzZQorICAgIHR5
cGVkZWYgdW5zaWduZWQgKCpRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5n
Q29udGV4dCkoY29uc3QgRWxlbWVudCosIGNvbnN0IFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdD
b250ZXh0Kik7CisgICAgcmV0dXJuIFdURjo6dW50YWdDRnVuY3Rpb25QdHI8UXVlcnlTZWxlY3Rv
clNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQsIEpTQzo6Q1NTU2VsZWN0b3JQdHJU
YWc+KGNvbXBpbGVkU2VsZWN0b3IuY29kZVJlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSko
ZWxlbWVudCwgY29udGV4dCk7CisjZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgU2VsZWN0b3JD
b21waWxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCmluZGV4IGEwOTdhYTJiMDYw
ZjgyZmJkODM5OGZlZWUzMjFjMjEyMjY0MTg2NzcuLjQwZDQ5OTVlNjUxYTE1Njc3MTFmM2QwMWYy
NmI3YWM5MmM4NzYyYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1
ZXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKQEAgLTM5
Niw4ICszOTYsOCBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0
ZVNpbmdsZU11bHRpU2VsZWN0b3JEYXRhKGNvbnN0IENvbnRhaQogfQogCiAjaWYgRU5BQkxFKENT
U19TRUxFQ1RPUl9KSVQpCi10ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0Pgot
QUxXQVlTX0lOTElORSB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVDb21waWxlZFNpbXBs
ZVNlbGVjdG9yQ2hlY2tlcihjb25zdCBDb250YWluZXJOb2RlJiBzZWFyY2hSb290Tm9kZSwgU2Vs
ZWN0b3JDb21waWxlcjo6UXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciBzZWxlY3Rv
ckNoZWNrZXIsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYgb3V0cHV0
LCBjb25zdCBTZWxlY3RvckRhdGEmIHNlbGVjdG9yRGF0YSkgY29uc3QKK3RlbXBsYXRlIDx0eXBl
bmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQsIHR5cGVuYW1lIENoZWNrZXI+CitBTFdBWVNfSU5MSU5F
IHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0b3JDaGVj
a2VyKGNvbnN0IENvbnRhaW5lck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBDaGVja2VyIHNlbGVjdG9y
Q2hlY2tlciwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRUeXBlJiBvdXRwdXQs
IGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JEYXRhKSBjb25zdAogewogICAgIGZvciAoYXV0
byYgZWxlbWVudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPEVsZW1lbnQ+KGNvbnN0X2Nhc3Q8Q29udGFp
bmVyTm9kZSY+KHNlYXJjaFJvb3ROb2RlKSkpIHsKICAgICAgICAgc2VsZWN0b3JEYXRhLmNvbXBp
bGVkU2VsZWN0b3Iud2FzVXNlZCgpOwpAQCAtNDEwLDggKzQxMCw4IEBAIEFMV0FZU19JTkxJTkUg
dm9pZCBTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGlsZWRTaW1wbGVTZWxlY3RvckNoZWNr
ZXIoY29uc3QKICAgICB9CiB9CiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJh
aXQ+Ci1BTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZUNvbXBpbGVk
U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dChjb25zdCBDb250YWluZXJOb2RlJiBy
b290Tm9kZSwgY29uc3QgQ29udGFpbmVyTm9kZSYgc2VhcmNoUm9vdE5vZGUsIFNlbGVjdG9yQ29t
cGlsZXI6OlF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0IHNl
bGVjdG9yQ2hlY2tlciwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRUeXBlJiBv
dXRwdXQsIGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JEYXRhKSBjb25zdAordGVtcGxhdGUg
PHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdCwgdHlwZW5hbWUgQ2hlY2tlcj4KK0FMV0FZU19J
TkxJTkUgdm9pZCBTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGlsZWRTZWxlY3RvckNoZWNr
ZXJXaXRoQ2hlY2tpbmdDb250ZXh0KGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25z
dCBDb250YWluZXJOb2RlJiBzZWFyY2hSb290Tm9kZSwgQ2hlY2tlciBzZWxlY3RvckNoZWNrZXIs
IHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYgb3V0cHV0LCBjb25zdCBT
ZWxlY3RvckRhdGEmIHNlbGVjdG9yRGF0YSkgY29uc3QKIHsKICAgICBTZWxlY3RvckNoZWNrZXI6
OkNoZWNraW5nQ29udGV4dCBjaGVja2luZ0NvbnRleHQoU2VsZWN0b3JDaGVja2VyOjpNb2RlOjpR
dWVyeWluZ1J1bGVzKTsKICAgICBjaGVja2luZ0NvbnRleHQuc2NvcGUgPSByb290Tm9kZS5pc0Rv
Y3VtZW50Tm9kZSgpID8gbnVsbHB0ciA6ICZyb290Tm9kZTsKQEAgLTQzNywxMyArNDM3LDExIEBA
IEFMV0FZU19JTkxJTkUgdm9pZCBTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGlsZWRTaW5n
bGVNdWx0aVNlbGVjdG9yRGF0YShjb25zCiAgICAgICAgICAgICBzZWxlY3Rvci5jb21waWxlZFNl
bGVjdG9yLndhc1VzZWQoKTsKIAogICAgICAgICAgICAgYm9vbCBtYXRjaGVkID0gZmFsc2U7Ci0g
ICAgICAgICAgICBpZiAoc2VsZWN0b3IuY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2VsZWN0
b3JDb21waWxhdGlvblN0YXR1czo6U2ltcGxlU2VsZWN0b3JDaGVja2VyKSB7Ci0gICAgICAgICAg
ICAgICAgYXV0byBzZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVj
dG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24oc2VsZWN0b3IuY29tcGlsZWRTZWxlY3Rv
cik7Ci0gICAgICAgICAgICAgICAgbWF0Y2hlZCA9IHNlbGVjdG9yQ2hlY2tlcigmZWxlbWVudCk7
Ci0gICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHNlbGVjdG9yLmNvbXBpbGVk
U2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNpbXBsZVNlbGVj
dG9yQ2hlY2tlcikKKyAgICAgICAgICAgICAgICBtYXRjaGVkID0gU2VsZWN0b3JDb21waWxlcjo6
cXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlcihzZWxlY3Rvci5jb21waWxlZFNlbGVj
dG9yLCAmZWxlbWVudCk7CisgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBBU1NF
UlQoc2VsZWN0b3IuY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlv
blN0YXR1czo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCk7Ci0gICAgICAgICAg
ICAgICAgYXV0byBzZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVj
dG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdDb250ZXh0KHNlbGVjdG9yLmNv
bXBpbGVkU2VsZWN0b3IpOwotICAgICAgICAgICAgICAgIG1hdGNoZWQgPSBzZWxlY3RvckNoZWNr
ZXIoJmVsZW1lbnQsICZjaGVja2luZ0NvbnRleHQpOworICAgICAgICAgICAgICAgIG1hdGNoZWQg
PSBTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNr
aW5nQ29udGV4dChzZWxlY3Rvci5jb21waWxlZFNlbGVjdG9yLCAmZWxlbWVudCwgJmNoZWNraW5n
Q29udGV4dCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAobWF0Y2hlZCkgewogICAg
ICAgICAgICAgICAgIFNlbGVjdG9yUXVlcnlUcmFpdDo6YXBwZW5kT3V0cHV0Rm9yRWxlbWVudChv
dXRwdXQsICZlbGVtZW50KTsKQEAgLTUyNCwxMiArNTIyLDE0IEBAIEFMV0FZU19JTkxJTkUgdm9p
ZCBTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCB0eXBl
bmFtZSBTCiAgICAgICAgIENvbXBpbGVkU2luZ2xlQ2FzZToKICAgICAgICAgY29uc3QgU2VsZWN0
b3JEYXRhJiBzZWxlY3RvckRhdGEgPSBtX3NlbGVjdG9ycy5maXJzdCgpOwogICAgICAgICBpZiAo
c2VsZWN0b3JEYXRhLmNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRp
b25TdGF0dXM6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcikgewotICAgICAgICAgICAgYXV0byBzZWxl
Y3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0
b3JDaGVja2VyRnVuY3Rpb24oc2VsZWN0b3JEYXRhLmNvbXBpbGVkU2VsZWN0b3IpOwotICAgICAg
ICAgICAgZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0b3JDaGVja2VyPFNlbGVjdG9yUXVlcnlU
cmFpdD4oKnNlYXJjaFJvb3ROb2RlLCBzZWxlY3RvckNoZWNrZXIsIG91dHB1dCwgc2VsZWN0b3JE
YXRhKTsKKyAgICAgICAgICAgIGV4ZWN1dGVDb21waWxlZFNpbXBsZVNlbGVjdG9yQ2hlY2tlcjxT
ZWxlY3RvclF1ZXJ5VHJhaXQ+KCpzZWFyY2hSb290Tm9kZSwgWyZdIChjb25zdCBFbGVtZW50KiBl
bGVtZW50KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5
U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIoc2VsZWN0b3JEYXRhLmNvbXBpbGVkU2VsZWN0
b3IsIGVsZW1lbnQpOworICAgICAgICAgICAgfSwgb3V0cHV0LCBzZWxlY3RvckRhdGEpOwogICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgQVNTRVJUKHNlbGVjdG9yRGF0YS5jb21waWxlZFNl
bGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNr
ZXJXaXRoQ2hlY2tpbmdDb250ZXh0KTsKLSAgICAgICAgICAgIGF1dG8gc2VsZWN0b3JDaGVja2Vy
ID0gU2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9u
V2l0aENoZWNraW5nQ29udGV4dChzZWxlY3RvckRhdGEuY29tcGlsZWRTZWxlY3Rvcik7Ci0gICAg
ICAgICAgICBleGVjdXRlQ29tcGlsZWRTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0
PFNlbGVjdG9yUXVlcnlUcmFpdD4ocm9vdE5vZGUsICpzZWFyY2hSb290Tm9kZSwgc2VsZWN0b3JD
aGVja2VyLCBvdXRwdXQsIHNlbGVjdG9yRGF0YSk7CisgICAgICAgICAgICBleGVjdXRlQ29tcGls
ZWRTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0PFNlbGVjdG9yUXVlcnlUcmFpdD4o
cm9vdE5vZGUsICpzZWFyY2hSb290Tm9kZSwgWyZdIChjb25zdCBFbGVtZW50KiBlbGVtZW50LCBj
b25zdCBTZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29udGV4dCogY29udGV4dCkgeworICAgICAg
ICAgICAgICAgIHJldHVybiBTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2VsZWN0b3JD
aGVja2VyV2l0aENoZWNraW5nQ29udGV4dChzZWxlY3RvckRhdGEuY29tcGlsZWRTZWxlY3Rvciwg
ZWxlbWVudCwgY29udGV4dCk7CisgICAgICAgICAgICB9LCBvdXRwdXQsIHNlbGVjdG9yRGF0YSk7
CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0
b3JRdWVyeS5oCmluZGV4IDhlZWY3MmUyYWQ5NjY0NDQwMzRjOWUzYmQyNDM5YjAwNGVhN2VmMmYu
Ljk4NjNlZjEzMmJlODYzODFjYjBlNTlmY2MwODM3YjllZGE4OWM4YzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NlbGVjdG9yUXVlcnkuaApAQCAtNjYsOCArNjYsOCBAQCBjbGFzcyBTZWxlY3RvckRhdGFMaXN0
IHsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0PiB2b2lkIGV4ZWN1
dGVTaW5nbGVTZWxlY3RvckRhdGEoY29uc3QgQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0
IENvbnRhaW5lck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBjb25zdCBTZWxlY3RvckRhdGEmLCB0eXBl
bmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmKSBjb25zdDsKICAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0PiB2b2lkIGV4ZWN1dGVTaW5nbGVNdWx0aVNl
bGVjdG9yRGF0YShjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSwgdHlwZW5hbWUgU2VsZWN0
b3JRdWVyeVRyYWl0OjpPdXRwdXRUeXBlJikgY29uc3Q7CiAjaWYgRU5BQkxFKENTU19TRUxFQ1RP
Ul9KSVQpCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4gdm9pZCBl
eGVjdXRlQ29tcGlsZWRTaW1wbGVTZWxlY3RvckNoZWNrZXIoY29uc3QgQ29udGFpbmVyTm9kZSYg
c2VhcmNoUm9vdE5vZGUsIFNlbGVjdG9yQ29tcGlsZXI6OlF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxl
Y3RvckNoZWNrZXIsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYsIGNv
bnN0IFNlbGVjdG9yRGF0YSYpIGNvbnN0OwotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3Rv
clF1ZXJ5VHJhaXQ+IHZvaWQgZXhlY3V0ZUNvbXBpbGVkU2VsZWN0b3JDaGVja2VyV2l0aENoZWNr
aW5nQ29udGV4dChjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQ29udGFpbmVy
Tm9kZSYgc2VhcmNoUm9vdE5vZGUsIFNlbGVjdG9yQ29tcGlsZXI6OlF1ZXJ5U2VsZWN0b3JTZWxl
Y3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0LCB0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJh
aXQ6Ok91dHB1dFR5cGUmLCBjb25zdCBTZWxlY3RvckRhdGEmKSBjb25zdDsKKyAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0LCB0eXBlbmFtZSBDaGVja2VyPiB2b2lkIGV4
ZWN1dGVDb21waWxlZFNpbXBsZVNlbGVjdG9yQ2hlY2tlcihjb25zdCBDb250YWluZXJOb2RlJiBz
ZWFyY2hSb290Tm9kZSwgQ2hlY2tlciwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRw
dXRUeXBlJiwgY29uc3QgU2VsZWN0b3JEYXRhJikgY29uc3Q7CisgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIFNlbGVjdG9yUXVlcnlUcmFpdCwgdHlwZW5hbWUgQ2hlY2tlcj4gdm9pZCBleGVjdXRlQ29t
cGlsZWRTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KGNvbnN0IENvbnRhaW5lck5v
ZGUmIHJvb3ROb2RlLCBjb25zdCBDb250YWluZXJOb2RlJiBzZWFyY2hSb290Tm9kZSwgQ2hlY2tl
ciwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRUeXBlJiwgY29uc3QgU2VsZWN0
b3JEYXRhJikgY29uc3Q7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFp
dD4gdm9pZCBleGVjdXRlQ29tcGlsZWRTaW5nbGVNdWx0aVNlbGVjdG9yRGF0YShjb25zdCBDb250
YWluZXJOb2RlJiByb290Tm9kZSwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRU
eXBlJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgY29tcGlsZVNlbGVjdG9yKGNvbnN0IFNlbGVj
dG9yRGF0YSYpOwogI2VuZGlmIC8vIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCmluZGV4IGNkM2VhMDc0ZDU3
NGFlNWIxNGY1ODgwODI0NzdmMjE2OTY0NmExYzEuLmY0YTBiOThlZTBhNjlhYTMxNDE0NGNlODhj
YWQ1MTI4NzU1ZTE0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRS
dWxlQ29sbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNv
bGxlY3Rvci5jcHAKQEAgLTQ1NywxMiArNDU3LDExIEBAIGlubGluZSBib29sIEVsZW1lbnRSdWxl
Q29sbGVjdG9yOjpydWxlTWF0Y2hlcyhjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEsIHVuc2lnbmVk
CiAgICAgaWYgKGNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25T
dGF0dXM6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcikgewogICAgICAgICBjb21waWxlZFNlbGVjdG9y
Lndhc1VzZWQoKTsKIAotICAgICAgICBhdXRvIHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29t
cGlsZXI6OnJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbihjb21waWxl
ZFNlbGVjdG9yKTsKICNpZiAhQVNTRVJUX01TR19ESVNBQkxFRAogICAgICAgICB1bnNpZ25lZCBp
Z25vcmVTcGVjaWZpY2l0eTsKLSAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghc2VsZWN0b3JD
aGVja2VyKCZlbGVtZW50KCksICZpZ25vcmVTcGVjaWZpY2l0eSkgfHwgbV9wc2V1ZG9FbGVtZW50
UmVxdWVzdC5wc2V1ZG9JZCA9PSBQc2V1ZG9JZDo6Tm9uZSwgIldoZW4gbWF0Y2hpbmcgcHNldWRv
IGVsZW1lbnRzLCB3ZSBzaG91bGQgbmV2ZXIgY29tcGlsZSBhIHNlbGVjdG9yIGNoZWNrZXIgd2l0
aG91dCBjb250ZXh0IHVubGVzcyBpdCBjYW5ub3QgbWF0Y2ggYW55dGhpbmcuIik7CisgICAgICAg
IEFTU0VSVF9XSVRIX01FU1NBR0UoIVNlbGVjdG9yQ29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JTaW1w
bGVTZWxlY3RvckNoZWNrZXIoY29tcGlsZWRTZWxlY3RvciwgJmVsZW1lbnQoKSwgJmlnbm9yZVNw
ZWNpZmljaXR5KSB8fCBtX3BzZXVkb0VsZW1lbnRSZXF1ZXN0LnBzZXVkb0lkID09IFBzZXVkb0lk
OjpOb25lLCAiV2hlbiBtYXRjaGluZyBwc2V1ZG8gZWxlbWVudHMsIHdlIHNob3VsZCBuZXZlciBj
b21waWxlIGEgc2VsZWN0b3IgY2hlY2tlciB3aXRob3V0IGNvbnRleHQgdW5sZXNzIGl0IGNhbm5v
dCBtYXRjaCBhbnl0aGluZy4iKTsKICNlbmRpZgotICAgICAgICBib29sIHNlbGVjdG9yTWF0Y2hl
cyA9IHNlbGVjdG9yQ2hlY2tlcigmZWxlbWVudCgpLCAmc3BlY2lmaWNpdHkpOworICAgICAgICBi
b29sIHNlbGVjdG9yTWF0Y2hlcyA9IFNlbGVjdG9yQ29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JTaW1w
bGVTZWxlY3RvckNoZWNrZXIoY29tcGlsZWRTZWxlY3RvciwgJmVsZW1lbnQoKSwgJnNwZWNpZmlj
aXR5KTsKIAogICAgICAgICBpZiAoc2VsZWN0b3JNYXRjaGVzICYmIHJ1bGVEYXRhLmNvbnRhaW5z
VW5jb21tb25BdHRyaWJ1dGVTZWxlY3RvcigpKQogICAgICAgICAgICAgbV9kaWRNYXRjaFVuY29t
bW9uQXR0cmlidXRlU2VsZWN0b3IgPSB0cnVlOwpAQCAtNDgyLDkgKzQ4MSw3IEBAIGlubGluZSBi
b29sIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0Y2hlcyhjb25zdCBSdWxlRGF0YSYgcnVs
ZURhdGEsIHVuc2lnbmVkCiAjaWYgRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCiAgICAgaWYgKGNv
bXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNlbGVj
dG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpIHsKICAgICAgICAgY29tcGlsZWRTZWxlY3Rv
ci53YXNVc2VkKCk7Ci0KLSAgICAgICAgYXV0byBzZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNv
bXBpbGVyOjpydWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdD
b250ZXh0KGNvbXBpbGVkU2VsZWN0b3IpOwotICAgICAgICBzZWxlY3Rvck1hdGNoZXMgPSBzZWxl
Y3RvckNoZWNrZXIoJmVsZW1lbnQoKSwgJmNvbnRleHQsICZzcGVjaWZpY2l0eSk7CisgICAgICAg
IHNlbGVjdG9yTWF0Y2hlcyA9IFNlbGVjdG9yQ29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JTZWxlY3Rv
ckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KGNvbXBpbGVkU2VsZWN0b3IsICZlbGVtZW50KCks
ICZjb250ZXh0LCAmc3BlY2lmaWNpdHkpOwogICAgIH0gZWxzZQogI2VuZGlmIC8vIEVOQUJMRShD
U1NfU0VMRUNUT1JfSklUKQogICAgIHsK
</data>
<flag name="commit-queue"
          id="429781"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413212</attachid>
            <date>2020-11-04 14:53:01 -0800</date>
            <delta_ts>2020-11-04 15:06:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218587-20201104145300.patch</filename>
            <type>text/plain</type>
            <size>35456</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5Mzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YWViYzQ3Y2I4ZDRlNTQyM2FhMjMyN2RjN2ZjMDI5YWZiMzEzODgxLi5lMGRkYTk2ZTkzZDVmNDU1
YjNmODhkMDJkNjgzMThmOGZlODdiNGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMC0xMS0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEFwcGx5IEpJVENhZ2UgdG8gQ1NTSklUCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg1ODcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6CisgICAg
ICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogcnVudGltZS9K
U0NQdHJUYWcuaDoKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQuY3BwOgorCiAyMDIwLTExLTA0ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
Zml4IEFSTTY0IG9ubHkgY3Jhc2ggKEFSTTY0RSB3b3JrcykgYWZ0ZXIgSklUIENhZ2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAxNmQxNGM4ZTkwZTBmODYxNWM2YTA1Njc2NjQwOTE1NGViNzlhMzVhLi5mZTcwODFh
M2Q5YmY1NGYzZjc0N2QwMzFmYWE3NDI0NmMzYjdmM2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDMgQEAKKzIwMjAtMTEtMDQgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBcHBseSBKSVRDYWdlIHRvIENTU0pJVAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NTg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgQ1NTSklUIGRvZXMgbm90IGNhbGwgSklUIGZ1
bmN0aW9uIHJlY3Vyc2l2ZWx5LCBzdXBwb3J0aW5nIGl0IGluIEpJVENhZ2UgaXMgc2ltcGxlOiB3
ZSBjYW4gaGF2ZSB0cmFtcG9saW5lIGluIEMKKyAgICAgICAgYW5kIGp1bXAgdG8gSklUIGNvZGUs
IGFuZCBpbnN0ZWFkIG9mIGRvaW5nICJyZXQiLCByZXR1cm5pbmcgYmFjayB0byBDIGNvZGUgdmlh
IGp1bXAuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzc2ppdC9DU1NQdHJUYWcu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3NqaXQvQ29tcGlsZWRTZWxlY3Rvci5oOgorICAgICAg
ICAqIGNzc2ppdC9GdW5jdGlvbkNhbGwuaDoKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21w
aWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNv
ZGVHZW5lcmF0b3I6OmNvbXBpbGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxl
cjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZVByb2xvZ3VlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVF
cGlsb2d1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNv
ZGVHZW5lcmF0b3I6OmdlbmVyYXRlUmV0dXJuKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9y
Q29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVTZWxlY3RvckNoZWNrZXIp
OgorICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTaW1wbGVT
ZWxlY3RvckNoZWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6cnVs
ZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldp
dGhDaGVja2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6
cnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxl
Y3RvckNoZWNrZXJGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rv
ckNvbXBpbGVyOjpydWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tp
bmdDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6
OnF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQp
OiBEZWxldGVkLgorICAgICAgICAqIGRvbS9TZWxlY3RvclF1ZXJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVDb21waWxlZFNpbXBsZVNlbGVjdG9yQ2hl
Y2tlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRl
Q29tcGlsZWRTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVDb21waWxlZFNpbmdsZU11bHRp
U2VsZWN0b3JEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6
OmV4ZWN1dGUgY29uc3QpOgorICAgICAgICAqIGRvbS9TZWxlY3RvclF1ZXJ5Lmg6CisgICAgICAg
ICogc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0Y2hlcyk6CisKIDIwMjAtMTEtMDQgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHNvbWUg
bWlzc2luZyBoZWFkZXIgaW5jbHVkZXMgaW4gbWVkaWEgc291cmNlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAppbmRleCBkOGU5NDQzMzY3ZjUwYzg0OWM2ODEwMTcw
Njk4MDUxODYwZjEzNjcyLi43YzZlZWU3YmUzYzAyMTE3N2ZlMjkxMDI1OWRjNDg2ZjFhMTYzMGFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcApAQCAtNTksNiAr
NTksMTAgQEAgZXh0ZXJuICJDIiB2b2lkIGV4Y2VwdGlvbkhhbmRsZXJUcmFtcG9saW5lKHZvaWQp
OwogZXh0ZXJuICJDIiB2b2lkIHJldHVybkZyb21MTEludFRyYW1wb2xpbmUodm9pZCk7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKSAmJiBDUFUoQVJNNjQpCitKU0NfQU5O
T1RBVEVfSklUX09QRVJBVElPTihfSklUVGFyZ2V0X3ZtRW50cnlUb0NTU0pJVEFmdGVyLCB2bUVu
dHJ5VG9DU1NKSVRBZnRlcik7CisjZW5kaWYKKwogdm9pZCBpbml0aWFsaXplKCkKIHsKICNpZiBF
TkFCTEUoQ19MT09QKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IDE1NWQ1ZTY0NTk3NmRiZGRhYjVjYmIwMzYzNjg1OWJl
MzY1ZWNhYmEuLjJkZDRlOWMwNjUxNjVkYTFkNjJkMzVkYTgwNjJhMTQwMzhkOTkwZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFz
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5h
c20KQEAgLTI2MCw2ICsyNjAsNyBAQCBjb25zdCBKU0VudHJ5U2xvd1BhdGhQdHJUYWcgPSBjb25z
dGV4cHIgSlNFbnRyeVNsb3dQYXRoUHRyVGFnCiBjb25zdCBOYXRpdmVUb0pJVEdhdGVQdHJUYWcg
PSBjb25zdGV4cHIgTmF0aXZlVG9KSVRHYXRlUHRyVGFnCiBjb25zdCBFeGNlcHRpb25IYW5kbGVy
UHRyVGFnID0gY29uc3RleHByIEV4Y2VwdGlvbkhhbmRsZXJQdHJUYWcKIGNvbnN0IFlhcnJFbnRy
eVB0clRhZyA9IGNvbnN0ZXhwciBZYXJyRW50cnlQdHJUYWcKK2NvbnN0IENTU1NlbGVjdG9yUHRy
VGFnID0gY29uc3RleHByIENTU1NlbGVjdG9yUHRyVGFnCiBjb25zdCBOb1B0clRhZyA9IGNvbnN0
ZXhwciBOb1B0clRhZwogIAogCkBAIC0xNjEwLDYgKzE2MTEsMTcgQEAgZW5kCiAgICAgZnVuY3Rp
b25FcGlsb2d1ZSgpCiAgICAgcmV0CiAKKyMgdW5zaWduZWQgdm1FbnRyeVRvQ1NTSklUKHVpbnRw
dHJfdCwgdWludHB0cl90LCB1aW50cHRyX3QsIGNvbnN0IHZvaWQqIGNvZGVQdHIpOworZW1pdCAi
Lmdsb2JsIF92bUVudHJ5VG9DU1NKSVQiCitlbWl0ICJfdm1FbnRyeVRvQ1NTSklUOiIKKyAgICBm
dW5jdGlvblByb2xvZ3VlKCkKK2lmIEFSTTY0IG9yIEFSTTY0RQorICAgIGptcCB0MywgQ1NTU2Vs
ZWN0b3JQdHJUYWcKKyAgICBlbWl0ICIuZ2xvYmwgX3ZtRW50cnlUb0NTU0pJVEFmdGVyIgorICAg
IGVtaXQgIl92bUVudHJ5VG9DU1NKSVRBZnRlcjoiCitlbmQKKyAgICBmdW5jdGlvbkVwaWxvZ3Vl
KCkKKyAgICByZXQKIAogaWYgbm90IChDX0xPT1Agb3IgQ19MT09QX1dJTikKICAgICAjIHZvaWQg
c2FuaXRpemVTdGFja0ZvclZNSW1wbChWTSogdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NQdHJUYWcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ1B0clRhZy5oCmluZGV4IDQ2NDViMDVjOTczNjUxN2U3YWE1MDQ5YmU4NzZlZTQ4YjJl
ODIxOGYuLjE2YTFiNGRlM2E3OGIxZmY3ZDFhYzJkN2UwODhkNzBhYmJmYzBiMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ1B0clRhZy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ1B0clRhZy5oCkBAIC02MCw2ICs2MCw3IEBAIHVz
aW5nIFB0clRhZyA9IFdURjo6UHRyVGFnOwogICAgIC8qIENhbGxlZTpKSVQgQ2FsbGVyOk5hdGl2
ZSAqLyBcCiAgICAgdihOYXRpdmVUb0pJVEdhdGVQdHJUYWcsIFB0clRhZ0NhbGxlZVR5cGU6OkpJ
VCwgUHRyVGFnQ2FsbGVyVHlwZTo6TmF0aXZlKSBcCiAgICAgdihZYXJyRW50cnlQdHJUYWcsIFB0
clRhZ0NhbGxlZVR5cGU6OkpJVCwgUHRyVGFnQ2FsbGVyVHlwZTo6TmF0aXZlKSBcCisgICAgdihD
U1NTZWxlY3RvclB0clRhZywgUHRyVGFnQ2FsbGVlVHlwZTo6SklULCBQdHJUYWdDYWxsZXJUeXBl
OjpOYXRpdmUpIFwKICAgICAvKiBDYWxsZWU6TmF0aXZlIENhbGxlcjpKSVQgKi8gXAogICAgIHYo
SG9zdEZ1bmN0aW9uUHRyVGFnLCBQdHJUYWdDYWxsZWVUeXBlOjpOYXRpdmUsIFB0clRhZ0NhbGxl
clR5cGU6OkpJVCkgXAogICAgIHYoT3BlcmF0aW9uUHRyVGFnLCBQdHJUYWdDYWxsZWVUeXBlOjpO
YXRpdmUsIFB0clRhZ0NhbGxlclR5cGU6OkpJVCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJySklULmNwcAppbmRleCA5NGQzMDJhZWFmZDUxNmE1YjNmYzdmNGJmNWY3OTVhM2Y1NmNhNzY3
Li40OTBjMDE1MWY0YTZlODdmNzgxNGE4MWFiMmU3OGM5MGFjMzkzN2QxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJySklULmNwcApAQCAtMzgxNiw4ICszODE2LDcgQEAgY2xhc3MgWWFy
ckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbywgcHJpdmF0ZSBNYWNyb0Fzc2Vt
YmxlciB7CiAjZW5kaWYKIAogI2lmIENQVShBUk02NCkKLSAgICAgICAgbW92ZShUcnVzdGVkSW1t
UHRyKHJldGFnQ29kZVB0cjx2b2lkKiwgQ0Z1bmN0aW9uUHRyVGFnLCBPcGVyYXRpb25QdHJUYWc+
KCZ2bUVudHJ5VG9ZYXJySklUQWZ0ZXIpKSwgcmVnVDApOwotICAgICAgICBmYXJKdW1wKHJlZ1Qw
LCBPcGVyYXRpb25QdHJUYWcpOworICAgICAgICBmYXJKdW1wKFRydXN0ZWRJbW1QdHIocmV0YWdD
b2RlUHRyPHZvaWQqLCBDRnVuY3Rpb25QdHJUYWcsIE9wZXJhdGlvblB0clRhZz4oJnZtRW50cnlU
b1lhcnJKSVRBZnRlcikpLCBPcGVyYXRpb25QdHJUYWcpOwogI2Vsc2UKICAgICAgICAgcmV0KCk7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBiMDYyZTkwN2I1YWM2MWZhNDYyMzY5NDBjNDZhNTcyOGI0YjhiNDAzLi5h
YjBkNjc0YjkyN2NkOGFkZmY5OTdlYjlmNDk3NThmOWNjMGFmNGFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01Mzg2LDcgKzUz
ODYsNiBAQAogCQlGREY2QkFGOTEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21w
bGV0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZERjZCQUY3MTM0QTRDOTgwMDgyMjkyMCAvKiBKU09mZmxpbmVBdWRpb0NvbXBsZXRpb25F
dmVudC5oICovOyB9OwogCQlGREY3RTlDNDEzQUMyMURCMDBBNTFFQUMgLyogSlNBdWRpb0J1ZmZl
ckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGREY3RTlDMjEzQUMyMURCMDBBNTFFQUMgLyogSlNBdWRpb0J1ZmZlckNhbGxiYWNrLmggKi87
IH07CiAJCUZFMEQ4NEU5MTA0ODQzNDgwMDFBMTc5RSAvKiBXZWJFdmVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUwRDg0RTgxMDQ4NDM0ODAwMUEx
NzlFIC8qIFdlYkV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJRkUyNzFGNjcyMDgyREJFNTAwQTk1MkQ0IC8qIENTU1B0clRhZy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkUyNzFGNjQyMDgyREJC
RTAwQTk1MkQ0IC8qIENTU1B0clRhZy5oICovOyB9OwogCQlGRTM2RkQxNTE2Qzc4MjY1MDBGODg3
QzEgLyogQ2hhbmdlVmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZFMzZGRDExMTZDNzgyNjQwMEY4ODdDMSAvKiBDaGFuZ2VWZXJzaW9u
RGF0YS5oICovOyB9OwogCQlGRTM2RkQxNzE2Qzc4MjY1MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rp
b25TdGF0ZU1hY2hpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZFMzZGRDEzMTZDNzgyNjQwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlTWFj
aGluZS5oICovOyB9OwogCQlGRTM2RkQxODE2Qzc4MjY1MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rp
b25TdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkUzNkZEMTQxNkM3ODI2NDAwRjg4N0MxIC8qIFNRTFRyYW5zYWN0aW9uU3RhdGUuaCAqLzsgfTsK
QEAgLTE2ODA5LDcgKzE2ODA4LDYgQEAKIAkJRkRGN0U5QzIxM0FDMjFEQjAwQTUxRUFDIC8qIEpT
QXVkaW9CdWZmZXJDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0F1ZGlvQnVmZmVyQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUw
RDg0RTgxMDQ4NDM0ODAwMUExNzlFIC8qIFdlYkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZF
MEQ4NEVBMTA0ODQzNkUwMDFBMTc5RSAvKiBXZWJFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlGRTI3MUY2NDIwODJEQkJFMDBBOTUyRDQgLyogQ1NTUHRyVGFnLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1B0clRhZy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGRTM2RkQxMTE2Qzc4MjY0MDBGODg3QzEgLyogQ2hhbmdlVmVyc2lvbkRhdGEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hhbmdlVmVyc2lvbkRhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUzNkZEMTIxNkM3ODI2NDAwRjg4N0MxIC8q
IFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRkUzNkZEMTMxNkM3ODI2NDAwRjg4N0MxIC8qIFNRTFRyYW5zYWN0
aW9uU3RhdGVNYWNoaW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNRTFRy
YW5zYWN0aW9uU3RhdGVNYWNoaW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
ODY3NCw3ICsxODY3Miw2IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAog
CQkJCUU0NDUxMDc3MjAyQzdFMDEwMDY1N0QzMyAvKiBDb21waWxlZFNlbGVjdG9yLmggKi8sCi0J
CQkJRkUyNzFGNjQyMDgyREJCRTAwQTk1MkQ0IC8qIENTU1B0clRhZy5oICovLAogCQkJCTI2Qjk5
OTkyMTgwM0I5RDkwMEQwMTEyMSAvKiBGdW5jdGlvbkNhbGwuaCAqLywKIAkJCQkyNkI5OTk4RTE4
MDNBRTcyMDBEMDExMjEgLyogUmVnaXN0ZXJBbGxvY2F0b3IuaCAqLywKIAkJCQkyNkI5OTk5NDE4
MDRENTQyMDBEMDExMjEgLyogU2VsZWN0b3JDb21waWxlci5jcHAgKi8sCkBAIC0zMTM0MCw3ICsz
MTMzNyw2IEBACiAJCQkJOTQ2RDM3NDYxRDZEMDFENDAwNzcwODRGIC8qIENTU1Byb3BlcnR5UGFy
c2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NDlDNzcwNTFENkUzOUVBMDBDMERFNEYgLyogQ1NT
UHJvcGVydHlQYXJzZXJIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MkUzRDhERjEyMkVB
MEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmggaW4gSGVhZGVycyAqLywKLQkJ
CQlGRTI3MUY2NzIwODJEQkU1MDBBOTUyRDQgLyogQ1NTUHRyVGFnLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzVBMTJFMDBEQzA0MTQ4MDBDOUFGQUQgLyogQ1NTUmVmbGVjdFZhbHVlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0QkRBNDAwMTIxNTFCNkY1MDBGRDY2MDQgLyogQ1NTUmVnaXN0ZXJlZEN1
c3RvbVByb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdEOEZGNDFCRDFBNDc5MDBGRkU1
NDAgLyogQ1NTUmV2ZXJ0VmFsdWUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3Nzaml0L0NTU1B0clRhZy5oIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L0NTU1B0
clRhZy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YjI1M2NkNjM5MWMwM2MwZmUx
OTk4Yjc2MjQ0NTgyNWZmNTU5YzY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9DU1NQdHJUYWcuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQot
Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDUHRyVGFnLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotI2RlZmluZSBGT1JfRUFDSF9DU1NfUFRSVEFHKHYpIFwKLSAgICB2KENTU1NlbGVj
dG9yUHRyVGFnKSBcCi0KLSNpZiBDT01QSUxFUihNU1ZDKQotI3ByYWdtYSB3YXJuaW5nKHB1c2gp
Ci0jcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MzA3KQotI2VuZGlmCi0KLUZPUl9FQUNIX0NTU19Q
VFJUQUcoV1RGX0RFQ0xBUkVfUFRSVEFHKQotCi0jaWYgQ09NUElMRVIoTVNWQykKLSNwcmFnbWEg
d2FybmluZyhwb3ApCi0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3NqaXQvQ29tcGlsZWRTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L0NvbXBpbGVk
U2VsZWN0b3IuaAppbmRleCA1ZTYxNzE5YTk3OGZmZjA5MzkzZGIxMDA5MTQzMzkwN2JhZjEzZTk3
Li43NmRiY2VhZDQxMTJiYWM4ZjhmOTQ1NzFjMGFiN2E1ODQyOTZlNGFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3NqaXQvQ29tcGlsZWRTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzc2ppdC9Db21waWxlZFNlbGVjdG9yLmgKQEAgLTI3LDggKzI3LDggQEAKIAogI2lmIEVO
QUJMRShDU1NfU0VMRUNUT1JfSklUKQogCi0jaW5jbHVkZSAiQ1NTUHRyVGFnLmgiCiAjaW5jbHVk
ZSAiQ1NTU2VsZWN0b3IuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NQdHJUYWcuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaD4KIAogI2Rl
ZmluZSBDU1NfU0VMRUNUT1JfSklUX1BST0ZJTElORyAwCkBAIC00NSw3ICs0NSw3IEBAIGVudW0g
Y2xhc3MgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyA6IHVpbnQ4X3Qgewogc3RydWN0IENvbXBp
bGVkU2VsZWN0b3IgewogICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKICAgICBT
ZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIHN0YXR1cyB7IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0
dXM6Ok5vdENvbXBpbGVkIH07Ci0gICAgSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVSZWY8Q1NTU2Vs
ZWN0b3JQdHJUYWc+IGNvZGVSZWY7CisgICAgSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SlND
OjpDU1NTZWxlY3RvclB0clRhZz4gY29kZVJlZjsKIAogI2lmIGRlZmluZWQoQ1NTX1NFTEVDVE9S
X0pJVF9QUk9GSUxJTkcpICYmIENTU19TRUxFQ1RPUl9KSVRfUFJPRklMSU5HCiAgICAgdW5zaWdu
ZWQgdXNlQ291bnQgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvRnVu
Y3Rpb25DYWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvRnVuY3Rpb25DYWxsLmgKaW5kZXgg
N2E3ZDNhNjY4ZDRlZWM4NmVmOGRkZGU4NGFmNzJiY2I5M2YyZTEyYS4uMjI5ZjY3OTk3NWRlM2Ix
MWVkNjVhN2MzYTljNWNlOTYzYzg4MjJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
aml0L0Z1bmN0aW9uQ2FsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9GdW5jdGlvbkNh
bGwuaApAQCAtMjcsMTAgKzI3LDEwIEBACiAKICNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkK
IAotI2luY2x1ZGUgIkNTU1B0clRhZy5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyQWxsb2NhdG9yLmgi
CiAjaW5jbHVkZSAiU3RhY2tBbGxvY2F0b3IuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9H
UFJJbmZvLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDUHRyVGFnLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvTWFjcm9Bc3NlbWJsZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCmluZGV4IDJhMWVh
NGZiNTFiMzE0YWE1OGRiMzlkNWM0MTU4ODYyMWYxZjIzYzYuLjA3ZmZjMWMxYTZmYjMwNjQyMDkx
NDExZWMzZDRmZTExYjMzZWU5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9T
ZWxlY3RvckNvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JD
b21waWxlci5jcHAKQEAgLTMxNyw3ICszMTcsNyBAQCBzdHJ1Y3QgQmFja3RyYWNraW5nTGV2ZWwg
ewogY2xhc3MgU2VsZWN0b3JDb2RlR2VuZXJhdG9yIHsKIHB1YmxpYzoKICAgICBTZWxlY3RvckNv
ZGVHZW5lcmF0b3IoY29uc3QgQ1NTU2VsZWN0b3IqLCBTZWxlY3RvckNvbnRleHQpOwotICAgIFNl
bGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgY29tcGlsZShKU0M6Ok1hY3JvQXNzZW1ibGVyQ29kZVJl
ZjxDU1NTZWxlY3RvclB0clRhZz4mKTsKKyAgICBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIGNv
bXBpbGUoSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SlNDOjpDU1NTZWxlY3RvclB0clRhZz4m
KTsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgQXNzZW1ibGVyOjpSZWdpc3RlcklEIHJl
dHVyblJlZ2lzdGVyOwpAQCAtMzI1LDYgKzMyNSw4IEBAIGNsYXNzIFNlbGVjdG9yQ29kZUdlbmVy
YXRvciB7CiAgICAgc3RhdGljIGNvbnN0IEFzc2VtYmxlcjo6UmVnaXN0ZXJJRCBjaGVja2luZ0Nv
bnRleHRSZWdpc3RlcjsKICAgICBzdGF0aWMgY29uc3QgQXNzZW1ibGVyOjpSZWdpc3RlcklEIGNh
bGxGcmFtZVJlZ2lzdGVyOwogCisgICAgdm9pZCBnZW5lcmF0ZVJldHVybigpOworCiAgICAgdm9p
ZCBnZW5lcmF0ZVNlbGVjdG9yQ2hlY2tlcigpOwogICAgIHZvaWQgZ2VuZXJhdGVTZWxlY3RvckNo
ZWNrZXJFeGNsdWRpbmdQc2V1ZG9FbGVtZW50cyhBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJl
Q2FzZXMsIGNvbnN0IFNlbGVjdG9yRnJhZ21lbnRMaXN0Jik7CiAgICAgdm9pZCBnZW5lcmF0ZUVs
ZW1lbnRNYXRjaGVzU2VsZWN0b3JMaXN0KEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmVDYXNl
cywgQXNzZW1ibGVyOjpSZWdpc3RlcklEIGVsZW1lbnRUb01hdGNoLCBjb25zdCBTZWxlY3Rvckxp
c3QmKTsKQEAgLTE0MzcsNyArMTQzOSw3IEBAIHZvaWQgY29tcHV0ZUJhY2t0cmFja2luZ01lbW9y
eVJlcXVpcmVtZW50cyhTZWxlY3RvckZyYWdtZW50TGlzdCYgc2VsZWN0b3JGcmFnbWVuCiAgICAg
fQogfQogCi1pbmxpbmUgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBTZWxlY3RvckNvZGVHZW5l
cmF0b3I6OmNvbXBpbGUoSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVSZWY8Q1NTU2VsZWN0b3JQdHJU
YWc+JiBjb2RlUmVmKQoraW5saW5lIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgU2VsZWN0b3JD
b2RlR2VuZXJhdG9yOjpjb21waWxlKEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpTQzo6Q1NT
U2VsZWN0b3JQdHJUYWc+JiBjb2RlUmVmKQogewogICAgIHN3aXRjaCAobV9mdW5jdGlvblR5cGUp
IHsKICAgICBjYXNlIEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVja2VyOgpAQCAtMTQ0
NSw5ICsxNDQ3LDggQEAgaW5saW5lIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgU2VsZWN0b3JD
b2RlR2VuZXJhdG9yOjpjb21waWxlKEpTQzo6TWFjcm9Bc3NlbWIKICAgICAgICAgZ2VuZXJhdGVT
ZWxlY3RvckNoZWNrZXIoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGdW5jdGlvblR5cGU6
OkNhbm5vdE1hdGNoQW55dGhpbmc6Ci0gICAgICAgIG1fYXNzZW1ibGVyLnRhZ1JldHVybkFkZHJl
c3MoKTsKICAgICAgICAgbV9hc3NlbWJsZXIubW92ZShBc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigw
KSwgcmV0dXJuUmVnaXN0ZXIpOwotICAgICAgICBtX2Fzc2VtYmxlci5yZXQoKTsKKyAgICAgICAg
Z2VuZXJhdGVSZXR1cm4oKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGdW5jdGlvblR5cGU6
OkNhbm5vdENvbXBpbGU6CiAgICAgICAgIHJldHVybiBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVz
OjpDYW5ub3RDb21waWxlOwpAQCAtMTQ2Niw5ICsxNDY3LDkgQEAgaW5saW5lIFNlbGVjdG9yQ29t
cGlsYXRpb25TdGF0dXMgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpjb21waWxlKEpTQzo6TWFjcm9B
c3NlbWIKICAgICAgICAgbGlua0J1ZmZlci5saW5rKG1fZnVuY3Rpb25DYWxsc1tpXS5maXJzdCwg
bV9mdW5jdGlvbkNhbGxzW2ldLnNlY29uZCk7CiAKICNpZiBDU1NfU0VMRUNUT1JfSklUX0RFQlVH
R0lORwotICAgIGNvZGVSZWYgPSBsaW5rQnVmZmVyLmZpbmFsaXplQ29kZVdpdGhEaXNhc3NlbWJs
eShDU1NTZWxlY3RvclB0clRhZywgIkNTUyBTZWxlY3RvciBKSVQgZm9yIFwiJXNcIiIsIG1fb3Jp
Z2luYWxTZWxlY3Rvci0+c2VsZWN0b3JUZXh0KCkudXRmOCgpLmRhdGEoKSk7CisgICAgY29kZVJl
ZiA9IGxpbmtCdWZmZXIuZmluYWxpemVDb2RlV2l0aERpc2Fzc2VtYmx5KEpTQzo6Q1NTU2VsZWN0
b3JQdHJUYWcsICJDU1MgU2VsZWN0b3IgSklUIGZvciBcIiVzXCIiLCBtX29yaWdpbmFsU2VsZWN0
b3ItPnNlbGVjdG9yVGV4dCgpLnV0ZjgoKS5kYXRhKCkpOwogI2Vsc2UKLSAgICBjb2RlUmVmID0g
RklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBDU1NTZWxlY3RvclB0clRhZywgIkNTUyBTZWxlY3Rv
ciBKSVQiKTsKKyAgICBjb2RlUmVmID0gRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBKU0M6OkNT
U1NlbGVjdG9yUHRyVGFnLCAiQ1NTIFNlbGVjdG9yIEpJVCIpOwogI2VuZGlmCiAKICAgICBpZiAo
bV9mdW5jdGlvblR5cGUgPT0gRnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIgfHwg
bV9mdW5jdGlvblR5cGUgPT0gRnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nKQpAQCAt
MTkxMSwxMSArMTkxMiw3IEBAIGlubGluZSB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6cG9w
TWFjcm9Bc3NlbWJsZXJSZWdpc3RlcnMoU3RhY2tBbGxvY2F0b3ImIHN0CiBpbmxpbmUgYm9vbCBT
ZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlUHJvbG9ndWUoKQogewogI2lmIENQVShBUk02
NCkKLSAgICBWZWN0b3I8SlNDOjpNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCwgMj4gcHJvbG9n
dWVSZWdpc3RlcnM7Ci0gICAgcHJvbG9ndWVSZWdpc3RlcnMuYXBwZW5kKEpTQzo6QVJNNjRSZWdp
c3RlcnM6OmxyKTsKLSAgICBwcm9sb2d1ZVJlZ2lzdGVycy5hcHBlbmQoSlNDOjpBUk02NFJlZ2lz
dGVyczo6ZnApOwotICAgIG1fcHJvbG9ndWVTdGFja1JlZmVyZW5jZXMgPSBtX3N0YWNrQWxsb2Nh
dG9yLnB1c2gocHJvbG9ndWVSZWdpc3RlcnMpOwotICAgIHJldHVybiB0cnVlOworICAgIC8vIERv
IG5vdGhpbmcuIFRyYW1wb2xpbmUgZGlkIGl0LgogI2VsaWYgQ1BVKEFSTV9USFVNQjIpCiAgICAg
VmVjdG9yPEpTQzo6TWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQsIDE+IHByb2xvZ3VlUmVnaXN0
ZXJzOwogICAgIHByb2xvZ3VlUmVnaXN0ZXJzLmFwcGVuZChKU0M6OkFSTVJlZ2lzdGVyczo6bHIp
OwpAQCAtMTkzMyw4ICsxOTMwLDggQEAgaW5saW5lIGJvb2wgU2VsZWN0b3JDb2RlR2VuZXJhdG9y
OjpnZW5lcmF0ZVByb2xvZ3VlKCkKIGlubGluZSB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6
Z2VuZXJhdGVFcGlsb2d1ZShTdGFja0FsbG9jYXRvciYgc3RhY2tBbGxvY2F0b3IpCiB7CiAjaWYg
Q1BVKEFSTTY0KQotICAgIFZlY3RvcjxKU0M6Ok1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklELCAy
PiBwcm9sb2d1ZVJlZ2lzdGVycyh7IEpTQzo6QVJNNjRSZWdpc3RlcnM6OmxyLCBKU0M6OkFSTTY0
UmVnaXN0ZXJzOjpmcCB9KTsKLSAgICBzdGFja0FsbG9jYXRvci5wb3AobV9wcm9sb2d1ZVN0YWNr
UmVmZXJlbmNlcywgcHJvbG9ndWVSZWdpc3RlcnMpOworICAgIC8vIERvIG5vdGhpbmcuIFRyYW1w
b2xpbmUgZGlkIGl0LgorICAgIFVOVVNFRF9QQVJBTShzdGFja0FsbG9jYXRvcik7CiAjZWxpZiBD
UFUoQVJNX1RIVU1CMikKICAgICBWZWN0b3I8SlNDOjpNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJ
RCwgMT4gcHJvbG9ndWVSZWdpc3Rlcih7IEpTQzo6QVJNUmVnaXN0ZXJzOjpsciB9KTsKICAgICBz
dGFja0FsbG9jYXRvci5wb3AobV9wcm9sb2d1ZVN0YWNrUmVmZXJlbmNlcywgcHJvbG9ndWVSZWdp
c3Rlcik7CkBAIC0xOTQ2LDYgKzE5NDMsMTUgQEAgaW5saW5lIHZvaWQgU2VsZWN0b3JDb2RlR2Vu
ZXJhdG9yOjpnZW5lcmF0ZUVwaWxvZ3VlKFN0YWNrQWxsb2NhdG9yJiBzdGFja0FsbG9jYXQKICNl
bmRpZgogfQogCitpbmxpbmUgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlUmV0
dXJuKCkKK3sKKyNpZiBDUFUoQVJNNjQpCisgICAgbV9hc3NlbWJsZXIuZmFySnVtcChBc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIocmV0YWdDb2RlUHRyPHZvaWQqLCBDRnVuY3Rpb25QdHJUYWcsIEpT
Qzo6T3BlcmF0aW9uUHRyVGFnPigmdm1FbnRyeVRvQ1NTSklUQWZ0ZXIpKSwgSlNDOjpPcGVyYXRp
b25QdHJUYWcpOworI2Vsc2UKKyAgICBtX2Fzc2VtYmxlci5yZXQoKTsKKyNlbmRpZgorfQorCiBz
dGF0aWMgYm9vbCBpc0FkamFjZW50UmVsYXRpb24oRnJhZ21lbnRSZWxhdGlvbiByZWxhdGlvbikK
IHsKICAgICByZXR1cm4gcmVsYXRpb24gPT0gRnJhZ21lbnRSZWxhdGlvbjo6RGlyZWN0QWRqYWNl
bnQgfHwgcmVsYXRpb24gPT0gRnJhZ21lbnRSZWxhdGlvbjo6SW5kaXJlY3RBZGphY2VudDsKQEAg
LTE5NTgsNyArMTk2NCw2IEBAIHN0YXRpYyBib29sIHNob3VsZE1hcmtTdHlsZUlzQWZmZWN0ZWRC
eVByZXZpb3VzU2libGluZyhjb25zdCBTZWxlY3RvckZyYWdtZW50JiBmCiAKIHZvaWQgU2VsZWN0
b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZVNlbGVjdG9yQ2hlY2tlcigpCiB7Ci0gICAgbV9hc3Nl
bWJsZXIudGFnUmV0dXJuQWRkcmVzcygpOwogICAgIHB1c2hNYWNyb0Fzc2VtYmxlclJlZ2lzdGVy
cygpOwogICAgIFN0YWNrQWxsb2NhdG9yIGVhcmx5RmFpbHVyZVN0YWNrID0gbV9zdGFja0FsbG9j
YXRvcjsKIApAQCAtMTk4OSw3ICsxOTk0LDcgQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6
OmdlbmVyYXRlU2VsZWN0b3JDaGVja2VyKCkKICAgICBpZiAobV9zZWxlY3RvckZyYWdtZW50cy5z
dGFja1JlcXVpcmVtZW50cyA+IG1heGltdW1CYWNrdHJhY2tpbmdBbGxvY2F0aW9ucykgewogICAg
ICAgICBtX2Fzc2VtYmxlci5tb3ZlKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDApLCByZXR1cm5S
ZWdpc3Rlcik7CiAgICAgICAgIHBvcE1hY3JvQXNzZW1ibGVyUmVnaXN0ZXJzKG1fc3RhY2tBbGxv
Y2F0b3IpOwotICAgICAgICBtX2Fzc2VtYmxlci5yZXQoKTsKKyAgICAgICAgZ2VuZXJhdGVSZXR1
cm4oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjA1NCw3ICsyMDU5LDcgQEAgdm9p
ZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlU2VsZWN0b3JDaGVja2VyKCkKICAgICAg
ICAgICAgIC8vIFN1Y2Nlc3MuCiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3ZlKEFzc2VtYmxl
cjo6VHJ1c3RlZEltbTMyKDEpLCByZXR1cm5SZWdpc3Rlcik7CiAgICAgICAgICAgICBwb3BNYWNy
b0Fzc2VtYmxlclJlZ2lzdGVycyhzdWNjZXNzU3RhY2spOwotICAgICAgICAgICAgbV9hc3NlbWJs
ZXIucmV0KCk7CisgICAgICAgICAgICBnZW5lcmF0ZVJldHVybigpOwogCiAgICAgICAgICAgICAv
LyBGYWlsdXJlLgogICAgICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShmYWlsdXJlT25GdW5j
dGlvbkVudHJ5LmVtcHR5KCksICJFYXJseSBmYWlsdXJlIG9uIGZ1bmN0aW9uIGVudHJ5IGlzIHVz
ZWQgZm9yIHBzZXVkbyBlbGVtZW50LiBXaGVuIGVhcmx5IGZhaWx1cmUgaXMgdXNlZCwgZnVuY3Rp
b24gdHlwZSBpcyBTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0LiIpOwpAQCAtMjA2
Miw3ICsyMDY3LDcgQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlU2VsZWN0
b3JDaGVja2VyKCkKICAgICAgICAgICAgICAgICBmYWlsdXJlQ2FzZXMubGluaygmbV9hc3NlbWJs
ZXIpOwogICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmUoQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIoMCksIHJldHVyblJlZ2lzdGVyKTsKICAgICAgICAgICAgICAgICBwb3BNYWNyb0Fzc2Vt
YmxlclJlZ2lzdGVycyhmYWlsdXJlU3RhY2spOwotICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVy
LnJldCgpOworICAgICAgICAgICAgICAgIGdlbmVyYXRlUmV0dXJuKCk7CiAgICAgICAgICAgICB9
IGVsc2UKICAgICAgICAgICAgICAgICBmYWlsdXJlU3RhY2sgPSBzdWNjZXNzU3RhY2s7CiAKQEAg
LTIwOTEsMTQgKzIwOTYsMTQgQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRl
U2VsZWN0b3JDaGVja2VyKCkKICAgICBpZiAobmVlZHNFcGlsb2d1ZSkKICAgICAgICAgZ2VuZXJh
dGVFcGlsb2d1ZShzdWNjZXNzU3RhY2spOwogICAgIHBvcE1hY3JvQXNzZW1ibGVyUmVnaXN0ZXJz
KHN1Y2Nlc3NTdGFjayk7Ci0gICAgbV9hc3NlbWJsZXIucmV0KCk7CisgICAgZ2VuZXJhdGVSZXR1
cm4oKTsKIAogICAgIC8vIEVhcmx5IGZhaWx1cmUgb24gZnVuY3Rpb24gZW50cnkgY2FzZS4KICAg
ICBpZiAoIWZhaWx1cmVPbkZ1bmN0aW9uRW50cnkuZW1wdHkoKSkgewogICAgICAgICBmYWlsdXJl
T25GdW5jdGlvbkVudHJ5LmxpbmsoJm1fYXNzZW1ibGVyKTsKICAgICAgICAgbV9hc3NlbWJsZXIu
bW92ZShBc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigwKSwgcmV0dXJuUmVnaXN0ZXIpOwogICAgICAg
ICBwb3BNYWNyb0Fzc2VtYmxlclJlZ2lzdGVycyhlYXJseUZhaWx1cmVTdGFjayk7Ci0gICAgICAg
IG1fYXNzZW1ibGVyLnJldCgpOworICAgICAgICBnZW5lcmF0ZVJldHVybigpOwogICAgIH0gZWxz
ZQogICAgICAgICBlYXJseUZhaWx1cmVTdGFjayA9IHN1Y2Nlc3NTdGFjazsKICAgICBtX3N0YWNr
QWxsb2NhdG9yLm1lcmdlKFdURk1vdmUoc3VjY2Vzc1N0YWNrKSwgV1RGTW92ZShlYXJseUZhaWx1
cmVTdGFjaykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29t
cGlsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmgKaW5kZXgg
MGZlZGE0YmFiODNjMThjZGEzNDFkNzNlMmI2Y2NkNmQwMWMxZTZjMS4uYTg2ZTNlNDZkNjZmYjNm
NDU4ZjdiYmVhMTU4MGYwMTgzMmYxNjE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
aml0L1NlbGVjdG9yQ29tcGlsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0
b3JDb21waWxlci5oCkBAIC00NSwzNiArNDUsNTMgQEAgZW51bSBjbGFzcyBTZWxlY3RvckNvbnRl
eHQgewogICAgIFF1ZXJ5U2VsZWN0b3IKIH07CiAKLXR5cGVkZWYgdW5zaWduZWQgKCpSdWxlQ29s
bGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKShjb25zdCBFbGVtZW50KiwgdW5zaWduZWQqKTsK
LXR5cGVkZWYgdW5zaWduZWQgKCpRdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKShj
b25zdCBFbGVtZW50Kik7Ci0KLXR5cGVkZWYgdW5zaWduZWQgKCpSdWxlQ29sbGVjdG9yU2VsZWN0
b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCkoY29uc3QgRWxlbWVudCosIFNlbGVjdG9yQ2hl
Y2tlcjo6Q2hlY2tpbmdDb250ZXh0KiwgdW5zaWduZWQqKTsKLXR5cGVkZWYgdW5zaWduZWQgKCpR
dWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCkoY29uc3QgRWxl
bWVudCosIGNvbnN0IFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0Kik7Ci0KIHZvaWQg
Y29tcGlsZVNlbGVjdG9yKENvbXBpbGVkU2VsZWN0b3ImLCBjb25zdCBDU1NTZWxlY3RvciosIFNl
bGVjdG9yQ29udGV4dCk7CiAKLWlubGluZSBSdWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVj
a2VyIHJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbihDb21waWxlZFNl
bGVjdG9yJiBjb21waWxlZFNlbGVjdG9yKQorZXh0ZXJuICJDIiB1bnNpZ25lZCB2bUVudHJ5VG9D
U1NKSVQodWludHB0cl90LCB1aW50cHRyX3QsIHVpbnRwdHJfdCwgY29uc3Qgdm9pZCogY29kZVB0
cik7CitleHRlcm4gIkMiIHZvaWQgdm1FbnRyeVRvQ1NTSklUQWZ0ZXIodm9pZCk7CisKK2lubGlu
ZSB1bnNpZ25lZCBydWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKENvbXBpbGVkU2Vs
ZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3IsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIHVuc2lnbmVk
KiB2YWx1ZSkKIHsKICAgICBBU1NFUlQoY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2VsZWN0
b3JDb21waWxhdGlvblN0YXR1czo6U2ltcGxlU2VsZWN0b3JDaGVja2VyKTsKLSAgICByZXR1cm4g
V1RGOjp1bnRhZ0NGdW5jdGlvblB0cjxSdWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2Vy
LCBDU1NTZWxlY3RvclB0clRhZz4oY29tcGlsZWRTZWxlY3Rvci5jb2RlUmVmLmNvZGUoKS5leGVj
dXRhYmxlQWRkcmVzcygpKTsKKyNpZiBDUFUoQVJNNjQpCisgICAgcmV0dXJuIHZtRW50cnlUb0NT
U0pJVChiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihlbGVtZW50KSwgYml0d2lzZV9jYXN0PHVpbnRw
dHJfdD4odmFsdWUpLCAwLCBjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgpLmV4ZWN1dGFi
bGVBZGRyZXNzKCkpOworI2Vsc2UKKyAgICB0eXBlZGVmIHVuc2lnbmVkICgqUnVsZUNvbGxlY3Rv
clNpbXBsZVNlbGVjdG9yQ2hlY2tlcikoY29uc3QgRWxlbWVudCosIHVuc2lnbmVkKik7CisgICAg
cmV0dXJuIFdURjo6dW50YWdDRnVuY3Rpb25QdHI8UnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9y
Q2hlY2tlciwgSlNDOjpDU1NTZWxlY3RvclB0clRhZz4oY29tcGlsZWRTZWxlY3Rvci5jb2RlUmVm
LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKShlbGVtZW50LCB2YWx1ZSk7CisjZW5kaWYKIH0K
IAotaW5saW5lIFF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIgcXVlcnlTZWxlY3Rv
clNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKENvbXBpbGVkU2VsZWN0b3ImIGNvbXBpbGVk
U2VsZWN0b3IpCitpbmxpbmUgdW5zaWduZWQgcXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hl
Y2tlcihDb21waWxlZFNlbGVjdG9yJiBjb21waWxlZFNlbGVjdG9yLCBjb25zdCBFbGVtZW50KiBl
bGVtZW50KQogewogICAgIEFTU0VSVChjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3Rv
ckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIpOwotICAgIHJldHVybiBX
VEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIs
IENTU1NlbGVjdG9yUHRyVGFnPihjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgpLmV4ZWN1
dGFibGVBZGRyZXNzKCkpOworI2lmIENQVShBUk02NCkKKyAgICByZXR1cm4gdm1FbnRyeVRvQ1NT
SklUKGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGVsZW1lbnQpLCAwLCAwLCBjb21waWxlZFNlbGVj
dG9yLmNvZGVSZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpOworI2Vsc2UKKyAgICB0eXBl
ZGVmIHVuc2lnbmVkICgqUXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlcikoY29uc3Qg
RWxlbWVudCopOworICAgIHJldHVybiBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFF1ZXJ5U2VsZWN0
b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIsIEpTQzo6Q1NTU2VsZWN0b3JQdHJUYWc+KGNvbXBpbGVk
U2VsZWN0b3IuY29kZVJlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoZWxlbWVudCk7Cisj
ZW5kaWYKIH0KIAotaW5saW5lIFJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tp
bmdDb250ZXh0IHJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2lu
Z0NvbnRleHQoQ29tcGlsZWRTZWxlY3RvciYgY29tcGlsZWRTZWxlY3RvcikKK2lubGluZSB1bnNp
Z25lZCBydWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dChDb21w
aWxlZFNlbGVjdG9yJiBjb21waWxlZFNlbGVjdG9yLCBjb25zdCBFbGVtZW50KiBlbGVtZW50LCBT
ZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29udGV4dCogY29udGV4dCwgdW5zaWduZWQqIHZhbHVl
KQogewogICAgIEFTU0VSVChjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBp
bGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KTsKLSAgICBy
ZXR1cm4gV1RGOjp1bnRhZ0NGdW5jdGlvblB0cjxSdWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2Vy
V2l0aENoZWNraW5nQ29udGV4dCwgQ1NTU2VsZWN0b3JQdHJUYWc+KGNvbXBpbGVkU2VsZWN0b3Iu
Y29kZVJlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisjaWYgQ1BVKEFSTTY0KQorICAg
IHJldHVybiB2bUVudHJ5VG9DU1NKSVQoYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oZWxlbWVudCks
IGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHQpLCBiaXR3aXNlX2Nhc3Q8dWludHB0cl90
Pih2YWx1ZSksIGNvbXBpbGVkU2VsZWN0b3IuY29kZVJlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJl
c3MoKSk7CisjZWxzZQorICAgIHR5cGVkZWYgdW5zaWduZWQgKCpSdWxlQ29sbGVjdG9yU2VsZWN0
b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCkoY29uc3QgRWxlbWVudCosIFNlbGVjdG9yQ2hl
Y2tlcjo6Q2hlY2tpbmdDb250ZXh0KiwgdW5zaWduZWQqKTsKKyAgICByZXR1cm4gV1RGOjp1bnRh
Z0NGdW5jdGlvblB0cjxSdWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29u
dGV4dCwgSlNDOjpDU1NTZWxlY3RvclB0clRhZz4oY29tcGlsZWRTZWxlY3Rvci5jb2RlUmVmLmNv
ZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKShlbGVtZW50LCBjb250ZXh0LCB2YWx1ZSk7CisjZW5k
aWYKIH0KIAotaW5saW5lIFF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdD
b250ZXh0IHF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0Nv
bnRleHQoQ29tcGlsZWRTZWxlY3RvciYgY29tcGlsZWRTZWxlY3RvcikKK2lubGluZSB1bnNpZ25l
ZCBxdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dChDb21waWxl
ZFNlbGVjdG9yJiBjb21waWxlZFNlbGVjdG9yLCBjb25zdCBFbGVtZW50KiBlbGVtZW50LCBjb25z
dCBTZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICBBU1NF
UlQoY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6
U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCk7Ci0gICAgcmV0dXJuIFdURjo6dW50
YWdDRnVuY3Rpb25QdHI8UXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0Nv
bnRleHQsIENTU1NlbGVjdG9yUHRyVGFnPihjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgp
LmV4ZWN1dGFibGVBZGRyZXNzKCkpOworI2lmIENQVShBUk02NCkKKyAgICByZXR1cm4gdm1FbnRy
eVRvQ1NTSklUKGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGVsZW1lbnQpLCBiaXR3aXNlX2Nhc3Q8
dWludHB0cl90Pihjb250ZXh0KSwgMCwgY29tcGlsZWRTZWxlY3Rvci5jb2RlUmVmLmNvZGUoKS5l
eGVjdXRhYmxlQWRkcmVzcygpKTsKKyNlbHNlCisgICAgdHlwZWRlZiB1bnNpZ25lZCAoKlF1ZXJ5
U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KShjb25zdCBFbGVtZW50
KiwgY29uc3QgU2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0NvbnRleHQqKTsKKyAgICByZXR1cm4g
V1RGOjp1bnRhZ0NGdW5jdGlvblB0cjxRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENo
ZWNraW5nQ29udGV4dCwgSlNDOjpDU1NTZWxlY3RvclB0clRhZz4oY29tcGlsZWRTZWxlY3Rvci5j
b2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKShlbGVtZW50LCBjb250ZXh0KTsKKyNl
bmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBTZWxlY3RvckNvbXBpbGVyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2VsZWN0b3JRdWVyeS5jcHAKaW5kZXggYTA5N2FhMmIwNjBmODJmYmQ4Mzk4ZmVlZTMyMWMyMTIy
NjQxODY3Ny4uNDBkNDk5NWU2NTFhMTU2NzcxMWYzZDAxZjI2YjdhYzkyYzg3NjJhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcApAQCAtMzk2LDggKzM5Niw4IEBAIEFMV0FZU19J
TkxJTkUgdm9pZCBTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlU2luZ2xlTXVsdGlTZWxlY3RvckRh
dGEoY29uc3QgQ29udGFpCiB9CiAKICNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKLXRlbXBs
YXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+Ci1BTFdBWVNfSU5MSU5FIHZvaWQgU2Vs
ZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0b3JDaGVja2VyKGNvbnN0
IENvbnRhaW5lck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBTZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNl
bGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyIHNlbGVjdG9yQ2hlY2tlciwgdHlwZW5hbWUgU2Vs
ZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRUeXBlJiBvdXRwdXQsIGNvbnN0IFNlbGVjdG9yRGF0YSYg
c2VsZWN0b3JEYXRhKSBjb25zdAordGVtcGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFp
dCwgdHlwZW5hbWUgQ2hlY2tlcj4KK0FMV0FZU19JTkxJTkUgdm9pZCBTZWxlY3RvckRhdGFMaXN0
OjpleGVjdXRlQ29tcGlsZWRTaW1wbGVTZWxlY3RvckNoZWNrZXIoY29uc3QgQ29udGFpbmVyTm9k
ZSYgc2VhcmNoUm9vdE5vZGUsIENoZWNrZXIgc2VsZWN0b3JDaGVja2VyLCB0eXBlbmFtZSBTZWxl
Y3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmIG91dHB1dCwgY29uc3QgU2VsZWN0b3JEYXRhJiBz
ZWxlY3RvckRhdGEpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvJiBlbGVtZW50IDogZGVzY2VuZGFu
dHNPZlR5cGU8RWxlbWVudD4oY29uc3RfY2FzdDxDb250YWluZXJOb2RlJj4oc2VhcmNoUm9vdE5v
ZGUpKSkgewogICAgICAgICBzZWxlY3RvckRhdGEuY29tcGlsZWRTZWxlY3Rvci53YXNVc2VkKCk7
CkBAIC00MTAsOCArNDEwLDggQEAgQUxXQVlTX0lOTElORSB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6
OmV4ZWN1dGVDb21waWxlZFNpbXBsZVNlbGVjdG9yQ2hlY2tlcihjb25zdAogICAgIH0KIH0KIAot
dGVtcGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4KLUFMV0FZU19JTkxJTkUgdm9p
ZCBTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGlsZWRTZWxlY3RvckNoZWNrZXJXaXRoQ2hl
Y2tpbmdDb250ZXh0KGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBDb250YWlu
ZXJOb2RlJiBzZWFyY2hSb290Tm9kZSwgU2VsZWN0b3JDb21waWxlcjo6UXVlcnlTZWxlY3RvclNl
bGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQgc2VsZWN0b3JDaGVja2VyLCB0eXBlbmFt
ZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmIG91dHB1dCwgY29uc3QgU2VsZWN0b3JE
YXRhJiBzZWxlY3RvckRhdGEpIGNvbnN0Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVy
eVRyYWl0LCB0eXBlbmFtZSBDaGVja2VyPgorQUxXQVlTX0lOTElORSB2b2lkIFNlbGVjdG9yRGF0
YUxpc3Q6OmV4ZWN1dGVDb21waWxlZFNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQo
Y29uc3QgQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IENvbnRhaW5lck5vZGUmIHNlYXJj
aFJvb3ROb2RlLCBDaGVja2VyIHNlbGVjdG9yQ2hlY2tlciwgdHlwZW5hbWUgU2VsZWN0b3JRdWVy
eVRyYWl0OjpPdXRwdXRUeXBlJiBvdXRwdXQsIGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JE
YXRhKSBjb25zdAogewogICAgIFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0IGNoZWNr
aW5nQ29udGV4dChTZWxlY3RvckNoZWNrZXI6Ok1vZGU6OlF1ZXJ5aW5nUnVsZXMpOwogICAgIGNo
ZWNraW5nQ29udGV4dC5zY29wZSA9IHJvb3ROb2RlLmlzRG9jdW1lbnROb2RlKCkgPyBudWxscHRy
IDogJnJvb3ROb2RlOwpAQCAtNDM3LDEzICs0MzcsMTEgQEAgQUxXQVlTX0lOTElORSB2b2lkIFNl
bGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVDb21waWxlZFNpbmdsZU11bHRpU2VsZWN0b3JEYXRhKGNv
bnMKICAgICAgICAgICAgIHNlbGVjdG9yLmNvbXBpbGVkU2VsZWN0b3Iud2FzVXNlZCgpOwogCiAg
ICAgICAgICAgICBib29sIG1hdGNoZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGlmIChzZWxlY3Rv
ci5jb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpT
aW1wbGVTZWxlY3RvckNoZWNrZXIpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHNlbGVjdG9yQ2hl
Y2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNr
ZXJGdW5jdGlvbihzZWxlY3Rvci5jb21waWxlZFNlbGVjdG9yKTsKLSAgICAgICAgICAgICAgICBt
YXRjaGVkID0gc2VsZWN0b3JDaGVja2VyKCZlbGVtZW50KTsKLSAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBpZiAoc2VsZWN0b3IuY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2Vs
ZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2ltcGxlU2VsZWN0b3JDaGVja2VyKQorICAgICAgICAg
ICAgICAgIG1hdGNoZWQgPSBTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2ltcGxlU2Vs
ZWN0b3JDaGVja2VyKHNlbGVjdG9yLmNvbXBpbGVkU2VsZWN0b3IsICZlbGVtZW50KTsKKyAgICAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIEFTU0VSVChzZWxlY3Rvci5jb21waWxlZFNl
bGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNr
ZXJXaXRoQ2hlY2tpbmdDb250ZXh0KTsKLSAgICAgICAgICAgICAgICBhdXRvIHNlbGVjdG9yQ2hl
Y2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5j
dGlvbldpdGhDaGVja2luZ0NvbnRleHQoc2VsZWN0b3IuY29tcGlsZWRTZWxlY3Rvcik7Ci0gICAg
ICAgICAgICAgICAgbWF0Y2hlZCA9IHNlbGVjdG9yQ2hlY2tlcigmZWxlbWVudCwgJmNoZWNraW5n
Q29udGV4dCk7CisgICAgICAgICAgICAgICAgbWF0Y2hlZCA9IFNlbGVjdG9yQ29tcGlsZXI6OnF1
ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KHNlbGVjdG9yLmNv
bXBpbGVkU2VsZWN0b3IsICZlbGVtZW50LCAmY2hlY2tpbmdDb250ZXh0KTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGlmIChtYXRjaGVkKSB7CiAgICAgICAgICAgICAgICAgU2VsZWN0b3JR
dWVyeVRyYWl0OjphcHBlbmRPdXRwdXRGb3JFbGVtZW50KG91dHB1dCwgJmVsZW1lbnQpOwpAQCAt
NTI0LDEyICs1MjIsMTQgQEAgQUxXQVlTX0lOTElORSB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4
ZWN1dGUoQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIHR5cGVuYW1lIFMKICAgICAgICAgQ29tcGls
ZWRTaW5nbGVDYXNlOgogICAgICAgICBjb25zdCBTZWxlY3RvckRhdGEmIHNlbGVjdG9yRGF0YSA9
IG1fc2VsZWN0b3JzLmZpcnN0KCk7CiAgICAgICAgIGlmIChzZWxlY3RvckRhdGEuY29tcGlsZWRT
ZWxlY3Rvci5zdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2ltcGxlU2VsZWN0
b3JDaGVja2VyKSB7Ci0gICAgICAgICAgICBhdXRvIHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9y
Q29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbihzZWxl
Y3RvckRhdGEuY29tcGlsZWRTZWxlY3Rvcik7Ci0gICAgICAgICAgICBleGVjdXRlQ29tcGlsZWRT
aW1wbGVTZWxlY3RvckNoZWNrZXI8U2VsZWN0b3JRdWVyeVRyYWl0Pigqc2VhcmNoUm9vdE5vZGUs
IHNlbGVjdG9yQ2hlY2tlciwgb3V0cHV0LCBzZWxlY3RvckRhdGEpOworICAgICAgICAgICAgZXhl
Y3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0b3JDaGVja2VyPFNlbGVjdG9yUXVlcnlUcmFpdD4oKnNl
YXJjaFJvb3ROb2RlLCBbJl0gKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpIHsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gU2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9y
Q2hlY2tlcihzZWxlY3RvckRhdGEuY29tcGlsZWRTZWxlY3RvciwgZWxlbWVudCk7CisgICAgICAg
ICAgICB9LCBvdXRwdXQsIHNlbGVjdG9yRGF0YSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICBBU1NFUlQoc2VsZWN0b3JEYXRhLmNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVj
dG9yQ29tcGlsYXRpb25TdGF0dXM6OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQp
OwotICAgICAgICAgICAgYXV0byBzZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpx
dWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdDb250ZXh0KHNl
bGVjdG9yRGF0YS5jb21waWxlZFNlbGVjdG9yKTsKLSAgICAgICAgICAgIGV4ZWN1dGVDb21waWxl
ZFNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQ8U2VsZWN0b3JRdWVyeVRyYWl0Pihy
b290Tm9kZSwgKnNlYXJjaFJvb3ROb2RlLCBzZWxlY3RvckNoZWNrZXIsIG91dHB1dCwgc2VsZWN0
b3JEYXRhKTsKKyAgICAgICAgICAgIGV4ZWN1dGVDb21waWxlZFNlbGVjdG9yQ2hlY2tlcldpdGhD
aGVja2luZ0NvbnRleHQ8U2VsZWN0b3JRdWVyeVRyYWl0Pihyb290Tm9kZSwgKnNlYXJjaFJvb3RO
b2RlLCBbJl0gKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFNlbGVjdG9yQ2hlY2tlcjo6
Q2hlY2tpbmdDb250ZXh0KiBjb250ZXh0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFNlbGVj
dG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250
ZXh0KHNlbGVjdG9yRGF0YS5jb21waWxlZFNlbGVjdG9yLCBlbGVtZW50LCBjb250ZXh0KTsKKyAg
ICAgICAgICAgIH0sIG91dHB1dCwgc2VsZWN0b3JEYXRhKTsKICAgICAgICAgfQogICAgICAgICBi
cmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9y
UXVlcnkuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmgKaW5kZXggOGVlZjcy
ZTJhZDk2NjQ0NDAzNGM5ZTNiZDI0MzliMDA0ZWE3ZWYyZi4uOTg2M2VmMTMyYmU4NjM4MWNiMGU1
OWZjYzA4MzdiOWVkYTg5YzhjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVj
dG9yUXVlcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5oCkBAIC02
Niw4ICs2Niw4IEBAIGNsYXNzIFNlbGVjdG9yRGF0YUxpc3QgewogICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+IHZvaWQgZXhlY3V0ZVNpbmdsZVNlbGVjdG9yRGF0YShj
b25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQ29udGFpbmVyTm9kZSYgc2VhcmNo
Um9vdE5vZGUsIGNvbnN0IFNlbGVjdG9yRGF0YSYsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFp
dDo6T3V0cHV0VHlwZSYpIGNvbnN0OwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1
ZXJ5VHJhaXQ+IHZvaWQgZXhlY3V0ZVNpbmdsZU11bHRpU2VsZWN0b3JEYXRhKGNvbnN0IENvbnRh
aW5lck5vZGUmIHJvb3ROb2RlLCB0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5
cGUmKSBjb25zdDsKICNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKLSAgICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0PiB2b2lkIGV4ZWN1dGVDb21waWxlZFNpbXBsZVNl
bGVjdG9yQ2hlY2tlcihjb25zdCBDb250YWluZXJOb2RlJiBzZWFyY2hSb290Tm9kZSwgU2VsZWN0
b3JDb21waWxlcjo6UXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciwgdHlwZW5hbWUg
U2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRUeXBlJiwgY29uc3QgU2VsZWN0b3JEYXRhJikgY29u
c3Q7Ci0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4gdm9pZCBleGVj
dXRlQ29tcGlsZWRTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KGNvbnN0IENvbnRh
aW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBDb250YWluZXJOb2RlJiBzZWFyY2hSb290Tm9kZSwg
U2VsZWN0b3JDb21waWxlcjo6UXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2lu
Z0NvbnRleHQsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYsIGNvbnN0
IFNlbGVjdG9yRGF0YSYpIGNvbnN0OworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1
ZXJ5VHJhaXQsIHR5cGVuYW1lIENoZWNrZXI+IHZvaWQgZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2Vs
ZWN0b3JDaGVja2VyKGNvbnN0IENvbnRhaW5lck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBDaGVja2Vy
LCB0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmLCBjb25zdCBTZWxlY3Rv
ckRhdGEmKSBjb25zdDsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0
LCB0eXBlbmFtZSBDaGVja2VyPiB2b2lkIGV4ZWN1dGVDb21waWxlZFNlbGVjdG9yQ2hlY2tlcldp
dGhDaGVja2luZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IENv
bnRhaW5lck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBDaGVja2VyLCB0eXBlbmFtZSBTZWxlY3RvclF1
ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmLCBjb25zdCBTZWxlY3RvckRhdGEmKSBjb25zdDsKICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0PiB2b2lkIGV4ZWN1dGVDb21waWxl
ZFNpbmdsZU11bHRpU2VsZWN0b3JEYXRhKGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCB0
eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmKSBjb25zdDsKICAgICBzdGF0
aWMgYm9vbCBjb21waWxlU2VsZWN0b3IoY29uc3QgU2VsZWN0b3JEYXRhJik7CiAjZW5kaWYgLy8g
RU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50
UnVsZUNvbGxlY3Rvci5jcHAKaW5kZXggY2QzZWEwNzRkNTc0YWU1YjE0ZjU4ODA4MjQ3N2YyMTY5
NjQ2YTFjMS4uZjRhMGI5OGVlMGE2OWFhMzE0MTQ0Y2U4OGNhZDUxMjg3NTVlMTQ2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcApAQCAtNDU3LDEy
ICs0NTcsMTEgQEAgaW5saW5lIGJvb2wgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OnJ1bGVNYXRjaGVz
KGNvbnN0IFJ1bGVEYXRhJiBydWxlRGF0YSwgdW5zaWduZWQKICAgICBpZiAoY29tcGlsZWRTZWxl
Y3Rvci5zdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2ltcGxlU2VsZWN0b3JD
aGVja2VyKSB7CiAgICAgICAgIGNvbXBpbGVkU2VsZWN0b3Iud2FzVXNlZCgpOwogCi0gICAgICAg
IGF1dG8gc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNp
bXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKGNvbXBpbGVkU2VsZWN0b3IpOwogI2lmICFBU1NF
UlRfTVNHX0RJU0FCTEVECiAgICAgICAgIHVuc2lnbmVkIGlnbm9yZVNwZWNpZmljaXR5OwotICAg
ICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFzZWxlY3RvckNoZWNrZXIoJmVsZW1lbnQoKSwgJmln
bm9yZVNwZWNpZmljaXR5KSB8fCBtX3BzZXVkb0VsZW1lbnRSZXF1ZXN0LnBzZXVkb0lkID09IFBz
ZXVkb0lkOjpOb25lLCAiV2hlbiBtYXRjaGluZyBwc2V1ZG8gZWxlbWVudHMsIHdlIHNob3VsZCBu
ZXZlciBjb21waWxlIGEgc2VsZWN0b3IgY2hlY2tlciB3aXRob3V0IGNvbnRleHQgdW5sZXNzIGl0
IGNhbm5vdCBtYXRjaCBhbnl0aGluZy4iKTsKKyAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSgh
U2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlcihjb21w
aWxlZFNlbGVjdG9yLCAmZWxlbWVudCgpLCAmaWdub3JlU3BlY2lmaWNpdHkpIHx8IG1fcHNldWRv
RWxlbWVudFJlcXVlc3QucHNldWRvSWQgPT0gUHNldWRvSWQ6Ok5vbmUsICJXaGVuIG1hdGNoaW5n
IHBzZXVkbyBlbGVtZW50cywgd2Ugc2hvdWxkIG5ldmVyIGNvbXBpbGUgYSBzZWxlY3RvciBjaGVj
a2VyIHdpdGhvdXQgY29udGV4dCB1bmxlc3MgaXQgY2Fubm90IG1hdGNoIGFueXRoaW5nLiIpOwog
I2VuZGlmCi0gICAgICAgIGJvb2wgc2VsZWN0b3JNYXRjaGVzID0gc2VsZWN0b3JDaGVja2VyKCZl
bGVtZW50KCksICZzcGVjaWZpY2l0eSk7CisgICAgICAgIGJvb2wgc2VsZWN0b3JNYXRjaGVzID0g
U2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlcihjb21w
aWxlZFNlbGVjdG9yLCAmZWxlbWVudCgpLCAmc3BlY2lmaWNpdHkpOwogCiAgICAgICAgIGlmIChz
ZWxlY3Rvck1hdGNoZXMgJiYgcnVsZURhdGEuY29udGFpbnNVbmNvbW1vbkF0dHJpYnV0ZVNlbGVj
dG9yKCkpCiAgICAgICAgICAgICBtX2RpZE1hdGNoVW5jb21tb25BdHRyaWJ1dGVTZWxlY3RvciA9
IHRydWU7CkBAIC00ODIsOSArNDgxLDcgQEAgaW5saW5lIGJvb2wgRWxlbWVudFJ1bGVDb2xsZWN0
b3I6OnJ1bGVNYXRjaGVzKGNvbnN0IFJ1bGVEYXRhJiBydWxlRGF0YSwgdW5zaWduZWQKICNpZiBF
TkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKICAgICBpZiAoY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMg
PT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5n
Q29udGV4dCkgewogICAgICAgICBjb21waWxlZFNlbGVjdG9yLndhc1VzZWQoKTsKLQotICAgICAg
ICBhdXRvIHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JT
ZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQoY29tcGlsZWRTZWxlY3Rv
cik7Ci0gICAgICAgIHNlbGVjdG9yTWF0Y2hlcyA9IHNlbGVjdG9yQ2hlY2tlcigmZWxlbWVudCgp
LCAmY29udGV4dCwgJnNwZWNpZmljaXR5KTsKKyAgICAgICAgc2VsZWN0b3JNYXRjaGVzID0gU2Vs
ZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0Nv
bnRleHQoY29tcGlsZWRTZWxlY3RvciwgJmVsZW1lbnQoKSwgJmNvbnRleHQsICZzcGVjaWZpY2l0
eSk7CiAgICAgfSBlbHNlCiAjZW5kaWYgLy8gRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCiAgICAg
ewo=
</data>
<flag name="commit-queue"
          id="429775"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413213</attachid>
            <date>2020-11-04 14:57:03 -0800</date>
            <delta_ts>2020-11-04 15:16:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218587-20201104145702.patch</filename>
            <type>text/plain</type>
            <size>34033</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5Mzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YWViYzQ3Y2I4ZDRlNTQyM2FhMjMyN2RjN2ZjMDI5YWZiMzEzODgxLi5lMGRkYTk2ZTkzZDVmNDU1
YjNmODhkMDJkNjgzMThmOGZlODdiNGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMC0xMS0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEFwcGx5IEpJVENhZ2UgdG8gQ1NTSklUCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg1ODcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6CisgICAg
ICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogcnVudGltZS9K
U0NQdHJUYWcuaDoKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQuY3BwOgorCiAyMDIwLTExLTA0ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
Zml4IEFSTTY0IG9ubHkgY3Jhc2ggKEFSTTY0RSB3b3JrcykgYWZ0ZXIgSklUIENhZ2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAxNmQxNGM4ZTkwZTBmODYxNWM2YTA1Njc2NjQwOTE1NGViNzlhMzVhLi5kNDRiNWY3
ZmRhZGM4OTNjODhlNGQxNzAwYTFjOWYyMTgyZGI2OWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDEgQEAKKzIwMjAtMTEtMDQgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBcHBseSBKSVRDYWdlIHRvIENTU0pJVAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NTg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgQ1NTSklUIGRvZXMgbm90IGNhbGwgSklUIGZ1
bmN0aW9uIHJlY3Vyc2l2ZWx5LCBzdXBwb3J0aW5nIGl0IGluIEpJVENhZ2UgaXMgc2ltcGxlOiB3
ZSBjYW4gaGF2ZSB0cmFtcG9saW5lIGluIEMKKyAgICAgICAgYW5kIGp1bXAgdG8gSklUIGNvZGUs
IGFuZCBpbnN0ZWFkIG9mIGRvaW5nICJyZXQiLCByZXR1cm5pbmcgYmFjayB0byBDIGNvZGUgdmlh
IGp1bXAuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzc2ppdC9DU1NQdHJUYWcu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3NqaXQvQ29tcGlsZWRTZWxlY3Rvci5oOgorICAgICAg
ICAqIGNzc2ppdC9GdW5jdGlvbkNhbGwuaDoKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21w
aWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNv
ZGVHZW5lcmF0b3I6OmNvbXBpbGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxl
cjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZVJldHVybik6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlU2Vs
ZWN0b3JDaGVja2VyKToKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNpbXBsZVNlbGVj
dG9yQ2hlY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNl
bGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9y
Q29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTZWxl
Y3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVj
dG9yQ29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVj
dG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0
aW9uV2l0aENoZWNraW5nQ29udGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxl
Y3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hl
Y2tpbmdDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vU2VsZWN0b3JRdWVyeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGlsZWRTaW1w
bGVTZWxlY3RvckNoZWNrZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JEYXRh
TGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGls
ZWRTaW5nbGVNdWx0aVNlbGVjdG9yRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxl
Y3RvckRhdGFMaXN0OjpleGVjdXRlIGNvbnN0KToKKyAgICAgICAgKiBkb20vU2VsZWN0b3JRdWVy
eS5oOgorICAgICAgICAqIHN0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMpOgorCiAy
MDIwLTExLTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBzb21lIG1pc3NpbmcgaGVhZGVyIGluY2x1ZGVzIGluIG1lZGlhIHNvdXJjZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKaW5kZXggZDhlOTQ0MzM2N2Y1
MGM4NDljNjgxMDE3MDY5ODA1MTg2MGYxMzY3Mi4uN2M2ZWVlN2JlM2MwMjExNzdmZTI5MTAyNTlk
YzQ4NmYxYTE2MzBhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50RGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5j
cHAKQEAgLTU5LDYgKzU5LDEwIEBAIGV4dGVybiAiQyIgdm9pZCBleGNlcHRpb25IYW5kbGVyVHJh
bXBvbGluZSh2b2lkKTsKIGV4dGVybiAiQyIgdm9pZCByZXR1cm5Gcm9tTExJbnRUcmFtcG9saW5l
KHZvaWQpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkgJiYgQ1BVKEFS
TTY0KQorSlNDX0FOTk9UQVRFX0pJVF9PUEVSQVRJT04oX0pJVFRhcmdldF92bUVudHJ5VG9DU1NK
SVRBZnRlciwgdm1FbnRyeVRvQ1NTSklUQWZ0ZXIpOworI2VuZGlmCisKIHZvaWQgaW5pdGlhbGl6
ZSgpCiB7CiAjaWYgRU5BQkxFKENfTE9PUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCAxNTVkNWU2NDU5NzZkYmRkYWI1
Y2JiMDM2MzY4NTliZTM2NWVjYWJhLi4yZGQ0ZTljMDY1MTY1ZGExZDYyZDM1ZGE4MDYyYTE0MDM4
ZDk5MGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIuYXNtCkBAIC0yNjAsNiArMjYwLDcgQEAgY29uc3QgSlNFbnRyeVNsb3dQYXRo
UHRyVGFnID0gY29uc3RleHByIEpTRW50cnlTbG93UGF0aFB0clRhZwogY29uc3QgTmF0aXZlVG9K
SVRHYXRlUHRyVGFnID0gY29uc3RleHByIE5hdGl2ZVRvSklUR2F0ZVB0clRhZwogY29uc3QgRXhj
ZXB0aW9uSGFuZGxlclB0clRhZyA9IGNvbnN0ZXhwciBFeGNlcHRpb25IYW5kbGVyUHRyVGFnCiBj
b25zdCBZYXJyRW50cnlQdHJUYWcgPSBjb25zdGV4cHIgWWFyckVudHJ5UHRyVGFnCitjb25zdCBD
U1NTZWxlY3RvclB0clRhZyA9IGNvbnN0ZXhwciBDU1NTZWxlY3RvclB0clRhZwogY29uc3QgTm9Q
dHJUYWcgPSBjb25zdGV4cHIgTm9QdHJUYWcKICAKIApAQCAtMTYxMCw2ICsxNjExLDE3IEBAIGVu
ZAogICAgIGZ1bmN0aW9uRXBpbG9ndWUoKQogICAgIHJldAogCisjIHVuc2lnbmVkIHZtRW50cnlU
b0NTU0pJVCh1aW50cHRyX3QsIHVpbnRwdHJfdCwgdWludHB0cl90LCBjb25zdCB2b2lkKiBjb2Rl
UHRyKTsKK2VtaXQgIi5nbG9ibCBfdm1FbnRyeVRvQ1NTSklUIgorZW1pdCAiX3ZtRW50cnlUb0NT
U0pJVDoiCisgICAgZnVuY3Rpb25Qcm9sb2d1ZSgpCitpZiBBUk02NCBvciBBUk02NEUKKyAgICBq
bXAgdDMsIENTU1NlbGVjdG9yUHRyVGFnCisgICAgZW1pdCAiLmdsb2JsIF92bUVudHJ5VG9DU1NK
SVRBZnRlciIKKyAgICBlbWl0ICJfdm1FbnRyeVRvQ1NTSklUQWZ0ZXI6IgorZW5kCisgICAgZnVu
Y3Rpb25FcGlsb2d1ZSgpCisgICAgcmV0CiAKIGlmIG5vdCAoQ19MT09QIG9yIENfTE9PUF9XSU4p
CiAgICAgIyB2b2lkIHNhbml0aXplU3RhY2tGb3JWTUltcGwoVk0qIHZtKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDUHRyVGFnLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NQdHJUYWcuaAppbmRleCA0NjQ1YjA1Yzk3MzY1MTdlN2FhNTA0
OWJlODc2ZWU0OGIyZTgyMThmLi4xNmExYjRkZTNhNzhiMWZmN2QxYWMyZDdlMDg4ZDcwYWJiZmMw
YjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NQdHJUYWcu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NQdHJUYWcuaApAQCAtNjAs
NiArNjAsNyBAQCB1c2luZyBQdHJUYWcgPSBXVEY6OlB0clRhZzsKICAgICAvKiBDYWxsZWU6SklU
IENhbGxlcjpOYXRpdmUgKi8gXAogICAgIHYoTmF0aXZlVG9KSVRHYXRlUHRyVGFnLCBQdHJUYWdD
YWxsZWVUeXBlOjpKSVQsIFB0clRhZ0NhbGxlclR5cGU6Ok5hdGl2ZSkgXAogICAgIHYoWWFyckVu
dHJ5UHRyVGFnLCBQdHJUYWdDYWxsZWVUeXBlOjpKSVQsIFB0clRhZ0NhbGxlclR5cGU6Ok5hdGl2
ZSkgXAorICAgIHYoQ1NTU2VsZWN0b3JQdHJUYWcsIFB0clRhZ0NhbGxlZVR5cGU6OkpJVCwgUHRy
VGFnQ2FsbGVyVHlwZTo6TmF0aXZlKSBcCiAgICAgLyogQ2FsbGVlOk5hdGl2ZSBDYWxsZXI6SklU
ICovIFwKICAgICB2KEhvc3RGdW5jdGlvblB0clRhZywgUHRyVGFnQ2FsbGVlVHlwZTo6TmF0aXZl
LCBQdHJUYWdDYWxsZXJUeXBlOjpKSVQpIFwKICAgICB2KE9wZXJhdGlvblB0clRhZywgUHRyVGFn
Q2FsbGVlVHlwZTo6TmF0aXZlLCBQdHJUYWdDYWxsZXJUeXBlOjpKSVQpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKaW5kZXggOTRkMzAyYWVhZmQ1MTZhNWIzZmM3ZjRiZjVm
Nzk1YTNmNTZjYTc2Ny4uNDkwYzAxNTFmNGE2ZTg3Zjc4MTRhODFhYjJlNzhjOTBhYzM5MzdkMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKQEAgLTM4MTYsOCArMzgxNiw3
IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8sIHByaXZh
dGUgTWFjcm9Bc3NlbWJsZXIgewogI2VuZGlmCiAKICNpZiBDUFUoQVJNNjQpCi0gICAgICAgIG1v
dmUoVHJ1c3RlZEltbVB0cihyZXRhZ0NvZGVQdHI8dm9pZCosIENGdW5jdGlvblB0clRhZywgT3Bl
cmF0aW9uUHRyVGFnPigmdm1FbnRyeVRvWWFyckpJVEFmdGVyKSksIHJlZ1QwKTsKLSAgICAgICAg
ZmFySnVtcChyZWdUMCwgT3BlcmF0aW9uUHRyVGFnKTsKKyAgICAgICAgZmFySnVtcChUcnVzdGVk
SW1tUHRyKHJldGFnQ29kZVB0cjx2b2lkKiwgQ0Z1bmN0aW9uUHRyVGFnLCBPcGVyYXRpb25QdHJU
YWc+KCZ2bUVudHJ5VG9ZYXJySklUQWZ0ZXIpKSwgT3BlcmF0aW9uUHRyVGFnKTsKICNlbHNlCiAg
ICAgICAgIHJldCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjA2MmU5MDdiNWFjNjFmYTQ2MjM2OTQwYzQ2YTU3
MjhiNGI4YjQwMy4uYWIwZDY3NGI5MjdjZDhhZGZmOTk3ZWI5ZjQ5NzU4ZjljYzBhZjRhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNTM4Niw3ICs1Mzg2LDYgQEAKIAkJRkRGNkJBRjkxMzRBNEM5ODAwODIyOTIwIC8qIEpTT2Zm
bGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGREY2QkFGNzEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVk
aW9Db21wbGV0aW9uRXZlbnQuaCAqLzsgfTsKIAkJRkRGN0U5QzQxM0FDMjFEQjAwQTUxRUFDIC8q
IEpTQXVkaW9CdWZmZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkRGN0U5QzIxM0FDMjFEQjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJD
YWxsYmFjay5oICovOyB9OwogCQlGRTBEODRFOTEwNDg0MzQ4MDAxQTE3OUUgLyogV2ViRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMEQ4NEU4
MTA0ODQzNDgwMDFBMTc5RSAvKiBXZWJFdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUZFMjcxRjY3MjA4MkRCRTUwMEE5NTJENCAvKiBDU1NQ
dHJUYWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZF
MjcxRjY0MjA4MkRCQkUwMEE5NTJENCAvKiBDU1NQdHJUYWcuaCAqLzsgfTsKIAkJRkUzNkZEMTUx
NkM3ODI2NTAwRjg4N0MxIC8qIENoYW5nZVZlcnNpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTM2RkQxMTE2Qzc4MjY0MDBGODg3QzEgLyog
Q2hhbmdlVmVyc2lvbkRhdGEuaCAqLzsgfTsKIAkJRkUzNkZEMTcxNkM3ODI2NTAwRjg4N0MxIC8q
IFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRTM2RkQxMzE2Qzc4MjY0MDBGODg3QzEgLyogU1FMVHJhbnNh
Y3Rpb25TdGF0ZU1hY2hpbmUuaCAqLzsgfTsKIAkJRkUzNkZEMTgxNkM3ODI2NTAwRjg4N0MxIC8q
IFNRTFRyYW5zYWN0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZFMzZGRDE0MTZDNzgyNjQwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0
YXRlLmggKi87IH07CkBAIC0xNjgwOSw3ICsxNjgwOCw2IEBACiAJCUZERjdFOUMyMTNBQzIxREIw
MEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNBdWRpb0J1ZmZlckNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUZFMEQ4NEU4MTA0ODQzNDgwMDFBMTc5RSAvKiBXZWJFdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGRTBEODRFQTEwNDg0MzZFMDAxQTE3OUUgLyogV2ViRXZlbnQubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJFdmVudC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRkUyNzFGNjQyMDgyREJCRTAwQTk1MkQ0IC8qIENTU1B0clRh
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NQdHJUYWcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUzNkZEMTExNkM3ODI2NDAwRjg4N0MxIC8qIENoYW5n
ZVZlcnNpb25EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoYW5nZVZl
cnNpb25EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMzZGRDEyMTZDNzgy
NjQwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMzZGRDEzMTZDNzgyNjQwMEY4ODdDMSAv
KiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTg2NzQsNyArMTg2NzIsNiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKIAkJCQlFNDQ1MTA3NzIwMkM3RTAxMDA2NTdEMzMgLyogQ29tcGlsZWRTZWxl
Y3Rvci5oICovLAotCQkJCUZFMjcxRjY0MjA4MkRCQkUwMEE5NTJENCAvKiBDU1NQdHJUYWcuaCAq
LywKIAkJCQkyNkI5OTk5MjE4MDNCOUQ5MDBEMDExMjEgLyogRnVuY3Rpb25DYWxsLmggKi8sCiAJ
CQkJMjZCOTk5OEUxODAzQUU3MjAwRDAxMTIxIC8qIFJlZ2lzdGVyQWxsb2NhdG9yLmggKi8sCiAJ
CQkJMjZCOTk5OTQxODA0RDU0MjAwRDAxMTIxIC8qIFNlbGVjdG9yQ29tcGlsZXIuY3BwICovLApA
QCAtMzEzNDAsNyArMzEzMzcsNiBAQAogCQkJCTk0NkQzNzQ2MUQ2RDAxRDQwMDc3MDg0RiAvKiBD
U1NQcm9wZXJ0eVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTQ5Qzc3MDUxRDZFMzlFQTAw
QzBERTRGIC8qIENTU1Byb3BlcnR5UGFyc2VySGVscGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODJFM0Q4REYxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5U291cmNlRGF0YS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJRkUyNzFGNjcyMDgyREJFNTAwQTk1MkQ0IC8qIENTU1B0clRhZy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM1QTEyRTAwREMwNDE0ODAwQzlBRkFEIC8qIENTU1JlZmxlY3RW
YWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEJEQTQwMDEyMTUxQjZGNTAwRkQ2NjA0IC8qIENT
U1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3RDhGRjQx
QkQxQTQ3OTAwRkZFNTQwIC8qIENTU1JldmVydFZhbHVlLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9DU1NQdHJUYWcuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzc2ppdC9DU1NQdHJUYWcuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGIyNTNj
ZDYzOTFjMDNjMGZlMTk5OGI3NjI0NDU4MjVmZjU1OWM2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvQ1NTUHRyVGFn
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoQ1NTX1NF
TEVDVE9SX0pJVCkKLQotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ1B0clRhZy5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSNkZWZpbmUgRk9SX0VBQ0hfQ1NTX1BUUlRBRyh2KSBcCi0g
ICAgdihDU1NTZWxlY3RvclB0clRhZykgXAotCi0jaWYgQ09NUElMRVIoTVNWQykKLSNwcmFnbWEg
d2FybmluZyhwdXNoKQotI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDMwNykKLSNlbmRpZgotCi1G
T1JfRUFDSF9DU1NfUFRSVEFHKFdURl9ERUNMQVJFX1BUUlRBRykKLQotI2lmIENPTVBJTEVSKE1T
VkMpCi0jcHJhZ21hIHdhcm5pbmcocG9wKQotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3Nzaml0L0NvbXBpbGVkU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
c2ppdC9Db21waWxlZFNlbGVjdG9yLmgKaW5kZXggNWU2MTcxOWE5NzhmZmYwOTM5M2RiMTAwOTE0
MzM5MDdiYWYxM2U5Ny4uNzZkYmNlYWQ0MTEyYmFjOGY4Zjk0NTcxYzBhYjdhNTg0Mjk2ZTRhZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L0NvbXBpbGVkU2VsZWN0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvQ29tcGlsZWRTZWxlY3Rvci5oCkBAIC0yNyw4ICsyNyw4
IEBACiAKICNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKIAotI2luY2x1ZGUgIkNTU1B0clRh
Zy5oIgogI2luY2x1ZGUgIkNTU1NlbGVjdG9yLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNDUHRyVGFnLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmLmg+CiAKICNkZWZpbmUgQ1NTX1NFTEVDVE9SX0pJVF9QUk9GSUxJTkcgMApAQCAtNDUsNyAr
NDUsNyBAQCBlbnVtIGNsYXNzIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgOiB1aW50OF90IHsK
IHN0cnVjdCBDb21waWxlZFNlbGVjdG9yIHsKICAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExP
Q0FURUQ7CiAgICAgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBzdGF0dXMgeyBTZWxlY3RvckNv
bXBpbGF0aW9uU3RhdHVzOjpOb3RDb21waWxlZCB9OwotICAgIEpTQzo6TWFjcm9Bc3NlbWJsZXJD
b2RlUmVmPENTU1NlbGVjdG9yUHRyVGFnPiBjb2RlUmVmOworICAgIEpTQzo6TWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmPEpTQzo6Q1NTU2VsZWN0b3JQdHJUYWc+IGNvZGVSZWY7CiAKICNpZiBkZWZpbmVk
KENTU19TRUxFQ1RPUl9KSVRfUFJPRklMSU5HKSAmJiBDU1NfU0VMRUNUT1JfSklUX1BST0ZJTElO
RwogICAgIHVuc2lnbmVkIHVzZUNvdW50IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3Nzaml0L0Z1bmN0aW9uQ2FsbC5oIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L0Z1bmN0aW9u
Q2FsbC5oCmluZGV4IDdhN2QzYTY2OGQ0ZWVjODZlZjhkZGRlODRhZjcyYmNiOTNmMmUxMmEuLjIy
OWY2Nzk5NzVkZTNiMTFlZDY1YTdjM2E5YzVjZTk2M2M4ODIyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzc2ppdC9GdW5jdGlvbkNhbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Nq
aXQvRnVuY3Rpb25DYWxsLmgKQEAgLTI3LDEwICsyNywxMCBAQAogCiAjaWYgRU5BQkxFKENTU19T
RUxFQ1RPUl9KSVQpCiAKLSNpbmNsdWRlICJDU1NQdHJUYWcuaCIKICNpbmNsdWRlICJSZWdpc3Rl
ckFsbG9jYXRvci5oIgogI2luY2x1ZGUgIlN0YWNrQWxsb2NhdG9yLmgiCiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvR1BSSW5mby5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ1B0clRh
Zy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL01hY3JvQXNzZW1ibGVyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3Rv
ckNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNw
cAppbmRleCAyYTFlYTRmYjUxYjMxNGFhNThkYjM5ZDVjNDE1ODg2MjFmMWYyM2M2Li5mZGM4NTRl
YWFmNmQ5ZmMyOTcyOWMzZjM1MmM4MzM2ODJmMzYzNjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
aml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCkBAIC0zMTcsNyArMzE3LDcgQEAgc3RydWN0IEJhY2t0
cmFja2luZ0xldmVsIHsKIGNsYXNzIFNlbGVjdG9yQ29kZUdlbmVyYXRvciB7CiBwdWJsaWM6CiAg
ICAgU2VsZWN0b3JDb2RlR2VuZXJhdG9yKGNvbnN0IENTU1NlbGVjdG9yKiwgU2VsZWN0b3JDb250
ZXh0KTsKLSAgICBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIGNvbXBpbGUoSlNDOjpNYWNyb0Fz
c2VtYmxlckNvZGVSZWY8Q1NTU2VsZWN0b3JQdHJUYWc+Jik7CisgICAgU2VsZWN0b3JDb21waWxh
dGlvblN0YXR1cyBjb21waWxlKEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpTQzo6Q1NTU2Vs
ZWN0b3JQdHJUYWc+Jik7CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IEFzc2VtYmxlcjo6
UmVnaXN0ZXJJRCByZXR1cm5SZWdpc3RlcjsKQEAgLTMyNSw2ICszMjUsOCBAQCBjbGFzcyBTZWxl
Y3RvckNvZGVHZW5lcmF0b3IgewogICAgIHN0YXRpYyBjb25zdCBBc3NlbWJsZXI6OlJlZ2lzdGVy
SUQgY2hlY2tpbmdDb250ZXh0UmVnaXN0ZXI7CiAgICAgc3RhdGljIGNvbnN0IEFzc2VtYmxlcjo6
UmVnaXN0ZXJJRCBjYWxsRnJhbWVSZWdpc3RlcjsKIAorICAgIHZvaWQgZ2VuZXJhdGVSZXR1cm4o
KTsKKwogICAgIHZvaWQgZ2VuZXJhdGVTZWxlY3RvckNoZWNrZXIoKTsKICAgICB2b2lkIGdlbmVy
YXRlU2VsZWN0b3JDaGVja2VyRXhjbHVkaW5nUHNldWRvRWxlbWVudHMoQXNzZW1ibGVyOjpKdW1w
TGlzdCYgZmFpbHVyZUNhc2VzLCBjb25zdCBTZWxlY3RvckZyYWdtZW50TGlzdCYpOwogICAgIHZv
aWQgZ2VuZXJhdGVFbGVtZW50TWF0Y2hlc1NlbGVjdG9yTGlzdChBc3NlbWJsZXI6Okp1bXBMaXN0
JiBmYWlsdXJlQ2FzZXMsIEFzc2VtYmxlcjo6UmVnaXN0ZXJJRCBlbGVtZW50VG9NYXRjaCwgY29u
c3QgU2VsZWN0b3JMaXN0Jik7CkBAIC0xNDM3LDcgKzE0MzksNyBAQCB2b2lkIGNvbXB1dGVCYWNr
dHJhY2tpbmdNZW1vcnlSZXF1aXJlbWVudHMoU2VsZWN0b3JGcmFnbWVudExpc3QmIHNlbGVjdG9y
RnJhZ21lbgogICAgIH0KIH0KIAotaW5saW5lIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgU2Vs
ZWN0b3JDb2RlR2VuZXJhdG9yOjpjb21waWxlKEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPENT
U1NlbGVjdG9yUHRyVGFnPiYgY29kZVJlZikKK2lubGluZSBTZWxlY3RvckNvbXBpbGF0aW9uU3Rh
dHVzIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Y29tcGlsZShKU0M6Ok1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxKU0M6OkNTU1NlbGVjdG9yUHRyVGFnPiYgY29kZVJlZikKIHsKICAgICBzd2l0Y2ggKG1f
ZnVuY3Rpb25UeXBlKSB7CiAgICAgY2FzZSBGdW5jdGlvblR5cGU6OlNpbXBsZVNlbGVjdG9yQ2hl
Y2tlcjoKQEAgLTE0NDUsOSArMTQ0Nyw4IEBAIGlubGluZSBTZWxlY3RvckNvbXBpbGF0aW9uU3Rh
dHVzIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Y29tcGlsZShKU0M6Ok1hY3JvQXNzZW1iCiAgICAg
ICAgIGdlbmVyYXRlU2VsZWN0b3JDaGVja2VyKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
RnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nOgotICAgICAgICBtX2Fzc2VtYmxlci50
YWdSZXR1cm5BZGRyZXNzKCk7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmUoQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoMCksIHJldHVyblJlZ2lzdGVyKTsKLSAgICAgICAgbV9hc3NlbWJsZXIucmV0
KCk7CisgICAgICAgIGdlbmVyYXRlUmV0dXJuKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
RnVuY3Rpb25UeXBlOjpDYW5ub3RDb21waWxlOgogICAgICAgICByZXR1cm4gU2VsZWN0b3JDb21w
aWxhdGlvblN0YXR1czo6Q2Fubm90Q29tcGlsZTsKQEAgLTE0NjYsOSArMTQ2Nyw5IEBAIGlubGlu
ZSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Y29tcGls
ZShKU0M6Ok1hY3JvQXNzZW1iCiAgICAgICAgIGxpbmtCdWZmZXIubGluayhtX2Z1bmN0aW9uQ2Fs
bHNbaV0uZmlyc3QsIG1fZnVuY3Rpb25DYWxsc1tpXS5zZWNvbmQpOwogCiAjaWYgQ1NTX1NFTEVD
VE9SX0pJVF9ERUJVR0dJTkcKLSAgICBjb2RlUmVmID0gbGlua0J1ZmZlci5maW5hbGl6ZUNvZGVX
aXRoRGlzYXNzZW1ibHkoQ1NTU2VsZWN0b3JQdHJUYWcsICJDU1MgU2VsZWN0b3IgSklUIGZvciBc
IiVzXCIiLCBtX29yaWdpbmFsU2VsZWN0b3ItPnNlbGVjdG9yVGV4dCgpLnV0ZjgoKS5kYXRhKCkp
OworICAgIGNvZGVSZWYgPSBsaW5rQnVmZmVyLmZpbmFsaXplQ29kZVdpdGhEaXNhc3NlbWJseShK
U0M6OkNTU1NlbGVjdG9yUHRyVGFnLCAiQ1NTIFNlbGVjdG9yIEpJVCBmb3IgXCIlc1wiIiwgbV9v
cmlnaW5hbFNlbGVjdG9yLT5zZWxlY3RvclRleHQoKS51dGY4KCkuZGF0YSgpKTsKICNlbHNlCi0g
ICAgY29kZVJlZiA9IEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgQ1NTU2VsZWN0b3JQdHJUYWcs
ICJDU1MgU2VsZWN0b3IgSklUIik7CisgICAgY29kZVJlZiA9IEZJTkFMSVpFX0NPREUobGlua0J1
ZmZlciwgSlNDOjpDU1NTZWxlY3RvclB0clRhZywgIkNTUyBTZWxlY3RvciBKSVQiKTsKICNlbmRp
ZgogCiAgICAgaWYgKG1fZnVuY3Rpb25UeXBlID09IEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0
b3JDaGVja2VyIHx8IG1fZnVuY3Rpb25UeXBlID09IEZ1bmN0aW9uVHlwZTo6Q2Fubm90TWF0Y2hB
bnl0aGluZykKQEAgLTE5NDYsNiArMTk0NywxNSBAQCBpbmxpbmUgdm9pZCBTZWxlY3RvckNvZGVH
ZW5lcmF0b3I6OmdlbmVyYXRlRXBpbG9ndWUoU3RhY2tBbGxvY2F0b3ImIHN0YWNrQWxsb2NhdAog
I2VuZGlmCiB9CiAKK2lubGluZSB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVS
ZXR1cm4oKQoreworI2lmIENQVShBUk02NCkKKyAgICBtX2Fzc2VtYmxlci5mYXJKdW1wKEFzc2Vt
Ymxlcjo6VHJ1c3RlZEltbVB0cihyZXRhZ0NvZGVQdHI8dm9pZCosIENGdW5jdGlvblB0clRhZywg
SlNDOjpPcGVyYXRpb25QdHJUYWc+KCZ2bUVudHJ5VG9DU1NKSVRBZnRlcikpLCBKU0M6Ok9wZXJh
dGlvblB0clRhZyk7CisjZWxzZQorICAgIG1fYXNzZW1ibGVyLnJldCgpOworI2VuZGlmCit9CisK
IHN0YXRpYyBib29sIGlzQWRqYWNlbnRSZWxhdGlvbihGcmFnbWVudFJlbGF0aW9uIHJlbGF0aW9u
KQogewogICAgIHJldHVybiByZWxhdGlvbiA9PSBGcmFnbWVudFJlbGF0aW9uOjpEaXJlY3RBZGph
Y2VudCB8fCByZWxhdGlvbiA9PSBGcmFnbWVudFJlbGF0aW9uOjpJbmRpcmVjdEFkamFjZW50OwpA
QCAtMTk1OCw3ICsxOTY4LDYgQEAgc3RhdGljIGJvb2wgc2hvdWxkTWFya1N0eWxlSXNBZmZlY3Rl
ZEJ5UHJldmlvdXNTaWJsaW5nKGNvbnN0IFNlbGVjdG9yRnJhZ21lbnQmIGYKIAogdm9pZCBTZWxl
Y3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlU2VsZWN0b3JDaGVja2VyKCkKIHsKLSAgICBtX2Fz
c2VtYmxlci50YWdSZXR1cm5BZGRyZXNzKCk7CiAgICAgcHVzaE1hY3JvQXNzZW1ibGVyUmVnaXN0
ZXJzKCk7CiAgICAgU3RhY2tBbGxvY2F0b3IgZWFybHlGYWlsdXJlU3RhY2sgPSBtX3N0YWNrQWxs
b2NhdG9yOwogCkBAIC0xOTg5LDcgKzE5OTgsNyBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRv
cjo6Z2VuZXJhdGVTZWxlY3RvckNoZWNrZXIoKQogICAgIGlmIChtX3NlbGVjdG9yRnJhZ21lbnRz
LnN0YWNrUmVxdWlyZW1lbnRzID4gbWF4aW11bUJhY2t0cmFja2luZ0FsbG9jYXRpb25zKSB7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLm1vdmUoQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMCksIHJldHVy
blJlZ2lzdGVyKTsKICAgICAgICAgcG9wTWFjcm9Bc3NlbWJsZXJSZWdpc3RlcnMobV9zdGFja0Fs
bG9jYXRvcik7Ci0gICAgICAgIG1fYXNzZW1ibGVyLnJldCgpOworICAgICAgICBnZW5lcmF0ZVJl
dHVybigpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMDU0LDcgKzIwNjMsNyBAQCB2
b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVTZWxlY3RvckNoZWNrZXIoKQogICAg
ICAgICAgICAgLy8gU3VjY2Vzcy4KICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmUoQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMSksIHJldHVyblJlZ2lzdGVyKTsKICAgICAgICAgICAgIHBvcE1h
Y3JvQXNzZW1ibGVyUmVnaXN0ZXJzKHN1Y2Nlc3NTdGFjayk7Ci0gICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5yZXQoKTsKKyAgICAgICAgICAgIGdlbmVyYXRlUmV0dXJuKCk7CiAKICAgICAgICAgICAg
IC8vIEZhaWx1cmUuCiAgICAgICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGZhaWx1cmVPbkZ1
bmN0aW9uRW50cnkuZW1wdHkoKSwgIkVhcmx5IGZhaWx1cmUgb24gZnVuY3Rpb24gZW50cnkgaXMg
dXNlZCBmb3IgcHNldWRvIGVsZW1lbnQuIFdoZW4gZWFybHkgZmFpbHVyZSBpcyB1c2VkLCBmdW5j
dGlvbiB0eXBlIGlzIFNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQuIik7CkBAIC0y
MDYyLDcgKzIwNzEsNyBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVTZWxl
Y3RvckNoZWNrZXIoKQogICAgICAgICAgICAgICAgIGZhaWx1cmVDYXNlcy5saW5rKCZtX2Fzc2Vt
Ymxlcik7CiAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIubW92ZShBc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMigwKSwgcmV0dXJuUmVnaXN0ZXIpOwogICAgICAgICAgICAgICAgIHBvcE1hY3JvQXNz
ZW1ibGVyUmVnaXN0ZXJzKGZhaWx1cmVTdGFjayk7Ci0gICAgICAgICAgICAgICAgbV9hc3NlbWJs
ZXIucmV0KCk7CisgICAgICAgICAgICAgICAgZ2VuZXJhdGVSZXR1cm4oKTsKICAgICAgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgICAgIGZhaWx1cmVTdGFjayA9IHN1Y2Nlc3NTdGFjazsKIApA
QCAtMjA5MSwxNCArMjEwMCwxNCBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJh
dGVTZWxlY3RvckNoZWNrZXIoKQogICAgIGlmIChuZWVkc0VwaWxvZ3VlKQogICAgICAgICBnZW5l
cmF0ZUVwaWxvZ3VlKHN1Y2Nlc3NTdGFjayk7CiAgICAgcG9wTWFjcm9Bc3NlbWJsZXJSZWdpc3Rl
cnMoc3VjY2Vzc1N0YWNrKTsKLSAgICBtX2Fzc2VtYmxlci5yZXQoKTsKKyAgICBnZW5lcmF0ZVJl
dHVybigpOwogCiAgICAgLy8gRWFybHkgZmFpbHVyZSBvbiBmdW5jdGlvbiBlbnRyeSBjYXNlLgog
ICAgIGlmICghZmFpbHVyZU9uRnVuY3Rpb25FbnRyeS5lbXB0eSgpKSB7CiAgICAgICAgIGZhaWx1
cmVPbkZ1bmN0aW9uRW50cnkubGluaygmbV9hc3NlbWJsZXIpOwogICAgICAgICBtX2Fzc2VtYmxl
ci5tb3ZlKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDApLCByZXR1cm5SZWdpc3Rlcik7CiAgICAg
ICAgIHBvcE1hY3JvQXNzZW1ibGVyUmVnaXN0ZXJzKGVhcmx5RmFpbHVyZVN0YWNrKTsKLSAgICAg
ICAgbV9hc3NlbWJsZXIucmV0KCk7CisgICAgICAgIGdlbmVyYXRlUmV0dXJuKCk7CiAgICAgfSBl
bHNlCiAgICAgICAgIGVhcmx5RmFpbHVyZVN0YWNrID0gc3VjY2Vzc1N0YWNrOwogICAgIG1fc3Rh
Y2tBbGxvY2F0b3IubWVyZ2UoV1RGTW92ZShzdWNjZXNzU3RhY2spLCBXVEZNb3ZlKGVhcmx5RmFp
bHVyZVN0YWNrKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JD
b21waWxlci5oIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuaAppbmRl
eCAwZmVkYTRiYWI4M2MxOGNkYTM0MWQ3M2UyYjZjY2Q2ZDAxYzFlNmMxLi5hODZlM2U0NmQ2NmZi
M2Y0NThmN2JiZWExNTgwZjAxODMyZjE2MTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3NqaXQvU2VsZWN0b3JDb21waWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxl
Y3RvckNvbXBpbGVyLmgKQEAgLTQ1LDM2ICs0NSw1MyBAQCBlbnVtIGNsYXNzIFNlbGVjdG9yQ29u
dGV4dCB7CiAgICAgUXVlcnlTZWxlY3RvcgogfTsKIAotdHlwZWRlZiB1bnNpZ25lZCAoKlJ1bGVD
b2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIpKGNvbnN0IEVsZW1lbnQqLCB1bnNpZ25lZCop
OwotdHlwZWRlZiB1bnNpZ25lZCAoKlF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIp
KGNvbnN0IEVsZW1lbnQqKTsKLQotdHlwZWRlZiB1bnNpZ25lZCAoKlJ1bGVDb2xsZWN0b3JTZWxl
Y3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KShjb25zdCBFbGVtZW50KiwgU2VsZWN0b3JD
aGVja2VyOjpDaGVja2luZ0NvbnRleHQqLCB1bnNpZ25lZCopOwotdHlwZWRlZiB1bnNpZ25lZCAo
KlF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KShjb25zdCBF
bGVtZW50KiwgY29uc3QgU2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0NvbnRleHQqKTsKLQogdm9p
ZCBjb21waWxlU2VsZWN0b3IoQ29tcGlsZWRTZWxlY3RvciYsIGNvbnN0IENTU1NlbGVjdG9yKiwg
U2VsZWN0b3JDb250ZXh0KTsKIAotaW5saW5lIFJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNo
ZWNrZXIgcnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKENvbXBpbGVk
U2VsZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3IpCitleHRlcm4gIkMiIHVuc2lnbmVkIHZtRW50cnlU
b0NTU0pJVCh1aW50cHRyX3QsIHVpbnRwdHJfdCwgdWludHB0cl90LCBjb25zdCB2b2lkKiBjb2Rl
UHRyKTsKK2V4dGVybiAiQyIgdm9pZCB2bUVudHJ5VG9DU1NKSVRBZnRlcih2b2lkKTsKKworaW5s
aW5lIHVuc2lnbmVkIHJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIoQ29tcGlsZWRT
ZWxlY3RvciYgY29tcGlsZWRTZWxlY3RvciwgY29uc3QgRWxlbWVudCogZWxlbWVudCwgdW5zaWdu
ZWQqIHZhbHVlKQogewogICAgIEFTU0VSVChjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxl
Y3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIpOwotICAgIHJldHVy
biBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNr
ZXIsIENTU1NlbGVjdG9yUHRyVGFnPihjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgpLmV4
ZWN1dGFibGVBZGRyZXNzKCkpOworI2lmIENQVShBUk02NCkKKyAgICByZXR1cm4gdm1FbnRyeVRv
Q1NTSklUKGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGVsZW1lbnQpLCBiaXR3aXNlX2Nhc3Q8dWlu
dHB0cl90Pih2YWx1ZSksIDAsIGNvbXBpbGVkU2VsZWN0b3IuY29kZVJlZi5jb2RlKCkuZXhlY3V0
YWJsZUFkZHJlc3MoKSk7CisjZWxzZQorICAgIHR5cGVkZWYgdW5zaWduZWQgKCpSdWxlQ29sbGVj
dG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKShjb25zdCBFbGVtZW50KiwgdW5zaWduZWQqKTsKKyAg
ICByZXR1cm4gV1RGOjp1bnRhZ0NGdW5jdGlvblB0cjxSdWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0
b3JDaGVja2VyLCBKU0M6OkNTU1NlbGVjdG9yUHRyVGFnPihjb21waWxlZFNlbGVjdG9yLmNvZGVS
ZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGVsZW1lbnQsIHZhbHVlKTsKKyNlbmRpZgog
fQogCi1pbmxpbmUgUXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciBxdWVyeVNlbGVj
dG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24oQ29tcGlsZWRTZWxlY3RvciYgY29tcGls
ZWRTZWxlY3RvcikKK2lubGluZSB1bnNpZ25lZCBxdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JD
aGVja2VyKENvbXBpbGVkU2VsZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3IsIGNvbnN0IEVsZW1lbnQq
IGVsZW1lbnQpCiB7CiAgICAgQVNTRVJUKGNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVj
dG9yQ29tcGlsYXRpb25TdGF0dXM6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcik7Ci0gICAgcmV0dXJu
IFdURjo6dW50YWdDRnVuY3Rpb25QdHI8UXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tl
ciwgQ1NTU2VsZWN0b3JQdHJUYWc+KGNvbXBpbGVkU2VsZWN0b3IuY29kZVJlZi5jb2RlKCkuZXhl
Y3V0YWJsZUFkZHJlc3MoKSk7CisjaWYgQ1BVKEFSTTY0KQorICAgIHJldHVybiB2bUVudHJ5VG9D
U1NKSVQoYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oZWxlbWVudCksIDAsIDAsIGNvbXBpbGVkU2Vs
ZWN0b3IuY29kZVJlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisjZWxzZQorICAgIHR5
cGVkZWYgdW5zaWduZWQgKCpRdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKShjb25z
dCBFbGVtZW50Kik7CisgICAgcmV0dXJuIFdURjo6dW50YWdDRnVuY3Rpb25QdHI8UXVlcnlTZWxl
Y3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciwgSlNDOjpDU1NTZWxlY3RvclB0clRhZz4oY29tcGls
ZWRTZWxlY3Rvci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKShlbGVtZW50KTsK
KyNlbmRpZgogfQogCi1pbmxpbmUgUnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVj
a2luZ0NvbnRleHQgcnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNr
aW5nQ29udGV4dChDb21waWxlZFNlbGVjdG9yJiBjb21waWxlZFNlbGVjdG9yKQoraW5saW5lIHVu
c2lnbmVkIHJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KENv
bXBpbGVkU2VsZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3IsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQs
IFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0KiBjb250ZXh0LCB1bnNpZ25lZCogdmFs
dWUpCiB7CiAgICAgQVNTRVJUKGNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29t
cGlsYXRpb25TdGF0dXM6OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpOwotICAg
IHJldHVybiBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNr
ZXJXaXRoQ2hlY2tpbmdDb250ZXh0LCBDU1NTZWxlY3RvclB0clRhZz4oY29tcGlsZWRTZWxlY3Rv
ci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyNpZiBDUFUoQVJNNjQpCisg
ICAgcmV0dXJuIHZtRW50cnlUb0NTU0pJVChiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihlbGVtZW50
KSwgYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oY29udGV4dCksIGJpdHdpc2VfY2FzdDx1aW50cHRy
X3Q+KHZhbHVlKSwgY29tcGlsZWRTZWxlY3Rvci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRk
cmVzcygpKTsKKyNlbHNlCisgICAgdHlwZWRlZiB1bnNpZ25lZCAoKlJ1bGVDb2xsZWN0b3JTZWxl
Y3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KShjb25zdCBFbGVtZW50KiwgU2VsZWN0b3JD
aGVja2VyOjpDaGVja2luZ0NvbnRleHQqLCB1bnNpZ25lZCopOworICAgIHJldHVybiBXVEY6OnVu
dGFnQ0Z1bmN0aW9uUHRyPFJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdD
b250ZXh0LCBKU0M6OkNTU1NlbGVjdG9yUHRyVGFnPihjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYu
Y29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGVsZW1lbnQsIGNvbnRleHQsIHZhbHVlKTsKKyNl
bmRpZgogfQogCi1pbmxpbmUgUXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2lu
Z0NvbnRleHQgcXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5n
Q29udGV4dChDb21waWxlZFNlbGVjdG9yJiBjb21waWxlZFNlbGVjdG9yKQoraW5saW5lIHVuc2ln
bmVkIHF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KENvbXBp
bGVkU2VsZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3IsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGNv
bnN0IFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIEFT
U0VSVChjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVz
OjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KTsKLSAgICByZXR1cm4gV1RGOjp1
bnRhZ0NGdW5jdGlvblB0cjxRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5n
Q29udGV4dCwgQ1NTU2VsZWN0b3JQdHJUYWc+KGNvbXBpbGVkU2VsZWN0b3IuY29kZVJlZi5jb2Rl
KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisjaWYgQ1BVKEFSTTY0KQorICAgIHJldHVybiB2bUVu
dHJ5VG9DU1NKSVQoYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oZWxlbWVudCksIGJpdHdpc2VfY2Fz
dDx1aW50cHRyX3Q+KGNvbnRleHQpLCAwLCBjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgp
LmV4ZWN1dGFibGVBZGRyZXNzKCkpOworI2Vsc2UKKyAgICB0eXBlZGVmIHVuc2lnbmVkICgqUXVl
cnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpKGNvbnN0IEVsZW1l
bnQqLCBjb25zdCBTZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29udGV4dCopOworICAgIHJldHVy
biBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRo
Q2hlY2tpbmdDb250ZXh0LCBKU0M6OkNTU1NlbGVjdG9yUHRyVGFnPihjb21waWxlZFNlbGVjdG9y
LmNvZGVSZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGVsZW1lbnQsIGNvbnRleHQpOwor
I2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFNlbGVjdG9yQ29tcGlsZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TZWxlY3RvclF1ZXJ5LmNwcAppbmRleCBhMDk3YWEyYjA2MGY4MmZiZDgzOThmZWVlMzIxYzIx
MjI2NDE4Njc3Li40MGQ0OTk1ZTY1MWExNTY3NzExZjNkMDFmMjZiN2FjOTJjODc2MmE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCkBAIC0zOTYsOCArMzk2LDggQEAgQUxXQVlT
X0lOTElORSB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVTaW5nbGVNdWx0aVNlbGVjdG9y
RGF0YShjb25zdCBDb250YWkKIH0KIAogI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQotdGVt
cGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4KLUFMV0FZU19JTkxJTkUgdm9pZCBT
ZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGlsZWRTaW1wbGVTZWxlY3RvckNoZWNrZXIoY29u
c3QgQ29udGFpbmVyTm9kZSYgc2VhcmNoUm9vdE5vZGUsIFNlbGVjdG9yQ29tcGlsZXI6OlF1ZXJ5
U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIgc2VsZWN0b3JDaGVja2VyLCB0eXBlbmFtZSBT
ZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmIG91dHB1dCwgY29uc3QgU2VsZWN0b3JEYXRh
JiBzZWxlY3RvckRhdGEpIGNvbnN0Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRy
YWl0LCB0eXBlbmFtZSBDaGVja2VyPgorQUxXQVlTX0lOTElORSB2b2lkIFNlbGVjdG9yRGF0YUxp
c3Q6OmV4ZWN1dGVDb21waWxlZFNpbXBsZVNlbGVjdG9yQ2hlY2tlcihjb25zdCBDb250YWluZXJO
b2RlJiBzZWFyY2hSb290Tm9kZSwgQ2hlY2tlciBzZWxlY3RvckNoZWNrZXIsIHR5cGVuYW1lIFNl
bGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYgb3V0cHV0LCBjb25zdCBTZWxlY3RvckRhdGEm
IHNlbGVjdG9yRGF0YSkgY29uc3QKIHsKICAgICBmb3IgKGF1dG8mIGVsZW1lbnQgOiBkZXNjZW5k
YW50c09mVHlwZTxFbGVtZW50Pihjb25zdF9jYXN0PENvbnRhaW5lck5vZGUmPihzZWFyY2hSb290
Tm9kZSkpKSB7CiAgICAgICAgIHNlbGVjdG9yRGF0YS5jb21waWxlZFNlbGVjdG9yLndhc1VzZWQo
KTsKQEAgLTQxMCw4ICs0MTAsOCBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlz
dDo6ZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0b3JDaGVja2VyKGNvbnN0CiAgICAgfQogfQog
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0PgotQUxXQVlTX0lOTElORSB2
b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVDb21waWxlZFNlbGVjdG9yQ2hlY2tlcldpdGhD
aGVja2luZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IENvbnRh
aW5lck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBTZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9y
U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCBzZWxlY3RvckNoZWNrZXIsIHR5cGVu
YW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYgb3V0cHV0LCBjb25zdCBTZWxlY3Rv
ckRhdGEmIHNlbGVjdG9yRGF0YSkgY29uc3QKK3RlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1
ZXJ5VHJhaXQsIHR5cGVuYW1lIENoZWNrZXI+CitBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JE
YXRhTGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4
dChjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQ29udGFpbmVyTm9kZSYgc2Vh
cmNoUm9vdE5vZGUsIENoZWNrZXIgc2VsZWN0b3JDaGVja2VyLCB0eXBlbmFtZSBTZWxlY3RvclF1
ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmIG91dHB1dCwgY29uc3QgU2VsZWN0b3JEYXRhJiBzZWxlY3Rv
ckRhdGEpIGNvbnN0CiB7CiAgICAgU2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0NvbnRleHQgY2hl
Y2tpbmdDb250ZXh0KFNlbGVjdG9yQ2hlY2tlcjo6TW9kZTo6UXVlcnlpbmdSdWxlcyk7CiAgICAg
Y2hlY2tpbmdDb250ZXh0LnNjb3BlID0gcm9vdE5vZGUuaXNEb2N1bWVudE5vZGUoKSA/IG51bGxw
dHIgOiAmcm9vdE5vZGU7CkBAIC00MzcsMTMgKzQzNywxMSBAQCBBTFdBWVNfSU5MSU5FIHZvaWQg
U2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2luZ2xlTXVsdGlTZWxlY3RvckRhdGEo
Y29ucwogICAgICAgICAgICAgc2VsZWN0b3IuY29tcGlsZWRTZWxlY3Rvci53YXNVc2VkKCk7CiAK
ICAgICAgICAgICAgIGJvb2wgbWF0Y2hlZCA9IGZhbHNlOwotICAgICAgICAgICAgaWYgKHNlbGVj
dG9yLmNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6
OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcikgewotICAgICAgICAgICAgICAgIGF1dG8gc2VsZWN0b3JD
aGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hl
Y2tlckZ1bmN0aW9uKHNlbGVjdG9yLmNvbXBpbGVkU2VsZWN0b3IpOwotICAgICAgICAgICAgICAg
IG1hdGNoZWQgPSBzZWxlY3RvckNoZWNrZXIoJmVsZW1lbnQpOwotICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rvci5jb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBT
ZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIpCisgICAgICAg
ICAgICAgICAgbWF0Y2hlZCA9IFNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTaW1wbGVT
ZWxlY3RvckNoZWNrZXIoc2VsZWN0b3IuY29tcGlsZWRTZWxlY3RvciwgJmVsZW1lbnQpOworICAg
ICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHNlbGVjdG9yLmNvbXBpbGVk
U2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNlbGVjdG9yQ2hl
Y2tlcldpdGhDaGVja2luZ0NvbnRleHQpOwotICAgICAgICAgICAgICAgIGF1dG8gc2VsZWN0b3JD
aGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1
bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChzZWxlY3Rvci5jb21waWxlZFNlbGVjdG9yKTsKLSAg
ICAgICAgICAgICAgICBtYXRjaGVkID0gc2VsZWN0b3JDaGVja2VyKCZlbGVtZW50LCAmY2hlY2tp
bmdDb250ZXh0KTsKKyAgICAgICAgICAgICAgICBtYXRjaGVkID0gU2VsZWN0b3JDb21waWxlcjo6
cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQoc2VsZWN0b3Iu
Y29tcGlsZWRTZWxlY3RvciwgJmVsZW1lbnQsICZjaGVja2luZ0NvbnRleHQpOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgaWYgKG1hdGNoZWQpIHsKICAgICAgICAgICAgICAgICBTZWxlY3Rv
clF1ZXJ5VHJhaXQ6OmFwcGVuZE91dHB1dEZvckVsZW1lbnQob3V0cHV0LCAmZWxlbWVudCk7CkBA
IC01MjQsMTIgKzUyMiwxNCBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6
ZXhlY3V0ZShDb250YWluZXJOb2RlJiByb290Tm9kZSwgdHlwZW5hbWUgUwogICAgICAgICBDb21w
aWxlZFNpbmdsZUNhc2U6CiAgICAgICAgIGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JEYXRh
ID0gbV9zZWxlY3RvcnMuZmlyc3QoKTsKICAgICAgICAgaWYgKHNlbGVjdG9yRGF0YS5jb21waWxl
ZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxl
Y3RvckNoZWNrZXIpIHsKLSAgICAgICAgICAgIGF1dG8gc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0
b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKHNl
bGVjdG9yRGF0YS5jb21waWxlZFNlbGVjdG9yKTsKLSAgICAgICAgICAgIGV4ZWN1dGVDb21waWxl
ZFNpbXBsZVNlbGVjdG9yQ2hlY2tlcjxTZWxlY3RvclF1ZXJ5VHJhaXQ+KCpzZWFyY2hSb290Tm9k
ZSwgc2VsZWN0b3JDaGVja2VyLCBvdXRwdXQsIHNlbGVjdG9yRGF0YSk7CisgICAgICAgICAgICBl
eGVjdXRlQ29tcGlsZWRTaW1wbGVTZWxlY3RvckNoZWNrZXI8U2VsZWN0b3JRdWVyeVRyYWl0Pigq
c2VhcmNoUm9vdE5vZGUsIFsmXSAoY29uc3QgRWxlbWVudCogZWxlbWVudCkgeworICAgICAgICAg
ICAgICAgIHJldHVybiBTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0
b3JDaGVja2VyKHNlbGVjdG9yRGF0YS5jb21waWxlZFNlbGVjdG9yLCBlbGVtZW50KTsKKyAgICAg
ICAgICAgIH0sIG91dHB1dCwgc2VsZWN0b3JEYXRhKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIEFTU0VSVChzZWxlY3RvckRhdGEuY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2Vs
ZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4
dCk7Ci0gICAgICAgICAgICBhdXRvIHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6
OnF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQo
c2VsZWN0b3JEYXRhLmNvbXBpbGVkU2VsZWN0b3IpOwotICAgICAgICAgICAgZXhlY3V0ZUNvbXBp
bGVkU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dDxTZWxlY3RvclF1ZXJ5VHJhaXQ+
KHJvb3ROb2RlLCAqc2VhcmNoUm9vdE5vZGUsIHNlbGVjdG9yQ2hlY2tlciwgb3V0cHV0LCBzZWxl
Y3RvckRhdGEpOworICAgICAgICAgICAgZXhlY3V0ZUNvbXBpbGVkU2VsZWN0b3JDaGVja2VyV2l0
aENoZWNraW5nQ29udGV4dDxTZWxlY3RvclF1ZXJ5VHJhaXQ+KHJvb3ROb2RlLCAqc2VhcmNoUm9v
dE5vZGUsIFsmXSAoY29uc3QgRWxlbWVudCogZWxlbWVudCwgY29uc3QgU2VsZWN0b3JDaGVja2Vy
OjpDaGVja2luZ0NvbnRleHQqIGNvbnRleHQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gU2Vs
ZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0Nv
bnRleHQoc2VsZWN0b3JEYXRhLmNvbXBpbGVkU2VsZWN0b3IsIGVsZW1lbnQsIGNvbnRleHQpOwor
ICAgICAgICAgICAgfSwgb3V0cHV0LCBzZWxlY3RvckRhdGEpOwogICAgICAgICB9CiAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0
b3JRdWVyeS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuaAppbmRleCA4ZWVm
NzJlMmFkOTY2NDQ0MDM0YzllM2JkMjQzOWIwMDRlYTdlZjJmLi45ODYzZWYxMzJiZTg2MzgxY2Iw
ZTU5ZmNjMDgzN2I5ZWRhODljOGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2Vs
ZWN0b3JRdWVyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmgKQEAg
LTY2LDggKzY2LDggQEAgY2xhc3MgU2VsZWN0b3JEYXRhTGlzdCB7CiAgICAgdGVtcGxhdGUgPHR5
cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4gdm9pZCBleGVjdXRlU2luZ2xlU2VsZWN0b3JEYXRh
KGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBDb250YWluZXJOb2RlJiBzZWFy
Y2hSb290Tm9kZSwgY29uc3QgU2VsZWN0b3JEYXRhJiwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRy
YWl0OjpPdXRwdXRUeXBlJikgY29uc3Q7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9y
UXVlcnlUcmFpdD4gdm9pZCBleGVjdXRlU2luZ2xlTXVsdGlTZWxlY3RvckRhdGEoY29uc3QgQ29u
dGFpbmVyTm9kZSYgcm9vdE5vZGUsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0
VHlwZSYpIGNvbnN0OwogI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQotICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+IHZvaWQgZXhlY3V0ZUNvbXBpbGVkU2ltcGxl
U2VsZWN0b3JDaGVja2VyKGNvbnN0IENvbnRhaW5lck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBTZWxl
Y3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyLCB0eXBlbmFt
ZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmLCBjb25zdCBTZWxlY3RvckRhdGEmKSBj
b25zdDsKLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0PiB2b2lkIGV4
ZWN1dGVDb21waWxlZFNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQoY29uc3QgQ29u
dGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IENvbnRhaW5lck5vZGUmIHNlYXJjaFJvb3ROb2Rl
LCBTZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNr
aW5nQ29udGV4dCwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRUeXBlJiwgY29u
c3QgU2VsZWN0b3JEYXRhJikgY29uc3Q7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9y
UXVlcnlUcmFpdCwgdHlwZW5hbWUgQ2hlY2tlcj4gdm9pZCBleGVjdXRlQ29tcGlsZWRTaW1wbGVT
ZWxlY3RvckNoZWNrZXIoY29uc3QgQ29udGFpbmVyTm9kZSYgc2VhcmNoUm9vdE5vZGUsIENoZWNr
ZXIsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYsIGNvbnN0IFNlbGVj
dG9yRGF0YSYpIGNvbnN0OworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJh
aXQsIHR5cGVuYW1lIENoZWNrZXI+IHZvaWQgZXhlY3V0ZUNvbXBpbGVkU2VsZWN0b3JDaGVja2Vy
V2l0aENoZWNraW5nQ29udGV4dChjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3Qg
Q29udGFpbmVyTm9kZSYgc2VhcmNoUm9vdE5vZGUsIENoZWNrZXIsIHR5cGVuYW1lIFNlbGVjdG9y
UXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYsIGNvbnN0IFNlbGVjdG9yRGF0YSYpIGNvbnN0OwogICAg
IHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+IHZvaWQgZXhlY3V0ZUNvbXBp
bGVkU2luZ2xlTXVsdGlTZWxlY3RvckRhdGEoY29uc3QgQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUs
IHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYpIGNvbnN0OwogICAgIHN0
YXRpYyBib29sIGNvbXBpbGVTZWxlY3Rvcihjb25zdCBTZWxlY3RvckRhdGEmKTsKICNlbmRpZiAv
LyBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1l
bnRSdWxlQ29sbGVjdG9yLmNwcAppbmRleCBjZDNlYTA3NGQ1NzRhZTViMTRmNTg4MDgyNDc3ZjIx
Njk2NDZhMWMxLi5mNGEwYjk4ZWUwYTY5YWEzMTQxNDRjZTg4Y2FkNTEyODc1NWUxNDZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCkBAIC00NTcs
MTIgKzQ1NywxMSBAQCBpbmxpbmUgYm9vbCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNo
ZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhLCB1bnNpZ25lZAogICAgIGlmIChjb21waWxlZFNl
bGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3Rv
ckNoZWNrZXIpIHsKICAgICAgICAgY29tcGlsZWRTZWxlY3Rvci53YXNVc2VkKCk7CiAKLSAgICAg
ICAgYXV0byBzZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9y
U2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24oY29tcGlsZWRTZWxlY3Rvcik7CiAjaWYgIUFT
U0VSVF9NU0dfRElTQUJMRUQKICAgICAgICAgdW5zaWduZWQgaWdub3JlU3BlY2lmaWNpdHk7Ci0g
ICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIXNlbGVjdG9yQ2hlY2tlcigmZWxlbWVudCgpLCAm
aWdub3JlU3BlY2lmaWNpdHkpIHx8IG1fcHNldWRvRWxlbWVudFJlcXVlc3QucHNldWRvSWQgPT0g
UHNldWRvSWQ6Ok5vbmUsICJXaGVuIG1hdGNoaW5nIHBzZXVkbyBlbGVtZW50cywgd2Ugc2hvdWxk
IG5ldmVyIGNvbXBpbGUgYSBzZWxlY3RvciBjaGVja2VyIHdpdGhvdXQgY29udGV4dCB1bmxlc3Mg
aXQgY2Fubm90IG1hdGNoIGFueXRoaW5nLiIpOworICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdF
KCFTZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKGNv
bXBpbGVkU2VsZWN0b3IsICZlbGVtZW50KCksICZpZ25vcmVTcGVjaWZpY2l0eSkgfHwgbV9wc2V1
ZG9FbGVtZW50UmVxdWVzdC5wc2V1ZG9JZCA9PSBQc2V1ZG9JZDo6Tm9uZSwgIldoZW4gbWF0Y2hp
bmcgcHNldWRvIGVsZW1lbnRzLCB3ZSBzaG91bGQgbmV2ZXIgY29tcGlsZSBhIHNlbGVjdG9yIGNo
ZWNrZXIgd2l0aG91dCBjb250ZXh0IHVubGVzcyBpdCBjYW5ub3QgbWF0Y2ggYW55dGhpbmcuIik7
CiAjZW5kaWYKLSAgICAgICAgYm9vbCBzZWxlY3Rvck1hdGNoZXMgPSBzZWxlY3RvckNoZWNrZXIo
JmVsZW1lbnQoKSwgJnNwZWNpZmljaXR5KTsKKyAgICAgICAgYm9vbCBzZWxlY3Rvck1hdGNoZXMg
PSBTZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKGNv
bXBpbGVkU2VsZWN0b3IsICZlbGVtZW50KCksICZzcGVjaWZpY2l0eSk7CiAKICAgICAgICAgaWYg
KHNlbGVjdG9yTWF0Y2hlcyAmJiBydWxlRGF0YS5jb250YWluc1VuY29tbW9uQXR0cmlidXRlU2Vs
ZWN0b3IoKSkKICAgICAgICAgICAgIG1fZGlkTWF0Y2hVbmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9y
ID0gdHJ1ZTsKQEAgLTQ4Miw5ICs0ODEsNyBAQCBpbmxpbmUgYm9vbCBFbGVtZW50UnVsZUNvbGxl
Y3Rvcjo6cnVsZU1hdGNoZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhLCB1bnNpZ25lZAogI2lm
IEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQogICAgIGlmIChjb21waWxlZFNlbGVjdG9yLnN0YXR1
cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tp
bmdDb250ZXh0KSB7CiAgICAgICAgIGNvbXBpbGVkU2VsZWN0b3Iud2FzVXNlZCgpOwotCi0gICAg
ICAgIGF1dG8gc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3Rv
clNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChjb21waWxlZFNlbGVj
dG9yKTsKLSAgICAgICAgc2VsZWN0b3JNYXRjaGVzID0gc2VsZWN0b3JDaGVja2VyKCZlbGVtZW50
KCksICZjb250ZXh0LCAmc3BlY2lmaWNpdHkpOworICAgICAgICBzZWxlY3Rvck1hdGNoZXMgPSBT
ZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5n
Q29udGV4dChjb21waWxlZFNlbGVjdG9yLCAmZWxlbWVudCgpLCAmY29udGV4dCwgJnNwZWNpZmlj
aXR5KTsKICAgICB9IGVsc2UKICNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKICAg
ICB7Cg==
</data>
<flag name="commit-queue"
          id="429777"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413216</attachid>
            <date>2020-11-04 15:13:34 -0800</date>
            <delta_ts>2020-11-04 21:17:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218587-20201104151333.patch</filename>
            <type>text/plain</type>
            <size>34033</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5Mzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YWViYzQ3Y2I4ZDRlNTQyM2FhMjMyN2RjN2ZjMDI5YWZiMzEzODgxLi5lMGRkYTk2ZTkzZDVmNDU1
YjNmODhkMDJkNjgzMThmOGZlODdiNGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMC0xMS0wNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIEFwcGx5IEpJVENhZ2UgdG8gQ1NTSklUCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg1ODcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6CisgICAg
ICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogcnVudGltZS9K
U0NQdHJUYWcuaDoKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQuY3BwOgorCiAyMDIwLTExLTA0ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
Zml4IEFSTTY0IG9ubHkgY3Jhc2ggKEFSTTY0RSB3b3JrcykgYWZ0ZXIgSklUIENhZ2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAxNmQxNGM4ZTkwZTBmODYxNWM2YTA1Njc2NjQwOTE1NGViNzlhMzVhLi5kNDRiNWY3
ZmRhZGM4OTNjODhlNGQxNzAwYTFjOWYyMTgyZGI2OWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDEgQEAKKzIwMjAtMTEtMDQgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBcHBseSBKSVRDYWdlIHRvIENTU0pJVAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NTg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgQ1NTSklUIGRvZXMgbm90IGNhbGwgSklUIGZ1
bmN0aW9uIHJlY3Vyc2l2ZWx5LCBzdXBwb3J0aW5nIGl0IGluIEpJVENhZ2UgaXMgc2ltcGxlOiB3
ZSBjYW4gaGF2ZSB0cmFtcG9saW5lIGluIEMKKyAgICAgICAgYW5kIGp1bXAgdG8gSklUIGNvZGUs
IGFuZCBpbnN0ZWFkIG9mIGRvaW5nICJyZXQiLCByZXR1cm5pbmcgYmFjayB0byBDIGNvZGUgdmlh
IGp1bXAuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzc2ppdC9DU1NQdHJUYWcu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBjc3NqaXQvQ29tcGlsZWRTZWxlY3Rvci5oOgorICAgICAg
ICAqIGNzc2ppdC9GdW5jdGlvbkNhbGwuaDoKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21w
aWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNv
ZGVHZW5lcmF0b3I6OmNvbXBpbGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxl
cjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZVJldHVybik6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlU2Vs
ZWN0b3JDaGVja2VyKToKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNpbXBsZVNlbGVj
dG9yQ2hlY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNl
bGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9y
Q29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTZWxl
Y3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVj
dG9yQ29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVj
dG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6U2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0
aW9uV2l0aENoZWNraW5nQ29udGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxl
Y3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hl
Y2tpbmdDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vU2VsZWN0b3JRdWVyeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGlsZWRTaW1w
bGVTZWxlY3RvckNoZWNrZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JEYXRh
TGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGls
ZWRTaW5nbGVNdWx0aVNlbGVjdG9yRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxl
Y3RvckRhdGFMaXN0OjpleGVjdXRlIGNvbnN0KToKKyAgICAgICAgKiBkb20vU2VsZWN0b3JRdWVy
eS5oOgorICAgICAgICAqIHN0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMpOgorCiAy
MDIwLTExLTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBzb21lIG1pc3NpbmcgaGVhZGVyIGluY2x1ZGVzIGluIG1lZGlhIHNvdXJjZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKaW5kZXggZDhlOTQ0MzM2N2Y1
MGM4NDljNjgxMDE3MDY5ODA1MTg2MGYxMzY3Mi4uN2M2ZWVlN2JlM2MwMjExNzdmZTI5MTAyNTlk
YzQ4NmYxYTE2MzBhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50RGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5j
cHAKQEAgLTU5LDYgKzU5LDEwIEBAIGV4dGVybiAiQyIgdm9pZCBleGNlcHRpb25IYW5kbGVyVHJh
bXBvbGluZSh2b2lkKTsKIGV4dGVybiAiQyIgdm9pZCByZXR1cm5Gcm9tTExJbnRUcmFtcG9saW5l
KHZvaWQpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkgJiYgQ1BVKEFS
TTY0KQorSlNDX0FOTk9UQVRFX0pJVF9PUEVSQVRJT04oX0pJVFRhcmdldF92bUVudHJ5VG9DU1NK
SVRBZnRlciwgdm1FbnRyeVRvQ1NTSklUQWZ0ZXIpOworI2VuZGlmCisKIHZvaWQgaW5pdGlhbGl6
ZSgpCiB7CiAjaWYgRU5BQkxFKENfTE9PUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCAxNTVkNWU2NDU5NzZkYmRkYWI1
Y2JiMDM2MzY4NTliZTM2NWVjYWJhLi42YjA4YTIyYTUwMGQ5YzgwZjU0Y2Q3NDA2NDRmZTc1Njlm
ZDI1Y2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIuYXNtCkBAIC0yNjAsNiArMjYwLDcgQEAgY29uc3QgSlNFbnRyeVNsb3dQYXRo
UHRyVGFnID0gY29uc3RleHByIEpTRW50cnlTbG93UGF0aFB0clRhZwogY29uc3QgTmF0aXZlVG9K
SVRHYXRlUHRyVGFnID0gY29uc3RleHByIE5hdGl2ZVRvSklUR2F0ZVB0clRhZwogY29uc3QgRXhj
ZXB0aW9uSGFuZGxlclB0clRhZyA9IGNvbnN0ZXhwciBFeGNlcHRpb25IYW5kbGVyUHRyVGFnCiBj
b25zdCBZYXJyRW50cnlQdHJUYWcgPSBjb25zdGV4cHIgWWFyckVudHJ5UHRyVGFnCitjb25zdCBD
U1NTZWxlY3RvclB0clRhZyA9IGNvbnN0ZXhwciBDU1NTZWxlY3RvclB0clRhZwogY29uc3QgTm9Q
dHJUYWcgPSBjb25zdGV4cHIgTm9QdHJUYWcKICAKIApAQCAtMTYxMCw2ICsxNjExLDE3IEBAIGVu
ZAogICAgIGZ1bmN0aW9uRXBpbG9ndWUoKQogICAgIHJldAogCisjIHVuc2lnbmVkIHZtRW50cnlU
b0NTU0pJVCh1aW50cHRyX3QsIHVpbnRwdHJfdCwgdWludHB0cl90LCBjb25zdCB2b2lkKiBjb2Rl
UHRyKTsKK2lmIEFSTTY0IG9yIEFSTTY0RQorZW1pdCAiLmdsb2JsIF92bUVudHJ5VG9DU1NKSVQi
CitlbWl0ICJfdm1FbnRyeVRvQ1NTSklUOiIKKyAgICBmdW5jdGlvblByb2xvZ3VlKCkKKyAgICBq
bXAgdDMsIENTU1NlbGVjdG9yUHRyVGFnCisgICAgZW1pdCAiLmdsb2JsIF92bUVudHJ5VG9DU1NK
SVRBZnRlciIKKyAgICBlbWl0ICJfdm1FbnRyeVRvQ1NTSklUQWZ0ZXI6IgorICAgIGZ1bmN0aW9u
RXBpbG9ndWUoKQorICAgIHJldAorZW5kCiAKIGlmIG5vdCAoQ19MT09QIG9yIENfTE9PUF9XSU4p
CiAgICAgIyB2b2lkIHNhbml0aXplU3RhY2tGb3JWTUltcGwoVk0qIHZtKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDUHRyVGFnLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NQdHJUYWcuaAppbmRleCA0NjQ1YjA1Yzk3MzY1MTdlN2FhNTA0
OWJlODc2ZWU0OGIyZTgyMThmLi4xNmExYjRkZTNhNzhiMWZmN2QxYWMyZDdlMDg4ZDcwYWJiZmMw
YjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NQdHJUYWcu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NQdHJUYWcuaApAQCAtNjAs
NiArNjAsNyBAQCB1c2luZyBQdHJUYWcgPSBXVEY6OlB0clRhZzsKICAgICAvKiBDYWxsZWU6SklU
IENhbGxlcjpOYXRpdmUgKi8gXAogICAgIHYoTmF0aXZlVG9KSVRHYXRlUHRyVGFnLCBQdHJUYWdD
YWxsZWVUeXBlOjpKSVQsIFB0clRhZ0NhbGxlclR5cGU6Ok5hdGl2ZSkgXAogICAgIHYoWWFyckVu
dHJ5UHRyVGFnLCBQdHJUYWdDYWxsZWVUeXBlOjpKSVQsIFB0clRhZ0NhbGxlclR5cGU6Ok5hdGl2
ZSkgXAorICAgIHYoQ1NTU2VsZWN0b3JQdHJUYWcsIFB0clRhZ0NhbGxlZVR5cGU6OkpJVCwgUHRy
VGFnQ2FsbGVyVHlwZTo6TmF0aXZlKSBcCiAgICAgLyogQ2FsbGVlOk5hdGl2ZSBDYWxsZXI6SklU
ICovIFwKICAgICB2KEhvc3RGdW5jdGlvblB0clRhZywgUHRyVGFnQ2FsbGVlVHlwZTo6TmF0aXZl
LCBQdHJUYWdDYWxsZXJUeXBlOjpKSVQpIFwKICAgICB2KE9wZXJhdGlvblB0clRhZywgUHRyVGFn
Q2FsbGVlVHlwZTo6TmF0aXZlLCBQdHJUYWdDYWxsZXJUeXBlOjpKSVQpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKaW5kZXggOTRkMzAyYWVhZmQ1MTZhNWIzZmM3ZjRiZjVm
Nzk1YTNmNTZjYTc2Ny4uNDkwYzAxNTFmNGE2ZTg3Zjc4MTRhODFhYjJlNzhjOTBhYzM5MzdkMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKQEAgLTM4MTYsOCArMzgxNiw3
IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8sIHByaXZh
dGUgTWFjcm9Bc3NlbWJsZXIgewogI2VuZGlmCiAKICNpZiBDUFUoQVJNNjQpCi0gICAgICAgIG1v
dmUoVHJ1c3RlZEltbVB0cihyZXRhZ0NvZGVQdHI8dm9pZCosIENGdW5jdGlvblB0clRhZywgT3Bl
cmF0aW9uUHRyVGFnPigmdm1FbnRyeVRvWWFyckpJVEFmdGVyKSksIHJlZ1QwKTsKLSAgICAgICAg
ZmFySnVtcChyZWdUMCwgT3BlcmF0aW9uUHRyVGFnKTsKKyAgICAgICAgZmFySnVtcChUcnVzdGVk
SW1tUHRyKHJldGFnQ29kZVB0cjx2b2lkKiwgQ0Z1bmN0aW9uUHRyVGFnLCBPcGVyYXRpb25QdHJU
YWc+KCZ2bUVudHJ5VG9ZYXJySklUQWZ0ZXIpKSwgT3BlcmF0aW9uUHRyVGFnKTsKICNlbHNlCiAg
ICAgICAgIHJldCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjA2MmU5MDdiNWFjNjFmYTQ2MjM2OTQwYzQ2YTU3
MjhiNGI4YjQwMy4uYWIwZDY3NGI5MjdjZDhhZGZmOTk3ZWI5ZjQ5NzU4ZjljYzBhZjRhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNTM4Niw3ICs1Mzg2LDYgQEAKIAkJRkRGNkJBRjkxMzRBNEM5ODAwODIyOTIwIC8qIEpTT2Zm
bGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGREY2QkFGNzEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVk
aW9Db21wbGV0aW9uRXZlbnQuaCAqLzsgfTsKIAkJRkRGN0U5QzQxM0FDMjFEQjAwQTUxRUFDIC8q
IEpTQXVkaW9CdWZmZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkRGN0U5QzIxM0FDMjFEQjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJD
YWxsYmFjay5oICovOyB9OwogCQlGRTBEODRFOTEwNDg0MzQ4MDAxQTE3OUUgLyogV2ViRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMEQ4NEU4
MTA0ODQzNDgwMDFBMTc5RSAvKiBXZWJFdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUZFMjcxRjY3MjA4MkRCRTUwMEE5NTJENCAvKiBDU1NQ
dHJUYWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZF
MjcxRjY0MjA4MkRCQkUwMEE5NTJENCAvKiBDU1NQdHJUYWcuaCAqLzsgfTsKIAkJRkUzNkZEMTUx
NkM3ODI2NTAwRjg4N0MxIC8qIENoYW5nZVZlcnNpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTM2RkQxMTE2Qzc4MjY0MDBGODg3QzEgLyog
Q2hhbmdlVmVyc2lvbkRhdGEuaCAqLzsgfTsKIAkJRkUzNkZEMTcxNkM3ODI2NTAwRjg4N0MxIC8q
IFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRTM2RkQxMzE2Qzc4MjY0MDBGODg3QzEgLyogU1FMVHJhbnNh
Y3Rpb25TdGF0ZU1hY2hpbmUuaCAqLzsgfTsKIAkJRkUzNkZEMTgxNkM3ODI2NTAwRjg4N0MxIC8q
IFNRTFRyYW5zYWN0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZFMzZGRDE0MTZDNzgyNjQwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0
YXRlLmggKi87IH07CkBAIC0xNjgwOSw3ICsxNjgwOCw2IEBACiAJCUZERjdFOUMyMTNBQzIxREIw
MEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNBdWRpb0J1ZmZlckNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUZFMEQ4NEU4MTA0ODQzNDgwMDFBMTc5RSAvKiBXZWJFdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGRTBEODRFQTEwNDg0MzZFMDAxQTE3OUUgLyogV2ViRXZlbnQubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJFdmVudC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRkUyNzFGNjQyMDgyREJCRTAwQTk1MkQ0IC8qIENTU1B0clRh
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NQdHJUYWcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUzNkZEMTExNkM3ODI2NDAwRjg4N0MxIC8qIENoYW5n
ZVZlcnNpb25EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoYW5nZVZl
cnNpb25EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMzZGRDEyMTZDNzgy
NjQwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMzZGRDEzMTZDNzgyNjQwMEY4ODdDMSAv
KiBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTg2NzQsNyArMTg2NzIsNiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKIAkJCQlFNDQ1MTA3NzIwMkM3RTAxMDA2NTdEMzMgLyogQ29tcGlsZWRTZWxl
Y3Rvci5oICovLAotCQkJCUZFMjcxRjY0MjA4MkRCQkUwMEE5NTJENCAvKiBDU1NQdHJUYWcuaCAq
LywKIAkJCQkyNkI5OTk5MjE4MDNCOUQ5MDBEMDExMjEgLyogRnVuY3Rpb25DYWxsLmggKi8sCiAJ
CQkJMjZCOTk5OEUxODAzQUU3MjAwRDAxMTIxIC8qIFJlZ2lzdGVyQWxsb2NhdG9yLmggKi8sCiAJ
CQkJMjZCOTk5OTQxODA0RDU0MjAwRDAxMTIxIC8qIFNlbGVjdG9yQ29tcGlsZXIuY3BwICovLApA
QCAtMzEzNDAsNyArMzEzMzcsNiBAQAogCQkJCTk0NkQzNzQ2MUQ2RDAxRDQwMDc3MDg0RiAvKiBD
U1NQcm9wZXJ0eVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTQ5Qzc3MDUxRDZFMzlFQTAw
QzBERTRGIC8qIENTU1Byb3BlcnR5UGFyc2VySGVscGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODJFM0Q4REYxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5U291cmNlRGF0YS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJRkUyNzFGNjcyMDgyREJFNTAwQTk1MkQ0IC8qIENTU1B0clRhZy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM1QTEyRTAwREMwNDE0ODAwQzlBRkFEIC8qIENTU1JlZmxlY3RW
YWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEJEQTQwMDEyMTUxQjZGNTAwRkQ2NjA0IC8qIENT
U1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3RDhGRjQx
QkQxQTQ3OTAwRkZFNTQwIC8qIENTU1JldmVydFZhbHVlLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9DU1NQdHJUYWcuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzc2ppdC9DU1NQdHJUYWcuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGIyNTNj
ZDYzOTFjMDNjMGZlMTk5OGI3NjI0NDU4MjVmZjU1OWM2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvQ1NTUHRyVGFn
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoQ1NTX1NF
TEVDVE9SX0pJVCkKLQotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ1B0clRhZy5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSNkZWZpbmUgRk9SX0VBQ0hfQ1NTX1BUUlRBRyh2KSBcCi0g
ICAgdihDU1NTZWxlY3RvclB0clRhZykgXAotCi0jaWYgQ09NUElMRVIoTVNWQykKLSNwcmFnbWEg
d2FybmluZyhwdXNoKQotI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDMwNykKLSNlbmRpZgotCi1G
T1JfRUFDSF9DU1NfUFRSVEFHKFdURl9ERUNMQVJFX1BUUlRBRykKLQotI2lmIENPTVBJTEVSKE1T
VkMpCi0jcHJhZ21hIHdhcm5pbmcocG9wKQotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3Nzaml0L0NvbXBpbGVkU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
c2ppdC9Db21waWxlZFNlbGVjdG9yLmgKaW5kZXggNWU2MTcxOWE5NzhmZmYwOTM5M2RiMTAwOTE0
MzM5MDdiYWYxM2U5Ny4uNzZkYmNlYWQ0MTEyYmFjOGY4Zjk0NTcxYzBhYjdhNTg0Mjk2ZTRhZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L0NvbXBpbGVkU2VsZWN0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvQ29tcGlsZWRTZWxlY3Rvci5oCkBAIC0yNyw4ICsyNyw4
IEBACiAKICNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKIAotI2luY2x1ZGUgIkNTU1B0clRh
Zy5oIgogI2luY2x1ZGUgIkNTU1NlbGVjdG9yLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNDUHRyVGFnLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmLmg+CiAKICNkZWZpbmUgQ1NTX1NFTEVDVE9SX0pJVF9QUk9GSUxJTkcgMApAQCAtNDUsNyAr
NDUsNyBAQCBlbnVtIGNsYXNzIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgOiB1aW50OF90IHsK
IHN0cnVjdCBDb21waWxlZFNlbGVjdG9yIHsKICAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExP
Q0FURUQ7CiAgICAgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBzdGF0dXMgeyBTZWxlY3RvckNv
bXBpbGF0aW9uU3RhdHVzOjpOb3RDb21waWxlZCB9OwotICAgIEpTQzo6TWFjcm9Bc3NlbWJsZXJD
b2RlUmVmPENTU1NlbGVjdG9yUHRyVGFnPiBjb2RlUmVmOworICAgIEpTQzo6TWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmPEpTQzo6Q1NTU2VsZWN0b3JQdHJUYWc+IGNvZGVSZWY7CiAKICNpZiBkZWZpbmVk
KENTU19TRUxFQ1RPUl9KSVRfUFJPRklMSU5HKSAmJiBDU1NfU0VMRUNUT1JfSklUX1BST0ZJTElO
RwogICAgIHVuc2lnbmVkIHVzZUNvdW50IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3Nzaml0L0Z1bmN0aW9uQ2FsbC5oIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L0Z1bmN0aW9u
Q2FsbC5oCmluZGV4IDdhN2QzYTY2OGQ0ZWVjODZlZjhkZGRlODRhZjcyYmNiOTNmMmUxMmEuLjIy
OWY2Nzk5NzVkZTNiMTFlZDY1YTdjM2E5YzVjZTk2M2M4ODIyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzc2ppdC9GdW5jdGlvbkNhbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Nq
aXQvRnVuY3Rpb25DYWxsLmgKQEAgLTI3LDEwICsyNywxMCBAQAogCiAjaWYgRU5BQkxFKENTU19T
RUxFQ1RPUl9KSVQpCiAKLSNpbmNsdWRlICJDU1NQdHJUYWcuaCIKICNpbmNsdWRlICJSZWdpc3Rl
ckFsbG9jYXRvci5oIgogI2luY2x1ZGUgIlN0YWNrQWxsb2NhdG9yLmgiCiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvR1BSSW5mby5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ1B0clRh
Zy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL01hY3JvQXNzZW1ibGVyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3Rv
ckNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNw
cAppbmRleCAyYTFlYTRmYjUxYjMxNGFhNThkYjM5ZDVjNDE1ODg2MjFmMWYyM2M2Li5mZGM4NTRl
YWFmNmQ5ZmMyOTcyOWMzZjM1MmM4MzM2ODJmMzYzNjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
aml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCkBAIC0zMTcsNyArMzE3LDcgQEAgc3RydWN0IEJhY2t0
cmFja2luZ0xldmVsIHsKIGNsYXNzIFNlbGVjdG9yQ29kZUdlbmVyYXRvciB7CiBwdWJsaWM6CiAg
ICAgU2VsZWN0b3JDb2RlR2VuZXJhdG9yKGNvbnN0IENTU1NlbGVjdG9yKiwgU2VsZWN0b3JDb250
ZXh0KTsKLSAgICBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIGNvbXBpbGUoSlNDOjpNYWNyb0Fz
c2VtYmxlckNvZGVSZWY8Q1NTU2VsZWN0b3JQdHJUYWc+Jik7CisgICAgU2VsZWN0b3JDb21waWxh
dGlvblN0YXR1cyBjb21waWxlKEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpTQzo6Q1NTU2Vs
ZWN0b3JQdHJUYWc+Jik7CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IEFzc2VtYmxlcjo6
UmVnaXN0ZXJJRCByZXR1cm5SZWdpc3RlcjsKQEAgLTMyNSw2ICszMjUsOCBAQCBjbGFzcyBTZWxl
Y3RvckNvZGVHZW5lcmF0b3IgewogICAgIHN0YXRpYyBjb25zdCBBc3NlbWJsZXI6OlJlZ2lzdGVy
SUQgY2hlY2tpbmdDb250ZXh0UmVnaXN0ZXI7CiAgICAgc3RhdGljIGNvbnN0IEFzc2VtYmxlcjo6
UmVnaXN0ZXJJRCBjYWxsRnJhbWVSZWdpc3RlcjsKIAorICAgIHZvaWQgZ2VuZXJhdGVSZXR1cm4o
KTsKKwogICAgIHZvaWQgZ2VuZXJhdGVTZWxlY3RvckNoZWNrZXIoKTsKICAgICB2b2lkIGdlbmVy
YXRlU2VsZWN0b3JDaGVja2VyRXhjbHVkaW5nUHNldWRvRWxlbWVudHMoQXNzZW1ibGVyOjpKdW1w
TGlzdCYgZmFpbHVyZUNhc2VzLCBjb25zdCBTZWxlY3RvckZyYWdtZW50TGlzdCYpOwogICAgIHZv
aWQgZ2VuZXJhdGVFbGVtZW50TWF0Y2hlc1NlbGVjdG9yTGlzdChBc3NlbWJsZXI6Okp1bXBMaXN0
JiBmYWlsdXJlQ2FzZXMsIEFzc2VtYmxlcjo6UmVnaXN0ZXJJRCBlbGVtZW50VG9NYXRjaCwgY29u
c3QgU2VsZWN0b3JMaXN0Jik7CkBAIC0xNDM3LDcgKzE0MzksNyBAQCB2b2lkIGNvbXB1dGVCYWNr
dHJhY2tpbmdNZW1vcnlSZXF1aXJlbWVudHMoU2VsZWN0b3JGcmFnbWVudExpc3QmIHNlbGVjdG9y
RnJhZ21lbgogICAgIH0KIH0KIAotaW5saW5lIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgU2Vs
ZWN0b3JDb2RlR2VuZXJhdG9yOjpjb21waWxlKEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPENT
U1NlbGVjdG9yUHRyVGFnPiYgY29kZVJlZikKK2lubGluZSBTZWxlY3RvckNvbXBpbGF0aW9uU3Rh
dHVzIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Y29tcGlsZShKU0M6Ok1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxKU0M6OkNTU1NlbGVjdG9yUHRyVGFnPiYgY29kZVJlZikKIHsKICAgICBzd2l0Y2ggKG1f
ZnVuY3Rpb25UeXBlKSB7CiAgICAgY2FzZSBGdW5jdGlvblR5cGU6OlNpbXBsZVNlbGVjdG9yQ2hl
Y2tlcjoKQEAgLTE0NDUsOSArMTQ0Nyw4IEBAIGlubGluZSBTZWxlY3RvckNvbXBpbGF0aW9uU3Rh
dHVzIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Y29tcGlsZShKU0M6Ok1hY3JvQXNzZW1iCiAgICAg
ICAgIGdlbmVyYXRlU2VsZWN0b3JDaGVja2VyKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
RnVuY3Rpb25UeXBlOjpDYW5ub3RNYXRjaEFueXRoaW5nOgotICAgICAgICBtX2Fzc2VtYmxlci50
YWdSZXR1cm5BZGRyZXNzKCk7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmUoQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoMCksIHJldHVyblJlZ2lzdGVyKTsKLSAgICAgICAgbV9hc3NlbWJsZXIucmV0
KCk7CisgICAgICAgIGdlbmVyYXRlUmV0dXJuKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
RnVuY3Rpb25UeXBlOjpDYW5ub3RDb21waWxlOgogICAgICAgICByZXR1cm4gU2VsZWN0b3JDb21w
aWxhdGlvblN0YXR1czo6Q2Fubm90Q29tcGlsZTsKQEAgLTE0NjYsOSArMTQ2Nyw5IEBAIGlubGlu
ZSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Y29tcGls
ZShKU0M6Ok1hY3JvQXNzZW1iCiAgICAgICAgIGxpbmtCdWZmZXIubGluayhtX2Z1bmN0aW9uQ2Fs
bHNbaV0uZmlyc3QsIG1fZnVuY3Rpb25DYWxsc1tpXS5zZWNvbmQpOwogCiAjaWYgQ1NTX1NFTEVD
VE9SX0pJVF9ERUJVR0dJTkcKLSAgICBjb2RlUmVmID0gbGlua0J1ZmZlci5maW5hbGl6ZUNvZGVX
aXRoRGlzYXNzZW1ibHkoQ1NTU2VsZWN0b3JQdHJUYWcsICJDU1MgU2VsZWN0b3IgSklUIGZvciBc
IiVzXCIiLCBtX29yaWdpbmFsU2VsZWN0b3ItPnNlbGVjdG9yVGV4dCgpLnV0ZjgoKS5kYXRhKCkp
OworICAgIGNvZGVSZWYgPSBsaW5rQnVmZmVyLmZpbmFsaXplQ29kZVdpdGhEaXNhc3NlbWJseShK
U0M6OkNTU1NlbGVjdG9yUHRyVGFnLCAiQ1NTIFNlbGVjdG9yIEpJVCBmb3IgXCIlc1wiIiwgbV9v
cmlnaW5hbFNlbGVjdG9yLT5zZWxlY3RvclRleHQoKS51dGY4KCkuZGF0YSgpKTsKICNlbHNlCi0g
ICAgY29kZVJlZiA9IEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgQ1NTU2VsZWN0b3JQdHJUYWcs
ICJDU1MgU2VsZWN0b3IgSklUIik7CisgICAgY29kZVJlZiA9IEZJTkFMSVpFX0NPREUobGlua0J1
ZmZlciwgSlNDOjpDU1NTZWxlY3RvclB0clRhZywgIkNTUyBTZWxlY3RvciBKSVQiKTsKICNlbmRp
ZgogCiAgICAgaWYgKG1fZnVuY3Rpb25UeXBlID09IEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0
b3JDaGVja2VyIHx8IG1fZnVuY3Rpb25UeXBlID09IEZ1bmN0aW9uVHlwZTo6Q2Fubm90TWF0Y2hB
bnl0aGluZykKQEAgLTE5NDYsNiArMTk0NywxNSBAQCBpbmxpbmUgdm9pZCBTZWxlY3RvckNvZGVH
ZW5lcmF0b3I6OmdlbmVyYXRlRXBpbG9ndWUoU3RhY2tBbGxvY2F0b3ImIHN0YWNrQWxsb2NhdAog
I2VuZGlmCiB9CiAKK2lubGluZSB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVS
ZXR1cm4oKQoreworI2lmIENQVShBUk02NCkKKyAgICBtX2Fzc2VtYmxlci5mYXJKdW1wKEFzc2Vt
Ymxlcjo6VHJ1c3RlZEltbVB0cihyZXRhZ0NvZGVQdHI8dm9pZCosIENGdW5jdGlvblB0clRhZywg
SlNDOjpPcGVyYXRpb25QdHJUYWc+KCZ2bUVudHJ5VG9DU1NKSVRBZnRlcikpLCBKU0M6Ok9wZXJh
dGlvblB0clRhZyk7CisjZWxzZQorICAgIG1fYXNzZW1ibGVyLnJldCgpOworI2VuZGlmCit9CisK
IHN0YXRpYyBib29sIGlzQWRqYWNlbnRSZWxhdGlvbihGcmFnbWVudFJlbGF0aW9uIHJlbGF0aW9u
KQogewogICAgIHJldHVybiByZWxhdGlvbiA9PSBGcmFnbWVudFJlbGF0aW9uOjpEaXJlY3RBZGph
Y2VudCB8fCByZWxhdGlvbiA9PSBGcmFnbWVudFJlbGF0aW9uOjpJbmRpcmVjdEFkamFjZW50OwpA
QCAtMTk1OCw3ICsxOTY4LDYgQEAgc3RhdGljIGJvb2wgc2hvdWxkTWFya1N0eWxlSXNBZmZlY3Rl
ZEJ5UHJldmlvdXNTaWJsaW5nKGNvbnN0IFNlbGVjdG9yRnJhZ21lbnQmIGYKIAogdm9pZCBTZWxl
Y3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlU2VsZWN0b3JDaGVja2VyKCkKIHsKLSAgICBtX2Fz
c2VtYmxlci50YWdSZXR1cm5BZGRyZXNzKCk7CiAgICAgcHVzaE1hY3JvQXNzZW1ibGVyUmVnaXN0
ZXJzKCk7CiAgICAgU3RhY2tBbGxvY2F0b3IgZWFybHlGYWlsdXJlU3RhY2sgPSBtX3N0YWNrQWxs
b2NhdG9yOwogCkBAIC0xOTg5LDcgKzE5OTgsNyBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRv
cjo6Z2VuZXJhdGVTZWxlY3RvckNoZWNrZXIoKQogICAgIGlmIChtX3NlbGVjdG9yRnJhZ21lbnRz
LnN0YWNrUmVxdWlyZW1lbnRzID4gbWF4aW11bUJhY2t0cmFja2luZ0FsbG9jYXRpb25zKSB7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLm1vdmUoQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMCksIHJldHVy
blJlZ2lzdGVyKTsKICAgICAgICAgcG9wTWFjcm9Bc3NlbWJsZXJSZWdpc3RlcnMobV9zdGFja0Fs
bG9jYXRvcik7Ci0gICAgICAgIG1fYXNzZW1ibGVyLnJldCgpOworICAgICAgICBnZW5lcmF0ZVJl
dHVybigpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMDU0LDcgKzIwNjMsNyBAQCB2
b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVTZWxlY3RvckNoZWNrZXIoKQogICAg
ICAgICAgICAgLy8gU3VjY2Vzcy4KICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmUoQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMSksIHJldHVyblJlZ2lzdGVyKTsKICAgICAgICAgICAgIHBvcE1h
Y3JvQXNzZW1ibGVyUmVnaXN0ZXJzKHN1Y2Nlc3NTdGFjayk7Ci0gICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5yZXQoKTsKKyAgICAgICAgICAgIGdlbmVyYXRlUmV0dXJuKCk7CiAKICAgICAgICAgICAg
IC8vIEZhaWx1cmUuCiAgICAgICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGZhaWx1cmVPbkZ1
bmN0aW9uRW50cnkuZW1wdHkoKSwgIkVhcmx5IGZhaWx1cmUgb24gZnVuY3Rpb24gZW50cnkgaXMg
dXNlZCBmb3IgcHNldWRvIGVsZW1lbnQuIFdoZW4gZWFybHkgZmFpbHVyZSBpcyB1c2VkLCBmdW5j
dGlvbiB0eXBlIGlzIFNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQuIik7CkBAIC0y
MDYyLDcgKzIwNzEsNyBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVTZWxl
Y3RvckNoZWNrZXIoKQogICAgICAgICAgICAgICAgIGZhaWx1cmVDYXNlcy5saW5rKCZtX2Fzc2Vt
Ymxlcik7CiAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIubW92ZShBc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMigwKSwgcmV0dXJuUmVnaXN0ZXIpOwogICAgICAgICAgICAgICAgIHBvcE1hY3JvQXNz
ZW1ibGVyUmVnaXN0ZXJzKGZhaWx1cmVTdGFjayk7Ci0gICAgICAgICAgICAgICAgbV9hc3NlbWJs
ZXIucmV0KCk7CisgICAgICAgICAgICAgICAgZ2VuZXJhdGVSZXR1cm4oKTsKICAgICAgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgICAgIGZhaWx1cmVTdGFjayA9IHN1Y2Nlc3NTdGFjazsKIApA
QCAtMjA5MSwxNCArMjEwMCwxNCBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJh
dGVTZWxlY3RvckNoZWNrZXIoKQogICAgIGlmIChuZWVkc0VwaWxvZ3VlKQogICAgICAgICBnZW5l
cmF0ZUVwaWxvZ3VlKHN1Y2Nlc3NTdGFjayk7CiAgICAgcG9wTWFjcm9Bc3NlbWJsZXJSZWdpc3Rl
cnMoc3VjY2Vzc1N0YWNrKTsKLSAgICBtX2Fzc2VtYmxlci5yZXQoKTsKKyAgICBnZW5lcmF0ZVJl
dHVybigpOwogCiAgICAgLy8gRWFybHkgZmFpbHVyZSBvbiBmdW5jdGlvbiBlbnRyeSBjYXNlLgog
ICAgIGlmICghZmFpbHVyZU9uRnVuY3Rpb25FbnRyeS5lbXB0eSgpKSB7CiAgICAgICAgIGZhaWx1
cmVPbkZ1bmN0aW9uRW50cnkubGluaygmbV9hc3NlbWJsZXIpOwogICAgICAgICBtX2Fzc2VtYmxl
ci5tb3ZlKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDApLCByZXR1cm5SZWdpc3Rlcik7CiAgICAg
ICAgIHBvcE1hY3JvQXNzZW1ibGVyUmVnaXN0ZXJzKGVhcmx5RmFpbHVyZVN0YWNrKTsKLSAgICAg
ICAgbV9hc3NlbWJsZXIucmV0KCk7CisgICAgICAgIGdlbmVyYXRlUmV0dXJuKCk7CiAgICAgfSBl
bHNlCiAgICAgICAgIGVhcmx5RmFpbHVyZVN0YWNrID0gc3VjY2Vzc1N0YWNrOwogICAgIG1fc3Rh
Y2tBbGxvY2F0b3IubWVyZ2UoV1RGTW92ZShzdWNjZXNzU3RhY2spLCBXVEZNb3ZlKGVhcmx5RmFp
bHVyZVN0YWNrKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JD
b21waWxlci5oIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuaAppbmRl
eCAwZmVkYTRiYWI4M2MxOGNkYTM0MWQ3M2UyYjZjY2Q2ZDAxYzFlNmMxLi5hODZlM2U0NmQ2NmZi
M2Y0NThmN2JiZWExNTgwZjAxODMyZjE2MTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3NqaXQvU2VsZWN0b3JDb21waWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxl
Y3RvckNvbXBpbGVyLmgKQEAgLTQ1LDM2ICs0NSw1MyBAQCBlbnVtIGNsYXNzIFNlbGVjdG9yQ29u
dGV4dCB7CiAgICAgUXVlcnlTZWxlY3RvcgogfTsKIAotdHlwZWRlZiB1bnNpZ25lZCAoKlJ1bGVD
b2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIpKGNvbnN0IEVsZW1lbnQqLCB1bnNpZ25lZCop
OwotdHlwZWRlZiB1bnNpZ25lZCAoKlF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIp
KGNvbnN0IEVsZW1lbnQqKTsKLQotdHlwZWRlZiB1bnNpZ25lZCAoKlJ1bGVDb2xsZWN0b3JTZWxl
Y3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KShjb25zdCBFbGVtZW50KiwgU2VsZWN0b3JD
aGVja2VyOjpDaGVja2luZ0NvbnRleHQqLCB1bnNpZ25lZCopOwotdHlwZWRlZiB1bnNpZ25lZCAo
KlF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KShjb25zdCBF
bGVtZW50KiwgY29uc3QgU2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0NvbnRleHQqKTsKLQogdm9p
ZCBjb21waWxlU2VsZWN0b3IoQ29tcGlsZWRTZWxlY3RvciYsIGNvbnN0IENTU1NlbGVjdG9yKiwg
U2VsZWN0b3JDb250ZXh0KTsKIAotaW5saW5lIFJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNo
ZWNrZXIgcnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKENvbXBpbGVk
U2VsZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3IpCitleHRlcm4gIkMiIHVuc2lnbmVkIHZtRW50cnlU
b0NTU0pJVCh1aW50cHRyX3QsIHVpbnRwdHJfdCwgdWludHB0cl90LCBjb25zdCB2b2lkKiBjb2Rl
UHRyKTsKK2V4dGVybiAiQyIgdm9pZCB2bUVudHJ5VG9DU1NKSVRBZnRlcih2b2lkKTsKKworaW5s
aW5lIHVuc2lnbmVkIHJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIoQ29tcGlsZWRT
ZWxlY3RvciYgY29tcGlsZWRTZWxlY3RvciwgY29uc3QgRWxlbWVudCogZWxlbWVudCwgdW5zaWdu
ZWQqIHZhbHVlKQogewogICAgIEFTU0VSVChjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxl
Y3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIpOwotICAgIHJldHVy
biBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNr
ZXIsIENTU1NlbGVjdG9yUHRyVGFnPihjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgpLmV4
ZWN1dGFibGVBZGRyZXNzKCkpOworI2lmIENQVShBUk02NCkKKyAgICByZXR1cm4gdm1FbnRyeVRv
Q1NTSklUKGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGVsZW1lbnQpLCBiaXR3aXNlX2Nhc3Q8dWlu
dHB0cl90Pih2YWx1ZSksIDAsIGNvbXBpbGVkU2VsZWN0b3IuY29kZVJlZi5jb2RlKCkuZXhlY3V0
YWJsZUFkZHJlc3MoKSk7CisjZWxzZQorICAgIHR5cGVkZWYgdW5zaWduZWQgKCpSdWxlQ29sbGVj
dG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKShjb25zdCBFbGVtZW50KiwgdW5zaWduZWQqKTsKKyAg
ICByZXR1cm4gV1RGOjp1bnRhZ0NGdW5jdGlvblB0cjxSdWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0
b3JDaGVja2VyLCBKU0M6OkNTU1NlbGVjdG9yUHRyVGFnPihjb21waWxlZFNlbGVjdG9yLmNvZGVS
ZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGVsZW1lbnQsIHZhbHVlKTsKKyNlbmRpZgog
fQogCi1pbmxpbmUgUXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciBxdWVyeVNlbGVj
dG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24oQ29tcGlsZWRTZWxlY3RvciYgY29tcGls
ZWRTZWxlY3RvcikKK2lubGluZSB1bnNpZ25lZCBxdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JD
aGVja2VyKENvbXBpbGVkU2VsZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3IsIGNvbnN0IEVsZW1lbnQq
IGVsZW1lbnQpCiB7CiAgICAgQVNTRVJUKGNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVj
dG9yQ29tcGlsYXRpb25TdGF0dXM6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcik7Ci0gICAgcmV0dXJu
IFdURjo6dW50YWdDRnVuY3Rpb25QdHI8UXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tl
ciwgQ1NTU2VsZWN0b3JQdHJUYWc+KGNvbXBpbGVkU2VsZWN0b3IuY29kZVJlZi5jb2RlKCkuZXhl
Y3V0YWJsZUFkZHJlc3MoKSk7CisjaWYgQ1BVKEFSTTY0KQorICAgIHJldHVybiB2bUVudHJ5VG9D
U1NKSVQoYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oZWxlbWVudCksIDAsIDAsIGNvbXBpbGVkU2Vs
ZWN0b3IuY29kZVJlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisjZWxzZQorICAgIHR5
cGVkZWYgdW5zaWduZWQgKCpRdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKShjb25z
dCBFbGVtZW50Kik7CisgICAgcmV0dXJuIFdURjo6dW50YWdDRnVuY3Rpb25QdHI8UXVlcnlTZWxl
Y3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciwgSlNDOjpDU1NTZWxlY3RvclB0clRhZz4oY29tcGls
ZWRTZWxlY3Rvci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKShlbGVtZW50KTsK
KyNlbmRpZgogfQogCi1pbmxpbmUgUnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVj
a2luZ0NvbnRleHQgcnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNr
aW5nQ29udGV4dChDb21waWxlZFNlbGVjdG9yJiBjb21waWxlZFNlbGVjdG9yKQoraW5saW5lIHVu
c2lnbmVkIHJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KENv
bXBpbGVkU2VsZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3IsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQs
IFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0KiBjb250ZXh0LCB1bnNpZ25lZCogdmFs
dWUpCiB7CiAgICAgQVNTRVJUKGNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29t
cGlsYXRpb25TdGF0dXM6OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpOwotICAg
IHJldHVybiBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNr
ZXJXaXRoQ2hlY2tpbmdDb250ZXh0LCBDU1NTZWxlY3RvclB0clRhZz4oY29tcGlsZWRTZWxlY3Rv
ci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyNpZiBDUFUoQVJNNjQpCisg
ICAgcmV0dXJuIHZtRW50cnlUb0NTU0pJVChiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihlbGVtZW50
KSwgYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oY29udGV4dCksIGJpdHdpc2VfY2FzdDx1aW50cHRy
X3Q+KHZhbHVlKSwgY29tcGlsZWRTZWxlY3Rvci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRk
cmVzcygpKTsKKyNlbHNlCisgICAgdHlwZWRlZiB1bnNpZ25lZCAoKlJ1bGVDb2xsZWN0b3JTZWxl
Y3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KShjb25zdCBFbGVtZW50KiwgU2VsZWN0b3JD
aGVja2VyOjpDaGVja2luZ0NvbnRleHQqLCB1bnNpZ25lZCopOworICAgIHJldHVybiBXVEY6OnVu
dGFnQ0Z1bmN0aW9uUHRyPFJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdD
b250ZXh0LCBKU0M6OkNTU1NlbGVjdG9yUHRyVGFnPihjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYu
Y29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGVsZW1lbnQsIGNvbnRleHQsIHZhbHVlKTsKKyNl
bmRpZgogfQogCi1pbmxpbmUgUXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2lu
Z0NvbnRleHQgcXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5n
Q29udGV4dChDb21waWxlZFNlbGVjdG9yJiBjb21waWxlZFNlbGVjdG9yKQoraW5saW5lIHVuc2ln
bmVkIHF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KENvbXBp
bGVkU2VsZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3IsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGNv
bnN0IFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAgIEFT
U0VSVChjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVz
OjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KTsKLSAgICByZXR1cm4gV1RGOjp1
bnRhZ0NGdW5jdGlvblB0cjxRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5n
Q29udGV4dCwgQ1NTU2VsZWN0b3JQdHJUYWc+KGNvbXBpbGVkU2VsZWN0b3IuY29kZVJlZi5jb2Rl
KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisjaWYgQ1BVKEFSTTY0KQorICAgIHJldHVybiB2bUVu
dHJ5VG9DU1NKSVQoYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oZWxlbWVudCksIGJpdHdpc2VfY2Fz
dDx1aW50cHRyX3Q+KGNvbnRleHQpLCAwLCBjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgp
LmV4ZWN1dGFibGVBZGRyZXNzKCkpOworI2Vsc2UKKyAgICB0eXBlZGVmIHVuc2lnbmVkICgqUXVl
cnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpKGNvbnN0IEVsZW1l
bnQqLCBjb25zdCBTZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29udGV4dCopOworICAgIHJldHVy
biBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRo
Q2hlY2tpbmdDb250ZXh0LCBKU0M6OkNTU1NlbGVjdG9yUHRyVGFnPihjb21waWxlZFNlbGVjdG9y
LmNvZGVSZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGVsZW1lbnQsIGNvbnRleHQpOwor
I2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFNlbGVjdG9yQ29tcGlsZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TZWxlY3RvclF1ZXJ5LmNwcAppbmRleCBhMDk3YWEyYjA2MGY4MmZiZDgzOThmZWVlMzIxYzIx
MjI2NDE4Njc3Li40MGQ0OTk1ZTY1MWExNTY3NzExZjNkMDFmMjZiN2FjOTJjODc2MmE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCkBAIC0zOTYsOCArMzk2LDggQEAgQUxXQVlT
X0lOTElORSB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVTaW5nbGVNdWx0aVNlbGVjdG9y
RGF0YShjb25zdCBDb250YWkKIH0KIAogI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQotdGVt
cGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4KLUFMV0FZU19JTkxJTkUgdm9pZCBT
ZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGlsZWRTaW1wbGVTZWxlY3RvckNoZWNrZXIoY29u
c3QgQ29udGFpbmVyTm9kZSYgc2VhcmNoUm9vdE5vZGUsIFNlbGVjdG9yQ29tcGlsZXI6OlF1ZXJ5
U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIgc2VsZWN0b3JDaGVja2VyLCB0eXBlbmFtZSBT
ZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmIG91dHB1dCwgY29uc3QgU2VsZWN0b3JEYXRh
JiBzZWxlY3RvckRhdGEpIGNvbnN0Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRy
YWl0LCB0eXBlbmFtZSBDaGVja2VyPgorQUxXQVlTX0lOTElORSB2b2lkIFNlbGVjdG9yRGF0YUxp
c3Q6OmV4ZWN1dGVDb21waWxlZFNpbXBsZVNlbGVjdG9yQ2hlY2tlcihjb25zdCBDb250YWluZXJO
b2RlJiBzZWFyY2hSb290Tm9kZSwgQ2hlY2tlciBzZWxlY3RvckNoZWNrZXIsIHR5cGVuYW1lIFNl
bGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYgb3V0cHV0LCBjb25zdCBTZWxlY3RvckRhdGEm
IHNlbGVjdG9yRGF0YSkgY29uc3QKIHsKICAgICBmb3IgKGF1dG8mIGVsZW1lbnQgOiBkZXNjZW5k
YW50c09mVHlwZTxFbGVtZW50Pihjb25zdF9jYXN0PENvbnRhaW5lck5vZGUmPihzZWFyY2hSb290
Tm9kZSkpKSB7CiAgICAgICAgIHNlbGVjdG9yRGF0YS5jb21waWxlZFNlbGVjdG9yLndhc1VzZWQo
KTsKQEAgLTQxMCw4ICs0MTAsOCBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlz
dDo6ZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0b3JDaGVja2VyKGNvbnN0CiAgICAgfQogfQog
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0PgotQUxXQVlTX0lOTElORSB2
b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVDb21waWxlZFNlbGVjdG9yQ2hlY2tlcldpdGhD
aGVja2luZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IENvbnRh
aW5lck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBTZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9y
U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCBzZWxlY3RvckNoZWNrZXIsIHR5cGVu
YW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYgb3V0cHV0LCBjb25zdCBTZWxlY3Rv
ckRhdGEmIHNlbGVjdG9yRGF0YSkgY29uc3QKK3RlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1
ZXJ5VHJhaXQsIHR5cGVuYW1lIENoZWNrZXI+CitBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JE
YXRhTGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4
dChjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQ29udGFpbmVyTm9kZSYgc2Vh
cmNoUm9vdE5vZGUsIENoZWNrZXIgc2VsZWN0b3JDaGVja2VyLCB0eXBlbmFtZSBTZWxlY3RvclF1
ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmIG91dHB1dCwgY29uc3QgU2VsZWN0b3JEYXRhJiBzZWxlY3Rv
ckRhdGEpIGNvbnN0CiB7CiAgICAgU2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0NvbnRleHQgY2hl
Y2tpbmdDb250ZXh0KFNlbGVjdG9yQ2hlY2tlcjo6TW9kZTo6UXVlcnlpbmdSdWxlcyk7CiAgICAg
Y2hlY2tpbmdDb250ZXh0LnNjb3BlID0gcm9vdE5vZGUuaXNEb2N1bWVudE5vZGUoKSA/IG51bGxw
dHIgOiAmcm9vdE5vZGU7CkBAIC00MzcsMTMgKzQzNywxMSBAQCBBTFdBWVNfSU5MSU5FIHZvaWQg
U2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2luZ2xlTXVsdGlTZWxlY3RvckRhdGEo
Y29ucwogICAgICAgICAgICAgc2VsZWN0b3IuY29tcGlsZWRTZWxlY3Rvci53YXNVc2VkKCk7CiAK
ICAgICAgICAgICAgIGJvb2wgbWF0Y2hlZCA9IGZhbHNlOwotICAgICAgICAgICAgaWYgKHNlbGVj
dG9yLmNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6
OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcikgewotICAgICAgICAgICAgICAgIGF1dG8gc2VsZWN0b3JD
aGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hl
Y2tlckZ1bmN0aW9uKHNlbGVjdG9yLmNvbXBpbGVkU2VsZWN0b3IpOwotICAgICAgICAgICAgICAg
IG1hdGNoZWQgPSBzZWxlY3RvckNoZWNrZXIoJmVsZW1lbnQpOwotICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rvci5jb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBT
ZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIpCisgICAgICAg
ICAgICAgICAgbWF0Y2hlZCA9IFNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTaW1wbGVT
ZWxlY3RvckNoZWNrZXIoc2VsZWN0b3IuY29tcGlsZWRTZWxlY3RvciwgJmVsZW1lbnQpOworICAg
ICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHNlbGVjdG9yLmNvbXBpbGVk
U2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNlbGVjdG9yQ2hl
Y2tlcldpdGhDaGVja2luZ0NvbnRleHQpOwotICAgICAgICAgICAgICAgIGF1dG8gc2VsZWN0b3JD
aGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1
bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChzZWxlY3Rvci5jb21waWxlZFNlbGVjdG9yKTsKLSAg
ICAgICAgICAgICAgICBtYXRjaGVkID0gc2VsZWN0b3JDaGVja2VyKCZlbGVtZW50LCAmY2hlY2tp
bmdDb250ZXh0KTsKKyAgICAgICAgICAgICAgICBtYXRjaGVkID0gU2VsZWN0b3JDb21waWxlcjo6
cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQoc2VsZWN0b3Iu
Y29tcGlsZWRTZWxlY3RvciwgJmVsZW1lbnQsICZjaGVja2luZ0NvbnRleHQpOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgaWYgKG1hdGNoZWQpIHsKICAgICAgICAgICAgICAgICBTZWxlY3Rv
clF1ZXJ5VHJhaXQ6OmFwcGVuZE91dHB1dEZvckVsZW1lbnQob3V0cHV0LCAmZWxlbWVudCk7CkBA
IC01MjQsMTIgKzUyMiwxNCBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6
ZXhlY3V0ZShDb250YWluZXJOb2RlJiByb290Tm9kZSwgdHlwZW5hbWUgUwogICAgICAgICBDb21w
aWxlZFNpbmdsZUNhc2U6CiAgICAgICAgIGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JEYXRh
ID0gbV9zZWxlY3RvcnMuZmlyc3QoKTsKICAgICAgICAgaWYgKHNlbGVjdG9yRGF0YS5jb21waWxl
ZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxl
Y3RvckNoZWNrZXIpIHsKLSAgICAgICAgICAgIGF1dG8gc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0
b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKHNl
bGVjdG9yRGF0YS5jb21waWxlZFNlbGVjdG9yKTsKLSAgICAgICAgICAgIGV4ZWN1dGVDb21waWxl
ZFNpbXBsZVNlbGVjdG9yQ2hlY2tlcjxTZWxlY3RvclF1ZXJ5VHJhaXQ+KCpzZWFyY2hSb290Tm9k
ZSwgc2VsZWN0b3JDaGVja2VyLCBvdXRwdXQsIHNlbGVjdG9yRGF0YSk7CisgICAgICAgICAgICBl
eGVjdXRlQ29tcGlsZWRTaW1wbGVTZWxlY3RvckNoZWNrZXI8U2VsZWN0b3JRdWVyeVRyYWl0Pigq
c2VhcmNoUm9vdE5vZGUsIFsmXSAoY29uc3QgRWxlbWVudCogZWxlbWVudCkgeworICAgICAgICAg
ICAgICAgIHJldHVybiBTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0
b3JDaGVja2VyKHNlbGVjdG9yRGF0YS5jb21waWxlZFNlbGVjdG9yLCBlbGVtZW50KTsKKyAgICAg
ICAgICAgIH0sIG91dHB1dCwgc2VsZWN0b3JEYXRhKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIEFTU0VSVChzZWxlY3RvckRhdGEuY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2Vs
ZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4
dCk7Ci0gICAgICAgICAgICBhdXRvIHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6
OnF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQo
c2VsZWN0b3JEYXRhLmNvbXBpbGVkU2VsZWN0b3IpOwotICAgICAgICAgICAgZXhlY3V0ZUNvbXBp
bGVkU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dDxTZWxlY3RvclF1ZXJ5VHJhaXQ+
KHJvb3ROb2RlLCAqc2VhcmNoUm9vdE5vZGUsIHNlbGVjdG9yQ2hlY2tlciwgb3V0cHV0LCBzZWxl
Y3RvckRhdGEpOworICAgICAgICAgICAgZXhlY3V0ZUNvbXBpbGVkU2VsZWN0b3JDaGVja2VyV2l0
aENoZWNraW5nQ29udGV4dDxTZWxlY3RvclF1ZXJ5VHJhaXQ+KHJvb3ROb2RlLCAqc2VhcmNoUm9v
dE5vZGUsIFsmXSAoY29uc3QgRWxlbWVudCogZWxlbWVudCwgY29uc3QgU2VsZWN0b3JDaGVja2Vy
OjpDaGVja2luZ0NvbnRleHQqIGNvbnRleHQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gU2Vs
ZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0Nv
bnRleHQoc2VsZWN0b3JEYXRhLmNvbXBpbGVkU2VsZWN0b3IsIGVsZW1lbnQsIGNvbnRleHQpOwor
ICAgICAgICAgICAgfSwgb3V0cHV0LCBzZWxlY3RvckRhdGEpOwogICAgICAgICB9CiAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0
b3JRdWVyeS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuaAppbmRleCA4ZWVm
NzJlMmFkOTY2NDQ0MDM0YzllM2JkMjQzOWIwMDRlYTdlZjJmLi45ODYzZWYxMzJiZTg2MzgxY2Iw
ZTU5ZmNjMDgzN2I5ZWRhODljOGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2Vs
ZWN0b3JRdWVyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmgKQEAg
LTY2LDggKzY2LDggQEAgY2xhc3MgU2VsZWN0b3JEYXRhTGlzdCB7CiAgICAgdGVtcGxhdGUgPHR5
cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4gdm9pZCBleGVjdXRlU2luZ2xlU2VsZWN0b3JEYXRh
KGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBDb250YWluZXJOb2RlJiBzZWFy
Y2hSb290Tm9kZSwgY29uc3QgU2VsZWN0b3JEYXRhJiwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRy
YWl0OjpPdXRwdXRUeXBlJikgY29uc3Q7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9y
UXVlcnlUcmFpdD4gdm9pZCBleGVjdXRlU2luZ2xlTXVsdGlTZWxlY3RvckRhdGEoY29uc3QgQ29u
dGFpbmVyTm9kZSYgcm9vdE5vZGUsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0
VHlwZSYpIGNvbnN0OwogI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQotICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+IHZvaWQgZXhlY3V0ZUNvbXBpbGVkU2ltcGxl
U2VsZWN0b3JDaGVja2VyKGNvbnN0IENvbnRhaW5lck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBTZWxl
Y3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyLCB0eXBlbmFt
ZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmLCBjb25zdCBTZWxlY3RvckRhdGEmKSBj
b25zdDsKLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0PiB2b2lkIGV4
ZWN1dGVDb21waWxlZFNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQoY29uc3QgQ29u
dGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IENvbnRhaW5lck5vZGUmIHNlYXJjaFJvb3ROb2Rl
LCBTZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNr
aW5nQ29udGV4dCwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRUeXBlJiwgY29u
c3QgU2VsZWN0b3JEYXRhJikgY29uc3Q7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9y
UXVlcnlUcmFpdCwgdHlwZW5hbWUgQ2hlY2tlcj4gdm9pZCBleGVjdXRlQ29tcGlsZWRTaW1wbGVT
ZWxlY3RvckNoZWNrZXIoY29uc3QgQ29udGFpbmVyTm9kZSYgc2VhcmNoUm9vdE5vZGUsIENoZWNr
ZXIsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYsIGNvbnN0IFNlbGVj
dG9yRGF0YSYpIGNvbnN0OworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJh
aXQsIHR5cGVuYW1lIENoZWNrZXI+IHZvaWQgZXhlY3V0ZUNvbXBpbGVkU2VsZWN0b3JDaGVja2Vy
V2l0aENoZWNraW5nQ29udGV4dChjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3Qg
Q29udGFpbmVyTm9kZSYgc2VhcmNoUm9vdE5vZGUsIENoZWNrZXIsIHR5cGVuYW1lIFNlbGVjdG9y
UXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYsIGNvbnN0IFNlbGVjdG9yRGF0YSYpIGNvbnN0OwogICAg
IHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+IHZvaWQgZXhlY3V0ZUNvbXBp
bGVkU2luZ2xlTXVsdGlTZWxlY3RvckRhdGEoY29uc3QgQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUs
IHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYpIGNvbnN0OwogICAgIHN0
YXRpYyBib29sIGNvbXBpbGVTZWxlY3Rvcihjb25zdCBTZWxlY3RvckRhdGEmKTsKICNlbmRpZiAv
LyBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1l
bnRSdWxlQ29sbGVjdG9yLmNwcAppbmRleCBjZDNlYTA3NGQ1NzRhZTViMTRmNTg4MDgyNDc3ZjIx
Njk2NDZhMWMxLi5mNGEwYjk4ZWUwYTY5YWEzMTQxNDRjZTg4Y2FkNTEyODc1NWUxNDZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCkBAIC00NTcs
MTIgKzQ1NywxMSBAQCBpbmxpbmUgYm9vbCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNo
ZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhLCB1bnNpZ25lZAogICAgIGlmIChjb21waWxlZFNl
bGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3Rv
ckNoZWNrZXIpIHsKICAgICAgICAgY29tcGlsZWRTZWxlY3Rvci53YXNVc2VkKCk7CiAKLSAgICAg
ICAgYXV0byBzZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9y
U2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24oY29tcGlsZWRTZWxlY3Rvcik7CiAjaWYgIUFT
U0VSVF9NU0dfRElTQUJMRUQKICAgICAgICAgdW5zaWduZWQgaWdub3JlU3BlY2lmaWNpdHk7Ci0g
ICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIXNlbGVjdG9yQ2hlY2tlcigmZWxlbWVudCgpLCAm
aWdub3JlU3BlY2lmaWNpdHkpIHx8IG1fcHNldWRvRWxlbWVudFJlcXVlc3QucHNldWRvSWQgPT0g
UHNldWRvSWQ6Ok5vbmUsICJXaGVuIG1hdGNoaW5nIHBzZXVkbyBlbGVtZW50cywgd2Ugc2hvdWxk
IG5ldmVyIGNvbXBpbGUgYSBzZWxlY3RvciBjaGVja2VyIHdpdGhvdXQgY29udGV4dCB1bmxlc3Mg
aXQgY2Fubm90IG1hdGNoIGFueXRoaW5nLiIpOworICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdF
KCFTZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKGNv
bXBpbGVkU2VsZWN0b3IsICZlbGVtZW50KCksICZpZ25vcmVTcGVjaWZpY2l0eSkgfHwgbV9wc2V1
ZG9FbGVtZW50UmVxdWVzdC5wc2V1ZG9JZCA9PSBQc2V1ZG9JZDo6Tm9uZSwgIldoZW4gbWF0Y2hp
bmcgcHNldWRvIGVsZW1lbnRzLCB3ZSBzaG91bGQgbmV2ZXIgY29tcGlsZSBhIHNlbGVjdG9yIGNo
ZWNrZXIgd2l0aG91dCBjb250ZXh0IHVubGVzcyBpdCBjYW5ub3QgbWF0Y2ggYW55dGhpbmcuIik7
CiAjZW5kaWYKLSAgICAgICAgYm9vbCBzZWxlY3Rvck1hdGNoZXMgPSBzZWxlY3RvckNoZWNrZXIo
JmVsZW1lbnQoKSwgJnNwZWNpZmljaXR5KTsKKyAgICAgICAgYm9vbCBzZWxlY3Rvck1hdGNoZXMg
PSBTZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKGNv
bXBpbGVkU2VsZWN0b3IsICZlbGVtZW50KCksICZzcGVjaWZpY2l0eSk7CiAKICAgICAgICAgaWYg
KHNlbGVjdG9yTWF0Y2hlcyAmJiBydWxlRGF0YS5jb250YWluc1VuY29tbW9uQXR0cmlidXRlU2Vs
ZWN0b3IoKSkKICAgICAgICAgICAgIG1fZGlkTWF0Y2hVbmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9y
ID0gdHJ1ZTsKQEAgLTQ4Miw5ICs0ODEsNyBAQCBpbmxpbmUgYm9vbCBFbGVtZW50UnVsZUNvbGxl
Y3Rvcjo6cnVsZU1hdGNoZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhLCB1bnNpZ25lZAogI2lm
IEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQogICAgIGlmIChjb21waWxlZFNlbGVjdG9yLnN0YXR1
cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tp
bmdDb250ZXh0KSB7CiAgICAgICAgIGNvbXBpbGVkU2VsZWN0b3Iud2FzVXNlZCgpOwotCi0gICAg
ICAgIGF1dG8gc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3Rv
clNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChjb21waWxlZFNlbGVj
dG9yKTsKLSAgICAgICAgc2VsZWN0b3JNYXRjaGVzID0gc2VsZWN0b3JDaGVja2VyKCZlbGVtZW50
KCksICZjb250ZXh0LCAmc3BlY2lmaWNpdHkpOworICAgICAgICBzZWxlY3Rvck1hdGNoZXMgPSBT
ZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5n
Q29udGV4dChjb21waWxlZFNlbGVjdG9yLCAmZWxlbWVudCgpLCAmY29udGV4dCwgJnNwZWNpZmlj
aXR5KTsKICAgICB9IGVsc2UKICNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKICAg
ICB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>