<?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>206138</bug_id>
          
          <creation_ts>2020-01-11 19:31:45 -0800</creation_ts>
          <short_desc>Platform.h is out of control Part 2: Split WTF_OS_* macro definitions out of Platform.h and into a new OS.h</short_desc>
          <delta_ts>2020-01-13 07:54:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>andersca</cc>
    
    <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1605603</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-11 19:31:45 -0800</bug_when>
    <thetext>Platform.h is out of control Part 2: Split WTF_OS_* macro definitions out of Platform.h and into a new OS.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605604</commentid>
    <comment_count>1</comment_count>
      <attachid>387452</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-11 19:33:07 -0800</bug_when>
    <thetext>Created attachment 387452
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605606</commentid>
    <comment_count>2</comment_count>
      <attachid>387453</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-11 19:46:56 -0800</bug_when>
    <thetext>Created attachment 387453
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605718</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-12 16:21:44 -0800</bug_when>
    <thetext>Committed r254417: &lt;https://trac.webkit.org/changeset/254417&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605719</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-12 16:22:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/58515876&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387452</attachid>
            <date>2020-01-11 19:33:07 -0800</date>
            <delta_ts>2020-01-11 19:46:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206138-20200111193306.patch</filename>
            <type>text/plain</type>
            <size>89931</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTQ0MDkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDIwLTAxLTExICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBQbGF0Zm9ybS5oIGlzIG91dCBvZiBjb250cm9sIFBhcnQg
MjogU3BsaXQgV1RGX09TXyogbWFjcm8gZGVmaW5pdGlvbnMgb3V0IG9mIFBsYXRmb3JtLmggYW5k
IGludG8gYSBuZXcgT1MuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA2MTM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQXMgYSBhbm90aGVyIHN0ZXAgdG93YXJkcyBjbGVhbmluZyB1cCBQbGF0Zm9ybS5o
LCBzcGxpdCBvdXQgT1MgcmVsYXRlZAorICAgICAgICBtYWNyb3MgaW50byB0aGVpciBvd24gZmls
ZS4KKworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvT1MuaDogQ29waWVkIGZyb20gU291
cmNlL1dURi93dGYvUGxhdGZvcm0uaC4KKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAy
MC0wMS0xMSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUGxhdGZv
cm0uaCBpcyBvdXQgb2YgY29udHJvbCBQYXJ0IDE6IFNwbGl0IFdURl9DUFVfKiBtYWNybyBkZWZp
bml0aW9ucyBvdXQgb2YgUGxhdGZvcm0uaCBhbmQgaW50byBhIG5ldyBDUFUuaApJbmRleDogU291
cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTQ0MDkpCisr
KyBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC00NDQsNiArNDQ0LDcgQEAKIAkJN0MxMzc5NDIyMjIzMjZENTAwRDdBODI0IC8qIGllZWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gaWVlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QzEzNzk0MzIyMjMyNkQ1MDBEN0E4MjQgLyogUkVBRE1FLm1kICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gbmV0LmRhcmluZ2ZpcmViYWxsLm1hcmtkb3du
OyBwYXRoID0gUkVBRE1FLm1kOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzNGNzIz
OTFENzg4MTE5MDA2NzRFMjYgLyogQnJpZ2FuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBCcmlnYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDOEI2MzMw
MjNDQUM3NkQwMEJCNDYyMCAvKiBPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Qzk2OTI5NDFGNjYzMDZFMDAy
NjdBOUUgLyogS2V5VmFsdWVQYWlyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEtleVZhbHVlUGFpci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0E4NDJFOTIz
Qzk4Q0I3MDA1MTRDQUYgLyogQ1BVLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENQVS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0JCQTA3MzE5QkI3RkRDMDBC
QkYwMjUgLyogT1NPYmplY3RQdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
T1NPYmplY3RQdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMDYsNiArMTEw
Nyw3IEBACiAJCQkJMUE0NjU2MTgxQzdGQzY4RTAwRjU5MjBGIC8qIE9wdGlvblNldC5oICovLAog
CQkJCTI3NURGQjZCMjM4QkRGNzIwMDEyMzBFMiAvKiBPcHRpb25TZXRIYXNoLmggKi8sCiAJCQkJ
MEY5NDk1ODMxQzU3MUNDOTAwNDEzQTQ4IC8qIE9yZGVyTWFrZXIuaCAqLywKKwkJCQk3QzhCNjMz
MDIzQ0FDNzZEMDBCQjQ2MjAgLyogT1MuaCAqLywKIAkJCQlBOEE0NzJENzE1MUE4MjVCMDA0MTIz
RkYgLyogT1NBbGxvY2F0b3IuaCAqLywKIAkJCQk3Q0JCQTA3MzE5QkI3RkRDMDBCQkYwMjUgLyog
T1NPYmplY3RQdHIuaCAqLywKIAkJCQlBOEE0NzJEQTE1MUE4MjVCMDA0MTIzRkYgLyogT1NSYW5k
b21Tb3VyY2UuY3BwICovLApJbmRleDogU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDI1NDQw
OSkKKysrIFNvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
NDksNiArMTQ5LDcgQEAgc2V0KFdURl9QVUJMSUNfSEVBREVSUwogICAgIE5vbm1vdmFibGUuaAog
ICAgIE5vdEZvdW5kLmgKICAgICBOdW1iZXJPZkNvcmVzLmgKKyAgICBPUy5oCiAgICAgT1NBbGxv
Y2F0b3IuaAogICAgIE9TT2JqZWN0UHRyLmgKICAgICBPU1JhbmRvbVNvdXJjZS5oCkluZGV4OiBT
b3VyY2UvV1RGL3d0Zi9PUy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL09TLmgJKHJl
dmlzaW9uIDI1NDQwOSkJKGZyb20gU291cmNlL1dURi93dGYvUGxhdGZvcm0uaDoyNTQ0MDkpCisr
KyBTb3VyY2UvV1RGL3d0Zi9PUy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTM3MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorICog
Q29weXJpZ2h0IChDKSAyMDEwLCAyMDExIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworLyogSW5jbHVkZSBjb21waWxlciBzcGVjaWZpYyBtYWNyb3Mg
Ki8KKyNpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4KKworLyogSW5jbHVkZSBDUFUgc3BlY2lmaWMg
bWFjcm9zICovCisjaW5jbHVkZSA8d3RmL0NQVS5oPgorCisvKiA9PT09IFBMQVRGT1JNIGhhbmRs
ZXMgT1MsIG9wZXJhdGluZyBlbnZpcm9ubWVudCwgZ3JhcGhpY3MgQVBJLCBhbmQKKyAgIENQVS4g
VGhpcyBtYWNybyB3aWxsIGJlIHBoYXNlZCBvdXQgaW4gZmF2b3Igb2YgcGxhdGZvcm0gYWRhcHRh
dGlvbgorICAgbWFjcm9zLCBwb2xpY3kgZGVjaXNpb24gbWFjcm9zLCBhbmQgdG9wLWxldmVsIHBv
cnQgZGVmaW5pdGlvbnMuID09PT0gKi8KKyNkZWZpbmUgUExBVEZPUk0oV1RGX0ZFQVRVUkUpIChk
ZWZpbmVkIFdURl9QTEFURk9STV8jI1dURl9GRUFUVVJFICAmJiBXVEZfUExBVEZPUk1fIyNXVEZf
RkVBVFVSRSkKKworCisvKiA9PT09IFBsYXRmb3JtIGFkYXB0YXRpb24gbWFjcm9zOiB0aGVzZSBk
ZXNjcmliZSBwcm9wZXJ0aWVzIG9mIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQuID09PT0gKi8KKwor
LyogQ1BVKCkgLSB0aGUgdGFyZ2V0IENQVSBhcmNoaXRlY3R1cmUgKi8KKyNkZWZpbmUgQ1BVKFdU
Rl9GRUFUVVJFKSAoZGVmaW5lZCBXVEZfQ1BVXyMjV1RGX0ZFQVRVUkUgICYmIFdURl9DUFVfIyNX
VEZfRkVBVFVSRSkKKy8qIEhBVkUoKSAtIHNwZWNpZmljIHN5c3RlbSBmZWF0dXJlcyAoaGVhZGVy
cywgZnVuY3Rpb25zIG9yIHNpbWlsYXIpIHRoYXQgYXJlIHByZXNlbnQgb3Igbm90ICovCisjZGVm
aW5lIEhBVkUoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIEhBVkVfIyNXVEZfRkVBVFVSRSAgJiYgSEFW
RV8jI1dURl9GRUFUVVJFKQorLyogT1MoKSAtIHVuZGVybHlpbmcgb3BlcmF0aW5nIHN5c3RlbTsg
b25seSB0byBiZSB1c2VkIGZvciBtYW5kYXRlZCBsb3ctbGV2ZWwgc2VydmljZXMgbGlrZSAKKyAg
IHZpcnR1YWwgbWVtb3J5LCBub3QgdG8gY2hvb3NlIGEgR1VJIHRvb2xraXQgKi8KKyNkZWZpbmUg
T1MoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIFdURl9PU18jI1dURl9GRUFUVVJFICAmJiBXVEZfT1Nf
IyNXVEZfRkVBVFVSRSkKKworCisvKiA9PT09IFBvbGljeSBkZWNpc2lvbiBtYWNyb3M6IHRoZXNl
IGRlZmluZSBwb2xpY3kgY2hvaWNlcyBmb3IgYSBwYXJ0aWN1bGFyIHBvcnQuID09PT0gKi8KKwor
LyogVVNFKCkgLSB1c2UgYSBwYXJ0aWN1bGFyIHRoaXJkLXBhcnR5IGxpYnJhcnkgb3Igb3B0aW9u
YWwgT1Mgc2VydmljZSAqLworI2RlZmluZSBVU0UoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIFVTRV8j
I1dURl9GRUFUVVJFICAmJiBVU0VfIyNXVEZfRkVBVFVSRSkKKy8qIEVOQUJMRSgpIC0gdHVybiBv
biBhIHNwZWNpZmljIGZlYXR1cmUgb2YgV2ViS2l0ICovCisjZGVmaW5lIEVOQUJMRShXVEZfRkVB
VFVSRSkgKGRlZmluZWQgRU5BQkxFXyMjV1RGX0ZFQVRVUkUgICYmIEVOQUJMRV8jI1dURl9GRUFU
VVJFKQorCisKKy8qIE1JUFMgcmVxdWlyZXMgYWxsb2NhdG9ycyB0byB1c2UgYWxpZ25lZCBtZW1v
cnkgKi8KKyNpZiBDUFUoTUlQUykgfHwgQ1BVKE1JUFM2NCkKKyNkZWZpbmUgVVNFX0FSRU5BX0FM
TE9DX0FMSUdOTUVOVF9JTlRFR0VSIDEKKyNlbmRpZgorCisvKkFSTXY1VEUgcmVxdWlyZXMgYWxs
b2NhdG9ycyB0byB1c2UgYWxpZ25lZCBtZW1vcnkqLworI2lmIGRlZmluZWQoX19BUk1fQVJDSF81
RV9fKSB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNVRFX18pIHx8IGRlZmluZWQoX19BUk1fQVJDSF81
VEVKX18pCisjZGVmaW5lIFVTRV9BUkVOQV9BTExPQ19BTElHTk1FTlRfSU5URUdFUiAxCisjZW5k
aWYKKworLypBUk12NVRFIHJlcXVpcmVzIGFsbG9jYXRvcnMgdG8gdXNlIGFsaWduZWQgbWVtb3J5
Ki8KKyNpZiBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfNUUpIHx8IGRlZmluZWQoX19UQVJHRVRfQVJD
SF81VEUpIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF81VEVKKQorI2RlZmluZSBVU0VfQVJFTkFf
QUxMT0NfQUxJR05NRU5UX0lOVEVHRVIgMQorI2VuZGlmCisKKyNpZiBDUFUoQVJNX05FT04pCisv
KiBBbGwgTkVPTiBpbnRyaW5zaWNzIHVzYWdlIGNhbiBiZSBkaXNhYmxlZCBieSB0aGlzIG1hY3Jv
LiAqLworI2RlZmluZSBIQVZFX0FSTV9ORU9OX0lOVFJJTlNJQ1MgMQorI2VuZGlmCisKKy8qIEZJ
WE1FOiBUaGlzIHNob3VsZCBiZSByZW5hbWVkIHRvIFdURl9DUFVfQVJNX0lESVZfSU5TVFJVQ1RJ
T05TIGFuZCBtb3ZlZCB0byBDUFUuaCAqLworI2lmIGRlZmluZWQoX19BUk1fQVJDSF9FWFRfSURJ
Vl9fKSB8fCBDUFUoQVBQTEVfQVJNVjdTKQorI2RlZmluZSBIQVZFX0FSTV9JRElWX0lOU1RSVUNU
SU9OUyAxCisjZW5kaWYKKworCisKKy8qID09PT0gT1MoKSAtIHVuZGVybHlpbmcgb3BlcmF0aW5n
IHN5c3RlbTsgb25seSB0byBiZSB1c2VkIGZvciBtYW5kYXRlZCBsb3ctbGV2ZWwgc2VydmljZXMg
bGlrZSAKKyAgIHZpcnR1YWwgbWVtb3J5LCBub3QgdG8gY2hvb3NlIGEgR1VJIHRvb2xraXQgPT09
PSAqLworCisvKiBPUyhBSVgpIC0gQUlYICovCisjaWZkZWYgX0FJWAorI2RlZmluZSBXVEZfT1Nf
QUlYIDEKKyNlbmRpZgorCisvKiBPUyhEQVJXSU4pIC0gQW55IERhcndpbi1iYXNlZCBPUywgaW5j
bHVkaW5nIE1hYyBPUyBYIGFuZCBpUGhvbmUgT1MgKi8KKyNpZmRlZiBfX0FQUExFX18KKyNkZWZp
bmUgV1RGX09TX0RBUldJTiAxCisKKyNpbmNsdWRlIDxBdmFpbGFiaWxpdHkuaD4KKyNpbmNsdWRl
IDxBdmFpbGFiaWxpdHlNYWNyb3MuaD4KKyNpbmNsdWRlIDxUYXJnZXRDb25kaXRpb25hbHMuaD4K
KyNlbmRpZgorCisvKiBPUyhJT1NfRkFNSUxZKSAtIGlPUyBmYW1pbHksIGluY2x1ZGluZyBpT1Ms
IG1hY0NhdGFseXN0LCB0dk9TLCB3YXRjaE9TICovCisvKiBPUyhJT1MpIC0gaU9TIG9ubHksIG5v
dCBpbmNsdWRpbmcgbWFjQ2F0YWx5c3QgKi8KKy8qIE9TKE1BQ19PU19YKSAtIG1hY09TIChub3Qg
aW5jbHVkaW5nIGlPUyBmYW1pbHkpICovCisjaWYgT1MoREFSV0lOKQorI2lmIFRBUkdFVF9PU19J
T1MgJiYgIShkZWZpbmVkKFRBUkdFVF9PU19NQUNDQVRBTFlTVCkgJiYgVEFSR0VUX09TX01BQ0NB
VEFMWVNUKQorI2RlZmluZSBXVEZfT1NfSU9TIDEKKyNlbmRpZgorI2lmIFRBUkdFVF9PU19JUEhP
TkUKKyNkZWZpbmUgV1RGX09TX0lPU19GQU1JTFkgMQorI2VsaWYgVEFSR0VUX09TX01BQworI2Rl
ZmluZSBXVEZfT1NfTUFDX09TX1ggMQorI2VuZGlmCisjZW5kaWYKKworLyogT1MoRlJFRUJTRCkg
LSBGcmVlQlNEICovCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0RyYWdv
bkZseV9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKKyNkZWZpbmUgV1RGX09TX0ZS
RUVCU0QgMQorI2VuZGlmCisKKy8qIE9TKEZVQ0hTSUEpIC0gRnVjaHNpYSAqLworI2lmZGVmIF9f
RnVjaHNpYV9fCisjZGVmaW5lIFdURl9PU19GVUNIU0lBIDEKKyNlbmRpZgorCisvKiBPUyhIVVJE
KSAtIEdOVS9IdXJkICovCisjaWZkZWYgX19HTlVfXworI2RlZmluZSBXVEZfT1NfSFVSRCAxCisj
ZW5kaWYKKworLyogT1MoTElOVVgpIC0gTGludXggKi8KKyNpZmRlZiBfX2xpbnV4X18KKyNkZWZp
bmUgV1RGX09TX0xJTlVYIDEKKyNlbmRpZgorCisvKiBPUyhORVRCU0QpIC0gTmV0QlNEICovCisj
aWYgZGVmaW5lZChfX05ldEJTRF9fKQorI2RlZmluZSBXVEZfT1NfTkVUQlNEIDEKKyNlbmRpZgor
CisvKiBPUyhPUEVOQlNEKSAtIE9wZW5CU0QgKi8KKyNpZmRlZiBfX09wZW5CU0RfXworI2RlZmlu
ZSBXVEZfT1NfT1BFTkJTRCAxCisjZW5kaWYKKworLyogT1MoV0lORE9XUykgLSBBbnkgdmVyc2lv
biBvZiBXaW5kb3dzICovCisjaWYgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfV0lOMzIpCisj
ZGVmaW5lIFdURl9PU19XSU5ET1dTIDEKKyNlbmRpZgorCisjZGVmaW5lIFdURl9PU19XSU4gRVJS
T1IgIlVTRSBXSU5ET1dTIFdJVEggT1MgTk9UIFdJTiIKKyNkZWZpbmUgV1RGX09TX01BQyBFUlJP
UiAiVVNFIE1BQ19PU19YIFdJVEggT1MgTk9UIE1BQyIKKworLyogT1MoVU5JWCkgLSBBbnkgVW5p
eC1saWtlIHN5c3RlbSAqLworI2lmICAgIE9TKEFJWCkgICAgICAgICAgICAgIFwKKyAgICB8fCBP
UyhEQVJXSU4pICAgICAgICAgICBcCisgICAgfHwgT1MoRlJFRUJTRCkgICAgICAgICAgXAorICAg
IHx8IE9TKEZVQ0hTSUEpICAgICAgICAgIFwKKyAgICB8fCBPUyhIVVJEKSAgICAgICAgICAgICBc
CisgICAgfHwgT1MoTElOVVgpICAgICAgICAgICAgXAorICAgIHx8IE9TKE5FVEJTRCkgICAgICAg
ICAgIFwKKyAgICB8fCBPUyhPUEVOQlNEKSAgICAgICAgICBcCisgICAgfHwgZGVmaW5lZCh1bml4
KSAgICAgICAgXAorICAgIHx8IGRlZmluZWQoX191bml4KSAgICAgIFwKKyAgICB8fCBkZWZpbmVk
KF9fdW5peF9fKQorI2RlZmluZSBXVEZfT1NfVU5JWCAxCisjZW5kaWYKKworLyogT3BlcmF0aW5n
IGVudmlyb25tZW50cyAqLworCisKKy8qIEZJWE1FOiBSZW5hbWUgV1RGX0NQVV9FRkZFQ1RJVkVf
QUREUkVTU19XSURUSCB0byBXVEZfT1NfRUZGRUNUSVZFX0FERFJFU1NfV0lEVEgsIGFzIGl0IGlz
IGFuIE9TIGZlYXR1cmUsIG5vdCBhIENQVSBmZWF0dXJlLiAqLworI2lmIENQVShBRERSRVNTNjQp
CisjaWYgT1MoREFSV0lOKSAmJiBDUFUoQVJNNjQpCisjZGVmaW5lIFdURl9DUFVfRUZGRUNUSVZF
X0FERFJFU1NfV0lEVEggMzYKKyNlbHNlCisvKiBXZSBzdHJvbmdseSBhc3N1bWUgdGhhdCBlZmZl
Y3RpdmUgYWRkcmVzcyB3aWR0aCBpcyA8PSA0OCBpbiA2NGJpdCBhcmNoaXRlY3R1cmVzIChlLmcu
IE5hTiBib3hpbmcpLiAqLworI2RlZmluZSBXVEZfQ1BVX0VGRkVDVElWRV9BRERSRVNTX1dJRFRI
IDQ4CisjZW5kaWYKKyNlbHNlCisjZGVmaW5lIFdURl9DUFVfRUZGRUNUSVZFX0FERFJFU1NfV0lE
VEggMzIKKyNlbmRpZgorCisvKiBFeHBvcnQgbWFjcm8gc3VwcG9ydC4gRGV0ZWN0cyB0aGUgYXR0
cmlidXRlcyBhdmFpbGFibGUgZm9yIHNoYXJlZCBsaWJyYXJ5IHN5bWJvbCBleHBvcnQKKyAgIGRl
Y29yYXRpb25zLiAqLworI2lmIE9TKFdJTkRPV1MpIHx8IChDT01QSUxFUl9IQVNfQ0xBTkdfREVD
TFNQRUMoZGxsaW1wb3J0KSAmJiBDT01QSUxFUl9IQVNfQ0xBTkdfREVDTFNQRUMoZGxsZXhwb3J0
KSkKKyNkZWZpbmUgVVNFX0RFQ0xTUEVDX0FUVFJJQlVURSAxCisjZGVmaW5lIFVTRV9WSVNJQklM
SVRZX0FUVFJJQlVURSAwCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKQorI2RlZmluZSBVU0VfREVD
TFNQRUNfQVRUUklCVVRFIDAKKyNkZWZpbmUgVVNFX1ZJU0lCSUxJVFlfQVRUUklCVVRFIDEKKyNl
bHNlCisjZGVmaW5lIFVTRV9ERUNMU1BFQ19BVFRSSUJVVEUgMAorI2RlZmluZSBVU0VfVklTSUJJ
TElUWV9BVFRSSUJVVEUgMAorI2VuZGlmCisKKy8qIFN0YW5kYXJkIGxpYnJhcmllcyAqLworI2lm
IGRlZmluZWQoSEFWRV9GRUFUVVJFU19IKSAmJiBIQVZFX0ZFQVRVUkVTX0gKKy8qIElmIHRoZSBp
bmNsdWRlZCBmZWF0dXJlcy5oIGlzIGdsaWJjJ3Mgb25lLCBfX0dMSUJDX18gaXMgZGVmaW5lZC4g
Ki8KKyNpbmNsdWRlIDxmZWF0dXJlcy5oPgorI2VuZGlmCisKKy8qIEZJWE1FOiB0aGVzZSBhcmUg
YWxsIG1peGVzIG9mIE9TLCBvcGVyYXRpbmcgZW52aXJvbm1lbnQgYW5kIHBvbGljeSBjaG9pY2Vz
LiAqLworLyogUExBVEZPUk0oR1RLKSAqLworLyogUExBVEZPUk0oTUFDKSAqLworLyogUExBVEZP
Uk0oSU9TKSAqLworLyogUExBVEZPUk0oSU9TX0ZBTUlMWSkgKi8KKy8qIFBMQVRGT1JNKElPU19T
SU1VTEFUT1IpICovCisvKiBQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikgKi8KKy8qIFBM
QVRGT1JNKFdJTikgKi8KKyNpZiBkZWZpbmVkKEJVSUxESU5HX0dUS19fKQorI2RlZmluZSBXVEZf
UExBVEZPUk1fR1RLIDEKKyNlbGlmIGRlZmluZWQoQlVJTERJTkdfV1BFX18pCisjZGVmaW5lIFdU
Rl9QTEFURk9STV9XUEUgMQorI2VsaWYgZGVmaW5lZChCVUlMRElOR19KU0NPTkxZX18pCisvKiBK
U0NPbmx5IGRvZXMgbm90IHByb3ZpZGUgUExBVEZPUk0oKSBtYWNybyAqLworI2VsaWYgT1MoTUFD
X09TX1gpCisjZGVmaW5lIFdURl9QTEFURk9STV9NQUMgMQorI2VsaWYgT1MoSU9TX0ZBTUlMWSkK
KyNpZiBPUyhJT1MpCisjZGVmaW5lIFdURl9QTEFURk9STV9JT1MgMQorI2VuZGlmCisjZGVmaW5l
IFdURl9QTEFURk9STV9JT1NfRkFNSUxZIDEKKyNpZiBUQVJHRVRfT1NfU0lNVUxBVE9SCisjaWYg
T1MoSU9TKQorI2RlZmluZSBXVEZfUExBVEZPUk1fSU9TX1NJTVVMQVRPUiAxCisjZW5kaWYKKyNk
ZWZpbmUgV1RGX1BMQVRGT1JNX0lPU19GQU1JTFlfU0lNVUxBVE9SIDEKKyNlbmRpZgorI2lmIGRl
ZmluZWQoVEFSR0VUX09TX01BQ0NBVEFMWVNUKSAmJiBUQVJHRVRfT1NfTUFDQ0FUQUxZU1QKKyNk
ZWZpbmUgV1RGX1BMQVRGT1JNX01BQ0NBVEFMWVNUIDEKKyNlbmRpZgorI2VsaWYgT1MoV0lORE9X
UykKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX1dJTiAxCisjZW5kaWYKKworLyogUExBVEZPUk0oQ09D
T0EpICovCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorI2RlZmlu
ZSBXVEZfUExBVEZPUk1fQ09DT0EgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNp
ZiBkZWZpbmVkIF9faGFzX2luY2x1ZGUgJiYgX19oYXNfaW5jbHVkZSg8Q29yZUZvdW5kYXRpb24v
Q0ZQcml2Lmg+KQorI2RlZmluZSBVU0VfQVBQTEVfSU5URVJOQUxfU0RLIDEKKyNlbmRpZgorI2Vu
ZGlmCisKKy8qIFBMQVRGT1JNKEFQUExFVFYpICovCisjaWYgZGVmaW5lZChUQVJHRVRfT1NfVFYp
ICYmIFRBUkdFVF9PU19UVgorI2RlZmluZSBXVEZfUExBVEZPUk1fQVBQTEVUViAxCisjZW5kaWYK
KworLyogUExBVEZPUk0oV0FUQ0hPUykgKi8KKyNpZiBkZWZpbmVkKFRBUkdFVF9PU19XQVRDSCkg
JiYgVEFSR0VUX09TX1dBVENICisjZGVmaW5lIFdURl9QTEFURk9STV9XQVRDSE9TIDEKKyNlbmRp
ZgorCisvKiBHcmFwaGljcyBlbmdpbmVzICovCisKKy8qIFVTRShDRykgYW5kIFBMQVRGT1JNKENJ
KSAqLworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBVU0VfQ0cgMQorI2RlZmluZSBVU0Vf
Q0EgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKKyNkZWZp
bmUgVVNFX0dMSUIgMQorI2RlZmluZSBVU0VfRlJFRVRZUEUgMQorI2RlZmluZSBVU0VfSEFSRkJV
WlogMQorI2RlZmluZSBVU0VfU09VUCAxCisjZGVmaW5lIFVTRV9XRUJQIDEKKyNkZWZpbmUgVVNF
X0ZJTEVfTE9DSyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKEdUSykKKyNkZWZpbmUgR0xJQl9W
RVJTSU9OX01JTl9SRVFVSVJFRCBHTElCX1ZFUlNJT05fMl8zNgorI2RlZmluZSBHREtfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgR0RLX1ZFUlNJT05fM182CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdQ
RSkKKyNkZWZpbmUgR0xJQl9WRVJTSU9OX01JTl9SRVFVSVJFRCBHTElCX1ZFUlNJT05fMl80MAor
I2VuZGlmCisKKyNpZiBVU0UoU09VUCkKKyNkZWZpbmUgU09VUF9WRVJTSU9OX01JTl9SRVFVSVJF
RCBTT1VQX1ZFUlNJT05fMl80MgorI2VuZGlmCisKKy8qIE9uIFdpbmRvd3MsIHVzZSBRdWVyeVBl
cmZvcm1hbmNlQ291bnRlciBieSBkZWZhdWx0ICovCisjaWYgT1MoV0lORE9XUykKKyNkZWZpbmUg
VVNFX1FVRVJZX1BFUkZPUk1BTkNFX0NPVU5URVIgIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0o
Q09DT0EpCisKKyNkZWZpbmUgSEFWRV9PVVRfT0ZfUFJPQ0VTU19MQVlFUl9IT1NUSU5HIDEKKyNk
ZWZpbmUgVVNFX0NGIDEKKyNkZWZpbmUgVVNFX0ZJTEVfTE9DSyAxCisjZGVmaW5lIFVTRV9GT1VO
REFUSU9OIDEKKyNkZWZpbmUgVVNFX05FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLIDEKKwor
LyogQ29jb2EgZGVmaW5lcyBhIHNlcmllcyBvZiBwbGF0Zm9ybSBtYWNyb3MgZm9yIGRlYnVnZ2lu
Zy4gKi8KKy8qIFNvbWUgb2YgdGhlbSBhcmUgcmVhbGx5IGFubm95aW5nIGJlY2F1c2UgdGhleSB1
c2UgY29tbW9uIG5hbWVzIChlLmcuIGNoZWNrKCkpLiAqLworLyogRGlzYWJsZSB0aG9zZSBtYWNy
b3Mgc28gdGhhdCB3ZSBhcmUgbm90IGxpbWl0ZWQgaW4gaG93IHdlIG5hbWUgbWV0aG9kcyBhbmQg
ZnVuY3Rpb25zLiAqLworI3VuZGVmIF9fQVNTRVJUX01BQ1JPU19ERUZJTkVfVkVSU0lPTlNfV0lU
SE9VVF9VTkRFUlNDT1JFUworI2RlZmluZSBfX0FTU0VSVF9NQUNST1NfREVGSU5FX1ZFUlNJT05T
X1dJVEhPVVRfVU5ERVJTQ09SRVMgMAorCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykKKwor
I2RlZmluZSBIQVZFX1JVTkxPT1BfVElNRVIgMQorI2RlZmluZSBIQVZFX1NFQ19LRVlDSEFJTiAx
CisjZGVmaW5lIEhBVkVfSElTRVJWSUNFUyAxCisjZGVmaW5lIFVTRV9BUFBLSVQgMQorI2RlZmlu
ZSBVU0VfUEFTU0tJVCAxCisKKyNpZiBDUFUoWDg2XzY0KQorI2RlZmluZSBIQVZFX05FVFdPUktf
RVhURU5TSU9OIDEKKyNkZWZpbmUgVVNFX1BMVUdJTl9IT1NUX1BST0NFU1MgMQorI2VuZGlmCisj
ZW5kaWYgLyogUExBVEZPUk0oTUFDKSAqLworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwor
I2RlZmluZSBIQVZFX05FVFdPUktfRVhURU5TSU9OIDEKKyNkZWZpbmUgSEFWRV9SRUFETElORSAx
CisjZGVmaW5lIFVTRV9VSUtJVF9FRElUSU5HIDEKKyNkZWZpbmUgVVNFX1dFQl9USFJFQUQgMQor
CisjaWYgQ1BVKEFSTTY0KQorI2RlZmluZSBFTkFCTEVfSklUX0NPTlNUQU5UX0JMSU5ESU5HIDAK
KyNlbmRpZgorCisjaWYgQ1BVKEFSTV9ORU9OKQorI3VuZGVmIEhBVkVfQVJNX05FT05fSU5UUklO
U0lDUworI2RlZmluZSBIQVZFX0FSTV9ORU9OX0lOVFJJTlNJQ1MgMAorI2VuZGlmCisKKyNlbmRp
ZiAvKiBQTEFURk9STShJT1NfRkFNSUxZKSAqLworCisjaWYgIWRlZmluZWQoSEFWRV9BQ0NFU1NJ
QklMSVRZKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV1BFKQorI2RlZmluZSBIQVZFX0FDQ0VTU0lCSUxJVFkgMQorI2Vu
ZGlmCisjZW5kaWYgLyogIWRlZmluZWQoSEFWRV9BQ0NFU1NJQklMSVRZKSAqLworCisvKiBGSVhN
RTogUmVtb3ZlIGFmdGVyIENNYWtlIGJ1aWxkIGVuYWJsZWQgb24gRGFyd2luICovCisjaWYgT1Mo
REFSV0lOKQorI2RlZmluZSBIQVZFX0VSUk5PX0ggMQorI2RlZmluZSBIQVZFX0xBTkdJTkZPX0gg
MQorI2RlZmluZSBIQVZFX0xPQ0FMVElNRV9SIDEKKyNkZWZpbmUgSEFWRV9NTUFQIDEKKyNkZWZp
bmUgSEFWRV9SRUdFWF9IIDEKKyNkZWZpbmUgSEFWRV9TSUdOQUxfSCAxCisjZGVmaW5lIEhBVkVf
U1RBVF9CSVJUSFRJTUUgMQorI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCisjZGVmaW5lIEhBVkVf
U1RSTlNUUiAxCisjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQorI2RlZmluZSBIQVZFX1NZU19U
SU1FX0ggMSAKKyNkZWZpbmUgSEFWRV9UTV9HTVRPRkYgMQorI2RlZmluZSBIQVZFX1RNX1pPTkUg
MQorI2RlZmluZSBIQVZFX1RJTUVHTSAxCisjZGVmaW5lIEhBVkVfUFRIUkVBRF9NQUlOX05QIDEK
KworI2lmIENQVShYODZfNjQpIHx8IENQVShBUk02NCkKKyNkZWZpbmUgSEFWRV9JTlQxMjhfVCAx
CisjZW5kaWYKKyNlbmRpZiAvKiBPUyhEQVJXSU4pICovCisKKyNpZiBPUyhVTklYKQorI2RlZmlu
ZSBVU0VfUFRIUkVBRFMgMQorI2VuZGlmIC8qIE9TKFVOSVgpICovCisKKyNpZiBPUyhVTklYKSAm
JiAhT1MoRlVDSFNJQSkKKyNkZWZpbmUgSEFWRV9SRVNPVVJDRV9IIDEKKyNkZWZpbmUgSEFWRV9Q
VEhSRUFEX1NFVFNDSEVEUEFSQU0gMQorI2VuZGlmCisKKyNpZiBPUyhEQVJXSU4pCisjZGVmaW5l
IEhBVkVfRElTUEFUQ0hfSCAxCisjZGVmaW5lIEhBVkVfTUFEVl9GUkVFIDEKKyNkZWZpbmUgSEFW
RV9NQURWX0ZSRUVfUkVVU0UgMQorI2RlZmluZSBIQVZFX01BRFZfRE9OVE5FRUQgMQorI2RlZmlu
ZSBIQVZFX01FUkdFU09SVCAxCisjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKKyNk
ZWZpbmUgSEFWRV9SRUFETElORSAxCisjZGVmaW5lIEhBVkVfU1lTX1RJTUVCX0ggMQorI2RlZmlu
ZSBIQVZFX0FVRElUX1RPS0VOIDEKKworI2lmIF9faGFzX2luY2x1ZGUoPG1hY2gvbWFjaF9leGMu
ZGVmcz4pICYmICFQTEFURk9STShHVEspCisjZGVmaW5lIEhBVkVfTUFDSF9FWENFUFRJT05TIDEK
KyNlbmRpZgorCisjaWYgIVBMQVRGT1JNKEdUSykKKyNkZWZpbmUgVVNFX0FDQ0VMRVJBVEUgMQor
I2VuZGlmCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisjZGVmaW5lIEhBVkVfSE9TVEVEX0NP
UkVfQU5JTUFUSU9OIDEKKyNlbmRpZgorCisjZW5kaWYgLyogT1MoREFSV0lOKSAqLworCisjaWYg
T1MoREFSV0lOKSB8fCBPUyhGVUNIU0lBKSB8fCAoKE9TKEZSRUVCU0QpIHx8IGRlZmluZWQoX19H
TElCQ19fKSB8fCBkZWZpbmVkKF9fQklPTklDX18pKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTSkgfHwgQ1BVKEFSTTY0KSB8fCBDUFUoTUlQUykpKQorI2RlZmluZSBIQVZF
X01BQ0hJTkVfQ09OVEVYVCAxCisjZW5kaWYKKworI2lmIE9TKERBUldJTikgfHwgKE9TKExJTlVY
KSAmJiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIUNQVShN
SVBTKSkKKyNkZWZpbmUgSEFWRV9CQUNLVFJBQ0UgMQorI2VuZGlmCisKKyNpZiBPUyhEQVJXSU4p
IHx8IE9TKExJTlVYKQorI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykg
JiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIUNQVShNSVBTKQorI2RlZmluZSBIQVZFX0JBQ0tU
UkFDRV9TWU1CT0xTIDEKKyNlbmRpZgorI2VuZGlmIC8qIFBMQVRGT1JNKEdUSykgKi8KKyNkZWZp
bmUgSEFWRV9ETEFERFIgMQorI2VuZGlmIC8qIE9TKERBUldJTikgfHwgT1MoTElOVVgpICovCisK
KworLyogRU5BQkxFIG1hY3JvIGRlZmF1bHRzICovCisKKy8qIEZJWE1FOiBtb3ZlIG91dCBhbGwg
RU5BQkxFKCkgZGVmaW5lcyBmcm9tIGhlcmUgdG8gRmVhdHVyZURlZmluZXMuaCAqLworCisjaWYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25z
L0FkZGl0aW9uYWxQbGF0Zm9ybS5oPikKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRp
b25hbFBsYXRmb3JtLmg+CisjZW5kaWYKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYm
IF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsRmVhdHVyZURlZmluZXMu
aD4pCisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5o
PgorI2VuZGlmCisKKy8qIEluY2x1ZGUgZmVhdHVyZSBtYWNyb3MgKi8KKyNpbmNsdWRlIDx3dGYv
RmVhdHVyZURlZmluZXMuaD4KKworI2lmIE9TKFdJTkRPV1MpCisjZGVmaW5lIFVTRV9TWVNURU1f
TUFMTE9DIDEKKyNlbmRpZgorCisKKyNpZiAhZGVmaW5lZChVU0VfSlNWQUxVRTY0KSAmJiAhZGVm
aW5lZChVU0VfSlNWQUxVRTMyXzY0KQorI2lmIENQVShBRERSRVNTNjQpIHx8IENQVShBUk02NCkK
KyNkZWZpbmUgVVNFX0pTVkFMVUU2NCAxCisjZWxzZQorI2RlZmluZSBVU0VfSlNWQUxVRTMyXzY0
IDEKKyNlbmRpZgorI2VuZGlmIC8qICFkZWZpbmVkKFVTRV9KU1ZBTFVFNjQpICYmICFkZWZpbmVk
KFVTRV9KU1ZBTFVFMzJfNjQpICovCisKKy8qIFRoZSBKSVQgaXMgZW5hYmxlZCBieSBkZWZhdWx0
IG9uIGFsbCB4ODYtNjQgJiBBUk02NCBwbGF0Zm9ybXMuICovCisjaWYgIWRlZmluZWQoRU5BQkxF
X0pJVCkgXAorICAgICYmIChDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpKSBcCisgICAgJiYgIUNQ
VShBUFBMRV9BUk1WN0spCisjZGVmaW5lIEVOQUJMRV9KSVQgMQorI2VuZGlmCisKKyNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorI2lmIChDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpKSAmJiBPUyhM
SU5VWCkKKy8qIE9uIEFSTXY3IGFuZCBNSVBTIG9uIExpbnV4IHRoZSBKSVQgaXMgZW5hYmxlZCB1
bmxlc3MgZXhwbGljaXRseSBkaXNhYmxlZC4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfSklUKQor
I2RlZmluZSBFTkFCTEVfSklUIDEKKyNlbmRpZgorI2Vsc2UKKy8qIERpc2FibGUgSklUIGFuZCBm
b3JjZSBDX0xPT1Agb24gYWxsIG90aGVyIDMyYml0IGFyY2hpdGVjdHVyZXMuICovCisjdW5kZWYg
RU5BQkxFX0pJVAorI2RlZmluZSBFTkFCTEVfSklUIDAKKyN1bmRlZiBFTkFCTEVfQ19MT09QCisj
ZGVmaW5lIEVOQUJMRV9DX0xPT1AgMQorI2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9DX0xPT1ApCisjaWYgRU5BQkxFKEpJVCkgXAorICAgIHx8IENQVShYODZfNjQpIHx8IChD
UFUoQVJNNjQpICYmICFkZWZpbmVkKF9fSUxQMzJfXykpCisjZGVmaW5lIEVOQUJMRV9DX0xPT1Ag
MAorI2Vsc2UKKyNkZWZpbmUgRU5BQkxFX0NfTE9PUCAxCisjZW5kaWYKKyNlbmRpZgorCisvKiBU
aGUgRlRMICpkb2VzIG5vdCogd29yayBvbiAzMi1iaXQgcGxhdGZvcm1zLiBEaXNhYmxlIGl0IGV2
ZW4gaWYgc29tZW9uZSBhc2tlZCB1cyB0byBlbmFibGUgaXQuICovCisjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyN1bmRlZiBFTkFCTEVfRlRMX0pJVAorI2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCisj
ZW5kaWYKKworLyogVGhlIEZUTCBpcyBkaXNhYmxlZCBvbiB0aGUgaU9TIHNpbXVsYXRvciwgbW9z
dGx5IGZvciBzaW1wbGljaXR5LiAqLworI2lmIFBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9S
KQorI3VuZGVmIEVOQUJMRV9GVExfSklUCisjZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKKyNlbmRp
ZgorCisvKiBJZiBwb3NzaWJsZSwgdHJ5IHRvIGVuYWJsZSBhIGRpc2Fzc2VtYmxlci4gVGhpcyBp
cyBvcHRpb25hbC4gV2UgcHJvY2VlZCBpbiB0d28KKyAgIHN0ZXBzOiBmaXJzdCB3ZSB0cnkgdG8g
ZmluZCBzb21lIGRpc2Fzc2VtYmxlciB0aGF0IHdlIGNhbiB1c2UsIGFuZCB0aGVuIHdlCisgICBk
ZWNpZGUgaWYgdGhlIGhpZ2gtbGV2ZWwgZGlzYXNzZW1ibGVyIEFQSSBjYW4gYmUgZW5hYmxlZC4g
Ki8KKyNpZiAhZGVmaW5lZChVU0VfVURJUzg2KSAmJiBFTkFCTEUoSklUKSAmJiBDUFUoWDg2XzY0
KSAmJiAhVVNFKENBUFNUT05FKQorI2RlZmluZSBVU0VfVURJUzg2IDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoVVNFX0FSTTY0X0RJU0FTU0VNQkxFUikgJiYgRU5BQkxFKEpJVCkgJiYgQ1BVKEFS
TTY0KSAmJiAhVVNFKENBUFNUT05FKQorI2RlZmluZSBVU0VfQVJNNjRfRElTQVNTRU1CTEVSIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RJU0FTU0VNQkxFUikgJiYgKFVTRShVRElT
ODYpIHx8IFVTRShBUk02NF9ESVNBU1NFTUJMRVIpIHx8IChFTkFCTEUoSklUKSAmJiBVU0UoQ0FQ
U1RPTkUpKSkKKyNkZWZpbmUgRU5BQkxFX0RJU0FTU0VNQkxFUiAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9ERkdfSklUKSAmJiBFTkFCTEUoSklUKQorLyogRW5hYmxlIHRoZSBERkcg
SklUIG9uIFg4NiBhbmQgWDg2XzY0LiAqLworI2lmIENQVShYODZfNjQpICYmIChPUyhEQVJXSU4p
IHx8IE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSB8fCBPUyhIVVJEKSB8fCBPUyhXSU5ET1dTKSkK
KyNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQorI2VuZGlmCisvKiBFbmFibGUgdGhlIERGRyBKSVQg
b24gQVJNdjcuICBPbmx5IHRlc3RlZCBvbiBpT1MsIExpbnV4LCBhbmQgRnJlZUJTRC4gKi8KKyNp
ZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChQTEFURk9STShJT1NfRkFNSUxZ
KSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkpCisjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEK
KyNlbmRpZgorLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIE1JUFMuICovCisjaWYgQ1BVKE1JUFMp
CisjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKKyNlbmRpZgorI2VuZGlmCisKKy8qIENvbmN1cnJl
bnQgSlMgb25seSB3b3JrcyBvbiA2NC1iaXQgcGxhdGZvcm1zIGJlY2F1c2UgaXQgcmVxdWlyZXMg
dGhhdAorICAgdmFsdWVzIGdldCBzdG9yZWQgdG8gYXRvbWljYWxseS4gVGhpcyBpcyB0cml2aWFs
bHkgdHJ1ZSBvbiA2NC1iaXQgcGxhdGZvcm1zLAorICAgYnV0IG5vdCB0cnVlIGF0IGFsbCBvbiAz
Mi1iaXQgcGxhdGZvcm1zIHdoZXJlIHZhbHVlcyBhcmUgY29tcG9zZWQgb2YgdHdvCisgICBzZXBh
cmF0ZSBzdWItdmFsdWVzLiAqLworI2lmIEVOQUJMRShKSVQpICYmIFVTRShKU1ZBTFVFNjQpCisj
ZGVmaW5lIEVOQUJMRV9DT05DVVJSRU5UX0pTIDEKKyNlbmRpZgorCisjaWYgX19oYXNfaW5jbHVk
ZSg8U3lzdGVtL3B0aHJlYWRfbWFjaGRlcC5oPikKKyNkZWZpbmUgSEFWRV9GQVNUX1RMUyAxCisj
ZW5kaWYKKworI2lmIChDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpKSAmJiBIQVZFKEZBU1RfVExT
KQorI2RlZmluZSBFTkFCTEVfRkFTVF9UTFNfSklUIDEKKyNlbmRpZgorCisjaWYgQ1BVKFg4Nikg
fHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkgfHwgQ1BVKE1J
UFMpCisjZGVmaW5lIEVOQUJMRV9NQVNNX1BST0JFIDEKKyNlbHNlCisjZGVmaW5lIEVOQUJMRV9N
QVNNX1BST0JFIDAKKyNlbmRpZgorCisjaWYgIUVOQUJMRShKSVQpCisjdW5kZWYgRU5BQkxFX01B
U01fUFJPQkUKKyNkZWZpbmUgRU5BQkxFX01BU01fUFJPQkUgMAorI2VuZGlmCisKKy8qIElmIHRo
ZSBiYXNlbGluZSBqaXQgaXMgbm90IGF2YWlsYWJsZSwgdGhlbiBkaXNhYmxlIHVwcGVyIHRpZXJz
IGFzIHdlbGwuCisgICBUaGUgTWFjcm9Bc3NlbWJsZXI6OnByb2JlKCkgaXMgYWxzbyByZXF1aXJl
ZCBmb3Igc3VwcG9ydGluZyB0aGUgdXBwZXIgdGllcnMuICovCisjaWYgIUVOQUJMRShKSVQpIHx8
ICFFTkFCTEUoTUFTTV9QUk9CRSkKKyN1bmRlZiBFTkFCTEVfREZHX0pJVAorI3VuZGVmIEVOQUJM
RV9GVExfSklUCisjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDAKKyNkZWZpbmUgRU5BQkxFX0ZUTF9K
SVQgMAorI2VuZGlmCisKKy8qIElmIHRoZSBERkcgaml0IGlzIG5vdCBhdmFpbGFibGUsIHRoZW4g
ZGlzYWJsZSB1cHBlciB0aWVycyBhcyB3ZWxsOiAqLworI2lmICFFTkFCTEUoREZHX0pJVCkKKyN1
bmRlZiBFTkFCTEVfRlRMX0pJVAorI2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCisjZW5kaWYKKwor
LyogVGhpcyBjb250cm9scyB3aGV0aGVyIEIzIGlzIGJ1aWx0LiBCMyBpcyBuZWVkZWQgZm9yIEZU
TCBKSVQgYW5kIFdlYkFzc2VtYmx5ICovCisjaWYgRU5BQkxFKEZUTF9KSVQpCisjZGVmaW5lIEVO
QUJMRV9CM19KSVQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCQVNTRU1CTFkp
CisjaWYgRU5BQkxFKEIzX0pJVCkgJiYgUExBVEZPUk0oQ09DT0EpICYmIENQVShBRERSRVNTNjQp
CisjZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWSAxCisjZWxzZQorI2RlZmluZSBFTkFCTEVfV0VC
QVNTRU1CTFkgMAorI2VuZGlmCisjZW5kaWYKKworLyogVGhlIFNhbXBsaW5nUHJvZmlsZXIgaXMg
dGhlIHByb2JhYmlsaXN0aWMgYW5kIGxvdy1vdmVyaGVhZCBwcm9maWxlciB1c2VkIGJ5CisgKiBK
U0MgdG8gbWVhc3VyZSB3aGVyZSB0aW1lIGlzIHNwZW50IGluc2lkZSBhIEphdmFTY3JpcHQgcHJv
Z3JhbS4KKyAqIEluIGNvbmZpZ3VyYXRpb25zIG90aGVyIHRoYW4gV2luZG93cyBhbmQgRGFyd2lu
LCBiZWNhdXNlIGxheW91dCBvZiBtY29udGV4dF90IGRlcGVuZHMgb24gc3RhbmRhcmQgbGlicmFy
aWVzIChsaWtlIGdsaWJjKSwKKyAqIHNhbXBsaW5nIHByb2ZpbGVyIGlzIGVuYWJsZWQgaWYgV2Vi
S2l0IHVzZXMgcHRocmVhZHMgYW5kIGdsaWJjLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9TQU1Q
TElOR19QUk9GSUxFUikKKyNpZiAhRU5BQkxFKENfTE9PUCkgJiYgKE9TKFdJTkRPV1MpIHx8IEhB
VkUoTUFDSElORV9DT05URVhUKSkKKyNkZWZpbmUgRU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVSIDEK
KyNlbHNlCisjZGVmaW5lIEVOQUJMRV9TQU1QTElOR19QUk9GSUxFUiAwCisjZW5kaWYKKyNlbmRp
ZgorCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkKKyNk
ZWZpbmUgRU5BQkxFX1dFQkFTU0VNQkxZX0ZBU1RfTUVNT1JZIDEKKyNlbmRpZgorCisvKiBDb3Vu
dHMgdXNlcyBvZiB3cml0ZSBiYXJyaWVycyB1c2luZyBzYW1wbGluZyBjb3VudGVycy4gQmUgc3Vy
ZSB0byBhbHNvCisgICBzZXQgRU5BQkxFX1NBTVBMSU5HX0NPVU5URVJTIHRvIDEuICovCisjaWYg
IWRlZmluZWQoRU5BQkxFX1dSSVRFX0JBUlJJRVJfUFJPRklMSU5HKQorI2RlZmluZSBFTkFCTEVf
V1JJVEVfQkFSUklFUl9QUk9GSUxJTkcgMAorI2VuZGlmCisKKy8qIExvZ3MgYWxsIGFsbG9jYXRp
b24tcmVsYXRlZCBhY3Rpdml0eSB0aGF0IGdvZXMgdGhyb3VnaCBmYXN0TWFsbG9jIG9yIHRoZQor
ICAgSlNDIEdDIChib3RoIGNlbGxzIGFuZCBidXR0ZXJmbGllcykuIEFsc28gbG9ncyBtYXJraW5n
LiBOb3RlIHRoYXQgdGhpcworICAgaXNuJ3QgYSBjb21wbGV0ZWx5IGFjY3VyYXRlIHZpZXcgb2Yg
dGhlIGhlYXAgc2luY2UgaXQgZG9lc24ndCBpbmNsdWRlIGFsbAorICAgYnV0dGVyZmx5IHJlc2l6
ZSBvcGVyYXRpb25zLCBkb2Vzbid0IHRlbGwgeW91IHdoYXQgaXMgZ29pbmcgb24gd2l0aCB3ZWFr
CisgICByZWZlcmVuY2VzIChvdGhlciB0aGFuIHRvIHRlbGwgeW91IHdoZW4gdGhleSdyZSBtYXJr
ZWQpLCBhbmQgZG9lc24ndAorICAgdHJhY2sgZGlyZWN0IG1tYXAoKSBhbGxvY2F0aW9ucyBvciB0
aGluZ3MgbGlrZSBKSVQgYWxsb2NhdGlvbi4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfQUxMT0NB
VElPTl9MT0dHSU5HKQorI2RlZmluZSBFTkFCTEVfQUxMT0NBVElPTl9MT0dHSU5HIDAKKyNlbmRp
ZgorCisvKiBFbmFibGUgdmVyaWZpY2F0aW9uIHRoYXQgdGhhdCByZWdpc3RlciBhbGxvY2F0aW9u
cyBhcmUgbm90IG1hZGUgd2l0aGluIGdlbmVyYXRlZCBjb250cm9sIGZsb3cuCisgICBUdXJuZWQg
b24gZm9yIGRlYnVnIGJ1aWxkcy4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfREZHX1JFR0lTVEVS
X0FMTE9DQVRJT05fVkFMSURBVElPTikgJiYgRU5BQkxFKERGR19KSVQpCisjaWYgIWRlZmluZWQo
TkRFQlVHKQorI2RlZmluZSBFTkFCTEVfREZHX1JFR0lTVEVSX0FMTE9DQVRJT05fVkFMSURBVElP
TiAxCisjZWxzZQorI2RlZmluZSBFTkFCTEVfREZHX1JFR0lTVEVSX0FMTE9DQVRJT05fVkFMSURB
VElPTiAwCisjZW5kaWYKKyNlbmRpZgorCisvKiBDb25maWd1cmUgdGhlIEpJVCAqLworI2lmIENQ
VShYODYpICYmIENPTVBJTEVSKE1TVkMpCisjZGVmaW5lIEpTQ19IT1NUX0NBTEwgX19mYXN0Y2Fs
bAorI2VsaWYgQ1BVKFg4NikgJiYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCisjZGVmaW5lIEpT
Q19IT1NUX0NBTEwgX19hdHRyaWJ1dGVfXyAoKGZhc3RjYWxsKSkKKyNlbHNlCisjZGVmaW5lIEpT
Q19IT1NUX0NBTEwKKyNlbmRpZgorCisjaWYgQ1BVKFg4NikgJiYgT1MoV0lORE9XUykKKyNkZWZp
bmUgQ0FMTElOR19DT05WRU5USU9OX0lTX1NURENBTEwgMQorI2lmbmRlZiBDREVDTAorI2lmIENP
TVBJTEVSKE1TVkMpCisjZGVmaW5lIENERUNMIF9fY2RlY2wKKyNlbHNlCisjZGVmaW5lIENERUNM
IF9fYXR0cmlidXRlX18gKChfX2NkZWNsKSkKKyNlbmRpZgorI2VuZGlmCisjZWxzZQorI2RlZmlu
ZSBDQUxMSU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTCAwCisjZW5kaWYKKworI2lmIENQVShYODYp
CisjZGVmaW5lIFdURl9DT01QSUxFUl9TVVBQT1JUU19GQVNUQ0FMTF9DQUxMSU5HX0NPTlZFTlRJ
T04gMQorI2lmbmRlZiBGQVNUQ0FMTAorI2lmIENPTVBJTEVSKE1TVkMpCisjZGVmaW5lIEZBU1RD
QUxMIF9fZmFzdGNhbGwKKyNlbHNlCisjZGVmaW5lIEZBU1RDQUxMICBfX2F0dHJpYnV0ZV9fICgo
ZmFzdGNhbGwpKQorI2VuZGlmCisjZW5kaWYKKyNlbHNlCisjZGVmaW5lIFdURl9DT01QSUxFUl9T
VVBQT1JUU19GQVNUQ0FMTF9DQUxMSU5HX0NPTlZFTlRJT04gMAorI2VuZGlmCisKKyNpZiBFTkFC
TEUoSklUKSAmJiBDQUxMSU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTAorI2RlZmluZSBKSVRfT1BF
UkFUSU9OIENERUNMCisjZWxzZQorI2RlZmluZSBKSVRfT1BFUkFUSU9OCisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpICYmIENQVShBUk02NCkgJiYgKCFFTkFCTEUoRkFTVF9KSVRf
UEVSTUlTU0lPTlMpIHx8ICFDUFUoQVJNNjRFKSkKKyNkZWZpbmUgRU5BQkxFX1NFUEFSQVRFRF9X
WF9IRUFQIDEKKyNlbHNlCisjZGVmaW5lIEVOQUJMRV9TRVBBUkFURURfV1hfSEVBUCAwCisjZW5k
aWYKKworLyogQ29uZmlndXJlIHRoZSBpbnRlcnByZXRlciAqLworI2lmIENPTVBJTEVSKEdDQ19D
T01QQVRJQkxFKQorI2RlZmluZSBIQVZFX0NPTVBVVEVEX0dPVE8gMQorI2VuZGlmCisKKy8qIERl
dGVybWluZSBpZiB3ZSBuZWVkIHRvIGVuYWJsZSBDb21wdXRlZCBHb3RvIE9wY29kZXMgb3Igbm90
OiAqLworI2lmIEhBVkUoQ09NUFVURURfR09UTykgfHwgIUVOQUJMRShDX0xPT1ApCisjZGVmaW5l
IEVOQUJMRV9DT01QVVRFRF9HT1RPX09QQ09ERVMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChV
U0VfTExJTlRfRU1CRURERURfT1BDT0RFX0lEKSAmJiAhRU5BQkxFKENfTE9PUCkgJiYgIUNPTVBJ
TEVSKE1TVkMpICYmIFwKKyAgICAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0
KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIE9TKERBUldJTikpKQorLyogVGhpcyBmZWF0dXJlIHdv
cmtzIGJ5IGVtYmVkZGluZyB0aGUgT3Bjb2RlSUQgaW4gdGhlIDMyIGJpdCBqdXN0IGJlZm9yZSB0
aGUgZ2VuZXJhdGVkIExMaW50IGNvZGUKKyAgIHRoYXQgZXhlY3V0ZXMgZWFjaCBvcGNvZGUuIEl0
IGNhbm5vdCBiZSBzdXBwb3J0ZWQgYnkgdGhlIENMb29wIHNpbmNlIHRoZXJlJ3Mgbm8gd2F5IHRv
IGVtYmVkIHRoZQorICAgT3Bjb2RlSUQgd29yZCBpbiB0aGUgQ0xvb3AncyBzd2l0Y2ggc3RhdGVt
ZW50IGNhc2VzLiBJdCBpcyBhbHNvIGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQgZm9yIE1TVkMu
CisqLworI2RlZmluZSBVU0VfTExJTlRfRU1CRURERURfT1BDT0RFX0lEIDEKKyNlbmRpZgorCisv
KiBVc2UgX19idWlsdGluX2ZyYW1lX2FkZHJlc3MoMSkgdG8gZ2V0IENhbGxGcmFtZSogKi8KKyNp
ZiBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkgJiYgKENQVShBUk02NCkgfHwgQ1BVKFg4Nl82NCkp
CisjZGVmaW5lIFVTRV9CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQorI2VuZGlmCisKKy8qIFJlZ3Vs
YXIgRXhwcmVzc2lvbiBUcmFjaW5nIC0gU2V0IHRvIDEgdG8gdHJhY2UgUmVnRXhwJ3MgaW4ganNj
LiAgUmVzdWx0cyBkdW1wZWQgYXQgZXhpdCAqLworI2RlZmluZSBFTkFCTEVfUkVHRVhQX1RSQUNJ
TkcgMAorCisvKiBZZXQgQW5vdGhlciBSZWdleCBSdW50aW1lIC0gdHVybmVkIG9uIGJ5IGRlZmF1
bHQgZm9yIEpJVCBlbmFibGVkIHBvcnRzLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9ZQVJSX0pJ
VCkgJiYgRU5BQkxFKEpJVCkKKyNkZWZpbmUgRU5BQkxFX1lBUlJfSklUIDEKKworLyogU2V0dGlu
ZyB0aGlzIGZsYWcgY29tcGFyZXMgSklUIHJlc3VsdHMgd2l0aCBpbnRlcnByZXRlciByZXN1bHRz
LiAqLworI2RlZmluZSBFTkFCTEVfWUFSUl9KSVRfREVCVUcgMAorI2VuZGlmCisKKyNpZiBFTkFC
TEUoWUFSUl9KSVQpCisjaWYgQ1BVKEFSTTY0KSB8fCAoQ1BVKFg4Nl82NCkgJiYgIU9TKFdJTkRP
V1MpKQorLyogRW5hYmxlIEpJVCdpbmcgUmVndWxhciBFeHByZXNzaW9ucyB0aGF0IGhhdmUgbmVz
dGVkIHBhcmVudGhlc2lzIGFuZCBiYWNrIHJlZmVyZW5jZXMuICovCisjZGVmaW5lIEVOQUJMRV9Z
QVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TIDEKKyNkZWZpbmUgRU5BQkxFX1lBUlJfSklU
X0JBQ0tSRUZFUkVOQ0VTIDEKKyNlbmRpZgorI2VuZGlmCisKKy8qIElmIGVpdGhlciB0aGUgSklU
IG9yIHRoZSBSZWdFeHAgSklUIGlzIGVuYWJsZWQsIHRoZW4gdGhlIEFzc2VtYmxlciBtdXN0IGJl
CisgICBlbmFibGVkIGFzIHdlbGw6ICovCisjaWYgRU5BQkxFKEpJVCkgfHwgRU5BQkxFKFlBUlJf
SklUKSB8fCAhRU5BQkxFKENfTE9PUCkKKyNpZiBkZWZpbmVkKEVOQUJMRV9BU1NFTUJMRVIpICYm
ICFFTkFCTEVfQVNTRU1CTEVSCisjZXJyb3IgIkNhbm5vdCBlbmFibGUgdGhlIEpJVCBvciBSZWdF
eHAgSklUIHdpdGhvdXQgZW5hYmxpbmcgdGhlIEFzc2VtYmxlciIKKyNlbHNlCisjdW5kZWYgRU5B
QkxFX0FTU0VNQkxFUgorI2RlZmluZSBFTkFCTEVfQVNTRU1CTEVSIDEKKyNlbmRpZgorI2VuZGlm
CisKKy8qIElmIHRoZSBEaXNhc3NlbWJsZXIgaXMgZW5hYmxlZCwgdGhlbiB0aGUgQXNzZW1ibGVy
IG11c3QgYmUgZW5hYmxlZCBhcyB3ZWxsOiAqLworI2lmIEVOQUJMRShESVNBU1NFTUJMRVIpCisj
aWYgZGVmaW5lZChFTkFCTEVfQVNTRU1CTEVSKSAmJiAhRU5BQkxFX0FTU0VNQkxFUgorI2Vycm9y
ICJDYW5ub3QgZW5hYmxlIHRoZSBEaXNhc3NlbWJsZXIgd2l0aG91dCBlbmFibGluZyB0aGUgQXNz
ZW1ibGVyIgorI2Vsc2UKKyN1bmRlZiBFTkFCTEVfQVNTRU1CTEVSCisjZGVmaW5lIEVOQUJMRV9B
U1NFTUJMRVIgMQorI2VuZGlmCisjZW5kaWYKKworLyogQVNTRVJUX0VOQUJMRUQgc2hvdWxkIGJl
IHRydWUgaWYgd2Ugd2FudCB0aGUgY3VycmVudCBjb21waWxhdGlvbiB1bml0IHRvCisgICBkbyBk
ZWJ1ZyBhc3NlcnRpb24gY2hlY2tzIHVuY29uZGl0aW9uYWxseSAoZS5nLiB0cmVhdCBhIGRlYnVn
IEFTU0VSVAorICAgbGlrZSBhIFJFTEVBU0VfQVNTRVJULgorKi8KKyNpZm5kZWYgQVNTRVJUX0VO
QUJMRUQKKyNpZmRlZiBOREVCVUcKKyNkZWZpbmUgQVNTRVJUX0VOQUJMRUQgMAorI2Vsc2UKKyNk
ZWZpbmUgQVNTRVJUX0VOQUJMRUQgMQorI2VuZGlmCisjZW5kaWYKKworI2lmbmRlZiBFTkFCTEVf
RVhDRVBUSU9OX1NDT1BFX1ZFUklGSUNBVElPTgorI2RlZmluZSBFTkFCTEVfRVhDRVBUSU9OX1ND
T1BFX1ZFUklGSUNBVElPTiBBU1NFUlRfRU5BQkxFRAorI2VuZGlmCisKKyNpZiBFTkFCTEUoREZH
X0pJVCkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpICYmIChDUFUoWDg2XzY0KSB8fCBDUFUoQVJN
NjQpKQorI2RlZmluZSBFTkFCTEVfU0lHTkFMX0JBU0VEX1ZNX1RSQVBTIDEKKyNlbmRpZgorCisv
KiBDU1MgU2VsZWN0b3IgSklUIENvbXBpbGVyICovCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19T
RUxFQ1RPUl9KSVQpCisjaWYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkgfHwgKENQVShBUk1f
VEhVTUIyKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhE
QVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKKyNkZWZpbmUgRU5BQkxF
X0NTU19TRUxFQ1RPUl9KSVQgMQorI2Vsc2UKKyNkZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9K
SVQgMAorI2VuZGlmCisjZW5kaWYKKworI2lmIENQVShBUk02NEUpICYmIE9TKERBUldJTikKKyNk
ZWZpbmUgSEFWRV9GSkNWVFpTX0lOU1RSVUNUSU9OIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0o
SU9TKQorI2RlZmluZSBIQVZFX0FQUF9MSU5LUyAxCisjZGVmaW5lIFVTRV9QQVNTS0lUIDEKKyNk
ZWZpbmUgVVNFX1FVSUNLX0xPT0sgMQorI2RlZmluZSBVU0VfU1lTVEVNX1BSRVZJRVcgMQorI2Vu
ZGlmCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1Qp
CisjZGVmaW5lIEhBVkVfQ0VMRVNUSUFMIDEKKyNkZWZpbmUgSEFWRV9DT1JFX0FOSU1BVElPTl9S
RU5ERVJfU0VSVkVSIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBM
QVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKKyNkZWZpbmUgSEFWRV9Q
QVJFTlRBTF9DT05UUk9MU19XSVRIX1VOQkxPQ0tfSEFORExFUiAxCisjZW5kaWYKKworI2lmIFBM
QVRGT1JNKENPQ09BKQorCisjZGVmaW5lIFVTRV9BVkZPVU5EQVRJT04gMQorI2RlZmluZSBVU0Vf
UFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLIDEKKworI2lmICFQTEFURk9STShXQVRDSE9T
KSAmJiAhUExBVEZPUk0oQVBQTEVUVikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmlu
ZSBFTkFCTEVfREFUQV9ERVRFQ1RJT04gMQorI2VuZGlmCisKKy8qIEZJWE1FOiBFbmFibGUgSEFW
RV9QQVJFTlRBTF9DT05UUk9MUyBmb3Igd2F0Y2hPUyBTaW11bGF0b3Igb25jZSByZGFyOi8vcHJv
YmxlbS81NDYwODM4NiBpcyByZXNvbHZlZCAqLworI2lmICFQTEFURk9STShBUFBMRVRWKSAmJiAo
IVBMQVRGT1JNKFdBVENIT1MpIHx8ICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikpCisj
ZGVmaW5lIEhBVkVfUEFSRU5UQUxfQ09OVFJPTFMgMQorI2VuZGlmCisKKyNpZiAhUExBVEZPUk0o
QVBQTEVUVikKKyNkZWZpbmUgSEFWRV9BVktJVCAxCisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJH
TCkKKy8qIFVTRV9BTkdMRT0xIHVzZXMgQU5HTEUgZm9yIHRoZSBXZWJHTCBiYWNrZW5kLgorICAg
SXQgcmVwbGFjZXMgVVNFX09QRU5HTCwgVVNFX09QRU5HTF9FUyBhbmQgVVNFX0VHTC4gKi8KKyNp
ZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgX19oYXNfaW5jbHVk
ZSg8T3BlbkdML09wZW5HTC5oPikpCisjZGVmaW5lIFVTRV9PUEVOR0wgMQorI2RlZmluZSBVU0Vf
T1BFTkdMX0VTIDAKKyNkZWZpbmUgVVNFX0FOR0xFIDAKKyNlbHNlCisjZGVmaW5lIFVTRV9PUEVO
R0wgMAorI2RlZmluZSBVU0VfT1BFTkdMX0VTIDEKKyNkZWZpbmUgVVNFX0FOR0xFIDAKKyNlbmRp
ZgorI2lmIFBMQVRGT1JNKENPQ09BKQorI2lmbmRlZiBHTF9TSUxFTkNFX0RFUFJFQ0FUSU9OCisj
ZGVmaW5lIEdMX1NJTEVOQ0VfREVQUkVDQVRJT04gMQorI2VuZGlmCisjaWYgVVNFKE9QRU5HTCkg
JiYgIWRlZmluZWQoSEFWRV9PUEVOR0xfNCkKKyNkZWZpbmUgSEFWRV9PUEVOR0xfNCAxCisjZW5k
aWYKKyNpZiBVU0UoT1BFTkdMX0VTKSAmJiAhZGVmaW5lZChIQVZFX09QRU5HTF9FU18zKQorI2Rl
ZmluZSBIQVZFX09QRU5HTF9FU18zIDEKKyNlbmRpZgorI2VuZGlmCisjaWYgVVNFX0FOR0xFICYm
IChVU0VfT1BFTkdMIHx8IFVTRV9PUEVOR0xfRVMpCisjZXJyb3IgVVNFX0FOR0xFIGlzIGluY29t
cGF0aWJsZSB3aXRoIFVTRV9PUEVOR0wgYW5kIFVTRV9PUEVOR0xfRVMKKyNlbmRpZgorI2VuZGlm
CisKKyNkZWZpbmUgVVNFX01FVEFMIDEKKworI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZKQorI2Rl
ZmluZSBVU0VfQUNDRVNTSUJJTElUWV9DT05URVhUX01FTlVTIDEKKyNlbmRpZgorCisjZW5kaWYK
KworI2lmIEVOQUJMRShXRUJHTCkKKyNpZiAhZGVmaW5lZChVU0VfQU5HTEUpCisjZGVmaW5lIFVT
RV9BTkdMRSAwCisjZW5kaWYKKworI2lmIChVU0VfQU5HTEUgJiYgKFVTRV9PUEVOR0wgfHwgVVNF
X09QRU5HTF9FUyB8fCAoZGVmaW5lZChVU0VfRUdMKSAmJiBVU0VfRUdMKSkpICYmICFVU0UoVEVY
VFVSRV9NQVBQRVIpCisjZXJyb3IgVVNFX0FOR0xFIGlzIGluY29tcGF0aWJsZSB3aXRoIFVTRV9P
UEVOR0wsIFVTRV9PUEVOR0xfRVMgYW5kIFVTRV9FR0wKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBV
U0UoVEVYVFVSRV9NQVBQRVIpICYmIEVOQUJMRShHUkFQSElDU19DT05URVhUX0dMKSAmJiAhZGVm
aW5lZChVU0VfVEVYVFVSRV9NQVBQRVJfR0wpCisjZGVmaW5lIFVTRV9URVhUVVJFX01BUFBFUl9H
TCAxCisjZW5kaWYKKworI2lmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpCisjZGVmaW5l
IEVOQUJMRV9CUkFOQ0hfQ09NUEFDVElPTiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9USFJFQURJTkdfTElCRElTUEFUQ0gpICYmIEhBVkUoRElTUEFUQ0hfSCkKKyNkZWZpbmUgRU5B
QkxFX1RIUkVBRElOR19MSUJESVNQQVRDSCAxCisjZWxpZiAhZGVmaW5lZChFTkFCTEVfVEhSRUFE
SU5HX09QRU5NUCkgJiYgZGVmaW5lZChfT1BFTk1QKQorI2RlZmluZSBFTkFCTEVfVEhSRUFESU5H
X09QRU5NUCAxCisjZWxpZiAhZGVmaW5lZChUSFJFQURJTkdfR0VORVJJQykKKyNkZWZpbmUgRU5B
QkxFX1RIUkVBRElOR19HRU5FUklDIDEKKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVk
ZSA8d3RmL2dsaWIvR1R5cGVkZWZzLmg+CisjZW5kaWYKKworI2lmICFkZWZpbmVkKFVTRV9FWFBP
UlRfTUFDUk9TKSAmJiAoUExBVEZPUk0oQ09DT0EpIHx8IE9TKFdJTkRPV1MpKQorI2RlZmluZSBV
U0VfRVhQT1JUX01BQ1JPUyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQorI2RlZmluZSBVU0VfVU5JWF9ET01BSU5fU09DS0VUUyAxCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKFVTRV9JTUxBTkdfRk9OVF9MSU5LMikKKyNkZWZpbmUgVVNFX0lNTEFOR19GT05U
X0xJTksyIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0dDX1ZBTElEQVRJT04pICYm
ICFkZWZpbmVkKE5ERUJVRykKKyNkZWZpbmUgRU5BQkxFX0dDX1ZBTElEQVRJT04gMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQklORElOR19JTlRFR1JJVFkpICYmICFPUyhXSU5ET1dT
KQorI2RlZmluZSBFTkFCTEVfQklORElOR19JTlRFR1JJVFkgMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfVFJFRV9ERUJVR0dJTkcpCisjaWYgIWRlZmluZWQoTkRFQlVHKQorI2RlZmlu
ZSBFTkFCTEVfVFJFRV9ERUJVR0dJTkcgMQorI2Vsc2UKKyNkZWZpbmUgRU5BQkxFX1RSRUVfREVC
VUdHSU5HIDAKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiBFbmFibGUgdGhpcyB0byBwdXQgZWFj
aCBJc29IZWFwIGFuZCBvdGhlciBhbGxvY2F0aW9uIGNhdGVnb3JpZXMgaW50byB0aGVpciBvd24g
bWFsbG9jIGhlYXBzLCBzbyB0aGF0IHRvb2xzIGxpa2Ugdm1tYXAgY2FuIHNob3cgaG93IGJpZyBl
YWNoIGhlYXAgaXMuCisgKiBUdXJuIEJFTkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOIG9uIGlu
IGJtYWxsb2MgdG9nZXRoZXIgd2hlbiB1c2luZyB0aGlzLgorICovCisjaWYgIWRlZmluZWQoRU5B
QkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTikKKyNkZWZpbmUgRU5BQkxFX01BTExPQ19IRUFQX0JS
RUFLRE9XTiAwCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBVU0VfQ09S
RU1FRElBIDEKKyNkZWZpbmUgVVNFX1ZJREVPVE9PTEJPWCAxCisjZGVmaW5lIEhBVkVfQVZGT1VO
REFUSU9OX1ZJREVPX09VVFBVVCAxCisjZGVmaW5lIEhBVkVfQ09SRV9WSURFTyAxCisjZGVmaW5l
IEhBVkVfTUVESUFfUExBWUVSIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVm
aW5lIEhBVkVfQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCAxCisjZW5kaWYKKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX0FWRk9VTkRBVElPTl9MRUdJQkxFX09V
VFBVVF9TVVBQT1JUIDEKKyNkZWZpbmUgSEFWRV9NRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09S
SyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX0FWRk9VTkRB
VElPTl9MT0FERVJfREVMRUdBVEUgMQorI2VuZGlmCisKKyNpZiAhUExBVEZPUk0oV0lOKQorI2Rl
ZmluZSBVU0VfUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SIDEKKyNlbmRp
ZgorCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUg
SEFWRV9BUFBMRV9HUkFQSElDU19DT05UUk9MIDEKKyNkZWZpbmUgSEFWRV9OU0NVUlNPUiAxCisj
ZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgVVNFX0NPUkVBVURJTyAxCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKFVTRV9aTElCKQorI2RlZmluZSBVU0VfWkxJQiAxCisjZW5kaWYK
KworI2lmbmRlZiBIQVZFX1FPU19DTEFTU0VTCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5l
IEhBVkVfUU9TX0NMQVNTRVMgMQorI2VuZGlmCisjZW5kaWYKKworI2lmbmRlZiBIQVZFX1ZPVUNI
RVJTCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIEhBVkVfVk9VQ0hFUlMgMQorI2VuZGlm
CisjZW5kaWYKKworI2RlZmluZSBVU0VfR1JBTU1BUl9DSEVDS0lORyAxCisKKyNpZiBQTEFURk9S
TShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQorI2RlZmluZSBVU0VfVU5JRklFRF9URVhUX0NIRUNL
SU5HIDEKKyNlbmRpZgorI2lmIFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgVVNFX0FVVE9NQVRJQ19U
RVhUX1JFUExBQ0VNRU5UIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQorLyogU29tZSBw
bGF0Zm9ybXMgcHJvdmlkZSBVSSBmb3Igc3VnZ2VzdGluZyBhdXRvY29ycmVjdGlvbi4gKi8KKyNk
ZWZpbmUgVVNFX0FVVE9DT1JSRUNUSU9OX1BBTkVMIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0o
Q09DT0EpCisvKiBTb21lIHBsYXRmb3JtcyB1c2Ugc3BlbGxpbmcgYW5kIGF1dG9jb3JyZWN0aW9u
IG1hcmtlcnMgdG8gcHJvdmlkZSB2aXN1YWwgY3VlLiBPbiBzdWNoIHBsYXRmb3JtLCBpZiB3b3Jk
IHdpdGggbWFya2VyIGlzIGVkaXRlZCwgd2UgbmVlZCB0byByZW1vdmUgdGhlIG1hcmtlci4gKi8K
KyNkZWZpbmUgVVNFX01BUktFUl9SRU1PVkFMX1VQT05fRURJVElORyAxCisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgVVNFX0lOU0VSVElPTl9VTkRPX0dST1VQSU5HIDEKKyNl
bmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIEhBVkVfQVZBU1NFVFJFQURFUiAx
CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBVU0VfQVVESU9fU0VTU0lP
TiAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX0lPU1VSRkFD
RSAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1Nf
RkFNSUxZX1NJTVVMQVRPUikKKyNkZWZpbmUgSEFWRV9JT1NVUkZBQ0VfQ09SRUlNQUdFX1NVUFBP
UlQgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oSU9T
X0ZBTUlMWV9TSU1VTEFUT1IpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgSEFW
RV9JT1NVUkZBQ0VfQUNDRUxFUkFUT1IgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkK
KyNkZWZpbmUgRU5BQkxFX1JFU09VUkNFX1VTQUdFIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpCisjdW5kZWYgRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMCisj
ZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCisjZW5kaWYKKworI2lmIENPTVBJTEVS
KE1TVkMpCisjdW5kZWYgX19TVERDX0ZPUk1BVF9NQUNST1MKKyNkZWZpbmUgX19TVERDX0ZPUk1B
VF9NQUNST1MKKyN1bmRlZiBfX1NURENfTElNSVRfTUFDUk9TCisjZGVmaW5lIF9fU1REQ19MSU1J
VF9NQUNST1MKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBIQVZFX05TX0FD
VElWSVRZIDEKKyNlbmRpZgorCisvKiBEaXNhYmxlIFNoYXJlZEFycmF5QnVmZmVycyB1bnRpbCBT
cGVjdHJlIHNlY3VyaXR5IGNvbmNlcm5zIGFyZSBtaXRpZ2F0ZWQuICovCisjZGVmaW5lIEVOQUJM
RV9TSEFSRURfQVJSQVlfQlVGRkVSIDAKKworI2lmIChPUyhEQVJXSU4pICYmIFVTRShDRykpIHx8
IChVU0UoRlJFRVRZUEUpICYmICFQTEFURk9STShHVEspKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAo
VVNFKENHKSB8fCBVU0UoQ0FJUk8pKSkKKyN1bmRlZiBFTkFCTEVfT1BFTlRZUEVfTUFUSAorI2Rl
ZmluZSBFTkFCTEVfT1BFTlRZUEVfTUFUSCAxCisjZW5kaWYKKworLyogU2V0IFRBUkdFVF9PU19J
UEhPTkUgdG8gMCBieSBkZWZhdWx0IHRvIGFsbG93IHVzaW5nIGl0IGFzIGEgZ3VhcmQgCisgKiBp
biBjcm9zcy1wbGF0Zm9ybSB0aGUgc2FtZSB3YXkgYXMgaXQgaXMgdXNlZCBpbiBPUyhEQVJXSU4p
IGNvZGUuICovIAorI2lmICFkZWZpbmVkKFRBUkdFVF9PU19JUEhPTkUpICYmICFPUyhEQVJXSU4p
CisjZGVmaW5lIFRBUkdFVF9PU19JUEhPTkUgMAorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NP
QSkKKyNkZWZpbmUgVVNFX01FRElBVE9PTEJPWCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENP
Q09BKQorI2RlZmluZSBVU0VfT1NfTE9HIDEKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQor
I2RlZmluZSBVU0VfT1NfU1RBVEUgMQorI2VuZGlmCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENP
Q09BKQorI2RlZmluZSBIQVZFX1NFQ19UUlVTVF9TRVJJQUxJWkFUSU9OIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoV1RGX0RFRkFVTFRfRVZFTlRfTE9PUCkKKyNkZWZpbmUgV1RGX0RFRkFVTFRf
RVZFTlRfTE9PUCAxCisjZW5kaWYKKworI2lmIFdURl9ERUZBVUxUX0VWRU5UX0xPT1AKKyNpZiBV
U0UoR0xJQikKKy8qIFVzZSBHTGliJ3MgZXZlbnQgbG9vcCBhYnN0cmFjdGlvbi4gUHJpbWFyaWx5
IEdUSyBwb3J0IHVzZXMgaXQuICovCisjZGVmaW5lIFVTRV9HTElCX0VWRU5UX0xPT1AgMQorI2Vs
aWYgT1MoV0lORE9XUykKKy8qIFVzZSBXaW5kb3dzIG1lc3NhZ2UgcHVtcCBhYnN0cmFjdGlvbi4K
KyAqIEV2ZW4gaWYgdGhlIHBvcnQgaXMgQXBwbGVXaW4sIHdlIHVzZSB0aGUgV2luZG93cyBtZXNz
YWdlIHB1bXAgc3lzdGVtIGZvciB0aGUgZXZlbnQgbG9vcCwKKyAqIHNvIHRoYXQgVVNFKFdJTkRP
V1NfRVZFTlRfTE9PUCkgJiYgVVNFKENGKSBjYW4gYmUgdHJ1ZS4KKyAqIEFuZCBQTEFURk9STShX
SU4pIGFuZCBQTEFURk9STShHVEspIGFyZSBleGNsdXNpdmUuIElmIHRoZSBwb3J0IGlzIEdUSywK
KyAqIFBMQVRGT1JNKFdJTikgc2hvdWxkIGJlIGZhbHNlLiBBbmQgaW4gdGhhdCBjYXNlLCBHTGli
J3MgZXZlbnQgbG9vcCBpcyB1c2VkLgorICovCisjZGVmaW5lIFVTRV9XSU5ET1dTX0VWRU5UX0xP
T1AgMQorI2VsaWYgUExBVEZPUk0oQ09DT0EpCisvKiBPUyBYIGFuZCBJT1MuIFVzZSBDb3JlRm91
bmRhdGlvbiAmIEdDRCBhYnN0cmFjdGlvbi4gKi8KKyNkZWZpbmUgVVNFX0NPQ09BX0VWRU5UX0xP
T1AgMQorI2Vsc2UKKyNkZWZpbmUgVVNFX0dFTkVSSUNfRVZFTlRfTE9PUCAxCisjZW5kaWYKKyNl
bmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIFVTRV9NRURJQVJFTU9URSAxCisj
ZW5kaWYKKworI2lmIENPTVBJTEVSKE1TVkMpCisvKiBFbmFibGUgc3RyaWN0IHJ1bnRpbWUgc3Rh
Y2sgYnVmZmVyIGNoZWNrcy4gKi8KKyNwcmFnbWEgc3RyaWN0X2dzX2NoZWNrKG9uKQorI2VuZGlm
CisKKyNpZiBQTEFURk9STShNQUMpCisjZGVmaW5lIEhBVkVfVE9VQ0hfQkFSIDEKKyNkZWZpbmUg
VVNFX0RJQ1RBVElPTl9BTFRFUk5BVElWRVMgMQorCisjaWYgZGVmaW5lZChfX0xQNjRfXykKKyNk
ZWZpbmUgRU5BQkxFX1dFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSIDEKKyNlbmRpZgorI2Vu
ZGlmIC8qIFBMQVRGT1JNKE1BQykgKi8KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
V0VCX1JUQykKKyNkZWZpbmUgVVNFX0xJQldFQlJUQyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JN
KE1BQykgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgVVNFKEdD
UllQVCkKKyNkZWZpbmUgSEFWRV9SU0FfUFNTIDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1B
QykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDE1MDApIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisjZGVmaW5lIFVTRV9T
T1VSQ0VfQVBQTElDQVRJT05fQVVESVRfREFUQSAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCAoUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTMwMDAwKQorI2RlZmluZSBIQVZFX0hTVFNfU1RPUkFHRV9QQVRIIDEKKyNlbmRpZgorCisjaWYg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0
MDApIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEhB
VkVfVVJMX0ZPUk1BVFRJTkcgMQorI2VuZGlmCisKKyNpZiAhT1MoV0lORE9XUykKKyNkZWZpbmUg
SEFWRV9TVEFDS19CT1VORFNfRk9SX05FV19USFJFQUQgMQorI2VuZGlmCisKKyNpZiBQTEFURk9S
TShNQUMpIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5l
IEhBVkVfQVZDT05URU5US0VZU0VTU0lPTiAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCBQTEFURk9S
TShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBIQVZFX1NFQ19LRVlfUFJP
WFkgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKENBKQorI2RlZmluZSBV
U0VfSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFIDEKKyNlbmRpZgorCisvKiBGSVhNRTog
U2hvdWxkIHRoaXMgYmUgZW5hYmxlZCBvciBJT1NfRkFNSUxZLCBub3QganVzdCBJT1M/ICovCisj
aWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDE0MDApIHx8IFBMQVRGT1JNKElPUykKKyNkZWZpbmUgSEFWRV9GT1VOREFUSU9OX1dJVEhfU0FW
RV9DT09LSUVTX1dJVEhfQ09NUExFVElPTl9IQU5ETEVSIDEKKyNlbmRpZgorCisvKiBGSVhNRTog
U2hvdWxkIHRoaXMgYmUgZW5hYmxlZCBmb3IgSU9TX0ZBTUlMWSwgbm90IGp1c3QgSU9TPyAqLwor
I2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxNDAwKSB8fCBQTEFURk9STShJT1MpCisjZGVmaW5lIEhBVkVfRk9VTkRBVElPTl9XSVRIX1NB
TUVfU0lURV9DT09LSUVfU1VQUE9SVCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEIDwgMTAxNDAwCisjZGVmaW5lIEhBVkVfTlNI
VFRQQ09PS0lFU1RPUkFHRV9fSU5JVFdJVEhJREVOVElGSUVSX1dJVEhfSU5BQ0NVUkFURV9OVUxM
QUJJTElUWSAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX0NG
TkVUV09SS19XSVRIX0NPTlRFTlRfRU5DT0RJTkdfU05JRkZJTkdfT1ZFUlJJREUgMQorLyogVGhl
IG92ZXJyaWRlIGlzbid0IG5lZWRlZCBvbiBpT1MgZmFtaWx5LCBhcyB0aGUgZGVmYXVsdCBiZWhh
dmlvciBpcyB0byBub3Qgc25pZmYuICovCisvKiBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkg
YmUgZW5hYmxlZCBvbiAxMC4xMy4yIGFuZCBuZXdlciwgbm90IGp1c3QgMTAuMTQgYW5kIG5ld2Vy
LiAqLworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDE0MDAKKyNkZWZpbmUgVVNFX0NGTkVUV09SS19DT05URU5UX0VOQ09ESU5HX1NOSUZG
SU5HX09WRVJSSURFIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgKFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkg
fHwgUExBVEZPUk0oR1RLKQorI2RlZmluZSBIQVZFX09TX0RBUktfTU9ERV9TVVBQT1JUIDEKKyNl
bmRpZgorCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTQwMAorI2RlZmluZSBIQVZFX0NHX0ZPTlRfUkVOREVSSU5HX0dFVF9GT05UX1NN
T09USElOR19ESVNBQkxFRCAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCBQTEFURk9STShJT1NfRkFN
SUxZKQorI2RlZmluZSBIQVZFX0NBX1dIRVJFX0FERElUSVZFX1RSQU5TRk9STVNfQVJFX1JFVkVS
U0VEIDEKKyNlbmRpZgorCisjaWZkZWYgX19BUFBMRV9fCisjZGVmaW5lIEhBVkVfRlVOQ19VU0xF
RVAgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdQRSkKKy8qIEZJ
WE1FOiBUaGlzIHJlYWxseSBuZWVkcyBhIGRlc2NyaXB0aXZlIG5hbWUsIHRoaXMgIm5ldyB0aGVt
ZSIgd2FzIGFkZGVkIGluIDIwMDguICovCisjZGVmaW5lIFVTRV9ORVdfVEhFTUUgMQorI2VuZGlm
CisKKyNpZiBQTEFURk9STShNQUMpCisjZGVmaW5lIEhBVkVfV0lORE9XX1NFUlZFUl9PQ0NMVVNJ
T05fTk9USUZJQ0FUSU9OUyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmlu
ZSBIQVZFX1NFQ19BQ0NFU1NfQ09OVFJPTCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykK
Ky8qIEZJWE1FOiBTYWZhcmlTZXJ2aWNlcy5mcmFtZXdvcmsgZXhpc3RzIG9uIG1hY09TLiBJdCBp
cyBvbmx5IHVzZWQgYnkgV2ViS2l0IG9uIGlPUywgc28gdGhlIGJlaGF2aW9yIGlzIGNvcnJlY3Qs
IGJ1dCB0aGUgbmFtZSBpcyBtaXNsZWFkaW5nLiAqLworI2RlZmluZSBIQVZFX1NBRkFSSV9TRVJW
SUNFU19GUkFNRVdPUksgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JN
KElPUykgfHwgUExBVEZPUk0oV0FUQ0hPUykKKyNkZWZpbmUgSEFWRV9TQUZFX0JST1dTSU5HIDEK
KyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TKQorI2RlZmluZSBIQVZFX0xJTktfUFJFVklFVyAx
CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorLyogRklYTUU6IFRoaXMgaXMgYSBVU0Ug
c3R5bGUgbWFjcm8sIGFzIGl0IHRyaWdnZXJzIHRoZSB1c2Ugb2YgQ0ZVUkxDb25uZWN0aW9uIGZy
YW1ld29yayBzdHVicy4gKi8KKy8qIEZJWE1FOiBJcyB0aGlzIHN0aWxsIG5lY2Vzc2FyeT8gQ0ZV
UkxDb25uZWN0aW9uIGlzbid0IHVzZWQgb24gQ29jb2EgcGxhdGZvcm1zIGFueSBtb3JlLiAqLwor
I2RlZmluZSBFTkFCTEVfU0VDX0lURU1fU0hJTSAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShJ
T1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTQwMCkpCisjZGVmaW5lIEhBVkVfQUNDRVNTSUJJTElUWV9TVVBQT1JUIDEK
KyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUFYX0FMTE9X
RUQgPj0gMTMwMTAwCisjZGVmaW5lIEhBVkVfQUNDRVNTSUJJTElUWV9CVU5ETEVTX1BBVEggMQor
I2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisjZGVmaW5lIEVOQUJMRV9GVUxMX0tFWUJPQVJE
X0FDQ0VTUyAxCisjZW5kaWYKKworI2lmICgoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFBM
QVlTVEFUSU9OKSB8fCBQTEFURk9STShXUEUpKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSkg
fHwgUExBVEZPUk0oR1RLKQorI2RlZmluZSBFTkFCTEVfS0lORVRJQ19TQ1JPTExJTkcgMQorI2Vu
ZGlmCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkKKyNkZWZpbmUgSEFWRV9BVVRI
T1JJWkFUSU9OX1NUQVRVU19GT1JfTUVESUFfVFlQRSAxCisjZW5kaWYKKworI2lmIChQTEFURk9S
TShNQUMpICYmIChfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxNDA0KSkgfHwgKFBMQVRGT1JNKElP
UykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwICYmIF9fSVBI
T05FX09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTIwMjAwKSB8fCBQTEFURk9STShXQVRDSE9T
KSB8fCBQTEFURk9STShBUFBMRVRWKQorI2RlZmluZSBIQVZFX0NGTkVUV09SS19PVkVSUklERV9T
RVNTSU9OX0NPT0tJRV9BQ0NFUFRfUE9MSUNZIDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IChQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MzAwMDApCisjZGVmaW5lIEhBVkVfQ0ZORVRXT1JLX05TVVJMU0VTU0lPTl9TVFJJQ1RSVVNURVZB
TFVBVEUgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNkZWZp
bmUgSEFWRV9DRk5FVFdPUktfTkVHT1RJQVRFRF9TU0xfUFJPVE9DT0xfQ0lQSEVSIDEKKyNlbmRp
ZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDE2MDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDApCisjZGVmaW5lIEhBVkVfQ0ZORVRXT1JLX01FVFJJ
Q1NfQVBJU19WNCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDAKKyNkZWZpbmUgSEFWRV9DU0NIRUNLRklYRElT
QUJMRSAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorI2RlZmlu
ZSBIQVZFX1NBTkRCT1hfSVNTVUVfTUFDSF9FWFRFTlNJT05fVE9fUFJPQ0VTU19CWV9BVURJVF9U
T0tFTiAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorI2RlZmlu
ZSBIQVZFX1NBTkRCT1hfSVNTVUVfUkVBRF9FWFRFTlNJT05fVE9fUFJPQ0VTU19CWV9BVURJVF9U
T0tFTiAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19J
UEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKQorI2RlZmluZSBIQVZFX01E
TlNfRkFTVF9SRUdJU1RSQVRJT04gMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisjZGVm
aW5lIEVOQUJMRV9NT05PU1BBQ0VfRk9OVF9FWENFUFRJT04gKF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPCAxMDE1MDApCisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2RlZmlu
ZSBFTkFCTEVfTU9OT1NQQUNFX0ZPTlRfRVhDRVBUSU9OIChfX0lQSE9ORV9PU19WRVJTSU9OX01J
Tl9SRVFVSVJFRCA8IDEzMDAwMCkKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDApIHx8IFBMQVRGT1JNKElPU19G
QU1JTFkpCisjZGVmaW5lIEhBVkVfRElTQUxMT1dBQkxFX1VTRVJfSU5TVEFMTEVEX0ZPTlRTIDEK
KyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDE1MDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9P
U19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApCisjZGVmaW5lIEhBVkVfQ1RGT05UQ1JF
QVRFRk9SQ0hBUkFDVEVSU1dJVEhMQU5HVUFHRUFORE9QVElPTiAxCisjZW5kaWYKKworI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEzMDAwMAorI2RlZmluZSBIQVZFX0FSS0lUX1FVSUNLX0xPT0tfUFJFVklFV19JVEVNIDEKKyNl
bmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTMwMDAwCisjZGVmaW5lIEhBVkVfVUlfV0tfRE9DVU1FTlRfQ09OVEVY
VCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBFTkFCTEVf
UExBVEZPUk1fRFJJVkVOX1RFWFRfQ0hFQ0tJTkcgMQorI2RlZmluZSBIQVZFX0hPVkVSX0dFU1RV
UkVfUkVDT0dOSVpFUiAxCisjZGVmaW5lIEhBVkVfVUlfUEFSQUxMQVhfVFJBTlNJVElPTl9HRVNU
VVJFX1JFQ09HTklaRVIgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyNkZWZpbmUgSEFWRV9BTExPV1NfU0VOU0lUSVZFX0xPR0dJTkcgMQorI2VuZGlmCisKKyNp
ZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTUwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNkZWZpbmUgSEFWRV9GQUlSUExBWVNUUkVB
TUlOR19DRU5DX0lOSVREQVRBIDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKElPUykgJiYgX19J
UEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKSB8fCBQTEFURk9STShXQVRD
SE9TKSB8fCBQTEFURk9STShBUFBMRVRWKQorI2RlZmluZSBIQVZFX1VJX1NDUk9MTF9WSUVXX0lO
RElDQVRPUl9GTEFTSElOR19TUEkgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oSU9TKSAmJiBf
X0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApIHx8IFBMQVRGT1JNKFdB
VENIT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpCisjZGVmaW5lIEhBVkVfQVBQX0xJTktTX1dJVEhf
SVNFTkFCTEVEIDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1Nf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKQorI2RlZmluZSBIQVZFX1JPVVRFX1NIQVJJ
TkdfUE9MSUNZX0xPTkdfRk9STV9WSURFTyAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShJT1Mp
ICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCAmJiAhUExBVEZP
Uk0oSU9TX1NJTVVMQVRPUikpCisjZGVmaW5lIEhBVkVfREVWSUNFX01BTkFHRU1FTlQgMQorI2Vu
ZGlmCisKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dF
RCA8IDEwMTUwMAorI2RlZmluZSBVU0VfUkVBTFBBVEhfRk9SX0RMT1BFTl9QUkVGTElHSFQgMQor
I2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTUwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09T
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwg
UExBVEZPUk0oQVBQTEVUVikKKyNkZWZpbmUgSEFWRV9OU1VSTFNFU1NJT05fV0VCU09DS0VUIDEK
KyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDE1MDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZP
Uk0oQVBQTEVUVikKKyNkZWZpbmUgSEFWRV9BVlBMQVlFUl9SRVNPVVJDRV9DT05TRVJWQVRJT05f
TEVWRUwgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVf
T1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8
fCBQTEFURk9STShBUFBMRVRWKQorI2RlZmluZSBIQVZFX0NPUkVURVhUX0FVVE9fT1BUSUNBTF9T
SVpJTkcgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEIDwgMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9P
U19WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEzMDAwMCkKKyNkZWZpbmUgSEFWRV9OU0ZPTlRfV0lU
SF9PUFRJQ0FMX1NJWklOR19CVUcgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oSU9TKSB8fCAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUw
MCkpCisjZGVmaW5lIEhBVkVfQVBQX1NTTyAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShJT1Mp
ICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCB8fCBQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCBQ
TEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9STShBUFBMRVRWKSB8fCBQTEFURk9STShNQUNDQVRB
TFlTVCkKKyNkZWZpbmUgSEFWRV9UTFNfUFJPVE9DT0xfVkVSU0lPTl9UIDEKKyNlbmRpZgorCisj
aWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0o
QVBQTEVUVikgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEhBVkVfU0VDX1RSVVNU
X0VWQUxVQVRFX1dJVEhfRVJST1IgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpIHx8IFBM
QVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBVU0VfVUlDT05URVhUTUVOVSAxCisjZW5kaWYK
KworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDE1MDAKKyNkZWZpbmUgSEFWRV9TVUJWSUVXU19JVkFSX1NQSSAxCisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEIDwgMTAxNTAw
CisjZGVmaW5lIEhBVkVfU1VCVklFV1NfSVZBUl9ERUNMQVJFRF9CWV9TREsgMQorI2VuZGlmCisK
KyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9P
U19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8
IFBMQVRGT1JNKEFQUExFVFYpCisjZGVmaW5lIFVTRV9QTEFURk9STV9TWVNURU1fRkFMTEJBQ0tf
TElTVCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01BWF9BTExPV0VEID49IDEwMTUwMAorI2RlZmluZSBIQVZFX0FYX0NMSUVOVF9UWVBFIDEKKyNl
bmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDE1MDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0o
QVBQTEVUVikKKyNkZWZpbmUgSEFWRV9ERVNJR05fU1lTVEVNX1VJX0ZPTlRTIDEKKyNlbmRpZgor
CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDE0MDApIHx8IChQTEFURk9STShJT1MpICYmICFQTEFURk9STShJT1NfU0lNVUxBVE9SKSkK
KyNkZWZpbmUgSEFWRV9ERVZJQ0VfSURFTlRJVFkgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyNkZWZpbmUgSEFWRV9EQVRBX1BST1RFQ1RJT05fS0VZQ0hBSU4g
MQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTUwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9S
TShJT1NfRkFNSUxZX1NJTVVMQVRPUikpCisjZGVmaW5lIEhBVkVfTkVBUl9GSUVMRCAxCisjZW5k
aWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8ICghKGRlZmluZWQoVVNFX1NZU1RFTV9N
QUxMT0MpICYmIFVTRV9TWVNURU1fTUFMTE9DKSAmJiAoT1MoTElOVVgpICYmIChQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkpKSkKKyNkZWZpbmUgVVNFX0JNQUxMT0NfTUVNT1JZX0ZPT1RQ
UklOVF9BUEkgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNk
ZWZpbmUgSEFWRV9PU19TSUdOUE9TVCAxCisjZW5kaWYKClByb3BlcnR5IGNoYW5nZXMgb246IFNv
dXJjZS9XVEYvd3RmL09TLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMCww
ICsxICMjCituYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291
cmNlL1dURi93dGYvT1MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9PUy5oCShyZXZp
c2lvbiAyNTQ0MDkpCisrKyBTb3VyY2UvV1RGL3d0Zi9PUy5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw5MSArMzAsNDYgQEAKIC8qIEluY2x1ZGUgY29tcGlsZXIgc3BlY2lmaWMgbWFjcm9zICovCiAj
aW5jbHVkZSA8d3RmL0NvbXBpbGVyLmg+CiAKLS8qIEluY2x1ZGUgQ1BVIHNwZWNpZmljIG1hY3Jv
cyAqLwotI2luY2x1ZGUgPHd0Zi9DUFUuaD4KLQotLyogPT09PSBQTEFURk9STSBoYW5kbGVzIE9T
LCBvcGVyYXRpbmcgZW52aXJvbm1lbnQsIGdyYXBoaWNzIEFQSSwgYW5kCi0gICBDUFUuIFRoaXMg
bWFjcm8gd2lsbCBiZSBwaGFzZWQgb3V0IGluIGZhdm9yIG9mIHBsYXRmb3JtIGFkYXB0YXRpb24K
LSAgIG1hY3JvcywgcG9saWN5IGRlY2lzaW9uIG1hY3JvcywgYW5kIHRvcC1sZXZlbCBwb3J0IGRl
ZmluaXRpb25zLiA9PT09ICovCi0jZGVmaW5lIFBMQVRGT1JNKFdURl9GRUFUVVJFKSAoZGVmaW5l
ZCBXVEZfUExBVEZPUk1fIyNXVEZfRkVBVFVSRSAgJiYgV1RGX1BMQVRGT1JNXyMjV1RGX0ZFQVRV
UkUpCi0KLQotLyogPT09PSBQbGF0Zm9ybSBhZGFwdGF0aW9uIG1hY3JvczogdGhlc2UgZGVzY3Jp
YmUgcHJvcGVydGllcyBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LiA9PT09ICovCi0KLS8qIENQ
VSgpIC0gdGhlIHRhcmdldCBDUFUgYXJjaGl0ZWN0dXJlICovCi0jZGVmaW5lIENQVShXVEZfRkVB
VFVSRSkgKGRlZmluZWQgV1RGX0NQVV8jI1dURl9GRUFUVVJFICAmJiBXVEZfQ1BVXyMjV1RGX0ZF
QVRVUkUpCi0vKiBIQVZFKCkgLSBzcGVjaWZpYyBzeXN0ZW0gZmVhdHVyZXMgKGhlYWRlcnMsIGZ1
bmN0aW9ucyBvciBzaW1pbGFyKSB0aGF0IGFyZSBwcmVzZW50IG9yIG5vdCAqLwotI2RlZmluZSBI
QVZFKFdURl9GRUFUVVJFKSAoZGVmaW5lZCBIQVZFXyMjV1RGX0ZFQVRVUkUgICYmIEhBVkVfIyNX
VEZfRkVBVFVSRSkKLS8qIE9TKCkgLSB1bmRlcmx5aW5nIG9wZXJhdGluZyBzeXN0ZW07IG9ubHkg
dG8gYmUgdXNlZCBmb3IgbWFuZGF0ZWQgbG93LWxldmVsIHNlcnZpY2VzIGxpa2UgCi0gICB2aXJ0
dWFsIG1lbW9yeSwgbm90IHRvIGNob29zZSBhIEdVSSB0b29sa2l0ICovCi0jZGVmaW5lIE9TKFdU
Rl9GRUFUVVJFKSAoZGVmaW5lZCBXVEZfT1NfIyNXVEZfRkVBVFVSRSAgJiYgV1RGX09TXyMjV1RG
X0ZFQVRVUkUpCi0KLQotLyogPT09PSBQb2xpY3kgZGVjaXNpb24gbWFjcm9zOiB0aGVzZSBkZWZp
bmUgcG9saWN5IGNob2ljZXMgZm9yIGEgcGFydGljdWxhciBwb3J0LiA9PT09ICovCi0KLS8qIFVT
RSgpIC0gdXNlIGEgcGFydGljdWxhciB0aGlyZC1wYXJ0eSBsaWJyYXJ5IG9yIG9wdGlvbmFsIE9T
IHNlcnZpY2UgKi8KLSNkZWZpbmUgVVNFKFdURl9GRUFUVVJFKSAoZGVmaW5lZCBVU0VfIyNXVEZf
RkVBVFVSRSAgJiYgVVNFXyMjV1RGX0ZFQVRVUkUpCi0vKiBFTkFCTEUoKSAtIHR1cm4gb24gYSBz
cGVjaWZpYyBmZWF0dXJlIG9mIFdlYktpdCAqLwotI2RlZmluZSBFTkFCTEUoV1RGX0ZFQVRVUkUp
IChkZWZpbmVkIEVOQUJMRV8jI1dURl9GRUFUVVJFICAmJiBFTkFCTEVfIyNXVEZfRkVBVFVSRSkK
LQotCi0vKiBNSVBTIHJlcXVpcmVzIGFsbG9jYXRvcnMgdG8gdXNlIGFsaWduZWQgbWVtb3J5ICov
Ci0jaWYgQ1BVKE1JUFMpIHx8IENQVShNSVBTNjQpCi0jZGVmaW5lIFVTRV9BUkVOQV9BTExPQ19B
TElHTk1FTlRfSU5URUdFUiAxCi0jZW5kaWYKLQotLypBUk12NVRFIHJlcXVpcmVzIGFsbG9jYXRv
cnMgdG8gdXNlIGFsaWduZWQgbWVtb3J5Ki8KLSNpZiBkZWZpbmVkKF9fQVJNX0FSQ0hfNUVfXykg
fHwgZGVmaW5lZChfX0FSTV9BUkNIXzVURV9fKSB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNVRFSl9f
KQotI2RlZmluZSBVU0VfQVJFTkFfQUxMT0NfQUxJR05NRU5UX0lOVEVHRVIgMQotI2VuZGlmCi0K
LS8qQVJNdjVURSByZXF1aXJlcyBhbGxvY2F0b3JzIHRvIHVzZSBhbGlnbmVkIG1lbW9yeSovCi0j
aWYgZGVmaW5lZChfX1RBUkdFVF9BUkNIXzVFKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfNVRF
KSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfNVRFSikKLSNkZWZpbmUgVVNFX0FSRU5BX0FMTE9D
X0FMSUdOTUVOVF9JTlRFR0VSIDEKLSNlbmRpZgotCi0jaWYgQ1BVKEFSTV9ORU9OKQotLyogQWxs
IE5FT04gaW50cmluc2ljcyB1c2FnZSBjYW4gYmUgZGlzYWJsZWQgYnkgdGhpcyBtYWNyby4gKi8K
LSNkZWZpbmUgSEFWRV9BUk1fTkVPTl9JTlRSSU5TSUNTIDEKKyNpZmRlZiBfX0FQUExFX18KKyNp
bmNsdWRlIDxBdmFpbGFiaWxpdHkuaD4KKyNpbmNsdWRlIDxBdmFpbGFiaWxpdHlNYWNyb3MuaD4K
KyNpbmNsdWRlIDxUYXJnZXRDb25kaXRpb25hbHMuaD4KICNlbmRpZgogCi0vKiBGSVhNRTogVGhp
cyBzaG91bGQgYmUgcmVuYW1lZCB0byBXVEZfQ1BVX0FSTV9JRElWX0lOU1RSVUNUSU9OUyBhbmQg
bW92ZWQgdG8gQ1BVLmggKi8KLSNpZiBkZWZpbmVkKF9fQVJNX0FSQ0hfRVhUX0lESVZfXykgfHwg
Q1BVKEFQUExFX0FSTVY3UykKLSNkZWZpbmUgSEFWRV9BUk1fSURJVl9JTlNUUlVDVElPTlMgMQot
I2VuZGlmCiAKKy8qIE9TKCkgLSB1bmRlcmx5aW5nIG9wZXJhdGluZyBzeXN0ZW07IG9ubHkgdG8g
YmUgdXNlZCBmb3IgbWFuZGF0ZWQgbG93LWxldmVsIHNlcnZpY2VzIGxpa2UKKyAgIHZpcnR1YWwg
bWVtb3J5LCBub3QgdG8gY2hvb3NlIGEgR1VJIHRvb2xraXQgKi8KKyNkZWZpbmUgT1MoV1RGX0ZF
QVRVUkUpIChkZWZpbmVkIFdURl9PU18jI1dURl9GRUFUVVJFICAmJiBXVEZfT1NfIyNXVEZfRkVB
VFVSRSkKIAogCi0vKiA9PT09IE9TKCkgLSB1bmRlcmx5aW5nIG9wZXJhdGluZyBzeXN0ZW07IG9u
bHkgdG8gYmUgdXNlZCBmb3IgbWFuZGF0ZWQgbG93LWxldmVsIHNlcnZpY2VzIGxpa2UgCisvKiA9
PT09IE9TKCkgLSB1bmRlcmx5aW5nIG9wZXJhdGluZyBzeXN0ZW07IG9ubHkgdG8gYmUgdXNlZCBm
b3IgbWFuZGF0ZWQgbG93LWxldmVsIHNlcnZpY2VzIGxpa2UKICAgIHZpcnR1YWwgbWVtb3J5LCBu
b3QgdG8gY2hvb3NlIGEgR1VJIHRvb2xraXQgPT09PSAqLwogCiAvKiBPUyhBSVgpIC0gQUlYICov
Ci0jaWZkZWYgX0FJWAorI2lmIGRlZmluZWQoX0FJWCkKICNkZWZpbmUgV1RGX09TX0FJWCAxCiAj
ZW5kaWYKIAotLyogT1MoREFSV0lOKSAtIEFueSBEYXJ3aW4tYmFzZWQgT1MsIGluY2x1ZGluZyBN
YWMgT1MgWCBhbmQgaVBob25lIE9TICovCi0jaWZkZWYgX19BUFBMRV9fCisvKiBPUyhEQVJXSU4p
IC0gQW55IERhcndpbi1iYXNlZCBPUywgaW5jbHVkaW5nIG1hY09TLCBpT1MsIG1hY0NhdGFseXN0
LCB0dk9TLCBhbmQgd2F0Y2hPUyAqLworI2lmIGRlZmluZWQoX19BUFBMRV9fKQogI2RlZmluZSBX
VEZfT1NfREFSV0lOIDEKLQotI2luY2x1ZGUgPEF2YWlsYWJpbGl0eS5oPgotI2luY2x1ZGUgPEF2
YWlsYWJpbGl0eU1hY3Jvcy5oPgotI2luY2x1ZGUgPFRhcmdldENvbmRpdGlvbmFscy5oPgogI2Vu
ZGlmCiAKIC8qIE9TKElPU19GQU1JTFkpIC0gaU9TIGZhbWlseSwgaW5jbHVkaW5nIGlPUywgbWFj
Q2F0YWx5c3QsIHR2T1MsIHdhdGNoT1MgKi8KKyNpZiBPUyhEQVJXSU4pICYmIFRBUkdFVF9PU19J
UEhPTkUKKyNkZWZpbmUgV1RGX09TX0lPU19GQU1JTFkgMQorI2VuZGlmCisKIC8qIE9TKElPUykg
LSBpT1Mgb25seSwgbm90IGluY2x1ZGluZyBtYWNDYXRhbHlzdCAqLwotLyogT1MoTUFDX09TX1gp
IC0gbWFjT1MgKG5vdCBpbmNsdWRpbmcgaU9TIGZhbWlseSkgKi8KLSNpZiBPUyhEQVJXSU4pCi0j
aWYgVEFSR0VUX09TX0lPUyAmJiAhKGRlZmluZWQoVEFSR0VUX09TX01BQ0NBVEFMWVNUKSAmJiBU
QVJHRVRfT1NfTUFDQ0FUQUxZU1QpCisjaWYgT1MoREFSV0lOKSAmJiAoVEFSR0VUX09TX0lPUyAm
JiAhKGRlZmluZWQoVEFSR0VUX09TX01BQ0NBVEFMWVNUKSAmJiBUQVJHRVRfT1NfTUFDQ0FUQUxZ
U1QpKQogI2RlZmluZSBXVEZfT1NfSU9TIDEKICNlbmRpZgotI2lmIFRBUkdFVF9PU19JUEhPTkUK
LSNkZWZpbmUgV1RGX09TX0lPU19GQU1JTFkgMQotI2VsaWYgVEFSR0VUX09TX01BQworCisvKiBG
SVhNRTogUmVuYW1lIHRoaXMgdG8gZHJvcCB0aGUgWCwgYXMgdGhhdCBpcyBubyBsb25nZXIgdGhl
IG5hbWUgb2YgdGhlIG9wZXJhdGluZyBzeXN0ZW0uICovCisvKiBPUyhNQUNfT1NfWCkgLSBtYWNP
UyAobm90IGluY2x1ZGluZyBpT1MgZmFtaWx5KSAqLworI2lmIE9TKERBUldJTikgJiYgVEFSR0VU
X09TX01BQwogI2RlZmluZSBXVEZfT1NfTUFDX09TX1ggMQogI2VuZGlmCi0jZW5kaWYKIAogLyog
T1MoRlJFRUJTRCkgLSBGcmVlQlNEICovCiAjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVm
aW5lZChfX0RyYWdvbkZseV9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKQEAgLTEy
MiwxNyArNzcsMTcgQEAKICNlbmRpZgogCiAvKiBPUyhGVUNIU0lBKSAtIEZ1Y2hzaWEgKi8KLSNp
ZmRlZiBfX0Z1Y2hzaWFfXworI2lmIGRlZmluZWQoX19GdWNoc2lhX18pCiAjZGVmaW5lIFdURl9P
U19GVUNIU0lBIDEKICNlbmRpZgogCiAvKiBPUyhIVVJEKSAtIEdOVS9IdXJkICovCi0jaWZkZWYg
X19HTlVfXworI2lmIGRlZmluZWQoX19HTlVfXykKICNkZWZpbmUgV1RGX09TX0hVUkQgMQogI2Vu
ZGlmCiAKIC8qIE9TKExJTlVYKSAtIExpbnV4ICovCi0jaWZkZWYgX19saW51eF9fCisjaWYgZGVm
aW5lZChfX2xpbnV4X18pCiAjZGVmaW5lIFdURl9PU19MSU5VWCAxCiAjZW5kaWYKIApAQCAtMTQy
LDcgKzk3LDcgQEAKICNlbmRpZgogCiAvKiBPUyhPUEVOQlNEKSAtIE9wZW5CU0QgKi8KLSNpZmRl
ZiBfX09wZW5CU0RfXworI2lmIGRlZmluZWQoX19PcGVuQlNEX18pCiAjZGVmaW5lIFdURl9PU19P
UEVOQlNEIDEKICNlbmRpZgogCkBAIC0xNTEsOCArMTA2LDYgQEAKICNkZWZpbmUgV1RGX09TX1dJ
TkRPV1MgMQogI2VuZGlmCiAKLSNkZWZpbmUgV1RGX09TX1dJTiBFUlJPUiAiVVNFIFdJTkRPV1Mg
V0lUSCBPUyBOT1QgV0lOIgotI2RlZmluZSBXVEZfT1NfTUFDIEVSUk9SICJVU0UgTUFDX09TX1gg
V0lUSCBPUyBOT1QgTUFDIgogCiAvKiBPUyhVTklYKSAtIEFueSBVbml4LWxpa2Ugc3lzdGVtICov
CiAjaWYgICAgT1MoQUlYKSAgICAgICAgICAgICAgXApAQCAtMTY5LDEyMDMgKzEyMiw4IEBACiAj
ZGVmaW5lIFdURl9PU19VTklYIDEKICNlbmRpZgogCi0vKiBPcGVyYXRpbmcgZW52aXJvbm1lbnRz
ICovCi0KLQotLyogRklYTUU6IFJlbmFtZSBXVEZfQ1BVX0VGRkVDVElWRV9BRERSRVNTX1dJRFRI
IHRvIFdURl9PU19FRkZFQ1RJVkVfQUREUkVTU19XSURUSCwgYXMgaXQgaXMgYW4gT1MgZmVhdHVy
ZSwgbm90IGEgQ1BVIGZlYXR1cmUuICovCi0jaWYgQ1BVKEFERFJFU1M2NCkKLSNpZiBPUyhEQVJX
SU4pICYmIENQVShBUk02NCkKLSNkZWZpbmUgV1RGX0NQVV9FRkZFQ1RJVkVfQUREUkVTU19XSURU
SCAzNgotI2Vsc2UKLS8qIFdlIHN0cm9uZ2x5IGFzc3VtZSB0aGF0IGVmZmVjdGl2ZSBhZGRyZXNz
IHdpZHRoIGlzIDw9IDQ4IGluIDY0Yml0IGFyY2hpdGVjdHVyZXMgKGUuZy4gTmFOIGJveGluZyku
ICovCi0jZGVmaW5lIFdURl9DUFVfRUZGRUNUSVZFX0FERFJFU1NfV0lEVEggNDgKLSNlbmRpZgot
I2Vsc2UKLSNkZWZpbmUgV1RGX0NQVV9FRkZFQ1RJVkVfQUREUkVTU19XSURUSCAzMgotI2VuZGlm
Ci0KLS8qIEV4cG9ydCBtYWNybyBzdXBwb3J0LiBEZXRlY3RzIHRoZSBhdHRyaWJ1dGVzIGF2YWls
YWJsZSBmb3Igc2hhcmVkIGxpYnJhcnkgc3ltYm9sIGV4cG9ydAotICAgZGVjb3JhdGlvbnMuICov
Ci0jaWYgT1MoV0lORE9XUykgfHwgKENPTVBJTEVSX0hBU19DTEFOR19ERUNMU1BFQyhkbGxpbXBv
cnQpICYmIENPTVBJTEVSX0hBU19DTEFOR19ERUNMU1BFQyhkbGxleHBvcnQpKQotI2RlZmluZSBV
U0VfREVDTFNQRUNfQVRUUklCVVRFIDEKLSNkZWZpbmUgVVNFX1ZJU0lCSUxJVFlfQVRUUklCVVRF
IDAKLSNlbGlmIGRlZmluZWQoX19HTlVDX18pCi0jZGVmaW5lIFVTRV9ERUNMU1BFQ19BVFRSSUJV
VEUgMAotI2RlZmluZSBVU0VfVklTSUJJTElUWV9BVFRSSUJVVEUgMQotI2Vsc2UKLSNkZWZpbmUg
VVNFX0RFQ0xTUEVDX0FUVFJJQlVURSAwCi0jZGVmaW5lIFVTRV9WSVNJQklMSVRZX0FUVFJJQlVU
RSAwCi0jZW5kaWYKLQotLyogU3RhbmRhcmQgbGlicmFyaWVzICovCi0jaWYgZGVmaW5lZChIQVZF
X0ZFQVRVUkVTX0gpICYmIEhBVkVfRkVBVFVSRVNfSAotLyogSWYgdGhlIGluY2x1ZGVkIGZlYXR1
cmVzLmggaXMgZ2xpYmMncyBvbmUsIF9fR0xJQkNfXyBpcyBkZWZpbmVkLiAqLwotI2luY2x1ZGUg
PGZlYXR1cmVzLmg+Ci0jZW5kaWYKLQotLyogRklYTUU6IHRoZXNlIGFyZSBhbGwgbWl4ZXMgb2Yg
T1MsIG9wZXJhdGluZyBlbnZpcm9ubWVudCBhbmQgcG9saWN5IGNob2ljZXMuICovCi0vKiBQTEFU
Rk9STShHVEspICovCi0vKiBQTEFURk9STShNQUMpICovCi0vKiBQTEFURk9STShJT1MpICovCi0v
KiBQTEFURk9STShJT1NfRkFNSUxZKSAqLwotLyogUExBVEZPUk0oSU9TX1NJTVVMQVRPUikgKi8K
LS8qIFBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSAqLwotLyogUExBVEZPUk0oV0lOKSAq
LwotI2lmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCi0jZGVmaW5lIFdURl9QTEFURk9STV9HVEsg
MQotI2VsaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKLSNkZWZpbmUgV1RGX1BMQVRGT1JNX1dQ
RSAxCi0jZWxpZiBkZWZpbmVkKEJVSUxESU5HX0pTQ09OTFlfXykKLS8qIEpTQ09ubHkgZG9lcyBu
b3QgcHJvdmlkZSBQTEFURk9STSgpIG1hY3JvICovCi0jZWxpZiBPUyhNQUNfT1NfWCkKLSNkZWZp
bmUgV1RGX1BMQVRGT1JNX01BQyAxCi0jZWxpZiBPUyhJT1NfRkFNSUxZKQotI2lmIE9TKElPUykK
LSNkZWZpbmUgV1RGX1BMQVRGT1JNX0lPUyAxCi0jZW5kaWYKLSNkZWZpbmUgV1RGX1BMQVRGT1JN
X0lPU19GQU1JTFkgMQotI2lmIFRBUkdFVF9PU19TSU1VTEFUT1IKLSNpZiBPUyhJT1MpCi0jZGVm
aW5lIFdURl9QTEFURk9STV9JT1NfU0lNVUxBVE9SIDEKLSNlbmRpZgotI2RlZmluZSBXVEZfUExB
VEZPUk1fSU9TX0ZBTUlMWV9TSU1VTEFUT1IgMQotI2VuZGlmCi0jaWYgZGVmaW5lZChUQVJHRVRf
T1NfTUFDQ0FUQUxZU1QpICYmIFRBUkdFVF9PU19NQUNDQVRBTFlTVAotI2RlZmluZSBXVEZfUExB
VEZPUk1fTUFDQ0FUQUxZU1QgMQotI2VuZGlmCi0jZWxpZiBPUyhXSU5ET1dTKQotI2RlZmluZSBX
VEZfUExBVEZPUk1fV0lOIDEKLSNlbmRpZgotCi0vKiBQTEFURk9STShDT0NPQSkgKi8KLSNpZiBQ
TEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZGVmaW5lIFdURl9QTEFURk9S
TV9DT0NPQSAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2lmIGRlZmluZWQgX19o
YXNfaW5jbHVkZSAmJiBfX2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9DRlByaXYuaD4pCi0j
ZGVmaW5lIFVTRV9BUFBMRV9JTlRFUk5BTF9TREsgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogUExB
VEZPUk0oQVBQTEVUVikgKi8KLSNpZiBkZWZpbmVkKFRBUkdFVF9PU19UVikgJiYgVEFSR0VUX09T
X1RWCi0jZGVmaW5lIFdURl9QTEFURk9STV9BUFBMRVRWIDEKLSNlbmRpZgotCi0vKiBQTEFURk9S
TShXQVRDSE9TKSAqLwotI2lmIGRlZmluZWQoVEFSR0VUX09TX1dBVENIKSAmJiBUQVJHRVRfT1Nf
V0FUQ0gKLSNkZWZpbmUgV1RGX1BMQVRGT1JNX1dBVENIT1MgMQotI2VuZGlmCi0KLS8qIEdyYXBo
aWNzIGVuZ2luZXMgKi8KLQotLyogVVNFKENHKSBhbmQgUExBVEZPUk0oQ0kpICovCi0jaWYgUExB
VEZPUk0oQ09DT0EpCi0jZGVmaW5lIFVTRV9DRyAxCi0jZGVmaW5lIFVTRV9DQSAxCi0jZW5kaWYK
LQotI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQotI2RlZmluZSBVU0VfR0xJQiAx
Ci0jZGVmaW5lIFVTRV9GUkVFVFlQRSAxCi0jZGVmaW5lIFVTRV9IQVJGQlVaWiAxCi0jZGVmaW5l
IFVTRV9TT1VQIDEKLSNkZWZpbmUgVVNFX1dFQlAgMQotI2RlZmluZSBVU0VfRklMRV9MT0NLIDEK
LSNlbmRpZgotCi0jaWYgUExBVEZPUk0oR1RLKQotI2RlZmluZSBHTElCX1ZFUlNJT05fTUlOX1JF
UVVJUkVEIEdMSUJfVkVSU0lPTl8yXzM2Ci0jZGVmaW5lIEdES19WRVJTSU9OX01JTl9SRVFVSVJF
RCBHREtfVkVSU0lPTl8zXzYKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oV1BFKQotI2RlZmluZSBH
TElCX1ZFUlNJT05fTUlOX1JFUVVJUkVEIEdMSUJfVkVSU0lPTl8yXzQwCi0jZW5kaWYKLQotI2lm
IFVTRShTT1VQKQotI2RlZmluZSBTT1VQX1ZFUlNJT05fTUlOX1JFUVVJUkVEIFNPVVBfVkVSU0lP
Tl8yXzQyCi0jZW5kaWYKLQotLyogT24gV2luZG93cywgdXNlIFF1ZXJ5UGVyZm9ybWFuY2VDb3Vu
dGVyIGJ5IGRlZmF1bHQgKi8KLSNpZiBPUyhXSU5ET1dTKQotI2RlZmluZSBVU0VfUVVFUllfUEVS
Rk9STUFOQ0VfQ09VTlRFUiAgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLQotI2Rl
ZmluZSBIQVZFX09VVF9PRl9QUk9DRVNTX0xBWUVSX0hPU1RJTkcgMQotI2RlZmluZSBVU0VfQ0Yg
MQotI2RlZmluZSBVU0VfRklMRV9MT0NLIDEKLSNkZWZpbmUgVVNFX0ZPVU5EQVRJT04gMQotI2Rl
ZmluZSBVU0VfTkVUV09SS19DRkRBVEFfQVJSQVlfQ0FMTEJBQ0sgMQotCi0vKiBDb2NvYSBkZWZp
bmVzIGEgc2VyaWVzIG9mIHBsYXRmb3JtIG1hY3JvcyBmb3IgZGVidWdnaW5nLiAqLwotLyogU29t
ZSBvZiB0aGVtIGFyZSByZWFsbHkgYW5ub3lpbmcgYmVjYXVzZSB0aGV5IHVzZSBjb21tb24gbmFt
ZXMgKGUuZy4gY2hlY2soKSkuICovCi0vKiBEaXNhYmxlIHRob3NlIG1hY3JvcyBzbyB0aGF0IHdl
IGFyZSBub3QgbGltaXRlZCBpbiBob3cgd2UgbmFtZSBtZXRob2RzIGFuZCBmdW5jdGlvbnMuICov
Ci0jdW5kZWYgX19BU1NFUlRfTUFDUk9TX0RFRklORV9WRVJTSU9OU19XSVRIT1VUX1VOREVSU0NP
UkVTCi0jZGVmaW5lIF9fQVNTRVJUX01BQ1JPU19ERUZJTkVfVkVSU0lPTlNfV0lUSE9VVF9VTkRF
UlNDT1JFUyAwCi0KLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQotCi0jZGVmaW5lIEhBVkVf
UlVOTE9PUF9USU1FUiAxCi0jZGVmaW5lIEhBVkVfU0VDX0tFWUNIQUlOIDEKLSNkZWZpbmUgSEFW
RV9ISVNFUlZJQ0VTIDEKLSNkZWZpbmUgVVNFX0FQUEtJVCAxCi0jZGVmaW5lIFVTRV9QQVNTS0lU
IDEKLQotI2lmIENQVShYODZfNjQpCi0jZGVmaW5lIEhBVkVfTkVUV09SS19FWFRFTlNJT04gMQot
I2RlZmluZSBVU0VfUExVR0lOX0hPU1RfUFJPQ0VTUyAxCi0jZW5kaWYKLSNlbmRpZiAvKiBQTEFU
Rk9STShNQUMpICovCi0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotCi0jZGVmaW5lIEhBVkVf
TkVUV09SS19FWFRFTlNJT04gMQotI2RlZmluZSBIQVZFX1JFQURMSU5FIDEKLSNkZWZpbmUgVVNF
X1VJS0lUX0VESVRJTkcgMQotI2RlZmluZSBVU0VfV0VCX1RIUkVBRCAxCi0KLSNpZiBDUFUoQVJN
NjQpCi0jZGVmaW5lIEVOQUJMRV9KSVRfQ09OU1RBTlRfQkxJTkRJTkcgMAotI2VuZGlmCi0KLSNp
ZiBDUFUoQVJNX05FT04pCi0jdW5kZWYgSEFWRV9BUk1fTkVPTl9JTlRSSU5TSUNTCi0jZGVmaW5l
IEhBVkVfQVJNX05FT05fSU5UUklOU0lDUyAwCi0jZW5kaWYKLQotI2VuZGlmIC8qIFBMQVRGT1JN
KElPU19GQU1JTFkpICovCi0KLSNpZiAhZGVmaW5lZChIQVZFX0FDQ0VTU0lCSUxJVFkpCi0jaWYg
UExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXUEUpCi0jZGVmaW5lIEhBVkVfQUNDRVNTSUJJTElUWSAxCi0jZW5kaWYKLSNlbmRpZiAv
KiAhZGVmaW5lZChIQVZFX0FDQ0VTU0lCSUxJVFkpICovCi0KLS8qIEZJWE1FOiBSZW1vdmUgYWZ0
ZXIgQ01ha2UgYnVpbGQgZW5hYmxlZCBvbiBEYXJ3aW4gKi8KLSNpZiBPUyhEQVJXSU4pCi0jZGVm
aW5lIEhBVkVfRVJSTk9fSCAxCi0jZGVmaW5lIEhBVkVfTEFOR0lORk9fSCAxCi0jZGVmaW5lIEhB
VkVfTE9DQUxUSU1FX1IgMQotI2RlZmluZSBIQVZFX01NQVAgMQotI2RlZmluZSBIQVZFX1JFR0VY
X0ggMQotI2RlZmluZSBIQVZFX1NJR05BTF9IIDEKLSNkZWZpbmUgSEFWRV9TVEFUX0JJUlRIVElN
RSAxCi0jZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLSNkZWZpbmUgSEFWRV9TVFJOU1RSIDEKLSNk
ZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCi0jZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxIAotI2Rl
ZmluZSBIQVZFX1RNX0dNVE9GRiAxCi0jZGVmaW5lIEhBVkVfVE1fWk9ORSAxCi0jZGVmaW5lIEhB
VkVfVElNRUdNIDEKLSNkZWZpbmUgSEFWRV9QVEhSRUFEX01BSU5fTlAgMQotCi0jaWYgQ1BVKFg4
Nl82NCkgfHwgQ1BVKEFSTTY0KQotI2RlZmluZSBIQVZFX0lOVDEyOF9UIDEKLSNlbmRpZgotI2Vu
ZGlmIC8qIE9TKERBUldJTikgKi8KLQotI2lmIE9TKFVOSVgpCi0jZGVmaW5lIFVTRV9QVEhSRUFE
UyAxCi0jZW5kaWYgLyogT1MoVU5JWCkgKi8KLQotI2lmIE9TKFVOSVgpICYmICFPUyhGVUNIU0lB
KQotI2RlZmluZSBIQVZFX1JFU09VUkNFX0ggMQotI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUU0NI
RURQQVJBTSAxCi0jZW5kaWYKLQotI2lmIE9TKERBUldJTikKLSNkZWZpbmUgSEFWRV9ESVNQQVRD
SF9IIDEKLSNkZWZpbmUgSEFWRV9NQURWX0ZSRUUgMQotI2RlZmluZSBIQVZFX01BRFZfRlJFRV9S
RVVTRSAxCi0jZGVmaW5lIEhBVkVfTUFEVl9ET05UTkVFRCAxCi0jZGVmaW5lIEhBVkVfTUVSR0VT
T1JUIDEKLSNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQotI2RlZmluZSBIQVZFX1JF
QURMSU5FIDEKLSNkZWZpbmUgSEFWRV9TWVNfVElNRUJfSCAxCi0jZGVmaW5lIEhBVkVfQVVESVRf
VE9LRU4gMQotCi0jaWYgX19oYXNfaW5jbHVkZSg8bWFjaC9tYWNoX2V4Yy5kZWZzPikgJiYgIVBM
QVRGT1JNKEdUSykKLSNkZWZpbmUgSEFWRV9NQUNIX0VYQ0VQVElPTlMgMQotI2VuZGlmCi0KLSNp
ZiAhUExBVEZPUk0oR1RLKQotI2RlZmluZSBVU0VfQUNDRUxFUkFURSAxCi0jZW5kaWYKLSNpZiAh
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNkZWZpbmUgSEFWRV9IT1NURURfQ09SRV9BTklNQVRJT04g
MQotI2VuZGlmCi0KLSNlbmRpZiAvKiBPUyhEQVJXSU4pICovCi0KLSNpZiBPUyhEQVJXSU4pIHx8
IE9TKEZVQ0hTSUEpIHx8ICgoT1MoRlJFRUJTRCkgfHwgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRl
ZmluZWQoX19CSU9OSUNfXykpICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJN
KSB8fCBDUFUoQVJNNjQpIHx8IENQVShNSVBTKSkpCi0jZGVmaW5lIEhBVkVfTUFDSElORV9DT05U
RVhUIDEKLSNlbmRpZgotCi0jaWYgT1MoREFSV0lOKSB8fCAoT1MoTElOVVgpICYmIGRlZmluZWQo
X19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhQ1BVKE1JUFMpKQotI2RlZmlu
ZSBIQVZFX0JBQ0tUUkFDRSAxCi0jZW5kaWYKLQotI2lmIE9TKERBUldJTikgfHwgT1MoTElOVVgp
Ci0jaWYgUExBVEZPUk0oR1RLKQotI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChf
X1VDTElCQ19fKSAmJiAhQ1BVKE1JUFMpCi0jZGVmaW5lIEhBVkVfQkFDS1RSQUNFX1NZTUJPTFMg
MQotI2VuZGlmCi0jZW5kaWYgLyogUExBVEZPUk0oR1RLKSAqLwotI2RlZmluZSBIQVZFX0RMQURE
UiAxCi0jZW5kaWYgLyogT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkgKi8KLQotCi0vKiBFTkFCTEUg
bWFjcm8gZGVmYXVsdHMgKi8KLQotLyogRklYTUU6IG1vdmUgb3V0IGFsbCBFTkFCTEUoKSBkZWZp
bmVzIGZyb20gaGVyZSB0byBGZWF0dXJlRGVmaW5lcy5oICovCi0KLSNpZiBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKSAmJiBfX2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRpb25hbFBs
YXRmb3JtLmg+KQotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsUGxhdGZvcm0u
aD4KLSNlbmRpZgotCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5jbHVk
ZSg8V2ViS2l0QWRkaXRpb25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5oPikKLSNpbmNsdWRl
IDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRpb25hbEZlYXR1cmVEZWZpbmVzLmg+Ci0jZW5kaWYKLQot
LyogSW5jbHVkZSBmZWF0dXJlIG1hY3JvcyAqLwotI2luY2x1ZGUgPHd0Zi9GZWF0dXJlRGVmaW5l
cy5oPgotCi0jaWYgT1MoV0lORE9XUykKLSNkZWZpbmUgVVNFX1NZU1RFTV9NQUxMT0MgMQotI2Vu
ZGlmCi0KLQotI2lmICFkZWZpbmVkKFVTRV9KU1ZBTFVFNjQpICYmICFkZWZpbmVkKFVTRV9KU1ZB
TFVFMzJfNjQpCi0jaWYgQ1BVKEFERFJFU1M2NCkgfHwgQ1BVKEFSTTY0KQotI2RlZmluZSBVU0Vf
SlNWQUxVRTY0IDEKLSNlbHNlCi0jZGVmaW5lIFVTRV9KU1ZBTFVFMzJfNjQgMQotI2VuZGlmCi0j
ZW5kaWYgLyogIWRlZmluZWQoVVNFX0pTVkFMVUU2NCkgJiYgIWRlZmluZWQoVVNFX0pTVkFMVUUz
Ml82NCkgKi8KLQotLyogVGhlIEpJVCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb24gYWxsIHg4Ni02
NCAmIEFSTTY0IHBsYXRmb3Jtcy4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfSklUKSBcCi0gICAg
JiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpIFwKLSAgICAmJiAhQ1BVKEFQUExFX0FSTVY3
SykKLSNkZWZpbmUgRU5BQkxFX0pJVCAxCi0jZW5kaWYKLQotI2lmIFVTRShKU1ZBTFVFMzJfNjQp
Ci0jaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykpICYmIE9TKExJTlVYKQotLyogT24g
QVJNdjcgYW5kIE1JUFMgb24gTGludXggdGhlIEpJVCBpcyBlbmFibGVkIHVubGVzcyBleHBsaWNp
dGx5IGRpc2FibGVkLiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpCi0jZGVmaW5lIEVOQUJM
RV9KSVQgMQotI2VuZGlmCi0jZWxzZQotLyogRGlzYWJsZSBKSVQgYW5kIGZvcmNlIENfTE9PUCBv
biBhbGwgb3RoZXIgMzJiaXQgYXJjaGl0ZWN0dXJlcy4gKi8KLSN1bmRlZiBFTkFCTEVfSklUCi0j
ZGVmaW5lIEVOQUJMRV9KSVQgMAotI3VuZGVmIEVOQUJMRV9DX0xPT1AKLSNkZWZpbmUgRU5BQkxF
X0NfTE9PUCAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NfTE9PUCkK
LSNpZiBFTkFCTEUoSklUKSBcCi0gICAgfHwgQ1BVKFg4Nl82NCkgfHwgKENQVShBUk02NCkgJiYg
IWRlZmluZWQoX19JTFAzMl9fKSkKLSNkZWZpbmUgRU5BQkxFX0NfTE9PUCAwCi0jZWxzZQotI2Rl
ZmluZSBFTkFCTEVfQ19MT09QIDEKLSNlbmRpZgotI2VuZGlmCi0KLS8qIFRoZSBGVEwgKmRvZXMg
bm90KiB3b3JrIG9uIDMyLWJpdCBwbGF0Zm9ybXMuIERpc2FibGUgaXQgZXZlbiBpZiBzb21lb25l
IGFza2VkIHVzIHRvIGVuYWJsZSBpdC4gKi8KLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotI3VuZGVm
IEVOQUJMRV9GVExfSklUCi0jZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKLSNlbmRpZgotCi0vKiBU
aGUgRlRMIGlzIGRpc2FibGVkIG9uIHRoZSBpT1Mgc2ltdWxhdG9yLCBtb3N0bHkgZm9yIHNpbXBs
aWNpdHkuICovCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpCi0jdW5kZWYgRU5B
QkxFX0ZUTF9KSVQKLSNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAotI2VuZGlmCi0KLS8qIElmIHBv
c3NpYmxlLCB0cnkgdG8gZW5hYmxlIGEgZGlzYXNzZW1ibGVyLiBUaGlzIGlzIG9wdGlvbmFsLiBX
ZSBwcm9jZWVkIGluIHR3bwotICAgc3RlcHM6IGZpcnN0IHdlIHRyeSB0byBmaW5kIHNvbWUgZGlz
YXNzZW1ibGVyIHRoYXQgd2UgY2FuIHVzZSwgYW5kIHRoZW4gd2UKLSAgIGRlY2lkZSBpZiB0aGUg
aGlnaC1sZXZlbCBkaXNhc3NlbWJsZXIgQVBJIGNhbiBiZSBlbmFibGVkLiAqLwotI2lmICFkZWZp
bmVkKFVTRV9VRElTODYpICYmIEVOQUJMRShKSVQpICYmIENQVShYODZfNjQpICYmICFVU0UoQ0FQ
U1RPTkUpCi0jZGVmaW5lIFVTRV9VRElTODYgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChVU0Vf
QVJNNjRfRElTQVNTRU1CTEVSKSAmJiBFTkFCTEUoSklUKSAmJiBDUFUoQVJNNjQpICYmICFVU0Uo
Q0FQU1RPTkUpCi0jZGVmaW5lIFVTRV9BUk02NF9ESVNBU1NFTUJMRVIgMQotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfRElTQVNTRU1CTEVSKSAmJiAoVVNFKFVESVM4NikgfHwgVVNFKEFS
TTY0X0RJU0FTU0VNQkxFUikgfHwgKEVOQUJMRShKSVQpICYmIFVTRShDQVBTVE9ORSkpKQotI2Rl
ZmluZSBFTkFCTEVfRElTQVNTRU1CTEVSIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxF
X0RGR19KSVQpICYmIEVOQUJMRShKSVQpCi0vKiBFbmFibGUgdGhlIERGRyBKSVQgb24gWDg2IGFu
ZCBYODZfNjQuICovCi0jaWYgQ1BVKFg4Nl82NCkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgp
IHx8IE9TKEZSRUVCU0QpIHx8IE9TKEhVUkQpIHx8IE9TKFdJTkRPV1MpKQotI2RlZmluZSBFTkFC
TEVfREZHX0pJVCAxCi0jZW5kaWYKLS8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBBUk12Ny4gIE9u
bHkgdGVzdGVkIG9uIGlPUywgTGludXgsIGFuZCBGcmVlQlNELiAqLwotI2lmIChDUFUoQVJNX1RI
VU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IE9TKExJTlVY
KSB8fCBPUyhGUkVFQlNEKSkKLSNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQotI2VuZGlmCi0vKiBF
bmFibGUgdGhlIERGRyBKSVQgb24gTUlQUy4gKi8KLSNpZiBDUFUoTUlQUykKLSNkZWZpbmUgRU5B
QkxFX0RGR19KSVQgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogQ29uY3VycmVudCBKUyBvbmx5IHdv
cmtzIG9uIDY0LWJpdCBwbGF0Zm9ybXMgYmVjYXVzZSBpdCByZXF1aXJlcyB0aGF0Ci0gICB2YWx1
ZXMgZ2V0IHN0b3JlZCB0byBhdG9taWNhbGx5LiBUaGlzIGlzIHRyaXZpYWxseSB0cnVlIG9uIDY0
LWJpdCBwbGF0Zm9ybXMsCi0gICBidXQgbm90IHRydWUgYXQgYWxsIG9uIDMyLWJpdCBwbGF0Zm9y
bXMgd2hlcmUgdmFsdWVzIGFyZSBjb21wb3NlZCBvZiB0d28KLSAgIHNlcGFyYXRlIHN1Yi12YWx1
ZXMuICovCi0jaWYgRU5BQkxFKEpJVCkgJiYgVVNFKEpTVkFMVUU2NCkKLSNkZWZpbmUgRU5BQkxF
X0NPTkNVUlJFTlRfSlMgMQotI2VuZGlmCi0KLSNpZiBfX2hhc19pbmNsdWRlKDxTeXN0ZW0vcHRo
cmVhZF9tYWNoZGVwLmg+KQotI2RlZmluZSBIQVZFX0ZBU1RfVExTIDEKLSNlbmRpZgotCi0jaWYg
KENQVShYODZfNjQpIHx8IENQVShBUk02NCkpICYmIEhBVkUoRkFTVF9UTFMpCi0jZGVmaW5lIEVO
QUJMRV9GQVNUX1RMU19KSVQgMQotI2VuZGlmCi0KLSNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0
KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSB8fCBDUFUoTUlQUykKLSNkZWZpbmUg
RU5BQkxFX01BU01fUFJPQkUgMQotI2Vsc2UKLSNkZWZpbmUgRU5BQkxFX01BU01fUFJPQkUgMAot
I2VuZGlmCi0KLSNpZiAhRU5BQkxFKEpJVCkKLSN1bmRlZiBFTkFCTEVfTUFTTV9QUk9CRQotI2Rl
ZmluZSBFTkFCTEVfTUFTTV9QUk9CRSAwCi0jZW5kaWYKLQotLyogSWYgdGhlIGJhc2VsaW5lIGpp
dCBpcyBub3QgYXZhaWxhYmxlLCB0aGVuIGRpc2FibGUgdXBwZXIgdGllcnMgYXMgd2VsbC4KLSAg
IFRoZSBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUoKSBpcyBhbHNvIHJlcXVpcmVkIGZvciBzdXBwb3J0
aW5nIHRoZSB1cHBlciB0aWVycy4gKi8KLSNpZiAhRU5BQkxFKEpJVCkgfHwgIUVOQUJMRShNQVNN
X1BST0JFKQotI3VuZGVmIEVOQUJMRV9ERkdfSklUCi0jdW5kZWYgRU5BQkxFX0ZUTF9KSVQKLSNk
ZWZpbmUgRU5BQkxFX0RGR19KSVQgMAotI2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCi0jZW5kaWYK
LQotLyogSWYgdGhlIERGRyBqaXQgaXMgbm90IGF2YWlsYWJsZSwgdGhlbiBkaXNhYmxlIHVwcGVy
IHRpZXJzIGFzIHdlbGw6ICovCi0jaWYgIUVOQUJMRShERkdfSklUKQotI3VuZGVmIEVOQUJMRV9G
VExfSklUCi0jZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKLSNlbmRpZgotCi0vKiBUaGlzIGNvbnRy
b2xzIHdoZXRoZXIgQjMgaXMgYnVpbHQuIEIzIGlzIG5lZWRlZCBmb3IgRlRMIEpJVCBhbmQgV2Vi
QXNzZW1ibHkgKi8KLSNpZiBFTkFCTEUoRlRMX0pJVCkKLSNkZWZpbmUgRU5BQkxFX0IzX0pJVCAx
Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJBU1NFTUJMWSkKLSNpZiBFTkFCTEUo
QjNfSklUKSAmJiBQTEFURk9STShDT0NPQSkgJiYgQ1BVKEFERFJFU1M2NCkKLSNkZWZpbmUgRU5B
QkxFX1dFQkFTU0VNQkxZIDEKLSNlbHNlCi0jZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWSAwCi0j
ZW5kaWYKLSNlbmRpZgotCi0vKiBUaGUgU2FtcGxpbmdQcm9maWxlciBpcyB0aGUgcHJvYmFiaWxp
c3RpYyBhbmQgbG93LW92ZXJoZWFkIHByb2ZpbGVyIHVzZWQgYnkKLSAqIEpTQyB0byBtZWFzdXJl
IHdoZXJlIHRpbWUgaXMgc3BlbnQgaW5zaWRlIGEgSmF2YVNjcmlwdCBwcm9ncmFtLgotICogSW4g
Y29uZmlndXJhdGlvbnMgb3RoZXIgdGhhbiBXaW5kb3dzIGFuZCBEYXJ3aW4sIGJlY2F1c2UgbGF5
b3V0IG9mIG1jb250ZXh0X3QgZGVwZW5kcyBvbiBzdGFuZGFyZCBsaWJyYXJpZXMgKGxpa2UgZ2xp
YmMpLAotICogc2FtcGxpbmcgcHJvZmlsZXIgaXMgZW5hYmxlZCBpZiBXZWJLaXQgdXNlcyBwdGhy
ZWFkcyBhbmQgZ2xpYmMuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVS
KQotI2lmICFFTkFCTEUoQ19MT09QKSAmJiAoT1MoV0lORE9XUykgfHwgSEFWRShNQUNISU5FX0NP
TlRFWFQpKQotI2RlZmluZSBFTkFCTEVfU0FNUExJTkdfUFJPRklMRVIgMQotI2Vsc2UKLSNkZWZp
bmUgRU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVSIDAKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiBFTkFC
TEUoV0VCQVNTRU1CTFkpICYmIEhBVkUoTUFDSElORV9DT05URVhUKQotI2RlZmluZSBFTkFCTEVf
V0VCQVNTRU1CTFlfRkFTVF9NRU1PUlkgMQotI2VuZGlmCi0KLS8qIENvdW50cyB1c2VzIG9mIHdy
aXRlIGJhcnJpZXJzIHVzaW5nIHNhbXBsaW5nIGNvdW50ZXJzLiBCZSBzdXJlIHRvIGFsc28KLSAg
IHNldCBFTkFCTEVfU0FNUExJTkdfQ09VTlRFUlMgdG8gMS4gKi8KLSNpZiAhZGVmaW5lZChFTkFC
TEVfV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcpCi0jZGVmaW5lIEVOQUJMRV9XUklURV9CQVJSSUVS
X1BST0ZJTElORyAwCi0jZW5kaWYKLQotLyogTG9ncyBhbGwgYWxsb2NhdGlvbi1yZWxhdGVkIGFj
dGl2aXR5IHRoYXQgZ29lcyB0aHJvdWdoIGZhc3RNYWxsb2Mgb3IgdGhlCi0gICBKU0MgR0MgKGJv
dGggY2VsbHMgYW5kIGJ1dHRlcmZsaWVzKS4gQWxzbyBsb2dzIG1hcmtpbmcuIE5vdGUgdGhhdCB0
aGlzCi0gICBpc24ndCBhIGNvbXBsZXRlbHkgYWNjdXJhdGUgdmlldyBvZiB0aGUgaGVhcCBzaW5j
ZSBpdCBkb2Vzbid0IGluY2x1ZGUgYWxsCi0gICBidXR0ZXJmbHkgcmVzaXplIG9wZXJhdGlvbnMs
IGRvZXNuJ3QgdGVsbCB5b3Ugd2hhdCBpcyBnb2luZyBvbiB3aXRoIHdlYWsKLSAgIHJlZmVyZW5j
ZXMgKG90aGVyIHRoYW4gdG8gdGVsbCB5b3Ugd2hlbiB0aGV5J3JlIG1hcmtlZCksIGFuZCBkb2Vz
bid0Ci0gICB0cmFjayBkaXJlY3QgbW1hcCgpIGFsbG9jYXRpb25zIG9yIHRoaW5ncyBsaWtlIEpJ
VCBhbGxvY2F0aW9uLiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9BTExPQ0FUSU9OX0xPR0dJTkcp
Ci0jZGVmaW5lIEVOQUJMRV9BTExPQ0FUSU9OX0xPR0dJTkcgMAotI2VuZGlmCi0KLS8qIEVuYWJs
ZSB2ZXJpZmljYXRpb24gdGhhdCB0aGF0IHJlZ2lzdGVyIGFsbG9jYXRpb25zIGFyZSBub3QgbWFk
ZSB3aXRoaW4gZ2VuZXJhdGVkIGNvbnRyb2wgZmxvdy4KLSAgIFR1cm5lZCBvbiBmb3IgZGVidWcg
YnVpbGRzLiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfUkVHSVNURVJfQUxMT0NBVElPTl9W
QUxJREFUSU9OKSAmJiBFTkFCTEUoREZHX0pJVCkKLSNpZiAhZGVmaW5lZChOREVCVUcpCi0jZGVm
aW5lIEVOQUJMRV9ERkdfUkVHSVNURVJfQUxMT0NBVElPTl9WQUxJREFUSU9OIDEKLSNlbHNlCi0j
ZGVmaW5lIEVOQUJMRV9ERkdfUkVHSVNURVJfQUxMT0NBVElPTl9WQUxJREFUSU9OIDAKLSNlbmRp
ZgotI2VuZGlmCi0KLS8qIENvbmZpZ3VyZSB0aGUgSklUICovCi0jaWYgQ1BVKFg4NikgJiYgQ09N
UElMRVIoTVNWQykKLSNkZWZpbmUgSlNDX0hPU1RfQ0FMTCBfX2Zhc3RjYWxsCi0jZWxpZiBDUFUo
WDg2KSAmJiBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKLSNkZWZpbmUgSlNDX0hPU1RfQ0FMTCBf
X2F0dHJpYnV0ZV9fICgoZmFzdGNhbGwpKQotI2Vsc2UKLSNkZWZpbmUgSlNDX0hPU1RfQ0FMTAot
I2VuZGlmCi0KLSNpZiBDUFUoWDg2KSAmJiBPUyhXSU5ET1dTKQotI2RlZmluZSBDQUxMSU5HX0NP
TlZFTlRJT05fSVNfU1REQ0FMTCAxCi0jaWZuZGVmIENERUNMCi0jaWYgQ09NUElMRVIoTVNWQykK
LSNkZWZpbmUgQ0RFQ0wgX19jZGVjbAotI2Vsc2UKLSNkZWZpbmUgQ0RFQ0wgX19hdHRyaWJ1dGVf
XyAoKF9fY2RlY2wpKQotI2VuZGlmCi0jZW5kaWYKLSNlbHNlCi0jZGVmaW5lIENBTExJTkdfQ09O
VkVOVElPTl9JU19TVERDQUxMIDAKLSNlbmRpZgotCi0jaWYgQ1BVKFg4NikKLSNkZWZpbmUgV1RG
X0NPTVBJTEVSX1NVUFBPUlRTX0ZBU1RDQUxMX0NBTExJTkdfQ09OVkVOVElPTiAxCi0jaWZuZGVm
IEZBU1RDQUxMCi0jaWYgQ09NUElMRVIoTVNWQykKLSNkZWZpbmUgRkFTVENBTEwgX19mYXN0Y2Fs
bAotI2Vsc2UKLSNkZWZpbmUgRkFTVENBTEwgIF9fYXR0cmlidXRlX18gKChmYXN0Y2FsbCkpCi0j
ZW5kaWYKLSNlbmRpZgotI2Vsc2UKLSNkZWZpbmUgV1RGX0NPTVBJTEVSX1NVUFBPUlRTX0ZBU1RD
QUxMX0NBTExJTkdfQ09OVkVOVElPTiAwCi0jZW5kaWYKLQotI2lmIEVOQUJMRShKSVQpICYmIENB
TExJTkdfQ09OVkVOVElPTl9JU19TVERDQUxMCi0jZGVmaW5lIEpJVF9PUEVSQVRJT04gQ0RFQ0wK
LSNlbHNlCi0jZGVmaW5lIEpJVF9PUEVSQVRJT04KLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgQ1BVKEFSTTY0KSAmJiAoIUVOQUJMRShGQVNUX0pJVF9QRVJNSVNTSU9OUykg
fHwgIUNQVShBUk02NEUpKQotI2RlZmluZSBFTkFCTEVfU0VQQVJBVEVEX1dYX0hFQVAgMQotI2Vs
c2UKLSNkZWZpbmUgRU5BQkxFX1NFUEFSQVRFRF9XWF9IRUFQIDAKLSNlbmRpZgotCi0vKiBDb25m
aWd1cmUgdGhlIGludGVycHJldGVyICovCi0jaWYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCi0j
ZGVmaW5lIEhBVkVfQ09NUFVURURfR09UTyAxCi0jZW5kaWYKLQotLyogRGV0ZXJtaW5lIGlmIHdl
IG5lZWQgdG8gZW5hYmxlIENvbXB1dGVkIEdvdG8gT3Bjb2RlcyBvciBub3Q6ICovCi0jaWYgSEFW
RShDT01QVVRFRF9HT1RPKSB8fCAhRU5BQkxFKENfTE9PUCkKLSNkZWZpbmUgRU5BQkxFX0NPTVBV
VEVEX0dPVE9fT1BDT0RFUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKFVTRV9MTElOVF9FTUJF
RERFRF9PUENPREVfSUQpICYmICFFTkFCTEUoQ19MT09QKSAmJiAhQ09NUElMRVIoTVNWQykgJiYg
XAotICAgIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJN
X1RIVU1CMikgJiYgT1MoREFSV0lOKSkpCi0vKiBUaGlzIGZlYXR1cmUgd29ya3MgYnkgZW1iZWRk
aW5nIHRoZSBPcGNvZGVJRCBpbiB0aGUgMzIgYml0IGp1c3QgYmVmb3JlIHRoZSBnZW5lcmF0ZWQg
TExpbnQgY29kZQotICAgdGhhdCBleGVjdXRlcyBlYWNoIG9wY29kZS4gSXQgY2Fubm90IGJlIHN1
cHBvcnRlZCBieSB0aGUgQ0xvb3Agc2luY2UgdGhlcmUncyBubyB3YXkgdG8gZW1iZWQgdGhlCi0g
ICBPcGNvZGVJRCB3b3JkIGluIHRoZSBDTG9vcCdzIHN3aXRjaCBzdGF0ZW1lbnQgY2FzZXMuIEl0
IGlzIGFsc28gY3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZCBmb3IgTVNWQy4KLSovCi0jZGVmaW5l
IFVTRV9MTElOVF9FTUJFRERFRF9PUENPREVfSUQgMQotI2VuZGlmCi0KLS8qIFVzZSBfX2J1aWx0
aW5fZnJhbWVfYWRkcmVzcygxKSB0byBnZXQgQ2FsbEZyYW1lKiAqLwotI2lmIENPTVBJTEVSKEdD
Q19DT01QQVRJQkxFKSAmJiAoQ1BVKEFSTTY0KSB8fCBDUFUoWDg2XzY0KSkKLSNkZWZpbmUgVVNF
X0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCi0jZW5kaWYKLQotLyogUmVndWxhciBFeHByZXNzaW9u
IFRyYWNpbmcgLSBTZXQgdG8gMSB0byB0cmFjZSBSZWdFeHAncyBpbiBqc2MuICBSZXN1bHRzIGR1
bXBlZCBhdCBleGl0ICovCi0jZGVmaW5lIEVOQUJMRV9SRUdFWFBfVFJBQ0lORyAwCi0KLS8qIFll
dCBBbm90aGVyIFJlZ2V4IFJ1bnRpbWUgLSB0dXJuZWQgb24gYnkgZGVmYXVsdCBmb3IgSklUIGVu
YWJsZWQgcG9ydHMuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1lBUlJfSklUKSAmJiBFTkFCTEUo
SklUKQotI2RlZmluZSBFTkFCTEVfWUFSUl9KSVQgMQotCi0vKiBTZXR0aW5nIHRoaXMgZmxhZyBj
b21wYXJlcyBKSVQgcmVzdWx0cyB3aXRoIGludGVycHJldGVyIHJlc3VsdHMuICovCi0jZGVmaW5l
IEVOQUJMRV9ZQVJSX0pJVF9ERUJVRyAwCi0jZW5kaWYKLQotI2lmIEVOQUJMRShZQVJSX0pJVCkK
LSNpZiBDUFUoQVJNNjQpIHx8IChDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykpCi0vKiBFbmFi
bGUgSklUJ2luZyBSZWd1bGFyIEV4cHJlc3Npb25zIHRoYXQgaGF2ZSBuZXN0ZWQgcGFyZW50aGVz
aXMgYW5kIGJhY2sgcmVmZXJlbmNlcy4gKi8KLSNkZWZpbmUgRU5BQkxFX1lBUlJfSklUX0FMTF9Q
QVJFTlNfRVhQUkVTU0lPTlMgMQotI2RlZmluZSBFTkFCTEVfWUFSUl9KSVRfQkFDS1JFRkVSRU5D
RVMgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogSWYgZWl0aGVyIHRoZSBKSVQgb3IgdGhlIFJlZ0V4
cCBKSVQgaXMgZW5hYmxlZCwgdGhlbiB0aGUgQXNzZW1ibGVyIG11c3QgYmUKLSAgIGVuYWJsZWQg
YXMgd2VsbDogKi8KLSNpZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUoWUFSUl9KSVQpIHx8ICFFTkFC
TEUoQ19MT09QKQotI2lmIGRlZmluZWQoRU5BQkxFX0FTU0VNQkxFUikgJiYgIUVOQUJMRV9BU1NF
TUJMRVIKLSNlcnJvciAiQ2Fubm90IGVuYWJsZSB0aGUgSklUIG9yIFJlZ0V4cCBKSVQgd2l0aG91
dCBlbmFibGluZyB0aGUgQXNzZW1ibGVyIgotI2Vsc2UKLSN1bmRlZiBFTkFCTEVfQVNTRU1CTEVS
Ci0jZGVmaW5lIEVOQUJMRV9BU1NFTUJMRVIgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogSWYgdGhl
IERpc2Fzc2VtYmxlciBpcyBlbmFibGVkLCB0aGVuIHRoZSBBc3NlbWJsZXIgbXVzdCBiZSBlbmFi
bGVkIGFzIHdlbGw6ICovCi0jaWYgRU5BQkxFKERJU0FTU0VNQkxFUikKLSNpZiBkZWZpbmVkKEVO
QUJMRV9BU1NFTUJMRVIpICYmICFFTkFCTEVfQVNTRU1CTEVSCi0jZXJyb3IgIkNhbm5vdCBlbmFi
bGUgdGhlIERpc2Fzc2VtYmxlciB3aXRob3V0IGVuYWJsaW5nIHRoZSBBc3NlbWJsZXIiCi0jZWxz
ZQotI3VuZGVmIEVOQUJMRV9BU1NFTUJMRVIKLSNkZWZpbmUgRU5BQkxFX0FTU0VNQkxFUiAxCi0j
ZW5kaWYKLSNlbmRpZgotCi0vKiBBU1NFUlRfRU5BQkxFRCBzaG91bGQgYmUgdHJ1ZSBpZiB3ZSB3
YW50IHRoZSBjdXJyZW50IGNvbXBpbGF0aW9uIHVuaXQgdG8KLSAgIGRvIGRlYnVnIGFzc2VydGlv
biBjaGVja3MgdW5jb25kaXRpb25hbGx5IChlLmcuIHRyZWF0IGEgZGVidWcgQVNTRVJUCi0gICBs
aWtlIGEgUkVMRUFTRV9BU1NFUlQuCi0qLwotI2lmbmRlZiBBU1NFUlRfRU5BQkxFRAotI2lmZGVm
IE5ERUJVRwotI2RlZmluZSBBU1NFUlRfRU5BQkxFRCAwCi0jZWxzZQotI2RlZmluZSBBU1NFUlRf
RU5BQkxFRCAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWZuZGVmIEVOQUJMRV9FWENFUFRJT05fU0NP
UEVfVkVSSUZJQ0FUSU9OCi0jZGVmaW5lIEVOQUJMRV9FWENFUFRJT05fU0NPUEVfVkVSSUZJQ0FU
SU9OIEFTU0VSVF9FTkFCTEVECi0jZW5kaWYKLQotI2lmIEVOQUJMRShERkdfSklUKSAmJiBIQVZF
KE1BQ0hJTkVfQ09OVEVYVCkgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpCi0jZGVmaW5l
IEVOQUJMRV9TSUdOQUxfQkFTRURfVk1fVFJBUFMgMQotI2VuZGlmCi0KLS8qIENTUyBTZWxlY3Rv
ciBKSVQgQ29tcGlsZXIgKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCkK
LSNpZiAoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIFBM
QVRGT1JNKElPU19GQU1JTFkpKSkgJiYgRU5BQkxFKEpJVCkgJiYgKE9TKERBUldJTikgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKQotI2RlZmluZSBFTkFCTEVfQ1NTX1NFTEVDVE9S
X0pJVCAxCi0jZWxzZQotI2RlZmluZSBFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCAwCi0jZW5kaWYK
LSNlbmRpZgotCi0jaWYgQ1BVKEFSTTY0RSkgJiYgT1MoREFSV0lOKQotI2RlZmluZSBIQVZFX0ZK
Q1ZUWlNfSU5TVFJVQ1RJT04gMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1MpCi0jZGVmaW5l
IEhBVkVfQVBQX0xJTktTIDEKLSNkZWZpbmUgVVNFX1BBU1NLSVQgMQotI2RlZmluZSBVU0VfUVVJ
Q0tfTE9PSyAxCi0jZGVmaW5lIFVTRV9TWVNURU1fUFJFVklFVyAxCi0jZW5kaWYKLQotI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSNkZWZpbmUgSEFW
RV9DRUxFU1RJQUwgMQotI2RlZmluZSBIQVZFX0NPUkVfQU5JTUFUSU9OX1JFTkRFUl9TRVJWRVIg
MQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oTUFDQ0FU
QUxZU1QpICYmICFQTEFURk9STShBUFBMRVRWKQotI2RlZmluZSBIQVZFX1BBUkVOVEFMX0NPTlRS
T0xTX1dJVEhfVU5CTE9DS19IQU5ETEVSIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0Ep
Ci0KLSNkZWZpbmUgVVNFX0FWRk9VTkRBVElPTiAxCi0jZGVmaW5lIFVTRV9QUk9URUNUSU9OX1NQ
QUNFX0FVVEhfQ0FMTEJBQ0sgMQotCi0jaWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9S
TShBUFBMRVRWKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVmaW5lIEVOQUJMRV9EQVRB
X0RFVEVDVElPTiAxCi0jZW5kaWYKLQotLyogRklYTUU6IEVuYWJsZSBIQVZFX1BBUkVOVEFMX0NP
TlRST0xTIGZvciB3YXRjaE9TIFNpbXVsYXRvciBvbmNlIHJkYXI6Ly9wcm9ibGVtLzU0NjA4Mzg2
IGlzIHJlc29sdmVkICovCi0jaWYgIVBMQVRGT1JNKEFQUExFVFYpICYmICghUExBVEZPUk0oV0FU
Q0hPUykgfHwgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSkKLSNkZWZpbmUgSEFWRV9Q
QVJFTlRBTF9DT05UUk9MUyAxCi0jZW5kaWYKLQotI2lmICFQTEFURk9STShBUFBMRVRWKQotI2Rl
ZmluZSBIQVZFX0FWS0lUIDEKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFdFQkdMKQotLyogVVNFX0FO
R0xFPTEgdXNlcyBBTkdMRSBmb3IgdGhlIFdlYkdMIGJhY2tlbmQuCi0gICBJdCByZXBsYWNlcyBV
U0VfT1BFTkdMLCBVU0VfT1BFTkdMX0VTIGFuZCBVU0VfRUdMLiAqLwotI2lmIFBMQVRGT1JNKE1B
QykgfHwgKFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiBfX2hhc19pbmNsdWRlKDxPcGVuR0wvT3Bl
bkdMLmg+KSkKLSNkZWZpbmUgVVNFX09QRU5HTCAxCi0jZGVmaW5lIFVTRV9PUEVOR0xfRVMgMAot
I2RlZmluZSBVU0VfQU5HTEUgMAotI2Vsc2UKLSNkZWZpbmUgVVNFX09QRU5HTCAwCi0jZGVmaW5l
IFVTRV9PUEVOR0xfRVMgMQotI2RlZmluZSBVU0VfQU5HTEUgMAotI2VuZGlmCi0jaWYgUExBVEZP
Uk0oQ09DT0EpCi0jaWZuZGVmIEdMX1NJTEVOQ0VfREVQUkVDQVRJT04KLSNkZWZpbmUgR0xfU0lM
RU5DRV9ERVBSRUNBVElPTiAxCi0jZW5kaWYKLSNpZiBVU0UoT1BFTkdMKSAmJiAhZGVmaW5lZChI
QVZFX09QRU5HTF80KQotI2RlZmluZSBIQVZFX09QRU5HTF80IDEKLSNlbmRpZgotI2lmIFVTRShP
UEVOR0xfRVMpICYmICFkZWZpbmVkKEhBVkVfT1BFTkdMX0VTXzMpCi0jZGVmaW5lIEhBVkVfT1BF
TkdMX0VTXzMgMQotI2VuZGlmCi0jZW5kaWYKLSNpZiBVU0VfQU5HTEUgJiYgKFVTRV9PUEVOR0wg
fHwgVVNFX09QRU5HTF9FUykKLSNlcnJvciBVU0VfQU5HTEUgaXMgaW5jb21wYXRpYmxlIHdpdGgg
VVNFX09QRU5HTCBhbmQgVVNFX09QRU5HTF9FUwotI2VuZGlmCi0jZW5kaWYKLQotI2RlZmluZSBV
U0VfTUVUQUwgMQogCi0jaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFkpCi0jZGVmaW5lIFVTRV9BQ0NF
U1NJQklMSVRZX0NPTlRFWFRfTUVOVVMgMQotI2VuZGlmCi0KLSNlbmRpZgotCi0jaWYgRU5BQkxF
KFdFQkdMKQotI2lmICFkZWZpbmVkKFVTRV9BTkdMRSkKLSNkZWZpbmUgVVNFX0FOR0xFIDAKLSNl
bmRpZgotCi0jaWYgKFVTRV9BTkdMRSAmJiAoVVNFX09QRU5HTCB8fCBVU0VfT1BFTkdMX0VTIHx8
IChkZWZpbmVkKFVTRV9FR0wpICYmIFVTRV9FR0wpKSkgJiYgIVVTRShURVhUVVJFX01BUFBFUikK
LSNlcnJvciBVU0VfQU5HTEUgaXMgaW5jb21wYXRpYmxlIHdpdGggVVNFX09QRU5HTCwgVVNFX09Q
RU5HTF9FUyBhbmQgVVNFX0VHTAotI2VuZGlmCi0jZW5kaWYKLQotI2lmIFVTRShURVhUVVJFX01B
UFBFUikgJiYgRU5BQkxFKEdSQVBISUNTX0NPTlRFWFRfR0wpICYmICFkZWZpbmVkKFVTRV9URVhU
VVJFX01BUFBFUl9HTCkKLSNkZWZpbmUgVVNFX1RFWFRVUkVfTUFQUEVSX0dMIDEKLSNlbmRpZgot
Ci0jaWYgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkKLSNkZWZpbmUgRU5BQkxFX0JSQU5D
SF9DT01QQUNUSU9OIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1RIUkVBRElOR19M
SUJESVNQQVRDSCkgJiYgSEFWRShESVNQQVRDSF9IKQotI2RlZmluZSBFTkFCTEVfVEhSRUFESU5H
X0xJQkRJU1BBVENIIDEKLSNlbGlmICFkZWZpbmVkKEVOQUJMRV9USFJFQURJTkdfT1BFTk1QKSAm
JiBkZWZpbmVkKF9PUEVOTVApCi0jZGVmaW5lIEVOQUJMRV9USFJFQURJTkdfT1BFTk1QIDEKLSNl
bGlmICFkZWZpbmVkKFRIUkVBRElOR19HRU5FUklDKQotI2RlZmluZSBFTkFCTEVfVEhSRUFESU5H
X0dFTkVSSUMgMQotI2VuZGlmCi0KLSNpZiBVU0UoR0xJQikKLSNpbmNsdWRlIDx3dGYvZ2xpYi9H
VHlwZWRlZnMuaD4KLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoVVNFX0VYUE9SVF9NQUNST1MpICYm
IChQTEFURk9STShDT0NPQSkgfHwgT1MoV0lORE9XUykpCi0jZGVmaW5lIFVTRV9FWFBPUlRfTUFD
Uk9TIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCi0jZGVm
aW5lIFVTRV9VTklYX0RPTUFJTl9TT0NLRVRTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoVVNF
X0lNTEFOR19GT05UX0xJTksyKQotI2RlZmluZSBVU0VfSU1MQU5HX0ZPTlRfTElOSzIgMQotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfR0NfVkFMSURBVElPTikgJiYgIWRlZmluZWQoTkRF
QlVHKQotI2RlZmluZSBFTkFCTEVfR0NfVkFMSURBVElPTiAxCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9CSU5ESU5HX0lOVEVHUklUWSkgJiYgIU9TKFdJTkRPV1MpCi0jZGVmaW5lIEVO
QUJMRV9CSU5ESU5HX0lOVEVHUklUWSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9U
UkVFX0RFQlVHR0lORykKLSNpZiAhZGVmaW5lZChOREVCVUcpCi0jZGVmaW5lIEVOQUJMRV9UUkVF
X0RFQlVHR0lORyAxCi0jZWxzZQotI2RlZmluZSBFTkFCTEVfVFJFRV9ERUJVR0dJTkcgMAotI2Vu
ZGlmCi0jZW5kaWYKLQotLyoKLSAqIEVuYWJsZSB0aGlzIHRvIHB1dCBlYWNoIElzb0hlYXAgYW5k
IG90aGVyIGFsbG9jYXRpb24gY2F0ZWdvcmllcyBpbnRvIHRoZWlyIG93biBtYWxsb2MgaGVhcHMs
IHNvIHRoYXQgdG9vbHMgbGlrZSB2bW1hcCBjYW4gc2hvdyBob3cgYmlnIGVhY2ggaGVhcCBpcy4K
LSAqIFR1cm4gQkVOQUJMRV9NQUxMT0NfSEVBUF9CUkVBS0RPV04gb24gaW4gYm1hbGxvYyB0b2dl
dGhlciB3aGVuIHVzaW5nIHRoaXMuCi0gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUFMTE9DX0hF
QVBfQlJFQUtET1dOKQotI2RlZmluZSBFTkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOIDAKLSNl
bmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIFVTRV9DT1JFTUVESUEgMQotI2Rl
ZmluZSBVU0VfVklERU9UT09MQk9YIDEKLSNkZWZpbmUgSEFWRV9BVkZPVU5EQVRJT05fVklERU9f
T1VUUFVUIDEKLSNkZWZpbmUgSEFWRV9DT1JFX1ZJREVPIDEKLSNkZWZpbmUgSEFWRV9NRURJQV9Q
TEFZRVIgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLSNkZWZpbmUgSEFWRV9BVkZP
VU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0o
Q09DT0EpCi0jZGVmaW5lIEhBVkVfQVZGT1VOREFUSU9OX0xFR0lCTEVfT1VUUFVUX1NVUFBPUlQg
MQotI2RlZmluZSBIQVZFX01FRElBX0FDQ0VTU0lCSUxJVFlfRlJBTUVXT1JLIDEKLSNlbmRpZgot
Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIEhBVkVfQVZGT1VOREFUSU9OX0xPQURFUl9E
RUxFR0FURSAxCi0jZW5kaWYKLQotI2lmICFQTEFURk9STShXSU4pCi0jZGVmaW5lIFVTRV9SRVFV
RVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IgMQotI2VuZGlmCi0KLSNpZiBQTEFU
Rk9STShNQUMpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBIQVZFX0FQUExFX0dS
QVBISUNTX0NPTlRST0wgMQotI2RlZmluZSBIQVZFX05TQ1VSU09SIDEKLSNlbmRpZgotCi0jaWYg
UExBVEZPUk0oTUFDKQotI2RlZmluZSBVU0VfQ09SRUFVRElPIDEKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoVVNFX1pMSUIpCi0jZGVmaW5lIFVTRV9aTElCIDEKLSNlbmRpZgotCi0jaWZuZGVmIEhB
VkVfUU9TX0NMQVNTRVMKLSNpZiBQTEFURk9STShDT0NPQSkKLSNkZWZpbmUgSEFWRV9RT1NfQ0xB
U1NFUyAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWZuZGVmIEhBVkVfVk9VQ0hFUlMKLSNpZiBQTEFU
Rk9STShDT0NPQSkKLSNkZWZpbmUgSEFWRV9WT1VDSEVSUyAxCi0jZW5kaWYKLSNlbmRpZgotCi0j
ZGVmaW5lIFVTRV9HUkFNTUFSX0NIRUNLSU5HIDEKLQotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQ
TEFURk9STShHVEspCi0jZGVmaW5lIFVTRV9VTklGSUVEX1RFWFRfQ0hFQ0tJTkcgMQotI2VuZGlm
Ci0jaWYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBVU0VfQVVUT01BVElDX1RFWFRfUkVQTEFDRU1F
TlQgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpCi0vKiBTb21lIHBsYXRmb3JtcyBwcm92
aWRlIFVJIGZvciBzdWdnZXN0aW5nIGF1dG9jb3JyZWN0aW9uLiAqLwotI2RlZmluZSBVU0VfQVVU
T0NPUlJFQ1RJT05fUEFORUwgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLS8qIFNv
bWUgcGxhdGZvcm1zIHVzZSBzcGVsbGluZyBhbmQgYXV0b2NvcnJlY3Rpb24gbWFya2VycyB0byBw
cm92aWRlIHZpc3VhbCBjdWUuIE9uIHN1Y2ggcGxhdGZvcm0sIGlmIHdvcmQgd2l0aCBtYXJrZXIg
aXMgZWRpdGVkLCB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgbWFya2VyLiAqLwotI2RlZmluZSBVU0Vf
TUFSS0VSX1JFTU9WQUxfVVBPTl9FRElUSU5HIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFD
KQotI2RlZmluZSBVU0VfSU5TRVJUSU9OX1VORE9fR1JPVVBJTkcgMQotI2VuZGlmCi0KLSNpZiBQ
TEFURk9STShDT0NPQSkKLSNkZWZpbmUgSEFWRV9BVkFTU0VUUkVBREVSIDEKLSNlbmRpZgotCi0j
aWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIFVTRV9BVURJT19TRVNTSU9OIDEKLSNlbmRpZgot
Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIEhBVkVfSU9TVVJGQUNFIDEKLSNlbmRpZgot
Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxB
VE9SKQotI2RlZmluZSBIQVZFX0lPU1VSRkFDRV9DT1JFSU1BR0VfU1VQUE9SVCAxCi0jZW5kaWYK
LQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVM
QVRPUikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBIQVZFX0lPU1VSRkFDRV9B
Q0NFTEVSQVRPUiAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBFTkFC
TEVfUkVTT1VSQ0VfVVNBR0UgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFdQRSkKLSN1bmRlZiBFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwKLSNkZWZpbmUgRU5BQkxF
X09QRU5UWVBFX1ZFUlRJQ0FMIDEKLSNlbmRpZgotCi0jaWYgQ09NUElMRVIoTVNWQykKLSN1bmRl
ZiBfX1NURENfRk9STUFUX01BQ1JPUwotI2RlZmluZSBfX1NURENfRk9STUFUX01BQ1JPUwotI3Vu
ZGVmIF9fU1REQ19MSU1JVF9NQUNST1MKLSNkZWZpbmUgX19TVERDX0xJTUlUX01BQ1JPUwotI2Vu
ZGlmCi0KLSNpZiBQTEFURk9STShNQUMpCi0jZGVmaW5lIEhBVkVfTlNfQUNUSVZJVFkgMQotI2Vu
ZGlmCi0KLS8qIERpc2FibGUgU2hhcmVkQXJyYXlCdWZmZXJzIHVudGlsIFNwZWN0cmUgc2VjdXJp
dHkgY29uY2VybnMgYXJlIG1pdGlnYXRlZC4gKi8KLSNkZWZpbmUgRU5BQkxFX1NIQVJFRF9BUlJB
WV9CVUZGRVIgMAotCi0jaWYgKE9TKERBUldJTikgJiYgVVNFKENHKSkgfHwgKFVTRShGUkVFVFlQ
RSkgJiYgIVBMQVRGT1JNKEdUSykpIHx8IChQTEFURk9STShXSU4pICYmIChVU0UoQ0cpIHx8IFVT
RShDQUlSTykpKQotI3VuZGVmIEVOQUJMRV9PUEVOVFlQRV9NQVRICi0jZGVmaW5lIEVOQUJMRV9P
UEVOVFlQRV9NQVRIIDEKLSNlbmRpZgotCi0vKiBTZXQgVEFSR0VUX09TX0lQSE9ORSB0byAwIGJ5
IGRlZmF1bHQgdG8gYWxsb3cgdXNpbmcgaXQgYXMgYSBndWFyZCAKLSAqIGluIGNyb3NzLXBsYXRm
b3JtIHRoZSBzYW1lIHdheSBhcyBpdCBpcyB1c2VkIGluIE9TKERBUldJTikgY29kZS4gKi8gCi0j
aWYgIWRlZmluZWQoVEFSR0VUX09TX0lQSE9ORSkgJiYgIU9TKERBUldJTikKLSNkZWZpbmUgVEFS
R0VUX09TX0lQSE9ORSAwCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBV
U0VfTUVESUFUT09MQk9YIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5l
IFVTRV9PU19MT0cgMQotI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCi0jZGVmaW5lIFVTRV9P
U19TVEFURSAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5l
IEhBVkVfU0VDX1RSVVNUX1NFUklBTElaQVRJT04gMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChX
VEZfREVGQVVMVF9FVkVOVF9MT09QKQotI2RlZmluZSBXVEZfREVGQVVMVF9FVkVOVF9MT09QIDEK
LSNlbmRpZgotCi0jaWYgV1RGX0RFRkFVTFRfRVZFTlRfTE9PUAotI2lmIFVTRShHTElCKQotLyog
VXNlIEdMaWIncyBldmVudCBsb29wIGFic3RyYWN0aW9uLiBQcmltYXJpbHkgR1RLIHBvcnQgdXNl
cyBpdC4gKi8KLSNkZWZpbmUgVVNFX0dMSUJfRVZFTlRfTE9PUCAxCi0jZWxpZiBPUyhXSU5ET1dT
KQotLyogVXNlIFdpbmRvd3MgbWVzc2FnZSBwdW1wIGFic3RyYWN0aW9uLgotICogRXZlbiBpZiB0
aGUgcG9ydCBpcyBBcHBsZVdpbiwgd2UgdXNlIHRoZSBXaW5kb3dzIG1lc3NhZ2UgcHVtcCBzeXN0
ZW0gZm9yIHRoZSBldmVudCBsb29wLAotICogc28gdGhhdCBVU0UoV0lORE9XU19FVkVOVF9MT09Q
KSAmJiBVU0UoQ0YpIGNhbiBiZSB0cnVlLgotICogQW5kIFBMQVRGT1JNKFdJTikgYW5kIFBMQVRG
T1JNKEdUSykgYXJlIGV4Y2x1c2l2ZS4gSWYgdGhlIHBvcnQgaXMgR1RLLAotICogUExBVEZPUk0o
V0lOKSBzaG91bGQgYmUgZmFsc2UuIEFuZCBpbiB0aGF0IGNhc2UsIEdMaWIncyBldmVudCBsb29w
IGlzIHVzZWQuCi0gKi8KLSNkZWZpbmUgVVNFX1dJTkRPV1NfRVZFTlRfTE9PUCAxCi0jZWxpZiBQ
TEFURk9STShDT0NPQSkKLS8qIE9TIFggYW5kIElPUy4gVXNlIENvcmVGb3VuZGF0aW9uICYgR0NE
IGFic3RyYWN0aW9uLiAqLwotI2RlZmluZSBVU0VfQ09DT0FfRVZFTlRfTE9PUCAxCi0jZWxzZQot
I2RlZmluZSBVU0VfR0VORVJJQ19FVkVOVF9MT09QIDEKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiBQ
TEFURk9STShDT0NPQSkKLSNkZWZpbmUgVVNFX01FRElBUkVNT1RFIDEKLSNlbmRpZgotCi0jaWYg
Q09NUElMRVIoTVNWQykKLS8qIEVuYWJsZSBzdHJpY3QgcnVudGltZSBzdGFjayBidWZmZXIgY2hl
Y2tzLiAqLwotI3ByYWdtYSBzdHJpY3RfZ3NfY2hlY2sob24pCi0jZW5kaWYKLQotI2lmIFBMQVRG
T1JNKE1BQykKLSNkZWZpbmUgSEFWRV9UT1VDSF9CQVIgMQotI2RlZmluZSBVU0VfRElDVEFUSU9O
X0FMVEVSTkFUSVZFUyAxCi0KLSNpZiBkZWZpbmVkKF9fTFA2NF9fKQotI2RlZmluZSBFTkFCTEVf
V0VCX1BMQVlCQUNLX0NPTlRST0xTX01BTkFHRVIgMQotI2VuZGlmCi0jZW5kaWYgLyogUExBVEZP
Uk0oTUFDKSAqLwotCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShXRUJfUlRDKQotI2Rl
ZmluZSBVU0VfTElCV0VCUlRDIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFU
Rk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBVU0UoR0NSWVBUKQotI2RlZmlu
ZSBIQVZFX1JTQV9QU1MgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTUwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNkZWZpbmUgVVNFX1NPVVJDRV9BUFBMSUNB
VElPTl9BVURJVF9EQVRBIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IChQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApCi0jZGVm
aW5lIEhBVkVfSFNUU19TVE9SQUdFX1BBVEggMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgUExBVEZP
Uk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKLSNkZWZpbmUgSEFWRV9VUkxfRk9STUFU
VElORyAxCi0jZW5kaWYKLQotI2lmICFPUyhXSU5ET1dTKQotI2RlZmluZSBIQVZFX1NUQUNLX0JP
VU5EU19GT1JfTkVXX1RIUkVBRCAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExB
VEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKLSNkZWZpbmUgSEFWRV9BVkNPTlRF
TlRLRVlTRVNTSU9OIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDApIHx8IFBMQVRGT1JNKElPUykgfHwgUExB
VEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVmaW5lIEhBVkVfU0VDX0tFWV9QUk9YWSAxCi0jZW5kaWYK
LQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoQ0EpCi0jZGVmaW5lIFVTRV9JT1NVUkZBQ0Vf
Q0FOVkFTX0JBQ0tJTkdfU1RPUkUgMQotI2VuZGlmCi0KLS8qIEZJWE1FOiBTaG91bGQgdGhpcyBi
ZSBlbmFibGVkIG9yIElPU19GQU1JTFksIG5vdCBqdXN0IElPUz8gKi8KLSNpZiAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgUExB
VEZPUk0oSU9TKQotI2RlZmluZSBIQVZFX0ZPVU5EQVRJT05fV0lUSF9TQVZFX0NPT0tJRVNfV0lU
SF9DT01QTEVUSU9OX0hBTkRMRVIgMQotI2VuZGlmCi0KLS8qIEZJWE1FOiBTaG91bGQgdGhpcyBi
ZSBlbmFibGVkIGZvciBJT1NfRkFNSUxZLCBub3QganVzdCBJT1M/ICovCi0jaWYgKFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDApIHx8IFBM
QVRGT1JNKElPUykKLSNkZWZpbmUgSEFWRV9GT1VOREFUSU9OX1dJVEhfU0FNRV9TSVRFX0NPT0tJ
RV9TVVBQT1JUIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUFYX0FMTE9XRUQgPCAxMDE0MDAKLSNkZWZpbmUgSEFWRV9OU0hUVFBDT09LSUVTVE9S
QUdFX19JTklUV0lUSElERU5USUZJRVJfV0lUSF9JTkFDQ1VSQVRFX05VTExBQklMSVRZIDEKLSNl
bmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIEhBVkVfQ0ZORVRXT1JLX1dJVEhf
Q09OVEVOVF9FTkNPRElOR19TTklGRklOR19PVkVSUklERSAxCi0vKiBUaGUgb3ZlcnJpZGUgaXNu
J3QgbmVlZGVkIG9uIGlPUyBmYW1pbHksIGFzIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRvIG5v
dCBzbmlmZi4gKi8KLS8qIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSBiZSBlbmFibGVkIG9u
IDEwLjEzLjIgYW5kIG5ld2VyLCBub3QganVzdCAxMC4xNCBhbmQgbmV3ZXIuICovCi0jaWYgUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMAot
I2RlZmluZSBVU0VfQ0ZORVRXT1JLX0NPTlRFTlRfRU5DT0RJTkdfU05JRkZJTkdfT1ZFUlJJREUg
MQotI2VuZGlmCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
X19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKSB8fCBQTEFURk9STShH
VEspCi0jZGVmaW5lIEhBVkVfT1NfREFSS19NT0RFX1NVUFBPUlQgMQotI2VuZGlmCi0KLSNpZiBQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAw
Ci0jZGVmaW5lIEhBVkVfQ0dfRk9OVF9SRU5ERVJJTkdfR0VUX0ZPTlRfU01PT1RISU5HX0RJU0FC
TEVEIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZGVmaW5l
IEhBVkVfQ0FfV0hFUkVfQURESVRJVkVfVFJBTlNGT1JNU19BUkVfUkVWRVJTRUQgMQotI2VuZGlm
Ci0KLSNpZmRlZiBfX0FQUExFX18KLSNkZWZpbmUgSEFWRV9GVU5DX1VTTEVFUCAxCi0jZW5kaWYK
LQotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oV1BFKQotLyogRklYTUU6IFRoaXMgcmVh
bGx5IG5lZWRzIGEgZGVzY3JpcHRpdmUgbmFtZSwgdGhpcyAibmV3IHRoZW1lIiB3YXMgYWRkZWQg
aW4gMjAwOC4gKi8KLSNkZWZpbmUgVVNFX05FV19USEVNRSAxCi0jZW5kaWYKLQotI2lmIFBMQVRG
T1JNKE1BQykKLSNkZWZpbmUgSEFWRV9XSU5ET1dfU0VSVkVSX09DQ0xVU0lPTl9OT1RJRklDQVRJ
T05TIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIEhBVkVfU0VDX0FD
Q0VTU19DT05UUk9MIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oSU9TKQotLyogRklYTUU6IFNh
ZmFyaVNlcnZpY2VzLmZyYW1ld29yayBleGlzdHMgb24gbWFjT1MuIEl0IGlzIG9ubHkgdXNlZCBi
eSBXZWJLaXQgb24gaU9TLCBzbyB0aGUgYmVoYXZpb3IgaXMgY29ycmVjdCwgYnV0IHRoZSBuYW1l
IGlzIG1pc2xlYWRpbmcuICovCi0jZGVmaW5lIEhBVkVfU0FGQVJJX1NFUlZJQ0VTX0ZSQU1FV09S
SyAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFU
Rk9STShXQVRDSE9TKQotI2RlZmluZSBIQVZFX1NBRkVfQlJPV1NJTkcgMQotI2VuZGlmCi0KLSNp
ZiBQTEFURk9STShJT1MpCi0jZGVmaW5lIEhBVkVfTElOS19QUkVWSUVXIDEKLSNlbmRpZgotCi0j
aWYgUExBVEZPUk0oQ09DT0EpCi0vKiBGSVhNRTogVGhpcyBpcyBhIFVTRSBzdHlsZSBtYWNybywg
YXMgaXQgdHJpZ2dlcnMgdGhlIHVzZSBvZiBDRlVSTENvbm5lY3Rpb24gZnJhbWV3b3JrIHN0dWJz
LiAqLwotLyogRklYTUU6IElzIHRoaXMgc3RpbGwgbmVjZXNzYXJ5PyBDRlVSTENvbm5lY3Rpb24g
aXNuJ3QgdXNlZCBvbiBDb2NvYSBwbGF0Zm9ybXMgYW55IG1vcmUuICovCi0jZGVmaW5lIEVOQUJM
RV9TRUNfSVRFTV9TSElNIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKElPU19GQU1JTFkpIHx8
IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
NDAwKSkKLSNkZWZpbmUgSEFWRV9BQ0NFU1NJQklMSVRZX1NVUFBPUlQgMQotI2VuZGlmCi0KLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMzAwMDAgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMzAxMDAK
LSNkZWZpbmUgSEFWRV9BQ0NFU1NJQklMSVRZX0JVTkRMRVNfUEFUSCAxCi0jZW5kaWYKLQotI2lm
IFBMQVRGT1JNKE1BQykKLSNkZWZpbmUgRU5BQkxFX0ZVTExfS0VZQk9BUkRfQUNDRVNTIDEKLSNl
bmRpZgotCi0jaWYgKChQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oUExBWVNUQVRJT04pIHx8
IFBMQVRGT1JNKFdQRSkpICYmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpKSB8fCBQTEFURk9STShH
VEspCi0jZGVmaW5lIEVOQUJMRV9LSU5FVElDX1NDUk9MTElORyAxCi0jZW5kaWYKLQotI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKQotI2RlZmluZSBIQVZFX0FVVEhPUklaQVRJT05fU1RB
VFVTX0ZPUl9NRURJQV9UWVBFIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgKF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NQVhfQUxMT1dFRCA+PSAxMDE0MDQpKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9O
RV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDAgJiYgX19JUEhPTkVfT1NfVkVSU0lP
Tl9NQVhfQUxMT1dFRCA+PSAxMjAyMDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JN
KEFQUExFVFYpCi0jZGVmaW5lIEhBVkVfQ0ZORVRXT1JLX09WRVJSSURFX1NFU1NJT05fQ09PS0lF
X0FDQ0VQVF9QT0xJQ1kgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1J
TFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkKLSNkZWZp
bmUgSEFWRV9DRk5FVFdPUktfTlNVUkxTRVNTSU9OX1NUUklDVFJVU1RFVkFMVUFURSAxCi0jZW5k
aWYKLQotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxNTAwKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQotI2RlZmluZSBIQVZFX0NGTkVU
V09SS19ORUdPVElBVEVEX1NTTF9QUk9UT0NPTF9DSVBIRVIgMQotI2VuZGlmCi0KLSNpZiAoUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTYwMCkg
fHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDE0MDAwMCkKLSNkZWZpbmUgSEFWRV9DRk5FVFdPUktfTUVUUklDU19BUElTX1Y0IDEK
LSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTUwMAotI2RlZmluZSBIQVZFX0NTQ0hFQ0tGSVhESVNBQkxFIDEKLSNlbmRp
ZgotCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDE0MDApIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZGVmaW5lIEhBVkVfU0FOREJP
WF9JU1NVRV9NQUNIX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZX0FVRElUX1RPS0VOIDEKLSNlbmRp
ZgotCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDE0MDApIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZGVmaW5lIEhBVkVfU0FOREJP
WF9JU1NVRV9SRUFEX0VYVEVOU0lPTl9UT19QUk9DRVNTX0JZX0FVRElUX1RPS0VOIDEKLSNlbmRp
ZgotCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDE1MDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApCi0jZGVmaW5lIEhBVkVfTUROU19GQVNUX1JFR0lT
VFJBVElPTiAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNkZWZpbmUgRU5BQkxFX01P
Tk9TUEFDRV9GT05UX0VYQ0VQVElPTiAoX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8
IDEwMTUwMCkKLSNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZGVmaW5lIEVOQUJMRV9NT05P
U1BBQ0VfRk9OVF9FWENFUFRJT04gKF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwg
MTMwMDAwKQotI2VuZGlmCisvKiBBc3NlcnRzLCBpbnZhcmlhbnRzIGZvciBtYWNybyBkZWZpbml0
aW9ucyAqLwogCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDE0MDApIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZGVmaW5lIEhBVkVf
RElTQUxMT1dBQkxFX1VTRVJfSU5TVEFMTEVEX0ZPTlRTIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8
IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMzAwMDApCi0jZGVmaW5lIEhBVkVfQ1RGT05UQ1JFQVRFRk9SQ0hBUkFDVEVSU1dJVEhM
QU5HVUFHRUFORE9QVElPTiAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMAotI2RlZmluZSBIQVZF
X0FSS0lUX1FVSUNLX0xPT0tfUFJFVklFV19JVEVNIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAw
Ci0jZGVmaW5lIEhBVkVfVUlfV0tfRE9DVU1FTlRfQ09OVEVYVCAxCi0jZW5kaWYKLQotI2lmIFBM
QVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBFTkFCTEVfUExBVEZPUk1fRFJJVkVOX1RFWFRf
Q0hFQ0tJTkcgMQotI2RlZmluZSBIQVZFX0hPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUiAxCi0jZGVm
aW5lIEhBVkVfVUlfUEFSQUxMQVhfVFJBTlNJVElPTl9HRVNUVVJFX1JFQ09HTklaRVIgMQotI2Vu
ZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTUwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNkZWZpbmUgSEFWRV9BTExP
V1NfU0VOU0lUSVZFX0xPR0dJTkcgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSNkZWZpbmUgSEFWRV9GQUlSUExBWVNUUkVBTUlOR19DRU5DX0lOSVREQVRBIDEK
LSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTMwMDAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9STShBUFBM
RVRWKQotI2RlZmluZSBIQVZFX1VJX1NDUk9MTF9WSUVXX0lORElDQVRPUl9GTEFTSElOR19TUEkg
MQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMzAwMDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQ
UExFVFYpCi0jZGVmaW5lIEhBVkVfQVBQX0xJTktTX1dJVEhfSVNFTkFCTEVEIDEKLSNlbmRpZgot
Ci0jaWYgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTMwMDAwKQotI2RlZmluZSBIQVZFX1JPVVRFX1NIQVJJTkdfUE9MSUNZX0xPTkdfRk9STV9W
SURFTyAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCAmJiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikpCi0j
ZGVmaW5lIEhBVkVfREVWSUNFX01BTkFHRU1FTlQgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA8IDEwMTUwMAotI2RlZmluZSBV
U0VfUkVBTFBBVEhfRk9SX0RMT1BFTl9QUkVGTElHSFQgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZP
Uk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwg
KFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikKLSNk
ZWZpbmUgSEFWRV9OU1VSTFNFU1NJT05fV0VCU09DS0VUIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8
IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEz
MDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikKLSNkZWZpbmUg
SEFWRV9BVlBMQVlFUl9SRVNPVVJDRV9DT05TRVJWQVRJT05fTEVWRUwgMQotI2VuZGlmCi0KLSNp
ZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTQwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTIwMDAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9STShBUFBMRVRWKQot
I2RlZmluZSBIQVZFX0NPUkVURVhUX0FVVE9fT1BUSUNBTF9TSVpJTkcgMQotI2VuZGlmCi0KLSNp
ZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAx
NTAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJF
RCA8IDEzMDAwMCkKLSNkZWZpbmUgSEFWRV9OU0ZPTlRfV0lUSF9PUFRJQ0FMX1NJWklOR19CVUcg
MQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkpCi0jZGVmaW5lIEhBVkVfQVBQ
X1NTTyAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCB8fCBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQ
TEFURk9STShBUFBMRVRWKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKLSNkZWZpbmUgSEFWRV9U
TFNfUFJPVE9DT0xfVkVSU0lPTl9UIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oSU9TKSB8fCAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQw
MCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikgfHwgUExBVEZPUk0o
TUFDQ0FUQUxZU1QpCi0jZGVmaW5lIEhBVkVfU0VDX1RSVVNUX0VWQUxVQVRFX1dJVEhfRVJST1Ig
MQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQot
I2RlZmluZSBVU0VfVUlDT05URVhUTUVOVSAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDAKLSNkZWZpbmUgSEFW
RV9TVUJWSUVXU19JVkFSX1NQSSAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEIDwgMTAxNTAwCi0jZGVmaW5lIEhBVkVfU1VCVklF
V1NfSVZBUl9ERUNMQVJFRF9CWV9TREsgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpIHx8
IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMTAwMDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpCi0j
ZGVmaW5lIFVTRV9QTEFURk9STV9TWVNURU1fRkFMTEJBQ0tfTElTVCAxCi0jZW5kaWYKLQotI2lm
IFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTUw
MAotI2RlZmluZSBIQVZFX0FYX0NMSUVOVF9UWVBFIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IChQ
TEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAw
MCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikKLSNkZWZpbmUgSEFW
RV9ERVNJR05fU1lTVEVNX1VJX0ZPTlRTIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDApIHx8IChQTEFURk9S
TShJT1MpICYmICFQTEFURk9STShJT1NfU0lNVUxBVE9SKSkKLSNkZWZpbmUgSEFWRV9ERVZJQ0Vf
SURFTlRJVFkgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNk
ZWZpbmUgSEFWRV9EQVRBX1BST1RFQ1RJT05fS0VZQ0hBSU4gMQotI2VuZGlmCi0KLSNpZiAoUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkg
fHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRP
UikpCi0jZGVmaW5lIEhBVkVfTkVBUl9GSUVMRCAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpIHx8ICghKGRlZmluZWQoVVNFX1NZU1RFTV9NQUxMT0MpICYmIFVTRV9TWVNURU1f
TUFMTE9DKSAmJiAoT1MoTElOVVgpICYmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkp
KSkKLSNkZWZpbmUgVVNFX0JNQUxMT0NfTUVNT1JZX0ZPT1RQUklOVF9BUEkgMQotI2VuZGlmCi0K
LSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTQwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNkZWZpbmUgSEFWRV9PU19TSUdOUE9T
VCAxCi0jZW5kaWYKKyNkZWZpbmUgV1RGX09TX1dJTiBFUlJPUiAiVVNFIFdJTkRPV1MgV0lUSCBP
UyBOT1QgV0lOIgorI2RlZmluZSBXVEZfT1NfTUFDIEVSUk9SICJVU0UgTUFDX09TX1ggV0lUSCBP
UyBOT1QgTUFDIgpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAyNTQ0MDkpCisrKyBTb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw5IEBACiAvKiBJ
bmNsdWRlIENQVSBzcGVjaWZpYyBtYWNyb3MgKi8KICNpbmNsdWRlIDx3dGYvQ1BVLmg+CiAKKy8q
IEluY2x1ZGUgdW5kZXJseWluZyBvcGVyYXRpbmcgc3lzdGVtIHNwZWNpZmljIG1hY3JvcyAqLwor
I2luY2x1ZGUgPHd0Zi9PUy5oPgorCiAvKiA9PT09IFBMQVRGT1JNIGhhbmRsZXMgT1MsIG9wZXJh
dGluZyBlbnZpcm9ubWVudCwgZ3JhcGhpY3MgQVBJLCBhbmQKICAgIENQVS4gVGhpcyBtYWNybyB3
aWxsIGJlIHBoYXNlZCBvdXQgaW4gZmF2b3Igb2YgcGxhdGZvcm0gYWRhcHRhdGlvbgogICAgbWFj
cm9zLCBwb2xpY3kgZGVjaXNpb24gbWFjcm9zLCBhbmQgdG9wLWxldmVsIHBvcnQgZGVmaW5pdGlv
bnMuID09PT0gKi8KQEAgLTQxLDEzICs0NCw4IEBACiAKIC8qID09PT0gUGxhdGZvcm0gYWRhcHRh
dGlvbiBtYWNyb3M6IHRoZXNlIGRlc2NyaWJlIHByb3BlcnRpZXMgb2YgdGhlIHRhcmdldCBlbnZp
cm9ubWVudC4gPT09PSAqLwogCi0vKiBDUFUoKSAtIHRoZSB0YXJnZXQgQ1BVIGFyY2hpdGVjdHVy
ZSAqLwotI2RlZmluZSBDUFUoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIFdURl9DUFVfIyNXVEZfRkVB
VFVSRSAgJiYgV1RGX0NQVV8jI1dURl9GRUFUVVJFKQogLyogSEFWRSgpIC0gc3BlY2lmaWMgc3lz
dGVtIGZlYXR1cmVzIChoZWFkZXJzLCBmdW5jdGlvbnMgb3Igc2ltaWxhcikgdGhhdCBhcmUgcHJl
c2VudCBvciBub3QgKi8KICNkZWZpbmUgSEFWRShXVEZfRkVBVFVSRSkgKGRlZmluZWQgSEFWRV8j
I1dURl9GRUFUVVJFICAmJiBIQVZFXyMjV1RGX0ZFQVRVUkUpCi0vKiBPUygpIC0gdW5kZXJseWlu
ZyBvcGVyYXRpbmcgc3lzdGVtOyBvbmx5IHRvIGJlIHVzZWQgZm9yIG1hbmRhdGVkIGxvdy1sZXZl
bCBzZXJ2aWNlcyBsaWtlIAotICAgdmlydHVhbCBtZW1vcnksIG5vdCB0byBjaG9vc2UgYSBHVUkg
dG9vbGtpdCAqLwotI2RlZmluZSBPUyhXVEZfRkVBVFVSRSkgKGRlZmluZWQgV1RGX09TXyMjV1RG
X0ZFQVRVUkUgICYmIFdURl9PU18jI1dURl9GRUFUVVJFKQogCiAKIC8qID09PT0gUG9saWN5IGRl
Y2lzaW9uIG1hY3JvczogdGhlc2UgZGVmaW5lIHBvbGljeSBjaG9pY2VzIGZvciBhIHBhcnRpY3Vs
YXIgcG9ydC4gPT09PSAqLwpAQCAtODUsOTAgKzgzLDYgQEAKIAogCiAKLS8qID09PT0gT1MoKSAt
IHVuZGVybHlpbmcgb3BlcmF0aW5nIHN5c3RlbTsgb25seSB0byBiZSB1c2VkIGZvciBtYW5kYXRl
ZCBsb3ctbGV2ZWwgc2VydmljZXMgbGlrZSAKLSAgIHZpcnR1YWwgbWVtb3J5LCBub3QgdG8gY2hv
b3NlIGEgR1VJIHRvb2xraXQgPT09PSAqLwotCi0vKiBPUyhBSVgpIC0gQUlYICovCi0jaWZkZWYg
X0FJWAotI2RlZmluZSBXVEZfT1NfQUlYIDEKLSNlbmRpZgotCi0vKiBPUyhEQVJXSU4pIC0gQW55
IERhcndpbi1iYXNlZCBPUywgaW5jbHVkaW5nIE1hYyBPUyBYIGFuZCBpUGhvbmUgT1MgKi8KLSNp
ZmRlZiBfX0FQUExFX18KLSNkZWZpbmUgV1RGX09TX0RBUldJTiAxCi0KLSNpbmNsdWRlIDxBdmFp
bGFiaWxpdHkuaD4KLSNpbmNsdWRlIDxBdmFpbGFiaWxpdHlNYWNyb3MuaD4KLSNpbmNsdWRlIDxU
YXJnZXRDb25kaXRpb25hbHMuaD4KLSNlbmRpZgotCi0vKiBPUyhJT1NfRkFNSUxZKSAtIGlPUyBm
YW1pbHksIGluY2x1ZGluZyBpT1MsIG1hY0NhdGFseXN0LCB0dk9TLCB3YXRjaE9TICovCi0vKiBP
UyhJT1MpIC0gaU9TIG9ubHksIG5vdCBpbmNsdWRpbmcgbWFjQ2F0YWx5c3QgKi8KLS8qIE9TKE1B
Q19PU19YKSAtIG1hY09TIChub3QgaW5jbHVkaW5nIGlPUyBmYW1pbHkpICovCi0jaWYgT1MoREFS
V0lOKQotI2lmIFRBUkdFVF9PU19JT1MgJiYgIShkZWZpbmVkKFRBUkdFVF9PU19NQUNDQVRBTFlT
VCkgJiYgVEFSR0VUX09TX01BQ0NBVEFMWVNUKQotI2RlZmluZSBXVEZfT1NfSU9TIDEKLSNlbmRp
ZgotI2lmIFRBUkdFVF9PU19JUEhPTkUKLSNkZWZpbmUgV1RGX09TX0lPU19GQU1JTFkgMQotI2Vs
aWYgVEFSR0VUX09TX01BQwotI2RlZmluZSBXVEZfT1NfTUFDX09TX1ggMQotI2VuZGlmCi0jZW5k
aWYKLQotLyogT1MoRlJFRUJTRCkgLSBGcmVlQlNEICovCi0jaWYgZGVmaW5lZChfX0ZyZWVCU0Rf
XykgfHwgZGVmaW5lZChfX0RyYWdvbkZseV9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxf
XykKLSNkZWZpbmUgV1RGX09TX0ZSRUVCU0QgMQotI2VuZGlmCi0KLS8qIE9TKEZVQ0hTSUEpIC0g
RnVjaHNpYSAqLwotI2lmZGVmIF9fRnVjaHNpYV9fCi0jZGVmaW5lIFdURl9PU19GVUNIU0lBIDEK
LSNlbmRpZgotCi0vKiBPUyhIVVJEKSAtIEdOVS9IdXJkICovCi0jaWZkZWYgX19HTlVfXwotI2Rl
ZmluZSBXVEZfT1NfSFVSRCAxCi0jZW5kaWYKLQotLyogT1MoTElOVVgpIC0gTGludXggKi8KLSNp
ZmRlZiBfX2xpbnV4X18KLSNkZWZpbmUgV1RGX09TX0xJTlVYIDEKLSNlbmRpZgotCi0vKiBPUyhO
RVRCU0QpIC0gTmV0QlNEICovCi0jaWYgZGVmaW5lZChfX05ldEJTRF9fKQotI2RlZmluZSBXVEZf
T1NfTkVUQlNEIDEKLSNlbmRpZgotCi0vKiBPUyhPUEVOQlNEKSAtIE9wZW5CU0QgKi8KLSNpZmRl
ZiBfX09wZW5CU0RfXwotI2RlZmluZSBXVEZfT1NfT1BFTkJTRCAxCi0jZW5kaWYKLQotLyogT1Mo
V0lORE9XUykgLSBBbnkgdmVyc2lvbiBvZiBXaW5kb3dzICovCi0jaWYgZGVmaW5lZChXSU4zMikg
fHwgZGVmaW5lZChfV0lOMzIpCi0jZGVmaW5lIFdURl9PU19XSU5ET1dTIDEKLSNlbmRpZgotCi0j
ZGVmaW5lIFdURl9PU19XSU4gRVJST1IgIlVTRSBXSU5ET1dTIFdJVEggT1MgTk9UIFdJTiIKLSNk
ZWZpbmUgV1RGX09TX01BQyBFUlJPUiAiVVNFIE1BQ19PU19YIFdJVEggT1MgTk9UIE1BQyIKLQot
LyogT1MoVU5JWCkgLSBBbnkgVW5peC1saWtlIHN5c3RlbSAqLwotI2lmICAgIE9TKEFJWCkgICAg
ICAgICAgICAgIFwKLSAgICB8fCBPUyhEQVJXSU4pICAgICAgICAgICBcCi0gICAgfHwgT1MoRlJF
RUJTRCkgICAgICAgICAgXAotICAgIHx8IE9TKEZVQ0hTSUEpICAgICAgICAgIFwKLSAgICB8fCBP
UyhIVVJEKSAgICAgICAgICAgICBcCi0gICAgfHwgT1MoTElOVVgpICAgICAgICAgICAgXAotICAg
IHx8IE9TKE5FVEJTRCkgICAgICAgICAgIFwKLSAgICB8fCBPUyhPUEVOQlNEKSAgICAgICAgICBc
Ci0gICAgfHwgZGVmaW5lZCh1bml4KSAgICAgICAgXAotICAgIHx8IGRlZmluZWQoX191bml4KSAg
ICAgIFwKLSAgICB8fCBkZWZpbmVkKF9fdW5peF9fKQotI2RlZmluZSBXVEZfT1NfVU5JWCAxCi0j
ZW5kaWYKLQogLyogT3BlcmF0aW5nIGVudmlyb25tZW50cyAqLwogCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387453</attachid>
            <date>2020-01-11 19:46:56 -0800</date>
            <delta_ts>2020-01-12 14:09:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206138-20200111194655.patch</filename>
            <type>text/plain</type>
            <size>89937</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTQ0MDkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDIwLTAxLTExICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBQbGF0Zm9ybS5oIGlzIG91dCBvZiBjb250cm9sIFBhcnQg
MjogU3BsaXQgV1RGX09TXyogbWFjcm8gZGVmaW5pdGlvbnMgb3V0IG9mIFBsYXRmb3JtLmggYW5k
IGludG8gYSBuZXcgT1MuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA2MTM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQXMgYSBhbm90aGVyIHN0ZXAgdG93YXJkcyBjbGVhbmluZyB1cCBQbGF0Zm9ybS5o
LCBzcGxpdCBvdXQgT1MgcmVsYXRlZAorICAgICAgICBtYWNyb3MgaW50byB0aGVpciBvd24gZmls
ZS4KKworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvT1MuaDogQ29waWVkIGZyb20gU291
cmNlL1dURi93dGYvUGxhdGZvcm0uaC4KKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAy
MC0wMS0xMSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUGxhdGZv
cm0uaCBpcyBvdXQgb2YgY29udHJvbCBQYXJ0IDE6IFNwbGl0IFdURl9DUFVfKiBtYWNybyBkZWZp
bml0aW9ucyBvdXQgb2YgUGxhdGZvcm0uaCBhbmQgaW50byBhIG5ldyBDUFUuaApJbmRleDogU291
cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTQ0MDkpCisr
KyBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC00NDQsNiArNDQ0LDcgQEAKIAkJN0MxMzc5NDIyMjIzMjZENTAwRDdBODI0IC8qIGllZWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gaWVlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QzEzNzk0MzIyMjMyNkQ1MDBEN0E4MjQgLyogUkVBRE1FLm1kICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gbmV0LmRhcmluZ2ZpcmViYWxsLm1hcmtkb3du
OyBwYXRoID0gUkVBRE1FLm1kOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzNGNzIz
OTFENzg4MTE5MDA2NzRFMjYgLyogQnJpZ2FuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBCcmlnYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDOEI2MzMw
MjNDQUM3NkQwMEJCNDYyMCAvKiBPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Qzk2OTI5NDFGNjYzMDZFMDAy
NjdBOUUgLyogS2V5VmFsdWVQYWlyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEtleVZhbHVlUGFpci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0E4NDJFOTIz
Qzk4Q0I3MDA1MTRDQUYgLyogQ1BVLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENQVS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0JCQTA3MzE5QkI3RkRDMDBC
QkYwMjUgLyogT1NPYmplY3RQdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
T1NPYmplY3RQdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMDYsNiArMTEw
Nyw3IEBACiAJCQkJMUE0NjU2MTgxQzdGQzY4RTAwRjU5MjBGIC8qIE9wdGlvblNldC5oICovLAog
CQkJCTI3NURGQjZCMjM4QkRGNzIwMDEyMzBFMiAvKiBPcHRpb25TZXRIYXNoLmggKi8sCiAJCQkJ
MEY5NDk1ODMxQzU3MUNDOTAwNDEzQTQ4IC8qIE9yZGVyTWFrZXIuaCAqLywKKwkJCQk3QzhCNjMz
MDIzQ0FDNzZEMDBCQjQ2MjAgLyogT1MuaCAqLywKIAkJCQlBOEE0NzJENzE1MUE4MjVCMDA0MTIz
RkYgLyogT1NBbGxvY2F0b3IuaCAqLywKIAkJCQk3Q0JCQTA3MzE5QkI3RkRDMDBCQkYwMjUgLyog
T1NPYmplY3RQdHIuaCAqLywKIAkJCQlBOEE0NzJEQTE1MUE4MjVCMDA0MTIzRkYgLyogT1NSYW5k
b21Tb3VyY2UuY3BwICovLApJbmRleDogU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDI1NDQw
OSkKKysrIFNvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
NDksNiArMTQ5LDcgQEAgc2V0KFdURl9QVUJMSUNfSEVBREVSUwogICAgIE5vbm1vdmFibGUuaAog
ICAgIE5vdEZvdW5kLmgKICAgICBOdW1iZXJPZkNvcmVzLmgKKyAgICBPUy5oCiAgICAgT1NBbGxv
Y2F0b3IuaAogICAgIE9TT2JqZWN0UHRyLmgKICAgICBPU1JhbmRvbVNvdXJjZS5oCkluZGV4OiBT
b3VyY2UvV1RGL3d0Zi9PUy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL09TLmgJKHJl
dmlzaW9uIDI1NDQwOSkJKGZyb20gU291cmNlL1dURi93dGYvUGxhdGZvcm0uaDoyNTQ0MDkpCisr
KyBTb3VyY2UvV1RGL3d0Zi9PUy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTM3MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorICog
Q29weXJpZ2h0IChDKSAyMDEwLCAyMDExIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworLyogSW5jbHVkZSBjb21waWxlciBzcGVjaWZpYyBtYWNyb3Mg
Ki8KKyNpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4KKworLyogSW5jbHVkZSBDUFUgc3BlY2lmaWMg
bWFjcm9zICovCisjaW5jbHVkZSA8d3RmL0NQVS5oPgorCisvKiA9PT09IFBMQVRGT1JNIGhhbmRs
ZXMgT1MsIG9wZXJhdGluZyBlbnZpcm9ubWVudCwgZ3JhcGhpY3MgQVBJLCBhbmQKKyAgIENQVS4g
VGhpcyBtYWNybyB3aWxsIGJlIHBoYXNlZCBvdXQgaW4gZmF2b3Igb2YgcGxhdGZvcm0gYWRhcHRh
dGlvbgorICAgbWFjcm9zLCBwb2xpY3kgZGVjaXNpb24gbWFjcm9zLCBhbmQgdG9wLWxldmVsIHBv
cnQgZGVmaW5pdGlvbnMuID09PT0gKi8KKyNkZWZpbmUgUExBVEZPUk0oV1RGX0ZFQVRVUkUpIChk
ZWZpbmVkIFdURl9QTEFURk9STV8jI1dURl9GRUFUVVJFICAmJiBXVEZfUExBVEZPUk1fIyNXVEZf
RkVBVFVSRSkKKworCisvKiA9PT09IFBsYXRmb3JtIGFkYXB0YXRpb24gbWFjcm9zOiB0aGVzZSBk
ZXNjcmliZSBwcm9wZXJ0aWVzIG9mIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQuID09PT0gKi8KKwor
LyogQ1BVKCkgLSB0aGUgdGFyZ2V0IENQVSBhcmNoaXRlY3R1cmUgKi8KKyNkZWZpbmUgQ1BVKFdU
Rl9GRUFUVVJFKSAoZGVmaW5lZCBXVEZfQ1BVXyMjV1RGX0ZFQVRVUkUgICYmIFdURl9DUFVfIyNX
VEZfRkVBVFVSRSkKKy8qIEhBVkUoKSAtIHNwZWNpZmljIHN5c3RlbSBmZWF0dXJlcyAoaGVhZGVy
cywgZnVuY3Rpb25zIG9yIHNpbWlsYXIpIHRoYXQgYXJlIHByZXNlbnQgb3Igbm90ICovCisjZGVm
aW5lIEhBVkUoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIEhBVkVfIyNXVEZfRkVBVFVSRSAgJiYgSEFW
RV8jI1dURl9GRUFUVVJFKQorLyogT1MoKSAtIHVuZGVybHlpbmcgb3BlcmF0aW5nIHN5c3RlbTsg
b25seSB0byBiZSB1c2VkIGZvciBtYW5kYXRlZCBsb3ctbGV2ZWwgc2VydmljZXMgbGlrZSAKKyAg
IHZpcnR1YWwgbWVtb3J5LCBub3QgdG8gY2hvb3NlIGEgR1VJIHRvb2xraXQgKi8KKyNkZWZpbmUg
T1MoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIFdURl9PU18jI1dURl9GRUFUVVJFICAmJiBXVEZfT1Nf
IyNXVEZfRkVBVFVSRSkKKworCisvKiA9PT09IFBvbGljeSBkZWNpc2lvbiBtYWNyb3M6IHRoZXNl
IGRlZmluZSBwb2xpY3kgY2hvaWNlcyBmb3IgYSBwYXJ0aWN1bGFyIHBvcnQuID09PT0gKi8KKwor
LyogVVNFKCkgLSB1c2UgYSBwYXJ0aWN1bGFyIHRoaXJkLXBhcnR5IGxpYnJhcnkgb3Igb3B0aW9u
YWwgT1Mgc2VydmljZSAqLworI2RlZmluZSBVU0UoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIFVTRV8j
I1dURl9GRUFUVVJFICAmJiBVU0VfIyNXVEZfRkVBVFVSRSkKKy8qIEVOQUJMRSgpIC0gdHVybiBv
biBhIHNwZWNpZmljIGZlYXR1cmUgb2YgV2ViS2l0ICovCisjZGVmaW5lIEVOQUJMRShXVEZfRkVB
VFVSRSkgKGRlZmluZWQgRU5BQkxFXyMjV1RGX0ZFQVRVUkUgICYmIEVOQUJMRV8jI1dURl9GRUFU
VVJFKQorCisKKy8qIE1JUFMgcmVxdWlyZXMgYWxsb2NhdG9ycyB0byB1c2UgYWxpZ25lZCBtZW1v
cnkgKi8KKyNpZiBDUFUoTUlQUykgfHwgQ1BVKE1JUFM2NCkKKyNkZWZpbmUgVVNFX0FSRU5BX0FM
TE9DX0FMSUdOTUVOVF9JTlRFR0VSIDEKKyNlbmRpZgorCisvKkFSTXY1VEUgcmVxdWlyZXMgYWxs
b2NhdG9ycyB0byB1c2UgYWxpZ25lZCBtZW1vcnkqLworI2lmIGRlZmluZWQoX19BUk1fQVJDSF81
RV9fKSB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNVRFX18pIHx8IGRlZmluZWQoX19BUk1fQVJDSF81
VEVKX18pCisjZGVmaW5lIFVTRV9BUkVOQV9BTExPQ19BTElHTk1FTlRfSU5URUdFUiAxCisjZW5k
aWYKKworLypBUk12NVRFIHJlcXVpcmVzIGFsbG9jYXRvcnMgdG8gdXNlIGFsaWduZWQgbWVtb3J5
Ki8KKyNpZiBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfNUUpIHx8IGRlZmluZWQoX19UQVJHRVRfQVJD
SF81VEUpIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF81VEVKKQorI2RlZmluZSBVU0VfQVJFTkFf
QUxMT0NfQUxJR05NRU5UX0lOVEVHRVIgMQorI2VuZGlmCisKKyNpZiBDUFUoQVJNX05FT04pCisv
KiBBbGwgTkVPTiBpbnRyaW5zaWNzIHVzYWdlIGNhbiBiZSBkaXNhYmxlZCBieSB0aGlzIG1hY3Jv
LiAqLworI2RlZmluZSBIQVZFX0FSTV9ORU9OX0lOVFJJTlNJQ1MgMQorI2VuZGlmCisKKy8qIEZJ
WE1FOiBUaGlzIHNob3VsZCBiZSByZW5hbWVkIHRvIFdURl9DUFVfQVJNX0lESVZfSU5TVFJVQ1RJ
T05TIGFuZCBtb3ZlZCB0byBDUFUuaCAqLworI2lmIGRlZmluZWQoX19BUk1fQVJDSF9FWFRfSURJ
Vl9fKSB8fCBDUFUoQVBQTEVfQVJNVjdTKQorI2RlZmluZSBIQVZFX0FSTV9JRElWX0lOU1RSVUNU
SU9OUyAxCisjZW5kaWYKKworCisKKy8qID09PT0gT1MoKSAtIHVuZGVybHlpbmcgb3BlcmF0aW5n
IHN5c3RlbTsgb25seSB0byBiZSB1c2VkIGZvciBtYW5kYXRlZCBsb3ctbGV2ZWwgc2VydmljZXMg
bGlrZSAKKyAgIHZpcnR1YWwgbWVtb3J5LCBub3QgdG8gY2hvb3NlIGEgR1VJIHRvb2xraXQgPT09
PSAqLworCisvKiBPUyhBSVgpIC0gQUlYICovCisjaWZkZWYgX0FJWAorI2RlZmluZSBXVEZfT1Nf
QUlYIDEKKyNlbmRpZgorCisvKiBPUyhEQVJXSU4pIC0gQW55IERhcndpbi1iYXNlZCBPUywgaW5j
bHVkaW5nIE1hYyBPUyBYIGFuZCBpUGhvbmUgT1MgKi8KKyNpZmRlZiBfX0FQUExFX18KKyNkZWZp
bmUgV1RGX09TX0RBUldJTiAxCisKKyNpbmNsdWRlIDxBdmFpbGFiaWxpdHkuaD4KKyNpbmNsdWRl
IDxBdmFpbGFiaWxpdHlNYWNyb3MuaD4KKyNpbmNsdWRlIDxUYXJnZXRDb25kaXRpb25hbHMuaD4K
KyNlbmRpZgorCisvKiBPUyhJT1NfRkFNSUxZKSAtIGlPUyBmYW1pbHksIGluY2x1ZGluZyBpT1Ms
IG1hY0NhdGFseXN0LCB0dk9TLCB3YXRjaE9TICovCisvKiBPUyhJT1MpIC0gaU9TIG9ubHksIG5v
dCBpbmNsdWRpbmcgbWFjQ2F0YWx5c3QgKi8KKy8qIE9TKE1BQ19PU19YKSAtIG1hY09TIChub3Qg
aW5jbHVkaW5nIGlPUyBmYW1pbHkpICovCisjaWYgT1MoREFSV0lOKQorI2lmIFRBUkdFVF9PU19J
T1MgJiYgIShkZWZpbmVkKFRBUkdFVF9PU19NQUNDQVRBTFlTVCkgJiYgVEFSR0VUX09TX01BQ0NB
VEFMWVNUKQorI2RlZmluZSBXVEZfT1NfSU9TIDEKKyNlbmRpZgorI2lmIFRBUkdFVF9PU19JUEhP
TkUKKyNkZWZpbmUgV1RGX09TX0lPU19GQU1JTFkgMQorI2VsaWYgVEFSR0VUX09TX01BQworI2Rl
ZmluZSBXVEZfT1NfTUFDX09TX1ggMQorI2VuZGlmCisjZW5kaWYKKworLyogT1MoRlJFRUJTRCkg
LSBGcmVlQlNEICovCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0RyYWdv
bkZseV9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKKyNkZWZpbmUgV1RGX09TX0ZS
RUVCU0QgMQorI2VuZGlmCisKKy8qIE9TKEZVQ0hTSUEpIC0gRnVjaHNpYSAqLworI2lmZGVmIF9f
RnVjaHNpYV9fCisjZGVmaW5lIFdURl9PU19GVUNIU0lBIDEKKyNlbmRpZgorCisvKiBPUyhIVVJE
KSAtIEdOVS9IdXJkICovCisjaWZkZWYgX19HTlVfXworI2RlZmluZSBXVEZfT1NfSFVSRCAxCisj
ZW5kaWYKKworLyogT1MoTElOVVgpIC0gTGludXggKi8KKyNpZmRlZiBfX2xpbnV4X18KKyNkZWZp
bmUgV1RGX09TX0xJTlVYIDEKKyNlbmRpZgorCisvKiBPUyhORVRCU0QpIC0gTmV0QlNEICovCisj
aWYgZGVmaW5lZChfX05ldEJTRF9fKQorI2RlZmluZSBXVEZfT1NfTkVUQlNEIDEKKyNlbmRpZgor
CisvKiBPUyhPUEVOQlNEKSAtIE9wZW5CU0QgKi8KKyNpZmRlZiBfX09wZW5CU0RfXworI2RlZmlu
ZSBXVEZfT1NfT1BFTkJTRCAxCisjZW5kaWYKKworLyogT1MoV0lORE9XUykgLSBBbnkgdmVyc2lv
biBvZiBXaW5kb3dzICovCisjaWYgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfV0lOMzIpCisj
ZGVmaW5lIFdURl9PU19XSU5ET1dTIDEKKyNlbmRpZgorCisjZGVmaW5lIFdURl9PU19XSU4gRVJS
T1IgIlVTRSBXSU5ET1dTIFdJVEggT1MgTk9UIFdJTiIKKyNkZWZpbmUgV1RGX09TX01BQyBFUlJP
UiAiVVNFIE1BQ19PU19YIFdJVEggT1MgTk9UIE1BQyIKKworLyogT1MoVU5JWCkgLSBBbnkgVW5p
eC1saWtlIHN5c3RlbSAqLworI2lmICAgIE9TKEFJWCkgICAgICAgICAgICAgIFwKKyAgICB8fCBP
UyhEQVJXSU4pICAgICAgICAgICBcCisgICAgfHwgT1MoRlJFRUJTRCkgICAgICAgICAgXAorICAg
IHx8IE9TKEZVQ0hTSUEpICAgICAgICAgIFwKKyAgICB8fCBPUyhIVVJEKSAgICAgICAgICAgICBc
CisgICAgfHwgT1MoTElOVVgpICAgICAgICAgICAgXAorICAgIHx8IE9TKE5FVEJTRCkgICAgICAg
ICAgIFwKKyAgICB8fCBPUyhPUEVOQlNEKSAgICAgICAgICBcCisgICAgfHwgZGVmaW5lZCh1bml4
KSAgICAgICAgXAorICAgIHx8IGRlZmluZWQoX191bml4KSAgICAgIFwKKyAgICB8fCBkZWZpbmVk
KF9fdW5peF9fKQorI2RlZmluZSBXVEZfT1NfVU5JWCAxCisjZW5kaWYKKworLyogT3BlcmF0aW5n
IGVudmlyb25tZW50cyAqLworCisKKy8qIEZJWE1FOiBSZW5hbWUgV1RGX0NQVV9FRkZFQ1RJVkVf
QUREUkVTU19XSURUSCB0byBXVEZfT1NfRUZGRUNUSVZFX0FERFJFU1NfV0lEVEgsIGFzIGl0IGlz
IGFuIE9TIGZlYXR1cmUsIG5vdCBhIENQVSBmZWF0dXJlLiAqLworI2lmIENQVShBRERSRVNTNjQp
CisjaWYgT1MoREFSV0lOKSAmJiBDUFUoQVJNNjQpCisjZGVmaW5lIFdURl9DUFVfRUZGRUNUSVZF
X0FERFJFU1NfV0lEVEggMzYKKyNlbHNlCisvKiBXZSBzdHJvbmdseSBhc3N1bWUgdGhhdCBlZmZl
Y3RpdmUgYWRkcmVzcyB3aWR0aCBpcyA8PSA0OCBpbiA2NGJpdCBhcmNoaXRlY3R1cmVzIChlLmcu
IE5hTiBib3hpbmcpLiAqLworI2RlZmluZSBXVEZfQ1BVX0VGRkVDVElWRV9BRERSRVNTX1dJRFRI
IDQ4CisjZW5kaWYKKyNlbHNlCisjZGVmaW5lIFdURl9DUFVfRUZGRUNUSVZFX0FERFJFU1NfV0lE
VEggMzIKKyNlbmRpZgorCisvKiBFeHBvcnQgbWFjcm8gc3VwcG9ydC4gRGV0ZWN0cyB0aGUgYXR0
cmlidXRlcyBhdmFpbGFibGUgZm9yIHNoYXJlZCBsaWJyYXJ5IHN5bWJvbCBleHBvcnQKKyAgIGRl
Y29yYXRpb25zLiAqLworI2lmIE9TKFdJTkRPV1MpIHx8IChDT01QSUxFUl9IQVNfQ0xBTkdfREVD
TFNQRUMoZGxsaW1wb3J0KSAmJiBDT01QSUxFUl9IQVNfQ0xBTkdfREVDTFNQRUMoZGxsZXhwb3J0
KSkKKyNkZWZpbmUgVVNFX0RFQ0xTUEVDX0FUVFJJQlVURSAxCisjZGVmaW5lIFVTRV9WSVNJQklM
SVRZX0FUVFJJQlVURSAwCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKQorI2RlZmluZSBVU0VfREVD
TFNQRUNfQVRUUklCVVRFIDAKKyNkZWZpbmUgVVNFX1ZJU0lCSUxJVFlfQVRUUklCVVRFIDEKKyNl
bHNlCisjZGVmaW5lIFVTRV9ERUNMU1BFQ19BVFRSSUJVVEUgMAorI2RlZmluZSBVU0VfVklTSUJJ
TElUWV9BVFRSSUJVVEUgMAorI2VuZGlmCisKKy8qIFN0YW5kYXJkIGxpYnJhcmllcyAqLworI2lm
IGRlZmluZWQoSEFWRV9GRUFUVVJFU19IKSAmJiBIQVZFX0ZFQVRVUkVTX0gKKy8qIElmIHRoZSBp
bmNsdWRlZCBmZWF0dXJlcy5oIGlzIGdsaWJjJ3Mgb25lLCBfX0dMSUJDX18gaXMgZGVmaW5lZC4g
Ki8KKyNpbmNsdWRlIDxmZWF0dXJlcy5oPgorI2VuZGlmCisKKy8qIEZJWE1FOiB0aGVzZSBhcmUg
YWxsIG1peGVzIG9mIE9TLCBvcGVyYXRpbmcgZW52aXJvbm1lbnQgYW5kIHBvbGljeSBjaG9pY2Vz
LiAqLworLyogUExBVEZPUk0oR1RLKSAqLworLyogUExBVEZPUk0oTUFDKSAqLworLyogUExBVEZP
Uk0oSU9TKSAqLworLyogUExBVEZPUk0oSU9TX0ZBTUlMWSkgKi8KKy8qIFBMQVRGT1JNKElPU19T
SU1VTEFUT1IpICovCisvKiBQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikgKi8KKy8qIFBM
QVRGT1JNKFdJTikgKi8KKyNpZiBkZWZpbmVkKEJVSUxESU5HX0dUS19fKQorI2RlZmluZSBXVEZf
UExBVEZPUk1fR1RLIDEKKyNlbGlmIGRlZmluZWQoQlVJTERJTkdfV1BFX18pCisjZGVmaW5lIFdU
Rl9QTEFURk9STV9XUEUgMQorI2VsaWYgZGVmaW5lZChCVUlMRElOR19KU0NPTkxZX18pCisvKiBK
U0NPbmx5IGRvZXMgbm90IHByb3ZpZGUgUExBVEZPUk0oKSBtYWNybyAqLworI2VsaWYgT1MoTUFD
X09TX1gpCisjZGVmaW5lIFdURl9QTEFURk9STV9NQUMgMQorI2VsaWYgT1MoSU9TX0ZBTUlMWSkK
KyNpZiBPUyhJT1MpCisjZGVmaW5lIFdURl9QTEFURk9STV9JT1MgMQorI2VuZGlmCisjZGVmaW5l
IFdURl9QTEFURk9STV9JT1NfRkFNSUxZIDEKKyNpZiBUQVJHRVRfT1NfU0lNVUxBVE9SCisjaWYg
T1MoSU9TKQorI2RlZmluZSBXVEZfUExBVEZPUk1fSU9TX1NJTVVMQVRPUiAxCisjZW5kaWYKKyNk
ZWZpbmUgV1RGX1BMQVRGT1JNX0lPU19GQU1JTFlfU0lNVUxBVE9SIDEKKyNlbmRpZgorI2lmIGRl
ZmluZWQoVEFSR0VUX09TX01BQ0NBVEFMWVNUKSAmJiBUQVJHRVRfT1NfTUFDQ0FUQUxZU1QKKyNk
ZWZpbmUgV1RGX1BMQVRGT1JNX01BQ0NBVEFMWVNUIDEKKyNlbmRpZgorI2VsaWYgT1MoV0lORE9X
UykKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX1dJTiAxCisjZW5kaWYKKworLyogUExBVEZPUk0oQ09D
T0EpICovCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorI2RlZmlu
ZSBXVEZfUExBVEZPUk1fQ09DT0EgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNp
ZiBkZWZpbmVkIF9faGFzX2luY2x1ZGUgJiYgX19oYXNfaW5jbHVkZSg8Q29yZUZvdW5kYXRpb24v
Q0ZQcml2Lmg+KQorI2RlZmluZSBVU0VfQVBQTEVfSU5URVJOQUxfU0RLIDEKKyNlbmRpZgorI2Vu
ZGlmCisKKy8qIFBMQVRGT1JNKEFQUExFVFYpICovCisjaWYgZGVmaW5lZChUQVJHRVRfT1NfVFYp
ICYmIFRBUkdFVF9PU19UVgorI2RlZmluZSBXVEZfUExBVEZPUk1fQVBQTEVUViAxCisjZW5kaWYK
KworLyogUExBVEZPUk0oV0FUQ0hPUykgKi8KKyNpZiBkZWZpbmVkKFRBUkdFVF9PU19XQVRDSCkg
JiYgVEFSR0VUX09TX1dBVENICisjZGVmaW5lIFdURl9QTEFURk9STV9XQVRDSE9TIDEKKyNlbmRp
ZgorCisvKiBHcmFwaGljcyBlbmdpbmVzICovCisKKy8qIFVTRShDRykgYW5kIFBMQVRGT1JNKENJ
KSAqLworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBVU0VfQ0cgMQorI2RlZmluZSBVU0Vf
Q0EgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKKyNkZWZp
bmUgVVNFX0dMSUIgMQorI2RlZmluZSBVU0VfRlJFRVRZUEUgMQorI2RlZmluZSBVU0VfSEFSRkJV
WlogMQorI2RlZmluZSBVU0VfU09VUCAxCisjZGVmaW5lIFVTRV9XRUJQIDEKKyNkZWZpbmUgVVNF
X0ZJTEVfTE9DSyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKEdUSykKKyNkZWZpbmUgR0xJQl9W
RVJTSU9OX01JTl9SRVFVSVJFRCBHTElCX1ZFUlNJT05fMl8zNgorI2RlZmluZSBHREtfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgR0RLX1ZFUlNJT05fM182CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdQ
RSkKKyNkZWZpbmUgR0xJQl9WRVJTSU9OX01JTl9SRVFVSVJFRCBHTElCX1ZFUlNJT05fMl80MAor
I2VuZGlmCisKKyNpZiBVU0UoU09VUCkKKyNkZWZpbmUgU09VUF9WRVJTSU9OX01JTl9SRVFVSVJF
RCBTT1VQX1ZFUlNJT05fMl80MgorI2VuZGlmCisKKy8qIE9uIFdpbmRvd3MsIHVzZSBRdWVyeVBl
cmZvcm1hbmNlQ291bnRlciBieSBkZWZhdWx0ICovCisjaWYgT1MoV0lORE9XUykKKyNkZWZpbmUg
VVNFX1FVRVJZX1BFUkZPUk1BTkNFX0NPVU5URVIgIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0o
Q09DT0EpCisKKyNkZWZpbmUgSEFWRV9PVVRfT0ZfUFJPQ0VTU19MQVlFUl9IT1NUSU5HIDEKKyNk
ZWZpbmUgVVNFX0NGIDEKKyNkZWZpbmUgVVNFX0ZJTEVfTE9DSyAxCisjZGVmaW5lIFVTRV9GT1VO
REFUSU9OIDEKKyNkZWZpbmUgVVNFX05FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLIDEKKwor
LyogQ29jb2EgZGVmaW5lcyBhIHNlcmllcyBvZiBwbGF0Zm9ybSBtYWNyb3MgZm9yIGRlYnVnZ2lu
Zy4gKi8KKy8qIFNvbWUgb2YgdGhlbSBhcmUgcmVhbGx5IGFubm95aW5nIGJlY2F1c2UgdGhleSB1
c2UgY29tbW9uIG5hbWVzIChlLmcuIGNoZWNrKCkpLiAqLworLyogRGlzYWJsZSB0aG9zZSBtYWNy
b3Mgc28gdGhhdCB3ZSBhcmUgbm90IGxpbWl0ZWQgaW4gaG93IHdlIG5hbWUgbWV0aG9kcyBhbmQg
ZnVuY3Rpb25zLiAqLworI3VuZGVmIF9fQVNTRVJUX01BQ1JPU19ERUZJTkVfVkVSU0lPTlNfV0lU
SE9VVF9VTkRFUlNDT1JFUworI2RlZmluZSBfX0FTU0VSVF9NQUNST1NfREVGSU5FX1ZFUlNJT05T
X1dJVEhPVVRfVU5ERVJTQ09SRVMgMAorCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykKKwor
I2RlZmluZSBIQVZFX1JVTkxPT1BfVElNRVIgMQorI2RlZmluZSBIQVZFX1NFQ19LRVlDSEFJTiAx
CisjZGVmaW5lIEhBVkVfSElTRVJWSUNFUyAxCisjZGVmaW5lIFVTRV9BUFBLSVQgMQorI2RlZmlu
ZSBVU0VfUEFTU0tJVCAxCisKKyNpZiBDUFUoWDg2XzY0KQorI2RlZmluZSBIQVZFX05FVFdPUktf
RVhURU5TSU9OIDEKKyNkZWZpbmUgVVNFX1BMVUdJTl9IT1NUX1BST0NFU1MgMQorI2VuZGlmCisj
ZW5kaWYgLyogUExBVEZPUk0oTUFDKSAqLworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwor
I2RlZmluZSBIQVZFX05FVFdPUktfRVhURU5TSU9OIDEKKyNkZWZpbmUgSEFWRV9SRUFETElORSAx
CisjZGVmaW5lIFVTRV9VSUtJVF9FRElUSU5HIDEKKyNkZWZpbmUgVVNFX1dFQl9USFJFQUQgMQor
CisjaWYgQ1BVKEFSTTY0KQorI2RlZmluZSBFTkFCTEVfSklUX0NPTlNUQU5UX0JMSU5ESU5HIDAK
KyNlbmRpZgorCisjaWYgQ1BVKEFSTV9ORU9OKQorI3VuZGVmIEhBVkVfQVJNX05FT05fSU5UUklO
U0lDUworI2RlZmluZSBIQVZFX0FSTV9ORU9OX0lOVFJJTlNJQ1MgMAorI2VuZGlmCisKKyNlbmRp
ZiAvKiBQTEFURk9STShJT1NfRkFNSUxZKSAqLworCisjaWYgIWRlZmluZWQoSEFWRV9BQ0NFU1NJ
QklMSVRZKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV1BFKQorI2RlZmluZSBIQVZFX0FDQ0VTU0lCSUxJVFkgMQorI2Vu
ZGlmCisjZW5kaWYgLyogIWRlZmluZWQoSEFWRV9BQ0NFU1NJQklMSVRZKSAqLworCisvKiBGSVhN
RTogUmVtb3ZlIGFmdGVyIENNYWtlIGJ1aWxkIGVuYWJsZWQgb24gRGFyd2luICovCisjaWYgT1Mo
REFSV0lOKQorI2RlZmluZSBIQVZFX0VSUk5PX0ggMQorI2RlZmluZSBIQVZFX0xBTkdJTkZPX0gg
MQorI2RlZmluZSBIQVZFX0xPQ0FMVElNRV9SIDEKKyNkZWZpbmUgSEFWRV9NTUFQIDEKKyNkZWZp
bmUgSEFWRV9SRUdFWF9IIDEKKyNkZWZpbmUgSEFWRV9TSUdOQUxfSCAxCisjZGVmaW5lIEhBVkVf
U1RBVF9CSVJUSFRJTUUgMQorI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCisjZGVmaW5lIEhBVkVf
U1RSTlNUUiAxCisjZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQorI2RlZmluZSBIQVZFX1NZU19U
SU1FX0ggMSAKKyNkZWZpbmUgSEFWRV9UTV9HTVRPRkYgMQorI2RlZmluZSBIQVZFX1RNX1pPTkUg
MQorI2RlZmluZSBIQVZFX1RJTUVHTSAxCisjZGVmaW5lIEhBVkVfUFRIUkVBRF9NQUlOX05QIDEK
KworI2lmIENQVShYODZfNjQpIHx8IENQVShBUk02NCkKKyNkZWZpbmUgSEFWRV9JTlQxMjhfVCAx
CisjZW5kaWYKKyNlbmRpZiAvKiBPUyhEQVJXSU4pICovCisKKyNpZiBPUyhVTklYKQorI2RlZmlu
ZSBVU0VfUFRIUkVBRFMgMQorI2VuZGlmIC8qIE9TKFVOSVgpICovCisKKyNpZiBPUyhVTklYKSAm
JiAhT1MoRlVDSFNJQSkKKyNkZWZpbmUgSEFWRV9SRVNPVVJDRV9IIDEKKyNkZWZpbmUgSEFWRV9Q
VEhSRUFEX1NFVFNDSEVEUEFSQU0gMQorI2VuZGlmCisKKyNpZiBPUyhEQVJXSU4pCisjZGVmaW5l
IEhBVkVfRElTUEFUQ0hfSCAxCisjZGVmaW5lIEhBVkVfTUFEVl9GUkVFIDEKKyNkZWZpbmUgSEFW
RV9NQURWX0ZSRUVfUkVVU0UgMQorI2RlZmluZSBIQVZFX01BRFZfRE9OVE5FRUQgMQorI2RlZmlu
ZSBIQVZFX01FUkdFU09SVCAxCisjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVROQU1FX05QIDEKKyNk
ZWZpbmUgSEFWRV9SRUFETElORSAxCisjZGVmaW5lIEhBVkVfU1lTX1RJTUVCX0ggMQorI2RlZmlu
ZSBIQVZFX0FVRElUX1RPS0VOIDEKKworI2lmIF9faGFzX2luY2x1ZGUoPG1hY2gvbWFjaF9leGMu
ZGVmcz4pICYmICFQTEFURk9STShHVEspCisjZGVmaW5lIEhBVkVfTUFDSF9FWENFUFRJT05TIDEK
KyNlbmRpZgorCisjaWYgIVBMQVRGT1JNKEdUSykKKyNkZWZpbmUgVVNFX0FDQ0VMRVJBVEUgMQor
I2VuZGlmCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisjZGVmaW5lIEhBVkVfSE9TVEVEX0NP
UkVfQU5JTUFUSU9OIDEKKyNlbmRpZgorCisjZW5kaWYgLyogT1MoREFSV0lOKSAqLworCisjaWYg
T1MoREFSV0lOKSB8fCBPUyhGVUNIU0lBKSB8fCAoKE9TKEZSRUVCU0QpIHx8IGRlZmluZWQoX19H
TElCQ19fKSB8fCBkZWZpbmVkKF9fQklPTklDX18pKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTSkgfHwgQ1BVKEFSTTY0KSB8fCBDUFUoTUlQUykpKQorI2RlZmluZSBIQVZF
X01BQ0hJTkVfQ09OVEVYVCAxCisjZW5kaWYKKworI2lmIE9TKERBUldJTikgfHwgKE9TKExJTlVY
KSAmJiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIUNQVShN
SVBTKSkKKyNkZWZpbmUgSEFWRV9CQUNLVFJBQ0UgMQorI2VuZGlmCisKKyNpZiBPUyhEQVJXSU4p
IHx8IE9TKExJTlVYKQorI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykg
JiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIUNQVShNSVBTKQorI2RlZmluZSBIQVZFX0JBQ0tU
UkFDRV9TWU1CT0xTIDEKKyNlbmRpZgorI2VuZGlmIC8qIFBMQVRGT1JNKEdUSykgKi8KKyNkZWZp
bmUgSEFWRV9ETEFERFIgMQorI2VuZGlmIC8qIE9TKERBUldJTikgfHwgT1MoTElOVVgpICovCisK
KworLyogRU5BQkxFIG1hY3JvIGRlZmF1bHRzICovCisKKy8qIEZJWE1FOiBtb3ZlIG91dCBhbGwg
RU5BQkxFKCkgZGVmaW5lcyBmcm9tIGhlcmUgdG8gRmVhdHVyZURlZmluZXMuaCAqLworCisjaWYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25z
L0FkZGl0aW9uYWxQbGF0Zm9ybS5oPikKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRp
b25hbFBsYXRmb3JtLmg+CisjZW5kaWYKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYm
IF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsRmVhdHVyZURlZmluZXMu
aD4pCisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5o
PgorI2VuZGlmCisKKy8qIEluY2x1ZGUgZmVhdHVyZSBtYWNyb3MgKi8KKyNpbmNsdWRlIDx3dGYv
RmVhdHVyZURlZmluZXMuaD4KKworI2lmIE9TKFdJTkRPV1MpCisjZGVmaW5lIFVTRV9TWVNURU1f
TUFMTE9DIDEKKyNlbmRpZgorCisKKyNpZiAhZGVmaW5lZChVU0VfSlNWQUxVRTY0KSAmJiAhZGVm
aW5lZChVU0VfSlNWQUxVRTMyXzY0KQorI2lmIENQVShBRERSRVNTNjQpIHx8IENQVShBUk02NCkK
KyNkZWZpbmUgVVNFX0pTVkFMVUU2NCAxCisjZWxzZQorI2RlZmluZSBVU0VfSlNWQUxVRTMyXzY0
IDEKKyNlbmRpZgorI2VuZGlmIC8qICFkZWZpbmVkKFVTRV9KU1ZBTFVFNjQpICYmICFkZWZpbmVk
KFVTRV9KU1ZBTFVFMzJfNjQpICovCisKKy8qIFRoZSBKSVQgaXMgZW5hYmxlZCBieSBkZWZhdWx0
IG9uIGFsbCB4ODYtNjQgJiBBUk02NCBwbGF0Zm9ybXMuICovCisjaWYgIWRlZmluZWQoRU5BQkxF
X0pJVCkgXAorICAgICYmIChDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpKSBcCisgICAgJiYgIUNQ
VShBUFBMRV9BUk1WN0spCisjZGVmaW5lIEVOQUJMRV9KSVQgMQorI2VuZGlmCisKKyNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQorI2lmIChDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpKSAmJiBPUyhM
SU5VWCkKKy8qIE9uIEFSTXY3IGFuZCBNSVBTIG9uIExpbnV4IHRoZSBKSVQgaXMgZW5hYmxlZCB1
bmxlc3MgZXhwbGljaXRseSBkaXNhYmxlZC4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfSklUKQor
I2RlZmluZSBFTkFCTEVfSklUIDEKKyNlbmRpZgorI2Vsc2UKKy8qIERpc2FibGUgSklUIGFuZCBm
b3JjZSBDX0xPT1Agb24gYWxsIG90aGVyIDMyYml0IGFyY2hpdGVjdHVyZXMuICovCisjdW5kZWYg
RU5BQkxFX0pJVAorI2RlZmluZSBFTkFCTEVfSklUIDAKKyN1bmRlZiBFTkFCTEVfQ19MT09QCisj
ZGVmaW5lIEVOQUJMRV9DX0xPT1AgMQorI2VuZGlmCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9DX0xPT1ApCisjaWYgRU5BQkxFKEpJVCkgXAorICAgIHx8IENQVShYODZfNjQpIHx8IChD
UFUoQVJNNjQpICYmICFkZWZpbmVkKF9fSUxQMzJfXykpCisjZGVmaW5lIEVOQUJMRV9DX0xPT1Ag
MAorI2Vsc2UKKyNkZWZpbmUgRU5BQkxFX0NfTE9PUCAxCisjZW5kaWYKKyNlbmRpZgorCisvKiBU
aGUgRlRMICpkb2VzIG5vdCogd29yayBvbiAzMi1iaXQgcGxhdGZvcm1zLiBEaXNhYmxlIGl0IGV2
ZW4gaWYgc29tZW9uZSBhc2tlZCB1cyB0byBlbmFibGUgaXQuICovCisjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyN1bmRlZiBFTkFCTEVfRlRMX0pJVAorI2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCisj
ZW5kaWYKKworLyogVGhlIEZUTCBpcyBkaXNhYmxlZCBvbiB0aGUgaU9TIHNpbXVsYXRvciwgbW9z
dGx5IGZvciBzaW1wbGljaXR5LiAqLworI2lmIFBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9S
KQorI3VuZGVmIEVOQUJMRV9GVExfSklUCisjZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKKyNlbmRp
ZgorCisvKiBJZiBwb3NzaWJsZSwgdHJ5IHRvIGVuYWJsZSBhIGRpc2Fzc2VtYmxlci4gVGhpcyBp
cyBvcHRpb25hbC4gV2UgcHJvY2VlZCBpbiB0d28KKyAgIHN0ZXBzOiBmaXJzdCB3ZSB0cnkgdG8g
ZmluZCBzb21lIGRpc2Fzc2VtYmxlciB0aGF0IHdlIGNhbiB1c2UsIGFuZCB0aGVuIHdlCisgICBk
ZWNpZGUgaWYgdGhlIGhpZ2gtbGV2ZWwgZGlzYXNzZW1ibGVyIEFQSSBjYW4gYmUgZW5hYmxlZC4g
Ki8KKyNpZiAhZGVmaW5lZChVU0VfVURJUzg2KSAmJiBFTkFCTEUoSklUKSAmJiBDUFUoWDg2XzY0
KSAmJiAhVVNFKENBUFNUT05FKQorI2RlZmluZSBVU0VfVURJUzg2IDEKKyNlbmRpZgorCisjaWYg
IWRlZmluZWQoVVNFX0FSTTY0X0RJU0FTU0VNQkxFUikgJiYgRU5BQkxFKEpJVCkgJiYgQ1BVKEFS
TTY0KSAmJiAhVVNFKENBUFNUT05FKQorI2RlZmluZSBVU0VfQVJNNjRfRElTQVNTRU1CTEVSIDEK
KyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0RJU0FTU0VNQkxFUikgJiYgKFVTRShVRElT
ODYpIHx8IFVTRShBUk02NF9ESVNBU1NFTUJMRVIpIHx8IChFTkFCTEUoSklUKSAmJiBVU0UoQ0FQ
U1RPTkUpKSkKKyNkZWZpbmUgRU5BQkxFX0RJU0FTU0VNQkxFUiAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKEVOQUJMRV9ERkdfSklUKSAmJiBFTkFCTEUoSklUKQorLyogRW5hYmxlIHRoZSBERkcg
SklUIG9uIFg4NiBhbmQgWDg2XzY0LiAqLworI2lmIENQVShYODZfNjQpICYmIChPUyhEQVJXSU4p
IHx8IE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSB8fCBPUyhIVVJEKSB8fCBPUyhXSU5ET1dTKSkK
KyNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQorI2VuZGlmCisvKiBFbmFibGUgdGhlIERGRyBKSVQg
b24gQVJNdjcuICBPbmx5IHRlc3RlZCBvbiBpT1MsIExpbnV4LCBhbmQgRnJlZUJTRC4gKi8KKyNp
ZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChQTEFURk9STShJT1NfRkFNSUxZ
KSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkpCisjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEK
KyNlbmRpZgorLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIE1JUFMuICovCisjaWYgQ1BVKE1JUFMp
CisjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKKyNlbmRpZgorI2VuZGlmCisKKy8qIENvbmN1cnJl
bnQgSlMgb25seSB3b3JrcyBvbiA2NC1iaXQgcGxhdGZvcm1zIGJlY2F1c2UgaXQgcmVxdWlyZXMg
dGhhdAorICAgdmFsdWVzIGdldCBzdG9yZWQgdG8gYXRvbWljYWxseS4gVGhpcyBpcyB0cml2aWFs
bHkgdHJ1ZSBvbiA2NC1iaXQgcGxhdGZvcm1zLAorICAgYnV0IG5vdCB0cnVlIGF0IGFsbCBvbiAz
Mi1iaXQgcGxhdGZvcm1zIHdoZXJlIHZhbHVlcyBhcmUgY29tcG9zZWQgb2YgdHdvCisgICBzZXBh
cmF0ZSBzdWItdmFsdWVzLiAqLworI2lmIEVOQUJMRShKSVQpICYmIFVTRShKU1ZBTFVFNjQpCisj
ZGVmaW5lIEVOQUJMRV9DT05DVVJSRU5UX0pTIDEKKyNlbmRpZgorCisjaWYgX19oYXNfaW5jbHVk
ZSg8U3lzdGVtL3B0aHJlYWRfbWFjaGRlcC5oPikKKyNkZWZpbmUgSEFWRV9GQVNUX1RMUyAxCisj
ZW5kaWYKKworI2lmIChDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpKSAmJiBIQVZFKEZBU1RfVExT
KQorI2RlZmluZSBFTkFCTEVfRkFTVF9UTFNfSklUIDEKKyNlbmRpZgorCisjaWYgQ1BVKFg4Nikg
fHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkgfHwgQ1BVKE1J
UFMpCisjZGVmaW5lIEVOQUJMRV9NQVNNX1BST0JFIDEKKyNlbHNlCisjZGVmaW5lIEVOQUJMRV9N
QVNNX1BST0JFIDAKKyNlbmRpZgorCisjaWYgIUVOQUJMRShKSVQpCisjdW5kZWYgRU5BQkxFX01B
U01fUFJPQkUKKyNkZWZpbmUgRU5BQkxFX01BU01fUFJPQkUgMAorI2VuZGlmCisKKy8qIElmIHRo
ZSBiYXNlbGluZSBqaXQgaXMgbm90IGF2YWlsYWJsZSwgdGhlbiBkaXNhYmxlIHVwcGVyIHRpZXJz
IGFzIHdlbGwuCisgICBUaGUgTWFjcm9Bc3NlbWJsZXI6OnByb2JlKCkgaXMgYWxzbyByZXF1aXJl
ZCBmb3Igc3VwcG9ydGluZyB0aGUgdXBwZXIgdGllcnMuICovCisjaWYgIUVOQUJMRShKSVQpIHx8
ICFFTkFCTEUoTUFTTV9QUk9CRSkKKyN1bmRlZiBFTkFCTEVfREZHX0pJVAorI3VuZGVmIEVOQUJM
RV9GVExfSklUCisjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDAKKyNkZWZpbmUgRU5BQkxFX0ZUTF9K
SVQgMAorI2VuZGlmCisKKy8qIElmIHRoZSBERkcgaml0IGlzIG5vdCBhdmFpbGFibGUsIHRoZW4g
ZGlzYWJsZSB1cHBlciB0aWVycyBhcyB3ZWxsOiAqLworI2lmICFFTkFCTEUoREZHX0pJVCkKKyN1
bmRlZiBFTkFCTEVfRlRMX0pJVAorI2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCisjZW5kaWYKKwor
LyogVGhpcyBjb250cm9scyB3aGV0aGVyIEIzIGlzIGJ1aWx0LiBCMyBpcyBuZWVkZWQgZm9yIEZU
TCBKSVQgYW5kIFdlYkFzc2VtYmx5ICovCisjaWYgRU5BQkxFKEZUTF9KSVQpCisjZGVmaW5lIEVO
QUJMRV9CM19KSVQgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfV0VCQVNTRU1CTFkp
CisjaWYgRU5BQkxFKEIzX0pJVCkgJiYgUExBVEZPUk0oQ09DT0EpICYmIENQVShBRERSRVNTNjQp
CisjZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJMWSAxCisjZWxzZQorI2RlZmluZSBFTkFCTEVfV0VC
QVNTRU1CTFkgMAorI2VuZGlmCisjZW5kaWYKKworLyogVGhlIFNhbXBsaW5nUHJvZmlsZXIgaXMg
dGhlIHByb2JhYmlsaXN0aWMgYW5kIGxvdy1vdmVyaGVhZCBwcm9maWxlciB1c2VkIGJ5CisgKiBK
U0MgdG8gbWVhc3VyZSB3aGVyZSB0aW1lIGlzIHNwZW50IGluc2lkZSBhIEphdmFTY3JpcHQgcHJv
Z3JhbS4KKyAqIEluIGNvbmZpZ3VyYXRpb25zIG90aGVyIHRoYW4gV2luZG93cyBhbmQgRGFyd2lu
LCBiZWNhdXNlIGxheW91dCBvZiBtY29udGV4dF90IGRlcGVuZHMgb24gc3RhbmRhcmQgbGlicmFy
aWVzIChsaWtlIGdsaWJjKSwKKyAqIHNhbXBsaW5nIHByb2ZpbGVyIGlzIGVuYWJsZWQgaWYgV2Vi
S2l0IHVzZXMgcHRocmVhZHMgYW5kIGdsaWJjLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9TQU1Q
TElOR19QUk9GSUxFUikKKyNpZiAhRU5BQkxFKENfTE9PUCkgJiYgKE9TKFdJTkRPV1MpIHx8IEhB
VkUoTUFDSElORV9DT05URVhUKSkKKyNkZWZpbmUgRU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVSIDEK
KyNlbHNlCisjZGVmaW5lIEVOQUJMRV9TQU1QTElOR19QUk9GSUxFUiAwCisjZW5kaWYKKyNlbmRp
ZgorCisjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkKKyNk
ZWZpbmUgRU5BQkxFX1dFQkFTU0VNQkxZX0ZBU1RfTUVNT1JZIDEKKyNlbmRpZgorCisvKiBDb3Vu
dHMgdXNlcyBvZiB3cml0ZSBiYXJyaWVycyB1c2luZyBzYW1wbGluZyBjb3VudGVycy4gQmUgc3Vy
ZSB0byBhbHNvCisgICBzZXQgRU5BQkxFX1NBTVBMSU5HX0NPVU5URVJTIHRvIDEuICovCisjaWYg
IWRlZmluZWQoRU5BQkxFX1dSSVRFX0JBUlJJRVJfUFJPRklMSU5HKQorI2RlZmluZSBFTkFCTEVf
V1JJVEVfQkFSUklFUl9QUk9GSUxJTkcgMAorI2VuZGlmCisKKy8qIExvZ3MgYWxsIGFsbG9jYXRp
b24tcmVsYXRlZCBhY3Rpdml0eSB0aGF0IGdvZXMgdGhyb3VnaCBmYXN0TWFsbG9jIG9yIHRoZQor
ICAgSlNDIEdDIChib3RoIGNlbGxzIGFuZCBidXR0ZXJmbGllcykuIEFsc28gbG9ncyBtYXJraW5n
LiBOb3RlIHRoYXQgdGhpcworICAgaXNuJ3QgYSBjb21wbGV0ZWx5IGFjY3VyYXRlIHZpZXcgb2Yg
dGhlIGhlYXAgc2luY2UgaXQgZG9lc24ndCBpbmNsdWRlIGFsbAorICAgYnV0dGVyZmx5IHJlc2l6
ZSBvcGVyYXRpb25zLCBkb2Vzbid0IHRlbGwgeW91IHdoYXQgaXMgZ29pbmcgb24gd2l0aCB3ZWFr
CisgICByZWZlcmVuY2VzIChvdGhlciB0aGFuIHRvIHRlbGwgeW91IHdoZW4gdGhleSdyZSBtYXJr
ZWQpLCBhbmQgZG9lc24ndAorICAgdHJhY2sgZGlyZWN0IG1tYXAoKSBhbGxvY2F0aW9ucyBvciB0
aGluZ3MgbGlrZSBKSVQgYWxsb2NhdGlvbi4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfQUxMT0NB
VElPTl9MT0dHSU5HKQorI2RlZmluZSBFTkFCTEVfQUxMT0NBVElPTl9MT0dHSU5HIDAKKyNlbmRp
ZgorCisvKiBFbmFibGUgdmVyaWZpY2F0aW9uIHRoYXQgdGhhdCByZWdpc3RlciBhbGxvY2F0aW9u
cyBhcmUgbm90IG1hZGUgd2l0aGluIGdlbmVyYXRlZCBjb250cm9sIGZsb3cuCisgICBUdXJuZWQg
b24gZm9yIGRlYnVnIGJ1aWxkcy4gKi8KKyNpZiAhZGVmaW5lZChFTkFCTEVfREZHX1JFR0lTVEVS
X0FMTE9DQVRJT05fVkFMSURBVElPTikgJiYgRU5BQkxFKERGR19KSVQpCisjaWYgIWRlZmluZWQo
TkRFQlVHKQorI2RlZmluZSBFTkFCTEVfREZHX1JFR0lTVEVSX0FMTE9DQVRJT05fVkFMSURBVElP
TiAxCisjZWxzZQorI2RlZmluZSBFTkFCTEVfREZHX1JFR0lTVEVSX0FMTE9DQVRJT05fVkFMSURB
VElPTiAwCisjZW5kaWYKKyNlbmRpZgorCisvKiBDb25maWd1cmUgdGhlIEpJVCAqLworI2lmIENQ
VShYODYpICYmIENPTVBJTEVSKE1TVkMpCisjZGVmaW5lIEpTQ19IT1NUX0NBTEwgX19mYXN0Y2Fs
bAorI2VsaWYgQ1BVKFg4NikgJiYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCisjZGVmaW5lIEpT
Q19IT1NUX0NBTEwgX19hdHRyaWJ1dGVfXyAoKGZhc3RjYWxsKSkKKyNlbHNlCisjZGVmaW5lIEpT
Q19IT1NUX0NBTEwKKyNlbmRpZgorCisjaWYgQ1BVKFg4NikgJiYgT1MoV0lORE9XUykKKyNkZWZp
bmUgQ0FMTElOR19DT05WRU5USU9OX0lTX1NURENBTEwgMQorI2lmbmRlZiBDREVDTAorI2lmIENP
TVBJTEVSKE1TVkMpCisjZGVmaW5lIENERUNMIF9fY2RlY2wKKyNlbHNlCisjZGVmaW5lIENERUNM
IF9fYXR0cmlidXRlX18gKChfX2NkZWNsKSkKKyNlbmRpZgorI2VuZGlmCisjZWxzZQorI2RlZmlu
ZSBDQUxMSU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTCAwCisjZW5kaWYKKworI2lmIENQVShYODYp
CisjZGVmaW5lIFdURl9DT01QSUxFUl9TVVBQT1JUU19GQVNUQ0FMTF9DQUxMSU5HX0NPTlZFTlRJ
T04gMQorI2lmbmRlZiBGQVNUQ0FMTAorI2lmIENPTVBJTEVSKE1TVkMpCisjZGVmaW5lIEZBU1RD
QUxMIF9fZmFzdGNhbGwKKyNlbHNlCisjZGVmaW5lIEZBU1RDQUxMICBfX2F0dHJpYnV0ZV9fICgo
ZmFzdGNhbGwpKQorI2VuZGlmCisjZW5kaWYKKyNlbHNlCisjZGVmaW5lIFdURl9DT01QSUxFUl9T
VVBQT1JUU19GQVNUQ0FMTF9DQUxMSU5HX0NPTlZFTlRJT04gMAorI2VuZGlmCisKKyNpZiBFTkFC
TEUoSklUKSAmJiBDQUxMSU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTAorI2RlZmluZSBKSVRfT1BF
UkFUSU9OIENERUNMCisjZWxzZQorI2RlZmluZSBKSVRfT1BFUkFUSU9OCisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpICYmIENQVShBUk02NCkgJiYgKCFFTkFCTEUoRkFTVF9KSVRf
UEVSTUlTU0lPTlMpIHx8ICFDUFUoQVJNNjRFKSkKKyNkZWZpbmUgRU5BQkxFX1NFUEFSQVRFRF9X
WF9IRUFQIDEKKyNlbHNlCisjZGVmaW5lIEVOQUJMRV9TRVBBUkFURURfV1hfSEVBUCAwCisjZW5k
aWYKKworLyogQ29uZmlndXJlIHRoZSBpbnRlcnByZXRlciAqLworI2lmIENPTVBJTEVSKEdDQ19D
T01QQVRJQkxFKQorI2RlZmluZSBIQVZFX0NPTVBVVEVEX0dPVE8gMQorI2VuZGlmCisKKy8qIERl
dGVybWluZSBpZiB3ZSBuZWVkIHRvIGVuYWJsZSBDb21wdXRlZCBHb3RvIE9wY29kZXMgb3Igbm90
OiAqLworI2lmIEhBVkUoQ09NUFVURURfR09UTykgfHwgIUVOQUJMRShDX0xPT1ApCisjZGVmaW5l
IEVOQUJMRV9DT01QVVRFRF9HT1RPX09QQ09ERVMgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChV
U0VfTExJTlRfRU1CRURERURfT1BDT0RFX0lEKSAmJiAhRU5BQkxFKENfTE9PUCkgJiYgIUNPTVBJ
TEVSKE1TVkMpICYmIFwKKyAgICAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0
KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIE9TKERBUldJTikpKQorLyogVGhpcyBmZWF0dXJlIHdv
cmtzIGJ5IGVtYmVkZGluZyB0aGUgT3Bjb2RlSUQgaW4gdGhlIDMyIGJpdCBqdXN0IGJlZm9yZSB0
aGUgZ2VuZXJhdGVkIExMaW50IGNvZGUKKyAgIHRoYXQgZXhlY3V0ZXMgZWFjaCBvcGNvZGUuIEl0
IGNhbm5vdCBiZSBzdXBwb3J0ZWQgYnkgdGhlIENMb29wIHNpbmNlIHRoZXJlJ3Mgbm8gd2F5IHRv
IGVtYmVkIHRoZQorICAgT3Bjb2RlSUQgd29yZCBpbiB0aGUgQ0xvb3AncyBzd2l0Y2ggc3RhdGVt
ZW50IGNhc2VzLiBJdCBpcyBhbHNvIGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQgZm9yIE1TVkMu
CisqLworI2RlZmluZSBVU0VfTExJTlRfRU1CRURERURfT1BDT0RFX0lEIDEKKyNlbmRpZgorCisv
KiBVc2UgX19idWlsdGluX2ZyYW1lX2FkZHJlc3MoMSkgdG8gZ2V0IENhbGxGcmFtZSogKi8KKyNp
ZiBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkgJiYgKENQVShBUk02NCkgfHwgQ1BVKFg4Nl82NCkp
CisjZGVmaW5lIFVTRV9CVUlMVElOX0ZSQU1FX0FERFJFU1MgMQorI2VuZGlmCisKKy8qIFJlZ3Vs
YXIgRXhwcmVzc2lvbiBUcmFjaW5nIC0gU2V0IHRvIDEgdG8gdHJhY2UgUmVnRXhwJ3MgaW4ganNj
LiAgUmVzdWx0cyBkdW1wZWQgYXQgZXhpdCAqLworI2RlZmluZSBFTkFCTEVfUkVHRVhQX1RSQUNJ
TkcgMAorCisvKiBZZXQgQW5vdGhlciBSZWdleCBSdW50aW1lIC0gdHVybmVkIG9uIGJ5IGRlZmF1
bHQgZm9yIEpJVCBlbmFibGVkIHBvcnRzLiAqLworI2lmICFkZWZpbmVkKEVOQUJMRV9ZQVJSX0pJ
VCkgJiYgRU5BQkxFKEpJVCkKKyNkZWZpbmUgRU5BQkxFX1lBUlJfSklUIDEKKworLyogU2V0dGlu
ZyB0aGlzIGZsYWcgY29tcGFyZXMgSklUIHJlc3VsdHMgd2l0aCBpbnRlcnByZXRlciByZXN1bHRz
LiAqLworI2RlZmluZSBFTkFCTEVfWUFSUl9KSVRfREVCVUcgMAorI2VuZGlmCisKKyNpZiBFTkFC
TEUoWUFSUl9KSVQpCisjaWYgQ1BVKEFSTTY0KSB8fCAoQ1BVKFg4Nl82NCkgJiYgIU9TKFdJTkRP
V1MpKQorLyogRW5hYmxlIEpJVCdpbmcgUmVndWxhciBFeHByZXNzaW9ucyB0aGF0IGhhdmUgbmVz
dGVkIHBhcmVudGhlc2lzIGFuZCBiYWNrIHJlZmVyZW5jZXMuICovCisjZGVmaW5lIEVOQUJMRV9Z
QVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TIDEKKyNkZWZpbmUgRU5BQkxFX1lBUlJfSklU
X0JBQ0tSRUZFUkVOQ0VTIDEKKyNlbmRpZgorI2VuZGlmCisKKy8qIElmIGVpdGhlciB0aGUgSklU
IG9yIHRoZSBSZWdFeHAgSklUIGlzIGVuYWJsZWQsIHRoZW4gdGhlIEFzc2VtYmxlciBtdXN0IGJl
CisgICBlbmFibGVkIGFzIHdlbGw6ICovCisjaWYgRU5BQkxFKEpJVCkgfHwgRU5BQkxFKFlBUlJf
SklUKSB8fCAhRU5BQkxFKENfTE9PUCkKKyNpZiBkZWZpbmVkKEVOQUJMRV9BU1NFTUJMRVIpICYm
ICFFTkFCTEVfQVNTRU1CTEVSCisjZXJyb3IgIkNhbm5vdCBlbmFibGUgdGhlIEpJVCBvciBSZWdF
eHAgSklUIHdpdGhvdXQgZW5hYmxpbmcgdGhlIEFzc2VtYmxlciIKKyNlbHNlCisjdW5kZWYgRU5B
QkxFX0FTU0VNQkxFUgorI2RlZmluZSBFTkFCTEVfQVNTRU1CTEVSIDEKKyNlbmRpZgorI2VuZGlm
CisKKy8qIElmIHRoZSBEaXNhc3NlbWJsZXIgaXMgZW5hYmxlZCwgdGhlbiB0aGUgQXNzZW1ibGVy
IG11c3QgYmUgZW5hYmxlZCBhcyB3ZWxsOiAqLworI2lmIEVOQUJMRShESVNBU1NFTUJMRVIpCisj
aWYgZGVmaW5lZChFTkFCTEVfQVNTRU1CTEVSKSAmJiAhRU5BQkxFX0FTU0VNQkxFUgorI2Vycm9y
ICJDYW5ub3QgZW5hYmxlIHRoZSBEaXNhc3NlbWJsZXIgd2l0aG91dCBlbmFibGluZyB0aGUgQXNz
ZW1ibGVyIgorI2Vsc2UKKyN1bmRlZiBFTkFCTEVfQVNTRU1CTEVSCisjZGVmaW5lIEVOQUJMRV9B
U1NFTUJMRVIgMQorI2VuZGlmCisjZW5kaWYKKworLyogQVNTRVJUX0VOQUJMRUQgc2hvdWxkIGJl
IHRydWUgaWYgd2Ugd2FudCB0aGUgY3VycmVudCBjb21waWxhdGlvbiB1bml0IHRvCisgICBkbyBk
ZWJ1ZyBhc3NlcnRpb24gY2hlY2tzIHVuY29uZGl0aW9uYWxseSAoZS5nLiB0cmVhdCBhIGRlYnVn
IEFTU0VSVAorICAgbGlrZSBhIFJFTEVBU0VfQVNTRVJULgorKi8KKyNpZm5kZWYgQVNTRVJUX0VO
QUJMRUQKKyNpZmRlZiBOREVCVUcKKyNkZWZpbmUgQVNTRVJUX0VOQUJMRUQgMAorI2Vsc2UKKyNk
ZWZpbmUgQVNTRVJUX0VOQUJMRUQgMQorI2VuZGlmCisjZW5kaWYKKworI2lmbmRlZiBFTkFCTEVf
RVhDRVBUSU9OX1NDT1BFX1ZFUklGSUNBVElPTgorI2RlZmluZSBFTkFCTEVfRVhDRVBUSU9OX1ND
T1BFX1ZFUklGSUNBVElPTiBBU1NFUlRfRU5BQkxFRAorI2VuZGlmCisKKyNpZiBFTkFCTEUoREZH
X0pJVCkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpICYmIChDUFUoWDg2XzY0KSB8fCBDUFUoQVJN
NjQpKQorI2RlZmluZSBFTkFCTEVfU0lHTkFMX0JBU0VEX1ZNX1RSQVBTIDEKKyNlbmRpZgorCisv
KiBDU1MgU2VsZWN0b3IgSklUIENvbXBpbGVyICovCisjaWYgIWRlZmluZWQoRU5BQkxFX0NTU19T
RUxFQ1RPUl9KSVQpCisjaWYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkgfHwgKENQVShBUk1f
VEhVTUIyKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhE
QVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKKyNkZWZpbmUgRU5BQkxF
X0NTU19TRUxFQ1RPUl9KSVQgMQorI2Vsc2UKKyNkZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9K
SVQgMAorI2VuZGlmCisjZW5kaWYKKworI2lmIENQVShBUk02NEUpICYmIE9TKERBUldJTikKKyNk
ZWZpbmUgSEFWRV9GSkNWVFpTX0lOU1RSVUNUSU9OIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0o
SU9TKQorI2RlZmluZSBIQVZFX0FQUF9MSU5LUyAxCisjZGVmaW5lIFVTRV9QQVNTS0lUIDEKKyNk
ZWZpbmUgVVNFX1FVSUNLX0xPT0sgMQorI2RlZmluZSBVU0VfU1lTVEVNX1BSRVZJRVcgMQorI2Vu
ZGlmCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1Qp
CisjZGVmaW5lIEhBVkVfQ0VMRVNUSUFMIDEKKyNkZWZpbmUgSEFWRV9DT1JFX0FOSU1BVElPTl9S
RU5ERVJfU0VSVkVSIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBM
QVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKKyNkZWZpbmUgSEFWRV9Q
QVJFTlRBTF9DT05UUk9MU19XSVRIX1VOQkxPQ0tfSEFORExFUiAxCisjZW5kaWYKKworI2lmIFBM
QVRGT1JNKENPQ09BKQorCisjZGVmaW5lIFVTRV9BVkZPVU5EQVRJT04gMQorI2RlZmluZSBVU0Vf
UFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLIDEKKworI2lmICFQTEFURk9STShXQVRDSE9T
KSAmJiAhUExBVEZPUk0oQVBQTEVUVikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmlu
ZSBFTkFCTEVfREFUQV9ERVRFQ1RJT04gMQorI2VuZGlmCisKKy8qIEZJWE1FOiBFbmFibGUgSEFW
RV9QQVJFTlRBTF9DT05UUk9MUyBmb3Igd2F0Y2hPUyBTaW11bGF0b3Igb25jZSByZGFyOi8vcHJv
YmxlbS81NDYwODM4NiBpcyByZXNvbHZlZCAqLworI2lmICFQTEFURk9STShBUFBMRVRWKSAmJiAo
IVBMQVRGT1JNKFdBVENIT1MpIHx8ICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikpCisj
ZGVmaW5lIEhBVkVfUEFSRU5UQUxfQ09OVFJPTFMgMQorI2VuZGlmCisKKyNpZiAhUExBVEZPUk0o
QVBQTEVUVikKKyNkZWZpbmUgSEFWRV9BVktJVCAxCisjZW5kaWYKKworI2lmIEVOQUJMRShXRUJH
TCkKKy8qIFVTRV9BTkdMRT0xIHVzZXMgQU5HTEUgZm9yIHRoZSBXZWJHTCBiYWNrZW5kLgorICAg
SXQgcmVwbGFjZXMgVVNFX09QRU5HTCwgVVNFX09QRU5HTF9FUyBhbmQgVVNFX0VHTC4gKi8KKyNp
ZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgX19oYXNfaW5jbHVk
ZSg8T3BlbkdML09wZW5HTC5oPikpCisjZGVmaW5lIFVTRV9PUEVOR0wgMQorI2RlZmluZSBVU0Vf
T1BFTkdMX0VTIDAKKyNkZWZpbmUgVVNFX0FOR0xFIDAKKyNlbHNlCisjZGVmaW5lIFVTRV9PUEVO
R0wgMAorI2RlZmluZSBVU0VfT1BFTkdMX0VTIDEKKyNkZWZpbmUgVVNFX0FOR0xFIDAKKyNlbmRp
ZgorI2lmIFBMQVRGT1JNKENPQ09BKQorI2lmbmRlZiBHTF9TSUxFTkNFX0RFUFJFQ0FUSU9OCisj
ZGVmaW5lIEdMX1NJTEVOQ0VfREVQUkVDQVRJT04gMQorI2VuZGlmCisjaWYgVVNFKE9QRU5HTCkg
JiYgIWRlZmluZWQoSEFWRV9PUEVOR0xfNCkKKyNkZWZpbmUgSEFWRV9PUEVOR0xfNCAxCisjZW5k
aWYKKyNpZiBVU0UoT1BFTkdMX0VTKSAmJiAhZGVmaW5lZChIQVZFX09QRU5HTF9FU18zKQorI2Rl
ZmluZSBIQVZFX09QRU5HTF9FU18zIDEKKyNlbmRpZgorI2VuZGlmCisjaWYgVVNFX0FOR0xFICYm
IChVU0VfT1BFTkdMIHx8IFVTRV9PUEVOR0xfRVMpCisjZXJyb3IgVVNFX0FOR0xFIGlzIGluY29t
cGF0aWJsZSB3aXRoIFVTRV9PUEVOR0wgYW5kIFVTRV9PUEVOR0xfRVMKKyNlbmRpZgorI2VuZGlm
CisKKyNkZWZpbmUgVVNFX01FVEFMIDEKKworI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZKQorI2Rl
ZmluZSBVU0VfQUNDRVNTSUJJTElUWV9DT05URVhUX01FTlVTIDEKKyNlbmRpZgorCisjZW5kaWYK
KworI2lmIEVOQUJMRShXRUJHTCkKKyNpZiAhZGVmaW5lZChVU0VfQU5HTEUpCisjZGVmaW5lIFVT
RV9BTkdMRSAwCisjZW5kaWYKKworI2lmIChVU0VfQU5HTEUgJiYgKFVTRV9PUEVOR0wgfHwgVVNF
X09QRU5HTF9FUyB8fCAoZGVmaW5lZChVU0VfRUdMKSAmJiBVU0VfRUdMKSkpICYmICFVU0UoVEVY
VFVSRV9NQVBQRVIpCisjZXJyb3IgVVNFX0FOR0xFIGlzIGluY29tcGF0aWJsZSB3aXRoIFVTRV9P
UEVOR0wsIFVTRV9PUEVOR0xfRVMgYW5kIFVTRV9FR0wKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBV
U0UoVEVYVFVSRV9NQVBQRVIpICYmIEVOQUJMRShHUkFQSElDU19DT05URVhUX0dMKSAmJiAhZGVm
aW5lZChVU0VfVEVYVFVSRV9NQVBQRVJfR0wpCisjZGVmaW5lIFVTRV9URVhUVVJFX01BUFBFUl9H
TCAxCisjZW5kaWYKKworI2lmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpCisjZGVmaW5l
IEVOQUJMRV9CUkFOQ0hfQ09NUEFDVElPTiAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJM
RV9USFJFQURJTkdfTElCRElTUEFUQ0gpICYmIEhBVkUoRElTUEFUQ0hfSCkKKyNkZWZpbmUgRU5B
QkxFX1RIUkVBRElOR19MSUJESVNQQVRDSCAxCisjZWxpZiAhZGVmaW5lZChFTkFCTEVfVEhSRUFE
SU5HX09QRU5NUCkgJiYgZGVmaW5lZChfT1BFTk1QKQorI2RlZmluZSBFTkFCTEVfVEhSRUFESU5H
X09QRU5NUCAxCisjZWxpZiAhZGVmaW5lZChUSFJFQURJTkdfR0VORVJJQykKKyNkZWZpbmUgRU5B
QkxFX1RIUkVBRElOR19HRU5FUklDIDEKKyNlbmRpZgorCisjaWYgVVNFKEdMSUIpCisjaW5jbHVk
ZSA8d3RmL2dsaWIvR1R5cGVkZWZzLmg+CisjZW5kaWYKKworI2lmICFkZWZpbmVkKFVTRV9FWFBP
UlRfTUFDUk9TKSAmJiAoUExBVEZPUk0oQ09DT0EpIHx8IE9TKFdJTkRPV1MpKQorI2RlZmluZSBV
U0VfRVhQT1JUX01BQ1JPUyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQorI2RlZmluZSBVU0VfVU5JWF9ET01BSU5fU09DS0VUUyAxCisjZW5kaWYKKworI2lm
ICFkZWZpbmVkKFVTRV9JTUxBTkdfRk9OVF9MSU5LMikKKyNkZWZpbmUgVVNFX0lNTEFOR19GT05U
X0xJTksyIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoRU5BQkxFX0dDX1ZBTElEQVRJT04pICYm
ICFkZWZpbmVkKE5ERUJVRykKKyNkZWZpbmUgRU5BQkxFX0dDX1ZBTElEQVRJT04gMQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfQklORElOR19JTlRFR1JJVFkpICYmICFPUyhXSU5ET1dT
KQorI2RlZmluZSBFTkFCTEVfQklORElOR19JTlRFR1JJVFkgMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChFTkFCTEVfVFJFRV9ERUJVR0dJTkcpCisjaWYgIWRlZmluZWQoTkRFQlVHKQorI2RlZmlu
ZSBFTkFCTEVfVFJFRV9ERUJVR0dJTkcgMQorI2Vsc2UKKyNkZWZpbmUgRU5BQkxFX1RSRUVfREVC
VUdHSU5HIDAKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiBFbmFibGUgdGhpcyB0byBwdXQgZWFj
aCBJc29IZWFwIGFuZCBvdGhlciBhbGxvY2F0aW9uIGNhdGVnb3JpZXMgaW50byB0aGVpciBvd24g
bWFsbG9jIGhlYXBzLCBzbyB0aGF0IHRvb2xzIGxpa2Ugdm1tYXAgY2FuIHNob3cgaG93IGJpZyBl
YWNoIGhlYXAgaXMuCisgKiBUdXJuIEJFTkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOIG9uIGlu
IGJtYWxsb2MgdG9nZXRoZXIgd2hlbiB1c2luZyB0aGlzLgorICovCisjaWYgIWRlZmluZWQoRU5B
QkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTikKKyNkZWZpbmUgRU5BQkxFX01BTExPQ19IRUFQX0JS
RUFLRE9XTiAwCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBVU0VfQ09S
RU1FRElBIDEKKyNkZWZpbmUgVVNFX1ZJREVPVE9PTEJPWCAxCisjZGVmaW5lIEhBVkVfQVZGT1VO
REFUSU9OX1ZJREVPX09VVFBVVCAxCisjZGVmaW5lIEhBVkVfQ09SRV9WSURFTyAxCisjZGVmaW5l
IEhBVkVfTUVESUFfUExBWUVSIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVm
aW5lIEhBVkVfQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCAxCisjZW5kaWYKKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX0FWRk9VTkRBVElPTl9MRUdJQkxFX09V
VFBVVF9TVVBQT1JUIDEKKyNkZWZpbmUgSEFWRV9NRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09S
SyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX0FWRk9VTkRB
VElPTl9MT0FERVJfREVMRUdBVEUgMQorI2VuZGlmCisKKyNpZiAhUExBVEZPUk0oV0lOKQorI2Rl
ZmluZSBVU0VfUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SIDEKKyNlbmRp
ZgorCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUg
SEFWRV9BUFBMRV9HUkFQSElDU19DT05UUk9MIDEKKyNkZWZpbmUgSEFWRV9OU0NVUlNPUiAxCisj
ZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgVVNFX0NPUkVBVURJTyAxCisjZW5k
aWYKKworI2lmICFkZWZpbmVkKFVTRV9aTElCKQorI2RlZmluZSBVU0VfWkxJQiAxCisjZW5kaWYK
KworI2lmbmRlZiBIQVZFX1FPU19DTEFTU0VTCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5l
IEhBVkVfUU9TX0NMQVNTRVMgMQorI2VuZGlmCisjZW5kaWYKKworI2lmbmRlZiBIQVZFX1ZPVUNI
RVJTCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIEhBVkVfVk9VQ0hFUlMgMQorI2VuZGlm
CisjZW5kaWYKKworI2RlZmluZSBVU0VfR1JBTU1BUl9DSEVDS0lORyAxCisKKyNpZiBQTEFURk9S
TShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQorI2RlZmluZSBVU0VfVU5JRklFRF9URVhUX0NIRUNL
SU5HIDEKKyNlbmRpZgorI2lmIFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgVVNFX0FVVE9NQVRJQ19U
RVhUX1JFUExBQ0VNRU5UIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQorLyogU29tZSBw
bGF0Zm9ybXMgcHJvdmlkZSBVSSBmb3Igc3VnZ2VzdGluZyBhdXRvY29ycmVjdGlvbi4gKi8KKyNk
ZWZpbmUgVVNFX0FVVE9DT1JSRUNUSU9OX1BBTkVMIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0o
Q09DT0EpCisvKiBTb21lIHBsYXRmb3JtcyB1c2Ugc3BlbGxpbmcgYW5kIGF1dG9jb3JyZWN0aW9u
IG1hcmtlcnMgdG8gcHJvdmlkZSB2aXN1YWwgY3VlLiBPbiBzdWNoIHBsYXRmb3JtLCBpZiB3b3Jk
IHdpdGggbWFya2VyIGlzIGVkaXRlZCwgd2UgbmVlZCB0byByZW1vdmUgdGhlIG1hcmtlci4gKi8K
KyNkZWZpbmUgVVNFX01BUktFUl9SRU1PVkFMX1VQT05fRURJVElORyAxCisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgVVNFX0lOU0VSVElPTl9VTkRPX0dST1VQSU5HIDEKKyNl
bmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIEhBVkVfQVZBU1NFVFJFQURFUiAx
CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBVU0VfQVVESU9fU0VTU0lP
TiAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX0lPU1VSRkFD
RSAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1Nf
RkFNSUxZX1NJTVVMQVRPUikKKyNkZWZpbmUgSEFWRV9JT1NVUkZBQ0VfQ09SRUlNQUdFX1NVUFBP
UlQgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oSU9T
X0ZBTUlMWV9TSU1VTEFUT1IpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgSEFW
RV9JT1NVUkZBQ0VfQUNDRUxFUkFUT1IgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkK
KyNkZWZpbmUgRU5BQkxFX1JFU09VUkNFX1VTQUdFIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpCisjdW5kZWYgRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMCisj
ZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCisjZW5kaWYKKworI2lmIENPTVBJTEVS
KE1TVkMpCisjdW5kZWYgX19TVERDX0ZPUk1BVF9NQUNST1MKKyNkZWZpbmUgX19TVERDX0ZPUk1B
VF9NQUNST1MKKyN1bmRlZiBfX1NURENfTElNSVRfTUFDUk9TCisjZGVmaW5lIF9fU1REQ19MSU1J
VF9NQUNST1MKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBIQVZFX05TX0FD
VElWSVRZIDEKKyNlbmRpZgorCisvKiBEaXNhYmxlIFNoYXJlZEFycmF5QnVmZmVycyB1bnRpbCBT
cGVjdHJlIHNlY3VyaXR5IGNvbmNlcm5zIGFyZSBtaXRpZ2F0ZWQuICovCisjZGVmaW5lIEVOQUJM
RV9TSEFSRURfQVJSQVlfQlVGRkVSIDAKKworI2lmIChPUyhEQVJXSU4pICYmIFVTRShDRykpIHx8
IChVU0UoRlJFRVRZUEUpICYmICFQTEFURk9STShHVEspKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAo
VVNFKENHKSB8fCBVU0UoQ0FJUk8pKSkKKyN1bmRlZiBFTkFCTEVfT1BFTlRZUEVfTUFUSAorI2Rl
ZmluZSBFTkFCTEVfT1BFTlRZUEVfTUFUSCAxCisjZW5kaWYKKworLyogU2V0IFRBUkdFVF9PU19J
UEhPTkUgdG8gMCBieSBkZWZhdWx0IHRvIGFsbG93IHVzaW5nIGl0IGFzIGEgZ3VhcmQgCisgKiBp
biBjcm9zcy1wbGF0Zm9ybSB0aGUgc2FtZSB3YXkgYXMgaXQgaXMgdXNlZCBpbiBPUyhEQVJXSU4p
IGNvZGUuICovIAorI2lmICFkZWZpbmVkKFRBUkdFVF9PU19JUEhPTkUpICYmICFPUyhEQVJXSU4p
CisjZGVmaW5lIFRBUkdFVF9PU19JUEhPTkUgMAorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NP
QSkKKyNkZWZpbmUgVVNFX01FRElBVE9PTEJPWCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENP
Q09BKQorI2RlZmluZSBVU0VfT1NfTE9HIDEKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQor
I2RlZmluZSBVU0VfT1NfU1RBVEUgMQorI2VuZGlmCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENP
Q09BKQorI2RlZmluZSBIQVZFX1NFQ19UUlVTVF9TRVJJQUxJWkFUSU9OIDEKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoV1RGX0RFRkFVTFRfRVZFTlRfTE9PUCkKKyNkZWZpbmUgV1RGX0RFRkFVTFRf
RVZFTlRfTE9PUCAxCisjZW5kaWYKKworI2lmIFdURl9ERUZBVUxUX0VWRU5UX0xPT1AKKyNpZiBV
U0UoR0xJQikKKy8qIFVzZSBHTGliJ3MgZXZlbnQgbG9vcCBhYnN0cmFjdGlvbi4gUHJpbWFyaWx5
IEdUSyBwb3J0IHVzZXMgaXQuICovCisjZGVmaW5lIFVTRV9HTElCX0VWRU5UX0xPT1AgMQorI2Vs
aWYgT1MoV0lORE9XUykKKy8qIFVzZSBXaW5kb3dzIG1lc3NhZ2UgcHVtcCBhYnN0cmFjdGlvbi4K
KyAqIEV2ZW4gaWYgdGhlIHBvcnQgaXMgQXBwbGVXaW4sIHdlIHVzZSB0aGUgV2luZG93cyBtZXNz
YWdlIHB1bXAgc3lzdGVtIGZvciB0aGUgZXZlbnQgbG9vcCwKKyAqIHNvIHRoYXQgVVNFKFdJTkRP
V1NfRVZFTlRfTE9PUCkgJiYgVVNFKENGKSBjYW4gYmUgdHJ1ZS4KKyAqIEFuZCBQTEFURk9STShX
SU4pIGFuZCBQTEFURk9STShHVEspIGFyZSBleGNsdXNpdmUuIElmIHRoZSBwb3J0IGlzIEdUSywK
KyAqIFBMQVRGT1JNKFdJTikgc2hvdWxkIGJlIGZhbHNlLiBBbmQgaW4gdGhhdCBjYXNlLCBHTGli
J3MgZXZlbnQgbG9vcCBpcyB1c2VkLgorICovCisjZGVmaW5lIFVTRV9XSU5ET1dTX0VWRU5UX0xP
T1AgMQorI2VsaWYgUExBVEZPUk0oQ09DT0EpCisvKiBPUyBYIGFuZCBJT1MuIFVzZSBDb3JlRm91
bmRhdGlvbiAmIEdDRCBhYnN0cmFjdGlvbi4gKi8KKyNkZWZpbmUgVVNFX0NPQ09BX0VWRU5UX0xP
T1AgMQorI2Vsc2UKKyNkZWZpbmUgVVNFX0dFTkVSSUNfRVZFTlRfTE9PUCAxCisjZW5kaWYKKyNl
bmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIFVTRV9NRURJQVJFTU9URSAxCisj
ZW5kaWYKKworI2lmIENPTVBJTEVSKE1TVkMpCisvKiBFbmFibGUgc3RyaWN0IHJ1bnRpbWUgc3Rh
Y2sgYnVmZmVyIGNoZWNrcy4gKi8KKyNwcmFnbWEgc3RyaWN0X2dzX2NoZWNrKG9uKQorI2VuZGlm
CisKKyNpZiBQTEFURk9STShNQUMpCisjZGVmaW5lIEhBVkVfVE9VQ0hfQkFSIDEKKyNkZWZpbmUg
VVNFX0RJQ1RBVElPTl9BTFRFUk5BVElWRVMgMQorCisjaWYgZGVmaW5lZChfX0xQNjRfXykKKyNk
ZWZpbmUgRU5BQkxFX1dFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSIDEKKyNlbmRpZgorI2Vu
ZGlmIC8qIFBMQVRGT1JNKE1BQykgKi8KKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUo
V0VCX1JUQykKKyNkZWZpbmUgVVNFX0xJQldFQlJUQyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JN
KE1BQykgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgVVNFKEdD
UllQVCkKKyNkZWZpbmUgSEFWRV9SU0FfUFNTIDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1B
QykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDE1MDApIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisjZGVmaW5lIFVTRV9T
T1VSQ0VfQVBQTElDQVRJT05fQVVESVRfREFUQSAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCAoUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTMwMDAwKQorI2RlZmluZSBIQVZFX0hTVFNfU1RPUkFHRV9QQVRIIDEKKyNlbmRpZgorCisjaWYg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0
MDApIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEhB
VkVfVVJMX0ZPUk1BVFRJTkcgMQorI2VuZGlmCisKKyNpZiAhT1MoV0lORE9XUykKKyNkZWZpbmUg
SEFWRV9TVEFDS19CT1VORFNfRk9SX05FV19USFJFQUQgMQorI2VuZGlmCisKKyNpZiBQTEFURk9S
TShNQUMpIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5l
IEhBVkVfQVZDT05URU5US0VZU0VTU0lPTiAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCBQTEFURk9S
TShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBIQVZFX1NFQ19LRVlfUFJP
WFkgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKENBKQorI2RlZmluZSBV
U0VfSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFIDEKKyNlbmRpZgorCisvKiBGSVhNRTog
U2hvdWxkIHRoaXMgYmUgZW5hYmxlZCBvciBJT1NfRkFNSUxZLCBub3QganVzdCBJT1M/ICovCisj
aWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDE0MDApIHx8IFBMQVRGT1JNKElPUykKKyNkZWZpbmUgSEFWRV9GT1VOREFUSU9OX1dJVEhfU0FW
RV9DT09LSUVTX1dJVEhfQ09NUExFVElPTl9IQU5ETEVSIDEKKyNlbmRpZgorCisvKiBGSVhNRTog
U2hvdWxkIHRoaXMgYmUgZW5hYmxlZCBmb3IgSU9TX0ZBTUlMWSwgbm90IGp1c3QgSU9TPyAqLwor
I2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxNDAwKSB8fCBQTEFURk9STShJT1MpCisjZGVmaW5lIEhBVkVfRk9VTkRBVElPTl9XSVRIX1NB
TUVfU0lURV9DT09LSUVfU1VQUE9SVCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEIDwgMTAxNDAwCisjZGVmaW5lIEhBVkVfTlNI
VFRQQ09PS0lFU1RPUkFHRV9fSU5JVFdJVEhJREVOVElGSUVSX1dJVEhfSU5BQ0NVUkFURV9OVUxM
QUJJTElUWSAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX0NG
TkVUV09SS19XSVRIX0NPTlRFTlRfRU5DT0RJTkdfU05JRkZJTkdfT1ZFUlJJREUgMQorLyogVGhl
IG92ZXJyaWRlIGlzbid0IG5lZWRlZCBvbiBpT1MgZmFtaWx5LCBhcyB0aGUgZGVmYXVsdCBiZWhh
dmlvciBpcyB0byBub3Qgc25pZmYuICovCisvKiBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkg
YmUgZW5hYmxlZCBvbiAxMC4xMy4yIGFuZCBuZXdlciwgbm90IGp1c3QgMTAuMTQgYW5kIG5ld2Vy
LiAqLworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDE0MDAKKyNkZWZpbmUgVVNFX0NGTkVUV09SS19DT05URU5UX0VOQ09ESU5HX1NOSUZG
SU5HX09WRVJSSURFIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgKFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkg
fHwgUExBVEZPUk0oR1RLKQorI2RlZmluZSBIQVZFX09TX0RBUktfTU9ERV9TVVBQT1JUIDEKKyNl
bmRpZgorCisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTQwMAorI2RlZmluZSBIQVZFX0NHX0ZPTlRfUkVOREVSSU5HX0dFVF9GT05UX1NN
T09USElOR19ESVNBQkxFRCAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCBQTEFURk9STShJT1NfRkFN
SUxZKQorI2RlZmluZSBIQVZFX0NBX1dIRVJFX0FERElUSVZFX1RSQU5TRk9STVNfQVJFX1JFVkVS
U0VEIDEKKyNlbmRpZgorCisjaWZkZWYgX19BUFBMRV9fCisjZGVmaW5lIEhBVkVfRlVOQ19VU0xF
RVAgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdQRSkKKy8qIEZJ
WE1FOiBUaGlzIHJlYWxseSBuZWVkcyBhIGRlc2NyaXB0aXZlIG5hbWUsIHRoaXMgIm5ldyB0aGVt
ZSIgd2FzIGFkZGVkIGluIDIwMDguICovCisjZGVmaW5lIFVTRV9ORVdfVEhFTUUgMQorI2VuZGlm
CisKKyNpZiBQTEFURk9STShNQUMpCisjZGVmaW5lIEhBVkVfV0lORE9XX1NFUlZFUl9PQ0NMVVNJ
T05fTk9USUZJQ0FUSU9OUyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmlu
ZSBIQVZFX1NFQ19BQ0NFU1NfQ09OVFJPTCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykK
Ky8qIEZJWE1FOiBTYWZhcmlTZXJ2aWNlcy5mcmFtZXdvcmsgZXhpc3RzIG9uIG1hY09TLiBJdCBp
cyBvbmx5IHVzZWQgYnkgV2ViS2l0IG9uIGlPUywgc28gdGhlIGJlaGF2aW9yIGlzIGNvcnJlY3Qs
IGJ1dCB0aGUgbmFtZSBpcyBtaXNsZWFkaW5nLiAqLworI2RlZmluZSBIQVZFX1NBRkFSSV9TRVJW
SUNFU19GUkFNRVdPUksgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JN
KElPUykgfHwgUExBVEZPUk0oV0FUQ0hPUykKKyNkZWZpbmUgSEFWRV9TQUZFX0JST1dTSU5HIDEK
KyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TKQorI2RlZmluZSBIQVZFX0xJTktfUFJFVklFVyAx
CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorLyogRklYTUU6IFRoaXMgaXMgYSBVU0Ug
c3R5bGUgbWFjcm8sIGFzIGl0IHRyaWdnZXJzIHRoZSB1c2Ugb2YgQ0ZVUkxDb25uZWN0aW9uIGZy
YW1ld29yayBzdHVicy4gKi8KKy8qIEZJWE1FOiBJcyB0aGlzIHN0aWxsIG5lY2Vzc2FyeT8gQ0ZV
UkxDb25uZWN0aW9uIGlzbid0IHVzZWQgb24gQ29jb2EgcGxhdGZvcm1zIGFueSBtb3JlLiAqLwor
I2RlZmluZSBFTkFCTEVfU0VDX0lURU1fU0hJTSAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShJ
T1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTQwMCkpCisjZGVmaW5lIEhBVkVfQUNDRVNTSUJJTElUWV9TVVBQT1JUIDEK
KyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUFYX0FMTE9X
RUQgPj0gMTMwMTAwCisjZGVmaW5lIEhBVkVfQUNDRVNTSUJJTElUWV9CVU5ETEVTX1BBVEggMQor
I2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisjZGVmaW5lIEVOQUJMRV9GVUxMX0tFWUJPQVJE
X0FDQ0VTUyAxCisjZW5kaWYKKworI2lmICgoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFBM
QVlTVEFUSU9OKSB8fCBQTEFURk9STShXUEUpKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSkg
fHwgUExBVEZPUk0oR1RLKQorI2RlZmluZSBFTkFCTEVfS0lORVRJQ19TQ1JPTExJTkcgMQorI2Vu
ZGlmCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkKKyNkZWZpbmUgSEFWRV9BVVRI
T1JJWkFUSU9OX1NUQVRVU19GT1JfTUVESUFfVFlQRSAxCisjZW5kaWYKKworI2lmIChQTEFURk9S
TShNQUMpICYmIChfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxNDA0KSkgfHwgKFBMQVRGT1JNKElP
UykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwICYmIF9fSVBI
T05FX09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTIwMjAwKSB8fCBQTEFURk9STShXQVRDSE9T
KSB8fCBQTEFURk9STShBUFBMRVRWKQorI2RlZmluZSBIQVZFX0NGTkVUV09SS19PVkVSUklERV9T
RVNTSU9OX0NPT0tJRV9BQ0NFUFRfUE9MSUNZIDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IChQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MzAwMDApCisjZGVmaW5lIEhBVkVfQ0ZORVRXT1JLX05TVVJMU0VTU0lPTl9TVFJJQ1RSVVNURVZB
TFVBVEUgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNkZWZp
bmUgSEFWRV9DRk5FVFdPUktfTkVHT1RJQVRFRF9TU0xfUFJPVE9DT0xfQ0lQSEVSIDEKKyNlbmRp
ZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDE2MDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDApCisjZGVmaW5lIEhBVkVfQ0ZORVRXT1JLX01FVFJJ
Q1NfQVBJU19WNCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDAKKyNkZWZpbmUgSEFWRV9DU0NIRUNLRklYRElT
QUJMRSAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorI2RlZmlu
ZSBIQVZFX1NBTkRCT1hfSVNTVUVfTUFDSF9FWFRFTlNJT05fVE9fUFJPQ0VTU19CWV9BVURJVF9U
T0tFTiAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorI2RlZmlu
ZSBIQVZFX1NBTkRCT1hfSVNTVUVfUkVBRF9FWFRFTlNJT05fVE9fUFJPQ0VTU19CWV9BVURJVF9U
T0tFTiAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19J
UEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKQorI2RlZmluZSBIQVZFX01E
TlNfRkFTVF9SRUdJU1RSQVRJT04gMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisjZGVm
aW5lIEVOQUJMRV9NT05PU1BBQ0VfRk9OVF9FWENFUFRJT04gKF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPCAxMDE1MDApCisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2RlZmlu
ZSBFTkFCTEVfTU9OT1NQQUNFX0ZPTlRfRVhDRVBUSU9OIChfX0lQSE9ORV9PU19WRVJTSU9OX01J
Tl9SRVFVSVJFRCA8IDEzMDAwMCkKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDApIHx8IFBMQVRGT1JNKElPU19G
QU1JTFkpCisjZGVmaW5lIEhBVkVfRElTQUxMT1dBQkxFX1VTRVJfSU5TVEFMTEVEX0ZPTlRTIDEK
KyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDE1MDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9P
U19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApCisjZGVmaW5lIEhBVkVfQ1RGT05UQ1JF
QVRFRk9SQ0hBUkFDVEVSU1dJVEhMQU5HVUFHRUFORE9QVElPTiAxCisjZW5kaWYKKworI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEzMDAwMAorI2RlZmluZSBIQVZFX0FSS0lUX1FVSUNLX0xPT0tfUFJFVklFV19JVEVNIDEKKyNl
bmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTMwMDAwCisjZGVmaW5lIEhBVkVfVUlfV0tfRE9DVU1FTlRfQ09OVEVY
VCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBFTkFCTEVf
UExBVEZPUk1fRFJJVkVOX1RFWFRfQ0hFQ0tJTkcgMQorI2RlZmluZSBIQVZFX0hPVkVSX0dFU1RV
UkVfUkVDT0dOSVpFUiAxCisjZGVmaW5lIEhBVkVfVUlfUEFSQUxMQVhfVFJBTlNJVElPTl9HRVNU
VVJFX1JFQ09HTklaRVIgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyNkZWZpbmUgSEFWRV9BTExPV1NfU0VOU0lUSVZFX0xPR0dJTkcgMQorI2VuZGlmCisKKyNp
ZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTUwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNkZWZpbmUgSEFWRV9GQUlSUExBWVNUUkVB
TUlOR19DRU5DX0lOSVREQVRBIDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKElPUykgJiYgX19J
UEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKSB8fCBQTEFURk9STShXQVRD
SE9TKSB8fCBQTEFURk9STShBUFBMRVRWKQorI2RlZmluZSBIQVZFX1VJX1NDUk9MTF9WSUVXX0lO
RElDQVRPUl9GTEFTSElOR19TUEkgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oSU9TKSAmJiBf
X0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApIHx8IFBMQVRGT1JNKFdB
VENIT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpCisjZGVmaW5lIEhBVkVfQVBQX0xJTktTX1dJVEhf
SVNFTkFCTEVEIDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1Nf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKQorI2RlZmluZSBIQVZFX1JPVVRFX1NIQVJJ
TkdfUE9MSUNZX0xPTkdfRk9STV9WSURFTyAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShJT1Mp
ICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCAmJiAhUExBVEZP
Uk0oSU9TX1NJTVVMQVRPUikpCisjZGVmaW5lIEhBVkVfREVWSUNFX01BTkFHRU1FTlQgMQorI2Vu
ZGlmCisKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dF
RCA8IDEwMTUwMAorI2RlZmluZSBVU0VfUkVBTFBBVEhfRk9SX0RMT1BFTl9QUkVGTElHSFQgMQor
I2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTUwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09T
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwg
UExBVEZPUk0oQVBQTEVUVikKKyNkZWZpbmUgSEFWRV9OU1VSTFNFU1NJT05fV0VCU09DS0VUIDEK
KyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDE1MDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZP
Uk0oQVBQTEVUVikKKyNkZWZpbmUgSEFWRV9BVlBMQVlFUl9SRVNPVVJDRV9DT05TRVJWQVRJT05f
TEVWRUwgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVf
T1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8
fCBQTEFURk9STShBUFBMRVRWKQorI2RlZmluZSBIQVZFX0NPUkVURVhUX0FVVE9fT1BUSUNBTF9T
SVpJTkcgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEIDwgMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9P
U19WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEzMDAwMCkKKyNkZWZpbmUgSEFWRV9OU0ZPTlRfV0lU
SF9PUFRJQ0FMX1NJWklOR19CVUcgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oSU9TKSB8fCAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUw
MCkpCisjZGVmaW5lIEhBVkVfQVBQX1NTTyAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShJT1Mp
ICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCB8fCBQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCBQ
TEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9STShBUFBMRVRWKSB8fCBQTEFURk9STShNQUNDQVRB
TFlTVCkKKyNkZWZpbmUgSEFWRV9UTFNfUFJPVE9DT0xfVkVSU0lPTl9UIDEKKyNlbmRpZgorCisj
aWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0o
QVBQTEVUVikgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisjZGVmaW5lIEhBVkVfU0VDX1RSVVNU
X0VWQUxVQVRFX1dJVEhfRVJST1IgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpIHx8IFBM
QVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBVU0VfVUlDT05URVhUTUVOVSAxCisjZW5kaWYK
KworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDE1MDAKKyNkZWZpbmUgSEFWRV9TVUJWSUVXU19JVkFSX1NQSSAxCisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEIDwgMTAxNTAw
CisjZGVmaW5lIEhBVkVfU1VCVklFV1NfSVZBUl9ERUNMQVJFRF9CWV9TREsgMQorI2VuZGlmCisK
KyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9P
U19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8
IFBMQVRGT1JNKEFQUExFVFYpCisjZGVmaW5lIFVTRV9QTEFURk9STV9TWVNURU1fRkFMTEJBQ0tf
TElTVCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01BWF9BTExPV0VEID49IDEwMTUwMAorI2RlZmluZSBIQVZFX0FYX0NMSUVOVF9UWVBFIDEKKyNl
bmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDE1MDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0o
QVBQTEVUVikKKyNkZWZpbmUgSEFWRV9ERVNJR05fU1lTVEVNX1VJX0ZPTlRTIDEKKyNlbmRpZgor
CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDE0MDApIHx8IChQTEFURk9STShJT1MpICYmICFQTEFURk9STShJT1NfU0lNVUxBVE9SKSkK
KyNkZWZpbmUgSEFWRV9ERVZJQ0VfSURFTlRJVFkgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyNkZWZpbmUgSEFWRV9EQVRBX1BST1RFQ1RJT05fS0VZQ0hBSU4g
MQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTUwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9S
TShJT1NfRkFNSUxZX1NJTVVMQVRPUikpCisjZGVmaW5lIEhBVkVfTkVBUl9GSUVMRCAxCisjZW5k
aWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8ICghKGRlZmluZWQoVVNFX1NZU1RFTV9N
QUxMT0MpICYmIFVTRV9TWVNURU1fTUFMTE9DKSAmJiAoT1MoTElOVVgpICYmIChQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkpKSkKKyNkZWZpbmUgVVNFX0JNQUxMT0NfTUVNT1JZX0ZPT1RQ
UklOVF9BUEkgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNk
ZWZpbmUgSEFWRV9PU19TSUdOUE9TVCAxCisjZW5kaWYKClByb3BlcnR5IGNoYW5nZXMgb246IFNv
dXJjZS9XVEYvd3RmL09TLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMCww
ICsxICMjCituYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291
cmNlL1dURi93dGYvT1MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9PUy5oCShyZXZp
c2lvbiAyNTQ0MDkpCisrKyBTb3VyY2UvV1RGL3d0Zi9PUy5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw5MSArMzAsNDYgQEAKIC8qIEluY2x1ZGUgY29tcGlsZXIgc3BlY2lmaWMgbWFjcm9zICovCiAj
aW5jbHVkZSA8d3RmL0NvbXBpbGVyLmg+CiAKLS8qIEluY2x1ZGUgQ1BVIHNwZWNpZmljIG1hY3Jv
cyAqLwotI2luY2x1ZGUgPHd0Zi9DUFUuaD4KLQotLyogPT09PSBQTEFURk9STSBoYW5kbGVzIE9T
LCBvcGVyYXRpbmcgZW52aXJvbm1lbnQsIGdyYXBoaWNzIEFQSSwgYW5kCi0gICBDUFUuIFRoaXMg
bWFjcm8gd2lsbCBiZSBwaGFzZWQgb3V0IGluIGZhdm9yIG9mIHBsYXRmb3JtIGFkYXB0YXRpb24K
LSAgIG1hY3JvcywgcG9saWN5IGRlY2lzaW9uIG1hY3JvcywgYW5kIHRvcC1sZXZlbCBwb3J0IGRl
ZmluaXRpb25zLiA9PT09ICovCi0jZGVmaW5lIFBMQVRGT1JNKFdURl9GRUFUVVJFKSAoZGVmaW5l
ZCBXVEZfUExBVEZPUk1fIyNXVEZfRkVBVFVSRSAgJiYgV1RGX1BMQVRGT1JNXyMjV1RGX0ZFQVRV
UkUpCi0KLQotLyogPT09PSBQbGF0Zm9ybSBhZGFwdGF0aW9uIG1hY3JvczogdGhlc2UgZGVzY3Jp
YmUgcHJvcGVydGllcyBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LiA9PT09ICovCi0KLS8qIENQ
VSgpIC0gdGhlIHRhcmdldCBDUFUgYXJjaGl0ZWN0dXJlICovCi0jZGVmaW5lIENQVShXVEZfRkVB
VFVSRSkgKGRlZmluZWQgV1RGX0NQVV8jI1dURl9GRUFUVVJFICAmJiBXVEZfQ1BVXyMjV1RGX0ZF
QVRVUkUpCi0vKiBIQVZFKCkgLSBzcGVjaWZpYyBzeXN0ZW0gZmVhdHVyZXMgKGhlYWRlcnMsIGZ1
bmN0aW9ucyBvciBzaW1pbGFyKSB0aGF0IGFyZSBwcmVzZW50IG9yIG5vdCAqLwotI2RlZmluZSBI
QVZFKFdURl9GRUFUVVJFKSAoZGVmaW5lZCBIQVZFXyMjV1RGX0ZFQVRVUkUgICYmIEhBVkVfIyNX
VEZfRkVBVFVSRSkKLS8qIE9TKCkgLSB1bmRlcmx5aW5nIG9wZXJhdGluZyBzeXN0ZW07IG9ubHkg
dG8gYmUgdXNlZCBmb3IgbWFuZGF0ZWQgbG93LWxldmVsIHNlcnZpY2VzIGxpa2UgCi0gICB2aXJ0
dWFsIG1lbW9yeSwgbm90IHRvIGNob29zZSBhIEdVSSB0b29sa2l0ICovCi0jZGVmaW5lIE9TKFdU
Rl9GRUFUVVJFKSAoZGVmaW5lZCBXVEZfT1NfIyNXVEZfRkVBVFVSRSAgJiYgV1RGX09TXyMjV1RG
X0ZFQVRVUkUpCi0KLQotLyogPT09PSBQb2xpY3kgZGVjaXNpb24gbWFjcm9zOiB0aGVzZSBkZWZp
bmUgcG9saWN5IGNob2ljZXMgZm9yIGEgcGFydGljdWxhciBwb3J0LiA9PT09ICovCi0KLS8qIFVT
RSgpIC0gdXNlIGEgcGFydGljdWxhciB0aGlyZC1wYXJ0eSBsaWJyYXJ5IG9yIG9wdGlvbmFsIE9T
IHNlcnZpY2UgKi8KLSNkZWZpbmUgVVNFKFdURl9GRUFUVVJFKSAoZGVmaW5lZCBVU0VfIyNXVEZf
RkVBVFVSRSAgJiYgVVNFXyMjV1RGX0ZFQVRVUkUpCi0vKiBFTkFCTEUoKSAtIHR1cm4gb24gYSBz
cGVjaWZpYyBmZWF0dXJlIG9mIFdlYktpdCAqLwotI2RlZmluZSBFTkFCTEUoV1RGX0ZFQVRVUkUp
IChkZWZpbmVkIEVOQUJMRV8jI1dURl9GRUFUVVJFICAmJiBFTkFCTEVfIyNXVEZfRkVBVFVSRSkK
LQotCi0vKiBNSVBTIHJlcXVpcmVzIGFsbG9jYXRvcnMgdG8gdXNlIGFsaWduZWQgbWVtb3J5ICov
Ci0jaWYgQ1BVKE1JUFMpIHx8IENQVShNSVBTNjQpCi0jZGVmaW5lIFVTRV9BUkVOQV9BTExPQ19B
TElHTk1FTlRfSU5URUdFUiAxCi0jZW5kaWYKLQotLypBUk12NVRFIHJlcXVpcmVzIGFsbG9jYXRv
cnMgdG8gdXNlIGFsaWduZWQgbWVtb3J5Ki8KLSNpZiBkZWZpbmVkKF9fQVJNX0FSQ0hfNUVfXykg
fHwgZGVmaW5lZChfX0FSTV9BUkNIXzVURV9fKSB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNVRFSl9f
KQotI2RlZmluZSBVU0VfQVJFTkFfQUxMT0NfQUxJR05NRU5UX0lOVEVHRVIgMQotI2VuZGlmCi0K
LS8qQVJNdjVURSByZXF1aXJlcyBhbGxvY2F0b3JzIHRvIHVzZSBhbGlnbmVkIG1lbW9yeSovCi0j
aWYgZGVmaW5lZChfX1RBUkdFVF9BUkNIXzVFKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfNVRF
KSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfNVRFSikKLSNkZWZpbmUgVVNFX0FSRU5BX0FMTE9D
X0FMSUdOTUVOVF9JTlRFR0VSIDEKLSNlbmRpZgotCi0jaWYgQ1BVKEFSTV9ORU9OKQotLyogQWxs
IE5FT04gaW50cmluc2ljcyB1c2FnZSBjYW4gYmUgZGlzYWJsZWQgYnkgdGhpcyBtYWNyby4gKi8K
LSNkZWZpbmUgSEFWRV9BUk1fTkVPTl9JTlRSSU5TSUNTIDEKKyNpZiBkZWZpbmVkKF9fQVBQTEVf
XykKKyNpbmNsdWRlIDxBdmFpbGFiaWxpdHkuaD4KKyNpbmNsdWRlIDxBdmFpbGFiaWxpdHlNYWNy
b3MuaD4KKyNpbmNsdWRlIDxUYXJnZXRDb25kaXRpb25hbHMuaD4KICNlbmRpZgogCi0vKiBGSVhN
RTogVGhpcyBzaG91bGQgYmUgcmVuYW1lZCB0byBXVEZfQ1BVX0FSTV9JRElWX0lOU1RSVUNUSU9O
UyBhbmQgbW92ZWQgdG8gQ1BVLmggKi8KLSNpZiBkZWZpbmVkKF9fQVJNX0FSQ0hfRVhUX0lESVZf
XykgfHwgQ1BVKEFQUExFX0FSTVY3UykKLSNkZWZpbmUgSEFWRV9BUk1fSURJVl9JTlNUUlVDVElP
TlMgMQotI2VuZGlmCiAKKy8qIE9TKCkgLSB1bmRlcmx5aW5nIG9wZXJhdGluZyBzeXN0ZW07IG9u
bHkgdG8gYmUgdXNlZCBmb3IgbWFuZGF0ZWQgbG93LWxldmVsIHNlcnZpY2VzIGxpa2UKKyAgIHZp
cnR1YWwgbWVtb3J5LCBub3QgdG8gY2hvb3NlIGEgR1VJIHRvb2xraXQgKi8KKyNkZWZpbmUgT1Mo
V1RGX0ZFQVRVUkUpIChkZWZpbmVkIFdURl9PU18jI1dURl9GRUFUVVJFICAmJiBXVEZfT1NfIyNX
VEZfRkVBVFVSRSkKIAogCi0vKiA9PT09IE9TKCkgLSB1bmRlcmx5aW5nIG9wZXJhdGluZyBzeXN0
ZW07IG9ubHkgdG8gYmUgdXNlZCBmb3IgbWFuZGF0ZWQgbG93LWxldmVsIHNlcnZpY2VzIGxpa2Ug
CisvKiA9PT09IE9TKCkgLSB1bmRlcmx5aW5nIG9wZXJhdGluZyBzeXN0ZW07IG9ubHkgdG8gYmUg
dXNlZCBmb3IgbWFuZGF0ZWQgbG93LWxldmVsIHNlcnZpY2VzIGxpa2UKICAgIHZpcnR1YWwgbWVt
b3J5LCBub3QgdG8gY2hvb3NlIGEgR1VJIHRvb2xraXQgPT09PSAqLwogCiAvKiBPUyhBSVgpIC0g
QUlYICovCi0jaWZkZWYgX0FJWAorI2lmIGRlZmluZWQoX0FJWCkKICNkZWZpbmUgV1RGX09TX0FJ
WCAxCiAjZW5kaWYKIAotLyogT1MoREFSV0lOKSAtIEFueSBEYXJ3aW4tYmFzZWQgT1MsIGluY2x1
ZGluZyBNYWMgT1MgWCBhbmQgaVBob25lIE9TICovCi0jaWZkZWYgX19BUFBMRV9fCisvKiBPUyhE
QVJXSU4pIC0gQW55IERhcndpbi1iYXNlZCBPUywgaW5jbHVkaW5nIG1hY09TLCBpT1MsIG1hY0Nh
dGFseXN0LCB0dk9TLCBhbmQgd2F0Y2hPUyAqLworI2lmIGRlZmluZWQoX19BUFBMRV9fKQogI2Rl
ZmluZSBXVEZfT1NfREFSV0lOIDEKLQotI2luY2x1ZGUgPEF2YWlsYWJpbGl0eS5oPgotI2luY2x1
ZGUgPEF2YWlsYWJpbGl0eU1hY3Jvcy5oPgotI2luY2x1ZGUgPFRhcmdldENvbmRpdGlvbmFscy5o
PgogI2VuZGlmCiAKIC8qIE9TKElPU19GQU1JTFkpIC0gaU9TIGZhbWlseSwgaW5jbHVkaW5nIGlP
UywgbWFjQ2F0YWx5c3QsIHR2T1MsIHdhdGNoT1MgKi8KKyNpZiBPUyhEQVJXSU4pICYmIFRBUkdF
VF9PU19JUEhPTkUKKyNkZWZpbmUgV1RGX09TX0lPU19GQU1JTFkgMQorI2VuZGlmCisKIC8qIE9T
KElPUykgLSBpT1Mgb25seSwgbm90IGluY2x1ZGluZyBtYWNDYXRhbHlzdCAqLwotLyogT1MoTUFD
X09TX1gpIC0gbWFjT1MgKG5vdCBpbmNsdWRpbmcgaU9TIGZhbWlseSkgKi8KLSNpZiBPUyhEQVJX
SU4pCi0jaWYgVEFSR0VUX09TX0lPUyAmJiAhKGRlZmluZWQoVEFSR0VUX09TX01BQ0NBVEFMWVNU
KSAmJiBUQVJHRVRfT1NfTUFDQ0FUQUxZU1QpCisjaWYgT1MoREFSV0lOKSAmJiAoVEFSR0VUX09T
X0lPUyAmJiAhKGRlZmluZWQoVEFSR0VUX09TX01BQ0NBVEFMWVNUKSAmJiBUQVJHRVRfT1NfTUFD
Q0FUQUxZU1QpKQogI2RlZmluZSBXVEZfT1NfSU9TIDEKICNlbmRpZgotI2lmIFRBUkdFVF9PU19J
UEhPTkUKLSNkZWZpbmUgV1RGX09TX0lPU19GQU1JTFkgMQotI2VsaWYgVEFSR0VUX09TX01BQwor
CisvKiBGSVhNRTogUmVuYW1lIHRoaXMgdG8gZHJvcCB0aGUgWCwgYXMgdGhhdCBpcyBubyBsb25n
ZXIgdGhlIG5hbWUgb2YgdGhlIG9wZXJhdGluZyBzeXN0ZW0uICovCisvKiBPUyhNQUNfT1NfWCkg
LSBtYWNPUyAobm90IGluY2x1ZGluZyBpT1MgZmFtaWx5KSAqLworI2lmIE9TKERBUldJTikgJiYg
VEFSR0VUX09TX09TWAogI2RlZmluZSBXVEZfT1NfTUFDX09TX1ggMQogI2VuZGlmCi0jZW5kaWYK
IAogLyogT1MoRlJFRUJTRCkgLSBGcmVlQlNEICovCiAjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykg
fHwgZGVmaW5lZChfX0RyYWdvbkZseV9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykK
QEAgLTEyMiwxNyArNzcsMTcgQEAKICNlbmRpZgogCiAvKiBPUyhGVUNIU0lBKSAtIEZ1Y2hzaWEg
Ki8KLSNpZmRlZiBfX0Z1Y2hzaWFfXworI2lmIGRlZmluZWQoX19GdWNoc2lhX18pCiAjZGVmaW5l
IFdURl9PU19GVUNIU0lBIDEKICNlbmRpZgogCiAvKiBPUyhIVVJEKSAtIEdOVS9IdXJkICovCi0j
aWZkZWYgX19HTlVfXworI2lmIGRlZmluZWQoX19HTlVfXykKICNkZWZpbmUgV1RGX09TX0hVUkQg
MQogI2VuZGlmCiAKIC8qIE9TKExJTlVYKSAtIExpbnV4ICovCi0jaWZkZWYgX19saW51eF9fCisj
aWYgZGVmaW5lZChfX2xpbnV4X18pCiAjZGVmaW5lIFdURl9PU19MSU5VWCAxCiAjZW5kaWYKIApA
QCAtMTQyLDcgKzk3LDcgQEAKICNlbmRpZgogCiAvKiBPUyhPUEVOQlNEKSAtIE9wZW5CU0QgKi8K
LSNpZmRlZiBfX09wZW5CU0RfXworI2lmIGRlZmluZWQoX19PcGVuQlNEX18pCiAjZGVmaW5lIFdU
Rl9PU19PUEVOQlNEIDEKICNlbmRpZgogCkBAIC0xNTEsOCArMTA2LDYgQEAKICNkZWZpbmUgV1RG
X09TX1dJTkRPV1MgMQogI2VuZGlmCiAKLSNkZWZpbmUgV1RGX09TX1dJTiBFUlJPUiAiVVNFIFdJ
TkRPV1MgV0lUSCBPUyBOT1QgV0lOIgotI2RlZmluZSBXVEZfT1NfTUFDIEVSUk9SICJVU0UgTUFD
X09TX1ggV0lUSCBPUyBOT1QgTUFDIgogCiAvKiBPUyhVTklYKSAtIEFueSBVbml4LWxpa2Ugc3lz
dGVtICovCiAjaWYgICAgT1MoQUlYKSAgICAgICAgICAgICAgXApAQCAtMTY5LDEyMDMgKzEyMiw4
IEBACiAjZGVmaW5lIFdURl9PU19VTklYIDEKICNlbmRpZgogCi0vKiBPcGVyYXRpbmcgZW52aXJv
bm1lbnRzICovCi0KLQotLyogRklYTUU6IFJlbmFtZSBXVEZfQ1BVX0VGRkVDVElWRV9BRERSRVNT
X1dJRFRIIHRvIFdURl9PU19FRkZFQ1RJVkVfQUREUkVTU19XSURUSCwgYXMgaXQgaXMgYW4gT1Mg
ZmVhdHVyZSwgbm90IGEgQ1BVIGZlYXR1cmUuICovCi0jaWYgQ1BVKEFERFJFU1M2NCkKLSNpZiBP
UyhEQVJXSU4pICYmIENQVShBUk02NCkKLSNkZWZpbmUgV1RGX0NQVV9FRkZFQ1RJVkVfQUREUkVT
U19XSURUSCAzNgotI2Vsc2UKLS8qIFdlIHN0cm9uZ2x5IGFzc3VtZSB0aGF0IGVmZmVjdGl2ZSBh
ZGRyZXNzIHdpZHRoIGlzIDw9IDQ4IGluIDY0Yml0IGFyY2hpdGVjdHVyZXMgKGUuZy4gTmFOIGJv
eGluZykuICovCi0jZGVmaW5lIFdURl9DUFVfRUZGRUNUSVZFX0FERFJFU1NfV0lEVEggNDgKLSNl
bmRpZgotI2Vsc2UKLSNkZWZpbmUgV1RGX0NQVV9FRkZFQ1RJVkVfQUREUkVTU19XSURUSCAzMgot
I2VuZGlmCi0KLS8qIEV4cG9ydCBtYWNybyBzdXBwb3J0LiBEZXRlY3RzIHRoZSBhdHRyaWJ1dGVz
IGF2YWlsYWJsZSBmb3Igc2hhcmVkIGxpYnJhcnkgc3ltYm9sIGV4cG9ydAotICAgZGVjb3JhdGlv
bnMuICovCi0jaWYgT1MoV0lORE9XUykgfHwgKENPTVBJTEVSX0hBU19DTEFOR19ERUNMU1BFQyhk
bGxpbXBvcnQpICYmIENPTVBJTEVSX0hBU19DTEFOR19ERUNMU1BFQyhkbGxleHBvcnQpKQotI2Rl
ZmluZSBVU0VfREVDTFNQRUNfQVRUUklCVVRFIDEKLSNkZWZpbmUgVVNFX1ZJU0lCSUxJVFlfQVRU
UklCVVRFIDAKLSNlbGlmIGRlZmluZWQoX19HTlVDX18pCi0jZGVmaW5lIFVTRV9ERUNMU1BFQ19B
VFRSSUJVVEUgMAotI2RlZmluZSBVU0VfVklTSUJJTElUWV9BVFRSSUJVVEUgMQotI2Vsc2UKLSNk
ZWZpbmUgVVNFX0RFQ0xTUEVDX0FUVFJJQlVURSAwCi0jZGVmaW5lIFVTRV9WSVNJQklMSVRZX0FU
VFJJQlVURSAwCi0jZW5kaWYKLQotLyogU3RhbmRhcmQgbGlicmFyaWVzICovCi0jaWYgZGVmaW5l
ZChIQVZFX0ZFQVRVUkVTX0gpICYmIEhBVkVfRkVBVFVSRVNfSAotLyogSWYgdGhlIGluY2x1ZGVk
IGZlYXR1cmVzLmggaXMgZ2xpYmMncyBvbmUsIF9fR0xJQkNfXyBpcyBkZWZpbmVkLiAqLwotI2lu
Y2x1ZGUgPGZlYXR1cmVzLmg+Ci0jZW5kaWYKLQotLyogRklYTUU6IHRoZXNlIGFyZSBhbGwgbWl4
ZXMgb2YgT1MsIG9wZXJhdGluZyBlbnZpcm9ubWVudCBhbmQgcG9saWN5IGNob2ljZXMuICovCi0v
KiBQTEFURk9STShHVEspICovCi0vKiBQTEFURk9STShNQUMpICovCi0vKiBQTEFURk9STShJT1Mp
ICovCi0vKiBQTEFURk9STShJT1NfRkFNSUxZKSAqLwotLyogUExBVEZPUk0oSU9TX1NJTVVMQVRP
UikgKi8KLS8qIFBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSAqLwotLyogUExBVEZPUk0o
V0lOKSAqLwotI2lmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCi0jZGVmaW5lIFdURl9QTEFURk9S
TV9HVEsgMQotI2VsaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKLSNkZWZpbmUgV1RGX1BMQVRG
T1JNX1dQRSAxCi0jZWxpZiBkZWZpbmVkKEJVSUxESU5HX0pTQ09OTFlfXykKLS8qIEpTQ09ubHkg
ZG9lcyBub3QgcHJvdmlkZSBQTEFURk9STSgpIG1hY3JvICovCi0jZWxpZiBPUyhNQUNfT1NfWCkK
LSNkZWZpbmUgV1RGX1BMQVRGT1JNX01BQyAxCi0jZWxpZiBPUyhJT1NfRkFNSUxZKQotI2lmIE9T
KElPUykKLSNkZWZpbmUgV1RGX1BMQVRGT1JNX0lPUyAxCi0jZW5kaWYKLSNkZWZpbmUgV1RGX1BM
QVRGT1JNX0lPU19GQU1JTFkgMQotI2lmIFRBUkdFVF9PU19TSU1VTEFUT1IKLSNpZiBPUyhJT1Mp
Ci0jZGVmaW5lIFdURl9QTEFURk9STV9JT1NfU0lNVUxBVE9SIDEKLSNlbmRpZgotI2RlZmluZSBX
VEZfUExBVEZPUk1fSU9TX0ZBTUlMWV9TSU1VTEFUT1IgMQotI2VuZGlmCi0jaWYgZGVmaW5lZChU
QVJHRVRfT1NfTUFDQ0FUQUxZU1QpICYmIFRBUkdFVF9PU19NQUNDQVRBTFlTVAotI2RlZmluZSBX
VEZfUExBVEZPUk1fTUFDQ0FUQUxZU1QgMQotI2VuZGlmCi0jZWxpZiBPUyhXSU5ET1dTKQotI2Rl
ZmluZSBXVEZfUExBVEZPUk1fV0lOIDEKLSNlbmRpZgotCi0vKiBQTEFURk9STShDT0NPQSkgKi8K
LSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZGVmaW5lIFdURl9Q
TEFURk9STV9DT0NPQSAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2lmIGRlZmlu
ZWQgX19oYXNfaW5jbHVkZSAmJiBfX2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9DRlByaXYu
aD4pCi0jZGVmaW5lIFVTRV9BUFBMRV9JTlRFUk5BTF9TREsgMQotI2VuZGlmCi0jZW5kaWYKLQot
LyogUExBVEZPUk0oQVBQTEVUVikgKi8KLSNpZiBkZWZpbmVkKFRBUkdFVF9PU19UVikgJiYgVEFS
R0VUX09TX1RWCi0jZGVmaW5lIFdURl9QTEFURk9STV9BUFBMRVRWIDEKLSNlbmRpZgotCi0vKiBQ
TEFURk9STShXQVRDSE9TKSAqLwotI2lmIGRlZmluZWQoVEFSR0VUX09TX1dBVENIKSAmJiBUQVJH
RVRfT1NfV0FUQ0gKLSNkZWZpbmUgV1RGX1BMQVRGT1JNX1dBVENIT1MgMQotI2VuZGlmCi0KLS8q
IEdyYXBoaWNzIGVuZ2luZXMgKi8KLQotLyogVVNFKENHKSBhbmQgUExBVEZPUk0oQ0kpICovCi0j
aWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIFVTRV9DRyAxCi0jZGVmaW5lIFVTRV9DQSAxCi0j
ZW5kaWYKLQotI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQotI2RlZmluZSBVU0Vf
R0xJQiAxCi0jZGVmaW5lIFVTRV9GUkVFVFlQRSAxCi0jZGVmaW5lIFVTRV9IQVJGQlVaWiAxCi0j
ZGVmaW5lIFVTRV9TT1VQIDEKLSNkZWZpbmUgVVNFX1dFQlAgMQotI2RlZmluZSBVU0VfRklMRV9M
T0NLIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oR1RLKQotI2RlZmluZSBHTElCX1ZFUlNJT05f
TUlOX1JFUVVJUkVEIEdMSUJfVkVSU0lPTl8yXzM2Ci0jZGVmaW5lIEdES19WRVJTSU9OX01JTl9S
RVFVSVJFRCBHREtfVkVSU0lPTl8zXzYKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oV1BFKQotI2Rl
ZmluZSBHTElCX1ZFUlNJT05fTUlOX1JFUVVJUkVEIEdMSUJfVkVSU0lPTl8yXzQwCi0jZW5kaWYK
LQotI2lmIFVTRShTT1VQKQotI2RlZmluZSBTT1VQX1ZFUlNJT05fTUlOX1JFUVVJUkVEIFNPVVBf
VkVSU0lPTl8yXzQyCi0jZW5kaWYKLQotLyogT24gV2luZG93cywgdXNlIFF1ZXJ5UGVyZm9ybWFu
Y2VDb3VudGVyIGJ5IGRlZmF1bHQgKi8KLSNpZiBPUyhXSU5ET1dTKQotI2RlZmluZSBVU0VfUVVF
UllfUEVSRk9STUFOQ0VfQ09VTlRFUiAgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkK
LQotI2RlZmluZSBIQVZFX09VVF9PRl9QUk9DRVNTX0xBWUVSX0hPU1RJTkcgMQotI2RlZmluZSBV
U0VfQ0YgMQotI2RlZmluZSBVU0VfRklMRV9MT0NLIDEKLSNkZWZpbmUgVVNFX0ZPVU5EQVRJT04g
MQotI2RlZmluZSBVU0VfTkVUV09SS19DRkRBVEFfQVJSQVlfQ0FMTEJBQ0sgMQotCi0vKiBDb2Nv
YSBkZWZpbmVzIGEgc2VyaWVzIG9mIHBsYXRmb3JtIG1hY3JvcyBmb3IgZGVidWdnaW5nLiAqLwot
LyogU29tZSBvZiB0aGVtIGFyZSByZWFsbHkgYW5ub3lpbmcgYmVjYXVzZSB0aGV5IHVzZSBjb21t
b24gbmFtZXMgKGUuZy4gY2hlY2soKSkuICovCi0vKiBEaXNhYmxlIHRob3NlIG1hY3JvcyBzbyB0
aGF0IHdlIGFyZSBub3QgbGltaXRlZCBpbiBob3cgd2UgbmFtZSBtZXRob2RzIGFuZCBmdW5jdGlv
bnMuICovCi0jdW5kZWYgX19BU1NFUlRfTUFDUk9TX0RFRklORV9WRVJTSU9OU19XSVRIT1VUX1VO
REVSU0NPUkVTCi0jZGVmaW5lIF9fQVNTRVJUX01BQ1JPU19ERUZJTkVfVkVSU0lPTlNfV0lUSE9V
VF9VTkRFUlNDT1JFUyAwCi0KLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQotCi0jZGVmaW5l
IEhBVkVfUlVOTE9PUF9USU1FUiAxCi0jZGVmaW5lIEhBVkVfU0VDX0tFWUNIQUlOIDEKLSNkZWZp
bmUgSEFWRV9ISVNFUlZJQ0VTIDEKLSNkZWZpbmUgVVNFX0FQUEtJVCAxCi0jZGVmaW5lIFVTRV9Q
QVNTS0lUIDEKLQotI2lmIENQVShYODZfNjQpCi0jZGVmaW5lIEhBVkVfTkVUV09SS19FWFRFTlNJ
T04gMQotI2RlZmluZSBVU0VfUExVR0lOX0hPU1RfUFJPQ0VTUyAxCi0jZW5kaWYKLSNlbmRpZiAv
KiBQTEFURk9STShNQUMpICovCi0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotCi0jZGVmaW5l
IEhBVkVfTkVUV09SS19FWFRFTlNJT04gMQotI2RlZmluZSBIQVZFX1JFQURMSU5FIDEKLSNkZWZp
bmUgVVNFX1VJS0lUX0VESVRJTkcgMQotI2RlZmluZSBVU0VfV0VCX1RIUkVBRCAxCi0KLSNpZiBD
UFUoQVJNNjQpCi0jZGVmaW5lIEVOQUJMRV9KSVRfQ09OU1RBTlRfQkxJTkRJTkcgMAotI2VuZGlm
Ci0KLSNpZiBDUFUoQVJNX05FT04pCi0jdW5kZWYgSEFWRV9BUk1fTkVPTl9JTlRSSU5TSUNTCi0j
ZGVmaW5lIEhBVkVfQVJNX05FT05fSU5UUklOU0lDUyAwCi0jZW5kaWYKLQotI2VuZGlmIC8qIFBM
QVRGT1JNKElPU19GQU1JTFkpICovCi0KLSNpZiAhZGVmaW5lZChIQVZFX0FDQ0VTU0lCSUxJVFkp
Ci0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpCi0jZGVmaW5lIEhBVkVfQUNDRVNTSUJJTElUWSAxCi0jZW5kaWYKLSNl
bmRpZiAvKiAhZGVmaW5lZChIQVZFX0FDQ0VTU0lCSUxJVFkpICovCi0KLS8qIEZJWE1FOiBSZW1v
dmUgYWZ0ZXIgQ01ha2UgYnVpbGQgZW5hYmxlZCBvbiBEYXJ3aW4gKi8KLSNpZiBPUyhEQVJXSU4p
Ci0jZGVmaW5lIEhBVkVfRVJSTk9fSCAxCi0jZGVmaW5lIEhBVkVfTEFOR0lORk9fSCAxCi0jZGVm
aW5lIEhBVkVfTE9DQUxUSU1FX1IgMQotI2RlZmluZSBIQVZFX01NQVAgMQotI2RlZmluZSBIQVZF
X1JFR0VYX0ggMQotI2RlZmluZSBIQVZFX1NJR05BTF9IIDEKLSNkZWZpbmUgSEFWRV9TVEFUX0JJ
UlRIVElNRSAxCi0jZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLSNkZWZpbmUgSEFWRV9TVFJOU1RS
IDEKLSNkZWZpbmUgSEFWRV9TWVNfUEFSQU1fSCAxCi0jZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAx
IAotI2RlZmluZSBIQVZFX1RNX0dNVE9GRiAxCi0jZGVmaW5lIEhBVkVfVE1fWk9ORSAxCi0jZGVm
aW5lIEhBVkVfVElNRUdNIDEKLSNkZWZpbmUgSEFWRV9QVEhSRUFEX01BSU5fTlAgMQotCi0jaWYg
Q1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQotI2RlZmluZSBIQVZFX0lOVDEyOF9UIDEKLSNlbmRp
ZgotI2VuZGlmIC8qIE9TKERBUldJTikgKi8KLQotI2lmIE9TKFVOSVgpCi0jZGVmaW5lIFVTRV9Q
VEhSRUFEUyAxCi0jZW5kaWYgLyogT1MoVU5JWCkgKi8KLQotI2lmIE9TKFVOSVgpICYmICFPUyhG
VUNIU0lBKQotI2RlZmluZSBIQVZFX1JFU09VUkNFX0ggMQotI2RlZmluZSBIQVZFX1BUSFJFQURf
U0VUU0NIRURQQVJBTSAxCi0jZW5kaWYKLQotI2lmIE9TKERBUldJTikKLSNkZWZpbmUgSEFWRV9E
SVNQQVRDSF9IIDEKLSNkZWZpbmUgSEFWRV9NQURWX0ZSRUUgMQotI2RlZmluZSBIQVZFX01BRFZf
RlJFRV9SRVVTRSAxCi0jZGVmaW5lIEhBVkVfTUFEVl9ET05UTkVFRCAxCi0jZGVmaW5lIEhBVkVf
TUVSR0VTT1JUIDEKLSNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQotI2RlZmluZSBI
QVZFX1JFQURMSU5FIDEKLSNkZWZpbmUgSEFWRV9TWVNfVElNRUJfSCAxCi0jZGVmaW5lIEhBVkVf
QVVESVRfVE9LRU4gMQogCi0jaWYgX19oYXNfaW5jbHVkZSg8bWFjaC9tYWNoX2V4Yy5kZWZzPikg
JiYgIVBMQVRGT1JNKEdUSykKLSNkZWZpbmUgSEFWRV9NQUNIX0VYQ0VQVElPTlMgMQotI2VuZGlm
Ci0KLSNpZiAhUExBVEZPUk0oR1RLKQotI2RlZmluZSBVU0VfQUNDRUxFUkFURSAxCi0jZW5kaWYK
LSNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNkZWZpbmUgSEFWRV9IT1NURURfQ09SRV9BTklN
QVRJT04gMQotI2VuZGlmCi0KLSNlbmRpZiAvKiBPUyhEQVJXSU4pICovCi0KLSNpZiBPUyhEQVJX
SU4pIHx8IE9TKEZVQ0hTSUEpIHx8ICgoT1MoRlJFRUJTRCkgfHwgZGVmaW5lZChfX0dMSUJDX18p
IHx8IGRlZmluZWQoX19CSU9OSUNfXykpICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBD
UFUoQVJNKSB8fCBDUFUoQVJNNjQpIHx8IENQVShNSVBTKSkpCi0jZGVmaW5lIEhBVkVfTUFDSElO
RV9DT05URVhUIDEKLSNlbmRpZgotCi0jaWYgT1MoREFSV0lOKSB8fCAoT1MoTElOVVgpICYmIGRl
ZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhQ1BVKE1JUFMpKQot
I2RlZmluZSBIQVZFX0JBQ0tUUkFDRSAxCi0jZW5kaWYKLQotI2lmIE9TKERBUldJTikgfHwgT1Mo
TElOVVgpCi0jaWYgUExBVEZPUk0oR1RLKQotI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVm
aW5lZChfX1VDTElCQ19fKSAmJiAhQ1BVKE1JUFMpCi0jZGVmaW5lIEhBVkVfQkFDS1RSQUNFX1NZ
TUJPTFMgMQotI2VuZGlmCi0jZW5kaWYgLyogUExBVEZPUk0oR1RLKSAqLwotI2RlZmluZSBIQVZF
X0RMQUREUiAxCi0jZW5kaWYgLyogT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkgKi8KLQotCi0vKiBF
TkFCTEUgbWFjcm8gZGVmYXVsdHMgKi8KLQotLyogRklYTUU6IG1vdmUgb3V0IGFsbCBFTkFCTEUo
KSBkZWZpbmVzIGZyb20gaGVyZSB0byBGZWF0dXJlRGVmaW5lcy5oICovCi0KLSNpZiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKSAmJiBfX2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRp
b25hbFBsYXRmb3JtLmg+KQotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsUGxh
dGZvcm0uaD4KLSNlbmRpZgotCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19oYXNf
aW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5oPikKLSNp
bmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRpb25hbEZlYXR1cmVEZWZpbmVzLmg+Ci0jZW5k
aWYKLQotLyogSW5jbHVkZSBmZWF0dXJlIG1hY3JvcyAqLwotI2luY2x1ZGUgPHd0Zi9GZWF0dXJl
RGVmaW5lcy5oPgotCi0jaWYgT1MoV0lORE9XUykKLSNkZWZpbmUgVVNFX1NZU1RFTV9NQUxMT0Mg
MQotI2VuZGlmCi0KLQotI2lmICFkZWZpbmVkKFVTRV9KU1ZBTFVFNjQpICYmICFkZWZpbmVkKFVT
RV9KU1ZBTFVFMzJfNjQpCi0jaWYgQ1BVKEFERFJFU1M2NCkgfHwgQ1BVKEFSTTY0KQotI2RlZmlu
ZSBVU0VfSlNWQUxVRTY0IDEKLSNlbHNlCi0jZGVmaW5lIFVTRV9KU1ZBTFVFMzJfNjQgMQotI2Vu
ZGlmCi0jZW5kaWYgLyogIWRlZmluZWQoVVNFX0pTVkFMVUU2NCkgJiYgIWRlZmluZWQoVVNFX0pT
VkFMVUUzMl82NCkgKi8KLQotLyogVGhlIEpJVCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb24gYWxs
IHg4Ni02NCAmIEFSTTY0IHBsYXRmb3Jtcy4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfSklUKSBc
Ci0gICAgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpIFwKLSAgICAmJiAhQ1BVKEFQUExF
X0FSTVY3SykKLSNkZWZpbmUgRU5BQkxFX0pJVCAxCi0jZW5kaWYKLQotI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCi0jaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykpICYmIE9TKExJTlVYKQot
LyogT24gQVJNdjcgYW5kIE1JUFMgb24gTGludXggdGhlIEpJVCBpcyBlbmFibGVkIHVubGVzcyBl
eHBsaWNpdGx5IGRpc2FibGVkLiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9KSVQpCi0jZGVmaW5l
IEVOQUJMRV9KSVQgMQotI2VuZGlmCi0jZWxzZQotLyogRGlzYWJsZSBKSVQgYW5kIGZvcmNlIENf
TE9PUCBvbiBhbGwgb3RoZXIgMzJiaXQgYXJjaGl0ZWN0dXJlcy4gKi8KLSN1bmRlZiBFTkFCTEVf
SklUCi0jZGVmaW5lIEVOQUJMRV9KSVQgMAotI3VuZGVmIEVOQUJMRV9DX0xPT1AKLSNkZWZpbmUg
RU5BQkxFX0NfTE9PUCAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0Nf
TE9PUCkKLSNpZiBFTkFCTEUoSklUKSBcCi0gICAgfHwgQ1BVKFg4Nl82NCkgfHwgKENQVShBUk02
NCkgJiYgIWRlZmluZWQoX19JTFAzMl9fKSkKLSNkZWZpbmUgRU5BQkxFX0NfTE9PUCAwCi0jZWxz
ZQotI2RlZmluZSBFTkFCTEVfQ19MT09QIDEKLSNlbmRpZgotI2VuZGlmCi0KLS8qIFRoZSBGVEwg
KmRvZXMgbm90KiB3b3JrIG9uIDMyLWJpdCBwbGF0Zm9ybXMuIERpc2FibGUgaXQgZXZlbiBpZiBz
b21lb25lIGFza2VkIHVzIHRvIGVuYWJsZSBpdC4gKi8KLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQot
I3VuZGVmIEVOQUJMRV9GVExfSklUCi0jZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKLSNlbmRpZgot
Ci0vKiBUaGUgRlRMIGlzIGRpc2FibGVkIG9uIHRoZSBpT1Mgc2ltdWxhdG9yLCBtb3N0bHkgZm9y
IHNpbXBsaWNpdHkuICovCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpCi0jdW5k
ZWYgRU5BQkxFX0ZUTF9KSVQKLSNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAotI2VuZGlmCi0KLS8q
IElmIHBvc3NpYmxlLCB0cnkgdG8gZW5hYmxlIGEgZGlzYXNzZW1ibGVyLiBUaGlzIGlzIG9wdGlv
bmFsLiBXZSBwcm9jZWVkIGluIHR3bwotICAgc3RlcHM6IGZpcnN0IHdlIHRyeSB0byBmaW5kIHNv
bWUgZGlzYXNzZW1ibGVyIHRoYXQgd2UgY2FuIHVzZSwgYW5kIHRoZW4gd2UKLSAgIGRlY2lkZSBp
ZiB0aGUgaGlnaC1sZXZlbCBkaXNhc3NlbWJsZXIgQVBJIGNhbiBiZSBlbmFibGVkLiAqLwotI2lm
ICFkZWZpbmVkKFVTRV9VRElTODYpICYmIEVOQUJMRShKSVQpICYmIENQVShYODZfNjQpICYmICFV
U0UoQ0FQU1RPTkUpCi0jZGVmaW5lIFVTRV9VRElTODYgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChVU0VfQVJNNjRfRElTQVNTRU1CTEVSKSAmJiBFTkFCTEUoSklUKSAmJiBDUFUoQVJNNjQpICYm
ICFVU0UoQ0FQU1RPTkUpCi0jZGVmaW5lIFVTRV9BUk02NF9ESVNBU1NFTUJMRVIgMQotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfRElTQVNTRU1CTEVSKSAmJiAoVVNFKFVESVM4NikgfHwg
VVNFKEFSTTY0X0RJU0FTU0VNQkxFUikgfHwgKEVOQUJMRShKSVQpICYmIFVTRShDQVBTVE9ORSkp
KQotI2RlZmluZSBFTkFCTEVfRElTQVNTRU1CTEVSIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX0RGR19KSVQpICYmIEVOQUJMRShKSVQpCi0vKiBFbmFibGUgdGhlIERGRyBKSVQgb24g
WDg2IGFuZCBYODZfNjQuICovCi0jaWYgQ1BVKFg4Nl82NCkgJiYgKE9TKERBUldJTikgfHwgT1Mo
TElOVVgpIHx8IE9TKEZSRUVCU0QpIHx8IE9TKEhVUkQpIHx8IE9TKFdJTkRPV1MpKQotI2RlZmlu
ZSBFTkFCTEVfREZHX0pJVCAxCi0jZW5kaWYKLS8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBBUk12
Ny4gIE9ubHkgdGVzdGVkIG9uIGlPUywgTGludXgsIGFuZCBGcmVlQlNELiAqLwotI2lmIChDUFUo
QVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IE9T
KExJTlVYKSB8fCBPUyhGUkVFQlNEKSkKLSNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQotI2VuZGlm
Ci0vKiBFbmFibGUgdGhlIERGRyBKSVQgb24gTUlQUy4gKi8KLSNpZiBDUFUoTUlQUykKLSNkZWZp
bmUgRU5BQkxFX0RGR19KSVQgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogQ29uY3VycmVudCBKUyBv
bmx5IHdvcmtzIG9uIDY0LWJpdCBwbGF0Zm9ybXMgYmVjYXVzZSBpdCByZXF1aXJlcyB0aGF0Ci0g
ICB2YWx1ZXMgZ2V0IHN0b3JlZCB0byBhdG9taWNhbGx5LiBUaGlzIGlzIHRyaXZpYWxseSB0cnVl
IG9uIDY0LWJpdCBwbGF0Zm9ybXMsCi0gICBidXQgbm90IHRydWUgYXQgYWxsIG9uIDMyLWJpdCBw
bGF0Zm9ybXMgd2hlcmUgdmFsdWVzIGFyZSBjb21wb3NlZCBvZiB0d28KLSAgIHNlcGFyYXRlIHN1
Yi12YWx1ZXMuICovCi0jaWYgRU5BQkxFKEpJVCkgJiYgVVNFKEpTVkFMVUU2NCkKLSNkZWZpbmUg
RU5BQkxFX0NPTkNVUlJFTlRfSlMgMQotI2VuZGlmCi0KLSNpZiBfX2hhc19pbmNsdWRlKDxTeXN0
ZW0vcHRocmVhZF9tYWNoZGVwLmg+KQotI2RlZmluZSBIQVZFX0ZBU1RfVExTIDEKLSNlbmRpZgot
Ci0jaWYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpICYmIEhBVkUoRkFTVF9UTFMpCi0jZGVm
aW5lIEVOQUJMRV9GQVNUX1RMU19KSVQgMQotI2VuZGlmCi0KLSNpZiBDUFUoWDg2KSB8fCBDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSB8fCBDUFUoTUlQUykKLSNk
ZWZpbmUgRU5BQkxFX01BU01fUFJPQkUgMQotI2Vsc2UKLSNkZWZpbmUgRU5BQkxFX01BU01fUFJP
QkUgMAotI2VuZGlmCi0KLSNpZiAhRU5BQkxFKEpJVCkKLSN1bmRlZiBFTkFCTEVfTUFTTV9QUk9C
RQotI2RlZmluZSBFTkFCTEVfTUFTTV9QUk9CRSAwCi0jZW5kaWYKLQotLyogSWYgdGhlIGJhc2Vs
aW5lIGppdCBpcyBub3QgYXZhaWxhYmxlLCB0aGVuIGRpc2FibGUgdXBwZXIgdGllcnMgYXMgd2Vs
bC4KLSAgIFRoZSBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUoKSBpcyBhbHNvIHJlcXVpcmVkIGZvciBz
dXBwb3J0aW5nIHRoZSB1cHBlciB0aWVycy4gKi8KLSNpZiAhRU5BQkxFKEpJVCkgfHwgIUVOQUJM
RShNQVNNX1BST0JFKQotI3VuZGVmIEVOQUJMRV9ERkdfSklUCi0jdW5kZWYgRU5BQkxFX0ZUTF9K
SVQKLSNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMAotI2RlZmluZSBFTkFCTEVfRlRMX0pJVCAwCi0j
ZW5kaWYKLQotLyogSWYgdGhlIERGRyBqaXQgaXMgbm90IGF2YWlsYWJsZSwgdGhlbiBkaXNhYmxl
IHVwcGVyIHRpZXJzIGFzIHdlbGw6ICovCi0jaWYgIUVOQUJMRShERkdfSklUKQotI3VuZGVmIEVO
QUJMRV9GVExfSklUCi0jZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKLSNlbmRpZgotCi0vKiBUaGlz
IGNvbnRyb2xzIHdoZXRoZXIgQjMgaXMgYnVpbHQuIEIzIGlzIG5lZWRlZCBmb3IgRlRMIEpJVCBh
bmQgV2ViQXNzZW1ibHkgKi8KLSNpZiBFTkFCTEUoRlRMX0pJVCkKLSNkZWZpbmUgRU5BQkxFX0Iz
X0pJVCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJBU1NFTUJMWSkKLSNpZiBF
TkFCTEUoQjNfSklUKSAmJiBQTEFURk9STShDT0NPQSkgJiYgQ1BVKEFERFJFU1M2NCkKLSNkZWZp
bmUgRU5BQkxFX1dFQkFTU0VNQkxZIDEKLSNlbHNlCi0jZGVmaW5lIEVOQUJMRV9XRUJBU1NFTUJM
WSAwCi0jZW5kaWYKLSNlbmRpZgotCi0vKiBUaGUgU2FtcGxpbmdQcm9maWxlciBpcyB0aGUgcHJv
YmFiaWxpc3RpYyBhbmQgbG93LW92ZXJoZWFkIHByb2ZpbGVyIHVzZWQgYnkKLSAqIEpTQyB0byBt
ZWFzdXJlIHdoZXJlIHRpbWUgaXMgc3BlbnQgaW5zaWRlIGEgSmF2YVNjcmlwdCBwcm9ncmFtLgot
ICogSW4gY29uZmlndXJhdGlvbnMgb3RoZXIgdGhhbiBXaW5kb3dzIGFuZCBEYXJ3aW4sIGJlY2F1
c2UgbGF5b3V0IG9mIG1jb250ZXh0X3QgZGVwZW5kcyBvbiBzdGFuZGFyZCBsaWJyYXJpZXMgKGxp
a2UgZ2xpYmMpLAotICogc2FtcGxpbmcgcHJvZmlsZXIgaXMgZW5hYmxlZCBpZiBXZWJLaXQgdXNl
cyBwdGhyZWFkcyBhbmQgZ2xpYmMuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1NBTVBMSU5HX1BS
T0ZJTEVSKQotI2lmICFFTkFCTEUoQ19MT09QKSAmJiAoT1MoV0lORE9XUykgfHwgSEFWRShNQUNI
SU5FX0NPTlRFWFQpKQotI2RlZmluZSBFTkFCTEVfU0FNUExJTkdfUFJPRklMRVIgMQotI2Vsc2UK
LSNkZWZpbmUgRU5BQkxFX1NBTVBMSU5HX1BST0ZJTEVSIDAKLSNlbmRpZgotI2VuZGlmCi0KLSNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpICYmIEhBVkUoTUFDSElORV9DT05URVhUKQotI2RlZmluZSBF
TkFCTEVfV0VCQVNTRU1CTFlfRkFTVF9NRU1PUlkgMQotI2VuZGlmCi0KLS8qIENvdW50cyB1c2Vz
IG9mIHdyaXRlIGJhcnJpZXJzIHVzaW5nIHNhbXBsaW5nIGNvdW50ZXJzLiBCZSBzdXJlIHRvIGFs
c28KLSAgIHNldCBFTkFCTEVfU0FNUExJTkdfQ09VTlRFUlMgdG8gMS4gKi8KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcpCi0jZGVmaW5lIEVOQUJMRV9XUklURV9C
QVJSSUVSX1BST0ZJTElORyAwCi0jZW5kaWYKLQotLyogTG9ncyBhbGwgYWxsb2NhdGlvbi1yZWxh
dGVkIGFjdGl2aXR5IHRoYXQgZ29lcyB0aHJvdWdoIGZhc3RNYWxsb2Mgb3IgdGhlCi0gICBKU0Mg
R0MgKGJvdGggY2VsbHMgYW5kIGJ1dHRlcmZsaWVzKS4gQWxzbyBsb2dzIG1hcmtpbmcuIE5vdGUg
dGhhdCB0aGlzCi0gICBpc24ndCBhIGNvbXBsZXRlbHkgYWNjdXJhdGUgdmlldyBvZiB0aGUgaGVh
cCBzaW5jZSBpdCBkb2Vzbid0IGluY2x1ZGUgYWxsCi0gICBidXR0ZXJmbHkgcmVzaXplIG9wZXJh
dGlvbnMsIGRvZXNuJ3QgdGVsbCB5b3Ugd2hhdCBpcyBnb2luZyBvbiB3aXRoIHdlYWsKLSAgIHJl
ZmVyZW5jZXMgKG90aGVyIHRoYW4gdG8gdGVsbCB5b3Ugd2hlbiB0aGV5J3JlIG1hcmtlZCksIGFu
ZCBkb2Vzbid0Ci0gICB0cmFjayBkaXJlY3QgbW1hcCgpIGFsbG9jYXRpb25zIG9yIHRoaW5ncyBs
aWtlIEpJVCBhbGxvY2F0aW9uLiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9BTExPQ0FUSU9OX0xP
R0dJTkcpCi0jZGVmaW5lIEVOQUJMRV9BTExPQ0FUSU9OX0xPR0dJTkcgMAotI2VuZGlmCi0KLS8q
IEVuYWJsZSB2ZXJpZmljYXRpb24gdGhhdCB0aGF0IHJlZ2lzdGVyIGFsbG9jYXRpb25zIGFyZSBu
b3QgbWFkZSB3aXRoaW4gZ2VuZXJhdGVkIGNvbnRyb2wgZmxvdy4KLSAgIFR1cm5lZCBvbiBmb3Ig
ZGVidWcgYnVpbGRzLiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfUkVHSVNURVJfQUxMT0NB
VElPTl9WQUxJREFUSU9OKSAmJiBFTkFCTEUoREZHX0pJVCkKLSNpZiAhZGVmaW5lZChOREVCVUcp
Ci0jZGVmaW5lIEVOQUJMRV9ERkdfUkVHSVNURVJfQUxMT0NBVElPTl9WQUxJREFUSU9OIDEKLSNl
bHNlCi0jZGVmaW5lIEVOQUJMRV9ERkdfUkVHSVNURVJfQUxMT0NBVElPTl9WQUxJREFUSU9OIDAK
LSNlbmRpZgotI2VuZGlmCi0KLS8qIENvbmZpZ3VyZSB0aGUgSklUICovCi0jaWYgQ1BVKFg4Nikg
JiYgQ09NUElMRVIoTVNWQykKLSNkZWZpbmUgSlNDX0hPU1RfQ0FMTCBfX2Zhc3RjYWxsCi0jZWxp
ZiBDUFUoWDg2KSAmJiBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKLSNkZWZpbmUgSlNDX0hPU1Rf
Q0FMTCBfX2F0dHJpYnV0ZV9fICgoZmFzdGNhbGwpKQotI2Vsc2UKLSNkZWZpbmUgSlNDX0hPU1Rf
Q0FMTAotI2VuZGlmCi0KLSNpZiBDUFUoWDg2KSAmJiBPUyhXSU5ET1dTKQotI2RlZmluZSBDQUxM
SU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTCAxCi0jaWZuZGVmIENERUNMCi0jaWYgQ09NUElMRVIo
TVNWQykKLSNkZWZpbmUgQ0RFQ0wgX19jZGVjbAotI2Vsc2UKLSNkZWZpbmUgQ0RFQ0wgX19hdHRy
aWJ1dGVfXyAoKF9fY2RlY2wpKQotI2VuZGlmCi0jZW5kaWYKLSNlbHNlCi0jZGVmaW5lIENBTExJ
TkdfQ09OVkVOVElPTl9JU19TVERDQUxMIDAKLSNlbmRpZgotCi0jaWYgQ1BVKFg4NikKLSNkZWZp
bmUgV1RGX0NPTVBJTEVSX1NVUFBPUlRTX0ZBU1RDQUxMX0NBTExJTkdfQ09OVkVOVElPTiAxCi0j
aWZuZGVmIEZBU1RDQUxMCi0jaWYgQ09NUElMRVIoTVNWQykKLSNkZWZpbmUgRkFTVENBTEwgX19m
YXN0Y2FsbAotI2Vsc2UKLSNkZWZpbmUgRkFTVENBTEwgIF9fYXR0cmlidXRlX18gKChmYXN0Y2Fs
bCkpCi0jZW5kaWYKLSNlbmRpZgotI2Vsc2UKLSNkZWZpbmUgV1RGX0NPTVBJTEVSX1NVUFBPUlRT
X0ZBU1RDQUxMX0NBTExJTkdfQ09OVkVOVElPTiAwCi0jZW5kaWYKLQotI2lmIEVOQUJMRShKSVQp
ICYmIENBTExJTkdfQ09OVkVOVElPTl9JU19TVERDQUxMCi0jZGVmaW5lIEpJVF9PUEVSQVRJT04g
Q0RFQ0wKLSNlbHNlCi0jZGVmaW5lIEpJVF9PUEVSQVRJT04KLSNlbmRpZgotCi0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgQ1BVKEFSTTY0KSAmJiAoIUVOQUJMRShGQVNUX0pJVF9QRVJNSVNT
SU9OUykgfHwgIUNQVShBUk02NEUpKQotI2RlZmluZSBFTkFCTEVfU0VQQVJBVEVEX1dYX0hFQVAg
MQotI2Vsc2UKLSNkZWZpbmUgRU5BQkxFX1NFUEFSQVRFRF9XWF9IRUFQIDAKLSNlbmRpZgotCi0v
KiBDb25maWd1cmUgdGhlIGludGVycHJldGVyICovCi0jaWYgQ09NUElMRVIoR0NDX0NPTVBBVElC
TEUpCi0jZGVmaW5lIEhBVkVfQ09NUFVURURfR09UTyAxCi0jZW5kaWYKLQotLyogRGV0ZXJtaW5l
IGlmIHdlIG5lZWQgdG8gZW5hYmxlIENvbXB1dGVkIEdvdG8gT3Bjb2RlcyBvciBub3Q6ICovCi0j
aWYgSEFWRShDT01QVVRFRF9HT1RPKSB8fCAhRU5BQkxFKENfTE9PUCkKLSNkZWZpbmUgRU5BQkxF
X0NPTVBVVEVEX0dPVE9fT1BDT0RFUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKFVTRV9MTElO
VF9FTUJFRERFRF9PUENPREVfSUQpICYmICFFTkFCTEUoQ19MT09QKSAmJiAhQ09NUElMRVIoTVNW
QykgJiYgXAotICAgIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChD
UFUoQVJNX1RIVU1CMikgJiYgT1MoREFSV0lOKSkpCi0vKiBUaGlzIGZlYXR1cmUgd29ya3MgYnkg
ZW1iZWRkaW5nIHRoZSBPcGNvZGVJRCBpbiB0aGUgMzIgYml0IGp1c3QgYmVmb3JlIHRoZSBnZW5l
cmF0ZWQgTExpbnQgY29kZQotICAgdGhhdCBleGVjdXRlcyBlYWNoIG9wY29kZS4gSXQgY2Fubm90
IGJlIHN1cHBvcnRlZCBieSB0aGUgQ0xvb3Agc2luY2UgdGhlcmUncyBubyB3YXkgdG8gZW1iZWQg
dGhlCi0gICBPcGNvZGVJRCB3b3JkIGluIHRoZSBDTG9vcCdzIHN3aXRjaCBzdGF0ZW1lbnQgY2Fz
ZXMuIEl0IGlzIGFsc28gY3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZCBmb3IgTVNWQy4KLSovCi0j
ZGVmaW5lIFVTRV9MTElOVF9FTUJFRERFRF9PUENPREVfSUQgMQotI2VuZGlmCi0KLS8qIFVzZSBf
X2J1aWx0aW5fZnJhbWVfYWRkcmVzcygxKSB0byBnZXQgQ2FsbEZyYW1lKiAqLwotI2lmIENPTVBJ
TEVSKEdDQ19DT01QQVRJQkxFKSAmJiAoQ1BVKEFSTTY0KSB8fCBDUFUoWDg2XzY0KSkKLSNkZWZp
bmUgVVNFX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCi0jZW5kaWYKLQotLyogUmVndWxhciBFeHBy
ZXNzaW9uIFRyYWNpbmcgLSBTZXQgdG8gMSB0byB0cmFjZSBSZWdFeHAncyBpbiBqc2MuICBSZXN1
bHRzIGR1bXBlZCBhdCBleGl0ICovCi0jZGVmaW5lIEVOQUJMRV9SRUdFWFBfVFJBQ0lORyAwCi0K
LS8qIFlldCBBbm90aGVyIFJlZ2V4IFJ1bnRpbWUgLSB0dXJuZWQgb24gYnkgZGVmYXVsdCBmb3Ig
SklUIGVuYWJsZWQgcG9ydHMuICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX1lBUlJfSklUKSAmJiBF
TkFCTEUoSklUKQotI2RlZmluZSBFTkFCTEVfWUFSUl9KSVQgMQotCi0vKiBTZXR0aW5nIHRoaXMg
ZmxhZyBjb21wYXJlcyBKSVQgcmVzdWx0cyB3aXRoIGludGVycHJldGVyIHJlc3VsdHMuICovCi0j
ZGVmaW5lIEVOQUJMRV9ZQVJSX0pJVF9ERUJVRyAwCi0jZW5kaWYKLQotI2lmIEVOQUJMRShZQVJS
X0pJVCkKLSNpZiBDUFUoQVJNNjQpIHx8IChDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykpCi0v
KiBFbmFibGUgSklUJ2luZyBSZWd1bGFyIEV4cHJlc3Npb25zIHRoYXQgaGF2ZSBuZXN0ZWQgcGFy
ZW50aGVzaXMgYW5kIGJhY2sgcmVmZXJlbmNlcy4gKi8KLSNkZWZpbmUgRU5BQkxFX1lBUlJfSklU
X0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMgMQotI2RlZmluZSBFTkFCTEVfWUFSUl9KSVRfQkFDS1JF
RkVSRU5DRVMgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogSWYgZWl0aGVyIHRoZSBKSVQgb3IgdGhl
IFJlZ0V4cCBKSVQgaXMgZW5hYmxlZCwgdGhlbiB0aGUgQXNzZW1ibGVyIG11c3QgYmUKLSAgIGVu
YWJsZWQgYXMgd2VsbDogKi8KLSNpZiBFTkFCTEUoSklUKSB8fCBFTkFCTEUoWUFSUl9KSVQpIHx8
ICFFTkFCTEUoQ19MT09QKQotI2lmIGRlZmluZWQoRU5BQkxFX0FTU0VNQkxFUikgJiYgIUVOQUJM
RV9BU1NFTUJMRVIKLSNlcnJvciAiQ2Fubm90IGVuYWJsZSB0aGUgSklUIG9yIFJlZ0V4cCBKSVQg
d2l0aG91dCBlbmFibGluZyB0aGUgQXNzZW1ibGVyIgotI2Vsc2UKLSN1bmRlZiBFTkFCTEVfQVNT
RU1CTEVSCi0jZGVmaW5lIEVOQUJMRV9BU1NFTUJMRVIgMQotI2VuZGlmCi0jZW5kaWYKLQotLyog
SWYgdGhlIERpc2Fzc2VtYmxlciBpcyBlbmFibGVkLCB0aGVuIHRoZSBBc3NlbWJsZXIgbXVzdCBi
ZSBlbmFibGVkIGFzIHdlbGw6ICovCi0jaWYgRU5BQkxFKERJU0FTU0VNQkxFUikKLSNpZiBkZWZp
bmVkKEVOQUJMRV9BU1NFTUJMRVIpICYmICFFTkFCTEVfQVNTRU1CTEVSCi0jZXJyb3IgIkNhbm5v
dCBlbmFibGUgdGhlIERpc2Fzc2VtYmxlciB3aXRob3V0IGVuYWJsaW5nIHRoZSBBc3NlbWJsZXIi
Ci0jZWxzZQotI3VuZGVmIEVOQUJMRV9BU1NFTUJMRVIKLSNkZWZpbmUgRU5BQkxFX0FTU0VNQkxF
UiAxCi0jZW5kaWYKLSNlbmRpZgotCi0vKiBBU1NFUlRfRU5BQkxFRCBzaG91bGQgYmUgdHJ1ZSBp
ZiB3ZSB3YW50IHRoZSBjdXJyZW50IGNvbXBpbGF0aW9uIHVuaXQgdG8KLSAgIGRvIGRlYnVnIGFz
c2VydGlvbiBjaGVja3MgdW5jb25kaXRpb25hbGx5IChlLmcuIHRyZWF0IGEgZGVidWcgQVNTRVJU
Ci0gICBsaWtlIGEgUkVMRUFTRV9BU1NFUlQuCi0qLwotI2lmbmRlZiBBU1NFUlRfRU5BQkxFRAot
I2lmZGVmIE5ERUJVRwotI2RlZmluZSBBU1NFUlRfRU5BQkxFRCAwCi0jZWxzZQotI2RlZmluZSBB
U1NFUlRfRU5BQkxFRCAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWZuZGVmIEVOQUJMRV9FWENFUFRJ
T05fU0NPUEVfVkVSSUZJQ0FUSU9OCi0jZGVmaW5lIEVOQUJMRV9FWENFUFRJT05fU0NPUEVfVkVS
SUZJQ0FUSU9OIEFTU0VSVF9FTkFCTEVECi0jZW5kaWYKLQotI2lmIEVOQUJMRShERkdfSklUKSAm
JiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpCi0j
ZGVmaW5lIEVOQUJMRV9TSUdOQUxfQkFTRURfVk1fVFJBUFMgMQotI2VuZGlmCi0KLS8qIENTUyBT
ZWxlY3RvciBKSVQgQ29tcGlsZXIgKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9S
X0pJVCkKLSNpZiAoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIp
ICYmIFBMQVRGT1JNKElPU19GQU1JTFkpKSkgJiYgRU5BQkxFKEpJVCkgJiYgKE9TKERBUldJTikg
fHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKQotI2RlZmluZSBFTkFCTEVfQ1NTX1NF
TEVDVE9SX0pJVCAxCi0jZWxzZQotI2RlZmluZSBFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCAwCi0j
ZW5kaWYKLSNlbmRpZgotCi0jaWYgQ1BVKEFSTTY0RSkgJiYgT1MoREFSV0lOKQotI2RlZmluZSBI
QVZFX0ZKQ1ZUWlNfSU5TVFJVQ1RJT04gMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1MpCi0j
ZGVmaW5lIEhBVkVfQVBQX0xJTktTIDEKLSNkZWZpbmUgVVNFX1BBU1NLSVQgMQotI2RlZmluZSBV
U0VfUVVJQ0tfTE9PSyAxCi0jZGVmaW5lIFVTRV9TWVNURU1fUFJFVklFVyAxCi0jZW5kaWYKLQot
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSNkZWZp
bmUgSEFWRV9DRUxFU1RJQUwgMQotI2RlZmluZSBIQVZFX0NPUkVfQU5JTUFUSU9OX1JFTkRFUl9T
RVJWRVIgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0o
TUFDQ0FUQUxZU1QpICYmICFQTEFURk9STShBUFBMRVRWKQotI2RlZmluZSBIQVZFX1BBUkVOVEFM
X0NPTlRST0xTX1dJVEhfVU5CTE9DS19IQU5ETEVSIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0o
Q09DT0EpCi0KLSNkZWZpbmUgVVNFX0FWRk9VTkRBVElPTiAxCi0jZGVmaW5lIFVTRV9QUk9URUNU
SU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0sgMQotCi0jaWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQ
TEFURk9STShBUFBMRVRWKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVmaW5lIEVOQUJM
RV9EQVRBX0RFVEVDVElPTiAxCi0jZW5kaWYKLQotLyogRklYTUU6IEVuYWJsZSBIQVZFX1BBUkVO
VEFMX0NPTlRST0xTIGZvciB3YXRjaE9TIFNpbXVsYXRvciBvbmNlIHJkYXI6Ly9wcm9ibGVtLzU0
NjA4Mzg2IGlzIHJlc29sdmVkICovCi0jaWYgIVBMQVRGT1JNKEFQUExFVFYpICYmICghUExBVEZP
Uk0oV0FUQ0hPUykgfHwgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSkKLSNkZWZpbmUg
SEFWRV9QQVJFTlRBTF9DT05UUk9MUyAxCi0jZW5kaWYKLQotI2lmICFQTEFURk9STShBUFBMRVRW
KQotI2RlZmluZSBIQVZFX0FWS0lUIDEKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFdFQkdMKQotLyog
VVNFX0FOR0xFPTEgdXNlcyBBTkdMRSBmb3IgdGhlIFdlYkdMIGJhY2tlbmQuCi0gICBJdCByZXBs
YWNlcyBVU0VfT1BFTkdMLCBVU0VfT1BFTkdMX0VTIGFuZCBVU0VfRUdMLiAqLwotI2lmIFBMQVRG
T1JNKE1BQykgfHwgKFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiBfX2hhc19pbmNsdWRlKDxPcGVu
R0wvT3BlbkdMLmg+KSkKLSNkZWZpbmUgVVNFX09QRU5HTCAxCi0jZGVmaW5lIFVTRV9PUEVOR0xf
RVMgMAotI2RlZmluZSBVU0VfQU5HTEUgMAotI2Vsc2UKLSNkZWZpbmUgVVNFX09QRU5HTCAwCi0j
ZGVmaW5lIFVTRV9PUEVOR0xfRVMgMQotI2RlZmluZSBVU0VfQU5HTEUgMAotI2VuZGlmCi0jaWYg
UExBVEZPUk0oQ09DT0EpCi0jaWZuZGVmIEdMX1NJTEVOQ0VfREVQUkVDQVRJT04KLSNkZWZpbmUg
R0xfU0lMRU5DRV9ERVBSRUNBVElPTiAxCi0jZW5kaWYKLSNpZiBVU0UoT1BFTkdMKSAmJiAhZGVm
aW5lZChIQVZFX09QRU5HTF80KQotI2RlZmluZSBIQVZFX09QRU5HTF80IDEKLSNlbmRpZgotI2lm
IFVTRShPUEVOR0xfRVMpICYmICFkZWZpbmVkKEhBVkVfT1BFTkdMX0VTXzMpCi0jZGVmaW5lIEhB
VkVfT1BFTkdMX0VTXzMgMQotI2VuZGlmCi0jZW5kaWYKLSNpZiBVU0VfQU5HTEUgJiYgKFVTRV9P
UEVOR0wgfHwgVVNFX09QRU5HTF9FUykKLSNlcnJvciBVU0VfQU5HTEUgaXMgaW5jb21wYXRpYmxl
IHdpdGggVVNFX09QRU5HTCBhbmQgVVNFX09QRU5HTF9FUwotI2VuZGlmCi0jZW5kaWYKLQotI2Rl
ZmluZSBVU0VfTUVUQUwgMQotCi0jaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFkpCi0jZGVmaW5lIFVT
RV9BQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMgMQotI2VuZGlmCisvKiBBc3NlcnRzLCBpbnZh
cmlhbnRzIGZvciBtYWNybyBkZWZpbml0aW9ucyAqLwogCi0jZW5kaWYKLQotI2lmIEVOQUJMRShX
RUJHTCkKLSNpZiAhZGVmaW5lZChVU0VfQU5HTEUpCi0jZGVmaW5lIFVTRV9BTkdMRSAwCi0jZW5k
aWYKLQotI2lmIChVU0VfQU5HTEUgJiYgKFVTRV9PUEVOR0wgfHwgVVNFX09QRU5HTF9FUyB8fCAo
ZGVmaW5lZChVU0VfRUdMKSAmJiBVU0VfRUdMKSkpICYmICFVU0UoVEVYVFVSRV9NQVBQRVIpCi0j
ZXJyb3IgVVNFX0FOR0xFIGlzIGluY29tcGF0aWJsZSB3aXRoIFVTRV9PUEVOR0wsIFVTRV9PUEVO
R0xfRVMgYW5kIFVTRV9FR0wKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiBVU0UoVEVYVFVSRV9NQVBQ
RVIpICYmIEVOQUJMRShHUkFQSElDU19DT05URVhUX0dMKSAmJiAhZGVmaW5lZChVU0VfVEVYVFVS
RV9NQVBQRVJfR0wpCi0jZGVmaW5lIFVTRV9URVhUVVJFX01BUFBFUl9HTCAxCi0jZW5kaWYKLQot
I2lmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpCi0jZGVmaW5lIEVOQUJMRV9CUkFOQ0hf
Q09NUEFDVElPTiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9USFJFQURJTkdfTElC
RElTUEFUQ0gpICYmIEhBVkUoRElTUEFUQ0hfSCkKLSNkZWZpbmUgRU5BQkxFX1RIUkVBRElOR19M
SUJESVNQQVRDSCAxCi0jZWxpZiAhZGVmaW5lZChFTkFCTEVfVEhSRUFESU5HX09QRU5NUCkgJiYg
ZGVmaW5lZChfT1BFTk1QKQotI2RlZmluZSBFTkFCTEVfVEhSRUFESU5HX09QRU5NUCAxCi0jZWxp
ZiAhZGVmaW5lZChUSFJFQURJTkdfR0VORVJJQykKLSNkZWZpbmUgRU5BQkxFX1RIUkVBRElOR19H
RU5FUklDIDEKLSNlbmRpZgotCi0jaWYgVVNFKEdMSUIpCi0jaW5jbHVkZSA8d3RmL2dsaWIvR1R5
cGVkZWZzLmg+Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKFVTRV9FWFBPUlRfTUFDUk9TKSAmJiAo
UExBVEZPUk0oQ09DT0EpIHx8IE9TKFdJTkRPV1MpKQotI2RlZmluZSBVU0VfRVhQT1JUX01BQ1JP
UyAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQotI2RlZmlu
ZSBVU0VfVU5JWF9ET01BSU5fU09DS0VUUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKFVTRV9J
TUxBTkdfRk9OVF9MSU5LMikKLSNkZWZpbmUgVVNFX0lNTEFOR19GT05UX0xJTksyIDEKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0dDX1ZBTElEQVRJT04pICYmICFkZWZpbmVkKE5ERUJV
RykKLSNkZWZpbmUgRU5BQkxFX0dDX1ZBTElEQVRJT04gMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfQklORElOR19JTlRFR1JJVFkpICYmICFPUyhXSU5ET1dTKQotI2RlZmluZSBFTkFC
TEVfQklORElOR19JTlRFR1JJVFkgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVFJF
RV9ERUJVR0dJTkcpCi0jaWYgIWRlZmluZWQoTkRFQlVHKQotI2RlZmluZSBFTkFCTEVfVFJFRV9E
RUJVR0dJTkcgMQotI2Vsc2UKLSNkZWZpbmUgRU5BQkxFX1RSRUVfREVCVUdHSU5HIDAKLSNlbmRp
ZgotI2VuZGlmCi0KLS8qCi0gKiBFbmFibGUgdGhpcyB0byBwdXQgZWFjaCBJc29IZWFwIGFuZCBv
dGhlciBhbGxvY2F0aW9uIGNhdGVnb3JpZXMgaW50byB0aGVpciBvd24gbWFsbG9jIGhlYXBzLCBz
byB0aGF0IHRvb2xzIGxpa2Ugdm1tYXAgY2FuIHNob3cgaG93IGJpZyBlYWNoIGhlYXAgaXMuCi0g
KiBUdXJuIEJFTkFCTEVfTUFMTE9DX0hFQVBfQlJFQUtET1dOIG9uIGluIGJtYWxsb2MgdG9nZXRo
ZXIgd2hlbiB1c2luZyB0aGlzLgotICovCi0jaWYgIWRlZmluZWQoRU5BQkxFX01BTExPQ19IRUFQ
X0JSRUFLRE9XTikKLSNkZWZpbmUgRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTiAwCi0jZW5k
aWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBVU0VfQ09SRU1FRElBIDEKLSNkZWZp
bmUgVVNFX1ZJREVPVE9PTEJPWCAxCi0jZGVmaW5lIEhBVkVfQVZGT1VOREFUSU9OX1ZJREVPX09V
VFBVVCAxCi0jZGVmaW5lIEhBVkVfQ09SRV9WSURFTyAxCi0jZGVmaW5lIEhBVkVfTUVESUFfUExB
WUVSIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIEhBVkVfQVZGT1VO
REFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENP
Q09BKQotI2RlZmluZSBIQVZFX0FWRk9VTkRBVElPTl9MRUdJQkxFX09VVFBVVF9TVVBQT1JUIDEK
LSNkZWZpbmUgSEFWRV9NRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSyAxCi0jZW5kaWYKLQot
I2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBIQVZFX0FWRk9VTkRBVElPTl9MT0FERVJfREVM
RUdBVEUgMQotI2VuZGlmCi0KLSNpZiAhUExBVEZPUk0oV0lOKQotI2RlZmluZSBVU0VfUkVRVUVT
VF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SIDEKLSNlbmRpZgotCi0jaWYgUExBVEZP
Uk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKLSNkZWZpbmUgSEFWRV9BUFBMRV9HUkFQ
SElDU19DT05UUk9MIDEKLSNkZWZpbmUgSEFWRV9OU0NVUlNPUiAxCi0jZW5kaWYKLQotI2lmIFBM
QVRGT1JNKE1BQykKLSNkZWZpbmUgVVNFX0NPUkVBVURJTyAxCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKFVTRV9aTElCKQotI2RlZmluZSBVU0VfWkxJQiAxCi0jZW5kaWYKLQotI2lmbmRlZiBIQVZF
X1FPU19DTEFTU0VTCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIEhBVkVfUU9TX0NMQVNT
RVMgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lmbmRlZiBIQVZFX1ZPVUNIRVJTCi0jaWYgUExBVEZP
Uk0oQ09DT0EpCi0jZGVmaW5lIEhBVkVfVk9VQ0hFUlMgMQotI2VuZGlmCi0jZW5kaWYKLQotI2Rl
ZmluZSBVU0VfR1JBTU1BUl9DSEVDS0lORyAxCi0KLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKQotI2RlZmluZSBVU0VfVU5JRklFRF9URVhUX0NIRUNLSU5HIDEKLSNlbmRpZgot
I2lmIFBMQVRGT1JNKE1BQykKLSNkZWZpbmUgVVNFX0FVVE9NQVRJQ19URVhUX1JFUExBQ0VNRU5U
IDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQotLyogU29tZSBwbGF0Zm9ybXMgcHJvdmlk
ZSBVSSBmb3Igc3VnZ2VzdGluZyBhdXRvY29ycmVjdGlvbi4gKi8KLSNkZWZpbmUgVVNFX0FVVE9D
T1JSRUNUSU9OX1BBTkVMIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0vKiBTb21l
IHBsYXRmb3JtcyB1c2Ugc3BlbGxpbmcgYW5kIGF1dG9jb3JyZWN0aW9uIG1hcmtlcnMgdG8gcHJv
dmlkZSB2aXN1YWwgY3VlLiBPbiBzdWNoIHBsYXRmb3JtLCBpZiB3b3JkIHdpdGggbWFya2VyIGlz
IGVkaXRlZCwgd2UgbmVlZCB0byByZW1vdmUgdGhlIG1hcmtlci4gKi8KLSNkZWZpbmUgVVNFX01B
UktFUl9SRU1PVkFMX1VQT05fRURJVElORyAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykK
LSNkZWZpbmUgVVNFX0lOU0VSVElPTl9VTkRPX0dST1VQSU5HIDEKLSNlbmRpZgotCi0jaWYgUExB
VEZPUk0oQ09DT0EpCi0jZGVmaW5lIEhBVkVfQVZBU1NFVFJFQURFUiAxCi0jZW5kaWYKLQotI2lm
IFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBVU0VfQVVESU9fU0VTU0lPTiAxCi0jZW5kaWYKLQot
I2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBIQVZFX0lPU1VSRkFDRSAxCi0jZW5kaWYKLQot
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRP
UikKLSNkZWZpbmUgSEFWRV9JT1NVUkZBQ0VfQ09SRUlNQUdFX1NVUFBPUlQgMQotI2VuZGlmCi0K
LSNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFU
T1IpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSNkZWZpbmUgSEFWRV9JT1NVUkZBQ0VfQUND
RUxFUkFUT1IgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLSNkZWZpbmUgRU5BQkxF
X1JFU09VUkNFX1VTQUdFIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShXUEUpCi0jdW5kZWYgRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMCi0jZGVmaW5lIEVOQUJMRV9P
UEVOVFlQRV9WRVJUSUNBTCAxCi0jZW5kaWYKLQotI2lmIENPTVBJTEVSKE1TVkMpCi0jdW5kZWYg
X19TVERDX0ZPUk1BVF9NQUNST1MKLSNkZWZpbmUgX19TVERDX0ZPUk1BVF9NQUNST1MKLSN1bmRl
ZiBfX1NURENfTElNSVRfTUFDUk9TCi0jZGVmaW5lIF9fU1REQ19MSU1JVF9NQUNST1MKLSNlbmRp
ZgotCi0jaWYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBIQVZFX05TX0FDVElWSVRZIDEKLSNlbmRp
ZgotCi0vKiBEaXNhYmxlIFNoYXJlZEFycmF5QnVmZmVycyB1bnRpbCBTcGVjdHJlIHNlY3VyaXR5
IGNvbmNlcm5zIGFyZSBtaXRpZ2F0ZWQuICovCi0jZGVmaW5lIEVOQUJMRV9TSEFSRURfQVJSQVlf
QlVGRkVSIDAKLQotI2lmIChPUyhEQVJXSU4pICYmIFVTRShDRykpIHx8IChVU0UoRlJFRVRZUEUp
ICYmICFQTEFURk9STShHVEspKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAoVVNFKENHKSB8fCBVU0Uo
Q0FJUk8pKSkKLSN1bmRlZiBFTkFCTEVfT1BFTlRZUEVfTUFUSAotI2RlZmluZSBFTkFCTEVfT1BF
TlRZUEVfTUFUSCAxCi0jZW5kaWYKLQotLyogU2V0IFRBUkdFVF9PU19JUEhPTkUgdG8gMCBieSBk
ZWZhdWx0IHRvIGFsbG93IHVzaW5nIGl0IGFzIGEgZ3VhcmQgCi0gKiBpbiBjcm9zcy1wbGF0Zm9y
bSB0aGUgc2FtZSB3YXkgYXMgaXQgaXMgdXNlZCBpbiBPUyhEQVJXSU4pIGNvZGUuICovIAotI2lm
ICFkZWZpbmVkKFRBUkdFVF9PU19JUEhPTkUpICYmICFPUyhEQVJXSU4pCi0jZGVmaW5lIFRBUkdF
VF9PU19JUEhPTkUgMAotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLSNkZWZpbmUgVVNF
X01FRElBVE9PTEJPWCAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBV
U0VfT1NfTE9HIDEKLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2RlZmluZSBVU0VfT1Nf
U1RBVEUgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBI
QVZFX1NFQ19UUlVTVF9TRVJJQUxJWkFUSU9OIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoV1RG
X0RFRkFVTFRfRVZFTlRfTE9PUCkKLSNkZWZpbmUgV1RGX0RFRkFVTFRfRVZFTlRfTE9PUCAxCi0j
ZW5kaWYKLQotI2lmIFdURl9ERUZBVUxUX0VWRU5UX0xPT1AKLSNpZiBVU0UoR0xJQikKLS8qIFVz
ZSBHTGliJ3MgZXZlbnQgbG9vcCBhYnN0cmFjdGlvbi4gUHJpbWFyaWx5IEdUSyBwb3J0IHVzZXMg
aXQuICovCi0jZGVmaW5lIFVTRV9HTElCX0VWRU5UX0xPT1AgMQotI2VsaWYgT1MoV0lORE9XUykK
LS8qIFVzZSBXaW5kb3dzIG1lc3NhZ2UgcHVtcCBhYnN0cmFjdGlvbi4KLSAqIEV2ZW4gaWYgdGhl
IHBvcnQgaXMgQXBwbGVXaW4sIHdlIHVzZSB0aGUgV2luZG93cyBtZXNzYWdlIHB1bXAgc3lzdGVt
IGZvciB0aGUgZXZlbnQgbG9vcCwKLSAqIHNvIHRoYXQgVVNFKFdJTkRPV1NfRVZFTlRfTE9PUCkg
JiYgVVNFKENGKSBjYW4gYmUgdHJ1ZS4KLSAqIEFuZCBQTEFURk9STShXSU4pIGFuZCBQTEFURk9S
TShHVEspIGFyZSBleGNsdXNpdmUuIElmIHRoZSBwb3J0IGlzIEdUSywKLSAqIFBMQVRGT1JNKFdJ
Tikgc2hvdWxkIGJlIGZhbHNlLiBBbmQgaW4gdGhhdCBjYXNlLCBHTGliJ3MgZXZlbnQgbG9vcCBp
cyB1c2VkLgotICovCi0jZGVmaW5lIFVTRV9XSU5ET1dTX0VWRU5UX0xPT1AgMQotI2VsaWYgUExB
VEZPUk0oQ09DT0EpCi0vKiBPUyBYIGFuZCBJT1MuIFVzZSBDb3JlRm91bmRhdGlvbiAmIEdDRCBh
YnN0cmFjdGlvbi4gKi8KLSNkZWZpbmUgVVNFX0NPQ09BX0VWRU5UX0xPT1AgMQotI2Vsc2UKLSNk
ZWZpbmUgVVNFX0dFTkVSSUNfRVZFTlRfTE9PUCAxCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgUExB
VEZPUk0oQ09DT0EpCi0jZGVmaW5lIFVTRV9NRURJQVJFTU9URSAxCi0jZW5kaWYKLQotI2lmIENP
TVBJTEVSKE1TVkMpCi0vKiBFbmFibGUgc3RyaWN0IHJ1bnRpbWUgc3RhY2sgYnVmZmVyIGNoZWNr
cy4gKi8KLSNwcmFnbWEgc3RyaWN0X2dzX2NoZWNrKG9uKQotI2VuZGlmCi0KLSNpZiBQTEFURk9S
TShNQUMpCi0jZGVmaW5lIEhBVkVfVE9VQ0hfQkFSIDEKLSNkZWZpbmUgVVNFX0RJQ1RBVElPTl9B
TFRFUk5BVElWRVMgMQotCi0jaWYgZGVmaW5lZChfX0xQNjRfXykKLSNkZWZpbmUgRU5BQkxFX1dF
Ql9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSIDEKLSNlbmRpZgotI2VuZGlmIC8qIFBMQVRGT1JN
KE1BQykgKi8KLQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoV0VCX1JUQykKLSNkZWZp
bmUgVVNFX0xJQldFQlJUQyAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZP
Uk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgVVNFKEdDUllQVCkKLSNkZWZpbmUg
SEFWRV9SU0FfUFNTIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1
MDApIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZGVmaW5lIFVTRV9TT1VSQ0VfQVBQTElDQVRJ
T05fQVVESVRfREFUQSAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKQotI2RlZmlu
ZSBIQVZFX0hTVFNfU1RPUkFHRV9QQVRIIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDApIHx8IFBMQVRGT1JN
KElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVmaW5lIEhBVkVfVVJMX0ZPUk1BVFRJ
TkcgMQotI2VuZGlmCi0KLSNpZiAhT1MoV0lORE9XUykKLSNkZWZpbmUgSEFWRV9TVEFDS19CT1VO
RFNfRk9SX05FV19USFJFQUQgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRG
T1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVmaW5lIEhBVkVfQVZDT05URU5U
S0VZU0VTU0lPTiAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRG
T1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBIQVZFX1NFQ19LRVlfUFJPWFkgMQotI2VuZGlmCi0K
LSNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKENBKQotI2RlZmluZSBVU0VfSU9TVVJGQUNFX0NB
TlZBU19CQUNLSU5HX1NUT1JFIDEKLSNlbmRpZgotCi0vKiBGSVhNRTogU2hvdWxkIHRoaXMgYmUg
ZW5hYmxlZCBvciBJT1NfRkFNSUxZLCBub3QganVzdCBJT1M/ICovCi0jaWYgKFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDApIHx8IFBMQVRG
T1JNKElPUykKLSNkZWZpbmUgSEFWRV9GT1VOREFUSU9OX1dJVEhfU0FWRV9DT09LSUVTX1dJVEhf
Q09NUExFVElPTl9IQU5ETEVSIDEKLSNlbmRpZgotCi0vKiBGSVhNRTogU2hvdWxkIHRoaXMgYmUg
ZW5hYmxlZCBmb3IgSU9TX0ZBTUlMWSwgbm90IGp1c3QgSU9TPyAqLwotI2lmIChQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCBQTEFU
Rk9STShJT1MpCi0jZGVmaW5lIEhBVkVfRk9VTkRBVElPTl9XSVRIX1NBTUVfU0lURV9DT09LSUVf
U1VQUE9SVCAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01BWF9BTExPV0VEIDwgMTAxNDAwCi0jZGVmaW5lIEhBVkVfTlNIVFRQQ09PS0lFU1RPUkFH
RV9fSU5JVFdJVEhJREVOVElGSUVSX1dJVEhfSU5BQ0NVUkFURV9OVUxMQUJJTElUWSAxCi0jZW5k
aWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBIQVZFX0NGTkVUV09SS19XSVRIX0NP
TlRFTlRfRU5DT0RJTkdfU05JRkZJTkdfT1ZFUlJJREUgMQotLyogVGhlIG92ZXJyaWRlIGlzbid0
IG5lZWRlZCBvbiBpT1MgZmFtaWx5LCBhcyB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byBub3Qg
c25pZmYuICovCi0vKiBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkgYmUgZW5hYmxlZCBvbiAx
MC4xMy4yIGFuZCBuZXdlciwgbm90IGp1c3QgMTAuMTQgYW5kIG5ld2VyLiAqLwotI2lmIFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAKLSNk
ZWZpbmUgVVNFX0NGTkVUV09SS19DT05URU5UX0VOQ09ESU5HX1NOSUZGSU5HX09WRVJSSURFIDEK
LSNlbmRpZgotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9f
SVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkgfHwgUExBVEZPUk0oR1RL
KQotI2RlZmluZSBIQVZFX09TX0RBUktfTU9ERV9TVVBQT1JUIDEKLSNlbmRpZgotCi0jaWYgUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMAot
I2RlZmluZSBIQVZFX0NHX0ZPTlRfUkVOREVSSU5HX0dFVF9GT05UX1NNT09USElOR19ESVNBQkxF
RCAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQotI2RlZmluZSBI
QVZFX0NBX1dIRVJFX0FERElUSVZFX1RSQU5TRk9STVNfQVJFX1JFVkVSU0VEIDEKLSNlbmRpZgot
Ci0jaWZkZWYgX19BUFBMRV9fCi0jZGVmaW5lIEhBVkVfRlVOQ19VU0xFRVAgMQotI2VuZGlmCi0K
LSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdQRSkKLS8qIEZJWE1FOiBUaGlzIHJlYWxs
eSBuZWVkcyBhIGRlc2NyaXB0aXZlIG5hbWUsIHRoaXMgIm5ldyB0aGVtZSIgd2FzIGFkZGVkIGlu
IDIwMDguICovCi0jZGVmaW5lIFVTRV9ORVdfVEhFTUUgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9S
TShNQUMpCi0jZGVmaW5lIEhBVkVfV0lORE9XX1NFUlZFUl9PQ0NMVVNJT05fTk9USUZJQ0FUSU9O
UyAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBIQVZFX1NFQ19BQ0NF
U1NfQ09OVFJPTCAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKElPUykKLS8qIEZJWE1FOiBTYWZh
cmlTZXJ2aWNlcy5mcmFtZXdvcmsgZXhpc3RzIG9uIG1hY09TLiBJdCBpcyBvbmx5IHVzZWQgYnkg
V2ViS2l0IG9uIGlPUywgc28gdGhlIGJlaGF2aW9yIGlzIGNvcnJlY3QsIGJ1dCB0aGUgbmFtZSBp
cyBtaXNsZWFkaW5nLiAqLwotI2RlZmluZSBIQVZFX1NBRkFSSV9TRVJWSUNFU19GUkFNRVdPUksg
MQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZP
Uk0oV0FUQ0hPUykKLSNkZWZpbmUgSEFWRV9TQUZFX0JST1dTSU5HIDEKLSNlbmRpZgotCi0jaWYg
UExBVEZPUk0oSU9TKQotI2RlZmluZSBIQVZFX0xJTktfUFJFVklFVyAxCi0jZW5kaWYKLQotI2lm
IFBMQVRGT1JNKENPQ09BKQotLyogRklYTUU6IFRoaXMgaXMgYSBVU0Ugc3R5bGUgbWFjcm8sIGFz
IGl0IHRyaWdnZXJzIHRoZSB1c2Ugb2YgQ0ZVUkxDb25uZWN0aW9uIGZyYW1ld29yayBzdHVicy4g
Ki8KLS8qIEZJWE1FOiBJcyB0aGlzIHN0aWxsIG5lY2Vzc2FyeT8gQ0ZVUkxDb25uZWN0aW9uIGlz
bid0IHVzZWQgb24gQ29jb2EgcGxhdGZvcm1zIGFueSBtb3JlLiAqLwotI2RlZmluZSBFTkFCTEVf
U0VDX0lURU1fU0hJTSAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShJT1NfRkFNSUxZKSB8fCAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQw
MCkpCi0jZGVmaW5lIEhBVkVfQUNDRVNTSUJJTElUWV9TVVBQT1JUIDEKLSNlbmRpZgotCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTMwMDAwICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTMwMTAwCi0j
ZGVmaW5lIEhBVkVfQUNDRVNTSUJJTElUWV9CVU5ETEVTX1BBVEggMQotI2VuZGlmCi0KLSNpZiBQ
TEFURk9STShNQUMpCi0jZGVmaW5lIEVOQUJMRV9GVUxMX0tFWUJPQVJEX0FDQ0VTUyAxCi0jZW5k
aWYKLQotI2lmICgoUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFBMQVlTVEFUSU9OKSB8fCBQ
TEFURk9STShXUEUpKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSkgfHwgUExBVEZPUk0oR1RL
KQotI2RlZmluZSBFTkFCTEVfS0lORVRJQ19TQ1JPTExJTkcgMQotI2VuZGlmCi0KLSNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTQwMCkKLSNkZWZpbmUgSEFWRV9BVVRIT1JJWkFUSU9OX1NUQVRV
U19GT1JfTUVESUFfVFlQRSAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShNQUMpICYmIChfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUFYX0FMTE9XRUQgPj0gMTAxNDA0KSkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVf
T1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwICYmIF9fSVBIT05FX09TX1ZFUlNJT05f
TUFYX0FMTE9XRUQgPj0gMTIwMjAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9STShB
UFBMRVRWKQotI2RlZmluZSBIQVZFX0NGTkVUV09SS19PVkVSUklERV9TRVNTSU9OX0NPT0tJRV9B
Q0NFUFRfUE9MSUNZIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZ
KSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApCi0jZGVmaW5l
IEhBVkVfQ0ZORVRXT1JLX05TVVJMU0VTU0lPTl9TVFJJQ1RSVVNURVZBTFVBVEUgMQotI2VuZGlm
Ci0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTUwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNkZWZpbmUgSEFWRV9DRk5FVFdP
UktfTkVHT1RJQVRFRF9TU0xfUFJPVE9DT0xfQ0lQSEVSIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE2MDApIHx8
IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxNDAwMDApCi0jZGVmaW5lIEhBVkVfQ0ZORVRXT1JLX01FVFJJQ1NfQVBJU19WNCAxCi0j
ZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDE1MDAKLSNkZWZpbmUgSEFWRV9DU0NIRUNLRklYRElTQUJMRSAxCi0jZW5kaWYK
LQotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxNDAwKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQotI2RlZmluZSBIQVZFX1NBTkRCT1hf
SVNTVUVfTUFDSF9FWFRFTlNJT05fVE9fUFJPQ0VTU19CWV9BVURJVF9UT0tFTiAxCi0jZW5kaWYK
LQotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxNDAwKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQotI2RlZmluZSBIQVZFX1NBTkRCT1hf
SVNTVUVfUkVBRF9FWFRFTlNJT05fVE9fUFJPQ0VTU19CWV9BVURJVF9UT0tFTiAxCi0jZW5kaWYK
LQotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKQotI2RlZmluZSBIQVZFX01ETlNfRkFTVF9SRUdJU1RS
QVRJT04gMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpCi0jZGVmaW5lIEVOQUJMRV9NT05P
U1BBQ0VfRk9OVF9FWENFUFRJT04gKF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAx
MDE1MDApCi0jZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQotI2RlZmluZSBFTkFCTEVfTU9OT1NQ
QUNFX0ZPTlRfRVhDRVBUSU9OIChfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEz
MDAwMCkKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDE0MDApIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZGVmaW5l
IEhBVkVfRElTQUxMT1dBQkxFX1VTRVJfSU5TVEFMTEVEX0ZPTlRTIDEKLSNlbmRpZgotCi0jaWYg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1
MDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMzAwMDApCi0jZGVmaW5lIEhBVkVfQ1RGT05UQ1JFQVRFRk9SQ0hBUkFDVEVS
U1dJVEhMQU5HVUFHRUFORE9QVElPTiAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMAotI2RlZmlu
ZSBIQVZFX0FSS0lUX1FVSUNLX0xPT0tfUFJFVklFV19JVEVNIDEKLSNlbmRpZgotCi0jaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTMwMDAwCi0jZGVmaW5lIEhBVkVfVUlfV0tfRE9DVU1FTlRfQ09OVEVYVCAxCi0jZW5kaWYKLQot
I2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBFTkFCTEVfUExBVEZPUk1fRFJJVkVO
X1RFWFRfQ0hFQ0tJTkcgMQotI2RlZmluZSBIQVZFX0hPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUiAx
Ci0jZGVmaW5lIEhBVkVfVUlfUEFSQUxMQVhfVFJBTlNJVElPTl9HRVNUVVJFX1JFQ09HTklaRVIg
MQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTUwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNkZWZpbmUgSEFW
RV9BTExPV1NfU0VOU0lUSVZFX0xPR0dJTkcgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSNkZWZpbmUgSEFWRV9GQUlSUExBWVNUUkVBTUlOR19DRU5DX0lOSVRE
QVRBIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9S
TShBUFBMRVRWKQotI2RlZmluZSBIQVZFX1VJX1NDUk9MTF9WSUVXX0lORElDQVRPUl9GTEFTSElO
R19TUEkgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRG
T1JNKEFQUExFVFYpCi0jZGVmaW5lIEhBVkVfQVBQX0xJTktTX1dJVEhfSVNFTkFCTEVEIDEKLSNl
bmRpZgotCi0jaWYgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTMwMDAwKQotI2RlZmluZSBIQVZFX1JPVVRFX1NIQVJJTkdfUE9MSUNZX0xPTkdf
Rk9STV9WSURFTyAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09T
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCAmJiAhUExBVEZPUk0oSU9TX1NJTVVMQVRP
UikpCi0jZGVmaW5lIEhBVkVfREVWSUNFX01BTkFHRU1FTlQgMQotI2VuZGlmCi0KLSNpZiBQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA8IDEwMTUwMAotI2Rl
ZmluZSBVU0VfUkVBTFBBVEhfRk9SX0RMT1BFTl9QUkVGTElHSFQgMQotI2VuZGlmCi0KLSNpZiAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUw
MCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVU
VikKLSNkZWZpbmUgSEFWRV9OU1VSTFNFU1NJT05fV0VCU09DS0VUIDEKLSNlbmRpZgotCi0jaWYg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1
MDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikKLSNk
ZWZpbmUgSEFWRV9BVlBMQVlFUl9SRVNPVVJDRV9DT05TRVJWQVRJT05fTEVWRUwgMQotI2VuZGlm
Ci0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTQwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTIwMDAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9STShBUFBM
RVRWKQotI2RlZmluZSBIQVZFX0NPUkVURVhUX0FVVE9fT1BUSUNBTF9TSVpJTkcgMQotI2VuZGlm
Ci0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
IDwgMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9S
RVFVSVJFRCA8IDEzMDAwMCkKLSNkZWZpbmUgSEFWRV9OU0ZPTlRfV0lUSF9PUFRJQ0FMX1NJWklO
R19CVUcgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkpCi0jZGVmaW5lIEhB
VkVfQVBQX1NTTyAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09T
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCB8fCBQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCBQTEFURk9STShXQVRDSE9T
KSB8fCBQTEFURk9STShBUFBMRVRWKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKLSNkZWZpbmUg
SEFWRV9UTFNfUFJPVE9DT0xfVkVSU0lPTl9UIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oSU9T
KSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTQwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikgfHwgUExB
VEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVmaW5lIEhBVkVfU0VDX1RSVVNUX0VWQUxVQVRFX1dJVEhf
RVJST1IgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFM
WVNUKQotI2RlZmluZSBVU0VfVUlDT05URVhUTUVOVSAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDAKLSNkZWZp
bmUgSEFWRV9TVUJWSUVXU19JVkFSX1NQSSAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEIDwgMTAxNTAwCi0jZGVmaW5lIEhBVkVf
U1VCVklFV1NfSVZBUl9ERUNMQVJFRF9CWV9TREsgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShN
QUMpIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMTAwMDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExF
VFYpCi0jZGVmaW5lIFVTRV9QTEFURk9STV9TWVNURU1fRkFMTEJBQ0tfTElTVCAxCi0jZW5kaWYK
LQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49
IDEwMTUwMAotI2RlZmluZSBIQVZFX0FYX0NMSUVOVF9UWVBFIDEKLSNlbmRpZgotCi0jaWYgKFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDAp
IHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikKLSNkZWZp
bmUgSEFWRV9ERVNJR05fU1lTVEVNX1VJX0ZPTlRTIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDApIHx8IChQ
TEFURk9STShJT1MpICYmICFQTEFURk9STShJT1NfU0lNVUxBVE9SKSkKLSNkZWZpbmUgSEFWRV9E
RVZJQ0VfSURFTlRJVFkgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSNkZWZpbmUgSEFWRV9EQVRBX1BST1RFQ1RJT05fS0VZQ0hBSU4gMQotI2VuZGlmCi0KLSNp
ZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTUwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJ
TVVMQVRPUikpCi0jZGVmaW5lIEhBVkVfTkVBUl9GSUVMRCAxCi0jZW5kaWYKLQotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpIHx8ICghKGRlZmluZWQoVVNFX1NZU1RFTV9NQUxMT0MpICYmIFVTRV9T
WVNURU1fTUFMTE9DKSAmJiAoT1MoTElOVVgpICYmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFdQRSkpKSkKLSNkZWZpbmUgVVNFX0JNQUxMT0NfTUVNT1JZX0ZPT1RQUklOVF9BUEkgMQotI2Vu
ZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTQwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNkZWZpbmUgSEFWRV9PU19T
SUdOUE9TVCAxCi0jZW5kaWYKKyNkZWZpbmUgV1RGX09TX1dJTiBFUlJPUiAiVVNFIFdJTkRPV1Mg
V0lUSCBPUyBOT1QgV0lOIgorI2RlZmluZSBXVEZfT1NfTUFDIEVSUk9SICJVU0UgTUFDX09TX1gg
V0lUSCBPUyBOT1QgTUFDIgpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAyNTQ0MDkpCisrKyBT
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw5IEBA
CiAvKiBJbmNsdWRlIENQVSBzcGVjaWZpYyBtYWNyb3MgKi8KICNpbmNsdWRlIDx3dGYvQ1BVLmg+
CiAKKy8qIEluY2x1ZGUgdW5kZXJseWluZyBvcGVyYXRpbmcgc3lzdGVtIHNwZWNpZmljIG1hY3Jv
cyAqLworI2luY2x1ZGUgPHd0Zi9PUy5oPgorCiAvKiA9PT09IFBMQVRGT1JNIGhhbmRsZXMgT1Ms
IG9wZXJhdGluZyBlbnZpcm9ubWVudCwgZ3JhcGhpY3MgQVBJLCBhbmQKICAgIENQVS4gVGhpcyBt
YWNybyB3aWxsIGJlIHBoYXNlZCBvdXQgaW4gZmF2b3Igb2YgcGxhdGZvcm0gYWRhcHRhdGlvbgog
ICAgbWFjcm9zLCBwb2xpY3kgZGVjaXNpb24gbWFjcm9zLCBhbmQgdG9wLWxldmVsIHBvcnQgZGVm
aW5pdGlvbnMuID09PT0gKi8KQEAgLTQxLDEzICs0NCw4IEBACiAKIC8qID09PT0gUGxhdGZvcm0g
YWRhcHRhdGlvbiBtYWNyb3M6IHRoZXNlIGRlc2NyaWJlIHByb3BlcnRpZXMgb2YgdGhlIHRhcmdl
dCBlbnZpcm9ubWVudC4gPT09PSAqLwogCi0vKiBDUFUoKSAtIHRoZSB0YXJnZXQgQ1BVIGFyY2hp
dGVjdHVyZSAqLwotI2RlZmluZSBDUFUoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIFdURl9DUFVfIyNX
VEZfRkVBVFVSRSAgJiYgV1RGX0NQVV8jI1dURl9GRUFUVVJFKQogLyogSEFWRSgpIC0gc3BlY2lm
aWMgc3lzdGVtIGZlYXR1cmVzIChoZWFkZXJzLCBmdW5jdGlvbnMgb3Igc2ltaWxhcikgdGhhdCBh
cmUgcHJlc2VudCBvciBub3QgKi8KICNkZWZpbmUgSEFWRShXVEZfRkVBVFVSRSkgKGRlZmluZWQg
SEFWRV8jI1dURl9GRUFUVVJFICAmJiBIQVZFXyMjV1RGX0ZFQVRVUkUpCi0vKiBPUygpIC0gdW5k
ZXJseWluZyBvcGVyYXRpbmcgc3lzdGVtOyBvbmx5IHRvIGJlIHVzZWQgZm9yIG1hbmRhdGVkIGxv
dy1sZXZlbCBzZXJ2aWNlcyBsaWtlIAotICAgdmlydHVhbCBtZW1vcnksIG5vdCB0byBjaG9vc2Ug
YSBHVUkgdG9vbGtpdCAqLwotI2RlZmluZSBPUyhXVEZfRkVBVFVSRSkgKGRlZmluZWQgV1RGX09T
XyMjV1RGX0ZFQVRVUkUgICYmIFdURl9PU18jI1dURl9GRUFUVVJFKQogCiAKIC8qID09PT0gUG9s
aWN5IGRlY2lzaW9uIG1hY3JvczogdGhlc2UgZGVmaW5lIHBvbGljeSBjaG9pY2VzIGZvciBhIHBh
cnRpY3VsYXIgcG9ydC4gPT09PSAqLwpAQCAtODUsOTAgKzgzLDYgQEAKIAogCiAKLS8qID09PT0g
T1MoKSAtIHVuZGVybHlpbmcgb3BlcmF0aW5nIHN5c3RlbTsgb25seSB0byBiZSB1c2VkIGZvciBt
YW5kYXRlZCBsb3ctbGV2ZWwgc2VydmljZXMgbGlrZSAKLSAgIHZpcnR1YWwgbWVtb3J5LCBub3Qg
dG8gY2hvb3NlIGEgR1VJIHRvb2xraXQgPT09PSAqLwotCi0vKiBPUyhBSVgpIC0gQUlYICovCi0j
aWZkZWYgX0FJWAotI2RlZmluZSBXVEZfT1NfQUlYIDEKLSNlbmRpZgotCi0vKiBPUyhEQVJXSU4p
IC0gQW55IERhcndpbi1iYXNlZCBPUywgaW5jbHVkaW5nIE1hYyBPUyBYIGFuZCBpUGhvbmUgT1Mg
Ki8KLSNpZmRlZiBfX0FQUExFX18KLSNkZWZpbmUgV1RGX09TX0RBUldJTiAxCi0KLSNpbmNsdWRl
IDxBdmFpbGFiaWxpdHkuaD4KLSNpbmNsdWRlIDxBdmFpbGFiaWxpdHlNYWNyb3MuaD4KLSNpbmNs
dWRlIDxUYXJnZXRDb25kaXRpb25hbHMuaD4KLSNlbmRpZgotCi0vKiBPUyhJT1NfRkFNSUxZKSAt
IGlPUyBmYW1pbHksIGluY2x1ZGluZyBpT1MsIG1hY0NhdGFseXN0LCB0dk9TLCB3YXRjaE9TICov
Ci0vKiBPUyhJT1MpIC0gaU9TIG9ubHksIG5vdCBpbmNsdWRpbmcgbWFjQ2F0YWx5c3QgKi8KLS8q
IE9TKE1BQ19PU19YKSAtIG1hY09TIChub3QgaW5jbHVkaW5nIGlPUyBmYW1pbHkpICovCi0jaWYg
T1MoREFSV0lOKQotI2lmIFRBUkdFVF9PU19JT1MgJiYgIShkZWZpbmVkKFRBUkdFVF9PU19NQUND
QVRBTFlTVCkgJiYgVEFSR0VUX09TX01BQ0NBVEFMWVNUKQotI2RlZmluZSBXVEZfT1NfSU9TIDEK
LSNlbmRpZgotI2lmIFRBUkdFVF9PU19JUEhPTkUKLSNkZWZpbmUgV1RGX09TX0lPU19GQU1JTFkg
MQotI2VsaWYgVEFSR0VUX09TX01BQwotI2RlZmluZSBXVEZfT1NfTUFDX09TX1ggMQotI2VuZGlm
Ci0jZW5kaWYKLQotLyogT1MoRlJFRUJTRCkgLSBGcmVlQlNEICovCi0jaWYgZGVmaW5lZChfX0Zy
ZWVCU0RfXykgfHwgZGVmaW5lZChfX0RyYWdvbkZseV9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9r
ZXJuZWxfXykKLSNkZWZpbmUgV1RGX09TX0ZSRUVCU0QgMQotI2VuZGlmCi0KLS8qIE9TKEZVQ0hT
SUEpIC0gRnVjaHNpYSAqLwotI2lmZGVmIF9fRnVjaHNpYV9fCi0jZGVmaW5lIFdURl9PU19GVUNI
U0lBIDEKLSNlbmRpZgotCi0vKiBPUyhIVVJEKSAtIEdOVS9IdXJkICovCi0jaWZkZWYgX19HTlVf
XwotI2RlZmluZSBXVEZfT1NfSFVSRCAxCi0jZW5kaWYKLQotLyogT1MoTElOVVgpIC0gTGludXgg
Ki8KLSNpZmRlZiBfX2xpbnV4X18KLSNkZWZpbmUgV1RGX09TX0xJTlVYIDEKLSNlbmRpZgotCi0v
KiBPUyhORVRCU0QpIC0gTmV0QlNEICovCi0jaWYgZGVmaW5lZChfX05ldEJTRF9fKQotI2RlZmlu
ZSBXVEZfT1NfTkVUQlNEIDEKLSNlbmRpZgotCi0vKiBPUyhPUEVOQlNEKSAtIE9wZW5CU0QgKi8K
LSNpZmRlZiBfX09wZW5CU0RfXwotI2RlZmluZSBXVEZfT1NfT1BFTkJTRCAxCi0jZW5kaWYKLQot
LyogT1MoV0lORE9XUykgLSBBbnkgdmVyc2lvbiBvZiBXaW5kb3dzICovCi0jaWYgZGVmaW5lZChX
SU4zMikgfHwgZGVmaW5lZChfV0lOMzIpCi0jZGVmaW5lIFdURl9PU19XSU5ET1dTIDEKLSNlbmRp
ZgotCi0jZGVmaW5lIFdURl9PU19XSU4gRVJST1IgIlVTRSBXSU5ET1dTIFdJVEggT1MgTk9UIFdJ
TiIKLSNkZWZpbmUgV1RGX09TX01BQyBFUlJPUiAiVVNFIE1BQ19PU19YIFdJVEggT1MgTk9UIE1B
QyIKLQotLyogT1MoVU5JWCkgLSBBbnkgVW5peC1saWtlIHN5c3RlbSAqLwotI2lmICAgIE9TKEFJ
WCkgICAgICAgICAgICAgIFwKLSAgICB8fCBPUyhEQVJXSU4pICAgICAgICAgICBcCi0gICAgfHwg
T1MoRlJFRUJTRCkgICAgICAgICAgXAotICAgIHx8IE9TKEZVQ0hTSUEpICAgICAgICAgIFwKLSAg
ICB8fCBPUyhIVVJEKSAgICAgICAgICAgICBcCi0gICAgfHwgT1MoTElOVVgpICAgICAgICAgICAg
XAotICAgIHx8IE9TKE5FVEJTRCkgICAgICAgICAgIFwKLSAgICB8fCBPUyhPUEVOQlNEKSAgICAg
ICAgICBcCi0gICAgfHwgZGVmaW5lZCh1bml4KSAgICAgICAgXAotICAgIHx8IGRlZmluZWQoX191
bml4KSAgICAgIFwKLSAgICB8fCBkZWZpbmVkKF9fdW5peF9fKQotI2RlZmluZSBXVEZfT1NfVU5J
WCAxCi0jZW5kaWYKLQogLyogT3BlcmF0aW5nIGVudmlyb25tZW50cyAqLwogCiAK
</data>
<flag name="review"
          id="403248"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>