<?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>174067</bug_id>
          
          <creation_ts>2017-07-01 09:22:43 -0700</creation_ts>
          <short_desc>[macOS] Remove code only needed when building for OS X Yosemite</short_desc>
          <delta_ts>2020-04-27 12:03:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=211088</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aestes</cc>
    
    <cc>buildbot</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1324826</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2017-07-01 09:22:43 -0700</bug_when>
    <thetext>The Yosemite build was broken a while ago but some code remains in the source tree that is only needed when building for Yosemite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324833</commentid>
    <comment_count>1</comment_count>
      <attachid>314388</attachid>
    <who name="">mitz</who>
    <bug_when>2017-07-01 11:08:56 -0700</bug_when>
    <thetext>Created attachment 314388
Remove unneeded code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324834</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-07-01 11:11:30 -0700</bug_when>
    <thetext>Attachment 314388 did not pass style-queue:


ERROR: Source/WebInspectorUI/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/WTF/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/JavaScriptCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Tools/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/WebKit/mac/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/WebCore/PAL/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/ThirdParty/libwebrtc/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/WebKit2/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/bmalloc/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 10 in 48 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324835</commentid>
    <comment_count>3</comment_count>
      <attachid>314389</attachid>
    <who name="">mitz</who>
    <bug_when>2017-07-01 12:03:22 -0700</bug_when>
    <thetext>Created attachment 314389
Remove unneeded code

Trying to fix the iOS build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324836</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-07-01 12:06:25 -0700</bug_when>
    <thetext>Attachment 314389 did not pass style-queue:


ERROR: Source/WebInspectorUI/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/WTF/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/JavaScriptCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Tools/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/WebKit/mac/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/WebCore/PAL/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/ThirdParty/libwebrtc/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/WebKit2/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
ERROR: Source/bmalloc/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 10 in 49 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324839</commentid>
    <comment_count>5</comment_count>
      <attachid>314390</attachid>
    <who name="">mitz</who>
    <bug_when>2017-07-01 13:41:05 -0700</bug_when>
    <thetext>Created attachment 314390
Remove unneeded code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324841</commentid>
    <comment_count>6</comment_count>
    <who name="">mitz</who>
    <bug_when>2017-07-01 14:12:18 -0700</bug_when>
    <thetext>Committed &lt;https://trac.webkit.org/r219050&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314388</attachid>
            <date>2017-07-01 11:08:56 -0700</date>
            <delta_ts>2017-07-01 11:51:13 -0700</delta_ts>
            <desc>Remove unneeded code</desc>
            <filename>174067_r1.diff</filename>
            <type>text/plain</type>
            <size>182079</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDE3LTA3LTAxICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAg
TmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIChPT1BTISkuCisgICAgICAgIE5lZWQgdGhlIGJ1ZyBV
UkwgKE9PUFMhKS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIEFQSS9XZWJLaXRBdmFpbGFiaWxpdHkuaDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9CYXNlLnhjY29uZmlnOgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54
Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnOgorCiAyMDE3LTA3
LTAxICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIGJ1aWxkIGZpeCBmb3IgR0NDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL1dlYktpdEF2YWlsYWJpbGl0eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvV2ViS2l0QXZhaWxhYmlsaXR5LmgJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvV2ViS2l0QXZhaWxhYmlsaXR5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTY2LDcgKzY2LDcgQEAKICNkZWZpbmUgQVZBSUxBQkxFX01BQ19PU19YX1ZFUlNJT05fMTBf
MTBfQU5EX0xBVEVSCiAjZW5kaWYKIAotI2VuZGlmIC8qIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPD0gMTAxMTAwICovCisjZW5kaWYgLyogIVRBUkdFVF9PU19JUEhPTkUgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTEwMCAqLwogCiAjaWYgZGVmaW5lZChC
VUlMRElOR19HVEtfXykKICN1bmRlZiBDRl9BVkFJTEFCTEUKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCShyZXZpc2lvbiAy
MTkwNDgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2Nv
bmZpZwkod29ya2luZyBjb3B5KQpAQCAtODksNyArODksNiBAQCBXQVJOSU5HX0NGTEFHUyA9IC1X
YWxsIC1XZXh0cmEgLVdjYXN0LXF1CiBIRUFERVJfU0VBUkNIX1BBVEhTID0gLiAiJHtCVUlMVF9Q
Uk9EVUNUU19ESVJ9L3Vzci9sb2NhbC9pbmNsdWRlIiAkKEhFQURFUl9TRUFSQ0hfUEFUSFMpOwog
CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VUX01BQ19PU19YX1ZFUlNJ
T05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6aWRlbnRpZmllcikpOwot
VEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTAgPSAxMDEwMDA7CiBUQVJHRVRfTUFDX09T
X1hfVkVSU0lPTl9NQUpPUl8xMSA9IDEwMTEwMDsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01B
Sk9SXzEyID0gMTAxMjAwOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEz
MDA7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxl
YXNlLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1
cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHdv
cmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAgT05MWV9BQ1RJVkVfQVJDSCA9IFlFUzsKIFRB
UkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChNQUNfT1NfWF9WRVJTSU9OX01BSk9SKTsK
IAogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRf
JChQTEFURk9STV9OQU1FKV8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7Ci1NQUNP
U1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTAwMCA9IDEwLjEwOwogTUFDT1NYX0RFUExP
WU1FTlRfVEFSR0VUX21hY29zeF8xMDExMDAgPSAxMC4xMTsKIE1BQ09TWF9ERVBMT1lNRU5UX1RB
UkdFVF9tYWNvc3hfMTAxMjAwID0gMTAuMTI7CiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFj
b3N4XzEwMTMwMCA9IDEwLjEzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNp
b24gMjE5MDQ4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMSArMzIsOSBAQAogLy8g
U2V0IGFueSBFTkFCTEVfRkVBVFVSRV9OQU1FIG1hY3JvIHRvIGFuIGVtcHR5IHN0cmluZyB0byBk
aXNhYmxlIHRoYXQgZmVhdHVyZS4KIAogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFO
XzEwMTIwMDAgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEyMDAwXyQo
VEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKLVRBUkdFVF9NQUNfT1NfWF9WRVJTSU9O
X0xFU1NfVEhBTl8xMDEyMDAwXzEwMTAwMCA9IFlFUzsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9O
X0xFU1NfVEhBTl8xMDEyMDAwXzEwMTEwMCA9IFlFUzsKIAogVEFSR0VUX01BQ19PU19YX1ZFUlNJ
T05fTEVTU19USEFOXzEwMTMwMDAgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhB
Tl8xMDEzMDAwXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKLVRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwXzEwMTAwMCA9IFlFUzsKIFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwXzEwMTEwMCA9IFlFUzsKIFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwXzEwMTIwMCA9IFlFUzsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNj
b25maWcJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1
cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw2IEBA
IFNIT1JUX1ZFUlNJT05fU1RSSU5HID0gJChTSE9SVF9WRVJTSU9OX1MKIC8vIFRoZSBzeXN0ZW0g
dmVyc2lvbiBwcmVmaXggaXMgYmFzZWQgb24gdGhlIGN1cnJlbnQgc3lzdGVtIHZlcnNpb24uCiBT
WVNURU1fVkVSU0lPTl9QUkVGSVhbc2RrPWlwaG9uZSpdID0gODsKIFNZU1RFTV9WRVJTSU9OX1BS
RUZJWCA9ICQoU1lTVEVNX1ZFUlNJT05fUFJFRklYXyQoUExBVEZPUk1fTkFNRSlfJChUQVJHRVRf
TUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOwotU1lTVEVNX1ZFUlNJT05fUFJFRklYX21hY29zeF8x
MDEwMDAgPSAxMDsKIFNZU1RFTV9WRVJTSU9OX1BSRUZJWF9tYWNvc3hfMTAxMTAwID0gMTE7CiBT
WVNURU1fVkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEwMTIwMCA9IDEyOwogU1lTVEVNX1ZFUlNJT05f
UFJFRklYX21hY29zeF8xMDEzMDAgPSAxMzsKSW5kZXg6IFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA3LTAxICBEYW4gQmVybnN0
ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9u
IChPT1BTISkuCisgICAgICAgIE5lZWQgdGhlIGJ1ZyBVUkwgKE9PUFMhKS4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jh
c2UueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29u
ZmlnOgorCiAyMDE3LTA2LTEwICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2ZXJ0ZWQgcjIxODA1NiBiZWNhdXNlIGl0IG1hZGUgdGhlIElERSByZWluZGV4IGNv
bnN0YW50bHkuCkluZGV4OiBTb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9Db25maWd1cmF0aW9ucy9C
YXNlLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NvbmZp
Z3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHdvcmtpbmcgY29weSkK
QEAgLTQ5LDcgKzQ5LDYgQEAgV0FSTklOR19DRkxBR1MgPSAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMg
LQogU1VQUE9SVEVEX1BMQVRGT1JNUyA9IGlwaG9uZW9zIGlwaG9uZXNpbXVsYXRvciBtYWNvc3gg
YXBwbGV0dm9zIGFwcGxldHZzaW11bGF0b3Igd2F0Y2hvcyB3YXRjaHNpbXVsYXRvcjsKIAogVEFS
R0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01B
Sk9SJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsKLVRBUkdF
VF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzEwID0gMTAxMDAwOwogVEFSR0VUX01BQ19PU19YX1ZF
UlNJT05fTUFKT1JfMTEgPSAxMDExMDA7CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8x
MiA9IDEwMTIwMDsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzEzID0gMTAxMzAwOwpJ
bmRleDogU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNl
LnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NvbmZpZ3Vy
YXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnCSh3
b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNiBAQCBPTkxZX0FDVElWRV9BUkNIID0gWUVTOwogVEFS
R0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKE1BQ19PU19YX1ZFUlNJT05fTUFKT1IpOwog
CiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8k
KFBMQVRGT1JNX05BTUUpXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKLU1BQ09T
WF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMDAwID0gMTAuMTA7CiBNQUNPU1hfREVQTE9Z
TUVOVF9UQVJHRVRfbWFjb3N4XzEwMTEwMCA9IDEwLjExOwogTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUX21hY29zeF8xMDEyMDAgPSAxMC4xMjsKIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNv
c3hfMTAxMzAwID0gMTAuMTM7CkluZGV4OiBTb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wNy0wMSAgRGFuIEJl
cm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlw
dGlvbiAoT09QUyEpLgorICAgICAgICBOZWVkIHRoZSBidWcgVVJMIChPT1BTISkuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9CYXNlLnhjY29uZmlnOgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54
Y2NvbmZpZzoKKwogMjAxNy0wNi0yNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgVXBkYXRlIGJvcmluZ3NzbCB0byBjOGZmMzBjYmU3MTZjNzIyNzlhNmY2YTlk
N2Q3ZDBkNDA5MTIyMGZhCkluZGV4OiBTb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmln
dXJhdGlvbnMvQmFzZS54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQor
KysgU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25m
aWcJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDYgQEAgU1VQUE9SVEVEX1BMQVRGT1JNUyA9
IGlwaG9uZW9zIGlwaG9uZXNpbQogVkFMSURfQVJDSFMgPSAkKEFSQ0hTX1NUQU5EQVJEXzY0X0JJ
VCk7CiAKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChUQVJHRVRfTUFDX09TX1hf
VkVSU0lPTl9NQUpPUiQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUOnN1ZmZpeDppZGVudGlmaWVy
KSk7Ci1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMCA9IDEwMTAwMDsKIFRBUkdFVF9N
QUNfT1NfWF9WRVJTSU9OX01BSk9SXzExID0gMTAxMTAwOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJ
T05fTUFKT1JfMTIgPSAxMDEyMDA7CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMyA9
IDEwMTMwMDsKSW5kZXg6IFNvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9u
cy9EZWJ1Z1JlbGVhc2UueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwkocmV2aXNpb24g
MjE5MDQ4KQorKysgU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL0Rl
YnVnUmVsZWFzZS54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDYgQEAgT05MWV9B
Q1RJVkVfQVJDSCA9IFlFUzsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChNQUNf
T1NfWF9WRVJTSU9OX01BSk9SKTsKIAogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gJChNQUNP
U1hfREVQTE9ZTUVOVF9UQVJHRVRfJChQTEFURk9STV9OQU1FKV8kKFRBUkdFVF9NQUNfT1NfWF9W
RVJTSU9OX01BSk9SKSk7Ci1NQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTAwMCA9
IDEwLjEwOwogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDExMDAgPSAxMC4xMTsK
IE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMjAwID0gMTAuMTI7CiBNQUNPU1hf
REVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTMwMCA9IDEwLjEzOwpJbmRleDogU291cmNlL1dU
Ri9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9u
IDIxOTA0OSkKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTctMDctMDEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gKE9PUFMhKS4KKyAgICAgICAgTmVlZCB0
aGUgYnVnIFVSTCAoT09QUyEpLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWc6CisgICAgICAgICogd3RmL1BsYXRm
b3JtLmg6CisgICAgICAgICogd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25z
Lmg6CisgICAgICAgICogd3RmL3NwaS9jb2NvYS9TZWN1cml0eVNQSS5oOgorICAgICAgICAqIHd0
Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcDoKKwogMjAxNy0wNy0wMSAgSm9zZXBoIFBlY29y
YXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIHdhcm5pbmcgaWYgV0VC
R0wyIGlzIGVuYWJsZWQgd2l0aG91dCBXRUJHTApJbmRleDogU291cmNlL1dURi9Db25maWd1cmF0
aW9ucy9CYXNlLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ29uZmlndXJhdGlv
bnMvQmFzZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dURi9Db25maWd1
cmF0aW9ucy9CYXNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC04OCw3ICs4OCw2IEBAIFdB
Uk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXUKIEhFQURFUl9TRUFSQ0hfUEFU
SFMgPSAkKEJVSUxUX1BST0RVQ1RTX0RJUikvdXNyL2xvY2FsL2luY2x1ZGUgJChEU1RST09UKS91
c3IvbG9jYWwvaW5jbHVkZSBpY3UgJChIRUFERVJfU0VBUkNIX1BBVEhTKTsKIAogVEFSR0VUX01B
Q19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChN
QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsKLVRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SXzEwID0gMTAxMDAwOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05f
TUFKT1JfMTEgPSAxMDExMDA7CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMiA9IDEw
MTIwMDsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzEzID0gMTAxMzAwOwpJbmRleDog
U291cmNlL1dURi9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dURi9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHJl
dmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XVEYvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNl
LnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBAIE9OTFlfQUNUSVZFX0FS
Q0ggPSBZRVM7CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoTUFDX09TX1hfVkVS
U0lPTl9NQUpPUik7CiAKIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9ICQoTUFDT1NYX0RFUExP
WU1FTlRfVEFSR0VUXyQoUExBVEZPUk1fTkFNRSlfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9N
QUpPUikpOwotTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDEwMDAgPSAxMC4xMDsK
IE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMTAwID0gMTAuMTE7CiBNQUNPU1hf
REVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTIwMCA9IDEwLjEyOwogTUFDT1NYX0RFUExPWU1F
TlRfVEFSR0VUX21hY29zeF8xMDEzMDAgPSAxMC4xMzsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAkocmV2aXNp
b24gMjE5MDQ4KQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAkod29ya2luZyBjb3B5KQpA
QCAtNTczLDEyICs1NzMsNiBAQAogI2RlZmluZSBVU0VfUExVR0lOX0hPU1RfUFJPQ0VTUyAxCiAj
ZW5kaWYKIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCi0j
ZGVmaW5lIEhBVkVfTlNTQ1JPTExJTkdfRklMVEVSUyAxCi0jZWxzZQotI2RlZmluZSBIQVZFX05T
U0NST0xMSU5HX0ZJTFRFUlMgMAotI2VuZGlmCi0KIC8qIE9TIFggZGVmaW5lcyBhIHNlcmllcyBv
ZiBwbGF0Zm9ybSBtYWNyb3MgZm9yIGRlYnVnZ2luZy4gKi8KIC8qIFNvbWUgb2YgdGhlbSBhcmUg
cmVhbGx5IGFubm95aW5nIGJlY2F1c2UgdGhleSB1c2UgY29tbW9uIG5hbWVzIChlLmcuIGNoZWNr
KCkpLiAqLwogLyogRGlzYWJsZSB0aG9zZSBtYWNyb3Mgc28gdGhhdCB3ZSBhcmUgbm90IGxpbWl0
ZWQgaW4gaG93IHdlIG5hbWUgbWV0aG9kcyBhbmQgZnVuY3Rpb25zLiAqLwpAQCAtMTE0NSw3ICsx
MTM5LDcgQEAKICNkZWZpbmUgVVNFX0lOU0VSVElPTl9VTkRPX0dST1VQSU5HIDEKICNlbmRpZgog
Ci0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDExMDApIHx8IFBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShDT0NPQSkKICNkZWZpbmUg
SEFWRV9USU1JTkdEQVRBT1BUSU9OUyAxCiAjZW5kaWYKIApAQCAtMTIwMSwxMSArMTE5NSw2IEBA
CiAjZGVmaW5lIFVTRV9NRURJQVRPT0xCT1ggMQogI2VuZGlmCiAKLS8qIFdoaWxlIDEwLjEwIGhh
cyBzdXBwb3J0IGZvciBmZW5jZXMsIGl0IGlzIG1pc3Npbmcgc29tZSBBUEkgaW1wb3J0YW50IGZv
ciBvdXIgaW50ZWdyYXRpb24gb2YgdGhlbS4gKi8KLSNpZiBQTEFURk9STShJT1MpIHx8IChQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKQot
I2RlZmluZSBIQVZFX0NPUkVBTklNQVRJT05fRkVOQ0VTIDEKLSNlbmRpZgotCiAvKiBGSVhNRTog
RW5hYmxlIFVTRV9PU19MT0cgd2hlbiBidWlsZGluZyB3aXRoIHRoZSBwdWJsaWMgaU9TIDEwIFNE
SyBvbmNlIHdlIGZpeCA8cmRhcjovL3Byb2JsZW0vMjc3NTgzNDM+LiAqLwogI2lmIChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwKSB8fCAo
UExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDAw
MDAgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykpCiAjZGVmaW5lIFVTRV9PU19MT0cgMQpJbmRl
eDogU291cmNlL1dURi93dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xh
cmF0aW9ucy5oCShyZXZpc2lvbiAyMTkwNDgpCisrKyBTb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0
Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsMTggKzEw
Nyw2IEBAIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZVJpZ2gKIHN0YXRpYyBj
b25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsID0gTlNTY3JvbGxXaGVlbDsK
IHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZVN5c3RlbURlZmluZWQgPSBOU1N5
c3RlbURlZmluZWQ7CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPCAxMDEx
MDAKLXN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50UmlnaHQgPSBO
U1JpZ2h0VGV4dEFsaWdubWVudDsKLXN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0
QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Owotc3RhdGljIGNvbnN0IE5T
VGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRMZWZ0ID0gTlNMZWZ0VGV4dEFsaWdubWVudDsK
LXN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50TmF0dXJhbCA9IE5T
TmF0dXJhbFRleHRBbGlnbm1lbnQ7Ci1zdGF0aWMgY29uc3QgTlNUZXh0QWxpZ25tZW50IE5TVGV4
dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdubWVudDsKLQotdHlwZWRl
ZiBOU0ludGVnZXIgTlNXcml0aW5nRGlyZWN0aW9uRm9ybWF0VHlwZTsKLXN0YXRpYyBjb25zdCBO
U1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92ZXJy
aWRlOwotc3RhdGljIGNvbnN0IE5TV3JpdGluZ0RpcmVjdGlvbkVtYmVkZGluZyA9IE5TVGV4dFdy
aXRpbmdEaXJlY3Rpb25FbWJlZGRpbmc7Ci0jZW5kaWYKLQogdHlwZWRlZiBOU1VJbnRlZ2VyIE5T
V2luZG93U3R5bGVNYXNrOwogc3RhdGljIGNvbnN0IE5TV2luZG93U3R5bGVNYXNrIE5TV2luZG93
U3R5bGVNYXNrQm9yZGVybGVzcyA9IE5TQm9yZGVybGVzc1dpbmRvd01hc2s7CiBzdGF0aWMgY29u
c3QgTlNXaW5kb3dTdHlsZU1hc2sgTlNXaW5kb3dTdHlsZU1hc2tDbG9zYWJsZSA9IE5TQ2xvc2Fi
bGVXaW5kb3dNYXNrOwpJbmRleDogU291cmNlL1dURi93dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJ
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmgJ
KHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9TZWN1cml0eVNQ
SS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw2IEBACiAKICNlbHNlCiAKLSNpZiAoUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkg
fHwgUExBVEZPUk0oSU9TKQogdHlwZWRlZiB1aW50MzJfdCBTZWNTaWduYXR1cmVIYXNoQWxnb3Jp
dGhtOwogZW51bSB7CiAgICAga1NlY1NpZ25hdHVyZUhhc2hBbGdvcml0aG1Vbmtub3duID0gMCwK
QEAgLTU2LDcgKzU1LDYgQEAgV1RGX0VYVEVSTl9DX0JFR0lOCiBTZWNTaWduYXR1cmVIYXNoQWxn
b3JpdGhtIFNlY0NlcnRpZmljYXRlR2V0U2lnbmF0dXJlSGFzaEFsZ29yaXRobShTZWNDZXJ0aWZp
Y2F0ZVJlZik7CiAKIFdURl9FWFRFUk5fQ19FTkQKLSNlbmRpZgogCiAjZW5kaWYKIApJbmRleDog
U291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAJKHJldmlzaW9uIDIxOTA0
OCkKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw5ICszMSw2IEBACiAjaW5jbHVkZSA8dW5pY29kZS91YnJrLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCi0vLyBGSVhNRTogVGhpcyBuZWVkcyBh
IGJldHRlciBuYW1lCi0jZGVmaW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0o
SU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTEwMCkpCi0KIG5hbWVzcGFjZSBXVEYgewogCiAjaWYgIVBMQVRGT1JNKE1BQykgJiYg
IVBMQVRGT1JNKElPUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc0IEBACisyMDE3
LTA3LTAxICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBh
IHNob3J0IGRlc2NyaXB0aW9uIChPT1BTISkuCisgICAgICAgIE5lZWQgdGhlIGJ1ZyBVUkwgKE9P
UFMhKS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IENvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
RGVidWdSZWxlYXNlLnhjY29uZmlnOgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25m
aWc6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2li
aWxpdHkpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAgICAgICAq
IHBhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldoZWVs
RXZlbnREZWx0YUZpbHRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL21hYy9XaGVlbEV2ZW50
RGVsdGFGaWx0ZXJNYWMuaDoKKyAgICAgICAgKiBwYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFGaWx0
ZXJNYWMubW06CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nTW9tZW50dW1DYWxj
dWxhdG9yLmNwcDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nTW9tZW50
dW1DYWxjdWxhdG9yTWFjLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z01vbWVudHVtQ2FsY3VsYXRvck1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9OZXR3
b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbToKKyAgICAgICAgKHJlcGxhY2VtZW50RGF0YUZy
b21EZWNpc2lvbkluZm8pOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0V4dGVuc2lvbkNvbnRl
bnRGaWx0ZXI6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0V4dGVuc2lv
bkNvbnRlbnRGaWx0ZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3
b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6YWRkRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6ZmluaXNoZWRBZGRpbmdE
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjp1
bmJsb2NrSGFuZGxlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRD
b250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZv
cm1DQUFuaW1hdGlvbkNvY29hLm1tOgorICAgICAgICAoUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29h
OjpzZXRUaW1pbmdGdW5jdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
Rm9udENhY2hlQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpwbGF0
Zm9ybUFsdGVybmF0ZUZhbWlseU5hbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0ZvbnRDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OnBsYXRmb3JtSW5pdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6SU9TdXJmYWNlOjpzaW5rSW50b0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJHUFVMYXllci5tbToKKyAgICAgICAgKC1bV2ViR1BVTGF5ZXIg
aW5pdFdpdGhHUFVEZXZpY2U6XSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Nv
bXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxl
eFRleHRDb250cm9sbGVyOjpDb21wbGV4VGV4dFJ1bjo6Q29tcGxleFRleHRSdW4pOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9XZWJHTExheWVyLm1tOgorICAgICAgICAoLVtXZWJH
TExheWVyIGluaXRXaXRoR3JhcGhpY3NDb250ZXh0M0Q6XSk6CisgICAgICAgICogcGxhdGZvcm0v
bWFjL0JsYWNrbGlzdFVwZGF0ZXIubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
U2NyZWVuTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuU3VwcG9ydHNFeHRlbmRlZENv
bG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVmFsaWRhdGlvbkJ1YmJsZU1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OlZhbGlkYXRpb25CdWJibGU6OlZhbGlkYXRpb25CdWJibGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9XZWJHTEJsYWNrbGlzdC5tbToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMQmxhY2tsaXN0OjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29j
b2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29j
b2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21h
Yy9DZXJ0aWZpY2F0ZUluZm9NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpDZXJ0aWZpY2F0ZUlu
Zm86OmNvbnRhaW5zTm9uUm9vdFNIQTFTaWduZWRDZXJ0aWZpY2F0ZSk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6c2V0
Q29va2llc0Zyb21ET00pOgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtTUEku
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg6CisgICAgICAg
ICogcGxhdGZvcm0vc3BpL2NvY29hL05FRmlsdGVyU291cmNlU1BJLmg6CisgICAgICAgICogcGxh
dGZvcm0vc3BpL2NvY29hL05TVVJMQ29ubmVjdGlvblNQSS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg6CisgICAgICAgICogcGxhdGZvcm0vc3BpL21hYy9O
U1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmg6CisgICAgICAgICogcGxhdGZvcm0vc3BpL21hYy9O
U1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvclNQSS5oOgorICAgICAgICAqIHBsYXRmb3JtL3Nw
aS9tYWMvVFVDYWxsU1BJLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OmxldmVsSW5kaWNhdG9yRm9yKToK
KyAgICAgICAgKiBzdmcvU1ZHVG9PVEZGb250Q29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdUb09URkZvbnRDb252ZXJ0ZXI6OmFwcGVuZEtFUk5UYWJsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdUb09URkZvbnRDb252ZXJ0ZXI6OlNWR1RvT1RGRm9udENvbnZlcnRlcik6CisK
IDIwMTctMDYtMzAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4K
IAogICAgICAgICBJZiBhbiBpbWFnZSBhcHBlYXJzIG1vcmUgdGhhbiBvbmNlIG9uIGEgcGFnZSwg
ZGVjb2RpbmcgZm9yIHBhaW50aW5nIG9uZSBpbnN0YW5jZSByZXBhaW50cyB0aGVtIGFsbApJbmRl
eDogU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCShyZXZpc2lv
biAyMTkwNDgpCisrKyBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmln
CSh3b3JraW5nIGNvcHkpCkBAIC03OCw3ICs3OCw2IEBAIEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJM
RSA9IFlFUzsKIFdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2No
YXItc3Vic2NyaXB0cyAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlz
c2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50
ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0
LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNv
bXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV25vLXVua25vd24td2FybmluZy1vcHRpb247
CiAKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChUQVJHRVRfTUFDX09TX1hfVkVS
U0lPTl9NQUpPUiQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUOnN1ZmZpeDppZGVudGlmaWVyKSk7
Ci1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMCA9IDEwMTAwMDsKIFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SXzExID0gMTAxMTAwOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05f
TUFKT1JfMTIgPSAxMDEyMDA7CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMyA9IDEw
MTMwMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54
Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9EZWJ1
Z1JlbGVhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJDb3JlL0Nv
bmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMzAs
NyArMzAsNiBAQCBPTkxZX0FDVElWRV9BUkNIID0gWUVTOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJ
T05fTUFKT1IgPSAkKE1BQ19PU19YX1ZFUlNJT05fTUFKT1IpOwogCiBNQUNPU1hfREVQTE9ZTUVO
VF9UQVJHRVQgPSAkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8kKFBMQVRGT1JNX05BTUUpXyQo
VEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKLU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdF
VF9tYWNvc3hfMTAxMDAwID0gMTAuMTA7CiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4
XzEwMTEwMCA9IDEwLjExOwogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDEyMDAg
PSAxMC4xMjsKIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMzAwID0gMTAuMTM7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDExICszMiw5IEBACiAvLyBTZXQgYW55IEVOQUJMRV9GRUFUVVJFX05BTUUgbWFjcm8gdG8gYW4g
ZW1wdHkgc3RyaW5nIHRvIGRpc2FibGUgdGhhdCBmZWF0dXJlLgogCiBUQVJHRVRfTUFDX09TX1hf
VkVSU0lPTl9MRVNTX1RIQU5fMTAxMjAwMCA9ICQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVT
U19USEFOXzEwMTIwMDBfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOwotVEFSR0VU
X01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDBfMTAxMDAwID0gWUVTOwogVEFSR0VU
X01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDBfMTAxMTAwID0gWUVTOwogCiBUQVJH
RVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAwMCA9ICQoVEFSR0VUX01BQ19PU19Y
X1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDBfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpP
UikpOwotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDBfMTAxMDAwID0g
WUVTOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDBfMTAxMTAwID0g
WUVTOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDBfMTAxMjAwID0g
WUVTOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29u
ZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24u
eGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRp
b25zL1ZlcnNpb24ueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDYgQEAgU0hP
UlRfVkVSU0lPTl9TVFJJTkcgPSAkKFNIT1JUX1ZFUlNJT05fUwogLy8gVGhlIHN5c3RlbSB2ZXJz
aW9uIHByZWZpeCBpcyBiYXNlZCBvbiB0aGUgY3VycmVudCBzeXN0ZW0gdmVyc2lvbi4KIFNZU1RF
TV9WRVJTSU9OX1BSRUZJWFtzZGs9aXBob25lKl0gPSA4OwogU1lTVEVNX1ZFUlNJT05fUFJFRklY
ID0gJChTWVNURU1fVkVSU0lPTl9QUkVGSVhfJChQTEFURk9STV9OQU1FKV8kKFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SKSk7Ci1TWVNURU1fVkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEwMTAw
MCA9IDEwOwogU1lTVEVNX1ZFUlNJT05fUFJFRklYX21hY29zeF8xMDExMDAgPSAxMTsKIFNZU1RF
TV9WRVJTSU9OX1BSRUZJWF9tYWNvc3hfMTAxMjAwID0gMTI7CiBTWVNURU1fVkVSU0lPTl9QUkVG
SVhfbWFjb3N4XzEwMTMwMCA9IDEzOwpJbmRleDogU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
MTkwNDgpCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTctMDctMDEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KKworICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gKE9PUFMhKS4KKyAgICAgICAg
TmVlZCB0aGUgYnVnIFVSTCAoT09QUyEpLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKyAgICAg
ICAgKiBDb25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWc6CisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJh
dGlvbnMvVmVyc2lvbi54Y2NvbmZpZzoKKwogMjAxNy0wNi0yOSAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIExlZ2FjeSBFTUUgQVBJIGNvbnRyb2xsZWQg
YnkgUnVudGltZUVuYWJsZWQgc2V0dGluZy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9Db25m
aWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BB
TC9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwkod29ya2luZyBjb3B5
KQpAQCAtNzgsNyArNzgsNiBAQCBHQ0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7CiBXQVJO
SU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMg
LVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0
dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVk
dW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0
b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGlj
aXQtZmFsbHRocm91Z2ggLVduby11bmtub3duLXdhcm5pbmctb3B0aW9uOwogCiBUQVJHRVRfTUFD
X09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IkKE1B
Q09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6aWRlbnRpZmllcikpOwotVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTUFKT1JfMTAgPSAxMDEwMDA7CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9N
QUpPUl8xMSA9IDEwMTEwMDsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzEyID0gMTAx
MjAwOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVh
c2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJDb3JlL1BBTC9Db25m
aWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcg
KzMwLDYgQEAgT05MWV9BQ1RJVkVfQVJDSCA9IFlFUzsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9O
X01BSk9SID0gJChNQUNfT1NfWF9WRVJTSU9OX01BSk9SKTsKIAogTUFDT1NYX0RFUExPWU1FTlRf
VEFSR0VUID0gJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfJChQTEFURk9STV9OQU1FKV8kKFRB
UkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7Ci1NQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRf
bWFjb3N4XzEwMTAwMCA9IDEwLjEwOwogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8x
MDExMDAgPSAxMC4xMTsKIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMjAwID0g
MTAuMTI7CiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTMwMCA9IDEwLjEzOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYkNv
cmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNv
cHkpCkBAIC0zMiwxMSArMzIsOSBAQAogLy8gU2V0IGFueSBFTkFCTEVfRkVBVFVSRV9OQU1FIG1h
Y3JvIHRvIGFuIGVtcHR5IHN0cmluZyB0byBkaXNhYmxlIHRoYXQgZmVhdHVyZS4KIAogVEFSR0VU
X01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDAgPSAkKFRBUkdFVF9NQUNfT1NfWF9W
RVJTSU9OX0xFU1NfVEhBTl8xMDEyMDAwXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1Ip
KTsKLVRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEyMDAwXzEwMTAwMCA9IFlF
UzsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEyMDAwXzEwMTEwMCA9IFlF
UzsKIAogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDAgPSAkKFRBUkdF
VF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwXyQoVEFSR0VUX01BQ19PU19YX1ZF
UlNJT05fTUFKT1IpKTsKLVRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAw
XzEwMTAwMCA9IFlFUzsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAw
XzEwMTEwMCA9IFlFUzsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAw
XzEwMTIwMCA9IFlFUzsKIApJbmRleDogU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25z
L1ZlcnNpb24ueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUEFML0NvbmZp
Z3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnCSh3b3JraW5nIGNvcHkp
CkBAIC0zNSw3ICszNSw2IEBAIFNIT1JUX1ZFUlNJT05fU1RSSU5HID0gJChTSE9SVF9WRVJTSU9O
X1MKIC8vIFRoZSBzeXN0ZW0gdmVyc2lvbiBwcmVmaXggaXMgYmFzZWQgb24gdGhlIGN1cnJlbnQg
c3lzdGVtIHZlcnNpb24uCiBTWVNURU1fVkVSU0lPTl9QUkVGSVhbc2RrPWlwaG9uZSpdID0gODsK
IFNZU1RFTV9WRVJTSU9OX1BSRUZJWCA9ICQoU1lTVEVNX1ZFUlNJT05fUFJFRklYXyQoUExBVEZP
Uk1fTkFNRSlfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOwotU1lTVEVNX1ZFUlNJ
T05fUFJFRklYX21hY29zeF8xMDEwMDAgPSAxMDsKIFNZU1RFTV9WRVJTSU9OX1BSRUZJWF9tYWNv
c3hfMTAxMTAwID0gMTE7CiBTWVNURU1fVkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEwMTIwMCA9IDEy
OwogU1lTVEVNX1ZFUlNJT05fUFJFRklYX21hY29zeF8xMDEzMDAgPSAxMzsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAkocmV2aXNpb24g
MjE5MDQ4KQorKysgU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTc4LDExICsxNzgsOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnNldEVuaGFuY2VkVXNlckludGVyCiB7CiAgICAgZ0FjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJ
bnRlcmZhY2VFbmFibGVkID0gZmxhZzsKICNpZiBQTEFURk9STShNQUMpCi0jaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKICAgICBpZiAoZmxhZykKICAgICAgICAg
ZW5hYmxlQWNjZXNzaWJpbGl0eSgpOwogI2VuZGlmCi0jZW5kaWYKIH0KIAogQVhPYmplY3RDYWNo
ZTo6QVhPYmplY3RDYWNoZShEb2N1bWVudCYgZG9jdW1lbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4
LDggKzg4LDYgQEAgY29uc3QgaW50IGRlZmF1bHRIZWlnaHQgPSAxNTA7CiAvLyBpbiBleGNoYW5n
ZSBmb3IgYSBzbWFsbGVyIG1heGltdW0gY2FudmFzIHNpemUuIFRoZSBtYXhpbXVtIGNhbnZhcyBz
aXplIGlzIGluIGRldmljZSBwaXhlbHMuCiAjaWYgUExBVEZPUk0oSU9TKQogY29uc3QgdW5zaWdu
ZWQgbWF4Q2FudmFzQXJlYSA9IDQwOTYgKiA0MDk2OwotI2VsaWYgUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMTAwCi1jb25zdCB1bnNpZ25lZCBt
YXhDYW52YXNBcmVhID0gODE5MiAqIDgxOTI7CiAjZWxzZQogY29uc3QgdW5zaWduZWQgbWF4Q2Fu
dmFzQXJlYSA9IDE2Mzg0ICogMTYzODQ7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5jcHAJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjYsMTQgKzI2LDE0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2hl
ZWxFdmVudERlbHRhRmlsdGVyLmgiCiAKLSNpZiBIQVZFKE5TU0NST0xMSU5HX0ZJTFRFUlMpCi0j
aW5jbHVkZSAiV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLmgiCi0jZW5kaWYKLQogI2luY2x1ZGUg
IkZsb2F0U2l6ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJUZXh0U3RyZWFt
LmgiCiAKKyNpZiBQTEFURk9STShNQUMpCisjaW5jbHVkZSAiV2hlZWxFdmVudERlbHRhRmlsdGVy
TWFjLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogV2hlZWxFdmVudERl
bHRhRmlsdGVyOjpXaGVlbEV2ZW50RGVsdGFGaWx0ZXIoKQpAQCAtNDYsNyArNDYsNyBAQCBXaGVl
bEV2ZW50RGVsdGFGaWx0ZXI6On5XaGVlbEV2ZW50RGVsdGFGCiAKIHN0ZDo6dW5pcXVlX3B0cjxX
aGVlbEV2ZW50RGVsdGFGaWx0ZXI+IFdoZWVsRXZlbnREZWx0YUZpbHRlcjo6Y3JlYXRlKCkKIHsK
LSNpZiBIQVZFKE5TU0NST0xMSU5HX0ZJTFRFUlMpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdoZWVsRXZlbnREZWx0YUZpbHRlck1hYz4oKTsKICNlbHNl
CiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8QmFzaWNXaGVlbEV2ZW50RGVsdGFGaWx0ZXI+
KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFGaWx0ZXJN
YWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9XaGVlbEV2ZW50RGVs
dGFGaWx0ZXJNYWMuaAkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1
LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCisjaWYgUExBVEZPUk0oTUFDKQogCiAjaW5j
bHVkZSAiV2hlZWxFdmVudERlbHRhRmlsdGVyLmgiCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgpAQCAtNDksNCArNDksNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
LSNlbmRpZiAvLyBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMTAwCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1doZWVsRXZlbnREZWx0YUZpbHRlck1hYy5tbQkocmV2aXNp
b24gMjE5MDQ4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2hlZWxFdmVudERlbHRhRmls
dGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw4ICsyNSw2IEBACiAKICNpbmNsdWRlICJj
b25maWcuaCIKIAotI2lmIEhBVkUoTlNTQ1JPTExJTkdfRklMVEVSUykKLQogI2luY2x1ZGUgIldo
ZWVsRXZlbnREZWx0YUZpbHRlck1hYy5oIgogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKIApAQCAt
NjgsNSArNjYsMyBAQCB2b2lkIFdoZWVsRXZlbnREZWx0YUZpbHRlck1hYzo6ZW5kRmlsdGVyCiB9
CiAKIH0KLQotI2VuZGlmIC8qIEhBVkUoTlNTQ1JPTExJTkdfRklMVEVSUykgKi8KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
TW9tZW50dW1DYWxjdWxhdG9yLmNwcAkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjcsNyArNjcsNyBAQCBGbG9hdFNpemUgU2Nyb2xsaW5nTW9tZW50dW1DYWxj
dWxhdG9yOjpwCiAgICAgcmV0dXJuIHsgaW5pdGlhbE9mZnNldFgsIGluaXRpYWxPZmZzZXRZIH07
CiB9CiAKLSNpZiAhSEFWRShOU1NDUk9MTElOR19GSUxURVJTKQorI2lmICFQTEFURk9STShNQUMp
CiAKIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I+IFNjcm9sbGlu
Z01vbWVudHVtQ2FsY3VsYXRvcjo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld3BvcnRTaXpl
LCBjb25zdCBGbG9hdFNpemUmIGNvbnRlbnRTaXplLCBjb25zdCBGbG9hdFBvaW50JiBpbml0aWFs
T2Zmc2V0LCBjb25zdCBGbG9hdFNpemUmIGluaXRpYWxEZWx0YSwgY29uc3QgRmxvYXRTaXplJiBp
bml0aWFsVmVsb2NpdHkpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1h
Yy5oCShyZXZpc2lvbiAyMTkwNDgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDggKzI4LDYgQEAKICNpbmNsdWRlICJTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuaCIKICNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKLSNpZiBIQVZFKE5TU0NST0xMSU5HX0ZJTFRFUlMp
Ci0KIEBjbGFzcyBfTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTUyLDUgKzUwLDMgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmIC8vIEhBVkUoTlNTQ1JPTExJTkdfRklMVEVSUykKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0
b3JNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYy5tbQkocmV2aXNpb24gMjE5MDQ4KQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ01vbWVudHVtQ2FsY3Vs
YXRvck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYy5oIgogCi0j
aWYgSEFWRShOU1NDUk9MTElOR19GSUxURVJTKQotCiAjaW5jbHVkZSAiTlNTY3JvbGxpbmdNb21l
bnR1bUNhbGN1bGF0b3JTUEkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTA0LDUgKzEw
MiwzIEBAIF9OU1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvciAqU2Nyb2xsaW4KIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gSEFWRShOU1NDUk9MTElOR19GSUxURVJT
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNv
bnRlbnRGaWx0ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0JKHJldmlzaW9uIDIxOTA0OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50Rmls
dGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00NywxMyArNDcsMTEgQEAgQGludGVyZmFjZSBORUZp
bHRlclNvdXJjZSAoKQogLSAodm9pZClzZXRTb3VyY2VBcHBQaWQ6KHBpZF90KXNvdXJjZUFwcFBp
ZDsKIEBlbmQKIAotI2lmIEhBVkUoTU9ERVJOX05FX0ZJTFRFUl9TT1VSQ0UpCiBzdGF0aWMgaW5s
aW5lIE5TRGF0YSAqcmVwbGFjZW1lbnREYXRhRnJvbURlY2lzaW9uSW5mbyhOU0RpY3Rpb25hcnkg
KmRlY2lzaW9uSW5mbykKIHsKICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTigh
ZGVjaXNpb25JbmZvIHx8IFtkZWNpc2lvbkluZm8gaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5
IGNsYXNzXV0pOwogICAgIHJldHVybiBkZWNpc2lvbkluZm9bTkVGaWx0ZXJTb3VyY2VPcHRpb25z
UGFnZURhdGFdOwogfQotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzYsNyAr
NzQsNiBAQCB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjppbml0CiAgICAgQVNT
RVJUKCFtX25lRmlsdGVyU291cmNlKTsKICAgICBtX3F1ZXVlID0gYWRvcHRPU09iamVjdChkaXNw
YXRjaF9xdWV1ZV9jcmVhdGUoIldlYktpdCBOZXR3b3JrRXh0ZW5zaW9uIEZpbHRlcmluZyIsIERJ
U1BBVENIX1FVRVVFX1NFUklBTCkpOwogICAgIG1fc2VtYXBob3JlID0gYWRvcHRPU09iamVjdChk
aXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRlKDApKTsKLSNpZiBIQVZFKE1PREVSTl9ORV9GSUxURVJf
U09VUkNFKQogICAgIEFTU0VSVF9VTlVTRUQodXJsLCAhdXJsKTsKICAgICBtX25lRmlsdGVyU291
cmNlID0gYWRvcHROUyhbYWxsb2NORUZpbHRlclNvdXJjZUluc3RhbmNlKCkgaW5pdFdpdGhEZWNp
c2lvblF1ZXVlOm1fcXVldWUuZ2V0KCldKTsKICNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYg
X19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKQpAQCAtODUsMTUgKzgy
LDEwIEBAIHZvaWQgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OmluaXQKICAgICBpZiAo
W21fbmVGaWx0ZXJTb3VyY2UgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRTb3VyY2VB
cHBQaWQ6KV0pCiAgICAgICAgIFttX25lRmlsdGVyU291cmNlIHNldFNvdXJjZUFwcFBpZDpwcmVz
ZW50aW5nQXBwbGljYXRpb25QSUQoKV07CiAjZW5kaWYKLSNlbHNlCi0gICAgQVNTRVJUX0FSRyh1
cmwsIHVybCk7Ci0gICAgbV9uZUZpbHRlclNvdXJjZSA9IGFkb3B0TlMoW2FsbG9jTkVGaWx0ZXJT
b3VyY2VJbnN0YW5jZSgpIGluaXRXaXRoVVJMOip1cmwgZGlyZWN0aW9uOk5FRmlsdGVyU291cmNl
RGlyZWN0aW9uSW5ib3VuZCBzb2NrZXRJZGVudGlmaWVyOjBdKTsKLSNlbmRpZgogfQogCiB2b2lk
IE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNl
KQogewotI2lmIEhBVkUoTU9ERVJOX05FX0ZJTFRFUl9TT1VSQ0UpCiAgICAgQVNTRVJUKCFyZXF1
ZXN0LmlzTnVsbCgpKTsKICAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0luSFRUUEZh
bWlseSgpIHx8ICFlbmFibGVkKCkpIHsKICAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpBbGxvd2Vk
OwpAQCAtMTMwLDEwICsxMjIsNiBAQCB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVy
Ojp3aWxsCiAgICAgfQogCiAgICAgcmVxdWVzdC5zZXRVUkwobW9kaWZpZWRSZXF1ZXN0VVJMKTsK
LSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHJlcXVlc3QpOwotICAgIFVOVVNFRF9QQVJBTShyZWRp
cmVjdFJlc3BvbnNlKTsKLSNlbmRpZgogfQogCiB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50
RmlsdGVyOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
KQpAQCAtMTQzLDE0ICsxMzEsNiBAQCB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVy
OjpyZXNwCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNpZiAhSEFWRShNT0RFUk5fTkVfRklM
VEVSX1NPVVJDRSkKLSAgICBpZiAoIWVuYWJsZWQoKSkgewotICAgICAgICBtX3N0YXRlID0gU3Rh
dGU6OkFsbG93ZWQ7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpbml0aWFsaXplKCZy
ZXNwb25zZS51cmwoKSk7Ci0jZWxzZQogICAgIFttX25lRmlsdGVyU291cmNlIHJlY2VpdmVkUmVz
cG9uc2U6cmVzcG9uc2UubnNVUkxSZXNwb25zZSgpIGRlY2lzaW9uSGFuZGxlcjpbdGhpc10oTkVG
aWx0ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLCBOU0RpY3Rpb25hcnkgKmRlY2lzaW9uSW5mbykgewog
ICAgICAgICBoYW5kbGVEZWNpc2lvbihzdGF0dXMsIHJlcGxhY2VtZW50RGF0YUZyb21EZWNpc2lv
bkluZm8oZGVjaXNpb25JbmZvKSk7CiAgICAgfV07CkBAIC0xNTksMjMgKzEzOSwxNSBAQCB2b2lk
IE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpyZXNwCiAgICAgLy8gYmxvY2tlZC9ub3Qg
YmxvY2tlZCBhbnN3ZXIgZnJvbSB0aGUgZmlsdGVyIGltbWVkaWF0ZWx5IGFmdGVyIGNhbGxpbmcK
ICAgICAvLyBhZGREYXRhKCkuIFdlIHNob3VsZCBmaW5kIGEgd2F5IHRvIG1ha2UgdGhpcyBhc3lu
Y2hyb25vdXMuCiAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9zZW1hcGhvcmUuZ2V0KCks
IERJU1BBVENIX1RJTUVfRk9SRVZFUik7Ci0jZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrRXh0ZW5z
aW9uQ29udGVudEZpbHRlcjo6YWRkRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQog
ewogICAgIFJldGFpblB0cjxOU0RhdGE+IGNvcGllZERhdGEgeyBbTlNEYXRhIGRhdGFXaXRoQnl0
ZXM6KHZvaWQqKWRhdGEgbGVuZ3RoOmxlbmd0aF0gfTsKIAotI2lmIEhBVkUoTU9ERVJOX05FX0ZJ
TFRFUl9TT1VSQ0UpCiAgICAgW21fbmVGaWx0ZXJTb3VyY2UgcmVjZWl2ZWREYXRhOmNvcGllZERh
dGEuZ2V0KCkgZGVjaXNpb25IYW5kbGVyOlt0aGlzXShORUZpbHRlclNvdXJjZVN0YXR1cyBzdGF0
dXMsIE5TRGljdGlvbmFyeSAqZGVjaXNpb25JbmZvKSB7CiAgICAgICAgIGhhbmRsZURlY2lzaW9u
KHN0YXR1cywgcmVwbGFjZW1lbnREYXRhRnJvbURlY2lzaW9uSW5mbyhkZWNpc2lvbkluZm8pKTsK
ICAgICB9XTsKLSNlbHNlCi0gICAgW21fbmVGaWx0ZXJTb3VyY2UgYWRkRGF0YTpjb3BpZWREYXRh
LmdldCgpIHdpdGhDb21wbGV0aW9uUXVldWU6bV9xdWV1ZS5nZXQoKSBjb21wbGV0aW9uSGFuZGxl
cjpbdGhpc10oTkVGaWx0ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLCBOU0RhdGEgKnJlcGxhY2VtZW50
RGF0YSkgewotICAgICAgICBBU1NFUlQoIXJlcGxhY2VtZW50RGF0YSk7Ci0gICAgICAgIGhhbmRs
ZURlY2lzaW9uKHN0YXR1cywgcmVwbGFjZW1lbnREYXRhKTsKLSAgICB9XTsKLSNlbmRpZgogCiAg
ICAgLy8gRklYTUU6IFdlIGhhdmUgdG8gYmxvY2sgaGVyZSBzaW5jZSBEb2N1bWVudExvYWRlciBl
eHBlY3RzIHRvIGhhdmUgYQogICAgIC8vIGJsb2NrZWQvbm90IGJsb2NrZWQgYW5zd2VyIGZyb20g
dGhlIGZpbHRlciBpbW1lZGlhdGVseSBhZnRlciBjYWxsaW5nCkBAIC0xODUsMTYgKzE1Nyw5IEBA
IHZvaWQgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OmFkZEQKIAogdm9pZCBOZXR3b3Jr
RXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6ZmluaXNoZWRBZGRpbmdEYXRhKCkKIHsKLSNpZiBIQVZF
KE1PREVSTl9ORV9GSUxURVJfU09VUkNFKQogICAgIFttX25lRmlsdGVyU291cmNlIGZpbmlzaGVk
TG9hZGluZ1dpdGhEZWNpc2lvbkhhbmRsZXI6W3RoaXNdKE5FRmlsdGVyU291cmNlU3RhdHVzIHN0
YXR1cywgTlNEaWN0aW9uYXJ5ICpkZWNpc2lvbkluZm8pIHsKICAgICAgICAgaGFuZGxlRGVjaXNp
b24oc3RhdHVzLCByZXBsYWNlbWVudERhdGFGcm9tRGVjaXNpb25JbmZvKGRlY2lzaW9uSW5mbykp
OwogICAgIH1dOwotI2Vsc2UKLSAgICBbbV9uZUZpbHRlclNvdXJjZSBkYXRhQ29tcGxldGVXaXRo
Q29tcGxldGlvblF1ZXVlOm1fcXVldWUuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6W3RoaXNdKE5F
RmlsdGVyU291cmNlU3RhdHVzIHN0YXR1cywgTlNEYXRhICpyZXBsYWNlbWVudERhdGEpIHsKLSAg
ICAgICAgQVNTRVJUKCFyZXBsYWNlbWVudERhdGEpOwotICAgICAgICBoYW5kbGVEZWNpc2lvbihz
dGF0dXMsIHJlcGxhY2VtZW50RGF0YSk7Ci0gICAgfV07Ci0jZW5kaWYKIAogICAgIC8vIEZJWE1F
OiBXZSBoYXZlIHRvIGJsb2NrIGhlcmUgc2luY2UgRG9jdW1lbnRMb2FkZXIgZXhwZWN0cyB0byBo
YXZlIGEKICAgICAvLyBibG9ja2VkL25vdCBibG9ja2VkIGFuc3dlciBmcm9tIHRoZSBmaWx0ZXIg
aW1tZWRpYXRlbHkgYWZ0ZXIgY2FsbGluZwpAQCAtMjExLDcgKzE3Niw2IEBAIFJlZjxTaGFyZWRC
dWZmZXI+IE5ldHdvcmtFeHRlbnNpb25Db250ZW4KICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJ
TkcpCiBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRG
aWx0ZXI6OnVuYmxvY2tIYW5kbGVyKCkgY29uc3QKIHsKLSNpZiBIQVZFKE1PREVSTl9ORV9GSUxU
RVJfU09VUkNFKQogICAgIHVzaW5nIERlY2lzaW9uSGFuZGxlckZ1bmN0aW9uID0gQ29udGVudEZp
bHRlclVuYmxvY2tIYW5kbGVyOjpEZWNpc2lvbkhhbmRsZXJGdW5jdGlvbjsKIAogICAgIFJldGFp
blB0cjxORUZpbHRlclNvdXJjZT4gbmVGaWx0ZXJTb3VyY2UgeyBtX25lRmlsdGVyU291cmNlIH07
CkBAIC0yMjMsOSArMTg3LDYgQEAgQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIE5ldHdvcmtF
eHRlbgogICAgICAgICAgICAgfV07CiAgICAgICAgIH0KICAgICB9OwotI2Vsc2UKLSAgICByZXR1
cm4geyB9OwotI2VuZGlmCiB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmgJKHJldmlz
aW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhU
ZXh0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw4ICszMiw2IEBACiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jZGVm
aW5lIFVTRV9MQVlPVVRfU1BFQ0lGSUNfQURWQU5DRVMgKChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSB8fCAoUExBVEZPUk0oSU9TKSAm
JiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSA5MDAwMCkpCi0KIHR5cGVkZWYg
dW5zaWduZWQgc2hvcnQgQ0dHbHlwaDsKIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19DVFJ1biAq
IENUUnVuUmVmOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvY29j
b2EvUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5t
bQkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvY29jb2EvUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0z
MjksMTEgKzMyOSw3IEBAIHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hOjpzZXRUaW1pbmcK
ICAgICAgICAgICAgIHNwcmluZ0FuaW1hdGlvbi5tYXNzID0gZnVuY3Rpb24ubWFzcygpOwogICAg
ICAgICAgICAgc3ByaW5nQW5pbWF0aW9uLnN0aWZmbmVzcyA9IGZ1bmN0aW9uLnN0aWZmbmVzcygp
OwogICAgICAgICAgICAgc3ByaW5nQW5pbWF0aW9uLmRhbXBpbmcgPSBmdW5jdGlvbi5kYW1waW5n
KCk7Ci0jaWYgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCiAgICAgICAgICAgICBzcHJpbmdBbmltYXRpb24u
aW5pdGlhbFZlbG9jaXR5ID0gZnVuY3Rpb24uaW5pdGlhbFZlbG9jaXR5KCk7Ci0jZWxzZQotICAg
ICAgICAgICAgc3ByaW5nQW5pbWF0aW9uLnZlbG9jaXR5ID0gZnVuY3Rpb24uaW5pdGlhbFZlbG9j
aXR5KCk7Ci0jZW5kaWYKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
Rm9udENhY2hlQ29yZVRleHQuY3BwCShyZXZpc2lvbiAyMTkwNDgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEzNTcsMTMgKzEzNTcsOCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEZvbnRDYWNo
ZTo6cGxhdGZvcm1BCiAKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBz
b25ndGlTQygiU29uZ3RpIFNDIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7
CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gc29uZ3RpVEMoIlNvbmd0
aSBUQyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotI2lmIFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTEwMAotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGhlaXRpU0NSZXBsYWNlbWVudCgiSGVp
dGkgU0MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBoZWl0aVRDUmVwbGFjZW1lbnQoIkhlaXRpIFRD
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0jZWxzZQogICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGhlaXRpU0NSZXBsYWNlbWVudCgiUGluZ0Zh
bmcgU0MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBoZWl0aVRDUmVwbGFjZW1lbnQoIlBpbmdGYW5n
IFRDIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0jZW5kaWYKIAogICAg
IHN3aXRjaCAoZmFtaWx5TmFtZS5sZW5ndGgoKSkgewogICAgIGNhc2UgMjoKQEAgLTEzOTIsMTIg
KzEzODcsNiBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEZvbnRDYWNoZTo6cGxhdGZvcm1BCiAgICAg
ICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGZhbWlseU5hbWUsICJcXDViOGJcXDRmNTMi
KSkKICAgICAgICAgICAgIHJldHVybiBzb25ndGlTQzsKICAgICAgICAgYnJlYWs7Ci0jaWYgUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMTAwCi0g
ICAgY2FzZSAxNToKLSAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGZh
bWlseU5hbWUsICJtaWNyb3NvZnQgeWFoZWkiKSkKLSAgICAgICAgICAgIHJldHVybiBoZWl0aVND
UmVwbGFjZW1lbnQ7Ci0gICAgICAgIGJyZWFrOwotI2VuZGlmCiAgICAgY2FzZSAxODoKICAgICAg
ICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGZhbWlseU5hbWUsICJtaWNyb3Nv
ZnQgamhlbmdoZWkiKSkKICAgICAgICAgICAgIHJldHVybiBoZWl0aVRDUmVwbGFjZW1lbnQ7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dENvY29hLm1tCShyZXZpc2lvbiAyMTkwNDgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTEyMywxMyArMTIz
LDYgQEAgdm9pZCBGb250OjpwbGF0Zm9ybUluaXQoKQogICAgIG1fc3ludGhldGljQm9sZE9mZnNl
dCA9IG1fcGxhdGZvcm1EYXRhLnN5bnRoZXRpY0JvbGQoKSA/IDEuMGYgOiAwLmY7CiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8
IDEwMTEwMAotICAgIC8vIFdvcmsgYXJvdW5kIDxyZGFyOi8vcHJvYmxlbS8xOTQzMzQ5MD4KLSAg
ICBDR0dseXBoIGR1bW15R2x5cGhzW10gPSB7MCwgMH07Ci0gICAgQ0dTaXplIGR1bW15U2l6ZVtd
ID0geyBDR1NpemVNYWtlKDAsIDApLCBDR1NpemVNYWtlKDAsIDApIH07Ci0gICAgQ1RGb250VHJh
bnNmb3JtR2x5cGhzKG1fcGxhdGZvcm1EYXRhLmN0Rm9udCgpLCBkdW1teUdseXBocywgZHVtbXlT
aXplLCAyLCBrQ1RGb250VHJhbnNmb3JtQXBwbHlQb3NpdGlvbmluZyB8IGtDVEZvbnRUcmFuc2Zv
cm1BcHBseVNoYXBpbmcpOwotI2VuZGlmCi0KICAgICB1bnNpZ25lZCB1bml0c1BlckVtID0gQ1RG
b250R2V0VW5pdHNQZXJFbShtX3BsYXRmb3JtRGF0YS5mb250KCkpOwogICAgIGZsb2F0IHBvaW50
U2l6ZSA9IG1fcGxhdGZvcm1EYXRhLnNpemUoKTsKICAgICBDR0Zsb2F0IGNhcEhlaWdodCA9IHBv
aW50U2l6ZSA/IENURm9udEdldENhcEhlaWdodChtX3BsYXRmb3JtRGF0YS5mb250KCkpIDogMDsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9J
T1N1cmZhY2UubW0JKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjUzLDcgKzI1
Myw3IEBAIFJldGFpblB0cjxDR0ltYWdlUmVmPiBXZWJDb3JlOjpJT1N1cmZhY2UKIAogUmV0YWlu
UHRyPENHSW1hZ2VSZWY+IFdlYkNvcmU6OklPU3VyZmFjZTo6c2lua0ludG9JbWFnZShzdGQ6OnVu
aXF1ZV9wdHI8SU9TdXJmYWNlPiBzdXJmYWNlKQogewotI2lmIChQTEFURk9STShJT1MpICYmIF9f
SVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMDAwMCkgfHwgKFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApCisjaWYgKFBM
QVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAwMDAw
KSB8fCBQTEFURk9STShNQUMpCiAgICAgcmV0dXJuIGFkb3B0Q0YoQ0dJT1N1cmZhY2VDb250ZXh0
Q3JlYXRlSW1hZ2VSZWZlcmVuY2Uoc3VyZmFjZS0+ZW5zdXJlUGxhdGZvcm1Db250ZXh0KCkpKTsK
ICNlbHNlCiAgICAgcmV0dXJuIHN1cmZhY2UtPmNyZWF0ZUltYWdlKCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHUFVMYXllci5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHUFVMYXllci5t
bQkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViR1BVTGF5ZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTUwLDEwICs1MCw3IEBAIC0g
KGlkKWluaXRXaXRoR1BVRGV2aWNlOihHUFVEZXZpY2UqKWNvbnQKIAogI2lmIFBMQVRGT1JNKE1B
QykKICAgICBzZWxmLmNvbnRlbnRzU2NhbGUgPSBfZGV2aWNlUGl4ZWxSYXRpbzsKLSNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAotICAgIGlmIChbc2VsZiByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldENvbG9yc3BhY2U6KV0pCi0gICAgICAgIFtzZWxm
IHNldENvbG9yc3BhY2U6c1JHQkNvbG9yU3BhY2VSZWYoKV07Ci0jZW5kaWYKKyAgICBzZWxmLmNv
bG9yc3BhY2UgPSBzUkdCQ29sb3JTcGFjZVJlZigpOwogI2VuZGlmCiAgICAgcmV0dXJuIHNlbGY7
CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRl
eHRDb250cm9sbGVyQ29yZVRleHQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCShyZXZp
c2lvbiAyMTkwNDgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29t
cGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0JKHdvcmtpbmcgY29weSkKQEAgLTEzMiw3ICsx
MzIsNiBAQCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0UnVuOjpDCiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fZ2x5cGhDb3VudDsgKytpKQogICAgICAgICBtX2dseXBo
cy51bmNoZWNrZWRBcHBlbmQoZ2x5cGhzUHRyW2ldKTsKIAotI2lmIFVTRV9MQVlPVVRfU1BFQ0lG
SUNfQURWQU5DRVMKICAgICBpZiAoQ1RSdW5HZXRTdGF0dXMoY3RSdW4pICYga0NUUnVuU3RhdHVz
SGFzT3JpZ2lucykgewogICAgICAgICBWZWN0b3I8Q0dTaXplPiBiYXNlQWR2YW5jZXMobV9nbHlw
aENvdW50KTsKICAgICAgICAgVmVjdG9yPENHUG9pbnQ+IGdseXBoT3JpZ2lucyhtX2dseXBoQ291
bnQpOwpAQCAtMTQzLDkgKzE0Miw3IEBAIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29tcGxleFRl
eHRSdW46OkMKICAgICAgICAgICAgIG1fYmFzZUFkdmFuY2VzLnVuY2hlY2tlZEFwcGVuZChiYXNl
QWR2YW5jZXNbaV0pOwogICAgICAgICAgICAgbV9nbHlwaE9yaWdpbnMudW5jaGVja2VkQXBwZW5k
KGdseXBoT3JpZ2luc1tpXSk7CiAgICAgICAgIH0KLSAgICB9IGVsc2UKLSNlbmRpZgotICAgIHsK
KyAgICB9IGVsc2UgewogICAgICAgICBjb25zdCBDR1NpemUqIGJhc2VBZHZhbmNlcyA9IENUUnVu
R2V0QWR2YW5jZXNQdHIoY3RSdW4pOwogICAgICAgICBWZWN0b3I8Q0dTaXplPiBiYXNlQWR2YW5j
ZXNWZWN0b3I7CiAgICAgICAgIGlmICghYmFzZUFkdmFuY2VzKSB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbQkocmV2aXNp
b24gMjE5MDQ4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkdM
TGF5ZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTU1LDEwICs1NSw4IEBAIC0oaWQpaW5pdFdpdGhH
cmFwaGljc0NvbnRleHQzRDooR3JhcGhpY3MKICAgICBfZGV2aWNlUGl4ZWxSYXRpbyA9IGNvbnRl
eHQtPmdldENvbnRleHRBdHRyaWJ1dGVzKCkuZGV2aWNlUGl4ZWxSYXRpbzsKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgc2VsZi5jb250ZW50c1NjYWxlID0gX2RldmljZVBpeGVsUmF0aW87Ci0jaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKICAgICBzZWxmLmNvbG9y
c3BhY2UgPSBzUkdCQ29sb3JTcGFjZVJlZigpOwogI2VuZGlmCi0jZW5kaWYKICAgICByZXR1cm4g
c2VsZjsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0JsYWNrbGlzdFVw
ZGF0ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0JsYWNr
bGlzdFVwZGF0ZXIubW0JKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9CbGFja2xpc3RVcGRhdGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MywxMSArNDMs
NyBAQCBjb25zdCB0aW1lX3QgYmxhY2tsaXN0Q2hlY2tUaW1lSW50ZXJ2YWwgCiAvLyBUaGUgdGlt
ZSB3aGVuIHdlIGxhc3QgcmUtcGFyc2VkIHRoZSBibGFja2xpc3QgZmlsZS4KIHN0YXRpYyB0aW1l
X3QgYmxhY2tsaXN0VXBkYXRlVGltZTsKIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMTAwCiBOU1N0cmluZyAqIGNvbnN0IGJsYWNrbGlzdFBhdGggPSBAIi9TeXN0
ZW0vTGlicmFyeS9Db3JlU2VydmljZXMvWFByb3RlY3QuYnVuZGxlL0NvbnRlbnRzL1Jlc291cmNl
cy9YUHJvdGVjdC5tZXRhLnBsaXN0IjsKLSNlbHNlCi1OU1N0cmluZyAqIGNvbnN0IGJsYWNrbGlz
dFBhdGggPSBAIi9TeXN0ZW0vTGlicmFyeS9Db3JlU2VydmljZXMvQ29yZVR5cGVzLmJ1bmRsZS9D
b250ZW50cy9SZXNvdXJjZXMvWFByb3RlY3QubWV0YS5wbGlzdCI7Ci0jZW5kaWYKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1TY3JlZW5NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1BsYXRmb3JtU2NyZWVuTWFjLm1tCShyZXZpc2lvbiAyMTkwNDgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEz
NiwxMCArMTM2LDYgQEAgTlNTY3JlZW4gKnNjcmVlbihQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbAog
CiBib29sIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcihXaWRnZXQqIHdpZGdldCkKIHsKLSNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMTAwCi0gICAgVU5VU0VEX1BB
UkFNKHdpZGdldCk7Ci0gICAgcmV0dXJuIGZhbHNlOwotI2Vsc2UKICAgICBpZiAoIXdpZGdldCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xNTEsNyArMTQ3LDYgQEAgYm9vbCBzY3JlZW5T
dXBwb3J0c0V4dGVuZGVkQ29sb3IoV2lkZ2V0KgogICAgIGF1dG8gcHJvZmlsZSA9IGFkb3B0Q0Yo
Q29sb3JTeW5jUHJvZmlsZUNyZWF0ZShpY2NEYXRhLmdldCgpLCBudWxscHRyKSk7CiAgICAgcmV0
dXJuIHByb2ZpbGUgJiYgQ29sb3JTeW5jUHJvZmlsZUlzV2lkZUdhbXV0KHByb2ZpbGUuZ2V0KCkp
OwogI2VuZGlmCi0jZW5kaWYKIH0KIAogRmxvYXRSZWN0IHRvVXNlclNwYWNlKGNvbnN0IE5TUmVj
dCYgcmVjdCwgTlNXaW5kb3cgKmRlc3RpbmF0aW9uKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1ZhbGlkYXRpb25CdWJibGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1ZhbGlkYXRpb25CdWJibGVNYWMubW0JKHJldmlzaW9uIDIxOTA0
OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WYWxpZGF0aW9uQnViYmxlTWFjLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC02Niw5ICs2Niw3IEBAIFZhbGlkYXRpb25CdWJibGU6OlZhbGlk
YXRpb25CdWJibGUoTlNWaWUKICAgICBbbGFiZWwgc2V0U3RyaW5nVmFsdWU6bWVzc2FnZV07CiAg
ICAgbV9mb250U2l6ZSA9IHN0ZDo6bWF4KHNldHRpbmdzLm1pbmltdW1Gb250U2l6ZSwgMTMuMCk7
CiAgICAgW2xhYmVsIHNldEZvbnQ6W05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOm1fZm9udFNpemVd
XTsKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAogICAgIFts
YWJlbCBzZXRNYXhpbXVtTnVtYmVyT2ZMaW5lczo0XTsKLSNlbmRpZgogICAgIFtbbGFiZWwgY2Vs
bF0gc2V0VHJ1bmNhdGVzTGFzdFZpc2libGVMaW5lOllFU107CiAgICAgW3BvcG92ZXJWaWV3IGFk
ZFN1YnZpZXc6bGFiZWwuZ2V0KCldOwogICAgIE5TU2l6ZSBsYWJlbFNpemUgPSBbbGFiZWwgc2l6
ZVRoYXRGaXRzOk5TTWFrZVNpemUobWF4TGFiZWxXaWR0aCwgQ0dGTE9BVF9NQVgpXTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJHTEJsYWNrbGlzdC5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViR0xCbGFja2xpc3QubW0JKHJldmlz
aW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJHTEJsYWNrbGlz
dC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjAwLDkgKzIwMCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJHTEJsYWNrbGlzdD4gV2ViR0xCbGEKICAgICBHTGludCByZW5kZXJlcklkID0gMDsKICAgICBD
R0xHZXRQYXJhbWV0ZXIoY3R4LCBrQ0dMQ1BDdXJyZW50UmVuZGVyZXJJRCwgJnJlbmRlcmVySWQp
OwogICAgIEdMaW50IHN1cHBvcnRzU2VwYXJhdGVBZGRyZXNzU3BhY2UgPSAwOwotI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCiAgICAgQ0dMR2V0UGFyYW1ldGVy
KGN0eCwga0NHTENQU3VwcG9ydFNlcGFyYXRlQWRkcmVzc1NwYWNlLCAmc3VwcG9ydHNTZXBhcmF0
ZUFkZHJlc3NTcGFjZSk7Ci0jZW5kaWYKICAgICBDR0xEZXN0cm95Q29udGV4dChjdHgpOwogICAg
IENHTFJlbGVhc2VQaXhlbEZvcm1hdChwaXgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24u
aAkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
b2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDYg
QEAKICNpZm5kZWYgV2ViQ29yZU5TVVJMU2Vzc2lvbl9oCiAjZGVmaW5lIFdlYkNvcmVOU1VSTFNl
c3Npb25faAogCi0jaWYgUExBVEZPUk0oSU9TKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTEwMAotCiAjaW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMU2Vzc2lvbi5oPgog
I2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KICNpbXBvcnQgPHd0Zi9Mb2NrLmg+CkBAIC0xNDIsNiAr
MTQwLDQgQEAgV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBXZWJDb3JlTlNVUkxTZQogCiBOU19B
U1NVTUVfTk9OTlVMTF9FTkQKIAotI2VuZGlmIC8vIFBMQVRGT1JNKElPUykgfHwgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKLQogI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3Jl
TlNVUkxTZXNzaW9uLm1tCShyZXZpc2lvbiAyMTkwNDgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0JKHdvcmtpbmcgY29weSkK
QEAgLTI2LDggKzI2LDYgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiV2ViQ29yZU5T
VVJMU2Vzc2lvbi5oIgogCi0jaWYgUExBVEZPUk0oSU9TKSB8fCBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTEwMAotCiAjaW1wb3J0ICJDYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
aCIKICNpbXBvcnQgIlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIgogI2ltcG9ydCAiU3Vi
cmVzb3VyY2VMb2FkZXIuaCIKQEAgLTY1OSw1ICs2NTcsMyBAQCAtICh2b2lkKXJlc291cmNlRmlu
aXNoZWQ6KFBsYXRmb3JtTWVkaWFSCiAgICAgW3NlbGYgX3Jlc291cmNlOnJlc291cmNlIGxvYWRG
aW5pc2hlZFdpdGhFcnJvcjpuaWxdOwogfQogQGVuZAotCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9T
KSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMApJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ2VydGlmaWNhdGVJbmZvTWFjLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0NlcnRpZmlj
YXRlSW5mb01hYy5tbQkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvQ2VydGlmaWNhdGVJbmZvTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04
MSw3ICs4MSw2IEBAIGJvb2wgQ2VydGlmaWNhdGVJbmZvOjpjb250YWluc05vblJvb3RTSEEKICAg
ICB9CiAjZW5kaWYKIAotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMTAwKSB8fCBQTEFURk9STShJT1MpCiAgICAgaWYgKG1fY2VydGlm
aWNhdGVDaGFpbikgewogICAgICAgICAvLyBBbGxvdyBvbmx5IHRoZSByb290IGNlcnRpZmljYXRl
ICh0aGUgbGFzdCBpbiB0aGUgY2hhaW4pIHRvIGJlIFNIQTEuCiAgICAgICAgIGZvciAoQ0ZJbmRl
eCBpID0gMCwgc2l6ZSA9IENGQXJyYXlHZXRDb3VudChtX2NlcnRpZmljYXRlQ2hhaW4uZ2V0KCkp
IC0gMTsgaSA8IHNpemU7ICsraSkgewpAQCAtOTEsOSArOTAsNiBAQCBib29sIENlcnRpZmljYXRl
SW5mbzo6Y29udGFpbnNOb25Sb290U0hBCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KLSNlbHNlCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSNlbmRpZgogCiAgICAgcmV0
dXJuIGZhbHNlOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
Q29va2llSmFyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbQkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xODcsNyArMTg3LDcgQEAgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3b3Jr
U3RvcgogICAgIE5TVVJMICpjb29raWVVUkwgPSB1cmw7CiAgICAgTlNEaWN0aW9uYXJ5ICpoZWFk
ZXJGaWVsZHMgPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0OmNvb2tpZVN0cmlu
ZyBmb3JLZXk6QCJTZXQtQ29va2llIl07CiAKLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCisjaWYgUExBVEZPUk0oTUFDKQogICAg
IE5TQXJyYXkgKnVuZmlsdGVyZWRDb29raWVzID0gW05TSFRUUENvb2tpZSBfcGFyc2VkQ29va2ll
c1dpdGhSZXNwb25zZUhlYWRlckZpZWxkczpoZWFkZXJGaWVsZHMgZm9yVVJMOmNvb2tpZVVSTF07
CiAjZWxzZQogICAgIE5TQXJyYXkgKnVuZmlsdGVyZWRDb29raWVzID0gW05TSFRUUENvb2tpZSBj
b29raWVzV2l0aFJlc3BvbnNlSGVhZGVyRmllbGRzOmhlYWRlckZpZWxkcyBmb3JVUkw6Y29va2ll
VVJMXTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZi9DRk5ldHdvcmtTUEku
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3Jr
U1BJLmgJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9j
Zi9DRk5ldHdvcmtTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDcgKzExNyw2IEBAIHR5cGVk
ZWYgdm9pZCAoXkNGQ2FjaGVkVVJMUmVzcG9uc2VDYWxsQmEKIC0gKENGSFRUUENvb2tpZVJlZilf
Q0ZIVFRQQ29va2llOwogQGVuZAogCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBI
T05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDkwMDAwKQogQGludGVyZmFjZSBOU1VSTFNl
c3Npb25Db25maWd1cmF0aW9uICgpCiBAcHJvcGVydHkgKGFzc2lnbikgX1RpbWluZ0RhdGFPcHRp
b25zIF90aW1pbmdEYXRhT3B0aW9uczsKIEBwcm9wZXJ0eSAoY29weSkgTlNEYXRhICpfc291cmNl
QXBwbGljYXRpb25BdWRpdFRva2VuRGF0YTsKQEAgLTEyOCw3ICsxMjcsNiBAQCB0eXBlZGVmIHZv
aWQgKF5DRkNhY2hlZFVSTFJlc3BvbnNlQ2FsbEJhCiBAcHJvcGVydHkgKG51bGxhYmxlLCBjb3B5
KSBOU1N0cmluZyAqX0NURGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsKICNlbmRpZgogQGVuZAot
I2VuZGlmCiAKICNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKQogQGludGVyZmFjZSBOU1VSTFNlc3Npb25UYXNrVHJh
bnNhY3Rpb25NZXRyaWNzICgpCkBAIC0yNDUsMjcgKzI0MywyMyBAQCBlbnVtIDogTlNVSW50ZWdl
ciB7CiAKIFdURl9FWFRFUk5fQ19CRUdJTgogCi0jaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkK
IENGRGF0YVJlZiBfQ0ZOZXR3b3JrQ29weUFUU0NvbnRleHQodm9pZCk7CiBCb29sZWFuIF9DRk5l
dHdvcmtTZXRBVFNDb250ZXh0KENGRGF0YVJlZik7Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQogdm9pZCBfQ0ZOZXR3b3JrUmVzZXRIU1RTSG9zdHNTaW5jZURhdGUoQ0ZVUkxTdG9yYWdl
U2Vzc2lvblJlZiwgQ0ZEYXRlUmVmKTsKICNlbmRpZgogCi0jaWYgVEFSR0VUX09TX0lQSE9ORSB8
fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTEwMCkKIENGRGF0YVJlZiBDRkhUVFBDb29raWVTdG9yYWdlQ3JlYXRlSWRlbnRpZnlpbmdEYXRh
KENGQWxsb2NhdG9yUmVmIGluQWxsb2NhdG9yLCBDRkhUVFBDb29raWVTdG9yYWdlUmVmIGluU3Rv
cmFnZSk7CiBDRkhUVFBDb29raWVTdG9yYWdlUmVmIENGSFRUUENvb2tpZVN0b3JhZ2VDcmVhdGVG
cm9tSWRlbnRpZnlpbmdEYXRhKENGQWxsb2NhdG9yUmVmIGluQWxsb2NhdG9yLCBDRkRhdGFSZWYg
aW5EYXRhKTsKIENGQXJyYXlSZWYgX0NGSFRUUFBhcnNlZENvb2tpZXNXaXRoUmVzcG9uc2VIZWFk
ZXJGaWVsZHMoQ0ZBbGxvY2F0b3JSZWYgaW5BbGxvY2F0b3IsIENGRGljdGlvbmFyeVJlZiBoZWFk
ZXJGaWVsZHMsIENGVVJMUmVmIGluVVJMKTsKLSNlbmRpZgogCiBXVEZfRVhURVJOX0NfRU5ECiAK
ICNpZiBkZWZpbmVkKF9fT0JKQ19fKQogCiBAaW50ZXJmYWNlIE5TSFRUUENvb2tpZSAoKQotI2lm
IFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEx
MDAKKyNpZiBQTEFURk9STShNQUMpCiArIChOU0FycmF5ICopX3BhcnNlZENvb2tpZXNXaXRoUmVz
cG9uc2VIZWFkZXJGaWVsZHM6KE5TRGljdGlvbmFyeSAqKWhlYWRlckZpZWxkcyBmb3JVUkw6KE5T
VVJMICopYVVSTDsKICNlbmRpZgogKyAoTlNBcnJheSAqKV9jZjJuc0Nvb2tpZXM6KENGQXJyYXlS
ZWYpY2ZDb29raWVzOwpAQCAtMjgxLDExICsyNzUsOSBAQCBXVEZfRVhURVJOX0NfRU5ECiAjZW5k
aWYKIAogLy8gRklYTUU6IE1vdmUgK19zZXRTaGFyZWRIVFRQQ29va2llU3RvcmFnZTogaW50byB0
aGUgYWJvdmUgc2VjdGlvbiB1bmRlciAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykgd2hlbiBwb3Nz
aWJsZSAoc29vbikuCi0jaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkKIEBpbnRlcmZhY2UgTlNI
VFRQQ29va2llU3RvcmFnZSAoKQogKyAodm9pZClfc2V0U2hhcmVkSFRUUENvb2tpZVN0b3JhZ2U6
KE5TSFRUUENvb2tpZVN0b3JhZ2UgKilzdG9yYWdlOwogQGVuZAotI2VuZGlmCiAKIEBpbnRlcmZh
Y2UgTlNVUkxSZXNwb25zZSAoKQogLSAodm9pZClfc2V0TUlNRVR5cGU6KE5TU3RyaW5nICopdHlw
ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEku
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2cvQ29yZUdyYXBo
aWNzU1BJLmgJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nw
aS9jZy9Db3JlR3JhcGhpY3NTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDcgKzEwNCw3IEBA
IHR5cGVkZWYgdWludDMyX3QgQ0dGb250UmVuZGVyaW5nU3R5bGU7CiBlbnVtIHsKICAgICBrQ0dG
b250QW50aWFsaWFzaW5nU3R5bGVVbmZpbHRlcmVkID0gMCA8PCA3LAogICAgIGtDR0ZvbnRBbnRp
YWxpYXNpbmdTdHlsZUZpbHRlckxpZ2h0ID0gMSA8PCA3LAotI2lmIFBMQVRGT1JNKE1BQykgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKKyNpZiBQTEFURk9STShN
QUMpCiAgICAga0NHRm9udEFudGlhbGlhc2luZ1N0eWxlVW5maWx0ZXJlZEN1c3RvbURpbGF0aW9u
ID0gKDggPDwgNyksCiAjZW5kaWYKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9z
cGkvY29jb2EvTkVGaWx0ZXJTb3VyY2VTUEkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9zcGkvY29jb2EvTkVGaWx0ZXJTb3VyY2VTUEkuaAkocmV2aXNpb24gMjE5MDQ4
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL05FRmlsdGVyU291cmNlU1BJ
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDggKzIzLDYgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0jZGVmaW5lIEhBVkVfTU9ERVJOX05FX0ZJTFRFUl9TT1VS
Q0UgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDExMDApIHx8IFBMQVRGT1JNKElPUykKLQogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAK
ICNpbXBvcnQgPE5ldHdvcmtFeHRlbnNpb24vTkVGaWx0ZXJTb3VyY2UuaD4KQEAgLTU5LDggKzU3
LDYgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgTkVGaWx0ZXJTb3VyYwogQHByb3BlcnR5
IChyZWFkb25seSkgdWludDY0X3Qgc29ja2V0SWRlbnRpZmllcjsKIEBlbmQKIAotI2lmIEhBVkUo
TU9ERVJOX05FX0ZJTFRFUl9TT1VSQ0UpCi0KICNkZWZpbmUgTkVGaWx0ZXJTb3VyY2VPcHRpb25z
UGFnZURhdGEgQCJQYWdlRGF0YSIKICNkZWZpbmUgTkVGaWx0ZXJTb3VyY2VPcHRpb25zUmVkaXJl
Y3RVUkwgQCJSZWRpcmVjdFVSTCIKIApAQCAtNzksNiArNzUsNCBAQCB0eXBlZGVmIHZvaWQgKF5O
RUZpbHRlclNvdXJjZURlY2lzaW9uSGFuCiAjZW5kaWYKIEBlbmQKIAotI2VuZGlmCi0KICNlbmRp
ZiAvLyAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NwaS9jb2NvYS9OU1VSTENvbm5lY3Rpb25TUEkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvTlNVUkxDb25uZWN0aW9uU1BJLmgJKHJldmlzaW9u
IDIxOTA0OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9OU1VSTENvbm5l
Y3Rpb25TUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMzksMTAgKzM5LDYgQEAgdHlwZWRlZiBOU1VJ
bnRlZ2VyIFRpbWluZ0RhdGFDb2xsZWN0aW9uOwogQGludGVyZmFjZSBOU1VSTENvbm5lY3Rpb24g
KCkKICsgKENGUnVuTG9vcFJlZilyZXNvdXJjZUxvYWRlclJ1bkxvb3A7CiAtICh2b2lkKXNldERl
ZmVyc0NhbGxiYWNrczooQk9PTClkZWZlcnM7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMTAwCi0rICh2b2lkKV9zZXRDb2xsZWN0c1Rp
bWluZ0RhdGE6KEJPT0wpY29sbGVjdDsKLSsgKHZvaWQpX2NvbGxlY3RUaW1pbmdEYXRhV2l0aE9w
dGlvbnM6KFRpbWluZ0RhdGFDb2xsZWN0aW9uKW9wdGlvbnM7Ci0jZW5kaWYKIC0gKE5TRGljdGlv
bmFyeSAqKV90aW1pbmdEYXRhOwogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgJKHJldmlzaW9uIDIxOTA0OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEyNCw3ICsxMjQsNiBAQCB0eXBlZGVmIHN0cnVjdCBDQUNvbG9yTWF0cml4
IENBQ29sb3JNYXRyCiBAcHJvcGVydHkgKGNvcHkpIE5TU3RyaW5nICpuYW1lOwogQGVuZAogCi0j
aWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTEwMCkKIHR5cGVkZWYgZW51bSB7CiAgICAga0NBVHJhbnNhY3Rp
b25QaGFzZVByZUxheW91dCwKICAgICBrQ0FUcmFuc2FjdGlvblBoYXNlUHJlQ29tbWl0LApAQCAt
MTM0LDI2ICsxMzMsMTUgQEAgdHlwZWRlZiBlbnVtIHsKIEBpbnRlcmZhY2UgQ0FUcmFuc2FjdGlv
biAoKQogKyAodm9pZClhZGRDb21taXRIYW5kbGVyOih2b2lkKF4pKHZvaWQpKWJsb2NrIGZvclBo
YXNlOihDQVRyYW5zYWN0aW9uUGhhc2UpcGhhc2U7CiBAZW5kCi0jZW5kaWYKIAogQGludGVyZmFj
ZSBDQUxheWVySG9zdCA6IENBTGF5ZXIKIEBwcm9wZXJ0eSB1aW50MzJfdCBjb250ZXh0SWQ7CiBA
cHJvcGVydHkgQk9PTCBpbmhlcml0c1NlY3VyaXR5OwogQGVuZAogCi0jaWYgUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPCAxMDExMDAKLUBpbnRlcmZhY2Ug
Q0FTcHJpbmdBbmltYXRpb24gOiBDQUJhc2ljQW5pbWF0aW9uIAotQHByb3BlcnR5IENHRmxvYXQg
bWFzczsKLUBwcm9wZXJ0eSBDR0Zsb2F0IHN0aWZmbmVzczsKLUBwcm9wZXJ0eSBDR0Zsb2F0IGRh
bXBpbmc7Ci1AcHJvcGVydHkgQ0dGbG9hdCB2ZWxvY2l0eTsKLUBwcm9wZXJ0eSBDR0Zsb2F0IGlu
aXRpYWxWZWxvY2l0eTsKLUBlbmQKLSNlbHNlCiBAaW50ZXJmYWNlIENBU3ByaW5nQW5pbWF0aW9u
IChQcml2YXRlKQogQHByb3BlcnR5IENHRmxvYXQgdmVsb2NpdHk7CiBAZW5kCi0jZW5kaWYKIAog
I2VuZGlmIC8vIF9fT0JKQ19fCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9t
YWMvTlNTY3JvbGxpbmdJbnB1dEZpbHRlclNQSS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NwaS9tYWMvTlNTY3JvbGxpbmdJbnB1dEZpbHRlclNQSS5oCShyZXZpc2lv
biAyMTkwNDgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL05TU2Nyb2xsaW5n
SW5wdXRGaWx0ZXJTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTEwMAorI2lmIFBMQVRGT1JNKE1BQykKIAogI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCiAKQEAgLTM4LDQgKzM4LDQgQEAgQGludGVyZmFjZSBfTlNTY3JvbGxp
bmdQcmVkb21pbmFudEF4aXNGaQogCiAjZW5kaWYgLyogVVNFKEFQUExFX0lOVEVSTkFMX1NESykg
Ki8KIAotI2VuZGlmIC8qIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDExMDAgKi8KKyNlbmRpZiAvKiBQTEFURk9STShNQUMpICovCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL05TU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxh
dG9yU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9O
U1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvclNQSS5oCShyZXZpc2lvbiAyMTkwNDgpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL05TU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxh
dG9yU1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDggKzIzLDYgQEAKICAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotI2lmIEhBVkUoTlNTQ1JPTExJTkdfRklMVEVSUykKLQogI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCiAKICNpbXBvcnQgPEFwcEtpdC9OU1Njcm9sbGluZ01vbWVudHVtQ2FsY3Vs
YXRvcl9Qcml2YXRlLmg+CkBAIC00NSw1ICs0MywzIEBAIEBpbnRlcmZhY2UgX05TU2Nyb2xsaW5n
TW9tZW50dW1DYWxjdWxhdG8KIEBlbmQKIAogI2VuZGlmIC8qIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspICovCi0KLSNlbmRpZiAvKiBIQVZFKE5TU0NST0xMSU5HX0ZJTFRFUlMpICovCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL1RVQ2FsbFNQSS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9tYWMvVFVDYWxsU1BJLmgJKHJldmlzaW9uIDIx
OTA0OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9tYWMvVFVDYWxsU1BJLmgJKHdv
cmtpbmcgY29weSkKQEAgLTIzLDggKzIzLDYgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDEwMDAKLQogI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKICNpbXBvcnQgPG9iamMvcnVudGltZS5o
PgogCkBAIC0zNyw1ICszNSwzIEBAIEBpbnRlcmZhY2UgVFVDYWxsIChTdHJpbmdzKQogCiBTT0ZU
X0xJTktfUFJJVkFURV9GUkFNRVdPUktfT1BUSU9OQUwoVGVsZXBob255VXRpbGl0aWVzKQogU09G
VF9MSU5LX0NMQVNTKFRlbGVwaG9ueVV0aWxpdGllcywgVFVDYWxsKQotCi0jZW5kaWYKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0JKHJldmlzaW9uIDIx
OTA0OCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQkod29y
a2luZyBjb3B5KQpAQCAtMTA3NCwxMiArMTA3NCw3IEBAIE5TTGV2ZWxJbmRpY2F0b3JDZWxsKiBS
ZW5kZXJUaGVtZU1hYzo6bGUKICAgICB9CiAKICAgICBbY2VsbCBzZXRMZXZlbEluZGljYXRvclN0
eWxlOmxldmVsSW5kaWNhdG9yU3R5bGVGb3Ioc3R5bGUuYXBwZWFyYW5jZSgpKV07Ci0gICAgLy8g
RklYTUU6IFJlbW92ZSB0aGUgY2FsbCB0byBzZXRCYXNlV3JpdGluZ0RpcmVjdGlvbiBvbmNlIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwIGlzIGFsd2F5cyB0cnVlLgot
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCi0gICAgW2NlbGwg
c2V0VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbjogc3R5bGUuaXNMZWZ0VG9SaWdodERpcmVj
dGlvbigpID8gTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uTGVmdFRvUmlnaHQgOiBOU1Vz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25SaWdodFRvTGVmdF07Ci0jZWxzZQotICAgIFtjZWxs
IHNldEJhc2VXcml0aW5nRGlyZWN0aW9uOnN0eWxlLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/
IE5TV3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNXcml0aW5nRGlyZWN0aW9uUmlnaHRU
b0xlZnRdOwotI2VuZGlmCisgICAgW2NlbGwgc2V0VXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
bjpzdHlsZS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBOU1VzZXJJbnRlcmZhY2VMYXlvdXRE
aXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvblJpZ2h0
VG9MZWZ0XTsKICAgICBbY2VsbCBzZXRNaW5WYWx1ZTplbGVtZW50LT5taW4oKV07CiAgICAgW2Nl
bGwgc2V0TWF4VmFsdWU6ZWxlbWVudC0+bWF4KCldOwogICAgIFtjZWxsIHNldE9iamVjdFZhbHVl
OkAodmFsdWUpXTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUb09URkZvbnRDb252ZXJz
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVG9PVEZGb250Q29u
dmVyc2lvbi5jcHAJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
b09URkZvbnRDb252ZXJzaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyMywxMiArMTEyMyw2
IEBAIHZvaWQgU1ZHVG9PVEZGb250Q29udmVydGVyOjphcHBlbmRLRVJOVGEKICAgICBBU1NFUlRf
VU5VU0VEKHNpemVPZkhvcml6b250YWxTdWJ0YWJsZSwgc3VidGFibGVzT2Zmc2V0ICsgc2l6ZU9m
SG9yaXpvbnRhbFN1YnRhYmxlID09IG1fcmVzdWx0LnNpemUoKSk7CiAgICAgc2l6ZV90IHNpemVP
ZlZlcnRpY2FsU3VidGFibGUgPSBhcHBlbmRLRVJOU3VidGFibGU8U1ZHVktlcm5FbGVtZW50Pigm
U1ZHVktlcm5FbGVtZW50OjpidWlsZFZlcnRpY2FsS2VybmluZ1BhaXIsIDApOwogICAgIEFTU0VS
VF9VTlVTRUQoc2l6ZU9mVmVydGljYWxTdWJ0YWJsZSwgc3VidGFibGVzT2Zmc2V0ICsgc2l6ZU9m
SG9yaXpvbnRhbFN1YnRhYmxlICsgc2l6ZU9mVmVydGljYWxTdWJ0YWJsZSA9PSBtX3Jlc3VsdC5z
aXplKCkpOwotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEIDw9IDEwMTAwMAotICAgIC8vIFdvcmsgYXJvdW5kIGEgYnVnIGluIEFwcGxlJ3MgZm9u
dCBwYXJzZXIgYnkgYWRkaW5nIHNvbWUgcGFkZGluZyBieXRlcy4gPHJkYXI6Ly9wcm9ibGVtLzE4
NDAxOTAxPgotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNjsgKytpKQotICAgICAgICBtX3Jlc3Vs
dC5hcHBlbmQoMCk7Ci0jZW5kaWYKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFY+CkBAIC0xNDM4
LDEyICsxNDMyLDYgQEAgU1ZHVG9PVEZGb250Q29udmVydGVyOjpTVkdUb09URkZvbnRDb252ZQog
CiAgICAgbV9ib3VuZGluZ0JveCA9IGJvdW5kaW5nQm94LnZhbHVlX29yKEZsb2F0UmVjdCgpKTsK
IAotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8
PSAxMDEwMDAKLSAgICAvLyA8cmRhcjovL3Byb2JsZW0vMjAwODYyMjM+IENvY29hIGhhcyBhIGJ1
ZyB3aGVyZSBnbHlwaCBib3VuZGluZyBib3hlcyBhcmUgbm90IGNvcnJlY3RseSByZXNwZWN0ZWQg
Zm9yIGZydXN0dW0gY3VsbGluZy4gV29yayBhcm91bmQgdGhpcyBieQotICAgIC8vIGluZmxhdGlu
ZyB0aGUgZm9udCdzIGJvdW5kaW5nIGJveAotICAgIG1fYm91bmRpbmdCb3guZXh0ZW5kKEZsb2F0
UG9pbnQoMCwgMCkpOwotI2VuZGlmCi0KICAgICBhcHBlbmRMaWdhdHVyZUdseXBocygpOwogCiAg
ICAgaWYgKG1fZ2x5cGhzLnNpemUoKSA+IHN0ZDo6bnVtZXJpY19saW1pdHM8R2x5cGg+OjptYXgo
KSkgewpJbmRleDogU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTkwNDgpCisrKyBT
b3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTctMDctMDEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKworICAg
ICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gKE9PUFMhKS4KKyAgICAgICAgTmVlZCB0aGUg
YnVnIFVSTCAoT09QUyEpLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKyAgICAgICAgKiBDb25m
aWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlv
bnMvVmVyc2lvbi54Y2NvbmZpZzoKKwogMjAxNy0wNi0zMCAgSm9zZXBoIFBlY29yYXJvICA8cGVj
b3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFR5cGUgdG9rZW4gYmFj
a2dyb3VuZCBjb2xvciBpbiBkZWJ1Z2dlciBsb29rcyBwb29yCkluZGV4OiBTb3VyY2UvV2ViSW5z
cGVjdG9yVUkvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwkocmV2aXNpb24g
MjE5MDQ4KQorKysgU291cmNlL1dlYkluc3BlY3RvclVJL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNj
b25maWcJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDYgQEAgRU5HSU5FRVJJTkdfQlVJTERf
REVGSU5FU18xID0gRU5HSU5FRVJJTgogU1VQUE9SVEVEX1BMQVRGT1JNUyA9IGlwaG9uZW9zIGlw
aG9uZXNpbXVsYXRvciBtYWNvc3ggdHZvcyB0dnNpbXVsYXRvciB3YXRjaG9zIHdhdGNoc2ltdWxh
dG9yOwogCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VUX01BQ19PU19Y
X1ZFUlNJT05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6aWRlbnRpZmll
cikpOwotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTAgPSAxMDEwMDA7CiBUQVJHRVRf
TUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMSA9IDEwMTEwMDsKIFRBUkdFVF9NQUNfT1NfWF9WRVJT
SU9OX01BSk9SXzEyID0gMTAxMjAwOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTMg
PSAxMDEzMDA7CkluZGV4OiBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ29uZmlndXJhdGlvbnMvRGVi
dWdSZWxlYXNlLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9D
b25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkKKysr
IFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25m
aWcJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw2IEBAIE9OTFlfQUNUSVZFX0FSQ0ggPSBZRVM7
CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoTUFDX09TX1hfVkVSU0lPTl9NQUpP
Uik7CiAKIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9ICQoTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUXyQoUExBVEZPUk1fTkFNRSlfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOwot
TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDEwMDAgPSAxMC4xMDsKIE1BQ09TWF9E
RVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMTAwID0gMTAuMTE7CiBNQUNPU1hfREVQTE9ZTUVO
VF9UQVJHRVRfbWFjb3N4XzEwMTIwMCA9IDEwLjEyOwogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VU
X21hY29zeF8xMDEzMDAgPSAxMC4xMzsKSW5kZXg6IFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Db25m
aWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgp
CisrKyBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZp
Zwkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDYgQEAgRlVMTF9WRVJTSU9OID0gJChNQUpPUl9W
RVJTSU9OKS4kKE1JTk9SXwogLy8gVGhlIHN5c3RlbSB2ZXJzaW9uIHByZWZpeCBpcyBiYXNlZCBv
biB0aGUgY3VycmVudCBzeXN0ZW0gdmVyc2lvbi4KIFNZU1RFTV9WRVJTSU9OX1BSRUZJWFtzZGs9
aXBob25lKl0gPSA4OwogU1lTVEVNX1ZFUlNJT05fUFJFRklYID0gJChTWVNURU1fVkVSU0lPTl9Q
UkVGSVhfJChQTEFURk9STV9OQU1FKV8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7
Ci1TWVNURU1fVkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEwMTAwMCA9IDEwOwogU1lTVEVNX1ZFUlNJ
T05fUFJFRklYX21hY29zeF8xMDExMDAgPSAxMTsKIFNZU1RFTV9WRVJTSU9OX1BSRUZJWF9tYWNv
c3hfMTAxMjAwID0gMTI7CiBTWVNURU1fVkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEwMTMwMCA9IDEz
OwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTE0IEBACisyMDE3LTA3LTAxICBEYW4g
QmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2Ny
aXB0aW9uIChPT1BTISkuCisgICAgICAgIE5lZWQgdGhlIGJ1ZyBVUkwgKE9PUFMhKS4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRp
b25zL0Jhc2UueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54
Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9CYXNlWFBDU2VydmljZS54Y2NvbmZp
ZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWc6CisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICog
Q29uZmlndXJhdGlvbnMvTmV0d29ya1NlcnZpY2UueGNjb25maWc6CisgICAgICAgICogQ29uZmln
dXJhdGlvbnMvUGx1Z2luU2VydmljZS4zMi54Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0
aW9ucy9QbHVnaW5TZXJ2aWNlLjY0LnhjY29uZmlnOgorICAgICAgICAqIENvbmZpZ3VyYXRpb25z
L1ZlcnNpb24ueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29udGVudFNl
cnZpY2UueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmln
OgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5EYXRhYmFz
ZXMuc2IuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vy
dmljZS9OZXR3b3JrU2VydmljZS9JbmZvLU9TWC0xMC45LTEwLjEwLnBsaXN0OiBSZW1vdmVkLgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6
OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a1Byb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnBsYXRm
b3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzQ29jb2EpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluOgorICAgICAgICAq
IFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmg6CisgICAgICAgICogUGxhdGZvcm0vSVBDL21hYy9D
b25uZWN0aW9uTWFjLm1tOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpwbGF0Zm9ybUludmFs
aWRhdGUpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpwbGF0Zm9ybUluaXRpYWxpemUpOgor
ICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpvcGVuKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlv
bjo6ZXhjZXB0aW9uU291cmNlRXZlbnRIYW5kbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6
Q29ubmVjdGlvbjo6c2V0U2hvdWxkQ2xvc2VDb25uZWN0aW9uT25NYWNoRXhjZXB0aW9ucyk6IERl
bGV0ZWQuCisgICAgICAgICogUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQuaDoKKyAg
ICAgICAgKiBQbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRmVuY2VQb3J0KToKKyAgICAgICAgKiBQ
bHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZS4zMi02
NC0xMC45LTEwLjEwLkluZm8ucGxpc3Q6IFJlbW92ZWQuCisgICAgICAgICogUGx1Z2luUHJvY2Vz
cy9tYWMvUGx1Z2luQ29udHJvbGxlclByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQbHVn
aW5Db250cm9sbGVyUHJveHk6OnVwZGF0ZUxheWVySG9zdGluZ0NvbnRleHQpOgorICAgICAgICAq
IFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NTaGltLm1tOgorICAgICAgICAqIFBsdWdp
blByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQucGx1Z2luLWNvbW1vbi5zYi5pbjoKKyAgICAg
ICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzLmg6CisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTmV0
c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTW9kdWxlTWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojpn
ZXRQbHVnaW5JbmZvRnJvbVByb3BlcnR5TGlzdHMpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2Fw
ZVBsdWdpbk1vZHVsZTo6Z2V0UGx1Z2luSW5mbyk6CisgICAgICAgIChXZWJLaXQ6OmNvbnRlbnRz
T2ZQcm9wZXJ0eUxpc3RBdFVSTCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmdldE1JTUVU
eXBlc0Zyb21QbHVnaW5CdW5kbGUpOiBEZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0
OjpQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAg
KiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFj
L0NoaWxkUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzOjpzZXRT
aGFyZWRIVFRQQ29va2llU3RvcmFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAoZml4VXBC
b3RjaGVkUGFnZVVJQ2xpZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ2hpbGRQ
cm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nlc3NQcm94eTo6ZGlk
RmluaXNoTGF1bmNoaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5p
dGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxh
dGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUG9vbDo6cmVzZXRIU1RTSG9zdHNBZGRlZEFmdGVyRGF0ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlTGF5ZXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c3RhcnRXaW5kb3dEcmFnKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5n
QXJlYVByb3h5Ojp3YWl0Rm9yUG9zc2libGVHZW9tZXRyeVVwZGF0ZSk6IERlbGV0ZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplUGx1Z2luUHJvY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6Y3JlYXRlUHJvcGVydHlM
aXN0RmlsZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0VG9wQ29udGVudEluc2V0KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6cm9vdFZpZXdUb1dpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnRJbXBsOjpzdGFydFdpbmRvd0RyYWcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
UmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdl
Ykluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZyk6CisgICAgICAgICogVUlQ
cm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tOgor
ICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpjcmVh
dGVGZW5jZSk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
UHJveHk6OndhaXRGb3JQb3NzaWJsZUdlb21ldHJ5VXBkYXRlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJJbnNwZWN0b3JQcm94eTo6Y3JlYXRlRnJvbnRlbmRXaW5kb3cpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TdGFydFdpbmRvd0RyYWcpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KToKKyAgICAgICAgKiBXZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlL0luZm8tT1NYLTEwLjktMTAu
MTAucGxpc3Q6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tOgorICAgICAgICAo
V2ViS2l0OjphZGRBbmltYXRpb25Ub0xheWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW06CisgICAg
ICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpmbHVzaExheWVycyk6
CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVH
ZW9tZXRyeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW46CisK
IDIwMTctMDYtMzAgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkIG1hYyBidWlsZCBmaXguCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9D
b25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJj
ZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAg
LTc4LDcgKzc4LDYgQEAgUFJFQklORElORyA9IE5POwogV0FSTklOR19DRkxBR1MgPSAtV2FsbCAt
V2V4dHJhIC1XY2hhci1zdWJzY3JpcHRzIC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0LXNlY3VyaXR5
IC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVy
biAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5k
YW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3Jz
IC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQt
ZmFsbHRocm91Z2g7CiAKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChUQVJHRVRf
TUFDX09TX1hfVkVSU0lPTl9NQUpPUiQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUOnN1ZmZpeDpp
ZGVudGlmaWVyKSk7Ci1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMCA9IDEwMTAwMDsK
IFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzExID0gMTAxMTAwOwogVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTUFKT1JfMTIgPSAxMDEyMDA7CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9N
QUpPUl8xMyA9IDEwMTMwMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0Jh
c2VUYXJnZXQueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ29uZmlndXJh
dGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dl
YktpdDIvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpA
QCAtOTIsMTEgKzkyLDYgQEAgV0tfTUFOVUFMX1NBTkRCT1hJTkdfRU5BQkxFRFtzZGs9bWFjb3N4
KgogV0tfTUFOVUFMX1NBTkRCT1hJTkdfREVGSU5FUyA9ICQoV0tfTUFOVUFMX1NBTkRCT1hJTkdf
REVGSU5FU18kKFdLX01BTlVBTF9TQU5EQk9YSU5HX0VOQUJMRUQpKTsKIFdLX01BTlVBTF9TQU5E
Qk9YSU5HX0RFRklORVNfWUVTID0gRU5BQkxFX01BTlVBTF9TQU5EQk9YSU5HOwogCi1XS19ET05U
X0xJTktfU0hJTSA9ICQoV0tfRE9OVF9MSU5LX1NISU1fJChUQVJHRVRfTUFDX09TX1hfVkVSU0lP
Tl9NQUpPUikpOwotV0tfRE9OVF9MSU5LX1NISU1fMTAxMDAwID0gWUVTOwotCi1XS19MSU5LX1NI
SU1bc2RrPW1hY29zeCpdID0gJChXS19OT1RfJChXS19ET05UX0xJTktfU0hJTSkpOwotCiBXS19F
TVBUWV8gPSBZRVM7CiBXS19OT1RfID0gWUVTOwogV0tfTk9UX1lFUyA9IE5POwpJbmRleDogU291
cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvQmFzZVhQQ1NlcnZpY2UueGNjb25maWcKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvQmFzZVhQQ1NlcnZpY2UueGNj
b25maWcJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25z
L0Jhc2VYUENTZXJ2aWNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC02Myw5ICs2Myw2IEBA
IENPREVfU0lHTl9FTlRJVExFTUVOVFNfSU9TX01BTlVBTF9TQU5EQk8KIENPREVfU0lHTl9FTlRJ
VExFTUVOVFNfSU9TX01BTlVBTF9TQU5EQk9YSU5HX05PID0gQ29uZmlndXJhdGlvbnMvJChXS19Y
UENfU0VSVklDRV9JT1NfRU5USVRMRU1FTlRTX0JBU0UpLmVudGl0bGVtZW50czsKIENPREVfU0lH
Tl9FTlRJVExFTUVOVFNfSU9TX01BTlVBTF9TQU5EQk9YSU5HX1lFUyA9ICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyLyQoV0tfWFBDX1NFUlZJQ0VfSU9TX0VOVElU
TEVNRU5UU19CQVNFKS1uby1zYW5kYm94LmVudGl0bGVtZW50czsKIAotV0tfWFBDX1NFUlZJQ0Vf
SU5GT1BMSVNUX1NVRkZJWFtzZGs9bWFjb3N4Kl0gPSAkKFdLX1hQQ19TRVJWSUNFX0lORk9QTElT
VF9TVUZGSVhfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOwotV0tfWFBDX1NFUlZJ
Q0VfSU5GT1BMSVNUX1NVRkZJWF8xMDEwMDAgPSAtMTAuOS0xMC4xMDsKLQogV0tfWFBDX1NFUlZJ
Q0VfSU5TRVJUX0xJQlJBUklFU19ESVIgPSAkKFdLX1hQQ19TRVJWSUNFX0lOU0VSVF9MSUJSQVJJ
RVNfRElSXyQoV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLUykpOwogV0tfWFBDX1NFUlZJQ0VfSU5T
RVJUX0xJQlJBUklFU19ESVJfID0gJChXS19YUENfU0VSVklDRV9JTlNFUlRfTElCUkFSSUVTX0RJ
Ul9OTyk7CiBXS19YUENfU0VSVklDRV9JTlNFUlRfTElCUkFSSUVTX0RJUl9OTyA9ICQoV0VCS0lU
X0ZSQU1FV09SS1NfRElSKS9XZWJLaXQuZnJhbWV3b3JrL0ZyYW1ld29ya3M7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmln
CShyZXZpc2lvbiAyMTkwNDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9EZWJ1
Z1JlbGVhc2UueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAgT05MWV9B
Q1RJVkVfQVJDSCA9IFlFUzsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChNQUNf
T1NfWF9WRVJTSU9OX01BSk9SKTsKIAogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gJChNQUNP
U1hfREVQTE9ZTUVOVF9UQVJHRVRfJChQTEFURk9STV9OQU1FKV8kKFRBUkdFVF9NQUNfT1NfWF9W
RVJTSU9OX01BSk9SKSk7Ci1NQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTAwMCA9
IDEwLjEwOwogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDExMDAgPSAxMC4xMTsK
IE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMjAwID0gMTAuMTI7CiBNQUNPU1hf
REVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTMwMCA9IDEwLjEzOwpAQCAtNDIsNyArNDEsNiBA
QCBERUJVR19JTkZPUk1BVElPTl9GT1JNQVQgPSBkd2FyZjsKIFdFQktJVF9TWVNURU1fSU5URVJG
QUNFX0xJQlJBUllbc2RrPWlwaG9uZW9zKl0gPSBXZWJLaXRTeXN0ZW1JbnRlcmZhY2VJT1NEZXZp
Y2UkKFdLX1RBUkdFVF9JT1NfVkVSU0lPTl9NQUpPUik7CiBXRUJLSVRfU1lTVEVNX0lOVEVSRkFD
RV9MSUJSQVJZW3Nkaz1pcGhvbmVzaW11bGF0b3IqXSA9IFdlYktpdFN5c3RlbUludGVyZmFjZUlP
U1NpbXVsYXRvciQoV0tfVEFSR0VUX0lPU19WRVJTSU9OX01BSk9SKTsKIFdFQktJVF9TWVNURU1f
SU5URVJGQUNFX0xJQlJBUllbc2RrPW1hY29zeCpdID0gJChXRUJLSVRfU1lTVEVNX0lOVEVSRkFD
RV9MSUJSQVJZX21hY29zeF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7Ci1XRUJL
SVRfU1lTVEVNX0lOVEVSRkFDRV9MSUJSQVJZX21hY29zeF8xMDEwMDAgPSBXZWJLaXRTeXN0ZW1J
bnRlcmZhY2VZb3NlbWl0ZTsKIFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllfbWFjb3N4
XzEwMTEwMCA9IFdlYktpdFN5c3RlbUludGVyZmFjZUVsQ2FwaXRhbjsKIFdFQktJVF9TWVNURU1f
SU5URVJGQUNFX0xJQlJBUllfbWFjb3N4XzEwMTIwMCA9IFdlYktpdFN5c3RlbUludGVyZmFjZU9T
WDEwLjEyOwogV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfMTAxMzAwID0g
JChXRUJLSVRfU1lTVEVNX0lOVEVSRkFDRV9MSUJSQVJZX21hY29zeF8xMDEyMDApOwpJbmRleDog
U291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMSArMzIs
OSBAQAogLy8gU2V0IGFueSBFTkFCTEVfRkVBVFVSRV9OQU1FIG1hY3JvIHRvIGFuIGVtcHR5IHN0
cmluZyB0byBkaXNhYmxlIHRoYXQgZmVhdHVyZS4KIAogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05f
TEVTU19USEFOXzEwMTIwMDAgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8x
MDEyMDAwXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKLVRBUkdFVF9NQUNfT1Nf
WF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEyMDAwXzEwMTAwMCA9IFlFUzsKIFRBUkdFVF9NQUNfT1Nf
WF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEyMDAwXzEwMTEwMCA9IFlFUzsKIAogVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDAgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9O
X0xFU1NfVEhBTl8xMDEzMDAwXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKLVRB
UkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwXzEwMTAwMCA9IFlFUzsKIFRB
UkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwXzEwMTEwMCA9IFlFUzsKIFRB
UkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwXzEwMTIwMCA9IFlFUzsKIApJ
bmRleDogU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvTmV0d29ya1NlcnZpY2UueGNjb25m
aWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvTmV0d29ya1Nl
cnZpY2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQyL0NvbmZp
Z3VyYXRpb25zL05ldHdvcmtTZXJ2aWNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3
ICsyOCw3IEBAIFdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRSA9IE4KIFBST0RV
Q1RfTkFNRSA9IGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZzsKIFBST0RVQ1RfQlVORExFX0lE
RU5USUZJRVIgPSAkKFBST0RVQ1RfTkFNRSk7CiBJTkZPUExJU1RfRklMRVtzZGs9aXBob25lKl0g
PSBOZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNl
L0luZm8taU9TLnBsaXN0OwotSU5GT1BMSVNUX0ZJTEVbc2RrPW1hY29zeCpdID0gTmV0d29ya1By
b2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZS9JbmZvLU9TWCQo
V0tfWFBDX1NFUlZJQ0VfSU5GT1BMSVNUX1NVRkZJWCkucGxpc3Q7CitJTkZPUExJU1RfRklMRVtz
ZGs9bWFjb3N4Kl0gPSBOZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05l
dHdvcmtTZXJ2aWNlL0luZm8tT1NYLnBsaXN0OwogCi1PVEhFUl9MREZMQUdTID0gJChpbmhlcml0
ZWQpICQoT1RIRVJfTERGTEFHU19WRVJTSU9ORURfRlJBTUVXT1JLX1BBVEgpICQoT1RIRVJfTERG
TEFHU19TSElNXyQoV0tfTElOS19TSElNKSkgJChXS19SRUxPQ0FUQUJMRV9GUkFNRVdPUktTX0xE
RkxBR1MpOwotT1RIRVJfTERGTEFHU19TSElNX1lFUyA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9T
ZWNJdGVtU2hpbS5keWxpYjsKK09USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChPVEhFUl9M
REZMQUdTX1ZFUlNJT05FRF9GUkFNRVdPUktfUEFUSCkgJChXS19SRUxPQ0FUQUJMRV9GUkFNRVdP
UktTX0xERkxBR1MpOworT1RIRVJfTERGTEFHU1tzZGs9bWFjb3N4Kl0gPSAkKGluaGVyaXRlZCkg
JChCVUlMVF9QUk9EVUNUU19ESVIpL1NlY0l0ZW1TaGltLmR5bGliOwpJbmRleDogU291cmNlL1dl
YktpdDIvQ29uZmlndXJhdGlvbnMvUGx1Z2luU2VydmljZS4zMi54Y2NvbmZpZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9QbHVnaW5TZXJ2aWNlLjMyLnhjY29u
ZmlnCShyZXZpc2lvbiAyMTkwNDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9Q
bHVnaW5TZXJ2aWNlLjMyLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMSArMjcsMTAg
QEAgVkFMSURfQVJDSFNfbWFjb3N4X05PID0gaTM4NjsKIAogUFJPRFVDVF9OQU1FID0gY29tLmFw
cGxlLldlYktpdC5QbHVnaW4uMzI7CiBQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSID0gJChQUk9E
VUNUX05BTUUpOwotSU5GT1BMSVNUX0ZJTEUgPSBQbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZS4zMi02NCQoV0tfWFBDX1NFUlZJQ0VfSU5GT1BMSVNU
X1NVRkZJWCkuSW5mby5wbGlzdDsKK0lORk9QTElTVF9GSUxFID0gUGx1Z2luUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2UuMzItNjQuSW5mby5wbGlzdDsKIAog
T1RIRVJfTERGTEFHUyA9ICQoT1RIRVJfTERGTEFHUykgJChPVEhFUl9MREZMQUdTX1BMQVRGT1JN
KSAkKE9USEVSX0xERkxBR1NfVkVSU0lPTkVEX0ZSQU1FV09SS19QQVRIKSAkKFdLX1JFTE9DQVRB
QkxFX0ZSQU1FV09SS1NfTERGTEFHUyk7Ci1PVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1tYWNv
c3gqXSA9IC1mcmFtZXdvcmsgQXBwS2l0ICQoT1RIRVJfTERGTEFHU19TSElNXyQoV0tfTElOS19T
SElNKSk7Ci1PVEhFUl9MREZMQUdTX1NISU1fWUVTID0gJChCVUlMVF9QUk9EVUNUU19ESVIpL1Bs
dWdpblByb2Nlc3NTaGltLmR5bGliOworT1RIRVJfTERGTEFHU19QTEFURk9STVtzZGs9bWFjb3N4
Kl0gPSAtZnJhbWV3b3JrIEFwcEtpdCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvUGx1Z2luUHJvY2Vz
c1NoaW0uZHlsaWI7CiAKIENPREVfU0lHTl9FTlRJVExFTUVOVFMgPSBDb25maWd1cmF0aW9ucy9Q
bHVnaW5TZXJ2aWNlLmVudGl0bGVtZW50czsKIApJbmRleDogU291cmNlL1dlYktpdDIvQ29uZmln
dXJhdGlvbnMvUGx1Z2luU2VydmljZS42NC54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9Db25maWd1cmF0aW9ucy9QbHVnaW5TZXJ2aWNlLjY0LnhjY29uZmlnCShyZXZpc2lv
biAyMTkwNDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9QbHVnaW5TZXJ2aWNl
LjY0LnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMSArMjcsMTAgQEAgVkFMSURfQVJD
SFNfbWFjb3N4X05PID0geDg2XzY0OwogCiBQUk9EVUNUX05BTUUgPSBjb20uYXBwbGUuV2ViS2l0
LlBsdWdpbi42NDsKIFBST0RVQ1RfQlVORExFX0lERU5USUZJRVIgPSAkKFBST0RVQ1RfTkFNRSk7
Ci1JTkZPUExJU1RfRklMRSA9IFBsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vydmlj
ZS9QbHVnaW5TZXJ2aWNlLjMyLTY0JChXS19YUENfU0VSVklDRV9JTkZPUExJU1RfU1VGRklYKS5J
bmZvLnBsaXN0OworSU5GT1BMSVNUX0ZJTEUgPSBQbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZS4zMi02NC5JbmZvLnBsaXN0OwogCiBPVEhFUl9MREZM
QUdTID0gJChPVEhFUl9MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk0pICQoT1RIRVJf
TERGTEFHU19WRVJTSU9ORURfRlJBTUVXT1JLX1BBVEgpICQoV0tfUkVMT0NBVEFCTEVfRlJBTUVX
T1JLU19MREZMQUdTKTsKLU9USEVSX0xERkxBR1NfUExBVEZPUk1bc2RrPW1hY29zeCpdID0gLWZy
YW1ld29yayBBcHBLaXQgJChPVEhFUl9MREZMQUdTX1NISU1fJChXS19MSU5LX1NISU0pKTsKLU9U
SEVSX0xERkxBR1NfU0hJTV9ZRVMgPSAkKEJVSUxUX1BST0RVQ1RTX0RJUikvUGx1Z2luUHJvY2Vz
c1NoaW0uZHlsaWI7CitPVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1tYWNvc3gqXSA9IC1mcmFt
ZXdvcmsgQXBwS2l0ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9QbHVnaW5Qcm9jZXNzU2hpbS5keWxp
YjsKIAogQ09ERV9TSUdOX0VOVElUTEVNRU5UUyA9IENvbmZpZ3VyYXRpb25zL1BsdWdpblNlcnZp
Y2UuZW50aXRsZW1lbnRzOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9W
ZXJzaW9uLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRp
b25zL1ZlcnNpb24ueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQy
L0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcg
KzM1LDYgQEAgU0hPUlRfVkVSU0lPTl9TVFJJTkcgPSAkKFNIT1JUX1ZFUlNJT05fUwogLy8gVGhl
IHN5c3RlbSB2ZXJzaW9uIHByZWZpeCBpcyBiYXNlZCBvbiB0aGUgY3VycmVudCBzeXN0ZW0gdmVy
c2lvbi4KIFNZU1RFTV9WRVJTSU9OX1BSRUZJWFtzZGs9aXBob25lKl0gPSA4OwogU1lTVEVNX1ZF
UlNJT05fUFJFRklYID0gJChTWVNURU1fVkVSU0lPTl9QUkVGSVhfJChQTEFURk9STV9OQU1FKV8k
KFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7Ci1TWVNURU1fVkVSU0lPTl9QUkVGSVhf
bWFjb3N4XzEwMTAwMCA9IDEwOwogU1lTVEVNX1ZFUlNJT05fUFJFRklYX21hY29zeF8xMDExMDAg
PSAxMTsKIFNZU1RFTV9WRVJTSU9OX1BSRUZJWF9tYWNvc3hfMTAxMjAwID0gMTI7CiBTWVNURU1f
VkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEwMTMwMCA9IDEzOwpJbmRleDogU291cmNlL1dlYktpdDIv
Q29uZmlndXJhdGlvbnMvV2ViQ29udGVudFNlcnZpY2UueGNjb25maWcKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvV2ViQ29udGVudFNlcnZpY2UueGNjb25maWcJ
KHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1dlYkNv
bnRlbnRTZXJ2aWNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMSArMzIsMTAgQEAg
T1RIRVJfQ09ERV9TSUdOX0ZMQUdTW3Nkaz1tYWNvc3gqXSA9ICQoVwogUFJPRFVDVF9OQU1FID0g
Y29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50OwogUFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUiA9
ICQoUFJPRFVDVF9OQU1FKTsKIElORk9QTElTVF9GSUxFW3Nkaz1pcGhvbmUqXSA9IFdlYlByb2Nl
c3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9JbmZvLWlPUy5w
bGlzdDsKLUlORk9QTElTVF9GSUxFW3Nkaz1tYWNvc3gqXSA9IFdlYlByb2Nlc3MvRW50cnlQb2lu
dC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2VydmljZS9JbmZvLU9TWCQoV0tfWFBDX1NFUlZJ
Q0VfSU5GT1BMSVNUX1NVRkZJWCkucGxpc3Q7CitJTkZPUExJU1RfRklMRVtzZGs9bWFjb3N4Kl0g
PSBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2Uv
SW5mby1PU1gucGxpc3Q7CiAKIE9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChPVEhFUl9M
REZMQUdTX1ZFUlNJT05FRF9GUkFNRVdPUktfUEFUSF8kKFdLX1dFQkNPTlRFTlRfU0VSVklDRV9O
RUVEU19WRVJTSU9ORURfRlJBTUVXT1JLX1BBVEhfTERGTEFHKSkgJChPVEhFUl9MREZMQUdTX1BM
QVRGT1JNKSAkKFdLX1JFTE9DQVRBQkxFX0ZSQU1FV09SS1NfTERGTEFHUyk7Ci1PVEhFUl9MREZM
QUdTX1BMQVRGT1JNW3Nkaz1tYWNvc3gqXSA9IC1mcmFtZXdvcmsgQXBwS2l0ICQoT1RIRVJfTERG
TEFHU19TSElNXyQoV0tfTElOS19TSElNKSk7Ci1PVEhFUl9MREZMQUdTX1NISU1fWUVTID0gJChC
VUlMVF9QUk9EVUNUU19ESVIpL1dlYlByb2Nlc3NTaGltLmR5bGliOworT1RIRVJfTERGTEFHU19Q
TEFURk9STVtzZGs9bWFjb3N4Kl0gPSAtZnJhbWV3b3JrIEFwcEtpdCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvV2ViUHJvY2Vzc1NoaW0uZHlsaWI7CiAKIFdLX1dFQkNPTlRFTlRfU0VSVklDRV9ORUVE
U19YUENfRE9NQUlOX0VYVEVOU0lPTl9FTlRJVExFTUVOVCA9ICQoV0tfV0VCQ09OVEVOVF9TRVJW
SUNFX05FRURTX1hQQ19ET01BSU5fRVhURU5TSU9OX0VOVElUTEVNRU5UXyQoV0tfRU1QVFlfJChX
S19XRUJDT05URU5UX1NFUlZJQ0VfTkVFRFNfWFBDX0RPTUFJTl9FWFRFTlNJT05fRU5USVRMRU1F
TlQpKSk7CiBXS19XRUJDT05URU5UX1NFUlZJQ0VfTkVFRFNfWFBDX0RPTUFJTl9FWFRFTlNJT05f
RU5USVRMRU1FTlRfID0gJChXS19XRUJDT05URU5UX1NFUlZJQ0VfTkVFRFNfWFBDX0RPTUFJTl9F
WFRFTlNJT05fRU5USVRMRU1FTlRfTk8pOwpJbmRleDogU291cmNlL1dlYktpdDIvQ29uZmlndXJh
dGlvbnMvV2ViS2l0LnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NvbmZp
Z3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dl
YktpdDIvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC03
NSw3ICs3NSw2IEBAIEVYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTW3Nkaz1pcGhvbmUqXSAKIElO
U1RBTExIRFJTX1NDUklQVF9QSEFTRSA9IFlFUzsKIAogV0tfRlJBTUVXT1JLX0hFQURFUl9QT1NU
UFJPQ0VTU0lOR19ESVNBQkxFRFtzZGs9bWFjb3N4Kl0gPSAkKFdLX0ZSQU1FV09SS19IRUFERVJf
UE9TVFBST0NFU1NJTkdfRElTQUJMRURfbWFjb3N4XyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05f
TUFKT1IpKTsKLVdLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURfbWFj
b3N4XzEwMTAwMCA9IFlFUzsKIFdLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElT
QUJMRURfbWFjb3N4XzEwMTEwMCA9IFlFUzsKIFdLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NF
U1NJTkdfRElTQUJMRURfbWFjb3N4XzEwMTIwMCA9IFlFUzsKIApJbmRleDogU291cmNlL1dlYktp
dDIvRGF0YWJhc2VQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlcy5zYi5pbgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvbWFjL2NvbS5hcHBs
ZS5XZWJLaXQuRGF0YWJhc2VzLnNiLmluCShyZXZpc2lvbiAyMTkwNDgpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9EYXRhYmFzZVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzLnNiLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw2IEBACiAoYWxsb3cgcHJvY2Vzcy1pbmZvLXBp
ZGluZm8pCiAoYWxsb3cgcHJvY2Vzcy1pbmZvLXNldGNvbnRyb2wgKHRhcmdldCBzZWxmKSkKIAot
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCiAoZGVueSBzeXNj
dGwqKQogKGFsbG93IHN5c2N0bC1yZWFkCiAgICAgKHN5c2N0bC1uYW1lCkBAIC00Myw3ICs0Miw2
IEBACiAgICAgICAgICJ2bS5mb290cHJpbnRfc3VzcGVuZCIpKQogCiAoZGVueSBpb2tpdC1nZXQt
cHJvcGVydGllcykKLSNlbmRpZgogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDEzMDAKIChkZW55IG1hY2gtbG9va3VwICh4cGMtc2VydmljZS1uYW1lLXByZWZpeCAi
IikpCkBAIC0xMTEsOSArMTA5LDcgQEAKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTMwMAogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmFuYWx5dGljc2QiKQog
I2VuZGlmCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKICAg
ICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sc2QubWFwZGIiKQotI2VuZGlmCiApCiAKIDs7IFNh
bmRib3ggZXh0ZW5zaW9ucwpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cAkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3
ICs1NCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmUKICAgICBl
bmNvZGVyIDw8IHNob3VsZEVuYWJsZU5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlUmV2YWxpZGF0aW9u
OwogI2VuZGlmCiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGVuY29kZXIg
PDwgdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7CiAjZW5kaWYKICNpZiBQTEFURk9S
TShJT1MpCkBAIC04MCw3ICs4MCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM6OmUKICNlbmRpZgogICAgIGVuY29kZXIgPDwgaHR0cFByb3h5OwogICAgIGVuY29kZXIg
PDwgaHR0cHNQcm94eTsKLSNpZiBUQVJHRVRfT1NfSVBIT05FIHx8IChQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKQorI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIElQQzo6ZW5jb2RlKGVuY29kZXIsIG5ldHdvcmtBVFNDb250ZXh0LmdldCgp
KTsKICNlbmRpZgogICAgIGVuY29kZXIgPDwgY29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJs
ZWQ7CkBAIC0xMjYsNyArMTI2LDcgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZAogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKICNlbmRpZgotI2lmIFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKKyNp
ZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudWlQcm9jZXNz
Q29va2llU3RvcmFnZUlkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYK
QEAgLTE3MSw3ICsxNzEsNyBAQCBib29sIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3Vs
dC5odHRwc1Byb3h5KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotI2lmIFRBUkdFVF9PU19JUEhP
TkUgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDExMDApCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKCFJUEM6OmRlY29kZShkZWNv
ZGVyLCByZXN1bHQubmV0d29ya0FUU0NvbnRleHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjE5
MDQ4KQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNyBAQCBzdHJ1Y3Qg
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgCiAgICAgYm9vbCBzaG91bGRFbmFibGVO
ZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVJldmFsaWRhdGlvbiB7IGZhbHNlIH07CiAjZW5kaWYKICNl
bmRpZgotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDExMDAKKyNpZiBQTEFURk9STShNQUMpCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHVpUHJv
Y2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TKQpA
QCAtOTEsNyArOTEsNyBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMg
CiAjZW5kaWYKICAgICBTdHJpbmcgaHR0cFByb3h5OwogICAgIFN0cmluZyBodHRwc1Byb3h5Owot
I2lmIFRBUkdFVF9PU19JUEhPTkUgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0
YWluUHRyPENGRGF0YVJlZj4gbmV0d29ya0FUU0NvbnRleHQ7CiAjZW5kaWYKICAgICBib29sIGNv
b2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkOwpJbmRleDogU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZS9JbmZv
LU9TWC0xMC45LTEwLjEwLnBsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2UvSW5mby1P
U1gtMTAuOS0xMC4xMC5wbGlzdAkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9OZXR3b3JrU2VydmljZS9J
bmZvLU9TWC0xMC45LTEwLjEwLnBsaXN0CShub25leGlzdGVudCkKQEAgLTEsNTAgKzAsMCBAQAot
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhRE9DVFlQRSBwbGlzdCBQ
VUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29t
L0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgotPHBsaXN0IHZlcnNpb249IjEuMCI+Ci08ZGlj
dD4KLQk8a2V5PkNGQnVuZGxlR2V0SW5mb1N0cmluZzwva2V5PgotCTxzdHJpbmc+JHtCVU5ETEVf
VkVSU0lPTn0sIENvcHlyaWdodCAyMDAzLTIwMTcgQXBwbGUgSW5jLjwvc3RyaW5nPgotCTxrZXk+
Q0ZCdW5kbGVEZXZlbG9wbWVudFJlZ2lvbjwva2V5PgotCTxzdHJpbmc+RW5nbGlzaDwvc3RyaW5n
PgotCTxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+Ci0JPHN0cmluZz4ke0VYRUNVVEFCTEVf
TkFNRX08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgotCTxzdHJpbmc+
JHtQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVJbmZv
RGljdGlvbmFyeVZlcnNpb248L2tleT4KLQk8c3RyaW5nPjYuMDwvc3RyaW5nPgotCTxrZXk+Q0ZC
dW5kbGVOYW1lPC9rZXk+Ci0JPHN0cmluZz4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4KLQk8a2V5
PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4KLQk8c3RyaW5nPlhQQyE8L3N0cmluZz4KLQk8a2V5
PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+Ci0JPHN0cmluZz4ke1NIT1JUX1ZFUlNJ
T05fU1RSSU5HfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVTaWduYXR1cmU8L2tleT4KLQk8c3Ry
aW5nPj8/Pz88L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5PgotCTxzdHJpbmc+
JHtCVU5ETEVfVkVSU0lPTn08L3N0cmluZz4KLQk8a2V5PkxTRmlsZVF1YXJhbnRpbmVFbmFibGVk
PC9rZXk+Ci0JPHRydWUvPgotCTxrZXk+TlNQcmluY2lwYWxDbGFzczwva2V5PgotCTxzdHJpbmc+
TlNBcHBsaWNhdGlvbjwvc3RyaW5nPgotCTxrZXk+V2ViS2l0RW50cnlQb2ludDwva2V5PgotCTxz
dHJpbmc+TmV0d29ya1NlcnZpY2VJbml0aWFsaXplcjwvc3RyaW5nPgotCTxrZXk+TFNVSUVsZW1l
bnQ8L2tleT4KLQk8dHJ1ZS8+Ci0JPGtleT5YUENTZXJ2aWNlPC9rZXk+Ci0JPGRpY3Q+Ci0JCTxr
ZXk+U2VydmljZVR5cGU8L2tleT4KLQkJPHN0cmluZz5BcHBsaWNhdGlvbjwvc3RyaW5nPgotCQk8
a2V5PkpvaW5FeGlzdGluZ1Nlc3Npb248L2tleT4KLQkJPHRydWUvPgotCQk8a2V5PlJ1bkxvb3BU
eXBlPC9rZXk+Ci0JCTxzdHJpbmc+TlNSdW5Mb29wPC9zdHJpbmc+Ci0JCTxrZXk+X011bHRpcGxl
SW5zdGFuY2VzPC9rZXk+Ci0JCTx0cnVlLz4KLQkJPGtleT5FbnZpcm9ubWVudFZhcmlhYmxlczwv
a2V5PgotCQk8ZGljdD4KLQkJCTxrZXk+RFlMRF9JTlNFUlRfTElCUkFSSUVTPC9rZXk+Ci0JCQk8
c3RyaW5nPiQoV0tfWFBDX1NFUlZJQ0VfSU5TRVJUX0xJQlJBUklFU19ESVIpL1NlY0l0ZW1TaGlt
LmR5bGliPC9zdHJpbmc+Ci0JCTwvZGljdD4KLQk8L2RpY3Q+Ci08L2RpY3Q+Ci08L3BsaXN0PgpJ
bmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3ND
b2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCShyZXZpc2lvbiAyMTkwNDgpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC03NSw5ICs3NSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5p
dGlhbGl6ZU4KICNlbmRpZgogICAgIG1fZGlza0NhY2hlRGlyZWN0b3J5ID0gcGFyYW1ldGVycy5k
aXNrQ2FjaGVEaXJlY3Rvcnk7CiAKLSNpZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKQogICAgIF9DRk5l
dHdvcmtTZXRBVFNDb250ZXh0KHBhcmFtZXRlcnMubmV0d29ya0FUU0NvbnRleHQuZ2V0KCkpOwot
I2VuZGlmCiAKICAgICBTZXNzaW9uVHJhY2tlcjo6c2V0SWRlbnRpZmllckJhc2UocGFyYW1ldGVy
cy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKIApAQCAtOTMsNyArOTEsNyBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOCiAKICAgICBpbml0aWFsaXplTmV0d29y
a1NldHRpbmdzKCk7CiAKLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMTAwCisjaWYgUExBVEZPUk0oTUFDKQogICAgIHNldFNoYXJlZEhU
VFBDb29raWVTdG9yYWdlKHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZp
ZXIpOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9j
b20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9j
ZXNzLnNiLmluCShyZXZpc2lvbiAyMTkwNDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYi5pbgkod29ya2luZyBj
b3B5KQpAQCAtMzIsNyArMzIsNiBAQAogKGFsbG93IHByb2Nlc3MtaW5mby1waWRpbmZvKQogKGFs
bG93IHByb2Nlc3MtaW5mby1zZXRjb250cm9sICh0YXJnZXQgc2VsZikpCiAKLSNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAogKGRlbnkgc3lzY3RsKikKIChhbGxv
dyBzeXNjdGwtcmVhZAogICAgIChzeXNjdGwtbmFtZQpAQCAtNDMsNyArNDIsNiBAQAogICAgICAg
ICAidm0uZm9vdHByaW50X3N1c3BlbmQiKSkKIAogKGRlbnkgaW9raXQtZ2V0LXByb3BlcnRpZXMp
Ci0jZW5kaWYKIAogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAw
CiAoZGVueSBtYWNoLWxvb2t1cCAoeHBjLXNlcnZpY2UtbmFtZS1wcmVmaXggIiIpKQpAQCAtMTUy
LDEwICsxNTAsOCBAQAogI2VuZGlmCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY29va2ll
ZCIpCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY2ZuZXR3b3JrLkF1dGhCcm9rZXJBZ2Vu
dCIpCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKICAgICAo
Z2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sc2QubWFwZGIiKQogICAgIChnbG9iYWwtbmFtZSAiY29t
LmFwcGxlLm5lc2Vzc2lvbm1hbmFnZXIuZmxvdy1kaXZlcnQtdG9rZW4iKQotI2VuZGlmCiApCiAK
IDs7IFNlY3VyaXR5IGZyYW1ld29yawpJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBD
L0Nvbm5lY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
Q29ubmVjdGlvbi5oCShyZXZpc2lvbiAyMTkwNDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvQ29ubmVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMsMTAgKzE0Myw2IEBAIHB1
YmxpYzoKIAogICAgIENsaWVudCYgY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0K
IAotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8
PSAxMDEwMDAKLSAgICB2b2lkIHNldFNob3VsZENsb3NlQ29ubmVjdGlvbk9uTWFjaEV4Y2VwdGlv
bnMoKTsKLSNlbmRpZgotCiAgICAgdm9pZCBzZXRPbmx5U2VuZE1lc3NhZ2VzQXNEaXNwYXRjaFdo
ZW5XYWl0aW5nRm9yU3luY1JlcGx5V2hlblByb2Nlc3NpbmdTdWNoQU1lc3NhZ2UoYm9vbCk7CiAg
ICAgdm9pZCBzZXRTaG91bGRFeGl0T25TeW5jTWVzc2FnZVNlbmRGYWlsdXJlKGJvb2wgc2hvdWxk
RXhpdE9uU3luY01lc3NhZ2VTZW5kRmFpbHVyZSk7CiAKQEAgLTMzMiwxNCArMzI4LDYgQEAgcHJp
dmF0ZToKICAgICBkaXNwYXRjaF9zb3VyY2VfdCBtX3JlY2VpdmVTb3VyY2U7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8TWFjaE1lc3NhZ2U+IG1fcGVuZGluZ091dGdvaW5nTWFjaE1lc3NhZ2U7Ci0j
aWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEw
MTAwMAotICAgIHZvaWQgZXhjZXB0aW9uU291cmNlRXZlbnRIYW5kbGVyKCk7Ci0KLSAgICAvLyBJ
ZiBzZXRTaG91bGRDbG9zZUNvbm5lY3Rpb25Pbk1hY2hFeGNlcHRpb25zIGhhcyBiZWVuIGNhbGxl
ZCwgdGhpcyBoYXMKLSAgICAvLyB0aGUgZXhjZXB0aW9uIHBvcnQgdGhhdCBleGNlcHRpb25zIGZy
b20gdGhlIG90aGVyIGVuZCB3aWxsIGJlIHNlbnQgb24uCi0gICAgbWFjaF9wb3J0X3QgbV9leGNl
cHRpb25Qb3J0OwotICAgIGRpc3BhdGNoX3NvdXJjZV90IG1fZXhjZXB0aW9uUG9ydERhdGFBdmFp
bGFibGVTb3VyY2U7Ci0jZW5kaWYKIAogICAgIE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+
IG1feHBjQ29ubmVjdGlvbjsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbQkocmV2aXNpb24gMjE5MDQ4KQorKysgU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0xNDQsMTUgKzE0NCw2IEBAIHZvaWQgQ29ubmVjdGlvbjo6cGxhdGZvcm1JbnZhbGlk
YXRlKCkKICAgICBkaXNwYXRjaF9yZWxlYXNlKG1fcmVjZWl2ZVNvdXJjZSk7CiAgICAgbV9yZWNl
aXZlU291cmNlID0gbnVsbHB0cjsKICAgICBtX3JlY2VpdmVQb3J0ID0gTUFDSF9QT1JUX05VTEw7
Ci0KLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
PD0gMTAxMDAwCi0gICAgaWYgKG1fZXhjZXB0aW9uUG9ydCkgewotICAgICAgICBkaXNwYXRjaF9z
b3VyY2VfY2FuY2VsKG1fZXhjZXB0aW9uUG9ydERhdGFBdmFpbGFibGVTb3VyY2UpOwotICAgICAg
ICBkaXNwYXRjaF9yZWxlYXNlKG1fZXhjZXB0aW9uUG9ydERhdGFBdmFpbGFibGVTb3VyY2UpOwot
ICAgICAgICBtX2V4Y2VwdGlvblBvcnREYXRhQXZhaWxhYmxlU291cmNlID0gMDsKLSAgICAgICAg
bV9leGNlcHRpb25Qb3J0ID0gTUFDSF9QT1JUX05VTEw7Ci0gICAgfQotI2VuZGlmCiB9CiAgICAg
CiB2b2lkIENvbm5lY3Rpb246OnRlcm1pbmF0ZVNvb24oU2Vjb25kcyBpbnRlcnZhbCkKQEAgLTE2
MywxMSArMTU0LDYgQEAgdm9pZCBDb25uZWN0aW9uOjp0ZXJtaW5hdGVTb29uKFNlY29uZHMgaQog
ICAgIAogdm9pZCBDb25uZWN0aW9uOjpwbGF0Zm9ybUluaXRpYWxpemUoSWRlbnRpZmllciBpZGVu
dGlmaWVyKQogewotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA8PSAxMDEwMDAKLSAgICBtX2V4Y2VwdGlvblBvcnQgPSBNQUNIX1BPUlRfTlVMTDsK
LSAgICBtX2V4Y2VwdGlvblBvcnREYXRhQXZhaWxhYmxlU291cmNlID0gbnVsbHB0cjsKLSNlbmRp
ZgotCiAgICAgaWYgKG1faXNTZXJ2ZXIpIHsKICAgICAgICAgbV9yZWNlaXZlUG9ydCA9IGlkZW50
aWZpZXIucG9ydDsKICAgICAgICAgbV9zZW5kUG9ydCA9IE1BQ0hfUE9SVF9OVUxMOwpAQCAtMjI1
LDMzICsyMTEsMTIgQEAgYm9vbCBDb25uZWN0aW9uOjpvcGVuKCkKICAgICAgICAgbWFjaF9wb3J0
X21vZF9yZWZzKG1hY2hfdGFza19zZWxmKCksIHJlY2VpdmVQb3J0LCBNQUNIX1BPUlRfUklHSFRf
UkVDRUlWRSwgLTEpOwogICAgIH0pOwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwMTAwMAotICAgIGlmIChtX2V4Y2VwdGlvblBvcnQp
IHsKLSAgICAgICAgbV9leGNlcHRpb25Qb3J0RGF0YUF2YWlsYWJsZVNvdXJjZSA9IGRpc3BhdGNo
X3NvdXJjZV9jcmVhdGUoRElTUEFUQ0hfU09VUkNFX1RZUEVfTUFDSF9SRUNWLCBtX2V4Y2VwdGlv
blBvcnQsIDAsIG1fY29ubmVjdGlvblF1ZXVlLT5kaXNwYXRjaFF1ZXVlKCkpOwotICAgICAgICBk
aXNwYXRjaF9zb3VyY2Vfc2V0X2V2ZW50X2hhbmRsZXIobV9leGNlcHRpb25Qb3J0RGF0YUF2YWls
YWJsZVNvdXJjZSwgW2Nvbm5lY3Rpb25dIHsKLSAgICAgICAgICAgIGNvbm5lY3Rpb24tPmV4Y2Vw
dGlvblNvdXJjZUV2ZW50SGFuZGxlcigpOwotICAgICAgICB9KTsKLSAgICAgICAgZGlzcGF0Y2hf
c291cmNlX3NldF9jYW5jZWxfaGFuZGxlcihtX2V4Y2VwdGlvblBvcnREYXRhQXZhaWxhYmxlU291
cmNlLCBbY29ubmVjdGlvbiwgZXhjZXB0aW9uUG9ydCA9IG1fZXhjZXB0aW9uUG9ydF0gewotICAg
ICAgICAgICAgbWFjaF9wb3J0X21vZF9yZWZzKG1hY2hfdGFza19zZWxmKCksIGV4Y2VwdGlvblBv
cnQsIE1BQ0hfUE9SVF9SSUdIVF9SRUNFSVZFLCAtMSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAg
IGF1dG8gZW5jb2RlciA9IHN0ZDo6bWFrZV91bmlxdWU8RW5jb2Rlcj4oIklQQyIsICJTZXRFeGNl
cHRpb25Qb3J0IiwgMCk7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShNYWNoUG9ydChtX2V4Y2Vw
dGlvblBvcnQsIE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKSk7Ci0KLSAgICAgICAgc2VuZE1lc3Nh
Z2UoV1RGTW92ZShlbmNvZGVyKSwgeyB9KTsKLSAgICB9Ci0jZW5kaWYKLQogICAgIHJlZigpOwog
ICAgIGRpc3BhdGNoX2FzeW5jKG1fY29ubmVjdGlvblF1ZXVlLT5kaXNwYXRjaFF1ZXVlKCksIF57
CiAgICAgICAgIGRpc3BhdGNoX3Jlc3VtZShtX3JlY2VpdmVTb3VyY2UpOwogCiAgICAgICAgIGlm
IChtX3NlbmRTb3VyY2UpCiAgICAgICAgICAgICBkaXNwYXRjaF9yZXN1bWUobV9zZW5kU291cmNl
KTsKLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
PD0gMTAxMDAwCi0gICAgICAgIGlmIChtX2V4Y2VwdGlvblBvcnREYXRhQXZhaWxhYmxlU291cmNl
KQotICAgICAgICAgICAgZGlzcGF0Y2hfcmVzdW1lKG1fZXhjZXB0aW9uUG9ydERhdGFBdmFpbGFi
bGVTb3VyY2UpOwotI2VuZGlmCiAKICAgICAgICAgZGVyZWYoKTsKICAgICB9KTsKQEAgLTU5Miw1
MSArNTU3LDYgQEAgdm9pZCBDb25uZWN0aW9uOjpyZWNlaXZlU291cmNlRXZlbnRIYW5kbAogICAg
IHByb2Nlc3NJbmNvbWluZ01lc3NhZ2UoV1RGTW92ZShkZWNvZGVyKSk7CiB9ICAgIAogCi0jaWYg
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwMTAw
MAotdm9pZCBDb25uZWN0aW9uOjpleGNlcHRpb25Tb3VyY2VFdmVudEhhbmRsZXIoKQotewotICAg
IFJlY2VpdmVCdWZmZXIgYnVmZmVyOwotCi0gICAgbWFjaF9tc2dfaGVhZGVyX3QqIGhlYWRlciA9
IHJlYWRGcm9tTWFjaFBvcnQobV9leGNlcHRpb25Qb3J0LCBidWZmZXIpOwotICAgIGlmICghaGVh
ZGVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBXZSd2ZSByZWFkIHRoZSBleGNlcHRpb24g
bWVzc2FnZS4gTm93IHNlbmQgaXQgb24gdG8gdGhlIHJlYWwgZXhjZXB0aW9uIHBvcnQuCi0KLSAg
ICAvLyBUaGUgcmVtb3RlIHBvcnQgc2hvdWxkIGhhdmUgYSBzZW5kIG9uY2UgcmlnaHQuCi0gICAg
QVNTRVJUKE1BQ0hfTVNHSF9CSVRTX1JFTU9URShoZWFkZXItPm1zZ2hfYml0cykgPT0gTUFDSF9N
U0dfVFlQRV9NT1ZFX1NFTkRfT05DRSk7Ci0KLSAgICAvLyBOb3cgZ2V0IHRoZSByZWFsIGV4Y2Vw
dGlvbiBwb3J0LgotICAgIG1hY2hfcG9ydF90IGV4Y2VwdGlvblBvcnQgPSBtYWNoRXhjZXB0aW9u
UG9ydCgpOwotCi0gICAgLy8gRmlyc3QsIGdldCB0aGUgY29tcGxleCBiaXQgZnJvbSB0aGUgc291
cmNlIG1lc3NhZ2UuCi0gICAgbWFjaF9tc2dfYml0c190IG1lc3NhZ2VCaXRzID0gaGVhZGVyLT5t
c2doX2JpdHMgJiBNQUNIX01TR0hfQklUU19DT01QTEVYOwotICAgIG1lc3NhZ2VCaXRzIHw9IE1B
Q0hfTVNHSF9CSVRTKE1BQ0hfTVNHX1RZUEVfQ09QWV9TRU5ELCBNQUNIX01TR19UWVBFX01PVkVf
U0VORF9PTkNFKTsKLQotICAgIGhlYWRlci0+bXNnaF9iaXRzID0gbWVzc2FnZUJpdHM7Ci0gICAg
aGVhZGVyLT5tc2doX2xvY2FsX3BvcnQgPSBoZWFkZXItPm1zZ2hfcmVtb3RlX3BvcnQ7Ci0gICAg
aGVhZGVyLT5tc2doX3JlbW90ZV9wb3J0ID0gZXhjZXB0aW9uUG9ydDsKLQotICAgIC8vIE5vdyBz
ZW5kIGFsb25nIHRoZSBtZXNzYWdlLgotICAgIGtlcm5fcmV0dXJuX3Qga3IgPSBtYWNoX21zZyho
ZWFkZXIsIE1BQ0hfU0VORF9NU0csIGhlYWRlci0+bXNnaF9zaXplLCAwLCBNQUNIX1BPUlRfTlVM
TCwgTUFDSF9NU0dfVElNRU9VVF9OT05FLCBNQUNIX1BPUlRfTlVMTCk7Ci0gICAgaWYgKGtyICE9
IEtFUk5fU1VDQ0VTUykKLSAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gc2VuZCBtZXNzYWdl
IHRvIHJlYWwgZXhjZXB0aW9uIHBvcnQuICVzICgleCkiLCBtYWNoX2Vycm9yX3N0cmluZyhrciks
IGtyKTsKLQotICAgIGNvbm5lY3Rpb25EaWRDbG9zZSgpOwotfQotCi12b2lkIENvbm5lY3Rpb246
OnNldFNob3VsZENsb3NlQ29ubmVjdGlvbk9uTWFjaEV4Y2VwdGlvbnMoKQotewotICAgIEFTU0VS
VChtX2V4Y2VwdGlvblBvcnQgPT0gTUFDSF9QT1JUX05VTEwpOwotCi0gICAgaWYgKG1hY2hfcG9y
dF9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBNQUNIX1BPUlRfUklHSFRfUkVDRUlWRSwgJm1f
ZXhjZXB0aW9uUG9ydCkgIT0gS0VSTl9TVUNDRVNTKQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLQotICAgIGlmIChtYWNoX3BvcnRfaW5zZXJ0X3JpZ2h0KG1hY2hfdGFza19zZWxmKCks
IG1fZXhjZXB0aW9uUG9ydCwgbV9leGNlcHRpb25Qb3J0LCBNQUNIX01TR19UWVBFX01BS0VfU0VO
RCkgIT0gS0VSTl9TVUNDRVNTKQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLSNl
bmRpZgotCiBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgQ29ubmVjdGlvbjo6aWRlbnRpZmll
cigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElkZW50aWZpZXIobV9pc1NlcnZlciA/IG1fcmVjZWl2
ZVBvcnQgOiBtX3NlbmRQb3J0LCBtX3hwY0Nvbm5lY3Rpb24pOwpJbmRleDogU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5oCShyZXZpc2lvbiAy
MTkwNDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dENvbG9yU3BhY2UoQ0dDb2xvclNwYWNlUmVmKTsKICAgICBDR0NvbG9yU3BhY2VSZWYgY29sb3JT
cGFjZSgpIGNvbnN0OwogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTEwMAorI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHNldENv
bG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnQoYm9vbCk7CiAgICAgYm9vbCBjb2xvck1hdGNoVW50YWdn
ZWRDb250ZW50KCkgY29uc3Q7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L21hYy9MYXllckhvc3RpbmdDb250ZXh0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250ZXh0Lm1tCShyZXZpc2lvbiAyMTkwNDgpCisr
KyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbQkod29y
a2luZyBjb3B5KQpAQCAtMTAyLDcgKzEwMiw3IEBAIENHQ29sb3JTcGFjZVJlZiBMYXllckhvc3Rp
bmdDb250ZXh0Ojpjb2wKICAgICByZXR1cm4gW21fY29udGV4dCBjb2xvclNwYWNlXTsKIH0KIAot
I2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDExMDAKKyNpZiBQTEFURk9STShNQUMpCiB2b2lkIExheWVySG9zdGluZ0NvbnRleHQ6OnNldENv
bG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnQoYm9vbCBjb2xvck1hdGNoVW50YWdnZWRDb250ZW50KQog
ewogICAgIFttX2NvbnRleHQgc2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudDpjb2xvck1hdGNo
VW50YWdnZWRDb250ZW50XTsKQEAgLTExNCw3ICsxMTQsNiBAQCBib29sIExheWVySG9zdGluZ0Nv
bnRleHQ6OmNvbG9yTWF0Y2hVbnRhCiB9CiAjZW5kaWYKIAotI2lmIEhBVkUoQ09SRUFOSU1BVElP
Tl9GRU5DRVMpCiB2b2lkIExheWVySG9zdGluZ0NvbnRleHQ6OnNldEZlbmNlUG9ydChtYWNoX3Bv
cnRfdCBmZW5jZVBvcnQpCiB7CiAgICAgW21fY29udGV4dCBzZXRGZW5jZVBvcnQ6ZmVuY2VQb3J0
XTsKQEAgLTEyNCwxOSArMTIzLDUgQEAgTWFjaFNlbmRSaWdodCBMYXllckhvc3RpbmdDb250ZXh0
OjpjcmVhdAogewogICAgIHJldHVybiBNYWNoU2VuZFJpZ2h0OjphZG9wdChbbV9jb250ZXh0IGNy
ZWF0ZUZlbmNlUG9ydF0pOwogfQotI2Vsc2UKLU5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQg
TGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0RmVuY2VQb3J0KG1hY2hfcG9ydF90IGZlbmNlUG9ydCkK
LXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotTk9fUkVUVVJOX0RVRV9UT19BU1NF
UlQgTWFjaFNlbmRSaWdodCBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGZW5jZVBvcnQoKQot
ewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotI2lmIEFTU0VSVF9ESVNBQkxFRAotICAgIHJl
dHVybiBNYWNoU2VuZFJpZ2h0KCk7Ci0jZW5kaWYKLX0KLSNlbmRpZgogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9t
YWMvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNlLjMyLTY0LTEwLjktMTAuMTAuSW5mby5wbGlzdAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZS4zMi02NC0xMC45LTEwLjEwLkluZm8ucGxpc3QJKHJl
dmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvRW50cnlQb2lu
dC9tYWMvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNlLjMyLTY0LTEwLjktMTAuMTAuSW5mby5wbGlz
dAkobm9uZXhpc3RlbnQpCkBAIC0xLDU4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5j
b2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBM
SVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAu
ZHRkIj4KLTxwbGlzdCB2ZXJzaW9uPSIxLjAiPgotPGRpY3Q+Ci0JPGtleT5DRkJ1bmRsZUdldElu
Zm9TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059LCBDb3B5cmlnaHQgMjAw
My0yMDE3IEFwcGxlIEluYy48L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlRGV2ZWxvcG1lbnRSZWdp
b248L2tleT4KLQk8c3RyaW5nPkVuZ2xpc2g8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlRXhlY3V0
YWJsZTwva2V5PgotCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5D
RkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9CVU5ETEVfSURFTlRJ
RklFUn08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+
Ci0JPHN0cmluZz42LjA8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlTmFtZTwva2V5PgotCTxzdHJp
bmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9r
ZXk+Ci0JPHN0cmluZz5YUEMhPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0
cmluZzwva2V5PgotCTxzdHJpbmc+JHtTSE9SVF9WRVJTSU9OX1NUUklOR308L3N0cmluZz4KLQk8
a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9rZXk+Ci0JPHN0cmluZz4/Pz8/PC9zdHJpbmc+Ci0JPGtl
eT5DRkJ1bmRsZVZlcnNpb248L2tleT4KLQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059PC9zdHJp
bmc+Ci0JPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwva2V5PgotCTx0cnVlLz4KLQk8a2V5
Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4KLQk8c3RyaW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4K
LQk8a2V5PldlYktpdEVudHJ5UG9pbnQ8L2tleT4KLQk8c3RyaW5nPlBsdWdpblNlcnZpY2VJbml0
aWFsaXplcjwvc3RyaW5nPgotCTxrZXk+TFNVSUVsZW1lbnQ8L2tleT4KLQk8dHJ1ZS8+Ci0JPGtl
eT5OU1N1cHBvcnRzQXV0b21hdGljR3JhcGhpY3NTd2l0Y2hpbmc8L2tleT4KLQk8dHJ1ZS8+Ci0J
PGtleT5OU1N1cHBvcnRzQXBwTmFwPC9rZXk+Ci0JPHRydWUvPgotCTxrZXk+WFBDU2VydmljZTwv
a2V5PgotCTxkaWN0PgotCQk8a2V5PlNlcnZpY2VUeXBlPC9rZXk+Ci0JCTxzdHJpbmc+QXBwbGlj
YXRpb248L3N0cmluZz4KLQkJPGtleT5SdW5Mb29wVHlwZTwva2V5PgotCQk8c3RyaW5nPl9OU0Fw
cGxpY2F0aW9uTWFpbjwvc3RyaW5nPgotCQk8a2V5PkpvaW5FeGlzdGluZ1Nlc3Npb248L2tleT4K
LQkJPHRydWUvPgotCQk8a2V5Pl9NdWx0aXBsZUluc3RhbmNlczwva2V5PgotCQk8dHJ1ZS8+Ci0J
CTxrZXk+X0FiYW5kb25Db2FsaXRpb248L2tleT4KLQkJPHRydWUvPgotCQk8a2V5PkVudmlyb25t
ZW50VmFyaWFibGVzPC9rZXk+Ci0JCTxkaWN0PgotCQkJPGtleT5EWUxEX0lOU0VSVF9MSUJSQVJJ
RVM8L2tleT4KLQkJCTxzdHJpbmc+JChXS19YUENfU0VSVklDRV9JTlNFUlRfTElCUkFSSUVTX0RJ
UikvUGx1Z2luUHJvY2Vzc1NoaW0uZHlsaWI8L3N0cmluZz4KLQkJCTxrZXk+TlNTdHJpbmdEaXNh
YmxlVGFnZ2VkPC9rZXk+Ci0JCQk8c3RyaW5nPllFUzwvc3RyaW5nPgotCQk8L2RpY3Q+Ci0JPC9k
aWN0PgotPC9kaWN0PgotPC9wbGlzdD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvbWFjL1BsdWdpbkNvbnRyb2xsZXJQcm94eU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0JKHJl
dmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdp
bkNvbnRyb2xsZXJQcm94eU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTM1LDEwICsxMzUsOCBA
QCB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6dXBkYXRlTGF5ZXJICiAjZW5kaWYKICAgICB9
CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAogICAgIG1f
bGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Q29sb3JTcGFjZShzUkdCQ29sb3JTcGFjZVJlZigpKTsK
ICAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldENvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnQo
dHJ1ZSk7Ci0jZW5kaWYKIAogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVy
KHBsYXRmb3JtTGF5ZXIpOwogfQpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9t
YWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0JKHJldmlzaW9uIDIxOTA0OCkKKysr
IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NTaGltLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTIsOSArMTEyLDYgQEAgc2hpbUxTT3BlbkNGVVJMUmVmKENGVVJM
UmVmIHVybCwgQ0ZVUkxSZQogICAgIHJldHVybiBMU09wZW5DRlVSTFJlZih1cmwsIGxhdW5jaGVk
VVJMKTsKIH0KIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDExMDAK
LVNVUFBSRVNTX0FTQU4KLSNlbmRpZgogc3RhdGljIGtlcm5fcmV0dXJuX3Qgc2hpbU1hY2hWTU1h
cCh2bV9tYXBfdCB0YXNrLCBtYWNoX3ZtX2FkZHJlc3NfdCAqYWRkcmVzcywgbWFjaF92bV9zaXpl
X3Qgc2l6ZSwgbWFjaF92bV9vZmZzZXRfdCBtYXNrLCBpbnQgZmxhZ3MsIG1lbV9lbnRyeV9uYW1l
X3BvcnRfdCBvYmplY3QsIG1lbW9yeV9vYmplY3Rfb2Zmc2V0X3Qgb2Zmc2V0LCBib29sZWFuX3Qg
Y29weSwgdm1fcHJvdF90IGN1cnJlbnRQcm90ZWN0aW9uLCB2bV9wcm90X3QgbWF4UHJvdGVjdGlv
biwgdm1faW5oZXJpdF90IGluaGVyaXRhbmNlKQogewogICAgIGlmICh0YXNrID09IG1hY2hfdGFz
a19zZWxmKCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL2NvbS5h
cHBsZS5XZWJLaXQucGx1Z2luLWNvbW1vbi5zYi5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LnBsdWdpbi1jb21tb24uc2Iu
aW4JKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFj
L2NvbS5hcHBsZS5XZWJLaXQucGx1Z2luLWNvbW1vbi5zYi5pbgkod29ya2luZyBjb3B5KQpAQCAt
MzIsNyArMzIsNiBAQAogKGFsbG93IHByb2Nlc3MtaW5mby1waWRpbmZvKQogKGFsbG93IHByb2Nl
c3MtaW5mby1zZXRjb250cm9sICh0YXJnZXQgc2VsZikpCiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAogKGRlbnkgc3lzY3RsKikKIChhbGxvdyBzeXNjdGwt
cmVhZAogICAgIChzeXNjdGwtbmFtZQpAQCAtMTIyLDcgKzEyMSw2IEBACiAgICAgKGlva2l0LXBy
b3BlcnR5ICJzdGFydHVwLXRpbWluZyIpCiAgICAgKGlva2l0LXByb3BlcnR5ICJ0b3VjaC1zaXpl
LWlkIikKICkKLSNlbmRpZgogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDEzMDAKIChkZW55IG1hY2gtbG9va3VwICh4cGMtc2VydmljZS1uYW1lLXByZWZpeCAiIikp
CkBAIC0zNTEsOSArMzQ5LDYgQEAKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTMwMAogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmFuYWx5dGljc2QiKQogI2Vu
ZGlmCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTEwMAotICAgIChn
bG9iYWwtbmFtZSAiY29tLmFwcGxlLmF1ZGlvLlZEQ0Fzc2lzdGFudCIpCi0jZW5kaWYKICAgICAo
Z2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hdWRpby5hdWRpb2hhbGQiKQogICAgIChnbG9iYWwtbmFt
ZSAiY29tLmFwcGxlLmF1ZGlvLmNvcmVhdWRpb2QiKQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFw
cGxlLmNmbmV0d29yay5BdXRoQnJva2VyQWdlbnQiKQpAQCAtMzYxLDkgKzM1Niw3IEBACiAgICAg
KGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY29va2llZCIpIDs7IEZJWE1FOiA8cmRhcjovL3Byb2Js
ZW0vMTA3OTA3Njg+IExpbWl0IGFjY2VzcyB0byBjb29raWVzLgogICAgIChnbG9iYWwtbmFtZSAi
Y29tLmFwcGxlLmNvcmVzZXJ2aWNlcy5sYXVuY2hzZXJ2aWNlc2QiKQogICAgIChnbG9iYWwtbmFt
ZSAiY29tLmFwcGxlLmZvbnRzIikKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTEwMAogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmxzZC5tYXBkYiIpCi0jZW5k
aWYKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5vY3NwZCIpCiAgICAgKGdsb2JhbC1uYW1l
ICJjb20uYXBwbGUucGFzdGVib2FyZC4xIikKICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5w
YnMuZmV0Y2hfc2VydmljZXMiKQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJv
Y2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3Mu
aAkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vz
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC04OCw3ICs4OCw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0
dWFsIHZvaWQgaW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRp
b25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZp
cnR1YWwgdm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKTsKIAotI2lm
IFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEx
MDAKKyNpZiBQTEFURk9STShNQUMpCiAgICAgc3RhdGljIHZvaWQgc2V0U2hhcmVkSFRUUENvb2tp
ZVN0b3JhZ2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpZGVudGlmaWVyKTsKICNlbmRpZgogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyMTkwNDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3
LDcgKzU3LDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZAogICAg
IGVuY29kZXIgPDwgbWVkaWFDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBlbmNv
ZGVyIDw8IGphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5OwogICAgIGVuY29kZXIgPDwg
amF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0jaWYgUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAor
I2lmIFBMQVRGT1JNKE1BQykKICAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJ
ZGVudGlmaWVyOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMTI5LDcgKzEyOSw3IEBA
IHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICAgICBlbmNvZGVyIDw8
IHBsdWdpbkxvYWRDbGllbnRQb2xpY2llczsKICNlbmRpZgogCi0jaWYgVEFSR0VUX09TX0lQSE9O
RSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTEwMCkKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBu
ZXR3b3JrQVRTQ29udGV4dC5nZXQoKSk7CiAjZW5kaWYKIApAQCAtMTc0LDcgKzE3NCw3IEBAIGJv
b2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5qYXZhU2NyaXB0Q29uZmln
dXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMTAwCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICNlbmRpZgpAQCAtMzAzLDcgKzMwMyw3IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZGVjb2QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKLSNpZiBU
QVJHRVRfT1NfSVBIT05FIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMTAwKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmICghSVBD
OjpkZWNvZGUoZGVjb2RlciwgcGFyYW1ldGVycy5uZXR3b3JrQVRTQ29udGV4dCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyMTkwNDgpCisr
KyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCSh3
b3JraW5nIGNvcHkpCkBAIC03OCw3ICs3OCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzIHsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgbWVkaWFDYWNoZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBTdHJpbmcgamF2YVNjcmlwdENvbmZpZ3VyYXRpb25E
aXJlY3Rvcnk7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGphdmFTY3JpcHRDb25maWd1
cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKKyNpZiBQTEFURk9STShNQUMp
CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyOwog
I2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMTYxLDcgKzE2MSw3IEBAIHN0cnVjdCBXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxT
dHJpbmcsIEhhc2hNYXA8U3RyaW5nLCB1aW50OF90Pj4+IHBsdWdpbkxvYWRDbGllbnRQb2xpY2ll
czsKICNlbmRpZgogCi0jaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkKKyNpZiBQTEFURk9STShD
T0NPQSkKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBuZXR3b3JrQVRTQ29udGV4dDsKICNlbmRp
ZgogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjE5
MDQ4KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDEwICs0Nyw4IEBAIHZvaWQg
UGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW4KICAgICBlbmNvZGVyIDw8IHRlcm1p
bmF0aW9uVGltZW91dDsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBlbmNvZGVyIDw8IGFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdQb3J0OwotI2lmIFRBUkdFVF9PU19JUEhPTkUgfHwgKFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApCiAgICAg
SVBDOjplbmNvZGUoZW5jb2RlciwgbmV0d29ya0FUU0NvbnRleHQuZ2V0KCkpOwogI2VuZGlmCi0j
ZW5kaWYKICNpZiBPUyhMSU5VWCkKICAgICBlbmNvZGVyIDw8IG1lbW9yeVByZXNzdXJlTW9uaXRv
ckhhbmRsZTsKICNlbmRpZgpAQCAtNjksMTEgKzY3LDkgQEAgYm9vbCBQbHVnaW5Qcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocmVzdWx0LmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdQb3J0KSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotI2lmIFRBUkdFVF9PU19JUEhPTkUgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApCiAgICAgaWYgKCFJUEM6OmRl
Y29kZShkZWNvZGVyLCByZXN1bHQubmV0d29ya0FUU0NvbnRleHQpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAjZW5kaWYKLSNlbmRpZgogI2lmIE9TKExJTlVYKQogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0Lm1lbW9yeVByZXNzdXJlTW9uaXRvckhhbmRsZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDIx
OTA0OCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsMTAgKzU3LDggQEAgc3RydWN0
IFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgV2ViQ29yZTo6TWFjaFNlbmRSaWdodCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nUG9ydDsK
LSNpZiBUQVJHRVRfT1NfSVBIT05FIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKQogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IG5l
dHdvcmtBVFNDb250ZXh0OwogI2VuZGlmCi0jZW5kaWYKICNpZiBPUyhMSU5VWCkKICAgICBJUEM6
OkF0dGFjaG1lbnQgbWVtb3J5UHJlc3N1cmVNb25pdG9ySGFuZGxlOwogI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5N
b2R1bGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMv
TmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTW9kdWxlTWFjLm1tCShyZXZpc2lvbiAyMTkwNDgp
CisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQ
bHVnaW5Nb2R1bGVNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTc4LDUwICs3OCw5IEBAIHN0YXRp
YyBib29sIGdldFBsdWdpbkFyY2hpdGVjdHVyZShDRkJ1bmQKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwMTAwMAotc3RhdGlj
IFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGNvbnRlbnRzT2ZQcm9wZXJ0eUxpc3RBdFVSTChD
RlVSTFJlZiBwcm9wZXJ0eUxpc3RVUkwpCi17Ci0gICAgUmV0YWluUHRyPE5TRGF0YT4gcHJvcGVy
dHlMaXN0RGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQ29udGVudHNPZlVS
TDooTlNVUkwgKilwcm9wZXJ0eUxpc3RVUkxdKTsKLSAgICBpZiAoIXByb3BlcnR5TGlzdERhdGEp
Ci0gICAgICAgIHJldHVybiAwOwotCi0gICAgUmV0YWluUHRyPENGUHJvcGVydHlMaXN0UmVmPiBw
cm9wZXJ0eUxpc3QgPSBhZG9wdENGKENGUHJvcGVydHlMaXN0Q3JlYXRlV2l0aERhdGEoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgKENGRGF0YVJlZilwcm9wZXJ0eUxpc3REYXRhLmdldCgpLCBrQ0ZQcm9w
ZXJ0eUxpc3RJbW11dGFibGUsIDAsIDApKTsKLSAgICBpZiAoIXByb3BlcnR5TGlzdCkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0KLSAgICBpZiAoQ0ZHZXRUeXBlSUQocHJvcGVydHlMaXN0LmdldCgpKSAh
PSBDRkRpY3Rpb25hcnlHZXRUeXBlSUQoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmPihwcm9wZXJ0eUxpc3QuZ2V0KCkpOwotfQot
I2VuZGlmCi0KLXN0YXRpYyBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBnZXRNSU1FVHlwZXNG
cm9tUGx1Z2luQnVuZGxlKENGQnVuZGxlUmVmIGJ1bmRsZSwgY29uc3QgUGx1Z2luTW9kdWxlSW5m
byYgcGx1Z2luKQotewotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTAx
MDAwCi0gICAgQ0ZTdHJpbmdSZWYgcHJvcGVydHlMaXN0RmlsZW5hbWUgPSBzdGF0aWNfY2FzdDxD
RlN0cmluZ1JlZj4oQ0ZCdW5kbGVHZXRWYWx1ZUZvckluZm9EaWN0aW9uYXJ5S2V5KGJ1bmRsZSwg
Q0ZTVFIoIldlYlBsdWdpbk1JTUVUeXBlc0ZpbGVuYW1lIikpKTsKLSAgICBpZiAocHJvcGVydHlM
aXN0RmlsZW5hbWUpIHsKLSAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBwcm9wZXJ0eUxp
c3RQYXRoID0gYWRvcHRDRihDRlN0cmluZ0NyZWF0ZVdpdGhGb3JtYXQoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgMCwgQ0ZTVFIoIiVAL0xpYnJhcnkvUHJlZmVyZW5jZXMvJUAiKSwgTlNIb21lRGlyZWN0
b3J5KCksIHByb3BlcnR5TGlzdEZpbGVuYW1lKSk7Ci0gICAgICAgIFJldGFpblB0cjxDRlVSTFJl
Zj4gcHJvcGVydHlMaXN0VVJMID0gYWRvcHRDRihDRlVSTENyZWF0ZVdpdGhGaWxlU3lzdGVtUGF0
aChrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwcm9wZXJ0eUxpc3RQYXRoLmdldCgpLCBrQ0ZVUkxQT1NJ
WFBhdGhTdHlsZSwgRkFMU0UpKTsKLQotICAgICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVm
PiBwcm9wZXJ0eUxpc3QgPSBjb250ZW50c09mUHJvcGVydHlMaXN0QXRVUkwocHJvcGVydHlMaXN0
VVJMLmdldCgpKTsKLQotICAgICAgICBpZiAoIXByb3BlcnR5TGlzdCAmJiBQbHVnaW5Qcm9jZXNz
UHJveHk6OmNyZWF0ZVByb3BlcnR5TGlzdEZpbGUocGx1Z2luKSkKLSAgICAgICAgICAgIHByb3Bl
cnR5TGlzdCA9IGNvbnRlbnRzT2ZQcm9wZXJ0eUxpc3RBdFVSTChwcm9wZXJ0eUxpc3RVUkwuZ2V0
KCkpOwotCi0gICAgICAgIGlmICghcHJvcGVydHlMaXN0KQotICAgICAgICAgICAgcmV0dXJuIDA7
Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmPihD
RkRpY3Rpb25hcnlHZXRWYWx1ZShwcm9wZXJ0eUxpc3QuZ2V0KCksIENGU1RSKCJXZWJQbHVnaW5N
SU1FVHlwZXMiKSkpOwotICAgIH0KLSNlbmRpZgotICAgIAotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxDRkRpY3Rpb25hcnlSZWY+KENGQnVuZGxlR2V0VmFsdWVGb3JJbmZvRGljdGlvbmFyeUtleShi
dW5kbGUsIENGU1RSKCJXZWJQbHVnaW5NSU1FVHlwZXMiKSkpOwotfQotCiBzdGF0aWMgYm9vbCBn
ZXRQbHVnaW5JbmZvRnJvbVByb3BlcnR5TGlzdHMoQ0ZCdW5kbGVSZWYgYnVuZGxlLCBQbHVnaW5N
b2R1bGVJbmZvJiBwbHVnaW4pCiB7Ci0gICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gbWlt
ZVR5cGVzID0gZ2V0TUlNRVR5cGVzRnJvbVBsdWdpbkJ1bmRsZShidW5kbGUsIHBsdWdpbik7Cisg
ICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gbWltZVR5cGVzID0gc3RhdGljX2Nhc3Q8Q0ZE
aWN0aW9uYXJ5UmVmPihDRkJ1bmRsZUdldFZhbHVlRm9ySW5mb0RpY3Rpb25hcnlLZXkoYnVuZGxl
LCBDRlNUUigiV2ViUGx1Z2luTUlNRVR5cGVzIikpKTsKICAgICBpZiAoIW1pbWVUeXBlcyB8fCBD
RkdldFR5cGVJRChtaW1lVHlwZXMuZ2V0KCkpICE9IENGRGljdGlvbmFyeUdldFR5cGVJRCgpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTIwOSwxMiArMTY4LDcgQEAgYm9vbCBOZXRzY2Fw
ZVBsdWdpbk1vZHVsZTo6Z2V0UGx1Z2luSW5mbwogICAgIFJldGFpblB0cjxDRlVSTFJlZj4gYnVu
ZGxlVVJMID0gYWRvcHRDRihDRlVSTENyZWF0ZVdpdGhGaWxlU3lzdGVtUGF0aChrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBwbHVnaW5QYXRoLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIGtDRlVSTFBPU0lY
UGF0aFN0eWxlLCBmYWxzZSkpOwogICAgIAogICAgIC8vIFRyeSB0byBpbml0aWFsaXplIHRoZSBi
dW5kbGUuCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKICAg
ICBSZXRhaW5QdHI8Q0ZCdW5kbGVSZWY+IGJ1bmRsZSA9IGFkb3B0Q0YoX0NGQnVuZGxlQ3JlYXRl
VW5pcXVlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1bmRsZVVSTC5nZXQoKSkpOwotI2Vsc2UKLSAg
ICBSZXRhaW5QdHI8Q0ZCdW5kbGVSZWY+IGJ1bmRsZSA9IGFkb3B0Q0YoQ0ZCdW5kbGVDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVuZGxlVVJMLmdldCgpKSk7Ci0jZW5kaWYKLQogICAgIGlm
ICghYnVuZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQkocmV2aXNpb24gMjE5MDQ4KQor
KysgU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTE3NywxNSArMTc3LDEyIEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXpl
U2FuZGJveChjb24KICAgICB9CiB9CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTEwMAogdm9pZCBDaGlsZFByb2Nlc3M6OnNldFNoYXJlZEhUVFBDb29raWVTdG9y
YWdlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaWRlbnRpZmllcikKIHsKICAgICBSZXRhaW5QdHI8
Q0ZEYXRhUmVmPiBjb29raWVTdG9yYWdlRGF0YSA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGlkZW50aWZpZXIuZGF0YSgpLCBpZGVudGlmaWVyLnNpemUoKSkpOwog
ICAgIFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiB1aVByb2Nlc3NDb29raWVTdG9y
YWdlID0gYWRvcHRDRihDRkhUVFBDb29raWVTdG9yYWdlQ3JlYXRlRnJvbUlkZW50aWZ5aW5nRGF0
YShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjb29raWVTdG9yYWdlRGF0YS5nZXQoKSkpOwogICAgIFtO
U0hUVFBDb29raWVTdG9yYWdlIF9zZXRTaGFyZWRIVFRQQ29va2llU3RvcmFnZTphZG9wdE5TKFtb
TlNIVFRQQ29va2llU3RvcmFnZSBhbGxvY10gX2luaXRXaXRoQ0ZIVFRQQ29va2llU3RvcmFnZTp1
aVByb2Nlc3NDb29raWVTdG9yYWdlLmdldCgpXSkuZ2V0KCldOwogfQotI2VuZGlmCi0KIAogI2lm
IFVTRShBUFBLSVQpCiB2b2lkIENoaWxkUHJvY2Vzczo6c3RvcE5TQXBwUnVuTG9vcCgpCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHAJKHJl
dmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQ
cm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2OSw5ICsxNjksNiBAQCB2b2lkIENoaWxkUHJv
Y2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fY29u
bmVjdGlvbiA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0
aW9uSWRlbnRpZmllciwgKnRoaXMpOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDEwMDAKLSAgICBtX2Nvbm5lY3Rpb24tPnNldFNob3Vs
ZENsb3NlQ29ubmVjdGlvbk9uTWFjaEV4Y2VwdGlvbnMoKTsKLSNlbmRpZgogCiAgICAgY29ubmVj
dGlvbldpbGxPcGVuKCptX2Nvbm5lY3Rpb24pOwogICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOwpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCShyZXZp
c2lvbiAyMTkwNDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94
eS5oCSh3b3JraW5nIGNvcHkpCkBAIC03Miw4ICs3Miw2IEBAIHB1YmxpYzoKICAgICAvLyBUaGUg
dGltZW91dCB3ZSB1c2Ugd2hlbiB3YWl0aW5nIGZvciBhIERpZFVwZGF0ZUdlb21ldHJ5IG1lc3Nh
Z2UuCiAgICAgc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIGRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0
YXRlVGltZW91dCgpIHsgcmV0dXJuIFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoNTAwKTsgfQog
Ci0gICAgdmlydHVhbCB2b2lkIHdhaXRGb3JQb3NzaWJsZUdlb21ldHJ5VXBkYXRlKFNlY29uZHMg
PSBkaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZVRpbWVvdXQoKSkgeyB9Ci0KICAgICB2aXJ0dWFs
IHZvaWQgY29sb3JTcGFjZURpZENoYW5nZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtaW5pbXVt
TGF5b3V0U2l6ZURpZENoYW5nZSgpIHsgfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOTQsNyArMTI5
NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRUb3BDb250ZW50SW5zZXQoZmwKIAogICAgIGlm
ICghaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47Ci0jaWYgSEFWRShDT1JFQU5JTUFUSU9OX0ZF
TkNFUykKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBNYWNoU2VuZFJpZ2h0IGZlbmNlID0gbV9k
cmF3aW5nQXJlYS0+Y3JlYXRlRmVuY2UoKTsKIAogICAgIGF1dG8gZmVuY2VBdHRhY2htZW50ID0g
SVBDOjpBdHRhY2htZW50KGZlbmNlLmxlYWtTZW5kUmlnaHQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZF
X1NFTkQpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAJ
KHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDA0LDE0MCArMTQwNCw2IEBAIHZvaWQgV0tQYWdl
U2V0UGFnZVBvbGljeUNsaWVudChXS1BhZ2VSZWYKICAgICB0b0ltcGwocGFnZVJlZiktPnNldFBv
bGljeUNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFBvbGljeUNsaWVudD4od2tDbGllbnQpKTsKIH0K
IAotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8
PSAxMDEwMDAKLXN0YXRpYyB2b2lkIGZpeFVwQm90Y2hlZFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYg
cGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlJiB3a0NsaWVudCkKLXsKLSAgICBzdHJ1
Y3QgQm90Y2hlZFdLUGFnZVVJQ2xpZW50VjQgewotICAgICAgICBXS1BhZ2VVSUNsaWVudEJhc2Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7Ci0K
LSAgICAgICAgLy8gVmVyc2lvbiAwLgotICAgICAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJh
Y2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2Vf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKLSAgICAgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93UGFnZTsKLSAg
ICAgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjbG9zZTsKLSAgICAgICAgV0tQYWdlVGFrZUZvY3VzQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlRm9jdXM7Ci0g
ICAgICAgIFdLUGFnZUZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZm9jdXM7Ci0gICAgICAgIFdLUGFnZVVuZm9jdXNDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5mb2N1czsKLSAg
ICAgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMCAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnRfZGVwcmVjYXRlZEZvclVzZVdpdGhW
MDsKLSAgICAgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxsYmFja19kZXByZWNhdGVk
Rm9yVXNlV2l0aFYwICAgICAgICAgICBydW5KYXZhU2NyaXB0Q29uZmlybV9kZXByZWNhdGVkRm9y
VXNlV2l0aFYwOwotICAgICAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVj
YXRlZEZvclVzZVdpdGhWMDsKLSAgICAgICAgV0tQYWdlU2V0U3RhdHVzVGV4dENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNUZXh0OwotICAg
ICAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50X2RlcHJlY2F0ZWRGb3JVc2VX
aXRoVjA7Ci0gICAgICAgIFdLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgbWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMDsKLSAgICAgICAgV0tQYWdlRGlkTm90SGFuZGxlS2V5RXZlbnRD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVLZXlF
dmVudDsKLSAgICAgICAgV0tQYWdlRGlkTm90SGFuZGxlV2hlZWxFdmVudENhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVXaGVlbEV2ZW50OwotICAgICAg
ICBXS1BhZ2VHZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRvb2xiYXJzQXJlVmlzaWJsZTsKLSAgICAgICAgV0tQYWdlU2V0VG9vbGJh
cnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRU
b29sYmFyc0FyZVZpc2libGU7Ci0gICAgICAgIFdLUGFnZUdldE1lbnVCYXJJc1Zpc2libGVDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudUJhcklzVmlzaWJsZTsK
LSAgICAgICAgV0tQYWdlU2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZXRNZW51QmFySXNWaXNpYmxlOwotICAgICAgICBXS1BhZ2VH
ZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKLSAgICAgICAgV0tQYWdlU2V0U3RhdHVzQmFySXNWaXNp
YmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNCYXJJ
c1Zpc2libGU7Ci0gICAgICAgIFdLUGFnZUdldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSZXNpemFibGU7Ci0gICAgICAgIFdLUGFn
ZVNldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2V0SXNSZXNpemFibGU7Ci0gICAgICAgIFdLUGFnZUdldFdpbmRvd0ZyYW1lQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0V2luZG93RnJhbWU7
Ci0gICAgICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93RnJhbWU7Ci0gICAgICAgIFdLUGFnZVJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjYgICAg
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOwotICAgICAgICBXS1BhZ2VVSUNsaWVudENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZERyYXc7
Ci0gICAgICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFnZURpZFNjcm9sbDsKLSAgICAgICAgV0tQYWdlRXhjZWVk
ZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
eGNlZWRlZERhdGFiYXNlUXVvdGE7Ci0gICAgICAgIFdLUGFnZVJ1bk9wZW5QYW5lbENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuT3BlblBhbmVsOwot
ICAgICAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
Q2FsbGJhY2sgICAgICAgICAgIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3Q7Ci0gICAgICAgIFdLUGFnZUhlYWRlckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVySGVpZ2h0OwotICAgICAgICBXS1BhZ2VG
b290ZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZvb3RlckhlaWdodDsKLSAgICAgICAgV0tQYWdlRHJhd0hlYWRlckNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3SGVhZGVyOwotICAgICAg
ICBXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRyYXdGb290ZXI7Ci0gICAgICAgIFdLUGFnZVByaW50RnJhbWVDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRGcmFtZTsK
LSAgICAgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBydW5Nb2RhbDsKLSAgICAgICAgdm9pZCogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQx
OyAvLyBVc2VkIHRvIGJlIGRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQotICAgICAg
ICBXS1BhZ2VTYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXI7Ci0gICAgICAgIHZv
aWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdF91bmF2YWlsYWJsZTsKLQotICAgICAg
ICAvLyBWZXJzaW9uIDEuCi0gICAgICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYxICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZTsKLSAgICAg
ICAgV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudDsKLSAgICAgICAgV0tQYWdlRGVj
aWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAg
ICBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKLSAgICAgICAg
V0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMSB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMTsKLQotICAgICAgICAvLyBWZXJzaW9uIDIuCi0gICAgICAgIFdLUGFnZVNob3dDb2xv
clBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hv
d0NvbG9yUGlja2VyOwotICAgICAgICBXS1BhZ2VIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVDb2xvclBpY2tlcjsKLSAgICAg
ICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQ7Ci0KLSAgICAgICAg
Ly8gVmVyc2lvbiAzLgotICAgICAgICBXS1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5nZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpbm5lZFN0YXRlRGlkQ2hhbmdlOwot
Ci0gICAgICAgIC8vIFZlcnNpb24gNC4KLSAgICAgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0
Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgICBydW5KYXZhU2NyaXB0
QWxlcnQ7Ci0gICAgICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tfZGVwcmVj
YXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm07Ci0gICAgICAg
IFdLUGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1
ICAgICAgICAgICAgcnVuSmF2YVNjcmlwdFByb21wdDsKLSAgICB9OwotCi0gICAgY29uc3QgYXV0
byYgYm90Y2hlZFBhZ2VVSUNsaWVudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgQm90Y2hlZFdL
UGFnZVVJQ2xpZW50VjQmPih3a0NsaWVudCk7Ci0KLSAgICBXS1BhZ2VVSUNsaWVudFY1IGZpeGVk
UGFnZVVJQ2xpZW50ID0gewotICAgICAgICB7IDUsIGJvdGNoZWRQYWdlVUlDbGllbnQuYmFzZS5j
bGllbnRJbmZvIH0sCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuY3JlYXRlTmV3UGFnZV9k
ZXByZWNhdGVkRm9yVXNlV2l0aFYwLAotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LnNob3dQ
YWdlLAotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LmNsb3NlLAotICAgICAgICBib3RjaGVk
UGFnZVVJQ2xpZW50LnRha2VGb2N1cywKLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5mb2N1
cywKLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC51bmZvY3VzLAotICAgICAgICBib3RjaGVk
UGFnZVVJQ2xpZW50LnJ1bkphdmFTY3JpcHRBbGVydF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwLAot
ICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LnJ1bkphdmFTY3JpcHRDb25maXJtX2RlcHJlY2F0
ZWRGb3JVc2VXaXRoVjAsCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQucnVuSmF2YVNjcmlw
dFByb21wdF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwLAotICAgICAgICBib3RjaGVkUGFnZVVJQ2xp
ZW50LnNldFN0YXR1c1RleHQsCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQubW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCwKLSAgICAgICAgYm90Y2hlZFBh
Z2VVSUNsaWVudC5taXNzaW5nUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0
aFYwLAotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LmRpZE5vdEhhbmRsZUtleUV2ZW50LAot
ICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LmRpZE5vdEhhbmRsZVdoZWVsRXZlbnQsCi0gICAg
ICAgIGJvdGNoZWRQYWdlVUlDbGllbnQudG9vbGJhcnNBcmVWaXNpYmxlLAotICAgICAgICBib3Rj
aGVkUGFnZVVJQ2xpZW50LnNldFRvb2xiYXJzQXJlVmlzaWJsZSwKLSAgICAgICAgYm90Y2hlZFBh
Z2VVSUNsaWVudC5tZW51QmFySXNWaXNpYmxlLAotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50
LnNldE1lbnVCYXJJc1Zpc2libGUsCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuc3RhdHVz
QmFySXNWaXNpYmxlLAotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LnNldFN0YXR1c0Jhcklz
VmlzaWJsZSwKLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5pc1Jlc2l6YWJsZSwKLSAgICAg
ICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5zZXRJc1Jlc2l6YWJsZSwKLSAgICAgICAgYm90Y2hlZFBh
Z2VVSUNsaWVudC5nZXRXaW5kb3dGcmFtZSwKLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5z
ZXRXaW5kb3dGcmFtZSwKLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5ydW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwsCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuZGlkRHJhdywKLSAg
ICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5wYWdlRGlkU2Nyb2xsLAotICAgICAgICBib3RjaGVk
UGFnZVVJQ2xpZW50LmV4Y2VlZGVkRGF0YWJhc2VRdW90YSwKLSAgICAgICAgYm90Y2hlZFBhZ2VV
SUNsaWVudC5ydW5PcGVuUGFuZWwsCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuZGVjaWRl
UG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCwKLSAgICAgICAgYm90Y2hlZFBh
Z2VVSUNsaWVudC5oZWFkZXJIZWlnaHQsCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuZm9v
dGVySGVpZ2h0LAotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LmRyYXdIZWFkZXIsCi0gICAg
ICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuZHJhd0Zvb3RlciwKLSAgICAgICAgYm90Y2hlZFBhZ2VV
SUNsaWVudC5wcmludEZyYW1lLAotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LnJ1bk1vZGFs
LAotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LnVudXNlZDEsCi0gICAgICAgIGJvdGNoZWRQ
YWdlVUlDbGllbnQuc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlciwKLSAgICAgICAgYm90
Y2hlZFBhZ2VVSUNsaWVudC5zaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0X3VuYXZhaWxhYmxlLAot
ICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LmNyZWF0ZU5ld1BhZ2UsCi0gICAgICAgIGJvdGNo
ZWRQYWdlVUlDbGllbnQubW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQsCi0gICAgICAgIGJvdGNoZWRQ
YWdlVUlDbGllbnQuZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Qs
Ci0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQudW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlj
a2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEsCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQu
c2hvd0NvbG9yUGlja2VyLAotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LmhpZGVDb2xvclBp
Y2tlciwKLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC51bmF2YWlsYWJsZVBsdWdpbkJ1dHRv
bkNsaWNrZWQsCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQucGlubmVkU3RhdGVEaWRDaGFu
Z2UsCi0gICAgICAgIG51bGxwdHIsCi0gICAgICAgIG51bGxwdHIsCi0gICAgICAgIG51bGxwdHIs
Ci0gICAgICAgIG51bGxwdHIsCi0gICAgICAgIG51bGxwdHIsCi0gICAgICAgIG51bGxwdHIsCi0g
ICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQucnVuSmF2YVNjcmlwdEFsZXJ0LAotICAgICAgICBi
b3RjaGVkUGFnZVVJQ2xpZW50LnJ1bkphdmFTY3JpcHRDb25maXJtLAotICAgICAgICBib3RjaGVk
UGFnZVVJQ2xpZW50LnJ1bkphdmFTY3JpcHRQcm9tcHQsCi0gICAgICAgIG51bGxwdHIsCi0gICAg
fTsKLQotICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChwYWdlUmVmLCAmZml4ZWRQYWdlVUlDbGll
bnQuYmFzZSk7Ci19Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbFJlc3VsdExpc3RlbmVyIDogcHVibGljIEFQSTo6T2JqZWN0
SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsUmVzdWx0
TGlzdGVuZXI+IHsKQEAgLTE2ODksMTMgKzE1NTUsNiBAQCB2b2lkIFdLUGFnZVJ1bkphdmFTY3Jp
cHRQcm9tcHRSZXN1bHRMaXN0CiAKIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJl
ZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50KQogewotI2lmIFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDEwMDAK
LSAgICBpZiAod2tDbGllbnQgJiYgd2tDbGllbnQtPnZlcnNpb24gPT0gNCkgewotICAgICAgICBm
aXhVcEJvdGNoZWRQYWdlVUlDbGllbnQocGFnZVJlZiwgKndrQ2xpZW50KTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLSNlbmRpZgotCiAgICAgY2xhc3MgVUlDbGllbnQgOiBwdWJsaWMgQVBJOjpD
bGllbnQ8V0tQYWdlVUlDbGllbnRCYXNlPiwgcHVibGljIEFQSTo6VUlDbGllbnQgewogICAgIHB1
YmxpYzoKICAgICAgICAgZXhwbGljaXQgVUlDbGllbnQoY29uc3QgV0tQYWdlVUlDbGllbnRCYXNl
KiBjbGllbnQpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTIzNiwxMSArMjM2LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0
aWFsaXplVwogICAgICAgICAgICAgWyhOU0RhdGEgKilkYXRhIHJlbGVhc2VdOwogICAgICAgICB9
LCBkYXRhLmxlYWtSZWYoKSk7CiAgICAgfQotI2lmIFRBUkdFVF9PU19JUEhPTkUgfHwgKFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApCiAg
ICAgcGFyYW1ldGVycy5uZXR3b3JrQVRTQ29udGV4dCA9IGFkb3B0Q0YoX0NGTmV0d29ya0NvcHlB
VFNDb250ZXh0KCkpOwotI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCisjaWYgUExBVEZPUk0oTUFDKQogICAgIFJl
dGFpblB0cjxDRkRhdGFSZWY+IGNvb2tpZVN0b3JhZ2VEYXRhID0gYWRvcHRDRihDRkhUVFBDb29r
aWVTdG9yYWdlQ3JlYXRlSWRlbnRpZnlpbmdEYXRhKGtDRkFsbG9jYXRvckRlZmF1bHQsIFtbTlNI
VFRQQ29va2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gX2Nvb2tpZVN0b3JhZ2Vd
KSk7CiAgICAgQVNTRVJUKHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZp
ZXIuaXNFbXB0eSgpKTsKICAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVu
dGlmaWVyLmFwcGVuZChDRkRhdGFHZXRCeXRlUHRyKGNvb2tpZVN0b3JhZ2VEYXRhLmdldCgpKSwg
Q0ZEYXRhR2V0TGVuZ3RoKGNvb2tpZVN0b3JhZ2VEYXRhLmdldCgpKSk7CkBAIC0yODAsOSArMjc4
LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTgogCiAgICAgcGFy
YW1ldGVycy5odHRwUHJveHkgPSBbZGVmYXVsdHMgc3RyaW5nRm9yS2V5OldlYktpdDJIVFRQUHJv
eHlEZWZhdWx0c0tleV07CiAgICAgcGFyYW1ldGVycy5odHRwc1Byb3h5ID0gW2RlZmF1bHRzIHN0
cmluZ0ZvcktleTpXZWJLaXQySFRUUFNQcm94eURlZmF1bHRzS2V5XTsKLSNpZiBUQVJHRVRfT1Nf
SVBIT05FIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMTAwKQogICAgIHBhcmFtZXRlcnMubmV0d29ya0FUU0NvbnRleHQgPSBhZG9wdENG
KF9DRk5ldHdvcmtDb3B5QVRTQ29udGV4dCgpKTsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKE5FVFdP
UktfQ0FDSEUpCiAgICAgcGFyYW1ldGVycy5zaG91bGRFbmFibGVOZXR3b3JrQ2FjaGUgPSBpc05l
dHdvcmtDYWNoZUVuYWJsZWQoKTsKQEAgLTI5OCw3ICsyOTQsNyBAQCB2b2lkIFdlYlByb2Nlc3NQ
b29sOjpwbGF0Zm9ybUluaXRpYWxpemVOCiAgICAgcGFyYW1ldGVycy5zaG91bGRTdXBwcmVzc01l
bW9yeVByZXNzdXJlSGFuZGxlciA9IFtkZWZhdWx0cyBib29sRm9yS2V5OldlYktpdFN1cHByZXNz
TWVtb3J5UHJlc3N1cmVIYW5kbGVyRGVmYXVsdHNLZXldOwogICAgIHBhcmFtZXRlcnMubG9hZFRo
cm90dGxlTGF0ZW5jeSA9IFNlY29uZHMgeyBbZGVmYXVsdHMgaW50ZWdlckZvcktleTpXZWJLaXRO
ZXR3b3JrTG9hZFRocm90dGxlTGF0ZW5jeU1pbGxpc2Vjb25kc0RlZmF1bHRzS2V5XSAvIDEwMDAu
IH07CiAKLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMTAwCisjaWYgUExBVEZPUk0oTUFDKQogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+
IGNvb2tpZVN0b3JhZ2VEYXRhID0gYWRvcHRDRihDRkhUVFBDb29raWVTdG9yYWdlQ3JlYXRlSWRl
bnRpZnlpbmdEYXRhKGtDRkFsbG9jYXRvckRlZmF1bHQsIFtbTlNIVFRQQ29va2llU3RvcmFnZSBz
aGFyZWRIVFRQQ29va2llU3RvcmFnZV0gX2Nvb2tpZVN0b3JhZ2VdKSk7CiAgICAgQVNTRVJUKHBh
cmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIuaXNFbXB0eSgpKTsKICAg
ICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLmFwcGVuZChDRkRh
dGFHZXRCeXRlUHRyKGNvb2tpZVN0b3JhZ2VEYXRhLmdldCgpKSwgQ0ZEYXRhR2V0TGVuZ3RoKGNv
b2tpZVN0b3JhZ2VEYXRhLmdldCgpKSk7CkBAIC01OTksOSArNTk1LDcgQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cmVzZXRIU1RTSG9zdHNBZGRlZAogewogICAgIE5TRGF0ZSAqc3RhcnREYXRlID0g
W05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDpzdGFydERhdGVJbnRlcnZhbFNp
bmNlMTk3MF07CiAgICAgX0NGTmV0d29ya1Jlc2V0SFNUU0hvc3RzU2luY2VEYXRlKG51bGxwdHIs
IChfX2JyaWRnZSBDRkRhdGVSZWYpc3RhcnREYXRlKTsKLSNpZiBQTEFURk9STShJT1MpIHx8IChQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAw
KQogICAgIF9DRk5ldHdvcmtSZXNldEhTVFNIb3N0c1NpbmNlRGF0ZShwcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKCksIChfX2JyaWRnZSBDRkRhdGVSZWYpc3RhcnREYXRlKTsKLSNlbmRpZgogfQogCiB2
b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRDb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZChi
b29sIGVuYWJsZWQpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwuaAkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwMiw5ICs0MDIsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCByZWdpc3RlckRyYWdnZWRUeXBlcygpOwogI2VuZGlmCiAKLSNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAogICAgIHZvaWQgc3RhcnRX
aW5kb3dEcmFnKCk7Ci0jZW5kaWYKIAogICAgIHZvaWQgZHJhZ0ltYWdlRm9yVmlldyhOU1ZpZXcg
KiwgTlNJbWFnZSAqLCBDR1BvaW50IGNsaWVudFBvaW50LCBib29sIGxpbmtEcmFnKTsKICAgICB2
b2lkIHNldEZpbGVBbmRVUkxUeXBlcyhOU1N0cmluZyAqZmlsZW5hbWUsIE5TU3RyaW5nICpleHRl
bnNpb24sIE5TU3RyaW5nICp0aXRsZSwgTlNTdHJpbmcgKnVybCwgTlNTdHJpbmcgKnZpc2libGVV
UkwsIE5TUGFzdGVib2FyZCAqKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0JKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTYwNyw5
ICsxNjA3LDYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlTGF5ZXIoKQogICAgIC8vIHVkcGF0
ZSByZXNwb25zZSBpZiBzZXRGcmFtZVNpemUgaXMgY2FsbGVkLgogICAgIGlmIChmcmFtZVNpemVV
cGRhdGVzRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKERyYXdpbmdBcmVh
UHJveHkqIGRyYXdpbmdBcmVhID0gbV9wYWdlLT5kcmF3aW5nQXJlYSgpKQotICAgICAgICBkcmF3
aW5nQXJlYS0+d2FpdEZvclBvc3NpYmxlR2VvbWV0cnlVcGRhdGUoKTsKIH0KIAogdm9pZCBXZWJW
aWV3SW1wbDo6ZHJhd1JlY3QoQ0dSZWN0IHJlY3QpCkBAIC0zNzY3LDEyICszNzY0LDEwIEBAIHZv
aWQgV2ViVmlld0ltcGw6OnJlZ2lzdGVyRHJhZ2dlZFR5cGVzKCkKIH0KICNlbmRpZiAvLyBFTkFC
TEUoRFJBR19TVVBQT1JUKQogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDExMDAKIHZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0V2luZG93RHJhZygpCiB7CiAgICAgW21f
dmlldy53aW5kb3cgcGVyZm9ybVdpbmRvd0RyYWdXaXRoRXZlbnQ6bV9sYXN0TW91c2VEb3duRXZl
bnQuZ2V0KCldOwogfQotI2VuZGlmCiAKIHZvaWQgV2ViVmlld0ltcGw6OmRyYWdJbWFnZUZvclZp
ZXcoTlNWaWV3ICp2aWV3LCBOU0ltYWdlICppbWFnZSwgQ0dQb2ludCBjbGllbnRQb2ludCwgYm9v
bCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjE4LDkgKzIxOCw2IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRGaW5p
c2hMYXVuY2gKICAgICB9CiAKICAgICBtX2Nvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246OmNy
ZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKTsKLSNpZiBQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTAxMDAw
Ci0gICAgbV9jb25uZWN0aW9uLT5zZXRTaG91bGRDbG9zZUNvbm5lY3Rpb25Pbk1hY2hFeGNlcHRp
b25zKCk7Ci0jZW5kaWYKIAogICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOwogICAgIApJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c1Byb3h5LmgJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NywxMSArODcs
NiBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBzZXRQcm9jZXNzU3Vw
cHJlc3Npb25FbmFibGVkKGJvb2wpOwogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA8PSAxMDEwMDAKLSAgICAvLyBDcmVhdGVzIGEgcHJvcGVydHkgbGlzdCBpbiB+L0xpYnJh
cnkvUHJlZmVyZW5jZXMgdGhhdCBjb250YWlucyBhbGwgdGhlIE1JTUUgdHlwZXMgc3VwcG9ydGVk
IGJ5IHRoZSBwbHVnLWluLgotICAgIHN0YXRpYyBib29sIGNyZWF0ZVByb3BlcnR5TGlzdEZpbGUo
Y29uc3QgUGx1Z2luTW9kdWxlSW5mbyYpOwotI2VuZGlmCi0KICNlbmRpZgogCiAjaWYgUExVR0lO
X0FSQ0hJVEVDVFVSRShYMTEpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lu
cy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0JKHJldmlz
aW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVn
aW5Qcm9jZXNzUHJveHlNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTU5LDQyICs1OSw2IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAKLSNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwMTAwMAotYm9vbCBQbHVnaW5Qcm9j
ZXNzUHJveHk6OmNyZWF0ZVByb3BlcnR5TGlzdEZpbGUoY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYg
cGx1Z2luKQotewotICAgIENTdHJpbmcgcGx1Z2luUGF0aFN0cmluZyA9IGZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbihwbHVnaW4ucGF0aCk7Ci0KLSAgICBwb3NpeF9zcGF3bmF0dHJfdCBhdHRyOwot
ICAgIHBvc2l4X3NwYXduYXR0cl9pbml0KCZhdHRyKTsKLQotICAgIGNwdV90eXBlX3QgY3B1VHlw
ZXNbXSA9IHsgcGx1Z2luLnBsdWdpbkFyY2hpdGVjdHVyZSB9OyAgICAKLSAgICBzaXplX3Qgb3V0
Q291bnQgPSAwOwotICAgIHBvc2l4X3NwYXduYXR0cl9zZXRiaW5wcmVmX25wKCZhdHRyLCAxLCBj
cHVUeXBlcywgJm91dENvdW50KTsKLQotICAgIHBvc2l4X3NwYXduYXR0cl9zZXRmbGFncygmYXR0
ciwgUE9TSVhfU1BBV05fQ0xPRVhFQ19ERUZBVUxUKTsKLQotICAgIGNvbnN0IGNoYXIqIGFyZ3Nb
XSA9IHsgIi9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1dlYktpdC5mcmFtZXdvcmsvUGx1Z2lu
UHJvY2Vzcy5hcHAvQ29udGVudHMvTWFjT1MvUGx1Z2luUHJvY2VzcyIsICIvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9XZWJLaXQuZnJhbWV3b3JrL1dlYktpdCIsICItdHlwZSIsICJwbHVnaW5w
cm9jZXNzIiwgIi1jcmVhdGVQbHVnaW5NSU1FVHlwZXNQcmVmZXJlbmNlcyIsIHBsdWdpblBhdGhT
dHJpbmcuZGF0YSgpLCAwIH07Ci0KLSAgICBwaWRfdCBwaWQ7Ci0gICAgaW50IHJlc3VsdCA9IHBv
c2l4X3NwYXduKCZwaWQsIGFyZ3NbMF0sIDAsICZhdHRyLCBjb25zdF9jYXN0PGNoYXIqIGNvbnN0
Kj4oYXJncyksIG51bGxwdHIpOwotICAgIHBvc2l4X3NwYXduYXR0cl9kZXN0cm95KCZhdHRyKTsK
LQotICAgIGlmIChyZXN1bHQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpbnQgc3RhdHVz
OwotICAgIGlmICh3YWl0cGlkKHBpZCwgJnN0YXR1cywgMCkgPCAwKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBpZiAoIVdJRkVYSVRFRChzdGF0dXMpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICBpZiAoV0VYSVRTVEFUVVMoc3RhdHVzKSAhPSBFWElUX1NVQ0NFU1MpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOwotfQotI2VuZGlmCi0KIHZvaWQg
UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5j
aGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zLCBjb25zdCBQbHVnaW5Qcm9jZXNzQXR0
cmlidXRlcyYgcGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMpCiB7CiAgICAgaWYgKHBsdWdpblByb2Nl
c3NBdHRyaWJ1dGVzLm1vZHVsZUluZm8ucGx1Z2luQXJjaGl0ZWN0dXJlID09IENQVV9UWVBFX1g4
NikKQEAgLTEyMCw5ICs4NCw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUlu
aXRpYWwKICNpZiBIQVZFKEhPU1RFRF9DT1JFX0FOSU1BVElPTikKICAgICBwYXJhbWV0ZXJzLmFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdQb3J0ID0gTWFjaFNlbmRSaWdodDo6Y3JlYXRlKFtDQVJlbW90
ZUxheWVyU2VydmVyIHNoYXJlZFNlcnZlcl0uc2VydmVyUG9ydCk7CiAjZW5kaWYKLSNpZiBUQVJH
RVRfT1NfSVBIT05FIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMTAwKQogICAgIHBhcmFtZXRlcnMubmV0d29ya0FUU0NvbnRleHQgPSBh
ZG9wdENGKF9DRk5ldHdvcmtDb3B5QVRTQ29udGV4dCgpKTsKLSNlbmRpZgogfQogCiBib29sIFBs
dWdpblByb2Nlc3NQcm94eTo6Z2V0UGx1Z2luUHJvY2Vzc1NlcmlhbE51bWJlcihQcm9jZXNzU2Vy
aWFsTnVtYmVyJiBwbHVnaW5Qcm9jZXNzU2VyaWFsTnVtYmVyKQpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCShyZXZpc2lvbiAyMTkwNDgp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MTYsMTQgKzQxNiwxMiBAQCBJbnRSZWN0IFBhZ2VDbGllbnRJbXBsOjpy
b290Vmlld1RvU2NyZWVuCiAgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QodGVtcFJlY3QpOwog
fQogCi0jaWYgUExBVEZPUk0oTUFDKQogSW50UmVjdCBQYWdlQ2xpZW50SW1wbDo6cm9vdFZpZXdU
b1dpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQogewogICAgIE5TUmVjdCB0ZW1w
UmVjdCA9IHJlY3Q7CiAgICAgdGVtcFJlY3QgPSBbbV92aWV3IGNvbnZlcnRSZWN0OnRlbXBSZWN0
IHRvVmlldzpuaWxdOwogICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KHRlbXBSZWN0KTsKIH0K
LSNlbmRpZgogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5h
dGl2ZVdlYktleWJvYXJkRXZlbnQmIGV2ZW50LCBib29sIGV2ZW50V2FzSGFuZGxlZCkKIHsKQEAg
LTg0MSw5ICs4MzksNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkZXJlZlZpZXcoKQogCiB2b2lk
IFBhZ2VDbGllbnRJbXBsOjpzdGFydFdpbmRvd0RyYWcoKQogewotI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCiAgICAgbV9pbXBsLT5zdGFydFdpbmRvd0RyYWco
KTsKLSNlbmRpZgogfQogCiBOU1dpbmRvdyAqUGFnZUNsaWVudEltcGw6OnBsYXRmb3JtV2luZG93
KCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlV2ViSW5zcGVjdG9y
UHJveHlNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9S
ZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbQkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbQkod29y
a2luZyBjb3B5KQpAQCAtMjIxLDkgKzIyMSw3IEBAIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtQXAKIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1T
dGFydFdpbmRvd0RyYWcoKQogewotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxMTAwCiAgICAgbV93ZWJWaWV3LT5fcGFnZS0+c3RhcnRXaW5kb3dEcmFnKCk7Ci0jZW5k
aWYKIH0KIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuSW5OZXdU
YWIoY29uc3QgU3RyaW5nJiB1cmwpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJv
eHkuaAkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9U
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQw
LDcgKzQwLDYgQEAgcHJpdmF0ZToKICAgICAvLyBEcmF3aW5nQXJlYVByb3h5CiAgICAgdm9pZCBk
ZXZpY2VTY2FsZUZhY3RvckRpZENoYW5nZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgc2l6ZURpZENo
YW5nZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgd2FpdEZvclBvc3NpYmxlR2VvbWV0cnlVcGRhdGUo
U2Vjb25kcyB0aW1lb3V0ID0gZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGVUaW1lb3V0KCkpIG92
ZXJyaWRlOwogICAgIHZvaWQgY29sb3JTcGFjZURpZENoYW5nZSgpIG92ZXJyaWRlOwogICAgIHZv
aWQgbWluaW11bUxheW91dFNpemVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKIApJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03MSwxOSArNzEsNiBAQCB2b2lkIFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhUHJveHk6CiAgICAgc2VuZFVwZGF0ZUdlb21ldHJ5KCk7CiB9CiAKLXZv
aWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6d2FpdEZvclBvc3NpYmxlR2Vv
bWV0cnlVcGRhdGUoU2Vjb25kcyB0aW1lb3V0KQotewotI2lmICFIQVZFKENPUkVBTklNQVRJT05f
RkVOQ0VTKQotICAgIGlmICghbV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVHZW9tZXRyeSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgaWYgKG1fd2ViUGFnZVByb3h5LnByb2Nlc3MoKS5zdGF0ZSgpICE9
IFdlYlByb2Nlc3NQcm94eTo6U3RhdGU6OlJ1bm5pbmcpCi0gICAgICAgIHJldHVybjsKLQotICAg
IG1fd2ViUGFnZVByb3h5LnByb2Nlc3MoKS5jb25uZWN0aW9uKCktPndhaXRGb3JBbmREaXNwYXRj
aEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpEcmF3aW5nQXJlYVByb3h5OjpEaWRVcGRhdGVHZW9tZXRy
eT4obV93ZWJQYWdlUHJveHkucGFnZUlEKCksIHRpbWVvdXQsIElQQzo6V2FpdEZvck9wdGlvbjo6
SW50ZXJydXB0V2FpdGluZ0lmU3luY01lc3NhZ2VBcnJpdmVzKTsKLSNlbmRpZgotfQotCiB2b2lk
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmNvbG9yU3BhY2VEaWRDaGFuZ2Uo
KQogewogICAgIG1fd2ViUGFnZVByb3h5LnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpEcmF3aW5n
QXJlYTo6U2V0Q29sb3JTcGFjZShtX3dlYlBhZ2VQcm94eS5jb2xvclNwYWNlKCkpLCBtX3dlYlBh
Z2VQcm94eS5wYWdlSUQoKSk7CkBAIC0xNTMsNyArMTQwLDYgQEAgdm9pZCBUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5OgogCiBNYWNoU2VuZFJpZ2h0IFRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhUHJveHk6OmNyZWF0ZUZlbmNlKCkKIHsKLSNpZiBIQVZFKENPUkVBTklNQVRJ
T05fRkVOQ0VTKQogICAgIGlmICghbV93ZWJQYWdlUHJveHkuaXNWYWxpZCgpKQogICAgICAgICBy
ZXR1cm4gTWFjaFNlbmRSaWdodCgpOwogCkBAIC0xODksOSArMTc1LDYgQEAgTWFjaFNlbmRSaWdo
dCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQQogICAgIH0gZm9yUGhhc2U6a0NBVHJhbnNhY3Rp
b25QaGFzZVBvc3RDb21taXRdOwogCiAgICAgcmV0dXJuIGZlbmNlUG9ydDsKLSNlbHNlCi0gICAg
cmV0dXJuIE1hY2hTZW5kUmlnaHQoKTsKLSNlbmRpZgogfQogCiB2b2lkIFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhUHJveHk6OnNlbmRVcGRhdGVHZW9tZXRyeSgpCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0J
KHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5z
cGVjdG9yUHJveHlNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTIyOSwxMiArMjI5LDEwIEBAIFJl
dGFpblB0cjxOU1dpbmRvdz4gV2ViSW5zcGVjdG9yUHJveHk6OmMKICAgICBbd2luZG93IHNldFJl
bGVhc2VkV2hlbkNsb3NlZDpOT107CiAgICAgW3dpbmRvdyBzZXRDb2xsZWN0aW9uQmVoYXZpb3I6
KFt3aW5kb3cgY29sbGVjdGlvbkJlaGF2aW9yXSB8IE5TV2luZG93Q29sbGVjdGlvbkJlaGF2aW9y
RnVsbFNjcmVlblByaW1hcnkpXTsKIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMTAwCiAgICAgQ0dGbG9hdCBhcHByb3hpbWF0ZWx5SGFsZlNjcmVlblNpemUgPSAo
W3dpbmRvdyBzY3JlZW5dLmZyYW1lLnNpemUud2lkdGggLyAyKSAtIDQ7CiAgICAgQ0dGbG9hdCBt
aW5pbXVtRnVsbFNjcmVlbldpZHRoID0gc3RkOjptYXg8Q0dGbG9hdD4oNjM2LCBhcHByb3hpbWF0
ZWx5SGFsZlNjcmVlblNpemUpOwogICAgIFt3aW5kb3cgc2V0TWluRnVsbFNjcmVlbkNvbnRlbnRT
aXplOk5TTWFrZVNpemUobWluaW11bUZ1bGxTY3JlZW5XaWR0aCwgbWluaW11bVdpbmRvd0hlaWdo
dCldOwogICAgIFt3aW5kb3cgc2V0Q29sbGVjdGlvbkJlaGF2aW9yOihbd2luZG93IGNvbGxlY3Rp
b25CZWhhdmlvcl0gfCBOU1dpbmRvd0NvbGxlY3Rpb25CZWhhdmlvckZ1bGxTY3JlZW5BbGxvd3NU
aWxpbmcpXTsKLSNlbmRpZgogCiAgICAgW3dpbmRvdyBzZXRUaXRsZWJhckFwcGVhcnNUcmFuc3Bh
cmVudDpZRVNdOwogCkBAIC02ODcsOSArNjg1LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6
cGxhdGZvcm1TZXRBdHRhYwogCiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVN0YXJ0
V2luZG93RHJhZygpCiB7Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDExMDAKICAgICBtX2luc3BlY3RvclZpZXctPl9wYWdlLT5zdGFydFdpbmRvd0RyYWcoKTsKLSNl
bmRpZgogfQogCiBTdHJpbmcgV2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RvclBhZ2VVUkwoKQpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVu
dVByb3h5TWFjLm1tCShyZXZpc2lvbiAyMTkwNDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsOSAr
MTEyLDcgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudQogICAgIFtt
X3BvcHVwIHNldFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb246dGV4dERpcmVjdGlvbiA9PSBM
VFIgPyBOU1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5TVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvblJpZ2h0VG9MZWZ0XTsKIAogICAgIE5TTWVudSAqbWVudSA9
IFttX3BvcHVwIG1lbnVdOwotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMTAwCiAgICAgW21lbnUgc2V0VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbjp0ZXh0RGly
ZWN0aW9uID09IExUUiA/IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbkxlZnRUb1JpZ2h0
IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnRdOwotI2VuZGlmCiAK
ICAgICAvLyBUaGVzZSB2YWx1ZXMgd2VyZSBib3Jyb3dlZCBmcm9tIEFwcEtpdCB0byBtYXRjaCB0
aGVpciBwbGFjZW1lbnQgb2YgdGhlIG1lbnUuCiAgICAgY29uc3QgaW50IHBvcE92ZXJIb3Jpem9u
dGFsQWRqdXN0ID0gLTEzOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0y
NDc0LDggKzI0NzQsNiBAQAogCQkxQTY2QkY4RTE4QTA1MkVEMDAyMDcxQjQgLyogV0tXZWJWaWV3
SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJWaWV3SW50
ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE2N0NEMkQxQ0JDNTEzRjAw
QkZFM0VBIC8qIFdLT3BlblBhbmVsUGFyYW1ldGVyc0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLT3BlblBhbmVsUGFyYW1ldGVyc0ludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNjk4RjE3MUU0OTEwMjIwMDY0RTg4MSAvKiBDaGls
ZFByb2Nlc3NDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IENoaWxkUHJvY2Vzc0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQTZE
MTQxRjFCMDE2N0Q1MDA3ODVGRjAgLyogSW5mby1PU1gtMTAuOS0xMC4xMC5wbGlzdCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0gIkluZm8tT1NYLTEwLjktMTAuMTAucGxpc3QiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQTZEMTQyMTFCMDE2ODE2MDA3ODVGRjAgLyog
UGx1Z2luU2VydmljZS4zMi02NC0xMC45LTEwLjEwLkluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
LnBsaXN0LnhtbDsgbmFtZSA9ICJQbHVnaW5TZXJ2aWNlLjMyLTY0LTEwLjktMTAuMTAuSW5mby5w
bGlzdCI7IHBhdGggPSAiUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1Bs
dWdpblNlcnZpY2UuMzItNjQtMTAuOS0xMC4xMC5JbmZvLnBsaXN0Ijsgc291cmNlVHJlZSA9IFNP
VVJDRV9ST09UOyB9OwogCQkxQTZEODZCRjFERjc1MjY1MDA3NzQ1RTggLyogTWFjaE1lc3NhZ2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWFjaE1lc3NhZ2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTZEODZDMDFERjc1MjY1MDA3NzQ1RTgg
LyogTWFjaE1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFjaE1l
c3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE2RkEyMUQxQkQwNDM1QjAw
QUFBNjUwIC8qIFdLRnJhbWVJbmZvUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS0ZyYW1lSW5mb1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTI0OTQsNyArMjQ5Miw2IEBACiAJCTFBNzg2NUI4MTZDQUM3MTUwMEFDRTgzQSAvKiBQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXJNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTdDMERGNDFCN0QxRjEwMDBBOUI4NDggLyog
V0tXaW5kb3dGZWF0dXJlc1JlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXS1dpbmRvd0ZlYXR1cmVzUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUE3QzBERjUxQjdEMUYxMDAwQTlCODQ4IC8qIFdLV2luZG93RmVhdHVyZXNSZWYuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXaW5kb3dGZWF0dXJlc1JlZi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQTdEQTU0RDFBRkQ4QjM4MDAxODIzOUQgLyogSW5m
by1PU1gtMTAuOS0xMC4xMC5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0g
IkluZm8tT1NYLTEwLjktMTAuMTAucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxQTdFMzc3NDE4RTRBMzNBMDAzRDBGRkYgLyogV0tTY3JpcHRNZXNzYWdlSGFuZGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBN0UzNzc2MThFNEE0RkUwMDNEMEZGRiAv
KiBXS1NjcmlwdE1lc3NhZ2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXS1NjcmlwdE1lc3NhZ2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFB
N0UzNzc3MThFNEE0RkUwMDNEMEZGRiAvKiBXS1NjcmlwdE1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTY3JpcHRNZXNzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC03NDYxLDcgKzc0NTgsNiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKIAkJCQkyNjY1OUFBMDE4NUZBQUVEMDA0MzAzREQgLyogSW5mby1pT1MucGxp
c3QgKi8sCi0JCQkJMUE2RDE0MUYxQjAxNjdENTAwNzg1RkYwIC8qIEluZm8tT1NYLTEwLjktMTAu
MTAucGxpc3QgKi8sCiAJCQkJQkM4MjgzQTMxNkI0QkQ5MTAwQTI3OEZFIC8qIEluZm8tT1NYLnBs
aXN0ICovLAogCQkJKTsKIAkJCXBhdGggPSBOZXR3b3JrU2VydmljZTsKQEAgLTc0ODAsNyArNzQ3
Niw2IEBACiAJCUJDODI4M0U5MTZCNEY4RTIwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQkxQTZEMTQyMTFCMDE2
ODE2MDA3ODVGRjAgLyogUGx1Z2luU2VydmljZS4zMi02NC0xMC45LTEwLjEwLkluZm8ucGxpc3Qg
Ki8sCiAJCQkJQkNGQ0E4OTUxNkRFOTZDQjAwMDc0MDY5IC8qIFBsdWdpblNlcnZpY2UuMzItNjQu
SW5mby5wbGlzdCAqLywKIAkJCSk7CiAJCQluYW1lID0gUGx1Z2luU2VydmljZTsKQEAgLTc1NjMs
NyArNzU1OCw2IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTM3
NUZCNDczMTg4MzQxNTYwMEJFMzRENCAvKiBJbmZvLWlPUy5wbGlzdCAqLywKLQkJCQkxQTdEQTU0
RDFBRkQ4QjM4MDAxODIzOUQgLyogSW5mby1PU1gtMTAuOS0xMC4xMC5wbGlzdCAqLywKIAkJCQlC
Q0FDQzQ0MDE2QjI0Q0FBMDBCNkUwOTIgLyogSW5mby1PU1gucGxpc3QgKi8sCiAJCQkpOwogCQkJ
cGF0aCA9IFdlYkNvbnRlbnRTZXJ2aWNlOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCShyZXZpc2lvbiAyMTkwNDgp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw2IEBACiAoYWxsb3cgcHJvY2Vzcy1jb2Rlc2ln
bmluZy1zdGF0dXMqKQogI2VuZGlmCiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTEwMAogKGRlbnkgc3lzY3RsKikKIChhbGxvdyBzeXNjdGwtcmVhZAogICAgIChz
eXNjdGwtbmFtZQpAQCAtMTg0LDcgKzE4Myw2IEBACiAgICAgKGlva2l0LXByb3BlcnR5ICJzdGFy
dHVwLXRpbWluZyIpCiAgICAgKGlva2l0LXByb3BlcnR5ICJ0b3VjaC1zaXplLWlkIikKICkKLSNl
bmRpZgogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDAKIChk
ZW55IG1hY2gtbG9va3VwICh4cGMtc2VydmljZS1uYW1lLXByZWZpeCAiIikpCkBAIC0zODksOSAr
Mzg3LDYgQEAKICAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5TeXN0ZW1Db25maWd1cmF0
aW9uLmNvbmZpZ2QiKQogICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLlN5c3RlbUNvbmZp
Z3VyYXRpb24uUFBQQ29udHJvbGxlciIpCiAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUu
YXVkaW8uU3lzdGVtU291bmRTZXJ2ZXItT1NYIikKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEIDwgMTAxMTAwCi0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuYXVkaW8u
VkRDQXNzaXN0YW50IikKLSNlbmRpZgogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMzAwCiAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuYW5hbHl0aWNzZCIp
CiAjZW5kaWYKQEAgLTQwOCwxMCArNDAzLDggQEAKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTIwMAogICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLm1lZGlh
cmVtb3RlZC54cGMiKQogI2VuZGlmCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDExMDAKICAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sc2QubWFwZGIiKQog
ICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFnZXIuZmxvdy1kaXZl
cnQtdG9rZW4iKQotI2VuZGlmCiAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuc3BlZWNo
LnNwZWVjaHN5bnRoZXNpc2QiKQogICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnNwZWVj
aC5zeW50aGVzaXMuY29uc29sZSIpCiAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuc3lz
dGVtLm9wZW5kaXJlY3RvcnlkLmFwaSIpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby1PU1gtMTAu
OS0xMC4xMC5wbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby1PU1gtMTAuOS0x
MC4xMC5wbGlzdAkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNlL0luZm8tT1NYLTEw
LjktMTAuMTAucGxpc3QJKG5vbmV4aXN0ZW50KQpAQCAtMSw1OCArMCwwIEBACi08P3htbCB2ZXJz
aW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8v
QXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9w
ZXJ0eUxpc3QtMS4wLmR0ZCI+Ci08cGxpc3QgdmVyc2lvbj0iMS4wIj4KLTxkaWN0PgotCTxrZXk+
Q0ZCdW5kbGVGb2xsb3dQYXJlbnRMb2NhbGl6YXRpb248L2tleT4KLQk8dHJ1ZS8+Ci0JPGtleT5D
RkJ1bmRsZUdldEluZm9TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059LCBD
b3B5cmlnaHQgMjAwMy0yMDE3IEFwcGxlIEluYy48L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlRGV2
ZWxvcG1lbnRSZWdpb248L2tleT4KLQk8c3RyaW5nPkVuZ2xpc2g8L3N0cmluZz4KLQk8a2V5PkNG
QnVuZGxlRXhlY3V0YWJsZTwva2V5PgotCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJp
bmc+Ci0JPGtleT5DRkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9C
VU5ETEVfSURFTlRJRklFUn08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlW
ZXJzaW9uPC9rZXk+Ci0JPHN0cmluZz42LjA8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlTmFtZTwv
a2V5PgotCTxzdHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVBh
Y2thZ2VUeXBlPC9rZXk+Ci0JPHN0cmluZz5YUEMhPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVNo
b3J0VmVyc2lvblN0cmluZzwva2V5PgotCTxzdHJpbmc+JHtTSE9SVF9WRVJTSU9OX1NUUklOR308
L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9rZXk+Ci0JPHN0cmluZz4/Pz8/PC9z
dHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KLQk8c3RyaW5nPiR7QlVORExFX1ZF
UlNJT059PC9zdHJpbmc+Ci0JPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwva2V5PgotCTx0
cnVlLz4KLQk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4KLQk8c3RyaW5nPk5TQXBwbGljYXRp
b248L3N0cmluZz4KLQk8a2V5PldlYktpdEVudHJ5UG9pbnQ8L2tleT4KLQk8c3RyaW5nPldlYkNv
bnRlbnRTZXJ2aWNlSW5pdGlhbGl6ZXI8L3N0cmluZz4KLQk8a2V5PkxTVUlFbGVtZW50PC9rZXk+
Ci0JPHRydWUvPgotCTxrZXk+TlNTdXBwb3J0c0F1dG9tYXRpY0dyYXBoaWNzU3dpdGNoaW5nPC9r
ZXk+Ci0JPHRydWUvPgotCTxrZXk+TlNTdXBwb3J0c0FwcE5hcDwva2V5PgotCTx0cnVlLz4KLQk8
a2V5Pk5TTWFpbk5pYkZpbGU8L2tleT4KLQk8c3RyaW5nPldlYkNvbnRlbnRQcm9jZXNzPC9zdHJp
bmc+Ci0JPGtleT5YUENTZXJ2aWNlPC9rZXk+Ci0JPGRpY3Q+Ci0JCTxrZXk+Sm9pbkV4aXN0aW5n
U2Vzc2lvbjwva2V5PgotCQk8dHJ1ZS8+Ci0JCTxrZXk+U2VydmljZVR5cGU8L2tleT4KLQkJPHN0
cmluZz5BcHBsaWNhdGlvbjwvc3RyaW5nPgotCQk8a2V5PlJ1bkxvb3BUeXBlPC9rZXk+Ci0JCTxz
dHJpbmc+X05TQXBwbGljYXRpb25NYWluPC9zdHJpbmc+Ci0JCTxrZXk+X011bHRpcGxlSW5zdGFu
Y2VzPC9rZXk+Ci0JCTx0cnVlLz4KLQkJPGtleT5FbnZpcm9ubWVudFZhcmlhYmxlczwva2V5Pgot
CQk8ZGljdD4KLQkJCTxrZXk+RFlMRF9JTlNFUlRfTElCUkFSSUVTPC9rZXk+Ci0JCQk8c3RyaW5n
PiQoV0tfWFBDX1NFUlZJQ0VfSU5TRVJUX0xJQlJBUklFU19ESVIpL1dlYlByb2Nlc3NTaGltLmR5
bGliPC9zdHJpbmc+Ci0JCTwvZGljdD4KLQk8L2RpY3Q+Ci08L2RpY3Q+Ci08L3BsaXN0PgpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2
aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTc1LDcgKzI1NzUsNyBAQCB2b2lkIFdlYlBhZ2U6
OnNldERyYXdzQmFja2dyb3VuZChib29sIGRyCiAgICAgbV9kcmF3aW5nQXJlYS0+c2V0TmVlZHNE
aXNwbGF5KCk7CiB9CiAKLSNpZiBIQVZFKENPUkVBTklNQVRJT05fRkVOQ0VTKQorI2lmIFBMQVRG
T1JNKENPQ09BKQogdm9pZCBXZWJQYWdlOjpzZXRUb3BDb250ZW50SW5zZXRGZW5jZWQoZmxvYXQg
Y29udGVudEluc2V0LCBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0KQogewogICAgIG1fZHJhd2lu
Z0FyZWEtPmFkZEZlbmNlKE1hY2hTZW5kUmlnaHQ6OmNyZWF0ZShmZW5jZVBvcnQucG9ydCgpKSk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJl
dmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwOTgsNyArMTA5OCw3IEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIHNldERyYXdzQmFja2dyb3VuZChib29sKTsKIAotI2lmIEhBVkUoQ09SRUFOSU1BVElP
Tl9GRU5DRVMpCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBzZXRUb3BDb250ZW50SW5z
ZXRGZW5jZWQoZmxvYXQsIElQQzo6QXR0YWNobWVudCk7CiAjZW5kaWYKICAgICB2b2lkIHNldFRv
cENvbnRlbnRJbnNldChmbG9hdCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjE5MDQ4KQor
KysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4J
KHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdh
Y3lSZWNlaXZlciB7CiAKICAgICBTZXREcmF3c0JhY2tncm91bmQoYm9vbCBkcmF3c0JhY2tncm91
bmQpCiAKLSNpZiBIQVZFKENPUkVBTklNQVRJT05fRkVOQ0VTKQorI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIFNldFRvcENvbnRlbnRJbnNldEZlbmNlZChmbG9hdCBjb250ZW50SW5zZXQsIElQQzo6
QXR0YWNobWVudCBmZW5jZVBvcnQpCiAjZW5kaWYKICAgICBTZXRUb3BDb250ZW50SW5zZXQoZmxv
YXQgY29udGVudEluc2V0KQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5t
bQkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03ODAs
MTEgKzc4MCw3IEBAIHN0YXRpYyB2b2lkIGFkZEFuaW1hdGlvblRvTGF5ZXIoQ0FMYXllciAKICAg
ICAgICAgICAgICAgICBbc3ByaW5nQW5pbWF0aW9uIHNldE1hc3M6ZnVuY3Rpb24ubWFzcygpXTsK
ICAgICAgICAgICAgICAgICBbc3ByaW5nQW5pbWF0aW9uIHNldFN0aWZmbmVzczpmdW5jdGlvbi5z
dGlmZm5lc3MoKV07CiAgICAgICAgICAgICAgICAgW3NwcmluZ0FuaW1hdGlvbiBzZXREYW1waW5n
OmZ1bmN0aW9uLmRhbXBpbmcoKV07Ci0jaWYgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCiAgICAgICAgICAg
ICAgICAgW3NwcmluZ0FuaW1hdGlvbiBzZXRJbml0aWFsVmVsb2NpdHk6ZnVuY3Rpb24uaW5pdGlh
bFZlbG9jaXR5KCldOwotI2Vsc2UKLSAgICAgICAgICAgICAgICBbc3ByaW5nQW5pbWF0aW9uIHNl
dFZlbG9jaXR5OmZ1bmN0aW9uLmluaXRpYWxWZWxvY2l0eSgpXTsKLSNlbmRpZgogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgICAgIGNhQW5pbWF0aW9uID0gc3ByaW5nQW5pbWF0aW9uOwpJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCShyZXZpc2lvbiAyMTkw
NDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNDYsNyArMzQ2LDYgQEAgdm9p
ZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zmx1c2hMYQogICAgIGlmIChtX3Njcm9sbGVk
Vmlld0V4cG9zZWRSZWN0KQogICAgICAgICB2aXNpYmxlUmVjdC5pbnRlcnNlY3QobV9zY3JvbGxl
ZFZpZXdFeHBvc2VkUmVjdC52YWx1ZSgpKTsKIAotI2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApCiAg
ICAgUmVmUHRyPFdlYlBhZ2U+IHJldGFpbmVkUGFnZSA9ICZtX3dlYlBhZ2U7CiAgICAgW0NBVHJh
bnNhY3Rpb24gYWRkQ29tbWl0SGFuZGxlcjpbcmV0YWluZWRQYWdlXSB7CiAgICAgICAgIGlmIChQ
YWdlKiBjb3JlUGFnZSA9IHJldGFpbmVkUGFnZS0+Y29yZVBhZ2UoKSkgewpAQCAtMzU0LDcgKzM1
Myw2IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGEKICAgICAgICAg
ICAgICAgICBjb3JlUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmRpZENvbXBvc2l0ZSgqY29y
ZUZyYW1lKTsKICAgICAgICAgfQogICAgIH0gZm9yUGhhc2U6a0NBVHJhbnNhY3Rpb25QaGFzZVBv
c3RDb21taXRdOwotI2VuZGlmCiAKICAgICBtX3dlYlBhZ2UubWFpbkZyYW1lVmlldygpLT5mbHVz
aENvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMoKTsKIApJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCShyZXZpc2lvbiAyMTkwNDgpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MjgsNyArNDI4LDYgQEAgYm9vbCBUaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Zmx1cwogICAgICAgICAgICAgbV92aWV3T3Zlcmxh
eVJvb3RMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHZpc2libGVSZWN0KTsKIAogICAgICAg
ICBSZWZQdHI8V2ViUGFnZT4gcmV0YWluZWRQYWdlID0gJm1fd2ViUGFnZTsKLSNpZiBUQVJHRVRf
T1NfSVBIT05FIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMTAwKQogICAgICAgICBbQ0FUcmFuc2FjdGlvbiBhZGRDb21taXRIYW5kbGVy
OltyZXRhaW5lZFBhZ2VdIHsKICAgICAgICAgICAgIGlmIChQYWdlKiBjb3JlUGFnZSA9IHJldGFp
bmVkUGFnZS0+Y29yZVBhZ2UoKSkgewogICAgICAgICAgICAgICAgIGlmIChGcmFtZSogY29yZUZy
YW1lID0gcmV0YWluZWRQYWdlLT5tYWluRnJhbWUoKSkKQEAgLTQzNywxMiArNDM2LDYgQEAgYm9v
bCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Zmx1cwogICAgICAgICAgICAgaWYgKGF1
dG8gZHJhd2luZ0FyZWEgPSBzdGF0aWNfY2FzdDxUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YSo+KHJldGFpbmVkUGFnZS0+ZHJhd2luZ0FyZWEoKSkpCiAgICAgICAgICAgICAgICAgZHJhd2lu
Z0FyZWEtPnNlbmRQZW5kaW5nTmV3bHlSZWFjaGVkTGF5b3V0TWlsZXN0b25lcygpOwogICAgICAg
ICB9IGZvclBoYXNlOmtDQVRyYW5zYWN0aW9uUGhhc2VQb3N0Q29tbWl0XTsKLSNlbHNlCi0gICAg
ICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtyZXRhaW5lZFBh
Z2VdIHsKLSAgICAgICAgICAgIGlmIChhdXRvIGRyYXdpbmdBcmVhID0gc3RhdGljX2Nhc3Q8VGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEqPihyZXRhaW5lZFBhZ2UtPmRyYXdpbmdBcmVhKCkp
KQotICAgICAgICAgICAgICAgIGRyYXdpbmdBcmVhLT5zZW5kUGVuZGluZ05ld2x5UmVhY2hlZExh
eW91dE1pbGVzdG9uZXMoKTsKLSAgICAgICAgfSk7Ci0jZW5kaWYKIAogICAgICAgICBib29sIHJl
dHVyblZhbHVlID0gbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKS0+Zmx1c2hDb21wb3NpdGluZ1N0
YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7CiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKQEAg
LTU2NywyMSArNTYwLDE0IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVw
ZGEKIAogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiAKLSAgICBpZiAoZmx1c2hTeW5jaHJv
bm91c2x5KSB7CisgICAgaWYgKGZsdXNoU3luY2hyb25vdXNseSkKICAgICAgICAgW0NBVHJhbnNh
Y3Rpb24gZmx1c2hdOwotI2lmICFIQVZFKENPUkVBTklNQVRJT05fRkVOQ0VTKQotICAgICAgICAv
LyBXZSBjYW4ndCBzeW5jaHJvbml6ZSBoZXJlIGlmIHdlJ3JlIHVzaW5nIGZlbmNlcyBvciB3ZSds
bCBibG93IHRoZSBmZW5jZSBldmVyeSB0aW1lIChhbmQgd2UgZG9uJ3QgbmVlZCB0bykuCi0gICAg
ICAgIFtDQVRyYW5zYWN0aW9uIHN5bmNocm9uaXplXTsKLSNlbmRpZgotICAgIH0KIAogICAgIG1f
d2ViUGFnZS5zZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYVByb3h5OjpEaWRVcGRhdGVHZW9tZXRy
eSgpKTsKIAogICAgIG1faW5VcGRhdGVHZW9tZXRyeSA9IGZhbHNlOwogCi0jaWYgSEFWRShDT1JF
QU5JTUFUSU9OX0ZFTkNFUykKICAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldEZlbmNlUG9y
dChmZW5jZVBvcnQuc2VuZFJpZ2h0KCkpOwotI2VuZGlmCiB9CiAKIHZvaWQgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IGRldmljZVNjYWxl
RmFjdG9yKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcs
NyArMTM3LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcgogICAg
ICAgICBKU0M6OnByb2Nlc3NDb25maWdGaWxlKGphdmFTY3JpcHRDb25maWdGaWxlLmxhdGluMSgp
LmRhdGEoKSwgImNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCIsIHBhcmFtZXRlcnMudWlQcm9j
ZXNzQnVuZGxlSWRlbnRpZmllci5sYXRpbjEoKS5kYXRhKCkpOwogICAgIH0KIAotI2lmIFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKKyNp
ZiBQTEFURk9STShNQUMpCiAgICAgc2V0U2hhcmVkSFRUUENvb2tpZVN0b3JhZ2UocGFyYW1ldGVy
cy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcik7CiAjZW5kaWYKIApAQCAtMTYzLDkg
KzE2Myw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIKICAgICBN
ZXRob2QgbWV0aG9kVG9QYXRjaCA9IGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKFtOU0FwcGxpY2F0
aW9uIGNsYXNzXSwgQHNlbGVjdG9yKGFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50KSk7CiAg
ICAgbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKG1ldGhvZFRvUGF0Y2gsIChJTVApTlNBcHBsaWNh
dGlvbkFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50KTsKICNlbmRpZgotI2lmIFRBUkdFVF9P
U19JUEhPTkUgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDExMDApCiAgICAgX0NGTmV0d29ya1NldEFUU0NvbnRleHQocGFyYW1ldGVycy5u
ZXR3b3JrQVRTQ29udGV4dC5nZXQoKSk7Ci0jZW5kaWYKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUK
ICAgICAvLyBQcmlvcml0eSBkZWNheSBvbiBpT1MgOSBpcyBpbXBhY3RpbmcgcGFnZSBsb2FkIHRp
bWUgc28gd2UgZml4IHRoZSBwcmlvcml0eSBvZiB0aGUgV2ViUHJvY2VzcycgbWFpbiB0aHJlYWQg
KHJkYXI6Ly9wcm9ibGVtLzIyMDAzMTEyKS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDI0IEBACisyMDE3LTA3LTAxICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5j
b20+CisKKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIChPT1BTISkuCisgICAgICAg
IE5lZWQgdGhlIGJ1ZyBVUkwgKE9PUFMhKS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnOgorICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAqIENvbmZpZ3Vy
YXRpb25zL1ZlcnNpb24ueGNjb25maWc6CisgICAgICAgICogUGx1Z2lucy9XZWJCYXNlUGx1Z2lu
UGFja2FnZS5tbToKKyAgICAgICAgKC1bV2ViQmFzZVBsdWdpblBhY2thZ2UgZ2V0UGx1Z2luSW5m
b0Zyb21QTGlzdHNdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW06
CisgICAgICAgIChQb3B1cE1lbnVNYWM6OnNob3cpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckNsaWVudC5tbToKKyAgICAgICAgKFdlYkluc3BlY3RvckZyb250ZW5kQ2xp
ZW50OjpzdGFydFdpbmRvd0RyYWcpOgorICAgICAgICAoLVtXZWJJbnNwZWN0b3JXaW5kb3dDb250
cm9sbGVyIHdpbmRvd10pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV2ViVmlldyBfYW5pbWF0aW9uQ29udHJvbGxlckZvckRpY3Rpb25hcnlMb29rdXBQb3B1cElu
Zm86XSk6CisKIDIwMTctMDYtMzAgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgog
CiAgICAgICAgIEFQSTo6RnJhbWVJbmZvIHNob3VsZCBrbm93IHRoZSB3ZWIgcGFnZSB0aGF0IGNv
bnRhaW5zIHRoZSBmcmFtZTsgYWRkIEFQSSBwcm9wZXJ0eSB3ZWJWaWV3IHRvIFdLRnJhbWVJbmZv
CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25m
aWcJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25z
L0Jhc2UueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTc5LDcgKzc5LDYgQEAgUFJFQklORElO
RyA9IE5POwogV0FSTklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2hhci1zdWJzY3JpcHRz
IC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0LXNlY3VyaXR5IC1XaW5pdC1zZWxmIC1XbWlzc2luZy1m
b3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV25vLXVudXNlZC1wYXJhbWV0ZXIg
LVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0
ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAt
V3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQtZmFsbHRocm91Z2g7CiAKIFRBUkdFVF9N
QUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiQo
TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUOnN1ZmZpeDppZGVudGlmaWVyKSk7Ci1UQVJHRVRfTUFD
X09TX1hfVkVSU0lPTl9NQUpPUl8xMCA9IDEwMTAwMDsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9O
X01BSk9SXzExID0gMTAxMTAwOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTIgPSAx
MDEyMDA7CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMyA9IDEwMTMwMDsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVh
c2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NvbmZp
Z3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMzAsNyAr
MzAsNiBAQCBPTkxZX0FDVElWRV9BUkNIID0gWUVTOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05f
TUFKT1IgPSAkKE1BQ19PU19YX1ZFUlNJT05fTUFKT1IpOwogCiBNQUNPU1hfREVQTE9ZTUVOVF9U
QVJHRVQgPSAkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8kKFBMQVRGT1JNX05BTUUpXyQoVEFS
R0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKLU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9t
YWNvc3hfMTAxMDAwID0gMTAuMTA7CiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEw
MTEwMCA9IDEwLjExOwogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDEyMDAgPSAx
MC4xMjsKIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMzAwID0gMTAuMTM7CkBA
IC00Miw3ICs0MSw2IEBAIERFQlVHX0lORk9STUFUSU9OX0ZPUk1BVCA9IGR3YXJmOwogV0VCS0lU
X1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWVtzZGs9aXBob25lb3MqXSA9IFdlYktpdFN5c3RlbUlu
dGVyZmFjZUlPU0RldmljZSQoV0tfVEFSR0VUX0lPU19WRVJTSU9OX01BSk9SKTsKIFdFQktJVF9T
WVNURU1fSU5URVJGQUNFX0xJQlJBUllbc2RrPWlwaG9uZXNpbXVsYXRvcipdID0gV2ViS2l0U3lz
dGVtSW50ZXJmYWNlSU9TU2ltdWxhdG9yJChXS19UQVJHRVRfSU9TX1ZFUlNJT05fTUFKT1IpOwog
V0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWVtzZGs9bWFjb3N4Kl0gPSAkKFdFQktJVF9T
WVNURU1fSU5URVJGQUNFX0xJQlJBUllfbWFjb3N4XyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05f
TUFKT1IpKTsKLVdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllfbWFjb3N4XzEwMTAwMCA9
IFdlYktpdFN5c3RlbUludGVyZmFjZVlvc2VtaXRlOwogV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0Vf
TElCUkFSWV9tYWNvc3hfMTAxMTAwID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNlRWxDYXBpdGFuOwog
V0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfMTAxMjAwID0gV2ViS2l0U3lz
dGVtSW50ZXJmYWNlT1NYMTAuMTI7CiBXRUJLSVRfU1lTVEVNX0lOVEVSRkFDRV9MSUJSQVJZX21h
Y29zeF8xMDEzMDAgPSAkKFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllfbWFjb3N4XzEw
MTIwMCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNl
L1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtp
bmcgY29weSkKQEAgLTMyLDExICszMiw5IEBACiAvLyBTZXQgYW55IEVOQUJMRV9GRUFUVVJFX05B
TUUgbWFjcm8gdG8gYW4gZW1wdHkgc3RyaW5nIHRvIGRpc2FibGUgdGhhdCBmZWF0dXJlLgogCiBU
QVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMjAwMCA9ICQoVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDBfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9N
QUpPUikpOwotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDBfMTAxMDAw
ID0gWUVTOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDBfMTAxMTAw
ID0gWUVTOwogCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAwMCA9ICQo
VEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDBfJChUQVJHRVRfTUFDX09T
X1hfVkVSU0lPTl9NQUpPUikpOwotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEw
MTMwMDBfMTAxMDAwID0gWUVTOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEw
MTMwMDBfMTAxMTAwID0gWUVTOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEw
MTMwMDBfMTAxMjAwID0gWUVTOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0
aW9ucy9WZXJzaW9uLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0Nv
bmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJj
ZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcJKHdvcmtpbmcgY29w
eSkKQEAgLTM1LDcgKzM1LDYgQEAgU0hPUlRfVkVSU0lPTl9TVFJJTkcgPSAkKFNIT1JUX1ZFUlNJ
T05fUwogLy8gVGhlIHN5c3RlbSB2ZXJzaW9uIHByZWZpeCBpcyBiYXNlZCBvbiB0aGUgY3VycmVu
dCBzeXN0ZW0gdmVyc2lvbi4KIFNZU1RFTV9WRVJTSU9OX1BSRUZJWFtzZGs9aXBob25lKl0gPSA4
OwogU1lTVEVNX1ZFUlNJT05fUFJFRklYID0gJChTWVNURU1fVkVSU0lPTl9QUkVGSVhfJChQTEFU
Rk9STV9OQU1FKV8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7Ci1TWVNURU1fVkVS
U0lPTl9QUkVGSVhfbWFjb3N4XzEwMTAwMCA9IDEwOwogU1lTVEVNX1ZFUlNJT05fUFJFRklYX21h
Y29zeF8xMDExMDAgPSAxMTsKIFNZU1RFTV9WRVJTSU9OX1BSRUZJWF9tYWNvc3hfMTAxMjAwID0g
MTI7CiBTWVNURU1fVkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEwMTMwMCA9IDEzOwpJbmRleDogU291
cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNrYWdlLm1tCShy
ZXZpc2lvbiAyMTkwNDgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VQbHVn
aW5QYWNrYWdlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNDIsMzIgKzE0Miw5IEBAIC0gKEJPT0wp
Z2V0UGx1Z2luSW5mb0Zyb21QTGlzdHMKICAgICBpZiAoIWNmQnVuZGxlKQogICAgICAgICByZXR1
cm4gTk87CiAgICAgCi0gICAgTlNEaWN0aW9uYXJ5ICpNSU1FVHlwZXMgPSBuaWw7Ci0KLSNpZiBQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTAxMDAw
Ci0gICAgTlNTdHJpbmcgKnBMaXN0RmlsZW5hbWUgPSBbc2VsZiBfb2JqZWN0Rm9ySW5mb0RpY3Rp
b25hcnlLZXk6V2ViUGx1Z2luTUlNRVR5cGVzRmlsZW5hbWVLZXldOwotICAgIAotICAgIC8vIENo
ZWNrIGlmIHRoZSBNSU1FIHR5cGVzIGFyZSBjbGFpbWVkIGluIGEgcGxpc3QgaW4gdGhlIHVzZXIn
cyBwcmVmZXJlbmNlcyBkaXJlY3RvcnkuCi0gICAgaWYgKHBMaXN0RmlsZW5hbWUpIHsKLSAgICAg
ICAgTlNTdHJpbmcgKnBMaXN0UGF0aCA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAv
TGlicmFyeS9QcmVmZXJlbmNlcy8lQCIsIE5TSG9tZURpcmVjdG9yeSgpLCBwTGlzdEZpbGVuYW1l
XTsKLSAgICAgICAgTlNEaWN0aW9uYXJ5ICpwTGlzdCA9IFtzZWxmIHBMaXN0Rm9yUGF0aDpwTGlz
dFBhdGggY3JlYXRlRmlsZTpOT107Ci0gICAgICAgIGlmIChwTGlzdCkgewotICAgICAgICAgICAg
Ly8gSWYgdGhlIHBsaXN0IGlzbid0IGxvY2FsaXplZCwgaGF2ZSB0aGUgcGx1Zy1pbiByZWNyZWF0
ZSBpdCBpbiB0aGUgcHJlZmVycmVkIGxhbmd1YWdlLgotICAgICAgICAgICAgTlNTdHJpbmcgKmxv
Y2FsaXphdGlvbk5hbWUgPSBbcExpc3Qgb2JqZWN0Rm9yS2V5OldlYlBsdWdpbkxvY2FsaXphdGlv
bk5hbWVLZXldOwotICAgICAgICAgICAgaWYgKCFbbG9jYWxpemF0aW9uTmFtZSBpc0VxdWFsVG9T
dHJpbmc6cHJlZmVycmVkQnVuZGxlTG9jYWxpemF0aW9uTmFtZSgpXSkKLSAgICAgICAgICAgICAg
ICBwTGlzdCA9IFtzZWxmIHBMaXN0Rm9yUGF0aDpwTGlzdFBhdGggY3JlYXRlRmlsZTpZRVNdOwot
ICAgICAgICAgICAgTUlNRVR5cGVzID0gW3BMaXN0IG9iamVjdEZvcktleTpXZWJQbHVnaW5NSU1F
VHlwZXNLZXldOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIC8vIFBsaXN0IGRvZXNuJ3Qg
ZXhpc3QsIGFzayB0aGUgcGx1Zy1pbiB0byBjcmVhdGUgaXQuCi0gICAgICAgICAgICBNSU1FVHlw
ZXMgPSBbW3NlbGYgcExpc3RGb3JQYXRoOnBMaXN0UGF0aCBjcmVhdGVGaWxlOllFU10gb2JqZWN0
Rm9yS2V5OldlYlBsdWdpbk1JTUVUeXBlc0tleV07Ci0gICAgfQotI2VuZGlmCi0KLSAgICBpZiAo
IU1JTUVUeXBlcykgewotICAgICAgICBNSU1FVHlwZXMgPSBbc2VsZiBfb2JqZWN0Rm9ySW5mb0Rp
Y3Rpb25hcnlLZXk6V2ViUGx1Z2luTUlNRVR5cGVzS2V5XTsKLSAgICAgICAgaWYgKCFNSU1FVHlw
ZXMpCi0gICAgICAgICAgICByZXR1cm4gTk87Ci0gICAgfQorICAgIE5TRGljdGlvbmFyeSAqTUlN
RVR5cGVzID0gW3NlbGYgX29iamVjdEZvckluZm9EaWN0aW9uYXJ5S2V5OldlYlBsdWdpbk1JTUVU
eXBlc0tleV07CisgICAgaWYgKCFNSU1FVHlwZXMpCisgICAgICAgIHJldHVybiBOTzsKIAogICAg
IE5TRW51bWVyYXRvciAqa2V5RW51bWVyYXRvciA9IFtNSU1FVHlwZXMga2V5RW51bWVyYXRvcl07
CiAgICAgTlNEaWN0aW9uYXJ5ICpNSU1FRGljdGlvbmFyeTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0JKHJldmlzaW9uIDIxOTA0
OCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTQ5LDkgKzE0OSw3IEBAIHZvaWQgUG9wdXBNZW51TWFjOjpzaG93
KGNvbnN0IEludFJlY3QmIHIKICAgICBbbV9wb3B1cCBzZXRVc2VySW50ZXJmYWNlTGF5b3V0RGly
ZWN0aW9uOnRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0
aW9uTGVmdFRvUmlnaHQgOiBOU1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25SaWdodFRvTGVm
dF07CiAKICAgICBOU01lbnUgKm1lbnUgPSBbbV9wb3B1cCBtZW51XTsKLSNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAogICAgIFttZW51IHNldFVzZXJJbnRlcmZh
Y2VMYXlvdXREaXJlY3Rpb246dGV4dERpcmVjdGlvbiA9PSBMVFIgPyBOU1VzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb25MZWZ0VG9SaWdodCA6IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
blJpZ2h0VG9MZWZ0XTsKLSNlbmRpZgogCiAgICAgTlNQb2ludCBsb2NhdGlvbjsKICAgICBDVEZv
bnRSZWYgZm9udCA9IG1fY2xpZW50LT5tZW51U3R5bGUoKS5mb250KCkucHJpbWFyeUZvbnQoKS5n
ZXRDVEZvbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0JKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjE4LDkgKzIxOCw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQ6OmZyb250ZW4KIAogdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6c3RhcnRXaW5k
b3dEcmFnKCkKIHsKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEw
MAogICAgIFtbbV9mcm9udGVuZFdpbmRvd0NvbnRyb2xsZXIgd2luZG93XSBwZXJmb3JtV2luZG93
RHJhZ1dpdGhFdmVudDpbTlNBcHAgY3VycmVudEV2ZW50XV07Ci0jZW5kaWYKIH0KIAogU3RyaW5n
IFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Ojpsb2NhbGl6ZWRTdHJpbmdzVVJMKCkKQEAgLTQ3
MywxMiArNDcxLDEwIEBAIC0gKE5TV2luZG93ICopd2luZG93CiAgICAgW3dpbmRvdyBzZXRNaW5T
aXplOk5TTWFrZVNpemUobWluaW11bVdpbmRvd1dpZHRoLCBtaW5pbXVtV2luZG93SGVpZ2h0KV07
CiAgICAgW3dpbmRvdyBzZXRDb2xsZWN0aW9uQmVoYXZpb3I6KFt3aW5kb3cgY29sbGVjdGlvbkJl
aGF2aW9yXSB8IE5TV2luZG93Q29sbGVjdGlvbkJlaGF2aW9yRnVsbFNjcmVlblByaW1hcnkpXTsK
IAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCiAgICAgQ0dG
bG9hdCBhcHByb3hpbWF0ZWx5SGFsZlNjcmVlblNpemUgPSAod2luZG93LnNjcmVlbi5mcmFtZS5z
aXplLndpZHRoIC8gMikgLSA0OwogICAgIENHRmxvYXQgbWluaW11bUZ1bGxTY3JlZW5XaWR0aCA9
IHN0ZDo6bWF4PENHRmxvYXQ+KDYzNiwgYXBwcm94aW1hdGVseUhhbGZTY3JlZW5TaXplKTsKICAg
ICBbd2luZG93IHNldE1pbkZ1bGxTY3JlZW5Db250ZW50U2l6ZTpOU01ha2VTaXplKG1pbmltdW1G
dWxsU2NyZWVuV2lkdGgsIG1pbmltdW1XaW5kb3dIZWlnaHQpXTsKICAgICBbd2luZG93IHNldENv
bGxlY3Rpb25CZWhhdmlvcjooW3dpbmRvdyBjb2xsZWN0aW9uQmVoYXZpb3JdIHwgTlNXaW5kb3dD
b2xsZWN0aW9uQmVoYXZpb3JGdWxsU2NyZWVuQWxsb3dzVGlsaW5nKV07Ci0jZW5kaWYKIAogICAg
IHdpbmRvdy50aXRsZWJhckFwcGVhcnNUcmFuc3BhcmVudCA9IFlFUzsKIApJbmRleDogU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkocmV2aXNpb24gMjE5MDQ4KQorKysgU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC05MzgyLDcgKzkz
ODIsNiBAQCAtIChOU1JlY3QpX2NvbnZlcnRSZWN0RnJvbVJvb3RWaWV3OihOU1JlCiB9CiAKICNp
ZiBQTEFURk9STShNQUMpCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDEwMDAKIC0gKFdlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgKilfaW1tZWRpYXRlQWN0aW9u
Q29udHJvbGxlcgogewogICAgIHJldHVybiBfcHJpdmF0ZS0+aW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlcjsKQEAgLTk0MDEsNyArOTQwMCw2IEBAIC0gKGlkKV9hbmltYXRpb25Db250cm9sbGVyRm9y
RGljdGlvbmFyeUwKICAgICAgICAgcmV0dXJuIFtzZWxmIF9jb252ZXJ0UmVjdEZyb21Sb290Vmll
dzpyZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzXTsKICAgICB9KTsKIH0KLSNlbmRpZiAvLyBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAogCiAtIChOU0V2ZW50ICopX3By
ZXNzdXJlRXZlbnQKIHsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNvdXJj
ZS9ibWFsbG9jL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE3
LTA3LTAxICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCBh
IHNob3J0IGRlc2NyaXB0aW9uIChPT1BTISkuCisgICAgICAgIE5lZWQgdGhlIGJ1ZyBVUkwgKE9P
UFMhKS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IENvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
RGVidWdSZWxlYXNlLnhjY29uZmlnOgorCiAyMDE3LTA2LTMwICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJhbiBzb3J0LVhjb2RlLXByb2plY3QtZmlsZS4KSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwkocmV2aXNp
b24gMjE5MDQ4KQorKysgU291cmNlL2JtYWxsb2MvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZp
Zwkod29ya2luZyBjb3B5KQpAQCAtODYsNyArODYsNiBAQCBQUkVCSU5ESU5HID0gTk87CiBXQVJO
SU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1YWwgLVdjaGFyLXN1YnNjcmlwdHMg
LVdleHRyYS10b2tlbnMgLVdmb3JtYXQ9MiAtV2luaXQtc2VsZiAtV21pc3NpbmctZm9ybWF0LWF0
dHJpYnV0ZSAtV21pc3Npbmctbm9yZXR1cm4gLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVk
dW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0
b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGlj
aXQtZmFsbHRocm91Z2g7CiAKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChUQVJH
RVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUOnN1ZmZp
eDppZGVudGlmaWVyKSk7Ci1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMCA9IDEwMTAw
MDsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzExID0gMTAxMTAwOwogVEFSR0VUX01B
Q19PU19YX1ZFUlNJT05fTUFKT1JfMTIgPSAxMDEyMDA7CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lP
Tl9NQUpPUl8xMyA9IDEwMTMwMDsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NvbmZpZ3VyYXRpb25z
L0RlYnVnUmVsZWFzZS54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9Db25m
aWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkKKysrIFNv
dXJjZS9ibWFsbG9jL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQCBPTkxZX0FDVElWRV9BUkNIID0gWUVTOwogVEFSR0VU
X01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKE1BQ19PU19YX1ZFUlNJT05fTUFKT1IpOwogCiBN
QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8kKFBM
QVRGT1JNX05BTUUpXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKLU1BQ09TWF9E
RVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMDAwID0gMTAuMTA7CiBNQUNPU1hfREVQTE9ZTUVO
VF9UQVJHRVRfbWFjb3N4XzEwMTEwMCA9IDEwLjExOwogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VU
X21hY29zeF8xMDEyMDAgPSAxMC4xMjsKIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hf
MTAxMzAwID0gMTAuMTM7CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTkwNDkpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwzNiBAQAorMjAxNy0wNy0wMSAgRGFuIEJlcm5zdGVpbiAgPG1p
dHpAYXBwbGUuY29tPgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiAoT09QUyEp
LgorICAgICAgICBOZWVkIHRoZSBidWcgVVJMIChPT1BTISkuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvQ29uZmln
dXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvQ29u
ZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHNldERlZmF1bHRzVG9Db25zaXN0
ZW50VmFsdWVzRm9yVGVzdGluZyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1tOgorICAgICAgICAoLVtEdW1wUmVuZGVyVHJlZURyYWdn
aW5nSW5mbyByZXNldFNwcmluZ0xvYWRpbmddKToKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9Db25m
aWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnOgorICAgICAgICAqIE1pbmlCcm93c2VyL0NvbmZpZ3Vy
YXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZzoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0Nv
bmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25m
aWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWc6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW06CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvRHJhZ0FuZERyb3BQYXN0ZWJvYXJkVGVzdHMubW06CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW06
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1N0cmluZ1RydW5jYXRvci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54
Y2NvbmZpZzoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL0RlYnVn
UmVsZWFzZS54Y2NvbmZpZzoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5k
bGU6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMv
V2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5tbToKKyAgICAgICAgKC1bV2ViS2l0VGVzdFJ1
bm5lckRyYWdnaW5nSW5mbyByZXNldFNwcmluZ0xvYWRpbmddKToKKwogMjAxNy0wNy0wMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlIEMgQVBJIHdpdGggQ29jb2EgU1BJCkluZGV4OiBUb29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCShyZXZpc2lvbiAyMTkwNDgpCisrKyBU
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0JKHdvcmtpbmcgY29weSkK
QEAgLTEwMjMsNyArMTAyMyw3IEBAIHN0YXRpYyB2b2lkIHNldERlZmF1bHRzVG9Db25zaXN0ZW50
VmFsdWUKICAgICAgICAgQCJOU092ZXJsYXlTY3JvbGxlcnNFbmFibGVkIjogQE5PLAogICAgICAg
ICBAIkFwcGxlU2hvd1Njcm9sbEJhcnMiOiBAIkFsd2F5cyIsCiAgICAgICAgIEAiTlNCdXR0b25B
bmltYXRpb25zRW5hYmxlZCI6IEBOTywgLy8gSWRlYWxseSwgd2Ugc2hvdWxkIGZpbmQgYSB3YXkg
dG8gdGVzdCBhbmltYXRpb25zLCBidXQgZm9yIG5vdywgbWFrZSBzdXJlIHRoYXQgdGhlIGR1bXBl
ZCBzbmFwc2hvdCBtYXRjaGVzIGFjdHVhbCBzdGF0ZS4KLSNpZiBQTEFURk9STShNQUMpICYmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPCAxMDEyMDAKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDEyMDAKICAgICAgICAgQCJBcHBsZVN5c3RlbUZv
bnRPU1N1YnZlcnNpb24iOiBAKDEwKSwKICNlbmRpZgogICAgICAgICBAIk5TV2luZG93RGlzcGxh
eVdpdGhSdW5Mb29wT2JzZXJ2ZXIiOiBAWUVTLCAvLyBUZW1wb3Jhcnkgd29ya2Fyb3VuZCwgc2Vl
IDxyZGFyOi8vcHJvYmxlbS8yMDM1MTI5Nz4uCkBAIC0xMDQzLDcgKzEwNDMsNyBAQCBzdGF0aWMg
dm9pZCBzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlCiAgICAgICAgIFdlYlN0b3JhZ2VEaXJl
Y3RvcnlEZWZhdWx0c0tleTogW2xpYnJhcnlQYXRoIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBv
bmVudDpAIkxvY2FsU3RvcmFnZSJdLAogICAgICAgICBXZWJLaXRMb2NhbENhY2hlRGVmYXVsdHNL
ZXk6IFtsaWJyYXJ5UGF0aCBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJMb2NhbENh
Y2hlIl0sCiAgICAgICAgIFdlYktpdFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlEZWZh
dWx0c0tleTogW2xpYnJhcnlQYXRoIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIkxv
Y2FsU3RvcmFnZSJdLAotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDExMDAgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8
IDEwMTIwMAorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA8IDEwMTIwMAogICAgICAgICAvLyBUaGlzIG5lZWRzIHRvIGFsc28gYmUgYWRkZWQgdG8g
YXJndW1lbnQgZG9tYWluIGJlY2F1c2Ugb2YgPHJkYXI6Ly9wcm9ibGVtLzIwMjEwMDAyPi4KICAg
ICAgICAgQCJBcHBsZVN5c3RlbUZvbnRPU1N1YnZlcnNpb24iOiBAKDEwKSwKICNlbmRpZgpJbmRl
eDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZURy
YWdnaW5nSW5mby5tbQkocmV2aXNpb24gMjE5MDQ4KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNDIs
NyArMTQyLDYgQEAgLSAodm9pZCllbnVtZXJhdGVEcmFnZ2luZ0l0ZW1zV2l0aE9wdGlvbgogICAg
IC8vIElnbm9yZWQuCiB9CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0g
MTAxMTAwCiAtKE5TU3ByaW5nTG9hZGluZ0hpZ2hsaWdodClzcHJpbmdMb2FkaW5nSGlnaGxpZ2h0
CiB7CiAgICAgcmV0dXJuIE5TU3ByaW5nTG9hZGluZ0hpZ2hsaWdodE5vbmU7CkBAIC0xNTEsNyAr
MTUwLDYgQEAgLShOU1NwcmluZ0xvYWRpbmdIaWdobGlnaHQpc3ByaW5nTG9hZGluZwogLSAodm9p
ZClyZXNldFNwcmluZ0xvYWRpbmcKIHsKIH0KLSNlbmRpZgogCiBAZW5kCiAKSW5kZXg6IFRvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29u
ZmlnCShyZXZpc2lvbiAyMTkwNDgpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQ29uZmln
dXJhdGlvbnMvQmFzZS54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtODIsNyArODIsNiBAQCBE
RUJVR19ERUZJTkVTX25vcm1hbCA9IE5ERUJVRzsKIERFQlVHX0RFRklORVMgPSAkKERFQlVHX0RF
RklORVNfJChDVVJSRU5UX1ZBUklBTlQpKTsKIAogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFK
T1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChNQUNPU1hfREVQTE9ZTUVOVF9U
QVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsKLVRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9S
XzEwID0gMTAxMDAwOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTEgPSAxMDExMDA7
CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMiA9IDEwMTIwMDsKIFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SXzEzID0gMTAxMzAwOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhj
Y29uZmlnCShyZXZpc2lvbiAyMTkwNDgpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQ29u
ZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3
ICszMCw2IEBAIE9OTFlfQUNUSVZFX0FSQ0ggPSBZRVM7CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lP
Tl9NQUpPUiA9ICQoTUFDX09TX1hfVkVSU0lPTl9NQUpPUik7CiAKIE1BQ09TWF9ERVBMT1lNRU5U
X1RBUkdFVFtzZGs9bWFjb3N4Kl0gPSAkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hf
JChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOwotTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUX21hY29zeF8xMDEwMDAgPSAxMC4xMDsKIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNv
c3hfMTAxMTAwID0gMTAuMTE7CiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTIw
MCA9IDEwLjEyOwogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDEzMDAgPSAxMC4x
MzsKQEAgLTM5LDcgKzM4LDYgQEAgTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDE0
MDAgPQogV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWVtzZGs9aXBob25lb3MqXSA9IFdl
YktpdFN5c3RlbUludGVyZmFjZUlPU0RldmljZSQoV0tfVEFSR0VUX0lPU19WRVJTSU9OX01BSk9S
KTsKIFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllbc2RrPWlwaG9uZXNpbXVsYXRvcipd
ID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNlSU9TU2ltdWxhdG9yJChXS19UQVJHRVRfSU9TX1ZFUlNJ
T05fTUFKT1IpOwogV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWVtzZGs9bWFjb3N4Kl0g
PSAkKFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllfbWFjb3N4XyQoVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTUFKT1IpKTsKLVdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllfbWFj
b3N4XzEwMTAwMCA9IFdlYktpdFN5c3RlbUludGVyZmFjZVlvc2VtaXRlOwogV0VCS0lUX1NZU1RF
TV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfMTAxMTAwID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNl
RWxDYXBpdGFuOwogV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfMTAxMjAw
ID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNlT1NYMTAuMTI7CiBXRUJLSVRfU1lTVEVNX0lOVEVSRkFD
RV9MSUJSQVJZX21hY29zeF8xMDEzMDAgPSAkKFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJB
UllfbWFjb3N4XzEwMTIwMCk7CkluZGV4OiBUb29scy9NaW5pQnJvd3Nlci9Db25maWd1cmF0aW9u
cy9CYXNlLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL01pbmlCcm93c2VyL0NvbmZpZ3Vy
YXRpb25zL0Jhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkKKysrIFRvb2xzL01pbmlCcm93
c2VyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcg
KzYwLDYgQEAgR0NDX05PX0NPTU1PTl9CTE9DS1MgPSBZRVM7CiBTVVBQT1JURURfUExBVEZPUk1T
ID0gaXBob25lb3MgaXBob25lc2ltdWxhdG9yIG1hY29zeCB0dm9zIHR2c2ltdWxhdG9yIHdhdGNo
b3Mgd2F0Y2hzaW11bGF0b3I7CiAKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChU
QVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUOnN1
ZmZpeDppZGVudGlmaWVyKSk7Ci1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMCA9IDEw
MTAwMDsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzExID0gMTAxMTAwOwogVEFSR0VU
X01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTIgPSAxMDEyMDA7CiBUQVJHRVRfTUFDX09TX1hfVkVS
U0lPTl9NQUpPUl8xMyA9IDEwMTMwMDsKSW5kZXg6IFRvb2xzL01pbmlCcm93c2VyL0NvbmZpZ3Vy
YXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9NaW5pQnJv
d3Nlci9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0
OCkKKysrIFRvb2xzL01pbmlCcm93c2VyL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2Nv
bmZpZwkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQCBPTkxZX0FDVElWRV9BUkNIID0g
WUVTOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKE1BQ19PU19YX1ZFUlNJT05f
TUFKT1IpOwogCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAkKE1BQ09TWF9ERVBMT1lNRU5U
X1RBUkdFVF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSkKLU1BQ09TWF9ERVBMT1lN
RU5UX1RBUkdFVF8xMDEwMDAgPSAxMC4xMDsKIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8xMDEx
MDAgPSAxMC4xMTsKIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8xMDEyMDAgPSAxMC4xMjsKIE1B
Q09TWF9ERVBMT1lNRU5UX1RBUkdFVF8xMDEzMDAgPSAxMC4xMzsKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHJldmlzaW9uIDIx
OTA0OCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZp
Zwkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNiBAQCBERUJVR19ERUZJTkVTID0gJChERUJV
R19ERUZJTkVTXyQoQ1VSUkVOCiBTVVBQT1JURURfUExBVEZPUk1TID0gaXBob25lb3MgaXBob25l
c2ltdWxhdG9yIG1hY29zeCBhcHBsZXR2b3MgYXBwbGV0dnNpbXVsYXRvciB3YXRjaG9zIHdhdGNo
c2ltdWxhdG9yOwogCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VUX01B
Q19PU19YX1ZFUlNJT05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6aWRl
bnRpZmllcikpOwotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTAgPSAxMDEwMDA7CiBU
QVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMSA9IDEwMTEwMDsKIFRBUkdFVF9NQUNfT1Nf
WF9WRVJTSU9OX01BSk9SXzEyID0gMTAxMjAwOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFK
T1JfMTMgPSAxMDEzMDA7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25z
L0RlYnVnUmVsZWFzZS54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQor
KysgVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25m
aWcJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAgT05MWV9BQ1RJVkVfQVJDSCA9IFlF
UzsKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChNQUNfT1NfWF9WRVJTSU9OX01B
Sk9SKTsKIAogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gJChNQUNPU1hfREVQTE9ZTUVOVF9U
QVJHRVRfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpCi1NQUNPU1hfREVQTE9ZTUVO
VF9UQVJHRVRfMTAxMDAwID0gMTAuMTA7CiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfMTAxMTAw
ID0gMTAuMTE7CiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfMTAxMjAwID0gMTAuMTI7CiBNQUNP
U1hfREVQTE9ZTUVOVF9UQVJHRVRfMTAxMzAwID0gMTAuMTM7CkluZGV4OiBUb29scy9UZXN0V2Vi
S2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcJKHJldmlzaW9uIDIxOTA0OCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTMyLDExICsz
Miw5IEBACiAvLyBTZXQgYW55IEVOQUJMRV9GRUFUVVJFX05BTUUgbWFjcm8gdG8gYW4gZW1wdHkg
c3RyaW5nIHRvIGRpc2FibGUgdGhhdCBmZWF0dXJlLgogCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lP
Tl9MRVNTX1RIQU5fMTAxMjAwMCA9ICQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFO
XzEwMTIwMDBfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOwotVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDBfMTAxMDAwID0gWUVTOwogVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDBfMTAxMTAwID0gWUVTOwogCiBUQVJHRVRfTUFD
X09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAwMCA9ICQoVEFSR0VUX01BQ19PU19YX1ZFUlNJ
T05fTEVTU19USEFOXzEwMTMwMDBfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOwot
VEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDBfMTAxMDAwID0gWUVTOwog
VEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDBfMTAxMTAwID0gWUVTOwog
VEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDBfMTAxMjAwID0gWUVTOwog
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29tcGxleFRleHRDb250
cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMjE5MDQ4KQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTUzLDEzICs1Myw4IEBAIFRFU1RfRihDb21wbGV4VGV4dENvbnRyb2xs
ZXJUZXN0LCBJbml0aWEKICAgICBmb250LnVwZGF0ZSgpOwogICAgIGF1dG8gc3BhY2VXaWR0aCA9
IGZvbnQucHJpbWFyeUZvbnQoKS5zcGFjZVdpZHRoKCk7CiAKLSNpZiBVU0VfTEFZT1VUX1NQRUNJ
RklDX0FEVkFOQ0VTCiAgICAgVmVjdG9yPEZsb2F0U2l6ZT4gYWR2YW5jZXMgPSB7IEZsb2F0U2l6
ZSgpLCBGbG9hdFNpemUoMjEuNjQwNjI1LCAwLjApLCBGbG9hdFNpemUoNDIuMzA0Njg3NSwgMC4w
KSwgRmxvYXRTaXplKDU1Ljg5ODQzNzUsIDAuMCksIEZsb2F0U2l6ZSgyMi4zNDM3NSwgMC4wKSB9
OwogICAgIFZlY3RvcjxGbG9hdFBvaW50PiBvcmlnaW5zID0geyBGbG9hdFBvaW50KC0xNS4xNTYy
NSwgMTguMDQ2ODc1KSwgRmxvYXRQb2ludCgpLCBGbG9hdFBvaW50KCksIEZsb2F0UG9pbnQoKSwg
RmxvYXRQb2ludCgpIH07Ci0jZWxzZQotICAgIFZlY3RvcjxGbG9hdFNpemU+IGFkdmFuY2VzID0g
eyBGbG9hdFNpemUoMTUuMTU2MjUsIC0xOC4wNDY4NzUpLCBGbG9hdFNpemUoMjEuNjQwNjI1LCAw
LjApLCBGbG9hdFNpemUoNDIuMzA0Njg3NSwgMC4wKSwgRmxvYXRTaXplKDU1Ljg5ODQzNzUsIDAu
MCksIEZsb2F0U2l6ZSgyMi4zNDM3NSwgMC4wKSB9OwotICAgIFZlY3RvcjxGbG9hdFBvaW50PiBv
cmlnaW5zID0geyB9OwotI2VuZGlmCiAKICAgICBGbG9hdFNpemUgaW5pdGlhbEFkdmFuY2UgPSBG
bG9hdFNpemUoLTE1LjE1NjI1LCAxOC4wNDY4NzUpOwogCkBAIC0xMDQsMTMgKzk5LDggQEAgVEVT
VF9GKENvbXBsZXhUZXh0Q29udHJvbGxlclRlc3QsIEluaXRpYQogICAgIEZvbnRDYXNjYWRlIGZv
bnQoZGVzY3JpcHRpb24pOwogICAgIGZvbnQudXBkYXRlKCk7CiAKLSNpZiBVU0VfTEFZT1VUX1NQ
RUNJRklDX0FEVkFOQ0VTCiAgICAgVmVjdG9yPEZsb2F0U2l6ZT4gYWR2YW5jZXMgPSB7IEZsb2F0
U2l6ZSgpLCBGbG9hdFNpemUoMjEuNjQwNjI1LCAwLjApLCBGbG9hdFNpemUoNDIuMzA0Njg3NSwg
MC4wKSwgRmxvYXRTaXplKDU1Ljg5ODQzNzUsIDAuMCksIEZsb2F0U2l6ZSgyMi4zNDM3NSwgMC4w
KSB9OwogICAgIFZlY3RvcjxGbG9hdFBvaW50PiBvcmlnaW5zID0geyBGbG9hdFBvaW50KC0xNS4x
NTYyNSwgMTguMDQ2ODc1KSwgRmxvYXRQb2ludCgpLCBGbG9hdFBvaW50KCksIEZsb2F0UG9pbnQo
KSwgRmxvYXRQb2ludCgpIH07Ci0jZWxzZQotICAgIFZlY3RvcjxGbG9hdFNpemU+IGFkdmFuY2Vz
ID0geyBGbG9hdFNpemUoMTUuMTU2MjUsIC0xOC4wNDY4NzUpLCBGbG9hdFNpemUoMjEuNjQwNjI1
LCAwLjApLCBGbG9hdFNpemUoNDIuMzA0Njg3NSwgMC4wKSwgRmxvYXRTaXplKDU1Ljg5ODQzNzUs
IDAuMCksIEZsb2F0U2l6ZSgyMi4zNDM3NSwgMC4wKSB9OwotICAgIFZlY3RvcjxGbG9hdFBvaW50
PiBvcmlnaW5zID0geyB9OwotI2VuZGlmCiAKICAgICBGbG9hdFNpemUgaW5pdGlhbEFkdmFuY2Ug
PSBGbG9hdFNpemUoLTE1LjE1NjI1LCAxOC4wNDY4NzUpOwogCkBAIC0xNTQsMTMgKzE0NCw4IEBA
IFRFU1RfRihDb21wbGV4VGV4dENvbnRyb2xsZXJUZXN0LCBJbml0aWEKICAgICBmb250LnVwZGF0
ZSgpOwogICAgIGF1dG8gc3BhY2VXaWR0aCA9IGZvbnQucHJpbWFyeUZvbnQoKS5zcGFjZVdpZHRo
KCk7CiAKLSNpZiBVU0VfTEFZT1VUX1NQRUNJRklDX0FEVkFOQ0VTCiAgICAgVmVjdG9yPEZsb2F0
U2l6ZT4gYWR2YW5jZXMgPSB7IEZsb2F0U2l6ZSg3Ni4zNDc2NTYsIDAuMDAwMDAwKSwgRmxvYXRT
aXplKDAuMDAwMDAwLCAwLjAwMDAwMCkgfTsKICAgICBWZWN0b3I8RmxvYXRQb2ludD4gb3JpZ2lu
cyA9IHsgRmxvYXRQb2ludCgpLCBGbG9hdFBvaW50KC0yMy4yODEyNTAsIC04LjM5ODQzOCkgfTsK
LSNlbHNlCi0gICAgVmVjdG9yPEZsb2F0U2l6ZT4gYWR2YW5jZXMgPSB7IEZsb2F0U2l6ZSg1My4w
NjY0MDYsIC04LjM5ODQzOCksIEZsb2F0U2l6ZSgyMy4yODEyNTAsIDguMzk4NDM4KSB9OwotICAg
IFZlY3RvcjxGbG9hdFBvaW50PiBvcmlnaW5zID0geyB9OwotI2VuZGlmCiAKICAgICBGbG9hdFNp
emUgaW5pdGlhbEFkdmFuY2UgPSBGbG9hdFNpemUoMjguMTQ0NTMxLCAwKTsKIApAQCAtMjAxLDEz
ICsxODYsOCBAQCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVyVGVzdCwgSW5pdGlhCiAgICAg
Rm9udENhc2NhZGUgZm9udChkZXNjcmlwdGlvbik7CiAgICAgZm9udC51cGRhdGUoKTsKIAotI2lm
IFVTRV9MQVlPVVRfU1BFQ0lGSUNfQURWQU5DRVMKICAgICBWZWN0b3I8RmxvYXRTaXplPiBhZHZh
bmNlcyA9IHsgRmxvYXRTaXplKDc2LjM0NzY1NiwgMC4wMDAwMDApLCBGbG9hdFNpemUoMC4wMDAw
MDAsIDAuMDAwMDAwKSB9OwogICAgIFZlY3RvcjxGbG9hdFBvaW50PiBvcmlnaW5zID0geyBGbG9h
dFBvaW50KCksIEZsb2F0UG9pbnQoLTIzLjI4MTI1MCwgLTguMzk4NDM4KSB9OwotI2Vsc2UKLSAg
ICBWZWN0b3I8RmxvYXRTaXplPiBhZHZhbmNlcyA9IHsgRmxvYXRTaXplKDUzLjA2NjQwNiwgLTgu
Mzk4NDM4KSwgRmxvYXRTaXplKDIzLjI4MTI1MCwgOC4zOTg0MzgpIH07Ci0gICAgVmVjdG9yPEZs
b2F0UG9pbnQ+IG9yaWdpbnMgPSB7IH07Ci0jZW5kaWYKIAogICAgIEZsb2F0U2l6ZSBpbml0aWFs
QWR2YW5jZSA9IEZsb2F0U2l6ZSgyOC4xNDQ1MzEsIDApOwogCkBAIC0zNjQsMTEgKzM0NCw3IEBA
IFRFU1RfRihDb21wbGV4VGV4dENvbnRyb2xsZXJUZXN0LCBUb3RhbFcKICAgICBmb250LnVwZGF0
ZSgpOwogCiAgICAgVmVjdG9yPEZsb2F0U2l6ZT4gYWR2YW5jZXMgPSB7IEZsb2F0U2l6ZSgxLCAw
KSwgRmxvYXRTaXplKDIsIDApLCBGbG9hdFNpemUoNCwgMCksIEZsb2F0U2l6ZSg4LCAwKSwgRmxv
YXRTaXplKDE2LCAwKSB9OwotI2lmIFVTRV9MQVlPVVRfU1BFQ0lGSUNfQURWQU5DRVMKICAgICBW
ZWN0b3I8RmxvYXRQb2ludD4gb3JpZ2lucyA9IHsgRmxvYXRQb2ludCgpLCBGbG9hdFBvaW50KCks
IEZsb2F0UG9pbnQoKSwgRmxvYXRQb2ludCgpLCBGbG9hdFBvaW50KCkgfTsKLSNlbHNlCi0gICAg
VmVjdG9yPEZsb2F0UG9pbnQ+IG9yaWdpbnMgPSB7IH07Ci0jZW5kaWYKIAogICAgIEZsb2F0U2l6
ZSBpbml0aWFsQWR2YW5jZSA9IEZsb2F0U2l6ZSgpOwogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvV2ViQ29yZU5TVVJM
U2Vzc2lvbi5tbQkocmV2aXNpb24gMjE5MDQ4KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0JKHdvcmtpbmcgY29weSkKQEAg
LTI1LDcgKzI1LDcgQEAKIAogI2ltcG9ydCAiY29uZmlnLmgiCiAKLSNpZiAhUExBVEZPUk0oSU9T
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAorI2lmICFQTEFU
Rk9STShJT1MpCiAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDxKYXZh
U2NyaXB0Q29yZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9EcmFnQW5kRHJvcFBhc3RlYm9hcmRUZXN0cy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9EcmFnQW5kRHJvcFBhc3RlYm9hcmRUZXN0
cy5tbQkocmV2aXNpb24gMjE5MDQ4KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
RHJhZ0FuZERyb3BQYXN0ZWJvYXJkVGVzdHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTE4OSw4ICsx
ODksNiBAQCAtICh2b2lkKWVudW1lcmF0ZURyYWdnaW5nSXRlbXNXaXRoT3B0aW9uCiB7CiB9CiAK
LSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMTAwCi0KIC0gKE5TU3By
aW5nTG9hZGluZ0hpZ2hsaWdodClzcHJpbmdMb2FkaW5nSGlnaGxpZ2h0CiB7CiAgICAgcmV0dXJu
IE5TU3ByaW5nTG9hZGluZ0hpZ2hsaWdodE5vbmU7CkBAIC0yMDAsOCArMTk4LDYgQEAgLSAodm9p
ZClyZXNldFNwcmluZ0xvYWRpbmcKIHsKIH0KIAotI2VuZGlmCi0KIEBlbmQKIAogbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgewpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVs
bHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0JKHJldmlzaW9uIDIx
OTA0OCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5ab29tSW5p
dGlhbEZyYW1lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xODksMTIgKzE4OSw4IEBAIFRFU1RfRihG
dWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZSwgV2ViS2kKICAgICBydW5XZWJLaXQxVGVzdCgpOwog
fQogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+IDEwMTAwMAogLy8gRklY
TUU6PHJkYXI6Ly9wcm9ibGVtLzIwNTA0NDAzPgogVEVTVF9GKEZ1bGxzY3JlZW5ab29tSW5pdGlh
bEZyYW1lLCBESVNBQkxFRF9XZWJLaXQyKQotI2Vsc2UKLVRFU1RfRihGdWxsc2NyZWVuWm9vbUlu
aXRpYWxGcmFtZSwgV2ViS2l0MikKLSNlbmRpZgogewogICAgIHJ1bldlYktpdDJUZXN0KCk7CiB9
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TdHJpbmdUcnVuY2F0b3IubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU3RyaW5nVHJ1bmNh
dG9yLm1tCShyZXZpc2lvbiAyMTkwNDgpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9TdHJpbmdUcnVuY2F0b3IubW0JKHdvcmtpbmcgY29weSkKQEAgLTM1LDExICszNSw3IEBAIFRF
U1QoV2ViS2l0MSwgU3RyaW5nVHJ1bmNhdG9yKQogICAgIEBhdXRvcmVsZWFzZXBvb2wgewogICAg
ICAgICBFWFBFQ1RfRVEobmlsLCBbV2ViU3RyaW5nVHJ1bmNhdG9yIGNlbnRlclRydW5jYXRlU3Ry
aW5nOkAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiIHRvV2lkdGg6MTAwIHdpdGhGb250Om5p
bF0pOwogICAgICAgICBFWFBFQ1RfU1RSRVEoW1tXZWJTdHJpbmdUcnVuY2F0b3IgY2VudGVyVHJ1
bmNhdGVTdHJpbmc6QCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIgdG9XaWR0aDoxMDAgd2l0
aEZvbnQ6W05TRm9udCBmb250V2l0aE5hbWU6QCJIZWx2ZXRpY2EiIHNpemU6MTJdXSBVVEY4U3Ry
aW5nXSwgImFiY2RlZmfigKZ0dXZ3eHl6Iik7Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+IDEwMTAwMAogICAgICAgICBFWFBFQ1RfU1RSRVEoW1tXZWJTdHJpbmdUcnVuY2F0
b3IgY2VudGVyVHJ1bmNhdGVTdHJpbmc6QCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIgdG9X
aWR0aDoxMDBdIFVURjhTdHJpbmddLCAiYWJjZGVm4oCmdXZ3eHl6Iik7Ci0jZWxzZQotICAgICAg
ICBFWFBFQ1RfU1RSRVEoW1tXZWJTdHJpbmdUcnVuY2F0b3IgY2VudGVyVHJ1bmNhdGVTdHJpbmc6
QCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIgdG9XaWR0aDoxMDBdIFVURjhTdHJpbmddLCAi
YWJjZGVm4oCmdnd4eXoiKTsKLSNlbmRpZgogICAgICAgICBFWFBFQ1RfRVEobmlsLCBbV2ViU3Ry
aW5nVHJ1bmNhdG9yIHJpZ2h0VHJ1bmNhdGVTdHJpbmc6QCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiIgdG9XaWR0aDoxMDAgd2l0aEZvbnQ6bmlsXSk7CiAgICAgICAgIEVYUEVDVF9TVFJFUShb
W1dlYlN0cmluZ1RydW5jYXRvciByaWdodFRydW5jYXRlU3RyaW5nOkAiYWJjZGVmZ2hpamtsbW5v
cHFyc3R1dnd4eXoiIHRvV2lkdGg6MTAwIHdpdGhGb250OltOU0ZvbnQgZm9udFdpdGhOYW1lOkAi
SGVsdmV0aWNhIiBzaXplOjEyXV0gVVRGOFN0cmluZ10sICJhYmNkZWZnaGlqa2xtbm/igKYiKTsK
ICAgICAgICAgRVhQRUNUX1NUUkVRKFtbV2ViU3RyaW5nVHJ1bmNhdG9yIGNlbnRlclRydW5jYXRl
U3RyaW5nOkAixIFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiB0b1dpZHRoOjEwMCB3aXRoRm9u
dDpbTlNGb250IGZvbnRXaXRoTmFtZTpAIkhlbHZldGljYSIgc2l6ZToxMl1dIFVURjhTdHJpbmdd
LCAixIFiY2RlZmfigKZ0dXZ3eHl6Iik7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0Nv
bmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpCisr
KyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHdv
cmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDYgQEAgREVCVUdfREVGSU5FU19ub3JtYWwgPSBOREVC
VUc7CiBERUJVR19ERUZJTkVTID0gJChERUJVR19ERUZJTkVTXyQoQ1VSUkVOVF9WQVJJQU5UKSk7
CiAKIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChUQVJHRVRfTUFDX09TX1hfVkVS
U0lPTl9NQUpPUiQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUOnN1ZmZpeDppZGVudGlmaWVyKSk7
Ci1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMCA9IDEwMTAwMDsKIFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SXzExID0gMTAxMTAwOwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05f
TUFKT1JfMTIgPSAxMDEyMDA7CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMyA9IDEw
MTMwMDsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvRGVidWdS
ZWxlYXNlLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ29u
ZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpCisrKyBU
b29scy9XZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZp
Zwkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQCBPTkxZX0FDVElWRV9BUkNIID0gWUVT
OwogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKE1BQ19PU19YX1ZFUlNJT05fTUFK
T1IpOwogCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAkKE1BQ09TWF9ERVBMT1lNRU5UX1RB
UkdFVF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSkKLU1BQ09TWF9ERVBMT1lNRU5U
X1RBUkdFVF8xMDEwMDAgPSAxMC4xMDsKIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8xMDExMDAg
PSAxMC4xMTsKIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8xMDEyMDAgPSAxMC4xMjsKIE1BQ09T
WF9ERVBMT1lNRU5UX1RBUkdFVF8xMDEzMDAgPSAxMC4xMzsKQEAgLTM5LDcgKzM4LDYgQEAgTUFD
T1NYX0RFUExPWU1FTlRfVEFSR0VUXzEwMTQwMCA9IDEwLjE0OwogV0VCS0lUX1NZU1RFTV9JTlRF
UkZBQ0VfTElCUkFSWVtzZGs9aXBob25lb3MqXSA9IFdlYktpdFN5c3RlbUludGVyZmFjZUlPU0Rl
dmljZSQoV0tfVEFSR0VUX0lPU19WRVJTSU9OX01BSk9SKTsKIFdFQktJVF9TWVNURU1fSU5URVJG
QUNFX0xJQlJBUllbc2RrPWlwaG9uZXNpbXVsYXRvcipdID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNl
SU9TU2ltdWxhdG9yJChXS19UQVJHRVRfSU9TX1ZFUlNJT05fTUFKT1IpOwogV0VCS0lUX1NZU1RF
TV9JTlRFUkZBQ0VfTElCUkFSWVtzZGs9bWFjb3N4Kl0gPSAkKFdFQktJVF9TWVNURU1fSU5URVJG
QUNFX0xJQlJBUllfbWFjb3N4XyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKLVdF
QktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllfbWFjb3N4XzEwMTAwMCA9IFdlYktpdFN5c3Rl
bUludGVyZmFjZVlvc2VtaXRlOwogV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNv
c3hfMTAxMTAwID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNlRWxDYXBpdGFuOwogV0VCS0lUX1NZU1RF
TV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfMTAxMjAwID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNl
T1NYMTAuMTI7CiBXRUJLSVRfU1lTVEVNX0lOVEVSRkFDRV9MSUJSQVJZX21hY29zeF8xMDEzMDAg
PSAkKFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllfbWFjb3N4XzEwMTIwMCk7CkluZGV4
OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1bmRs
ZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbQkocmV2aXNpb24gMjE5MDQ4KQorKysgVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0J
KHdvcmtpbmcgY29weSkKQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6cGxh
dGZvcm1Jbml0aWFsaXplKAogICAgICAgICAgICAgQCJ3ZWxsY29tZSI6IEAid2VsY29tZSIsCiAg
ICAgICAgICAgICBAImhlbGxvbGZ3b3JsZCI6IEAiaGVsbG9cbndvcmxkIgogICAgICAgICB9LAot
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDEyMDAKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEIDwgMTAxMjAwCiAgICAgICAgIEAiQXBwbGVTeXN0ZW1Gb250T1NTdWJ2ZXJz
aW9uIjogQCgxMCksCiAjZW5kaWYKICAgICAgICAgQCJBcHBsZUVuYWJsZVN3aXBlTmF2aWdhdGVX
aXRoU2Nyb2xscyI6IEBZRVMsCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJL
aXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvbWFjL1dlYktpdFRlc3RSdW5uZXJEcmFnZ2luZ0luZm8ubW0JKHJldmlzaW9uIDIx
OTA0OCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1dlYktpdFRlc3RSdW5uZXJEcmFn
Z2luZ0luZm8ubW0JKHdvcmtpbmcgY29weSkKQEAgLTE0Niw3ICsxNDYsNiBAQCAtICh2b2lkKWVu
dW1lcmF0ZURyYWdnaW5nSXRlbXNXaXRoT3B0aW9uCiAgICAgLy8gSWdub3JlZC4KIH0KIAotI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDExMDAKIC0oTlNTcHJpbmdMb2Fk
aW5nSGlnaGxpZ2h0KXNwcmluZ0xvYWRpbmdIaWdobGlnaHQKIHsKICAgICByZXR1cm4gTlNTcHJp
bmdMb2FkaW5nSGlnaGxpZ2h0Tm9uZTsKQEAgLTE1NSw2ICsxNTQsNSBAQCAtKE5TU3ByaW5nTG9h
ZGluZ0hpZ2hsaWdodClzcHJpbmdMb2FkaW5nCiAtICh2b2lkKXJlc2V0U3ByaW5nTG9hZGluZwog
ewogfQotI2VuZGlmCiAKIEBlbmQK
</data>
<flag name="review"
          id="335280"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314389</attachid>
            <date>2017-07-01 12:03:22 -0700</date>
            <delta_ts>2017-07-01 13:41:05 -0700</delta_ts>
            <desc>Remove unneeded code</desc>
            <filename>file_174067.txt</filename>
            <type>text/plain</type>
            <size>185945</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwx
NiBAQA0KKzIwMTctMDctMDEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4NCisNCisg
ICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiAoT09QUyEpLg0KKyAgICAgICAgTmVlZCB0
aGUgYnVnIFVSTCAoT09QUyEpLg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuDQorDQorICAgICAgICAqIEFQSS9XZWJLaXRBdmFpbGFiaWxpdHkuaDoNCisgICAgICAgICog
Q29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoNCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
RGVidWdSZWxlYXNlLnhjY29uZmlnOg0KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZzoNCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2Nv
bmZpZzoNCisNCiAyMDE3LTA3LTAxICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPg0KIA0KICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4IGZvciBHQ0MNCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL1dlYktpdEF2YWlsYWJpbGl0eS5oDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9XZWJLaXRBdmFpbGFiaWxpdHkuaAkocmV2
aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvV2ViS2l0QXZhaWxh
YmlsaXR5LmgJKHdvcmtpbmcgY29weSkNCkBAIC02Niw3ICs2Niw3IEBADQogI2RlZmluZSBBVkFJ
TEFCTEVfTUFDX09TX1hfVkVSU0lPTl8xMF8xMF9BTkRfTEFURVINCiAjZW5kaWYNCiANCi0jZW5k
aWYgLyogX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDExMDAgKi8NCisjZW5k
aWYgLyogIVRBUkdFVF9PU19JUEhPTkUgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA8IDEwMTEwMCAqLw0KIA0KICNpZiBkZWZpbmVkKEJVSUxESU5HX0dUS19fKQ0KICN1bmRlZiBD
Rl9BVkFJTEFCTEUNCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMv
QmFzZS54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25m
aWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHdvcmtpbmcgY29weSkN
CkBAIC04OSw3ICs4OSw2IEBAIFdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3Qt
cXUNCiBIRUFERVJfU0VBUkNIX1BBVEhTID0gLiAiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L3Vzci9s
b2NhbC9pbmNsdWRlIiAkKEhFQURFUl9TRUFSQ0hfUEFUSFMpOw0KIA0KIFRBUkdFVF9NQUNfT1Nf
WF9WRVJTSU9OX01BSk9SID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiQoTUFDT1NY
X0RFUExPWU1FTlRfVEFSR0VUOnN1ZmZpeDppZGVudGlmaWVyKSk7DQotVEFSR0VUX01BQ19PU19Y
X1ZFUlNJT05fTUFKT1JfMTAgPSAxMDEwMDA7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFK
T1JfMTEgPSAxMDExMDA7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTIgPSAxMDEy
MDA7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7DQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZp
Zw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9E
ZWJ1Z1JlbGVhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnCSh3b3JraW5nIGNv
cHkpDQpAQCAtMzAsNyArMzAsNiBAQCBPTkxZX0FDVElWRV9BUkNIID0gWUVTOw0KIFRBUkdFVF9N
QUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChNQUNfT1NfWF9WRVJTSU9OX01BSk9SKTsNCiANCiBN
QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8kKFBM
QVRGT1JNX05BTUUpXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsNCi1NQUNPU1hf
REVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTAwMCA9IDEwLjEwOw0KIE1BQ09TWF9ERVBMT1lN
RU5UX1RBUkdFVF9tYWNvc3hfMTAxMTAwID0gMTAuMTE7DQogTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUX21hY29zeF8xMDEyMDAgPSAxMC4xMjsNCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFj
b3N4XzEwMTMwMCA9IDEwLjEzOw0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2
aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQ0KQEAgLTMyLDExICszMiw5IEBA
DQogLy8gU2V0IGFueSBFTkFCTEVfRkVBVFVSRV9OQU1FIG1hY3JvIHRvIGFuIGVtcHR5IHN0cmlu
ZyB0byBkaXNhYmxlIHRoYXQgZmVhdHVyZS4NCiANCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9M
RVNTX1RIQU5fMTAxMjAwMCA9ICQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEw
MTIwMDBfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOw0KLVRBUkdFVF9NQUNfT1Nf
WF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEyMDAwXzEwMTAwMCA9IFlFUzsNCiBUQVJHRVRfTUFDX09T
X1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMjAwMF8xMDExMDAgPSBZRVM7DQogDQogVEFSR0VUX01B
Q19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDAgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJT
SU9OX0xFU1NfVEhBTl8xMDEzMDAwXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsN
Ci1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAwMF8xMDEwMDAgPSBZRVM7
DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDBfMTAxMTAwID0gWUVT
Ow0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwXzEwMTIwMCA9IFlF
UzsNCiANCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvVmVyc2lv
bi54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1
cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcJKHdvcmtpbmcgY29w
eSkNCkBAIC0zNSw3ICszNSw2IEBAIFNIT1JUX1ZFUlNJT05fU1RSSU5HID0gJChTSE9SVF9WRVJT
SU9OX1MNCiAvLyBUaGUgc3lzdGVtIHZlcnNpb24gcHJlZml4IGlzIGJhc2VkIG9uIHRoZSBjdXJy
ZW50IHN5c3RlbSB2ZXJzaW9uLg0KIFNZU1RFTV9WRVJTSU9OX1BSRUZJWFtzZGs9aXBob25lKl0g
PSA4Ow0KIFNZU1RFTV9WRVJTSU9OX1BSRUZJWCA9ICQoU1lTVEVNX1ZFUlNJT05fUFJFRklYXyQo
UExBVEZPUk1fTkFNRSlfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOw0KLVNZU1RF
TV9WRVJTSU9OX1BSRUZJWF9tYWNvc3hfMTAxMDAwID0gMTA7DQogU1lTVEVNX1ZFUlNJT05fUFJF
RklYX21hY29zeF8xMDExMDAgPSAxMTsNCiBTWVNURU1fVkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEw
MTIwMCA9IDEyOw0KIFNZU1RFTV9WRVJTSU9OX1BSRUZJWF9tYWNvc3hfMTAxMzAwID0gMTM7DQpJ
bmRleDogU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTkwNDgpDQorKysg
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwz
ICsxLDEzIEBADQorMjAxNy0wNy0wMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPg0K
Kw0KKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIChPT1BTISkuDQorICAgICAgICBO
ZWVkIHRoZSBidWcgVVJMIChPT1BTISkuDQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4NCisNCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoNCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnOg0KKw0KIDIwMTct
MDYtMTAgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFJldmVy
dGVkIHIyMTgwNTYgYmVjYXVzZSBpdCBtYWRlIHRoZSBJREUgcmVpbmRleCBjb25zdGFudGx5Lg0K
SW5kZXg6IFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25m
aWcNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9Db25maWd1cmF0aW9u
cy9CYXNlLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwkod29ya2luZyBjb3B5KQ0KQEAgLTQ5
LDcgKzQ5LDYgQEAgV0FSTklOR19DRkxBR1MgPSAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLQ0KIFNV
UFBPUlRFRF9QTEFURk9STVMgPSBpcGhvbmVvcyBpcGhvbmVzaW11bGF0b3IgbWFjb3N4IGFwcGxl
dHZvcyBhcHBsZXR2c2ltdWxhdG9yIHdhdGNob3Mgd2F0Y2hzaW11bGF0b3I7DQogDQogVEFSR0VU
X01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9S
JChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsNCi1UQVJHRVRf
TUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMCA9IDEwMTAwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVS
U0lPTl9NQUpPUl8xMSA9IDEwMTEwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8x
MiA9IDEwMTIwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMyA9IDEwMTMwMDsN
CkluZGV4OiBTb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVh
c2UueGNjb25maWcNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9Db25m
aWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBT
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25m
aWcJKHdvcmtpbmcgY29weSkNCkBAIC03LDcgKzcsNiBAQCBPTkxZX0FDVElWRV9BUkNIID0gWUVT
Ow0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChNQUNfT1NfWF9WRVJTSU9OX01B
Sk9SKTsNCiANCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAkKE1BQ09TWF9ERVBMT1lNRU5U
X1RBUkdFVF8kKFBMQVRGT1JNX05BTUUpXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1Ip
KTsNCi1NQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTAwMCA9IDEwLjEwOw0KIE1B
Q09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMTAwID0gMTAuMTE7DQogTUFDT1NYX0RF
UExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDEyMDAgPSAxMC4xMjsNCiBNQUNPU1hfREVQTE9ZTUVO
VF9UQVJHRVRfbWFjb3N4XzEwMTMwMCA9IDEwLjEzOw0KSW5kZXg6IFNvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwxMyBAQA0K
KzIwMTctMDctMDEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4NCisNCisgICAgICAg
IE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiAoT09QUyEpLg0KKyAgICAgICAgTmVlZCB0aGUgYnVn
IFVSTCAoT09QUyEpLg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQor
DQorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6DQorICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZzoNCisNCiAyMDE3LTA2LTI3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFVwZGF0ZSBib3Jpbmdz
c2wgdG8gYzhmZjMwY2JlNzE2YzcyMjc5YTZmNmE5ZDdkN2QwZDQwOTEyMjBmYQ0KSW5kZXg6IFNv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25z
L0Jhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwkod29ya2luZyBjb3B5KQ0KQEAg
LTUwLDcgKzUwLDYgQEAgU1VQUE9SVEVEX1BMQVRGT1JNUyA9IGlwaG9uZW9zIGlwaG9uZXNpbQ0K
IFZBTElEX0FSQ0hTID0gJChBUkNIU19TVEFOREFSRF82NF9CSVQpOw0KIA0KIFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiQoTUFD
T1NYX0RFUExPWU1FTlRfVEFSR0VUOnN1ZmZpeDppZGVudGlmaWVyKSk7DQotVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTUFKT1JfMTAgPSAxMDEwMDA7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05f
TUFKT1JfMTEgPSAxMDExMDA7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTIgPSAx
MDEyMDA7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7DQpJbmRl
eDogU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFz
ZS54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9D
b25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisr
KyBTb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNl
LnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtNyw3ICs3LDYgQEAgT05MWV9BQ1RJVkVfQVJD
SCA9IFlFUzsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoTUFDX09TX1hfVkVS
U0lPTl9NQUpPUik7DQogDQogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gJChNQUNPU1hfREVQ
TE9ZTUVOVF9UQVJHRVRfJChQTEFURk9STV9OQU1FKV8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9O
X01BSk9SKSk7DQotTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDEwMDAgPSAxMC4x
MDsNCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTEwMCA9IDEwLjExOw0KIE1B
Q09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMjAwID0gMTAuMTI7DQogTUFDT1NYX0RF
UExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDEzMDAgPSAxMC4xMzsNCkluZGV4OiBTb3VyY2UvV1RG
L0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShyZXZpc2lv
biAyMTkwNDkpDQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkNCkBAIC0x
LDMgKzEsMTcgQEANCisyMDE3LTA3LTAxICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+
DQorDQorICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gKE9PUFMhKS4NCisgICAgICAg
IE5lZWQgdGhlIGJ1ZyBVUkwgKE9PUFMhKS4NCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnOg0K
KyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWc6DQorICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybS5oOg0KKyAgICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxp
dHlEZWNsYXJhdGlvbnMuaDoNCisgICAgICAgICogd3RmL3NwaS9jb2NvYS9TZWN1cml0eVNQSS5o
Og0KKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHA6DQorDQogMjAxNy0w
Ny0wMSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPg0KIA0KICAgICAgICAg
QWRkIGEgd2FybmluZyBpZiBXRUJHTDIgaXMgZW5hYmxlZCB3aXRob3V0IFdFQkdMDQpJbmRleDog
U291cmNlL1dURi9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
U291cmNlL1dURi9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgp
DQorKysgU291cmNlL1dURi9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCSh3b3JraW5nIGNv
cHkpDQpAQCAtODgsNyArODgsNiBAQCBXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdj
YXN0LXF1DQogSEVBREVSX1NFQVJDSF9QQVRIUyA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKS91c3Iv
bG9jYWwvaW5jbHVkZSAkKERTVFJPT1QpL3Vzci9sb2NhbC9pbmNsdWRlIGljdSAkKEhFQURFUl9T
RUFSQ0hfUEFUSFMpOw0KIA0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChUQVJH
RVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUOnN1ZmZp
eDppZGVudGlmaWVyKSk7DQotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTAgPSAxMDEw
MDA7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTEgPSAxMDExMDA7DQogVEFSR0VU
X01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTIgPSAxMDEyMDA7DQogVEFSR0VUX01BQ19PU19YX1ZF
UlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7DQpJbmRleDogU291cmNlL1dURi9Db25maWd1cmF0aW9u
cy9EZWJ1Z1JlbGVhc2UueGNjb25maWcNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV1RGL0NvbmZp
Z3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNv
dXJjZS9XVEYvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnCSh3b3JraW5nIGNv
cHkpDQpAQCAtMjksNyArMjksNiBAQCBPTkxZX0FDVElWRV9BUkNIID0gWUVTOw0KIFRBUkdFVF9N
QUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChNQUNfT1NfWF9WRVJTSU9OX01BSk9SKTsNCiANCiBN
QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8kKFBM
QVRGT1JNX05BTUUpXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsNCi1NQUNPU1hf
REVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTAwMCA9IDEwLjEwOw0KIE1BQ09TWF9ERVBMT1lN
RU5UX1RBUkdFVF9tYWNvc3hfMTAxMTAwID0gMTAuMTE7DQogTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUX21hY29zeF8xMDEyMDAgPSAxMC4xMjsNCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFj
b3N4XzEwMTMwMCA9IDEwLjEzOw0KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgNCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAyMTkwNDgp
DQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAkod29ya2luZyBjb3B5KQ0KQEAgLTU3Mywx
MiArNTczLDYgQEANCiAjZGVmaW5lIFVTRV9QTFVHSU5fSE9TVF9QUk9DRVNTIDENCiAjZW5kaWYN
CiANCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCi0jZGVm
aW5lIEhBVkVfTlNTQ1JPTExJTkdfRklMVEVSUyAxDQotI2Vsc2UNCi0jZGVmaW5lIEhBVkVfTlNT
Q1JPTExJTkdfRklMVEVSUyAwDQotI2VuZGlmDQotDQogLyogT1MgWCBkZWZpbmVzIGEgc2VyaWVz
IG9mIHBsYXRmb3JtIG1hY3JvcyBmb3IgZGVidWdnaW5nLiAqLw0KIC8qIFNvbWUgb2YgdGhlbSBh
cmUgcmVhbGx5IGFubm95aW5nIGJlY2F1c2UgdGhleSB1c2UgY29tbW9uIG5hbWVzIChlLmcuIGNo
ZWNrKCkpLiAqLw0KIC8qIERpc2FibGUgdGhvc2UgbWFjcm9zIHNvIHRoYXQgd2UgYXJlIG5vdCBs
aW1pdGVkIGluIGhvdyB3ZSBuYW1lIG1ldGhvZHMgYW5kIGZ1bmN0aW9ucy4gKi8NCkBAIC0xMTQ1
LDcgKzExMzksNyBAQA0KICNkZWZpbmUgVVNFX0lOU0VSVElPTl9VTkRPX0dST1VQSU5HIDENCiAj
ZW5kaWYNCiANCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDExMDApIHx8IFBMQVRGT1JNKElPUykNCisjaWYgUExBVEZPUk0oQ09DT0Ep
DQogI2RlZmluZSBIQVZFX1RJTUlOR0RBVEFPUFRJT05TIDENCiAjZW5kaWYNCiANCkBAIC0xMjAx
LDExICsxMTk1LDYgQEANCiAjZGVmaW5lIFVTRV9NRURJQVRPT0xCT1ggMQ0KICNlbmRpZg0KIA0K
LS8qIFdoaWxlIDEwLjEwIGhhcyBzdXBwb3J0IGZvciBmZW5jZXMsIGl0IGlzIG1pc3Npbmcgc29t
ZSBBUEkgaW1wb3J0YW50IGZvciBvdXIgaW50ZWdyYXRpb24gb2YgdGhlbS4gKi8NCi0jaWYgUExB
VEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTEwMCkNCi0jZGVmaW5lIEhBVkVfQ09SRUFOSU1BVElPTl9GRU5DRVMgMQ0K
LSNlbmRpZg0KLQ0KIC8qIEZJWE1FOiBFbmFibGUgVVNFX09TX0xPRyB3aGVuIGJ1aWxkaW5nIHdp
dGggdGhlIHB1YmxpYyBpT1MgMTAgU0RLIG9uY2Ugd2UgZml4IDxyZGFyOi8vcHJvYmxlbS8yNzc1
ODM0Mz4uICovDQogI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMjAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDAwMDAgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykpDQog
I2RlZmluZSBVU0VfT1NfTE9HIDENCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29t
cGF0aWJpbGl0eURlY2xhcmF0aW9ucy5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dURi93dGYv
bWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaAkocmV2aXNpb24gMjE5MDQ4KQ0K
KysrIFNvdXJjZS9XVEYvd3RmL21hYy9BcHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgJ
KHdvcmtpbmcgY29weSkNCkBAIC0xMDcsMTggKzEwNyw2IEBAIHN0YXRpYyBjb25zdCBOU0V2ZW50
VHlwZSBOU0V2ZW50VHlwZVJpZ2gNCiBzdGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5
cGVTY3JvbGxXaGVlbCA9IE5TU2Nyb2xsV2hlZWw7DQogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBl
IE5TRXZlbnRUeXBlU3lzdGVtRGVmaW5lZCA9IE5TU3lzdGVtRGVmaW5lZDsNCiANCi0jaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEIDwgMTAxMTAwDQotc3RhdGljIGNvbnN0IE5TVGV4
dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnRSaWdodCA9IE5TUmlnaHRUZXh0QWxpZ25tZW50Ow0K
LXN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50Q2VudGVyID0gTlND
ZW50ZXJUZXh0QWxpZ25tZW50Ow0KLXN0YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0
QWxpZ25tZW50TGVmdCA9IE5TTGVmdFRleHRBbGlnbm1lbnQ7DQotc3RhdGljIGNvbnN0IE5TVGV4
dEFsaWdubWVudCBOU1RleHRBbGlnbm1lbnROYXR1cmFsID0gTlNOYXR1cmFsVGV4dEFsaWdubWVu
dDsNCi1zdGF0aWMgY29uc3QgTlNUZXh0QWxpZ25tZW50IE5TVGV4dEFsaWdubWVudEp1c3RpZmll
ZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdubWVudDsNCi0NCi10eXBlZGVmIE5TSW50ZWdlciBOU1dy
aXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlOw0KLXN0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rp
b25Gb3JtYXRUeXBlID0gTlNUZXh0V3JpdGluZ0RpcmVjdGlvbk92ZXJyaWRlOw0KLXN0YXRpYyBj
b25zdCBOU1dyaXRpbmdEaXJlY3Rpb25FbWJlZGRpbmcgPSBOU1RleHRXcml0aW5nRGlyZWN0aW9u
RW1iZWRkaW5nOw0KLSNlbmRpZg0KLQ0KIHR5cGVkZWYgTlNVSW50ZWdlciBOU1dpbmRvd1N0eWxl
TWFzazsNCiBzdGF0aWMgY29uc3QgTlNXaW5kb3dTdHlsZU1hc2sgTlNXaW5kb3dTdHlsZU1hc2tC
b3JkZXJsZXNzID0gTlNCb3JkZXJsZXNzV2luZG93TWFzazsNCiBzdGF0aWMgY29uc3QgTlNXaW5k
b3dTdHlsZU1hc2sgTlNXaW5kb3dTdHlsZU1hc2tDbG9zYWJsZSA9IE5TQ2xvc2FibGVXaW5kb3dN
YXNrOw0KSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9TZWN1cml0eVNQSS5oDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gU291cmNlL1dURi93dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmgJKHJldmlz
aW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvU2VjdXJpdHlTUEkuaAko
d29ya2luZyBjb3B5KQ0KQEAgLTM3LDcgKzM3LDYgQEANCiANCiAjZWxzZQ0KIA0KLSNpZiAoUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkg
fHwgUExBVEZPUk0oSU9TKQ0KIHR5cGVkZWYgdWludDMyX3QgU2VjU2lnbmF0dXJlSGFzaEFsZ29y
aXRobTsNCiBlbnVtIHsNCiAgICAga1NlY1NpZ25hdHVyZUhhc2hBbGdvcml0aG1Vbmtub3duID0g
MCwNCkBAIC01Niw3ICs1NSw2IEBAIFdURl9FWFRFUk5fQ19CRUdJTg0KIFNlY1NpZ25hdHVyZUhh
c2hBbGdvcml0aG0gU2VjQ2VydGlmaWNhdGVHZXRTaWduYXR1cmVIYXNoQWxnb3JpdGhtKFNlY0Nl
cnRpZmljYXRlUmVmKTsNCiANCiBXVEZfRVhURVJOX0NfRU5EDQotI2VuZGlmDQogDQogI2VuZGlm
DQogDQpJbmRleDogU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHANCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcAko
cmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3IuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMzEsOSArMzEsNiBAQA0KICNpbmNsdWRlIDx1bmlj
b2RlL3VicmsuaD4NCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPg0KIA0KLS8v
IEZJWE1FOiBUaGlzIG5lZWRzIGEgYmV0dGVyIG5hbWUNCi0jZGVmaW5lIEFERElUSU9OQUxfRU1P
SklfU1VQUE9SVCAoUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkpDQotDQogbmFtZXNwYWNlIFdURiB7DQog
DQogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpDQpJbmRleDogU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpDQpAQCAtMSwzICsxLDc0IEBADQorMjAxNy0wNy0wMSAgRGFuIEJlcm5zdGVpbiAgPG1p
dHpAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIChPT1BT
ISkuDQorICAgICAgICBOZWVkIHRoZSBidWcgVVJMIChPT1BTISkuDQorDQorICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFz
ZS54Y2NvbmZpZzoNCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29u
ZmlnOg0KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoN
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZzoNCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3NpYmlsaXR5KToNCisgICAg
ICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6DQorICAgICAgICAqIHBhZ2UvV2hlZWxF
dmVudERlbHRhRmlsdGVyLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50RGVsdGFG
aWx0ZXI6OmNyZWF0ZSk6DQorICAgICAgICAqIHBhZ2UvbWFjL1doZWVsRXZlbnREZWx0YUZpbHRl
ck1hYy5oOg0KKyAgICAgICAgKiBwYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMubW06
DQorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5j
cHA6DQorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1
bGF0b3JNYWMuaDoNCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ01vbWVu
dHVtQ2FsY3VsYXRvck1hYy5tbToNCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4
dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW06DQorICAgICAgICAocmVwbGFjZW1lbnREYXRhRnJvbURl
Y2lzaW9uSW5mbyk6DQorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRG
aWx0ZXI6OmluaXRpYWxpemUpOg0KKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtFeHRlbnNpb25D
b250ZW50RmlsdGVyOjp3aWxsU2VuZFJlcXVlc3QpOg0KKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdv
cmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpyZXNwb25zZVJlY2VpdmVkKToNCisgICAgICAgIChX
ZWJDb3JlOjpOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6YWRkRGF0YSk6DQorICAgICAg
ICAoV2ViQ29yZTo6TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OmZpbmlzaGVkQWRkaW5n
RGF0YSk6DQorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6
OnVuYmxvY2tIYW5kbGVyKToNCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRl
eHRDb250cm9sbGVyLmg6DQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1Bs
YXRmb3JtQ0FBbmltYXRpb25Db2NvYS5tbToNCisgICAgICAgIChQbGF0Zm9ybUNBQW5pbWF0aW9u
Q29jb2E6OnNldFRpbWluZ0Z1bmN0aW9uKToNCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNo
ZTo6cGxhdGZvcm1BbHRlcm5hdGVGYW1pbHlOYW1lKToNCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udENvY29hLm1tOg0KKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OnBsYXRm
b3JtSW5pdCk6DQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5t
bToNCisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNpbmtJbnRvSW1hZ2UpOg0KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHUFVMYXllci5tbToNCisgICAgICAgICgt
W1dlYkdQVUxheWVyIGluaXRXaXRoR1BVRGV2aWNlOl0pOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW06DQorICAgICAgICAo
V2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjpDb21wbGV4VGV4dFJ1bjo6Q29tcGxleFRl
eHRSdW4pOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbToN
CisgICAgICAgICgtW1dlYkdMTGF5ZXIgaW5pdFdpdGhHcmFwaGljc0NvbnRleHQzRDpdKToNCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL0JsYWNrbGlzdFVwZGF0ZXIubW06DQorICAgICAgICAqIHBs
YXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbToNCisgICAgICAgIChXZWJDb3JlOjpzY3Jl
ZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IpOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVmFsaWRh
dGlvbkJ1YmJsZU1hYy5tbToNCisgICAgICAgIChXZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlOjpW
YWxpZGF0aW9uQnViYmxlKToNCisgICAgICAgICogcGxhdGZvcm0vbWFjL1dlYkdMQmxhY2tsaXN0
Lm1tOg0KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMQmxhY2tsaXN0OjpjcmVhdGUpOg0KKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24uaDoNCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tOg0KKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9DZXJ0aWZpY2F0ZUluZm9NYWMubW06DQorICAg
ICAgICAoV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvOjpjb250YWluc05vblJvb3RTSEExU2lnbmVk
Q2VydGlmaWNhdGUpOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJN
YWMubW06DQorICAgICAgICAoV2ViQ29yZTo6c2V0Q29va2llc0Zyb21ET00pOg0KKyAgICAgICAg
KiBwbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg6DQorICAgICAgICAqIHBsYXRmb3JtL3Nw
aS9jZy9Db3JlR3JhcGhpY3NTUEkuaDoNCisgICAgICAgICogcGxhdGZvcm0vc3BpL2NvY29hL05F
RmlsdGVyU291cmNlU1BJLmg6DQorICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2NvYS9OU1VSTENv
bm5lY3Rpb25TUEkuaDoNCisgICAgICAgICogcGxhdGZvcm0vc3BpL2NvY29hL1F1YXJ0ekNvcmVT
UEkuaDoNCisgICAgICAgICogcGxhdGZvcm0vc3BpL21hYy9OU1Njcm9sbGluZ0lucHV0RmlsdGVy
U1BJLmg6DQorICAgICAgICAqIHBsYXRmb3JtL3NwaS9tYWMvTlNTY3JvbGxpbmdNb21lbnR1bUNh
bGN1bGF0b3JTUEkuaDoNCisgICAgICAgICogcGxhdGZvcm0vc3BpL21hYy9UVUNhbGxTUEkuaDoN
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOg0KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lTWFjOjpsZXZlbEluZGljYXRvckZvcik6DQorICAgICAgICAqIHN2Zy9T
VkdUb09URkZvbnRDb252ZXJzaW9uLmNwcDoNCisgICAgICAgIChXZWJDb3JlOjpTVkdUb09URkZv
bnRDb252ZXJ0ZXI6OmFwcGVuZEtFUk5UYWJsZSk6DQorICAgICAgICAoV2ViQ29yZTo6U1ZHVG9P
VEZGb250Q29udmVydGVyOjpTVkdUb09URkZvbnRDb252ZXJ0ZXIpOg0KKw0KIDIwMTctMDYtMzAg
IFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4NCiANCiAgICAgICAg
IElmIGFuIGltYWdlIGFwcGVhcnMgbW9yZSB0aGFuIG9uY2Ugb24gYSBwYWdlLCBkZWNvZGluZyBm
b3IgcGFpbnRpbmcgb25lIGluc3RhbmNlIHJlcGFpbnRzIHRoZW0gYWxsDQpJbmRleDogU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNv
dXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0
OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCSh3b3Jr
aW5nIGNvcHkpDQpAQCAtNzgsNyArNzgsNiBAQCBHQ0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZ
RVM7DQogV0FSTklOR19DRkxBR1MgPSAtV2FsbCAtV2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1z
dWJzY3JpcHRzIC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5n
LWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1h
cml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3VuZGVmIC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGlt
ZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFy
ZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoIC1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbjsNCiAN
CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VUX01BQ19PU19YX1ZFUlNJ
T05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6aWRlbnRpZmllcikpOw0K
LVRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzEwID0gMTAxMDAwOw0KIFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SXzExID0gMTAxMTAwOw0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9O
X01BSk9SXzEyID0gMTAxMjAwOw0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzEzID0g
MTAxMzAwOw0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFz
ZS54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25z
L0RlYnVnUmVsZWFzZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJD
b3JlL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwkod29ya2luZyBjb3B5KQ0K
QEAgLTMwLDcgKzMwLDYgQEAgT05MWV9BQ1RJVkVfQVJDSCA9IFlFUzsNCiBUQVJHRVRfTUFDX09T
X1hfVkVSU0lPTl9NQUpPUiA9ICQoTUFDX09TX1hfVkVSU0lPTl9NQUpPUik7DQogDQogTUFDT1NY
X0RFUExPWU1FTlRfVEFSR0VUID0gJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfJChQTEFURk9S
TV9OQU1FKV8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQotTUFDT1NYX0RFUExP
WU1FTlRfVEFSR0VUX21hY29zeF8xMDEwMDAgPSAxMC4xMDsNCiBNQUNPU1hfREVQTE9ZTUVOVF9U
QVJHRVRfbWFjb3N4XzEwMTEwMCA9IDEwLjExOw0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9t
YWNvc3hfMTAxMjAwID0gMTAuMTI7DQogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8x
MDEzMDAgPSAxMC4xMzsNCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysg
U291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdv
cmtpbmcgY29weSkNCkBAIC0zMiwxMSArMzIsOSBAQA0KIC8vIFNldCBhbnkgRU5BQkxFX0ZFQVRV
UkVfTkFNRSBtYWNybyB0byBhbiBlbXB0eSBzdHJpbmcgdG8gZGlzYWJsZSB0aGF0IGZlYXR1cmUu
DQogDQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDAgPSAkKFRBUkdF
VF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEyMDAwXyQoVEFSR0VUX01BQ19PU19YX1ZF
UlNJT05fTUFKT1IpKTsNCi1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMjAw
MF8xMDEwMDAgPSBZRVM7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIw
MDBfMTAxMTAwID0gWUVTOw0KIA0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8x
MDEzMDAwID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAwMF8kKFRB
UkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05f
TEVTU19USEFOXzEwMTMwMDBfMTAxMDAwID0gWUVTOw0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9O
X0xFU1NfVEhBTl8xMDEzMDAwXzEwMTEwMCA9IFlFUzsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lP
Tl9MRVNTX1RIQU5fMTAxMzAwMF8xMDEyMDAgPSBZRVM7DQogDQpJbmRleDogU291cmNlL1dlYkNv
cmUvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcJKHJldmlzaW9uIDIxOTA0
OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnCSh3
b3JraW5nIGNvcHkpDQpAQCAtMzUsNyArMzUsNiBAQCBTSE9SVF9WRVJTSU9OX1NUUklORyA9ICQo
U0hPUlRfVkVSU0lPTl9TDQogLy8gVGhlIHN5c3RlbSB2ZXJzaW9uIHByZWZpeCBpcyBiYXNlZCBv
biB0aGUgY3VycmVudCBzeXN0ZW0gdmVyc2lvbi4NCiBTWVNURU1fVkVSU0lPTl9QUkVGSVhbc2Rr
PWlwaG9uZSpdID0gODsNCiBTWVNURU1fVkVSU0lPTl9QUkVGSVggPSAkKFNZU1RFTV9WRVJTSU9O
X1BSRUZJWF8kKFBMQVRGT1JNX05BTUUpXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1Ip
KTsNCi1TWVNURU1fVkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEwMTAwMCA9IDEwOw0KIFNZU1RFTV9W
RVJTSU9OX1BSRUZJWF9tYWNvc3hfMTAxMTAwID0gMTE7DQogU1lTVEVNX1ZFUlNJT05fUFJFRklY
X21hY29zeF8xMDEyMDAgPSAxMjsNCiBTWVNURU1fVkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEwMTMw
MCA9IDEzOw0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTkwNDgpDQorKysg
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwx
NSBAQA0KKzIwMTctMDctMDEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4NCisNCisg
ICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiAoT09QUyEpLg0KKyAgICAgICAgTmVlZCB0
aGUgYnVnIFVSTCAoT09QUyEpLg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuDQorDQorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6DQorICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZzoNCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6DQorICAgICAgICAqIENvbmZpZ3Vy
YXRpb25zL1ZlcnNpb24ueGNjb25maWc6DQorDQogMjAxNy0wNi0yOSAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIE1ha2UgTGVnYWN5IEVNRSBBUEkgY29udHJv
bGxlZCBieSBSdW50aW1lRW5hYmxlZCBzZXR0aW5nLg0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BB
TC9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dl
YkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkN
CisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwkod29y
a2luZyBjb3B5KQ0KQEAgLTc4LDcgKzc4LDYgQEAgR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0g
WUVTOw0KIFdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXIt
c3Vic2NyaXB0cyAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2lu
Zy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXIt
YXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRp
bWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBh
cmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV25vLXVua25vd24td2FybmluZy1vcHRpb247DQog
DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJT
SU9OX01BSk9SJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsN
Ci1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMCA9IDEwMTAwMDsNCiBUQVJHRVRfTUFD
X09TX1hfVkVSU0lPTl9NQUpPUl8xMSA9IDEwMTEwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lP
Tl9NQUpPUl8xMiA9IDEwMTIwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMyA9
IDEwMTMwMDsNCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRGVidWdS
ZWxlYXNlLnhjY29uZmlnDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvUEFML0NvbmZp
Z3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNv
dXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHdv
cmtpbmcgY29weSkNCkBAIC0zMCw3ICszMCw2IEBAIE9OTFlfQUNUSVZFX0FSQ0ggPSBZRVM7DQog
VEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKE1BQ19PU19YX1ZFUlNJT05fTUFKT1Ip
Ow0KIA0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9ICQoTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUXyQoUExBVEZPUk1fTkFNRSlfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOw0K
LU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMDAwID0gMTAuMTA7DQogTUFDT1NY
X0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDExMDAgPSAxMC4xMTsNCiBNQUNPU1hfREVQTE9Z
TUVOVF9UQVJHRVRfbWFjb3N4XzEwMTIwMCA9IDEwLjEyOw0KIE1BQ09TWF9ERVBMT1lNRU5UX1RB
UkdFVF9tYWNvc3hfMTAxMzAwID0gMTAuMTM7DQpJbmRleDogU291cmNlL1dlYkNvcmUvUEFML0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291
cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShy
ZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtMzIsMTEgKzMyLDkgQEAN
CiAvLyBTZXQgYW55IEVOQUJMRV9GRUFUVVJFX05BTUUgbWFjcm8gdG8gYW4gZW1wdHkgc3RyaW5n
IHRvIGRpc2FibGUgdGhhdCBmZWF0dXJlLg0KIA0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xF
U1NfVEhBTl8xMDEyMDAwID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAx
MjAwMF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQotVEFSR0VUX01BQ19PU19Y
X1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDBfMTAxMDAwID0gWUVTOw0KIFRBUkdFVF9NQUNfT1Nf
WF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEyMDAwXzEwMTEwMCA9IFlFUzsNCiANCiBUQVJHRVRfTUFD
X09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAwMCA9ICQoVEFSR0VUX01BQ19PU19YX1ZFUlNJ
T05fTEVTU19USEFOXzEwMTMwMDBfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOw0K
LVRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwXzEwMTAwMCA9IFlFUzsN
CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAwMF8xMDExMDAgPSBZRVM7
DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDBfMTAxMjAwID0gWUVT
Ow0KIA0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhj
Y29uZmlnDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25z
L1ZlcnNpb24ueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9Q
QUwvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZwkod29ya2luZyBjb3B5KQ0KQEAgLTM1
LDcgKzM1LDYgQEAgU0hPUlRfVkVSU0lPTl9TVFJJTkcgPSAkKFNIT1JUX1ZFUlNJT05fUw0KIC8v
IFRoZSBzeXN0ZW0gdmVyc2lvbiBwcmVmaXggaXMgYmFzZWQgb24gdGhlIGN1cnJlbnQgc3lzdGVt
IHZlcnNpb24uDQogU1lTVEVNX1ZFUlNJT05fUFJFRklYW3Nkaz1pcGhvbmUqXSA9IDg7DQogU1lT
VEVNX1ZFUlNJT05fUFJFRklYID0gJChTWVNURU1fVkVSU0lPTl9QUkVGSVhfJChQTEFURk9STV9O
QU1FKV8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQotU1lTVEVNX1ZFUlNJT05f
UFJFRklYX21hY29zeF8xMDEwMDAgPSAxMDsNCiBTWVNURU1fVkVSU0lPTl9QUkVGSVhfbWFjb3N4
XzEwMTEwMCA9IDExOw0KIFNZU1RFTV9WRVJTSU9OX1BSRUZJWF9tYWNvc3hfMTAxMjAwID0gMTI7
DQogU1lTVEVNX1ZFUlNJT05fUFJFRklYX21hY29zeF8xMDEzMDAgPSAxMzsNCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAkocmV2aXNp
b24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0xNzgsMTEgKzE3OCw5IEBAIHZvaWQgQVhPYmplY3RD
YWNoZTo6c2V0RW5oYW5jZWRVc2VySW50ZXINCiB7DQogICAgIGdBY2Nlc3NpYmlsaXR5RW5oYW5j
ZWRVc2VySW50ZXJmYWNlRW5hYmxlZCA9IGZsYWc7DQogI2lmIFBMQVRGT1JNKE1BQykNCi0jaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCiAgICAgaWYgKGZsYWcp
DQogICAgICAgICBlbmFibGVBY2Nlc3NpYmlsaXR5KCk7DQogI2VuZGlmDQotI2VuZGlmDQogfQ0K
IA0KIEFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9jdW1lbnQmIGRvY3VtZW50KQ0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAJKHJldmlzaW9u
IDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQ0KQEAgLTg4LDggKzg4LDYgQEAgY29uc3QgaW50IGRlZmF1bHRIZWlnaHQg
PSAxNTA7DQogLy8gaW4gZXhjaGFuZ2UgZm9yIGEgc21hbGxlciBtYXhpbXVtIGNhbnZhcyBzaXpl
LiBUaGUgbWF4aW11bSBjYW52YXMgc2l6ZSBpcyBpbiBkZXZpY2UgcGl4ZWxzLg0KICNpZiBQTEFU
Rk9STShJT1MpDQogY29uc3QgdW5zaWduZWQgbWF4Q2FudmFzQXJlYSA9IDQwOTYgKiA0MDk2Ow0K
LSNlbGlmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8
IDEwMTEwMA0KLWNvbnN0IHVuc2lnbmVkIG1heENhbnZhc0FyZWEgPSA4MTkyICogODE5MjsNCiAj
ZWxzZQ0KIGNvbnN0IHVuc2lnbmVkIG1heENhbnZhc0FyZWEgPSAxNjM4NCAqIDE2Mzg0Ow0KICNl
bmRpZg0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmNw
cA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudERlbHRhRmls
dGVyLmNwcAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxF
dmVudERlbHRhRmlsdGVyLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTI2LDE0ICsyNiwxNCBAQA0K
ICNpbmNsdWRlICJjb25maWcuaCINCiAjaW5jbHVkZSAiV2hlZWxFdmVudERlbHRhRmlsdGVyLmgi
DQogDQotI2lmIEhBVkUoTlNTQ1JPTExJTkdfRklMVEVSUykNCi0jaW5jbHVkZSAiV2hlZWxFdmVu
dERlbHRhRmlsdGVyTWFjLmgiDQotI2VuZGlmDQotDQogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIg0K
ICNpbmNsdWRlICJMb2dnaW5nLmgiDQogI2luY2x1ZGUgIlRleHRTdHJlYW0uaCINCiANCisjaWYg
UExBVEZPUk0oTUFDKQ0KKyNpbmNsdWRlICJXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMuaCINCisj
ZW5kaWYNCisNCiBuYW1lc3BhY2UgV2ViQ29yZSB7DQogICAgIA0KIFdoZWVsRXZlbnREZWx0YUZp
bHRlcjo6V2hlZWxFdmVudERlbHRhRmlsdGVyKCkNCkBAIC00Niw3ICs0Niw3IEBAIFdoZWVsRXZl
bnREZWx0YUZpbHRlcjo6fldoZWVsRXZlbnREZWx0YUYNCiANCiBzdGQ6OnVuaXF1ZV9wdHI8V2hl
ZWxFdmVudERlbHRhRmlsdGVyPiBXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OmNyZWF0ZSgpDQogew0K
LSNpZiBIQVZFKE5TU0NST0xMSU5HX0ZJTFRFUlMpDQorI2lmIFBMQVRGT1JNKE1BQykNCiAgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2hlZWxFdmVudERlbHRhRmlsdGVyTWFjPigpOw0KICNl
bHNlDQogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEJhc2ljV2hlZWxFdmVudERlbHRhRmls
dGVyPigpOw0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1doZWVsRXZlbnREZWx0YUZp
bHRlck1hYy5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2hlZWxF
dmVudERlbHRhRmlsdGVyTWFjLmgJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMuaAkod29ya2luZyBjb3B5KQ0KQEAg
LTI1LDcgKzI1LDcgQEANCiANCiAjcHJhZ21hIG9uY2UNCiANCi0jaWYgUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KKyNpZiBQTEFURk9S
TShNQUMpDQogDQogI2luY2x1ZGUgIldoZWVsRXZlbnREZWx0YUZpbHRlci5oIg0KICNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+DQpAQCAtNDksNCArNDksNCBAQCBwcml2YXRlOg0KIA0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUNCiANCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KKyNlbmRpZiAvLyBQTEFURk9STShN
QUMpDQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2hlZWxFdmVudERlbHRhRmlsdGVy
TWFjLm1tDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2hlZWxFdmVu
dERlbHRhRmlsdGVyTWFjLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9tYWMvV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpDQpAQCAt
MjUsOCArMjUsNiBAQA0KIA0KICNpbmNsdWRlICJjb25maWcuaCINCiANCi0jaWYgSEFWRShOU1ND
Uk9MTElOR19GSUxURVJTKQ0KLQ0KICNpbmNsdWRlICJXaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMu
aCINCiAjaW5jbHVkZSAiRmxvYXRQb2ludC5oIg0KIA0KQEAgLTY4LDUgKzY2LDMgQEAgdm9pZCBX
aGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWM6OmVuZEZpbHRlcg0KIH0NCiANCiB9DQotDQotI2VuZGlm
IC8qIEhBVkUoTlNTQ1JPTExJTkdfRklMVEVSUykgKi8NCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuY3BwDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nTW9tZW50dW1DYWxj
dWxhdG9yLmNwcAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5jcHAJKHdvcmtpbmcgY29weSkNCkBA
IC02Nyw3ICs2Nyw3IEBAIEZsb2F0U2l6ZSBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I6OnAN
CiAgICAgcmV0dXJuIHsgaW5pdGlhbE9mZnNldFgsIGluaXRpYWxPZmZzZXRZIH07DQogfQ0KIA0K
LSNpZiAhSEFWRShOU1NDUk9MTElOR19GSUxURVJTKQ0KKyNpZiAhUExBVEZPUk0oTUFDKQ0KIA0K
IHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I+IFNjcm9sbGluZ01v
bWVudHVtQ2FsY3VsYXRvcjo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld3BvcnRTaXplLCBj
b25zdCBGbG9hdFNpemUmIGNvbnRlbnRTaXplLCBjb25zdCBGbG9hdFBvaW50JiBpbml0aWFsT2Zm
c2V0LCBjb25zdCBGbG9hdFNpemUmIGluaXRpYWxEZWx0YSwgY29uc3QgRmxvYXRTaXplJiBpbml0
aWFsVmVsb2NpdHkpDQogew0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JNYWMuaA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JN
YWMuaAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L21hYy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JNYWMuaAkod29ya2luZyBjb3B5KQ0KQEAg
LTI4LDggKzI4LDYgQEANCiAjaW5jbHVkZSAiU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmgi
DQogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4NCiANCi0jaWYgSEFWRShOU1NDUk9MTElOR19G
SUxURVJTKQ0KLQ0KIEBjbGFzcyBfTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I7DQogDQog
bmFtZXNwYWNlIFdlYkNvcmUgew0KQEAgLTUyLDUgKzUwLDMgQEAgcHJpdmF0ZToNCiB9Ow0KIA0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUNCi0NCi0jZW5kaWYgLy8gSEFWRShOU1NDUk9MTElOR19G
SUxURVJTKQ0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdNb21lbnR1bUNhbGN1bGF0b3JNYWMubW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjLm1tCShy
ZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYy5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTI2LDcg
KzI2LDcgQEANCiAjaW5jbHVkZSAiY29uZmlnLmgiDQogI2luY2x1ZGUgIlNjcm9sbGluZ01vbWVu
dHVtQ2FsY3VsYXRvck1hYy5oIg0KIA0KLSNpZiBIQVZFKE5TU0NST0xMSU5HX0ZJTFRFUlMpDQor
I2lmIFBMQVRGT1JNKE1BQykNCiANCiAjaW5jbHVkZSAiTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1
bGF0b3JTUEkuaCINCiANCkBAIC0xMDUsNCArMTA1LDQgQEAgX05TU2Nyb2xsaW5nTW9tZW50dW1D
YWxjdWxhdG9yICpTY3JvbGxpbg0KIA0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUNCiANCi0jZW5k
aWYgLy8gSEFWRShOU1NDUk9MTElOR19GSUxURVJTKQ0KKyNlbmRpZiAvLyBQTEFURk9STShNQUMp
DQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNv
bnRlbnRGaWx0ZXIubW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQkocmV2aXNpb24gMjE5MDQ4KQ0K
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50
RmlsdGVyLm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtNDcsMTMgKzQ3LDExIEBAIEBpbnRlcmZhY2Ug
TkVGaWx0ZXJTb3VyY2UgKCkNCiAtICh2b2lkKXNldFNvdXJjZUFwcFBpZDoocGlkX3Qpc291cmNl
QXBwUGlkOw0KIEBlbmQNCiANCi0jaWYgSEFWRShNT0RFUk5fTkVfRklMVEVSX1NPVVJDRSkNCiBz
dGF0aWMgaW5saW5lIE5TRGF0YSAqcmVwbGFjZW1lbnREYXRhRnJvbURlY2lzaW9uSW5mbyhOU0Rp
Y3Rpb25hcnkgKmRlY2lzaW9uSW5mbykNCiB7DQogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKCFkZWNpc2lvbkluZm8gfHwgW2RlY2lzaW9uSW5mbyBpc0tpbmRPZkNsYXNzOltO
U0RpY3Rpb25hcnkgY2xhc3NdXSk7DQogICAgIHJldHVybiBkZWNpc2lvbkluZm9bTkVGaWx0ZXJT
b3VyY2VPcHRpb25zUGFnZURhdGFdOw0KIH0NCi0jZW5kaWYNCiANCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7DQogDQpAQCAtNzYsNyArNzQsNiBAQCB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50Rmls
dGVyOjppbml0DQogICAgIEFTU0VSVCghbV9uZUZpbHRlclNvdXJjZSk7DQogICAgIG1fcXVldWUg
PSBhZG9wdE9TT2JqZWN0KGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZSgiV2ViS2l0IE5ldHdvcmtFeHRl
bnNpb24gRmlsdGVyaW5nIiwgRElTUEFUQ0hfUVVFVUVfU0VSSUFMKSk7DQogICAgIG1fc2VtYXBo
b3JlID0gYWRvcHRPU09iamVjdChkaXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRlKDApKTsNCi0jaWYg
SEFWRShNT0RFUk5fTkVfRklMVEVSX1NPVVJDRSkNCiAgICAgQVNTRVJUX1VOVVNFRCh1cmwsICF1
cmwpOw0KICAgICBtX25lRmlsdGVyU291cmNlID0gYWRvcHROUyhbYWxsb2NORUZpbHRlclNvdXJj
ZUluc3RhbmNlKCkgaW5pdFdpdGhEZWNpc2lvblF1ZXVlOm1fcXVldWUuZ2V0KCldKTsNCiAjaWYg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEz
MDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDExMDAwMCkNCkBAIC04NSwxNSArODIsMTAgQEAgdm9pZCBOZXR3b3JrRXh0ZW5zaW9uQ29u
dGVudEZpbHRlcjo6aW5pdA0KICAgICBpZiAoW21fbmVGaWx0ZXJTb3VyY2UgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3RvcihzZXRTb3VyY2VBcHBQaWQ6KV0pDQogICAgICAgICBbbV9uZUZpbHRl
clNvdXJjZSBzZXRTb3VyY2VBcHBQaWQ6cHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCldOw0KICNl
bmRpZg0KLSNlbHNlDQotICAgIEFTU0VSVF9BUkcodXJsLCB1cmwpOw0KLSAgICBtX25lRmlsdGVy
U291cmNlID0gYWRvcHROUyhbYWxsb2NORUZpbHRlclNvdXJjZUluc3RhbmNlKCkgaW5pdFdpdGhV
Ukw6KnVybCBkaXJlY3Rpb246TkVGaWx0ZXJTb3VyY2VEaXJlY3Rpb25JbmJvdW5kIHNvY2tldElk
ZW50aWZpZXI6MF0pOw0KLSNlbmRpZg0KIH0NCiANCiB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250
ZW50RmlsdGVyOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQ0KIHsNCi0jaWYgSEFWRShNT0RF
Uk5fTkVfRklMVEVSX1NPVVJDRSkNCiAgICAgQVNTRVJUKCFyZXF1ZXN0LmlzTnVsbCgpKTsNCiAg
ICAgaWYgKCFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSB8fCAhZW5hYmxl
ZCgpKSB7DQogICAgICAgICBtX3N0YXRlID0gU3RhdGU6OkFsbG93ZWQ7DQpAQCAtMTMwLDEwICsx
MjIsNiBAQCB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjp3aWxsDQogICAgIH0N
CiANCiAgICAgcmVxdWVzdC5zZXRVUkwobW9kaWZpZWRSZXF1ZXN0VVJMKTsNCi0jZWxzZQ0KLSAg
ICBVTlVTRURfUEFSQU0ocmVxdWVzdCk7DQotICAgIFVOVVNFRF9QQVJBTShyZWRpcmVjdFJlc3Bv
bnNlKTsNCi0jZW5kaWYNCiB9DQogDQogdm9pZCBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRl
cjo6cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkNCkBA
IC0xNDMsMTQgKzEzMSw2IEBAIHZvaWQgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OnJl
c3ANCiAgICAgICAgIHJldHVybjsNCiAgICAgfQ0KIA0KLSNpZiAhSEFWRShNT0RFUk5fTkVfRklM
VEVSX1NPVVJDRSkNCi0gICAgaWYgKCFlbmFibGVkKCkpIHsNCi0gICAgICAgIG1fc3RhdGUgPSBT
dGF0ZTo6QWxsb3dlZDsNCi0gICAgICAgIHJldHVybjsNCi0gICAgfQ0KLQ0KLSAgICBpbml0aWFs
aXplKCZyZXNwb25zZS51cmwoKSk7DQotI2Vsc2UNCiAgICAgW21fbmVGaWx0ZXJTb3VyY2UgcmVj
ZWl2ZWRSZXNwb25zZTpyZXNwb25zZS5uc1VSTFJlc3BvbnNlKCkgZGVjaXNpb25IYW5kbGVyOlt0
aGlzXShORUZpbHRlclNvdXJjZVN0YXR1cyBzdGF0dXMsIE5TRGljdGlvbmFyeSAqZGVjaXNpb25J
bmZvKSB7DQogICAgICAgICBoYW5kbGVEZWNpc2lvbihzdGF0dXMsIHJlcGxhY2VtZW50RGF0YUZy
b21EZWNpc2lvbkluZm8oZGVjaXNpb25JbmZvKSk7DQogICAgIH1dOw0KQEAgLTE1OSwyMyArMTM5
LDE1IEBAIHZvaWQgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OnJlc3ANCiAgICAgLy8g
YmxvY2tlZC9ub3QgYmxvY2tlZCBhbnN3ZXIgZnJvbSB0aGUgZmlsdGVyIGltbWVkaWF0ZWx5IGFm
dGVyIGNhbGxpbmcNCiAgICAgLy8gYWRkRGF0YSgpLiBXZSBzaG91bGQgZmluZCBhIHdheSB0byBt
YWtlIHRoaXMgYXN5bmNocm9ub3VzLg0KICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChtX3Nl
bWFwaG9yZS5nZXQoKSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsNCi0jZW5kaWYNCiB9DQogDQog
dm9pZCBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6YWRkRGF0YShjb25zdCBjaGFyKiBk
YXRhLCBpbnQgbGVuZ3RoKQ0KIHsNCiAgICAgUmV0YWluUHRyPE5TRGF0YT4gY29waWVkRGF0YSB7
IFtOU0RhdGEgZGF0YVdpdGhCeXRlczoodm9pZCopZGF0YSBsZW5ndGg6bGVuZ3RoXSB9Ow0KIA0K
LSNpZiBIQVZFKE1PREVSTl9ORV9GSUxURVJfU09VUkNFKQ0KICAgICBbbV9uZUZpbHRlclNvdXJj
ZSByZWNlaXZlZERhdGE6Y29waWVkRGF0YS5nZXQoKSBkZWNpc2lvbkhhbmRsZXI6W3RoaXNdKE5F
RmlsdGVyU291cmNlU3RhdHVzIHN0YXR1cywgTlNEaWN0aW9uYXJ5ICpkZWNpc2lvbkluZm8pIHsN
CiAgICAgICAgIGhhbmRsZURlY2lzaW9uKHN0YXR1cywgcmVwbGFjZW1lbnREYXRhRnJvbURlY2lz
aW9uSW5mbyhkZWNpc2lvbkluZm8pKTsNCiAgICAgfV07DQotI2Vsc2UNCi0gICAgW21fbmVGaWx0
ZXJTb3VyY2UgYWRkRGF0YTpjb3BpZWREYXRhLmdldCgpIHdpdGhDb21wbGV0aW9uUXVldWU6bV9x
dWV1ZS5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpbdGhpc10oTkVGaWx0ZXJTb3VyY2VTdGF0dXMg
c3RhdHVzLCBOU0RhdGEgKnJlcGxhY2VtZW50RGF0YSkgew0KLSAgICAgICAgQVNTRVJUKCFyZXBs
YWNlbWVudERhdGEpOw0KLSAgICAgICAgaGFuZGxlRGVjaXNpb24oc3RhdHVzLCByZXBsYWNlbWVu
dERhdGEpOw0KLSAgICB9XTsNCi0jZW5kaWYNCiANCiAgICAgLy8gRklYTUU6IFdlIGhhdmUgdG8g
YmxvY2sgaGVyZSBzaW5jZSBEb2N1bWVudExvYWRlciBleHBlY3RzIHRvIGhhdmUgYQ0KICAgICAv
LyBibG9ja2VkL25vdCBibG9ja2VkIGFuc3dlciBmcm9tIHRoZSBmaWx0ZXIgaW1tZWRpYXRlbHkg
YWZ0ZXIgY2FsbGluZw0KQEAgLTE4NSwxNiArMTU3LDkgQEAgdm9pZCBOZXR3b3JrRXh0ZW5zaW9u
Q29udGVudEZpbHRlcjo6YWRkRA0KIA0KIHZvaWQgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0
ZXI6OmZpbmlzaGVkQWRkaW5nRGF0YSgpDQogew0KLSNpZiBIQVZFKE1PREVSTl9ORV9GSUxURVJf
U09VUkNFKQ0KICAgICBbbV9uZUZpbHRlclNvdXJjZSBmaW5pc2hlZExvYWRpbmdXaXRoRGVjaXNp
b25IYW5kbGVyOlt0aGlzXShORUZpbHRlclNvdXJjZVN0YXR1cyBzdGF0dXMsIE5TRGljdGlvbmFy
eSAqZGVjaXNpb25JbmZvKSB7DQogICAgICAgICBoYW5kbGVEZWNpc2lvbihzdGF0dXMsIHJlcGxh
Y2VtZW50RGF0YUZyb21EZWNpc2lvbkluZm8oZGVjaXNpb25JbmZvKSk7DQogICAgIH1dOw0KLSNl
bHNlDQotICAgIFttX25lRmlsdGVyU291cmNlIGRhdGFDb21wbGV0ZVdpdGhDb21wbGV0aW9uUXVl
dWU6bV9xdWV1ZS5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpbdGhpc10oTkVGaWx0ZXJTb3VyY2VT
dGF0dXMgc3RhdHVzLCBOU0RhdGEgKnJlcGxhY2VtZW50RGF0YSkgew0KLSAgICAgICAgQVNTRVJU
KCFyZXBsYWNlbWVudERhdGEpOw0KLSAgICAgICAgaGFuZGxlRGVjaXNpb24oc3RhdHVzLCByZXBs
YWNlbWVudERhdGEpOw0KLSAgICB9XTsNCi0jZW5kaWYNCiANCiAgICAgLy8gRklYTUU6IFdlIGhh
dmUgdG8gYmxvY2sgaGVyZSBzaW5jZSBEb2N1bWVudExvYWRlciBleHBlY3RzIHRvIGhhdmUgYQ0K
ICAgICAvLyBibG9ja2VkL25vdCBibG9ja2VkIGFuc3dlciBmcm9tIHRoZSBmaWx0ZXIgaW1tZWRp
YXRlbHkgYWZ0ZXIgY2FsbGluZw0KQEAgLTIxMSw3ICsxNzYsNiBAQCBSZWY8U2hhcmVkQnVmZmVy
PiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVuDQogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykN
CiBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0
ZXI6OnVuYmxvY2tIYW5kbGVyKCkgY29uc3QNCiB7DQotI2lmIEhBVkUoTU9ERVJOX05FX0ZJTFRF
Ul9TT1VSQ0UpDQogICAgIHVzaW5nIERlY2lzaW9uSGFuZGxlckZ1bmN0aW9uID0gQ29udGVudEZp
bHRlclVuYmxvY2tIYW5kbGVyOjpEZWNpc2lvbkhhbmRsZXJGdW5jdGlvbjsNCiANCiAgICAgUmV0
YWluUHRyPE5FRmlsdGVyU291cmNlPiBuZUZpbHRlclNvdXJjZSB7IG1fbmVGaWx0ZXJTb3VyY2Ug
fTsNCkBAIC0yMjMsOSArMTg3LDYgQEAgQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIE5ldHdv
cmtFeHRlbg0KICAgICAgICAgICAgIH1dOw0KICAgICAgICAgfQ0KICAgICB9Ow0KLSNlbHNlDQot
ICAgIHJldHVybiB7IH07DQotI2VuZGlmDQogfQ0KICNlbmRpZg0KIA0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250
cm9sbGVyLmgJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQ0KQEAgLTMyLDgg
KzMyLDYgQEANCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPg0KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4NCiANCi0jZGVmaW5lIFVTRV9MQVlPVVRfU1BFQ0lGSUNfQURWQU5DRVMgKChQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAw
KSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSA5MDAwMCkpDQotDQogdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBDR0dseXBoOw0KIA0KIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IF9fQ1RSdW4gKiBDVFJ1blJlZjsNCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EubW0N
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2Nv
YS9QbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EubW0JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBQW5pbWF0aW9u
Q29jb2EubW0JKHdvcmtpbmcgY29weSkNCkBAIC0zMjksMTEgKzMyOSw3IEBAIHZvaWQgUGxhdGZv
cm1DQUFuaW1hdGlvbkNvY29hOjpzZXRUaW1pbmcNCiAgICAgICAgICAgICBzcHJpbmdBbmltYXRp
b24ubWFzcyA9IGZ1bmN0aW9uLm1hc3MoKTsNCiAgICAgICAgICAgICBzcHJpbmdBbmltYXRpb24u
c3RpZmZuZXNzID0gZnVuY3Rpb24uc3RpZmZuZXNzKCk7DQogICAgICAgICAgICAgc3ByaW5nQW5p
bWF0aW9uLmRhbXBpbmcgPSBmdW5jdGlvbi5kYW1waW5nKCk7DQotI2lmIFBMQVRGT1JNKElPUykg
fHwgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTEwMA0KICAgICAgICAgICAgIHNwcmluZ0FuaW1hdGlvbi5pbml0aWFsVmVsb2NpdHkgPSBmdW5j
dGlvbi5pbml0aWFsVmVsb2NpdHkoKTsNCi0jZWxzZQ0KLSAgICAgICAgICAgIHNwcmluZ0FuaW1h
dGlvbi52ZWxvY2l0eSA9IGZ1bmN0aW9uLmluaXRpYWxWZWxvY2l0eSgpOw0KLSNlbmRpZg0KICAg
ICAgICAgfQ0KICAgICAgICAgYnJlYWs7DQogICAgIH0NCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHANCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3Jl
VGV4dC5jcHAJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0x
MzU3LDEzICsxMzU3LDggQEAgY29uc3QgQXRvbWljU3RyaW5nJiBGb250Q2FjaGU6OnBsYXRmb3Jt
QQ0KIA0KICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzb25ndGlTQygi
U29uZ3RpIFNDIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7DQogICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNvbmd0aVRDKCJTb25ndGkgVEMiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsNCi0jaWYgUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMTAwDQotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGhlaXRpU0NSZXBsYWNlbWVudCgiSGVpdGkgU0Mi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsNCi0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21pY1N0cmluZz4gaGVpdGlUQ1JlcGxhY2VtZW50KCJIZWl0aSBUQyIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOw0KLSNlbHNlDQogICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGhlaXRpU0NSZXBsYWNlbWVudCgiUGluZ0Zhbmcg
U0MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsNCiAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaGVpdGlUQ1JlcGxhY2VtZW50KCJQaW5nRmFuZyBU
QyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOw0KLSNlbmRpZg0KIA0KICAg
ICBzd2l0Y2ggKGZhbWlseU5hbWUubGVuZ3RoKCkpIHsNCiAgICAgY2FzZSAyOg0KQEAgLTEzOTIs
MTIgKzEzODcsNiBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEZvbnRDYWNoZTo6cGxhdGZvcm1BDQog
ICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShmYW1pbHlOYW1lLCAiXFw1YjhiXFw0
ZjUzIikpDQogICAgICAgICAgICAgcmV0dXJuIHNvbmd0aVNDOw0KICAgICAgICAgYnJlYWs7DQot
I2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEw
MTEwMA0KLSAgICBjYXNlIDE1Og0KLSAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKGZhbWlseU5hbWUsICJtaWNyb3NvZnQgeWFoZWkiKSkNCi0gICAgICAgICAgICByZXR1
cm4gaGVpdGlTQ1JlcGxhY2VtZW50Ow0KLSAgICAgICAgYnJlYWs7DQotI2VuZGlmDQogICAgIGNh
c2UgMTg6DQogICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZmFtaWx5
TmFtZSwgIm1pY3Jvc29mdCBqaGVuZ2hlaSIpKQ0KICAgICAgICAgICAgIHJldHVybiBoZWl0aVRD
UmVwbGFjZW1lbnQ7DQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvRm9udENvY29hLm1tDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tCSh3b3JraW5nIGNv
cHkpDQpAQCAtMTIzLDEzICsxMjMsNiBAQCB2b2lkIEZvbnQ6OnBsYXRmb3JtSW5pdCgpDQogICAg
IG1fc3ludGhldGljQm9sZE9mZnNldCA9IG1fcGxhdGZvcm1EYXRhLnN5bnRoZXRpY0JvbGQoKSA/
IDEuMGYgOiAwLmY7DQogI2VuZGlmDQogDQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTEwMA0KLSAgICAvLyBXb3JrIGFyb3VuZCA8cmRh
cjovL3Byb2JsZW0vMTk0MzM0OTA+DQotICAgIENHR2x5cGggZHVtbXlHbHlwaHNbXSA9IHswLCAw
fTsNCi0gICAgQ0dTaXplIGR1bW15U2l6ZVtdID0geyBDR1NpemVNYWtlKDAsIDApLCBDR1NpemVN
YWtlKDAsIDApIH07DQotICAgIENURm9udFRyYW5zZm9ybUdseXBocyhtX3BsYXRmb3JtRGF0YS5j
dEZvbnQoKSwgZHVtbXlHbHlwaHMsIGR1bW15U2l6ZSwgMiwga0NURm9udFRyYW5zZm9ybUFwcGx5
UG9zaXRpb25pbmcgfCBrQ1RGb250VHJhbnNmb3JtQXBwbHlTaGFwaW5nKTsNCi0jZW5kaWYNCi0N
CiAgICAgdW5zaWduZWQgdW5pdHNQZXJFbSA9IENURm9udEdldFVuaXRzUGVyRW0obV9wbGF0Zm9y
bURhdGEuZm9udCgpKTsNCiAgICAgZmxvYXQgcG9pbnRTaXplID0gbV9wbGF0Zm9ybURhdGEuc2l6
ZSgpOw0KICAgICBDR0Zsb2F0IGNhcEhlaWdodCA9IHBvaW50U2l6ZSA/IENURm9udEdldENhcEhl
aWdodChtX3BsYXRmb3JtRGF0YS5mb250KCkpIDogMDsNCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0NCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0JKHJldmlzaW9u
IDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1
cmZhY2UubW0JKHdvcmtpbmcgY29weSkNCkBAIC0yNTMsNyArMjUzLDcgQEAgUmV0YWluUHRyPENH
SW1hZ2VSZWY+IFdlYkNvcmU6OklPU3VyZmFjZQ0KIA0KIFJldGFpblB0cjxDR0ltYWdlUmVmPiBX
ZWJDb3JlOjpJT1N1cmZhY2U6OnNpbmtJbnRvSW1hZ2Uoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFj
ZT4gc3VyZmFjZSkNCiB7DQotI2lmIChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMDAwMCkgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApDQorI2lmIChQTEFURk9STShJT1MpICYm
IF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMDAwMCkgfHwgUExBVEZPUk0o
TUFDKQ0KICAgICByZXR1cm4gYWRvcHRDRihDR0lPU3VyZmFjZUNvbnRleHRDcmVhdGVJbWFnZVJl
ZmVyZW5jZShzdXJmYWNlLT5lbnN1cmVQbGF0Zm9ybUNvbnRleHQoKSkpOw0KICNlbHNlDQogICAg
IHJldHVybiBzdXJmYWNlLT5jcmVhdGVJbWFnZSgpOw0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdQVUxheWVyLm1tDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR1BVTGF5ZXIubW0JKHJldmlz
aW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJHUFVMYXllci5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTUwLDEwICs1MCw3IEBAIC0gKGlkKWlu
aXRXaXRoR1BVRGV2aWNlOihHUFVEZXZpY2UqKWNvbnQNCiANCiAjaWYgUExBVEZPUk0oTUFDKQ0K
ICAgICBzZWxmLmNvbnRlbnRzU2NhbGUgPSBfZGV2aWNlUGl4ZWxSYXRpbzsNCi0jaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCi0gICAgaWYgKFtzZWxmIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0Q29sb3JzcGFjZTopXSkNCi0gICAgICAgIFtzZWxm
IHNldENvbG9yc3BhY2U6c1JHQkNvbG9yU3BhY2VSZWYoKV07DQotI2VuZGlmDQorICAgIHNlbGYu
Y29sb3JzcGFjZSA9IHNSR0JDb2xvclNwYWNlUmVmKCk7DQogI2VuZGlmDQogICAgIHJldHVybiBz
ZWxmOw0KIH0NCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29t
cGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQu
bW0JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0JKHdvcmtpbmcgY29weSkNCkBA
IC0xMzIsNyArMTMyLDYgQEAgQ29tcGxleFRleHRDb250cm9sbGVyOjpDb21wbGV4VGV4dFJ1bjo6
Qw0KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9nbHlwaENvdW50OyArK2kpDQogICAg
ICAgICBtX2dseXBocy51bmNoZWNrZWRBcHBlbmQoZ2x5cGhzUHRyW2ldKTsNCiANCi0jaWYgVVNF
X0xBWU9VVF9TUEVDSUZJQ19BRFZBTkNFUw0KICAgICBpZiAoQ1RSdW5HZXRTdGF0dXMoY3RSdW4p
ICYga0NUUnVuU3RhdHVzSGFzT3JpZ2lucykgew0KICAgICAgICAgVmVjdG9yPENHU2l6ZT4gYmFz
ZUFkdmFuY2VzKG1fZ2x5cGhDb3VudCk7DQogICAgICAgICBWZWN0b3I8Q0dQb2ludD4gZ2x5cGhP
cmlnaW5zKG1fZ2x5cGhDb3VudCk7DQpAQCAtMTQzLDkgKzE0Miw3IEBAIENvbXBsZXhUZXh0Q29u
dHJvbGxlcjo6Q29tcGxleFRleHRSdW46OkMNCiAgICAgICAgICAgICBtX2Jhc2VBZHZhbmNlcy51
bmNoZWNrZWRBcHBlbmQoYmFzZUFkdmFuY2VzW2ldKTsNCiAgICAgICAgICAgICBtX2dseXBoT3Jp
Z2lucy51bmNoZWNrZWRBcHBlbmQoZ2x5cGhPcmlnaW5zW2ldKTsNCiAgICAgICAgIH0NCi0gICAg
fSBlbHNlDQotI2VuZGlmDQotICAgIHsNCisgICAgfSBlbHNlIHsNCiAgICAgICAgIGNvbnN0IENH
U2l6ZSogYmFzZUFkdmFuY2VzID0gQ1RSdW5HZXRBZHZhbmNlc1B0cihjdFJ1bik7DQogICAgICAg
ICBWZWN0b3I8Q0dTaXplPiBiYXNlQWR2YW5jZXNWZWN0b3I7DQogICAgICAgICBpZiAoIWJhc2VB
ZHZhbmNlcykgew0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9X
ZWJHTExheWVyLm1tDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL1dlYkdMTGF5ZXIubW0JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbQkod29ya2luZyBjb3B5KQ0K
QEAgLTU1LDEwICs1NSw4IEBAIC0oaWQpaW5pdFdpdGhHcmFwaGljc0NvbnRleHQzRDooR3JhcGhp
Y3MNCiAgICAgX2RldmljZVBpeGVsUmF0aW8gPSBjb250ZXh0LT5nZXRDb250ZXh0QXR0cmlidXRl
cygpLmRldmljZVBpeGVsUmF0aW87DQogI2lmIFBMQVRGT1JNKE1BQykNCiAgICAgc2VsZi5jb250
ZW50c1NjYWxlID0gX2RldmljZVBpeGVsUmF0aW87DQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMTAwDQogICAgIHNlbGYuY29sb3JzcGFjZSA9IHNSR0JDb2xvclNw
YWNlUmVmKCk7DQogI2VuZGlmDQotI2VuZGlmDQogICAgIHJldHVybiBzZWxmOw0KIH0NCiANCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQmxhY2tsaXN0VXBkYXRlci5tbQ0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9CbGFja2xpc3RVcGRhdGVy
Lm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Js
YWNrbGlzdFVwZGF0ZXIubW0JKHdvcmtpbmcgY29weSkNCkBAIC00MywxMSArNDMsNyBAQCBjb25z
dCB0aW1lX3QgYmxhY2tsaXN0Q2hlY2tUaW1lSW50ZXJ2YWwgDQogLy8gVGhlIHRpbWUgd2hlbiB3
ZSBsYXN0IHJlLXBhcnNlZCB0aGUgYmxhY2tsaXN0IGZpbGUuDQogc3RhdGljIHRpbWVfdCBibGFj
a2xpc3RVcGRhdGVUaW1lOw0KIA0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTEwMA0KIE5TU3RyaW5nICogY29uc3QgYmxhY2tsaXN0UGF0aCA9IEAiL1N5c3RlbS9M
aWJyYXJ5L0NvcmVTZXJ2aWNlcy9YUHJvdGVjdC5idW5kbGUvQ29udGVudHMvUmVzb3VyY2VzL1hQ
cm90ZWN0Lm1ldGEucGxpc3QiOw0KLSNlbHNlDQotTlNTdHJpbmcgKiBjb25zdCBibGFja2xpc3RQ
YXRoID0gQCIvU3lzdGVtL0xpYnJhcnkvQ29yZVNlcnZpY2VzL0NvcmVUeXBlcy5idW5kbGUvQ29u
dGVudHMvUmVzb3VyY2VzL1hQcm90ZWN0Lm1ldGEucGxpc3QiOw0KLSNlbmRpZg0KIA0KIG5hbWVz
cGFjZSBXZWJDb3JlIHsNCiANCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxh
dGZvcm1TY3JlZW5NYWMubW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0JKHdvcmtpbmcgY29weSkN
CkBAIC0xMzYsMTAgKzEzNiw2IEBAIE5TU2NyZWVuICpzY3JlZW4oUGxhdGZvcm1EaXNwbGF5SUQg
ZGlzcGwNCiANCiBib29sIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcihXaWRnZXQqIHdpZGdl
dCkNCiB7DQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDExMDANCi0g
ICAgVU5VU0VEX1BBUkFNKHdpZGdldCk7DQotICAgIHJldHVybiBmYWxzZTsNCi0jZWxzZQ0KICAg
ICBpZiAoIXdpZGdldCkNCiAgICAgICAgIHJldHVybiBmYWxzZTsNCiANCkBAIC0xNTEsNyArMTQ3
LDYgQEAgYm9vbCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IoV2lkZ2V0Kg0KICAgICBhdXRv
IHByb2ZpbGUgPSBhZG9wdENGKENvbG9yU3luY1Byb2ZpbGVDcmVhdGUoaWNjRGF0YS5nZXQoKSwg
bnVsbHB0cikpOw0KICAgICByZXR1cm4gcHJvZmlsZSAmJiBDb2xvclN5bmNQcm9maWxlSXNXaWRl
R2FtdXQocHJvZmlsZS5nZXQoKSk7DQogI2VuZGlmDQotI2VuZGlmDQogfQ0KIA0KIEZsb2F0UmVj
dCB0b1VzZXJTcGFjZShjb25zdCBOU1JlY3QmIHJlY3QsIE5TV2luZG93ICpkZXN0aW5hdGlvbikN
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmFsaWRhdGlvbkJ1YmJsZU1hYy5t
bQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WYWxpZGF0aW9u
QnViYmxlTWFjLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1ZhbGlkYXRpb25CdWJibGVNYWMubW0JKHdvcmtpbmcgY29weSkNCkBAIC02Niw5ICs2
Niw3IEBAIFZhbGlkYXRpb25CdWJibGU6OlZhbGlkYXRpb25CdWJibGUoTlNWaWUNCiAgICAgW2xh
YmVsIHNldFN0cmluZ1ZhbHVlOm1lc3NhZ2VdOw0KICAgICBtX2ZvbnRTaXplID0gc3RkOjptYXgo
c2V0dGluZ3MubWluaW11bUZvbnRTaXplLCAxMy4wKTsNCiAgICAgW2xhYmVsIHNldEZvbnQ6W05T
Rm9udCBzeXN0ZW1Gb250T2ZTaXplOm1fZm9udFNpemVdXTsNCi0jaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCiAgICAgW2xhYmVsIHNldE1heGltdW1OdW1iZXJP
ZkxpbmVzOjRdOw0KLSNlbmRpZg0KICAgICBbW2xhYmVsIGNlbGxdIHNldFRydW5jYXRlc0xhc3RW
aXNpYmxlTGluZTpZRVNdOw0KICAgICBbcG9wb3ZlclZpZXcgYWRkU3VidmlldzpsYWJlbC5nZXQo
KV07DQogICAgIE5TU2l6ZSBsYWJlbFNpemUgPSBbbGFiZWwgc2l6ZVRoYXRGaXRzOk5TTWFrZVNp
emUobWF4TGFiZWxXaWR0aCwgQ0dGTE9BVF9NQVgpXTsNCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvV2ViR0xCbGFja2xpc3QubW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvV2ViR0xCbGFja2xpc3QubW0JKHJldmlzaW9uIDIxOTA0OCkNCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViR0xCbGFja2xpc3QubW0JKHdvcmtpbmcg
Y29weSkNCkBAIC0yMDAsOSArMjAwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMQmxhY2tsaXN0
PiBXZWJHTEJsYQ0KICAgICBHTGludCByZW5kZXJlcklkID0gMDsNCiAgICAgQ0dMR2V0UGFyYW1l
dGVyKGN0eCwga0NHTENQQ3VycmVudFJlbmRlcmVySUQsICZyZW5kZXJlcklkKTsNCiAgICAgR0xp
bnQgc3VwcG9ydHNTZXBhcmF0ZUFkZHJlc3NTcGFjZSA9IDA7DQotI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwDQogICAgIENHTEdldFBhcmFtZXRlcihjdHgsIGtD
R0xDUFN1cHBvcnRTZXBhcmF0ZUFkZHJlc3NTcGFjZSwgJnN1cHBvcnRzU2VwYXJhdGVBZGRyZXNz
U3BhY2UpOw0KLSNlbmRpZg0KICAgICBDR0xEZXN0cm95Q29udGV4dChjdHgpOw0KICAgICBDR0xS
ZWxlYXNlUGl4ZWxGb3JtYXQocGl4KTsNCiANCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24uaA0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5o
CShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
b2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLmgJKHdvcmtpbmcgY29weSkNCkBAIC0yNiw4ICsyNiw2
IEBADQogI2lmbmRlZiBXZWJDb3JlTlNVUkxTZXNzaW9uX2gNCiAjZGVmaW5lIFdlYkNvcmVOU1VS
TFNlc3Npb25faA0KIA0KLSNpZiBQTEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMTAwDQotDQogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VSTFNlc3Np
b24uaD4NCiAjaW1wb3J0IDx3dGYvSGFzaFNldC5oPg0KICNpbXBvcnQgPHd0Zi9Mb2NrLmg+DQpA
QCAtMTQyLDYgKzE0MCw0IEBAIFdFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgV2ViQ29yZU5TVVJM
U2UNCiANCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQNCiANCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9T
KSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KLQ0KICNlbmRp
Zg0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5T
VVJMU2Vzc2lvbi5tbQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQkocmV2aXNpb24gMjE5MDQ4KQ0KKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lv
bi5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTI2LDggKzI2LDYgQEANCiAjaW1wb3J0ICJjb25maWcu
aCINCiAjaW1wb3J0ICJXZWJDb3JlTlNVUkxTZXNzaW9uLmgiDQogDQotI2lmIFBMQVRGT1JNKElP
UykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCi0NCiAjaW1w
b3J0ICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCINCiAjaW1wb3J0ICJQbGF0Zm9ybU1lZGlhUmVz
b3VyY2VMb2FkZXIuaCINCiAjaW1wb3J0ICJTdWJyZXNvdXJjZUxvYWRlci5oIg0KQEAgLTY1OSw1
ICs2NTcsMyBAQCAtICh2b2lkKXJlc291cmNlRmluaXNoZWQ6KFBsYXRmb3JtTWVkaWFSDQogICAg
IFtzZWxmIF9yZXNvdXJjZTpyZXNvdXJjZSBsb2FkRmluaXNoZWRXaXRoRXJyb3I6bmlsXTsNCiB9
DQogQGVuZA0KLQ0KLSNlbmRpZiAvLyBQTEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwDQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvQ2VydGlmaWNhdGVJbmZvTWFjLm1tDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ2VydGlmaWNhdGVJbmZvTWFjLm1tCShyZXZp
c2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ2Vy
dGlmaWNhdGVJbmZvTWFjLm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtODEsNyArODEsNiBAQCBib29s
IENlcnRpZmljYXRlSW5mbzo6Y29udGFpbnNOb25Sb290U0hBDQogICAgIH0NCiAjZW5kaWYNCiAN
Ci0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDExMDApIHx8IFBMQVRGT1JNKElPUykNCiAgICAgaWYgKG1fY2VydGlmaWNhdGVDaGFpbikg
ew0KICAgICAgICAgLy8gQWxsb3cgb25seSB0aGUgcm9vdCBjZXJ0aWZpY2F0ZSAodGhlIGxhc3Qg
aW4gdGhlIGNoYWluKSB0byBiZSBTSEExLg0KICAgICAgICAgZm9yIChDRkluZGV4IGkgPSAwLCBz
aXplID0gQ0ZBcnJheUdldENvdW50KG1fY2VydGlmaWNhdGVDaGFpbi5nZXQoKSkgLSAxOyBpIDwg
c2l6ZTsgKytpKSB7DQpAQCAtOTEsOSArOTAsNiBAQCBib29sIENlcnRpZmljYXRlSW5mbzo6Y29u
dGFpbnNOb25Sb290U0hBDQogICAgICAgICB9DQogICAgICAgICByZXR1cm4gZmFsc2U7DQogICAg
IH0NCi0jZWxzZQ0KLSAgICBub3RJbXBsZW1lbnRlZCgpOw0KLSNlbmRpZg0KIA0KICAgICByZXR1
cm4gZmFsc2U7DQogfQ0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L0Nvb2tpZUphck1hYy5tbQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbQkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbQkod29ya2luZyBj
b3B5KQ0KQEAgLTE4Nyw3ICsxODcsNyBAQCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5l
dHdvcmtTdG9yDQogICAgIE5TVVJMICpjb29raWVVUkwgPSB1cmw7DQogICAgIE5TRGljdGlvbmFy
eSAqaGVhZGVyRmllbGRzID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdDpjb29r
aWVTdHJpbmcgZm9yS2V5OkAiU2V0LUNvb2tpZSJdOw0KIA0KLSNpZiBQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwDQorI2lmIFBMQVRGT1JN
KE1BQykNCiAgICAgTlNBcnJheSAqdW5maWx0ZXJlZENvb2tpZXMgPSBbTlNIVFRQQ29va2llIF9w
YXJzZWRDb29raWVzV2l0aFJlc3BvbnNlSGVhZGVyRmllbGRzOmhlYWRlckZpZWxkcyBmb3JVUkw6
Y29va2llVVJMXTsNCiAjZWxzZQ0KICAgICBOU0FycmF5ICp1bmZpbHRlcmVkQ29va2llcyA9IFtO
U0hUVFBDb29raWUgY29va2llc1dpdGhSZXNwb25zZUhlYWRlckZpZWxkczpoZWFkZXJGaWVsZHMg
Zm9yVVJMOmNvb2tpZVVSTF07DQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2Nm
L0NGTmV0d29ya1NQSS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3BpL2NmL0NGTmV0d29ya1NQSS5oCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQSS5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMTE3
LDcgKzExNyw2IEBAIHR5cGVkZWYgdm9pZCAoXkNGQ2FjaGVkVVJMUmVzcG9uc2VDYWxsQmENCiAt
IChDRkhUVFBDb29raWVSZWYpX0NGSFRUUENvb2tpZTsNCiBAZW5kDQogDQotI2lmIChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSB8fCAo
UExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSA5MDAw
MCkNCiBAaW50ZXJmYWNlIE5TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKCkNCiBAcHJvcGVydHkg
KGFzc2lnbikgX1RpbWluZ0RhdGFPcHRpb25zIF90aW1pbmdEYXRhT3B0aW9uczsNCiBAcHJvcGVy
dHkgKGNvcHkpIE5TRGF0YSAqX3NvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbkRhdGE7DQpAQCAt
MTI4LDcgKzEyNyw2IEBAIHR5cGVkZWYgdm9pZCAoXkNGQ2FjaGVkVVJMUmVzcG9uc2VDYWxsQmEN
CiBAcHJvcGVydHkgKG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqX0NURGF0YUNvbm5lY3Rpb25T
ZXJ2aWNlVHlwZTsNCiAjZW5kaWYNCiBAZW5kDQotI2VuZGlmDQogDQogI2lmIChQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAoUExB
VEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDAp
DQogQGludGVyZmFjZSBOU1VSTFNlc3Npb25UYXNrVHJhbnNhY3Rpb25NZXRyaWNzICgpDQpAQCAt
MjQ1LDI3ICsyNDMsMjMgQEAgZW51bSA6IE5TVUludGVnZXIgew0KIA0KIFdURl9FWFRFUk5fQ19C
RUdJTg0KIA0KLSNpZiBUQVJHRVRfT1NfSVBIT05FIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKQ0KIENGRGF0YVJlZiBfQ0ZOZXR3
b3JrQ29weUFUU0NvbnRleHQodm9pZCk7DQogQm9vbGVhbiBfQ0ZOZXR3b3JrU2V0QVRTQ29udGV4
dChDRkRhdGFSZWYpOw0KLSNlbmRpZg0KIA0KICNpZiBQTEFURk9STShDT0NPQSkNCiB2b2lkIF9D
Rk5ldHdvcmtSZXNldEhTVFNIb3N0c1NpbmNlRGF0ZShDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCBD
RkRhdGVSZWYpOw0KICNlbmRpZg0KIA0KLSNpZiBUQVJHRVRfT1NfSVBIT05FIHx8IChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKQ0KIENG
RGF0YVJlZiBDRkhUVFBDb29raWVTdG9yYWdlQ3JlYXRlSWRlbnRpZnlpbmdEYXRhKENGQWxsb2Nh
dG9yUmVmIGluQWxsb2NhdG9yLCBDRkhUVFBDb29raWVTdG9yYWdlUmVmIGluU3RvcmFnZSk7DQog
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZiBDRkhUVFBDb29raWVTdG9yYWdlQ3JlYXRlRnJvbUlkZW50
aWZ5aW5nRGF0YShDRkFsbG9jYXRvclJlZiBpbkFsbG9jYXRvciwgQ0ZEYXRhUmVmIGluRGF0YSk7
DQogQ0ZBcnJheVJlZiBfQ0ZIVFRQUGFyc2VkQ29va2llc1dpdGhSZXNwb25zZUhlYWRlckZpZWxk
cyhDRkFsbG9jYXRvclJlZiBpbkFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGhlYWRlckZpZWxk
cywgQ0ZVUkxSZWYgaW5VUkwpOw0KLSNlbmRpZg0KIA0KIFdURl9FWFRFUk5fQ19FTkQNCiANCiAj
aWYgZGVmaW5lZChfX09CSkNfXykNCiANCiBAaW50ZXJmYWNlIE5TSFRUUENvb2tpZSAoKQ0KLSNp
ZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MTAwDQorI2lmIFBMQVRGT1JNKE1BQykNCiArIChOU0FycmF5ICopX3BhcnNlZENvb2tpZXNXaXRo
UmVzcG9uc2VIZWFkZXJGaWVsZHM6KE5TRGljdGlvbmFyeSAqKWhlYWRlckZpZWxkcyBmb3JVUkw6
KE5TVVJMICopYVVSTDsNCiAjZW5kaWYNCiArIChOU0FycmF5ICopX2NmMm5zQ29va2llczooQ0ZB
cnJheVJlZiljZkNvb2tpZXM7DQpAQCAtMjgxLDExICsyNzUsOSBAQCBXVEZfRVhURVJOX0NfRU5E
DQogI2VuZGlmDQogDQogLy8gRklYTUU6IE1vdmUgK19zZXRTaGFyZWRIVFRQQ29va2llU3RvcmFn
ZTogaW50byB0aGUgYWJvdmUgc2VjdGlvbiB1bmRlciAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykg
d2hlbiBwb3NzaWJsZSAoc29vbikuDQotI2lmIFRBUkdFVF9PU19JUEhPTkUgfHwgKFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApDQogQGlu
dGVyZmFjZSBOU0hUVFBDb29raWVTdG9yYWdlICgpDQogKyAodm9pZClfc2V0U2hhcmVkSFRUUENv
b2tpZVN0b3JhZ2U6KE5TSFRUUENvb2tpZVN0b3JhZ2UgKilzdG9yYWdlOw0KIEBlbmQNCi0jZW5k
aWYNCiANCiBAaW50ZXJmYWNlIE5TVVJMUmVzcG9uc2UgKCkNCiAtICh2b2lkKV9zZXRNSU1FVHlw
ZTooTlNTdHJpbmcgKil0eXBlOw0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9j
Zy9Db3JlR3JhcGhpY3NTUEkuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaAkod29ya2luZyBjb3B5
KQ0KQEAgLTEwNCw3ICsxMDQsNyBAQCB0eXBlZGVmIHVpbnQzMl90IENHRm9udFJlbmRlcmluZ1N0
eWxlOw0KIGVudW0gew0KICAgICBrQ0dGb250QW50aWFsaWFzaW5nU3R5bGVVbmZpbHRlcmVkID0g
MCA8PCA3LA0KICAgICBrQ0dGb250QW50aWFsaWFzaW5nU3R5bGVGaWx0ZXJMaWdodCA9IDEgPDwg
NywNCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTEwMA0KKyNpZiBQTEFURk9STShNQUMpDQogICAgIGtDR0ZvbnRBbnRpYWxpYXNpbmdT
dHlsZVVuZmlsdGVyZWRDdXN0b21EaWxhdGlvbiA9ICg4IDw8IDcpLA0KICNlbmRpZg0KIH07DQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL05FRmlsdGVyU291cmNlU1BJ
LmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvTkVG
aWx0ZXJTb3VyY2VTUEkuaAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3NwaS9jb2NvYS9ORUZpbHRlclNvdXJjZVNQSS5oCSh3b3JraW5nIGNvcHkpDQpAQCAt
MjMsOCArMjMsNiBAQA0KICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4NCiAgKi8N
CiANCi0jZGVmaW5lIEhBVkVfTU9ERVJOX05FX0ZJTFRFUl9TT1VSQ0UgKFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApIHx8IFBMQVRGT1JN
KElPUykNCi0NCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykNCiANCiAjaW1wb3J0IDxOZXR3
b3JrRXh0ZW5zaW9uL05FRmlsdGVyU291cmNlLmg+DQpAQCAtNTksOCArNTcsNiBAQCB0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBORUZpbHRlclNvdXJjDQogQHByb3BlcnR5IChyZWFkb25seSkg
dWludDY0X3Qgc29ja2V0SWRlbnRpZmllcjsNCiBAZW5kDQogDQotI2lmIEhBVkUoTU9ERVJOX05F
X0ZJTFRFUl9TT1VSQ0UpDQotDQogI2RlZmluZSBORUZpbHRlclNvdXJjZU9wdGlvbnNQYWdlRGF0
YSBAIlBhZ2VEYXRhIg0KICNkZWZpbmUgTkVGaWx0ZXJTb3VyY2VPcHRpb25zUmVkaXJlY3RVUkwg
QCJSZWRpcmVjdFVSTCINCiANCkBAIC03OSw2ICs3NSw0IEBAIHR5cGVkZWYgdm9pZCAoXk5FRmls
dGVyU291cmNlRGVjaXNpb25IYW4NCiAjZW5kaWYNCiBAZW5kDQogDQotI2VuZGlmDQotDQogI2Vu
ZGlmIC8vICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQ0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3NwaS9jb2NvYS9OU1VSTENvbm5lY3Rpb25TUEkuaA0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9OU1VSTENvbm5lY3Rpb25TUEkuaAkocmV2
aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9OU1VS
TENvbm5lY3Rpb25TUEkuaAkod29ya2luZyBjb3B5KQ0KQEAgLTM5LDEwICszOSw2IEBAIHR5cGVk
ZWYgTlNVSW50ZWdlciBUaW1pbmdEYXRhQ29sbGVjdGlvbjsNCiBAaW50ZXJmYWNlIE5TVVJMQ29u
bmVjdGlvbiAoKQ0KICsgKENGUnVuTG9vcFJlZilyZXNvdXJjZUxvYWRlclJ1bkxvb3A7DQogLSAo
dm9pZClzZXREZWZlcnNDYWxsYmFja3M6KEJPT0wpZGVmZXJzOw0KLSNpZiBQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDExMDANCi0rICh2b2lkKV9z
ZXRDb2xsZWN0c1RpbWluZ0RhdGE6KEJPT0wpY29sbGVjdDsNCi0rICh2b2lkKV9jb2xsZWN0VGlt
aW5nRGF0YVdpdGhPcHRpb25zOihUaW1pbmdEYXRhQ29sbGVjdGlvbilvcHRpb25zOw0KLSNlbmRp
Zg0KIC0gKE5TRGljdGlvbmFyeSAqKV90aW1pbmdEYXRhOw0KIEBlbmQNCiANCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAko
cmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9R
dWFydHpDb3JlU1BJLmgJKHdvcmtpbmcgY29weSkNCkBAIC0xMjQsNyArMTI0LDYgQEAgdHlwZWRl
ZiBzdHJ1Y3QgQ0FDb2xvck1hdHJpeCBDQUNvbG9yTWF0cg0KIEBwcm9wZXJ0eSAoY29weSkgTlNT
dHJpbmcgKm5hbWU7DQogQGVuZA0KIA0KLSNpZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKQ0KIHR5cGVk
ZWYgZW51bSB7DQogICAgIGtDQVRyYW5zYWN0aW9uUGhhc2VQcmVMYXlvdXQsDQogICAgIGtDQVRy
YW5zYWN0aW9uUGhhc2VQcmVDb21taXQsDQpAQCAtMTM0LDI2ICsxMzMsMTUgQEAgdHlwZWRlZiBl
bnVtIHsNCiBAaW50ZXJmYWNlIENBVHJhbnNhY3Rpb24gKCkNCiArICh2b2lkKWFkZENvbW1pdEhh
bmRsZXI6KHZvaWQoXikodm9pZCkpYmxvY2sgZm9yUGhhc2U6KENBVHJhbnNhY3Rpb25QaGFzZSlw
aGFzZTsNCiBAZW5kDQotI2VuZGlmDQogDQogQGludGVyZmFjZSBDQUxheWVySG9zdCA6IENBTGF5
ZXINCiBAcHJvcGVydHkgdWludDMyX3QgY29udGV4dElkOw0KIEBwcm9wZXJ0eSBCT09MIGluaGVy
aXRzU2VjdXJpdHk7DQogQGVuZA0KIA0KLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NQVhfQUxMT1dFRCA8IDEwMTEwMA0KLUBpbnRlcmZhY2UgQ0FTcHJpbmdBbmltYXRp
b24gOiBDQUJhc2ljQW5pbWF0aW9uIA0KLUBwcm9wZXJ0eSBDR0Zsb2F0IG1hc3M7DQotQHByb3Bl
cnR5IENHRmxvYXQgc3RpZmZuZXNzOw0KLUBwcm9wZXJ0eSBDR0Zsb2F0IGRhbXBpbmc7DQotQHBy
b3BlcnR5IENHRmxvYXQgdmVsb2NpdHk7DQotQHByb3BlcnR5IENHRmxvYXQgaW5pdGlhbFZlbG9j
aXR5Ow0KLUBlbmQNCi0jZWxzZQ0KIEBpbnRlcmZhY2UgQ0FTcHJpbmdBbmltYXRpb24gKFByaXZh
dGUpDQogQHByb3BlcnR5IENHRmxvYXQgdmVsb2NpdHk7DQogQGVuZA0KLSNlbmRpZg0KIA0KICNl
bmRpZiAvLyBfX09CSkNfXw0KIA0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9t
YWMvTlNTY3JvbGxpbmdJbnB1dEZpbHRlclNQSS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3BpL21hYy9OU1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmgJKHJldmlz
aW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL05TU2Nyb2xs
aW5nSW5wdXRGaWx0ZXJTUEkuaAkod29ya2luZyBjb3B5KQ0KQEAgLTIzLDcgKzIzLDcgQEANCiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLg0KICAqLw0KIA0KLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwDQorI2lmIFBMQVRGT1JNKE1BQykNCiANCiAj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykNCiANCkBAIC0zOCw0ICszOCw0IEBAIEBpbnRlcmZh
Y2UgX05TU2Nyb2xsaW5nUHJlZG9taW5hbnRBeGlzRmkNCiANCiAjZW5kaWYgLyogVVNFKEFQUExF
X0lOVEVSTkFMX1NESykgKi8NCiANCi0jZW5kaWYgLyogUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCAqLw0KKyNlbmRpZiAvKiBQTEFURk9S
TShNQUMpICovDQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9OU1Njcm9s
bGluZ01vbWVudHVtQ2FsY3VsYXRvclNQSS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3BpL21hYy9OU1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvclNQSS5oCShy
ZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9OU1Nj
cm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvclNQSS5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMjMsOCAr
MjMsNiBAQA0KICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuDQogICovDQogDQotI2lmIEhBVkUoTlNTQ1JPTExJTkdf
RklMVEVSUykNCi0NCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykNCiANCiAjaW1wb3J0IDxB
cHBLaXQvTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JfUHJpdmF0ZS5oPg0KQEAgLTQ1LDUg
KzQzLDMgQEAgQGludGVyZmFjZSBfTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0bw0KIEBlbmQN
CiANCiAjZW5kaWYgLyogVVNFKEFQUExFX0lOVEVSTkFMX1NESykgKi8NCi0NCi0jZW5kaWYgLyog
SEFWRShOU1NDUk9MTElOR19GSUxURVJTKSAqLw0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NwaS9tYWMvVFVDYWxsU1BJLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9zcGkvbWFjL1RVQ2FsbFNQSS5oCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9UVUNhbGxTUEkuaAkod29ya2luZyBjb3B5KQ0KQEAg
LTIzLDggKzIzLDYgQEANCiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuDQogICov
DQogDQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwDQotDQog
I2ltcG9ydCAiU29mdExpbmtpbmcuaCINCiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4NCiANCkBA
IC0zNyw1ICszNSwzIEBAIEBpbnRlcmZhY2UgVFVDYWxsIChTdHJpbmdzKQ0KIA0KIFNPRlRfTElO
S19QUklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChUZWxlcGhvbnlVdGlsaXRpZXMpDQogU09GVF9M
SU5LX0NMQVNTKFRlbGVwaG9ueVV0aWxpdGllcywgVFVDYWxsKQ0KLQ0KLSNlbmRpZg0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQ0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQkocmV2aXNpb24g
MjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQko
d29ya2luZyBjb3B5KQ0KQEAgLTEwNzQsMTIgKzEwNzQsNyBAQCBOU0xldmVsSW5kaWNhdG9yQ2Vs
bCogUmVuZGVyVGhlbWVNYWM6OmxlDQogICAgIH0NCiANCiAgICAgW2NlbGwgc2V0TGV2ZWxJbmRp
Y2F0b3JTdHlsZTpsZXZlbEluZGljYXRvclN0eWxlRm9yKHN0eWxlLmFwcGVhcmFuY2UoKSldOw0K
LSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoZSBjYWxsIHRvIHNldEJhc2VXcml0aW5nRGlyZWN0aW9u
IG9uY2UgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAgaXMgYWx3YXlz
IHRydWUuDQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwDQot
ICAgIFtjZWxsIHNldFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb246IHN0eWxlLmlzTGVmdFRv
UmlnaHREaXJlY3Rpb24oKSA/IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbkxlZnRUb1Jp
Z2h0IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnRdOw0KLSNlbHNl
DQotICAgIFtjZWxsIHNldEJhc2VXcml0aW5nRGlyZWN0aW9uOnN0eWxlLmlzTGVmdFRvUmlnaHRE
aXJlY3Rpb24oKSA/IE5TV3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNXcml0aW5nRGly
ZWN0aW9uUmlnaHRUb0xlZnRdOw0KLSNlbmRpZg0KKyAgICBbY2VsbCBzZXRVc2VySW50ZXJmYWNl
TGF5b3V0RGlyZWN0aW9uOnN0eWxlLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IE5TVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uUmlnaHRUb0xlZnRdOw0KICAgICBbY2VsbCBzZXRNaW5WYWx1ZTplbGVtZW50LT5t
aW4oKV07DQogICAgIFtjZWxsIHNldE1heFZhbHVlOmVsZW1lbnQtPm1heCgpXTsNCiAgICAgW2Nl
bGwgc2V0T2JqZWN0VmFsdWU6QCh2YWx1ZSldOw0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUb09URkZvbnRDb252ZXJzaW9uLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUb09URkZvbnRDb252ZXJzaW9uLmNwcAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUb09URkZvbnRDb252ZXJzaW9uLmNwcAkod29ya2luZyBjb3B5
KQ0KQEAgLTExMjMsMTIgKzExMjMsNiBAQCB2b2lkIFNWR1RvT1RGRm9udENvbnZlcnRlcjo6YXBw
ZW5kS0VSTlRhDQogICAgIEFTU0VSVF9VTlVTRUQoc2l6ZU9mSG9yaXpvbnRhbFN1YnRhYmxlLCBz
dWJ0YWJsZXNPZmZzZXQgKyBzaXplT2ZIb3Jpem9udGFsU3VidGFibGUgPT0gbV9yZXN1bHQuc2l6
ZSgpKTsNCiAgICAgc2l6ZV90IHNpemVPZlZlcnRpY2FsU3VidGFibGUgPSBhcHBlbmRLRVJOU3Vi
dGFibGU8U1ZHVktlcm5FbGVtZW50PigmU1ZHVktlcm5FbGVtZW50OjpidWlsZFZlcnRpY2FsS2Vy
bmluZ1BhaXIsIDApOw0KICAgICBBU1NFUlRfVU5VU0VEKHNpemVPZlZlcnRpY2FsU3VidGFibGUs
IHN1YnRhYmxlc09mZnNldCArIHNpemVPZkhvcml6b250YWxTdWJ0YWJsZSArIHNpemVPZlZlcnRp
Y2FsU3VidGFibGUgPT0gbV9yZXN1bHQuc2l6ZSgpKTsNCi0NCi0jaWYgUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwMTAwMA0KLSAgICAvLyBXb3Jr
IGFyb3VuZCBhIGJ1ZyBpbiBBcHBsZSdzIGZvbnQgcGFyc2VyIGJ5IGFkZGluZyBzb21lIHBhZGRp
bmcgYnl0ZXMuIDxyZGFyOi8vcHJvYmxlbS8xODQwMTkwMT4NCi0gICAgZm9yIChpbnQgaSA9IDA7
IGkgPCA2OyArK2kpDQotICAgICAgICBtX3Jlc3VsdC5hcHBlbmQoMCk7DQotI2VuZGlmDQogfQ0K
IA0KIHRlbXBsYXRlIDx0eXBlbmFtZSBWPg0KQEAgLTE0MzgsMTIgKzE0MzIsNiBAQCBTVkdUb09U
RkZvbnRDb252ZXJ0ZXI6OlNWR1RvT1RGRm9udENvbnZlDQogDQogICAgIG1fYm91bmRpbmdCb3gg
PSBib3VuZGluZ0JveC52YWx1ZV9vcihGbG9hdFJlY3QoKSk7DQogDQotI2lmIFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDEwMDANCi0gICAgLy8g
PHJkYXI6Ly9wcm9ibGVtLzIwMDg2MjIzPiBDb2NvYSBoYXMgYSBidWcgd2hlcmUgZ2x5cGggYm91
bmRpbmcgYm94ZXMgYXJlIG5vdCBjb3JyZWN0bHkgcmVzcGVjdGVkIGZvciBmcnVzdHVtIGN1bGxp
bmcuIFdvcmsgYXJvdW5kIHRoaXMgYnkNCi0gICAgLy8gaW5mbGF0aW5nIHRoZSBmb250J3MgYm91
bmRpbmcgYm94DQotICAgIG1fYm91bmRpbmdCb3guZXh0ZW5kKEZsb2F0UG9pbnQoMCwgMCkpOw0K
LSNlbmRpZg0KLQ0KICAgICBhcHBlbmRMaWdhdHVyZUdseXBocygpOw0KIA0KICAgICBpZiAobV9n
bHlwaHMuc2l6ZSgpID4gc3RkOjpudW1lcmljX2xpbWl0czxHbHlwaD46Om1heCgpKSB7DQpJbmRl
eDogU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDE0IEBA
DQorMjAxNy0wNy0wMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPg0KKw0KKyAgICAg
ICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIChPT1BTISkuDQorICAgICAgICBOZWVkIHRoZSBi
dWcgVVJMIChPT1BTISkuDQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4N
CisNCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoNCisgICAgICAgICog
Q29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnOg0KKyAgICAgICAgKiBDb25maWd1
cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnOg0KKw0KIDIwMTctMDYtMzAgIEpvc2VwaCBQZWNvcmFy
byAgPHBlY29yYXJvQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFR5cGUg
dG9rZW4gYmFja2dyb3VuZCBjb2xvciBpbiBkZWJ1Z2dlciBsb29rcyBwb29yDQpJbmRleDogU291
cmNlL1dlYkluc3BlY3RvclVJL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZp
ZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Db25maWd1cmF0
aW9ucy9CYXNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtNTYsNyArNTYsNiBAQCBFTkdJ
TkVFUklOR19CVUlMRF9ERUZJTkVTXzEgPSBFTkdJTkVFUklODQogU1VQUE9SVEVEX1BMQVRGT1JN
UyA9IGlwaG9uZW9zIGlwaG9uZXNpbXVsYXRvciBtYWNvc3ggdHZvcyB0dnNpbXVsYXRvciB3YXRj
aG9zIHdhdGNoc2ltdWxhdG9yOw0KIA0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0g
JChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VU
OnN1ZmZpeDppZGVudGlmaWVyKSk7DQotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTAg
PSAxMDEwMDA7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTEgPSAxMDExMDA7DQog
VEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTIgPSAxMDEyMDA7DQogVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7DQpJbmRleDogU291cmNlL1dlYkluc3BlY3Rv
clVJL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZw0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25m
aWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ29uZmlndXJh
dGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtNyw3ICs3LDYg
QEAgT05MWV9BQ1RJVkVfQVJDSCA9IFlFUzsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpP
UiA9ICQoTUFDX09TX1hfVkVSU0lPTl9NQUpPUik7DQogDQogTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUID0gJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfJChQTEFURk9STV9OQU1FKV8kKFRBUkdF
VF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQotTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21h
Y29zeF8xMDEwMDAgPSAxMC4xMDsNCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEw
MTEwMCA9IDEwLjExOw0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMjAwID0g
MTAuMTI7DQogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDEzMDAgPSAxMC4xMzsN
CkluZGV4OiBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2Nv
bmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Db25maWd1cmF0aW9u
cy9WZXJzaW9uLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcJKHdvcmtpbmcgY29weSkNCkBA
IC04LDcgKzgsNiBAQCBGVUxMX1ZFUlNJT04gPSAkKE1BSk9SX1ZFUlNJT04pLiQoTUlOT1JfDQog
Ly8gVGhlIHN5c3RlbSB2ZXJzaW9uIHByZWZpeCBpcyBiYXNlZCBvbiB0aGUgY3VycmVudCBzeXN0
ZW0gdmVyc2lvbi4NCiBTWVNURU1fVkVSU0lPTl9QUkVGSVhbc2RrPWlwaG9uZSpdID0gODsNCiBT
WVNURU1fVkVSU0lPTl9QUkVGSVggPSAkKFNZU1RFTV9WRVJTSU9OX1BSRUZJWF8kKFBMQVRGT1JN
X05BTUUpXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsNCi1TWVNURU1fVkVSU0lP
Tl9QUkVGSVhfbWFjb3N4XzEwMTAwMCA9IDEwOw0KIFNZU1RFTV9WRVJTSU9OX1BSRUZJWF9tYWNv
c3hfMTAxMTAwID0gMTE7DQogU1lTVEVNX1ZFUlNJT05fUFJFRklYX21hY29zeF8xMDEyMDAgPSAx
MjsNCiBTWVNURU1fVkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEwMTMwMCA9IDEzOw0KSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwxMTQgQEANCisyMDE3LTA3LTAxICBEYW4gQmVybnN0
ZWluICA8bWl0ekBhcHBsZS5jb20+DQorDQorICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRp
b24gKE9PUFMhKS4NCisgICAgICAgIE5lZWQgdGhlIGJ1ZyBVUkwgKE9PUFMhKS4NCisNCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBDb25maWd1cmF0
aW9ucy9CYXNlLnhjY29uZmlnOg0KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0
LnhjY29uZmlnOg0KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9CYXNlWFBDU2VydmljZS54Y2Nv
bmZpZzoNCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnOg0K
KyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoNCisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvTmV0d29ya1NlcnZpY2UueGNjb25maWc6DQorICAgICAgICAq
IENvbmZpZ3VyYXRpb25zL1BsdWdpblNlcnZpY2UuMzIueGNjb25maWc6DQorICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL1BsdWdpblNlcnZpY2UuNjQueGNjb25maWc6DQorICAgICAgICAqIENvbmZp
Z3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWc6DQorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dl
YkNvbnRlbnRTZXJ2aWNlLnhjY29uZmlnOg0KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJL
aXQueGNjb25maWc6DQorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldl
YktpdC5EYXRhYmFzZXMuc2IuaW46DQorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0VudHJ5UG9p
bnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2UvSW5mby1PU1gtMTAuOS0xMC4xMC5wbGlz
dDogUmVtb3ZlZC4NCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwOg0KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kZSk6DQorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToNCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoNCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToNCisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzc0NvY29hKToNCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nl
c3Muc2IuaW46DQorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmg6DQorICAgICAg
ICAqIFBsYXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbToNCisgICAgICAgIChJUEM6OkNv
bm5lY3Rpb246OnBsYXRmb3JtSW52YWxpZGF0ZSk6DQorICAgICAgICAoSVBDOjpDb25uZWN0aW9u
OjpwbGF0Zm9ybUluaXRpYWxpemUpOg0KKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6b3Blbik6
DQorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpleGNlcHRpb25Tb3VyY2VFdmVudEhhbmRsZXIp
OiBEZWxldGVkLg0KKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2V0U2hvdWxkQ2xvc2VDb25u
ZWN0aW9uT25NYWNoRXhjZXB0aW9ucyk6IERlbGV0ZWQuDQorICAgICAgICAqIFBsYXRmb3JtL21h
Yy9MYXllckhvc3RpbmdDb250ZXh0Lmg6DQorICAgICAgICAqIFBsYXRmb3JtL21hYy9MYXllckhv
c3RpbmdDb250ZXh0Lm1tOg0KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6
Y3JlYXRlRmVuY2VQb3J0KToNCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21h
Yy9YUENTZXJ2aWNlL1BsdWdpblNlcnZpY2UuMzItNjQtMTAuOS0xMC4xMC5JbmZvLnBsaXN0OiBS
ZW1vdmVkLg0KKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJv
eHlNYWMubW06DQorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OnVwZGF0
ZUxheWVySG9zdGluZ0NvbnRleHQpOg0KKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9QbHVn
aW5Qcm9jZXNzU2hpbS5tbToNCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvY29tLmFwcGxl
LldlYktpdC5wbHVnaW4tY29tbW9uLnNiLmluOg0KKyAgICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9j
ZXNzLmg6DQorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBs
dWdpbk1vZHVsZU1hYy5tbToNCisgICAgICAgIChXZWJLaXQ6OmdldFBsdWdpbkluZm9Gcm9tUHJv
cGVydHlMaXN0cyk6DQorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbk1vZHVsZTo6Z2V0
UGx1Z2luSW5mbyk6DQorICAgICAgICAoV2ViS2l0Ojpjb250ZW50c09mUHJvcGVydHlMaXN0QXRV
UkwpOiBEZWxldGVkLg0KKyAgICAgICAgKFdlYktpdDo6Z2V0TUlNRVR5cGVzRnJvbVBsdWdpbkJ1
bmRsZSk6IERlbGV0ZWQuDQorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwOg0KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToNCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6DQorICAgICAgICAqIFNoYXJlZC9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoNCisgICAgICAgICogU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOg0KKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToNCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6DQorICAgICAgICAqIFNoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6DQorICAgICAgICAqIFNoYXJlZC9tYWMvQ2hpbGRQ
cm9jZXNzTWFjLm1tOg0KKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzOjpzZXRTaGFyZWRI
VFRQQ29va2llU3RvcmFnZSk6DQorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
Og0KKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6DQorICAgICAgICAoZml4VXBCb3Rj
aGVkUGFnZVVJQ2xpZW50KTogRGVsZXRlZC4NCisgICAgICAgICogVUlQcm9jZXNzL0NoaWxkUHJv
Y2Vzc1Byb3h5LmNwcDoNCisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJvY2Vzc1Byb3h5OjpkaWRG
aW5pc2hMYXVuY2hpbmcpOg0KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbToNCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKToNCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpw
bGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6DQorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6cmVzZXRIU1RTSG9zdHNBZGRlZEFmdGVyRGF0ZSk6DQorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOg0KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW06DQorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlTGF5
ZXIpOg0KKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnN0YXJ0V2luZG93RHJhZyk6DQor
ICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5Lmg6DQorICAgICAgICAoV2ViS2l0
OjpEcmF3aW5nQXJlYVByb3h5Ojp3YWl0Rm9yUG9zc2libGVHZW9tZXRyeVVwZGF0ZSk6IERlbGV0
ZWQuDQorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHA6
DQorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGlu
Zyk6DQorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oOg0K
KyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1t
Og0KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUluaXRpYWxp
emVQbHVnaW5Qcm9jZXNzKToNCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6
Y3JlYXRlUHJvcGVydHlMaXN0RmlsZSk6IERlbGV0ZWQuDQorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwOg0KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRUb3BD
b250ZW50SW5zZXQpOg0KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1t
Og0KKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJvb3RWaWV3VG9XaW5kb3cpOg0K
KyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnN0YXJ0V2luZG93RHJhZyk6DQorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMubW06DQorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TdGFydFdpbmRv
d0RyYWcpOg0KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhUHJveHkuaDoNCisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYVByb3h5Lm1tOg0KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWFQcm94eTo6Y3JlYXRlRmVuY2UpOg0KKyAgICAgICAgKFdlYktpdDo6VGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6d2FpdEZvclBvc3NpYmxlR2VvbWV0cnlV
cGRhdGUpOiBEZWxldGVkLg0KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclBy
b3h5TWFjLm1tOg0KKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OmNyZWF0ZUZy
b250ZW5kV2luZG93KToNCisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0
Zm9ybVN0YXJ0V2luZG93RHJhZyk6DQorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUG9wdXBN
ZW51UHJveHlNYWMubW06DQorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6
c2hvd1BvcHVwTWVudSk6DQorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoNCisgICAgICAgICogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dl
YkNvbnRlbnRTZXJ2aWNlL0luZm8tT1NYLTEwLjktMTAuMTAucGxpc3Q6IFJlbW92ZWQuDQorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoNCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoNCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW46DQorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxh
dGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbToNCisgICAgICAgIChXZWJLaXQ6OmFkZEFuaW1hdGlv
blRvTGF5ZXIpOg0KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhLm1tOg0KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWE6OmZsdXNoTGF5ZXJzKToNCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToNCisgICAgICAgIChXZWJLaXQ6OlRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpmbHVzaExheWVycyk6DQorICAgICAgICAoV2Vi
S2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkpOg0KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToNCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOg0KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluOg0KKw0KIDIwMTctMDYt
MzAgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4NCiANCiAgICAgICAg
IFVucmV2aWV3ZWQgbWFjIGJ1aWxkIGZpeC4NCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9CYXNlLnhjY29uZmlnDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvQ29u
ZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9X
ZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHdvcmtpbmcgY29weSkNCkBAIC03
OCw3ICs3OCw2IEBAIFBSRUJJTkRJTkcgPSBOTzsNCiBXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1X
ZXh0cmEgLVdjaGFyLXN1YnNjcmlwdHMgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQtc2VjdXJpdHkg
LVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJu
IC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRh
bnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMg
LVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1m
YWxsdGhyb3VnaDsNCiANCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VU
X01BQ19PU19YX1ZFUlNJT05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6
aWRlbnRpZmllcikpOw0KLVRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzEwID0gMTAxMDAw
Ow0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzExID0gMTAxMTAwOw0KIFRBUkdFVF9N
QUNfT1NfWF9WRVJTSU9OX01BSk9SXzEyID0gMTAxMjAwOw0KIFRBUkdFVF9NQUNfT1NfWF9WRVJT
SU9OX01BSk9SXzEzID0gMTAxMzAwOw0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRp
b25zL0Jhc2VUYXJnZXQueGNjb25maWcNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9D
b25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysg
U291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZwkod29ya2lu
ZyBjb3B5KQ0KQEAgLTkyLDExICs5Miw2IEBAIFdLX01BTlVBTF9TQU5EQk9YSU5HX0VOQUJMRURb
c2RrPW1hY29zeCoNCiBXS19NQU5VQUxfU0FOREJPWElOR19ERUZJTkVTID0gJChXS19NQU5VQUxf
U0FOREJPWElOR19ERUZJTkVTXyQoV0tfTUFOVUFMX1NBTkRCT1hJTkdfRU5BQkxFRCkpOw0KIFdL
X01BTlVBTF9TQU5EQk9YSU5HX0RFRklORVNfWUVTID0gRU5BQkxFX01BTlVBTF9TQU5EQk9YSU5H
Ow0KIA0KLVdLX0RPTlRfTElOS19TSElNID0gJChXS19ET05UX0xJTktfU0hJTV8kKFRBUkdFVF9N
QUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQotV0tfRE9OVF9MSU5LX1NISU1fMTAxMDAwID0gWUVT
Ow0KLQ0KLVdLX0xJTktfU0hJTVtzZGs9bWFjb3N4Kl0gPSAkKFdLX05PVF8kKFdLX0RPTlRfTElO
S19TSElNKSk7DQotDQogV0tfRU1QVFlfID0gWUVTOw0KIFdLX05PVF8gPSBZRVM7DQogV0tfTk9U
X1lFUyA9IE5POw0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0Jhc2VYUENT
ZXJ2aWNlLnhjY29uZmlnDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvQ29uZmlndXJh
dGlvbnMvQmFzZVhQQ1NlcnZpY2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9CYXNlWFBDU2VydmljZS54Y2NvbmZpZwkod29ya2lu
ZyBjb3B5KQ0KQEAgLTYzLDkgKzYzLDYgQEAgQ09ERV9TSUdOX0VOVElUTEVNRU5UU19JT1NfTUFO
VUFMX1NBTkRCTw0KIENPREVfU0lHTl9FTlRJVExFTUVOVFNfSU9TX01BTlVBTF9TQU5EQk9YSU5H
X05PID0gQ29uZmlndXJhdGlvbnMvJChXS19YUENfU0VSVklDRV9JT1NfRU5USVRMRU1FTlRTX0JB
U0UpLmVudGl0bGVtZW50czsNCiBDT0RFX1NJR05fRU5USVRMRU1FTlRTX0lPU19NQU5VQUxfU0FO
REJPWElOR19ZRVMgPSAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi8kKFdLX1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRSktbm8tc2FuZGJveC5lbnRp
dGxlbWVudHM7DQogDQotV0tfWFBDX1NFUlZJQ0VfSU5GT1BMSVNUX1NVRkZJWFtzZGs9bWFjb3N4
Kl0gPSAkKFdLX1hQQ19TRVJWSUNFX0lORk9QTElTVF9TVUZGSVhfJChUQVJHRVRfTUFDX09TX1hf
VkVSU0lPTl9NQUpPUikpOw0KLVdLX1hQQ19TRVJWSUNFX0lORk9QTElTVF9TVUZGSVhfMTAxMDAw
ID0gLTEwLjktMTAuMTA7DQotDQogV0tfWFBDX1NFUlZJQ0VfSU5TRVJUX0xJQlJBUklFU19ESVIg
PSAkKFdLX1hQQ19TRVJWSUNFX0lOU0VSVF9MSUJSQVJJRVNfRElSXyQoV0tfUkVMT0NBVEFCTEVf
RlJBTUVXT1JLUykpOw0KIFdLX1hQQ19TRVJWSUNFX0lOU0VSVF9MSUJSQVJJRVNfRElSXyA9ICQo
V0tfWFBDX1NFUlZJQ0VfSU5TRVJUX0xJQlJBUklFU19ESVJfTk8pOw0KIFdLX1hQQ19TRVJWSUNF
X0lOU0VSVF9MSUJSQVJJRVNfRElSX05PID0gJChXRUJLSVRfRlJBTUVXT1JLU19ESVIpL1dlYktp
dC5mcmFtZXdvcmsvRnJhbWV3b3JrczsNCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0
aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0
Mi9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkN
CisrKyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJ
KHdvcmtpbmcgY29weSkNCkBAIC0zMCw3ICszMCw2IEBAIE9OTFlfQUNUSVZFX0FSQ0ggPSBZRVM7
DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKE1BQ19PU19YX1ZFUlNJT05fTUFK
T1IpOw0KIA0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9ICQoTUFDT1NYX0RFUExPWU1FTlRf
VEFSR0VUXyQoUExBVEZPUk1fTkFNRSlfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikp
Ow0KLU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMDAwID0gMTAuMTA7DQogTUFD
T1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDExMDAgPSAxMC4xMTsNCiBNQUNPU1hfREVQ
TE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTIwMCA9IDEwLjEyOw0KIE1BQ09TWF9ERVBMT1lNRU5U
X1RBUkdFVF9tYWNvc3hfMTAxMzAwID0gMTAuMTM7DQpAQCAtNDIsNyArNDEsNiBAQCBERUJVR19J
TkZPUk1BVElPTl9GT1JNQVQgPSBkd2FyZjsNCiBXRUJLSVRfU1lTVEVNX0lOVEVSRkFDRV9MSUJS
QVJZW3Nkaz1pcGhvbmVvcypdID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNlSU9TRGV2aWNlJChXS19U
QVJHRVRfSU9TX1ZFUlNJT05fTUFKT1IpOw0KIFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJB
Ullbc2RrPWlwaG9uZXNpbXVsYXRvcipdID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNlSU9TU2ltdWxh
dG9yJChXS19UQVJHRVRfSU9TX1ZFUlNJT05fTUFKT1IpOw0KIFdFQktJVF9TWVNURU1fSU5URVJG
QUNFX0xJQlJBUllbc2RrPW1hY29zeCpdID0gJChXRUJLSVRfU1lTVEVNX0lOVEVSRkFDRV9MSUJS
QVJZX21hY29zeF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQotV0VCS0lUX1NZ
U1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfMTAxMDAwID0gV2ViS2l0U3lzdGVtSW50ZXJm
YWNlWW9zZW1pdGU7DQogV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfMTAx
MTAwID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNlRWxDYXBpdGFuOw0KIFdFQktJVF9TWVNURU1fSU5U
RVJGQUNFX0xJQlJBUllfbWFjb3N4XzEwMTIwMCA9IFdlYktpdFN5c3RlbUludGVyZmFjZU9TWDEw
LjEyOw0KIFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllfbWFjb3N4XzEwMTMwMCA9ICQo
V0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfMTAxMjAwKTsNCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZw0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdDIvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkNCkBAIC0zMiwxMSAr
MzIsOSBAQA0KIC8vIFNldCBhbnkgRU5BQkxFX0ZFQVRVUkVfTkFNRSBtYWNybyB0byBhbiBlbXB0
eSBzdHJpbmcgdG8gZGlzYWJsZSB0aGF0IGZlYXR1cmUuDQogDQogVEFSR0VUX01BQ19PU19YX1ZF
UlNJT05fTEVTU19USEFOXzEwMTIwMDAgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1Nf
VEhBTl8xMDEyMDAwXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsNCi1UQVJHRVRf
TUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMjAwMF8xMDEwMDAgPSBZRVM7DQogVEFSR0VU
X01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDBfMTAxMTAwID0gWUVTOw0KIA0KIFRB
UkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwID0gJChUQVJHRVRfTUFDX09T
X1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAwMF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01B
Sk9SKSk7DQotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDBfMTAxMDAw
ID0gWUVTOw0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwXzEwMTEw
MCA9IFlFUzsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAwMF8xMDEy
MDAgPSBZRVM7DQogDQpJbmRleDogU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvTmV0d29y
a1NlcnZpY2UueGNjb25maWcNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9OZXR3b3JrU2VydmljZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNv
dXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL05ldHdvcmtTZXJ2aWNlLnhjY29uZmlnCSh3b3Jr
aW5nIGNvcHkpDQpAQCAtMjgsNyArMjgsNyBAQCBXS19YUENfU0VSVklDRV9JT1NfRU5USVRMRU1F
TlRTX0JBU0UgPSBODQogUFJPRFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5n
Ow0KIFBST0RVQ1RfQlVORExFX0lERU5USUZJRVIgPSAkKFBST0RVQ1RfTkFNRSk7DQogSU5GT1BM
SVNUX0ZJTEVbc2RrPWlwaG9uZSpdID0gTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBD
U2VydmljZS9OZXR3b3JrU2VydmljZS9JbmZvLWlPUy5wbGlzdDsNCi1JTkZPUExJU1RfRklMRVtz
ZGs9bWFjb3N4Kl0gPSBOZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05l
dHdvcmtTZXJ2aWNlL0luZm8tT1NYJChXS19YUENfU0VSVklDRV9JTkZPUExJU1RfU1VGRklYKS5w
bGlzdDsNCitJTkZPUExJU1RfRklMRVtzZGs9bWFjb3N4Kl0gPSBOZXR3b3JrUHJvY2Vzcy9FbnRy
eVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlL0luZm8tT1NYLnBsaXN0Ow0KIA0K
LU9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChPVEhFUl9MREZMQUdTX1ZFUlNJT05FRF9G
UkFNRVdPUktfUEFUSCkgJChPVEhFUl9MREZMQUdTX1NISU1fJChXS19MSU5LX1NISU0pKSAkKFdL
X1JFTE9DQVRBQkxFX0ZSQU1FV09SS1NfTERGTEFHUyk7DQotT1RIRVJfTERGTEFHU19TSElNX1lF
UyA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9TZWNJdGVtU2hpbS5keWxpYjsNCitPVEhFUl9MREZM
QUdTID0gJChpbmhlcml0ZWQpICQoT1RIRVJfTERGTEFHU19WRVJTSU9ORURfRlJBTUVXT1JLX1BB
VEgpICQoV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLU19MREZMQUdTKTsNCitPVEhFUl9MREZMQUdT
W3Nkaz1tYWNvc3gqXSA9ICQoaW5oZXJpdGVkKSAkKEJVSUxUX1BST0RVQ1RTX0RJUikvU2VjSXRl
bVNoaW0uZHlsaWI7DQpJbmRleDogU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvUGx1Z2lu
U2VydmljZS4zMi54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQyL0NvbmZp
Z3VyYXRpb25zL1BsdWdpblNlcnZpY2UuMzIueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisr
KyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9QbHVnaW5TZXJ2aWNlLjMyLnhjY29uZmln
CSh3b3JraW5nIGNvcHkpDQpAQCAtMjcsMTEgKzI3LDEwIEBAIFZBTElEX0FSQ0hTX21hY29zeF9O
TyA9IGkzODY7DQogDQogUFJPRFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5QbHVnaW4uMzI7
DQogUFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUiA9ICQoUFJPRFVDVF9OQU1FKTsNCi1JTkZPUExJ
U1RfRklMRSA9IFBsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9QbHVnaW5T
ZXJ2aWNlLjMyLTY0JChXS19YUENfU0VSVklDRV9JTkZPUExJU1RfU1VGRklYKS5JbmZvLnBsaXN0
Ow0KK0lORk9QTElTVF9GSUxFID0gUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2
aWNlL1BsdWdpblNlcnZpY2UuMzItNjQuSW5mby5wbGlzdDsNCiANCiBPVEhFUl9MREZMQUdTID0g
JChPVEhFUl9MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk0pICQoT1RIRVJfTERGTEFH
U19WRVJTSU9ORURfRlJBTUVXT1JLX1BBVEgpICQoV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLU19M
REZMQUdTKTsNCi1PVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1tYWNvc3gqXSA9IC1mcmFtZXdv
cmsgQXBwS2l0ICQoT1RIRVJfTERGTEFHU19TSElNXyQoV0tfTElOS19TSElNKSk7DQotT1RIRVJf
TERGTEFHU19TSElNX1lFUyA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9QbHVnaW5Qcm9jZXNzU2hp
bS5keWxpYjsNCitPVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1tYWNvc3gqXSA9IC1mcmFtZXdv
cmsgQXBwS2l0ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9QbHVnaW5Qcm9jZXNzU2hpbS5keWxpYjsN
CiANCiBDT0RFX1NJR05fRU5USVRMRU1FTlRTID0gQ29uZmlndXJhdGlvbnMvUGx1Z2luU2Vydmlj
ZS5lbnRpdGxlbWVudHM7DQogDQpJbmRleDogU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMv
UGx1Z2luU2VydmljZS42NC54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQy
L0NvbmZpZ3VyYXRpb25zL1BsdWdpblNlcnZpY2UuNjQueGNjb25maWcJKHJldmlzaW9uIDIxOTA0
OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9QbHVnaW5TZXJ2aWNlLjY0Lnhj
Y29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtMjcsMTEgKzI3LDEwIEBAIFZBTElEX0FSQ0hTX21h
Y29zeF9OTyA9IHg4Nl82NDsNCiANCiBQUk9EVUNUX05BTUUgPSBjb20uYXBwbGUuV2ViS2l0LlBs
dWdpbi42NDsNCiBQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSID0gJChQUk9EVUNUX05BTUUpOw0K
LUlORk9QTElTVF9GSUxFID0gUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNl
L1BsdWdpblNlcnZpY2UuMzItNjQkKFdLX1hQQ19TRVJWSUNFX0lORk9QTElTVF9TVUZGSVgpLklu
Zm8ucGxpc3Q7DQorSU5GT1BMSVNUX0ZJTEUgPSBQbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZS4zMi02NC5JbmZvLnBsaXN0Ow0KIA0KIE9USEVSX0xE
RkxBR1MgPSAkKE9USEVSX0xERkxBR1MpICQoT1RIRVJfTERGTEFHU19QTEFURk9STSkgJChPVEhF
Ul9MREZMQUdTX1ZFUlNJT05FRF9GUkFNRVdPUktfUEFUSCkgJChXS19SRUxPQ0FUQUJMRV9GUkFN
RVdPUktTX0xERkxBR1MpOw0KLU9USEVSX0xERkxBR1NfUExBVEZPUk1bc2RrPW1hY29zeCpdID0g
LWZyYW1ld29yayBBcHBLaXQgJChPVEhFUl9MREZMQUdTX1NISU1fJChXS19MSU5LX1NISU0pKTsN
Ci1PVEhFUl9MREZMQUdTX1NISU1fWUVTID0gJChCVUlMVF9QUk9EVUNUU19ESVIpL1BsdWdpblBy
b2Nlc3NTaGltLmR5bGliOw0KK09USEVSX0xERkxBR1NfUExBVEZPUk1bc2RrPW1hY29zeCpdID0g
LWZyYW1ld29yayBBcHBLaXQgJChCVUlMVF9QUk9EVUNUU19ESVIpL1BsdWdpblByb2Nlc3NTaGlt
LmR5bGliOw0KIA0KIENPREVfU0lHTl9FTlRJVExFTUVOVFMgPSBDb25maWd1cmF0aW9ucy9QbHVn
aW5TZXJ2aWNlLmVudGl0bGVtZW50czsNCiANCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIv
Q29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNv
dXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcJKHdvcmtpbmcgY29w
eSkNCkBAIC0zNSw3ICszNSw2IEBAIFNIT1JUX1ZFUlNJT05fU1RSSU5HID0gJChTSE9SVF9WRVJT
SU9OX1MNCiAvLyBUaGUgc3lzdGVtIHZlcnNpb24gcHJlZml4IGlzIGJhc2VkIG9uIHRoZSBjdXJy
ZW50IHN5c3RlbSB2ZXJzaW9uLg0KIFNZU1RFTV9WRVJTSU9OX1BSRUZJWFtzZGs9aXBob25lKl0g
PSA4Ow0KIFNZU1RFTV9WRVJTSU9OX1BSRUZJWCA9ICQoU1lTVEVNX1ZFUlNJT05fUFJFRklYXyQo
UExBVEZPUk1fTkFNRSlfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOw0KLVNZU1RF
TV9WRVJTSU9OX1BSRUZJWF9tYWNvc3hfMTAxMDAwID0gMTA7DQogU1lTVEVNX1ZFUlNJT05fUFJF
RklYX21hY29zeF8xMDExMDAgPSAxMTsNCiBTWVNURU1fVkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEw
MTIwMCA9IDEyOw0KIFNZU1RFTV9WRVJTSU9OX1BSRUZJWF9tYWNvc3hfMTAxMzAwID0gMTM7DQpJ
bmRleDogU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvV2ViQ29udGVudFNlcnZpY2UueGNj
b25maWcNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9XZWJD
b250ZW50U2VydmljZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJL
aXQyL0NvbmZpZ3VyYXRpb25zL1dlYkNvbnRlbnRTZXJ2aWNlLnhjY29uZmlnCSh3b3JraW5nIGNv
cHkpDQpAQCAtMzIsMTEgKzMyLDEwIEBAIE9USEVSX0NPREVfU0lHTl9GTEFHU1tzZGs9bWFjb3N4
Kl0gPSAkKFcNCiBQUk9EVUNUX05BTUUgPSBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQ7DQog
UFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUiA9ICQoUFJPRFVDVF9OQU1FKTsNCiBJTkZPUExJU1Rf
RklMRVtzZGs9aXBob25lKl0gPSBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2Uv
V2ViQ29udGVudFNlcnZpY2UvSW5mby1pT1MucGxpc3Q7DQotSU5GT1BMSVNUX0ZJTEVbc2RrPW1h
Y29zeCpdID0gV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRT
ZXJ2aWNlL0luZm8tT1NYJChXS19YUENfU0VSVklDRV9JTkZPUExJU1RfU1VGRklYKS5wbGlzdDsN
CitJTkZPUExJU1RfRklMRVtzZGs9bWFjb3N4Kl0gPSBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby1PU1gucGxpc3Q7DQogDQogT1RIRVJf
TERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKE9USEVSX0xERkxBR1NfVkVSU0lPTkVEX0ZSQU1FV09S
S19QQVRIXyQoV0tfV0VCQ09OVEVOVF9TRVJWSUNFX05FRURTX1ZFUlNJT05FRF9GUkFNRVdPUktf
UEFUSF9MREZMQUcpKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk0pICQoV0tfUkVMT0NBVEFCTEVf
RlJBTUVXT1JLU19MREZMQUdTKTsNCi1PVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1tYWNvc3gq
XSA9IC1mcmFtZXdvcmsgQXBwS2l0ICQoT1RIRVJfTERGTEFHU19TSElNXyQoV0tfTElOS19TSElN
KSk7DQotT1RIRVJfTERGTEFHU19TSElNX1lFUyA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9XZWJQ
cm9jZXNzU2hpbS5keWxpYjsNCitPVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1tYWNvc3gqXSA9
IC1mcmFtZXdvcmsgQXBwS2l0ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9XZWJQcm9jZXNzU2hpbS5k
eWxpYjsNCiANCiBXS19XRUJDT05URU5UX1NFUlZJQ0VfTkVFRFNfWFBDX0RPTUFJTl9FWFRFTlNJ
T05fRU5USVRMRU1FTlQgPSAkKFdLX1dFQkNPTlRFTlRfU0VSVklDRV9ORUVEU19YUENfRE9NQUlO
X0VYVEVOU0lPTl9FTlRJVExFTUVOVF8kKFdLX0VNUFRZXyQoV0tfV0VCQ09OVEVOVF9TRVJWSUNF
X05FRURTX1hQQ19ET01BSU5fRVhURU5TSU9OX0VOVElUTEVNRU5UKSkpOw0KIFdLX1dFQkNPTlRF
TlRfU0VSVklDRV9ORUVEU19YUENfRE9NQUlOX0VYVEVOU0lPTl9FTlRJVExFTUVOVF8gPSAkKFdL
X1dFQkNPTlRFTlRfU0VSVklDRV9ORUVEU19YUENfRE9NQUlOX0VYVEVOU0lPTl9FTlRJVExFTUVO
VF9OTyk7DQpJbmRleDogU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29u
ZmlnDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvV2ViS2l0
LnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdDIvQ29uZmlndXJh
dGlvbnMvV2ViS2l0LnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtNzUsNyArNzUsNiBAQCBF
WENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU1tzZGs9aXBob25lKl0gDQogSU5TVEFMTEhEUlNfU0NS
SVBUX1BIQVNFID0gWUVTOw0KIA0KIFdLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdf
RElTQUJMRURbc2RrPW1hY29zeCpdID0gJChXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNT
SU5HX0RJU0FCTEVEX21hY29zeF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQot
V0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRF9tYWNvc3hfMTAxMDAw
ID0gWUVTOw0KIFdLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURfbWFj
b3N4XzEwMTEwMCA9IFlFUzsNCiBXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJ
U0FCTEVEX21hY29zeF8xMDEyMDAgPSBZRVM7DQogDQpJbmRleDogU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlcy5zYi5pbg0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldl
YktpdC5EYXRhYmFzZXMuc2IuaW4JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0
Mi9EYXRhYmFzZVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzLnNiLmluCSh3
b3JraW5nIGNvcHkpDQpAQCAtMzIsNyArMzIsNiBAQA0KIChhbGxvdyBwcm9jZXNzLWluZm8tcGlk
aW5mbykNCiAoYWxsb3cgcHJvY2Vzcy1pbmZvLXNldGNvbnRyb2wgKHRhcmdldCBzZWxmKSkNCiAN
Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCiAoZGVueSBz
eXNjdGwqKQ0KIChhbGxvdyBzeXNjdGwtcmVhZA0KICAgICAoc3lzY3RsLW5hbWUNCkBAIC00Myw3
ICs0Miw2IEBADQogICAgICAgICAidm0uZm9vdHByaW50X3N1c3BlbmQiKSkNCiANCiAoZGVueSBp
b2tpdC1nZXQtcHJvcGVydGllcykNCi0jZW5kaWYNCiANCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDEzMDANCiAoZGVueSBtYWNoLWxvb2t1cCAoeHBjLXNlcnZpY2Ut
bmFtZS1wcmVmaXggIiIpKQ0KQEAgLTExMSw5ICsxMDksNyBAQA0KICNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMA0KICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBs
ZS5hbmFseXRpY3NkIikNCiAjZW5kaWYNCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDExMDANCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubHNkLm1hcGRiIikN
Ci0jZW5kaWYNCiApDQogDQogOzsgU2FuZGJveCBleHRlbnNpb25zDQpJbmRleDogU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtNTQsNyArNTQsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplDQogICAgIGVuY29kZXIgPDwgc2hvdWxkRW5hYmxlTmV0d29y
a0NhY2hlU3BlY3VsYXRpdmVSZXZhbGlkYXRpb247DQogI2VuZGlmDQogI2VuZGlmDQotI2lmIFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAN
CisjaWYgUExBVEZPUk0oTUFDKQ0KICAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc0Nvb2tpZVN0b3Jh
Z2VJZGVudGlmaWVyOw0KICNlbmRpZg0KICNpZiBQTEFURk9STShJT1MpDQpAQCAtODAsNyArODAs
NyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplDQogI2VuZGlmDQog
ICAgIGVuY29kZXIgPDwgaHR0cFByb3h5Ow0KICAgICBlbmNvZGVyIDw8IGh0dHBzUHJveHk7DQot
I2lmIFRBUkdFVF9PU19JUEhPTkUgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApDQorI2lmIFBMQVRGT1JNKENPQ09BKQ0KICAgICBJ
UEM6OmVuY29kZShlbmNvZGVyLCBuZXR3b3JrQVRTQ29udGV4dC5nZXQoKSk7DQogI2VuZGlmDQog
ICAgIGVuY29kZXIgPDwgY29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQ7DQpAQCAtMTI2
LDcgKzEyNiw3IEBAIGJvb2wgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmQNCiAg
ICAgICAgIHJldHVybiBmYWxzZTsNCiAjZW5kaWYNCiAjZW5kaWYNCi0jaWYgUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KKyNpZiBQTEFU
Rk9STShNQUMpDQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnVpUHJvY2Vzc0Nvb2tp
ZVN0b3JhZ2VJZGVudGlmaWVyKSkNCiAgICAgICAgIHJldHVybiBmYWxzZTsNCiAjZW5kaWYNCkBA
IC0xNzEsNyArMTcxLDcgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZA0KICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3Vs
dC5odHRwc1Byb3h5KSkNCiAgICAgICAgIHJldHVybiBmYWxzZTsNCi0jaWYgVEFSR0VUX09TX0lQ
SE9ORSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTEwMCkNCisjaWYgUExBVEZPUk0oQ09DT0EpDQogICAgIGlmICghSVBDOjpkZWNvZGUo
ZGVjb2RlciwgcmVzdWx0Lm5ldHdvcmtBVFNDb250ZXh0KSkNCiAgICAgICAgIHJldHVybiBmYWxz
ZTsNCiAjZW5kaWYNCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2
aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkNCkBAIC02Myw3ICs2Myw3
IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyANCiAgICAgYm9vbCBz
aG91bGRFbmFibGVOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVJldmFsaWRhdGlvbiB7IGZhbHNlIH07
DQogI2VuZGlmDQogI2VuZGlmDQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCisjaWYgUExBVEZPUk0oTUFDKQ0KICAgICBWZWN0
b3I8dWludDhfdD4gdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7DQogI2VuZGlmDQog
I2lmIFBMQVRGT1JNKElPUykNCkBAIC05MSw3ICs5MSw3IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyANCiAjZW5kaWYNCiAgICAgU3RyaW5nIGh0dHBQcm94eTsNCiAg
ICAgU3RyaW5nIGh0dHBzUHJveHk7DQotI2lmIFRBUkdFVF9PU19JUEhPTkUgfHwgKFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApDQorI2lm
IFBMQVRGT1JNKENPQ09BKQ0KICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBuZXR3b3JrQVRTQ29u
dGV4dDsNCiAjZW5kaWYNCiAgICAgYm9vbCBjb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxl
ZDsNCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9Y
UENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlL0luZm8tT1NYLTEwLjktMTAuMTAucGxpc3QNCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9Y
UENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlL0luZm8tT1NYLTEwLjktMTAuMTAucGxpc3QJKHJldmlz
aW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50
L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlL0luZm8tT1NYLTEwLjktMTAuMTAucGxpc3QJ
KG5vbmV4aXN0ZW50KQ0KQEAgLTEsNTAgKzAsMCBAQA0KLTw/eG1sIHZlcnNpb249IjEuMCIgZW5j
b2Rpbmc9IlVURi04Ij8+DQotPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQ
TElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4w
LmR0ZCI+DQotPHBsaXN0IHZlcnNpb249IjEuMCI+DQotPGRpY3Q+DQotCTxrZXk+Q0ZCdW5kbGVH
ZXRJbmZvU3RyaW5nPC9rZXk+DQotCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn0sIENvcHlyaWdo
dCAyMDAzLTIwMTcgQXBwbGUgSW5jLjwvc3RyaW5nPg0KLQk8a2V5PkNGQnVuZGxlRGV2ZWxvcG1l
bnRSZWdpb248L2tleT4NCi0JPHN0cmluZz5FbmdsaXNoPC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5k
bGVFeGVjdXRhYmxlPC9rZXk+DQotCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+
DQotCTxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+DQotCTxzdHJpbmc+JHtQUk9EVUNUX0JV
TkRMRV9JREVOVElGSUVSfTwvc3RyaW5nPg0KLQk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlW
ZXJzaW9uPC9rZXk+DQotCTxzdHJpbmc+Ni4wPC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5kbGVOYW1l
PC9rZXk+DQotCTxzdHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5k
bGVQYWNrYWdlVHlwZTwva2V5Pg0KLQk8c3RyaW5nPlhQQyE8L3N0cmluZz4NCi0JPGtleT5DRkJ1
bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5Pg0KLQk8c3RyaW5nPiR7U0hPUlRfVkVSU0lPTl9T
VFJJTkd9PC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5kbGVTaWduYXR1cmU8L2tleT4NCi0JPHN0cmlu
Zz4/Pz8/PC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+DQotCTxzdHJpbmc+
JHtCVU5ETEVfVkVSU0lPTn08L3N0cmluZz4NCi0JPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxl
ZDwva2V5Pg0KLQk8dHJ1ZS8+DQotCTxrZXk+TlNQcmluY2lwYWxDbGFzczwva2V5Pg0KLQk8c3Ry
aW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4NCi0JPGtleT5XZWJLaXRFbnRyeVBvaW50PC9rZXk+
DQotCTxzdHJpbmc+TmV0d29ya1NlcnZpY2VJbml0aWFsaXplcjwvc3RyaW5nPg0KLQk8a2V5PkxT
VUlFbGVtZW50PC9rZXk+DQotCTx0cnVlLz4NCi0JPGtleT5YUENTZXJ2aWNlPC9rZXk+DQotCTxk
aWN0Pg0KLQkJPGtleT5TZXJ2aWNlVHlwZTwva2V5Pg0KLQkJPHN0cmluZz5BcHBsaWNhdGlvbjwv
c3RyaW5nPg0KLQkJPGtleT5Kb2luRXhpc3RpbmdTZXNzaW9uPC9rZXk+DQotCQk8dHJ1ZS8+DQot
CQk8a2V5PlJ1bkxvb3BUeXBlPC9rZXk+DQotCQk8c3RyaW5nPk5TUnVuTG9vcDwvc3RyaW5nPg0K
LQkJPGtleT5fTXVsdGlwbGVJbnN0YW5jZXM8L2tleT4NCi0JCTx0cnVlLz4NCi0JCTxrZXk+RW52
aXJvbm1lbnRWYXJpYWJsZXM8L2tleT4NCi0JCTxkaWN0Pg0KLQkJCTxrZXk+RFlMRF9JTlNFUlRf
TElCUkFSSUVTPC9rZXk+DQotCQkJPHN0cmluZz4kKFdLX1hQQ19TRVJWSUNFX0lOU0VSVF9MSUJS
QVJJRVNfRElSKS9TZWNJdGVtU2hpbS5keWxpYjwvc3RyaW5nPg0KLQkJPC9kaWN0Pg0KLQk8L2Rp
Y3Q+DQotPC9kaWN0Pg0KLTwvcGxpc3Q+DQpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQ0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0JKHJl
dmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtNzUsOSArNzUsNyBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVODQogI2VuZGlmDQogICAgIG1f
ZGlza0NhY2hlRGlyZWN0b3J5ID0gcGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3Rvcnk7DQogDQot
I2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDExMDApDQogICAgIF9DRk5ldHdvcmtTZXRBVFNDb250ZXh0KHBh
cmFtZXRlcnMubmV0d29ya0FUU0NvbnRleHQuZ2V0KCkpOw0KLSNlbmRpZg0KIA0KICAgICBTZXNz
aW9uVHJhY2tlcjo6c2V0SWRlbnRpZmllckJhc2UocGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJ
ZGVudGlmaWVyKTsNCiANCkBAIC05Myw3ICs5MSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBs
YXRmb3JtSW5pdGlhbGl6ZU4NCiANCiAgICAgaW5pdGlhbGl6ZU5ldHdvcmtTZXR0aW5ncygpOw0K
IA0KLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxMTAwDQorI2lmIFBMQVRGT1JNKE1BQykNCiAgICAgc2V0U2hhcmVkSFRUUENvb2tpZVN0
b3JhZ2UocGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcik7DQogI2Vu
ZGlmDQogDQpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL2NvbS5hcHBs
ZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IuaW4NCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5z
Yi5pbgkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L21hYy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluCSh3b3JraW5nIGNvcHkp
DQpAQCAtMzIsNyArMzIsNiBAQA0KIChhbGxvdyBwcm9jZXNzLWluZm8tcGlkaW5mbykNCiAoYWxs
b3cgcHJvY2Vzcy1pbmZvLXNldGNvbnRyb2wgKHRhcmdldCBzZWxmKSkNCiANCi0jaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCiAoZGVueSBzeXNjdGwqKQ0KIChh
bGxvdyBzeXNjdGwtcmVhZA0KICAgICAoc3lzY3RsLW5hbWUNCkBAIC00Myw3ICs0Miw2IEBADQog
ICAgICAgICAidm0uZm9vdHByaW50X3N1c3BlbmQiKSkNCiANCiAoZGVueSBpb2tpdC1nZXQtcHJv
cGVydGllcykNCi0jZW5kaWYNCiANCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDEzMDANCiAoZGVueSBtYWNoLWxvb2t1cCAoeHBjLXNlcnZpY2UtbmFtZS1wcmVmaXgg
IiIpKQ0KQEAgLTE1MiwxMCArMTUwLDggQEANCiAjZW5kaWYNCiAgICAgKGdsb2JhbC1uYW1lICJj
b20uYXBwbGUuY29va2llZCIpDQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmbmV0d29y
ay5BdXRoQnJva2VyQWdlbnQiKQ0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTEwMA0KICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sc2QubWFwZGIiKQ0KICAg
ICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5uZXNlc3Npb25tYW5hZ2VyLmZsb3ctZGl2ZXJ0LXRv
a2VuIikNCi0jZW5kaWYNCiApDQogDQogOzsgU2VjdXJpdHkgZnJhbWV3b3JrDQpJbmRleDogU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaA0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgJKHJldmlzaW9uIDIxOTA0OCkN
CisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCSh3b3JraW5nIGNv
cHkpDQpAQCAtMTQzLDEwICsxNDMsNiBAQCBwdWJsaWM6DQogDQogICAgIENsaWVudCYgY2xpZW50
KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0NCiANCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwMTAwMA0KLSAgICB2b2lkIHNldFNo
b3VsZENsb3NlQ29ubmVjdGlvbk9uTWFjaEV4Y2VwdGlvbnMoKTsNCi0jZW5kaWYNCi0NCiAgICAg
dm9pZCBzZXRPbmx5U2VuZE1lc3NhZ2VzQXNEaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5
V2hlblByb2Nlc3NpbmdTdWNoQU1lc3NhZ2UoYm9vbCk7DQogICAgIHZvaWQgc2V0U2hvdWxkRXhp
dE9uU3luY01lc3NhZ2VTZW5kRmFpbHVyZShib29sIHNob3VsZEV4aXRPblN5bmNNZXNzYWdlU2Vu
ZEZhaWx1cmUpOw0KIA0KQEAgLTMzMiwxNCArMzI4LDYgQEAgcHJpdmF0ZToNCiAgICAgZGlzcGF0
Y2hfc291cmNlX3QgbV9yZWNlaXZlU291cmNlOw0KIA0KICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWFj
aE1lc3NhZ2U+IG1fcGVuZGluZ091dGdvaW5nTWFjaE1lc3NhZ2U7DQotI2lmIFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDEwMDANCi0gICAgdm9p
ZCBleGNlcHRpb25Tb3VyY2VFdmVudEhhbmRsZXIoKTsNCi0NCi0gICAgLy8gSWYgc2V0U2hvdWxk
Q2xvc2VDb25uZWN0aW9uT25NYWNoRXhjZXB0aW9ucyBoYXMgYmVlbiBjYWxsZWQsIHRoaXMgaGFz
DQotICAgIC8vIHRoZSBleGNlcHRpb24gcG9ydCB0aGF0IGV4Y2VwdGlvbnMgZnJvbSB0aGUgb3Ro
ZXIgZW5kIHdpbGwgYmUgc2VudCBvbi4NCi0gICAgbWFjaF9wb3J0X3QgbV9leGNlcHRpb25Qb3J0
Ow0KLSAgICBkaXNwYXRjaF9zb3VyY2VfdCBtX2V4Y2VwdGlvblBvcnREYXRhQXZhaWxhYmxlU291
cmNlOw0KLSNlbmRpZg0KIA0KICAgICBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBtX3hw
Y0Nvbm5lY3Rpb247DQogI2VuZGlmDQpJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBD
L21hYy9Db25uZWN0aW9uTWFjLm1tDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCSh3b3JraW5nIGNv
cHkpDQpAQCAtMTQ0LDE1ICsxNDQsNiBAQCB2b2lkIENvbm5lY3Rpb246OnBsYXRmb3JtSW52YWxp
ZGF0ZSgpDQogICAgIGRpc3BhdGNoX3JlbGVhc2UobV9yZWNlaXZlU291cmNlKTsNCiAgICAgbV9y
ZWNlaXZlU291cmNlID0gbnVsbHB0cjsNCiAgICAgbV9yZWNlaXZlUG9ydCA9IE1BQ0hfUE9SVF9O
VUxMOw0KLQ0KLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPD0gMTAxMDAwDQotICAgIGlmIChtX2V4Y2VwdGlvblBvcnQpIHsNCi0gICAgICAgIGRp
c3BhdGNoX3NvdXJjZV9jYW5jZWwobV9leGNlcHRpb25Qb3J0RGF0YUF2YWlsYWJsZVNvdXJjZSk7
DQotICAgICAgICBkaXNwYXRjaF9yZWxlYXNlKG1fZXhjZXB0aW9uUG9ydERhdGFBdmFpbGFibGVT
b3VyY2UpOw0KLSAgICAgICAgbV9leGNlcHRpb25Qb3J0RGF0YUF2YWlsYWJsZVNvdXJjZSA9IDA7
DQotICAgICAgICBtX2V4Y2VwdGlvblBvcnQgPSBNQUNIX1BPUlRfTlVMTDsNCi0gICAgfQ0KLSNl
bmRpZg0KIH0NCiAgICAgDQogdm9pZCBDb25uZWN0aW9uOjp0ZXJtaW5hdGVTb29uKFNlY29uZHMg
aW50ZXJ2YWwpDQpAQCAtMTYzLDExICsxNTQsNiBAQCB2b2lkIENvbm5lY3Rpb246OnRlcm1pbmF0
ZVNvb24oU2Vjb25kcyBpDQogICAgIA0KIHZvaWQgQ29ubmVjdGlvbjo6cGxhdGZvcm1Jbml0aWFs
aXplKElkZW50aWZpZXIgaWRlbnRpZmllcikNCiB7DQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDEwMDANCi0gICAgbV9leGNlcHRpb25Q
b3J0ID0gTUFDSF9QT1JUX05VTEw7DQotICAgIG1fZXhjZXB0aW9uUG9ydERhdGFBdmFpbGFibGVT
b3VyY2UgPSBudWxscHRyOw0KLSNlbmRpZg0KLQ0KICAgICBpZiAobV9pc1NlcnZlcikgew0KICAg
ICAgICAgbV9yZWNlaXZlUG9ydCA9IGlkZW50aWZpZXIucG9ydDsNCiAgICAgICAgIG1fc2VuZFBv
cnQgPSBNQUNIX1BPUlRfTlVMTDsNCkBAIC0yMjUsMzMgKzIxMSwxMiBAQCBib29sIENvbm5lY3Rp
b246Om9wZW4oKQ0KICAgICAgICAgbWFjaF9wb3J0X21vZF9yZWZzKG1hY2hfdGFza19zZWxmKCks
IHJlY2VpdmVQb3J0LCBNQUNIX1BPUlRfUklHSFRfUkVDRUlWRSwgLTEpOw0KICAgICB9KTsNCiAN
Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9
IDEwMTAwMA0KLSAgICBpZiAobV9leGNlcHRpb25Qb3J0KSB7DQotICAgICAgICBtX2V4Y2VwdGlv
blBvcnREYXRhQXZhaWxhYmxlU291cmNlID0gZGlzcGF0Y2hfc291cmNlX2NyZWF0ZShESVNQQVRD
SF9TT1VSQ0VfVFlQRV9NQUNIX1JFQ1YsIG1fZXhjZXB0aW9uUG9ydCwgMCwgbV9jb25uZWN0aW9u
UXVldWUtPmRpc3BhdGNoUXVldWUoKSk7DQotICAgICAgICBkaXNwYXRjaF9zb3VyY2Vfc2V0X2V2
ZW50X2hhbmRsZXIobV9leGNlcHRpb25Qb3J0RGF0YUF2YWlsYWJsZVNvdXJjZSwgW2Nvbm5lY3Rp
b25dIHsNCi0gICAgICAgICAgICBjb25uZWN0aW9uLT5leGNlcHRpb25Tb3VyY2VFdmVudEhhbmRs
ZXIoKTsNCi0gICAgICAgIH0pOw0KLSAgICAgICAgZGlzcGF0Y2hfc291cmNlX3NldF9jYW5jZWxf
aGFuZGxlcihtX2V4Y2VwdGlvblBvcnREYXRhQXZhaWxhYmxlU291cmNlLCBbY29ubmVjdGlvbiwg
ZXhjZXB0aW9uUG9ydCA9IG1fZXhjZXB0aW9uUG9ydF0gew0KLSAgICAgICAgICAgIG1hY2hfcG9y
dF9tb2RfcmVmcyhtYWNoX3Rhc2tfc2VsZigpLCBleGNlcHRpb25Qb3J0LCBNQUNIX1BPUlRfUklH
SFRfUkVDRUlWRSwgLTEpOw0KLSAgICAgICAgfSk7DQotDQotICAgICAgICBhdXRvIGVuY29kZXIg
PSBzdGQ6Om1ha2VfdW5pcXVlPEVuY29kZXI+KCJJUEMiLCAiU2V0RXhjZXB0aW9uUG9ydCIsIDAp
Ow0KLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKE1hY2hQb3J0KG1fZXhjZXB0aW9uUG9ydCwgTUFD
SF9NU0dfVFlQRV9NQUtFX1NFTkQpKTsNCi0NCi0gICAgICAgIHNlbmRNZXNzYWdlKFdURk1vdmUo
ZW5jb2RlciksIHsgfSk7DQotICAgIH0NCi0jZW5kaWYNCi0NCiAgICAgcmVmKCk7DQogICAgIGRp
c3BhdGNoX2FzeW5jKG1fY29ubmVjdGlvblF1ZXVlLT5kaXNwYXRjaFF1ZXVlKCksIF57DQogICAg
ICAgICBkaXNwYXRjaF9yZXN1bWUobV9yZWNlaXZlU291cmNlKTsNCiANCiAgICAgICAgIGlmICht
X3NlbmRTb3VyY2UpDQogICAgICAgICAgICAgZGlzcGF0Y2hfcmVzdW1lKG1fc2VuZFNvdXJjZSk7
DQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8
PSAxMDEwMDANCi0gICAgICAgIGlmIChtX2V4Y2VwdGlvblBvcnREYXRhQXZhaWxhYmxlU291cmNl
KQ0KLSAgICAgICAgICAgIGRpc3BhdGNoX3Jlc3VtZShtX2V4Y2VwdGlvblBvcnREYXRhQXZhaWxh
YmxlU291cmNlKTsNCi0jZW5kaWYNCiANCiAgICAgICAgIGRlcmVmKCk7DQogICAgIH0pOw0KQEAg
LTU5Miw1MSArNTU3LDYgQEAgdm9pZCBDb25uZWN0aW9uOjpyZWNlaXZlU291cmNlRXZlbnRIYW5k
bA0KICAgICBwcm9jZXNzSW5jb21pbmdNZXNzYWdlKFdURk1vdmUoZGVjb2RlcikpOw0KIH0gICAg
DQogDQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA8PSAxMDEwMDANCi12b2lkIENvbm5lY3Rpb246OmV4Y2VwdGlvblNvdXJjZUV2ZW50SGFuZGxl
cigpDQotew0KLSAgICBSZWNlaXZlQnVmZmVyIGJ1ZmZlcjsNCi0NCi0gICAgbWFjaF9tc2dfaGVh
ZGVyX3QqIGhlYWRlciA9IHJlYWRGcm9tTWFjaFBvcnQobV9leGNlcHRpb25Qb3J0LCBidWZmZXIp
Ow0KLSAgICBpZiAoIWhlYWRlcikNCi0gICAgICAgIHJldHVybjsNCi0NCi0gICAgLy8gV2UndmUg
cmVhZCB0aGUgZXhjZXB0aW9uIG1lc3NhZ2UuIE5vdyBzZW5kIGl0IG9uIHRvIHRoZSByZWFsIGV4
Y2VwdGlvbiBwb3J0Lg0KLQ0KLSAgICAvLyBUaGUgcmVtb3RlIHBvcnQgc2hvdWxkIGhhdmUgYSBz
ZW5kIG9uY2UgcmlnaHQuDQotICAgIEFTU0VSVChNQUNIX01TR0hfQklUU19SRU1PVEUoaGVhZGVy
LT5tc2doX2JpdHMpID09IE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EX09OQ0UpOw0KLQ0KLSAgICAv
LyBOb3cgZ2V0IHRoZSByZWFsIGV4Y2VwdGlvbiBwb3J0Lg0KLSAgICBtYWNoX3BvcnRfdCBleGNl
cHRpb25Qb3J0ID0gbWFjaEV4Y2VwdGlvblBvcnQoKTsNCi0NCi0gICAgLy8gRmlyc3QsIGdldCB0
aGUgY29tcGxleCBiaXQgZnJvbSB0aGUgc291cmNlIG1lc3NhZ2UuDQotICAgIG1hY2hfbXNnX2Jp
dHNfdCBtZXNzYWdlQml0cyA9IGhlYWRlci0+bXNnaF9iaXRzICYgTUFDSF9NU0dIX0JJVFNfQ09N
UExFWDsNCi0gICAgbWVzc2FnZUJpdHMgfD0gTUFDSF9NU0dIX0JJVFMoTUFDSF9NU0dfVFlQRV9D
T1BZX1NFTkQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EX09OQ0UpOw0KLQ0KLSAgICBoZWFkZXIt
Pm1zZ2hfYml0cyA9IG1lc3NhZ2VCaXRzOw0KLSAgICBoZWFkZXItPm1zZ2hfbG9jYWxfcG9ydCA9
IGhlYWRlci0+bXNnaF9yZW1vdGVfcG9ydDsNCi0gICAgaGVhZGVyLT5tc2doX3JlbW90ZV9wb3J0
ID0gZXhjZXB0aW9uUG9ydDsNCi0NCi0gICAgLy8gTm93IHNlbmQgYWxvbmcgdGhlIG1lc3NhZ2Uu
DQotICAgIGtlcm5fcmV0dXJuX3Qga3IgPSBtYWNoX21zZyhoZWFkZXIsIE1BQ0hfU0VORF9NU0cs
IGhlYWRlci0+bXNnaF9zaXplLCAwLCBNQUNIX1BPUlRfTlVMTCwgTUFDSF9NU0dfVElNRU9VVF9O
T05FLCBNQUNIX1BPUlRfTlVMTCk7DQotICAgIGlmIChrciAhPSBLRVJOX1NVQ0NFU1MpDQotICAg
ICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBzZW5kIG1lc3NhZ2UgdG8gcmVhbCBleGNlcHRpb24g
cG9ydC4gJXMgKCV4KSIsIG1hY2hfZXJyb3Jfc3RyaW5nKGtyKSwga3IpOw0KLQ0KLSAgICBjb25u
ZWN0aW9uRGlkQ2xvc2UoKTsNCi19DQotDQotdm9pZCBDb25uZWN0aW9uOjpzZXRTaG91bGRDbG9z
ZUNvbm5lY3Rpb25Pbk1hY2hFeGNlcHRpb25zKCkNCi17DQotICAgIEFTU0VSVChtX2V4Y2VwdGlv
blBvcnQgPT0gTUFDSF9QT1JUX05VTEwpOw0KLQ0KLSAgICBpZiAobWFjaF9wb3J0X2FsbG9jYXRl
KG1hY2hfdGFza19zZWxmKCksIE1BQ0hfUE9SVF9SSUdIVF9SRUNFSVZFLCAmbV9leGNlcHRpb25Q
b3J0KSAhPSBLRVJOX1NVQ0NFU1MpDQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsNCi0N
Ci0gICAgaWYgKG1hY2hfcG9ydF9pbnNlcnRfcmlnaHQobWFjaF90YXNrX3NlbGYoKSwgbV9leGNl
cHRpb25Qb3J0LCBtX2V4Y2VwdGlvblBvcnQsIE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKSAhPSBL
RVJOX1NVQ0NFU1MpDQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsNCi19DQotI2VuZGlm
DQotDQogSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIENvbm5lY3Rpb246OmlkZW50aWZpZXIo
KSBjb25zdA0KIHsNCiAgICAgcmV0dXJuIElkZW50aWZpZXIobV9pc1NlcnZlciA/IG1fcmVjZWl2
ZVBvcnQgOiBtX3NlbmRQb3J0LCBtX3hwY0Nvbm5lY3Rpb24pOw0KSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250ZXh0LmgNCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBT
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5oCShyZXZpc2lv
biAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0Nv
bnRleHQuaAkod29ya2luZyBjb3B5KQ0KQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOg0KICAgICB2
b2lkIHNldENvbG9yU3BhY2UoQ0dDb2xvclNwYWNlUmVmKTsNCiAgICAgQ0dDb2xvclNwYWNlUmVm
IGNvbG9yU3BhY2UoKSBjb25zdDsNCiANCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KKyNpZiBQTEFURk9STShNQUMpDQogICAg
IHZvaWQgc2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudChib29sKTsNCiAgICAgYm9vbCBjb2xv
ck1hdGNoVW50YWdnZWRDb250ZW50KCkgY29uc3Q7DQogI2VuZGlmDQpJbmRleDogU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQubW0NCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbQkocmV2
aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3Rp
bmdDb250ZXh0Lm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtMTAyLDcgKzEwMiw3IEBAIENHQ29sb3JT
cGFjZVJlZiBMYXllckhvc3RpbmdDb250ZXh0Ojpjb2wNCiAgICAgcmV0dXJuIFttX2NvbnRleHQg
Y29sb3JTcGFjZV07DQogfQ0KIA0KLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwDQorI2lmIFBMQVRGT1JNKE1BQykNCiB2b2lkIExh
eWVySG9zdGluZ0NvbnRleHQ6OnNldENvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnQoYm9vbCBjb2xv
ck1hdGNoVW50YWdnZWRDb250ZW50KQ0KIHsNCiAgICAgW21fY29udGV4dCBzZXRDb2xvck1hdGNo
VW50YWdnZWRDb250ZW50OmNvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnRdOw0KQEAgLTExNCw3ICsx
MTQsNiBAQCBib29sIExheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0Y2hVbnRhDQogfQ0KICNl
bmRpZg0KIA0KLSNpZiBIQVZFKENPUkVBTklNQVRJT05fRkVOQ0VTKQ0KIHZvaWQgTGF5ZXJIb3N0
aW5nQ29udGV4dDo6c2V0RmVuY2VQb3J0KG1hY2hfcG9ydF90IGZlbmNlUG9ydCkNCiB7DQogICAg
IFttX2NvbnRleHQgc2V0RmVuY2VQb3J0OmZlbmNlUG9ydF07DQpAQCAtMTI0LDE5ICsxMjMsNSBA
QCBNYWNoU2VuZFJpZ2h0IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0DQogew0KICAgICByZXR1
cm4gTWFjaFNlbmRSaWdodDo6YWRvcHQoW21fY29udGV4dCBjcmVhdGVGZW5jZVBvcnRdKTsNCiB9
DQotI2Vsc2UNCi1OT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIExheWVySG9zdGluZ0NvbnRl
eHQ6OnNldEZlbmNlUG9ydChtYWNoX3BvcnRfdCBmZW5jZVBvcnQpDQotew0KLSAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsNCi19DQotDQotTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgTWFjaFNlbmRS
aWdodCBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGZW5jZVBvcnQoKQ0KLXsNCi0gICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7DQotI2lmIEFTU0VSVF9ESVNBQkxFRA0KLSAgICByZXR1cm4gTWFj
aFNlbmRSaWdodCgpOw0KLSNlbmRpZg0KLX0NCi0jZW5kaWYNCiANCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQNCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZS4zMi02NC0xMC45LTEwLjEwLkluZm8ucGxpc3QNCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZS4zMi02NC0xMC45LTEwLjEwLkluZm8ucGxpc3QJKHJl
dmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9p
bnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZS4zMi02NC0xMC45LTEwLjEwLkluZm8ucGxp
c3QJKG5vbmV4aXN0ZW50KQ0KQEAgLTEsNTggKzAsMCBAQA0KLTw/eG1sIHZlcnNpb249IjEuMCIg
ZW5jb2Rpbmc9IlVURi04Ij8+DQotPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RU
RCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3Qt
MS4wLmR0ZCI+DQotPHBsaXN0IHZlcnNpb249IjEuMCI+DQotPGRpY3Q+DQotCTxrZXk+Q0ZCdW5k
bGVHZXRJbmZvU3RyaW5nPC9rZXk+DQotCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn0sIENvcHly
aWdodCAyMDAzLTIwMTcgQXBwbGUgSW5jLjwvc3RyaW5nPg0KLQk8a2V5PkNGQnVuZGxlRGV2ZWxv
cG1lbnRSZWdpb248L2tleT4NCi0JPHN0cmluZz5FbmdsaXNoPC9zdHJpbmc+DQotCTxrZXk+Q0ZC
dW5kbGVFeGVjdXRhYmxlPC9rZXk+DQotCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJp
bmc+DQotCTxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+DQotCTxzdHJpbmc+JHtQUk9EVUNU
X0JVTkRMRV9JREVOVElGSUVSfTwvc3RyaW5nPg0KLQk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25h
cnlWZXJzaW9uPC9rZXk+DQotCTxzdHJpbmc+Ni4wPC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5kbGVO
YW1lPC9rZXk+DQotCTxzdHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+DQotCTxrZXk+Q0ZC
dW5kbGVQYWNrYWdlVHlwZTwva2V5Pg0KLQk8c3RyaW5nPlhQQyE8L3N0cmluZz4NCi0JPGtleT5D
RkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5Pg0KLQk8c3RyaW5nPiR7U0hPUlRfVkVSU0lP
Tl9TVFJJTkd9PC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5kbGVTaWduYXR1cmU8L2tleT4NCi0JPHN0
cmluZz4/Pz8/PC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+DQotCTxzdHJp
bmc+JHtCVU5ETEVfVkVSU0lPTn08L3N0cmluZz4NCi0JPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5h
YmxlZDwva2V5Pg0KLQk8dHJ1ZS8+DQotCTxrZXk+TlNQcmluY2lwYWxDbGFzczwva2V5Pg0KLQk8
c3RyaW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4NCi0JPGtleT5XZWJLaXRFbnRyeVBvaW50PC9r
ZXk+DQotCTxzdHJpbmc+UGx1Z2luU2VydmljZUluaXRpYWxpemVyPC9zdHJpbmc+DQotCTxrZXk+
TFNVSUVsZW1lbnQ8L2tleT4NCi0JPHRydWUvPg0KLQk8a2V5Pk5TU3VwcG9ydHNBdXRvbWF0aWNH
cmFwaGljc1N3aXRjaGluZzwva2V5Pg0KLQk8dHJ1ZS8+DQotCTxrZXk+TlNTdXBwb3J0c0FwcE5h
cDwva2V5Pg0KLQk8dHJ1ZS8+DQotCTxrZXk+WFBDU2VydmljZTwva2V5Pg0KLQk8ZGljdD4NCi0J
CTxrZXk+U2VydmljZVR5cGU8L2tleT4NCi0JCTxzdHJpbmc+QXBwbGljYXRpb248L3N0cmluZz4N
Ci0JCTxrZXk+UnVuTG9vcFR5cGU8L2tleT4NCi0JCTxzdHJpbmc+X05TQXBwbGljYXRpb25NYWlu
PC9zdHJpbmc+DQotCQk8a2V5PkpvaW5FeGlzdGluZ1Nlc3Npb248L2tleT4NCi0JCTx0cnVlLz4N
Ci0JCTxrZXk+X011bHRpcGxlSW5zdGFuY2VzPC9rZXk+DQotCQk8dHJ1ZS8+DQotCQk8a2V5Pl9B
YmFuZG9uQ29hbGl0aW9uPC9rZXk+DQotCQk8dHJ1ZS8+DQotCQk8a2V5PkVudmlyb25tZW50VmFy
aWFibGVzPC9rZXk+DQotCQk8ZGljdD4NCi0JCQk8a2V5PkRZTERfSU5TRVJUX0xJQlJBUklFUzwv
a2V5Pg0KLQkJCTxzdHJpbmc+JChXS19YUENfU0VSVklDRV9JTlNFUlRfTElCUkFSSUVTX0RJUikv
UGx1Z2luUHJvY2Vzc1NoaW0uZHlsaWI8L3N0cmluZz4NCi0JCQk8a2V5Pk5TU3RyaW5nRGlzYWJs
ZVRhZ2dlZDwva2V5Pg0KLQkJCTxzdHJpbmc+WUVTPC9zdHJpbmc+DQotCQk8L2RpY3Q+DQotCTwv
ZGljdD4NCi08L2RpY3Q+DQotPC9wbGlzdD4NCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0NCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBT
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMu
bW0JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21h
Yy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0JKHdvcmtpbmcgY29weSkNCkBAIC0xMzUsMTAg
KzEzNSw4IEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5Ojp1cGRhdGVMYXllckgNCiAjZW5k
aWYNCiAgICAgfQ0KIA0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTEwMA0KICAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldENvbG9yU3BhY2Uoc1JHQkNvbG9y
U3BhY2VSZWYoKSk7DQogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Q29sb3JNYXRjaFVu
dGFnZ2VkQ29udGVudCh0cnVlKTsNCi0jZW5kaWYNCiANCiAgICAgbV9sYXllckhvc3RpbmdDb250
ZXh0LT5zZXRSb290TGF5ZXIocGxhdGZvcm1MYXllcik7DQogfQ0KSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NTaGltLm1tDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0J
KHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9Q
bHVnaW5Qcm9jZXNzU2hpbS5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTExMiw5ICsxMTIsNiBAQCBz
aGltTFNPcGVuQ0ZVUkxSZWYoQ0ZVUkxSZWYgdXJsLCBDRlVSTFJlDQogICAgIHJldHVybiBMU09w
ZW5DRlVSTFJlZih1cmwsIGxhdW5jaGVkVVJMKTsNCiB9DQogDQotI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPCAxMDExMDANCi1TVVBQUkVTU19BU0FODQotI2VuZGlmDQogc3Rh
dGljIGtlcm5fcmV0dXJuX3Qgc2hpbU1hY2hWTU1hcCh2bV9tYXBfdCB0YXNrLCBtYWNoX3ZtX2Fk
ZHJlc3NfdCAqYWRkcmVzcywgbWFjaF92bV9zaXplX3Qgc2l6ZSwgbWFjaF92bV9vZmZzZXRfdCBt
YXNrLCBpbnQgZmxhZ3MsIG1lbV9lbnRyeV9uYW1lX3BvcnRfdCBvYmplY3QsIG1lbW9yeV9vYmpl
Y3Rfb2Zmc2V0X3Qgb2Zmc2V0LCBib29sZWFuX3QgY29weSwgdm1fcHJvdF90IGN1cnJlbnRQcm90
ZWN0aW9uLCB2bV9wcm90X3QgbWF4UHJvdGVjdGlvbiwgdm1faW5oZXJpdF90IGluaGVyaXRhbmNl
KQ0KIHsNCiAgICAgaWYgKHRhc2sgPT0gbWFjaF90YXNrX3NlbGYoKSkgew0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQucGx1Z2luLWNvbW1v
bi5zYi5pbg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFj
L2NvbS5hcHBsZS5XZWJLaXQucGx1Z2luLWNvbW1vbi5zYi5pbgkocmV2aXNpb24gMjE5MDQ4KQ0K
KysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQucGx1
Z2luLWNvbW1vbi5zYi5pbgkod29ya2luZyBjb3B5KQ0KQEAgLTMyLDcgKzMyLDYgQEANCiAoYWxs
b3cgcHJvY2Vzcy1pbmZvLXBpZGluZm8pDQogKGFsbG93IHByb2Nlc3MtaW5mby1zZXRjb250cm9s
ICh0YXJnZXQgc2VsZikpDQogDQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxMTAwDQogKGRlbnkgc3lzY3RsKikNCiAoYWxsb3cgc3lzY3RsLXJlYWQNCiAgICAgKHN5
c2N0bC1uYW1lDQpAQCAtMTIyLDcgKzEyMSw2IEBADQogICAgIChpb2tpdC1wcm9wZXJ0eSAic3Rh
cnR1cC10aW1pbmciKQ0KICAgICAoaW9raXQtcHJvcGVydHkgInRvdWNoLXNpemUtaWQiKQ0KICkN
Ci0jZW5kaWYNCiANCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEz
MDANCiAoZGVueSBtYWNoLWxvb2t1cCAoeHBjLXNlcnZpY2UtbmFtZS1wcmVmaXggIiIpKQ0KQEAg
LTM1MSw5ICszNDksNiBAQA0KICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTMwMA0KICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hbmFseXRpY3NkIikNCiAjZW5k
aWYNCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTEwMA0KLSAgICAo
Z2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hdWRpby5WRENBc3Npc3RhbnQiKQ0KLSNlbmRpZg0KICAg
ICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hdWRpby5hdWRpb2hhbGQiKQ0KICAgICAoZ2xvYmFs
LW5hbWUgImNvbS5hcHBsZS5hdWRpby5jb3JlYXVkaW9kIikNCiAgICAgKGdsb2JhbC1uYW1lICJj
b20uYXBwbGUuY2ZuZXR3b3JrLkF1dGhCcm9rZXJBZ2VudCIpDQpAQCAtMzYxLDkgKzM1Niw3IEBA
DQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNvb2tpZWQiKSA7OyBGSVhNRTogPHJkYXI6
Ly9wcm9ibGVtLzEwNzkwNzY4PiBMaW1pdCBhY2Nlc3MgdG8gY29va2llcy4NCiAgICAgKGdsb2Jh
bC1uYW1lICJjb20uYXBwbGUuY29yZXNlcnZpY2VzLmxhdW5jaHNlcnZpY2VzZCIpDQogICAgIChn
bG9iYWwtbmFtZSAiY29tLmFwcGxlLmZvbnRzIikNCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDExMDANCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubHNkLm1h
cGRiIikNCi0jZW5kaWYNCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUub2NzcGQiKQ0KICAg
ICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5wYXN0ZWJvYXJkLjEiKQ0KICAgICAoZ2xvYmFsLW5h
bWUgImNvbS5hcHBsZS5wYnMuZmV0Y2hfc2VydmljZXMiKQ0KSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9DaGlsZFByb2Nlc3MuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9DaGlsZFByb2Nlc3MuaAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9DaGlsZFByb2Nlc3MuaAkod29ya2luZyBjb3B5KQ0KQEAgLTg4LDcgKzg4LDcgQEAg
cHJvdGVjdGVkOg0KICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hp
bGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0aW9u
UGFyYW1ldGVycyYpOw0KICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBD
OjpDb25uZWN0aW9uKik7DQogDQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCisjaWYgUExBVEZPUk0oTUFDKQ0KICAgICBzdGF0
aWMgdm9pZCBzZXRTaGFyZWRIVFRQQ29va2llU3RvcmFnZShjb25zdCBWZWN0b3I8dWludDhfdD4m
IGlkZW50aWZpZXIpOw0KICNlbmRpZg0KIA0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24g
MjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZA0KICAgICBlbmNvZGVyIDw8IG1lZGlhQ2FjaGVE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7DQogICAgIGVuY29kZXIgPDwgamF2YVNjcmlwdENvbmZp
Z3VyYXRpb25EaXJlY3Rvcnk7DQogICAgIGVuY29kZXIgPDwgamF2YVNjcmlwdENvbmZpZ3VyYXRp
b25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7DQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCisjaWYgUExBVEZPUk0oTUFDKQ0K
ICAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyOw0KICNlbmRp
Zg0KICNpZiBQTEFURk9STShJT1MpDQpAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QNCiAgICAgZW5jb2RlciA8PCBwbHVnaW5Mb2FkQ2xp
ZW50UG9saWNpZXM7DQogI2VuZGlmDQogDQotI2lmIFRBUkdFVF9PU19JUEhPTkUgfHwgKFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApDQor
I2lmIFBMQVRGT1JNKENPQ09BKQ0KICAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBuZXR3b3JrQVRT
Q29udGV4dC5nZXQoKSk7DQogI2VuZGlmDQogDQpAQCAtMTc0LDcgKzE3NCw3IEBAIGJvb2wgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QNCiAgICAgICAgIHJldHVybiBmYWxzZTsN
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmphdmFTY3JpcHRDb25maWd1cmF0
aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkNCiAgICAgICAgIHJldHVybiBmYWxzZTsNCi0j
aWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTEwMA0KKyNpZiBQTEFURk9STShNQUMpDQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcikpDQogICAgICAgICByZXR1cm4g
ZmFsc2U7DQogI2VuZGlmDQpAQCAtMzAzLDcgKzMwMyw3IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZGVjb2QNCiAgICAgICAgIHJldHVybiBmYWxzZTsNCiAjZW5kaWYNCiAN
Ci0jaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkNCisjaWYgUExBVEZPUk0oQ09DT0EpDQogICAg
IGlmICghSVBDOjpkZWNvZGUoZGVjb2RlciwgcGFyYW1ldGVycy5uZXR3b3JrQVRTQ29udGV4dCkp
DQogICAgICAgICByZXR1cm4gZmFsc2U7DQogI2VuZGlmDQpJbmRleDogU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaA0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlz
aW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpDQpAQCAtNzgsNyArNzgsNyBAQCBzdHJ1Y3QgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7DQogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBtZWRpYUNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOw0KICAgICBTdHJpbmcgamF2YVNj
cmlwdENvbmZpZ3VyYXRpb25EaXJlY3Rvcnk7DQogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsNCi0jaWYg
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEw
MA0KKyNpZiBQTEFURk9STShNQUMpDQogICAgIFZlY3Rvcjx1aW50OF90PiB1aVByb2Nlc3NDb29r
aWVTdG9yYWdlSWRlbnRpZmllcjsNCiAjZW5kaWYNCiAjaWYgUExBVEZPUk0oSU9TKQ0KQEAgLTE2
MSw3ICsxNjEsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7DQogICAg
IEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIHVpbnQ4X3Q+
Pj4gcGx1Z2luTG9hZENsaWVudFBvbGljaWVzOw0KICNlbmRpZg0KIA0KLSNpZiBUQVJHRVRfT1Nf
SVBIT05FIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMTAwKQ0KKyNpZiBQTEFURk9STShDT0NPQSkNCiAgICAgUmV0YWluUHRyPENGRGF0
YVJlZj4gbmV0d29ya0FUU0NvbnRleHQ7DQogI2VuZGlmDQogDQpJbmRleDogU291cmNlL1dlYktp
dDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHANCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3
b3JraW5nIGNvcHkpDQpAQCAtNDcsMTAgKzQ3LDggQEAgdm9pZCBQbHVnaW5Qcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjplbg0KICAgICBlbmNvZGVyIDw8IHRlcm1pbmF0aW9uVGltZW91dDsNCiAj
aWYgUExBVEZPUk0oQ09DT0EpDQogICAgIGVuY29kZXIgPDwgYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z1BvcnQ7DQotI2lmIFRBUkdFVF9PU19JUEhPTkUgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApDQogICAgIElQQzo6ZW5jb2RlKGVu
Y29kZXIsIG5ldHdvcmtBVFNDb250ZXh0LmdldCgpKTsNCiAjZW5kaWYNCi0jZW5kaWYNCiAjaWYg
T1MoTElOVVgpDQogICAgIGVuY29kZXIgPDwgbWVtb3J5UHJlc3N1cmVNb25pdG9ySGFuZGxlOw0K
ICNlbmRpZg0KQEAgLTY5LDExICs2Nyw5IEBAIGJvb2wgUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZGUNCiAjaWYgUExBVEZPUk0oQ09DT0EpDQogICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdQb3J0KSkNCiAgICAgICAgIHJldHVybiBm
YWxzZTsNCi0jaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkNCiAgICAgaWYgKCFJUEM6OmRlY29k
ZShkZWNvZGVyLCByZXN1bHQubmV0d29ya0FUU0NvbnRleHQpKQ0KICAgICAgICAgcmV0dXJuIGZh
bHNlOw0KICNlbmRpZg0KLSNlbmRpZg0KICNpZiBPUyhMSU5VWCkNCiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQubWVtb3J5UHJlc3N1cmVNb25pdG9ySGFuZGxlKSkNCiAgICAgICAgIHJl
dHVybiBmYWxzZTsNCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlz
aW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkNCkBAIC01NywxMCArNTcsOCBA
QCBzdHJ1Y3QgUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7DQogDQogI2lmIFBMQVRG
T1JNKENPQ09BKQ0KICAgICBXZWJDb3JlOjpNYWNoU2VuZFJpZ2h0IGFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdQb3J0Ow0KLSNpZiBUQVJHRVRfT1NfSVBIT05FIHx8IChQTEFURk9STShNQUMpICYmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKQ0KICAgICBSZXRhaW5QdHI8
Q0ZEYXRhUmVmPiBuZXR3b3JrQVRTQ29udGV4dDsNCiAjZW5kaWYNCi0jZW5kaWYNCiAjaWYgT1Mo
TElOVVgpDQogICAgIElQQzo6QXR0YWNobWVudCBtZW1vcnlQcmVzc3VyZU1vbml0b3JIYW5kbGU7
DQogI2VuZGlmDQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUv
bWFjL05ldHNjYXBlUGx1Z2luTW9kdWxlTWFjLm1tDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dl
YktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTW9kdWxlTWFj
Lm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMv
TmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTW9kdWxlTWFjLm1tCSh3b3JraW5nIGNvcHkpDQpA
QCAtNzgsNTAgKzc4LDkgQEAgc3RhdGljIGJvb2wgZ2V0UGx1Z2luQXJjaGl0ZWN0dXJlKENGQnVu
ZA0KICAgICByZXR1cm4gZmFsc2U7DQogfQ0KIA0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEIDw9IDEwMTAwMA0KLXN0YXRpYyBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBj
b250ZW50c09mUHJvcGVydHlMaXN0QXRVUkwoQ0ZVUkxSZWYgcHJvcGVydHlMaXN0VVJMKQ0KLXsN
Ci0gICAgUmV0YWluUHRyPE5TRGF0YT4gcHJvcGVydHlMaXN0RGF0YSA9IGFkb3B0TlMoW1tOU0Rh
dGEgYWxsb2NdIGluaXRXaXRoQ29udGVudHNPZlVSTDooTlNVUkwgKilwcm9wZXJ0eUxpc3RVUkxd
KTsNCi0gICAgaWYgKCFwcm9wZXJ0eUxpc3REYXRhKQ0KLSAgICAgICAgcmV0dXJuIDA7DQotDQot
ICAgIFJldGFpblB0cjxDRlByb3BlcnR5TGlzdFJlZj4gcHJvcGVydHlMaXN0ID0gYWRvcHRDRihD
RlByb3BlcnR5TGlzdENyZWF0ZVdpdGhEYXRhKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDRkRhdGFS
ZWYpcHJvcGVydHlMaXN0RGF0YS5nZXQoKSwga0NGUHJvcGVydHlMaXN0SW1tdXRhYmxlLCAwLCAw
KSk7DQotICAgIGlmICghcHJvcGVydHlMaXN0KQ0KLSAgICAgICAgcmV0dXJuIDA7DQotDQotICAg
IGlmIChDRkdldFR5cGVJRChwcm9wZXJ0eUxpc3QuZ2V0KCkpICE9IENGRGljdGlvbmFyeUdldFR5
cGVJRCgpKQ0KLSAgICAgICAgcmV0dXJuIDA7DQotDQotICAgIHJldHVybiBzdGF0aWNfY2FzdDxD
RkRpY3Rpb25hcnlSZWY+KHByb3BlcnR5TGlzdC5nZXQoKSk7DQotfQ0KLSNlbmRpZg0KLQ0KLXN0
YXRpYyBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBnZXRNSU1FVHlwZXNGcm9tUGx1Z2luQnVu
ZGxlKENGQnVuZGxlUmVmIGJ1bmRsZSwgY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luKQ0K
LXsNCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDEwMDANCi0gICAg
Q0ZTdHJpbmdSZWYgcHJvcGVydHlMaXN0RmlsZW5hbWUgPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1Jl
Zj4oQ0ZCdW5kbGVHZXRWYWx1ZUZvckluZm9EaWN0aW9uYXJ5S2V5KGJ1bmRsZSwgQ0ZTVFIoIldl
YlBsdWdpbk1JTUVUeXBlc0ZpbGVuYW1lIikpKTsNCi0gICAgaWYgKHByb3BlcnR5TGlzdEZpbGVu
YW1lKSB7DQotICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHByb3BlcnR5TGlzdFBhdGgg
PSBhZG9wdENGKENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdChrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAw
LCBDRlNUUigiJUAvTGlicmFyeS9QcmVmZXJlbmNlcy8lQCIpLCBOU0hvbWVEaXJlY3RvcnkoKSwg
cHJvcGVydHlMaXN0RmlsZW5hbWUpKTsNCi0gICAgICAgIFJldGFpblB0cjxDRlVSTFJlZj4gcHJv
cGVydHlMaXN0VVJMID0gYWRvcHRDRihDRlVSTENyZWF0ZVdpdGhGaWxlU3lzdGVtUGF0aChrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBwcm9wZXJ0eUxpc3RQYXRoLmdldCgpLCBrQ0ZVUkxQT1NJWFBhdGhT
dHlsZSwgRkFMU0UpKTsNCi0NCi0gICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IHBy
b3BlcnR5TGlzdCA9IGNvbnRlbnRzT2ZQcm9wZXJ0eUxpc3RBdFVSTChwcm9wZXJ0eUxpc3RVUkwu
Z2V0KCkpOw0KLQ0KLSAgICAgICAgaWYgKCFwcm9wZXJ0eUxpc3QgJiYgUGx1Z2luUHJvY2Vzc1By
b3h5OjpjcmVhdGVQcm9wZXJ0eUxpc3RGaWxlKHBsdWdpbikpDQotICAgICAgICAgICAgcHJvcGVy
dHlMaXN0ID0gY29udGVudHNPZlByb3BlcnR5TGlzdEF0VVJMKHByb3BlcnR5TGlzdFVSTC5nZXQo
KSk7DQotDQotICAgICAgICBpZiAoIXByb3BlcnR5TGlzdCkNCi0gICAgICAgICAgICByZXR1cm4g
MDsNCi0gICAgICAgIA0KLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENGRGljdGlvbmFyeVJl
Zj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUocHJvcGVydHlMaXN0LmdldCgpLCBDRlNUUigiV2ViUGx1
Z2luTUlNRVR5cGVzIikpKTsNCi0gICAgfQ0KLSNlbmRpZg0KLSAgICANCi0gICAgcmV0dXJuIHN0
YXRpY19jYXN0PENGRGljdGlvbmFyeVJlZj4oQ0ZCdW5kbGVHZXRWYWx1ZUZvckluZm9EaWN0aW9u
YXJ5S2V5KGJ1bmRsZSwgQ0ZTVFIoIldlYlBsdWdpbk1JTUVUeXBlcyIpKSk7DQotfQ0KLQ0KIHN0
YXRpYyBib29sIGdldFBsdWdpbkluZm9Gcm9tUHJvcGVydHlMaXN0cyhDRkJ1bmRsZVJlZiBidW5k
bGUsIFBsdWdpbk1vZHVsZUluZm8mIHBsdWdpbikNCiB7DQotICAgIFJldGFpblB0cjxDRkRpY3Rp
b25hcnlSZWY+IG1pbWVUeXBlcyA9IGdldE1JTUVUeXBlc0Zyb21QbHVnaW5CdW5kbGUoYnVuZGxl
LCBwbHVnaW4pOw0KKyAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBtaW1lVHlwZXMgPSBz
dGF0aWNfY2FzdDxDRkRpY3Rpb25hcnlSZWY+KENGQnVuZGxlR2V0VmFsdWVGb3JJbmZvRGljdGlv
bmFyeUtleShidW5kbGUsIENGU1RSKCJXZWJQbHVnaW5NSU1FVHlwZXMiKSkpOw0KICAgICBpZiAo
IW1pbWVUeXBlcyB8fCBDRkdldFR5cGVJRChtaW1lVHlwZXMuZ2V0KCkpICE9IENGRGljdGlvbmFy
eUdldFR5cGVJRCgpKQ0KICAgICAgICAgcmV0dXJuIGZhbHNlOw0KIA0KQEAgLTIwOSwxMiArMTY4
LDcgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbk1vZHVsZTo6Z2V0UGx1Z2luSW5mbw0KICAgICBSZXRh
aW5QdHI8Q0ZVUkxSZWY+IGJ1bmRsZVVSTCA9IGFkb3B0Q0YoQ0ZVUkxDcmVhdGVXaXRoRmlsZVN5
c3RlbVBhdGgoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGx1Z2luUGF0aC5jcmVhdGVDRlN0cmluZygp
LmdldCgpLCBrQ0ZVUkxQT1NJWFBhdGhTdHlsZSwgZmFsc2UpKTsNCiAgICAgDQogICAgIC8vIFRy
eSB0byBpbml0aWFsaXplIHRoZSBidW5kbGUuDQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMTAwDQogICAgIFJldGFpblB0cjxDRkJ1bmRsZVJlZj4gYnVuZGxlID0g
YWRvcHRDRihfQ0ZCdW5kbGVDcmVhdGVVbmlxdWUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVuZGxl
VVJMLmdldCgpKSk7DQotI2Vsc2UNCi0gICAgUmV0YWluUHRyPENGQnVuZGxlUmVmPiBidW5kbGUg
PSBhZG9wdENGKENGQnVuZGxlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1bmRsZVVSTC5n
ZXQoKSkpOw0KLSNlbmRpZg0KLQ0KICAgICBpZiAoIWJ1bmRsZSkNCiAgICAgICAgIHJldHVybiBm
YWxzZTsNCiAgICAgDQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nl
c3NNYWMubW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxk
UHJvY2Vzc01hYy5tbQkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtMTc3LDE1ICsxNzcs
MTIgQEAgdm9pZCBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbg0KICAgICB9DQog
fQ0KIA0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KIHZv
aWQgQ2hpbGRQcm9jZXNzOjpzZXRTaGFyZWRIVFRQQ29va2llU3RvcmFnZShjb25zdCBWZWN0b3I8
dWludDhfdD4mIGlkZW50aWZpZXIpDQogew0KICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBjb29r
aWVTdG9yYWdlRGF0YSA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IGlkZW50aWZpZXIuZGF0YSgpLCBpZGVudGlmaWVyLnNpemUoKSkpOw0KICAgICBSZXRhaW5QdHI8
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4gdWlQcm9jZXNzQ29va2llU3RvcmFnZSA9IGFkb3B0Q0Yo
Q0ZIVFRQQ29va2llU3RvcmFnZUNyZWF0ZUZyb21JZGVudGlmeWluZ0RhdGEoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgY29va2llU3RvcmFnZURhdGEuZ2V0KCkpKTsNCiAgICAgW05TSFRUUENvb2tpZVN0
b3JhZ2UgX3NldFNoYXJlZEhUVFBDb29raWVTdG9yYWdlOmFkb3B0TlMoW1tOU0hUVFBDb29raWVT
dG9yYWdlIGFsbG9jXSBfaW5pdFdpdGhDRkhUVFBDb29raWVTdG9yYWdlOnVpUHJvY2Vzc0Nvb2tp
ZVN0b3JhZ2UuZ2V0KCldKS5nZXQoKV07DQogfQ0KLSNlbmRpZg0KLQ0KIA0KICNpZiBVU0UoQVBQ
S0lUKQ0KIHZvaWQgQ2hpbGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKCkNCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNp
b24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94
eS5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0xNjksOSArMTY5LDYgQEAgdm9pZCBDaGlsZFByb2Nl
c3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaQ0KICAgICAgICAgcmV0dXJuOw0KIA0KICAgICBtX2Nv
bm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVj
dGlvbklkZW50aWZpZXIsICp0aGlzKTsNCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwMTAwMA0KLSAgICBtX2Nvbm5lY3Rpb24tPnNldFNo
b3VsZENsb3NlQ29ubmVjdGlvbk9uTWFjaEV4Y2VwdGlvbnMoKTsNCi0jZW5kaWYNCiANCiAgICAg
Y29ubmVjdGlvbldpbGxPcGVuKCptX2Nvbm5lY3Rpb24pOw0KICAgICBtX2Nvbm5lY3Rpb24tPm9w
ZW4oKTsNCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5o
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuaAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3
aW5nQXJlYVByb3h5LmgJKHdvcmtpbmcgY29weSkNCkBAIC03Miw4ICs3Miw2IEBAIHB1YmxpYzoN
CiAgICAgLy8gVGhlIHRpbWVvdXQgd2UgdXNlIHdoZW4gd2FpdGluZyBmb3IgYSBEaWRVcGRhdGVH
ZW9tZXRyeSBtZXNzYWdlLg0KICAgICBzdGF0aWMgY29uc3RleHByIFNlY29uZHMgZGlkVXBkYXRl
QmFja2luZ1N0b3JlU3RhdGVUaW1lb3V0KCkgeyByZXR1cm4gU2Vjb25kczo6ZnJvbU1pbGxpc2Vj
b25kcyg1MDApOyB9DQogDQotICAgIHZpcnR1YWwgdm9pZCB3YWl0Rm9yUG9zc2libGVHZW9tZXRy
eVVwZGF0ZShTZWNvbmRzID0gZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGVUaW1lb3V0KCkpIHsg
fQ0KLQ0KICAgICB2aXJ0dWFsIHZvaWQgY29sb3JTcGFjZURpZENoYW5nZSgpIHsgfQ0KICAgICB2
aXJ0dWFsIHZvaWQgbWluaW11bUxheW91dFNpemVEaWRDaGFuZ2UoKSB7IH0NCiANCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyMTkw
NDgpDQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtp
bmcgY29weSkNCkBAIC0xMjk0LDcgKzEyOTQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0VG9w
Q29udGVudEluc2V0KGZsDQogDQogICAgIGlmICghaXNWYWxpZCgpKQ0KICAgICAgICAgcmV0dXJu
Ow0KLSNpZiBIQVZFKENPUkVBTklNQVRJT05fRkVOQ0VTKQ0KKyNpZiBQTEFURk9STShDT0NPQSkN
CiAgICAgTWFjaFNlbmRSaWdodCBmZW5jZSA9IG1fZHJhd2luZ0FyZWEtPmNyZWF0ZUZlbmNlKCk7
DQogDQogICAgIGF1dG8gZmVuY2VBdHRhY2htZW50ID0gSVBDOjpBdHRhY2htZW50KGZlbmNlLmxl
YWtTZW5kUmlnaHQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpOw0KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAJKHJldmlzaW9uIDIxOTA0OCkNCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAkod29ya2luZyBjb3B5
KQ0KQEAgLTE0MDQsMTQwICsxNDA0LDYgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlUG9saWN5Q2xpZW50
KFdLUGFnZVJlZg0KICAgICB0b0ltcGwocGFnZVJlZiktPnNldFBvbGljeUNsaWVudChzdGQ6Om1h
a2VfdW5pcXVlPFBvbGljeUNsaWVudD4od2tDbGllbnQpKTsNCiB9DQogDQotI2lmIFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDEwMDANCi1zdGF0
aWMgdm9pZCBmaXhVcEJvdGNoZWRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0
IFdLUGFnZVVJQ2xpZW50QmFzZSYgd2tDbGllbnQpDQotew0KLSAgICBzdHJ1Y3QgQm90Y2hlZFdL
UGFnZVVJQ2xpZW50VjQgew0KLSAgICAgICAgV0tQYWdlVUlDbGllbnRCYXNlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOw0KLQ0KLSAgICAgICAg
Ly8gVmVyc2lvbiAwLg0KLSAgICAgICAgV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJl
Y2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgICAgICAgICBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0
ZWRGb3JVc2VXaXRoVjA7DQotICAgICAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dQYWdlOw0KLSAgICAgICAg
V0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjbG9zZTsNCi0gICAgICAgIFdLUGFnZVRha2VGb2N1c0NhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZUZvY3VzOw0KLSAgICAg
ICAgV0tQYWdlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmb2N1czsNCi0gICAgICAgIFdLUGFnZVVuZm9jdXNDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5mb2N1czsNCi0gICAg
ICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRBbGVydENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdEFsZXJ0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7
DQotICAgICAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrX2RlcHJlY2F0ZWRG
b3JVc2VXaXRoVjAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtX2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjA7DQotICAgICAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVj
YXRlZEZvclVzZVdpdGhWMDsNCi0gICAgICAgIFdLUGFnZVNldFN0YXR1c1RleHRDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdHVzVGV4dDsNCi0g
ICAgICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMCAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMDsNCi0gICAgICAgIFdLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJh
Y2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgbWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsNCi0gICAgICAgIFdLUGFnZURpZE5vdEhhbmRsZUtleUV2
ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFuZGxl
S2V5RXZlbnQ7DQotICAgICAgICBXS1BhZ2VEaWROb3RIYW5kbGVXaGVlbEV2ZW50Q2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQ7DQot
ICAgICAgICBXS1BhZ2VHZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRvb2xiYXJzQXJlVmlzaWJsZTsNCi0gICAgICAgIFdLUGFnZVNl
dFRvb2xiYXJzQXJlVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0VG9vbGJhcnNBcmVWaXNpYmxlOw0KLSAgICAgICAgV0tQYWdlR2V0TWVudUJhcklzVmlz
aWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51QmFySXNW
aXNpYmxlOw0KLSAgICAgICAgV0tQYWdlU2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNZW51QmFySXNWaXNpYmxlOw0KLSAgICAg
ICAgV0tQYWdlR2V0U3RhdHVzQmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdGF0dXNCYXJJc1Zpc2libGU7DQotICAgICAgICBXS1BhZ2VTZXRTdGF0
dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
dFN0YXR1c0JhcklzVmlzaWJsZTsNCi0gICAgICAgIFdLUGFnZUdldElzUmVzaXphYmxlQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSZXNpemFibGU7DQot
ICAgICAgICBXS1BhZ2VTZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNldElzUmVzaXphYmxlOw0KLSAgICAgICAgV0tQYWdlR2V0V2lu
ZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
ZXRXaW5kb3dGcmFtZTsNCi0gICAgICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93RnJhbWU7DQotICAg
ICAgICBXS1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFja19kZXByZWNhdGVk
Rm9yVXNlV2l0aFY2ICAgIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsNCi0gICAgICAgIFdL
UGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGlkRHJhdzsNCi0gICAgICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURpZFNjcm9sbDsNCi0g
ICAgICAgIFdLUGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXhjZWVkZWREYXRhYmFzZVF1b3RhOw0KLSAgICAgICAgV0tQYWdl
UnVuT3BlblBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5PcGVuUGFuZWw7DQotICAgICAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgIGRlY2lkZVBvbGljeUZvckdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7DQotICAgICAgICBXS1BhZ2VIZWFkZXJIZWlnaHRD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckhl
aWdodDsNCi0gICAgICAgIFdLUGFnZUZvb3RlckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9vdGVySGVpZ2h0Ow0KLSAgICAgICAgV0tQYWdl
RHJhd0hlYWRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkcmF3SGVhZGVyOw0KLSAgICAgICAgV0tQYWdlRHJhd0Zvb3RlckNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3Rm9vdGVyOw0KLSAgICAg
ICAgV0tQYWdlUHJpbnRGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcmludEZyYW1lOw0KLSAgICAgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5Nb2RhbDsN
Ci0gICAgICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsgLy8gVXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1
YmJlckJhbmRGb3JNYWluRnJhbWUNCi0gICAgICAgIFdLUGFnZVNhdmVEYXRhVG9GaWxlSW5Eb3du
bG9hZHNGb2xkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgc2F2ZURhdGFUb0ZpbGVJ
bkRvd25sb2Fkc0ZvbGRlcjsNCi0gICAgICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkSW50ZXJydXB0SmF2
YVNjcmlwdF91bmF2YWlsYWJsZTsNCi0NCi0gICAgICAgIC8vIFZlcnNpb24gMS4NCi0gICAgICAg
IFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxICAgICAg
ICAgICAgICAgICAgY3JlYXRlTmV3UGFnZTsNCi0gICAgICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQ7DQotICAgICAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgIGRlY2lkZVBvbGljeUZvck5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Ow0KLSAgICAgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVn
aW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMSB1bmF2YWlsYWJs
ZVBsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMTsNCi0NCi0gICAgICAg
IC8vIFZlcnNpb24gMi4NCi0gICAgICAgIFdLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0NvbG9yUGlja2VyOw0KLSAg
ICAgICAgV0tQYWdlSGlkZUNvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoaWRlQ29sb3JQaWNrZXI7DQotICAgICAgICBXS1BhZ2VVbmF2YWls
YWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHVu
YXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZDsNCi0NCi0gICAgICAgIC8vIFZlcnNpb24gMy4N
Ci0gICAgICAgIFdLUGFnZVBpbm5lZFN0YXRlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGlubmVkU3RhdGVEaWRDaGFuZ2U7DQotDQotICAgICAgICAv
LyBWZXJzaW9uIDQuDQotICAgICAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19k
ZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydDsNCi0g
ICAgICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWNSAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm07DQotICAgICAgICBXS1BhZ2VS
dW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAg
ICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7DQotICAgIH07DQotDQotICAgIGNvbnN0IGF1dG8mIGJv
dGNoZWRQYWdlVUlDbGllbnQgPSByZWludGVycHJldF9jYXN0PGNvbnN0IEJvdGNoZWRXS1BhZ2VV
SUNsaWVudFY0Jj4od2tDbGllbnQpOw0KLQ0KLSAgICBXS1BhZ2VVSUNsaWVudFY1IGZpeGVkUGFn
ZVVJQ2xpZW50ID0gew0KLSAgICAgICAgeyA1LCBib3RjaGVkUGFnZVVJQ2xpZW50LmJhc2UuY2xp
ZW50SW5mbyB9LA0KLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5jcmVhdGVOZXdQYWdlX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjAsDQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LnNob3dQ
YWdlLA0KLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5jbG9zZSwNCi0gICAgICAgIGJvdGNo
ZWRQYWdlVUlDbGllbnQudGFrZUZvY3VzLA0KLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5m
b2N1cywNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQudW5mb2N1cywNCi0gICAgICAgIGJv
dGNoZWRQYWdlVUlDbGllbnQucnVuSmF2YVNjcmlwdEFsZXJ0X2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjAsDQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LnJ1bkphdmFTY3JpcHRDb25maXJtX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjAsDQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LnJ1bkph
dmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCwNCi0gICAgICAgIGJvdGNoZWRQ
YWdlVUlDbGllbnQuc2V0U3RhdHVzVGV4dCwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQu
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCwNCi0gICAgICAg
IGJvdGNoZWRQYWdlVUlDbGllbnQubWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMCwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuZGlkTm90SGFuZGxl
S2V5RXZlbnQsDQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LmRpZE5vdEhhbmRsZVdoZWVs
RXZlbnQsDQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LnRvb2xiYXJzQXJlVmlzaWJsZSwN
Ci0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuc2V0VG9vbGJhcnNBcmVWaXNpYmxlLA0KLSAg
ICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5tZW51QmFySXNWaXNpYmxlLA0KLSAgICAgICAgYm90
Y2hlZFBhZ2VVSUNsaWVudC5zZXRNZW51QmFySXNWaXNpYmxlLA0KLSAgICAgICAgYm90Y2hlZFBh
Z2VVSUNsaWVudC5zdGF0dXNCYXJJc1Zpc2libGUsDQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xp
ZW50LnNldFN0YXR1c0JhcklzVmlzaWJsZSwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQu
aXNSZXNpemFibGUsDQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LnNldElzUmVzaXphYmxl
LA0KLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5nZXRXaW5kb3dGcmFtZSwNCi0gICAgICAg
IGJvdGNoZWRQYWdlVUlDbGllbnQuc2V0V2luZG93RnJhbWUsDQotICAgICAgICBib3RjaGVkUGFn
ZVVJQ2xpZW50LnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCwNCi0gICAgICAgIGJvdGNoZWRQ
YWdlVUlDbGllbnQuZGlkRHJhdywNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQucGFnZURp
ZFNjcm9sbCwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuZXhjZWVkZWREYXRhYmFzZVF1
b3RhLA0KLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5ydW5PcGVuUGFuZWwsDQotICAgICAg
ICBib3RjaGVkUGFnZVVJQ2xpZW50LmRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3QsDQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LmhlYWRlckhlaWdodCwNCi0g
ICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuZm9vdGVySGVpZ2h0LA0KLSAgICAgICAgYm90Y2hl
ZFBhZ2VVSUNsaWVudC5kcmF3SGVhZGVyLA0KLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5k
cmF3Rm9vdGVyLA0KLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5wcmludEZyYW1lLA0KLSAg
ICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5ydW5Nb2RhbCwNCi0gICAgICAgIGJvdGNoZWRQYWdl
VUlDbGllbnQudW51c2VkMSwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuc2F2ZURhdGFU
b0ZpbGVJbkRvd25sb2Fkc0ZvbGRlciwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuc2hv
dWxkSW50ZXJydXB0SmF2YVNjcmlwdF91bmF2YWlsYWJsZSwNCi0gICAgICAgIGJvdGNoZWRQYWdl
VUlDbGllbnQuY3JlYXRlTmV3UGFnZSwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQubW91
c2VEaWRNb3ZlT3ZlckVsZW1lbnQsDQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LmRlY2lk
ZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LA0KLSAgICAgICAgYm90Y2hl
ZFBhZ2VVSUNsaWVudC51bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMSwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuc2hvd0NvbG9yUGlja2Vy
LA0KLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5oaWRlQ29sb3JQaWNrZXIsDQotICAgICAg
ICBib3RjaGVkUGFnZVVJQ2xpZW50LnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCwNCi0g
ICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQucGlubmVkU3RhdGVEaWRDaGFuZ2UsDQotICAgICAg
ICBudWxscHRyLA0KLSAgICAgICAgbnVsbHB0ciwNCi0gICAgICAgIG51bGxwdHIsDQotICAgICAg
ICBudWxscHRyLA0KLSAgICAgICAgbnVsbHB0ciwNCi0gICAgICAgIG51bGxwdHIsDQotICAgICAg
ICBib3RjaGVkUGFnZVVJQ2xpZW50LnJ1bkphdmFTY3JpcHRBbGVydCwNCi0gICAgICAgIGJvdGNo
ZWRQYWdlVUlDbGllbnQucnVuSmF2YVNjcmlwdENvbmZpcm0sDQotICAgICAgICBib3RjaGVkUGFn
ZVVJQ2xpZW50LnJ1bkphdmFTY3JpcHRQcm9tcHQsDQotICAgICAgICBudWxscHRyLA0KLSAgICB9
Ow0KLQ0KLSAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQocGFnZVJlZiwgJmZpeGVkUGFnZVVJQ2xp
ZW50LmJhc2UpOw0KLX0NCi0jZW5kaWYNCi0NCiBuYW1lc3BhY2UgV2ViS2l0IHsNCiANCiBjbGFz
cyBSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxSZXN1bHRMaXN0ZW5lciA6IHB1YmxpYyBBUEk6
Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bFJlc3VsdExpc3RlbmVyPiB7DQpAQCAtMTY4OSwxMyArMTU1NSw2IEBAIHZvaWQgV0tQYWdlUnVu
SmF2YVNjcmlwdFByb21wdFJlc3VsdExpc3QNCiANCiB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVu
dChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudCkN
CiB7DQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA8PSAxMDEwMDANCi0gICAgaWYgKHdrQ2xpZW50ICYmIHdrQ2xpZW50LT52ZXJzaW9uID09IDQp
IHsNCi0gICAgICAgIGZpeFVwQm90Y2hlZFBhZ2VVSUNsaWVudChwYWdlUmVmLCAqd2tDbGllbnQp
Ow0KLSAgICAgICAgcmV0dXJuOw0KLSAgICB9DQotI2VuZGlmDQotDQogICAgIGNsYXNzIFVJQ2xp
ZW50IDogcHVibGljIEFQSTo6Q2xpZW50PFdLUGFnZVVJQ2xpZW50QmFzZT4sIHB1YmxpYyBBUEk6
OlVJQ2xpZW50IHsNCiAgICAgcHVibGljOg0KICAgICAgICAgZXhwbGljaXQgVUlDbGllbnQoY29u
c3QgV0tQYWdlVUlDbGllbnRCYXNlKiBjbGllbnQpDQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0NCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNp
b24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtMjM2LDExICsyMzYsOSBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXDQogICAgICAgICAgICAgWyhOU0RhdGEg
KilkYXRhIHJlbGVhc2VdOw0KICAgICAgICAgfSwgZGF0YS5sZWFrUmVmKCkpOw0KICAgICB9DQot
I2lmIFRBUkdFVF9PU19JUEhPTkUgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApDQogICAgIHBhcmFtZXRlcnMubmV0d29ya0FUU0Nv
bnRleHQgPSBhZG9wdENGKF9DRk5ldHdvcmtDb3B5QVRTQ29udGV4dCgpKTsNCi0jZW5kaWYNCiAN
Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTEwMA0KKyNpZiBQTEFURk9STShNQUMpDQogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGNv
b2tpZVN0b3JhZ2VEYXRhID0gYWRvcHRDRihDRkhUVFBDb29raWVTdG9yYWdlQ3JlYXRlSWRlbnRp
ZnlpbmdEYXRhKGtDRkFsbG9jYXRvckRlZmF1bHQsIFtbTlNIVFRQQ29va2llU3RvcmFnZSBzaGFy
ZWRIVFRQQ29va2llU3RvcmFnZV0gX2Nvb2tpZVN0b3JhZ2VdKSk7DQogICAgIEFTU0VSVChwYXJh
bWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLmlzRW1wdHkoKSk7DQogICAg
IHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIuYXBwZW5kKENGRGF0
YUdldEJ5dGVQdHIoY29va2llU3RvcmFnZURhdGEuZ2V0KCkpLCBDRkRhdGFHZXRMZW5ndGgoY29v
a2llU3RvcmFnZURhdGEuZ2V0KCkpKTsNCkBAIC0yODAsOSArMjc4LDcgQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTg0KIA0KICAgICBwYXJhbWV0ZXJzLmh0dHBQcm94
eSA9IFtkZWZhdWx0cyBzdHJpbmdGb3JLZXk6V2ViS2l0MkhUVFBQcm94eURlZmF1bHRzS2V5XTsN
CiAgICAgcGFyYW1ldGVycy5odHRwc1Byb3h5ID0gW2RlZmF1bHRzIHN0cmluZ0ZvcktleTpXZWJL
aXQySFRUUFNQcm94eURlZmF1bHRzS2V5XTsNCi0jaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkN
CiAgICAgcGFyYW1ldGVycy5uZXR3b3JrQVRTQ29udGV4dCA9IGFkb3B0Q0YoX0NGTmV0d29ya0Nv
cHlBVFNDb250ZXh0KCkpOw0KLSNlbmRpZg0KIA0KICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkN
CiAgICAgcGFyYW1ldGVycy5zaG91bGRFbmFibGVOZXR3b3JrQ2FjaGUgPSBpc05ldHdvcmtDYWNo
ZUVuYWJsZWQoKTsNCkBAIC0yOTgsNyArMjk0LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxh
dGZvcm1Jbml0aWFsaXplTg0KICAgICBwYXJhbWV0ZXJzLnNob3VsZFN1cHByZXNzTWVtb3J5UHJl
c3N1cmVIYW5kbGVyID0gW2RlZmF1bHRzIGJvb2xGb3JLZXk6V2ViS2l0U3VwcHJlc3NNZW1vcnlQ
cmVzc3VyZUhhbmRsZXJEZWZhdWx0c0tleV07DQogICAgIHBhcmFtZXRlcnMubG9hZFRocm90dGxl
TGF0ZW5jeSA9IFNlY29uZHMgeyBbZGVmYXVsdHMgaW50ZWdlckZvcktleTpXZWJLaXROZXR3b3Jr
TG9hZFRocm90dGxlTGF0ZW5jeU1pbGxpc2Vjb25kc0RlZmF1bHRzS2V5XSAvIDEwMDAuIH07DQog
DQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDExMDANCisjaWYgUExBVEZPUk0oTUFDKQ0KICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBj
b29raWVTdG9yYWdlRGF0YSA9IGFkb3B0Q0YoQ0ZIVFRQQ29va2llU3RvcmFnZUNyZWF0ZUlkZW50
aWZ5aW5nRGF0YShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBbW05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hh
cmVkSFRUUENvb2tpZVN0b3JhZ2VdIF9jb29raWVTdG9yYWdlXSkpOw0KICAgICBBU1NFUlQocGFy
YW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5pc0VtcHR5KCkpOw0KICAg
ICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLmFwcGVuZChDRkRh
dGFHZXRCeXRlUHRyKGNvb2tpZVN0b3JhZ2VEYXRhLmdldCgpKSwgQ0ZEYXRhR2V0TGVuZ3RoKGNv
b2tpZVN0b3JhZ2VEYXRhLmdldCgpKSk7DQpAQCAtNTk5LDkgKzU5NSw3IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnJlc2V0SFNUU0hvc3RzQWRkZWQNCiB7DQogICAgIE5TRGF0ZSAqc3RhcnREYXRl
ID0gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDpzdGFydERhdGVJbnRlcnZh
bFNpbmNlMTk3MF07DQogICAgIF9DRk5ldHdvcmtSZXNldEhTVFNIb3N0c1NpbmNlRGF0ZShudWxs
cHRyLCAoX19icmlkZ2UgQ0ZEYXRlUmVmKXN0YXJ0RGF0ZSk7DQotI2lmIFBMQVRGT1JNKElPUykg
fHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDExMDApDQogICAgIF9DRk5ldHdvcmtSZXNldEhTVFNIb3N0c1NpbmNlRGF0ZShwcml2YXRlQnJv
d3NpbmdTZXNzaW9uKCksIChfX2JyaWRnZSBDRkRhdGVSZWYpc3RhcnREYXRlKTsNCi0jZW5kaWYN
CiB9DQogDQogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0Q29va2llU3RvcmFnZVBhcnRpdGlvbmlu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkKQ0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAkod29ya2luZyBjb3B5KQ0KQEAgLTQw
Miw5ICs0MDIsNyBAQCBwdWJsaWM6DQogICAgIHZvaWQgcmVnaXN0ZXJEcmFnZ2VkVHlwZXMoKTsN
CiAjZW5kaWYNCiANCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEx
MDANCiAgICAgdm9pZCBzdGFydFdpbmRvd0RyYWcoKTsNCi0jZW5kaWYNCiANCiAgICAgdm9pZCBk
cmFnSW1hZ2VGb3JWaWV3KE5TVmlldyAqLCBOU0ltYWdlICosIENHUG9pbnQgY2xpZW50UG9pbnQs
IGJvb2wgbGlua0RyYWcpOw0KICAgICB2b2lkIHNldEZpbGVBbmRVUkxUeXBlcyhOU1N0cmluZyAq
ZmlsZW5hbWUsIE5TU3RyaW5nICpleHRlbnNpb24sIE5TU3RyaW5nICp0aXRsZSwgTlNTdHJpbmcg
KnVybCwgTlNTdHJpbmcgKnZpc2libGVVUkwsIE5TUGFzdGVib2FyZCAqKTsNCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0NCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0JKHJldmlzaW9u
IDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0JKHdvcmtpbmcgY29weSkNCkBAIC0xNjA3LDkgKzE2MDcsNiBAQCB2b2lkIFdlYlZpZXdJbXBs
Ojp1cGRhdGVMYXllcigpDQogICAgIC8vIHVkcGF0ZSByZXNwb25zZSBpZiBzZXRGcmFtZVNpemUg
aXMgY2FsbGVkLg0KICAgICBpZiAoZnJhbWVTaXplVXBkYXRlc0Rpc2FibGVkKCkpDQogICAgICAg
ICByZXR1cm47DQotDQotICAgIGlmIChEcmF3aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJlYSA9IG1f
cGFnZS0+ZHJhd2luZ0FyZWEoKSkNCi0gICAgICAgIGRyYXdpbmdBcmVhLT53YWl0Rm9yUG9zc2li
bGVHZW9tZXRyeVVwZGF0ZSgpOw0KIH0NCiANCiB2b2lkIFdlYlZpZXdJbXBsOjpkcmF3UmVjdChD
R1JlY3QgcmVjdCkNCkBAIC0zNzY3LDEyICszNzY0LDEwIEBAIHZvaWQgV2ViVmlld0ltcGw6OnJl
Z2lzdGVyRHJhZ2dlZFR5cGVzKCkNCiB9DQogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQp
DQogDQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwDQogdm9p
ZCBXZWJWaWV3SW1wbDo6c3RhcnRXaW5kb3dEcmFnKCkNCiB7DQogICAgIFttX3ZpZXcud2luZG93
IHBlcmZvcm1XaW5kb3dEcmFnV2l0aEV2ZW50Om1fbGFzdE1vdXNlRG93bkV2ZW50LmdldCgpXTsN
CiB9DQotI2VuZGlmDQogDQogdm9pZCBXZWJWaWV3SW1wbDo6ZHJhZ0ltYWdlRm9yVmlldyhOU1Zp
ZXcgKnZpZXcsIE5TSW1hZ2UgKmltYWdlLCBDR1BvaW50IGNsaWVudFBvaW50LCBib29sKQ0KIHsN
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJv
eHkuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29w
eSkNCkBAIC0yMTgsOSArMjE4LDYgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZEZpbmlz
aExhdW5jaA0KICAgICB9DQogDQogICAgIG1fY29ubmVjdGlvbiA9IElQQzo6Q29ubmVjdGlvbjo6
Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpOw0KLSNp
ZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTAx
MDAwDQotICAgIG1fY29ubmVjdGlvbi0+c2V0U2hvdWxkQ2xvc2VDb25uZWN0aW9uT25NYWNoRXhj
ZXB0aW9ucygpOw0KLSNlbmRpZg0KIA0KICAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsNCiAgICAg
DQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1By
b3h5LmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzUHJveHkuaAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNvcHkpDQpA
QCAtODcsMTEgKzg3LDYgQEAgcHVibGljOg0KICNpZiBQTEFURk9STShDT0NPQSkNCiAgICAgdm9p
ZCBzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGJvb2wpOw0KIA0KLSNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwMTAwMA0KLSAgICAvLyBDcmVhdGVzIGEgcHJvcGVy
dHkgbGlzdCBpbiB+L0xpYnJhcnkvUHJlZmVyZW5jZXMgdGhhdCBjb250YWlucyBhbGwgdGhlIE1J
TUUgdHlwZXMgc3VwcG9ydGVkIGJ5IHRoZSBwbHVnLWluLg0KLSAgICBzdGF0aWMgYm9vbCBjcmVh
dGVQcm9wZXJ0eUxpc3RGaWxlKGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mKTsNCi0jZW5kaWYNCi0N
CiAjZW5kaWYNCiANCiAjaWYgUExVR0lOX0FSQ0hJVEVDVFVSRShYMTEpDQpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQ0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVn
aW5Qcm9jZXNzUHJveHlNYWMubW0JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCSh3b3JraW5n
IGNvcHkpDQpAQCAtNTksNDIgKzU5LDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7DQogDQog
bmFtZXNwYWNlIFdlYktpdCB7DQogICAgIA0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEIDw9IDEwMTAwMA0KLWJvb2wgUGx1Z2luUHJvY2Vzc1Byb3h5OjpjcmVhdGVQcm9wZXJ0
eUxpc3RGaWxlKGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mIHBsdWdpbikNCi17DQotICAgIENTdHJp
bmcgcGx1Z2luUGF0aFN0cmluZyA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwbHVnaW4ucGF0
aCk7DQotDQotICAgIHBvc2l4X3NwYXduYXR0cl90IGF0dHI7DQotICAgIHBvc2l4X3NwYXduYXR0
cl9pbml0KCZhdHRyKTsNCi0NCi0gICAgY3B1X3R5cGVfdCBjcHVUeXBlc1tdID0geyBwbHVnaW4u
cGx1Z2luQXJjaGl0ZWN0dXJlIH07ICAgIA0KLSAgICBzaXplX3Qgb3V0Q291bnQgPSAwOw0KLSAg
ICBwb3NpeF9zcGF3bmF0dHJfc2V0YmlucHJlZl9ucCgmYXR0ciwgMSwgY3B1VHlwZXMsICZvdXRD
b3VudCk7DQotDQotICAgIHBvc2l4X3NwYXduYXR0cl9zZXRmbGFncygmYXR0ciwgUE9TSVhfU1BB
V05fQ0xPRVhFQ19ERUZBVUxUKTsNCi0NCi0gICAgY29uc3QgY2hhciogYXJnc1tdID0geyAiL1N5
c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvV2ViS2l0LmZyYW1ld29yay9QbHVnaW5Qcm9jZXNzLmFw
cC9Db250ZW50cy9NYWNPUy9QbHVnaW5Qcm9jZXNzIiwgIi9TeXN0ZW0vTGlicmFyeS9GcmFtZXdv
cmtzL1dlYktpdC5mcmFtZXdvcmsvV2ViS2l0IiwgIi10eXBlIiwgInBsdWdpbnByb2Nlc3MiLCAi
LWNyZWF0ZVBsdWdpbk1JTUVUeXBlc1ByZWZlcmVuY2VzIiwgcGx1Z2luUGF0aFN0cmluZy5kYXRh
KCksIDAgfTsNCi0NCi0gICAgcGlkX3QgcGlkOw0KLSAgICBpbnQgcmVzdWx0ID0gcG9zaXhfc3Bh
d24oJnBpZCwgYXJnc1swXSwgMCwgJmF0dHIsIGNvbnN0X2Nhc3Q8Y2hhciogY29uc3QqPihhcmdz
KSwgbnVsbHB0cik7DQotICAgIHBvc2l4X3NwYXduYXR0cl9kZXN0cm95KCZhdHRyKTsNCi0NCi0g
ICAgaWYgKHJlc3VsdCkNCi0gICAgICAgIHJldHVybiBmYWxzZTsNCi0gICAgaW50IHN0YXR1czsN
Ci0gICAgaWYgKHdhaXRwaWQocGlkLCAmc3RhdHVzLCAwKSA8IDApDQotICAgICAgICByZXR1cm4g
ZmFsc2U7DQotDQotICAgIGlmICghV0lGRVhJVEVEKHN0YXR1cykpDQotICAgICAgICByZXR1cm4g
ZmFsc2U7DQotDQotICAgIGlmIChXRVhJVFNUQVRVUyhzdGF0dXMpICE9IEVYSVRfU1VDQ0VTUykN
Ci0gICAgICAgIHJldHVybiBmYWxzZTsNCi0NCi0gICAgcmV0dXJuIHRydWU7DQotfQ0KLSNlbmRp
Zg0KLQ0KIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMo
UHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zLCBjb25zdCBQbHVn
aW5Qcm9jZXNzQXR0cmlidXRlcyYgcGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMpDQogew0KICAgICBp
ZiAocGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMubW9kdWxlSW5mby5wbHVnaW5BcmNoaXRlY3R1cmUg
PT0gQ1BVX1RZUEVfWDg2KQ0KQEAgLTEyMCw5ICs4NCw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1By
b3h5OjpwbGF0Zm9ybUluaXRpYWwNCiAjaWYgSEFWRShIT1NURURfQ09SRV9BTklNQVRJT04pDQog
ICAgIHBhcmFtZXRlcnMuYWNjZWxlcmF0ZWRDb21wb3NpdGluZ1BvcnQgPSBNYWNoU2VuZFJpZ2h0
OjpjcmVhdGUoW0NBUmVtb3RlTGF5ZXJTZXJ2ZXIgc2hhcmVkU2VydmVyXS5zZXJ2ZXJQb3J0KTsN
CiAjZW5kaWYNCi0jaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkNCiAgICAgcGFyYW1ldGVycy5u
ZXR3b3JrQVRTQ29udGV4dCA9IGFkb3B0Q0YoX0NGTmV0d29ya0NvcHlBVFNDb250ZXh0KCkpOw0K
LSNlbmRpZg0KIH0NCiANCiBib29sIFBsdWdpblByb2Nlc3NQcm94eTo6Z2V0UGx1Z2luUHJvY2Vz
c1NlcmlhbE51bWJlcihQcm9jZXNzU2VyaWFsTnVtYmVyJiBwbHVnaW5Qcm9jZXNzU2VyaWFsTnVt
YmVyKQ0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwu
bW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbC5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTQxNiwxNCArNDE2LDEy
IEBAIEludFJlY3QgUGFnZUNsaWVudEltcGw6OnJvb3RWaWV3VG9TY3JlZW4NCiAgICAgcmV0dXJu
IGVuY2xvc2luZ0ludFJlY3QodGVtcFJlY3QpOw0KIH0NCiANCi0jaWYgUExBVEZPUk0oTUFDKQ0K
IEludFJlY3QgUGFnZUNsaWVudEltcGw6OnJvb3RWaWV3VG9XaW5kb3coY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgcmVjdCkNCiB7DQogICAgIE5TUmVjdCB0ZW1wUmVjdCA9IHJlY3Q7DQogICAgIHRl
bXBSZWN0ID0gW21fdmlldyBjb252ZXJ0UmVjdDp0ZW1wUmVjdCB0b1ZpZXc6bmlsXTsNCiAgICAg
cmV0dXJuIGVuY2xvc2luZ0ludFJlY3QodGVtcFJlY3QpOw0KIH0NCi0jZW5kaWYNCiANCiB2b2lk
IFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJk
RXZlbnQmIGV2ZW50LCBib29sIGV2ZW50V2FzSGFuZGxlZCkNCiB7DQpAQCAtODQxLDkgKzgzOSw3
IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRlcmVmVmlldygpDQogDQogdm9pZCBQYWdlQ2xpZW50
SW1wbDo6c3RhcnRXaW5kb3dEcmFnKCkNCiB7DQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMTAwDQogICAgIG1faW1wbC0+c3RhcnRXaW5kb3dEcmFnKCk7DQotI2Vu
ZGlmDQogfQ0KIA0KIE5TV2luZG93ICpQYWdlQ2xpZW50SW1wbDo6cGxhdGZvcm1XaW5kb3coKQ0K
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlV2ViSW5zcGVjdG9yUHJv
eHlNYWMubW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Jl
bW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbQkod29y
a2luZyBjb3B5KQ0KQEAgLTIyMSw5ICsyMjEsNyBAQCB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclBy
b3h5OjpwbGF0Zm9ybUFwDQogDQogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1TdGFydFdpbmRvd0RyYWcoKQ0KIHsNCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDExMDANCiAgICAgbV93ZWJWaWV3LT5fcGFnZS0+c3RhcnRXaW5kb3dEcmFnKCk7
DQotI2VuZGlmDQogfQ0KIA0KIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3Jt
T3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKQ0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5LmgJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaAkod29ya2lu
ZyBjb3B5KQ0KQEAgLTQwLDcgKzQwLDYgQEAgcHJpdmF0ZToNCiAgICAgLy8gRHJhd2luZ0FyZWFQ
cm94eQ0KICAgICB2b2lkIGRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7DQog
ICAgIHZvaWQgc2l6ZURpZENoYW5nZSgpIG92ZXJyaWRlOw0KLSAgICB2b2lkIHdhaXRGb3JQb3Nz
aWJsZUdlb21ldHJ5VXBkYXRlKFNlY29uZHMgdGltZW91dCA9IGRpZFVwZGF0ZUJhY2tpbmdTdG9y
ZVN0YXRlVGltZW91dCgpKSBvdmVycmlkZTsNCiAgICAgdm9pZCBjb2xvclNwYWNlRGlkQ2hhbmdl
KCkgb3ZlcnJpZGU7DQogICAgIHZvaWQgbWluaW11bUxheW91dFNpemVEaWRDaGFuZ2UoKSBvdmVy
cmlkZTsNCiANCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0JKHJl
dmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0JKHdvcmtpbmcgY29weSkNCkBAIC03MSwxOSAr
NzEsNiBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6DQogICAgIHNl
bmRVcGRhdGVHZW9tZXRyeSgpOw0KIH0NCiANCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhUHJveHk6OndhaXRGb3JQb3NzaWJsZUdlb21ldHJ5VXBkYXRlKFNlY29uZHMgdGltZW91
dCkNCi17DQotI2lmICFIQVZFKENPUkVBTklNQVRJT05fRkVOQ0VTKQ0KLSAgICBpZiAoIW1faXNX
YWl0aW5nRm9yRGlkVXBkYXRlR2VvbWV0cnkpDQotICAgICAgICByZXR1cm47DQotDQotICAgIGlm
IChtX3dlYlBhZ2VQcm94eS5wcm9jZXNzKCkuc3RhdGUoKSAhPSBXZWJQcm9jZXNzUHJveHk6OlN0
YXRlOjpSdW5uaW5nKQ0KLSAgICAgICAgcmV0dXJuOw0KLQ0KLSAgICBtX3dlYlBhZ2VQcm94eS5w
cm9jZXNzKCkuY29ubmVjdGlvbigpLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNz
YWdlczo6RHJhd2luZ0FyZWFQcm94eTo6RGlkVXBkYXRlR2VvbWV0cnk+KG1fd2ViUGFnZVByb3h5
LnBhZ2VJRCgpLCB0aW1lb3V0LCBJUEM6OldhaXRGb3JPcHRpb246OkludGVycnVwdFdhaXRpbmdJ
ZlN5bmNNZXNzYWdlQXJyaXZlcyk7DQotI2VuZGlmDQotfQ0KLQ0KIHZvaWQgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6Y29sb3JTcGFjZURpZENoYW5nZSgpDQogew0KICAgICBt
X3dlYlBhZ2VQcm94eS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6OlNldENv
bG9yU3BhY2UobV93ZWJQYWdlUHJveHkuY29sb3JTcGFjZSgpKSwgbV93ZWJQYWdlUHJveHkucGFn
ZUlEKCkpOw0KQEAgLTE1Myw3ICsxNDAsNiBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhUHJveHk6DQogDQogTWFjaFNlbmRSaWdodCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYVByb3h5OjpjcmVhdGVGZW5jZSgpDQogew0KLSNpZiBIQVZFKENPUkVBTklNQVRJT05fRkVO
Q0VTKQ0KICAgICBpZiAoIW1fd2ViUGFnZVByb3h5LmlzVmFsaWQoKSkNCiAgICAgICAgIHJldHVy
biBNYWNoU2VuZFJpZ2h0KCk7DQogDQpAQCAtMTg5LDkgKzE3NSw2IEBAIE1hY2hTZW5kUmlnaHQg
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0ENCiAgICAgfSBmb3JQaGFzZTprQ0FUcmFuc2FjdGlv
blBoYXNlUG9zdENvbW1pdF07DQogDQogICAgIHJldHVybiBmZW5jZVBvcnQ7DQotI2Vsc2UNCi0g
ICAgcmV0dXJuIE1hY2hTZW5kUmlnaHQoKTsNCi0jZW5kaWYNCiB9DQogDQogdm9pZCBUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpzZW5kVXBkYXRlR2VvbWV0cnkoKQ0KSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0NCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclBy
b3h5TWFjLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTIyOSwxMiAr
MjI5LDEwIEBAIFJldGFpblB0cjxOU1dpbmRvdz4gV2ViSW5zcGVjdG9yUHJveHk6OmMNCiAgICAg
W3dpbmRvdyBzZXRSZWxlYXNlZFdoZW5DbG9zZWQ6Tk9dOw0KICAgICBbd2luZG93IHNldENvbGxl
Y3Rpb25CZWhhdmlvcjooW3dpbmRvdyBjb2xsZWN0aW9uQmVoYXZpb3JdIHwgTlNXaW5kb3dDb2xs
ZWN0aW9uQmVoYXZpb3JGdWxsU2NyZWVuUHJpbWFyeSldOw0KIA0KLSNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KICAgICBDR0Zsb2F0IGFwcHJveGltYXRlbHlI
YWxmU2NyZWVuU2l6ZSA9IChbd2luZG93IHNjcmVlbl0uZnJhbWUuc2l6ZS53aWR0aCAvIDIpIC0g
NDsNCiAgICAgQ0dGbG9hdCBtaW5pbXVtRnVsbFNjcmVlbldpZHRoID0gc3RkOjptYXg8Q0dGbG9h
dD4oNjM2LCBhcHByb3hpbWF0ZWx5SGFsZlNjcmVlblNpemUpOw0KICAgICBbd2luZG93IHNldE1p
bkZ1bGxTY3JlZW5Db250ZW50U2l6ZTpOU01ha2VTaXplKG1pbmltdW1GdWxsU2NyZWVuV2lkdGgs
IG1pbmltdW1XaW5kb3dIZWlnaHQpXTsNCiAgICAgW3dpbmRvdyBzZXRDb2xsZWN0aW9uQmVoYXZp
b3I6KFt3aW5kb3cgY29sbGVjdGlvbkJlaGF2aW9yXSB8IE5TV2luZG93Q29sbGVjdGlvbkJlaGF2
aW9yRnVsbFNjcmVlbkFsbG93c1RpbGluZyldOw0KLSNlbmRpZg0KIA0KICAgICBbd2luZG93IHNl
dFRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50OllFU107DQogDQpAQCAtNjg3LDkgKzY4NSw3IEBA
IHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0QXR0YWMNCiANCiB2b2lkIFdlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZygpDQogew0KLSNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KICAgICBtX2luc3BlY3RvclZpZXct
Pl9wYWdlLT5zdGFydFdpbmRvd0RyYWcoKTsNCi0jZW5kaWYNCiB9DQogDQogU3RyaW5nIFdlYklu
c3BlY3RvclByb3h5OjppbnNwZWN0b3JQYWdlVVJMKCkNCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQkocmV2aXNp
b24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51
UHJveHlNYWMubW0JKHdvcmtpbmcgY29weSkNCkBAIC0xMTIsOSArMTEyLDcgQEAgdm9pZCBXZWJQ
b3B1cE1lbnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudQ0KICAgICBbbV9wb3B1cCBzZXRVc2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOnRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNVc2VySW50ZXJm
YWNlTGF5b3V0RGlyZWN0aW9uTGVmdFRvUmlnaHQgOiBOU1VzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb25SaWdodFRvTGVmdF07DQogDQogICAgIE5TTWVudSAqbWVudSA9IFttX3BvcHVwIG1lbnVd
Ow0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KICAgICBb
bWVudSBzZXRVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOnRleHREaXJlY3Rpb24gPT0gTFRS
ID8gTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uTGVmdFRvUmlnaHQgOiBOU1VzZXJJbnRl
cmZhY2VMYXlvdXREaXJlY3Rpb25SaWdodFRvTGVmdF07DQotI2VuZGlmDQogDQogICAgIC8vIFRo
ZXNlIHZhbHVlcyB3ZXJlIGJvcnJvd2VkIGZyb20gQXBwS2l0IHRvIG1hdGNoIHRoZWlyIHBsYWNl
bWVudCBvZiB0aGUgbWVudS4NCiAgICAgY29uc3QgaW50IHBvcE92ZXJIb3Jpem9udGFsQWRqdXN0
ID0gLTEzOw0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvag0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQ0KQEAgLTI0NzQs
OCArMjQ3NCw2IEBADQogCQkxQTY2QkY4RTE4QTA1MkVEMDAyMDcxQjQgLyogV0tXZWJWaWV3SW50
ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJWaWV3SW50ZXJu
YWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCTFBNjdDRDJEMUNCQzUxM0YwMEJG
RTNFQSAvKiBXS09wZW5QYW5lbFBhcmFtZXRlcnNJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS09wZW5QYW5lbFBhcmFtZXRlcnNJbnRlcm5hbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMUE2OThGMTcxRTQ5MTAyMjAwNjRFODgxIC8qIENoaWxk
UHJvY2Vzc0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
Q2hpbGRQcm9jZXNzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQotCQkxQTZE
MTQxRjFCMDE2N0Q1MDA3ODVGRjAgLyogSW5mby1PU1gtMTAuOS0xMC4xMC5wbGlzdCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0gIkluZm8tT1NYLTEwLjktMTAuMTAucGxpc3QiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KLQkJMUE2RDE0MjExQjAxNjgxNjAwNzg1RkYwIC8q
IFBsdWdpblNlcnZpY2UuMzItNjQtMTAuOS0xMC4xMC5JbmZvLnBsaXN0ICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5wbGlzdC54bWw7IG5hbWUgPSAiUGx1Z2luU2VydmljZS4zMi02NC0xMC45LTEwLjEwLkluZm8u
cGxpc3QiOyBwYXRoID0gIlBsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9Q
bHVnaW5TZXJ2aWNlLjMyLTY0LTEwLjktMTAuMTAuSW5mby5wbGlzdCI7IHNvdXJjZVRyZWUgPSBT
T1VSQ0VfUk9PVDsgfTsNCiAJCTFBNkQ4NkJGMURGNzUyNjUwMDc3NDVFOCAvKiBNYWNoTWVzc2Fn
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYWNoTWVzc2FnZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQkxQTZEODZDMDFERjc1MjY1MDA3NzQ1
RTggLyogTWFjaE1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFj
aE1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCTFBNkZBMjFEMUJEMDQz
NUIwMEFBQTY1MCAvKiBXS0ZyYW1lSW5mb1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tGcmFtZUluZm9Qcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07DQpAQCAtMjQ5NCw3ICsyNDkyLDYgQEANCiAJCTFBNzg2NUI4MTZDQUM3MTUwMEFDRTgzQSAv
KiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXJNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMUE3QzBERjQxQjdEMUYxMDAwQTlC
ODQ4IC8qIFdLV2luZG93RmVhdHVyZXNSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV0tXaW5kb3dGZWF0dXJlc1JlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07DQogCQkxQTdDMERGNTFCN0QxRjEwMDBBOUI4NDggLyogV0tXaW5kb3dGZWF0dXJlc1Jl
Zi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dpbmRvd0ZlYXR1cmVzUmVm
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQotCQkxQTdEQTU0RDFBRkQ4QjM4MDAxODIz
OUQgLyogSW5mby1PU1gtMTAuOS0xMC4xMC5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1s
OyBwYXRoID0gIkluZm8tT1NYLTEwLjktMTAuMTAucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9Ow0KIAkJMUE3RTM3NzQxOEU0QTMzQTAwM0QwRkZGIC8qIFdLU2NyaXB0TWVzc2FnZUhh
bmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTY3JpcHRNZXNzYWdl
SGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMUE3RTM3NzYxOEU0QTRG
RTAwM0QwRkZGIC8qIFdLU2NyaXB0TWVzc2FnZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdLU2NyaXB0TWVzc2FnZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsNCiAJCTFBN0UzNzc3MThFNEE0RkUwMDNEMEZGRiAvKiBXS1NjcmlwdE1lc3NhZ2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTY3JpcHRNZXNzYWdlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07DQpAQCAtNzQ2MSw3ICs3NDU4LDYgQEANCiAJCQlpc2EgPSBQ
QlhHcm91cDsNCiAJCQljaGlsZHJlbiA9ICgNCiAJCQkJMjY2NTlBQTAxODVGQUFFRDAwNDMwM0RE
IC8qIEluZm8taU9TLnBsaXN0ICovLA0KLQkJCQkxQTZEMTQxRjFCMDE2N0Q1MDA3ODVGRjAgLyog
SW5mby1PU1gtMTAuOS0xMC4xMC5wbGlzdCAqLywNCiAJCQkJQkM4MjgzQTMxNkI0QkQ5MTAwQTI3
OEZFIC8qIEluZm8tT1NYLnBsaXN0ICovLA0KIAkJCSk7DQogCQkJcGF0aCA9IE5ldHdvcmtTZXJ2
aWNlOw0KQEAgLTc0ODAsNyArNzQ3Niw2IEBADQogCQlCQzgyODNFOTE2QjRGOEUyMDBBMjc4RkUg
LyogUGx1Z2luU2VydmljZSAqLyA9IHsNCiAJCQlpc2EgPSBQQlhHcm91cDsNCiAJCQljaGlsZHJl
biA9ICgNCi0JCQkJMUE2RDE0MjExQjAxNjgxNjAwNzg1RkYwIC8qIFBsdWdpblNlcnZpY2UuMzIt
NjQtMTAuOS0xMC4xMC5JbmZvLnBsaXN0ICovLA0KIAkJCQlCQ0ZDQTg5NTE2REU5NkNCMDAwNzQw
NjkgLyogUGx1Z2luU2VydmljZS4zMi02NC5JbmZvLnBsaXN0ICovLA0KIAkJCSk7DQogCQkJbmFt
ZSA9IFBsdWdpblNlcnZpY2U7DQpAQCAtNzU2Myw3ICs3NTU4LDYgQEANCiAJCQlpc2EgPSBQQlhH
cm91cDsNCiAJCQljaGlsZHJlbiA9ICgNCiAJCQkJMzc1RkI0NzMxODgzNDE1NjAwQkUzNEQ0IC8q
IEluZm8taU9TLnBsaXN0ICovLA0KLQkJCQkxQTdEQTU0RDFBRkQ4QjM4MDAxODIzOUQgLyogSW5m
by1PU1gtMTAuOS0xMC4xMC5wbGlzdCAqLywNCiAJCQkJQkNBQ0M0NDAxNkIyNENBQTAwQjZFMDky
IC8qIEluZm8tT1NYLnBsaXN0ICovLA0KIAkJCSk7DQogCQkJcGF0aCA9IFdlYkNvbnRlbnRTZXJ2
aWNlOw0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nl
c3Muc2IuaW4NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5h
cHBsZS5XZWJQcm9jZXNzLnNiLmluCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgkod29ya2luZyBjb3B5KQ0K
QEAgLTM1LDcgKzM1LDYgQEANCiAoYWxsb3cgcHJvY2Vzcy1jb2Rlc2lnbmluZy1zdGF0dXMqKQ0K
ICNlbmRpZg0KIA0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEw
MA0KIChkZW55IHN5c2N0bCopDQogKGFsbG93IHN5c2N0bC1yZWFkDQogICAgIChzeXNjdGwtbmFt
ZQ0KQEAgLTE4NCw3ICsxODMsNiBAQA0KICAgICAoaW9raXQtcHJvcGVydHkgInN0YXJ0dXAtdGlt
aW5nIikNCiAgICAgKGlva2l0LXByb3BlcnR5ICJ0b3VjaC1zaXplLWlkIikNCiApDQotI2VuZGlm
DQogDQogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwDQogKGRl
bnkgbWFjaC1sb29rdXAgKHhwYy1zZXJ2aWNlLW5hbWUtcHJlZml4ICIiKSkNCkBAIC0zODksOSAr
Mzg3LDYgQEANCiAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuU3lzdGVtQ29uZmlndXJh
dGlvbi5jb25maWdkIikNCiAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuU3lzdGVtQ29u
ZmlndXJhdGlvbi5QUFBDb250cm9sbGVyIikNCiAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBw
bGUuYXVkaW8uU3lzdGVtU291bmRTZXJ2ZXItT1NYIikNCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA8IDEwMTEwMA0KLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5h
dWRpby5WRENBc3Npc3RhbnQiKQ0KLSNlbmRpZg0KICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTMwMA0KICAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hbmFs
eXRpY3NkIikNCiAjZW5kaWYNCkBAIC00MDgsMTAgKzQwMyw4IEBADQogI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwDQogICAgICAgIChnbG9iYWwtbmFtZSAiY29t
LmFwcGxlLm1lZGlhcmVtb3RlZC54cGMiKQ0KICNlbmRpZg0KLSNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KICAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBs
ZS5sc2QubWFwZGIiKQ0KICAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5uZXNlc3Npb25t
YW5hZ2VyLmZsb3ctZGl2ZXJ0LXRva2VuIikNCi0jZW5kaWYNCiAgICAgICAgKGdsb2JhbC1uYW1l
ICJjb20uYXBwbGUuc3BlZWNoLnNwZWVjaHN5bnRoZXNpc2QiKQ0KICAgICAgICAoZ2xvYmFsLW5h
bWUgImNvbS5hcHBsZS5zcGVlY2guc3ludGhlc2lzLmNvbnNvbGUiKQ0KICAgICAgICAoZ2xvYmFs
LW5hbWUgImNvbS5hcHBsZS5zeXN0ZW0ub3BlbmRpcmVjdG9yeWQuYXBpIikNCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVu
dFNlcnZpY2UvSW5mby1PU1gtMTAuOS0xMC4xMC5wbGlzdA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50
U2VydmljZS9JbmZvLU9TWC0xMC45LTEwLjEwLnBsaXN0CShyZXZpc2lvbiAyMTkwNDgpDQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNv
bnRlbnRTZXJ2aWNlL0luZm8tT1NYLTEwLjktMTAuMTAucGxpc3QJKG5vbmV4aXN0ZW50KQ0KQEAg
LTEsNTggKzAsMCBAQA0KLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQot
PCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0
cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+DQotPHBsaXN0IHZl
cnNpb249IjEuMCI+DQotPGRpY3Q+DQotCTxrZXk+Q0ZCdW5kbGVGb2xsb3dQYXJlbnRMb2NhbGl6
YXRpb248L2tleT4NCi0JPHRydWUvPg0KLQk8a2V5PkNGQnVuZGxlR2V0SW5mb1N0cmluZzwva2V5
Pg0KLQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059LCBDb3B5cmlnaHQgMjAwMy0yMDE3IEFwcGxl
IEluYy48L3N0cmluZz4NCi0JPGtleT5DRkJ1bmRsZURldmVsb3BtZW50UmVnaW9uPC9rZXk+DQot
CTxzdHJpbmc+RW5nbGlzaDwvc3RyaW5nPg0KLQk8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5
Pg0KLQk8c3RyaW5nPiR7RVhFQ1VUQUJMRV9OQU1FfTwvc3RyaW5nPg0KLQk8a2V5PkNGQnVuZGxl
SWRlbnRpZmllcjwva2V5Pg0KLQk8c3RyaW5nPiR7UFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUn08
L3N0cmluZz4NCi0JPGtleT5DRkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVyc2lvbjwva2V5Pg0KLQk8
c3RyaW5nPjYuMDwvc3RyaW5nPg0KLQk8a2V5PkNGQnVuZGxlTmFtZTwva2V5Pg0KLQk8c3RyaW5n
PiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPg0KLQk8a2V5PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tl
eT4NCi0JPHN0cmluZz5YUEMhPC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5kbGVTaG9ydFZlcnNpb25T
dHJpbmc8L2tleT4NCi0JPHN0cmluZz4ke1NIT1JUX1ZFUlNJT05fU1RSSU5HfTwvc3RyaW5nPg0K
LQk8a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9rZXk+DQotCTxzdHJpbmc+Pz8/Pzwvc3RyaW5nPg0K
LQk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5Pg0KLQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059
PC9zdHJpbmc+DQotCTxrZXk+TFNGaWxlUXVhcmFudGluZUVuYWJsZWQ8L2tleT4NCi0JPHRydWUv
Pg0KLQk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4NCi0JPHN0cmluZz5OU0FwcGxpY2F0aW9u
PC9zdHJpbmc+DQotCTxrZXk+V2ViS2l0RW50cnlQb2ludDwva2V5Pg0KLQk8c3RyaW5nPldlYkNv
bnRlbnRTZXJ2aWNlSW5pdGlhbGl6ZXI8L3N0cmluZz4NCi0JPGtleT5MU1VJRWxlbWVudDwva2V5
Pg0KLQk8dHJ1ZS8+DQotCTxrZXk+TlNTdXBwb3J0c0F1dG9tYXRpY0dyYXBoaWNzU3dpdGNoaW5n
PC9rZXk+DQotCTx0cnVlLz4NCi0JPGtleT5OU1N1cHBvcnRzQXBwTmFwPC9rZXk+DQotCTx0cnVl
Lz4NCi0JPGtleT5OU01haW5OaWJGaWxlPC9rZXk+DQotCTxzdHJpbmc+V2ViQ29udGVudFByb2Nl
c3M8L3N0cmluZz4NCi0JPGtleT5YUENTZXJ2aWNlPC9rZXk+DQotCTxkaWN0Pg0KLQkJPGtleT5K
b2luRXhpc3RpbmdTZXNzaW9uPC9rZXk+DQotCQk8dHJ1ZS8+DQotCQk8a2V5PlNlcnZpY2VUeXBl
PC9rZXk+DQotCQk8c3RyaW5nPkFwcGxpY2F0aW9uPC9zdHJpbmc+DQotCQk8a2V5PlJ1bkxvb3BU
eXBlPC9rZXk+DQotCQk8c3RyaW5nPl9OU0FwcGxpY2F0aW9uTWFpbjwvc3RyaW5nPg0KLQkJPGtl
eT5fTXVsdGlwbGVJbnN0YW5jZXM8L2tleT4NCi0JCTx0cnVlLz4NCi0JCTxrZXk+RW52aXJvbm1l
bnRWYXJpYWJsZXM8L2tleT4NCi0JCTxkaWN0Pg0KLQkJCTxrZXk+RFlMRF9JTlNFUlRfTElCUkFS
SUVTPC9rZXk+DQotCQkJPHN0cmluZz4kKFdLX1hQQ19TRVJWSUNFX0lOU0VSVF9MSUJSQVJJRVNf
RElSKS9XZWJQcm9jZXNzU2hpbS5keWxpYjwvc3RyaW5nPg0KLQkJPC9kaWN0Pg0KLQk8L2RpY3Q+
DQotPC9kaWN0Pg0KLTwvcGxpc3Q+DQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAt
MjU3NSw3ICsyNTc1LDcgQEAgdm9pZCBXZWJQYWdlOjpzZXREcmF3c0JhY2tncm91bmQoYm9vbCBk
cg0KICAgICBtX2RyYXdpbmdBcmVhLT5zZXROZWVkc0Rpc3BsYXkoKTsNCiB9DQogDQotI2lmIEhB
VkUoQ09SRUFOSU1BVElPTl9GRU5DRVMpDQorI2lmIFBMQVRGT1JNKENPQ09BKQ0KIHZvaWQgV2Vi
UGFnZTo6c2V0VG9wQ29udGVudEluc2V0RmVuY2VkKGZsb2F0IGNvbnRlbnRJbnNldCwgSVBDOjpB
dHRhY2htZW50IGZlbmNlUG9ydCkNCiB7DQogICAgIG1fZHJhd2luZ0FyZWEtPmFkZEZlbmNlKE1h
Y2hTZW5kUmlnaHQ6OmNyZWF0ZShmZW5jZVBvcnQucG9ydCgpKSk7DQpJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDIxOTA0OCkN
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCSh3b3JraW5n
IGNvcHkpDQpAQCAtMTA5OCw3ICsxMDk4LDcgQEAgcHJpdmF0ZToNCiANCiAgICAgdm9pZCBzZXRE
cmF3c0JhY2tncm91bmQoYm9vbCk7DQogDQotI2lmIEhBVkUoQ09SRUFOSU1BVElPTl9GRU5DRVMp
DQorI2lmIFBMQVRGT1JNKENPQ09BKQ0KICAgICB2b2lkIHNldFRvcENvbnRlbnRJbnNldEZlbmNl
ZChmbG9hdCwgSVBDOjpBdHRhY2htZW50KTsNCiAjZW5kaWYNCiAgICAgdm9pZCBzZXRUb3BDb250
ZW50SW5zZXQoZmxvYXQpOw0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlzaW9uIDIxOTA0OCkNCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgko
d29ya2luZyBjb3B5KQ0KQEAgLTI3LDcgKzI3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdh
Y3lSZWNlaXZlciB7DQogDQogICAgIFNldERyYXdzQmFja2dyb3VuZChib29sIGRyYXdzQmFja2dy
b3VuZCkNCiANCi0jaWYgSEFWRShDT1JFQU5JTUFUSU9OX0ZFTkNFUykNCisjaWYgUExBVEZPUk0o
Q09DT0EpDQogICAgIFNldFRvcENvbnRlbnRJbnNldEZlbmNlZChmbG9hdCBjb250ZW50SW5zZXQs
IElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpDQogI2VuZGlmDQogICAgIFNldFRvcENvbnRlbnRJ
bnNldChmbG9hdCBjb250ZW50SW5zZXQpDQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0
aW9uUmVtb3RlLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCSh3b3JraW5nIGNv
cHkpDQpAQCAtNzgwLDExICs3ODAsNyBAQCBzdGF0aWMgdm9pZCBhZGRBbmltYXRpb25Ub0xheWVy
KENBTGF5ZXIgDQogICAgICAgICAgICAgICAgIFtzcHJpbmdBbmltYXRpb24gc2V0TWFzczpmdW5j
dGlvbi5tYXNzKCldOw0KICAgICAgICAgICAgICAgICBbc3ByaW5nQW5pbWF0aW9uIHNldFN0aWZm
bmVzczpmdW5jdGlvbi5zdGlmZm5lc3MoKV07DQogICAgICAgICAgICAgICAgIFtzcHJpbmdBbmlt
YXRpb24gc2V0RGFtcGluZzpmdW5jdGlvbi5kYW1waW5nKCldOw0KLSNpZiBQTEFURk9STShJT1Mp
IHx8IFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDExMDANCiAgICAgICAgICAgICAgICAgW3NwcmluZ0FuaW1hdGlvbiBzZXRJbml0aWFsVmVsb2Np
dHk6ZnVuY3Rpb24uaW5pdGlhbFZlbG9jaXR5KCldOw0KLSNlbHNlDQotICAgICAgICAgICAgICAg
IFtzcHJpbmdBbmltYXRpb24gc2V0VmVsb2NpdHk6ZnVuY3Rpb24uaW5pdGlhbFZlbG9jaXR5KCld
Ow0KLSNlbmRpZg0KICAgICAgICAgICAgIH0NCiAgICAgICAgIH0NCiAgICAgICAgIGNhQW5pbWF0
aW9uID0gc3ByaW5nQW5pbWF0aW9uOw0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0NCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQkod29ya2luZyBj
b3B5KQ0KQEAgLTM0Niw3ICszNDYsNiBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
OjpmbHVzaExhDQogICAgIGlmIChtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0KQ0KICAgICAgICAg
dmlzaWJsZVJlY3QuaW50ZXJzZWN0KG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QudmFsdWUoKSk7
DQogDQotI2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApDQogICAgIFJlZlB0cjxXZWJQYWdlPiByZXRh
aW5lZFBhZ2UgPSAmbV93ZWJQYWdlOw0KICAgICBbQ0FUcmFuc2FjdGlvbiBhZGRDb21taXRIYW5k
bGVyOltyZXRhaW5lZFBhZ2VdIHsNCiAgICAgICAgIGlmIChQYWdlKiBjb3JlUGFnZSA9IHJldGFp
bmVkUGFnZS0+Y29yZVBhZ2UoKSkgew0KQEAgLTM1NCw3ICszNTMsNiBAQCB2b2lkIFJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExhDQogICAgICAgICAgICAgICAgIGNvcmVQYWdlLT5p
bnNwZWN0b3JDb250cm9sbGVyKCkuZGlkQ29tcG9zaXRlKCpjb3JlRnJhbWUpOw0KICAgICAgICAg
fQ0KICAgICB9IGZvclBoYXNlOmtDQVRyYW5zYWN0aW9uUGhhc2VQb3N0Q29tbWl0XTsNCi0jZW5k
aWYNCiANCiAgICAgbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKS0+Zmx1c2hDb21wb3NpdGluZ1N0
YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7DQogDQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQ0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEubW0JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
Lm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtNDI4LDcgKzQyOCw2IEBAIGJvb2wgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6OmZsdXMNCiAgICAgICAgICAgICBtX3ZpZXdPdmVybGF5Um9vdExh
eWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUodmlzaWJsZVJlY3QpOw0KIA0KICAgICAgICAgUmVm
UHRyPFdlYlBhZ2U+IHJldGFpbmVkUGFnZSA9ICZtX3dlYlBhZ2U7DQotI2lmIFRBUkdFVF9PU19J
UEhPTkUgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDExMDApDQogICAgICAgICBbQ0FUcmFuc2FjdGlvbiBhZGRDb21taXRIYW5kbGVyOlty
ZXRhaW5lZFBhZ2VdIHsNCiAgICAgICAgICAgICBpZiAoUGFnZSogY29yZVBhZ2UgPSByZXRhaW5l
ZFBhZ2UtPmNvcmVQYWdlKCkpIHsNCiAgICAgICAgICAgICAgICAgaWYgKEZyYW1lKiBjb3JlRnJh
bWUgPSByZXRhaW5lZFBhZ2UtPm1haW5GcmFtZSgpKQ0KQEAgLTQzNywxMiArNDM2LDYgQEAgYm9v
bCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Zmx1cw0KICAgICAgICAgICAgIGlmIChh
dXRvIGRyYXdpbmdBcmVhID0gc3RhdGljX2Nhc3Q8VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWEqPihyZXRhaW5lZFBhZ2UtPmRyYXdpbmdBcmVhKCkpKQ0KICAgICAgICAgICAgICAgICBkcmF3
aW5nQXJlYS0+c2VuZFBlbmRpbmdOZXdseVJlYWNoZWRMYXlvdXRNaWxlc3RvbmVzKCk7DQogICAg
ICAgICB9IGZvclBoYXNlOmtDQVRyYW5zYWN0aW9uUGhhc2VQb3N0Q29tbWl0XTsNCi0jZWxzZQ0K
LSAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3JldGFp
bmVkUGFnZV0gew0KLSAgICAgICAgICAgIGlmIChhdXRvIGRyYXdpbmdBcmVhID0gc3RhdGljX2Nh
c3Q8VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEqPihyZXRhaW5lZFBhZ2UtPmRyYXdpbmdB
cmVhKCkpKQ0KLSAgICAgICAgICAgICAgICBkcmF3aW5nQXJlYS0+c2VuZFBlbmRpbmdOZXdseVJl
YWNoZWRMYXlvdXRNaWxlc3RvbmVzKCk7DQotICAgICAgICB9KTsNCi0jZW5kaWYNCiANCiAgICAg
ICAgIGJvb2wgcmV0dXJuVmFsdWUgPSBtX3dlYlBhZ2UubWFpbkZyYW1lVmlldygpLT5mbHVzaENv
bXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMoKTsNCiAjaWYgRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykNCkBAIC01NjcsMjEgKzU2MCwxNCBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhOjp1cGRhDQogDQogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07DQogDQotICAg
IGlmIChmbHVzaFN5bmNocm9ub3VzbHkpIHsNCisgICAgaWYgKGZsdXNoU3luY2hyb25vdXNseSkN
CiAgICAgICAgIFtDQVRyYW5zYWN0aW9uIGZsdXNoXTsNCi0jaWYgIUhBVkUoQ09SRUFOSU1BVElP
Tl9GRU5DRVMpDQotICAgICAgICAvLyBXZSBjYW4ndCBzeW5jaHJvbml6ZSBoZXJlIGlmIHdlJ3Jl
IHVzaW5nIGZlbmNlcyBvciB3ZSdsbCBibG93IHRoZSBmZW5jZSBldmVyeSB0aW1lIChhbmQgd2Ug
ZG9uJ3QgbmVlZCB0bykuDQotICAgICAgICBbQ0FUcmFuc2FjdGlvbiBzeW5jaHJvbml6ZV07DQot
I2VuZGlmDQotICAgIH0NCiANCiAgICAgbV93ZWJQYWdlLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdB
cmVhUHJveHk6OkRpZFVwZGF0ZUdlb21ldHJ5KCkpOw0KIA0KICAgICBtX2luVXBkYXRlR2VvbWV0
cnkgPSBmYWxzZTsNCiANCi0jaWYgSEFWRShDT1JFQU5JTUFUSU9OX0ZFTkNFUykNCiAgICAgbV9s
YXllckhvc3RpbmdDb250ZXh0LT5zZXRGZW5jZVBvcnQoZmVuY2VQb3J0LnNlbmRSaWdodCgpKTsN
Ci0jZW5kaWYNCiB9DQogDQogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2V0
RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpDQpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0NCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQko
cmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQg
V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHINCiAgICAgICAgIEpTQzo6cHJvY2Vz
c0NvbmZpZ0ZpbGUoamF2YVNjcmlwdENvbmZpZ0ZpbGUubGF0aW4xKCkuZGF0YSgpLCAiY29tLmFw
cGxlLldlYktpdC5XZWJDb250ZW50IiwgcGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlm
aWVyLmxhdGluMSgpLmRhdGEoKSk7DQogICAgIH0NCiANCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KKyNpZiBQTEFURk9STShN
QUMpDQogICAgIHNldFNoYXJlZEhUVFBDb29raWVTdG9yYWdlKHBhcmFtZXRlcnMudWlQcm9jZXNz
Q29va2llU3RvcmFnZUlkZW50aWZpZXIpOw0KICNlbmRpZg0KIA0KQEAgLTE2Myw5ICsxNjMsNyBA
QCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByDQogICAgIE1ldGhvZCBt
ZXRob2RUb1BhdGNoID0gY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2QoW05TQXBwbGljYXRpb24gY2xh
c3NdLCBAc2VsZWN0b3IoYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQpKTsNCiAgICAgbWV0
aG9kX3NldEltcGxlbWVudGF0aW9uKG1ldGhvZFRvUGF0Y2gsIChJTVApTlNBcHBsaWNhdGlvbkFj
Y2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50KTsNCiAjZW5kaWYNCi0jaWYgVEFSR0VUX09TX0lQ
SE9ORSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTEwMCkNCiAgICAgX0NGTmV0d29ya1NldEFUU0NvbnRleHQocGFyYW1ldGVycy5uZXR3
b3JrQVRTQ29udGV4dC5nZXQoKSk7DQotI2VuZGlmDQogDQogI2lmIFRBUkdFVF9PU19JUEhPTkUN
CiAgICAgLy8gUHJpb3JpdHkgZGVjYXkgb24gaU9TIDkgaXMgaW1wYWN0aW5nIHBhZ2UgbG9hZCB0
aW1lIHNvIHdlIGZpeCB0aGUgcHJpb3JpdHkgb2YgdGhlIFdlYlByb2Nlc3MnIG1haW4gdGhyZWFk
IChyZGFyOi8vcHJvYmxlbS8yMjAwMzExMikuDQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZp
c2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpDQpAQCAtMSwzICsxLDI0IEBADQorMjAxNy0wNy0wMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpA
YXBwbGUuY29tPg0KKw0KKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIChPT1BTISku
DQorICAgICAgICBOZWVkIHRoZSBidWcgVVJMIChPT1BTISkuDQorDQorICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54
Y2NvbmZpZzoNCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmln
Og0KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoNCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZzoNCisgICAgICAgICogUGx1
Z2lucy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbToNCisgICAgICAgICgtW1dlYkJhc2VQbHVnaW5Q
YWNrYWdlIGdldFBsdWdpbkluZm9Gcm9tUExpc3RzXSk6DQorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1BvcHVwTWVudU1hYy5tbToNCisgICAgICAgIChQb3B1cE1lbnVNYWM6OnNob3cpOg0KKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06DQorICAgICAgICAo
V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnN0YXJ0V2luZG93RHJhZyk6DQorICAgICAgICAo
LVtXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVyIHdpbmRvd10pOg0KKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZXcubW06DQorICAgICAgICAoLVtXZWJWaWV3IF9hbmltYXRpb25Db250cm9sbGVy
Rm9yRGljdGlvbmFyeUxvb2t1cFBvcHVwSW5mbzpdKToNCisNCiAyMDE3LTA2LTMwICBEYW5pZWwg
QmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIEFQSTo6RnJhbWVJbmZvIHNo
b3VsZCBrbm93IHRoZSB3ZWIgcGFnZSB0aGF0IGNvbnRhaW5zIHRoZSBmcmFtZTsgYWRkIEFQSSBw
cm9wZXJ0eSB3ZWJWaWV3IHRvIFdLRnJhbWVJbmZvDQpJbmRleDogU291cmNlL1dlYktpdC9tYWMv
Q29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJL
aXQvbWFjL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisr
KyBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCSh3b3JraW5n
IGNvcHkpDQpAQCAtNzksNyArNzksNiBAQCBQUkVCSU5ESU5HID0gTk87DQogV0FSTklOR19DRkxB
R1MgPSAtV2FsbCAtV2V4dHJhIC1XY2hhci1zdWJzY3JpcHRzIC1XZXh0cmEtdG9rZW5zIC1XZm9y
bWF0LXNlY3VyaXR5IC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlz
c2luZy1ub3JldHVybiAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVdwYWNrZWQgLVdwb2ludGVyLWFy
aXRoIC1XcmVkdW5kYW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1l
LWRlc3RydWN0b3JzIC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJl
IC1XaW1wbGljaXQtZmFsbHRocm91Z2g7DQogDQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFK
T1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChNQUNPU1hfREVQTE9ZTUVOVF9U
QVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsNCi1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpP
Ul8xMCA9IDEwMTAwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMSA9IDEwMTEw
MDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMiA9IDEwMTIwMDsNCiBUQVJHRVRf
TUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMyA9IDEwMTMwMDsNCkluZGV4OiBTb3VyY2UvV2ViS2l0
L21hYy9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcNCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJ
KHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9E
ZWJ1Z1JlbGVhc2UueGNjb25maWcJKHdvcmtpbmcgY29weSkNCkBAIC0zMCw3ICszMCw2IEBAIE9O
TFlfQUNUSVZFX0FSQ0ggPSBZRVM7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAk
KE1BQ19PU19YX1ZFUlNJT05fTUFKT1IpOw0KIA0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9
ICQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXyQoUExBVEZPUk1fTkFNRSlfJChUQVJHRVRfTUFD
X09TX1hfVkVSU0lPTl9NQUpPUikpOw0KLU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hf
MTAxMDAwID0gMTAuMTA7DQogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDExMDAg
PSAxMC4xMTsNCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTIwMCA9IDEwLjEy
Ow0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMzAwID0gMTAuMTM7DQpAQCAt
NDIsNyArNDEsNiBAQCBERUJVR19JTkZPUk1BVElPTl9GT1JNQVQgPSBkd2FyZjsNCiBXRUJLSVRf
U1lTVEVNX0lOVEVSRkFDRV9MSUJSQVJZW3Nkaz1pcGhvbmVvcypdID0gV2ViS2l0U3lzdGVtSW50
ZXJmYWNlSU9TRGV2aWNlJChXS19UQVJHRVRfSU9TX1ZFUlNJT05fTUFKT1IpOw0KIFdFQktJVF9T
WVNURU1fSU5URVJGQUNFX0xJQlJBUllbc2RrPWlwaG9uZXNpbXVsYXRvcipdID0gV2ViS2l0U3lz
dGVtSW50ZXJmYWNlSU9TU2ltdWxhdG9yJChXS19UQVJHRVRfSU9TX1ZFUlNJT05fTUFKT1IpOw0K
IFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllbc2RrPW1hY29zeCpdID0gJChXRUJLSVRf
U1lTVEVNX0lOVEVSRkFDRV9MSUJSQVJZX21hY29zeF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9O
X01BSk9SKSk7DQotV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfMTAxMDAw
ID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNlWW9zZW1pdGU7DQogV0VCS0lUX1NZU1RFTV9JTlRFUkZB
Q0VfTElCUkFSWV9tYWNvc3hfMTAxMTAwID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNlRWxDYXBpdGFu
Ow0KIFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllfbWFjb3N4XzEwMTIwMCA9IFdlYktp
dFN5c3RlbUludGVyZmFjZU9TWDEwLjEyOw0KIFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJB
UllfbWFjb3N4XzEwMTMwMCA9ICQoV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNv
c3hfMTAxMjAwKTsNCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQor
KysgU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcJKHdvcmtpbmcgY29weSkNCkBAIC0zMiwxMSArMzIsOSBAQA0KIC8vIFNldCBhbnkgRU5BQkxF
X0ZFQVRVUkVfTkFNRSBtYWNybyB0byBhbiBlbXB0eSBzdHJpbmcgdG8gZGlzYWJsZSB0aGF0IGZl
YXR1cmUuDQogDQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDAgPSAk
KFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEyMDAwXyQoVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTUFKT1IpKTsNCi1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5f
MTAxMjAwMF8xMDEwMDAgPSBZRVM7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFO
XzEwMTIwMDBfMTAxMTAwID0gWUVTOw0KIA0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1Nf
VEhBTl8xMDEzMDAwID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAw
MF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQotVEFSR0VUX01BQ19PU19YX1ZF
UlNJT05fTEVTU19USEFOXzEwMTMwMDBfMTAxMDAwID0gWUVTOw0KIFRBUkdFVF9NQUNfT1NfWF9W
RVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwXzEwMTEwMCA9IFlFUzsNCiBUQVJHRVRfTUFDX09TX1hf
VkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAwMF8xMDEyMDAgPSBZRVM7DQogDQpJbmRleDogU291cmNl
L1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZw0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcJKHJl
dmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9WZXJz
aW9uLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtMzUsNyArMzUsNiBAQCBTSE9SVF9WRVJT
SU9OX1NUUklORyA9ICQoU0hPUlRfVkVSU0lPTl9TDQogLy8gVGhlIHN5c3RlbSB2ZXJzaW9uIHBy
ZWZpeCBpcyBiYXNlZCBvbiB0aGUgY3VycmVudCBzeXN0ZW0gdmVyc2lvbi4NCiBTWVNURU1fVkVS
U0lPTl9QUkVGSVhbc2RrPWlwaG9uZSpdID0gODsNCiBTWVNURU1fVkVSU0lPTl9QUkVGSVggPSAk
KFNZU1RFTV9WRVJTSU9OX1BSRUZJWF8kKFBMQVRGT1JNX05BTUUpXyQoVEFSR0VUX01BQ19PU19Y
X1ZFUlNJT05fTUFKT1IpKTsNCi1TWVNURU1fVkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEwMTAwMCA9
IDEwOw0KIFNZU1RFTV9WRVJTSU9OX1BSRUZJWF9tYWNvc3hfMTAxMTAwID0gMTE7DQogU1lTVEVN
X1ZFUlNJT05fUFJFRklYX21hY29zeF8xMDEyMDAgPSAxMjsNCiBTWVNURU1fVkVSU0lPTl9QUkVG
SVhfbWFjb3N4XzEwMTMwMCA9IDEzOw0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMv
V2ViQmFzZVBsdWdpblBhY2thZ2UubW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNrYWdlLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysg
U291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbQkod29ya2lu
ZyBjb3B5KQ0KQEAgLTE0MiwzMiArMTQyLDkgQEAgLSAoQk9PTClnZXRQbHVnaW5JbmZvRnJvbVBM
aXN0cw0KICAgICBpZiAoIWNmQnVuZGxlKQ0KICAgICAgICAgcmV0dXJuIE5POw0KICAgICANCi0g
ICAgTlNEaWN0aW9uYXJ5ICpNSU1FVHlwZXMgPSBuaWw7DQotDQotI2lmIFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDEwMDANCi0gICAgTlNTdHJp
bmcgKnBMaXN0RmlsZW5hbWUgPSBbc2VsZiBfb2JqZWN0Rm9ySW5mb0RpY3Rpb25hcnlLZXk6V2Vi
UGx1Z2luTUlNRVR5cGVzRmlsZW5hbWVLZXldOw0KLSAgICANCi0gICAgLy8gQ2hlY2sgaWYgdGhl
IE1JTUUgdHlwZXMgYXJlIGNsYWltZWQgaW4gYSBwbGlzdCBpbiB0aGUgdXNlcidzIHByZWZlcmVu
Y2VzIGRpcmVjdG9yeS4NCi0gICAgaWYgKHBMaXN0RmlsZW5hbWUpIHsNCi0gICAgICAgIE5TU3Ry
aW5nICpwTGlzdFBhdGggPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVAL0xpYnJhcnkv
UHJlZmVyZW5jZXMvJUAiLCBOU0hvbWVEaXJlY3RvcnkoKSwgcExpc3RGaWxlbmFtZV07DQotICAg
ICAgICBOU0RpY3Rpb25hcnkgKnBMaXN0ID0gW3NlbGYgcExpc3RGb3JQYXRoOnBMaXN0UGF0aCBj
cmVhdGVGaWxlOk5PXTsNCi0gICAgICAgIGlmIChwTGlzdCkgew0KLSAgICAgICAgICAgIC8vIElm
IHRoZSBwbGlzdCBpc24ndCBsb2NhbGl6ZWQsIGhhdmUgdGhlIHBsdWctaW4gcmVjcmVhdGUgaXQg
aW4gdGhlIHByZWZlcnJlZCBsYW5ndWFnZS4NCi0gICAgICAgICAgICBOU1N0cmluZyAqbG9jYWxp
emF0aW9uTmFtZSA9IFtwTGlzdCBvYmplY3RGb3JLZXk6V2ViUGx1Z2luTG9jYWxpemF0aW9uTmFt
ZUtleV07DQotICAgICAgICAgICAgaWYgKCFbbG9jYWxpemF0aW9uTmFtZSBpc0VxdWFsVG9TdHJp
bmc6cHJlZmVycmVkQnVuZGxlTG9jYWxpemF0aW9uTmFtZSgpXSkNCi0gICAgICAgICAgICAgICAg
cExpc3QgPSBbc2VsZiBwTGlzdEZvclBhdGg6cExpc3RQYXRoIGNyZWF0ZUZpbGU6WUVTXTsNCi0g
ICAgICAgICAgICBNSU1FVHlwZXMgPSBbcExpc3Qgb2JqZWN0Rm9yS2V5OldlYlBsdWdpbk1JTUVU
eXBlc0tleV07DQotICAgICAgICB9IGVsc2UNCi0gICAgICAgICAgICAvLyBQbGlzdCBkb2Vzbid0
IGV4aXN0LCBhc2sgdGhlIHBsdWctaW4gdG8gY3JlYXRlIGl0Lg0KLSAgICAgICAgICAgIE1JTUVU
eXBlcyA9IFtbc2VsZiBwTGlzdEZvclBhdGg6cExpc3RQYXRoIGNyZWF0ZUZpbGU6WUVTXSBvYmpl
Y3RGb3JLZXk6V2ViUGx1Z2luTUlNRVR5cGVzS2V5XTsNCi0gICAgfQ0KLSNlbmRpZg0KLQ0KLSAg
ICBpZiAoIU1JTUVUeXBlcykgew0KLSAgICAgICAgTUlNRVR5cGVzID0gW3NlbGYgX29iamVjdEZv
ckluZm9EaWN0aW9uYXJ5S2V5OldlYlBsdWdpbk1JTUVUeXBlc0tleV07DQotICAgICAgICBpZiAo
IU1JTUVUeXBlcykNCi0gICAgICAgICAgICByZXR1cm4gTk87DQotICAgIH0NCisgICAgTlNEaWN0
aW9uYXJ5ICpNSU1FVHlwZXMgPSBbc2VsZiBfb2JqZWN0Rm9ySW5mb0RpY3Rpb25hcnlLZXk6V2Vi
UGx1Z2luTUlNRVR5cGVzS2V5XTsNCisgICAgaWYgKCFNSU1FVHlwZXMpDQorICAgICAgICByZXR1
cm4gTk87DQogDQogICAgIE5TRW51bWVyYXRvciAqa2V5RW51bWVyYXRvciA9IFtNSU1FVHlwZXMg
a2V5RW51bWVyYXRvcl07DQogICAgIE5TRGljdGlvbmFyeSAqTUlNRURpY3Rpb25hcnk7DQpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFj
Lm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvUG9wdXBNZW51TWFjLm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtMTQ5LDkgKzE0OSw3IEBAIHZv
aWQgUG9wdXBNZW51TWFjOjpzaG93KGNvbnN0IEludFJlY3QmIHINCiAgICAgW21fcG9wdXAgc2V0
VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbjp0ZXh0RGlyZWN0aW9uID09IExUUiA/IE5TVXNl
ckludGVyZmFjZUxheW91dERpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNVc2VySW50ZXJmYWNlTGF5
b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnRdOw0KIA0KICAgICBOU01lbnUgKm1lbnUgPSBbbV9wb3B1
cCBtZW51XTsNCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAN
CiAgICAgW21lbnUgc2V0VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbjp0ZXh0RGlyZWN0aW9u
ID09IExUUiA/IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNV
c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnRdOw0KLSNlbmRpZg0KIA0KICAg
ICBOU1BvaW50IGxvY2F0aW9uOw0KICAgICBDVEZvbnRSZWYgZm9udCA9IG1fY2xpZW50LT5tZW51
U3R5bGUoKS5mb250KCkucHJpbWFyeUZvbnQoKS5nZXRDVEZvbnQoKTsNCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0NCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGll
bnQubW0JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0JKHdvcmtpbmcgY29weSkNCkBAIC0yMTgsOSArMjE4
LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZnJvbnRlbg0KIA0KIHZvaWQg
V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnN0YXJ0V2luZG93RHJhZygpDQogew0KLSNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KICAgICBbW21fZnJvbnRl
bmRXaW5kb3dDb250cm9sbGVyIHdpbmRvd10gcGVyZm9ybVdpbmRvd0RyYWdXaXRoRXZlbnQ6W05T
QXBwIGN1cnJlbnRFdmVudF1dOw0KLSNlbmRpZg0KIH0NCiANCiBTdHJpbmcgV2ViSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQ6OmxvY2FsaXplZFN0cmluZ3NVUkwoKQ0KQEAgLTQ3MywxMiArNDcxLDEw
IEBAIC0gKE5TV2luZG93ICopd2luZG93DQogICAgIFt3aW5kb3cgc2V0TWluU2l6ZTpOU01ha2VT
aXplKG1pbmltdW1XaW5kb3dXaWR0aCwgbWluaW11bVdpbmRvd0hlaWdodCldOw0KICAgICBbd2lu
ZG93IHNldENvbGxlY3Rpb25CZWhhdmlvcjooW3dpbmRvdyBjb2xsZWN0aW9uQmVoYXZpb3JdIHwg
TlNXaW5kb3dDb2xsZWN0aW9uQmVoYXZpb3JGdWxsU2NyZWVuUHJpbWFyeSldOw0KIA0KLSNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KICAgICBDR0Zsb2F0IGFw
cHJveGltYXRlbHlIYWxmU2NyZWVuU2l6ZSA9ICh3aW5kb3cuc2NyZWVuLmZyYW1lLnNpemUud2lk
dGggLyAyKSAtIDQ7DQogICAgIENHRmxvYXQgbWluaW11bUZ1bGxTY3JlZW5XaWR0aCA9IHN0ZDo6
bWF4PENHRmxvYXQ+KDYzNiwgYXBwcm94aW1hdGVseUhhbGZTY3JlZW5TaXplKTsNCiAgICAgW3dp
bmRvdyBzZXRNaW5GdWxsU2NyZWVuQ29udGVudFNpemU6TlNNYWtlU2l6ZShtaW5pbXVtRnVsbFNj
cmVlbldpZHRoLCBtaW5pbXVtV2luZG93SGVpZ2h0KV07DQogICAgIFt3aW5kb3cgc2V0Q29sbGVj
dGlvbkJlaGF2aW9yOihbd2luZG93IGNvbGxlY3Rpb25CZWhhdmlvcl0gfCBOU1dpbmRvd0NvbGxl
Y3Rpb25CZWhhdmlvckZ1bGxTY3JlZW5BbGxvd3NUaWxpbmcpXTsNCi0jZW5kaWYNCiANCiAgICAg
d2luZG93LnRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50ID0gWUVTOw0KIA0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQ0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTkzODIs
NyArOTM4Miw2IEBAIC0gKE5TUmVjdClfY29udmVydFJlY3RGcm9tUm9vdFZpZXc6KE5TUmUNCiB9
DQogDQogI2lmIFBMQVRGT1JNKE1BQykNCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDEwMDANCiAtIChXZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyICopX2ltbWVk
aWF0ZUFjdGlvbkNvbnRyb2xsZXINCiB7DQogICAgIHJldHVybiBfcHJpdmF0ZS0+aW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlcjsNCkBAIC05NDAxLDcgKzk0MDAsNiBAQCAtIChpZClfYW5pbWF0aW9u
Q29udHJvbGxlckZvckRpY3Rpb25hcnlMDQogICAgICAgICByZXR1cm4gW3NlbGYgX2NvbnZlcnRS
ZWN0RnJvbVJvb3RWaWV3OnJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNdOw0KICAgICB9KTsNCiB9
DQotI2VuZGlmIC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwDQog
DQogLSAoTlNFdmVudCAqKV9wcmVzc3VyZUV2ZW50DQogew0KSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwkocmV2
aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQ0KQEAgLTEsMyArMSwxMyBAQA0KKzIwMTctMDctMDEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFw
cGxlLmNvbT4NCisNCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiAoT09QUyEpLg0K
KyAgICAgICAgTmVlZCB0aGUgYnVnIFVSTCAoT09QUyEpLg0KKw0KKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2UueGNj
b25maWc6DQorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZzoN
CisNCiAyMDE3LTA2LTMwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPg0KIA0KICAg
ICAgICAgUmFuIHNvcnQtWGNvZGUtcHJvamVjdC1maWxlLg0KSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcNCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvYm1h
bGxvYy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysg
U291cmNlL2JtYWxsb2MvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwkod29ya2luZyBjb3B5
KQ0KQEAgLTg2LDcgKzg2LDYgQEAgUFJFQklORElORyA9IE5POw0KIFdBUk5JTkdfQ0ZMQUdTID0g
LVdhbGwgLVdleHRyYSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2V4dHJhLXRva2Vu
cyAtV2Zvcm1hdD0yIC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlz
c2luZy1ub3JldHVybiAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMg
LVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwt
Y29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3Vn
aDsNCiANCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VUX01BQ19PU19Y
X1ZFUlNJT05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6aWRlbnRpZmll
cikpOw0KLVRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzEwID0gMTAxMDAwOw0KIFRBUkdF
VF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzExID0gMTAxMTAwOw0KIFRBUkdFVF9NQUNfT1NfWF9W
RVJTSU9OX01BSk9SXzEyID0gMTAxMjAwOw0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9S
XzEzID0gMTAxMzAwOw0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NvbmZpZ3VyYXRpb25zL0RlYnVn
UmVsZWFzZS54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9ibWFsbG9jL0NvbmZpZ3Vy
YXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJj
ZS9ibWFsbG9jL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwkod29ya2luZyBj
b3B5KQ0KQEAgLTI5LDcgKzI5LDYgQEAgT05MWV9BQ1RJVkVfQVJDSCA9IFlFUzsNCiBUQVJHRVRf
TUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoTUFDX09TX1hfVkVSU0lPTl9NQUpPUik7DQogDQog
TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfJChQ
TEFURk9STV9OQU1FKV8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQotTUFDT1NY
X0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDEwMDAgPSAxMC4xMDsNCiBNQUNPU1hfREVQTE9Z
TUVOVF9UQVJHRVRfbWFjb3N4XzEwMTEwMCA9IDEwLjExOw0KIE1BQ09TWF9ERVBMT1lNRU5UX1RB
UkdFVF9tYWNvc3hfMTAxMjAwID0gMTAuMTI7DQogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21h
Y29zeF8xMDEzMDAgPSAxMC4xMzsNCkluZGV4OiBUb29scy9DaGFuZ2VMb2cNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxOTA0OSkNCisrKyBUb29scy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkNCkBAIC0xLDMgKzEsMzYgQEANCisyMDE3LTA3LTAxICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+DQorDQorICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3Jp
cHRpb24gKE9PUFMhKS4NCisgICAgICAgIE5lZWQgdGhlIGJ1ZyBVUkwgKE9PUFMhKS4NCisNCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9tYWMvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoNCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvbWFjL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZzoNCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOg0KKyAgICAgICAg
KHNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzRm9yVGVzdGluZyk6DQorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mby5tbToNCisgICAgICAg
ICgtW0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvIHJlc2V0U3ByaW5nTG9hZGluZ10pOg0KKyAg
ICAgICAgKiBNaW5pQnJvd3Nlci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnOg0KKyAgICAg
ICAgKiBNaW5pQnJvd3Nlci9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWc6DQor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoNCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25m
aWc6DQorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWc6DQorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db21w
bGV4VGV4dENvbnRyb2xsZXIuY3BwOg0KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6
DQorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9XZWJDb3JlTlNV
UkxTZXNzaW9uLm1tOg0KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9EcmFnQW5k
RHJvcFBhc3RlYm9hcmRUZXN0cy5tbToNCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW06DQorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVF9GKToNCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU3RyaW5nVHJ1
bmNhdG9yLm1tOg0KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOg0KKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6DQorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnOg0K
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1
bmRsZU1hYy5tbToNCisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpwbGF0Zm9ybUluaXRp
YWxpemUpOg0KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVy
RHJhZ2dpbmdJbmZvLm1tOg0KKyAgICAgICAgKC1bV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5m
byByZXNldFNwcmluZ0xvYWRpbmddKToNCisNCiAyMDE3LTA3LTAxICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+DQogDQogICAgICAgICBSZXBsYWNlIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZSBDIEFQSSB3aXRoIENvY29hIFNQSQ0KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFRvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFRvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTEw
MjMsNyArMTAyMyw3IEBAIHN0YXRpYyB2b2lkIHNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWUN
CiAgICAgICAgIEAiTlNPdmVybGF5U2Nyb2xsZXJzRW5hYmxlZCI6IEBOTywNCiAgICAgICAgIEAi
QXBwbGVTaG93U2Nyb2xsQmFycyI6IEAiQWx3YXlzIiwNCiAgICAgICAgIEAiTlNCdXR0b25Bbmlt
YXRpb25zRW5hYmxlZCI6IEBOTywgLy8gSWRlYWxseSwgd2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8g
dGVzdCBhbmltYXRpb25zLCBidXQgZm9yIG5vdywgbWFrZSBzdXJlIHRoYXQgdGhlIGR1bXBlZCBz
bmFwc2hvdCBtYXRjaGVzIGFjdHVhbCBzdGF0ZS4NCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEIDwgMTAxMjAwDQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTIwMA0KICAgICAgICAgQCJBcHBsZVN5c3RlbUZv
bnRPU1N1YnZlcnNpb24iOiBAKDEwKSwNCiAjZW5kaWYNCiAgICAgICAgIEAiTlNXaW5kb3dEaXNw
bGF5V2l0aFJ1bkxvb3BPYnNlcnZlciI6IEBZRVMsIC8vIFRlbXBvcmFyeSB3b3JrYXJvdW5kLCBz
ZWUgPHJkYXI6Ly9wcm9ibGVtLzIwMzUxMjk3Pi4NCkBAIC0xMDQzLDcgKzEwNDMsNyBAQCBzdGF0
aWMgdm9pZCBzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlDQogICAgICAgICBXZWJTdG9yYWdl
RGlyZWN0b3J5RGVmYXVsdHNLZXk6IFtsaWJyYXJ5UGF0aCBzdHJpbmdCeUFwcGVuZGluZ1BhdGhD
b21wb25lbnQ6QCJMb2NhbFN0b3JhZ2UiXSwNCiAgICAgICAgIFdlYktpdExvY2FsQ2FjaGVEZWZh
dWx0c0tleTogW2xpYnJhcnlQYXRoIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIkxv
Y2FsQ2FjaGUiXSwNCiAgICAgICAgIFdlYktpdFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnlEZWZhdWx0c0tleTogW2xpYnJhcnlQYXRoIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVu
dDpAIkxvY2FsU3RvcmFnZSJdLA0KLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPCAxMDEyMDANCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEIDwgMTAxMjAwDQogICAgICAgICAvLyBUaGlzIG5lZWRzIHRvIGFsc28gYmUg
YWRkZWQgdG8gYXJndW1lbnQgZG9tYWluIGJlY2F1c2Ugb2YgPHJkYXI6Ly9wcm9ibGVtLzIwMjEw
MDAyPi4NCiAgICAgICAgIEAiQXBwbGVTeXN0ZW1Gb250T1NTdWJ2ZXJzaW9uIjogQCgxMCksDQog
I2VuZGlmDQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlRHJh
Z2dpbmdJbmZvLm1tDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1
bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1tCSh3b3JraW5n
IGNvcHkpDQpAQCAtMTQyLDcgKzE0Miw2IEBAIC0gKHZvaWQpZW51bWVyYXRlRHJhZ2dpbmdJdGVt
c1dpdGhPcHRpb24NCiAgICAgLy8gSWdub3JlZC4NCiB9DQogDQotI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NQVhfQUxMT1dFRCA+PSAxMDExMDANCiAtKE5TU3ByaW5nTG9hZGluZ0hpZ2hsaWdodClz
cHJpbmdMb2FkaW5nSGlnaGxpZ2h0DQogew0KICAgICByZXR1cm4gTlNTcHJpbmdMb2FkaW5nSGln
aGxpZ2h0Tm9uZTsNCkBAIC0xNTEsNyArMTUwLDYgQEAgLShOU1NwcmluZ0xvYWRpbmdIaWdobGln
aHQpc3ByaW5nTG9hZGluZw0KIC0gKHZvaWQpcmVzZXRTcHJpbmdMb2FkaW5nDQogew0KIH0NCi0j
ZW5kaWYNCiANCiBAZW5kDQogDQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0NvbmZp
Z3VyYXRpb25zL0Jhc2UueGNjb25maWcNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBUb29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQ0K
KysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmln
CSh3b3JraW5nIGNvcHkpDQpAQCAtODIsNyArODIsNiBAQCBERUJVR19ERUZJTkVTX25vcm1hbCA9
IE5ERUJVRzsNCiBERUJVR19ERUZJTkVTID0gJChERUJVR19ERUZJTkVTXyQoQ1VSUkVOVF9WQVJJ
QU5UKSk7DQogDQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50
aWZpZXIpKTsNCi1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMCA9IDEwMTAwMDsNCiBU
QVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMSA9IDEwMTEwMDsNCiBUQVJHRVRfTUFDX09T
X1hfVkVSU0lPTl9NQUpPUl8xMiA9IDEwMTIwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9N
QUpPUl8xMyA9IDEwMTMwMDsNCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQ29uZmln
dXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwkocmV2
aXNpb24gMjE5MDQ4KQ0KKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9Db25maWd1cmF0aW9u
cy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHdvcmtpbmcgY29weSkNCkBAIC0zMCw3ICszMCw2IEBA
IE9OTFlfQUNUSVZFX0FSQ0ggPSBZRVM7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1Ig
PSAkKE1BQ19PU19YX1ZFUlNJT05fTUFKT1IpOw0KIA0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdF
VFtzZGs9bWFjb3N4Kl0gPSAkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfJChUQVJH
RVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOw0KLU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9t
YWNvc3hfMTAxMDAwID0gMTAuMTA7DQogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8x
MDExMDAgPSAxMC4xMTsNCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTIwMCA9
IDEwLjEyOw0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMzAwID0gMTAuMTM7
DQpAQCAtMzksNyArMzgsNiBAQCBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTQw
MCA9DQogV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWVtzZGs9aXBob25lb3MqXSA9IFdl
YktpdFN5c3RlbUludGVyZmFjZUlPU0RldmljZSQoV0tfVEFSR0VUX0lPU19WRVJTSU9OX01BSk9S
KTsNCiBXRUJLSVRfU1lTVEVNX0lOVEVSRkFDRV9MSUJSQVJZW3Nkaz1pcGhvbmVzaW11bGF0b3Iq
XSA9IFdlYktpdFN5c3RlbUludGVyZmFjZUlPU1NpbXVsYXRvciQoV0tfVEFSR0VUX0lPU19WRVJT
SU9OX01BSk9SKTsNCiBXRUJLSVRfU1lTVEVNX0lOVEVSRkFDRV9MSUJSQVJZW3Nkaz1tYWNvc3gq
XSA9ICQoV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfJChUQVJHRVRfTUFD
X09TX1hfVkVSU0lPTl9NQUpPUikpOw0KLVdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllf
bWFjb3N4XzEwMTAwMCA9IFdlYktpdFN5c3RlbUludGVyZmFjZVlvc2VtaXRlOw0KIFdFQktJVF9T
WVNURU1fSU5URVJGQUNFX0xJQlJBUllfbWFjb3N4XzEwMTEwMCA9IFdlYktpdFN5c3RlbUludGVy
ZmFjZUVsQ2FwaXRhbjsNCiBXRUJLSVRfU1lTVEVNX0lOVEVSRkFDRV9MSUJSQVJZX21hY29zeF8x
MDEyMDAgPSBXZWJLaXRTeXN0ZW1JbnRlcmZhY2VPU1gxMC4xMjsNCiBXRUJLSVRfU1lTVEVNX0lO
VEVSRkFDRV9MSUJSQVJZX21hY29zeF8xMDEzMDAgPSAkKFdFQktJVF9TWVNURU1fSU5URVJGQUNF
X0xJQlJBUllfbWFjb3N4XzEwMTIwMCk7DQpJbmRleDogVG9vbHMvTWluaUJyb3dzZXIvQ29uZmln
dXJhdGlvbnMvQmFzZS54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFRvb2xzL01pbmlCcm93c2Vy
L0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBUb29s
cy9NaW5pQnJvd3Nlci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkp
DQpAQCAtNjAsNyArNjAsNiBAQCBHQ0NfTk9fQ09NTU9OX0JMT0NLUyA9IFlFUzsNCiBTVVBQT1JU
RURfUExBVEZPUk1TID0gaXBob25lb3MgaXBob25lc2ltdWxhdG9yIG1hY29zeCB0dm9zIHR2c2lt
dWxhdG9yIHdhdGNob3Mgd2F0Y2hzaW11bGF0b3I7DQogDQogVEFSR0VUX01BQ19PU19YX1ZFUlNJ
T05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChNQUNPU1hfREVQTE9Z
TUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsNCi1UQVJHRVRfTUFDX09TX1hfVkVSU0lP
Tl9NQUpPUl8xMCA9IDEwMTAwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMSA9
IDEwMTEwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMiA9IDEwMTIwMDsNCiBU
QVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMyA9IDEwMTMwMDsNCkluZGV4OiBUb29scy9N
aW5pQnJvd3Nlci9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBUb29scy9NaW5pQnJvd3Nlci9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNj
b25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBUb29scy9NaW5pQnJvd3Nlci9Db25maWd1cmF0
aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHdvcmtpbmcgY29weSkNCkBAIC0zMCw3ICszMCw2
IEBAIE9OTFlfQUNUSVZFX0FSQ0ggPSBZRVM7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFK
T1IgPSAkKE1BQ19PU19YX1ZFUlNJT05fTUFKT1IpOw0KIA0KIE1BQ09TWF9ERVBMT1lNRU5UX1RB
UkdFVCA9ICQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJ
T05fTUFKT1IpKQ0KLU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8xMDEwMDAgPSAxMC4xMDsNCiBN
QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfMTAxMTAwID0gMTAuMTE7DQogTUFDT1NYX0RFUExPWU1F
TlRfVEFSR0VUXzEwMTIwMCA9IDEwLjEyOw0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8xMDEz
MDAgPSAxMC4xMzsNCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0Jh
c2UueGNjb25maWcNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBUb29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3Vy
YXRpb25zL0Jhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHdvcmtpbmcgY29weSkNCkBAIC03
Myw3ICs3Myw2IEBAIERFQlVHX0RFRklORVMgPSAkKERFQlVHX0RFRklORVNfJChDVVJSRU4NCiBT
VVBQT1JURURfUExBVEZPUk1TID0gaXBob25lb3MgaXBob25lc2ltdWxhdG9yIG1hY29zeCBhcHBs
ZXR2b3MgYXBwbGV0dnNpbXVsYXRvciB3YXRjaG9zIHdhdGNoc2ltdWxhdG9yOw0KIA0KIFRBUkdF
VF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpP
UiQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUOnN1ZmZpeDppZGVudGlmaWVyKSk7DQotVEFSR0VU
X01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTAgPSAxMDEwMDA7DQogVEFSR0VUX01BQ19PU19YX1ZF
UlNJT05fTUFKT1JfMTEgPSAxMDExMDA7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1Jf
MTIgPSAxMDEyMDA7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7
DQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2Uu
eGNjb25maWcNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBUb29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRp
b25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnCSh3b3JraW5n
IGNvcHkpDQpAQCAtMzAsNyArMzAsNiBAQCBPTkxZX0FDVElWRV9BUkNIID0gWUVTOw0KIFRBUkdF
VF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChNQUNfT1NfWF9WRVJTSU9OX01BSk9SKTsNCiAN
CiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8k
KFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSkNCi1NQUNPU1hfREVQTE9ZTUVOVF9UQVJH
RVRfMTAxMDAwID0gMTAuMTA7DQogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXzEwMTEwMCA9IDEw
LjExOw0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8xMDEyMDAgPSAxMC4xMjsNCiBNQUNPU1hf
REVQTE9ZTUVOVF9UQVJHRVRfMTAxMzAwID0gMTAuMTM7DQpJbmRleDogVG9vbHMvVGVzdFdlYktp
dEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZw0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtMzIsMTEg
KzMyLDkgQEANCiAvLyBTZXQgYW55IEVOQUJMRV9GRUFUVVJFX05BTUUgbWFjcm8gdG8gYW4gZW1w
dHkgc3RyaW5nIHRvIGRpc2FibGUgdGhhdCBmZWF0dXJlLg0KIA0KIFRBUkdFVF9NQUNfT1NfWF9W
RVJTSU9OX0xFU1NfVEhBTl8xMDEyMDAwID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNT
X1RIQU5fMTAxMjAwMF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQotVEFSR0VU
X01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDBfMTAxMDAwID0gWUVTOw0KIFRBUkdF
VF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEyMDAwXzEwMTEwMCA9IFlFUzsNCiANCiBU
QVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAwMCA9ICQoVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDBfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9N
QUpPUikpOw0KLVRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwXzEwMTAw
MCA9IFlFUzsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAwMF8xMDEx
MDAgPSBZRVM7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDBfMTAx
MjAwID0gWUVTOw0KIA0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
b21wbGV4VGV4dENvbnRyb2xsZXIuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDIx
OTA0OCkNCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29tcGxleFRleHRD
b250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTUzLDEzICs1Myw4IEBAIFRFU1RfRihD
b21wbGV4VGV4dENvbnRyb2xsZXJUZXN0LCBJbml0aWENCiAgICAgZm9udC51cGRhdGUoKTsNCiAg
ICAgYXV0byBzcGFjZVdpZHRoID0gZm9udC5wcmltYXJ5Rm9udCgpLnNwYWNlV2lkdGgoKTsNCiAN
Ci0jaWYgVVNFX0xBWU9VVF9TUEVDSUZJQ19BRFZBTkNFUw0KICAgICBWZWN0b3I8RmxvYXRTaXpl
PiBhZHZhbmNlcyA9IHsgRmxvYXRTaXplKCksIEZsb2F0U2l6ZSgyMS42NDA2MjUsIDAuMCksIEZs
b2F0U2l6ZSg0Mi4zMDQ2ODc1LCAwLjApLCBGbG9hdFNpemUoNTUuODk4NDM3NSwgMC4wKSwgRmxv
YXRTaXplKDIyLjM0Mzc1LCAwLjApIH07DQogICAgIFZlY3RvcjxGbG9hdFBvaW50PiBvcmlnaW5z
ID0geyBGbG9hdFBvaW50KC0xNS4xNTYyNSwgMTguMDQ2ODc1KSwgRmxvYXRQb2ludCgpLCBGbG9h
dFBvaW50KCksIEZsb2F0UG9pbnQoKSwgRmxvYXRQb2ludCgpIH07DQotI2Vsc2UNCi0gICAgVmVj
dG9yPEZsb2F0U2l6ZT4gYWR2YW5jZXMgPSB7IEZsb2F0U2l6ZSgxNS4xNTYyNSwgLTE4LjA0Njg3
NSksIEZsb2F0U2l6ZSgyMS42NDA2MjUsIDAuMCksIEZsb2F0U2l6ZSg0Mi4zMDQ2ODc1LCAwLjAp
LCBGbG9hdFNpemUoNTUuODk4NDM3NSwgMC4wKSwgRmxvYXRTaXplKDIyLjM0Mzc1LCAwLjApIH07
DQotICAgIFZlY3RvcjxGbG9hdFBvaW50PiBvcmlnaW5zID0geyB9Ow0KLSNlbmRpZg0KIA0KICAg
ICBGbG9hdFNpemUgaW5pdGlhbEFkdmFuY2UgPSBGbG9hdFNpemUoLTE1LjE1NjI1LCAxOC4wNDY4
NzUpOw0KIA0KQEAgLTEwNCwxMyArOTksOCBAQCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVy
VGVzdCwgSW5pdGlhDQogICAgIEZvbnRDYXNjYWRlIGZvbnQoZGVzY3JpcHRpb24pOw0KICAgICBm
b250LnVwZGF0ZSgpOw0KIA0KLSNpZiBVU0VfTEFZT1VUX1NQRUNJRklDX0FEVkFOQ0VTDQogICAg
IFZlY3RvcjxGbG9hdFNpemU+IGFkdmFuY2VzID0geyBGbG9hdFNpemUoKSwgRmxvYXRTaXplKDIx
LjY0MDYyNSwgMC4wKSwgRmxvYXRTaXplKDQyLjMwNDY4NzUsIDAuMCksIEZsb2F0U2l6ZSg1NS44
OTg0Mzc1LCAwLjApLCBGbG9hdFNpemUoMjIuMzQzNzUsIDAuMCkgfTsNCiAgICAgVmVjdG9yPEZs
b2F0UG9pbnQ+IG9yaWdpbnMgPSB7IEZsb2F0UG9pbnQoLTE1LjE1NjI1LCAxOC4wNDY4NzUpLCBG
bG9hdFBvaW50KCksIEZsb2F0UG9pbnQoKSwgRmxvYXRQb2ludCgpLCBGbG9hdFBvaW50KCkgfTsN
Ci0jZWxzZQ0KLSAgICBWZWN0b3I8RmxvYXRTaXplPiBhZHZhbmNlcyA9IHsgRmxvYXRTaXplKDE1
LjE1NjI1LCAtMTguMDQ2ODc1KSwgRmxvYXRTaXplKDIxLjY0MDYyNSwgMC4wKSwgRmxvYXRTaXpl
KDQyLjMwNDY4NzUsIDAuMCksIEZsb2F0U2l6ZSg1NS44OTg0Mzc1LCAwLjApLCBGbG9hdFNpemUo
MjIuMzQzNzUsIDAuMCkgfTsNCi0gICAgVmVjdG9yPEZsb2F0UG9pbnQ+IG9yaWdpbnMgPSB7IH07
DQotI2VuZGlmDQogDQogICAgIEZsb2F0U2l6ZSBpbml0aWFsQWR2YW5jZSA9IEZsb2F0U2l6ZSgt
MTUuMTU2MjUsIDE4LjA0Njg3NSk7DQogDQpAQCAtMTU0LDEzICsxNDQsOCBAQCBURVNUX0YoQ29t
cGxleFRleHRDb250cm9sbGVyVGVzdCwgSW5pdGlhDQogICAgIGZvbnQudXBkYXRlKCk7DQogICAg
IGF1dG8gc3BhY2VXaWR0aCA9IGZvbnQucHJpbWFyeUZvbnQoKS5zcGFjZVdpZHRoKCk7DQogDQot
I2lmIFVTRV9MQVlPVVRfU1BFQ0lGSUNfQURWQU5DRVMNCiAgICAgVmVjdG9yPEZsb2F0U2l6ZT4g
YWR2YW5jZXMgPSB7IEZsb2F0U2l6ZSg3Ni4zNDc2NTYsIDAuMDAwMDAwKSwgRmxvYXRTaXplKDAu
MDAwMDAwLCAwLjAwMDAwMCkgfTsNCiAgICAgVmVjdG9yPEZsb2F0UG9pbnQ+IG9yaWdpbnMgPSB7
IEZsb2F0UG9pbnQoKSwgRmxvYXRQb2ludCgtMjMuMjgxMjUwLCAtOC4zOTg0MzgpIH07DQotI2Vs
c2UNCi0gICAgVmVjdG9yPEZsb2F0U2l6ZT4gYWR2YW5jZXMgPSB7IEZsb2F0U2l6ZSg1My4wNjY0
MDYsIC04LjM5ODQzOCksIEZsb2F0U2l6ZSgyMy4yODEyNTAsIDguMzk4NDM4KSB9Ow0KLSAgICBW
ZWN0b3I8RmxvYXRQb2ludD4gb3JpZ2lucyA9IHsgfTsNCi0jZW5kaWYNCiANCiAgICAgRmxvYXRT
aXplIGluaXRpYWxBZHZhbmNlID0gRmxvYXRTaXplKDI4LjE0NDUzMSwgMCk7DQogDQpAQCAtMjAx
LDEzICsxODYsOCBAQCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVyVGVzdCwgSW5pdGlhDQog
ICAgIEZvbnRDYXNjYWRlIGZvbnQoZGVzY3JpcHRpb24pOw0KICAgICBmb250LnVwZGF0ZSgpOw0K
IA0KLSNpZiBVU0VfTEFZT1VUX1NQRUNJRklDX0FEVkFOQ0VTDQogICAgIFZlY3RvcjxGbG9hdFNp
emU+IGFkdmFuY2VzID0geyBGbG9hdFNpemUoNzYuMzQ3NjU2LCAwLjAwMDAwMCksIEZsb2F0U2l6
ZSgwLjAwMDAwMCwgMC4wMDAwMDApIH07DQogICAgIFZlY3RvcjxGbG9hdFBvaW50PiBvcmlnaW5z
ID0geyBGbG9hdFBvaW50KCksIEZsb2F0UG9pbnQoLTIzLjI4MTI1MCwgLTguMzk4NDM4KSB9Ow0K
LSNlbHNlDQotICAgIFZlY3RvcjxGbG9hdFNpemU+IGFkdmFuY2VzID0geyBGbG9hdFNpemUoNTMu
MDY2NDA2LCAtOC4zOTg0MzgpLCBGbG9hdFNpemUoMjMuMjgxMjUwLCA4LjM5ODQzOCkgfTsNCi0g
ICAgVmVjdG9yPEZsb2F0UG9pbnQ+IG9yaWdpbnMgPSB7IH07DQotI2VuZGlmDQogDQogICAgIEZs
b2F0U2l6ZSBpbml0aWFsQWR2YW5jZSA9IEZsb2F0U2l6ZSgyOC4xNDQ1MzEsIDApOw0KIA0KQEAg
LTM2NCwxMSArMzQ0LDcgQEAgVEVTVF9GKENvbXBsZXhUZXh0Q29udHJvbGxlclRlc3QsIFRvdGFs
Vw0KICAgICBmb250LnVwZGF0ZSgpOw0KIA0KICAgICBWZWN0b3I8RmxvYXRTaXplPiBhZHZhbmNl
cyA9IHsgRmxvYXRTaXplKDEsIDApLCBGbG9hdFNpemUoMiwgMCksIEZsb2F0U2l6ZSg0LCAwKSwg
RmxvYXRTaXplKDgsIDApLCBGbG9hdFNpemUoMTYsIDApIH07DQotI2lmIFVTRV9MQVlPVVRfU1BF
Q0lGSUNfQURWQU5DRVMNCiAgICAgVmVjdG9yPEZsb2F0UG9pbnQ+IG9yaWdpbnMgPSB7IEZsb2F0
UG9pbnQoKSwgRmxvYXRQb2ludCgpLCBGbG9hdFBvaW50KCksIEZsb2F0UG9pbnQoKSwgRmxvYXRQ
b2ludCgpIH07DQotI2Vsc2UNCi0gICAgVmVjdG9yPEZsb2F0UG9pbnQ+IG9yaWdpbnMgPSB7IH07
DQotI2VuZGlmDQogDQogICAgIEZsb2F0U2l6ZSBpbml0aWFsQWR2YW5jZSA9IEZsb2F0U2l6ZSgp
Ow0KIA0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9XZWJD
b3JlTlNVUkxTZXNzaW9uLm1tDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0JKHJldmlzaW9uIDIxOTA0
OCkNCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvV2ViQ29yZU5T
VVJMU2Vzc2lvbi5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTI1LDcgKzI1LDcgQEANCiANCiAjaW1w
b3J0ICJjb25maWcuaCINCiANCi0jaWYgIVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCisjaWYgIVBMQVRGT1JNKElPUykNCiANCiAjaW1w
b3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIg0KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0luaXRp
YWxpemVUaHJlYWRpbmcuaD4NCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9E
cmFnQW5kRHJvcFBhc3RlYm9hcmRUZXN0cy5tbQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0RyYWdBbmREcm9wUGFzdGVib2FyZFRlc3RzLm1tCShyZXZpc2lv
biAyMTkwNDgpDQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRHJhZ0FuZERyb3BQ
YXN0ZWJvYXJkVGVzdHMubW0JKHdvcmtpbmcgY29weSkNCkBAIC0xODksOCArMTg5LDYgQEAgLSAo
dm9pZCllbnVtZXJhdGVEcmFnZ2luZ0l0ZW1zV2l0aE9wdGlvbg0KIHsNCiB9DQogDQotI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDExMDANCi0NCiAtIChOU1NwcmluZ0xv
YWRpbmdIaWdobGlnaHQpc3ByaW5nTG9hZGluZ0hpZ2hsaWdodA0KIHsNCiAgICAgcmV0dXJuIE5T
U3ByaW5nTG9hZGluZ0hpZ2hsaWdodE5vbmU7DQpAQCAtMjAwLDggKzE5OCw2IEBAIC0gKHZvaWQp
cmVzZXRTcHJpbmdMb2FkaW5nDQogew0KIH0NCiANCi0jZW5kaWYNCi0NCiBAZW5kDQogDQogbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkgew0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL0Z1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1tDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0JKHJl
dmlzaW9uIDIxOTA0OCkNCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2Ny
ZWVuWm9vbUluaXRpYWxGcmFtZS5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTE4OSwxMiArMTg5LDgg
QEAgVEVTVF9GKEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLCBXZWJLaQ0KICAgICBydW5XZWJL
aXQxVGVzdCgpOw0KIH0NCiANCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
IDEwMTAwMA0KIC8vIEZJWE1FOjxyZGFyOi8vcHJvYmxlbS8yMDUwNDQwMz4NCiBURVNUX0YoRnVs
bHNjcmVlblpvb21Jbml0aWFsRnJhbWUsIERJU0FCTEVEX1dlYktpdDIpDQotI2Vsc2UNCi1URVNU
X0YoRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUsIFdlYktpdDIpDQotI2VuZGlmDQogew0KICAg
ICBydW5XZWJLaXQyVGVzdCgpOw0KIH0NCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9TdHJpbmdUcnVuY2F0b3IubW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9TdHJpbmdUcnVuY2F0b3IubW0JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TdHJpbmdUcnVuY2F0b3IubW0JKHdvcmtpbmcg
Y29weSkNCkBAIC0zNSwxMSArMzUsNyBAQCBURVNUKFdlYktpdDEsIFN0cmluZ1RydW5jYXRvcikN
CiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7DQogICAgICAgICBFWFBFQ1RfRVEobmlsLCBbV2ViU3Ry
aW5nVHJ1bmNhdG9yIGNlbnRlclRydW5jYXRlU3RyaW5nOkAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1
dnd4eXoiIHRvV2lkdGg6MTAwIHdpdGhGb250Om5pbF0pOw0KICAgICAgICAgRVhQRUNUX1NUUkVR
KFtbV2ViU3RyaW5nVHJ1bmNhdG9yIGNlbnRlclRydW5jYXRlU3RyaW5nOkAiYWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXoiIHRvV2lkdGg6MTAwIHdpdGhGb250OltOU0ZvbnQgZm9udFdpdGhOYW1l
OkAiSGVsdmV0aWNhIiBzaXplOjEyXV0gVVRGOFN0cmluZ10sICJhYmNkZWZn4oCmdHV2d3h5eiIp
Ow0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID4gMTAxMDAwDQogICAgICAg
ICBFWFBFQ1RfU1RSRVEoW1tXZWJTdHJpbmdUcnVuY2F0b3IgY2VudGVyVHJ1bmNhdGVTdHJpbmc6
QCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIgdG9XaWR0aDoxMDBdIFVURjhTdHJpbmddLCAi
YWJjZGVm4oCmdXZ3eHl6Iik7DQotI2Vsc2UNCi0gICAgICAgIEVYUEVDVF9TVFJFUShbW1dlYlN0
cmluZ1RydW5jYXRvciBjZW50ZXJUcnVuY2F0ZVN0cmluZzpAImFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6IiB0b1dpZHRoOjEwMF0gVVRGOFN0cmluZ10sICJhYmNkZWbigKZ2d3h5eiIpOw0KLSNl
bmRpZg0KICAgICAgICAgRVhQRUNUX0VRKG5pbCwgW1dlYlN0cmluZ1RydW5jYXRvciByaWdodFRy
dW5jYXRlU3RyaW5nOkAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiIHRvV2lkdGg6MTAwIHdp
dGhGb250Om5pbF0pOw0KICAgICAgICAgRVhQRUNUX1NUUkVRKFtbV2ViU3RyaW5nVHJ1bmNhdG9y
IHJpZ2h0VHJ1bmNhdGVTdHJpbmc6QCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIgdG9XaWR0
aDoxMDAgd2l0aEZvbnQ6W05TRm9udCBmb250V2l0aE5hbWU6QCJIZWx2ZXRpY2EiIHNpemU6MTJd
XSBVVEY4U3RyaW5nXSwgImFiY2RlZmdoaWprbG1ub+KApiIpOw0KICAgICAgICAgRVhQRUNUX1NU
UkVRKFtbV2ViU3RyaW5nVHJ1bmNhdG9yIGNlbnRlclRydW5jYXRlU3RyaW5nOkAixIFiY2RlZmdo
aWprbG1ub3BxcnN0dXZ3eHl6IiB0b1dpZHRoOjEwMCB3aXRoRm9udDpbTlNGb250IGZvbnRXaXRo
TmFtZTpAIkhlbHZldGljYSIgc2l6ZToxMl1dIFVURjhTdHJpbmddLCAixIFiY2RlZmfigKZ0dXZ3
eHl6Iik7DQpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9CYXNl
LnhjY29uZmlnDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1
cmF0aW9ucy9CYXNlLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpA
QCAtNTYsNyArNTYsNiBAQCBERUJVR19ERUZJTkVTX25vcm1hbCA9IE5ERUJVRzsNCiBERUJVR19E
RUZJTkVTID0gJChERUJVR19ERUZJTkVTXyQoQ1VSUkVOVF9WQVJJQU5UKSk7DQogDQogVEFSR0VU
X01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9S
JChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsNCi1UQVJHRVRf
TUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMCA9IDEwMTAwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVS
U0lPTl9NQUpPUl8xMSA9IDEwMTEwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8x
MiA9IDEwMTIwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMyA9IDEwMTMwMDsN
CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFz
ZS54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ29uZmln
dXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJ
KHdvcmtpbmcgY29weSkNCkBAIC0zMCw3ICszMCw2IEBAIE9OTFlfQUNUSVZFX0FSQ0ggPSBZRVM7
DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKE1BQ19PU19YX1ZFUlNJT05fTUFK
T1IpOw0KIA0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9ICQoTUFDT1NYX0RFUExPWU1FTlRf
VEFSR0VUXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKQ0KLU1BQ09TWF9ERVBMT1lN
RU5UX1RBUkdFVF8xMDEwMDAgPSAxMC4xMDsNCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfMTAx
MTAwID0gMTAuMTE7DQogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXzEwMTIwMCA9IDEwLjEyOw0K
IE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8xMDEzMDAgPSAxMC4xMzsNCkBAIC0zOSw3ICszOCw2
IEBAIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8xMDE0MDAgPSAxMC4xNDsNCiBXRUJLSVRfU1lT
VEVNX0lOVEVSRkFDRV9MSUJSQVJZW3Nkaz1pcGhvbmVvcypdID0gV2ViS2l0U3lzdGVtSW50ZXJm
YWNlSU9TRGV2aWNlJChXS19UQVJHRVRfSU9TX1ZFUlNJT05fTUFKT1IpOw0KIFdFQktJVF9TWVNU
RU1fSU5URVJGQUNFX0xJQlJBUllbc2RrPWlwaG9uZXNpbXVsYXRvcipdID0gV2ViS2l0U3lzdGVt
SW50ZXJmYWNlSU9TU2ltdWxhdG9yJChXS19UQVJHRVRfSU9TX1ZFUlNJT05fTUFKT1IpOw0KIFdF
QktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllbc2RrPW1hY29zeCpdID0gJChXRUJLSVRfU1lT
VEVNX0lOVEVSRkFDRV9MSUJSQVJZX21hY29zeF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01B
Sk9SKSk7DQotV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfMTAxMDAwID0g
V2ViS2l0U3lzdGVtSW50ZXJmYWNlWW9zZW1pdGU7DQogV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0Vf
TElCUkFSWV9tYWNvc3hfMTAxMTAwID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNlRWxDYXBpdGFuOw0K
IFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllfbWFjb3N4XzEwMTIwMCA9IFdlYktpdFN5
c3RlbUludGVyZmFjZU9TWDEwLjEyOw0KIFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllf
bWFjb3N4XzEwMTMwMCA9ICQoV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hf
MTAxMjAwKTsNCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21h
Yy9JbmplY3RlZEJ1bmRsZU1hYy5tbQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFjLm1tCShyZXZpc2lvbiAy
MTkwNDgpDQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvSW5q
ZWN0ZWRCdW5kbGVNYWMubW0JKHdvcmtpbmcgY29weSkNCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQg
SW5qZWN0ZWRCdW5kbGU6OnBsYXRmb3JtSW5pdGlhbGl6ZSgNCiAgICAgICAgICAgICBAIndlbGxj
b21lIjogQCJ3ZWxjb21lIiwNCiAgICAgICAgICAgICBAImhlbGxvbGZ3b3JsZCI6IEAiaGVsbG9c
bndvcmxkIg0KICAgICAgICAgfSwNCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDExMDAgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTIwMA0K
KyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMjAwDQogICAgICAgICBA
IkFwcGxlU3lzdGVtRm9udE9TU3VidmVyc2lvbiI6IEAoMTApLA0KICNlbmRpZg0KICAgICAgICAg
QCJBcHBsZUVuYWJsZVN3aXBlTmF2aWdhdGVXaXRoU2Nyb2xscyI6IEBZRVMsDQpJbmRleDogVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5tbQ0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1dlYktpdFRlc3RSdW5u
ZXJEcmFnZ2luZ0luZm8ubW0JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBUb29scy9XZWJLaXRUZXN0
UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLm1tCSh3b3JraW5nIGNvcHkp
DQpAQCAtMTQ2LDcgKzE0Niw2IEBAIC0gKHZvaWQpZW51bWVyYXRlRHJhZ2dpbmdJdGVtc1dpdGhP
cHRpb24NCiAgICAgLy8gSWdub3JlZC4NCiB9DQogDQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
QVhfQUxMT1dFRCA+PSAxMDExMDANCiAtKE5TU3ByaW5nTG9hZGluZ0hpZ2hsaWdodClzcHJpbmdM
b2FkaW5nSGlnaGxpZ2h0DQogew0KICAgICByZXR1cm4gTlNTcHJpbmdMb2FkaW5nSGlnaGxpZ2h0
Tm9uZTsNCkBAIC0xNTUsNiArMTU0LDUgQEAgLShOU1NwcmluZ0xvYWRpbmdIaWdobGlnaHQpc3By
aW5nTG9hZGluZw0KIC0gKHZvaWQpcmVzZXRTcHJpbmdMb2FkaW5nDQogew0KIH0NCi0jZW5kaWYN
CiANCiBAZW5kDQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314390</attachid>
            <date>2017-07-01 13:41:05 -0700</date>
            <delta_ts>2017-07-01 13:41:05 -0700</delta_ts>
            <desc>Remove unneeded code</desc>
            <filename>file_174067.txt</filename>
            <type>text/plain</type>
            <size>186548</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwx
NiBAQA0KKzIwMTctMDctMDEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4NCisNCisg
ICAgICAgIFttYWNPU10gUmVtb3ZlIGNvZGUgb25seSBuZWVkZWQgd2hlbiBidWlsZGluZyBmb3Ig
T1MgWCBZb3NlbWl0ZQ0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3NDA2Nw0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQor
DQorICAgICAgICAqIEFQSS9XZWJLaXRBdmFpbGFiaWxpdHkuaDoNCisgICAgICAgICogQ29uZmln
dXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoNCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRGVidWdS
ZWxlYXNlLnhjY29uZmlnOg0KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZzoNCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZzoN
CisNCiAyMDE3LTA3LTAxICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPg0K
IA0KICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4IGZvciBHQ0MNCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL1dlYktpdEF2YWlsYWJpbGl0eS5oDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9XZWJLaXRBdmFpbGFiaWxpdHkuaAkocmV2aXNpb24g
MjE5MDQ4KQ0KKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvV2ViS2l0QXZhaWxhYmlsaXR5
LmgJKHdvcmtpbmcgY29weSkNCkBAIC02Niw3ICs2Niw3IEBADQogI2RlZmluZSBBVkFJTEFCTEVf
TUFDX09TX1hfVkVSU0lPTl8xMF8xMF9BTkRfTEFURVINCiAjZW5kaWYNCiANCi0jZW5kaWYgLyog
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDExMDAgKi8NCisjZW5kaWYgLyog
IVRBUkdFVF9PU19JUEhPTkUgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEw
MTEwMCAqLw0KIA0KICNpZiBkZWZpbmVkKEJVSUxESU5HX0dUS19fKQ0KICN1bmRlZiBDRl9BVkFJ
TEFCTEUNCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvQmFzZS54
Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0
aW9ucy9CYXNlLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHdvcmtpbmcgY29weSkNCkBAIC04
OSw3ICs4OSw2IEBAIFdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nhc3QtcXUNCiBI
RUFERVJfU0VBUkNIX1BBVEhTID0gLiAiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L3Vzci9sb2NhbC9p
bmNsdWRlIiAkKEhFQURFUl9TRUFSQ0hfUEFUSFMpOw0KIA0KIFRBUkdFVF9NQUNfT1NfWF9WRVJT
SU9OX01BSk9SID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiQoTUFDT1NYX0RFUExP
WU1FTlRfVEFSR0VUOnN1ZmZpeDppZGVudGlmaWVyKSk7DQotVEFSR0VUX01BQ19PU19YX1ZFUlNJ
T05fTUFKT1JfMTAgPSAxMDEwMDA7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTEg
PSAxMDExMDA7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTIgPSAxMDEyMDA7DQog
VEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7DQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZw0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9EZWJ1Z1Jl
bGVhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpA
QCAtMzAsNyArMzAsNiBAQCBPTkxZX0FDVElWRV9BUkNIID0gWUVTOw0KIFRBUkdFVF9NQUNfT1Nf
WF9WRVJTSU9OX01BSk9SID0gJChNQUNfT1NfWF9WRVJTSU9OX01BSk9SKTsNCiANCiBNQUNPU1hf
REVQTE9ZTUVOVF9UQVJHRVQgPSAkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8kKFBMQVRGT1JN
X05BTUUpXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsNCi1NQUNPU1hfREVQTE9Z
TUVOVF9UQVJHRVRfbWFjb3N4XzEwMTAwMCA9IDEwLjEwOw0KIE1BQ09TWF9ERVBMT1lNRU5UX1RB
UkdFVF9tYWNvc3hfMTAxMTAwID0gMTAuMTE7DQogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21h
Y29zeF8xMDEyMDAgPSAxMC4xMjsNCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEw
MTMwMCA9IDEwLjEzOw0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24g
MjE5MDQ4KQ0KKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQ0KQEAgLTMyLDExICszMiw5IEBADQogLy8g
U2V0IGFueSBFTkFCTEVfRkVBVFVSRV9OQU1FIG1hY3JvIHRvIGFuIGVtcHR5IHN0cmluZyB0byBk
aXNhYmxlIHRoYXQgZmVhdHVyZS4NCiANCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RI
QU5fMTAxMjAwMCA9ICQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDBf
JChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOw0KLVRBUkdFVF9NQUNfT1NfWF9WRVJT
SU9OX0xFU1NfVEhBTl8xMDEyMDAwXzEwMTAwMCA9IFlFUzsNCiBUQVJHRVRfTUFDX09TX1hfVkVS
U0lPTl9MRVNTX1RIQU5fMTAxMjAwMF8xMDExMDAgPSBZRVM7DQogDQogVEFSR0VUX01BQ19PU19Y
X1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDAgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xF
U1NfVEhBTl8xMDEzMDAwXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsNCi1UQVJH
RVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAwMF8xMDEwMDAgPSBZRVM7DQogVEFS
R0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDBfMTAxMTAwID0gWUVTOw0KIFRB
UkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwXzEwMTIwMCA9IFlFUzsNCiAN
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2Nv
bmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9u
cy9WZXJzaW9uLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcJKHdvcmtpbmcgY29weSkNCkBA
IC0zNSw3ICszNSw2IEBAIFNIT1JUX1ZFUlNJT05fU1RSSU5HID0gJChTSE9SVF9WRVJTSU9OX1MN
CiAvLyBUaGUgc3lzdGVtIHZlcnNpb24gcHJlZml4IGlzIGJhc2VkIG9uIHRoZSBjdXJyZW50IHN5
c3RlbSB2ZXJzaW9uLg0KIFNZU1RFTV9WRVJTSU9OX1BSRUZJWFtzZGs9aXBob25lKl0gPSA4Ow0K
IFNZU1RFTV9WRVJTSU9OX1BSRUZJWCA9ICQoU1lTVEVNX1ZFUlNJT05fUFJFRklYXyQoUExBVEZP
Uk1fTkFNRSlfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOw0KLVNZU1RFTV9WRVJT
SU9OX1BSRUZJWF9tYWNvc3hfMTAxMDAwID0gMTA7DQogU1lTVEVNX1ZFUlNJT05fUFJFRklYX21h
Y29zeF8xMDExMDAgPSAxMTsNCiBTWVNURU1fVkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEwMTIwMCA9
IDEyOw0KIFNZU1RFTV9WRVJTSU9OX1BSRUZJWF9tYWNvc3hfMTAxMzAwID0gMTM7DQpJbmRleDog
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDEz
IEBADQorMjAxNy0wNy0wMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPg0KKw0KKyAg
ICAgICAgW21hY09TXSBSZW1vdmUgY29kZSBvbmx5IG5lZWRlZCB3aGVuIGJ1aWxkaW5nIGZvciBP
UyBYIFlvc2VtaXRlDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc0MDY3DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisN
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoNCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnOg0KKw0KIDIwMTctMDYtMTAgIERhbiBC
ZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFJldmVydGVkIHIyMTgwNTYg
YmVjYXVzZSBpdCBtYWRlIHRoZSBJREUgcmVpbmRleCBjb25zdGFudGx5Lg0KSW5kZXg6IFNvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBTb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29u
ZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ29uZmln
dXJhdGlvbnMvQmFzZS54Y2NvbmZpZwkod29ya2luZyBjb3B5KQ0KQEAgLTQ5LDcgKzQ5LDYgQEAg
V0FSTklOR19DRkxBR1MgPSAtV2dsb2JhbC1jb25zdHJ1Y3RvcnMgLQ0KIFNVUFBPUlRFRF9QTEFU
Rk9STVMgPSBpcGhvbmVvcyBpcGhvbmVzaW11bGF0b3IgbWFjb3N4IGFwcGxldHZvcyBhcHBsZXR2
c2ltdWxhdG9yIHdhdGNob3Mgd2F0Y2hzaW11bGF0b3I7DQogDQogVEFSR0VUX01BQ19PU19YX1ZF
UlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChNQUNPU1hfREVQ
TE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsNCi1UQVJHRVRfTUFDX09TX1hfVkVS
U0lPTl9NQUpPUl8xMCA9IDEwMTAwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8x
MSA9IDEwMTEwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMiA9IDEwMTIwMDsN
CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMyA9IDEwMTMwMDsNCkluZGV4OiBTb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBTb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9Db25maWd1cmF0aW9ucy9E
ZWJ1Z1JlbGVhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHdvcmtpbmcg
Y29weSkNCkBAIC03LDcgKzcsNiBAQCBPTkxZX0FDVElWRV9BUkNIID0gWUVTOw0KIFRBUkdFVF9N
QUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChNQUNfT1NfWF9WRVJTSU9OX01BSk9SKTsNCiANCiBN
QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8kKFBM
QVRGT1JNX05BTUUpXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsNCi1NQUNPU1hf
REVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTAwMCA9IDEwLjEwOw0KIE1BQ09TWF9ERVBMT1lN
RU5UX1RBUkdFVF9tYWNvc3hfMTAxMTAwID0gMTAuMTE7DQogTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUX21hY29zeF8xMDEyMDAgPSAxMC4xMjsNCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFj
b3N4XzEwMTMwMCA9IDEwLjEzOw0KSW5kZXg6IFNvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9D
aGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwxMyBAQA0KKzIwMTctMDctMDEg
IERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4NCisNCisgICAgICAgIFttYWNPU10gUmVt
b3ZlIGNvZGUgb25seSBuZWVkZWQgd2hlbiBidWlsZGluZyBmb3IgT1MgWCBZb3NlbWl0ZQ0KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDA2Nw0KKw0K
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIENvbmZp
Z3VyYXRpb25zL0Jhc2UueGNjb25maWc6DQorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0RlYnVn
UmVsZWFzZS54Y2NvbmZpZzoNCisNCiAyMDE3LTA2LTI3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFVwZGF0ZSBib3Jpbmdzc2wgdG8gYzhmZjMwY2JlNzE2
YzcyMjc5YTZmNmE5ZDdkN2QwZDQwOTEyMjBmYQ0KSW5kZXg6IFNvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHJl
dmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJh
dGlvbnMvQmFzZS54Y2NvbmZpZwkod29ya2luZyBjb3B5KQ0KQEAgLTUwLDcgKzUwLDYgQEAgU1VQ
UE9SVEVEX1BMQVRGT1JNUyA9IGlwaG9uZW9zIGlwaG9uZXNpbQ0KIFZBTElEX0FSQ0hTID0gJChB
UkNIU19TVEFOREFSRF82NF9CSVQpOw0KIA0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9S
ID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiQoTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUOnN1ZmZpeDppZGVudGlmaWVyKSk7DQotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1Jf
MTAgPSAxMDEwMDA7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTEgPSAxMDExMDA7
DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTIgPSAxMDEyMDA7DQogVEFSR0VUX01B
Q19PU19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7DQpJbmRleDogU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZw0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KLS0tIFNvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9EZWJ1
Z1JlbGVhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnCSh3b3JraW5n
IGNvcHkpDQpAQCAtNyw3ICs3LDYgQEAgT05MWV9BQ1RJVkVfQVJDSCA9IFlFUzsNCiBUQVJHRVRf
TUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoTUFDX09TX1hfVkVSU0lPTl9NQUpPUik7DQogDQog
TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfJChQ
TEFURk9STV9OQU1FKV8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQotTUFDT1NY
X0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDEwMDAgPSAxMC4xMDsNCiBNQUNPU1hfREVQTE9Z
TUVOVF9UQVJHRVRfbWFjb3N4XzEwMTEwMCA9IDEwLjExOw0KIE1BQ09TWF9ERVBMT1lNRU5UX1RB
UkdFVF9tYWNvc3hfMTAxMjAwID0gMTAuMTI7DQogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21h
Y29zeF8xMDEzMDAgPSAxMC4xMzsNCkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZw0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTkwNDkpDQorKysgU291
cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkNCkBAIC0xLDMgKzEsMTcgQEANCisyMDE3
LTA3LTAxICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+DQorDQorICAgICAgICBbbWFj
T1NdIFJlbW92ZSBjb2RlIG9ubHkgbmVlZGVkIHdoZW4gYnVpbGRpbmcgZm9yIE9TIFggWW9zZW1p
dGUNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQw
NjcNCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAg
KiBDb25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnOg0KKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9EZWJ1Z1JlbGVhc2UueGNjb25maWc6DQorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOg0KKyAg
ICAgICAgKiB3dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlEZWNsYXJhdGlvbnMuaDoNCisgICAg
ICAgICogd3RmL3NwaS9jb2NvYS9TZWN1cml0eVNQSS5oOg0KKyAgICAgICAgKiB3dGYvdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5jcHA6DQorDQogMjAxNy0wNy0wMSAgSm9zZXBoIFBlY29yYXJvICA8
cGVjb3Jhcm9AYXBwbGUuY29tPg0KIA0KICAgICAgICAgQWRkIGEgd2FybmluZyBpZiBXRUJHTDIg
aXMgZW5hYmxlZCB3aXRob3V0IFdFQkdMDQpJbmRleDogU291cmNlL1dURi9Db25maWd1cmF0aW9u
cy9CYXNlLnhjY29uZmlnDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dURi9Db25maWd1cmF0aW9u
cy9CYXNlLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dURi9Db25maWd1
cmF0aW9ucy9CYXNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtODgsNyArODgsNiBAQCBX
QVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEgLVdjYXN0LXF1DQogSEVBREVSX1NFQVJDSF9Q
QVRIUyA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKS91c3IvbG9jYWwvaW5jbHVkZSAkKERTVFJPT1Qp
L3Vzci9sb2NhbC9pbmNsdWRlIGljdSAkKEhFQURFUl9TRUFSQ0hfUEFUSFMpOw0KIA0KIFRBUkdF
VF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpP
UiQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUOnN1ZmZpeDppZGVudGlmaWVyKSk7DQotVEFSR0VU
X01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTAgPSAxMDEwMDA7DQogVEFSR0VUX01BQ19PU19YX1ZF
UlNJT05fTUFKT1JfMTEgPSAxMDExMDA7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1Jf
MTIgPSAxMDEyMDA7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7
DQpJbmRleDogU291cmNlL1dURi9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV1RGL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54
Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XVEYvQ29uZmlndXJhdGlvbnMv
RGVidWdSZWxlYXNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtMjksNyArMjksNiBAQCBP
TkxZX0FDVElWRV9BUkNIID0gWUVTOw0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0g
JChNQUNfT1NfWF9WRVJTSU9OX01BSk9SKTsNCiANCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQg
PSAkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8kKFBMQVRGT1JNX05BTUUpXyQoVEFSR0VUX01B
Q19PU19YX1ZFUlNJT05fTUFKT1IpKTsNCi1NQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4
XzEwMTAwMCA9IDEwLjEwOw0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMTAw
ID0gMTAuMTE7DQogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDEyMDAgPSAxMC4x
MjsNCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTMwMCA9IDEwLjEzOw0KSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dURi93dGYvUGxh
dGZvcm0uaAkod29ya2luZyBjb3B5KQ0KQEAgLTU3MywxMiArNTczLDYgQEANCiAjZGVmaW5lIFVT
RV9QTFVHSU5fSE9TVF9QUk9DRVNTIDENCiAjZW5kaWYNCiANCi0jaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCi0jZGVmaW5lIEhBVkVfTlNTQ1JPTExJTkdfRklM
VEVSUyAxDQotI2Vsc2UNCi0jZGVmaW5lIEhBVkVfTlNTQ1JPTExJTkdfRklMVEVSUyAwDQotI2Vu
ZGlmDQotDQogLyogT1MgWCBkZWZpbmVzIGEgc2VyaWVzIG9mIHBsYXRmb3JtIG1hY3JvcyBmb3Ig
ZGVidWdnaW5nLiAqLw0KIC8qIFNvbWUgb2YgdGhlbSBhcmUgcmVhbGx5IGFubm95aW5nIGJlY2F1
c2UgdGhleSB1c2UgY29tbW9uIG5hbWVzIChlLmcuIGNoZWNrKCkpLiAqLw0KIC8qIERpc2FibGUg
dGhvc2UgbWFjcm9zIHNvIHRoYXQgd2UgYXJlIG5vdCBsaW1pdGVkIGluIGhvdyB3ZSBuYW1lIG1l
dGhvZHMgYW5kIGZ1bmN0aW9ucy4gKi8NCkBAIC0xMTQ1LDcgKzExMzksNyBAQA0KICNkZWZpbmUg
VVNFX0lOU0VSVElPTl9VTkRPX0dST1VQSU5HIDENCiAjZW5kaWYNCiANCi0jaWYgKFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApIHx8IFBM
QVRGT1JNKElPUykNCisjaWYgUExBVEZPUk0oQ09DT0EpDQogI2RlZmluZSBIQVZFX1RJTUlOR0RB
VEFPUFRJT05TIDENCiAjZW5kaWYNCiANCkBAIC0xMjAxLDExICsxMTk1LDYgQEANCiAjZGVmaW5l
IFVTRV9NRURJQVRPT0xCT1ggMQ0KICNlbmRpZg0KIA0KLS8qIFdoaWxlIDEwLjEwIGhhcyBzdXBw
b3J0IGZvciBmZW5jZXMsIGl0IGlzIG1pc3Npbmcgc29tZSBBUEkgaW1wb3J0YW50IGZvciBvdXIg
aW50ZWdyYXRpb24gb2YgdGhlbS4gKi8NCi0jaWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkNCi0jZGVm
aW5lIEhBVkVfQ09SRUFOSU1BVElPTl9GRU5DRVMgMQ0KLSNlbmRpZg0KLQ0KIC8qIEZJWE1FOiBF
bmFibGUgVVNFX09TX0xPRyB3aGVuIGJ1aWxkaW5nIHdpdGggdGhlIHB1YmxpYyBpT1MgMTAgU0RL
IG9uY2Ugd2UgZml4IDxyZGFyOi8vcHJvYmxlbS8yNzc1ODM0Mz4uICovDQogI2lmIChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwKSB8fCAo
UExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDAw
MDAgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykpDQogI2RlZmluZSBVU0VfT1NfTE9HIDENCklu
ZGV4OiBTb3VyY2UvV1RGL3d0Zi9tYWMvQXBwS2l0Q29tcGF0aWJpbGl0eURlY2xhcmF0aW9ucy5o
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0gU291cmNlL1dURi93dGYvbWFjL0FwcEtpdENvbXBhdGliaWxpdHlE
ZWNsYXJhdGlvbnMuaAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XVEYvd3RmL21hYy9B
cHBLaXRDb21wYXRpYmlsaXR5RGVjbGFyYXRpb25zLmgJKHdvcmtpbmcgY29weSkNCkBAIC0xMDcs
MTggKzEwNyw2IEBAIHN0YXRpYyBjb25zdCBOU0V2ZW50VHlwZSBOU0V2ZW50VHlwZVJpZ2gNCiBz
dGF0aWMgY29uc3QgTlNFdmVudFR5cGUgTlNFdmVudFR5cGVTY3JvbGxXaGVlbCA9IE5TU2Nyb2xs
V2hlZWw7DQogc3RhdGljIGNvbnN0IE5TRXZlbnRUeXBlIE5TRXZlbnRUeXBlU3lzdGVtRGVmaW5l
ZCA9IE5TU3lzdGVtRGVmaW5lZDsNCiANCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExP
V0VEIDwgMTAxMTAwDQotc3RhdGljIGNvbnN0IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1l
bnRSaWdodCA9IE5TUmlnaHRUZXh0QWxpZ25tZW50Ow0KLXN0YXRpYyBjb25zdCBOU1RleHRBbGln
bm1lbnQgTlNUZXh0QWxpZ25tZW50Q2VudGVyID0gTlNDZW50ZXJUZXh0QWxpZ25tZW50Ow0KLXN0
YXRpYyBjb25zdCBOU1RleHRBbGlnbm1lbnQgTlNUZXh0QWxpZ25tZW50TGVmdCA9IE5TTGVmdFRl
eHRBbGlnbm1lbnQ7DQotc3RhdGljIGNvbnN0IE5TVGV4dEFsaWdubWVudCBOU1RleHRBbGlnbm1l
bnROYXR1cmFsID0gTlNOYXR1cmFsVGV4dEFsaWdubWVudDsNCi1zdGF0aWMgY29uc3QgTlNUZXh0
QWxpZ25tZW50IE5TVGV4dEFsaWdubWVudEp1c3RpZmllZCA9IE5TSnVzdGlmaWVkVGV4dEFsaWdu
bWVudDsNCi0NCi10eXBlZGVmIE5TSW50ZWdlciBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBl
Ow0KLXN0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rpb25Gb3JtYXRUeXBlID0gTlNUZXh0V3Jp
dGluZ0RpcmVjdGlvbk92ZXJyaWRlOw0KLXN0YXRpYyBjb25zdCBOU1dyaXRpbmdEaXJlY3Rpb25F
bWJlZGRpbmcgPSBOU1RleHRXcml0aW5nRGlyZWN0aW9uRW1iZWRkaW5nOw0KLSNlbmRpZg0KLQ0K
IHR5cGVkZWYgTlNVSW50ZWdlciBOU1dpbmRvd1N0eWxlTWFzazsNCiBzdGF0aWMgY29uc3QgTlNX
aW5kb3dTdHlsZU1hc2sgTlNXaW5kb3dTdHlsZU1hc2tCb3JkZXJsZXNzID0gTlNCb3JkZXJsZXNz
V2luZG93TWFzazsNCiBzdGF0aWMgY29uc3QgTlNXaW5kb3dTdHlsZU1hc2sgTlNXaW5kb3dTdHls
ZU1hc2tDbG9zYWJsZSA9IE5TQ2xvc2FibGVXaW5kb3dNYXNrOw0KSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL3NwaS9jb2NvYS9TZWN1cml0eVNQSS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dURi93
dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmgJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2Uv
V1RGL3d0Zi9zcGkvY29jb2EvU2VjdXJpdHlTUEkuaAkod29ya2luZyBjb3B5KQ0KQEAgLTM3LDcg
KzM3LDYgQEANCiANCiAjZWxzZQ0KIA0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkgfHwgUExBVEZPUk0oSU9TKQ0KIHR5cGVk
ZWYgdWludDMyX3QgU2VjU2lnbmF0dXJlSGFzaEFsZ29yaXRobTsNCiBlbnVtIHsNCiAgICAga1Nl
Y1NpZ25hdHVyZUhhc2hBbGdvcml0aG1Vbmtub3duID0gMCwNCkBAIC01Niw3ICs1NSw2IEBAIFdU
Rl9FWFRFUk5fQ19CRUdJTg0KIFNlY1NpZ25hdHVyZUhhc2hBbGdvcml0aG0gU2VjQ2VydGlmaWNh
dGVHZXRTaWduYXR1cmVIYXNoQWxnb3JpdGhtKFNlY0NlcnRpZmljYXRlUmVmKTsNCiANCiBXVEZf
RVhURVJOX0NfRU5EDQotI2VuZGlmDQogDQogI2VuZGlmDQogDQpJbmRleDogU291cmNlL1dURi93
dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV1RG
L3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNv
dXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpDQpA
QCAtMzEsOSArMzEsNiBAQA0KICNpbmNsdWRlIDx1bmljb2RlL3VicmsuaD4NCiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPg0KIA0KLS8vIEZJWE1FOiBUaGlzIG5lZWRzIGEgYmV0
dGVyIG5hbWUNCi0jZGVmaW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9T
KSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTEwMCkpDQotDQogbmFtZXNwYWNlIFdURiB7DQogDQogI2lmICFQTEFURk9STShNQUMpICYm
ICFQTEFURk9STShJT1MpDQpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTkwNDgpDQorKysg
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsxLDc0IEBA
DQorMjAxNy0wNy0wMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPg0KKw0KKyAgICAg
ICAgW21hY09TXSBSZW1vdmUgY29kZSBvbmx5IG5lZWRlZCB3aGVuIGJ1aWxkaW5nIGZvciBPUyBY
IFlvc2VtaXRlDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc0MDY3DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisNCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoNCisgICAgICAgICogQ29uZmln
dXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnOg0KKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoNCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvVmVy
c2lvbi54Y2NvbmZpZzoNCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cDoNCisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRl
cmZhY2VBY2Nlc3NpYmlsaXR5KToNCisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHA6DQorICAgICAgICAqIHBhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmNwcDoNCisgICAgICAg
IChXZWJDb3JlOjpXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OmNyZWF0ZSk6DQorICAgICAgICAqIHBh
Z2UvbWFjL1doZWVsRXZlbnREZWx0YUZpbHRlck1hYy5oOg0KKyAgICAgICAgKiBwYWdlL21hYy9X
aGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMubW06DQorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5jcHA6DQorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L21hYy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JNYWMuaDoNCisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYy5tbToNCisgICAgICAg
ICogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW06DQorICAg
ICAgICAocmVwbGFjZW1lbnREYXRhRnJvbURlY2lzaW9uSW5mbyk6DQorICAgICAgICAoV2ViQ29y
ZTo6TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OmluaXRpYWxpemUpOg0KKyAgICAgICAg
KFdlYkNvcmU6Ok5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjp3aWxsU2VuZFJlcXVlc3Qp
Og0KKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpyZXNw
b25zZVJlY2VpdmVkKToNCisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrRXh0ZW5zaW9uQ29udGVu
dEZpbHRlcjo6YWRkRGF0YSk6DQorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0V4dGVuc2lvbkNv
bnRlbnRGaWx0ZXI6OmZpbmlzaGVkQWRkaW5nRGF0YSk6DQorICAgICAgICAoV2ViQ29yZTo6TmV0
d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OnVuYmxvY2tIYW5kbGVyKToNCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmg6DQorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5tbToNCisg
ICAgICAgIChQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OnNldFRpbWluZ0Z1bmN0aW9uKToNCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwOg0K
KyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6cGxhdGZvcm1BbHRlcm5hdGVGYW1pbHlOYW1l
KToNCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tOg0KKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnQ6OnBsYXRmb3JtSW5pdCk6DQorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbToNCisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZh
Y2U6OnNpbmtJbnRvSW1hZ2UpOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJHUFVMYXllci5tbToNCisgICAgICAgICgtW1dlYkdQVUxheWVyIGluaXRXaXRoR1BVRGV2aWNl
Ol0pOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9s
bGVyQ29yZVRleHQubW06DQorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVy
OjpDb21wbGV4VGV4dFJ1bjo6Q29tcGxleFRleHRSdW4pOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvV2ViR0xMYXllci5tbToNCisgICAgICAgICgtW1dlYkdMTGF5ZXIgaW5pdFdp
dGhHcmFwaGljc0NvbnRleHQzRDpdKToNCisgICAgICAgICogcGxhdGZvcm0vbWFjL0JsYWNrbGlz
dFVwZGF0ZXIubW06DQorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5t
bToNCisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IpOg0KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvVmFsaWRhdGlvbkJ1YmJsZU1hYy5tbToNCisgICAgICAgIChX
ZWJDb3JlOjpWYWxpZGF0aW9uQnViYmxlOjpWYWxpZGF0aW9uQnViYmxlKToNCisgICAgICAgICog
cGxhdGZvcm0vbWFjL1dlYkdMQmxhY2tsaXN0Lm1tOg0KKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
QmxhY2tsaXN0OjpjcmVhdGUpOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dl
YkNvcmVOU1VSTFNlc3Npb24uaDoNCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9X
ZWJDb3JlTlNVUkxTZXNzaW9uLm1tOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9D
ZXJ0aWZpY2F0ZUluZm9NYWMubW06DQorICAgICAgICAoV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZv
Ojpjb250YWluc05vblJvb3RTSEExU2lnbmVkQ2VydGlmaWNhdGUpOg0KKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW06DQorICAgICAgICAoV2ViQ29yZTo6c2V0
Q29va2llc0Zyb21ET00pOg0KKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvY2YvQ0ZOZXR3b3JrU1BJ
Lmg6DQorICAgICAgICAqIHBsYXRmb3JtL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaDoNCisgICAg
ICAgICogcGxhdGZvcm0vc3BpL2NvY29hL05FRmlsdGVyU291cmNlU1BJLmg6DQorICAgICAgICAq
IHBsYXRmb3JtL3NwaS9jb2NvYS9OU1VSTENvbm5lY3Rpb25TUEkuaDoNCisgICAgICAgICogcGxh
dGZvcm0vc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaDoNCisgICAgICAgICogcGxhdGZvcm0vc3Bp
L21hYy9OU1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmg6DQorICAgICAgICAqIHBsYXRmb3JtL3Nw
aS9tYWMvTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JTUEkuaDoNCisgICAgICAgICogcGxh
dGZvcm0vc3BpL21hYy9UVUNhbGxTUEkuaDoNCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRo
ZW1lTWFjLm1tOg0KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpsZXZlbEluZGlj
YXRvckZvcik6DQorICAgICAgICAqIHN2Zy9TVkdUb09URkZvbnRDb252ZXJzaW9uLmNwcDoNCisg
ICAgICAgIChXZWJDb3JlOjpTVkdUb09URkZvbnRDb252ZXJ0ZXI6OmFwcGVuZEtFUk5UYWJsZSk6
DQorICAgICAgICAoV2ViQ29yZTo6U1ZHVG9PVEZGb250Q29udmVydGVyOjpTVkdUb09URkZvbnRD
b252ZXJ0ZXIpOg0KKw0KIDIwMTctMDYtMzAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxs
YXdhQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIElmIGFuIGltYWdlIGFwcGVhcnMgbW9yZSB0aGFu
IG9uY2Ugb24gYSBwYWdlLCBkZWNvZGluZyBmb3IgcGFpbnRpbmcgb25lIGluc3RhbmNlIHJlcGFp
bnRzIHRoZW0gYWxsDQpJbmRleDogU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvQmFzZS54
Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Jh
c2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9Db25maWd1
cmF0aW9ucy9CYXNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtNzgsNyArNzgsNiBAQCBH
Q0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7DQogV0FSTklOR19DRkxBR1MgPSAtV2FsbCAt
V2V4dHJhIC1XY2FzdC1xdWFsIC1XY2hhci1zdWJzY3JpcHRzIC1XZXh0cmEtdG9rZW5zIC1XZm9y
bWF0PTIgLVdpbml0LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5v
cmV0dXJuIC1XcGFja2VkIC1XcG9pbnRlci1hcml0aCAtV3JlZHVuZGFudC1kZWNscyAtV3VuZGVm
IC1Xd3JpdGUtc3RyaW5ncyAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycyAtV2dsb2JhbC1jb25zdHJ1
Y3RvcnMgLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoIC1Xbm8t
dW5rbm93bi13YXJuaW5nLW9wdGlvbjsNCiANCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpP
UiA9ICQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RB
UkdFVDpzdWZmaXg6aWRlbnRpZmllcikpOw0KLVRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9S
XzEwID0gMTAxMDAwOw0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzExID0gMTAxMTAw
Ow0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzEyID0gMTAxMjAwOw0KIFRBUkdFVF9N
QUNfT1NfWF9WRVJTSU9OX01BSk9SXzEzID0gMTAxMzAwOw0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNv
dXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwkocmV2aXNp
b24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFz
ZS54Y2NvbmZpZwkod29ya2luZyBjb3B5KQ0KQEAgLTMwLDcgKzMwLDYgQEAgT05MWV9BQ1RJVkVf
QVJDSCA9IFlFUzsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoTUFDX09TX1hf
VkVSU0lPTl9NQUpPUik7DQogDQogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gJChNQUNPU1hf
REVQTE9ZTUVOVF9UQVJHRVRfJChQTEFURk9STV9OQU1FKV8kKFRBUkdFVF9NQUNfT1NfWF9WRVJT
SU9OX01BSk9SKSk7DQotTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDEwMDAgPSAx
MC4xMDsNCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTEwMCA9IDEwLjExOw0K
IE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMjAwID0gMTAuMTI7DQogTUFDT1NY
X0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDEzMDAgPSAxMC4xMzsNCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZw0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkNCkBAIC0zMiwxMSArMzIsOSBA
QA0KIC8vIFNldCBhbnkgRU5BQkxFX0ZFQVRVUkVfTkFNRSBtYWNybyB0byBhbiBlbXB0eSBzdHJp
bmcgdG8gZGlzYWJsZSB0aGF0IGZlYXR1cmUuDQogDQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05f
TEVTU19USEFOXzEwMTIwMDAgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8x
MDEyMDAwXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsNCi1UQVJHRVRfTUFDX09T
X1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMjAwMF8xMDEwMDAgPSBZRVM7DQogVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDBfMTAxMTAwID0gWUVTOw0KIA0KIFRBUkdFVF9N
QUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwID0gJChUQVJHRVRfTUFDX09TX1hfVkVS
U0lPTl9MRVNTX1RIQU5fMTAxMzAwMF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7
DQotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDBfMTAxMDAwID0gWUVT
Ow0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwXzEwMTEwMCA9IFlF
UzsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAwMF8xMDEyMDAgPSBZ
RVM7DQogDQpJbmRleDogU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2Nv
bmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1ZlcnNp
b24ueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9Db25maWd1
cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtMzUsNyArMzUsNiBA
QCBTSE9SVF9WRVJTSU9OX1NUUklORyA9ICQoU0hPUlRfVkVSU0lPTl9TDQogLy8gVGhlIHN5c3Rl
bSB2ZXJzaW9uIHByZWZpeCBpcyBiYXNlZCBvbiB0aGUgY3VycmVudCBzeXN0ZW0gdmVyc2lvbi4N
CiBTWVNURU1fVkVSU0lPTl9QUkVGSVhbc2RrPWlwaG9uZSpdID0gODsNCiBTWVNURU1fVkVSU0lP
Tl9QUkVGSVggPSAkKFNZU1RFTV9WRVJTSU9OX1BSRUZJWF8kKFBMQVRGT1JNX05BTUUpXyQoVEFS
R0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsNCi1TWVNURU1fVkVSU0lPTl9QUkVGSVhfbWFj
b3N4XzEwMTAwMCA9IDEwOw0KIFNZU1RFTV9WRVJTSU9OX1BSRUZJWF9tYWNvc3hfMTAxMTAwID0g
MTE7DQogU1lTVEVNX1ZFUlNJT05fUFJFRklYX21hY29zeF8xMDEyMDAgPSAxMjsNCiBTWVNURU1f
VkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEwMTMwMCA9IDEzOw0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwxNSBAQA0KKzIwMTctMDctMDEgIERhbiBCZXJuc3Rl
aW4gIDxtaXR6QGFwcGxlLmNvbT4NCisNCisgICAgICAgIFttYWNPU10gUmVtb3ZlIGNvZGUgb25s
eSBuZWVkZWQgd2hlbiBidWlsZGluZyBmb3IgT1MgWCBZb3NlbWl0ZQ0KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDA2Nw0KKw0KKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jh
c2UueGNjb25maWc6DQorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2Nv
bmZpZzoNCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6
DQorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWc6DQorDQogMjAxNy0w
Ni0yOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIE1ha2Ug
TGVnYWN5IEVNRSBBUEkgY29udHJvbGxlZCBieSBSdW50aW1lRW5hYmxlZCBzZXR0aW5nLg0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25m
aWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlv
bnMvQmFzZS54Y2NvbmZpZwkod29ya2luZyBjb3B5KQ0KQEAgLTc4LDcgKzc4LDYgQEAgR0NDX1dB
Uk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOw0KIFdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRy
YSAtV2Nhc3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0y
IC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVy
biAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dy
aXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3Jz
IC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCAtV25vLXVua25v
d24td2FybmluZy1vcHRpb247DQogDQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAk
KFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6
c3VmZml4OmlkZW50aWZpZXIpKTsNCi1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMCA9
IDEwMTAwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMSA9IDEwMTEwMDsNCiBU
QVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMiA9IDEwMTIwMDsNCiBUQVJHRVRfTUFDX09T
X1hfVkVSU0lPTl9NQUpPUl8xMyA9IDEwMTMwMDsNCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9QQUwv
Q29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291
cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwkocmV2
aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9EZWJ1
Z1JlbGVhc2UueGNjb25maWcJKHdvcmtpbmcgY29weSkNCkBAIC0zMCw3ICszMCw2IEBAIE9OTFlf
QUNUSVZFX0FSQ0ggPSBZRVM7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKE1B
Q19PU19YX1ZFUlNJT05fTUFKT1IpOw0KIA0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9ICQo
TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXyQoUExBVEZPUk1fTkFNRSlfJChUQVJHRVRfTUFDX09T
X1hfVkVSU0lPTl9NQUpPUikpOw0KLU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAx
MDAwID0gMTAuMTA7DQogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDExMDAgPSAx
MC4xMTsNCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTIwMCA9IDEwLjEyOw0K
IE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMzAwID0gMTAuMTM7DQpJbmRleDog
U291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNvcmUv
UEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkp
DQpAQCAtMzIsMTEgKzMyLDkgQEANCiAvLyBTZXQgYW55IEVOQUJMRV9GRUFUVVJFX05BTUUgbWFj
cm8gdG8gYW4gZW1wdHkgc3RyaW5nIHRvIGRpc2FibGUgdGhhdCBmZWF0dXJlLg0KIA0KIFRBUkdF
VF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEyMDAwID0gJChUQVJHRVRfTUFDX09TX1hf
VkVSU0lPTl9MRVNTX1RIQU5fMTAxMjAwMF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9S
KSk7DQotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDBfMTAxMDAwID0g
WUVTOw0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEyMDAwXzEwMTEwMCA9
IFlFUzsNCiANCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAwMCA9ICQo
VEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDBfJChUQVJHRVRfTUFDX09T
X1hfVkVSU0lPTl9NQUpPUikpOw0KLVRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8x
MDEzMDAwXzEwMTAwMCA9IFlFUzsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5f
MTAxMzAwMF8xMDExMDAgPSBZRVM7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFO
XzEwMTMwMDBfMTAxMjAwID0gWUVTOw0KIA0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9Db25m
aWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNv
cmUvUEFML0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkN
CisrKyBTb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZwko
d29ya2luZyBjb3B5KQ0KQEAgLTM1LDcgKzM1LDYgQEAgU0hPUlRfVkVSU0lPTl9TVFJJTkcgPSAk
KFNIT1JUX1ZFUlNJT05fUw0KIC8vIFRoZSBzeXN0ZW0gdmVyc2lvbiBwcmVmaXggaXMgYmFzZWQg
b24gdGhlIGN1cnJlbnQgc3lzdGVtIHZlcnNpb24uDQogU1lTVEVNX1ZFUlNJT05fUFJFRklYW3Nk
az1pcGhvbmUqXSA9IDg7DQogU1lTVEVNX1ZFUlNJT05fUFJFRklYID0gJChTWVNURU1fVkVSU0lP
Tl9QUkVGSVhfJChQTEFURk9STV9OQU1FKV8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9S
KSk7DQotU1lTVEVNX1ZFUlNJT05fUFJFRklYX21hY29zeF8xMDEwMDAgPSAxMDsNCiBTWVNURU1f
VkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEwMTEwMCA9IDExOw0KIFNZU1RFTV9WRVJTSU9OX1BSRUZJ
WF9tYWNvc3hfMTAxMjAwID0gMTI7DQogU1lTVEVNX1ZFUlNJT05fUFJFRklYX21hY29zeF8xMDEz
MDAgPSAxMzsNCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkNCkBAIC0xNzgsMTEgKzE3
OCw5IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2V0RW5oYW5jZWRVc2VySW50ZXINCiB7DQogICAg
IGdBY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCA9IGZsYWc7DQogI2lm
IFBMQVRGT1JNKE1BQykNCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDExMDANCiAgICAgaWYgKGZsYWcpDQogICAgICAgICBlbmFibGVBY2Nlc3NpYmlsaXR5KCk7DQog
I2VuZGlmDQotI2VuZGlmDQogfQ0KIA0KIEFYT2JqZWN0Q2FjaGU6OkFYT2JqZWN0Q2FjaGUoRG9j
dW1lbnQmIGRvY3VtZW50KQ0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHAJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTg4LDggKzg4LDYgQEAgY29u
c3QgaW50IGRlZmF1bHRIZWlnaHQgPSAxNTA7DQogLy8gaW4gZXhjaGFuZ2UgZm9yIGEgc21hbGxl
ciBtYXhpbXVtIGNhbnZhcyBzaXplLiBUaGUgbWF4aW11bSBjYW52YXMgc2l6ZSBpcyBpbiBkZXZp
Y2UgcGl4ZWxzLg0KICNpZiBQTEFURk9STShJT1MpDQogY29uc3QgdW5zaWduZWQgbWF4Q2FudmFz
QXJlYSA9IDQwOTYgKiA0MDk2Ow0KLSNlbGlmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTEwMA0KLWNvbnN0IHVuc2lnbmVkIG1heENhbnZhc0Fy
ZWEgPSA4MTkyICogODE5MjsNCiAjZWxzZQ0KIGNvbnN0IHVuc2lnbmVkIG1heENhbnZhc0FyZWEg
PSAxNjM4NCAqIDE2Mzg0Ow0KICNlbmRpZg0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvV2hl
ZWxFdmVudERlbHRhRmlsdGVyLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmNwcAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVyLmNwcAkod29ya2luZyBjb3B5KQ0K
QEAgLTI2LDE0ICsyNiwxNCBAQA0KICNpbmNsdWRlICJjb25maWcuaCINCiAjaW5jbHVkZSAiV2hl
ZWxFdmVudERlbHRhRmlsdGVyLmgiDQogDQotI2lmIEhBVkUoTlNTQ1JPTExJTkdfRklMVEVSUykN
Ci0jaW5jbHVkZSAiV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLmgiDQotI2VuZGlmDQotDQogI2lu
Y2x1ZGUgIkZsb2F0U2l6ZS5oIg0KICNpbmNsdWRlICJMb2dnaW5nLmgiDQogI2luY2x1ZGUgIlRl
eHRTdHJlYW0uaCINCiANCisjaWYgUExBVEZPUk0oTUFDKQ0KKyNpbmNsdWRlICJXaGVlbEV2ZW50
RGVsdGFGaWx0ZXJNYWMuaCINCisjZW5kaWYNCisNCiBuYW1lc3BhY2UgV2ViQ29yZSB7DQogICAg
IA0KIFdoZWVsRXZlbnREZWx0YUZpbHRlcjo6V2hlZWxFdmVudERlbHRhRmlsdGVyKCkNCkBAIC00
Niw3ICs0Niw3IEBAIFdoZWVsRXZlbnREZWx0YUZpbHRlcjo6fldoZWVsRXZlbnREZWx0YUYNCiAN
CiBzdGQ6OnVuaXF1ZV9wdHI8V2hlZWxFdmVudERlbHRhRmlsdGVyPiBXaGVlbEV2ZW50RGVsdGFG
aWx0ZXI6OmNyZWF0ZSgpDQogew0KLSNpZiBIQVZFKE5TU0NST0xMSU5HX0ZJTFRFUlMpDQorI2lm
IFBMQVRGT1JNKE1BQykNCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2hlZWxFdmVudERl
bHRhRmlsdGVyTWFjPigpOw0KICNlbHNlDQogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEJh
c2ljV2hlZWxFdmVudERlbHRhRmlsdGVyPigpOw0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL1doZWVsRXZlbnREZWx0YUZpbHRlck1hYy5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLmgJKHJldmlzaW9uIDIxOTA0
OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9XaGVlbEV2ZW50RGVsdGFGaWx0ZXJNYWMu
aAkod29ya2luZyBjb3B5KQ0KQEAgLTI1LDcgKzI1LDcgQEANCiANCiAjcHJhZ21hIG9uY2UNCiAN
Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTEwMA0KKyNpZiBQTEFURk9STShNQUMpDQogDQogI2luY2x1ZGUgIldoZWVsRXZlbnREZWx0
YUZpbHRlci5oIg0KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+DQpAQCAtNDksNCArNDksNCBA
QCBwcml2YXRlOg0KIA0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUNCiANCi0jZW5kaWYgLy8gUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0K
KyNlbmRpZiAvLyBQTEFURk9STShNQUMpDQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
V2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLm1tDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLm1tCShyZXZpc2lvbiAyMTkwNDgp
DQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLm1t
CSh3b3JraW5nIGNvcHkpDQpAQCAtMjUsNyArMjUsNyBAQA0KIA0KICNpbmNsdWRlICJjb25maWcu
aCINCiANCi0jaWYgSEFWRShOU1NDUk9MTElOR19GSUxURVJTKQ0KKyNpZiBQTEFURk9STShNQUMp
DQogDQogI2luY2x1ZGUgIldoZWVsRXZlbnREZWx0YUZpbHRlck1hYy5oIg0KICNpbmNsdWRlICJG
bG9hdFBvaW50LmgiDQpAQCAtNjksNCArNjksNCBAQCB2b2lkIFdoZWVsRXZlbnREZWx0YUZpbHRl
ck1hYzo6ZW5kRmlsdGVyDQogDQogfQ0KIA0KLSNlbmRpZiAvKiBIQVZFKE5TU0NST0xMSU5HX0ZJ
TFRFUlMpICovDQorI2VuZGlmIC8qIFBMQVRGT1JNKE1BQykgKi8NCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuY3BwDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nTW9tZW50
dW1DYWxjdWxhdG9yLmNwcAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5jcHAJKHdvcmtpbmcgY29w
eSkNCkBAIC02Nyw3ICs2Nyw3IEBAIEZsb2F0U2l6ZSBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0
b3I6OnANCiAgICAgcmV0dXJuIHsgaW5pdGlhbE9mZnNldFgsIGluaXRpYWxPZmZzZXRZIH07DQog
fQ0KIA0KLSNpZiAhSEFWRShOU1NDUk9MTElOR19GSUxURVJTKQ0KKyNpZiAhUExBVEZPUk0oTUFD
KQ0KIA0KIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I+IFNjcm9s
bGluZ01vbWVudHVtQ2FsY3VsYXRvcjo6Y3JlYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld3BvcnRT
aXplLCBjb25zdCBGbG9hdFNpemUmIGNvbnRlbnRTaXplLCBjb25zdCBGbG9hdFBvaW50JiBpbml0
aWFsT2Zmc2V0LCBjb25zdCBGbG9hdFNpemUmIGluaXRpYWxEZWx0YSwgY29uc3QgRmxvYXRTaXpl
JiBpbml0aWFsVmVsb2NpdHkpDQogew0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JNYWMuaA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1
bGF0b3JNYWMuaAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JNYWMuaAkod29ya2luZyBjb3B5
KQ0KQEAgLTI4LDggKzI4LDYgQEANCiAjaW5jbHVkZSAiU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxh
dG9yLmgiDQogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4NCiANCi0jaWYgSEFWRShOU1NDUk9M
TElOR19GSUxURVJTKQ0KLQ0KIEBjbGFzcyBfTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I7
DQogDQogbmFtZXNwYWNlIFdlYkNvcmUgew0KQEAgLTUyLDUgKzUwLDMgQEAgcHJpdmF0ZToNCiB9
Ow0KIA0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUNCi0NCi0jZW5kaWYgLy8gSEFWRShOU1NDUk9M
TElOR19GSUxURVJTKQ0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JNYWMubW0NCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFj
Lm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYy5tbQkod29ya2luZyBjb3B5KQ0KQEAg
LTI2LDcgKzI2LDcgQEANCiAjaW5jbHVkZSAiY29uZmlnLmgiDQogI2luY2x1ZGUgIlNjcm9sbGlu
Z01vbWVudHVtQ2FsY3VsYXRvck1hYy5oIg0KIA0KLSNpZiBIQVZFKE5TU0NST0xMSU5HX0ZJTFRF
UlMpDQorI2lmIFBMQVRGT1JNKE1BQykNCiANCiAjaW5jbHVkZSAiTlNTY3JvbGxpbmdNb21lbnR1
bUNhbGN1bGF0b3JTUEkuaCINCiANCkBAIC0xMDUsNCArMTA1LDQgQEAgX05TU2Nyb2xsaW5nTW9t
ZW50dW1DYWxjdWxhdG9yICpTY3JvbGxpbg0KIA0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUNCiAN
Ci0jZW5kaWYgLy8gSEFWRShOU1NDUk9MTElOR19GSUxURVJTKQ0KKyNlbmRpZiAvLyBQTEFURk9S
TShNQUMpDQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVu
c2lvbkNvbnRlbnRGaWx0ZXIubW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQkocmV2aXNpb24gMjE5
MDQ4KQ0KKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25D
b250ZW50RmlsdGVyLm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtNDcsMTMgKzQ3LDExIEBAIEBpbnRl
cmZhY2UgTkVGaWx0ZXJTb3VyY2UgKCkNCiAtICh2b2lkKXNldFNvdXJjZUFwcFBpZDoocGlkX3Qp
c291cmNlQXBwUGlkOw0KIEBlbmQNCiANCi0jaWYgSEFWRShNT0RFUk5fTkVfRklMVEVSX1NPVVJD
RSkNCiBzdGF0aWMgaW5saW5lIE5TRGF0YSAqcmVwbGFjZW1lbnREYXRhRnJvbURlY2lzaW9uSW5m
byhOU0RpY3Rpb25hcnkgKmRlY2lzaW9uSW5mbykNCiB7DQogICAgIEFTU0VSVF9XSVRIX1NFQ1VS
SVRZX0lNUExJQ0FUSU9OKCFkZWNpc2lvbkluZm8gfHwgW2RlY2lzaW9uSW5mbyBpc0tpbmRPZkNs
YXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSk7DQogICAgIHJldHVybiBkZWNpc2lvbkluZm9bTkVG
aWx0ZXJTb3VyY2VPcHRpb25zUGFnZURhdGFdOw0KIH0NCi0jZW5kaWYNCiANCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7DQogDQpAQCAtNzYsNyArNzQsNiBAQCB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250
ZW50RmlsdGVyOjppbml0DQogICAgIEFTU0VSVCghbV9uZUZpbHRlclNvdXJjZSk7DQogICAgIG1f
cXVldWUgPSBhZG9wdE9TT2JqZWN0KGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZSgiV2ViS2l0IE5ldHdv
cmtFeHRlbnNpb24gRmlsdGVyaW5nIiwgRElTUEFUQ0hfUVVFVUVfU0VSSUFMKSk7DQogICAgIG1f
c2VtYXBob3JlID0gYWRvcHRPU09iamVjdChkaXNwYXRjaF9zZW1hcGhvcmVfY3JlYXRlKDApKTsN
Ci0jaWYgSEFWRShNT0RFUk5fTkVfRklMVEVSX1NPVVJDRSkNCiAgICAgQVNTRVJUX1VOVVNFRCh1
cmwsICF1cmwpOw0KICAgICBtX25lRmlsdGVyU291cmNlID0gYWRvcHROUyhbYWxsb2NORUZpbHRl
clNvdXJjZUluc3RhbmNlKCkgaW5pdFdpdGhEZWNpc2lvblF1ZXVlOm1fcXVldWUuZ2V0KCldKTsN
CiAjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDEzMDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDExMDAwMCkNCkBAIC04NSwxNSArODIsMTAgQEAgdm9pZCBOZXR3b3JrRXh0ZW5z
aW9uQ29udGVudEZpbHRlcjo6aW5pdA0KICAgICBpZiAoW21fbmVGaWx0ZXJTb3VyY2UgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRTb3VyY2VBcHBQaWQ6KV0pDQogICAgICAgICBbbV9u
ZUZpbHRlclNvdXJjZSBzZXRTb3VyY2VBcHBQaWQ6cHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCld
Ow0KICNlbmRpZg0KLSNlbHNlDQotICAgIEFTU0VSVF9BUkcodXJsLCB1cmwpOw0KLSAgICBtX25l
RmlsdGVyU291cmNlID0gYWRvcHROUyhbYWxsb2NORUZpbHRlclNvdXJjZUluc3RhbmNlKCkgaW5p
dFdpdGhVUkw6KnVybCBkaXJlY3Rpb246TkVGaWx0ZXJTb3VyY2VEaXJlY3Rpb25JbmJvdW5kIHNv
Y2tldElkZW50aWZpZXI6MF0pOw0KLSNlbmRpZg0KIH0NCiANCiB2b2lkIE5ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQ0KIHsNCi0jaWYgSEFW
RShNT0RFUk5fTkVfRklMVEVSX1NPVVJDRSkNCiAgICAgQVNTRVJUKCFyZXF1ZXN0LmlzTnVsbCgp
KTsNCiAgICAgaWYgKCFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSB8fCAh
ZW5hYmxlZCgpKSB7DQogICAgICAgICBtX3N0YXRlID0gU3RhdGU6OkFsbG93ZWQ7DQpAQCAtMTMw
LDEwICsxMjIsNiBAQCB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjp3aWxsDQog
ICAgIH0NCiANCiAgICAgcmVxdWVzdC5zZXRVUkwobW9kaWZpZWRSZXF1ZXN0VVJMKTsNCi0jZWxz
ZQ0KLSAgICBVTlVTRURfUEFSQU0ocmVxdWVzdCk7DQotICAgIFVOVVNFRF9QQVJBTShyZWRpcmVj
dFJlc3BvbnNlKTsNCi0jZW5kaWYNCiB9DQogDQogdm9pZCBOZXR3b3JrRXh0ZW5zaW9uQ29udGVu
dEZpbHRlcjo6cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkNCkBAIC0xNDMsMTQgKzEzMSw2IEBAIHZvaWQgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0
ZXI6OnJlc3ANCiAgICAgICAgIHJldHVybjsNCiAgICAgfQ0KIA0KLSNpZiAhSEFWRShNT0RFUk5f
TkVfRklMVEVSX1NPVVJDRSkNCi0gICAgaWYgKCFlbmFibGVkKCkpIHsNCi0gICAgICAgIG1fc3Rh
dGUgPSBTdGF0ZTo6QWxsb3dlZDsNCi0gICAgICAgIHJldHVybjsNCi0gICAgfQ0KLQ0KLSAgICBp
bml0aWFsaXplKCZyZXNwb25zZS51cmwoKSk7DQotI2Vsc2UNCiAgICAgW21fbmVGaWx0ZXJTb3Vy
Y2UgcmVjZWl2ZWRSZXNwb25zZTpyZXNwb25zZS5uc1VSTFJlc3BvbnNlKCkgZGVjaXNpb25IYW5k
bGVyOlt0aGlzXShORUZpbHRlclNvdXJjZVN0YXR1cyBzdGF0dXMsIE5TRGljdGlvbmFyeSAqZGVj
aXNpb25JbmZvKSB7DQogICAgICAgICBoYW5kbGVEZWNpc2lvbihzdGF0dXMsIHJlcGxhY2VtZW50
RGF0YUZyb21EZWNpc2lvbkluZm8oZGVjaXNpb25JbmZvKSk7DQogICAgIH1dOw0KQEAgLTE1OSwy
MyArMTM5LDE1IEBAIHZvaWQgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OnJlc3ANCiAg
ICAgLy8gYmxvY2tlZC9ub3QgYmxvY2tlZCBhbnN3ZXIgZnJvbSB0aGUgZmlsdGVyIGltbWVkaWF0
ZWx5IGFmdGVyIGNhbGxpbmcNCiAgICAgLy8gYWRkRGF0YSgpLiBXZSBzaG91bGQgZmluZCBhIHdh
eSB0byBtYWtlIHRoaXMgYXN5bmNocm9ub3VzLg0KICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2Fp
dChtX3NlbWFwaG9yZS5nZXQoKSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsNCi0jZW5kaWYNCiB9
DQogDQogdm9pZCBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6YWRkRGF0YShjb25zdCBj
aGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQ0KIHsNCiAgICAgUmV0YWluUHRyPE5TRGF0YT4gY29waWVk
RGF0YSB7IFtOU0RhdGEgZGF0YVdpdGhCeXRlczoodm9pZCopZGF0YSBsZW5ndGg6bGVuZ3RoXSB9
Ow0KIA0KLSNpZiBIQVZFKE1PREVSTl9ORV9GSUxURVJfU09VUkNFKQ0KICAgICBbbV9uZUZpbHRl
clNvdXJjZSByZWNlaXZlZERhdGE6Y29waWVkRGF0YS5nZXQoKSBkZWNpc2lvbkhhbmRsZXI6W3Ro
aXNdKE5FRmlsdGVyU291cmNlU3RhdHVzIHN0YXR1cywgTlNEaWN0aW9uYXJ5ICpkZWNpc2lvbklu
Zm8pIHsNCiAgICAgICAgIGhhbmRsZURlY2lzaW9uKHN0YXR1cywgcmVwbGFjZW1lbnREYXRhRnJv
bURlY2lzaW9uSW5mbyhkZWNpc2lvbkluZm8pKTsNCiAgICAgfV07DQotI2Vsc2UNCi0gICAgW21f
bmVGaWx0ZXJTb3VyY2UgYWRkRGF0YTpjb3BpZWREYXRhLmdldCgpIHdpdGhDb21wbGV0aW9uUXVl
dWU6bV9xdWV1ZS5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpbdGhpc10oTkVGaWx0ZXJTb3VyY2VT
dGF0dXMgc3RhdHVzLCBOU0RhdGEgKnJlcGxhY2VtZW50RGF0YSkgew0KLSAgICAgICAgQVNTRVJU
KCFyZXBsYWNlbWVudERhdGEpOw0KLSAgICAgICAgaGFuZGxlRGVjaXNpb24oc3RhdHVzLCByZXBs
YWNlbWVudERhdGEpOw0KLSAgICB9XTsNCi0jZW5kaWYNCiANCiAgICAgLy8gRklYTUU6IFdlIGhh
dmUgdG8gYmxvY2sgaGVyZSBzaW5jZSBEb2N1bWVudExvYWRlciBleHBlY3RzIHRvIGhhdmUgYQ0K
ICAgICAvLyBibG9ja2VkL25vdCBibG9ja2VkIGFuc3dlciBmcm9tIHRoZSBmaWx0ZXIgaW1tZWRp
YXRlbHkgYWZ0ZXIgY2FsbGluZw0KQEAgLTE4NSwxNiArMTU3LDkgQEAgdm9pZCBOZXR3b3JrRXh0
ZW5zaW9uQ29udGVudEZpbHRlcjo6YWRkRA0KIA0KIHZvaWQgTmV0d29ya0V4dGVuc2lvbkNvbnRl
bnRGaWx0ZXI6OmZpbmlzaGVkQWRkaW5nRGF0YSgpDQogew0KLSNpZiBIQVZFKE1PREVSTl9ORV9G
SUxURVJfU09VUkNFKQ0KICAgICBbbV9uZUZpbHRlclNvdXJjZSBmaW5pc2hlZExvYWRpbmdXaXRo
RGVjaXNpb25IYW5kbGVyOlt0aGlzXShORUZpbHRlclNvdXJjZVN0YXR1cyBzdGF0dXMsIE5TRGlj
dGlvbmFyeSAqZGVjaXNpb25JbmZvKSB7DQogICAgICAgICBoYW5kbGVEZWNpc2lvbihzdGF0dXMs
IHJlcGxhY2VtZW50RGF0YUZyb21EZWNpc2lvbkluZm8oZGVjaXNpb25JbmZvKSk7DQogICAgIH1d
Ow0KLSNlbHNlDQotICAgIFttX25lRmlsdGVyU291cmNlIGRhdGFDb21wbGV0ZVdpdGhDb21wbGV0
aW9uUXVldWU6bV9xdWV1ZS5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpbdGhpc10oTkVGaWx0ZXJT
b3VyY2VTdGF0dXMgc3RhdHVzLCBOU0RhdGEgKnJlcGxhY2VtZW50RGF0YSkgew0KLSAgICAgICAg
QVNTRVJUKCFyZXBsYWNlbWVudERhdGEpOw0KLSAgICAgICAgaGFuZGxlRGVjaXNpb24oc3RhdHVz
LCByZXBsYWNlbWVudERhdGEpOw0KLSAgICB9XTsNCi0jZW5kaWYNCiANCiAgICAgLy8gRklYTUU6
IFdlIGhhdmUgdG8gYmxvY2sgaGVyZSBzaW5jZSBEb2N1bWVudExvYWRlciBleHBlY3RzIHRvIGhh
dmUgYQ0KICAgICAvLyBibG9ja2VkL25vdCBibG9ja2VkIGFuc3dlciBmcm9tIHRoZSBmaWx0ZXIg
aW1tZWRpYXRlbHkgYWZ0ZXIgY2FsbGluZw0KQEAgLTIxMSw3ICsxNzYsNiBAQCBSZWY8U2hhcmVk
QnVmZmVyPiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVuDQogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRF
UklORykNCiBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgTmV0d29ya0V4dGVuc2lvbkNvbnRl
bnRGaWx0ZXI6OnVuYmxvY2tIYW5kbGVyKCkgY29uc3QNCiB7DQotI2lmIEhBVkUoTU9ERVJOX05F
X0ZJTFRFUl9TT1VSQ0UpDQogICAgIHVzaW5nIERlY2lzaW9uSGFuZGxlckZ1bmN0aW9uID0gQ29u
dGVudEZpbHRlclVuYmxvY2tIYW5kbGVyOjpEZWNpc2lvbkhhbmRsZXJGdW5jdGlvbjsNCiANCiAg
ICAgUmV0YWluUHRyPE5FRmlsdGVyU291cmNlPiBuZUZpbHRlclNvdXJjZSB7IG1fbmVGaWx0ZXJT
b3VyY2UgfTsNCkBAIC0yMjMsOSArMTg3LDYgQEAgQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVy
IE5ldHdvcmtFeHRlbg0KICAgICAgICAgICAgIH1dOw0KICAgICAgICAgfQ0KICAgICB9Ow0KLSNl
bHNlDQotICAgIHJldHVybiB7IH07DQotI2VuZGlmDQogfQ0KICNlbmRpZg0KIA0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRl
eHRDb250cm9sbGVyLmgJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQ0KQEAg
LTMyLDggKzMyLDYgQEANCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPg0KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4NCiANCi0jZGVmaW5lIFVTRV9MQVlPVVRfU1BFQ0lGSUNfQURWQU5D
RVMgKChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMTAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSA5MDAwMCkpDQotDQogdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBDR0dseXBoOw0KIA0K
IHR5cGVkZWYgY29uc3Qgc3RydWN0IF9fQ1RSdW4gKiBDVFJ1blJlZjsNCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBQW5pbWF0aW9uQ29j
b2EubW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9jb2NvYS9QbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EubW0JKHJldmlzaW9uIDIxOTA0OCkNCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2NvYS9QbGF0Zm9ybUNBQW5p
bWF0aW9uQ29jb2EubW0JKHdvcmtpbmcgY29weSkNCkBAIC0zMjksMTEgKzMyOSw3IEBAIHZvaWQg
UGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hOjpzZXRUaW1pbmcNCiAgICAgICAgICAgICBzcHJpbmdB
bmltYXRpb24ubWFzcyA9IGZ1bmN0aW9uLm1hc3MoKTsNCiAgICAgICAgICAgICBzcHJpbmdBbmlt
YXRpb24uc3RpZmZuZXNzID0gZnVuY3Rpb24uc3RpZmZuZXNzKCk7DQogICAgICAgICAgICAgc3By
aW5nQW5pbWF0aW9uLmRhbXBpbmcgPSBmdW5jdGlvbi5kYW1waW5nKCk7DQotI2lmIFBMQVRGT1JN
KElPUykgfHwgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTEwMA0KICAgICAgICAgICAgIHNwcmluZ0FuaW1hdGlvbi5pbml0aWFsVmVsb2NpdHkg
PSBmdW5jdGlvbi5pbml0aWFsVmVsb2NpdHkoKTsNCi0jZWxzZQ0KLSAgICAgICAgICAgIHNwcmlu
Z0FuaW1hdGlvbi52ZWxvY2l0eSA9IGZ1bmN0aW9uLmluaXRpYWxWZWxvY2l0eSgpOw0KLSNlbmRp
Zg0KICAgICAgICAgfQ0KICAgICAgICAgYnJlYWs7DQogICAgIH0NCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHANCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2Fj
aGVDb3JlVGV4dC5jcHAJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAJKHdvcmtpbmcgY29weSkN
CkBAIC0xMzU3LDEzICsxMzU3LDggQEAgY29uc3QgQXRvbWljU3RyaW5nJiBGb250Q2FjaGU6OnBs
YXRmb3JtQQ0KIA0KICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBzb25n
dGlTQygiU29uZ3RpIFNDIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7DQog
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IHNvbmd0aVRDKCJTb25ndGkg
VEMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsNCi0jaWYgUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMTAwDQotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGhlaXRpU0NSZXBsYWNlbWVudCgiSGVp
dGkgU0MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsNCi0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaGVpdGlUQ1JlcGxhY2VtZW50KCJIZWl0aSBU
QyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOw0KLSNlbHNlDQogICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGhlaXRpU0NSZXBsYWNlbWVudCgiUGlu
Z0ZhbmcgU0MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsNCiAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gaGVpdGlUQ1JlcGxhY2VtZW50KCJQaW5n
RmFuZyBUQyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOw0KLSNlbmRpZg0K
IA0KICAgICBzd2l0Y2ggKGZhbWlseU5hbWUubGVuZ3RoKCkpIHsNCiAgICAgY2FzZSAyOg0KQEAg
LTEzOTIsMTIgKzEzODcsNiBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEZvbnRDYWNoZTo6cGxhdGZv
cm1BDQogICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShmYW1pbHlOYW1lLCAiXFw1
YjhiXFw0ZjUzIikpDQogICAgICAgICAgICAgcmV0dXJuIHNvbmd0aVNDOw0KICAgICAgICAgYnJl
YWs7DQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA8IDEwMTEwMA0KLSAgICBjYXNlIDE1Og0KLSAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9y
aW5nQVNDSUlDYXNlKGZhbWlseU5hbWUsICJtaWNyb3NvZnQgeWFoZWkiKSkNCi0gICAgICAgICAg
ICByZXR1cm4gaGVpdGlTQ1JlcGxhY2VtZW50Ow0KLSAgICAgICAgYnJlYWs7DQotI2VuZGlmDQog
ICAgIGNhc2UgMTg6DQogICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
ZmFtaWx5TmFtZSwgIm1pY3Jvc29mdCBqaGVuZ2hlaSIpKQ0KICAgICAgICAgICAgIHJldHVybiBo
ZWl0aVRDUmVwbGFjZW1lbnQ7DQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENvY29hLm1tDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tCSh3b3Jr
aW5nIGNvcHkpDQpAQCAtMTIzLDEzICsxMjMsNiBAQCB2b2lkIEZvbnQ6OnBsYXRmb3JtSW5pdCgp
DQogICAgIG1fc3ludGhldGljQm9sZE9mZnNldCA9IG1fcGxhdGZvcm1EYXRhLnN5bnRoZXRpY0Jv
bGQoKSA/IDEuMGYgOiAwLmY7DQogI2VuZGlmDQogDQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTEwMA0KLSAgICAvLyBXb3JrIGFyb3Vu
ZCA8cmRhcjovL3Byb2JsZW0vMTk0MzM0OTA+DQotICAgIENHR2x5cGggZHVtbXlHbHlwaHNbXSA9
IHswLCAwfTsNCi0gICAgQ0dTaXplIGR1bW15U2l6ZVtdID0geyBDR1NpemVNYWtlKDAsIDApLCBD
R1NpemVNYWtlKDAsIDApIH07DQotICAgIENURm9udFRyYW5zZm9ybUdseXBocyhtX3BsYXRmb3Jt
RGF0YS5jdEZvbnQoKSwgZHVtbXlHbHlwaHMsIGR1bW15U2l6ZSwgMiwga0NURm9udFRyYW5zZm9y
bUFwcGx5UG9zaXRpb25pbmcgfCBrQ1RGb250VHJhbnNmb3JtQXBwbHlTaGFwaW5nKTsNCi0jZW5k
aWYNCi0NCiAgICAgdW5zaWduZWQgdW5pdHNQZXJFbSA9IENURm9udEdldFVuaXRzUGVyRW0obV9w
bGF0Zm9ybURhdGEuZm9udCgpKTsNCiAgICAgZmxvYXQgcG9pbnRTaXplID0gbV9wbGF0Zm9ybURh
dGEuc2l6ZSgpOw0KICAgICBDR0Zsb2F0IGNhcEhlaWdodCA9IHBvaW50U2l6ZSA/IENURm9udEdl
dENhcEhlaWdodChtX3BsYXRmb3JtRGF0YS5mb250KCkpIDogMDsNCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0NCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0JKHJl
dmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9JT1N1cmZhY2UubW0JKHdvcmtpbmcgY29weSkNCkBAIC0yNTMsNyArMjUzLDcgQEAgUmV0YWlu
UHRyPENHSW1hZ2VSZWY+IFdlYkNvcmU6OklPU3VyZmFjZQ0KIA0KIFJldGFpblB0cjxDR0ltYWdl
UmVmPiBXZWJDb3JlOjpJT1N1cmZhY2U6OnNpbmtJbnRvSW1hZ2Uoc3RkOjp1bmlxdWVfcHRyPElP
U3VyZmFjZT4gc3VyZmFjZSkNCiB7DQotI2lmIChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09T
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMDAwMCkgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApDQorI2lmIChQTEFURk9STShJ
T1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMDAwMCkgfHwgUExB
VEZPUk0oTUFDKQ0KICAgICByZXR1cm4gYWRvcHRDRihDR0lPU3VyZmFjZUNvbnRleHRDcmVhdGVJ
bWFnZVJlZmVyZW5jZShzdXJmYWNlLT5lbnN1cmVQbGF0Zm9ybUNvbnRleHQoKSkpOw0KICNlbHNl
DQogICAgIHJldHVybiBzdXJmYWNlLT5jcmVhdGVJbWFnZSgpOw0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdQVUxheWVyLm1tDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR1BVTGF5ZXIubW0J
KHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9XZWJHUFVMYXllci5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTUwLDEwICs1MCw3IEBAIC0g
KGlkKWluaXRXaXRoR1BVRGV2aWNlOihHUFVEZXZpY2UqKWNvbnQNCiANCiAjaWYgUExBVEZPUk0o
TUFDKQ0KICAgICBzZWxmLmNvbnRlbnRzU2NhbGUgPSBfZGV2aWNlUGl4ZWxSYXRpbzsNCi0jaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCi0gICAgaWYgKFtzZWxm
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0Q29sb3JzcGFjZTopXSkNCi0gICAgICAg
IFtzZWxmIHNldENvbG9yc3BhY2U6c1JHQkNvbG9yU3BhY2VSZWYoKV07DQotI2VuZGlmDQorICAg
IHNlbGYuY29sb3JzcGFjZSA9IHNSR0JDb2xvclNwYWNlUmVmKCk7DQogI2VuZGlmDQogICAgIHJl
dHVybiBzZWxmOw0KIH0NCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0NCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29y
ZVRleHQubW0JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0JKHdvcmtpbmcgY29w
eSkNCkBAIC0xMzIsNyArMTMyLDYgQEAgQ29tcGxleFRleHRDb250cm9sbGVyOjpDb21wbGV4VGV4
dFJ1bjo6Qw0KICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9nbHlwaENvdW50OyArK2kp
DQogICAgICAgICBtX2dseXBocy51bmNoZWNrZWRBcHBlbmQoZ2x5cGhzUHRyW2ldKTsNCiANCi0j
aWYgVVNFX0xBWU9VVF9TUEVDSUZJQ19BRFZBTkNFUw0KICAgICBpZiAoQ1RSdW5HZXRTdGF0dXMo
Y3RSdW4pICYga0NUUnVuU3RhdHVzSGFzT3JpZ2lucykgew0KICAgICAgICAgVmVjdG9yPENHU2l6
ZT4gYmFzZUFkdmFuY2VzKG1fZ2x5cGhDb3VudCk7DQogICAgICAgICBWZWN0b3I8Q0dQb2ludD4g
Z2x5cGhPcmlnaW5zKG1fZ2x5cGhDb3VudCk7DQpAQCAtMTQzLDkgKzE0Miw3IEBAIENvbXBsZXhU
ZXh0Q29udHJvbGxlcjo6Q29tcGxleFRleHRSdW46OkMNCiAgICAgICAgICAgICBtX2Jhc2VBZHZh
bmNlcy51bmNoZWNrZWRBcHBlbmQoYmFzZUFkdmFuY2VzW2ldKTsNCiAgICAgICAgICAgICBtX2ds
eXBoT3JpZ2lucy51bmNoZWNrZWRBcHBlbmQoZ2x5cGhPcmlnaW5zW2ldKTsNCiAgICAgICAgIH0N
Ci0gICAgfSBlbHNlDQotI2VuZGlmDQotICAgIHsNCisgICAgfSBlbHNlIHsNCiAgICAgICAgIGNv
bnN0IENHU2l6ZSogYmFzZUFkdmFuY2VzID0gQ1RSdW5HZXRBZHZhbmNlc1B0cihjdFJ1bik7DQog
ICAgICAgICBWZWN0b3I8Q0dTaXplPiBiYXNlQWR2YW5jZXNWZWN0b3I7DQogICAgICAgICBpZiAo
IWJhc2VBZHZhbmNlcykgew0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9XZWJHTExheWVyLm1tDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL1dlYkdMTGF5ZXIubW0JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViR0xMYXllci5tbQkod29ya2luZyBj
b3B5KQ0KQEAgLTU1LDEwICs1NSw4IEBAIC0oaWQpaW5pdFdpdGhHcmFwaGljc0NvbnRleHQzRDoo
R3JhcGhpY3MNCiAgICAgX2RldmljZVBpeGVsUmF0aW8gPSBjb250ZXh0LT5nZXRDb250ZXh0QXR0
cmlidXRlcygpLmRldmljZVBpeGVsUmF0aW87DQogI2lmIFBMQVRGT1JNKE1BQykNCiAgICAgc2Vs
Zi5jb250ZW50c1NjYWxlID0gX2RldmljZVBpeGVsUmF0aW87DQotI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwDQogICAgIHNlbGYuY29sb3JzcGFjZSA9IHNSR0JD
b2xvclNwYWNlUmVmKCk7DQogI2VuZGlmDQotI2VuZGlmDQogICAgIHJldHVybiBzZWxmOw0KIH0N
CiANCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQmxhY2tsaXN0VXBkYXRlci5t
bQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9CbGFja2xpc3RV
cGRhdGVyLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0JsYWNrbGlzdFVwZGF0ZXIubW0JKHdvcmtpbmcgY29weSkNCkBAIC00MywxMSArNDMsNyBA
QCBjb25zdCB0aW1lX3QgYmxhY2tsaXN0Q2hlY2tUaW1lSW50ZXJ2YWwgDQogLy8gVGhlIHRpbWUg
d2hlbiB3ZSBsYXN0IHJlLXBhcnNlZCB0aGUgYmxhY2tsaXN0IGZpbGUuDQogc3RhdGljIHRpbWVf
dCBibGFja2xpc3RVcGRhdGVUaW1lOw0KIA0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTEwMA0KIE5TU3RyaW5nICogY29uc3QgYmxhY2tsaXN0UGF0aCA9IEAiL1N5
c3RlbS9MaWJyYXJ5L0NvcmVTZXJ2aWNlcy9YUHJvdGVjdC5idW5kbGUvQ29udGVudHMvUmVzb3Vy
Y2VzL1hQcm90ZWN0Lm1ldGEucGxpc3QiOw0KLSNlbHNlDQotTlNTdHJpbmcgKiBjb25zdCBibGFj
a2xpc3RQYXRoID0gQCIvU3lzdGVtL0xpYnJhcnkvQ29yZVNlcnZpY2VzL0NvcmVUeXBlcy5idW5k
bGUvQ29udGVudHMvUmVzb3VyY2VzL1hQcm90ZWN0Lm1ldGEucGxpc3QiOw0KLSNlbmRpZg0KIA0K
IG5hbWVzcGFjZSBXZWJDb3JlIHsNCiANCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGxhdGZvcm1TY3JlZW5NYWMubW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0JKHdvcmtpbmcg
Y29weSkNCkBAIC0xMzYsMTAgKzEzNiw2IEBAIE5TU2NyZWVuICpzY3JlZW4oUGxhdGZvcm1EaXNw
bGF5SUQgZGlzcGwNCiANCiBib29sIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcihXaWRnZXQq
IHdpZGdldCkNCiB7DQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDEx
MDANCi0gICAgVU5VU0VEX1BBUkFNKHdpZGdldCk7DQotICAgIHJldHVybiBmYWxzZTsNCi0jZWxz
ZQ0KICAgICBpZiAoIXdpZGdldCkNCiAgICAgICAgIHJldHVybiBmYWxzZTsNCiANCkBAIC0xNTEs
NyArMTQ3LDYgQEAgYm9vbCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IoV2lkZ2V0Kg0KICAg
ICBhdXRvIHByb2ZpbGUgPSBhZG9wdENGKENvbG9yU3luY1Byb2ZpbGVDcmVhdGUoaWNjRGF0YS5n
ZXQoKSwgbnVsbHB0cikpOw0KICAgICByZXR1cm4gcHJvZmlsZSAmJiBDb2xvclN5bmNQcm9maWxl
SXNXaWRlR2FtdXQocHJvZmlsZS5nZXQoKSk7DQogI2VuZGlmDQotI2VuZGlmDQogfQ0KIA0KIEZs
b2F0UmVjdCB0b1VzZXJTcGFjZShjb25zdCBOU1JlY3QmIHJlY3QsIE5TV2luZG93ICpkZXN0aW5h
dGlvbikNCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVmFsaWRhdGlvbkJ1YmJs
ZU1hYy5tbQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9WYWxp
ZGF0aW9uQnViYmxlTWFjLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1ZhbGlkYXRpb25CdWJibGVNYWMubW0JKHdvcmtpbmcgY29weSkNCkBAIC02
Niw5ICs2Niw3IEBAIFZhbGlkYXRpb25CdWJibGU6OlZhbGlkYXRpb25CdWJibGUoTlNWaWUNCiAg
ICAgW2xhYmVsIHNldFN0cmluZ1ZhbHVlOm1lc3NhZ2VdOw0KICAgICBtX2ZvbnRTaXplID0gc3Rk
OjptYXgoc2V0dGluZ3MubWluaW11bUZvbnRTaXplLCAxMy4wKTsNCiAgICAgW2xhYmVsIHNldEZv
bnQ6W05TRm9udCBzeXN0ZW1Gb250T2ZTaXplOm1fZm9udFNpemVdXTsNCi0jaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCiAgICAgW2xhYmVsIHNldE1heGltdW1O
dW1iZXJPZkxpbmVzOjRdOw0KLSNlbmRpZg0KICAgICBbW2xhYmVsIGNlbGxdIHNldFRydW5jYXRl
c0xhc3RWaXNpYmxlTGluZTpZRVNdOw0KICAgICBbcG9wb3ZlclZpZXcgYWRkU3VidmlldzpsYWJl
bC5nZXQoKV07DQogICAgIE5TU2l6ZSBsYWJlbFNpemUgPSBbbGFiZWwgc2l6ZVRoYXRGaXRzOk5T
TWFrZVNpemUobWF4TGFiZWxXaWR0aCwgQ0dGTE9BVF9NQVgpXTsNCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvV2ViR0xCbGFja2xpc3QubW0NCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViR0xCbGFja2xpc3QubW0JKHJldmlzaW9uIDIxOTA0
OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViR0xCbGFja2xpc3QubW0JKHdv
cmtpbmcgY29weSkNCkBAIC0yMDAsOSArMjAwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMQmxh
Y2tsaXN0PiBXZWJHTEJsYQ0KICAgICBHTGludCByZW5kZXJlcklkID0gMDsNCiAgICAgQ0dMR2V0
UGFyYW1ldGVyKGN0eCwga0NHTENQQ3VycmVudFJlbmRlcmVySUQsICZyZW5kZXJlcklkKTsNCiAg
ICAgR0xpbnQgc3VwcG9ydHNTZXBhcmF0ZUFkZHJlc3NTcGFjZSA9IDA7DQotI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwDQogICAgIENHTEdldFBhcmFtZXRlcihj
dHgsIGtDR0xDUFN1cHBvcnRTZXBhcmF0ZUFkZHJlc3NTcGFjZSwgJnN1cHBvcnRzU2VwYXJhdGVB
ZGRyZXNzU3BhY2UpOw0KLSNlbmRpZg0KICAgICBDR0xEZXN0cm95Q29udGV4dChjdHgpOw0KICAg
ICBDR0xSZWxlYXNlUGl4ZWxGb3JtYXQocGl4KTsNCiANCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24uaA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vz
c2lvbi5oCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLmgJKHdvcmtpbmcgY29weSkNCkBAIC0yNiw4
ICsyNiw2IEBADQogI2lmbmRlZiBXZWJDb3JlTlNVUkxTZXNzaW9uX2gNCiAjZGVmaW5lIFdlYkNv
cmVOU1VSTFNlc3Npb25faA0KIA0KLSNpZiBQTEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwDQotDQogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VS
TFNlc3Npb24uaD4NCiAjaW1wb3J0IDx3dGYvSGFzaFNldC5oPg0KICNpbXBvcnQgPHd0Zi9Mb2Nr
Lmg+DQpAQCAtMTQyLDYgKzE0MCw0IEBAIFdFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgV2ViQ29y
ZU5TVVJMU2UNCiANCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQNCiANCi0jZW5kaWYgLy8gUExBVEZP
Uk0oSU9TKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KLQ0K
ICNlbmRpZg0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2Vi
Q29yZU5TVVJMU2Vzc2lvbi5tbQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQkocmV2aXNpb24gMjE5MDQ4
KQ0KKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJM
U2Vzc2lvbi5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTI2LDggKzI2LDYgQEANCiAjaW1wb3J0ICJj
b25maWcuaCINCiAjaW1wb3J0ICJXZWJDb3JlTlNVUkxTZXNzaW9uLmgiDQogDQotI2lmIFBMQVRG
T1JNKElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCi0N
CiAjaW1wb3J0ICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCINCiAjaW1wb3J0ICJQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2VMb2FkZXIuaCINCiAjaW1wb3J0ICJTdWJyZXNvdXJjZUxvYWRlci5oIg0KQEAg
LTY1OSw1ICs2NTcsMyBAQCAtICh2b2lkKXJlc291cmNlRmluaXNoZWQ6KFBsYXRmb3JtTWVkaWFS
DQogICAgIFtzZWxmIF9yZXNvdXJjZTpyZXNvdXJjZSBsb2FkRmluaXNoZWRXaXRoRXJyb3I6bmls
XTsNCiB9DQogQGVuZA0KLQ0KLSNlbmRpZiAvLyBQTEFURk9STShJT1MpIHx8IF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwDQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvQ2VydGlmaWNhdGVJbmZvTWFjLm1tDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ2VydGlmaWNhdGVJbmZvTWFjLm1t
CShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvQ2VydGlmaWNhdGVJbmZvTWFjLm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtODEsNyArODEsNiBA
QCBib29sIENlcnRpZmljYXRlSW5mbzo6Y29udGFpbnNOb25Sb290U0hBDQogICAgIH0NCiAjZW5k
aWYNCiANCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDExMDApIHx8IFBMQVRGT1JNKElPUykNCiAgICAgaWYgKG1fY2VydGlmaWNhdGVD
aGFpbikgew0KICAgICAgICAgLy8gQWxsb3cgb25seSB0aGUgcm9vdCBjZXJ0aWZpY2F0ZSAodGhl
IGxhc3QgaW4gdGhlIGNoYWluKSB0byBiZSBTSEExLg0KICAgICAgICAgZm9yIChDRkluZGV4IGkg
PSAwLCBzaXplID0gQ0ZBcnJheUdldENvdW50KG1fY2VydGlmaWNhdGVDaGFpbi5nZXQoKSkgLSAx
OyBpIDwgc2l6ZTsgKytpKSB7DQpAQCAtOTEsOSArOTAsNiBAQCBib29sIENlcnRpZmljYXRlSW5m
bzo6Y29udGFpbnNOb25Sb290U0hBDQogICAgICAgICB9DQogICAgICAgICByZXR1cm4gZmFsc2U7
DQogICAgIH0NCi0jZWxzZQ0KLSAgICBub3RJbXBsZW1lbnRlZCgpOw0KLSNlbmRpZg0KIA0KICAg
ICByZXR1cm4gZmFsc2U7DQogfQ0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvbWFjL0Nvb2tpZUphck1hYy5tbQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbQkocmV2aXNpb24gMjE5MDQ4KQ0KKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tpZUphck1hYy5tbQkod29y
a2luZyBjb3B5KQ0KQEAgLTE4Nyw3ICsxODcsNyBAQCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNv
bnN0IE5ldHdvcmtTdG9yDQogICAgIE5TVVJMICpjb29raWVVUkwgPSB1cmw7DQogICAgIE5TRGlj
dGlvbmFyeSAqaGVhZGVyRmllbGRzID0gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVj
dDpjb29raWVTdHJpbmcgZm9yS2V5OkAiU2V0LUNvb2tpZSJdOw0KIA0KLSNpZiBQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwDQorI2lmIFBM
QVRGT1JNKE1BQykNCiAgICAgTlNBcnJheSAqdW5maWx0ZXJlZENvb2tpZXMgPSBbTlNIVFRQQ29v
a2llIF9wYXJzZWRDb29raWVzV2l0aFJlc3BvbnNlSGVhZGVyRmllbGRzOmhlYWRlckZpZWxkcyBm
b3JVUkw6Y29va2llVVJMXTsNCiAjZWxzZQ0KICAgICBOU0FycmF5ICp1bmZpbHRlcmVkQ29va2ll
cyA9IFtOU0hUVFBDb29raWUgY29va2llc1dpdGhSZXNwb25zZUhlYWRlckZpZWxkczpoZWFkZXJG
aWVsZHMgZm9yVVJMOmNvb2tpZVVSTF07DQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3BpL2NmL0NGTmV0d29ya1NQSS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQSS5oCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NmL0NGTmV0d29ya1NQSS5oCSh3b3JraW5nIGNvcHkpDQpA
QCAtMTE3LDcgKzExNyw2IEBAIHR5cGVkZWYgdm9pZCAoXkNGQ2FjaGVkVVJMUmVzcG9uc2VDYWxs
QmENCiAtIChDRkhUVFBDb29raWVSZWYpX0NGSFRUUENvb2tpZTsNCiBAZW5kDQogDQotI2lmIChQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAw
KSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSA5MDAwMCkNCiBAaW50ZXJmYWNlIE5TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKCkNCiBAcHJv
cGVydHkgKGFzc2lnbikgX1RpbWluZ0RhdGFPcHRpb25zIF90aW1pbmdEYXRhT3B0aW9uczsNCiBA
cHJvcGVydHkgKGNvcHkpIE5TRGF0YSAqX3NvdXJjZUFwcGxpY2F0aW9uQXVkaXRUb2tlbkRhdGE7
DQpAQCAtMTI4LDcgKzEyNyw2IEBAIHR5cGVkZWYgdm9pZCAoXkNGQ2FjaGVkVVJMUmVzcG9uc2VD
YWxsQmENCiBAcHJvcGVydHkgKG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAqX0NURGF0YUNvbm5l
Y3Rpb25TZXJ2aWNlVHlwZTsNCiAjZW5kaWYNCiBAZW5kDQotI2VuZGlmDQogDQogI2lmIChQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8
fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MTAwMDApDQogQGludGVyZmFjZSBOU1VSTFNlc3Npb25UYXNrVHJhbnNhY3Rpb25NZXRyaWNzICgp
DQpAQCAtMjQ1LDI3ICsyNDMsMjMgQEAgZW51bSA6IE5TVUludGVnZXIgew0KIA0KIFdURl9FWFRF
Uk5fQ19CRUdJTg0KIA0KLSNpZiBUQVJHRVRfT1NfSVBIT05FIHx8IChQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKQ0KIENGRGF0YVJlZiBf
Q0ZOZXR3b3JrQ29weUFUU0NvbnRleHQodm9pZCk7DQogQm9vbGVhbiBfQ0ZOZXR3b3JrU2V0QVRT
Q29udGV4dChDRkRhdGFSZWYpOw0KLSNlbmRpZg0KIA0KICNpZiBQTEFURk9STShDT0NPQSkNCiB2
b2lkIF9DRk5ldHdvcmtSZXNldEhTVFNIb3N0c1NpbmNlRGF0ZShDRlVSTFN0b3JhZ2VTZXNzaW9u
UmVmLCBDRkRhdGVSZWYpOw0KICNlbmRpZg0KIA0KLSNpZiBUQVJHRVRfT1NfSVBIT05FIHx8IChQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAw
KQ0KIENGRGF0YVJlZiBDRkhUVFBDb29raWVTdG9yYWdlQ3JlYXRlSWRlbnRpZnlpbmdEYXRhKENG
QWxsb2NhdG9yUmVmIGluQWxsb2NhdG9yLCBDRkhUVFBDb29raWVTdG9yYWdlUmVmIGluU3RvcmFn
ZSk7DQogQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBDRkhUVFBDb29raWVTdG9yYWdlQ3JlYXRlRnJv
bUlkZW50aWZ5aW5nRGF0YShDRkFsbG9jYXRvclJlZiBpbkFsbG9jYXRvciwgQ0ZEYXRhUmVmIGlu
RGF0YSk7DQogQ0ZBcnJheVJlZiBfQ0ZIVFRQUGFyc2VkQ29va2llc1dpdGhSZXNwb25zZUhlYWRl
ckZpZWxkcyhDRkFsbG9jYXRvclJlZiBpbkFsbG9jYXRvciwgQ0ZEaWN0aW9uYXJ5UmVmIGhlYWRl
ckZpZWxkcywgQ0ZVUkxSZWYgaW5VUkwpOw0KLSNlbmRpZg0KIA0KIFdURl9FWFRFUk5fQ19FTkQN
CiANCiAjaWYgZGVmaW5lZChfX09CSkNfXykNCiANCiBAaW50ZXJmYWNlIE5TSFRUUENvb2tpZSAo
KQ0KLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxMTAwDQorI2lmIFBMQVRGT1JNKE1BQykNCiArIChOU0FycmF5ICopX3BhcnNlZENvb2tp
ZXNXaXRoUmVzcG9uc2VIZWFkZXJGaWVsZHM6KE5TRGljdGlvbmFyeSAqKWhlYWRlckZpZWxkcyBm
b3JVUkw6KE5TVVJMICopYVVSTDsNCiAjZW5kaWYNCiArIChOU0FycmF5ICopX2NmMm5zQ29va2ll
czooQ0ZBcnJheVJlZiljZkNvb2tpZXM7DQpAQCAtMjgxLDExICsyNzUsOSBAQCBXVEZfRVhURVJO
X0NfRU5EDQogI2VuZGlmDQogDQogLy8gRklYTUU6IE1vdmUgK19zZXRTaGFyZWRIVFRQQ29va2ll
U3RvcmFnZTogaW50byB0aGUgYWJvdmUgc2VjdGlvbiB1bmRlciAhVVNFKEFQUExFX0lOVEVSTkFM
X1NESykgd2hlbiBwb3NzaWJsZSAoc29vbikuDQotI2lmIFRBUkdFVF9PU19JUEhPTkUgfHwgKFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAp
DQogQGludGVyZmFjZSBOU0hUVFBDb29raWVTdG9yYWdlICgpDQogKyAodm9pZClfc2V0U2hhcmVk
SFRUUENvb2tpZVN0b3JhZ2U6KE5TSFRUUENvb2tpZVN0b3JhZ2UgKilzdG9yYWdlOw0KIEBlbmQN
Ci0jZW5kaWYNCiANCiBAaW50ZXJmYWNlIE5TVVJMUmVzcG9uc2UgKCkNCiAtICh2b2lkKV9zZXRN
SU1FVHlwZTooTlNTdHJpbmcgKil0eXBlOw0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaAkocmV2aXNpb24gMjE5MDQ4KQ0KKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaAkod29ya2lu
ZyBjb3B5KQ0KQEAgLTEwNCw3ICsxMDQsNyBAQCB0eXBlZGVmIHVpbnQzMl90IENHRm9udFJlbmRl
cmluZ1N0eWxlOw0KIGVudW0gew0KICAgICBrQ0dGb250QW50aWFsaWFzaW5nU3R5bGVVbmZpbHRl
cmVkID0gMCA8PCA3LA0KICAgICBrQ0dGb250QW50aWFsaWFzaW5nU3R5bGVGaWx0ZXJMaWdodCA9
IDEgPDwgNywNCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTEwMA0KKyNpZiBQTEFURk9STShNQUMpDQogICAgIGtDR0ZvbnRBbnRpYWxp
YXNpbmdTdHlsZVVuZmlsdGVyZWRDdXN0b21EaWxhdGlvbiA9ICg4IDw8IDcpLA0KICNlbmRpZg0K
IH07DQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL05FRmlsdGVyU291
cmNlU1BJLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29j
b2EvTkVGaWx0ZXJTb3VyY2VTUEkuaAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9ORUZpbHRlclNvdXJjZVNQSS5oCSh3b3JraW5nIGNvcHkp
DQpAQCAtMjMsOCArMjMsNiBAQA0KICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4N
CiAgKi8NCiANCi0jZGVmaW5lIEhBVkVfTU9ERVJOX05FX0ZJTFRFUl9TT1VSQ0UgKFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApIHx8IFBM
QVRGT1JNKElPUykNCi0NCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykNCiANCiAjaW1wb3J0
IDxOZXR3b3JrRXh0ZW5zaW9uL05FRmlsdGVyU291cmNlLmg+DQpAQCAtNTksOCArNTcsNiBAQCB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBORUZpbHRlclNvdXJjDQogQHByb3BlcnR5IChyZWFk
b25seSkgdWludDY0X3Qgc29ja2V0SWRlbnRpZmllcjsNCiBAZW5kDQogDQotI2lmIEhBVkUoTU9E
RVJOX05FX0ZJTFRFUl9TT1VSQ0UpDQotDQogI2RlZmluZSBORUZpbHRlclNvdXJjZU9wdGlvbnNQ
YWdlRGF0YSBAIlBhZ2VEYXRhIg0KICNkZWZpbmUgTkVGaWx0ZXJTb3VyY2VPcHRpb25zUmVkaXJl
Y3RVUkwgQCJSZWRpcmVjdFVSTCINCiANCkBAIC03OSw2ICs3NSw0IEBAIHR5cGVkZWYgdm9pZCAo
Xk5FRmlsdGVyU291cmNlRGVjaXNpb25IYW4NCiAjZW5kaWYNCiBAZW5kDQogDQotI2VuZGlmDQot
DQogI2VuZGlmIC8vICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQ0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9OU1VSTENvbm5lY3Rpb25TUEkuaA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9OU1VSTENvbm5lY3Rpb25TUEku
aAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2Nv
YS9OU1VSTENvbm5lY3Rpb25TUEkuaAkod29ya2luZyBjb3B5KQ0KQEAgLTM5LDEwICszOSw2IEBA
IHR5cGVkZWYgTlNVSW50ZWdlciBUaW1pbmdEYXRhQ29sbGVjdGlvbjsNCiBAaW50ZXJmYWNlIE5T
VVJMQ29ubmVjdGlvbiAoKQ0KICsgKENGUnVuTG9vcFJlZilyZXNvdXJjZUxvYWRlclJ1bkxvb3A7
DQogLSAodm9pZClzZXREZWZlcnNDYWxsYmFja3M6KEJPT0wpZGVmZXJzOw0KLSNpZiBQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDExMDANCi0rICh2
b2lkKV9zZXRDb2xsZWN0c1RpbWluZ0RhdGE6KEJPT0wpY29sbGVjdDsNCi0rICh2b2lkKV9jb2xs
ZWN0VGltaW5nRGF0YVdpdGhPcHRpb25zOihUaW1pbmdEYXRhQ29sbGVjdGlvbilvcHRpb25zOw0K
LSNlbmRpZg0KIC0gKE5TRGljdGlvbmFyeSAqKV90aW1pbmdEYXRhOw0KIEBlbmQNCiANCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL1F1YXJ0ekNvcmVT
UEkuaAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9j
b2NvYS9RdWFydHpDb3JlU1BJLmgJKHdvcmtpbmcgY29weSkNCkBAIC0xMjQsNyArMTI0LDYgQEAg
dHlwZWRlZiBzdHJ1Y3QgQ0FDb2xvck1hdHJpeCBDQUNvbG9yTWF0cg0KIEBwcm9wZXJ0eSAoY29w
eSkgTlNTdHJpbmcgKm5hbWU7DQogQGVuZA0KIA0KLSNpZiBQTEFURk9STShJT1MpIHx8IChQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKQ0K
IHR5cGVkZWYgZW51bSB7DQogICAgIGtDQVRyYW5zYWN0aW9uUGhhc2VQcmVMYXlvdXQsDQogICAg
IGtDQVRyYW5zYWN0aW9uUGhhc2VQcmVDb21taXQsDQpAQCAtMTM0LDI2ICsxMzMsMTUgQEAgdHlw
ZWRlZiBlbnVtIHsNCiBAaW50ZXJmYWNlIENBVHJhbnNhY3Rpb24gKCkNCiArICh2b2lkKWFkZENv
bW1pdEhhbmRsZXI6KHZvaWQoXikodm9pZCkpYmxvY2sgZm9yUGhhc2U6KENBVHJhbnNhY3Rpb25Q
aGFzZSlwaGFzZTsNCiBAZW5kDQotI2VuZGlmDQogDQogQGludGVyZmFjZSBDQUxheWVySG9zdCA6
IENBTGF5ZXINCiBAcHJvcGVydHkgdWludDMyX3QgY29udGV4dElkOw0KIEBwcm9wZXJ0eSBCT09M
IGluaGVyaXRzU2VjdXJpdHk7DQogQGVuZA0KIA0KLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA8IDEwMTEwMA0KLUBpbnRlcmZhY2UgQ0FTcHJpbmdB
bmltYXRpb24gOiBDQUJhc2ljQW5pbWF0aW9uIA0KLUBwcm9wZXJ0eSBDR0Zsb2F0IG1hc3M7DQot
QHByb3BlcnR5IENHRmxvYXQgc3RpZmZuZXNzOw0KLUBwcm9wZXJ0eSBDR0Zsb2F0IGRhbXBpbmc7
DQotQHByb3BlcnR5IENHRmxvYXQgdmVsb2NpdHk7DQotQHByb3BlcnR5IENHRmxvYXQgaW5pdGlh
bFZlbG9jaXR5Ow0KLUBlbmQNCi0jZWxzZQ0KIEBpbnRlcmZhY2UgQ0FTcHJpbmdBbmltYXRpb24g
KFByaXZhdGUpDQogQHByb3BlcnR5IENHRmxvYXQgdmVsb2NpdHk7DQogQGVuZA0KLSNlbmRpZg0K
IA0KICNlbmRpZiAvLyBfX09CSkNfXw0KIA0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3NwaS9tYWMvTlNTY3JvbGxpbmdJbnB1dEZpbHRlclNQSS5oDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9OU1Njcm9sbGluZ0lucHV0RmlsdGVyU1BJLmgJ
KHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL05T
U2Nyb2xsaW5nSW5wdXRGaWx0ZXJTUEkuaAkod29ya2luZyBjb3B5KQ0KQEAgLTIzLDcgKzIzLDcg
QEANCiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLg0KICAqLw0KIA0KLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwDQorI2lmIFBMQVRGT1JNKE1BQykN
CiANCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykNCiANCkBAIC0zOCw0ICszOCw0IEBAIEBp
bnRlcmZhY2UgX05TU2Nyb2xsaW5nUHJlZG9taW5hbnRBeGlzRmkNCiANCiAjZW5kaWYgLyogVVNF
KEFQUExFX0lOVEVSTkFMX1NESykgKi8NCiANCi0jZW5kaWYgLyogUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCAqLw0KKyNlbmRpZiAvKiBQ
TEFURk9STShNQUMpICovDQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9O
U1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvclNQSS5oDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9OU1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvclNQ
SS5oCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21h
Yy9OU1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvclNQSS5oCSh3b3JraW5nIGNvcHkpDQpAQCAt
MjMsOCArMjMsNiBAQA0KICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuDQogICovDQogDQotI2lmIEhBVkUoTlNTQ1JP
TExJTkdfRklMVEVSUykNCi0NCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykNCiANCiAjaW1w
b3J0IDxBcHBLaXQvTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JfUHJpdmF0ZS5oPg0KQEAg
LTQ1LDUgKzQzLDMgQEAgQGludGVyZmFjZSBfTlNTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0bw0K
IEBlbmQNCiANCiAjZW5kaWYgLyogVVNFKEFQUExFX0lOVEVSTkFMX1NESykgKi8NCi0NCi0jZW5k
aWYgLyogSEFWRShOU1NDUk9MTElOR19GSUxURVJTKSAqLw0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NwaS9tYWMvVFVDYWxsU1BJLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcGkvbWFjL1RVQ2FsbFNQSS5oCShyZXZpc2lvbiAyMTkwNDgpDQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9UVUNhbGxTUEkuaAkod29ya2luZyBjb3B5
KQ0KQEAgLTIzLDggKzIzLDYgQEANCiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
DQogICovDQogDQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAw
DQotDQogI2ltcG9ydCAiU29mdExpbmtpbmcuaCINCiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4N
CiANCkBAIC0zNyw1ICszNSwzIEBAIEBpbnRlcmZhY2UgVFVDYWxsIChTdHJpbmdzKQ0KIA0KIFNP
RlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChUZWxlcGhvbnlVdGlsaXRpZXMpDQog
U09GVF9MSU5LX0NMQVNTKFRlbGVwaG9ueVV0aWxpdGllcywgVFVDYWxsKQ0KLQ0KLSNlbmRpZg0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQ0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQkocmV2
aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTEwNzQsMTIgKzEwNzQsNyBAQCBOU0xldmVsSW5kaWNh
dG9yQ2VsbCogUmVuZGVyVGhlbWVNYWM6OmxlDQogICAgIH0NCiANCiAgICAgW2NlbGwgc2V0TGV2
ZWxJbmRpY2F0b3JTdHlsZTpsZXZlbEluZGljYXRvclN0eWxlRm9yKHN0eWxlLmFwcGVhcmFuY2Uo
KSldOw0KLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoZSBjYWxsIHRvIHNldEJhc2VXcml0aW5nRGly
ZWN0aW9uIG9uY2UgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAgaXMg
YWx3YXlzIHRydWUuDQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MTAwDQotICAgIFtjZWxsIHNldFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb246IHN0eWxlLmlz
TGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbkxl
ZnRUb1JpZ2h0IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnRdOw0K
LSNlbHNlDQotICAgIFtjZWxsIHNldEJhc2VXcml0aW5nRGlyZWN0aW9uOnN0eWxlLmlzTGVmdFRv
UmlnaHREaXJlY3Rpb24oKSA/IE5TV3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNXcml0
aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnRdOw0KLSNlbmRpZg0KKyAgICBbY2VsbCBzZXRVc2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOnN0eWxlLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IE5T
VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNVc2VySW50ZXJmYWNl
TGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnRdOw0KICAgICBbY2VsbCBzZXRNaW5WYWx1ZTplbGVt
ZW50LT5taW4oKV07DQogICAgIFtjZWxsIHNldE1heFZhbHVlOmVsZW1lbnQtPm1heCgpXTsNCiAg
ICAgW2NlbGwgc2V0T2JqZWN0VmFsdWU6QCh2YWx1ZSldOw0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUb09URkZvbnRDb252ZXJzaW9uLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUb09URkZvbnRDb252ZXJzaW9uLmNwcAkocmV2aXNpb24gMjE5MDQ4KQ0K
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUb09URkZvbnRDb252ZXJzaW9uLmNwcAkod29ya2lu
ZyBjb3B5KQ0KQEAgLTExMjMsMTIgKzExMjMsNiBAQCB2b2lkIFNWR1RvT1RGRm9udENvbnZlcnRl
cjo6YXBwZW5kS0VSTlRhDQogICAgIEFTU0VSVF9VTlVTRUQoc2l6ZU9mSG9yaXpvbnRhbFN1YnRh
YmxlLCBzdWJ0YWJsZXNPZmZzZXQgKyBzaXplT2ZIb3Jpem9udGFsU3VidGFibGUgPT0gbV9yZXN1
bHQuc2l6ZSgpKTsNCiAgICAgc2l6ZV90IHNpemVPZlZlcnRpY2FsU3VidGFibGUgPSBhcHBlbmRL
RVJOU3VidGFibGU8U1ZHVktlcm5FbGVtZW50PigmU1ZHVktlcm5FbGVtZW50OjpidWlsZFZlcnRp
Y2FsS2VybmluZ1BhaXIsIDApOw0KICAgICBBU1NFUlRfVU5VU0VEKHNpemVPZlZlcnRpY2FsU3Vi
dGFibGUsIHN1YnRhYmxlc09mZnNldCArIHNpemVPZkhvcml6b250YWxTdWJ0YWJsZSArIHNpemVP
ZlZlcnRpY2FsU3VidGFibGUgPT0gbV9yZXN1bHQuc2l6ZSgpKTsNCi0NCi0jaWYgUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwMTAwMA0KLSAgICAv
LyBXb3JrIGFyb3VuZCBhIGJ1ZyBpbiBBcHBsZSdzIGZvbnQgcGFyc2VyIGJ5IGFkZGluZyBzb21l
IHBhZGRpbmcgYnl0ZXMuIDxyZGFyOi8vcHJvYmxlbS8xODQwMTkwMT4NCi0gICAgZm9yIChpbnQg
aSA9IDA7IGkgPCA2OyArK2kpDQotICAgICAgICBtX3Jlc3VsdC5hcHBlbmQoMCk7DQotI2VuZGlm
DQogfQ0KIA0KIHRlbXBsYXRlIDx0eXBlbmFtZSBWPg0KQEAgLTE0MzgsMTIgKzE0MzIsNiBAQCBT
VkdUb09URkZvbnRDb252ZXJ0ZXI6OlNWR1RvT1RGRm9udENvbnZlDQogDQogICAgIG1fYm91bmRp
bmdCb3ggPSBib3VuZGluZ0JveC52YWx1ZV9vcihGbG9hdFJlY3QoKSk7DQogDQotI2lmIFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDEwMDANCi0g
ICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzIwMDg2MjIzPiBDb2NvYSBoYXMgYSBidWcgd2hlcmUgZ2x5
cGggYm91bmRpbmcgYm94ZXMgYXJlIG5vdCBjb3JyZWN0bHkgcmVzcGVjdGVkIGZvciBmcnVzdHVt
IGN1bGxpbmcuIFdvcmsgYXJvdW5kIHRoaXMgYnkNCi0gICAgLy8gaW5mbGF0aW5nIHRoZSBmb250
J3MgYm91bmRpbmcgYm94DQotICAgIG1fYm91bmRpbmdCb3guZXh0ZW5kKEZsb2F0UG9pbnQoMCwg
MCkpOw0KLSNlbmRpZg0KLQ0KICAgICBhcHBlbmRMaWdhdHVyZUdseXBocygpOw0KIA0KICAgICBp
ZiAobV9nbHlwaHMuc2l6ZSgpID4gc3RkOjpudW1lcmljX2xpbWl0czxHbHlwaD46Om1heCgpKSB7
DQpJbmRleDogU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBT
b3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpAQCAtMSwzICsx
LDE0IEBADQorMjAxNy0wNy0wMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPg0KKw0K
KyAgICAgICAgW21hY09TXSBSZW1vdmUgY29kZSBvbmx5IG5lZWRlZCB3aGVuIGJ1aWxkaW5nIGZv
ciBPUyBYIFlvc2VtaXRlDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc0MDY3DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4N
CisNCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoNCisgICAgICAgICog
Q29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnOg0KKyAgICAgICAgKiBDb25maWd1
cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnOg0KKw0KIDIwMTctMDYtMzAgIEpvc2VwaCBQZWNvcmFy
byAgPHBlY29yYXJvQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFR5cGUg
dG9rZW4gYmFja2dyb3VuZCBjb2xvciBpbiBkZWJ1Z2dlciBsb29rcyBwb29yDQpJbmRleDogU291
cmNlL1dlYkluc3BlY3RvclVJL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZp
ZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Db25maWd1cmF0
aW9ucy9CYXNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtNTYsNyArNTYsNiBAQCBFTkdJ
TkVFUklOR19CVUlMRF9ERUZJTkVTXzEgPSBFTkdJTkVFUklODQogU1VQUE9SVEVEX1BMQVRGT1JN
UyA9IGlwaG9uZW9zIGlwaG9uZXNpbXVsYXRvciBtYWNvc3ggdHZvcyB0dnNpbXVsYXRvciB3YXRj
aG9zIHdhdGNoc2ltdWxhdG9yOw0KIA0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SID0g
JChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VU
OnN1ZmZpeDppZGVudGlmaWVyKSk7DQotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTAg
PSAxMDEwMDA7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTEgPSAxMDExMDA7DQog
VEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTIgPSAxMDEyMDA7DQogVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7DQpJbmRleDogU291cmNlL1dlYkluc3BlY3Rv
clVJL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZw0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25m
aWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ29uZmlndXJh
dGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtNyw3ICs3LDYg
QEAgT05MWV9BQ1RJVkVfQVJDSCA9IFlFUzsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpP
UiA9ICQoTUFDX09TX1hfVkVSU0lPTl9NQUpPUik7DQogDQogTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUID0gJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfJChQTEFURk9STV9OQU1FKV8kKFRBUkdF
VF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQotTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21h
Y29zeF8xMDEwMDAgPSAxMC4xMDsNCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEw
MTEwMCA9IDEwLjExOw0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMjAwID0g
MTAuMTI7DQogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDEzMDAgPSAxMC4xMzsN
CkluZGV4OiBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2Nv
bmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Db25maWd1cmF0aW9u
cy9WZXJzaW9uLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcJKHdvcmtpbmcgY29weSkNCkBA
IC04LDcgKzgsNiBAQCBGVUxMX1ZFUlNJT04gPSAkKE1BSk9SX1ZFUlNJT04pLiQoTUlOT1JfDQog
Ly8gVGhlIHN5c3RlbSB2ZXJzaW9uIHByZWZpeCBpcyBiYXNlZCBvbiB0aGUgY3VycmVudCBzeXN0
ZW0gdmVyc2lvbi4NCiBTWVNURU1fVkVSU0lPTl9QUkVGSVhbc2RrPWlwaG9uZSpdID0gODsNCiBT
WVNURU1fVkVSU0lPTl9QUkVGSVggPSAkKFNZU1RFTV9WRVJTSU9OX1BSRUZJWF8kKFBMQVRGT1JN
X05BTUUpXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsNCi1TWVNURU1fVkVSU0lP
Tl9QUkVGSVhfbWFjb3N4XzEwMTAwMCA9IDEwOw0KIFNZU1RFTV9WRVJTSU9OX1BSRUZJWF9tYWNv
c3hfMTAxMTAwID0gMTE7DQogU1lTVEVNX1ZFUlNJT05fUFJFRklYX21hY29zeF8xMDEyMDAgPSAx
MjsNCiBTWVNURU1fVkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEwMTMwMCA9IDEzOw0KSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwxMTQgQEANCisyMDE3LTA3LTAxICBEYW4gQmVybnN0
ZWluICA8bWl0ekBhcHBsZS5jb20+DQorDQorICAgICAgICBbbWFjT1NdIFJlbW92ZSBjb2RlIG9u
bHkgbmVlZGVkIHdoZW4gYnVpbGRpbmcgZm9yIE9TIFggWW9zZW1pdGUNCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQwNjcNCisNCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9C
YXNlLnhjY29uZmlnOg0KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29u
ZmlnOg0KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9CYXNlWFBDU2VydmljZS54Y2NvbmZpZzoN
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnOg0KKyAgICAg
ICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoNCisgICAgICAgICog
Q29uZmlndXJhdGlvbnMvTmV0d29ya1NlcnZpY2UueGNjb25maWc6DQorICAgICAgICAqIENvbmZp
Z3VyYXRpb25zL1BsdWdpblNlcnZpY2UuMzIueGNjb25maWc6DQorICAgICAgICAqIENvbmZpZ3Vy
YXRpb25zL1BsdWdpblNlcnZpY2UuNjQueGNjb25maWc6DQorICAgICAgICAqIENvbmZpZ3VyYXRp
b25zL1ZlcnNpb24ueGNjb25maWc6DQorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYkNvbnRl
bnRTZXJ2aWNlLnhjY29uZmlnOg0KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJLaXQueGNj
b25maWc6DQorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5E
YXRhYmFzZXMuc2IuaW46DQorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2UvSW5mby1PU1gtMTAuOS0xMC4xMC5wbGlzdDogUmVt
b3ZlZC4NCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwOg0KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmVuY29kZSk6DQorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToNCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoNCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbToNCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzc0NvY29hKToNCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2Iu
aW46DQorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmg6DQorICAgICAgICAqIFBs
YXRmb3JtL0lQQy9tYWMvQ29ubmVjdGlvbk1hYy5tbToNCisgICAgICAgIChJUEM6OkNvbm5lY3Rp
b246OnBsYXRmb3JtSW52YWxpZGF0ZSk6DQorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpwbGF0
Zm9ybUluaXRpYWxpemUpOg0KKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6b3Blbik6DQorICAg
ICAgICAoSVBDOjpDb25uZWN0aW9uOjpleGNlcHRpb25Tb3VyY2VFdmVudEhhbmRsZXIpOiBEZWxl
dGVkLg0KKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2V0U2hvdWxkQ2xvc2VDb25uZWN0aW9u
T25NYWNoRXhjZXB0aW9ucyk6IERlbGV0ZWQuDQorICAgICAgICAqIFBsYXRmb3JtL21hYy9MYXll
ckhvc3RpbmdDb250ZXh0Lmg6DQorICAgICAgICAqIFBsYXRmb3JtL21hYy9MYXllckhvc3RpbmdD
b250ZXh0Lm1tOg0KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRl
RmVuY2VQb3J0KToNCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENT
ZXJ2aWNlL1BsdWdpblNlcnZpY2UuMzItNjQtMTAuOS0xMC4xMC5JbmZvLnBsaXN0OiBSZW1vdmVk
Lg0KKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMu
bW06DQorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OnVwZGF0ZUxheWVy
SG9zdGluZ0NvbnRleHQpOg0KKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9j
ZXNzU2hpbS5tbToNCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktp
dC5wbHVnaW4tY29tbW9uLnNiLmluOg0KKyAgICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzLmg6
DQorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1v
ZHVsZU1hYy5tbToNCisgICAgICAgIChXZWJLaXQ6OmdldFBsdWdpbkluZm9Gcm9tUHJvcGVydHlM
aXN0cyk6DQorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbk1vZHVsZTo6Z2V0UGx1Z2lu
SW5mbyk6DQorICAgICAgICAoV2ViS2l0Ojpjb250ZW50c09mUHJvcGVydHlMaXN0QXRVUkwpOiBE
ZWxldGVkLg0KKyAgICAgICAgKFdlYktpdDo6Z2V0TUlNRVR5cGVzRnJvbVBsdWdpbkJ1bmRsZSk6
IERlbGV0ZWQuDQorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwOg0KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKToNCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmRlY29kZSk6DQorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL1BsdWdp
blByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoNCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOg0KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToNCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6DQorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmg6DQorICAgICAgICAqIFNoYXJlZC9tYWMvQ2hpbGRQcm9jZXNz
TWFjLm1tOg0KKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzOjpzZXRTaGFyZWRIVFRQQ29v
a2llU3RvcmFnZSk6DQorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOg0KKyAg
ICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6DQorICAgICAgICAoZml4VXBCb3RjaGVkUGFn
ZVVJQ2xpZW50KTogRGVsZXRlZC4NCisgICAgICAgICogVUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1By
b3h5LmNwcDoNCisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hM
YXVuY2hpbmcpOg0KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbToNCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKToNCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9y
bUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6DQorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbDo6cmVzZXRIU1RTSG9zdHNBZGRlZEFmdGVyRGF0ZSk6DQorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5oOg0KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW06DQorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlTGF5ZXIpOg0K
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnN0YXJ0V2luZG93RHJhZyk6DQorICAgICAg
ICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5Lmg6DQorICAgICAgICAoV2ViS2l0OjpEcmF3
aW5nQXJlYVByb3h5Ojp3YWl0Rm9yUG9zc2libGVHZW9tZXRyeVVwZGF0ZSk6IERlbGV0ZWQuDQor
ICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHA6DQorICAg
ICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyk6DQor
ICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oOg0KKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tOg0KKyAg
ICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUluaXRpYWxpemVQbHVn
aW5Qcm9jZXNzKToNCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6Y3JlYXRl
UHJvcGVydHlMaXN0RmlsZSk6IERlbGV0ZWQuDQorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOg0KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRUb3BDb250ZW50
SW5zZXQpOg0KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOg0KKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJvb3RWaWV3VG9XaW5kb3cpOg0KKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnN0YXJ0V2luZG93RHJhZyk6DQorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMubW06DQorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TdGFydFdpbmRvd0RyYWcp
Og0KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
UHJveHkuaDoNCisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYVByb3h5Lm1tOg0KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWFQcm94eTo6Y3JlYXRlRmVuY2UpOg0KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6d2FpdEZvclBvc3NpYmxlR2VvbWV0cnlVcGRhdGUp
OiBEZWxldGVkLg0KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFj
Lm1tOg0KKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OmNyZWF0ZUZyb250ZW5k
V2luZG93KToNCisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVN0
YXJ0V2luZG93RHJhZyk6DQorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJv
eHlNYWMubW06DQorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6c2hvd1Bv
cHVwTWVudSk6DQorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoN
CisgICAgICAgICogV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRl
bnRTZXJ2aWNlL0luZm8tT1NYLTEwLjktMTAuMTAucGxpc3Q6IFJlbW92ZWQuDQorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoNCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoNCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW46DQorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1D
QUFuaW1hdGlvblJlbW90ZS5tbToNCisgICAgICAgIChXZWJLaXQ6OmFkZEFuaW1hdGlvblRvTGF5
ZXIpOg0KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLm1tOg0KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWE6OmZsdXNoTGF5ZXJzKToNCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToNCisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpmbHVzaExheWVycyk6DQorICAgICAgICAoV2ViS2l0OjpU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkpOg0KKyAgICAgICAg
KiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToNCisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOg0KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluOg0KKw0KIDIwMTctMDYtMzAgIE1l
Z2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFVucmV2
aWV3ZWQgbWFjIGJ1aWxkIGZpeC4NCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9u
cy9CYXNlLnhjY29uZmlnDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvQ29uZmlndXJh
dGlvbnMvQmFzZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQy
L0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHdvcmtpbmcgY29weSkNCkBAIC03OCw3ICs3
OCw2IEBAIFBSRUJJTkRJTkcgPSBOTzsNCiBXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XZXh0cmEg
LVdjaGFyLXN1YnNjcmlwdHMgLVdleHRyYS10b2tlbnMgLVdmb3JtYXQtc2VjdXJpdHkgLVdpbml0
LXNlbGYgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUgLVdtaXNzaW5nLW5vcmV0dXJuIC1Xbm8t
dW51c2VkLXBhcmFtZXRlciAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVj
bHMgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9i
YWwtY29uc3RydWN0b3JzIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhy
b3VnaDsNCiANCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTUFKT1IkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6aWRlbnRp
ZmllcikpOw0KLVRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzEwID0gMTAxMDAwOw0KIFRB
UkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzExID0gMTAxMTAwOw0KIFRBUkdFVF9NQUNfT1Nf
WF9WRVJTSU9OX01BSk9SXzEyID0gMTAxMjAwOw0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01B
Sk9SXzEzID0gMTAxMzAwOw0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0Jh
c2VUYXJnZXQueGNjb25maWcNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNl
L1dlYktpdDIvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZwkod29ya2luZyBjb3B5
KQ0KQEAgLTkyLDExICs5Miw2IEBAIFdLX01BTlVBTF9TQU5EQk9YSU5HX0VOQUJMRURbc2RrPW1h
Y29zeCoNCiBXS19NQU5VQUxfU0FOREJPWElOR19ERUZJTkVTID0gJChXS19NQU5VQUxfU0FOREJP
WElOR19ERUZJTkVTXyQoV0tfTUFOVUFMX1NBTkRCT1hJTkdfRU5BQkxFRCkpOw0KIFdLX01BTlVB
TF9TQU5EQk9YSU5HX0RFRklORVNfWUVTID0gRU5BQkxFX01BTlVBTF9TQU5EQk9YSU5HOw0KIA0K
LVdLX0RPTlRfTElOS19TSElNID0gJChXS19ET05UX0xJTktfU0hJTV8kKFRBUkdFVF9NQUNfT1Nf
WF9WRVJTSU9OX01BSk9SKSk7DQotV0tfRE9OVF9MSU5LX1NISU1fMTAxMDAwID0gWUVTOw0KLQ0K
LVdLX0xJTktfU0hJTVtzZGs9bWFjb3N4Kl0gPSAkKFdLX05PVF8kKFdLX0RPTlRfTElOS19TSElN
KSk7DQotDQogV0tfRU1QVFlfID0gWUVTOw0KIFdLX05PVF8gPSBZRVM7DQogV0tfTk9UX1lFUyA9
IE5POw0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0Jhc2VYUENTZXJ2aWNl
LnhjY29uZmlnDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMv
QmFzZVhQQ1NlcnZpY2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2Vi
S2l0Mi9Db25maWd1cmF0aW9ucy9CYXNlWFBDU2VydmljZS54Y2NvbmZpZwkod29ya2luZyBjb3B5
KQ0KQEAgLTYzLDkgKzYzLDYgQEAgQ09ERV9TSUdOX0VOVElUTEVNRU5UU19JT1NfTUFOVUFMX1NB
TkRCTw0KIENPREVfU0lHTl9FTlRJVExFTUVOVFNfSU9TX01BTlVBTF9TQU5EQk9YSU5HX05PID0g
Q29uZmlndXJhdGlvbnMvJChXS19YUENfU0VSVklDRV9JT1NfRU5USVRMRU1FTlRTX0JBU0UpLmVu
dGl0bGVtZW50czsNCiBDT0RFX1NJR05fRU5USVRMRU1FTlRTX0lPU19NQU5VQUxfU0FOREJPWElO
R19ZRVMgPSAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi8kKFdL
X1hQQ19TRVJWSUNFX0lPU19FTlRJVExFTUVOVFNfQkFTRSktbm8tc2FuZGJveC5lbnRpdGxlbWVu
dHM7DQogDQotV0tfWFBDX1NFUlZJQ0VfSU5GT1BMSVNUX1NVRkZJWFtzZGs9bWFjb3N4Kl0gPSAk
KFdLX1hQQ19TRVJWSUNFX0lORk9QTElTVF9TVUZGSVhfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lP
Tl9NQUpPUikpOw0KLVdLX1hQQ19TRVJWSUNFX0lORk9QTElTVF9TVUZGSVhfMTAxMDAwID0gLTEw
LjktMTAuMTA7DQotDQogV0tfWFBDX1NFUlZJQ0VfSU5TRVJUX0xJQlJBUklFU19ESVIgPSAkKFdL
X1hQQ19TRVJWSUNFX0lOU0VSVF9MSUJSQVJJRVNfRElSXyQoV0tfUkVMT0NBVEFCTEVfRlJBTUVX
T1JLUykpOw0KIFdLX1hQQ19TRVJWSUNFX0lOU0VSVF9MSUJSQVJJRVNfRElSXyA9ICQoV0tfWFBD
X1NFUlZJQ0VfSU5TRVJUX0xJQlJBUklFU19ESVJfTk8pOw0KIFdLX1hQQ19TRVJWSUNFX0lOU0VS
VF9MSUJSQVJJRVNfRElSX05PID0gJChXRUJLSVRfRlJBTUVXT1JLU19ESVIpL1dlYktpdC5mcmFt
ZXdvcmsvRnJhbWV3b3JrczsNCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9E
ZWJ1Z1JlbGVhc2UueGNjb25maWcNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9Db25m
aWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBT
b3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHdvcmtp
bmcgY29weSkNCkBAIC0zMCw3ICszMCw2IEBAIE9OTFlfQUNUSVZFX0FSQ0ggPSBZRVM7DQogVEFS
R0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKE1BQ19PU19YX1ZFUlNJT05fTUFKT1IpOw0K
IA0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9ICQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VU
XyQoUExBVEZPUk1fTkFNRSlfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOw0KLU1B
Q09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMDAwID0gMTAuMTA7DQogTUFDT1NYX0RF
UExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDExMDAgPSAxMC4xMTsNCiBNQUNPU1hfREVQTE9ZTUVO
VF9UQVJHRVRfbWFjb3N4XzEwMTIwMCA9IDEwLjEyOw0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdF
VF9tYWNvc3hfMTAxMzAwID0gMTAuMTM7DQpAQCAtNDIsNyArNDEsNiBAQCBERUJVR19JTkZPUk1B
VElPTl9GT1JNQVQgPSBkd2FyZjsNCiBXRUJLSVRfU1lTVEVNX0lOVEVSRkFDRV9MSUJSQVJZW3Nk
az1pcGhvbmVvcypdID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNlSU9TRGV2aWNlJChXS19UQVJHRVRf
SU9TX1ZFUlNJT05fTUFKT1IpOw0KIFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllbc2Rr
PWlwaG9uZXNpbXVsYXRvcipdID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNlSU9TU2ltdWxhdG9yJChX
S19UQVJHRVRfSU9TX1ZFUlNJT05fTUFKT1IpOw0KIFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJ
QlJBUllbc2RrPW1hY29zeCpdID0gJChXRUJLSVRfU1lTVEVNX0lOVEVSRkFDRV9MSUJSQVJZX21h
Y29zeF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQotV0VCS0lUX1NZU1RFTV9J
TlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfMTAxMDAwID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNlWW9z
ZW1pdGU7DQogV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfMTAxMTAwID0g
V2ViS2l0U3lzdGVtSW50ZXJmYWNlRWxDYXBpdGFuOw0KIFdFQktJVF9TWVNURU1fSU5URVJGQUNF
X0xJQlJBUllfbWFjb3N4XzEwMTIwMCA9IFdlYktpdFN5c3RlbUludGVyZmFjZU9TWDEwLjEyOw0K
IFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllfbWFjb3N4XzEwMTMwMCA9ICQoV0VCS0lU
X1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfMTAxMjAwKTsNCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZw0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkNCkBAIC0zMiwxMSArMzIsOSBA
QA0KIC8vIFNldCBhbnkgRU5BQkxFX0ZFQVRVUkVfTkFNRSBtYWNybyB0byBhbiBlbXB0eSBzdHJp
bmcgdG8gZGlzYWJsZSB0aGF0IGZlYXR1cmUuDQogDQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05f
TEVTU19USEFOXzEwMTIwMDAgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8x
MDEyMDAwXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsNCi1UQVJHRVRfTUFDX09T
X1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMjAwMF8xMDEwMDAgPSBZRVM7DQogVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDBfMTAxMTAwID0gWUVTOw0KIA0KIFRBUkdFVF9N
QUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwID0gJChUQVJHRVRfTUFDX09TX1hfVkVS
U0lPTl9MRVNTX1RIQU5fMTAxMzAwMF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7
DQotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDBfMTAxMDAwID0gWUVT
Ow0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwXzEwMTEwMCA9IFlF
UzsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAwMF8xMDEyMDAgPSBZ
RVM7DQogDQpJbmRleDogU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvTmV0d29ya1NlcnZp
Y2UueGNjb25maWcNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9u
cy9OZXR3b3JrU2VydmljZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9X
ZWJLaXQyL0NvbmZpZ3VyYXRpb25zL05ldHdvcmtTZXJ2aWNlLnhjY29uZmlnCSh3b3JraW5nIGNv
cHkpDQpAQCAtMjgsNyArMjgsNyBAQCBXS19YUENfU0VSVklDRV9JT1NfRU5USVRMRU1FTlRTX0JB
U0UgPSBODQogUFJPRFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nOw0KIFBS
T0RVQ1RfQlVORExFX0lERU5USUZJRVIgPSAkKFBST0RVQ1RfTkFNRSk7DQogSU5GT1BMSVNUX0ZJ
TEVbc2RrPWlwaG9uZSpdID0gTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2Vydmlj
ZS9OZXR3b3JrU2VydmljZS9JbmZvLWlPUy5wbGlzdDsNCi1JTkZPUExJU1RfRklMRVtzZGs9bWFj
b3N4Kl0gPSBOZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtT
ZXJ2aWNlL0luZm8tT1NYJChXS19YUENfU0VSVklDRV9JTkZPUExJU1RfU1VGRklYKS5wbGlzdDsN
CitJTkZPUExJU1RfRklMRVtzZGs9bWFjb3N4Kl0gPSBOZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50
L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlL0luZm8tT1NYLnBsaXN0Ow0KIA0KLU9USEVS
X0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChPVEhFUl9MREZMQUdTX1ZFUlNJT05FRF9GUkFNRVdP
UktfUEFUSCkgJChPVEhFUl9MREZMQUdTX1NISU1fJChXS19MSU5LX1NISU0pKSAkKFdLX1JFTE9D
QVRBQkxFX0ZSQU1FV09SS1NfTERGTEFHUyk7DQotT1RIRVJfTERGTEFHU19TSElNX1lFUyA9ICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9TZWNJdGVtU2hpbS5keWxpYjsNCitPVEhFUl9MREZMQUdTID0g
JChpbmhlcml0ZWQpICQoT1RIRVJfTERGTEFHU19WRVJTSU9ORURfRlJBTUVXT1JLX1BBVEgpICQo
V0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLU19MREZMQUdTKTsNCitPVEhFUl9MREZMQUdTW3Nkaz1t
YWNvc3gqXSA9ICQoaW5oZXJpdGVkKSAkKEJVSUxUX1BST0RVQ1RTX0RJUikvU2VjSXRlbVNoaW0u
ZHlsaWI7DQpJbmRleDogU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvUGx1Z2luU2Vydmlj
ZS4zMi54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRp
b25zL1BsdWdpblNlcnZpY2UuMzIueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9QbHVnaW5TZXJ2aWNlLjMyLnhjY29uZmlnCSh3b3Jr
aW5nIGNvcHkpDQpAQCAtMjcsMTEgKzI3LDEwIEBAIFZBTElEX0FSQ0hTX21hY29zeF9OTyA9IGkz
ODY7DQogDQogUFJPRFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5QbHVnaW4uMzI7DQogUFJP
RFVDVF9CVU5ETEVfSURFTlRJRklFUiA9ICQoUFJPRFVDVF9OQU1FKTsNCi1JTkZPUExJU1RfRklM
RSA9IFBsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNl
LjMyLTY0JChXS19YUENfU0VSVklDRV9JTkZPUExJU1RfU1VGRklYKS5JbmZvLnBsaXN0Ow0KK0lO
Rk9QTElTVF9GSUxFID0gUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1Bs
dWdpblNlcnZpY2UuMzItNjQuSW5mby5wbGlzdDsNCiANCiBPVEhFUl9MREZMQUdTID0gJChPVEhF
Ul9MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk0pICQoT1RIRVJfTERGTEFHU19WRVJT
SU9ORURfRlJBTUVXT1JLX1BBVEgpICQoV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLU19MREZMQUdT
KTsNCi1PVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1tYWNvc3gqXSA9IC1mcmFtZXdvcmsgQXBw
S2l0ICQoT1RIRVJfTERGTEFHU19TSElNXyQoV0tfTElOS19TSElNKSk7DQotT1RIRVJfTERGTEFH
U19TSElNX1lFUyA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9QbHVnaW5Qcm9jZXNzU2hpbS5keWxp
YjsNCitPVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1tYWNvc3gqXSA9IC1mcmFtZXdvcmsgQXBw
S2l0ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9QbHVnaW5Qcm9jZXNzU2hpbS5keWxpYjsNCiANCiBD
T0RFX1NJR05fRU5USVRMRU1FTlRTID0gQ29uZmlndXJhdGlvbnMvUGx1Z2luU2VydmljZS5lbnRp
dGxlbWVudHM7DQogDQpJbmRleDogU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvUGx1Z2lu
U2VydmljZS42NC54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQyL0NvbmZp
Z3VyYXRpb25zL1BsdWdpblNlcnZpY2UuNjQueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisr
KyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9QbHVnaW5TZXJ2aWNlLjY0LnhjY29uZmln
CSh3b3JraW5nIGNvcHkpDQpAQCAtMjcsMTEgKzI3LDEwIEBAIFZBTElEX0FSQ0hTX21hY29zeF9O
TyA9IHg4Nl82NDsNCiANCiBQUk9EVUNUX05BTUUgPSBjb20uYXBwbGUuV2ViS2l0LlBsdWdpbi42
NDsNCiBQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSID0gJChQUk9EVUNUX05BTUUpOw0KLUlORk9Q
TElTVF9GSUxFID0gUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1BsdWdp
blNlcnZpY2UuMzItNjQkKFdLX1hQQ19TRVJWSUNFX0lORk9QTElTVF9TVUZGSVgpLkluZm8ucGxp
c3Q7DQorSU5GT1BMSVNUX0ZJTEUgPSBQbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1Nl
cnZpY2UvUGx1Z2luU2VydmljZS4zMi02NC5JbmZvLnBsaXN0Ow0KIA0KIE9USEVSX0xERkxBR1Mg
PSAkKE9USEVSX0xERkxBR1MpICQoT1RIRVJfTERGTEFHU19QTEFURk9STSkgJChPVEhFUl9MREZM
QUdTX1ZFUlNJT05FRF9GUkFNRVdPUktfUEFUSCkgJChXS19SRUxPQ0FUQUJMRV9GUkFNRVdPUktT
X0xERkxBR1MpOw0KLU9USEVSX0xERkxBR1NfUExBVEZPUk1bc2RrPW1hY29zeCpdID0gLWZyYW1l
d29yayBBcHBLaXQgJChPVEhFUl9MREZMQUdTX1NISU1fJChXS19MSU5LX1NISU0pKTsNCi1PVEhF
Ul9MREZMQUdTX1NISU1fWUVTID0gJChCVUlMVF9QUk9EVUNUU19ESVIpL1BsdWdpblByb2Nlc3NT
aGltLmR5bGliOw0KK09USEVSX0xERkxBR1NfUExBVEZPUk1bc2RrPW1hY29zeCpdID0gLWZyYW1l
d29yayBBcHBLaXQgJChCVUlMVF9QUk9EVUNUU19ESVIpL1BsdWdpblByb2Nlc3NTaGltLmR5bGli
Ow0KIA0KIENPREVfU0lHTl9FTlRJVExFTUVOVFMgPSBDb25maWd1cmF0aW9ucy9QbHVnaW5TZXJ2
aWNlLmVudGl0bGVtZW50czsNCiANCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9u
cy9WZXJzaW9uLnhjY29uZmlnDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvQ29uZmln
dXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9X
ZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcJKHdvcmtpbmcgY29weSkNCkBA
IC0zNSw3ICszNSw2IEBAIFNIT1JUX1ZFUlNJT05fU1RSSU5HID0gJChTSE9SVF9WRVJTSU9OX1MN
CiAvLyBUaGUgc3lzdGVtIHZlcnNpb24gcHJlZml4IGlzIGJhc2VkIG9uIHRoZSBjdXJyZW50IHN5
c3RlbSB2ZXJzaW9uLg0KIFNZU1RFTV9WRVJTSU9OX1BSRUZJWFtzZGs9aXBob25lKl0gPSA4Ow0K
IFNZU1RFTV9WRVJTSU9OX1BSRUZJWCA9ICQoU1lTVEVNX1ZFUlNJT05fUFJFRklYXyQoUExBVEZP
Uk1fTkFNRSlfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOw0KLVNZU1RFTV9WRVJT
SU9OX1BSRUZJWF9tYWNvc3hfMTAxMDAwID0gMTA7DQogU1lTVEVNX1ZFUlNJT05fUFJFRklYX21h
Y29zeF8xMDExMDAgPSAxMTsNCiBTWVNURU1fVkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEwMTIwMCA9
IDEyOw0KIFNZU1RFTV9WRVJTSU9OX1BSRUZJWF9tYWNvc3hfMTAxMzAwID0gMTM7DQpJbmRleDog
U291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvV2ViQ29udGVudFNlcnZpY2UueGNjb25maWcN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9XZWJDb250ZW50
U2VydmljZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL0Nv
bmZpZ3VyYXRpb25zL1dlYkNvbnRlbnRTZXJ2aWNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpA
QCAtMzIsMTEgKzMyLDEwIEBAIE9USEVSX0NPREVfU0lHTl9GTEFHU1tzZGs9bWFjb3N4Kl0gPSAk
KFcNCiBQUk9EVUNUX05BTUUgPSBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQ7DQogUFJPRFVD
VF9CVU5ETEVfSURFTlRJRklFUiA9ICQoUFJPRFVDVF9OQU1FKTsNCiBJTkZPUExJU1RfRklMRVtz
ZGs9aXBob25lKl0gPSBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29u
dGVudFNlcnZpY2UvSW5mby1pT1MucGxpc3Q7DQotSU5GT1BMSVNUX0ZJTEVbc2RrPW1hY29zeCpd
ID0gV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRTZXJ2aWNl
L0luZm8tT1NYJChXS19YUENfU0VSVklDRV9JTkZPUExJU1RfU1VGRklYKS5wbGlzdDsNCitJTkZP
UExJU1RfRklMRVtzZGs9bWFjb3N4Kl0gPSBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1Nl
cnZpY2UvV2ViQ29udGVudFNlcnZpY2UvSW5mby1PU1gucGxpc3Q7DQogDQogT1RIRVJfTERGTEFH
UyA9ICQoaW5oZXJpdGVkKSAkKE9USEVSX0xERkxBR1NfVkVSU0lPTkVEX0ZSQU1FV09SS19QQVRI
XyQoV0tfV0VCQ09OVEVOVF9TRVJWSUNFX05FRURTX1ZFUlNJT05FRF9GUkFNRVdPUktfUEFUSF9M
REZMQUcpKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk0pICQoV0tfUkVMT0NBVEFCTEVfRlJBTUVX
T1JLU19MREZMQUdTKTsNCi1PVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1tYWNvc3gqXSA9IC1m
cmFtZXdvcmsgQXBwS2l0ICQoT1RIRVJfTERGTEFHU19TSElNXyQoV0tfTElOS19TSElNKSk7DQot
T1RIRVJfTERGTEFHU19TSElNX1lFUyA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9XZWJQcm9jZXNz
U2hpbS5keWxpYjsNCitPVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1tYWNvc3gqXSA9IC1mcmFt
ZXdvcmsgQXBwS2l0ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9XZWJQcm9jZXNzU2hpbS5keWxpYjsN
CiANCiBXS19XRUJDT05URU5UX1NFUlZJQ0VfTkVFRFNfWFBDX0RPTUFJTl9FWFRFTlNJT05fRU5U
SVRMRU1FTlQgPSAkKFdLX1dFQkNPTlRFTlRfU0VSVklDRV9ORUVEU19YUENfRE9NQUlOX0VYVEVO
U0lPTl9FTlRJVExFTUVOVF8kKFdLX0VNUFRZXyQoV0tfV0VCQ09OVEVOVF9TRVJWSUNFX05FRURT
X1hQQ19ET01BSU5fRVhURU5TSU9OX0VOVElUTEVNRU5UKSkpOw0KIFdLX1dFQkNPTlRFTlRfU0VS
VklDRV9ORUVEU19YUENfRE9NQUlOX0VYVEVOU0lPTl9FTlRJVExFTUVOVF8gPSAkKFdLX1dFQkNP
TlRFTlRfU0VSVklDRV9ORUVEU19YUENfRE9NQUlOX0VYVEVOU0lPTl9FTlRJVExFTUVOVF9OTyk7
DQpJbmRleDogU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnDQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29u
ZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMv
V2ViS2l0LnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtNzUsNyArNzUsNiBAQCBFWENMVURF
RF9TT1VSQ0VfRklMRV9OQU1FU1tzZGs9aXBob25lKl0gDQogSU5TVEFMTEhEUlNfU0NSSVBUX1BI
QVNFID0gWUVTOw0KIA0KIFdLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJM
RURbc2RrPW1hY29zeCpdID0gJChXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJ
U0FCTEVEX21hY29zeF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQotV0tfRlJB
TUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRF9tYWNvc3hfMTAxMDAwID0gWUVT
Ow0KIFdLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURfbWFjb3N4XzEw
MTEwMCA9IFlFUzsNCiBXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FCTEVE
X21hY29zeF8xMDEyMDAgPSBZRVM7DQogDQpJbmRleDogU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlcy5zYi5pbg0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFNvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5E
YXRhYmFzZXMuc2IuaW4JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzLnNiLmluCSh3b3JraW5n
IGNvcHkpDQpAQCAtMzIsNyArMzIsNiBAQA0KIChhbGxvdyBwcm9jZXNzLWluZm8tcGlkaW5mbykN
CiAoYWxsb3cgcHJvY2Vzcy1pbmZvLXNldGNvbnRyb2wgKHRhcmdldCBzZWxmKSkNCiANCi0jaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCiAoZGVueSBzeXNjdGwq
KQ0KIChhbGxvdyBzeXNjdGwtcmVhZA0KICAgICAoc3lzY3RsLW5hbWUNCkBAIC00Myw3ICs0Miw2
IEBADQogICAgICAgICAidm0uZm9vdHByaW50X3N1c3BlbmQiKSkNCiANCiAoZGVueSBpb2tpdC1n
ZXQtcHJvcGVydGllcykNCi0jZW5kaWYNCiANCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDEzMDANCiAoZGVueSBtYWNoLWxvb2t1cCAoeHBjLXNlcnZpY2UtbmFtZS1w
cmVmaXggIiIpKQ0KQEAgLTExMSw5ICsxMDksNyBAQA0KICNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTMwMA0KICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hbmFs
eXRpY3NkIikNCiAjZW5kaWYNCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDExMDANCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubHNkLm1hcGRiIikNCi0jZW5k
aWYNCiApDQogDQogOzsgU2FuZGJveCBleHRlbnNpb25zDQpJbmRleDogU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3
b3JraW5nIGNvcHkpDQpAQCAtNTQsNyArNTQsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjplDQogICAgIGVuY29kZXIgPDwgc2hvdWxkRW5hYmxlTmV0d29ya0NhY2hl
U3BlY3VsYXRpdmVSZXZhbGlkYXRpb247DQogI2VuZGlmDQogI2VuZGlmDQotI2lmIFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCisjaWYg
UExBVEZPUk0oTUFDKQ0KICAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVu
dGlmaWVyOw0KICNlbmRpZg0KICNpZiBQTEFURk9STShJT1MpDQpAQCAtODAsNyArODAsNyBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplDQogI2VuZGlmDQogICAgIGVu
Y29kZXIgPDwgaHR0cFByb3h5Ow0KICAgICBlbmNvZGVyIDw8IGh0dHBzUHJveHk7DQotI2lmIFRB
UkdFVF9PU19JUEhPTkUgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDExMDApDQorI2lmIFBMQVRGT1JNKENPQ09BKQ0KICAgICBJUEM6OmVu
Y29kZShlbmNvZGVyLCBuZXR3b3JrQVRTQ29udGV4dC5nZXQoKSk7DQogI2VuZGlmDQogICAgIGVu
Y29kZXIgPDwgY29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQ7DQpAQCAtMTI2LDcgKzEy
Niw3IEBAIGJvb2wgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmQNCiAgICAgICAg
IHJldHVybiBmYWxzZTsNCiAjZW5kaWYNCiAjZW5kaWYNCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KKyNpZiBQTEFURk9STShN
QUMpDQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnVpUHJvY2Vzc0Nvb2tpZVN0b3Jh
Z2VJZGVudGlmaWVyKSkNCiAgICAgICAgIHJldHVybiBmYWxzZTsNCiAjZW5kaWYNCkBAIC0xNzEs
NyArMTcxLDcgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZA0KICAg
ICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5odHRw
c1Byb3h5KSkNCiAgICAgICAgIHJldHVybiBmYWxzZTsNCi0jaWYgVEFSR0VUX09TX0lQSE9ORSB8
fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTEwMCkNCisjaWYgUExBVEZPUk0oQ09DT0EpDQogICAgIGlmICghSVBDOjpkZWNvZGUoZGVjb2Rl
ciwgcmVzdWx0Lm5ldHdvcmtBVFNDb250ZXh0KSkNCiAgICAgICAgIHJldHVybiBmYWxzZTsNCiAj
ZW5kaWYNCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24g
MjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkNCkBAIC02Myw3ICs2Myw3IEBAIHN0
cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyANCiAgICAgYm9vbCBzaG91bGRF
bmFibGVOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVJldmFsaWRhdGlvbiB7IGZhbHNlIH07DQogI2Vu
ZGlmDQogI2VuZGlmDQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDExMDANCisjaWYgUExBVEZPUk0oTUFDKQ0KICAgICBWZWN0b3I8dWlu
dDhfdD4gdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7DQogI2VuZGlmDQogI2lmIFBM
QVRGT1JNKElPUykNCkBAIC05MSw3ICs5MSw3IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyANCiAjZW5kaWYNCiAgICAgU3RyaW5nIGh0dHBQcm94eTsNCiAgICAgU3Ry
aW5nIGh0dHBzUHJveHk7DQotI2lmIFRBUkdFVF9PU19JUEhPTkUgfHwgKFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApDQorI2lmIFBMQVRG
T1JNKENPQ09BKQ0KICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBuZXR3b3JrQVRTQ29udGV4dDsN
CiAjZW5kaWYNCiAgICAgYm9vbCBjb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZDsNCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2
aWNlL05ldHdvcmtTZXJ2aWNlL0luZm8tT1NYLTEwLjktMTAuMTAucGxpc3QNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2
aWNlL05ldHdvcmtTZXJ2aWNlL0luZm8tT1NYLTEwLjktMTAuMTAucGxpc3QJKHJldmlzaW9uIDIx
OTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9Y
UENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNlL0luZm8tT1NYLTEwLjktMTAuMTAucGxpc3QJKG5vbmV4
aXN0ZW50KQ0KQEAgLTEsNTAgKzAsMCBAQA0KLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
IlVURi04Ij8+DQotPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAx
LjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+
DQotPHBsaXN0IHZlcnNpb249IjEuMCI+DQotPGRpY3Q+DQotCTxrZXk+Q0ZCdW5kbGVHZXRJbmZv
U3RyaW5nPC9rZXk+DQotCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn0sIENvcHlyaWdodCAyMDAz
LTIwMTcgQXBwbGUgSW5jLjwvc3RyaW5nPg0KLQk8a2V5PkNGQnVuZGxlRGV2ZWxvcG1lbnRSZWdp
b248L2tleT4NCi0JPHN0cmluZz5FbmdsaXNoPC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5kbGVFeGVj
dXRhYmxlPC9rZXk+DQotCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+DQotCTxr
ZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+DQotCTxzdHJpbmc+JHtQUk9EVUNUX0JVTkRMRV9J
REVOVElGSUVSfTwvc3RyaW5nPg0KLQk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9u
PC9rZXk+DQotCTxzdHJpbmc+Ni4wPC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5kbGVOYW1lPC9rZXk+
DQotCTxzdHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5kbGVQYWNr
YWdlVHlwZTwva2V5Pg0KLQk8c3RyaW5nPlhQQyE8L3N0cmluZz4NCi0JPGtleT5DRkJ1bmRsZVNo
b3J0VmVyc2lvblN0cmluZzwva2V5Pg0KLQk8c3RyaW5nPiR7U0hPUlRfVkVSU0lPTl9TVFJJTkd9
PC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5kbGVTaWduYXR1cmU8L2tleT4NCi0JPHN0cmluZz4/Pz8/
PC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+DQotCTxzdHJpbmc+JHtCVU5E
TEVfVkVSU0lPTn08L3N0cmluZz4NCi0JPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwva2V5
Pg0KLQk8dHJ1ZS8+DQotCTxrZXk+TlNQcmluY2lwYWxDbGFzczwva2V5Pg0KLQk8c3RyaW5nPk5T
QXBwbGljYXRpb248L3N0cmluZz4NCi0JPGtleT5XZWJLaXRFbnRyeVBvaW50PC9rZXk+DQotCTxz
dHJpbmc+TmV0d29ya1NlcnZpY2VJbml0aWFsaXplcjwvc3RyaW5nPg0KLQk8a2V5PkxTVUlFbGVt
ZW50PC9rZXk+DQotCTx0cnVlLz4NCi0JPGtleT5YUENTZXJ2aWNlPC9rZXk+DQotCTxkaWN0Pg0K
LQkJPGtleT5TZXJ2aWNlVHlwZTwva2V5Pg0KLQkJPHN0cmluZz5BcHBsaWNhdGlvbjwvc3RyaW5n
Pg0KLQkJPGtleT5Kb2luRXhpc3RpbmdTZXNzaW9uPC9rZXk+DQotCQk8dHJ1ZS8+DQotCQk8a2V5
PlJ1bkxvb3BUeXBlPC9rZXk+DQotCQk8c3RyaW5nPk5TUnVuTG9vcDwvc3RyaW5nPg0KLQkJPGtl
eT5fTXVsdGlwbGVJbnN0YW5jZXM8L2tleT4NCi0JCTx0cnVlLz4NCi0JCTxrZXk+RW52aXJvbm1l
bnRWYXJpYWJsZXM8L2tleT4NCi0JCTxkaWN0Pg0KLQkJCTxrZXk+RFlMRF9JTlNFUlRfTElCUkFS
SUVTPC9rZXk+DQotCQkJPHN0cmluZz4kKFdLX1hQQ19TRVJWSUNFX0lOU0VSVF9MSUJSQVJJRVNf
RElSKS9TZWNJdGVtU2hpbS5keWxpYjwvc3RyaW5nPg0KLQkJPC9kaWN0Pg0KLQk8L2RpY3Q+DQot
PC9kaWN0Pg0KLTwvcGxpc3Q+DQpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9u
IDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
UHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtNzUsOSArNzUsNyBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVODQogI2VuZGlmDQogICAgIG1fZGlza0Nh
Y2hlRGlyZWN0b3J5ID0gcGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3Rvcnk7DQogDQotI2lmIFBM
QVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDExMDApDQogICAgIF9DRk5ldHdvcmtTZXRBVFNDb250ZXh0KHBhcmFtZXRl
cnMubmV0d29ya0FUU0NvbnRleHQuZ2V0KCkpOw0KLSNlbmRpZg0KIA0KICAgICBTZXNzaW9uVHJh
Y2tlcjo6c2V0SWRlbnRpZmllckJhc2UocGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlm
aWVyKTsNCiANCkBAIC05Myw3ICs5MSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3Jt
SW5pdGlhbGl6ZU4NCiANCiAgICAgaW5pdGlhbGl6ZU5ldHdvcmtTZXR0aW5ncygpOw0KIA0KLSNp
ZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MTAwDQorI2lmIFBMQVRGT1JNKE1BQykNCiAgICAgc2V0U2hhcmVkSFRUUENvb2tpZVN0b3JhZ2Uo
cGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcik7DQogI2VuZGlmDQog
DQpJbmRleDogU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJL
aXQuTmV0d29ya1Byb2Nlc3Muc2IuaW4NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYi5pbgko
cmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9j
b20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluCSh3b3JraW5nIGNvcHkpDQpAQCAt
MzIsNyArMzIsNiBAQA0KIChhbGxvdyBwcm9jZXNzLWluZm8tcGlkaW5mbykNCiAoYWxsb3cgcHJv
Y2Vzcy1pbmZvLXNldGNvbnRyb2wgKHRhcmdldCBzZWxmKSkNCiANCi0jaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCiAoZGVueSBzeXNjdGwqKQ0KIChhbGxvdyBz
eXNjdGwtcmVhZA0KICAgICAoc3lzY3RsLW5hbWUNCkBAIC00Myw3ICs0Miw2IEBADQogICAgICAg
ICAidm0uZm9vdHByaW50X3N1c3BlbmQiKSkNCiANCiAoZGVueSBpb2tpdC1nZXQtcHJvcGVydGll
cykNCi0jZW5kaWYNCiANCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDEzMDANCiAoZGVueSBtYWNoLWxvb2t1cCAoeHBjLXNlcnZpY2UtbmFtZS1wcmVmaXggIiIpKQ0K
QEAgLTE1MiwxMCArMTUwLDggQEANCiAjZW5kaWYNCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBw
bGUuY29va2llZCIpDQogICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmbmV0d29yay5BdXRo
QnJva2VyQWdlbnQiKQ0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTEwMA0KICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sc2QubWFwZGIiKQ0KICAgICAoZ2xv
YmFsLW5hbWUgImNvbS5hcHBsZS5uZXNlc3Npb25tYW5hZ2VyLmZsb3ctZGl2ZXJ0LXRva2VuIikN
Ci0jZW5kaWYNCiApDQogDQogOzsgU2VjdXJpdHkgZnJhbWV3b3JrDQpJbmRleDogU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaA0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBT
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCSh3b3JraW5nIGNvcHkpDQpA
QCAtMTQzLDEwICsxNDMsNiBAQCBwdWJsaWM6DQogDQogICAgIENsaWVudCYgY2xpZW50KCkgY29u
c3QgeyByZXR1cm4gbV9jbGllbnQ7IH0NCiANCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwMTAwMA0KLSAgICB2b2lkIHNldFNob3VsZENs
b3NlQ29ubmVjdGlvbk9uTWFjaEV4Y2VwdGlvbnMoKTsNCi0jZW5kaWYNCi0NCiAgICAgdm9pZCBz
ZXRPbmx5U2VuZE1lc3NhZ2VzQXNEaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5V2hlblBy
b2Nlc3NpbmdTdWNoQU1lc3NhZ2UoYm9vbCk7DQogICAgIHZvaWQgc2V0U2hvdWxkRXhpdE9uU3lu
Y01lc3NhZ2VTZW5kRmFpbHVyZShib29sIHNob3VsZEV4aXRPblN5bmNNZXNzYWdlU2VuZEZhaWx1
cmUpOw0KIA0KQEAgLTMzMiwxNCArMzI4LDYgQEAgcHJpdmF0ZToNCiAgICAgZGlzcGF0Y2hfc291
cmNlX3QgbV9yZWNlaXZlU291cmNlOw0KIA0KICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWFjaE1lc3Nh
Z2U+IG1fcGVuZGluZ091dGdvaW5nTWFjaE1lc3NhZ2U7DQotI2lmIFBMQVRGT1JNKE1BQykgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDEwMDANCi0gICAgdm9pZCBleGNl
cHRpb25Tb3VyY2VFdmVudEhhbmRsZXIoKTsNCi0NCi0gICAgLy8gSWYgc2V0U2hvdWxkQ2xvc2VD
b25uZWN0aW9uT25NYWNoRXhjZXB0aW9ucyBoYXMgYmVlbiBjYWxsZWQsIHRoaXMgaGFzDQotICAg
IC8vIHRoZSBleGNlcHRpb24gcG9ydCB0aGF0IGV4Y2VwdGlvbnMgZnJvbSB0aGUgb3RoZXIgZW5k
IHdpbGwgYmUgc2VudCBvbi4NCi0gICAgbWFjaF9wb3J0X3QgbV9leGNlcHRpb25Qb3J0Ow0KLSAg
ICBkaXNwYXRjaF9zb3VyY2VfdCBtX2V4Y2VwdGlvblBvcnREYXRhQXZhaWxhYmxlU291cmNlOw0K
LSNlbmRpZg0KIA0KICAgICBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBtX3hwY0Nvbm5l
Y3Rpb247DQogI2VuZGlmDQpJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL21hYy9D
b25uZWN0aW9uTWFjLm1tDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
SVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vSVBDL21hYy9Db25uZWN0aW9uTWFjLm1tCSh3b3JraW5nIGNvcHkpDQpA
QCAtMTQ0LDE1ICsxNDQsNiBAQCB2b2lkIENvbm5lY3Rpb246OnBsYXRmb3JtSW52YWxpZGF0ZSgp
DQogICAgIGRpc3BhdGNoX3JlbGVhc2UobV9yZWNlaXZlU291cmNlKTsNCiAgICAgbV9yZWNlaXZl
U291cmNlID0gbnVsbHB0cjsNCiAgICAgbV9yZWNlaXZlUG9ydCA9IE1BQ0hfUE9SVF9OVUxMOw0K
LQ0KLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
PD0gMTAxMDAwDQotICAgIGlmIChtX2V4Y2VwdGlvblBvcnQpIHsNCi0gICAgICAgIGRpc3BhdGNo
X3NvdXJjZV9jYW5jZWwobV9leGNlcHRpb25Qb3J0RGF0YUF2YWlsYWJsZVNvdXJjZSk7DQotICAg
ICAgICBkaXNwYXRjaF9yZWxlYXNlKG1fZXhjZXB0aW9uUG9ydERhdGFBdmFpbGFibGVTb3VyY2Up
Ow0KLSAgICAgICAgbV9leGNlcHRpb25Qb3J0RGF0YUF2YWlsYWJsZVNvdXJjZSA9IDA7DQotICAg
ICAgICBtX2V4Y2VwdGlvblBvcnQgPSBNQUNIX1BPUlRfTlVMTDsNCi0gICAgfQ0KLSNlbmRpZg0K
IH0NCiAgICAgDQogdm9pZCBDb25uZWN0aW9uOjp0ZXJtaW5hdGVTb29uKFNlY29uZHMgaW50ZXJ2
YWwpDQpAQCAtMTYzLDExICsxNTQsNiBAQCB2b2lkIENvbm5lY3Rpb246OnRlcm1pbmF0ZVNvb24o
U2Vjb25kcyBpDQogICAgIA0KIHZvaWQgQ29ubmVjdGlvbjo6cGxhdGZvcm1Jbml0aWFsaXplKElk
ZW50aWZpZXIgaWRlbnRpZmllcikNCiB7DQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDEwMDANCi0gICAgbV9leGNlcHRpb25Qb3J0ID0g
TUFDSF9QT1JUX05VTEw7DQotICAgIG1fZXhjZXB0aW9uUG9ydERhdGFBdmFpbGFibGVTb3VyY2Ug
PSBudWxscHRyOw0KLSNlbmRpZg0KLQ0KICAgICBpZiAobV9pc1NlcnZlcikgew0KICAgICAgICAg
bV9yZWNlaXZlUG9ydCA9IGlkZW50aWZpZXIucG9ydDsNCiAgICAgICAgIG1fc2VuZFBvcnQgPSBN
QUNIX1BPUlRfTlVMTDsNCkBAIC0yMjUsMzMgKzIxMSwxMiBAQCBib29sIENvbm5lY3Rpb246Om9w
ZW4oKQ0KICAgICAgICAgbWFjaF9wb3J0X21vZF9yZWZzKG1hY2hfdGFza19zZWxmKCksIHJlY2Vp
dmVQb3J0LCBNQUNIX1BPUlRfUklHSFRfUkVDRUlWRSwgLTEpOw0KICAgICB9KTsNCiANCi0jaWYg
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwMTAw
MA0KLSAgICBpZiAobV9leGNlcHRpb25Qb3J0KSB7DQotICAgICAgICBtX2V4Y2VwdGlvblBvcnRE
YXRhQXZhaWxhYmxlU291cmNlID0gZGlzcGF0Y2hfc291cmNlX2NyZWF0ZShESVNQQVRDSF9TT1VS
Q0VfVFlQRV9NQUNIX1JFQ1YsIG1fZXhjZXB0aW9uUG9ydCwgMCwgbV9jb25uZWN0aW9uUXVldWUt
PmRpc3BhdGNoUXVldWUoKSk7DQotICAgICAgICBkaXNwYXRjaF9zb3VyY2Vfc2V0X2V2ZW50X2hh
bmRsZXIobV9leGNlcHRpb25Qb3J0RGF0YUF2YWlsYWJsZVNvdXJjZSwgW2Nvbm5lY3Rpb25dIHsN
Ci0gICAgICAgICAgICBjb25uZWN0aW9uLT5leGNlcHRpb25Tb3VyY2VFdmVudEhhbmRsZXIoKTsN
Ci0gICAgICAgIH0pOw0KLSAgICAgICAgZGlzcGF0Y2hfc291cmNlX3NldF9jYW5jZWxfaGFuZGxl
cihtX2V4Y2VwdGlvblBvcnREYXRhQXZhaWxhYmxlU291cmNlLCBbY29ubmVjdGlvbiwgZXhjZXB0
aW9uUG9ydCA9IG1fZXhjZXB0aW9uUG9ydF0gew0KLSAgICAgICAgICAgIG1hY2hfcG9ydF9tb2Rf
cmVmcyhtYWNoX3Rhc2tfc2VsZigpLCBleGNlcHRpb25Qb3J0LCBNQUNIX1BPUlRfUklHSFRfUkVD
RUlWRSwgLTEpOw0KLSAgICAgICAgfSk7DQotDQotICAgICAgICBhdXRvIGVuY29kZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPEVuY29kZXI+KCJJUEMiLCAiU2V0RXhjZXB0aW9uUG9ydCIsIDApOw0KLSAg
ICAgICAgZW5jb2Rlci0+ZW5jb2RlKE1hY2hQb3J0KG1fZXhjZXB0aW9uUG9ydCwgTUFDSF9NU0df
VFlQRV9NQUtFX1NFTkQpKTsNCi0NCi0gICAgICAgIHNlbmRNZXNzYWdlKFdURk1vdmUoZW5jb2Rl
ciksIHsgfSk7DQotICAgIH0NCi0jZW5kaWYNCi0NCiAgICAgcmVmKCk7DQogICAgIGRpc3BhdGNo
X2FzeW5jKG1fY29ubmVjdGlvblF1ZXVlLT5kaXNwYXRjaFF1ZXVlKCksIF57DQogICAgICAgICBk
aXNwYXRjaF9yZXN1bWUobV9yZWNlaXZlU291cmNlKTsNCiANCiAgICAgICAgIGlmIChtX3NlbmRT
b3VyY2UpDQogICAgICAgICAgICAgZGlzcGF0Y2hfcmVzdW1lKG1fc2VuZFNvdXJjZSk7DQotI2lm
IFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDEw
MDANCi0gICAgICAgIGlmIChtX2V4Y2VwdGlvblBvcnREYXRhQXZhaWxhYmxlU291cmNlKQ0KLSAg
ICAgICAgICAgIGRpc3BhdGNoX3Jlc3VtZShtX2V4Y2VwdGlvblBvcnREYXRhQXZhaWxhYmxlU291
cmNlKTsNCi0jZW5kaWYNCiANCiAgICAgICAgIGRlcmVmKCk7DQogICAgIH0pOw0KQEAgLTU5Miw1
MSArNTU3LDYgQEAgdm9pZCBDb25uZWN0aW9uOjpyZWNlaXZlU291cmNlRXZlbnRIYW5kbA0KICAg
ICBwcm9jZXNzSW5jb21pbmdNZXNzYWdlKFdURk1vdmUoZGVjb2RlcikpOw0KIH0gICAgDQogDQot
I2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAx
MDEwMDANCi12b2lkIENvbm5lY3Rpb246OmV4Y2VwdGlvblNvdXJjZUV2ZW50SGFuZGxlcigpDQot
ew0KLSAgICBSZWNlaXZlQnVmZmVyIGJ1ZmZlcjsNCi0NCi0gICAgbWFjaF9tc2dfaGVhZGVyX3Qq
IGhlYWRlciA9IHJlYWRGcm9tTWFjaFBvcnQobV9leGNlcHRpb25Qb3J0LCBidWZmZXIpOw0KLSAg
ICBpZiAoIWhlYWRlcikNCi0gICAgICAgIHJldHVybjsNCi0NCi0gICAgLy8gV2UndmUgcmVhZCB0
aGUgZXhjZXB0aW9uIG1lc3NhZ2UuIE5vdyBzZW5kIGl0IG9uIHRvIHRoZSByZWFsIGV4Y2VwdGlv
biBwb3J0Lg0KLQ0KLSAgICAvLyBUaGUgcmVtb3RlIHBvcnQgc2hvdWxkIGhhdmUgYSBzZW5kIG9u
Y2UgcmlnaHQuDQotICAgIEFTU0VSVChNQUNIX01TR0hfQklUU19SRU1PVEUoaGVhZGVyLT5tc2do
X2JpdHMpID09IE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EX09OQ0UpOw0KLQ0KLSAgICAvLyBOb3cg
Z2V0IHRoZSByZWFsIGV4Y2VwdGlvbiBwb3J0Lg0KLSAgICBtYWNoX3BvcnRfdCBleGNlcHRpb25Q
b3J0ID0gbWFjaEV4Y2VwdGlvblBvcnQoKTsNCi0NCi0gICAgLy8gRmlyc3QsIGdldCB0aGUgY29t
cGxleCBiaXQgZnJvbSB0aGUgc291cmNlIG1lc3NhZ2UuDQotICAgIG1hY2hfbXNnX2JpdHNfdCBt
ZXNzYWdlQml0cyA9IGhlYWRlci0+bXNnaF9iaXRzICYgTUFDSF9NU0dIX0JJVFNfQ09NUExFWDsN
Ci0gICAgbWVzc2FnZUJpdHMgfD0gTUFDSF9NU0dIX0JJVFMoTUFDSF9NU0dfVFlQRV9DT1BZX1NF
TkQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EX09OQ0UpOw0KLQ0KLSAgICBoZWFkZXItPm1zZ2hf
Yml0cyA9IG1lc3NhZ2VCaXRzOw0KLSAgICBoZWFkZXItPm1zZ2hfbG9jYWxfcG9ydCA9IGhlYWRl
ci0+bXNnaF9yZW1vdGVfcG9ydDsNCi0gICAgaGVhZGVyLT5tc2doX3JlbW90ZV9wb3J0ID0gZXhj
ZXB0aW9uUG9ydDsNCi0NCi0gICAgLy8gTm93IHNlbmQgYWxvbmcgdGhlIG1lc3NhZ2UuDQotICAg
IGtlcm5fcmV0dXJuX3Qga3IgPSBtYWNoX21zZyhoZWFkZXIsIE1BQ0hfU0VORF9NU0csIGhlYWRl
ci0+bXNnaF9zaXplLCAwLCBNQUNIX1BPUlRfTlVMTCwgTUFDSF9NU0dfVElNRU9VVF9OT05FLCBN
QUNIX1BPUlRfTlVMTCk7DQotICAgIGlmIChrciAhPSBLRVJOX1NVQ0NFU1MpDQotICAgICAgICBM
T0dfRVJST1IoIkZhaWxlZCB0byBzZW5kIG1lc3NhZ2UgdG8gcmVhbCBleGNlcHRpb24gcG9ydC4g
JXMgKCV4KSIsIG1hY2hfZXJyb3Jfc3RyaW5nKGtyKSwga3IpOw0KLQ0KLSAgICBjb25uZWN0aW9u
RGlkQ2xvc2UoKTsNCi19DQotDQotdm9pZCBDb25uZWN0aW9uOjpzZXRTaG91bGRDbG9zZUNvbm5l
Y3Rpb25Pbk1hY2hFeGNlcHRpb25zKCkNCi17DQotICAgIEFTU0VSVChtX2V4Y2VwdGlvblBvcnQg
PT0gTUFDSF9QT1JUX05VTEwpOw0KLQ0KLSAgICBpZiAobWFjaF9wb3J0X2FsbG9jYXRlKG1hY2hf
dGFza19zZWxmKCksIE1BQ0hfUE9SVF9SSUdIVF9SRUNFSVZFLCAmbV9leGNlcHRpb25Qb3J0KSAh
PSBLRVJOX1NVQ0NFU1MpDQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsNCi0NCi0gICAg
aWYgKG1hY2hfcG9ydF9pbnNlcnRfcmlnaHQobWFjaF90YXNrX3NlbGYoKSwgbV9leGNlcHRpb25Q
b3J0LCBtX2V4Y2VwdGlvblBvcnQsIE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKSAhPSBLRVJOX1NV
Q0NFU1MpDQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsNCi19DQotI2VuZGlmDQotDQog
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIENvbm5lY3Rpb246OmlkZW50aWZpZXIoKSBjb25z
dA0KIHsNCiAgICAgcmV0dXJuIElkZW50aWZpZXIobV9pc1NlcnZlciA/IG1fcmVjZWl2ZVBvcnQg
OiBtX3NlbmRQb3J0LCBtX3hwY0Nvbm5lY3Rpb24pOw0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250ZXh0LmgNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5oCShyZXZpc2lvbiAyMTkw
NDgpDQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQu
aAkod29ya2luZyBjb3B5KQ0KQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOg0KICAgICB2b2lkIHNl
dENvbG9yU3BhY2UoQ0dDb2xvclNwYWNlUmVmKTsNCiAgICAgQ0dDb2xvclNwYWNlUmVmIGNvbG9y
U3BhY2UoKSBjb25zdDsNCiANCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KKyNpZiBQTEFURk9STShNQUMpDQogICAgIHZvaWQg
c2V0Q29sb3JNYXRjaFVudGFnZ2VkQ29udGVudChib29sKTsNCiAgICAgYm9vbCBjb2xvck1hdGNo
VW50YWdnZWRDb250ZW50KCkgY29uc3Q7DQogI2VuZGlmDQpJbmRleDogU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQubW0NCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbQkocmV2aXNpb24g
MjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250
ZXh0Lm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtMTAyLDcgKzEwMiw3IEBAIENHQ29sb3JTcGFjZVJl
ZiBMYXllckhvc3RpbmdDb250ZXh0Ojpjb2wNCiAgICAgcmV0dXJuIFttX2NvbnRleHQgY29sb3JT
cGFjZV07DQogfQ0KIA0KLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMTAwDQorI2lmIFBMQVRGT1JNKE1BQykNCiB2b2lkIExheWVySG9z
dGluZ0NvbnRleHQ6OnNldENvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnQoYm9vbCBjb2xvck1hdGNo
VW50YWdnZWRDb250ZW50KQ0KIHsNCiAgICAgW21fY29udGV4dCBzZXRDb2xvck1hdGNoVW50YWdn
ZWRDb250ZW50OmNvbG9yTWF0Y2hVbnRhZ2dlZENvbnRlbnRdOw0KQEAgLTExNCw3ICsxMTQsNiBA
QCBib29sIExheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yTWF0Y2hVbnRhDQogfQ0KICNlbmRpZg0K
IA0KLSNpZiBIQVZFKENPUkVBTklNQVRJT05fRkVOQ0VTKQ0KIHZvaWQgTGF5ZXJIb3N0aW5nQ29u
dGV4dDo6c2V0RmVuY2VQb3J0KG1hY2hfcG9ydF90IGZlbmNlUG9ydCkNCiB7DQogICAgIFttX2Nv
bnRleHQgc2V0RmVuY2VQb3J0OmZlbmNlUG9ydF07DQpAQCAtMTI0LDE5ICsxMjMsNSBAQCBNYWNo
U2VuZFJpZ2h0IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0DQogew0KICAgICByZXR1cm4gTWFj
aFNlbmRSaWdodDo6YWRvcHQoW21fY29udGV4dCBjcmVhdGVGZW5jZVBvcnRdKTsNCiB9DQotI2Vs
c2UNCi1OT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIExheWVySG9zdGluZ0NvbnRleHQ6OnNl
dEZlbmNlUG9ydChtYWNoX3BvcnRfdCBmZW5jZVBvcnQpDQotew0KLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsNCi19DQotDQotTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgTWFjaFNlbmRSaWdodCBM
YXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGZW5jZVBvcnQoKQ0KLXsNCi0gICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7DQotI2lmIEFTU0VSVF9ESVNBQkxFRA0KLSAgICByZXR1cm4gTWFjaFNlbmRS
aWdodCgpOw0KLSNlbmRpZg0KLX0NCi0jZW5kaWYNCiANCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQN
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1Nl
cnZpY2UvUGx1Z2luU2VydmljZS4zMi02NC0xMC45LTEwLjEwLkluZm8ucGxpc3QNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1Nl
cnZpY2UvUGx1Z2luU2VydmljZS4zMi02NC0xMC45LTEwLjEwLkluZm8ucGxpc3QJKHJldmlzaW9u
IDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFj
L1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZS4zMi02NC0xMC45LTEwLjEwLkluZm8ucGxpc3QJKG5v
bmV4aXN0ZW50KQ0KQEAgLTEsNTggKzAsMCBAQA0KLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9IlVURi04Ij8+DQotPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElT
VCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0
ZCI+DQotPHBsaXN0IHZlcnNpb249IjEuMCI+DQotPGRpY3Q+DQotCTxrZXk+Q0ZCdW5kbGVHZXRJ
bmZvU3RyaW5nPC9rZXk+DQotCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn0sIENvcHlyaWdodCAy
MDAzLTIwMTcgQXBwbGUgSW5jLjwvc3RyaW5nPg0KLQk8a2V5PkNGQnVuZGxlRGV2ZWxvcG1lbnRS
ZWdpb248L2tleT4NCi0JPHN0cmluZz5FbmdsaXNoPC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5kbGVF
eGVjdXRhYmxlPC9rZXk+DQotCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+DQot
CTxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+DQotCTxzdHJpbmc+JHtQUk9EVUNUX0JVTkRM
RV9JREVOVElGSUVSfTwvc3RyaW5nPg0KLQk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJz
aW9uPC9rZXk+DQotCTxzdHJpbmc+Ni4wPC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5kbGVOYW1lPC9r
ZXk+DQotCTxzdHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5kbGVQ
YWNrYWdlVHlwZTwva2V5Pg0KLQk8c3RyaW5nPlhQQyE8L3N0cmluZz4NCi0JPGtleT5DRkJ1bmRs
ZVNob3J0VmVyc2lvblN0cmluZzwva2V5Pg0KLQk8c3RyaW5nPiR7U0hPUlRfVkVSU0lPTl9TVFJJ
Tkd9PC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5kbGVTaWduYXR1cmU8L2tleT4NCi0JPHN0cmluZz4/
Pz8/PC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+DQotCTxzdHJpbmc+JHtC
VU5ETEVfVkVSU0lPTn08L3N0cmluZz4NCi0JPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwv
a2V5Pg0KLQk8dHJ1ZS8+DQotCTxrZXk+TlNQcmluY2lwYWxDbGFzczwva2V5Pg0KLQk8c3RyaW5n
Pk5TQXBwbGljYXRpb248L3N0cmluZz4NCi0JPGtleT5XZWJLaXRFbnRyeVBvaW50PC9rZXk+DQot
CTxzdHJpbmc+UGx1Z2luU2VydmljZUluaXRpYWxpemVyPC9zdHJpbmc+DQotCTxrZXk+TFNVSUVs
ZW1lbnQ8L2tleT4NCi0JPHRydWUvPg0KLQk8a2V5Pk5TU3VwcG9ydHNBdXRvbWF0aWNHcmFwaGlj
c1N3aXRjaGluZzwva2V5Pg0KLQk8dHJ1ZS8+DQotCTxrZXk+TlNTdXBwb3J0c0FwcE5hcDwva2V5
Pg0KLQk8dHJ1ZS8+DQotCTxrZXk+WFBDU2VydmljZTwva2V5Pg0KLQk8ZGljdD4NCi0JCTxrZXk+
U2VydmljZVR5cGU8L2tleT4NCi0JCTxzdHJpbmc+QXBwbGljYXRpb248L3N0cmluZz4NCi0JCTxr
ZXk+UnVuTG9vcFR5cGU8L2tleT4NCi0JCTxzdHJpbmc+X05TQXBwbGljYXRpb25NYWluPC9zdHJp
bmc+DQotCQk8a2V5PkpvaW5FeGlzdGluZ1Nlc3Npb248L2tleT4NCi0JCTx0cnVlLz4NCi0JCTxr
ZXk+X011bHRpcGxlSW5zdGFuY2VzPC9rZXk+DQotCQk8dHJ1ZS8+DQotCQk8a2V5Pl9BYmFuZG9u
Q29hbGl0aW9uPC9rZXk+DQotCQk8dHJ1ZS8+DQotCQk8a2V5PkVudmlyb25tZW50VmFyaWFibGVz
PC9rZXk+DQotCQk8ZGljdD4NCi0JCQk8a2V5PkRZTERfSU5TRVJUX0xJQlJBUklFUzwva2V5Pg0K
LQkJCTxzdHJpbmc+JChXS19YUENfU0VSVklDRV9JTlNFUlRfTElCUkFSSUVTX0RJUikvUGx1Z2lu
UHJvY2Vzc1NoaW0uZHlsaWI8L3N0cmluZz4NCi0JCQk8a2V5Pk5TU3RyaW5nRGlzYWJsZVRhZ2dl
ZDwva2V5Pg0KLQkJCTxzdHJpbmc+WUVTPC9zdHJpbmc+DQotCQk8L2RpY3Q+DQotCTwvZGljdD4N
Ci08L2RpY3Q+DQotPC9wbGlzdD4NCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNz
L21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0NCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0JKHJl
dmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVn
aW5Db250cm9sbGVyUHJveHlNYWMubW0JKHdvcmtpbmcgY29weSkNCkBAIC0xMzUsMTAgKzEzNSw4
IEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5Ojp1cGRhdGVMYXllckgNCiAjZW5kaWYNCiAg
ICAgfQ0KIA0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0K
ICAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldENvbG9yU3BhY2Uoc1JHQkNvbG9yU3BhY2VS
ZWYoKSk7DQogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Q29sb3JNYXRjaFVudGFnZ2Vk
Q29udGVudCh0cnVlKTsNCi0jZW5kaWYNCiANCiAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5z
ZXRSb290TGF5ZXIocGxhdGZvcm1MYXllcik7DQogfQ0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NTaGltLm1tDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc1NoaW0ubW0JKHJldmlz
aW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Q
cm9jZXNzU2hpbS5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTExMiw5ICsxMTIsNiBAQCBzaGltTFNP
cGVuQ0ZVUkxSZWYoQ0ZVUkxSZWYgdXJsLCBDRlVSTFJlDQogICAgIHJldHVybiBMU09wZW5DRlVS
TFJlZih1cmwsIGxhdW5jaGVkVVJMKTsNCiB9DQogDQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPCAxMDExMDANCi1TVVBQUkVTU19BU0FODQotI2VuZGlmDQogc3RhdGljIGtl
cm5fcmV0dXJuX3Qgc2hpbU1hY2hWTU1hcCh2bV9tYXBfdCB0YXNrLCBtYWNoX3ZtX2FkZHJlc3Nf
dCAqYWRkcmVzcywgbWFjaF92bV9zaXplX3Qgc2l6ZSwgbWFjaF92bV9vZmZzZXRfdCBtYXNrLCBp
bnQgZmxhZ3MsIG1lbV9lbnRyeV9uYW1lX3BvcnRfdCBvYmplY3QsIG1lbW9yeV9vYmplY3Rfb2Zm
c2V0X3Qgb2Zmc2V0LCBib29sZWFuX3QgY29weSwgdm1fcHJvdF90IGN1cnJlbnRQcm90ZWN0aW9u
LCB2bV9wcm90X3QgbWF4UHJvdGVjdGlvbiwgdm1faW5oZXJpdF90IGluaGVyaXRhbmNlKQ0KIHsN
CiAgICAgaWYgKHRhc2sgPT0gbWFjaF90YXNrX3NlbGYoKSkgew0KSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQucGx1Z2luLWNvbW1vbi5zYi5p
bg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL2NvbS5h
cHBsZS5XZWJLaXQucGx1Z2luLWNvbW1vbi5zYi5pbgkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQucGx1Z2luLWNv
bW1vbi5zYi5pbgkod29ya2luZyBjb3B5KQ0KQEAgLTMyLDcgKzMyLDYgQEANCiAoYWxsb3cgcHJv
Y2Vzcy1pbmZvLXBpZGluZm8pDQogKGFsbG93IHByb2Nlc3MtaW5mby1zZXRjb250cm9sICh0YXJn
ZXQgc2VsZikpDQogDQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MTAwDQogKGRlbnkgc3lzY3RsKikNCiAoYWxsb3cgc3lzY3RsLXJlYWQNCiAgICAgKHN5c2N0bC1u
YW1lDQpAQCAtMTIyLDcgKzEyMSw2IEBADQogICAgIChpb2tpdC1wcm9wZXJ0eSAic3RhcnR1cC10
aW1pbmciKQ0KICAgICAoaW9raXQtcHJvcGVydHkgInRvdWNoLXNpemUtaWQiKQ0KICkNCi0jZW5k
aWYNCiANCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDANCiAo
ZGVueSBtYWNoLWxvb2t1cCAoeHBjLXNlcnZpY2UtbmFtZS1wcmVmaXggIiIpKQ0KQEAgLTM1MSw5
ICszNDksNiBAQA0KICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMw
MA0KICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hbmFseXRpY3NkIikNCiAjZW5kaWYNCi0j
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTEwMA0KLSAgICAoZ2xvYmFs
LW5hbWUgImNvbS5hcHBsZS5hdWRpby5WRENBc3Npc3RhbnQiKQ0KLSNlbmRpZg0KICAgICAoZ2xv
YmFsLW5hbWUgImNvbS5hcHBsZS5hdWRpby5hdWRpb2hhbGQiKQ0KICAgICAoZ2xvYmFsLW5hbWUg
ImNvbS5hcHBsZS5hdWRpby5jb3JlYXVkaW9kIikNCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBw
bGUuY2ZuZXR3b3JrLkF1dGhCcm9rZXJBZ2VudCIpDQpAQCAtMzYxLDkgKzM1Niw3IEBADQogICAg
IChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNvb2tpZWQiKSA7OyBGSVhNRTogPHJkYXI6Ly9wcm9i
bGVtLzEwNzkwNzY4PiBMaW1pdCBhY2Nlc3MgdG8gY29va2llcy4NCiAgICAgKGdsb2JhbC1uYW1l
ICJjb20uYXBwbGUuY29yZXNlcnZpY2VzLmxhdW5jaHNlcnZpY2VzZCIpDQogICAgIChnbG9iYWwt
bmFtZSAiY29tLmFwcGxlLmZvbnRzIikNCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDExMDANCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubHNkLm1hcGRiIikN
Ci0jZW5kaWYNCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUub2NzcGQiKQ0KICAgICAoZ2xv
YmFsLW5hbWUgImNvbS5hcHBsZS5wYXN0ZWJvYXJkLjEiKQ0KICAgICAoZ2xvYmFsLW5hbWUgImNv
bS5hcHBsZS5wYnMuZmV0Y2hfc2VydmljZXMiKQ0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9DaGlsZFByb2Nlc3MuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
aGlsZFByb2Nlc3MuaAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9DaGlsZFByb2Nlc3MuaAkod29ya2luZyBjb3B5KQ0KQEAgLTg4LDcgKzg4LDcgQEAgcHJvdGVj
dGVkOg0KICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1l
dGVycyYpOw0KICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25u
ZWN0aW9uKik7DQogDQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDExMDANCisjaWYgUExBVEZPUk0oTUFDKQ0KICAgICBzdGF0aWMgdm9p
ZCBzZXRTaGFyZWRIVFRQQ29va2llU3RvcmFnZShjb25zdCBWZWN0b3I8dWludDhfdD4mIGlkZW50
aWZpZXIpOw0KICNlbmRpZg0KIA0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjE5MDQ4
KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZA0KICAgICBlbmNvZGVyIDw8IG1lZGlhQ2FjaGVEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGU7DQogICAgIGVuY29kZXIgPDwgamF2YVNjcmlwdENvbmZpZ3VyYXRp
b25EaXJlY3Rvcnk7DQogICAgIGVuY29kZXIgPDwgamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGU7DQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCisjaWYgUExBVEZPUk0oTUFDKQ0KICAgICBl
bmNvZGVyIDw8IHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyOw0KICNlbmRpZg0KICNp
ZiBQTEFURk9STShJT1MpDQpAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZW5jb2QNCiAgICAgZW5jb2RlciA8PCBwbHVnaW5Mb2FkQ2xpZW50UG9s
aWNpZXM7DQogI2VuZGlmDQogDQotI2lmIFRBUkdFVF9PU19JUEhPTkUgfHwgKFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApDQorI2lmIFBM
QVRGT1JNKENPQ09BKQ0KICAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBuZXR3b3JrQVRTQ29udGV4
dC5nZXQoKSk7DQogI2VuZGlmDQogDQpAQCAtMTc0LDcgKzE3NCw3IEBAIGJvb2wgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QNCiAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmphdmFTY3JpcHRDb25maWd1cmF0aW9uRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkNCiAgICAgICAgIHJldHVybiBmYWxzZTsNCi0jaWYgUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0K
KyNpZiBQTEFURk9STShNQUMpDQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51
aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcikpDQogICAgICAgICByZXR1cm4gZmFsc2U7
DQogI2VuZGlmDQpAQCAtMzAzLDcgKzMwMyw3IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZGVjb2QNCiAgICAgICAgIHJldHVybiBmYWxzZTsNCiAjZW5kaWYNCiANCi0jaWYg
VEFSR0VUX09TX0lQSE9ORSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTEwMCkNCisjaWYgUExBVEZPUk0oQ09DT0EpDQogICAgIGlmICgh
SVBDOjpkZWNvZGUoZGVjb2RlciwgcGFyYW1ldGVycy5uZXR3b3JrQVRTQ29udGV4dCkpDQogICAg
ICAgICByZXR1cm4gZmFsc2U7DQogI2VuZGlmDQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaA0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDIx
OTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCSh3b3JraW5nIGNvcHkpDQpAQCAtNzgsNyArNzgsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyB7DQogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBtZWRp
YUNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOw0KICAgICBTdHJpbmcgamF2YVNjcmlwdENv
bmZpZ3VyYXRpb25EaXJlY3Rvcnk7DQogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBqYXZh
U2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsNCi0jaWYgUExBVEZP
Uk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KKyNp
ZiBQTEFURk9STShNQUMpDQogICAgIFZlY3Rvcjx1aW50OF90PiB1aVByb2Nlc3NDb29raWVTdG9y
YWdlSWRlbnRpZmllcjsNCiAjZW5kaWYNCiAjaWYgUExBVEZPUk0oSU9TKQ0KQEAgLTE2MSw3ICsx
NjEsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7DQogICAgIEhhc2hN
YXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIHVpbnQ4X3Q+Pj4gcGx1
Z2luTG9hZENsaWVudFBvbGljaWVzOw0KICNlbmRpZg0KIA0KLSNpZiBUQVJHRVRfT1NfSVBIT05F
IHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMTAwKQ0KKyNpZiBQTEFURk9STShDT0NPQSkNCiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4g
bmV0d29ya0FUU0NvbnRleHQ7DQogI2VuZGlmDQogDQpJbmRleDogU291cmNlL1dlYktpdDIvU2hh
cmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHANCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5n
IGNvcHkpDQpAQCAtNDcsMTAgKzQ3LDggQEAgdm9pZCBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbg0KICAgICBlbmNvZGVyIDw8IHRlcm1pbmF0aW9uVGltZW91dDsNCiAjaWYgUExB
VEZPUk0oQ09DT0EpDQogICAgIGVuY29kZXIgPDwgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ1BvcnQ7
DQotI2lmIFRBUkdFVF9PU19JUEhPTkUgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApDQogICAgIElQQzo6ZW5jb2RlKGVuY29kZXIs
IG5ldHdvcmtBVFNDb250ZXh0LmdldCgpKTsNCiAjZW5kaWYNCi0jZW5kaWYNCiAjaWYgT1MoTElO
VVgpDQogICAgIGVuY29kZXIgPDwgbWVtb3J5UHJlc3N1cmVNb25pdG9ySGFuZGxlOw0KICNlbmRp
Zg0KQEAgLTY5LDExICs2Nyw5IEBAIGJvb2wgUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZGUNCiAjaWYgUExBVEZPUk0oQ09DT0EpDQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0LmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdQb3J0KSkNCiAgICAgICAgIHJldHVybiBmYWxzZTsN
Ci0jaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkNCiAgICAgaWYgKCFJUEM6OmRlY29kZShkZWNv
ZGVyLCByZXN1bHQubmV0d29ya0FUU0NvbnRleHQpKQ0KICAgICAgICAgcmV0dXJuIGZhbHNlOw0K
ICNlbmRpZg0KLSNlbmRpZg0KICNpZiBPUyhMSU5VWCkNCiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQubWVtb3J5UHJlc3N1cmVNb25pdG9ySGFuZGxlKSkNCiAgICAgICAgIHJldHVybiBm
YWxzZTsNCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDIx
OTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkNCkBAIC01NywxMCArNTcsOCBAQCBzdHJ1
Y3QgUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7DQogDQogI2lmIFBMQVRGT1JNKENP
Q09BKQ0KICAgICBXZWJDb3JlOjpNYWNoU2VuZFJpZ2h0IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdQ
b3J0Ow0KLSNpZiBUQVJHRVRfT1NfSVBIT05FIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKQ0KICAgICBSZXRhaW5QdHI8Q0ZEYXRh
UmVmPiBuZXR3b3JrQVRTQ29udGV4dDsNCiAjZW5kaWYNCi0jZW5kaWYNCiAjaWYgT1MoTElOVVgp
DQogICAgIElQQzo6QXR0YWNobWVudCBtZW1vcnlQcmVzc3VyZU1vbml0b3JIYW5kbGU7DQogI2Vu
ZGlmDQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05l
dHNjYXBlUGx1Z2luTW9kdWxlTWFjLm1tDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIv
U2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTW9kdWxlTWFjLm1tCShy
ZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2Nh
cGUvbWFjL05ldHNjYXBlUGx1Z2luTW9kdWxlTWFjLm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtNzgs
NTAgKzc4LDkgQEAgc3RhdGljIGJvb2wgZ2V0UGx1Z2luQXJjaGl0ZWN0dXJlKENGQnVuZA0KICAg
ICByZXR1cm4gZmFsc2U7DQogfQ0KIA0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEIDw9IDEwMTAwMA0KLXN0YXRpYyBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBjb250ZW50
c09mUHJvcGVydHlMaXN0QXRVUkwoQ0ZVUkxSZWYgcHJvcGVydHlMaXN0VVJMKQ0KLXsNCi0gICAg
UmV0YWluUHRyPE5TRGF0YT4gcHJvcGVydHlMaXN0RGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxs
b2NdIGluaXRXaXRoQ29udGVudHNPZlVSTDooTlNVUkwgKilwcm9wZXJ0eUxpc3RVUkxdKTsNCi0g
ICAgaWYgKCFwcm9wZXJ0eUxpc3REYXRhKQ0KLSAgICAgICAgcmV0dXJuIDA7DQotDQotICAgIFJl
dGFpblB0cjxDRlByb3BlcnR5TGlzdFJlZj4gcHJvcGVydHlMaXN0ID0gYWRvcHRDRihDRlByb3Bl
cnR5TGlzdENyZWF0ZVdpdGhEYXRhKGtDRkFsbG9jYXRvckRlZmF1bHQsIChDRkRhdGFSZWYpcHJv
cGVydHlMaXN0RGF0YS5nZXQoKSwga0NGUHJvcGVydHlMaXN0SW1tdXRhYmxlLCAwLCAwKSk7DQot
ICAgIGlmICghcHJvcGVydHlMaXN0KQ0KLSAgICAgICAgcmV0dXJuIDA7DQotDQotICAgIGlmIChD
RkdldFR5cGVJRChwcm9wZXJ0eUxpc3QuZ2V0KCkpICE9IENGRGljdGlvbmFyeUdldFR5cGVJRCgp
KQ0KLSAgICAgICAgcmV0dXJuIDA7DQotDQotICAgIHJldHVybiBzdGF0aWNfY2FzdDxDRkRpY3Rp
b25hcnlSZWY+KHByb3BlcnR5TGlzdC5nZXQoKSk7DQotfQ0KLSNlbmRpZg0KLQ0KLXN0YXRpYyBS
ZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBnZXRNSU1FVHlwZXNGcm9tUGx1Z2luQnVuZGxlKENG
QnVuZGxlUmVmIGJ1bmRsZSwgY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luKQ0KLXsNCi0j
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDEwMDANCi0gICAgQ0ZTdHJp
bmdSZWYgcHJvcGVydHlMaXN0RmlsZW5hbWUgPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZC
dW5kbGVHZXRWYWx1ZUZvckluZm9EaWN0aW9uYXJ5S2V5KGJ1bmRsZSwgQ0ZTVFIoIldlYlBsdWdp
bk1JTUVUeXBlc0ZpbGVuYW1lIikpKTsNCi0gICAgaWYgKHByb3BlcnR5TGlzdEZpbGVuYW1lKSB7
DQotICAgICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHByb3BlcnR5TGlzdFBhdGggPSBhZG9w
dENGKENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdChrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBDRlNU
UigiJUAvTGlicmFyeS9QcmVmZXJlbmNlcy8lQCIpLCBOU0hvbWVEaXJlY3RvcnkoKSwgcHJvcGVy
dHlMaXN0RmlsZW5hbWUpKTsNCi0gICAgICAgIFJldGFpblB0cjxDRlVSTFJlZj4gcHJvcGVydHlM
aXN0VVJMID0gYWRvcHRDRihDRlVSTENyZWF0ZVdpdGhGaWxlU3lzdGVtUGF0aChrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBwcm9wZXJ0eUxpc3RQYXRoLmdldCgpLCBrQ0ZVUkxQT1NJWFBhdGhTdHlsZSwg
RkFMU0UpKTsNCi0NCi0gICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IHByb3BlcnR5
TGlzdCA9IGNvbnRlbnRzT2ZQcm9wZXJ0eUxpc3RBdFVSTChwcm9wZXJ0eUxpc3RVUkwuZ2V0KCkp
Ow0KLQ0KLSAgICAgICAgaWYgKCFwcm9wZXJ0eUxpc3QgJiYgUGx1Z2luUHJvY2Vzc1Byb3h5Ojpj
cmVhdGVQcm9wZXJ0eUxpc3RGaWxlKHBsdWdpbikpDQotICAgICAgICAgICAgcHJvcGVydHlMaXN0
ID0gY29udGVudHNPZlByb3BlcnR5TGlzdEF0VVJMKHByb3BlcnR5TGlzdFVSTC5nZXQoKSk7DQot
DQotICAgICAgICBpZiAoIXByb3BlcnR5TGlzdCkNCi0gICAgICAgICAgICByZXR1cm4gMDsNCi0g
ICAgICAgIA0KLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENGRGljdGlvbmFyeVJlZj4oQ0ZE
aWN0aW9uYXJ5R2V0VmFsdWUocHJvcGVydHlMaXN0LmdldCgpLCBDRlNUUigiV2ViUGx1Z2luTUlN
RVR5cGVzIikpKTsNCi0gICAgfQ0KLSNlbmRpZg0KLSAgICANCi0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PENGRGljdGlvbmFyeVJlZj4oQ0ZCdW5kbGVHZXRWYWx1ZUZvckluZm9EaWN0aW9uYXJ5S2V5
KGJ1bmRsZSwgQ0ZTVFIoIldlYlBsdWdpbk1JTUVUeXBlcyIpKSk7DQotfQ0KLQ0KIHN0YXRpYyBi
b29sIGdldFBsdWdpbkluZm9Gcm9tUHJvcGVydHlMaXN0cyhDRkJ1bmRsZVJlZiBidW5kbGUsIFBs
dWdpbk1vZHVsZUluZm8mIHBsdWdpbikNCiB7DQotICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlS
ZWY+IG1pbWVUeXBlcyA9IGdldE1JTUVUeXBlc0Zyb21QbHVnaW5CdW5kbGUoYnVuZGxlLCBwbHVn
aW4pOw0KKyAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBtaW1lVHlwZXMgPSBzdGF0aWNf
Y2FzdDxDRkRpY3Rpb25hcnlSZWY+KENGQnVuZGxlR2V0VmFsdWVGb3JJbmZvRGljdGlvbmFyeUtl
eShidW5kbGUsIENGU1RSKCJXZWJQbHVnaW5NSU1FVHlwZXMiKSkpOw0KICAgICBpZiAoIW1pbWVU
eXBlcyB8fCBDRkdldFR5cGVJRChtaW1lVHlwZXMuZ2V0KCkpICE9IENGRGljdGlvbmFyeUdldFR5
cGVJRCgpKQ0KICAgICAgICAgcmV0dXJuIGZhbHNlOw0KIA0KQEAgLTIwOSwxMiArMTY4LDcgQEAg
Ym9vbCBOZXRzY2FwZVBsdWdpbk1vZHVsZTo6Z2V0UGx1Z2luSW5mbw0KICAgICBSZXRhaW5QdHI8
Q0ZVUkxSZWY+IGJ1bmRsZVVSTCA9IGFkb3B0Q0YoQ0ZVUkxDcmVhdGVXaXRoRmlsZVN5c3RlbVBh
dGgoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGx1Z2luUGF0aC5jcmVhdGVDRlN0cmluZygpLmdldCgp
LCBrQ0ZVUkxQT1NJWFBhdGhTdHlsZSwgZmFsc2UpKTsNCiAgICAgDQogICAgIC8vIFRyeSB0byBp
bml0aWFsaXplIHRoZSBidW5kbGUuDQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMTAwDQogICAgIFJldGFpblB0cjxDRkJ1bmRsZVJlZj4gYnVuZGxlID0gYWRvcHRD
RihfQ0ZCdW5kbGVDcmVhdGVVbmlxdWUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVuZGxlVVJMLmdl
dCgpKSk7DQotI2Vsc2UNCi0gICAgUmV0YWluUHRyPENGQnVuZGxlUmVmPiBidW5kbGUgPSBhZG9w
dENGKENGQnVuZGxlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJ1bmRsZVVSTC5nZXQoKSkp
Ow0KLSNlbmRpZg0KLQ0KICAgICBpZiAoIWJ1bmRsZSkNCiAgICAgICAgIHJldHVybiBmYWxzZTsN
CiAgICAgDQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMu
bW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vz
c01hYy5tbQkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
Q2hpbGRQcm9jZXNzTWFjLm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtMTc3LDE1ICsxNzcsMTIgQEAg
dm9pZCBDaGlsZFByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbg0KICAgICB9DQogfQ0KIA0K
LSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KIHZvaWQgQ2hp
bGRQcm9jZXNzOjpzZXRTaGFyZWRIVFRQQ29va2llU3RvcmFnZShjb25zdCBWZWN0b3I8dWludDhf
dD4mIGlkZW50aWZpZXIpDQogew0KICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBjb29raWVTdG9y
YWdlRGF0YSA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGlkZW50
aWZpZXIuZGF0YSgpLCBpZGVudGlmaWVyLnNpemUoKSkpOw0KICAgICBSZXRhaW5QdHI8Q0ZIVFRQ
Q29va2llU3RvcmFnZVJlZj4gdWlQcm9jZXNzQ29va2llU3RvcmFnZSA9IGFkb3B0Q0YoQ0ZIVFRQ
Q29va2llU3RvcmFnZUNyZWF0ZUZyb21JZGVudGlmeWluZ0RhdGEoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgY29va2llU3RvcmFnZURhdGEuZ2V0KCkpKTsNCiAgICAgW05TSFRUUENvb2tpZVN0b3JhZ2Ug
X3NldFNoYXJlZEhUVFBDb29raWVTdG9yYWdlOmFkb3B0TlMoW1tOU0hUVFBDb29raWVTdG9yYWdl
IGFsbG9jXSBfaW5pdFdpdGhDRkhUVFBDb29raWVTdG9yYWdlOnVpUHJvY2Vzc0Nvb2tpZVN0b3Jh
Z2UuZ2V0KCldKS5nZXQoKV07DQogfQ0KLSNlbmRpZg0KLQ0KIA0KICNpZiBVU0UoQVBQS0lUKQ0K
IHZvaWQgQ2hpbGRQcm9jZXNzOjpzdG9wTlNBcHBSdW5Mb29wKCkNCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gMjE5
MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHAJ
KHdvcmtpbmcgY29weSkNCkBAIC0xNjksOSArMTY5LDYgQEAgdm9pZCBDaGlsZFByb2Nlc3NQcm94
eTo6ZGlkRmluaXNoTGF1bmNoaQ0KICAgICAgICAgcmV0dXJuOw0KIA0KICAgICBtX2Nvbm5lY3Rp
b24gPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbklk
ZW50aWZpZXIsICp0aGlzKTsNCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEIDw9IDEwMTAwMA0KLSAgICBtX2Nvbm5lY3Rpb24tPnNldFNob3VsZENs
b3NlQ29ubmVjdGlvbk9uTWFjaEV4Y2VwdGlvbnMoKTsNCi0jZW5kaWYNCiANCiAgICAgY29ubmVj
dGlvbldpbGxPcGVuKCptX2Nvbm5lY3Rpb24pOw0KICAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsN
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAko
cmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJl
YVByb3h5LmgJKHdvcmtpbmcgY29weSkNCkBAIC03Miw4ICs3Miw2IEBAIHB1YmxpYzoNCiAgICAg
Ly8gVGhlIHRpbWVvdXQgd2UgdXNlIHdoZW4gd2FpdGluZyBmb3IgYSBEaWRVcGRhdGVHZW9tZXRy
eSBtZXNzYWdlLg0KICAgICBzdGF0aWMgY29uc3RleHByIFNlY29uZHMgZGlkVXBkYXRlQmFja2lu
Z1N0b3JlU3RhdGVUaW1lb3V0KCkgeyByZXR1cm4gU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyg1
MDApOyB9DQogDQotICAgIHZpcnR1YWwgdm9pZCB3YWl0Rm9yUG9zc2libGVHZW9tZXRyeVVwZGF0
ZShTZWNvbmRzID0gZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGVUaW1lb3V0KCkpIHsgfQ0KLQ0K
ICAgICB2aXJ0dWFsIHZvaWQgY29sb3JTcGFjZURpZENoYW5nZSgpIHsgfQ0KICAgICB2aXJ0dWFs
IHZvaWQgbWluaW11bUxheW91dFNpemVEaWRDaGFuZ2UoKSB7IH0NCiANCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyMTkwNDgpDQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29w
eSkNCkBAIC0xMjk0LDcgKzEyOTQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0VG9wQ29udGVu
dEluc2V0KGZsDQogDQogICAgIGlmICghaXNWYWxpZCgpKQ0KICAgICAgICAgcmV0dXJuOw0KLSNp
ZiBIQVZFKENPUkVBTklNQVRJT05fRkVOQ0VTKQ0KKyNpZiBQTEFURk9STShDT0NPQSkNCiAgICAg
TWFjaFNlbmRSaWdodCBmZW5jZSA9IG1fZHJhd2luZ0FyZWEtPmNyZWF0ZUZlbmNlKCk7DQogDQog
ICAgIGF1dG8gZmVuY2VBdHRhY2htZW50ID0gSVBDOjpBdHRhY2htZW50KGZlbmNlLmxlYWtTZW5k
UmlnaHQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpOw0KSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAkod29ya2luZyBjb3B5KQ0KQEAg
LTE0MDQsMTQwICsxNDA0LDYgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlUG9saWN5Q2xpZW50KFdLUGFn
ZVJlZg0KICAgICB0b0ltcGwocGFnZVJlZiktPnNldFBvbGljeUNsaWVudChzdGQ6Om1ha2VfdW5p
cXVlPFBvbGljeUNsaWVudD4od2tDbGllbnQpKTsNCiB9DQogDQotI2lmIFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDEwMDANCi1zdGF0aWMgdm9p
ZCBmaXhVcEJvdGNoZWRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFn
ZVVJQ2xpZW50QmFzZSYgd2tDbGllbnQpDQotew0KLSAgICBzdHJ1Y3QgQm90Y2hlZFdLUGFnZVVJ
Q2xpZW50VjQgew0KLSAgICAgICAgV0tQYWdlVUlDbGllbnRCYXNlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOw0KLQ0KLSAgICAgICAgLy8gVmVy
c2lvbiAwLg0KLSAgICAgICAgV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRG
b3JVc2VXaXRoVjAgICAgICAgICAgICAgICAgICBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjA7DQotICAgICAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dQYWdlOw0KLSAgICAgICAgV0tQYWdl
VUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbG9zZTsNCi0gICAgICAgIFdLUGFnZVRha2VGb2N1c0NhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZUZvY3VzOw0KLSAgICAgICAgV0tQ
YWdlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmb2N1czsNCi0gICAgICAgIFdLUGFnZVVuZm9jdXNDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5mb2N1czsNCi0gICAgICAgIFdL
UGFnZVJ1bkphdmFTY3JpcHRBbGVydENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAg
ICAgICAgICAgcnVuSmF2YVNjcmlwdEFsZXJ0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7DQotICAg
ICAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VX
aXRoVjAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtX2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjA7DQotICAgICAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMCAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMDsNCi0gICAgICAgIFdLUGFnZVNldFN0YXR1c1RleHRDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdHVzVGV4dDsNCi0gICAgICAg
IFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMCAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZvclVzZVdpdGhW
MDsNCi0gICAgICAgIFdLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMCAgICAgbWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVj
YXRlZEZvclVzZVdpdGhWMDsNCi0gICAgICAgIFdLUGFnZURpZE5vdEhhbmRsZUtleUV2ZW50Q2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFuZGxlS2V5RXZl
bnQ7DQotICAgICAgICBXS1BhZ2VEaWROb3RIYW5kbGVXaGVlbEV2ZW50Q2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQ7DQotICAgICAg
ICBXS1BhZ2VHZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRvb2xiYXJzQXJlVmlzaWJsZTsNCi0gICAgICAgIFdLUGFnZVNldFRvb2xi
YXJzQXJlVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
VG9vbGJhcnNBcmVWaXNpYmxlOw0KLSAgICAgICAgV0tQYWdlR2V0TWVudUJhcklzVmlzaWJsZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51QmFySXNWaXNpYmxl
Ow0KLSAgICAgICAgV0tQYWdlU2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZXRNZW51QmFySXNWaXNpYmxlOw0KLSAgICAgICAgV0tQ
YWdlR2V0U3RhdHVzQmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0dXNCYXJJc1Zpc2libGU7DQotICAgICAgICBXS1BhZ2VTZXRTdGF0dXNCYXJJ
c1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1
c0JhcklzVmlzaWJsZTsNCi0gICAgICAgIFdLUGFnZUdldElzUmVzaXphYmxlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSZXNpemFibGU7DQotICAgICAg
ICBXS1BhZ2VTZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNldElzUmVzaXphYmxlOw0KLSAgICAgICAgV0tQYWdlR2V0V2luZG93RnJh
bWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRXaW5k
b3dGcmFtZTsNCi0gICAgICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93RnJhbWU7DQotICAgICAgICBX
S1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFja19kZXByZWNhdGVkRm9yVXNl
V2l0aFY2ICAgIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsNCi0gICAgICAgIFdLUGFnZVVJ
Q2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlkRHJhdzsNCi0gICAgICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURpZFNjcm9sbDsNCi0gICAgICAg
IFdLUGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXhjZWVkZWREYXRhYmFzZVF1b3RhOw0KLSAgICAgICAgV0tQYWdlUnVuT3Bl
blBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
dW5PcGVuUGFuZWw7DQotICAgICAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3Q7DQotICAgICAgICBXS1BhZ2VIZWFkZXJIZWlnaHRDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckhlaWdodDsN
Ci0gICAgICAgIFdLUGFnZUZvb3RlckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZm9vdGVySGVpZ2h0Ow0KLSAgICAgICAgV0tQYWdlRHJhd0hl
YWRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
cmF3SGVhZGVyOw0KLSAgICAgICAgV0tQYWdlRHJhd0Zvb3RlckNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3Rm9vdGVyOw0KLSAgICAgICAgV0tQ
YWdlUHJpbnRGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwcmludEZyYW1lOw0KLSAgICAgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5Nb2RhbDsNCi0gICAg
ICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW51c2VkMTsgLy8gVXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJh
bmRGb3JNYWluRnJhbWUNCi0gICAgICAgIFdLUGFnZVNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNG
b2xkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgc2F2ZURhdGFUb0ZpbGVJbkRvd25s
b2Fkc0ZvbGRlcjsNCi0gICAgICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlw
dF91bmF2YWlsYWJsZTsNCi0NCi0gICAgICAgIC8vIFZlcnNpb24gMS4NCi0gICAgICAgIFdLUGFn
ZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxICAgICAgICAgICAg
ICAgICAgY3JlYXRlTmV3UGFnZTsNCi0gICAgICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnQ7DQotICAgICAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0Ow0KLSAgICAgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0
b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMSB1bmF2YWlsYWJsZVBsdWdp
bkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMTsNCi0NCi0gICAgICAgIC8vIFZl
cnNpb24gMi4NCi0gICAgICAgIFdLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0NvbG9yUGlja2VyOw0KLSAgICAgICAg
V0tQYWdlSGlkZUNvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoaWRlQ29sb3JQaWNrZXI7DQotICAgICAgICBXS1BhZ2VVbmF2YWlsYWJsZVBs
dWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHVuYXZhaWxh
YmxlUGx1Z2luQnV0dG9uQ2xpY2tlZDsNCi0NCi0gICAgICAgIC8vIFZlcnNpb24gMy4NCi0gICAg
ICAgIFdLUGFnZVBpbm5lZFN0YXRlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGlubmVkU3RhdGVEaWRDaGFuZ2U7DQotDQotICAgICAgICAvLyBWZXJz
aW9uIDQuDQotICAgICAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19kZXByZWNh
dGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydDsNCi0gICAgICAg
IFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhW
NSAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm07DQotICAgICAgICBXS1BhZ2VSdW5KYXZh
U2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgIHJ1
bkphdmFTY3JpcHRQcm9tcHQ7DQotICAgIH07DQotDQotICAgIGNvbnN0IGF1dG8mIGJvdGNoZWRQ
YWdlVUlDbGllbnQgPSByZWludGVycHJldF9jYXN0PGNvbnN0IEJvdGNoZWRXS1BhZ2VVSUNsaWVu
dFY0Jj4od2tDbGllbnQpOw0KLQ0KLSAgICBXS1BhZ2VVSUNsaWVudFY1IGZpeGVkUGFnZVVJQ2xp
ZW50ID0gew0KLSAgICAgICAgeyA1LCBib3RjaGVkUGFnZVVJQ2xpZW50LmJhc2UuY2xpZW50SW5m
byB9LA0KLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5jcmVhdGVOZXdQYWdlX2RlcHJlY2F0
ZWRGb3JVc2VXaXRoVjAsDQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LnNob3dQYWdlLA0K
LSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5jbG9zZSwNCi0gICAgICAgIGJvdGNoZWRQYWdl
VUlDbGllbnQudGFrZUZvY3VzLA0KLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5mb2N1cywN
Ci0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQudW5mb2N1cywNCi0gICAgICAgIGJvdGNoZWRQ
YWdlVUlDbGllbnQucnVuSmF2YVNjcmlwdEFsZXJ0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAsDQot
ICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LnJ1bkphdmFTY3JpcHRDb25maXJtX2RlcHJlY2F0
ZWRGb3JVc2VXaXRoVjAsDQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LnJ1bkphdmFTY3Jp
cHRQcm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlD
bGllbnQuc2V0U3RhdHVzVGV4dCwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQubW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCwNCi0gICAgICAgIGJvdGNo
ZWRQYWdlVUlDbGllbnQubWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMCwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuZGlkTm90SGFuZGxlS2V5RXZl
bnQsDQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LmRpZE5vdEhhbmRsZVdoZWVsRXZlbnQs
DQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LnRvb2xiYXJzQXJlVmlzaWJsZSwNCi0gICAg
ICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuc2V0VG9vbGJhcnNBcmVWaXNpYmxlLA0KLSAgICAgICAg
Ym90Y2hlZFBhZ2VVSUNsaWVudC5tZW51QmFySXNWaXNpYmxlLA0KLSAgICAgICAgYm90Y2hlZFBh
Z2VVSUNsaWVudC5zZXRNZW51QmFySXNWaXNpYmxlLA0KLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNs
aWVudC5zdGF0dXNCYXJJc1Zpc2libGUsDQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LnNl
dFN0YXR1c0JhcklzVmlzaWJsZSwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuaXNSZXNp
emFibGUsDQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LnNldElzUmVzaXphYmxlLA0KLSAg
ICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5nZXRXaW5kb3dGcmFtZSwNCi0gICAgICAgIGJvdGNo
ZWRQYWdlVUlDbGllbnQuc2V0V2luZG93RnJhbWUsDQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xp
ZW50LnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlD
bGllbnQuZGlkRHJhdywNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQucGFnZURpZFNjcm9s
bCwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuZXhjZWVkZWREYXRhYmFzZVF1b3RhLA0K
LSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5ydW5PcGVuUGFuZWwsDQotICAgICAgICBib3Rj
aGVkUGFnZVVJQ2xpZW50LmRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QsDQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LmhlYWRlckhlaWdodCwNCi0gICAgICAg
IGJvdGNoZWRQYWdlVUlDbGllbnQuZm9vdGVySGVpZ2h0LA0KLSAgICAgICAgYm90Y2hlZFBhZ2VV
SUNsaWVudC5kcmF3SGVhZGVyLA0KLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5kcmF3Rm9v
dGVyLA0KLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5wcmludEZyYW1lLA0KLSAgICAgICAg
Ym90Y2hlZFBhZ2VVSUNsaWVudC5ydW5Nb2RhbCwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGll
bnQudW51c2VkMSwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuc2F2ZURhdGFUb0ZpbGVJ
bkRvd25sb2Fkc0ZvbGRlciwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuc2hvdWxkSW50
ZXJydXB0SmF2YVNjcmlwdF91bmF2YWlsYWJsZSwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGll
bnQuY3JlYXRlTmV3UGFnZSwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQubW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQsDQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LmRlY2lkZVBvbGlj
eUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LA0KLSAgICAgICAgYm90Y2hlZFBhZ2VV
SUNsaWVudC51bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMSwNCi0gICAgICAgIGJvdGNoZWRQYWdlVUlDbGllbnQuc2hvd0NvbG9yUGlja2VyLA0KLSAg
ICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5oaWRlQ29sb3JQaWNrZXIsDQotICAgICAgICBib3Rj
aGVkUGFnZVVJQ2xpZW50LnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCwNCi0gICAgICAg
IGJvdGNoZWRQYWdlVUlDbGllbnQucGlubmVkU3RhdGVEaWRDaGFuZ2UsDQotICAgICAgICBudWxs
cHRyLA0KLSAgICAgICAgbnVsbHB0ciwNCi0gICAgICAgIG51bGxwdHIsDQotICAgICAgICBudWxs
cHRyLA0KLSAgICAgICAgbnVsbHB0ciwNCi0gICAgICAgIG51bGxwdHIsDQotICAgICAgICBib3Rj
aGVkUGFnZVVJQ2xpZW50LnJ1bkphdmFTY3JpcHRBbGVydCwNCi0gICAgICAgIGJvdGNoZWRQYWdl
VUlDbGllbnQucnVuSmF2YVNjcmlwdENvbmZpcm0sDQotICAgICAgICBib3RjaGVkUGFnZVVJQ2xp
ZW50LnJ1bkphdmFTY3JpcHRQcm9tcHQsDQotICAgICAgICBudWxscHRyLA0KLSAgICB9Ow0KLQ0K
LSAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQocGFnZVJlZiwgJmZpeGVkUGFnZVVJQ2xpZW50LmJh
c2UpOw0KLX0NCi0jZW5kaWYNCi0NCiBuYW1lc3BhY2UgV2ViS2l0IHsNCiANCiBjbGFzcyBSdW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWxSZXN1bHRMaXN0ZW5lciA6IHB1YmxpYyBBUEk6Ok9iamVj
dEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFJlc3Vs
dExpc3RlbmVyPiB7DQpAQCAtMTY4OSwxMyArMTU1NSw2IEBAIHZvaWQgV0tQYWdlUnVuSmF2YVNj
cmlwdFByb21wdFJlc3VsdExpc3QNCiANCiB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1Bh
Z2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudCkNCiB7DQot
I2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAx
MDEwMDANCi0gICAgaWYgKHdrQ2xpZW50ICYmIHdrQ2xpZW50LT52ZXJzaW9uID09IDQpIHsNCi0g
ICAgICAgIGZpeFVwQm90Y2hlZFBhZ2VVSUNsaWVudChwYWdlUmVmLCAqd2tDbGllbnQpOw0KLSAg
ICAgICAgcmV0dXJuOw0KLSAgICB9DQotI2VuZGlmDQotDQogICAgIGNsYXNzIFVJQ2xpZW50IDog
cHVibGljIEFQSTo6Q2xpZW50PFdLUGFnZVVJQ2xpZW50QmFzZT4sIHB1YmxpYyBBUEk6OlVJQ2xp
ZW50IHsNCiAgICAgcHVibGljOg0KICAgICAgICAgZXhwbGljaXQgVUlDbGllbnQoY29uc3QgV0tQ
YWdlVUlDbGllbnRCYXNlKiBjbGllbnQpDQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjE5
MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENv
Y29hLm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtMjM2LDExICsyMzYsOSBAQCB2b2lkIFdlYlByb2Nl
c3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXDQogICAgICAgICAgICAgWyhOU0RhdGEgKilkYXRh
IHJlbGVhc2VdOw0KICAgICAgICAgfSwgZGF0YS5sZWFrUmVmKCkpOw0KICAgICB9DQotI2lmIFRB
UkdFVF9PU19JUEhPTkUgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDExMDApDQogICAgIHBhcmFtZXRlcnMubmV0d29ya0FUU0NvbnRleHQg
PSBhZG9wdENGKF9DRk5ldHdvcmtDb3B5QVRTQ29udGV4dCgpKTsNCi0jZW5kaWYNCiANCi0jaWYg
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEw
MA0KKyNpZiBQTEFURk9STShNQUMpDQogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGNvb2tpZVN0
b3JhZ2VEYXRhID0gYWRvcHRDRihDRkhUVFBDb29raWVTdG9yYWdlQ3JlYXRlSWRlbnRpZnlpbmdE
YXRhKGtDRkFsbG9jYXRvckRlZmF1bHQsIFtbTlNIVFRQQ29va2llU3RvcmFnZSBzaGFyZWRIVFRQ
Q29va2llU3RvcmFnZV0gX2Nvb2tpZVN0b3JhZ2VdKSk7DQogICAgIEFTU0VSVChwYXJhbWV0ZXJz
LnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLmlzRW1wdHkoKSk7DQogICAgIHBhcmFt
ZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIuYXBwZW5kKENGRGF0YUdldEJ5
dGVQdHIoY29va2llU3RvcmFnZURhdGEuZ2V0KCkpLCBDRkRhdGFHZXRMZW5ndGgoY29va2llU3Rv
cmFnZURhdGEuZ2V0KCkpKTsNCkBAIC0yODAsOSArMjc4LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplTg0KIA0KICAgICBwYXJhbWV0ZXJzLmh0dHBQcm94eSA9IFtk
ZWZhdWx0cyBzdHJpbmdGb3JLZXk6V2ViS2l0MkhUVFBQcm94eURlZmF1bHRzS2V5XTsNCiAgICAg
cGFyYW1ldGVycy5odHRwc1Byb3h5ID0gW2RlZmF1bHRzIHN0cmluZ0ZvcktleTpXZWJLaXQySFRU
UFNQcm94eURlZmF1bHRzS2V5XTsNCi0jaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkNCiAgICAg
cGFyYW1ldGVycy5uZXR3b3JrQVRTQ29udGV4dCA9IGFkb3B0Q0YoX0NGTmV0d29ya0NvcHlBVFND
b250ZXh0KCkpOw0KLSNlbmRpZg0KIA0KICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkNCiAgICAg
cGFyYW1ldGVycy5zaG91bGRFbmFibGVOZXR3b3JrQ2FjaGUgPSBpc05ldHdvcmtDYWNoZUVuYWJs
ZWQoKTsNCkBAIC0yOTgsNyArMjk0LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1J
bml0aWFsaXplTg0KICAgICBwYXJhbWV0ZXJzLnNob3VsZFN1cHByZXNzTWVtb3J5UHJlc3N1cmVI
YW5kbGVyID0gW2RlZmF1bHRzIGJvb2xGb3JLZXk6V2ViS2l0U3VwcHJlc3NNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXJEZWZhdWx0c0tleV07DQogICAgIHBhcmFtZXRlcnMubG9hZFRocm90dGxlTGF0ZW5j
eSA9IFNlY29uZHMgeyBbZGVmYXVsdHMgaW50ZWdlckZvcktleTpXZWJLaXROZXR3b3JrTG9hZFRo
cm90dGxlTGF0ZW5jeU1pbGxpc2Vjb25kc0RlZmF1bHRzS2V5XSAvIDEwMDAuIH07DQogDQotI2lm
IFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEx
MDANCisjaWYgUExBVEZPUk0oTUFDKQ0KICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBjb29raWVT
dG9yYWdlRGF0YSA9IGFkb3B0Q0YoQ0ZIVFRQQ29va2llU3RvcmFnZUNyZWF0ZUlkZW50aWZ5aW5n
RGF0YShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBbW05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRU
UENvb2tpZVN0b3JhZ2VdIF9jb29raWVTdG9yYWdlXSkpOw0KICAgICBBU1NFUlQocGFyYW1ldGVy
cy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5pc0VtcHR5KCkpOw0KICAgICBwYXJh
bWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLmFwcGVuZChDRkRhdGFHZXRC
eXRlUHRyKGNvb2tpZVN0b3JhZ2VEYXRhLmdldCgpKSwgQ0ZEYXRhR2V0TGVuZ3RoKGNvb2tpZVN0
b3JhZ2VEYXRhLmdldCgpKSk7DQpAQCAtNTk5LDkgKzU5NSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnJlc2V0SFNUU0hvc3RzQWRkZWQNCiB7DQogICAgIE5TRGF0ZSAqc3RhcnREYXRlID0gW05T
RGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDpzdGFydERhdGVJbnRlcnZhbFNpbmNl
MTk3MF07DQogICAgIF9DRk5ldHdvcmtSZXNldEhTVFNIb3N0c1NpbmNlRGF0ZShudWxscHRyLCAo
X19icmlkZ2UgQ0ZEYXRlUmVmKXN0YXJ0RGF0ZSk7DQotI2lmIFBMQVRGT1JNKElPUykgfHwgKFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAp
DQogICAgIF9DRk5ldHdvcmtSZXNldEhTVFNIb3N0c1NpbmNlRGF0ZShwcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKCksIChfX2JyaWRnZSBDRkRhdGVSZWYpc3RhcnREYXRlKTsNCi0jZW5kaWYNCiB9DQog
DQogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0Q29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJs
ZWQoYm9vbCBlbmFibGVkKQ0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLmgJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAkod29ya2luZyBjb3B5KQ0KQEAgLTQwMiw5ICs0
MDIsNyBAQCBwdWJsaWM6DQogICAgIHZvaWQgcmVnaXN0ZXJEcmFnZ2VkVHlwZXMoKTsNCiAjZW5k
aWYNCiANCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCiAg
ICAgdm9pZCBzdGFydFdpbmRvd0RyYWcoKTsNCi0jZW5kaWYNCiANCiAgICAgdm9pZCBkcmFnSW1h
Z2VGb3JWaWV3KE5TVmlldyAqLCBOU0ltYWdlICosIENHUG9pbnQgY2xpZW50UG9pbnQsIGJvb2wg
bGlua0RyYWcpOw0KICAgICB2b2lkIHNldEZpbGVBbmRVUkxUeXBlcyhOU1N0cmluZyAqZmlsZW5h
bWUsIE5TU3RyaW5nICpleHRlbnNpb24sIE5TU3RyaW5nICp0aXRsZSwgTlNTdHJpbmcgKnVybCwg
TlNTdHJpbmcgKnZpc2libGVVUkwsIE5TUGFzdGVib2FyZCAqKTsNCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0NCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0JKHJldmlzaW9uIDIxOTA0
OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0JKHdv
cmtpbmcgY29weSkNCkBAIC0xNjA3LDkgKzE2MDcsNiBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRh
dGVMYXllcigpDQogICAgIC8vIHVkcGF0ZSByZXNwb25zZSBpZiBzZXRGcmFtZVNpemUgaXMgY2Fs
bGVkLg0KICAgICBpZiAoZnJhbWVTaXplVXBkYXRlc0Rpc2FibGVkKCkpDQogICAgICAgICByZXR1
cm47DQotDQotICAgIGlmIChEcmF3aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJlYSA9IG1fcGFnZS0+
ZHJhd2luZ0FyZWEoKSkNCi0gICAgICAgIGRyYXdpbmdBcmVhLT53YWl0Rm9yUG9zc2libGVHZW9t
ZXRyeVVwZGF0ZSgpOw0KIH0NCiANCiB2b2lkIFdlYlZpZXdJbXBsOjpkcmF3UmVjdChDR1JlY3Qg
cmVjdCkNCkBAIC0zNzY3LDEyICszNzY0LDEwIEBAIHZvaWQgV2ViVmlld0ltcGw6OnJlZ2lzdGVy
RHJhZ2dlZFR5cGVzKCkNCiB9DQogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpDQogDQot
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwDQogdm9pZCBXZWJW
aWV3SW1wbDo6c3RhcnRXaW5kb3dEcmFnKCkNCiB7DQogICAgIFttX3ZpZXcud2luZG93IHBlcmZv
cm1XaW5kb3dEcmFnV2l0aEV2ZW50Om1fbGFzdE1vdXNlRG93bkV2ZW50LmdldCgpXTsNCiB9DQot
I2VuZGlmDQogDQogdm9pZCBXZWJWaWV3SW1wbDo6ZHJhZ0ltYWdlRm9yVmlldyhOU1ZpZXcgKnZp
ZXcsIE5TSW1hZ2UgKmltYWdlLCBDR1BvaW50IGNsaWVudFBvaW50LCBib29sKQ0KIHsNCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3Bw
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkNCkBA
IC0yMTgsOSArMjE4LDYgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5j
aA0KICAgICB9DQogDQogICAgIG1fY29ubmVjdGlvbiA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRl
U2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpOw0KLSNpZiBQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTAxMDAwDQot
ICAgIG1fY29ubmVjdGlvbi0+c2V0U2hvdWxkQ2xvc2VDb25uZWN0aW9uT25NYWNoRXhjZXB0aW9u
cygpOw0KLSNlbmRpZg0KIA0KICAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsNCiAgICAgDQpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzUHJveHkuaAkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCSh3b3JraW5nIGNvcHkpDQpAQCAtODcs
MTEgKzg3LDYgQEAgcHVibGljOg0KICNpZiBQTEFURk9STShDT0NPQSkNCiAgICAgdm9pZCBzZXRQ
cm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGJvb2wpOw0KIA0KLSNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEIDw9IDEwMTAwMA0KLSAgICAvLyBDcmVhdGVzIGEgcHJvcGVydHkgbGlz
dCBpbiB+L0xpYnJhcnkvUHJlZmVyZW5jZXMgdGhhdCBjb250YWlucyBhbGwgdGhlIE1JTUUgdHlw
ZXMgc3VwcG9ydGVkIGJ5IHRoZSBwbHVnLWluLg0KLSAgICBzdGF0aWMgYm9vbCBjcmVhdGVQcm9w
ZXJ0eUxpc3RGaWxlKGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mKTsNCi0jZW5kaWYNCi0NCiAjZW5k
aWYNCiANCiAjaWYgUExVR0lOX0FSQ0hJVEVDVFVSRShYMTEpDQpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQ0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9j
ZXNzUHJveHlNYWMubW0JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCSh3b3JraW5nIGNvcHkp
DQpAQCAtNTksNDIgKzU5LDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7DQogDQogbmFtZXNw
YWNlIFdlYktpdCB7DQogICAgIA0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
IDw9IDEwMTAwMA0KLWJvb2wgUGx1Z2luUHJvY2Vzc1Byb3h5OjpjcmVhdGVQcm9wZXJ0eUxpc3RG
aWxlKGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mIHBsdWdpbikNCi17DQotICAgIENTdHJpbmcgcGx1
Z2luUGF0aFN0cmluZyA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwbHVnaW4ucGF0aCk7DQot
DQotICAgIHBvc2l4X3NwYXduYXR0cl90IGF0dHI7DQotICAgIHBvc2l4X3NwYXduYXR0cl9pbml0
KCZhdHRyKTsNCi0NCi0gICAgY3B1X3R5cGVfdCBjcHVUeXBlc1tdID0geyBwbHVnaW4ucGx1Z2lu
QXJjaGl0ZWN0dXJlIH07ICAgIA0KLSAgICBzaXplX3Qgb3V0Q291bnQgPSAwOw0KLSAgICBwb3Np
eF9zcGF3bmF0dHJfc2V0YmlucHJlZl9ucCgmYXR0ciwgMSwgY3B1VHlwZXMsICZvdXRDb3VudCk7
DQotDQotICAgIHBvc2l4X3NwYXduYXR0cl9zZXRmbGFncygmYXR0ciwgUE9TSVhfU1BBV05fQ0xP
RVhFQ19ERUZBVUxUKTsNCi0NCi0gICAgY29uc3QgY2hhciogYXJnc1tdID0geyAiL1N5c3RlbS9M
aWJyYXJ5L0ZyYW1ld29ya3MvV2ViS2l0LmZyYW1ld29yay9QbHVnaW5Qcm9jZXNzLmFwcC9Db250
ZW50cy9NYWNPUy9QbHVnaW5Qcm9jZXNzIiwgIi9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1dl
YktpdC5mcmFtZXdvcmsvV2ViS2l0IiwgIi10eXBlIiwgInBsdWdpbnByb2Nlc3MiLCAiLWNyZWF0
ZVBsdWdpbk1JTUVUeXBlc1ByZWZlcmVuY2VzIiwgcGx1Z2luUGF0aFN0cmluZy5kYXRhKCksIDAg
fTsNCi0NCi0gICAgcGlkX3QgcGlkOw0KLSAgICBpbnQgcmVzdWx0ID0gcG9zaXhfc3Bhd24oJnBp
ZCwgYXJnc1swXSwgMCwgJmF0dHIsIGNvbnN0X2Nhc3Q8Y2hhciogY29uc3QqPihhcmdzKSwgbnVs
bHB0cik7DQotICAgIHBvc2l4X3NwYXduYXR0cl9kZXN0cm95KCZhdHRyKTsNCi0NCi0gICAgaWYg
KHJlc3VsdCkNCi0gICAgICAgIHJldHVybiBmYWxzZTsNCi0gICAgaW50IHN0YXR1czsNCi0gICAg
aWYgKHdhaXRwaWQocGlkLCAmc3RhdHVzLCAwKSA8IDApDQotICAgICAgICByZXR1cm4gZmFsc2U7
DQotDQotICAgIGlmICghV0lGRVhJVEVEKHN0YXR1cykpDQotICAgICAgICByZXR1cm4gZmFsc2U7
DQotDQotICAgIGlmIChXRVhJVFNUQVRVUyhzdGF0dXMpICE9IEVYSVRfU1VDQ0VTUykNCi0gICAg
ICAgIHJldHVybiBmYWxzZTsNCi0NCi0gICAgcmV0dXJuIHRydWU7DQotfQ0KLSNlbmRpZg0KLQ0K
IHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMoUHJvY2Vz
c0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zLCBjb25zdCBQbHVnaW5Qcm9j
ZXNzQXR0cmlidXRlcyYgcGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMpDQogew0KICAgICBpZiAocGx1
Z2luUHJvY2Vzc0F0dHJpYnV0ZXMubW9kdWxlSW5mby5wbHVnaW5BcmNoaXRlY3R1cmUgPT0gQ1BV
X1RZUEVfWDg2KQ0KQEAgLTEyMCw5ICs4NCw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5Ojpw
bGF0Zm9ybUluaXRpYWwNCiAjaWYgSEFWRShIT1NURURfQ09SRV9BTklNQVRJT04pDQogICAgIHBh
cmFtZXRlcnMuYWNjZWxlcmF0ZWRDb21wb3NpdGluZ1BvcnQgPSBNYWNoU2VuZFJpZ2h0OjpjcmVh
dGUoW0NBUmVtb3RlTGF5ZXJTZXJ2ZXIgc2hhcmVkU2VydmVyXS5zZXJ2ZXJQb3J0KTsNCiAjZW5k
aWYNCi0jaWYgVEFSR0VUX09TX0lQSE9ORSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkNCiAgICAgcGFyYW1ldGVycy5uZXR3b3Jr
QVRTQ29udGV4dCA9IGFkb3B0Q0YoX0NGTmV0d29ya0NvcHlBVFNDb250ZXh0KCkpOw0KLSNlbmRp
Zg0KIH0NCiANCiBib29sIFBsdWdpblByb2Nlc3NQcm94eTo6Z2V0UGx1Z2luUHJvY2Vzc1Nlcmlh
bE51bWJlcihQcm9jZXNzU2VyaWFsTnVtYmVyJiBwbHVnaW5Qcm9jZXNzU2VyaWFsTnVtYmVyKQ0K
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0NCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
Lm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbC5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTQxNiwxNCArNDE2LDEyIEBAIElu
dFJlY3QgUGFnZUNsaWVudEltcGw6OnJvb3RWaWV3VG9TY3JlZW4NCiAgICAgcmV0dXJuIGVuY2xv
c2luZ0ludFJlY3QodGVtcFJlY3QpOw0KIH0NCiANCi0jaWYgUExBVEZPUk0oTUFDKQ0KIEludFJl
Y3QgUGFnZUNsaWVudEltcGw6OnJvb3RWaWV3VG9XaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgcmVjdCkNCiB7DQogICAgIE5TUmVjdCB0ZW1wUmVjdCA9IHJlY3Q7DQogICAgIHRlbXBSZWN0
ID0gW21fdmlldyBjb252ZXJ0UmVjdDp0ZW1wUmVjdCB0b1ZpZXc6bmlsXTsNCiAgICAgcmV0dXJu
IGVuY2xvc2luZ0ludFJlY3QodGVtcFJlY3QpOw0KIH0NCi0jZW5kaWYNCiANCiB2b2lkIFBhZ2VD
bGllbnRJbXBsOjpkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQm
IGV2ZW50LCBib29sIGV2ZW50V2FzSGFuZGxlZCkNCiB7DQpAQCAtODQxLDkgKzgzOSw3IEBAIHZv
aWQgUGFnZUNsaWVudEltcGw6OmRlcmVmVmlldygpDQogDQogdm9pZCBQYWdlQ2xpZW50SW1wbDo6
c3RhcnRXaW5kb3dEcmFnKCkNCiB7DQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMTAwDQogICAgIG1faW1wbC0+c3RhcnRXaW5kb3dEcmFnKCk7DQotI2VuZGlmDQog
fQ0KIA0KIE5TV2luZG93ICpQYWdlQ2xpZW50SW1wbDo6cGxhdGZvcm1XaW5kb3coKQ0KSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMu
bW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZVdl
Ykluc3BlY3RvclByb3h5TWFjLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbQkod29ya2luZyBj
b3B5KQ0KQEAgLTIyMSw5ICsyMjEsNyBAQCB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybUFwDQogDQogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TdGFy
dFdpbmRvd0RyYWcoKQ0KIHsNCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDExMDANCiAgICAgbV93ZWJWaWV3LT5fcGFnZS0+c3RhcnRXaW5kb3dEcmFnKCk7DQotI2Vu
ZGlmDQogfQ0KIA0KIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3Blbklu
TmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKQ0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYVByb3h5LmgJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaAkod29ya2luZyBjb3B5
KQ0KQEAgLTQwLDcgKzQwLDYgQEAgcHJpdmF0ZToNCiAgICAgLy8gRHJhd2luZ0FyZWFQcm94eQ0K
ICAgICB2b2lkIGRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7DQogICAgIHZv
aWQgc2l6ZURpZENoYW5nZSgpIG92ZXJyaWRlOw0KLSAgICB2b2lkIHdhaXRGb3JQb3NzaWJsZUdl
b21ldHJ5VXBkYXRlKFNlY29uZHMgdGltZW91dCA9IGRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRl
VGltZW91dCgpKSBvdmVycmlkZTsNCiAgICAgdm9pZCBjb2xvclNwYWNlRGlkQ2hhbmdlKCkgb3Zl
cnJpZGU7DQogICAgIHZvaWQgbWluaW11bUxheW91dFNpemVEaWRDaGFuZ2UoKSBvdmVycmlkZTsN
CiANCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhUHJveHkubW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0JKHJldmlzaW9u
IDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhUHJveHkubW0JKHdvcmtpbmcgY29weSkNCkBAIC03MSwxOSArNzEsNiBA
QCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6DQogICAgIHNlbmRVcGRh
dGVHZW9tZXRyeSgpOw0KIH0NCiANCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
UHJveHk6OndhaXRGb3JQb3NzaWJsZUdlb21ldHJ5VXBkYXRlKFNlY29uZHMgdGltZW91dCkNCi17
DQotI2lmICFIQVZFKENPUkVBTklNQVRJT05fRkVOQ0VTKQ0KLSAgICBpZiAoIW1faXNXYWl0aW5n
Rm9yRGlkVXBkYXRlR2VvbWV0cnkpDQotICAgICAgICByZXR1cm47DQotDQotICAgIGlmIChtX3dl
YlBhZ2VQcm94eS5wcm9jZXNzKCkuc3RhdGUoKSAhPSBXZWJQcm9jZXNzUHJveHk6OlN0YXRlOjpS
dW5uaW5nKQ0KLSAgICAgICAgcmV0dXJuOw0KLQ0KLSAgICBtX3dlYlBhZ2VQcm94eS5wcm9jZXNz
KCkuY29ubmVjdGlvbigpLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6
RHJhd2luZ0FyZWFQcm94eTo6RGlkVXBkYXRlR2VvbWV0cnk+KG1fd2ViUGFnZVByb3h5LnBhZ2VJ
RCgpLCB0aW1lb3V0LCBJUEM6OldhaXRGb3JPcHRpb246OkludGVycnVwdFdhaXRpbmdJZlN5bmNN
ZXNzYWdlQXJyaXZlcyk7DQotI2VuZGlmDQotfQ0KLQ0KIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWFQcm94eTo6Y29sb3JTcGFjZURpZENoYW5nZSgpDQogew0KICAgICBtX3dlYlBh
Z2VQcm94eS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6OlNldENvbG9yU3Bh
Y2UobV93ZWJQYWdlUHJveHkuY29sb3JTcGFjZSgpKSwgbV93ZWJQYWdlUHJveHkucGFnZUlEKCkp
Ow0KQEAgLTE1Myw3ICsxNDAsNiBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
UHJveHk6DQogDQogTWFjaFNlbmRSaWdodCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVBy
b3h5OjpjcmVhdGVGZW5jZSgpDQogew0KLSNpZiBIQVZFKENPUkVBTklNQVRJT05fRkVOQ0VTKQ0K
ICAgICBpZiAoIW1fd2ViUGFnZVByb3h5LmlzVmFsaWQoKSkNCiAgICAgICAgIHJldHVybiBNYWNo
U2VuZFJpZ2h0KCk7DQogDQpAQCAtMTg5LDkgKzE3NSw2IEBAIE1hY2hTZW5kUmlnaHQgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0ENCiAgICAgfSBmb3JQaGFzZTprQ0FUcmFuc2FjdGlvblBoYXNl
UG9zdENvbW1pdF07DQogDQogICAgIHJldHVybiBmZW5jZVBvcnQ7DQotI2Vsc2UNCi0gICAgcmV0
dXJuIE1hY2hTZW5kUmlnaHQoKTsNCi0jZW5kaWYNCiB9DQogDQogdm9pZCBUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5OjpzZW5kVXBkYXRlR2VvbWV0cnkoKQ0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0NCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFj
Lm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJJbnNwZWN0b3JQcm94eU1hYy5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTIyOSwxMiArMjI5LDEw
IEBAIFJldGFpblB0cjxOU1dpbmRvdz4gV2ViSW5zcGVjdG9yUHJveHk6OmMNCiAgICAgW3dpbmRv
dyBzZXRSZWxlYXNlZFdoZW5DbG9zZWQ6Tk9dOw0KICAgICBbd2luZG93IHNldENvbGxlY3Rpb25C
ZWhhdmlvcjooW3dpbmRvdyBjb2xsZWN0aW9uQmVoYXZpb3JdIHwgTlNXaW5kb3dDb2xsZWN0aW9u
QmVoYXZpb3JGdWxsU2NyZWVuUHJpbWFyeSldOw0KIA0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTEwMA0KICAgICBDR0Zsb2F0IGFwcHJveGltYXRlbHlIYWxmU2Ny
ZWVuU2l6ZSA9IChbd2luZG93IHNjcmVlbl0uZnJhbWUuc2l6ZS53aWR0aCAvIDIpIC0gNDsNCiAg
ICAgQ0dGbG9hdCBtaW5pbXVtRnVsbFNjcmVlbldpZHRoID0gc3RkOjptYXg8Q0dGbG9hdD4oNjM2
LCBhcHByb3hpbWF0ZWx5SGFsZlNjcmVlblNpemUpOw0KICAgICBbd2luZG93IHNldE1pbkZ1bGxT
Y3JlZW5Db250ZW50U2l6ZTpOU01ha2VTaXplKG1pbmltdW1GdWxsU2NyZWVuV2lkdGgsIG1pbmlt
dW1XaW5kb3dIZWlnaHQpXTsNCiAgICAgW3dpbmRvdyBzZXRDb2xsZWN0aW9uQmVoYXZpb3I6KFt3
aW5kb3cgY29sbGVjdGlvbkJlaGF2aW9yXSB8IE5TV2luZG93Q29sbGVjdGlvbkJlaGF2aW9yRnVs
bFNjcmVlbkFsbG93c1RpbGluZyldOw0KLSNlbmRpZg0KIA0KICAgICBbd2luZG93IHNldFRpdGxl
YmFyQXBwZWFyc1RyYW5zcGFyZW50OllFU107DQogDQpAQCAtNjg3LDkgKzY4NSw3IEBAIHZvaWQg
V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0QXR0YWMNCiANCiB2b2lkIFdlYkluc3BlY3Rv
clByb3h5OjpwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZygpDQogew0KLSNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KICAgICBtX2luc3BlY3RvclZpZXctPl9wYWdl
LT5zdGFydFdpbmRvd0RyYWcoKTsNCi0jZW5kaWYNCiB9DQogDQogU3RyaW5nIFdlYkluc3BlY3Rv
clByb3h5OjppbnNwZWN0b3JQYWdlVVJMKCkNCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQkocmV2aXNpb24gMjE5
MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlN
YWMubW0JKHdvcmtpbmcgY29weSkNCkBAIC0xMTIsOSArMTEyLDcgQEAgdm9pZCBXZWJQb3B1cE1l
bnVQcm94eU1hYzo6c2hvd1BvcHVwTWVudQ0KICAgICBbbV9wb3B1cCBzZXRVc2VySW50ZXJmYWNl
TGF5b3V0RGlyZWN0aW9uOnRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNVc2VySW50ZXJmYWNlTGF5
b3V0RGlyZWN0aW9uTGVmdFRvUmlnaHQgOiBOU1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25S
aWdodFRvTGVmdF07DQogDQogICAgIE5TTWVudSAqbWVudSA9IFttX3BvcHVwIG1lbnVdOw0KLSNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KICAgICBbbWVudSBz
ZXRVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOnRleHREaXJlY3Rpb24gPT0gTFRSID8gTlNV
c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uTGVmdFRvUmlnaHQgOiBOU1VzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb25SaWdodFRvTGVmdF07DQotI2VuZGlmDQogDQogICAgIC8vIFRoZXNlIHZh
bHVlcyB3ZXJlIGJvcnJvd2VkIGZyb20gQXBwS2l0IHRvIG1hdGNoIHRoZWlyIHBsYWNlbWVudCBv
ZiB0aGUgbWVudS4NCiAgICAgY29uc3QgaW50IHBvcE92ZXJIb3Jpem9udGFsQWRqdXN0ID0gLTEz
Ow0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ag0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQ0KQEAgLTI0NzQsOCArMjQ3
NCw2IEBADQogCQkxQTY2QkY4RTE4QTA1MkVEMDAyMDcxQjQgLyogV0tXZWJWaWV3SW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJWaWV3SW50ZXJuYWwuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCTFBNjdDRDJEMUNCQzUxM0YwMEJGRTNFQSAv
KiBXS09wZW5QYW5lbFBhcmFtZXRlcnNJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS09wZW5QYW5lbFBhcmFtZXRlcnNJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9Ow0KIAkJMUE2OThGMTcxRTQ5MTAyMjAwNjRFODgxIC8qIENoaWxkUHJvY2Vz
c0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ2hpbGRQ
cm9jZXNzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQotCQkxQTZEMTQxRjFC
MDE2N0Q1MDA3ODVGRjAgLyogSW5mby1PU1gtMTAuOS0xMC4xMC5wbGlzdCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQucGxpc3QueG1sOyBwYXRoID0gIkluZm8tT1NYLTEwLjktMTAuMTAucGxpc3QiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9Ow0KLQkJMUE2RDE0MjExQjAxNjgxNjAwNzg1RkYwIC8qIFBsdWdp
blNlcnZpY2UuMzItNjQtMTAuOS0xMC4xMC5JbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlz
dC54bWw7IG5hbWUgPSAiUGx1Z2luU2VydmljZS4zMi02NC0xMC45LTEwLjEwLkluZm8ucGxpc3Qi
OyBwYXRoID0gIlBsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9QbHVnaW5T
ZXJ2aWNlLjMyLTY0LTEwLjktMTAuMTAuSW5mby5wbGlzdCI7IHNvdXJjZVRyZWUgPSBTT1VSQ0Vf
Uk9PVDsgfTsNCiAJCTFBNkQ4NkJGMURGNzUyNjUwMDc3NDVFOCAvKiBNYWNoTWVzc2FnZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYWNoTWVzc2FnZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQogCQkxQTZEODZDMDFERjc1MjY1MDA3NzQ1RTggLyog
TWFjaE1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFjaE1lc3Nh
Z2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCTFBNkZBMjFEMUJEMDQzNUIwMEFB
QTY1MCAvKiBXS0ZyYW1lSW5mb1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tGcmFtZUluZm9Qcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQpA
QCAtMjQ5NCw3ICsyNDkyLDYgQEANCiAJCTFBNzg2NUI4MTZDQUM3MTUwMEFDRTgzQSAvKiBQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXJNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMUE3QzBERjQxQjdEMUYxMDAwQTlCODQ4IC8q
IFdLV2luZG93RmVhdHVyZXNSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV0tXaW5kb3dGZWF0dXJlc1JlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
DQogCQkxQTdDMERGNTFCN0QxRjEwMDBBOUI4NDggLyogV0tXaW5kb3dGZWF0dXJlc1JlZi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dpbmRvd0ZlYXR1cmVzUmVmLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQotCQkxQTdEQTU0RDFBRkQ4QjM4MDAxODIzOUQgLyog
SW5mby1PU1gtMTAuOS0xMC4xMC5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRo
ID0gIkluZm8tT1NYLTEwLjktMTAuMTAucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
Ow0KIAkJMUE3RTM3NzQxOEU0QTMzQTAwM0QwRkZGIC8qIFdLU2NyaXB0TWVzc2FnZUhhbmRsZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTY3JpcHRNZXNzYWdlSGFuZGxl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJMUE3RTM3NzYxOEU0QTRGRTAwM0Qw
RkZGIC8qIFdLU2NyaXB0TWVzc2FnZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdLU2NyaXB0TWVzc2FnZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsN
CiAJCTFBN0UzNzc3MThFNEE0RkUwMDNEMEZGRiAvKiBXS1NjcmlwdE1lc3NhZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTY3JpcHRNZXNzYWdlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07DQpAQCAtNzQ2MSw3ICs3NDU4LDYgQEANCiAJCQlpc2EgPSBQQlhHcm91
cDsNCiAJCQljaGlsZHJlbiA9ICgNCiAJCQkJMjY2NTlBQTAxODVGQUFFRDAwNDMwM0REIC8qIElu
Zm8taU9TLnBsaXN0ICovLA0KLQkJCQkxQTZEMTQxRjFCMDE2N0Q1MDA3ODVGRjAgLyogSW5mby1P
U1gtMTAuOS0xMC4xMC5wbGlzdCAqLywNCiAJCQkJQkM4MjgzQTMxNkI0QkQ5MTAwQTI3OEZFIC8q
IEluZm8tT1NYLnBsaXN0ICovLA0KIAkJCSk7DQogCQkJcGF0aCA9IE5ldHdvcmtTZXJ2aWNlOw0K
QEAgLTc0ODAsNyArNzQ3Niw2IEBADQogCQlCQzgyODNFOTE2QjRGOEUyMDBBMjc4RkUgLyogUGx1
Z2luU2VydmljZSAqLyA9IHsNCiAJCQlpc2EgPSBQQlhHcm91cDsNCiAJCQljaGlsZHJlbiA9ICgN
Ci0JCQkJMUE2RDE0MjExQjAxNjgxNjAwNzg1RkYwIC8qIFBsdWdpblNlcnZpY2UuMzItNjQtMTAu
OS0xMC4xMC5JbmZvLnBsaXN0ICovLA0KIAkJCQlCQ0ZDQTg5NTE2REU5NkNCMDAwNzQwNjkgLyog
UGx1Z2luU2VydmljZS4zMi02NC5JbmZvLnBsaXN0ICovLA0KIAkJCSk7DQogCQkJbmFtZSA9IFBs
dWdpblNlcnZpY2U7DQpAQCAtNzU2Myw3ICs3NTU4LDYgQEANCiAJCQlpc2EgPSBQQlhHcm91cDsN
CiAJCQljaGlsZHJlbiA9ICgNCiAJCQkJMzc1RkI0NzMxODgzNDE1NjAwQkUzNEQ0IC8qIEluZm8t
aU9TLnBsaXN0ICovLA0KLQkJCQkxQTdEQTU0RDFBRkQ4QjM4MDAxODIzOUQgLyogSW5mby1PU1gt
MTAuOS0xMC4xMC5wbGlzdCAqLywNCiAJCQkJQkNBQ0M0NDAxNkIyNENBQTAwQjZFMDkyIC8qIElu
Zm8tT1NYLnBsaXN0ICovLA0KIAkJCSk7DQogCQkJcGF0aCA9IFdlYkNvbnRlbnRTZXJ2aWNlOw0K
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2Iu
aW4NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5X
ZWJQcm9jZXNzLnNiLmluCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgkod29ya2luZyBjb3B5KQ0KQEAgLTM1
LDcgKzM1LDYgQEANCiAoYWxsb3cgcHJvY2Vzcy1jb2Rlc2lnbmluZy1zdGF0dXMqKQ0KICNlbmRp
Zg0KIA0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KIChk
ZW55IHN5c2N0bCopDQogKGFsbG93IHN5c2N0bC1yZWFkDQogICAgIChzeXNjdGwtbmFtZQ0KQEAg
LTE4NCw3ICsxODMsNiBAQA0KICAgICAoaW9raXQtcHJvcGVydHkgInN0YXJ0dXAtdGltaW5nIikN
CiAgICAgKGlva2l0LXByb3BlcnR5ICJ0b3VjaC1zaXplLWlkIikNCiApDQotI2VuZGlmDQogDQog
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwDQogKGRlbnkgbWFj
aC1sb29rdXAgKHhwYy1zZXJ2aWNlLW5hbWUtcHJlZml4ICIiKSkNCkBAIC0zODksOSArMzg3LDYg
QEANCiAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuU3lzdGVtQ29uZmlndXJhdGlvbi5j
b25maWdkIikNCiAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuU3lzdGVtQ29uZmlndXJh
dGlvbi5QUFBDb250cm9sbGVyIikNCiAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuYXVk
aW8uU3lzdGVtU291bmRTZXJ2ZXItT1NYIikNCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA8IDEwMTEwMA0KLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hdWRpby5W
RENBc3Npc3RhbnQiKQ0KLSNlbmRpZg0KICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTMwMA0KICAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hbmFseXRpY3Nk
IikNCiAjZW5kaWYNCkBAIC00MDgsMTAgKzQwMyw4IEBADQogI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwDQogICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxl
Lm1lZGlhcmVtb3RlZC54cGMiKQ0KICNlbmRpZg0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTEwMA0KICAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sc2Qu
bWFwZGIiKQ0KICAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5uZXNlc3Npb25tYW5hZ2Vy
LmZsb3ctZGl2ZXJ0LXRva2VuIikNCi0jZW5kaWYNCiAgICAgICAgKGdsb2JhbC1uYW1lICJjb20u
YXBwbGUuc3BlZWNoLnNwZWVjaHN5bnRoZXNpc2QiKQ0KICAgICAgICAoZ2xvYmFsLW5hbWUgImNv
bS5hcHBsZS5zcGVlY2guc3ludGhlc2lzLmNvbnNvbGUiKQ0KICAgICAgICAoZ2xvYmFsLW5hbWUg
ImNvbS5hcHBsZS5zeXN0ZW0ub3BlbmRpcmVjdG9yeWQuYXBpIikNCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvV2ViQ29udGVudFNlcnZp
Y2UvSW5mby1PU1gtMTAuOS0xMC4xMC5wbGlzdA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9XZWJDb250ZW50U2Vydmlj
ZS9JbmZvLU9TWC0xMC45LTEwLjEwLnBsaXN0CShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1dlYkNvbnRlbnRT
ZXJ2aWNlL0luZm8tT1NYLTEwLjktMTAuMTAucGxpc3QJKG5vbmV4aXN0ZW50KQ0KQEAgLTEsNTgg
KzAsMCBAQA0KLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQotPCFET0NU
WVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3
dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+DQotPHBsaXN0IHZlcnNpb249
IjEuMCI+DQotPGRpY3Q+DQotCTxrZXk+Q0ZCdW5kbGVGb2xsb3dQYXJlbnRMb2NhbGl6YXRpb248
L2tleT4NCi0JPHRydWUvPg0KLQk8a2V5PkNGQnVuZGxlR2V0SW5mb1N0cmluZzwva2V5Pg0KLQk8
c3RyaW5nPiR7QlVORExFX1ZFUlNJT059LCBDb3B5cmlnaHQgMjAwMy0yMDE3IEFwcGxlIEluYy48
L3N0cmluZz4NCi0JPGtleT5DRkJ1bmRsZURldmVsb3BtZW50UmVnaW9uPC9rZXk+DQotCTxzdHJp
bmc+RW5nbGlzaDwvc3RyaW5nPg0KLQk8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5Pg0KLQk8
c3RyaW5nPiR7RVhFQ1VUQUJMRV9OQU1FfTwvc3RyaW5nPg0KLQk8a2V5PkNGQnVuZGxlSWRlbnRp
Zmllcjwva2V5Pg0KLQk8c3RyaW5nPiR7UFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUn08L3N0cmlu
Zz4NCi0JPGtleT5DRkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVyc2lvbjwva2V5Pg0KLQk8c3RyaW5n
PjYuMDwvc3RyaW5nPg0KLQk8a2V5PkNGQnVuZGxlTmFtZTwva2V5Pg0KLQk8c3RyaW5nPiR7UFJP
RFVDVF9OQU1FfTwvc3RyaW5nPg0KLQk8a2V5PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4NCi0J
PHN0cmluZz5YUEMhPC9zdHJpbmc+DQotCTxrZXk+Q0ZCdW5kbGVTaG9ydFZlcnNpb25TdHJpbmc8
L2tleT4NCi0JPHN0cmluZz4ke1NIT1JUX1ZFUlNJT05fU1RSSU5HfTwvc3RyaW5nPg0KLQk8a2V5
PkNGQnVuZGxlU2lnbmF0dXJlPC9rZXk+DQotCTxzdHJpbmc+Pz8/Pzwvc3RyaW5nPg0KLQk8a2V5
PkNGQnVuZGxlVmVyc2lvbjwva2V5Pg0KLQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059PC9zdHJp
bmc+DQotCTxrZXk+TFNGaWxlUXVhcmFudGluZUVuYWJsZWQ8L2tleT4NCi0JPHRydWUvPg0KLQk8
a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4NCi0JPHN0cmluZz5OU0FwcGxpY2F0aW9uPC9zdHJp
bmc+DQotCTxrZXk+V2ViS2l0RW50cnlQb2ludDwva2V5Pg0KLQk8c3RyaW5nPldlYkNvbnRlbnRT
ZXJ2aWNlSW5pdGlhbGl6ZXI8L3N0cmluZz4NCi0JPGtleT5MU1VJRWxlbWVudDwva2V5Pg0KLQk8
dHJ1ZS8+DQotCTxrZXk+TlNTdXBwb3J0c0F1dG9tYXRpY0dyYXBoaWNzU3dpdGNoaW5nPC9rZXk+
DQotCTx0cnVlLz4NCi0JPGtleT5OU1N1cHBvcnRzQXBwTmFwPC9rZXk+DQotCTx0cnVlLz4NCi0J
PGtleT5OU01haW5OaWJGaWxlPC9rZXk+DQotCTxzdHJpbmc+V2ViQ29udGVudFByb2Nlc3M8L3N0
cmluZz4NCi0JPGtleT5YUENTZXJ2aWNlPC9rZXk+DQotCTxkaWN0Pg0KLQkJPGtleT5Kb2luRXhp
c3RpbmdTZXNzaW9uPC9rZXk+DQotCQk8dHJ1ZS8+DQotCQk8a2V5PlNlcnZpY2VUeXBlPC9rZXk+
DQotCQk8c3RyaW5nPkFwcGxpY2F0aW9uPC9zdHJpbmc+DQotCQk8a2V5PlJ1bkxvb3BUeXBlPC9r
ZXk+DQotCQk8c3RyaW5nPl9OU0FwcGxpY2F0aW9uTWFpbjwvc3RyaW5nPg0KLQkJPGtleT5fTXVs
dGlwbGVJbnN0YW5jZXM8L2tleT4NCi0JCTx0cnVlLz4NCi0JCTxrZXk+RW52aXJvbm1lbnRWYXJp
YWJsZXM8L2tleT4NCi0JCTxkaWN0Pg0KLQkJCTxrZXk+RFlMRF9JTlNFUlRfTElCUkFSSUVTPC9r
ZXk+DQotCQkJPHN0cmluZz4kKFdLX1hQQ19TRVJWSUNFX0lOU0VSVF9MSUJSQVJJRVNfRElSKS9X
ZWJQcm9jZXNzU2hpbS5keWxpYjwvc3RyaW5nPg0KLQkJPC9kaWN0Pg0KLQk8L2RpY3Q+DQotPC9k
aWN0Pg0KLTwvcGxpc3Q+DQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMjU3NSw3
ICsyNTc1LDcgQEAgdm9pZCBXZWJQYWdlOjpzZXREcmF3c0JhY2tncm91bmQoYm9vbCBkcg0KICAg
ICBtX2RyYXdpbmdBcmVhLT5zZXROZWVkc0Rpc3BsYXkoKTsNCiB9DQogDQotI2lmIEhBVkUoQ09S
RUFOSU1BVElPTl9GRU5DRVMpDQorI2lmIFBMQVRGT1JNKENPQ09BKQ0KIHZvaWQgV2ViUGFnZTo6
c2V0VG9wQ29udGVudEluc2V0RmVuY2VkKGZsb2F0IGNvbnRlbnRJbnNldCwgSVBDOjpBdHRhY2ht
ZW50IGZlbmNlUG9ydCkNCiB7DQogICAgIG1fZHJhd2luZ0FyZWEtPmFkZEZlbmNlKE1hY2hTZW5k
UmlnaHQ6OmNyZWF0ZShmZW5jZVBvcnQucG9ydCgpKSk7DQpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCSh3b3JraW5nIGNvcHkp
DQpAQCAtMTA5OCw3ICsxMDk4LDcgQEAgcHJpdmF0ZToNCiANCiAgICAgdm9pZCBzZXREcmF3c0Jh
Y2tncm91bmQoYm9vbCk7DQogDQotI2lmIEhBVkUoQ09SRUFOSU1BVElPTl9GRU5DRVMpDQorI2lm
IFBMQVRGT1JNKENPQ09BKQ0KICAgICB2b2lkIHNldFRvcENvbnRlbnRJbnNldEZlbmNlZChmbG9h
dCwgSVBDOjpBdHRhY2htZW50KTsNCiAjZW5kaWYNCiAgICAgdm9pZCBzZXRUb3BDb250ZW50SW5z
ZXQoZmxvYXQpOw0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkod29ya2lu
ZyBjb3B5KQ0KQEAgLTI3LDcgKzI3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNl
aXZlciB7DQogDQogICAgIFNldERyYXdzQmFja2dyb3VuZChib29sIGRyYXdzQmFja2dyb3VuZCkN
CiANCi0jaWYgSEFWRShDT1JFQU5JTUFUSU9OX0ZFTkNFUykNCisjaWYgUExBVEZPUk0oQ09DT0Ep
DQogICAgIFNldFRvcENvbnRlbnRJbnNldEZlbmNlZChmbG9hdCBjb250ZW50SW5zZXQsIElQQzo6
QXR0YWNobWVudCBmZW5jZVBvcnQpDQogI2VuZGlmDQogICAgIFNldFRvcENvbnRlbnRJbnNldChm
bG9hdCBjb250ZW50SW5zZXQpDQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCSh3b3JraW5nIGNvcHkpDQpA
QCAtNzgwLDExICs3ODAsNyBAQCBzdGF0aWMgdm9pZCBhZGRBbmltYXRpb25Ub0xheWVyKENBTGF5
ZXIgDQogICAgICAgICAgICAgICAgIFtzcHJpbmdBbmltYXRpb24gc2V0TWFzczpmdW5jdGlvbi5t
YXNzKCldOw0KICAgICAgICAgICAgICAgICBbc3ByaW5nQW5pbWF0aW9uIHNldFN0aWZmbmVzczpm
dW5jdGlvbi5zdGlmZm5lc3MoKV07DQogICAgICAgICAgICAgICAgIFtzcHJpbmdBbmltYXRpb24g
c2V0RGFtcGluZzpmdW5jdGlvbi5kYW1waW5nKCldOw0KLSNpZiBQTEFURk9STShJT1MpIHx8IFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAN
CiAgICAgICAgICAgICAgICAgW3NwcmluZ0FuaW1hdGlvbiBzZXRJbml0aWFsVmVsb2NpdHk6ZnVu
Y3Rpb24uaW5pdGlhbFZlbG9jaXR5KCldOw0KLSNlbHNlDQotICAgICAgICAgICAgICAgIFtzcHJp
bmdBbmltYXRpb24gc2V0VmVsb2NpdHk6ZnVuY3Rpb24uaW5pdGlhbFZlbG9jaXR5KCldOw0KLSNl
bmRpZg0KICAgICAgICAgICAgIH0NCiAgICAgICAgIH0NCiAgICAgICAgIGNhQW5pbWF0aW9uID0g
c3ByaW5nQW5pbWF0aW9uOw0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0NCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQkod29ya2luZyBjb3B5KQ0K
QEAgLTM0Niw3ICszNDYsNiBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVz
aExhDQogICAgIGlmIChtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0KQ0KICAgICAgICAgdmlzaWJs
ZVJlY3QuaW50ZXJzZWN0KG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QudmFsdWUoKSk7DQogDQot
I2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDExMDApDQogICAgIFJlZlB0cjxXZWJQYWdlPiByZXRhaW5lZFBh
Z2UgPSAmbV93ZWJQYWdlOw0KICAgICBbQ0FUcmFuc2FjdGlvbiBhZGRDb21taXRIYW5kbGVyOlty
ZXRhaW5lZFBhZ2VdIHsNCiAgICAgICAgIGlmIChQYWdlKiBjb3JlUGFnZSA9IHJldGFpbmVkUGFn
ZS0+Y29yZVBhZ2UoKSkgew0KQEAgLTM1NCw3ICszNTMsNiBAQCB2b2lkIFJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhOjpmbHVzaExhDQogICAgICAgICAgICAgICAgIGNvcmVQYWdlLT5pbnNwZWN0
b3JDb250cm9sbGVyKCkuZGlkQ29tcG9zaXRlKCpjb3JlRnJhbWUpOw0KICAgICAgICAgfQ0KICAg
ICB9IGZvclBoYXNlOmtDQVRyYW5zYWN0aW9uUGhhc2VQb3N0Q29tbWl0XTsNCi0jZW5kaWYNCiAN
CiAgICAgbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5j
bHVkaW5nU3ViZnJhbWVzKCk7DQogDQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQ0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWEubW0JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCSh3
b3JraW5nIGNvcHkpDQpAQCAtNDI4LDcgKzQyOCw2IEBAIGJvb2wgVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OmZsdXMNCiAgICAgICAgICAgICBtX3ZpZXdPdmVybGF5Um9vdExheWVyLT5m
bHVzaENvbXBvc2l0aW5nU3RhdGUodmlzaWJsZVJlY3QpOw0KIA0KICAgICAgICAgUmVmUHRyPFdl
YlBhZ2U+IHJldGFpbmVkUGFnZSA9ICZtX3dlYlBhZ2U7DQotI2lmIFRBUkdFVF9PU19JUEhPTkUg
fHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDExMDApDQogICAgICAgICBbQ0FUcmFuc2FjdGlvbiBhZGRDb21taXRIYW5kbGVyOltyZXRhaW5l
ZFBhZ2VdIHsNCiAgICAgICAgICAgICBpZiAoUGFnZSogY29yZVBhZ2UgPSByZXRhaW5lZFBhZ2Ut
PmNvcmVQYWdlKCkpIHsNCiAgICAgICAgICAgICAgICAgaWYgKEZyYW1lKiBjb3JlRnJhbWUgPSBy
ZXRhaW5lZFBhZ2UtPm1haW5GcmFtZSgpKQ0KQEAgLTQzNywxMiArNDM2LDYgQEAgYm9vbCBUaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Zmx1cw0KICAgICAgICAgICAgIGlmIChhdXRvIGRy
YXdpbmdBcmVhID0gc3RhdGljX2Nhc3Q8VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEqPihy
ZXRhaW5lZFBhZ2UtPmRyYXdpbmdBcmVhKCkpKQ0KICAgICAgICAgICAgICAgICBkcmF3aW5nQXJl
YS0+c2VuZFBlbmRpbmdOZXdseVJlYWNoZWRMYXlvdXRNaWxlc3RvbmVzKCk7DQogICAgICAgICB9
IGZvclBoYXNlOmtDQVRyYW5zYWN0aW9uUGhhc2VQb3N0Q29tbWl0XTsNCi0jZWxzZQ0KLSAgICAg
ICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3JldGFpbmVkUGFn
ZV0gew0KLSAgICAgICAgICAgIGlmIChhdXRvIGRyYXdpbmdBcmVhID0gc3RhdGljX2Nhc3Q8VGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEqPihyZXRhaW5lZFBhZ2UtPmRyYXdpbmdBcmVhKCkp
KQ0KLSAgICAgICAgICAgICAgICBkcmF3aW5nQXJlYS0+c2VuZFBlbmRpbmdOZXdseVJlYWNoZWRM
YXlvdXRNaWxlc3RvbmVzKCk7DQotICAgICAgICB9KTsNCi0jZW5kaWYNCiANCiAgICAgICAgIGJv
b2wgcmV0dXJuVmFsdWUgPSBtX3dlYlBhZ2UubWFpbkZyYW1lVmlldygpLT5mbHVzaENvbXBvc2l0
aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMoKTsNCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElO
RykNCkBAIC01NjcsMjEgKzU2MCwxNCBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjp1cGRhDQogDQogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07DQogDQotICAgIGlmIChm
bHVzaFN5bmNocm9ub3VzbHkpIHsNCisgICAgaWYgKGZsdXNoU3luY2hyb25vdXNseSkNCiAgICAg
ICAgIFtDQVRyYW5zYWN0aW9uIGZsdXNoXTsNCi0jaWYgIUhBVkUoQ09SRUFOSU1BVElPTl9GRU5D
RVMpDQotICAgICAgICAvLyBXZSBjYW4ndCBzeW5jaHJvbml6ZSBoZXJlIGlmIHdlJ3JlIHVzaW5n
IGZlbmNlcyBvciB3ZSdsbCBibG93IHRoZSBmZW5jZSBldmVyeSB0aW1lIChhbmQgd2UgZG9uJ3Qg
bmVlZCB0bykuDQotICAgICAgICBbQ0FUcmFuc2FjdGlvbiBzeW5jaHJvbml6ZV07DQotI2VuZGlm
DQotICAgIH0NCiANCiAgICAgbV93ZWJQYWdlLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhUHJv
eHk6OkRpZFVwZGF0ZUdlb21ldHJ5KCkpOw0KIA0KICAgICBtX2luVXBkYXRlR2VvbWV0cnkgPSBm
YWxzZTsNCiANCi0jaWYgSEFWRShDT1JFQU5JTUFUSU9OX0ZFTkNFUykNCiAgICAgbV9sYXllckhv
c3RpbmdDb250ZXh0LT5zZXRGZW5jZVBvcnQoZmVuY2VQb3J0LnNlbmRSaWdodCgpKTsNCi0jZW5k
aWYNCiB9DQogDQogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2V0RGV2aWNl
U2NhbGVGYWN0b3IoZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpDQpJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0NCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkocmV2aXNp
b24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgV2ViUHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHINCiAgICAgICAgIEpTQzo6cHJvY2Vzc0NvbmZp
Z0ZpbGUoamF2YVNjcmlwdENvbmZpZ0ZpbGUubGF0aW4xKCkuZGF0YSgpLCAiY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50IiwgcGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyLmxh
dGluMSgpLmRhdGEoKSk7DQogICAgIH0NCiANCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KKyNpZiBQTEFURk9STShNQUMpDQog
ICAgIHNldFNoYXJlZEhUVFBDb29raWVTdG9yYWdlKHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2ll
U3RvcmFnZUlkZW50aWZpZXIpOw0KICNlbmRpZg0KIA0KQEAgLTE2Myw5ICsxNjMsNyBAQCB2b2lk
IFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByDQogICAgIE1ldGhvZCBtZXRob2RU
b1BhdGNoID0gY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2QoW05TQXBwbGljYXRpb24gY2xhc3NdLCBA
c2VsZWN0b3IoYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQpKTsNCiAgICAgbWV0aG9kX3Nl
dEltcGxlbWVudGF0aW9uKG1ldGhvZFRvUGF0Y2gsIChJTVApTlNBcHBsaWNhdGlvbkFjY2Vzc2li
aWxpdHlGb2N1c2VkVUlFbGVtZW50KTsNCiAjZW5kaWYNCi0jaWYgVEFSR0VUX09TX0lQSE9ORSB8
fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTEwMCkNCiAgICAgX0NGTmV0d29ya1NldEFUU0NvbnRleHQocGFyYW1ldGVycy5uZXR3b3JrQVRT
Q29udGV4dC5nZXQoKSk7DQotI2VuZGlmDQogDQogI2lmIFRBUkdFVF9PU19JUEhPTkUNCiAgICAg
Ly8gUHJpb3JpdHkgZGVjYXkgb24gaU9TIDkgaXMgaW1wYWN0aW5nIHBhZ2UgbG9hZCB0aW1lIHNv
IHdlIGZpeCB0aGUgcHJpb3JpdHkgb2YgdGhlIFdlYlByb2Nlc3MnIG1haW4gdGhyZWFkIChyZGFy
Oi8vcHJvYmxlbS8yMjAwMzExMikuDQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
MTkwNDgpDQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpDQpA
QCAtMSwzICsxLDI0IEBADQorMjAxNy0wNy0wMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUu
Y29tPg0KKw0KKyAgICAgICAgW21hY09TXSBSZW1vdmUgY29kZSBvbmx5IG5lZWRlZCB3aGVuIGJ1
aWxkaW5nIGZvciBPUyBYIFlvc2VtaXRlDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MDY3DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4NCisNCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoNCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnOg0KKyAgICAgICAg
KiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoNCisgICAgICAgICogQ29u
ZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZzoNCisgICAgICAgICogUGx1Z2lucy9XZWJCYXNl
UGx1Z2luUGFja2FnZS5tbToNCisgICAgICAgICgtW1dlYkJhc2VQbHVnaW5QYWNrYWdlIGdldFBs
dWdpbkluZm9Gcm9tUExpc3RzXSk6DQorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BvcHVwTWVu
dU1hYy5tbToNCisgICAgICAgIChQb3B1cE1lbnVNYWM6OnNob3cpOg0KKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06DQorICAgICAgICAoV2ViSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQ6OnN0YXJ0V2luZG93RHJhZyk6DQorICAgICAgICAoLVtXZWJJbnNwZWN0
b3JXaW5kb3dDb250cm9sbGVyIHdpbmRvd10pOg0KKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcu
bW06DQorICAgICAgICAoLVtXZWJWaWV3IF9hbmltYXRpb25Db250cm9sbGVyRm9yRGljdGlvbmFy
eUxvb2t1cFBvcHVwSW5mbzpdKToNCisNCiAyMDE3LTA2LTMwICBEYW5pZWwgQmF0ZXMgIDxkYWJh
dGVzQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIEFQSTo6RnJhbWVJbmZvIHNob3VsZCBrbm93IHRo
ZSB3ZWIgcGFnZSB0aGF0IGNvbnRhaW5zIHRoZSBmcmFtZTsgYWRkIEFQSSBwcm9wZXJ0eSB3ZWJW
aWV3IHRvIFdLRnJhbWVJbmZvDQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlv
bnMvQmFzZS54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NvbmZp
Z3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2Vi
S2l0L21hYy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAt
NzksNyArNzksNiBAQCBQUkVCSU5ESU5HID0gTk87DQogV0FSTklOR19DRkxBR1MgPSAtV2FsbCAt
V2V4dHJhIC1XY2hhci1zdWJzY3JpcHRzIC1XZXh0cmEtdG9rZW5zIC1XZm9ybWF0LXNlY3VyaXR5
IC1XaW5pdC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVy
biAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVdwYWNrZWQgLVdwb2ludGVyLWFyaXRoIC1XcmVkdW5k
YW50LWRlY2xzIC1XdW5kZWYgLVd3cml0ZS1zdHJpbmdzIC1XZXhpdC10aW1lLWRlc3RydWN0b3Jz
IC1XZ2xvYmFsLWNvbnN0cnVjdG9ycyAtV3RhdXRvbG9naWNhbC1jb21wYXJlIC1XaW1wbGljaXQt
ZmFsbHRocm91Z2g7DQogDQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdF
VF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4
OmlkZW50aWZpZXIpKTsNCi1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMCA9IDEwMTAw
MDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMSA9IDEwMTEwMDsNCiBUQVJHRVRf
TUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMiA9IDEwMTIwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVS
U0lPTl9NQUpPUl8xMyA9IDEwMTMwMDsNCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1
cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcNCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHJldmlzaW9uIDIx
OTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2Uu
eGNjb25maWcJKHdvcmtpbmcgY29weSkNCkBAIC0zMCw3ICszMCw2IEBAIE9OTFlfQUNUSVZFX0FS
Q0ggPSBZRVM7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKE1BQ19PU19YX1ZF
UlNJT05fTUFKT1IpOw0KIA0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9ICQoTUFDT1NYX0RF
UExPWU1FTlRfVEFSR0VUXyQoUExBVEZPUk1fTkFNRSlfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lP
Tl9NQUpPUikpOw0KLU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMDAwID0gMTAu
MTA7DQogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDExMDAgPSAxMC4xMTsNCiBN
QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTIwMCA9IDEwLjEyOw0KIE1BQ09TWF9E
RVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMzAwID0gMTAuMTM7DQpAQCAtNDIsNyArNDEsNiBA
QCBERUJVR19JTkZPUk1BVElPTl9GT1JNQVQgPSBkd2FyZjsNCiBXRUJLSVRfU1lTVEVNX0lOVEVS
RkFDRV9MSUJSQVJZW3Nkaz1pcGhvbmVvcypdID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNlSU9TRGV2
aWNlJChXS19UQVJHRVRfSU9TX1ZFUlNJT05fTUFKT1IpOw0KIFdFQktJVF9TWVNURU1fSU5URVJG
QUNFX0xJQlJBUllbc2RrPWlwaG9uZXNpbXVsYXRvcipdID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNl
SU9TU2ltdWxhdG9yJChXS19UQVJHRVRfSU9TX1ZFUlNJT05fTUFKT1IpOw0KIFdFQktJVF9TWVNU
RU1fSU5URVJGQUNFX0xJQlJBUllbc2RrPW1hY29zeCpdID0gJChXRUJLSVRfU1lTVEVNX0lOVEVS
RkFDRV9MSUJSQVJZX21hY29zeF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQot
V0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfMTAxMDAwID0gV2ViS2l0U3lz
dGVtSW50ZXJmYWNlWW9zZW1pdGU7DQogV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9t
YWNvc3hfMTAxMTAwID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNlRWxDYXBpdGFuOw0KIFdFQktJVF9T
WVNURU1fSU5URVJGQUNFX0xJQlJBUllfbWFjb3N4XzEwMTIwMCA9IFdlYktpdFN5c3RlbUludGVy
ZmFjZU9TWDEwLjEyOw0KIFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllfbWFjb3N4XzEw
MTMwMCA9ICQoV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfMTAxMjAwKTsN
CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dl
YktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcg
Y29weSkNCkBAIC0zMiwxMSArMzIsOSBAQA0KIC8vIFNldCBhbnkgRU5BQkxFX0ZFQVRVUkVfTkFN
RSBtYWNybyB0byBhbiBlbXB0eSBzdHJpbmcgdG8gZGlzYWJsZSB0aGF0IGZlYXR1cmUuDQogDQog
VEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDAgPSAkKFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEyMDAwXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05f
TUFKT1IpKTsNCi1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMjAwMF8xMDEw
MDAgPSBZRVM7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTIwMDBfMTAx
MTAwID0gWUVTOw0KIA0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAw
ID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAwMF8kKFRBUkdFVF9N
QUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19U
SEFOXzEwMTMwMDBfMTAxMDAwID0gWUVTOw0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1Nf
VEhBTl8xMDEzMDAwXzEwMTEwMCA9IFlFUzsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNT
X1RIQU5fMTAxMzAwMF8xMDEyMDAgPSBZRVM7DQogDQpJbmRleDogU291cmNlL1dlYktpdC9tYWMv
Q29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9X
ZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcJKHJldmlzaW9uIDIxOTA0
OCkNCisrKyBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmln
CSh3b3JraW5nIGNvcHkpDQpAQCAtMzUsNyArMzUsNiBAQCBTSE9SVF9WRVJTSU9OX1NUUklORyA9
ICQoU0hPUlRfVkVSU0lPTl9TDQogLy8gVGhlIHN5c3RlbSB2ZXJzaW9uIHByZWZpeCBpcyBiYXNl
ZCBvbiB0aGUgY3VycmVudCBzeXN0ZW0gdmVyc2lvbi4NCiBTWVNURU1fVkVSU0lPTl9QUkVGSVhb
c2RrPWlwaG9uZSpdID0gODsNCiBTWVNURU1fVkVSU0lPTl9QUkVGSVggPSAkKFNZU1RFTV9WRVJT
SU9OX1BSRUZJWF8kKFBMQVRGT1JNX05BTUUpXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFK
T1IpKTsNCi1TWVNURU1fVkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEwMTAwMCA9IDEwOw0KIFNZU1RF
TV9WRVJTSU9OX1BSRUZJWF9tYWNvc3hfMTAxMTAwID0gMTE7DQogU1lTVEVNX1ZFUlNJT05fUFJF
RklYX21hY29zeF8xMDEyMDAgPSAxMjsNCiBTWVNURU1fVkVSU0lPTl9QUkVGSVhfbWFjb3N4XzEw
MTMwMCA9IDEzOw0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZVBsdWdp
blBhY2thZ2UubW0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dl
YkJhc2VQbHVnaW5QYWNrYWdlLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbQkod29ya2luZyBjb3B5KQ0KQEAg
LTE0MiwzMiArMTQyLDkgQEAgLSAoQk9PTClnZXRQbHVnaW5JbmZvRnJvbVBMaXN0cw0KICAgICBp
ZiAoIWNmQnVuZGxlKQ0KICAgICAgICAgcmV0dXJuIE5POw0KICAgICANCi0gICAgTlNEaWN0aW9u
YXJ5ICpNSU1FVHlwZXMgPSBuaWw7DQotDQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDEwMDANCi0gICAgTlNTdHJpbmcgKnBMaXN0Rmls
ZW5hbWUgPSBbc2VsZiBfb2JqZWN0Rm9ySW5mb0RpY3Rpb25hcnlLZXk6V2ViUGx1Z2luTUlNRVR5
cGVzRmlsZW5hbWVLZXldOw0KLSAgICANCi0gICAgLy8gQ2hlY2sgaWYgdGhlIE1JTUUgdHlwZXMg
YXJlIGNsYWltZWQgaW4gYSBwbGlzdCBpbiB0aGUgdXNlcidzIHByZWZlcmVuY2VzIGRpcmVjdG9y
eS4NCi0gICAgaWYgKHBMaXN0RmlsZW5hbWUpIHsNCi0gICAgICAgIE5TU3RyaW5nICpwTGlzdFBh
dGggPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVAL0xpYnJhcnkvUHJlZmVyZW5jZXMv
JUAiLCBOU0hvbWVEaXJlY3RvcnkoKSwgcExpc3RGaWxlbmFtZV07DQotICAgICAgICBOU0RpY3Rp
b25hcnkgKnBMaXN0ID0gW3NlbGYgcExpc3RGb3JQYXRoOnBMaXN0UGF0aCBjcmVhdGVGaWxlOk5P
XTsNCi0gICAgICAgIGlmIChwTGlzdCkgew0KLSAgICAgICAgICAgIC8vIElmIHRoZSBwbGlzdCBp
c24ndCBsb2NhbGl6ZWQsIGhhdmUgdGhlIHBsdWctaW4gcmVjcmVhdGUgaXQgaW4gdGhlIHByZWZl
cnJlZCBsYW5ndWFnZS4NCi0gICAgICAgICAgICBOU1N0cmluZyAqbG9jYWxpemF0aW9uTmFtZSA9
IFtwTGlzdCBvYmplY3RGb3JLZXk6V2ViUGx1Z2luTG9jYWxpemF0aW9uTmFtZUtleV07DQotICAg
ICAgICAgICAgaWYgKCFbbG9jYWxpemF0aW9uTmFtZSBpc0VxdWFsVG9TdHJpbmc6cHJlZmVycmVk
QnVuZGxlTG9jYWxpemF0aW9uTmFtZSgpXSkNCi0gICAgICAgICAgICAgICAgcExpc3QgPSBbc2Vs
ZiBwTGlzdEZvclBhdGg6cExpc3RQYXRoIGNyZWF0ZUZpbGU6WUVTXTsNCi0gICAgICAgICAgICBN
SU1FVHlwZXMgPSBbcExpc3Qgb2JqZWN0Rm9yS2V5OldlYlBsdWdpbk1JTUVUeXBlc0tleV07DQot
ICAgICAgICB9IGVsc2UNCi0gICAgICAgICAgICAvLyBQbGlzdCBkb2Vzbid0IGV4aXN0LCBhc2sg
dGhlIHBsdWctaW4gdG8gY3JlYXRlIGl0Lg0KLSAgICAgICAgICAgIE1JTUVUeXBlcyA9IFtbc2Vs
ZiBwTGlzdEZvclBhdGg6cExpc3RQYXRoIGNyZWF0ZUZpbGU6WUVTXSBvYmplY3RGb3JLZXk6V2Vi
UGx1Z2luTUlNRVR5cGVzS2V5XTsNCi0gICAgfQ0KLSNlbmRpZg0KLQ0KLSAgICBpZiAoIU1JTUVU
eXBlcykgew0KLSAgICAgICAgTUlNRVR5cGVzID0gW3NlbGYgX29iamVjdEZvckluZm9EaWN0aW9u
YXJ5S2V5OldlYlBsdWdpbk1JTUVUeXBlc0tleV07DQotICAgICAgICBpZiAoIU1JTUVUeXBlcykN
Ci0gICAgICAgICAgICByZXR1cm4gTk87DQotICAgIH0NCisgICAgTlNEaWN0aW9uYXJ5ICpNSU1F
VHlwZXMgPSBbc2VsZiBfb2JqZWN0Rm9ySW5mb0RpY3Rpb25hcnlLZXk6V2ViUGx1Z2luTUlNRVR5
cGVzS2V5XTsNCisgICAgaWYgKCFNSU1FVHlwZXMpDQorICAgICAgICByZXR1cm4gTk87DQogDQog
ICAgIE5TRW51bWVyYXRvciAqa2V5RW51bWVyYXRvciA9IFtNSU1FVHlwZXMga2V5RW51bWVyYXRv
cl07DQogICAgIE5TRGljdGlvbmFyeSAqTUlNRURpY3Rpb25hcnk7DQpJbmRleDogU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tDQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCShyZXZpc2lv
biAyMTkwNDgpDQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51
TWFjLm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtMTQ5LDkgKzE0OSw3IEBAIHZvaWQgUG9wdXBNZW51
TWFjOjpzaG93KGNvbnN0IEludFJlY3QmIHINCiAgICAgW21fcG9wdXAgc2V0VXNlckludGVyZmFj
ZUxheW91dERpcmVjdGlvbjp0ZXh0RGlyZWN0aW9uID09IExUUiA/IE5TVXNlckludGVyZmFjZUxh
eW91dERpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9u
UmlnaHRUb0xlZnRdOw0KIA0KICAgICBOU01lbnUgKm1lbnUgPSBbbV9wb3B1cCBtZW51XTsNCi0j
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDANCiAgICAgW21lbnUg
c2V0VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbjp0ZXh0RGlyZWN0aW9uID09IExUUiA/IE5T
VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbkxlZnRUb1JpZ2h0IDogTlNVc2VySW50ZXJmYWNl
TGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnRdOw0KLSNlbmRpZg0KIA0KICAgICBOU1BvaW50IGxv
Y2F0aW9uOw0KICAgICBDVEZvbnRSZWYgZm9udCA9IG1fY2xpZW50LT5tZW51U3R5bGUoKS5mb250
KCkucHJpbWFyeUZvbnQoKS5nZXRDVEZvbnQoKTsNCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0NCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0JKHJldmlz
aW9uIDIxOTA0OCkNCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNw
ZWN0b3JDbGllbnQubW0JKHdvcmtpbmcgY29weSkNCkBAIC0yMTgsOSArMjE4LDcgQEAgdm9pZCBX
ZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZnJvbnRlbg0KIA0KIHZvaWQgV2ViSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQ6OnN0YXJ0V2luZG93RHJhZygpDQogew0KLSNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KICAgICBbW21fZnJvbnRlbmRXaW5kb3dDb250
cm9sbGVyIHdpbmRvd10gcGVyZm9ybVdpbmRvd0RyYWdXaXRoRXZlbnQ6W05TQXBwIGN1cnJlbnRF
dmVudF1dOw0KLSNlbmRpZg0KIH0NCiANCiBTdHJpbmcgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQ6OmxvY2FsaXplZFN0cmluZ3NVUkwoKQ0KQEAgLTQ3MywxMiArNDcxLDEwIEBAIC0gKE5TV2lu
ZG93ICopd2luZG93DQogICAgIFt3aW5kb3cgc2V0TWluU2l6ZTpOU01ha2VTaXplKG1pbmltdW1X
aW5kb3dXaWR0aCwgbWluaW11bVdpbmRvd0hlaWdodCldOw0KICAgICBbd2luZG93IHNldENvbGxl
Y3Rpb25CZWhhdmlvcjooW3dpbmRvdyBjb2xsZWN0aW9uQmVoYXZpb3JdIHwgTlNXaW5kb3dDb2xs
ZWN0aW9uQmVoYXZpb3JGdWxsU2NyZWVuUHJpbWFyeSldOw0KIA0KLSNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMA0KICAgICBDR0Zsb2F0IGFwcHJveGltYXRlbHlI
YWxmU2NyZWVuU2l6ZSA9ICh3aW5kb3cuc2NyZWVuLmZyYW1lLnNpemUud2lkdGggLyAyKSAtIDQ7
DQogICAgIENHRmxvYXQgbWluaW11bUZ1bGxTY3JlZW5XaWR0aCA9IHN0ZDo6bWF4PENHRmxvYXQ+
KDYzNiwgYXBwcm94aW1hdGVseUhhbGZTY3JlZW5TaXplKTsNCiAgICAgW3dpbmRvdyBzZXRNaW5G
dWxsU2NyZWVuQ29udGVudFNpemU6TlNNYWtlU2l6ZShtaW5pbXVtRnVsbFNjcmVlbldpZHRoLCBt
aW5pbXVtV2luZG93SGVpZ2h0KV07DQogICAgIFt3aW5kb3cgc2V0Q29sbGVjdGlvbkJlaGF2aW9y
Oihbd2luZG93IGNvbGxlY3Rpb25CZWhhdmlvcl0gfCBOU1dpbmRvd0NvbGxlY3Rpb25CZWhhdmlv
ckZ1bGxTY3JlZW5BbGxvd3NUaWxpbmcpXTsNCi0jZW5kaWYNCiANCiAgICAgd2luZG93LnRpdGxl
YmFyQXBwZWFyc1RyYW5zcGFyZW50ID0gWUVTOw0KIA0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTkzODIsNyArOTM4Miw2IEBA
IC0gKE5TUmVjdClfY29udmVydFJlY3RGcm9tUm9vdFZpZXc6KE5TUmUNCiB9DQogDQogI2lmIFBM
QVRGT1JNKE1BQykNCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEw
MDANCiAtIChXZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyICopX2ltbWVkaWF0ZUFjdGlvbkNv
bnRyb2xsZXINCiB7DQogICAgIHJldHVybiBfcHJpdmF0ZS0+aW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlcjsNCkBAIC05NDAxLDcgKzk0MDAsNiBAQCAtIChpZClfYW5pbWF0aW9uQ29udHJvbGxlckZv
ckRpY3Rpb25hcnlMDQogICAgICAgICByZXR1cm4gW3NlbGYgX2NvbnZlcnRSZWN0RnJvbVJvb3RW
aWV3OnJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXNdOw0KICAgICB9KTsNCiB9DQotI2VuZGlmIC8v
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwDQogDQogLSAoTlNFdmVu
dCAqKV9wcmVzc3VyZUV2ZW50DQogew0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZw0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwkocmV2aXNpb24gMjE5MDQ4
KQ0KKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEsMyAr
MSwxMyBAQA0KKzIwMTctMDctMDEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4NCisN
CisgICAgICAgIFttYWNPU10gUmVtb3ZlIGNvZGUgb25seSBuZWVkZWQgd2hlbiBidWlsZGluZyBm
b3IgT1MgWCBZb3NlbWl0ZQ0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NDA2Nw0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
DQorDQorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWc6DQorICAgICAgICAq
IENvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZzoNCisNCiAyMDE3LTA2LTMwICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPg0KIA0KICAgICAgICAgUmFuIHNvcnQtWGNv
ZGUtcHJvamVjdC1maWxlLg0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NvbmZpZ3VyYXRpb25zL0Jh
c2UueGNjb25maWcNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBTb3VyY2UvYm1hbGxvYy9Db25maWd1cmF0aW9u
cy9CYXNlLnhjY29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgU291cmNlL2JtYWxsb2MvQ29u
ZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwkod29ya2luZyBjb3B5KQ0KQEAgLTg2LDcgKzg2LDYg
QEAgUFJFQklORElORyA9IE5POw0KIFdBUk5JTkdfQ0ZMQUdTID0gLVdhbGwgLVdleHRyYSAtV2Nh
c3QtcXVhbCAtV2NoYXItc3Vic2NyaXB0cyAtV2V4dHJhLXRva2VucyAtV2Zvcm1hdD0yIC1XaW5p
dC1zZWxmIC1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIC1XbWlzc2luZy1ub3JldHVybiAtV3Bh
Y2tlZCAtV3BvaW50ZXItYXJpdGggLVdyZWR1bmRhbnQtZGVjbHMgLVd1bmRlZiAtV3dyaXRlLXN0
cmluZ3MgLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMgLVdnbG9iYWwtY29uc3RydWN0b3JzIC1XdGF1
dG9sb2dpY2FsLWNvbXBhcmUgLVdpbXBsaWNpdC1mYWxsdGhyb3VnaDsNCiANCiBUQVJHRVRfTUFD
X09TX1hfVkVSU0lPTl9NQUpPUiA9ICQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IkKE1B
Q09TWF9ERVBMT1lNRU5UX1RBUkdFVDpzdWZmaXg6aWRlbnRpZmllcikpOw0KLVRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SXzEwID0gMTAxMDAwOw0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9O
X01BSk9SXzExID0gMTAxMTAwOw0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzEyID0g
MTAxMjAwOw0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SXzEzID0gMTAxMzAwOw0KSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZw0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIFNvdXJjZS9ibWFsbG9jL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFz
ZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFNvdXJjZS9ibWFsbG9jL0NvbmZpZ3Vy
YXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwkod29ya2luZyBjb3B5KQ0KQEAgLTI5LDcgKzI5
LDYgQEAgT05MWV9BQ1RJVkVfQVJDSCA9IFlFUzsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9N
QUpPUiA9ICQoTUFDX09TX1hfVkVSU0lPTl9NQUpPUik7DQogDQogTUFDT1NYX0RFUExPWU1FTlRf
VEFSR0VUID0gJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfJChQTEFURk9STV9OQU1FKV8kKFRB
UkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQotTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VU
X21hY29zeF8xMDEwMDAgPSAxMC4xMDsNCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4
XzEwMTEwMCA9IDEwLjExOw0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMjAw
ID0gMTAuMTI7DQogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDEzMDAgPSAxMC4x
MzsNCkluZGV4OiBUb29scy9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBUb29scy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDIxOTA0OSkNCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkN
CkBAIC0xLDMgKzEsMzYgQEANCisyMDE3LTA3LTAxICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+DQorDQorICAgICAgICBbbWFjT1NdIFJlbW92ZSBjb2RlIG9ubHkgbmVlZGVkIHdoZW4g
YnVpbGRpbmcgZm9yIE9TIFggWW9zZW1pdGUNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQwNjcNCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLg0KKw0KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvQ29uZmlndXJhdGlv
bnMvQmFzZS54Y2NvbmZpZzoNCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0NvbmZpZ3Vy
YXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZzoNCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tOg0KKyAgICAgICAgKHNldERlZmF1bHRzVG9Db25zaXN0ZW50
VmFsdWVzRm9yVGVzdGluZyk6DQorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZURyYWdnaW5nSW5mby5tbToNCisgICAgICAgICgtW0R1bXBSZW5kZXJUcmVlRHJhZ2dp
bmdJbmZvIHJlc2V0U3ByaW5nTG9hZGluZ10pOg0KKyAgICAgICAgKiBNaW5pQnJvd3Nlci9Db25m
aWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnOg0KKyAgICAgICAgKiBNaW5pQnJvd3Nlci9Db25maWd1
cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWc6DQorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
Q29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoNCisgICAgICAgICogVGVzdFdlYktpdEFQSS9D
b25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWc6DQorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6DQorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwOg0K
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6DQorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tOg0KKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9EcmFnQW5kRHJvcFBhc3RlYm9hcmRUZXN0cy5tbToN
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVsbHNjcmVlblpvb21Jbml0aWFs
RnJhbWUubW06DQorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToNCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU3RyaW5nVHJ1bmNhdG9yLm1tOg0KKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOg0KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3Vy
YXRpb25zL0Jhc2UueGNjb25maWc6DQorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvQ29uZmln
dXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmlnOg0KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbToNCisgICAgICAgIChX
VFI6OkluamVjdGVkQnVuZGxlOjpwbGF0Zm9ybUluaXRpYWxpemUpOg0KKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLm1tOg0KKyAgICAg
ICAgKC1bV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mbyByZXNldFNwcmluZ0xvYWRpbmddKToN
CisNCiAyMDE3LTA3LTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+DQogDQogICAg
ICAgICBSZXBsYWNlIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSBDIEFQSSB3aXRoIENvY29h
IFNQSQ0KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQ0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bQkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbQkod29ya2luZyBjb3B5KQ0KQEAgLTEwMjMsNyArMTAyMyw3IEBAIHN0YXRpYyB2
b2lkIHNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWUNCiAgICAgICAgIEAiTlNPdmVybGF5U2Ny
b2xsZXJzRW5hYmxlZCI6IEBOTywNCiAgICAgICAgIEAiQXBwbGVTaG93U2Nyb2xsQmFycyI6IEAi
QWx3YXlzIiwNCiAgICAgICAgIEAiTlNCdXR0b25BbmltYXRpb25zRW5hYmxlZCI6IEBOTywgLy8g
SWRlYWxseSwgd2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8gdGVzdCBhbmltYXRpb25zLCBidXQgZm9y
IG5vdywgbWFrZSBzdXJlIHRoYXQgdGhlIGR1bXBlZCBzbmFwc2hvdCBtYXRjaGVzIGFjdHVhbCBz
dGF0ZS4NCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTEwMCAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMjAw
DQorI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8
IDEwMTIwMA0KICAgICAgICAgQCJBcHBsZVN5c3RlbUZvbnRPU1N1YnZlcnNpb24iOiBAKDEwKSwN
CiAjZW5kaWYNCiAgICAgICAgIEAiTlNXaW5kb3dEaXNwbGF5V2l0aFJ1bkxvb3BPYnNlcnZlciI6
IEBZRVMsIC8vIFRlbXBvcmFyeSB3b3JrYXJvdW5kLCBzZWUgPHJkYXI6Ly9wcm9ibGVtLzIwMzUx
Mjk3Pi4NCkBAIC0xMDQzLDcgKzEwNDMsNyBAQCBzdGF0aWMgdm9pZCBzZXREZWZhdWx0c1RvQ29u
c2lzdGVudFZhbHVlDQogICAgICAgICBXZWJTdG9yYWdlRGlyZWN0b3J5RGVmYXVsdHNLZXk6IFts
aWJyYXJ5UGF0aCBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJMb2NhbFN0b3JhZ2Ui
XSwNCiAgICAgICAgIFdlYktpdExvY2FsQ2FjaGVEZWZhdWx0c0tleTogW2xpYnJhcnlQYXRoIHN0
cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIkxvY2FsQ2FjaGUiXSwNCiAgICAgICAgIFdl
YktpdFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlEZWZhdWx0c0tleTogW2xpYnJhcnlQ
YXRoIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIkxvY2FsU3RvcmFnZSJdLA0KLSNp
ZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MTAwICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDEyMDANCisjaWYgUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMjAwDQog
ICAgICAgICAvLyBUaGlzIG5lZWRzIHRvIGFsc28gYmUgYWRkZWQgdG8gYXJndW1lbnQgZG9tYWlu
IGJlY2F1c2Ugb2YgPHJkYXI6Ly9wcm9ibGVtLzIwMjEwMDAyPi4NCiAgICAgICAgIEAiQXBwbGVT
eXN0ZW1Gb250T1NTdWJ2ZXJzaW9uIjogQCgxMCksDQogI2VuZGlmDQpJbmRleDogVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1tDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZv
Lm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtMTQyLDcgKzE0Miw2
IEBAIC0gKHZvaWQpZW51bWVyYXRlRHJhZ2dpbmdJdGVtc1dpdGhPcHRpb24NCiAgICAgLy8gSWdu
b3JlZC4NCiB9DQogDQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDEx
MDANCiAtKE5TU3ByaW5nTG9hZGluZ0hpZ2hsaWdodClzcHJpbmdMb2FkaW5nSGlnaGxpZ2h0DQog
ew0KICAgICByZXR1cm4gTlNTcHJpbmdMb2FkaW5nSGlnaGxpZ2h0Tm9uZTsNCkBAIC0xNTEsNyAr
MTUwLDYgQEAgLShOU1NwcmluZ0xvYWRpbmdIaWdobGlnaHQpc3ByaW5nTG9hZGluZw0KIC0gKHZv
aWQpcmVzZXRTcHJpbmdMb2FkaW5nDQogew0KIH0NCi0jZW5kaWYNCiANCiBAZW5kDQogDQpJbmRl
eDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQ29uZmlndXJhdGlvbnMv
QmFzZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtODIs
NyArODIsNiBAQCBERUJVR19ERUZJTkVTX25vcm1hbCA9IE5ERUJVRzsNCiBERUJVR19ERUZJTkVT
ID0gJChERUJVR19ERUZJTkVTXyQoQ1VSUkVOVF9WQVJJQU5UKSk7DQogDQogVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChNQUNP
U1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50aWZpZXIpKTsNCi1UQVJHRVRfTUFDX09T
X1hfVkVSU0lPTl9NQUpPUl8xMCA9IDEwMTAwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9N
QUpPUl8xMSA9IDEwMTEwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMiA9IDEw
MTIwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMyA9IDEwMTMwMDsNCkluZGV4
OiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhj
Y29uZmlnDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0NvbmZpZ3Vy
YXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJ
KHdvcmtpbmcgY29weSkNCkBAIC0zMCw3ICszMCw2IEBAIE9OTFlfQUNUSVZFX0FSQ0ggPSBZRVM7
DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKE1BQ19PU19YX1ZFUlNJT05fTUFK
T1IpOw0KIA0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFtzZGs9bWFjb3N4Kl0gPSAkKE1BQ09T
WF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpP
UikpOw0KLU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF9tYWNvc3hfMTAxMDAwID0gMTAuMTA7DQog
TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUX21hY29zeF8xMDExMDAgPSAxMC4xMTsNCiBNQUNPU1hf
REVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTIwMCA9IDEwLjEyOw0KIE1BQ09TWF9ERVBMT1lN
RU5UX1RBUkdFVF9tYWNvc3hfMTAxMzAwID0gMTAuMTM7DQpAQCAtMzksNyArMzgsNiBAQCBNQUNP
U1hfREVQTE9ZTUVOVF9UQVJHRVRfbWFjb3N4XzEwMTQwMCA9DQogV0VCS0lUX1NZU1RFTV9JTlRF
UkZBQ0VfTElCUkFSWVtzZGs9aXBob25lb3MqXSA9IFdlYktpdFN5c3RlbUludGVyZmFjZUlPU0Rl
dmljZSQoV0tfVEFSR0VUX0lPU19WRVJTSU9OX01BSk9SKTsNCiBXRUJLSVRfU1lTVEVNX0lOVEVS
RkFDRV9MSUJSQVJZW3Nkaz1pcGhvbmVzaW11bGF0b3IqXSA9IFdlYktpdFN5c3RlbUludGVyZmFj
ZUlPU1NpbXVsYXRvciQoV0tfVEFSR0VUX0lPU19WRVJTSU9OX01BSk9SKTsNCiBXRUJLSVRfU1lT
VEVNX0lOVEVSRkFDRV9MSUJSQVJZW3Nkaz1tYWNvc3gqXSA9ICQoV0VCS0lUX1NZU1RFTV9JTlRF
UkZBQ0VfTElCUkFSWV9tYWNvc3hfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOw0K
LVdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllfbWFjb3N4XzEwMTAwMCA9IFdlYktpdFN5
c3RlbUludGVyZmFjZVlvc2VtaXRlOw0KIFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllf
bWFjb3N4XzEwMTEwMCA9IFdlYktpdFN5c3RlbUludGVyZmFjZUVsQ2FwaXRhbjsNCiBXRUJLSVRf
U1lTVEVNX0lOVEVSRkFDRV9MSUJSQVJZX21hY29zeF8xMDEyMDAgPSBXZWJLaXRTeXN0ZW1JbnRl
cmZhY2VPU1gxMC4xMjsNCiBXRUJLSVRfU1lTVEVNX0lOVEVSRkFDRV9MSUJSQVJZX21hY29zeF8x
MDEzMDAgPSAkKFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllfbWFjb3N4XzEwMTIwMCk7
DQpJbmRleDogVG9vbHMvTWluaUJyb3dzZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZw0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIFRvb2xzL01pbmlCcm93c2VyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNj
b25maWcJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBUb29scy9NaW5pQnJvd3Nlci9Db25maWd1cmF0
aW9ucy9CYXNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtNjAsNyArNjAsNiBAQCBHQ0Nf
Tk9fQ09NTU9OX0JMT0NLUyA9IFlFUzsNCiBTVVBQT1JURURfUExBVEZPUk1TID0gaXBob25lb3Mg
aXBob25lc2ltdWxhdG9yIG1hY29zeCB0dm9zIHR2c2ltdWxhdG9yIHdhdGNob3Mgd2F0Y2hzaW11
bGF0b3I7DQogDQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKFRBUkdFVF9NQUNf
T1NfWF9WRVJTSU9OX01BSk9SJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ6c3VmZml4OmlkZW50
aWZpZXIpKTsNCi1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMCA9IDEwMTAwMDsNCiBU
QVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMSA9IDEwMTEwMDsNCiBUQVJHRVRfTUFDX09T
X1hfVkVSU0lPTl9NQUpPUl8xMiA9IDEwMTIwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9N
QUpPUl8xMyA9IDEwMTMwMDsNCkluZGV4OiBUb29scy9NaW5pQnJvd3Nlci9Db25maWd1cmF0aW9u
cy9EZWJ1Z1JlbGVhc2UueGNjb25maWcNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBUb29scy9NaW5pQnJvd3Nl
ci9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkN
CisrKyBUb29scy9NaW5pQnJvd3Nlci9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25m
aWcJKHdvcmtpbmcgY29weSkNCkBAIC0zMCw3ICszMCw2IEBAIE9OTFlfQUNUSVZFX0FSQ0ggPSBZ
RVM7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IgPSAkKE1BQ19PU19YX1ZFUlNJT05f
TUFKT1IpOw0KIA0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9ICQoTUFDT1NYX0RFUExPWU1F
TlRfVEFSR0VUXyQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1IpKQ0KLU1BQ09TWF9ERVBM
T1lNRU5UX1RBUkdFVF8xMDEwMDAgPSAxMC4xMDsNCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRf
MTAxMTAwID0gMTAuMTE7DQogTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXzEwMTIwMCA9IDEwLjEy
Ow0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8xMDEzMDAgPSAxMC4xMzsNCkluZGV4OiBUb29s
cy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHJl
dmlzaW9uIDIxOTA0OCkNCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0Jh
c2UueGNjb25maWcJKHdvcmtpbmcgY29weSkNCkBAIC03Myw3ICs3Myw2IEBAIERFQlVHX0RFRklO
RVMgPSAkKERFQlVHX0RFRklORVNfJChDVVJSRU4NCiBTVVBQT1JURURfUExBVEZPUk1TID0gaXBo
b25lb3MgaXBob25lc2ltdWxhdG9yIG1hY29zeCBhcHBsZXR2b3MgYXBwbGV0dnNpbXVsYXRvciB3
YXRjaG9zIHdhdGNoc2ltdWxhdG9yOw0KIA0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9S
ID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUiQoTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUOnN1ZmZpeDppZGVudGlmaWVyKSk7DQotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1Jf
MTAgPSAxMDEwMDA7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTEgPSAxMDExMDA7
DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1JfMTIgPSAxMDEyMDA7DQogVEFSR0VUX01B
Q19PU19YX1ZFUlNJT05fTUFKT1JfMTMgPSAxMDEzMDA7DQpJbmRleDogVG9vbHMvVGVzdFdlYktp
dEFQSS9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcNCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZp
ZwkocmV2aXNpb24gMjE5MDQ4KQ0KKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlv
bnMvRGVidWdSZWxlYXNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtMzAsNyArMzAsNiBA
QCBPTkxZX0FDVElWRV9BUkNIID0gWUVTOw0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9S
ID0gJChNQUNfT1NfWF9WRVJTSU9OX01BSk9SKTsNCiANCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJH
RVQgPSAkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9O
X01BSk9SKSkNCi1NQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfMTAxMDAwID0gMTAuMTA7DQogTUFD
T1NYX0RFUExPWU1FTlRfVEFSR0VUXzEwMTEwMCA9IDEwLjExOw0KIE1BQ09TWF9ERVBMT1lNRU5U
X1RBUkdFVF8xMDEyMDAgPSAxMC4xMjsNCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfMTAxMzAw
ID0gMTAuMTM7DQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDIxOTA0OCkN
CisrKyBUb29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtMzIsMTEgKzMyLDkgQEANCiAvLyBTZXQgYW55IEVO
QUJMRV9GRUFUVVJFX05BTUUgbWFjcm8gdG8gYW4gZW1wdHkgc3RyaW5nIHRvIGRpc2FibGUgdGhh
dCBmZWF0dXJlLg0KIA0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEyMDAw
ID0gJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMjAwMF8kKFRBUkdFVF9N
QUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQotVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19U
SEFOXzEwMTIwMDBfMTAxMDAwID0gWUVTOw0KIFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX0xFU1Nf
VEhBTl8xMDEyMDAwXzEwMTEwMCA9IFlFUzsNCiANCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9M
RVNTX1RIQU5fMTAxMzAwMCA9ICQoVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTEVTU19USEFOXzEw
MTMwMDBfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOw0KLVRBUkdFVF9NQUNfT1Nf
WF9WRVJTSU9OX0xFU1NfVEhBTl8xMDEzMDAwXzEwMTAwMCA9IFlFUzsNCiBUQVJHRVRfTUFDX09T
X1hfVkVSU0lPTl9MRVNTX1RIQU5fMTAxMzAwMF8xMDExMDAgPSBZRVM7DQogVEFSR0VUX01BQ19P
U19YX1ZFUlNJT05fTEVTU19USEFOXzEwMTMwMDBfMTAxMjAwID0gWUVTOw0KIA0KSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3Bw
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbXBs
ZXhUZXh0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDIxOTA0OCkNCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAkod29ya2luZyBj
b3B5KQ0KQEAgLTUzLDEzICs1Myw4IEBAIFRFU1RfRihDb21wbGV4VGV4dENvbnRyb2xsZXJUZXN0
LCBJbml0aWENCiAgICAgZm9udC51cGRhdGUoKTsNCiAgICAgYXV0byBzcGFjZVdpZHRoID0gZm9u
dC5wcmltYXJ5Rm9udCgpLnNwYWNlV2lkdGgoKTsNCiANCi0jaWYgVVNFX0xBWU9VVF9TUEVDSUZJ
Q19BRFZBTkNFUw0KICAgICBWZWN0b3I8RmxvYXRTaXplPiBhZHZhbmNlcyA9IHsgRmxvYXRTaXpl
KCksIEZsb2F0U2l6ZSgyMS42NDA2MjUsIDAuMCksIEZsb2F0U2l6ZSg0Mi4zMDQ2ODc1LCAwLjAp
LCBGbG9hdFNpemUoNTUuODk4NDM3NSwgMC4wKSwgRmxvYXRTaXplKDIyLjM0Mzc1LCAwLjApIH07
DQogICAgIFZlY3RvcjxGbG9hdFBvaW50PiBvcmlnaW5zID0geyBGbG9hdFBvaW50KC0xNS4xNTYy
NSwgMTguMDQ2ODc1KSwgRmxvYXRQb2ludCgpLCBGbG9hdFBvaW50KCksIEZsb2F0UG9pbnQoKSwg
RmxvYXRQb2ludCgpIH07DQotI2Vsc2UNCi0gICAgVmVjdG9yPEZsb2F0U2l6ZT4gYWR2YW5jZXMg
PSB7IEZsb2F0U2l6ZSgxNS4xNTYyNSwgLTE4LjA0Njg3NSksIEZsb2F0U2l6ZSgyMS42NDA2MjUs
IDAuMCksIEZsb2F0U2l6ZSg0Mi4zMDQ2ODc1LCAwLjApLCBGbG9hdFNpemUoNTUuODk4NDM3NSwg
MC4wKSwgRmxvYXRTaXplKDIyLjM0Mzc1LCAwLjApIH07DQotICAgIFZlY3RvcjxGbG9hdFBvaW50
PiBvcmlnaW5zID0geyB9Ow0KLSNlbmRpZg0KIA0KICAgICBGbG9hdFNpemUgaW5pdGlhbEFkdmFu
Y2UgPSBGbG9hdFNpemUoLTE1LjE1NjI1LCAxOC4wNDY4NzUpOw0KIA0KQEAgLTEwNCwxMyArOTks
OCBAQCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVyVGVzdCwgSW5pdGlhDQogICAgIEZvbnRD
YXNjYWRlIGZvbnQoZGVzY3JpcHRpb24pOw0KICAgICBmb250LnVwZGF0ZSgpOw0KIA0KLSNpZiBV
U0VfTEFZT1VUX1NQRUNJRklDX0FEVkFOQ0VTDQogICAgIFZlY3RvcjxGbG9hdFNpemU+IGFkdmFu
Y2VzID0geyBGbG9hdFNpemUoKSwgRmxvYXRTaXplKDIxLjY0MDYyNSwgMC4wKSwgRmxvYXRTaXpl
KDQyLjMwNDY4NzUsIDAuMCksIEZsb2F0U2l6ZSg1NS44OTg0Mzc1LCAwLjApLCBGbG9hdFNpemUo
MjIuMzQzNzUsIDAuMCkgfTsNCiAgICAgVmVjdG9yPEZsb2F0UG9pbnQ+IG9yaWdpbnMgPSB7IEZs
b2F0UG9pbnQoLTE1LjE1NjI1LCAxOC4wNDY4NzUpLCBGbG9hdFBvaW50KCksIEZsb2F0UG9pbnQo
KSwgRmxvYXRQb2ludCgpLCBGbG9hdFBvaW50KCkgfTsNCi0jZWxzZQ0KLSAgICBWZWN0b3I8Rmxv
YXRTaXplPiBhZHZhbmNlcyA9IHsgRmxvYXRTaXplKDE1LjE1NjI1LCAtMTguMDQ2ODc1KSwgRmxv
YXRTaXplKDIxLjY0MDYyNSwgMC4wKSwgRmxvYXRTaXplKDQyLjMwNDY4NzUsIDAuMCksIEZsb2F0
U2l6ZSg1NS44OTg0Mzc1LCAwLjApLCBGbG9hdFNpemUoMjIuMzQzNzUsIDAuMCkgfTsNCi0gICAg
VmVjdG9yPEZsb2F0UG9pbnQ+IG9yaWdpbnMgPSB7IH07DQotI2VuZGlmDQogDQogICAgIEZsb2F0
U2l6ZSBpbml0aWFsQWR2YW5jZSA9IEZsb2F0U2l6ZSgtMTUuMTU2MjUsIDE4LjA0Njg3NSk7DQog
DQpAQCAtMTU0LDEzICsxNDQsOCBAQCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVyVGVzdCwg
SW5pdGlhDQogICAgIGZvbnQudXBkYXRlKCk7DQogICAgIGF1dG8gc3BhY2VXaWR0aCA9IGZvbnQu
cHJpbWFyeUZvbnQoKS5zcGFjZVdpZHRoKCk7DQogDQotI2lmIFVTRV9MQVlPVVRfU1BFQ0lGSUNf
QURWQU5DRVMNCiAgICAgVmVjdG9yPEZsb2F0U2l6ZT4gYWR2YW5jZXMgPSB7IEZsb2F0U2l6ZSg3
Ni4zNDc2NTYsIDAuMDAwMDAwKSwgRmxvYXRTaXplKDAuMDAwMDAwLCAwLjAwMDAwMCkgfTsNCiAg
ICAgVmVjdG9yPEZsb2F0UG9pbnQ+IG9yaWdpbnMgPSB7IEZsb2F0UG9pbnQoKSwgRmxvYXRQb2lu
dCgtMjMuMjgxMjUwLCAtOC4zOTg0MzgpIH07DQotI2Vsc2UNCi0gICAgVmVjdG9yPEZsb2F0U2l6
ZT4gYWR2YW5jZXMgPSB7IEZsb2F0U2l6ZSg1My4wNjY0MDYsIC04LjM5ODQzOCksIEZsb2F0U2l6
ZSgyMy4yODEyNTAsIDguMzk4NDM4KSB9Ow0KLSAgICBWZWN0b3I8RmxvYXRQb2ludD4gb3JpZ2lu
cyA9IHsgfTsNCi0jZW5kaWYNCiANCiAgICAgRmxvYXRTaXplIGluaXRpYWxBZHZhbmNlID0gRmxv
YXRTaXplKDI4LjE0NDUzMSwgMCk7DQogDQpAQCAtMjAxLDEzICsxODYsOCBAQCBURVNUX0YoQ29t
cGxleFRleHRDb250cm9sbGVyVGVzdCwgSW5pdGlhDQogICAgIEZvbnRDYXNjYWRlIGZvbnQoZGVz
Y3JpcHRpb24pOw0KICAgICBmb250LnVwZGF0ZSgpOw0KIA0KLSNpZiBVU0VfTEFZT1VUX1NQRUNJ
RklDX0FEVkFOQ0VTDQogICAgIFZlY3RvcjxGbG9hdFNpemU+IGFkdmFuY2VzID0geyBGbG9hdFNp
emUoNzYuMzQ3NjU2LCAwLjAwMDAwMCksIEZsb2F0U2l6ZSgwLjAwMDAwMCwgMC4wMDAwMDApIH07
DQogICAgIFZlY3RvcjxGbG9hdFBvaW50PiBvcmlnaW5zID0geyBGbG9hdFBvaW50KCksIEZsb2F0
UG9pbnQoLTIzLjI4MTI1MCwgLTguMzk4NDM4KSB9Ow0KLSNlbHNlDQotICAgIFZlY3RvcjxGbG9h
dFNpemU+IGFkdmFuY2VzID0geyBGbG9hdFNpemUoNTMuMDY2NDA2LCAtOC4zOTg0MzgpLCBGbG9h
dFNpemUoMjMuMjgxMjUwLCA4LjM5ODQzOCkgfTsNCi0gICAgVmVjdG9yPEZsb2F0UG9pbnQ+IG9y
aWdpbnMgPSB7IH07DQotI2VuZGlmDQogDQogICAgIEZsb2F0U2l6ZSBpbml0aWFsQWR2YW5jZSA9
IEZsb2F0U2l6ZSgyOC4xNDQ1MzEsIDApOw0KIA0KQEAgLTM2NCwxMSArMzQ0LDcgQEAgVEVTVF9G
KENvbXBsZXhUZXh0Q29udHJvbGxlclRlc3QsIFRvdGFsVw0KICAgICBmb250LnVwZGF0ZSgpOw0K
IA0KICAgICBWZWN0b3I8RmxvYXRTaXplPiBhZHZhbmNlcyA9IHsgRmxvYXRTaXplKDEsIDApLCBG
bG9hdFNpemUoMiwgMCksIEZsb2F0U2l6ZSg0LCAwKSwgRmxvYXRTaXplKDgsIDApLCBGbG9hdFNp
emUoMTYsIDApIH07DQotI2lmIFVTRV9MQVlPVVRfU1BFQ0lGSUNfQURWQU5DRVMNCiAgICAgVmVj
dG9yPEZsb2F0UG9pbnQ+IG9yaWdpbnMgPSB7IEZsb2F0UG9pbnQoKSwgRmxvYXRQb2ludCgpLCBG
bG9hdFBvaW50KCksIEZsb2F0UG9pbnQoKSwgRmxvYXRQb2ludCgpIH07DQotI2Vsc2UNCi0gICAg
VmVjdG9yPEZsb2F0UG9pbnQ+IG9yaWdpbnMgPSB7IH07DQotI2VuZGlmDQogDQogICAgIEZsb2F0
U2l6ZSBpbml0aWFsQWR2YW5jZSA9IEZsb2F0U2l6ZSgpOw0KIA0KSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1dlYkNv
cmVOU1VSTFNlc3Npb24ubW0JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQkod29ya2luZyBj
b3B5KQ0KQEAgLTI1LDcgKzI1LDcgQEANCiANCiAjaW1wb3J0ICJjb25maWcuaCINCiANCi0jaWYg
IVBMQVRGT1JNKElPUykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEx
MDANCisjaWYgIVBMQVRGT1JNKElPUykNCiANCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5o
Ig0KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4NCkluZGV4
OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9EcmFnQW5kRHJvcFBhc3RlYm9hcmRUZXN0
cy5tbQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0RyYWdB
bmREcm9wUGFzdGVib2FyZFRlc3RzLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvRHJhZ0FuZERyb3BQYXN0ZWJvYXJkVGVzdHMubW0JKHdvcmtp
bmcgY29weSkNCkBAIC0xODksOCArMTg5LDYgQEAgLSAodm9pZCllbnVtZXJhdGVEcmFnZ2luZ0l0
ZW1zV2l0aE9wdGlvbg0KIHsNCiB9DQogDQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxM
T1dFRCA+PSAxMDExMDANCi0NCiAtIChOU1NwcmluZ0xvYWRpbmdIaWdobGlnaHQpc3ByaW5nTG9h
ZGluZ0hpZ2hsaWdodA0KIHsNCiAgICAgcmV0dXJuIE5TU3ByaW5nTG9hZGluZ0hpZ2hsaWdodE5v
bmU7DQpAQCAtMjAwLDggKzE5OCw2IEBAIC0gKHZvaWQpcmVzZXRTcHJpbmdMb2FkaW5nDQogew0K
IH0NCiANCi0jZW5kaWYNCi0NCiBAZW5kDQogDQogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgew0K
SW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5ab29tSW5pdGlh
bEZyYW1lLm1tDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
RnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZS5tbQko
d29ya2luZyBjb3B5KQ0KQEAgLTE4OSwxMiArMTg5LDggQEAgVEVTVF9GKEZ1bGxzY3JlZW5ab29t
SW5pdGlhbEZyYW1lLCBXZWJLaQ0KICAgICBydW5XZWJLaXQxVGVzdCgpOw0KIH0NCiANCi0jaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+IDEwMTAwMA0KIC8vIEZJWE1FOjxyZGFy
Oi8vcHJvYmxlbS8yMDUwNDQwMz4NCiBURVNUX0YoRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUs
IERJU0FCTEVEX1dlYktpdDIpDQotI2Vsc2UNCi1URVNUX0YoRnVsbHNjcmVlblpvb21Jbml0aWFs
RnJhbWUsIFdlYktpdDIpDQotI2VuZGlmDQogew0KICAgICBydW5XZWJLaXQyVGVzdCgpOw0KIH0N
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TdHJpbmdUcnVuY2F0b3IubW0N
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TdHJpbmdUcnVu
Y2F0b3IubW0JKHJldmlzaW9uIDIxOTA0OCkNCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9TdHJpbmdUcnVuY2F0b3IubW0JKHdvcmtpbmcgY29weSkNCkBAIC0zNSwxMSArMzUsNyBA
QCBURVNUKFdlYktpdDEsIFN0cmluZ1RydW5jYXRvcikNCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7
DQogICAgICAgICBFWFBFQ1RfRVEobmlsLCBbV2ViU3RyaW5nVHJ1bmNhdG9yIGNlbnRlclRydW5j
YXRlU3RyaW5nOkAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiIHRvV2lkdGg6MTAwIHdpdGhG
b250Om5pbF0pOw0KICAgICAgICAgRVhQRUNUX1NUUkVRKFtbV2ViU3RyaW5nVHJ1bmNhdG9yIGNl
bnRlclRydW5jYXRlU3RyaW5nOkAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiIHRvV2lkdGg6
MTAwIHdpdGhGb250OltOU0ZvbnQgZm9udFdpdGhOYW1lOkAiSGVsdmV0aWNhIiBzaXplOjEyXV0g
VVRGOFN0cmluZ10sICJhYmNkZWZn4oCmdHV2d3h5eiIpOw0KLSNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID4gMTAxMDAwDQogICAgICAgICBFWFBFQ1RfU1RSRVEoW1tXZWJTdHJp
bmdUcnVuY2F0b3IgY2VudGVyVHJ1bmNhdGVTdHJpbmc6QCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5eiIgdG9XaWR0aDoxMDBdIFVURjhTdHJpbmddLCAiYWJjZGVm4oCmdXZ3eHl6Iik7DQotI2Vs
c2UNCi0gICAgICAgIEVYUEVDVF9TVFJFUShbW1dlYlN0cmluZ1RydW5jYXRvciBjZW50ZXJUcnVu
Y2F0ZVN0cmluZzpAImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiB0b1dpZHRoOjEwMF0gVVRG
OFN0cmluZ10sICJhYmNkZWbigKZ2d3h5eiIpOw0KLSNlbmRpZg0KICAgICAgICAgRVhQRUNUX0VR
KG5pbCwgW1dlYlN0cmluZ1RydW5jYXRvciByaWdodFRydW5jYXRlU3RyaW5nOkAiYWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXoiIHRvV2lkdGg6MTAwIHdpdGhGb250Om5pbF0pOw0KICAgICAgICAg
RVhQRUNUX1NUUkVRKFtbV2ViU3RyaW5nVHJ1bmNhdG9yIHJpZ2h0VHJ1bmNhdGVTdHJpbmc6QCJh
YmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIgdG9XaWR0aDoxMDAgd2l0aEZvbnQ6W05TRm9udCBm
b250V2l0aE5hbWU6QCJIZWx2ZXRpY2EiIHNpemU6MTJdXSBVVEY4U3RyaW5nXSwgImFiY2RlZmdo
aWprbG1ub+KApiIpOw0KICAgICAgICAgRVhQRUNUX1NUUkVRKFtbV2ViU3RyaW5nVHJ1bmNhdG9y
IGNlbnRlclRydW5jYXRlU3RyaW5nOkAixIFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiB0b1dp
ZHRoOjEwMCB3aXRoRm9udDpbTlNGb250IGZvbnRXaXRoTmFtZTpAIkhlbHZldGljYSIgc2l6ZTox
Ml1dIFVURjhTdHJpbmddLCAixIFiY2RlZmfigKZ0dXZ3eHl6Iik7DQpJbmRleDogVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQot
LS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCShy
ZXZpc2lvbiAyMTkwNDgpDQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9u
cy9CYXNlLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpDQpAQCAtNTYsNyArNTYsNiBAQCBERUJVR19E
RUZJTkVTX25vcm1hbCA9IE5ERUJVRzsNCiBERUJVR19ERUZJTkVTID0gJChERUJVR19ERUZJTkVT
XyQoQ1VSUkVOVF9WQVJJQU5UKSk7DQogDQogVEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1Ig
PSAkKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SJChNQUNPU1hfREVQTE9ZTUVOVF9UQVJH
RVQ6c3VmZml4OmlkZW50aWZpZXIpKTsNCi1UQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8x
MCA9IDEwMTAwMDsNCiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMSA9IDEwMTEwMDsN
CiBUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUl8xMiA9IDEwMTIwMDsNCiBUQVJHRVRfTUFD
X09TX1hfVkVSU0lPTl9NQUpPUl8xMyA9IDEwMTMwMDsNCkluZGV4OiBUb29scy9XZWJLaXRUZXN0
UnVubmVyL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZw0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhj
Y29uZmlnCShyZXZpc2lvbiAyMTkwNDgpDQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25m
aWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcJKHdvcmtpbmcgY29weSkNCkBAIC0zMCw3
ICszMCw2IEBAIE9OTFlfQUNUSVZFX0FSQ0ggPSBZRVM7DQogVEFSR0VUX01BQ19PU19YX1ZFUlNJ
T05fTUFKT1IgPSAkKE1BQ19PU19YX1ZFUlNJT05fTUFKT1IpOw0KIA0KIE1BQ09TWF9ERVBMT1lN
RU5UX1RBUkdFVCA9ICQoTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXyQoVEFSR0VUX01BQ19PU19Y
X1ZFUlNJT05fTUFKT1IpKQ0KLU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVF8xMDEwMDAgPSAxMC4x
MDsNCiBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRfMTAxMTAwID0gMTAuMTE7DQogTUFDT1NYX0RF
UExPWU1FTlRfVEFSR0VUXzEwMTIwMCA9IDEwLjEyOw0KIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdF
VF8xMDEzMDAgPSAxMC4xMzsNCkBAIC0zOSw3ICszOCw2IEBAIE1BQ09TWF9ERVBMT1lNRU5UX1RB
UkdFVF8xMDE0MDAgPSAxMC4xNDsNCiBXRUJLSVRfU1lTVEVNX0lOVEVSRkFDRV9MSUJSQVJZW3Nk
az1pcGhvbmVvcypdID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNlSU9TRGV2aWNlJChXS19UQVJHRVRf
SU9TX1ZFUlNJT05fTUFKT1IpOw0KIFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllbc2Rr
PWlwaG9uZXNpbXVsYXRvcipdID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNlSU9TU2ltdWxhdG9yJChX
S19UQVJHRVRfSU9TX1ZFUlNJT05fTUFKT1IpOw0KIFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJ
QlJBUllbc2RrPW1hY29zeCpdID0gJChXRUJLSVRfU1lTVEVNX0lOVEVSRkFDRV9MSUJSQVJZX21h
Y29zeF8kKFRBUkdFVF9NQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7DQotV0VCS0lUX1NZU1RFTV9J
TlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfMTAxMDAwID0gV2ViS2l0U3lzdGVtSW50ZXJmYWNlWW9z
ZW1pdGU7DQogV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfMTAxMTAwID0g
V2ViS2l0U3lzdGVtSW50ZXJmYWNlRWxDYXBpdGFuOw0KIFdFQktJVF9TWVNURU1fSU5URVJGQUNF
X0xJQlJBUllfbWFjb3N4XzEwMTIwMCA9IFdlYktpdFN5c3RlbUludGVyZmFjZU9TWDEwLjEyOw0K
IFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUllfbWFjb3N4XzEwMTMwMCA9ICQoV0VCS0lU
X1NZU1RFTV9JTlRFUkZBQ0VfTElCUkFSWV9tYWNvc3hfMTAxMjAwKTsNCkluZGV4OiBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9JbmplY3RlZEJ1bmRsZU1hYy5tbQ0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFj
L0luamVjdGVkQnVuZGxlTWFjLm1tCShyZXZpc2lvbiAyMTkwNDgpDQorKysgVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0JKHdvcmtp
bmcgY29weSkNCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnBsYXRmb3Jt
SW5pdGlhbGl6ZSgNCiAgICAgICAgICAgICBAIndlbGxjb21lIjogQCJ3ZWxjb21lIiwNCiAgICAg
ICAgICAgICBAImhlbGxvbGZ3b3JsZCI6IEAiaGVsbG9cbndvcmxkIg0KICAgICAgICAgfSwNCi0j
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTIwMA0KKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEIDwgMTAxMjAwDQogICAgICAgICBAIkFwcGxlU3lzdGVtRm9udE9TU3VidmVy
c2lvbiI6IEAoMTApLA0KICNlbmRpZg0KICAgICAgICAgQCJBcHBsZUVuYWJsZVN3aXBlTmF2aWdh
dGVXaXRoU2Nyb2xscyI6IEBZRVMsDQpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMv
V2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5tbQ0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvbWFjL1dlYktpdFRlc3RSdW5uZXJEcmFnZ2luZ0luZm8ubW0JKHJldmlz
aW9uIDIxOTA0OCkNCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9XZWJLaXRUZXN0UnVu
bmVyRHJhZ2dpbmdJbmZvLm1tCSh3b3JraW5nIGNvcHkpDQpAQCAtMTQ2LDcgKzE0Niw2IEBAIC0g
KHZvaWQpZW51bWVyYXRlRHJhZ2dpbmdJdGVtc1dpdGhPcHRpb24NCiAgICAgLy8gSWdub3JlZC4N
CiB9DQogDQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDExMDANCiAt
KE5TU3ByaW5nTG9hZGluZ0hpZ2hsaWdodClzcHJpbmdMb2FkaW5nSGlnaGxpZ2h0DQogew0KICAg
ICByZXR1cm4gTlNTcHJpbmdMb2FkaW5nSGlnaGxpZ2h0Tm9uZTsNCkBAIC0xNTUsNiArMTU0LDUg
QEAgLShOU1NwcmluZ0xvYWRpbmdIaWdobGlnaHQpc3ByaW5nTG9hZGluZw0KIC0gKHZvaWQpcmVz
ZXRTcHJpbmdMb2FkaW5nDQogew0KIH0NCi0jZW5kaWYNCiANCiBAZW5kDQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>